@oasys/oecs 0.5.3 → 0.5.4

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 (185) hide show
  1. package/CHANGELOG.md +194 -28
  2. package/README.md +198 -145
  3. package/dist/core/ecs/access_check.d.cts +3 -3
  4. package/dist/core/ecs/access_check.d.ts +3 -3
  5. package/dist/core/ecs/archetype.d.cts +103 -43
  6. package/dist/core/ecs/archetype.d.ts +103 -43
  7. package/dist/core/ecs/archetype.d.ts.map +1 -1
  8. package/dist/core/ecs/archetype_graph.d.cts +8 -8
  9. package/dist/core/ecs/archetype_graph.d.ts +8 -8
  10. package/dist/core/ecs/archetype_graph.d.ts.map +1 -1
  11. package/dist/core/ecs/builtin_relations.d.cts +1 -1
  12. package/dist/core/ecs/builtin_relations.d.ts +1 -1
  13. package/dist/core/ecs/command_log.d.cts +4 -4
  14. package/dist/core/ecs/command_log.d.ts +4 -4
  15. package/dist/core/ecs/command_log.d.ts.map +1 -1
  16. package/dist/core/ecs/component.d.cts +4 -4
  17. package/dist/core/ecs/component.d.ts +4 -4
  18. package/dist/core/ecs/deferred_commands.d.cts +1 -1
  19. package/dist/core/ecs/deferred_commands.d.ts +1 -1
  20. package/dist/core/ecs/deferred_commands.d.ts.map +1 -1
  21. package/dist/core/ecs/ecs.d.cts +85 -43
  22. package/dist/core/ecs/ecs.d.ts +85 -43
  23. package/dist/core/ecs/ecs.d.ts.map +1 -1
  24. package/dist/core/ecs/ecs_memory.d.cts +10 -10
  25. package/dist/core/ecs/ecs_memory.d.ts +10 -10
  26. package/dist/core/ecs/ecs_memory.d.ts.map +1 -1
  27. package/dist/core/ecs/entity_allocator.d.cts +6 -6
  28. package/dist/core/ecs/entity_allocator.d.ts +6 -6
  29. package/dist/core/ecs/entity_allocator.d.ts.map +1 -1
  30. package/dist/core/ecs/event.d.cts +2 -2
  31. package/dist/core/ecs/event.d.ts +2 -2
  32. package/dist/core/ecs/event_registry.d.cts +1 -1
  33. package/dist/core/ecs/event_registry.d.ts +1 -1
  34. package/dist/core/ecs/event_registry.d.ts.map +1 -1
  35. package/dist/core/ecs/facades.d.cts +15 -15
  36. package/dist/core/ecs/facades.d.ts +15 -15
  37. package/dist/core/ecs/facades.d.ts.map +1 -1
  38. package/dist/core/ecs/frame_trace.d.cts +2 -2
  39. package/dist/core/ecs/frame_trace.d.ts +2 -2
  40. package/dist/core/ecs/host_commands.d.cts +12 -12
  41. package/dist/core/ecs/host_commands.d.ts +12 -12
  42. package/dist/core/ecs/host_commands.d.ts.map +1 -1
  43. package/dist/core/ecs/index.d.cts +1 -1
  44. package/dist/core/ecs/index.d.ts +1 -1
  45. package/dist/core/ecs/index.d.ts.map +1 -1
  46. package/dist/core/ecs/observer.d.cts +9 -9
  47. package/dist/core/ecs/observer.d.ts +9 -9
  48. package/dist/core/ecs/observer.d.ts.map +1 -1
  49. package/dist/core/ecs/query.d.cts +91 -70
  50. package/dist/core/ecs/query.d.ts +91 -70
  51. package/dist/core/ecs/query.d.ts.map +1 -1
  52. package/dist/core/ecs/ref.d.cts +53 -1
  53. package/dist/core/ecs/ref.d.ts +53 -1
  54. package/dist/core/ecs/ref.d.ts.map +1 -1
  55. package/dist/core/ecs/relation.d.cts +15 -15
  56. package/dist/core/ecs/relation.d.ts +15 -15
  57. package/dist/core/ecs/relation.d.ts.map +1 -1
  58. package/dist/core/ecs/relation_service.d.cts +14 -14
  59. package/dist/core/ecs/relation_service.d.ts +14 -14
  60. package/dist/core/ecs/relation_service.d.ts.map +1 -1
  61. package/dist/core/ecs/resource.d.cts +1 -1
  62. package/dist/core/ecs/resource.d.ts +1 -1
  63. package/dist/core/ecs/resource_registry.d.cts +2 -2
  64. package/dist/core/ecs/resource_registry.d.ts +2 -2
  65. package/dist/core/ecs/resume.d.cts +3 -3
  66. package/dist/core/ecs/resume.d.ts +3 -3
  67. package/dist/core/ecs/resume.d.ts.map +1 -1
  68. package/dist/core/ecs/schedule.d.cts +22 -9
  69. package/dist/core/ecs/schedule.d.ts +22 -9
  70. package/dist/core/ecs/schedule.d.ts.map +1 -1
  71. package/dist/core/ecs/snapshot_service.d.cts +3 -3
  72. package/dist/core/ecs/snapshot_service.d.ts +3 -3
  73. package/dist/core/ecs/sparse_store.d.cts +6 -6
  74. package/dist/core/ecs/sparse_store.d.ts +6 -6
  75. package/dist/core/ecs/sparse_store.d.ts.map +1 -1
  76. package/dist/core/ecs/store.d.cts +189 -110
  77. package/dist/core/ecs/store.d.ts +189 -110
  78. package/dist/core/ecs/store.d.ts.map +1 -1
  79. package/dist/core/ecs/store_layout_listener.d.cts +2 -2
  80. package/dist/core/ecs/store_layout_listener.d.ts +2 -2
  81. package/dist/core/ecs/system.d.cts +8 -8
  82. package/dist/core/ecs/system.d.ts +8 -8
  83. package/dist/core/ecs/system.d.ts.map +1 -1
  84. package/dist/core/ecs/utils/error.d.cts +7 -0
  85. package/dist/core/ecs/utils/error.d.ts +7 -0
  86. package/dist/core/ecs/utils/error.d.ts.map +1 -1
  87. package/dist/core/store/action_ring.d.cts +7 -8
  88. package/dist/core/store/action_ring.d.ts +7 -8
  89. package/dist/core/store/action_ring.d.ts.map +1 -1
  90. package/dist/core/store/allocator.d.cts +26 -28
  91. package/dist/core/store/allocator.d.ts +26 -28
  92. package/dist/core/store/allocator.d.ts.map +1 -1
  93. package/dist/core/store/buffer_backed_column.d.cts +5 -6
  94. package/dist/core/store/buffer_backed_column.d.ts +5 -6
  95. package/dist/core/store/buffer_backed_column.d.ts.map +1 -1
  96. package/dist/core/store/column_store.d.cts +22 -22
  97. package/dist/core/store/column_store.d.ts +22 -22
  98. package/dist/core/store/column_store.d.ts.map +1 -1
  99. package/dist/core/store/command_dispatch.d.cts +1 -1
  100. package/dist/core/store/command_dispatch.d.ts +1 -1
  101. package/dist/core/store/command_ring.d.cts +6 -7
  102. package/dist/core/store/command_ring.d.ts +6 -7
  103. package/dist/core/store/command_ring.d.ts.map +1 -1
  104. package/dist/core/store/descriptor.d.cts +2 -2
  105. package/dist/core/store/descriptor.d.ts +2 -2
  106. package/dist/core/store/entity_index.d.cts +3 -3
  107. package/dist/core/store/entity_index.d.ts +3 -3
  108. package/dist/core/store/event_ring.d.cts +7 -7
  109. package/dist/core/store/event_ring.d.ts +7 -7
  110. package/dist/core/store/extend.d.cts +2 -2
  111. package/dist/core/store/extend.d.ts +2 -2
  112. package/dist/core/store/grow.d.cts +1 -1
  113. package/dist/core/store/grow.d.ts +1 -1
  114. package/dist/core/store/grow.d.ts.map +1 -1
  115. package/dist/core/store/header.d.cts +9 -9
  116. package/dist/core/store/header.d.ts +9 -9
  117. package/dist/core/store/header.d.ts.map +1 -1
  118. package/dist/core/store/layout_ops.d.cts +7 -7
  119. package/dist/core/store/layout_ops.d.ts +7 -7
  120. package/dist/core/store/state_hash.d.cts +3 -3
  121. package/dist/core/store/state_hash.d.ts +3 -3
  122. package/dist/extensions/editor/editor.d.cts +4 -4
  123. package/dist/extensions/editor/editor.d.ts +4 -4
  124. package/dist/extensions/editor/editor.d.ts.map +1 -1
  125. package/dist/extensions/editor/field_handle.d.cts +1 -1
  126. package/dist/extensions/editor/field_handle.d.ts +1 -1
  127. package/dist/extensions/editor/index.d.cts +2 -2
  128. package/dist/extensions/editor/index.d.ts +2 -2
  129. package/dist/extensions/editor/index.development.js +4 -4
  130. package/dist/extensions/editor/index.js +4 -4
  131. package/dist/extensions/reactive/ecs_sync.d.cts +4 -4
  132. package/dist/extensions/reactive/ecs_sync.d.ts +4 -4
  133. package/dist/extensions/reactive/index.d.cts +4 -4
  134. package/dist/extensions/reactive/index.d.ts +4 -4
  135. package/dist/extensions/reactive/index.development.js +3 -3
  136. package/dist/extensions/reactive/index.js +3 -3
  137. package/dist/extensions/solid/index.d.cts +1 -1
  138. package/dist/extensions/solid/index.d.ts +1 -1
  139. package/dist/extensions/solid/index.development.js +1 -1
  140. package/dist/extensions/solid/index.js +1 -1
  141. package/dist/extensions/solid/kernel_solid.d.cts +1 -1
  142. package/dist/extensions/solid/kernel_solid.d.ts +1 -1
  143. package/dist/extensions/solid/kernel_solid.d.ts.map +1 -1
  144. package/dist/{host_commands-3jyFfWNg.js → host_commands-BlR3oZ3x.js} +472 -392
  145. package/dist/host_commands-C2cpU3yC.cjs +1 -0
  146. package/dist/index.cjs +1 -1
  147. package/dist/index.d.cts +1 -1
  148. package/dist/index.d.ts +1 -1
  149. package/dist/index.d.ts.map +1 -1
  150. package/dist/index.development.cjs +1 -1
  151. package/dist/index.development.js +3344 -2965
  152. package/dist/index.js +1494 -1132
  153. package/dist/{internal-C9jjL90H.js → internal-BoxWl4dG.js} +409 -329
  154. package/dist/internal-CGBEwfeB.cjs +2 -0
  155. package/dist/internal.cjs +1 -1
  156. package/dist/internal.development.cjs +1 -1
  157. package/dist/internal.development.js +1 -1
  158. package/dist/internal.js +1 -1
  159. package/dist/primitives.development.js +1 -1
  160. package/dist/primitives.js +1 -1
  161. package/dist/reactive/index.d.cts +2 -2
  162. package/dist/reactive/index.d.ts +2 -2
  163. package/dist/reactive/index.development.js +1 -1
  164. package/dist/reactive/index.js +1 -1
  165. package/dist/reactive/kernel.d.cts +5 -5
  166. package/dist/reactive/kernel.d.ts +5 -5
  167. package/dist/reactive/shallow.d.cts +1 -1
  168. package/dist/reactive/shallow.d.ts +1 -1
  169. package/dist/{shallow-DfnAm9vG.js → shallow-Bs39EPh1.js} +1 -1
  170. package/dist/{shallow-9S1pY_Iw.js → shallow-CiFC70Dz.js} +1 -1
  171. package/dist/{shared-DQKK0i-E.js → shared-B4v0L1cw.js} +4 -4
  172. package/dist/shared-DU78k0pU.cjs +1 -0
  173. package/dist/shared.cjs +1 -1
  174. package/dist/shared.development.cjs +1 -1
  175. package/dist/shared.development.js +1 -1
  176. package/dist/shared.js +1 -1
  177. package/dist/type_primitives/typed_arrays/typed_arrays.d.cts +2 -2
  178. package/dist/type_primitives/typed_arrays/typed_arrays.d.ts +2 -2
  179. package/dist/{typed_arrays-BcXcnzB4.js → typed_arrays-DIVwVy5_.js} +1 -1
  180. package/dist/version.d.cts +2 -2
  181. package/dist/version.d.ts +2 -2
  182. package/package.json +1 -1
  183. package/dist/host_commands-DNf0f6ko.cjs +0 -1
  184. package/dist/internal-RZN14uMw.cjs +0 -2
  185. package/dist/shared-BMXh9hxm.cjs +0 -1
