@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
@@ -0,0 +1,36 @@
1
+ import { ArchetypeView } from './archetype.cjs';
2
+ import { ComponentDef } from './component.cjs';
3
+ import { Query } from './query.cjs';
4
+ import { ChunkColumns } from './chunk_columns.cjs';
5
+ export declare class ChangedQuery<Defs extends readonly ComponentDef[]> {
6
+ private readonly _query;
7
+ private readonly _changedIds;
8
+ constructor(query: Query<Defs>, changedIds: number[]);
9
+ /** Also require these components (mirrors `Query.and`). */
10
+ and<D extends ComponentDef[]>(...comps: D): ChangedQuery<[...Defs, ...D]>;
11
+ /** Exclude archetypes holding any of these (mirrors `Query.not`). */
12
+ not(...comps: ComponentDef[]): ChangedQuery<Defs>;
13
+ /** Require at least one of these (mirrors `Query.or`). */
14
+ or(...comps: ComponentDef[]): ChangedQuery<Defs>;
15
+ /** Permit optional-component data access in the loop (mirrors `Query.optional`). */
16
+ optional(...defs: ComponentDef[]): ChangedQuery<Defs>;
17
+ forEach(cb: (arch: ArchetypeView<Defs>) => void): void;
18
+ /** The chunk form of `forEach`: the changed archetypes, as column groups.
19
+ * The row grain sits inside: `cols.ticksRead(def)` is the row tick column,
20
+ * and a row above `cols.since` changed since the previous run of the
21
+ * system. `def` needs row ticks (`ecs.trackRows`). Same include-disabled
22
+ * handling as `Query.forEachChunk`. */
23
+ forEachChunk(cb: (cols: ChunkColumns<Defs>, count: number) => void): void;
24
+ /** @internal, the body of `forEachChunk`: `Query._forEachChunkInner` with
25
+ * the change-tick filter of `forEach` in front of each archetype. */
26
+ private _forEachChunkInner;
27
+ /** @internal, cold `includeDisabled` wrapper, split out of `forEach`
28
+ * so the all-rows flag dance stays out of the inlined hot body. */
29
+ private _forEachIncludeDisabled;
30
+ /** @internal, the `includeDisabled` delegate for `forEach`. The
31
+ * default path inlines this body directly into `forEach` to dodge a
32
+ * megamorphic delegate hop. This copy survives only for the rare all-rows
33
+ * path, which needs the `_setIterAllRows` `finally` wrap. */
34
+ private _forEachInner;
35
+ }
36
+ //# sourceMappingURL=changed_query.d.ts.map
@@ -0,0 +1,36 @@
1
+ import { ArchetypeView } from './archetype.js';
2
+ import { ComponentDef } from './component.js';
3
+ import { Query } from './query.js';
4
+ import { ChunkColumns } from './chunk_columns.js';
5
+ export declare class ChangedQuery<Defs extends readonly ComponentDef[]> {
6
+ private readonly _query;
7
+ private readonly _changedIds;
8
+ constructor(query: Query<Defs>, changedIds: number[]);
9
+ /** Also require these components (mirrors `Query.and`). */
10
+ and<D extends ComponentDef[]>(...comps: D): ChangedQuery<[...Defs, ...D]>;
11
+ /** Exclude archetypes holding any of these (mirrors `Query.not`). */
12
+ not(...comps: ComponentDef[]): ChangedQuery<Defs>;
13
+ /** Require at least one of these (mirrors `Query.or`). */
14
+ or(...comps: ComponentDef[]): ChangedQuery<Defs>;
15
+ /** Permit optional-component data access in the loop (mirrors `Query.optional`). */
16
+ optional(...defs: ComponentDef[]): ChangedQuery<Defs>;
17
+ forEach(cb: (arch: ArchetypeView<Defs>) => void): void;
18
+ /** The chunk form of `forEach`: the changed archetypes, as column groups.
19
+ * The row grain sits inside: `cols.ticksRead(def)` is the row tick column,
20
+ * and a row above `cols.since` changed since the previous run of the
21
+ * system. `def` needs row ticks (`ecs.trackRows`). Same include-disabled
22
+ * handling as `Query.forEachChunk`. */
23
+ forEachChunk(cb: (cols: ChunkColumns<Defs>, count: number) => void): void;
24
+ /** @internal, the body of `forEachChunk`: `Query._forEachChunkInner` with
25
+ * the change-tick filter of `forEach` in front of each archetype. */
26
+ private _forEachChunkInner;
27
+ /** @internal, cold `includeDisabled` wrapper, split out of `forEach`
28
+ * so the all-rows flag dance stays out of the inlined hot body. */
29
+ private _forEachIncludeDisabled;
30
+ /** @internal, the `includeDisabled` delegate for `forEach`. The
31
+ * default path inlines this body directly into `forEach` to dodge a
32
+ * megamorphic delegate hop. This copy survives only for the rare all-rows
33
+ * path, which needs the `_setIterAllRows` `finally` wrap. */
34
+ private _forEachInner;
35
+ }
36
+ //# sourceMappingURL=changed_query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changed_query.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/changed_query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;KAYK;AAEL,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAK/C,qBAAa,YAAY,CAAC,IAAI,SAAS,SAAS,YAAY,EAAE;IAC7D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAW;gBAE3B,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;IAwBpD,2DAA2D;IACpD,GAAG,CAAC,CAAC,SAAS,YAAY,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAIhF,qEAAqE;IAC9D,GAAG,CAAC,GAAG,KAAK,EAAE,YAAY,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC;IAIxD,0DAA0D;IACnD,EAAE,CAAC,GAAG,KAAK,EAAE,YAAY,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC;IAIvD,oFAAoF;IAC7E,QAAQ,CAAC,GAAG,IAAI,EAAE,YAAY,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC;IAIrD,OAAO,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,IAAI;IAqD7D;;;;2CAIuC;IAChC,YAAY,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAahF;yEACqE;IACrE,OAAO,CAAC,kBAAkB;IA6C1B;uEACmE;IACnE,OAAO,CAAC,uBAAuB;IAS/B;;;iEAG6D;IAC7D,OAAO,CAAC,aAAa;CAyCrB"}
@@ -0,0 +1,49 @@
1
+ import { Archetype } from './archetype.cjs';
2
+ import { ColumnsForSchema, ComponentDef, DeclaredQueryTerm, MutableColumnsForSchema, SchemaOf } from './component.cjs';
3
+ import { QueryResolver } from './query_cache.cjs';
4
+ /**
5
+ * forEachChunk cursor. One instance is allocated per `forEachChunk`
6
+ * pass and reused across every matched archetype in that pass. Only `arch` and
7
+ * `tick` are re-pointed per archetype, so the inner loop allocates nothing.
8
+ * Per-call (not cached on the query) so a nested `forEachChunk` on the same query
9
+ * gets its own cursor and can't re-point an outer pass's position. `.mut(def)`
10
+ * and `.read(def)` resolve a whole component's columns at once into a field-keyed
11
+ * object (a per-archetype-per-component cache refreshed in place), hiding the
12
+ * change tick. Destructure the group immediately. Don't retain it across calls.
13
+ */
14
+ export declare class ChunkColumns<out Defs extends readonly ComponentDef<any>[] = readonly ComponentDef<any>[]> {
15
+ /** @internal */ arch: Archetype;
16
+ /** The change tick this pass stamps. Store it into a row of `ticks(def)`
17
+ * to record that row for an entity-level `onSet`. */
18
+ tick: number;
19
+ /** The change tick of the previous run of the system this pass runs in,
20
+ * and 0 on its first run or on the host. A row of `ticksRead(def)` above it
21
+ * changed since that run. */
22
+ since: number;
23
+ /** @internal */ resolver: QueryResolver;
24
+ /** Mutable column group, `const { x, y } = cols.mut(Pos)`. Stamps the tick.
25
+ * `def` must be a term of the iterating query. */
26
+ mut<D extends ComponentDef<any>>(def: D & DeclaredQueryTerm<Defs, D>): MutableColumnsForSchema<SchemaOf<D>>;
27
+ /** Read-only column group, `const { vx, vy } = cols.read(Vel)`. No tick bump.
28
+ * `def` must be a term of the iterating query. */
29
+ read<D extends ComponentDef<any>>(def: D & DeclaredQueryTerm<Defs, D>): ColumnsForSchema<SchemaOf<D>>;
30
+ /** The row tick column of `def` for this archetype, the record a raw column
31
+ * loop makes for an entity-level `onSet`: `t[i] = cols.tick` beside the
32
+ * write of row `i`. One typed-array store per row, where `ctx.markChanged`
33
+ * is a call and a list push. Taking the column marks the archetype changed
34
+ * and asks the drain of this frame to scan every archetype of `def` that a
35
+ * writer stamped, so take it only in a loop that stores into it. Throws
36
+ * when no entity-level `onSet` observer tracks `def`, because the column
37
+ * exists for tracked components only. `def` must be a term of the
38
+ * iterating query. */
39
+ ticks<D extends ComponentDef<any>>(def: D & DeclaredQueryTerm<Defs, D>): Uint32Array;
40
+ /** The row tick column of `def` for this archetype, read-only: the row
41
+ * grain of change detection. A row `i` with `t[i] > cols.since` changed
42
+ * since the previous run of this system, through any write path that
43
+ * records (`setField`, `ref`, a cursor, `markChanged`, or a store into
44
+ * `ticks(def)`). No stamp, no scan request. Throws when `def` has no row
45
+ * ticks: `ecs.trackRows(def)` turns them on. `def` must be a term of the
46
+ * iterating query. */
47
+ ticksRead<D extends ComponentDef<any>>(def: D & DeclaredQueryTerm<Defs, D>): Readonly<Uint32Array>;
48
+ }
49
+ //# sourceMappingURL=chunk_columns.d.ts.map
@@ -0,0 +1,49 @@
1
+ import { Archetype } from './archetype.js';
2
+ import { ColumnsForSchema, ComponentDef, DeclaredQueryTerm, MutableColumnsForSchema, SchemaOf } from './component.js';
3
+ import { QueryResolver } from './query_cache.js';
4
+ /**
5
+ * forEachChunk cursor. One instance is allocated per `forEachChunk`
6
+ * pass and reused across every matched archetype in that pass. Only `arch` and
7
+ * `tick` are re-pointed per archetype, so the inner loop allocates nothing.
8
+ * Per-call (not cached on the query) so a nested `forEachChunk` on the same query
9
+ * gets its own cursor and can't re-point an outer pass's position. `.mut(def)`
10
+ * and `.read(def)` resolve a whole component's columns at once into a field-keyed
11
+ * object (a per-archetype-per-component cache refreshed in place), hiding the
12
+ * change tick. Destructure the group immediately. Don't retain it across calls.
13
+ */
14
+ export declare class ChunkColumns<out Defs extends readonly ComponentDef<any>[] = readonly ComponentDef<any>[]> {
15
+ /** @internal */ arch: Archetype;
16
+ /** The change tick this pass stamps. Store it into a row of `ticks(def)`
17
+ * to record that row for an entity-level `onSet`. */
18
+ tick: number;
19
+ /** The change tick of the previous run of the system this pass runs in,
20
+ * and 0 on its first run or on the host. A row of `ticksRead(def)` above it
21
+ * changed since that run. */
22
+ since: number;
23
+ /** @internal */ resolver: QueryResolver;
24
+ /** Mutable column group, `const { x, y } = cols.mut(Pos)`. Stamps the tick.
25
+ * `def` must be a term of the iterating query. */
26
+ mut<D extends ComponentDef<any>>(def: D & DeclaredQueryTerm<Defs, D>): MutableColumnsForSchema<SchemaOf<D>>;
27
+ /** Read-only column group, `const { vx, vy } = cols.read(Vel)`. No tick bump.
28
+ * `def` must be a term of the iterating query. */
29
+ read<D extends ComponentDef<any>>(def: D & DeclaredQueryTerm<Defs, D>): ColumnsForSchema<SchemaOf<D>>;
30
+ /** The row tick column of `def` for this archetype, the record a raw column
31
+ * loop makes for an entity-level `onSet`: `t[i] = cols.tick` beside the
32
+ * write of row `i`. One typed-array store per row, where `ctx.markChanged`
33
+ * is a call and a list push. Taking the column marks the archetype changed
34
+ * and asks the drain of this frame to scan every archetype of `def` that a
35
+ * writer stamped, so take it only in a loop that stores into it. Throws
36
+ * when no entity-level `onSet` observer tracks `def`, because the column
37
+ * exists for tracked components only. `def` must be a term of the
38
+ * iterating query. */
39
+ ticks<D extends ComponentDef<any>>(def: D & DeclaredQueryTerm<Defs, D>): Uint32Array;
40
+ /** The row tick column of `def` for this archetype, read-only: the row
41
+ * grain of change detection. A row `i` with `t[i] > cols.since` changed
42
+ * since the previous run of this system, through any write path that
43
+ * records (`setField`, `ref`, a cursor, `markChanged`, or a store into
44
+ * `ticks(def)`). No stamp, no scan request. Throws when `def` has no row
45
+ * ticks: `ecs.trackRows(def)` turns them on. `def` must be a term of the
46
+ * iterating query. */
47
+ ticksRead<D extends ComponentDef<any>>(def: D & DeclaredQueryTerm<Defs, D>): Readonly<Uint32Array>;
48
+ }
49
+ //# sourceMappingURL=chunk_columns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk_columns.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/chunk_columns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;KASK;AAEL,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EACX,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,EACvB,QAAQ,EACR,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAMnD;;;;;;;;;GASG;AACH,qBAAa,YAAY,CACxB,GAAG,CAAC,IAAI,SAAS,SAAS,YAAY,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,YAAY,CAAC,GAAG,CAAC,EAAE;IAE5E,gBAAgB,CAAC,IAAI,EAAG,SAAS,CAAC;IAClC;yDACqD;IACrD,IAAI,SAAK;IACT;;iCAE6B;IAC7B,KAAK,SAAK;IACV,gBAAgB,CAAC,QAAQ,EAAG,aAAa,CAAC;IAE1C;sDACkD;IAC3C,GAAG,CAAC,CAAC,SAAS,YAAY,CAAC,GAAG,CAAC,EACrC,GAAG,EAAE,CAAC,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,GACjC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAIvC;sDACkD;IAC3C,IAAI,CAAC,CAAC,SAAS,YAAY,CAAC,GAAG,CAAC,EACtC,GAAG,EAAE,CAAC,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,GACjC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAIhC;;;;;;;;0BAQsB;IACf,KAAK,CAAC,CAAC,SAAS,YAAY,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,WAAW;IAW3F;;;;;;0BAMsB;IACf,SAAS,CAAC,CAAC,SAAS,YAAY,CAAC,GAAG,CAAC,EAC3C,GAAG,EAAE,CAAC,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,GACjC,QAAQ,CAAC,WAAW,CAAC;CAQxB"}
@@ -2,8 +2,8 @@ import { ECS } from './ecs.cjs';
2
2
  import { HostCommand, HostCommandQueue, HostCommandSink } from './host_commands.cjs';
