@oasys/oecs 0.5.4 → 0.6.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 (510) hide show
  1. package/CHANGELOG.md +1223 -266
  2. package/README.md +217 -112
  3. package/dist/core/ecs/access_check.d.cts +29 -29
  4. package/dist/core/ecs/access_check.d.ts +29 -29
  5. package/dist/core/ecs/access_check.d.ts.map +1 -1
  6. package/dist/core/ecs/archetype.d.cts +217 -209
  7. package/dist/core/ecs/archetype.d.ts +217 -209
  8. package/dist/core/ecs/archetype.d.ts.map +1 -1
  9. package/dist/core/ecs/archetype_closure.d.cts +23 -0
  10. package/dist/core/ecs/archetype_closure.d.ts +23 -0
  11. package/dist/core/ecs/archetype_closure.d.ts.map +1 -0
  12. package/dist/core/ecs/archetype_graph.d.cts +33 -33
  13. package/dist/core/ecs/archetype_graph.d.ts +33 -33
  14. package/dist/core/ecs/archetype_graph.d.ts.map +1 -1
  15. package/dist/core/ecs/archetype_types.d.cts +55 -0
  16. package/dist/core/ecs/archetype_types.d.ts +55 -0
  17. package/dist/core/ecs/archetype_types.d.ts.map +1 -0
  18. package/dist/core/ecs/change_feed.d.cts +53 -0
  19. package/dist/core/ecs/change_feed.d.ts +53 -0
  20. package/dist/core/ecs/change_feed.d.ts.map +1 -0
  21. package/dist/core/ecs/changed_query.d.cts +36 -0
  22. package/dist/core/ecs/changed_query.d.ts +36 -0
  23. package/dist/core/ecs/changed_query.d.ts.map +1 -0
  24. package/dist/core/ecs/chunk_columns.d.cts +49 -0
  25. package/dist/core/ecs/chunk_columns.d.ts +49 -0
  26. package/dist/core/ecs/chunk_columns.d.ts.map +1 -0
  27. package/dist/core/ecs/command_log.d.cts +26 -26
  28. package/dist/core/ecs/command_log.d.ts +26 -26
  29. package/dist/core/ecs/command_log.d.ts.map +1 -1
  30. package/dist/core/ecs/component.d.cts +43 -42
  31. package/dist/core/ecs/component.d.ts +43 -42
  32. package/dist/core/ecs/component.d.ts.map +1 -1
  33. package/dist/core/ecs/component_registry.d.cts +53 -0
  34. package/dist/core/ecs/component_registry.d.ts +53 -0
  35. package/dist/core/ecs/component_registry.d.ts.map +1 -0
  36. package/dist/core/ecs/compute_backend.d.cts +18 -7
  37. package/dist/core/ecs/compute_backend.d.ts +18 -7
  38. package/dist/core/ecs/compute_backend.d.ts.map +1 -1
  39. package/dist/core/ecs/deferred_commands.d.cts +15 -14
  40. package/dist/core/ecs/deferred_commands.d.ts +15 -14
  41. package/dist/core/ecs/deferred_commands.d.ts.map +1 -1
  42. package/dist/core/ecs/dispatch_trace.d.cts +32 -31
  43. package/dist/core/ecs/dispatch_trace.d.ts +32 -31
  44. package/dist/core/ecs/dispatch_trace.d.ts.map +1 -1
  45. package/dist/core/ecs/ecs.d.cts +289 -270
  46. package/dist/core/ecs/ecs.d.ts +289 -270
  47. package/dist/core/ecs/ecs.d.ts.map +1 -1
  48. package/dist/core/ecs/ecs_memory.d.cts +134 -136
  49. package/dist/core/ecs/ecs_memory.d.ts +134 -136
  50. package/dist/core/ecs/ecs_memory.d.ts.map +1 -1
  51. package/dist/core/ecs/ecs_options.d.cts +89 -0
  52. package/dist/core/ecs/ecs_options.d.ts +89 -0
  53. package/dist/core/ecs/ecs_options.d.ts.map +1 -0
  54. package/dist/core/ecs/entity.d.cts +4 -4
  55. package/dist/core/ecs/entity.d.ts +4 -4
  56. package/dist/core/ecs/entity_allocator.d.cts +20 -18
  57. package/dist/core/ecs/entity_allocator.d.ts +20 -18
  58. package/dist/core/ecs/entity_allocator.d.ts.map +1 -1
  59. package/dist/core/ecs/event.d.cts +36 -22
  60. package/dist/core/ecs/event.d.ts +36 -22
  61. package/dist/core/ecs/event.d.ts.map +1 -1
  62. package/dist/core/ecs/facades.d.cts +12 -126
  63. package/dist/core/ecs/facades.d.ts +12 -126
  64. package/dist/core/ecs/facades.d.ts.map +1 -1
  65. package/dist/core/ecs/frame_stepper.d.cts +12 -12
  66. package/dist/core/ecs/frame_stepper.d.ts +12 -12
  67. package/dist/core/ecs/frame_stepper.d.ts.map +1 -1
  68. package/dist/core/ecs/frame_trace.d.cts +32 -32
  69. package/dist/core/ecs/frame_trace.d.ts +32 -32
  70. package/dist/core/ecs/frame_trace.d.ts.map +1 -1
  71. package/dist/core/ecs/host_commands.d.cts +103 -85
  72. package/dist/core/ecs/host_commands.d.ts +103 -85
  73. package/dist/core/ecs/host_commands.d.ts.map +1 -1
  74. package/dist/core/ecs/index.d.cts +21 -11
  75. package/dist/core/ecs/index.d.ts +21 -11
  76. package/dist/core/ecs/index.d.ts.map +1 -1
  77. package/dist/core/ecs/observer.d.cts +39 -120
  78. package/dist/core/ecs/observer.d.ts +39 -120
  79. package/dist/core/ecs/observer.d.ts.map +1 -1
  80. package/dist/core/ecs/phase.d.cts +79 -0
  81. package/dist/core/ecs/phase.d.ts +79 -0
  82. package/dist/core/ecs/phase.d.ts.map +1 -0
  83. package/dist/core/ecs/plugin.d.cts +125 -0
  84. package/dist/core/ecs/plugin.d.ts +125 -0
  85. package/dist/core/ecs/plugin.d.ts.map +1 -0
  86. package/dist/core/ecs/plugin_slots.d.cts +26 -0
  87. package/dist/core/ecs/plugin_slots.d.ts +26 -0
  88. package/dist/core/ecs/plugin_slots.d.ts.map +1 -0
  89. package/dist/core/ecs/query.d.cts +208 -578
  90. package/dist/core/ecs/query.d.ts +208 -578
  91. package/dist/core/ecs/query.d.ts.map +1 -1
  92. package/dist/core/ecs/query_cache.d.cts +130 -0
  93. package/dist/core/ecs/query_cache.d.ts +130 -0
  94. package/dist/core/ecs/query_cache.d.ts.map +1 -0
  95. package/dist/core/ecs/query_registry.d.cts +47 -0
  96. package/dist/core/ecs/query_registry.d.ts +47 -0
  97. package/dist/core/ecs/query_registry.d.ts.map +1 -0
  98. package/dist/core/ecs/query_terms.d.cts +126 -0
  99. package/dist/core/ecs/query_terms.d.ts +126 -0
  100. package/dist/core/ecs/query_terms.d.ts.map +1 -0
  101. package/dist/core/ecs/ref.d.cts +100 -39
  102. package/dist/core/ecs/ref.d.ts +100 -39
  103. package/dist/core/ecs/ref.d.ts.map +1 -1
  104. package/dist/core/ecs/relation.d.cts +101 -182
  105. package/dist/core/ecs/relation.d.ts +101 -182
  106. package/dist/core/ecs/relation.d.ts.map +1 -1
  107. package/dist/core/ecs/resource.d.cts +13 -13
  108. package/dist/core/ecs/resource.d.ts +13 -13
  109. package/dist/core/ecs/resource_registry.d.cts +5 -5
  110. package/dist/core/ecs/resource_registry.d.ts +5 -5
  111. package/dist/core/ecs/resource_registry.d.ts.map +1 -1
  112. package/dist/core/ecs/row_kinds.d.cts +24 -0
  113. package/dist/core/ecs/row_kinds.d.ts +24 -0
  114. package/dist/core/ecs/row_kinds.d.ts.map +1 -0
  115. package/dist/core/ecs/run_condition.d.cts +23 -23
  116. package/dist/core/ecs/run_condition.d.ts +23 -23
  117. package/dist/core/ecs/run_condition.d.ts.map +1 -1
  118. package/dist/core/ecs/schedule.d.cts +91 -120
  119. package/dist/core/ecs/schedule.d.ts +91 -120
  120. package/dist/core/ecs/schedule.d.ts.map +1 -1
  121. package/dist/core/ecs/schedule_plan.d.cts +33 -0
  122. package/dist/core/ecs/schedule_plan.d.ts +33 -0
  123. package/dist/core/ecs/schedule_plan.d.ts.map +1 -0
  124. package/dist/core/ecs/snapshot.d.cts +77 -0
  125. package/dist/core/ecs/snapshot.d.ts +77 -0
  126. package/dist/core/ecs/snapshot.d.ts.map +1 -0
  127. package/dist/core/ecs/snapshot_mount.d.cts +42 -0
  128. package/dist/core/ecs/snapshot_mount.d.ts +42 -0
  129. package/dist/core/ecs/snapshot_mount.d.ts.map +1 -0
  130. package/dist/core/ecs/sparse_store.d.cts +108 -51
  131. package/dist/core/ecs/sparse_store.d.ts +108 -51
  132. package/dist/core/ecs/sparse_store.d.ts.map +1 -1
  133. package/dist/core/ecs/store.d.cts +527 -473
  134. package/dist/core/ecs/store.d.ts +527 -473
  135. package/dist/core/ecs/store.d.ts.map +1 -1
  136. package/dist/core/ecs/store_layout_listener.d.cts +6 -6
  137. package/dist/core/ecs/store_layout_listener.d.ts +6 -6
  138. package/dist/core/ecs/store_types.d.cts +122 -0
  139. package/dist/core/ecs/store_types.d.ts +122 -0
  140. package/dist/core/ecs/store_types.d.ts.map +1 -0
  141. package/dist/core/ecs/system.d.cts +146 -61
  142. package/dist/core/ecs/system.d.ts +146 -61
  143. package/dist/core/ecs/system.d.ts.map +1 -1
  144. package/dist/core/ecs/system_context.d.cts +296 -0
  145. package/dist/core/ecs/system_context.d.ts +296 -0
  146. package/dist/core/ecs/system_context.d.ts.map +1 -0
  147. package/dist/core/ecs/system_set.d.cts +48 -0
  148. package/dist/core/ecs/system_set.d.ts +48 -0
  149. package/dist/core/ecs/system_set.d.ts.map +1 -0
  150. package/dist/core/ecs/utils/arrays.d.cts +15 -1
  151. package/dist/core/ecs/utils/arrays.d.ts +15 -1
  152. package/dist/core/ecs/utils/arrays.d.ts.map +1 -1
  153. package/dist/core/ecs/utils/error.d.cts +82 -6
  154. package/dist/core/ecs/utils/error.d.ts +82 -6
  155. package/dist/core/ecs/utils/error.d.ts.map +1 -1
  156. package/dist/core/ecs/utils/plugin_error.d.cts +10 -0
  157. package/dist/core/ecs/utils/plugin_error.d.ts +10 -0
  158. package/dist/core/ecs/utils/plugin_error.d.ts.map +1 -0
  159. package/dist/core/restore_errors.d.cts +30 -0
  160. package/dist/core/restore_errors.d.ts +30 -0
  161. package/dist/core/restore_errors.d.ts.map +1 -0
  162. package/dist/core/store/action_ring.d.cts +44 -44
  163. package/dist/core/store/action_ring.d.ts +44 -44
  164. package/dist/core/store/action_ring.d.ts.map +1 -1
  165. package/dist/core/store/allocator.d.cts +149 -95
  166. package/dist/core/store/allocator.d.ts +149 -95
  167. package/dist/core/store/allocator.d.ts.map +1 -1
  168. package/dist/core/store/buffer_backed_column.d.cts +17 -17
  169. package/dist/core/store/buffer_backed_column.d.ts +17 -17
  170. package/dist/core/store/buffer_backed_column.d.ts.map +1 -1
  171. package/dist/core/store/column_store.d.cts +124 -86
  172. package/dist/core/store/column_store.d.ts +124 -86
  173. package/dist/core/store/column_store.d.ts.map +1 -1
  174. package/dist/core/store/command_dispatch.d.cts +14 -15
  175. package/dist/core/store/command_dispatch.d.ts +14 -15
  176. package/dist/core/store/command_dispatch.d.ts.map +1 -1
  177. package/dist/core/store/command_ring.d.cts +36 -39
  178. package/dist/core/store/command_ring.d.ts +36 -39
  179. package/dist/core/store/command_ring.d.ts.map +1 -1
  180. package/dist/core/store/descriptor.d.cts +34 -17
  181. package/dist/core/store/descriptor.d.ts +34 -17
  182. package/dist/core/store/descriptor.d.ts.map +1 -1
  183. package/dist/core/store/entity_index.d.cts +34 -35
  184. package/dist/core/store/entity_index.d.ts +34 -35
  185. package/dist/core/store/entity_index.d.ts.map +1 -1
  186. package/dist/core/store/event_ring.d.cts +36 -38
  187. package/dist/core/store/event_ring.d.ts +36 -38
  188. package/dist/core/store/event_ring.d.ts.map +1 -1
  189. package/dist/core/store/extend.d.cts +13 -7
  190. package/dist/core/store/extend.d.ts +13 -7
  191. package/dist/core/store/extend.d.ts.map +1 -1
  192. package/dist/core/store/grow.d.cts +2 -2
  193. package/dist/core/store/grow.d.ts +2 -2
  194. package/dist/core/store/grow.d.ts.map +1 -1
  195. package/dist/core/store/header.d.cts +31 -27
  196. package/dist/core/store/header.d.ts +31 -27
  197. package/dist/core/store/header.d.ts.map +1 -1
  198. package/dist/core/store/index.d.cts +10 -10
  199. package/dist/core/store/index.d.ts +10 -10
  200. package/dist/core/store/index.d.ts.map +1 -1
  201. package/dist/core/store/layout_ops.d.cts +71 -62
  202. package/dist/core/store/layout_ops.d.ts +71 -62
  203. package/dist/core/store/layout_ops.d.ts.map +1 -1
  204. package/dist/core/store/region_table.d.cts +28 -21
  205. package/dist/core/store/region_table.d.ts +28 -21
  206. package/dist/core/store/region_table.d.ts.map +1 -1
  207. package/dist/core/store/snapshot.d.cts +31 -16
  208. package/dist/core/store/snapshot.d.ts +31 -16
  209. package/dist/core/store/snapshot.d.ts.map +1 -1
  210. package/dist/core/store/state_hash.d.cts +12 -12
  211. package/dist/core/store/state_hash.d.ts +12 -12
  212. package/dist/core/store/state_hash.d.ts.map +1 -1
  213. package/dist/core/store/store_regions.d.cts +10 -10
  214. package/dist/core/store/store_regions.d.ts +10 -10
  215. package/dist/core/store/store_regions.d.ts.map +1 -1
  216. package/dist/core/store/vendored_abi/abi.d.cts +27 -2
  217. package/dist/core/store/vendored_abi/abi.d.ts +27 -2
  218. package/dist/core/store/vendored_abi/abi.d.ts.map +1 -1
  219. package/dist/host_commands-B2KMx8O2.cjs +1 -0
  220. package/dist/host_commands-ClVPvhSa.cjs +2 -0
  221. package/dist/host_commands-CwxVQS1z.js +1524 -0
  222. package/dist/host_commands-nJvTy88E.js +1667 -0
  223. package/dist/index.cjs +1 -1
  224. package/dist/index.d.cts +15 -10
  225. package/dist/index.d.ts +15 -10
  226. package/dist/index.d.ts.map +1 -1
  227. package/dist/index.development.cjs +1 -1
  228. package/dist/index.development.js +5804 -5203
  229. package/dist/index.js +5323 -4764
  230. package/dist/internal.cjs +2 -2
  231. package/dist/internal.d.cts +5 -2
  232. package/dist/internal.d.ts +5 -2
  233. package/dist/internal.d.ts.map +1 -1
  234. package/dist/internal.development.cjs +1 -1
  235. package/dist/internal.development.js +70 -20
  236. package/dist/internal.js +138 -83
  237. package/dist/plugins/abi-D3V-QUSf.cjs +1 -0
  238. package/dist/plugins/abi-NP8pNxpd.js +42 -0
  239. package/dist/plugins/arrays-Dr_1hCjL.js +28 -0
  240. package/dist/plugins/arrays-Dt-Joc4i.cjs +1 -0
  241. package/dist/plugins/assertions-gtDVfbnQ.js +6 -0
  242. package/dist/plugins/assertions-z5GQd_bB.cjs +1 -0
  243. package/dist/{extensions → plugins}/editor/editor.d.cts +54 -54
  244. package/dist/{extensions → plugins}/editor/editor.d.ts +54 -54
  245. package/dist/plugins/editor/editor.d.ts.map +1 -0
  246. package/dist/{extensions → plugins}/editor/field_handle.d.cts +12 -12
  247. package/dist/{extensions → plugins}/editor/field_handle.d.ts +12 -12
  248. package/dist/plugins/editor/field_handle.d.ts.map +1 -0
  249. package/dist/plugins/editor/index.d.cts +22 -0
  250. package/dist/plugins/editor/index.d.ts +22 -0
  251. package/dist/plugins/editor/index.d.ts.map +1 -0
  252. package/dist/plugins/editor.cjs +1 -0
  253. package/dist/plugins/editor.d.cts +1 -0
  254. package/dist/plugins/editor.d.ts +1 -0
  255. package/dist/plugins/editor.development.cjs +1 -0
  256. package/dist/{extensions/editor/index.development.js → plugins/editor.development.js} +81 -64
  257. package/dist/{extensions/editor/index.js → plugins/editor.js} +81 -64
  258. package/dist/plugins/events/event_channel.d.cts +13 -0
  259. package/dist/plugins/events/event_channel.d.ts +13 -0
  260. package/dist/plugins/events/event_channel.d.ts.map +1 -0
  261. package/dist/plugins/events/event_registry.d.cts +22 -0
  262. package/dist/plugins/events/event_registry.d.ts +22 -0
  263. package/dist/plugins/events/event_registry.d.ts.map +1 -0
  264. package/dist/plugins/events/facade.d.cts +26 -0
  265. package/dist/plugins/events/facade.d.ts +26 -0
  266. package/dist/plugins/events/facade.d.ts.map +1 -0
  267. package/dist/plugins/events/index.d.cts +10 -0
  268. package/dist/plugins/events/index.d.ts +10 -0
  269. package/dist/plugins/events/index.d.ts.map +1 -0
  270. package/dist/plugins/events.cjs +1 -0
  271. package/dist/plugins/events.d.cts +1 -0
  272. package/dist/plugins/events.d.ts +1 -0
  273. package/dist/plugins/events.development.cjs +1 -0
  274. package/dist/plugins/events.development.js +174 -0
  275. package/dist/plugins/events.js +159 -0
  276. package/dist/plugins/observers/index.d.cts +23 -0
  277. package/dist/plugins/observers/index.d.ts +23 -0
  278. package/dist/plugins/observers/index.d.ts.map +1 -0
  279. package/dist/plugins/observers/observer_registry.d.cts +101 -0
  280. package/dist/plugins/observers/observer_registry.d.ts +101 -0
  281. package/dist/plugins/observers/observer_registry.d.ts.map +1 -0
  282. package/dist/plugins/observers.cjs +1 -0
  283. package/dist/plugins/observers.d.cts +1 -0
  284. package/dist/plugins/observers.d.ts +1 -0
  285. package/dist/plugins/observers.development.cjs +1 -0
  286. package/dist/plugins/observers.development.js +431 -0
  287. package/dist/plugins/observers.js +403 -0
  288. package/dist/plugins/relation_store-BsoegrZh.js +313 -0
  289. package/dist/plugins/relation_store-DQKSnxsm.cjs +1 -0
  290. package/dist/plugins/relation_store-RBhpcE28.cjs +1 -0
  291. package/dist/plugins/relation_store-RqW5Snx6.js +328 -0
  292. package/dist/plugins/relations/builtin_relations.d.cts +48 -0
  293. package/dist/plugins/relations/builtin_relations.d.ts +48 -0
  294. package/dist/plugins/relations/builtin_relations.d.ts.map +1 -0
  295. package/dist/plugins/relations/facade.d.cts +73 -0
  296. package/dist/plugins/relations/facade.d.ts +73 -0
  297. package/dist/plugins/relations/facade.d.ts.map +1 -0
  298. package/dist/plugins/relations/index.d.cts +11 -0
  299. package/dist/plugins/relations/index.d.ts +11 -0
  300. package/dist/plugins/relations/index.d.ts.map +1 -0
  301. package/dist/{core/ecs → plugins/relations}/relation_service.d.cts +85 -97
  302. package/dist/{core/ecs → plugins/relations}/relation_service.d.ts +85 -97
  303. package/dist/plugins/relations/relation_service.d.ts.map +1 -0
  304. package/dist/plugins/relations/relation_store.d.cts +177 -0
  305. package/dist/plugins/relations/relation_store.d.ts +177 -0
  306. package/dist/plugins/relations/relation_store.d.ts.map +1 -0
  307. package/dist/plugins/relations.cjs +1 -0
  308. package/dist/plugins/relations.d.cts +1 -0
  309. package/dist/plugins/relations.d.ts +1 -0
  310. package/dist/plugins/relations.development.cjs +1 -0
  311. package/dist/plugins/relations.development.js +603 -0
  312. package/dist/plugins/relations.js +553 -0
  313. package/dist/plugins/snapshots/index.d.cts +33 -0
  314. package/dist/plugins/snapshots/index.d.ts +33 -0
  315. package/dist/plugins/snapshots/index.d.ts.map +1 -0
  316. package/dist/plugins/snapshots/resume.d.cts +57 -0
  317. package/dist/plugins/snapshots/resume.d.ts +57 -0
  318. package/dist/plugins/snapshots/resume.d.ts.map +1 -0
  319. package/dist/plugins/snapshots/snapshot_service.d.cts +59 -0
  320. package/dist/plugins/snapshots/snapshot_service.d.ts +59 -0
  321. package/dist/plugins/snapshots/snapshot_service.d.ts.map +1 -0
  322. package/dist/plugins/snapshots.cjs +1 -0
  323. package/dist/plugins/snapshots.d.cts +1 -0
  324. package/dist/plugins/snapshots.d.ts +1 -0
  325. package/dist/plugins/snapshots.development.cjs +1 -0
  326. package/dist/plugins/snapshots.development.js +737 -0
  327. package/dist/plugins/snapshots.js +737 -0
  328. package/dist/plugins/solid/index.d.cts +8 -0
  329. package/dist/plugins/solid/index.d.ts +8 -0
  330. package/dist/plugins/solid/index.d.ts.map +1 -0
  331. package/dist/plugins/solid/solid.d.cts +97 -0
  332. package/dist/plugins/solid/solid.d.ts +97 -0
  333. package/dist/plugins/solid/solid.d.ts.map +1 -0
  334. package/dist/plugins/solid.cjs +1 -0
  335. package/dist/plugins/solid.d.cts +1 -0
  336. package/dist/plugins/solid.d.ts +1 -0
  337. package/dist/plugins/solid.development.cjs +1 -0
  338. package/dist/plugins/solid.development.js +319 -0
  339. package/dist/plugins/solid.js +319 -0
  340. package/dist/plugins/workers/index.d.cts +75 -0
  341. package/dist/plugins/workers/index.d.ts +75 -0
  342. package/dist/plugins/workers/index.d.ts.map +1 -0
  343. package/dist/plugins/workers/node_threads.d.cts +25 -0
  344. package/dist/plugins/workers/node_threads.d.ts +25 -0
  345. package/dist/plugins/workers/node_threads.d.ts.map +1 -0
  346. package/dist/plugins/workers/plan.d.cts +61 -0
  347. package/dist/plugins/workers/plan.d.ts +61 -0
  348. package/dist/plugins/workers/plan.d.ts.map +1 -0
  349. package/dist/plugins/workers/pool.d.cts +144 -0
  350. package/dist/plugins/workers/pool.d.ts +144 -0
  351. package/dist/plugins/workers/pool.d.ts.map +1 -0
  352. package/dist/plugins/workers/protocol.d.cts +112 -0
  353. package/dist/plugins/workers/protocol.d.ts +112 -0
  354. package/dist/plugins/workers/protocol.d.ts.map +1 -0
  355. package/dist/plugins/workers/worker_bind.d.cts +64 -0
  356. package/dist/plugins/workers/worker_bind.d.ts +64 -0
  357. package/dist/plugins/workers/worker_bind.d.ts.map +1 -0
  358. package/dist/plugins/workers/worker_loop.d.cts +14 -0
  359. package/dist/plugins/workers/worker_loop.d.ts +14 -0
  360. package/dist/plugins/workers/worker_loop.d.ts.map +1 -0
  361. package/dist/plugins/workers.cjs +1 -0
  362. package/dist/plugins/workers.d.cts +1 -0
  363. package/dist/plugins/workers.d.ts +1 -0
  364. package/dist/plugins/workers.development.cjs +1 -0
  365. package/dist/plugins/workers.development.js +596 -0
  366. package/dist/plugins/workers.js +474 -0
  367. package/dist/primitives.cjs +1 -1
  368. package/dist/primitives.d.cts +4 -4
  369. package/dist/primitives.d.ts +4 -4
  370. package/dist/primitives.development.cjs +1 -1
  371. package/dist/primitives.development.js +66 -22
  372. package/dist/primitives.js +66 -22
  373. package/dist/shared-BKl12xF1.js +132 -0
  374. package/dist/shared-Dk-pACZT.cjs +1 -0
  375. package/dist/shared.cjs +1 -1
  376. package/dist/shared.d.cts +7 -7
  377. package/dist/shared.d.ts +7 -7
  378. package/dist/shared.d.ts.map +1 -1
  379. package/dist/shared.development.cjs +1 -1
  380. package/dist/shared.development.js +4 -3
  381. package/dist/shared.js +4 -3
  382. package/dist/topological_sort-Cc_yXqPT.js +346 -0
  383. package/dist/topological_sort-vp1imU6D.cjs +1 -0
  384. package/dist/type_primitives/assertions.d.cts +12 -16
  385. package/dist/type_primitives/assertions.d.ts +12 -16
  386. package/dist/type_primitives/assertions.d.ts.map +1 -1
  387. package/dist/type_primitives/binary_heap/binary_heap.d.cts +2 -6
  388. package/dist/type_primitives/binary_heap/binary_heap.d.ts +2 -6
  389. package/dist/type_primitives/binary_heap/binary_heap.d.ts.map +1 -1
  390. package/dist/type_primitives/bitset/bitset.d.cts +7 -11
  391. package/dist/type_primitives/bitset/bitset.d.ts +7 -11
  392. package/dist/type_primitives/bitset/bitset.d.ts.map +1 -1
  393. package/dist/type_primitives/brand.d.cts +2 -7
  394. package/dist/type_primitives/brand.d.ts +2 -7
  395. package/dist/type_primitives/brand.d.ts.map +1 -1
  396. package/dist/type_primitives/error.d.cts +1 -2
  397. package/dist/type_primitives/error.d.ts +1 -2
  398. package/dist/type_primitives/error.d.ts.map +1 -1
  399. package/dist/type_primitives/index.d.cts +1 -1
  400. package/dist/type_primitives/index.d.ts +1 -1
  401. package/dist/type_primitives/sparse_map/sparse_map.d.cts +3 -7
  402. package/dist/type_primitives/sparse_map/sparse_map.d.ts +3 -7
  403. package/dist/type_primitives/sparse_map/sparse_map.d.ts.map +1 -1
  404. package/dist/type_primitives/sparse_set/sparse_set.d.cts +2 -6
  405. package/dist/type_primitives/sparse_set/sparse_set.d.ts +2 -6
  406. package/dist/type_primitives/sparse_set/sparse_set.d.ts.map +1 -1
  407. package/dist/type_primitives/topological_sort/topological_sort.d.cts +1 -5
  408. package/dist/type_primitives/topological_sort/topological_sort.d.ts +1 -5
  409. package/dist/type_primitives/topological_sort/topological_sort.d.ts.map +1 -1
  410. package/dist/type_primitives/typed_arrays/typed_arrays.d.cts +16 -15
  411. package/dist/type_primitives/typed_arrays/typed_arrays.d.ts +16 -15
  412. package/dist/type_primitives/typed_arrays/typed_arrays.d.ts.map +1 -1
  413. package/dist/utils/error.d.ts.map +1 -1
  414. package/dist/version.d.cts +3 -3
  415. package/dist/version.d.ts +3 -3
  416. package/dist/worker.cjs +1 -0
  417. package/dist/worker.d.cts +17 -0
  418. package/dist/worker.d.ts +17 -0
  419. package/dist/worker.d.ts.map +1 -0
  420. package/dist/worker.development.cjs +1 -0
  421. package/dist/worker.development.js +253 -0
  422. package/dist/worker.js +253 -0
  423. package/package.json +363 -191
  424. package/dist/core/ecs/builtin_relations.d.cts +0 -43
  425. package/dist/core/ecs/builtin_relations.d.ts +0 -43
  426. package/dist/core/ecs/builtin_relations.d.ts.map +0 -1
  427. package/dist/core/ecs/event_registry.d.cts +0 -22
  428. package/dist/core/ecs/event_registry.d.ts +0 -22
  429. package/dist/core/ecs/event_registry.d.ts.map +0 -1
  430. package/dist/core/ecs/relation_service.d.ts.map +0 -1
  431. package/dist/core/ecs/resume.d.cts +0 -85
  432. package/dist/core/ecs/resume.d.ts +0 -85
  433. package/dist/core/ecs/resume.d.ts.map +0 -1
  434. package/dist/core/ecs/snapshot_service.d.cts +0 -94
  435. package/dist/core/ecs/snapshot_service.d.ts +0 -94
  436. package/dist/core/ecs/snapshot_service.d.ts.map +0 -1
  437. package/dist/extensions/editor/editor.d.ts.map +0 -1
  438. package/dist/extensions/editor/field_handle.d.ts.map +0 -1
  439. package/dist/extensions/editor/index.cjs +0 -1
  440. package/dist/extensions/editor/index.d.cts +0 -21
  441. package/dist/extensions/editor/index.d.ts +0 -21
  442. package/dist/extensions/editor/index.d.ts.map +0 -1
  443. package/dist/extensions/editor/index.development.cjs +0 -1
  444. package/dist/extensions/reactive/ecs_sync.d.cts +0 -214
  445. package/dist/extensions/reactive/ecs_sync.d.ts +0 -214
  446. package/dist/extensions/reactive/ecs_sync.d.ts.map +0 -1
  447. package/dist/extensions/reactive/index.cjs +0 -1
  448. package/dist/extensions/reactive/index.d.cts +0 -23
  449. package/dist/extensions/reactive/index.d.ts +0 -23
  450. package/dist/extensions/reactive/index.d.ts.map +0 -1
  451. package/dist/extensions/reactive/index.development.cjs +0 -1
  452. package/dist/extensions/reactive/index.development.js +0 -215
  453. package/dist/extensions/reactive/index.js +0 -215
  454. package/dist/extensions/solid/index.cjs +0 -1
  455. package/dist/extensions/solid/index.d.cts +0 -6
  456. package/dist/extensions/solid/index.d.ts +0 -6
  457. package/dist/extensions/solid/index.d.ts.map +0 -1
  458. package/dist/extensions/solid/index.development.cjs +0 -1
  459. package/dist/extensions/solid/index.development.js +0 -40
  460. package/dist/extensions/solid/index.js +0 -36
  461. package/dist/extensions/solid/kernel_solid.d.cts +0 -45
  462. package/dist/extensions/solid/kernel_solid.d.ts +0 -45
  463. package/dist/extensions/solid/kernel_solid.d.ts.map +0 -1
  464. package/dist/host_commands-BlR3oZ3x.js +0 -2406
  465. package/dist/host_commands-C2cpU3yC.cjs +0 -1
  466. package/dist/internal-BoxWl4dG.js +0 -2565
  467. package/dist/internal-CGBEwfeB.cjs +0 -2
  468. package/dist/interop-CT-REx0W.cjs +0 -1
  469. package/dist/interop-CcY6ASQc.js +0 -18
  470. package/dist/interop-DqxleBo7.js +0 -18
  471. package/dist/interop-T1HZ-Dpa.cjs +0 -1
  472. package/dist/kernel-Cz2Kxlwl.js +0 -240
  473. package/dist/kernel-DgyrLFjW.js +0 -227
  474. package/dist/kernel-sw7ScKWu.cjs +0 -1
  475. package/dist/kernel-yWV3XnAb.cjs +0 -1
  476. package/dist/reactive/array.d.cts +0 -24
  477. package/dist/reactive/array.d.ts +0 -24
  478. package/dist/reactive/array.d.ts.map +0 -1
  479. package/dist/reactive/index.cjs +0 -1
  480. package/dist/reactive/index.d.cts +0 -11
  481. package/dist/reactive/index.d.ts +0 -11
  482. package/dist/reactive/index.d.ts.map +0 -1
  483. package/dist/reactive/index.development.cjs +0 -1
  484. package/dist/reactive/index.development.js +0 -18
  485. package/dist/reactive/index.js +0 -18
  486. package/dist/reactive/interop.d.cts +0 -19
  487. package/dist/reactive/interop.d.ts +0 -19
  488. package/dist/reactive/interop.d.ts.map +0 -1
  489. package/dist/reactive/kernel.d.cts +0 -73
  490. package/dist/reactive/kernel.d.ts +0 -73
  491. package/dist/reactive/kernel.d.ts.map +0 -1
  492. package/dist/reactive/map.d.cts +0 -16
  493. package/dist/reactive/map.d.ts +0 -16
  494. package/dist/reactive/map.d.ts.map +0 -1
  495. package/dist/reactive/shallow.d.cts +0 -11
  496. package/dist/reactive/shallow.d.ts +0 -11
  497. package/dist/reactive/shallow.d.ts.map +0 -1
  498. package/dist/reactive/struct.d.cts +0 -10
  499. package/dist/reactive/struct.d.ts +0 -10
  500. package/dist/reactive/struct.d.ts.map +0 -1
  501. package/dist/shallow-Bs39EPh1.js +0 -150
  502. package/dist/shallow-C5YmTbtb.cjs +0 -1
  503. package/dist/shallow-CiFC70Dz.js +0 -159
  504. package/dist/shallow-DQ8aG51_.cjs +0 -1
  505. package/dist/shared-B4v0L1cw.js +0 -109
  506. package/dist/shared-DU78k0pU.cjs +0 -1
  507. package/dist/topological_sort-BDvEyb9W.cjs +0 -1
  508. package/dist/topological_sort-DK6EjpWa.js +0 -135
  509. package/dist/typed_arrays-D3NmwtCG.cjs +0 -1
  510. package/dist/typed_arrays-DIVwVy5_.js +0 -258
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ import { FrameTraceSink } from './frame_trace.cjs';
2
+ import { Archetype } from './archetype.cjs';
3
+ import { EntityID } from './entity.cjs';
4
+ import { ComponentDef, ComponentHandle } from './component.cjs';
5
+ import { SparseComponentID } from './sparse_store.cjs';
6
+ import { RelationDef } from './relation.cjs';
7
+ import { BitSet } from '../../type_primitives/index.cjs';
8
+ import { ArchetypeTerm, QueryTerms } from './query_terms.cjs';
9
+ import { Query } from './query.cjs';
10
+ import { ChangedQuery } from './changed_query.cjs';
11
+ /** The query-driver seam on `Store`, the typed contract behind the
12
+ * underscore members `ecs.ts` and the query internals reach. `Store`
13
+ * implements this. The interface names the collaborator, so a host swap
14
+ * touches no consumer.
15
+ * `tick` and `trace` are deliberately mutable. `ECS.update()` sets the frame
16
+ * tick, and `ECS.setTrace` installs the sink through this seam. */
17
+ export interface QueryHost {
18
+ /** Frame tick, set by `ECS.update()` each frame. `ctx.ecsTick` reads it. */
19
+ tick: number;
20
+ /** Change tick, the stamp every write makes. Advanced before each system
21
+ * run, so a consumer can order a write against its own last run. */
22
+ readonly changeTick: number;
23
+ /** Advance the change tick and return the new value. The schedule calls
24
+ * it before each system run and before each phase flush. */
25
+ advanceChangeTick(): number;
26
+ /** Dev-only frame-trace sink (`ECS.setTrace`). Always null in prod. */
27
+ trace: FrameTraceSink | null;
28
+ /** True once any component observer opted into per-entity dirty tracking,
29
+ * gates `noteSet` at every write site. */
30
+ readonly anyDirtyTracked: boolean;
31
+ /** Bumped when an archetype crosses empty↔non-empty, cached query
32
+ * archetype lists rebuild when their observed epoch is stale. */
33
+ readonly queryDirtyEpoch: number;
34
+ /** Record a row for the entity-level onSet of `cid` from a path that has
35
+ * resolved the archetype and the row (gated by `anyDirtyTracked` at the
36
+ * call site). */
37
+ noteSet(cid: number, arch: Archetype, row: number, eid: EntityID): void;
38
+ /** `noteSet` for a caller that holds the entity alone (`markChanged`). */
39
+ noteSetEntity(def: ComponentHandle, eid: EntityID): void;
40
+ /** A chunk loop took the row tick column of `cid` (`cols.ticks`). */
41
+ noteScan(cid: number): void;
42
+ /** The event registry and the relation service are reached by name off the
43
+ * store (`store.events`, `store.relations`), not through this seam. This
44
+ * interface stays the query driver's view of its host, and nothing else. */
45
+ /** Second query-match path: sparse-term intersection. */
46
+ forEachSparseMatch(include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, terms: QueryTerms, denseArchetypes: readonly Archetype[], cb: (entityId: EntityID) => void): void;
47
+ /** Fourth query-match path: hierarchy depth ordering. */
48
+ forEachHierarchyMatch(include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, terms: QueryTerms, denseArchetypes: readonly Archetype[], relation: RelationDef, maxDepth: number, cb: (entityId: EntityID) => void): void;
49
+ }
50
+ export interface QueryCacheEntry {
51
+ includeMask: BitSet;
52
+ excludeMask: BitSet | null;
53
+ anyOfMask: BitSet | null;
54
+ query: Query<any>;
55
+ }
56
+ /** One owner for every query-resolution cache. Previously the dedup
57
+ * bucket map lived on `ECS` while `Query` populated the composition maps
58
+ * declared on the resolver interface, ownership split across two modules.
59
+ * All entries are structural (a query is minted once per unique term set and
60
+ * lives for the world's lifetime. Components and queries are never
61
+ * unregistered), so there is no invalidation lifecycle, the maps are
62
+ * append-only. Key encodings are unchanged from the pre-extraction fields.
63
+ *
64
+ * The composition maps are exposed as readonly fields (not per-kind accessor
65
+ * pairs): the mutation protocol is uniform (`get` → miss → build → `set`) and
66
+ * hot enough that composition sites keep direct map access. The invariant
67
+ * this class carries is single ownership, not access mediation. */
68
+ export declare class QueryCache {
69
+ private readonly _dedup;
70
+ readonly andSingle: Map<number, Query<any>>;
71
+ readonly notSingle: Map<number, Query<any>>;
72
+ readonly orSingle: Map<number, Query<any>>;
73
+ readonly changedSingle: Map<number, ChangedQuery<any>>;
74
+ readonly optionalSingle: Map<number, Query<any>>;
75
+ readonly andSparseSingle: Map<number, Query<any>>;
76
+ readonly notSparseSingle: Map<number, Query<any>>;
77
+ readonly andRelationSingle: Map<number, Query<any>>;
78
+ readonly notRelationSingle: Map<number, Query<any>>;
79
+ readonly includeDisabledSingle: Map<number, Query<any>>;
80
+ readonly hierarchySingle: Map<number, Query<any>>;
81
+ readonly whereSingle: WeakMap<ArchetypeTerm, Map<number, Query<any>>>;
82
+ /** Dedup lookup: bucket scan with full mask equality. A bucket holds few
83
+ * entries, so the scan is cheap. */
84
+ findDedup(key: number, include: BitSet, exclude: BitSet | null, anyOf: BitSet | null): QueryCacheEntry | undefined;
85
+ /** Record a freshly minted query under its dedup key. */
86
+ addDedup(key: number, entry: QueryCacheEntry): void;
87
+ }
88
+ export interface QueryResolver {
89
+ resolveQuery(include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, defs: readonly ComponentDef[]): Query<any>;
90
+ getLastRunTick(): number;
91
+ /** The change tick, the stamp `forEachChunk` makes via `cols.mut`. */
92
+ getChangeTick(): number;
93
+ /** A chunk loop took the row tick column of `cid` (`cols.ticks`), so the
94
+ * entity-level onSet drain scans the plane this frame. */
95
+ noteScan(cid: number): void;
96
+ getQueryDirtyEpoch(): number;
97
+ nextQueryId(): number;
98
+ /** All query-resolution caches, dedup + composition. One owner. See
99
+ * `QueryCache` for the per-map keying and id-space notes. */
100
+ readonly caches: QueryCache;
101
+ /** Second query-match path: drive iteration by sparse
102
+ * membership rather than the archetype mask, yielding entities, sparse
103
+ * members are scattered across archetypes, so there is no archetype-column
104
+ * span to hand back. With a sparse require term, drive from the smallest
105
+ * required store and filter. With only sparse excludes, drive the dense
106
+ * archetype list and skip excluded rows. With neither, walk dense entities.
107
+ * Only entered via `Query.forEachEntity`, so dense `forEach` never pays.
108
+ * `includeDisabled` widens the per-archetype row scan from enabled rows to
109
+ * all rows. */
110
+ forEachSparseMatch(include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, terms: QueryTerms, denseArchetypes: readonly Archetype[], cb: (entityId: EntityID) => void): void;
111
+ /** Backing sparse id of a relation, resolves a `(R, *)` wildcard term
112
+ * (`andRelation`) to the membership store the sparse-match path
113
+ * already drives. `api` names the query verb the caller used, so a world
114
+ * without the relations plugin faults with the verb it reached. */
115
+ relationBackingSparseId(def: RelationDef, api: string): SparseComponentID;
116
+ /** Third query-match path: `(*, T)`, drive iteration from the union of
117
+ * every relation's `sourcesOf(target)` (dedup + canonical sort), intersected
118
+ * with the dense mask + sparse terms + the enabled-row filter. Only entered via
119
+ * `Query.forEachRelatedTo`. */
120
+ forEachTargetMatch(target: EntityID, include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, terms: QueryTerms, cb: (entityId: EntityID) => void): void;
121
+ /** Fourth query-match path: yield the matched entities (dense mask +
122
+ * sparse terms + enabled-row filter, exactly the `forEachSparseMatch`
123
+ * intersection) in canonical **hierarchy depth order** over exclusive relation
124
+ * `relation`, depth ascending (parents before children), entity index
125
+ * ascending within a depth band. Entities deeper than `maxDepth` are skipped
126
+ * (`HIERARCHY_UNBOUNDED` = no limit). Only entered via `Query.forEachEntity`
127
+ * on a query carrying a `.hierarchy(R)` term. */
128
+ forEachHierarchyMatch(include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, terms: QueryTerms, denseArchetypes: readonly Archetype[], relation: RelationDef, maxDepth: number, cb: (entityId: EntityID) => void): void;
129
+ }
130
+ //# sourceMappingURL=query_cache.d.ts.map
@@ -0,0 +1,130 @@
1
+ import { FrameTraceSink } from './frame_trace.js';
2
+ import { Archetype } from './archetype.js';
3
+ import { EntityID } from './entity.js';
4
+ import { ComponentDef, ComponentHandle } from './component.js';
5
+ import { SparseComponentID } from './sparse_store.js';
6
+ import { RelationDef } from './relation.js';
7
+ import { BitSet } from '../../type_primitives/index.js';
8
+ import { ArchetypeTerm, QueryTerms } from './query_terms.js';
9
+ import { Query } from './query.js';
10
+ import { ChangedQuery } from './changed_query.js';
11
+ /** The query-driver seam on `Store`, the typed contract behind the
12
+ * underscore members `ecs.ts` and the query internals reach. `Store`
13
+ * implements this. The interface names the collaborator, so a host swap
14
+ * touches no consumer.
15
+ * `tick` and `trace` are deliberately mutable. `ECS.update()` sets the frame
16
+ * tick, and `ECS.setTrace` installs the sink through this seam. */
17
+ export interface QueryHost {
18
+ /** Frame tick, set by `ECS.update()` each frame. `ctx.ecsTick` reads it. */
19
+ tick: number;
20
+ /** Change tick, the stamp every write makes. Advanced before each system
21
+ * run, so a consumer can order a write against its own last run. */
22
+ readonly changeTick: number;
23
+ /** Advance the change tick and return the new value. The schedule calls
24
+ * it before each system run and before each phase flush. */
25
+ advanceChangeTick(): number;
26
+ /** Dev-only frame-trace sink (`ECS.setTrace`). Always null in prod. */
27
+ trace: FrameTraceSink | null;
28
+ /** True once any component observer opted into per-entity dirty tracking,
29
+ * gates `noteSet` at every write site. */
30
+ readonly anyDirtyTracked: boolean;
31
+ /** Bumped when an archetype crosses empty↔non-empty, cached query
32
+ * archetype lists rebuild when their observed epoch is stale. */
33
+ readonly queryDirtyEpoch: number;
34
+ /** Record a row for the entity-level onSet of `cid` from a path that has
35
+ * resolved the archetype and the row (gated by `anyDirtyTracked` at the
36
+ * call site). */
37
+ noteSet(cid: number, arch: Archetype, row: number, eid: EntityID): void;
38
+ /** `noteSet` for a caller that holds the entity alone (`markChanged`). */
39
+ noteSetEntity(def: ComponentHandle, eid: EntityID): void;
40
+ /** A chunk loop took the row tick column of `cid` (`cols.ticks`). */
41
+ noteScan(cid: number): void;
42
+ /** The event registry and the relation service are reached by name off the
43
+ * store (`store.events`, `store.relations`), not through this seam. This
44
+ * interface stays the query driver's view of its host, and nothing else. */
45
+ /** Second query-match path: sparse-term intersection. */
46
+ forEachSparseMatch(include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, terms: QueryTerms, denseArchetypes: readonly Archetype[], cb: (entityId: EntityID) => void): void;
47
+ /** Fourth query-match path: hierarchy depth ordering. */
48
+ forEachHierarchyMatch(include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, terms: QueryTerms, denseArchetypes: readonly Archetype[], relation: RelationDef, maxDepth: number, cb: (entityId: EntityID) => void): void;
49
+ }
50
+ export interface QueryCacheEntry {
51
+ includeMask: BitSet;
52
+ excludeMask: BitSet | null;
53
+ anyOfMask: BitSet | null;
54
+ query: Query<any>;
55
+ }
56
+ /** One owner for every query-resolution cache. Previously the dedup
57
+ * bucket map lived on `ECS` while `Query` populated the composition maps
58
+ * declared on the resolver interface, ownership split across two modules.
59
+ * All entries are structural (a query is minted once per unique term set and
60
+ * lives for the world's lifetime. Components and queries are never
61
+ * unregistered), so there is no invalidation lifecycle, the maps are
62
+ * append-only. Key encodings are unchanged from the pre-extraction fields.
63
+ *
64
+ * The composition maps are exposed as readonly fields (not per-kind accessor
65
+ * pairs): the mutation protocol is uniform (`get` → miss → build → `set`) and
66
+ * hot enough that composition sites keep direct map access. The invariant
67
+ * this class carries is single ownership, not access mediation. */
68
+ export declare class QueryCache {
69
+ private readonly _dedup;
70
+ readonly andSingle: Map<number, Query<any>>;
71
+ readonly notSingle: Map<number, Query<any>>;
72
+ readonly orSingle: Map<number, Query<any>>;
73
+ readonly changedSingle: Map<number, ChangedQuery<any>>;
74
+ readonly optionalSingle: Map<number, Query<any>>;
75
+ readonly andSparseSingle: Map<number, Query<any>>;
76
+ readonly notSparseSingle: Map<number, Query<any>>;
77
+ readonly andRelationSingle: Map<number, Query<any>>;
78
+ readonly notRelationSingle: Map<number, Query<any>>;
79
+ readonly includeDisabledSingle: Map<number, Query<any>>;
80
+ readonly hierarchySingle: Map<number, Query<any>>;
81
+ readonly whereSingle: WeakMap<ArchetypeTerm, Map<number, Query<any>>>;
82
+ /** Dedup lookup: bucket scan with full mask equality. A bucket holds few
83
+ * entries, so the scan is cheap. */
84
+ findDedup(key: number, include: BitSet, exclude: BitSet | null, anyOf: BitSet | null): QueryCacheEntry | undefined;
85
+ /** Record a freshly minted query under its dedup key. */
86
+ addDedup(key: number, entry: QueryCacheEntry): void;
87
+ }
88
+ export interface QueryResolver {
89
+ resolveQuery(include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, defs: readonly ComponentDef[]): Query<any>;
90
+ getLastRunTick(): number;
91
+ /** The change tick, the stamp `forEachChunk` makes via `cols.mut`. */
92
+ getChangeTick(): number;
93
+ /** A chunk loop took the row tick column of `cid` (`cols.ticks`), so the
94
+ * entity-level onSet drain scans the plane this frame. */
95
+ noteScan(cid: number): void;
96
+ getQueryDirtyEpoch(): number;
97
+ nextQueryId(): number;
98
+ /** All query-resolution caches, dedup + composition. One owner. See
99
+ * `QueryCache` for the per-map keying and id-space notes. */
100
+ readonly caches: QueryCache;
101
+ /** Second query-match path: drive iteration by sparse
102
+ * membership rather than the archetype mask, yielding entities, sparse
103
+ * members are scattered across archetypes, so there is no archetype-column
104
+ * span to hand back. With a sparse require term, drive from the smallest
105
+ * required store and filter. With only sparse excludes, drive the dense
106
+ * archetype list and skip excluded rows. With neither, walk dense entities.
107
+ * Only entered via `Query.forEachEntity`, so dense `forEach` never pays.
108
+ * `includeDisabled` widens the per-archetype row scan from enabled rows to
109
+ * all rows. */
110
+ forEachSparseMatch(include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, terms: QueryTerms, denseArchetypes: readonly Archetype[], cb: (entityId: EntityID) => void): void;
111
+ /** Backing sparse id of a relation, resolves a `(R, *)` wildcard term
112
+ * (`andRelation`) to the membership store the sparse-match path
113
+ * already drives. `api` names the query verb the caller used, so a world
114
+ * without the relations plugin faults with the verb it reached. */
115
+ relationBackingSparseId(def: RelationDef, api: string): SparseComponentID;
116
+ /** Third query-match path: `(*, T)`, drive iteration from the union of
117
+ * every relation's `sourcesOf(target)` (dedup + canonical sort), intersected
118
+ * with the dense mask + sparse terms + the enabled-row filter. Only entered via
119
+ * `Query.forEachRelatedTo`. */
120
+ forEachTargetMatch(target: EntityID, include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, terms: QueryTerms, cb: (entityId: EntityID) => void): void;
121
+ /** Fourth query-match path: yield the matched entities (dense mask +
122
+ * sparse terms + enabled-row filter, exactly the `forEachSparseMatch`
123
+ * intersection) in canonical **hierarchy depth order** over exclusive relation
124
+ * `relation`, depth ascending (parents before children), entity index
125
+ * ascending within a depth band. Entities deeper than `maxDepth` are skipped
126
+ * (`HIERARCHY_UNBOUNDED` = no limit). Only entered via `Query.forEachEntity`
127
+ * on a query carrying a `.hierarchy(R)` term. */
128
+ forEachHierarchyMatch(include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, terms: QueryTerms, denseArchetypes: readonly Archetype[], relation: RelationDef, maxDepth: number, cb: (entityId: EntityID) => void): void;
129
+ }
130
+ //# sourceMappingURL=query_cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query_cache.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/query_cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import { BitSet } from '../../type_primitives/index.cjs';
2
+ import { Archetype, ArchetypeID } from './archetype.cjs';
3
+ import { Query } from './query.cjs';
4
+ /** What the registry needs from the archetype topology, closure-injected.
5
+ *
6
+ * Three reads, no writes. `archetypes` and `componentIndex` hand back the
7
+ * graph's live arrays, which is safe because the graph is their sole writer
8
+ * and an archetype is never removed. Creation and mint path only. */
9
+ export interface QueryRegistryHost {
10
+ /** Every archetype, by id. Read when a query declares no required
11
+ * component and has to scan the whole set. */
12
+ readonly archetypes: () => readonly Archetype[];
13
+ /** Component id to the ascending archetype ids that hold it. The registry
14
+ * starts its superset scan from the smallest bucket. */
15
+ readonly componentIndex: () => readonly ArchetypeID[][];
16
+ /** One archetype by id. */
17
+ readonly archetypeAt: (id: ArchetypeID) => Archetype;
18
+ }
19
+ export declare class QueryRegistry {
20
+ private readonly _registered;
21
+ private readonly _host;
22
+ constructor(host: QueryRegistryHost);
23
+ /**
24
+ * Every archetype matching the given masks.
25
+ * Starts from the component with the fewest archetypes, which is the
26
+ * tightest starting point for the superset intersection.
27
+ */
28
+ matching(required: BitSet, excluded?: BitSet, anyOf?: BitSet): readonly Archetype[];
29
+ /**
30
+ * Register a live query. Returns a mutable `Archetype[]` that `fanIn`
31
+ * pushes newly-created matching archetypes into, keeping the query always
32
+ * up to date.
33
+ *
34
+ * **Mask ownership: borrowed.** Each mask is copied into the record here,
35
+ * so a caller may pass a scratch mask it intends to reuse.
36
+ */
37
+ register(include: BitSet, exclude?: BitSet, anyOf?: BitSet): Archetype[];
38
+ /** Attach the `Query` that owns `result`, found by array identity. The
39
+ * back reference is for diagnostics, and the caller makes this call right
40
+ * after `register`. */
41
+ updateRef(result: Archetype[], query: Query<any>): void;
42
+ /** Push a newly-installed archetype into every registered query whose
43
+ * masks it satisfies. No epoch bump, see the note in
44
+ * `ArchetypeGraph._install`. Once per archetype creation. */
45
+ fanIn(archetype: Archetype): void;
46
+ }
47
+ //# sourceMappingURL=query_registry.d.ts.map
@@ -0,0 +1,47 @@
1
+ import { BitSet } from '../../type_primitives/index.js';
2
+ import { Archetype, ArchetypeID } from './archetype.js';
3
+ import { Query } from './query.js';
4
+ /** What the registry needs from the archetype topology, closure-injected.
5
+ *
6
+ * Three reads, no writes. `archetypes` and `componentIndex` hand back the
7
+ * graph's live arrays, which is safe because the graph is their sole writer
8
+ * and an archetype is never removed. Creation and mint path only. */
9
+ export interface QueryRegistryHost {
10
+ /** Every archetype, by id. Read when a query declares no required
11
+ * component and has to scan the whole set. */
12
+ readonly archetypes: () => readonly Archetype[];
13
+ /** Component id to the ascending archetype ids that hold it. The registry
14
+ * starts its superset scan from the smallest bucket. */
15
+ readonly componentIndex: () => readonly ArchetypeID[][];
16
+ /** One archetype by id. */
17
+ readonly archetypeAt: (id: ArchetypeID) => Archetype;
18
+ }
19
+ export declare class QueryRegistry {
20
+ private readonly _registered;
21
+ private readonly _host;
22
+ constructor(host: QueryRegistryHost);
23
+ /**
24
+ * Every archetype matching the given masks.
25
+ * Starts from the component with the fewest archetypes, which is the
26
+ * tightest starting point for the superset intersection.
27
+ */
28
+ matching(required: BitSet, excluded?: BitSet, anyOf?: BitSet): readonly Archetype[];
29
+ /**
30
+ * Register a live query. Returns a mutable `Archetype[]` that `fanIn`
31
+ * pushes newly-created matching archetypes into, keeping the query always
32
+ * up to date.
33
+ *
34
+ * **Mask ownership: borrowed.** Each mask is copied into the record here,
35
+ * so a caller may pass a scratch mask it intends to reuse.
36
+ */
37
+ register(include: BitSet, exclude?: BitSet, anyOf?: BitSet): Archetype[];
38
+ /** Attach the `Query` that owns `result`, found by array identity. The
39
+ * back reference is for diagnostics, and the caller makes this call right
40
+ * after `register`. */
41
+ updateRef(result: Archetype[], query: Query<any>): void;
42
+ /** Push a newly-installed archetype into every registered query whose
43
+ * masks it satisfies. No epoch bump, see the note in
44
+ * `ArchetypeGraph._install`. Once per archetype creation. */
45
+ fanIn(archetype: Archetype): void;
46
+ }
47
+ //# sourceMappingURL=query_registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query_registry.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/query_registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;KAsBK;AAEL,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC;;;;qEAIqE;AACrE,MAAM,WAAW,iBAAiB;IACjC;kDAC8C;IAC9C,QAAQ,CAAC,UAAU,EAAE,MAAM,SAAS,SAAS,EAAE,CAAC;IAChD;4DACwD;IACxD,QAAQ,CAAC,cAAc,EAAE,MAAM,SAAS,WAAW,EAAE,EAAE,CAAC;IACxD,2BAA2B;IAC3B,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,SAAS,CAAC;CACrD;AAaD,qBAAa,aAAa;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IACrD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;gBAE9B,IAAI,EAAE,iBAAiB;IAInC;;;;OAIG;IACI,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,SAAS,EAAE;IA8D1F;;;;;;;OAOG;IACI,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE;IAY/E;;2BAEuB;IAChB,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI;IAU9D;;iEAE6D;IACtD,KAAK,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;CAaxC"}
@@ -0,0 +1,126 @@
1
+ import { ComponentDef, ComponentID } from './component.cjs';
2
+ import { SparseComponentID } from './sparse_store.cjs';
3
+ import { RelationDef } from './relation.cjs';
4
+ import { BitSet } from '../../type_primitives/index.cjs';
5
+ /** The non-dense query terms, carried as one frozen record.
6
+ *
7
+ * Every term here leaves the dense component mask alone, so a query that
8
+ * carries one still shares its parent's live archetype list. They travel
9
+ * together through each derive (`and`, `not`, `or`) and through each
10
+ * driver seam below, so one parameter replaces the run of positional lists
11
+ * those signatures used to repeat.
12
+ *
13
+ * A query that carries none of them holds `NO_TERMS`. That is why
14
+ * `_carryNondense` decides with one reference comparison, where it used to
15
+ * test each term in turn. The old shape spread one term across a constructor
16
+ * parameter, a carry test and a `new Query` argument, and a term added to two
17
+ * of the three went unnoticed. Add a term by adding a field here and a line to
18
+ * `deriveTerms`.
19
+ *
20
+ * Cold path. Read once per `forEach` call, never per row. */
21
+ /** An archetype-level term a plugin contributes.
22
+ *
23
+ * The engine already answers three archetype questions with a bit mask: hold
24
+ * these, hold none of these, hold one of these. A term answers a fourth in
25
+ * whatever way the plugin wants, over the same input. `or(and(A, B), C)` is
26
+ * one, and so is any predicate over the component mask.
27
+ *
28
+ * Where it runs. Once per archetype, per query, at the rebuild the store's
29
+ * dirty epoch triggers. Never per row, and never per drive. A query that
30
+ * carries no term reaches a rebuild body byte-identical to today's.
31
+ *
32
+ * What the caller guarantees. `matches` is pure and stable: one archetype
33
+ * gives one answer for the life of the world. The archetype list is rebuilt
34
+ * from scratch on each epoch, so an unstable term does not corrupt the list,
35
+ * but it does make the matched set depend on when the epoch last advanced,
36
+ * which nothing else in the query engine does.
37
+ *
38
+ * Cold path. Build the term once and hold it. */
39
+ export interface ArchetypeTerm {
40
+ /** Names the term in a dev refusal. Diagnostics only, never a cache key. */
41
+ readonly name: string;
42
+ /** True when an archetype whose component mask is `mask` belongs. */
43
+ matches(mask: BitSet): boolean;
44
+ }
45
+ /** One operand of `and`, `or` or `not`. A component definition is a leaf, and
46
+ * holding it is the whole question. Any `ArchetypeTerm` is a node, which is
47
+ * how one combinator nests inside another. */
48
+ export type ArchetypeExpr = ComponentDef<any> | ArchetypeTerm;
49
+ /** Every operand holds. `and()` over nothing matches every archetype, the
50
+ * identity of the conjunction, so a fold over an empty list narrows nothing.
51
+ *
52
+ * Pair it with `where`: `q.where(and(Pos, Vel))`. Prefer `q.and(Pos, Vel)`
53
+ * when the operands are a flat list of definitions, because a dense term sets
54
+ * a mask bit and picks the archetypes, where an expression tests each one.
55
+ *
56
+ * Cold path. Build the expression once and hold it, because `where` caches on
57
+ * the term's identity. */
58
+ export declare function and(...terms: ArchetypeExpr[]): ArchetypeTerm;
59
+ /** One operand holds, or more. `or()` over nothing matches no archetype, the
60
+ * identity of the disjunction. Cold path, same caching rule as `and`. */
61
+ export declare function or(...terms: ArchetypeExpr[]): ArchetypeTerm;
62
+ /** No operand holds. Several operands read as one negated disjunction, which
63
+ * is the same set as the conjunction of each negation, so `not(A, B)` matches
64
+ * exactly what `Query.not(A, B)` matches. `not()` over nothing matches every
65
+ * archetype. Cold path, same caching rule as `and`. */
66
+ export declare function not(...terms: ArchetypeExpr[]): ArchetypeTerm;
67
+ export interface QueryTerms {
68
+ /** Sparse membership a matched entity must hold. Also carries the backing
69
+ * sparse id of each `(R, *)` relation term, which is how the wildcard
70
+ * reuses the sparse-match driver unchanged. */
71
+ readonly sparseIncludes: readonly SparseComponentID[];
72
+ /** Sparse membership a matched entity must not hold. */
73
+ readonly sparseExcludes: readonly SparseComponentID[];
74
+ /** Fetch-if-present terms. Does not narrow the matched set. Authorizes
75
+ * `getOptionalColumnRead` under `DEV`. */
76
+ readonly optionalTerms: readonly ComponentID[];
77
+ /** Include disabled rows. Widens the iteration bound from the enabled
78
+ * count to the total count. */
79
+ readonly includesDisabled: boolean;
80
+ /** `(R, *)` terms, recorded for the `DEV` `relationReads` access check
81
+ * alone. The driver reads the backing sparse id off `sparseIncludes`. */
82
+ readonly relationIncludes: readonly RelationDef[];
83
+ readonly relationExcludes: readonly RelationDef[];
84
+ /** Depth-ordering term. Reorders the matched entities, parents first. */
85
+ readonly hierarchyTerm: HierarchyTerm | null;
86
+ /** Archetype-level terms a plugin contributed. Narrows the matched set
87
+ * without touching the dense mask, so the derived query still shares the
88
+ * parent's live archetype list and the narrowing happens at the rebuild.
89
+ * Empty for every query the core builds. */
90
+ readonly archetypeTerms: readonly ArchetypeTerm[];
91
+ }
92
+ /** The terms of a query that declares none. Shared by every dense-only query,
93
+ * so the common path allocates nothing and `_carryNondense` compares one
94
+ * reference. Frozen: a mutation here would reach every such query. */
95
+ export declare const NO_TERMS: QueryTerms;
96
+ /** Build the terms for a derived query.
97
+ *
98
+ * The result never equals `NO_TERMS`, and `_carryNondense` depends on that.
99
+ * Every caller adds a term and none removes one, so a derive always widens the
100
+ * record. The zero-argument forms (`optional()`, `andSparse()`) return the
101
+ * receiver before they reach here, which is what keeps the rule true. A future
102
+ * term that can be removed breaks it, and must collapse an emptied record back
103
+ * to `NO_TERMS` here.
104
+ *
105
+ * Cold path: one call per cache miss on a derive, never per row. */
106
+ export declare function deriveTerms(base: QueryTerms, patch: Partial<QueryTerms>): QueryTerms;
107
+ /** No depth limit on a `.hierarchy(R)` term, yield every matched entity
108
+ * regardless of its depth in the tree. The default `maxDepth`. */
109
+ export declare const HIERARCHY_UNBOUNDED: number;
110
+ /** A `.hierarchy(R)` depth-ordering term. Records the exclusive relation
111
+ * whose tree defines the order and the (optional) max depth to yield. Stored on
112
+ * the Query and consumed by the `forEachEntity` hierarchy match path. Absent
113
+ * (`null`) for the common case. */
114
+ export interface HierarchyTerm {
115
+ /** The exclusive relation whose chain and tree defines the depth ordering. */
116
+ readonly relation: RelationDef;
117
+ /** Inclusive max depth to yield, where a root is 0. The walk skips an entity
118
+ * deeper than this. `HIERARCHY_UNBOUNDED` for no limit (bitECS `Hierarchy()`
119
+ * depth arg). */
120
+ readonly maxDepth: number;
121
+ }
122
+ export declare function termCacheKey(queryId: number, sparseId: number): number;
123
+ export declare function appendSparse(terms: readonly SparseComponentID[], id: number): readonly SparseComponentID[];
124
+ export declare function appendOptional(terms: readonly ComponentID[], id: number): readonly ComponentID[];
125
+ export declare function appendRelation(terms: readonly RelationDef[], def: RelationDef): readonly RelationDef[];
126
+ //# sourceMappingURL=query_terms.d.ts.map