@@ -31,7 +31,7 @@ export interface FieldHandle {
31
31
  * `() => sync.map.get(entityId)?.x`); `set` routes through `editor.setField`, so the
32
32
  * edit is queued, batched, and undoable.
33
33
  *
34
- * `read` is optional (M11): omitted, the handle reads through the editor's own
34
+ * `read` is optional: omitted, the handle reads through the editor's own
35
35
  * committed-channel reader (`editor.committedField`). That default is correct
36
36
  * but NOT reactive — supply the channel thunk when the handle's `value` must
37
37
  * subscribe inside a tracking scope.
@@ -31,7 +31,7 @@ export interface FieldHandle {
31
31
  * `() => sync.map.get(entityId)?.x`); `set` routes through `editor.setField`, so the
32
32
  * edit is queued, batched, and undoable.
33
33
  *
34
- * `read` is optional (M11): omitted, the handle reads through the editor's own
34
+ * `read` is optional: omitted, the handle reads through the editor's own
35
35
  * committed-channel reader (`editor.committedField`). That default is correct
36
36
  * but NOT reactive — supply the channel thunk when the handle's `value` must
37
37
  * subscribe inside a tracking scope.
@@ -1,8 +1,8 @@
1
1
  /**
2
- * The host write seam's EDITOR layer (#701) — layer 2 of #681 / PATTERNS §85.
2
+ * The host write seam's EDITOR layer — layer 2 of the seam.
3
3
  *
4
4
  * Reified undo/redo + the inspector field-handle, built on the shipped typed
5
- * `HostCommandQueue` (#698). Application policy, so it lives here in
5
+ * `HostCommandQueue`. Application policy, so it lives here in
6
6
  * `engine-extensions`, not engine core — and it pulls NO third-party / framework
7
7
  * dependency (the field-handle reads through a caller-supplied thunk).
8
8
  *
@@ -1,8 +1,8 @@
1
1
  /**
2
- * The host write seam's EDITOR layer (#701) — layer 2 of #681 / PATTERNS §85.
2
+ * The host write seam's EDITOR layer — layer 2 of the seam.
3
3
  *
4
4
  * Reified undo/redo + the inspector field-handle, built on the shipped typed
5
- * `HostCommandQueue` (#698). Application policy, so it lives here in
5
+ * `HostCommandQueue`. Application policy, so it lives here in
6
6
  * `engine-extensions`, not engine core — and it pulls NO third-party / framework
7
7
  * dependency (the field-handle reads through a caller-supplied thunk).
8
8
  *
@@ -152,18 +152,18 @@ class u {
152
152
  depths() {
153
153
  return { undo: this.undoStack.length, redo: this.redoStack.length };
154
154
  }
155
- /** `true` when `undo()` would do something — allocation-free (M10). */
155
+ /** `true` when `undo()` would do something — allocation-free. */
156
156
  get canUndo() {
157
157
  return this.undoStack.length > 0;
158
158
  }