3
3
  /** One recorded update tick: the commands the apply system drained at this
4
4
  * tick's update-phase head, plus the `dt` passed to `ecs.update(dt)`. Replay
5
- * MUST re-issue `update(dt)` for every recorded tick even an empty one since
6
- * `dt` itself drives the sim (movement, timers), not just the commands. */
5
+ * must re-issue `update(dt)` for every recorded tick, even an empty one, since
6
+ * `dt` itself drives the sim (movement, timers), not only the commands. */
7
7
  export interface RecordedTick {
8
8
  /** The ECS tick (`ctx.ecsTick`) this bucket belongs to. */
9
9
  readonly tick: number;
@@ -15,35 +15,35 @@ export interface RecordedTick {
15
15
  }
16
16
  /**
17
17
  * A recorded session: the `seed` it ran under, the seed-time commands drained at
18
- * startup, and the per-tick command stream. Plain, serializable data the
18
+ * startup, and the per-tick command stream. Plain, serializable data, the
19
19
  * record-side mirror of the typed `HostCommand` vocabulary. Replay it with
20
- * {@link replayCommandLog}; persist it with {@link serializeCommandLog}.
20
+ * {@link replayCommandLog}. Persist it with {@link serializeCommandLog}.
21
21
  */
22
22
  export interface CommandLog {
23
- /** Session seed the implementer's deterministic input (e.g. an RNG seed).
24
- * Opaque to the engine (the core tick takes only `dt`); carried so a replay
23
+ /** Session seed, the implementer's deterministic input (e.g. an RNG seed).
24
+ * Opaque to the engine, because the core tick takes only `dt`. Carried so a replay
25
25
  * rebuilds the world the same way the original was built. */
26
26
  readonly seed: number;
27
- /** Commands drained at the PRE_STARTUP head (seed-time edits), applied before
28
- * the first update tick. Enqueued BEFORE `ecs.startup()` on replay. */
27
+ /** Commands drained at the `PRE_STARTUP` head (seed-time edits), applied before
28
+ * the first update tick. Enqueued before `ecs.startup()` on replay. */
29
29
  readonly startup: readonly HostCommand[];
30
30
  /** One entry per update tick, in order. */
31
31
  readonly ticks: readonly RecordedTick[];
32
32
  }
33
33
  /**
34
- * The record side of record/replay: a {@link HostCommandSink} the apply system
34
+ * The record side of record and replay: a {@link HostCommandSink} the apply system
35
35
  * feeds. Construct one with the session `seed`, hand it to
36
36
  * `installHostCommandSeam(world, { recorder })`, and it accumulates the
37
37
  * command stream as the ECS ticks. Read it back with {@link log} (a live view,
38
38
  * ready to {@link serializeCommandLog serialize}).
39
39
  *
40
- * Bucketing: STARTUP-phase drains (which never call {@link openTick}) append to
41
- * the {@link startup} bucket; each update-phase drain {@link openTick}s its tick
42
- * multiple update-phase drains in one tick reuse the same bucket (keyed by the
40
+ * Bucketing: a `STARTUP`-phase drain never calls {@link openTick}, so it appends to
41
+ * the {@link startup} bucket. Each update-phase drain {@link openTick}s its tick.
42
+ * Multiple update-phase drains in one tick reuse the same bucket (keyed by the
43
43
  * ECS tick), so a frame's commands stay together. The apply system runs every
44
44
  * tick, so every tick's `dt` is recorded even when no commands were applied.
45
45
  *
46
- * One recorder per session don't share across worlds.
46
+ * One recorder per session, don't share across worlds.
47
47
  */
48
48
  export declare class HostCommandRecorder implements HostCommandSink {
49
49
  /** Session seed, echoed into the produced {@link CommandLog}. */
@@ -51,29 +51,29 @@ export declare class HostCommandRecorder implements HostCommandSink {
51
51
  private readonly _startup;
52
52
  private readonly _ticks;
53
53
  /** Where {@link record} appends. Defaults to the startup bucket (seed-time
54
- * drains happen before any `openTick`); each `openTick` repoints it. */
55
- private sink;
54
+ * drains happen before any `openTick`). Each `openTick` repoints it. */
55
+ private _sink;
56
56
  constructor(seed?: number);
57
57
  openTick(tick: number, dt: number): void;
58
58
  readonly record: (cmd: HostCommand) => void;
59
- /** A live {@link CommandLog} view over the accumulated stream not a copy.
59
+ /** A live {@link CommandLog} view over the accumulated stream, not a copy.
60
60
  * Serialize it (which deep-copies through JSON) before mutating the world
61
61
  * further if you need a stable snapshot, or use {@link snapshotLog}. */
62
62
  log(): CommandLog;
63
- /** A STABLE deep copy of the accumulated stream safe to hold across
64
- * further recording (the safe default; `log()` is the zero-copy live view). */
63
+ /** A stable deep copy of the accumulated stream, safe to hold across
64
+ * further recording (the safe default, `log()` is the zero-copy live view). */
65
65
  snapshotLog(): CommandLog;
66
66
  }
67
67
  /** Serialize a {@link CommandLog} to a JSON string. `EntityID` is a plain number
68
- * and round-trips as-is; a `ComponentDef` is a callable, so the replacer writes
68
+ * and round-trips as-is. A `ComponentDef` is a callable, so the replacer writes
69
69
  * it as `{ [DEF_TAG]: id }`. (The recorder already stripped `onSpawned`, the
70
70
  * only other non-serializable member.)
71
71
  *
72
72
  * Throws {@link ECS_ERROR.COMMAND_LOG_TAG_COLLISION} if any non-def object in the
73
73
  * log (i.e. a command's `values` map) owns a field named {@link DEF_TAG}: the
74
74
  * reviver tags defs in-band, so such a value would be silently revived as a def,
75
- * dropping the real field data. Field names are arbitrary, so this is reachable;
76
- * failing here keeps the round-trip lossless instead of corrupting on parse. */
75
+ * dropping the real field data. Field names are arbitrary, so this is reachable.
76
+ * Failing here keeps the round-trip lossless instead of corrupting on parse. */
77
77
  export declare function serializeCommandLog(log: CommandLog): string;
78
78
  /** Parse a {@link CommandLog} from {@link serializeCommandLog} output. */
79
79
  export declare function deserializeCommandLog(json: string): CommandLog;
@@ -83,7 +83,7 @@ export interface ReplayResult {
83
83
  readonly startupCommands: number;
84
84
  /** Update ticks replayed. */
85
85
  readonly ticks: number;
86
- /** Per-tick `stateHash` captured after each `update`, in tick order empty
86
+ /** Per-tick `stateHash` captured after each `update`, in tick order, empty
87
87
  * unless the world is deterministic (or `hash` was forced). Compare against
88
88
  * the original run's per-tick hashes to prove the replay matched. */
89
89
  readonly stateHashes: readonly number[];
@@ -91,23 +91,23 @@ export interface ReplayResult {
91
91
  /** Options for {@link replayCommandLog}. */
92
92
  export interface ReplayOptions {
93
93
  /** Capture `ecs.snapshots.stateHash()` after each tick. Defaults to the world's
94
- * `deterministic` flag a deterministic world is hashed, a non-deterministic
94
+ * `deterministic` flag, a deterministic world is hashed, a non-deterministic
95
95
  * one is not (its `stateHash` would throw). Force `true` only on a
96
96
  * deterministic world. */
97
97
  readonly hash?: boolean;
98
98
  }
99
99
  /**
100
100
  * Replay a recorded {@link CommandLog} against `world`, reproducing the original
101
- * session tick-for-tick. `world` must be FRESH and NOT yet started, built
101
+ * session tick-for-tick. `world` must be fresh and not yet started, built
102
102
  * identically to the recorded run (same components registered in the same order,
103
- * same systems, same `seed` from `log.seed`) and seam-installed pass the
103
+ * same systems, same `seed` from `log.seed`) and seam-installed, pass the
104
104
  * `HostCommandQueue` `installHostCommandSeam` returned as `queue`. The driver
105
105
  * owns startup: it enqueues the seed-time commands, calls `ecs.startup()`
106
106
  * (which drains them at PRE_STARTUP), then for each recorded tick enqueues that
107
107
  * tick's commands and calls `ecs.update(dt)` with the recorded `dt`.
108
108
  *
109
109
  * Determinism: with `{ deterministic: true }` the per-tick
110
- * `stateHashes` this returns must equal the original run's that equality is
110
+ * `stateHashes` this returns must equal the original run's, that equality is
111
111
  * replay fidelity. Identity caveat: a despawned-then-respawned entity gets
112
112
  * a fresh id, but because spawn order is reproduced, every recorded id still
113
113
  * resolves to the same entity on replay.
@@ -2,8 +2,8 @@ import { ECS } from './ecs.js';
2
2
  import { HostCommand, HostCommandQueue, HostCommandSink } from './host_commands.js';
3
3
  /** One recorded update tick: the commands the apply system drained at this
4
4
  * tick's update-phase head, plus the `dt` passed to `ecs.update(dt)`. Replay
5
- * MUST re-issue `update(dt)` for every recorded tick even an empty one since
6
- * `dt` itself drives the sim (movement, timers), not just the commands. */
5
+ * must re-issue `update(dt)` for every recorded tick, even an empty one, since
6
+ * `dt` itself drives the sim (movement, timers), not only the commands. */
7
7
  export interface RecordedTick {
8
8
  /** The ECS tick (`ctx.ecsTick`) this bucket belongs to. */
9
9
  readonly tick: number;
@@ -15,35 +15,35 @@ export interface RecordedTick {
15
15
  }
16
16
  /**
17
17
  * A recorded session: the `seed` it ran under, the seed-time commands drained at
18
- * startup, and the per-tick command stream. Plain, serializable data the
18
+ * startup, and the per-tick command stream. Plain, serializable data, the
19
19
  * record-side mirror of the typed `HostCommand` vocabulary. Replay it with
20
- * {@link replayCommandLog}; persist it with {@link serializeCommandLog}.
20
+ * {@link replayCommandLog}. Persist it with {@link serializeCommandLog}.
21
21
  */
22
22
  export interface CommandLog {
23
- /** Session seed the implementer's deterministic input (e.g. an RNG seed).
24
- * Opaque to the engine (the core tick takes only `dt`); carried so a replay
23
+ /** Session seed, the implementer's deterministic input (e.g. an RNG seed).
24
+ * Opaque to the engine, because the core tick takes only `dt`. Carried so a replay
25
25
  * rebuilds the world the same way the original was built. */
26
26
  readonly seed: number;
27
- /** Commands drained at the PRE_STARTUP head (seed-time edits), applied before
28
- * the first update tick. Enqueued BEFORE `ecs.startup()` on replay. */
27
+ /** Commands drained at the `PRE_STARTUP` head (seed-time edits), applied before
28
+ * the first update tick. Enqueued before `ecs.startup()` on replay. */
29
29
  readonly startup: readonly HostCommand[];
30
30
  /** One entry per update tick, in order. */
31
31
  readonly ticks: readonly RecordedTick[];
32
32
  }
33
33
  /**
34
- * The record side of record/replay: a {@link HostCommandSink} the apply system
34
+ * The record side of record and replay: a {@link HostCommandSink} the apply system
35
35
  * feeds. Construct one with the session `seed`, hand it to
36
36
  * `installHostCommandSeam(world, { recorder })`, and it accumulates the
37
37
  * command stream as the ECS ticks. Read it back with {@link log} (a live view,
38
38
  * ready to {@link serializeCommandLog serialize}).
39
39
  *
40
- * Bucketing: STARTUP-phase drains (which never call {@link openTick}) append to
41
- * the {@link startup} bucket; each update-phase drain {@link openTick}s its tick
42
- * multiple update-phase drains in one tick reuse the same bucket (keyed by the
40
+ * Bucketing: a `STARTUP`-phase drain never calls {@link openTick}, so it appends to
41
+ * the {@link startup} bucket. Each update-phase drain {@link openTick}s its tick.
42
+ * Multiple update-phase drains in one tick reuse the same bucket (keyed by the
43
43
  * ECS tick), so a frame's commands stay together. The apply system runs every
44
44
  * tick, so every tick's `dt` is recorded even when no commands were applied.
45
45
  *
46
- * One recorder per session don't share across worlds.
46
+ * One recorder per session, don't share across worlds.
47
47
  */
48
48
  export declare class HostCommandRecorder implements HostCommandSink {
49
49
  /** Session seed, echoed into the produced {@link CommandLog}. */
@@ -51,29 +51,29 @@ export declare class HostCommandRecorder implements HostCommandSink {
51
51
  private readonly _startup;
52
52
  private readonly _ticks;
53
53
  /** Where {@link record} appends. Defaults to the startup bucket (seed-time
54
- * drains happen before any `openTick`); each `openTick` repoints it. */
55
- private sink;
54
+ * drains happen before any `openTick`). Each `openTick` repoints it. */
55
+ private _sink;
56
56
  constructor(seed?: number);
57
57
  openTick(tick: number, dt: number): void;
58
58
  readonly record: (cmd: HostCommand) => void;
59
- /** A live {@link CommandLog} view over the accumulated stream not a copy.
59
+ /** A live {@link CommandLog} view over the accumulated stream, not a copy.
60
60
  * Serialize it (which deep-copies through JSON) before mutating the world
61
61
  * further if you need a stable snapshot, or use {@link snapshotLog}. */
62
62
  log(): CommandLog;
63
- /** A STABLE deep copy of the accumulated stream safe to hold across
64
- * further recording (the safe default; `log()` is the zero-copy live view). */
63
+ /** A stable deep copy of the accumulated stream, safe to hold across
64
+ * further recording (the safe default, `log()` is the zero-copy live view). */
65
65
  snapshotLog(): CommandLog;
66
66
  }
67
67
  /** Serialize a {@link CommandLog} to a JSON string. `EntityID` is a plain number
68
- * and round-trips as-is; a `ComponentDef` is a callable, so the replacer writes
68
+ * and round-trips as-is. A `ComponentDef` is a callable, so the replacer writes
69
69
  * it as `{ [DEF_TAG]: id }`. (The recorder already stripped `onSpawned`, the
70
70
  * only other non-serializable member.)
71
71
  *
72
72
  * Throws {@link ECS_ERROR.COMMAND_LOG_TAG_COLLISION} if any non-def object in the
73
73
  * log (i.e. a command's `values` map) owns a field named {@link DEF_TAG}: the
74
74
  * reviver tags defs in-band, so such a value would be silently revived as a def,
75
- * dropping the real field data. Field names are arbitrary, so this is reachable;
76
- * failing here keeps the round-trip lossless instead of corrupting on parse. */
75
+ * dropping the real field data. Field names are arbitrary, so this is reachable.
76
+ * Failing here keeps the round-trip lossless instead of corrupting on parse. */
77
77
  export declare function serializeCommandLog(log: CommandLog): string;
78
78
  /** Parse a {@link CommandLog} from {@link serializeCommandLog} output. */
79
79
  export declare function deserializeCommandLog(json: string): CommandLog;
@@ -83,7 +83,7 @@ export interface ReplayResult {
83
83
  readonly startupCommands: number;
84
84
  /** Update ticks replayed. */
85
85
  readonly ticks: number;
86
- /** Per-tick `stateHash` captured after each `update`, in tick order empty
86
+ /** Per-tick `stateHash` captured after each `update`, in tick order, empty
87
87
  * unless the world is deterministic (or `hash` was forced). Compare against
88
88
  * the original run's per-tick hashes to prove the replay matched. */
89
89
  readonly stateHashes: readonly number[];
@@ -91,23 +91,23 @@ export interface ReplayResult {
91
91
  /** Options for {@link replayCommandLog}. */
92
92
  export interface ReplayOptions {
93
93
  /** Capture `ecs.snapshots.stateHash()` after each tick. Defaults to the world's
94
- * `deterministic` flag a deterministic world is hashed, a non-deterministic
94
+ * `deterministic` flag, a deterministic world is hashed, a non-deterministic
95
95
  * one is not (its `stateHash` would throw). Force `true` only on a
96
96
  * deterministic world. */
97
97
  readonly hash?: boolean;
98
98
  }
99
99
  /**
100
100
  * Replay a recorded {@link CommandLog} against `world`, reproducing the original
101
- * session tick-for-tick. `world` must be FRESH and NOT yet started, built
101
+ * session tick-for-tick. `world` must be fresh and not yet started, built
102
102
  * identically to the recorded run (same components registered in the same order,
103
- * same systems, same `seed` from `log.seed`) and seam-installed pass the
103
+ * same systems, same `seed` from `log.seed`) and seam-installed, pass the
104
104
  * `HostCommandQueue` `installHostCommandSeam` returned as `queue`. The driver
105
105
  * owns startup: it enqueues the seed-time commands, calls `ecs.startup()`
106
106
  * (which drains them at PRE_STARTUP), then for each recorded tick enqueues that
107
107
  * tick's commands and calls `ecs.update(dt)` with the recorded `dt`.
108
108
  *
109
109
  * Determinism: with `{ deterministic: true }` the per-tick
110
- * `stateHashes` this returns must equal the original run's that equality is
110
+ * `stateHashes` this returns must equal the original run's, that equality is
111
111
  * replay fidelity. Identity caveat: a despawned-then-respawned entity gets
112
112
  * a fresh id, but because spawn order is reproduced, every recorded id still
113
113
  * resolves to the same entity on replay.
@@ -1 +1 @@
1
- {"version":3,"file":"command_log.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/command_log.ts"],"names":[],"mappings":"AAyCA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEtF;;;2EAG2E;AAC3E,MAAM,WAAW,YAAY;IAC5B,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;+BAC2B;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;CAC1C;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IAC1B;;iEAE6D;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;2EACuE;IACvE,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IACzC,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;CACxC;AAiBD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,mBAAoB,YAAW,eAAe;IAC1D,iEAAiE;IACjE,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C;4EACwE;IACxE,OAAO,CAAC,IAAI,CAAgC;gBAEhC,IAAI,SAAI;IAIpB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAaxC,QAAQ,CAAC,MAAM,QAAS,WAAW,KAAG,IAAI,CAExC;IAEF;;4EAEwE;IACxE,GAAG,IAAI,UAAU;IAIjB;mFAC+E;IAC/E,WAAW,IAAI,UAAU;CAOzB;AAYD;;;;;;;;;gFASgF;AAChF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAqB3D;AAED,0EAA0E;AAC1E,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAW9D;AAED,2CAA2C;AAC3C,MAAM,WAAW,YAAY;IAC5B,2DAA2D;IAC3D,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,6BAA6B;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;yEAEqE;IACrE,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED,4CAA4C;AAC5C,MAAM,WAAW,aAAa;IAC7B;;;8BAG0B;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,gBAAgB,EACvB,GAAG,EAAE,UAAU,EACf,IAAI,CAAC,EAAE,aAAa,GAClB,YAAY,CAcd"}
1
+ {"version":3,"file":"command_log.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/command_log.ts"],"names":[],"mappings":"AAyCA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEtF;;;2EAG2E;AAC3E,MAAM,WAAW,YAAY;IAC5B,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;+BAC2B;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;CAC1C;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IAC1B;;iEAE6D;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;2EACuE;IACvE,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IACzC,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;CACxC;AAiBD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,mBAAoB,YAAW,eAAe;IAC1D,iEAAiE;IACjE,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C;4EACwE;IACxE,OAAO,CAAC,KAAK,CAAgC;gBAEjC,IAAI,SAAI;IAIpB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAaxC,QAAQ,CAAC,MAAM,QAAS,WAAW,KAAG,IAAI,CAExC;IAEF;;4EAEwE;IACxE,GAAG,IAAI,UAAU;IAIjB;mFAC+E;IAC/E,WAAW,IAAI,UAAU;CAOzB;AAYD;;;;;;;;;gFASgF;AAChF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAqB3D;AAED,0EAA0E;AAC1E,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAW9D;AAED,2CAA2C;AAC3C,MAAM,WAAW,YAAY;IAC5B,2DAA2D;IAC3D,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,6BAA6B;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;yEAEqE;IACrE,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED,4CAA4C;AAC5C,MAAM,WAAW,aAAa;IAC7B;;;8BAG0B;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,gBAAgB,EACvB,GAAG,EAAE,UAAU,EACf,IAAI,CAAC,EAAE,aAAa,GAClB,YAAY,CAcd"}