159
- /** `true` when `redo()` would do something — allocation-free (M10). */
159
+ /** `true` when `redo()` would do something — allocation-free. */
160
160
  get canRedo() {
161
161
  return this.redoStack.length > 0;
162
162
  }
163
163
  /**
164
164
  * Subscribe to undo/redo-stack changes: fires after every commit, undo,
165
165
  * redo, and clear — the push signal an "Undo (3)" affordance needs instead
166
- * of polling `depths()` per frame (M10). Returns an unsubscribe function.
166
+ * of polling `depths()` per frame. Returns an unsubscribe function.
167
167
  * Callbacks run synchronously in subscription order; read `canUndo` /
168
168
  * `canRedo` / `depths()` inside.
169
169
  */
@@ -178,7 +178,7 @@ class u {
178
178
  }
179
179
  /** Read one committed `(entity, component, field)` slot through the reader
180
180
  * this editor was constructed with — the default read for `fieldHandle`
181
- * when no channel thunk is supplied (M11). */
181
+ * when no channel thunk is supplied. */
182
182
  committedField(t, e, s) {
183
183
  return this.readField(t, e, s);
184
184
  }
@@ -152,18 +152,18 @@ class u {
152
152
  depths() {
153
153
  return { undo: this.undoStack.length, redo: this.redoStack.length };
154
154
  }
155
- /** `true` when `undo()` would do something — allocation-free (M10). */
155
+ /** `true` when `undo()` would do something — allocation-free. */
156
156
  get canUndo() {
157
157
  return this.undoStack.length > 0;
158
158
  }
159
- /** `true` when `redo()` would do something — allocation-free (M10). */
159
+ /** `true` when `redo()` would do something — allocation-free. */
160
160
  get canRedo() {
161
161
  return this.redoStack.length > 0;
162
162
  }
163
163
  /**
164
164
  * Subscribe to undo/redo-stack changes: fires after every commit, undo,
165
165
  * redo, and clear — the push signal an "Undo (3)" affordance needs instead
166
- * of polling `depths()` per frame (M10). Returns an unsubscribe function.
166
+ * of polling `depths()` per frame. Returns an unsubscribe function.
167
167
  * Callbacks run synchronously in subscription order; read `canUndo` /
168
168
  * `canRedo` / `depths()` inside.
169
169
  */
@@ -178,7 +178,7 @@ class u {
178
178
  }
179
179
  /** Read one committed `(entity, component, field)` slot through the reader
180
180
  * this editor was constructed with — the default read for `fieldHandle`
181
- * when no channel thunk is supplied (M11). */
181
+ * when no channel thunk is supplied. */
182
182
  committedField(t, e, s) {
183
183
  return this.readField(t, e, s);
184
184
  }
@@ -141,14 +141,14 @@ export interface SingletonSyncOptions<V extends object = Record<string, number>>
141
141
  }
142
142
  /**
143
143
  * Sync ONE singleton entity's single-component state into a `reactiveStruct`,
144
- * keyless — the singleton/resource shape (ADR-0024). This is how heterogeneous
144
+ * keyless — the singleton/resource shape. This is how heterogeneous
145
145
  * ephemeral UI state (net status + latency, FPS/mem, wave timer, hovered hex) joins
146
146
  * the same reactive view as per-entity components: model it as components on a
147
147
  * reserved singleton entity (the flecs / Unity-DOTS "singleton-as-entity" model)
148
148
  * and read it through per-field channels — NOT a separate reactive-resource
149
149
  * subsystem. Resources stay non-reactive internal singletons.
150
150
  *
151
- * It reuses the entity-grain ADR-0013 component observer verbatim, filtered to the
151
+ * It reuses the entity-grain component observer verbatim, filtered to the
152
152
  * one target eid: an `onSet` (or seed `onAdd`) republishes the entity's field values
153
153
  * into the struct via per-field setters. The per-field `Object.is` eq means an
154
154
  * unchanged field writes nothing — "equal write → 0 renders" — and per-field signals
@@ -162,7 +162,7 @@ export interface SingletonSyncOptions<V extends object = Record<string, number>>
162
162
  * `syncFieldsToMap`. Project a subset to channel only what the UI reads.
163
163
  *
164
164
  * A `reactiveStruct` has a fixed field set and no `delete`, so the map adapter's
165
- * delete-on-disable (#677 / ADR-0023) has no struct analog: `onRemove`/`onDisable`
165
+ * delete-on-disable has no struct analog: `onRemove`/`onDisable`
166
166
  * **reset the fields to the channel's declared initial values** (`onSet` skips
167
167
  * disabled entities), `onEnable` republishes. The defaults are the channel's own
168
168
  * initials — the eager `into` struct's declared values (e.g. `NetStats.latency = -1`),
@@ -190,7 +190,7 @@ export interface SingletonArraySyncOptions<T> {
190
190
  }
191
191
  /**
192
192
  * Sync ONE singleton entity's component into a `reactiveArray`, one slot per field
193
- * in `fields` order (#685 / ADR-0024) — the ORDERED sibling of `syncSingletonToStruct`,
193
+ * in `fields` order — the ORDERED sibling of `syncSingletonToStruct`,
194
194
  * for positional UI state (the army slots). On every change to the component it
195
195
  * `reconcile`s the array from the field values: a slot whose value is unchanged keeps
196
196
  * its reference (structural sharing), only changed slots wake. `onRemove`/`onDisable`
@@ -141,14 +141,14 @@ export interface SingletonSyncOptions<V extends object = Record<string, number>>
141
141
  }
142
142
  /**
143
143
  * Sync ONE singleton entity's single-component state into a `reactiveStruct`,
144
- * keyless — the singleton/resource shape (ADR-0024). This is how heterogeneous
144
+ * keyless — the singleton/resource shape. This is how heterogeneous
145
145
  * ephemeral UI state (net status + latency, FPS/mem, wave timer, hovered hex) joins
146
146
  * the same reactive view as per-entity components: model it as components on a
147
147
  * reserved singleton entity (the flecs / Unity-DOTS "singleton-as-entity" model)
148
148
  * and read it through per-field channels — NOT a separate reactive-resource
149
149
  * subsystem. Resources stay non-reactive internal singletons.
150
150
  *
151
- * It reuses the entity-grain ADR-0013 component observer verbatim, filtered to the
151
+ * It reuses the entity-grain component observer verbatim, filtered to the
152
152
  * one target eid: an `onSet` (or seed `onAdd`) republishes the entity's field values
153
153
  * into the struct via per-field setters. The per-field `Object.is` eq means an
154
154
  * unchanged field writes nothing — "equal write → 0 renders" — and per-field signals
@@ -162,7 +162,7 @@ export interface SingletonSyncOptions<V extends object = Record<string, number>>
162
162
  * `syncFieldsToMap`. Project a subset to channel only what the UI reads.
163
163
  *
164
164
  * A `reactiveStruct` has a fixed field set and no `delete`, so the map adapter's
165
- * delete-on-disable (#677 / ADR-0023) has no struct analog: `onRemove`/`onDisable`
165
+ * delete-on-disable has no struct analog: `onRemove`/`onDisable`
166
166
  * **reset the fields to the channel's declared initial values** (`onSet` skips
167
167
  * disabled entities), `onEnable` republishes. The defaults are the channel's own
168
168
  * initials — the eager `into` struct's declared values (e.g. `NetStats.latency = -1`),
@@ -190,7 +190,7 @@ export interface SingletonArraySyncOptions<T> {
190
190
  }
191
191
  /**
192
192
  * Sync ONE singleton entity's component into a `reactiveArray`, one slot per field
193
- * in `fields` order (#685 / ADR-0024) — the ORDERED sibling of `syncSingletonToStruct`,
193
+ * in `fields` order — the ORDERED sibling of `syncSingletonToStruct`,
194
194
  * for positional UI state (the army slots). On every change to the component it
195
195
  * `reconcile`s the array from the field values: a slot whose value is unchanged keeps
196
196
  * its reference (structural sharing), only changed slots wake. `onRemove`/`onDisable`
@@ -1,8 +1,8 @@
1
1
  /**
2
- * The production ECS→UI reactive bridge (#672 / ADR-0021).
2
+ * The production ECS→UI reactive bridge.
3
3
  *
4
- * Drains the engine's own change detection (ADR-0013 component observers, riding
5
- * the ADR-0012 per-row dirty list) into a `reactiveMap` — publishing O(changed),
4
+ * Drains the engine's own change detection (component observers, riding
5
+ * the per-row dirty list) into a `reactiveMap` — publishing O(changed),
6
6
  * not O(all), each tick. Declarative selection + closure projection (the Bevy
7
7
  * `ExtractComponent` / WatermelonDB `observeWithColumns` shape):
8
8
  * - `syncComponentToMap(def, project)` — one component, grain `"entity"`/`"column"`.
@@ -11,7 +11,7 @@
11
11
  *
12
12
  * For singleton/ephemeral UI state (net status+latency, FPS/mem, wave timer), model
13
13
  * it as a component on a reserved singleton entity and read it keyless via per-field
14
- * channels (#687 / ADR-0024) — NOT a separate reactive-resource subsystem:
14
+ * channels — NOT a separate reactive-resource subsystem:
15
15
  * - `syncSingletonToStruct(def, eid, [fields])` — one singleton entity → `reactiveStruct`.
16
16
  * - `syncSingletonToArray(def, eid, [fields])` — one singleton entity → `reactiveArray` (ordered slots).
17
17
  *
@@ -1,8 +1,8 @@
1
1
  /**
2
- * The production ECS→UI reactive bridge (#672 / ADR-0021).
2
+ * The production ECS→UI reactive bridge.
3
3
  *
4
- * Drains the engine's own change detection (ADR-0013 component observers, riding
5
- * the ADR-0012 per-row dirty list) into a `reactiveMap` — publishing O(changed),
4
+ * Drains the engine's own change detection (component observers, riding
5
+ * the per-row dirty list) into a `reactiveMap` — publishing O(changed),
6
6
  * not O(all), each tick. Declarative selection + closure projection (the Bevy
7
7
  * `ExtractComponent` / WatermelonDB `observeWithColumns` shape):
8
8
  * - `syncComponentToMap(def, project)` — one component, grain `"entity"`/`"column"`.
@@ -11,7 +11,7 @@
11
11
  *
12
12
  * For singleton/ephemeral UI state (net status+latency, FPS/mem, wave timer), model
13
13
  * it as a component on a reserved singleton entity and read it keyless via per-field
14
- * channels (#687 / ADR-0024) — NOT a separate reactive-resource subsystem:
14
+ * channels — NOT a separate reactive-resource subsystem:
15
15
  * - `syncSingletonToStruct(def, eid, [fields])` — one singleton entity → `reactiveStruct`.
16
16
  * - `syncSingletonToArray(def, eid, [fields])` — one singleton entity → `reactiveArray` (ordered slots).
17
17
  *
@@ -1,5 +1,5 @@
1
1
  import { b as f, u as _ } from "../../kernel-Cz2Kxlwl.js";
2
- import { r as m, s as E, a as p, b as w } from "../../shallow-9S1pY_Iw.js";
2
+ import { r as m, s as E, a as p, b as w } from "../../shallow-CiFC70Dz.js";
3
3
  class v {
4
4
  constructor(n) {
5
5
  this.def = n;
@@ -64,7 +64,7 @@ function A(l, n, s, r = {}) {
64
64
  },
65
65
  onAdd: (i, t) => y(i, t),
66
66
  onRemove: (i) => c.delete(i),
67
- // Disable = soft remove from the channel; enable = re-add (#677). The
67
+ // Disable = soft remove from the channel; enable = re-add. The
68
68
  // column sweep is bounded by enabled rows, so a disabled row would never
69
69
  // refresh — drop it on disable, republish on enable.
70
70
  onDisable: (i) => c.delete(i),
@@ -113,7 +113,7 @@ function M(l, n, s, r = {}) {
113
113
  onAdd: g,
114
114
  onRemove: o,
115
115
  // Disabling any joined component soft-removes the entity from the
116
- // channel; enabling re-evaluates membership and republishes (#677). A
116
+ // channel; enabling re-evaluates membership and republishes. A
117
117
  // disable fires once per carried joined component — `dropRow` is
118
118
  // idempotent, and `publishIfMember` re-checks the full join.
119
119
  onDisable: o,
@@ -1,5 +1,5 @@
1
1
  import { b as f, u as _ } from "../../kernel-DgyrLFjW.js";
2
- import { r as m, s as E, a as p, b as w } from "../../shallow-DfnAm9vG.js";
2
+ import { r as m, s as E, a as p, b as w } from "../../shallow-Bs39EPh1.js";
3
3
  class v {
4
4
  constructor(n) {
5
5
  this.def = n;
@@ -64,7 +64,7 @@ function A(l, n, s, r = {}) {
64
64
  },
65
65
  onAdd: (i, t) => y(i, t),
66
66
  onRemove: (i) => c.delete(i),
67
- // Disable = soft remove from the channel; enable = re-add (#677). The
67
+ // Disable = soft remove from the channel; enable = re-add. The
68
68
  // column sweep is bounded by enabled rows, so a disabled row would never
69
69
  // refresh — drop it on disable, republish on enable.
70
70
  onDisable: (i) => c.delete(i),
@@ -113,7 +113,7 @@ function M(l, n, s, r = {}) {
113
113
  onAdd: g,
114
114
  onRemove: o,
115
115
  // Disabling any joined component soft-removes the entity from the
116
- // channel; enabling re-evaluates membership and republishes (#677). A
116
+ // channel; enabling re-evaluates membership and republishes. A
117
117
  // disable fires once per carried joined component — `dropRow` is
118
118
  // idempotent, and `publishIfMember` re-checks the full join.
119
119
  onDisable: o,
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * `@oasys/oecs/solid` — the SolidJS adapter plugin for oecs's reactive
3
- * kernel (`@oasys/oecs/reactive` / `../../reactive`, #646 / ADR-0021).
3
+ * kernel (`@oasys/oecs/reactive` / `../../reactive`).
4
4
  */
5
5
  export { fromKernel, fromKernelMap, fromKernelStruct, fromKernelArray, type KernelMapView } from './kernel_solid.cjs';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * `@oasys/oecs/solid` — the SolidJS adapter plugin for oecs's reactive
3
- * kernel (`@oasys/oecs/reactive` / `../../reactive`, #646 / ADR-0021).
3
+ * kernel (`@oasys/oecs/reactive` / `../../reactive`).
4
4
  */
5
5
  export { fromKernel, fromKernelMap, fromKernelStruct, fromKernelArray, type KernelMapView } from './kernel_solid.js';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -19,7 +19,7 @@ function h(e) {
19
19
  has: (n, r) => s.has(r),
20
20
  ownKeys: () => o,
21
21
  getOwnPropertyDescriptor: (n, r) => s.has(r) ? { get: () => t[r](), enumerable: !0, configurable: !0 } : void 0,
22
- // Read surface only (`Readonly<T>`, POLISH_AUDIT #8) — mirrors the kernel
22
+ // Read surface only (`Readonly<T>`) — mirrors the kernel
23
23
  // struct proxy's trap so a JS-side assignment fails loudly instead of
24
24
  // sticking a non-reactive value on the hidden target.
25
25
  set: (n, r) => {
@@ -19,7 +19,7 @@ function m(e) {
19
19
  has: (n, r) => s.has(r),
20
20
  ownKeys: () => o,
21
21
  getOwnPropertyDescriptor: (n, r) => s.has(r) ? { get: () => t[r](), enumerable: !0, configurable: !0 } : void 0,
22
- // Read surface only (`Readonly<T>`, POLISH_AUDIT #8) — mirrors the kernel
22
+ // Read surface only (`Readonly<T>`) — mirrors the kernel
23
23
  // struct proxy's trap so a JS-side assignment fails loudly instead of
24
24
  // sticking a non-reactive value on the hidden target.
25
25
  set: (n, r) => !1
@@ -26,7 +26,7 @@ export declare function fromKernelMap<K, V>(map: ReactiveMap<K, V>): KernelMapVi
26
26
  * `view.field` in a Solid scope tracks that field alone (one `fromKernel` per
27
27
  * field), so a change to one field re-renders only its readers. Completes the
28
28
  * `fromKernel` / `fromKernelMap` / `fromKernelStruct` trio — the read side for the
29
- * singleton/ephemeral UI state `syncSingletonToStruct` publishes (ADR-0024). The
29
+ * singleton/ephemeral UI state `syncSingletonToStruct` publishes. The
30
30
  * field set is read once from the (enumerable) struct proxy; call inside a component
31
31
  * or `root` so each field's `onCleanup` has an owner. The kernel struct's per-field
32
32
  * `eq` and batching carry through `fromKernel` unchanged.
@@ -26,7 +26,7 @@ export declare function fromKernelMap<K, V>(map: ReactiveMap<K, V>): KernelMapVi
26
26
  * `view.field` in a Solid scope tracks that field alone (one `fromKernel` per
27
27
  * field), so a change to one field re-renders only its readers. Completes the
28
28
  * `fromKernel` / `fromKernelMap` / `fromKernelStruct` trio — the read side for the
29
- * singleton/ephemeral UI state `syncSingletonToStruct` publishes (ADR-0024). The
29
+ * singleton/ephemeral UI state `syncSingletonToStruct` publishes. The
30
30
  * field set is read once from the (enumerable) struct proxy; call inside a component
31
31
  * or `root` so each field's `onCleanup` has an owner. The kernel struct's per-field
32
32
  * `eq` and batching carry through `fromKernel` unchanged.
@@ -1 +1 @@
1
- {"version":3,"file":"kernel_solid.d.ts","sourceRoot":"","sources":["../../../src/extensions/solid/kernel_solid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAA2B,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAa,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGjF;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAI5D;AAED,kEAAkE;AAClE,MAAM,WAAW,aAAa,CAAC,CAAC,EAAE,CAAC;IAClC,8EAA8E;IAC9E,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACtC;;;uCAGmC;IACnC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;CACtC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAK/E;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAgCnF;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAEhF"}
1
+ {"version":3,"file":"kernel_solid.d.ts","sourceRoot":"","sources":["../../../src/extensions/solid/kernel_solid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAA2B,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAa,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGjF;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAI5D;AAED,kEAAkE;AAClE,MAAM,WAAW,aAAa,CAAC,CAAC,EAAE,CAAC;IAClC,8EAA8E;IAC9E,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACtC;;;uCAGmC;IACnC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;CACtC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAK/E;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAgCnF;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAEhF"}