@oasys/oecs 0.5.3 → 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 +1399 -276
  2. package/README.md +327 -169
  3. package/dist/core/ecs/access_check.d.cts +31 -31
  4. package/dist/core/ecs/access_check.d.ts +31 -31
  5. package/dist/core/ecs/access_check.d.ts.map +1 -1
  6. package/dist/core/ecs/archetype.d.cts +273 -205
  7. package/dist/core/ecs/archetype.d.ts +273 -205
  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 +34 -34
  13. package/dist/core/ecs/archetype_graph.d.ts +34 -34
  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 +30 -30
  28. package/dist/core/ecs/command_log.d.ts +30 -30
  29. package/dist/core/ecs/command_log.d.ts.map +1 -1
  30. package/dist/core/ecs/component.d.cts +45 -44
  31. package/dist/core/ecs/component.d.ts +45 -44
  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 +337 -276
  46. package/dist/core/ecs/ecs.d.ts +337 -276
  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 +24 -22
  57. package/dist/core/ecs/entity_allocator.d.ts +24 -22
  58. package/dist/core/ecs/entity_allocator.d.ts.map +1 -1
  59. package/dist/core/ecs/event.d.cts +37 -23
  60. package/dist/core/ecs/event.d.ts +37 -23
  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 +34 -34
  69. package/dist/core/ecs/frame_trace.d.ts +34 -34
  70. package/dist/core/ecs/frame_trace.d.ts.map +1 -1
  71. package/dist/core/ecs/host_commands.d.cts +107 -89
  72. package/dist/core/ecs/host_commands.d.ts +107 -89
  73. package/dist/core/ecs/host_commands.d.ts.map +1 -1
  74. package/dist/core/ecs/index.d.cts +22 -12
  75. package/dist/core/ecs/index.d.ts +22 -12
  76. package/dist/core/ecs/index.d.ts.map +1 -1
  77. package/dist/core/ecs/observer.d.cts +41 -122
  78. package/dist/core/ecs/observer.d.ts +41 -122
  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 +219 -568
  90. package/dist/core/ecs/query.d.ts +219 -568
  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 +129 -16
  102. package/dist/core/ecs/ref.d.ts +129 -16
  103. package/dist/core/ecs/ref.d.ts.map +1 -1
  104. package/dist/core/ecs/relation.d.cts +105 -186
  105. package/dist/core/ecs/relation.d.ts +105 -186
  106. package/dist/core/ecs/relation.d.ts.map +1 -1
  107. package/dist/core/ecs/resource.d.cts +14 -14
  108. package/dist/core/ecs/resource.d.ts +14 -14
  109. package/dist/core/ecs/resource_registry.d.cts +6 -6
  110. package/dist/core/ecs/resource_registry.d.ts +6 -6
  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 +98 -114
  119. package/dist/core/ecs/schedule.d.ts +98 -114
  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 +110 -53
  131. package/dist/core/ecs/sparse_store.d.ts +110 -53
  132. package/dist/core/ecs/sparse_store.d.ts.map +1 -1
  133. package/dist/core/ecs/store.d.cts +644 -511
  134. package/dist/core/ecs/store.d.ts +644 -511
  135. package/dist/core/ecs/store.d.ts.map +1 -1
  136. package/dist/core/ecs/store_layout_listener.d.cts +8 -8
  137. package/dist/core/ecs/store_layout_listener.d.ts +8 -8
  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 +151 -66
  142. package/dist/core/ecs/system.d.ts +151 -66
  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 +87 -4
  154. package/dist/core/ecs/utils/error.d.ts +87 -4
  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 +48 -49
  163. package/dist/core/store/action_ring.d.ts +48 -49
  164. package/dist/core/store/action_ring.d.ts.map +1 -1
  165. package/dist/core/store/allocator.d.cts +166 -114
  166. package/dist/core/store/allocator.d.ts +166 -114
  167. package/dist/core/store/allocator.d.ts.map +1 -1
  168. package/dist/core/store/buffer_backed_column.d.cts +21 -22
  169. package/dist/core/store/buffer_backed_column.d.ts +21 -22
  170. package/dist/core/store/buffer_backed_column.d.ts.map +1 -1
  171. package/dist/core/store/column_store.d.cts +138 -100
  172. package/dist/core/store/column_store.d.ts +138 -100
  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 +41 -45
  178. package/dist/core/store/command_ring.d.ts +41 -45
  179. package/dist/core/store/command_ring.d.ts.map +1 -1
  180. package/dist/core/store/descriptor.d.cts +35 -18
  181. package/dist/core/store/descriptor.d.ts +35 -18
  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 +40 -42
  187. package/dist/core/store/event_ring.d.ts +40 -42
  188. package/dist/core/store/event_ring.d.ts.map +1 -1
  189. package/dist/core/store/extend.d.cts +15 -9
  190. package/dist/core/store/extend.d.ts +15 -9
  191. package/dist/core/store/extend.d.ts.map +1 -1
  192. package/dist/core/store/grow.d.cts +3 -3
  193. package/dist/core/store/grow.d.ts +3 -3
  194. package/dist/core/store/grow.d.ts.map +1 -1
  195. package/dist/core/store/header.d.cts +37 -33
  196. package/dist/core/store/header.d.ts +37 -33
  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 +72 -63
  202. package/dist/core/store/layout_ops.d.ts +72 -63
  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 +14 -14
  211. package/dist/core/store/state_hash.d.ts +14 -14
  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 +16 -11
  225. package/dist/index.d.ts +16 -11
  226. package/dist/index.d.ts.map +1 -1
  227. package/dist/index.development.cjs +1 -1
  228. package/dist/index.development.js +6709 -5729
  229. package/dist/index.js +5664 -4743
  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 +56 -56
  244. package/dist/{extensions → plugins}/editor/editor.d.ts +56 -56
  245. package/dist/plugins/editor/editor.d.ts.map +1 -0
  246. package/dist/{extensions → plugins}/editor/field_handle.d.cts +13 -13
  247. package/dist/{extensions → plugins}/editor/field_handle.d.ts +13 -13
  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} +83 -66
  257. package/dist/{extensions/editor/index.js → plugins/editor.js} +83 -66
  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 +93 -105
  302. package/dist/{core/ecs → plugins/relations}/relation_service.d.ts +93 -105
  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 +18 -17
  411. package/dist/type_primitives/typed_arrays/typed_arrays.d.ts +18 -17
  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 +4 -4
  415. package/dist/version.d.ts +4 -4
  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-3jyFfWNg.js +0 -2326
  465. package/dist/host_commands-DNf0f6ko.cjs +0 -1
  466. package/dist/internal-C9jjL90H.js +0 -2485
  467. package/dist/internal-RZN14uMw.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-9S1pY_Iw.js +0 -159
  502. package/dist/shallow-C5YmTbtb.cjs +0 -1
  503. package/dist/shallow-DQ8aG51_.cjs +0 -1
  504. package/dist/shallow-DfnAm9vG.js +0 -150
  505. package/dist/shared-BMXh9hxm.cjs +0 -1
  506. package/dist/shared-DQKK0i-E.js +0 -109
  507. package/dist/topological_sort-BDvEyb9W.cjs +0 -1
  508. package/dist/topological_sort-DK6EjpWa.js +0 -135
  509. package/dist/typed_arrays-BcXcnzB4.js +0 -258
  510. package/dist/typed_arrays-D3NmwtCG.cjs +0 -1
@@ -4,40 +4,46 @@ export { REGION_TABLE_ENTRY_BYTES, REGION_TABLE_ENTRY_OFFSETS };
4
4
  * distinct within its region set, that it also resolves on the read side),
5
5
  * computes `bytes`, and seeds the region header + contents in `init`.
6
6
  *
7
- * `init` runs ONCE at first allocation. Across a SAB grow/extend the region's
7
+ * `init` runs once at first allocation. Across a SAB grow and extend the region's
8
8
  * live bytes are snapshotted and restored verbatim (the table is
9
- * self-describing), so `init` is not re-run a consumer must not rely on it
9
+ * self-describing), so `init` is not re-run, a consumer must not rely on it
10
10
  * firing per realloc. */
11
11
  export interface StoreRegionSpec {
12
- /** Consumer-owned region id (nonzero, distinct). Written to the directory;
13
- * resolved by the consumer via `findRegionOffset` / `abi.find_region`. */
12
+ /** Consumer-owned region id (nonzero, distinct). Written to the directory
13
+ * resolved by the consumer through `findRegionOffset`. */
14
14
  readonly id: number;
15
- /** Human label for diagnostics / the self-documenting directory dump. */
15
+ /** Human label for diagnostics and the self-documenting directory dump. */
16
16
  readonly name: string;
17
17
  /** Byte size to allocate for this region (consumer computes from its knobs).
18
18
  * Must be > 0. */
19
19
  readonly bytes: number;
20
- /** Initialise the region header + seed bytes at absolute byte offset `off`. */
20
+ /** Initialise the region header and seed bytes at `off`, which indexes
21
+ * `view`. `view` starts at the store base, so a consumer that needs a
22
+ * TypedArray builds it at `view.byteOffset + off`. */
21
23
  readonly init: (view: DataView, off: number) => void;
22
24
  }
23
- /** One decoded directory record. */
25
+ /** One decoded directory record. `byteOffset` is measured from the store base,
26
+ * the same as every other offset in the bytes. */
24
27
  export interface RegionTableEntry {
25
28
  readonly regionId: number;
26
29
  readonly byteOffset: number;
27
30
  readonly byteLength: number;
28
31
  }
29
- /** A resolved handle to a consumer region, returned by `ECS.regionHandle` /
30
- * `Store.regionHandle`. Carries the live `buffer`/`view` plus the region's byte
32
+ /** A resolved handle to a consumer region, returned by `ECS.regionHandle` or
33
+ * `Store.regionHandle`. Carries the live `buffer` and `view` plus the region's byte
31
34
  * `offset` and full `bytes`, so a consumer's region module can build a
32
35
  * TypedArray view over exactly the region's span without re-reading the
33
- * directory. Re-fetch after a SAB grow (the offset/view may have moved). */
36
+ * directory. Re-fetch after a SAB grow (the offset and view may have moved). */
34
37
  export interface ColumnStoreRegionHandle {
35
- /** `ArrayBufferLike` see `ColumnStore.buffer`. Consumer regions are a SAB-profile
36
- * feature (WASM/worker), so in practice this is a `SharedArrayBuffer` wherever
37
- * regions are declared; the type is widened only because it flows from the
38
+ /** `ArrayBufferLike`, see `ColumnStore.buffer`. Consumer regions are a SAB-profile
39
+ * feature (WASM or worker), so in practice this is a `SharedArrayBuffer` wherever
40
+ * regions are declared. The type is widened only because it flows from the
38
41
  * backing-agnostic store. */
39
42
  readonly buffer: ArrayBufferLike;
43
+ /** Starts at the store base, so `view.byteOffset` is that base. */
40
44
  readonly view: DataView;
45
+ /** Buffer-absolute, so `new Uint8Array(buffer, offset, bytes)` reads the
46
+ * region. Read it through `view` at `offset - view.byteOffset`. */
41
47
  readonly offset: number;
42
48
  readonly bytes: number;
43
49
  }
@@ -48,9 +54,9 @@ export declare class RegionRegistryError extends Error {
48
54
  export declare function regionTableBytes(count: number): number;
49
55
  /** Validate a consumer region set before layout: ids must be nonzero (0 is the
50
56
  * "absent" sentinel `findRegionOffset` returns) and distinct, and each region
51
- * must request a positive byte size. Throws `RegionRegistryError` otherwise
57
+ * must request a positive byte size. Throws `RegionRegistryError` otherwise,
52
58
  * the same loud-failure stance the mechanism registry's paired-knob guards take. */
53
- export declare function validateRegionSpecs(regions: readonly StoreRegionSpec[]): void;
59
+ export declare function assertRegionSpecs(regions: readonly StoreRegionSpec[]): void;
54
60
  /** Write one directory record at absolute byte offset `off`. */
55
61
  export declare function writeRegionTableEntry(view: DataView, off: number, e: RegionTableEntry): void;
56
62
  /** Read one directory record at absolute byte offset `off`. */
@@ -59,16 +65,17 @@ export declare function readRegionTableEntry(view: DataView, off: number): Regio
59
65
  export declare function writeRegionTable(view: DataView, tableOff: number, entries: readonly RegionTableEntry[]): void;
60
66
  /** Read all `count` directory records starting at `tableOff`, in order. */
61
67
  export declare function readRegionTable(view: DataView, tableOff: number, count: number): RegionTableEntry[];
62
- /** Read the directory described by the SAB header (`region_table_off` /
68
+ /** Read the directory described by the SAB header (`region_table_off` and
63
69
  * `region_table_count`). Empty when no consumer regions were declared. */
64
70
  export declare function readHeaderRegionTable(view: DataView): RegionTableEntry[];
65
- /** Resolve a consumer region's byte offset by `region_id`, or 0 when absent
66
- * (no directory, or no matching entry). The TS twin of Zig
67
- * `abi.find_region(header_addr, region_id)`; 0 is an unambiguous "absent"
68
- * sentinel because a real region never starts at SAB byte 0 (the header does). */
71
+ /** Resolve a consumer region's store-relative byte offset by `region_id`, or 0
72
+ * when absent (no directory, or no matching entry). The TS twin of the
73
+ * module-side lookup. 0 is an unambiguous "absent"
74
+ * sentinel because a real region never starts at relative offset 0, which the
75
+ * header occupies. */
69
76
  export declare function findRegionOffset(view: DataView, regionId: number): number;
70
77
  /** Resolve a consumer region's `(byte_offset, byte_length)` by `region_id`, or
71
78
  * `null` when absent. Use when a reader needs the region's size (e.g. to
72
- * materialise a TypedArray view) and not just its start. */
79
+ * materialise a TypedArray view) and not only its start. */
73
80
  export declare function findRegionEntry(view: DataView, regionId: number): RegionTableEntry | null;
74
81
  //# sourceMappingURL=region_table.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"region_table.d.ts","sourceRoot":"","sources":["../../../src/core/store/region_table.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EACN,wBAAwB,EACxB,0BAA0B,EAE1B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,CAAC;AAEhE;;;;;;;yBAOyB;AACzB,MAAM,WAAW,eAAe;IAC/B;8EAC0E;IAC1E,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;sBACkB;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACrD;AAED,oCAAoC;AACpC,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC5B;AAED;;;;4EAI4E;AAC5E,MAAM,WAAW,uBAAuB;IACvC;;;iCAG6B;IAC7B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,mBAAoB,SAAQ,KAAK;gBACjC,OAAO,EAAE,MAAM;CAI3B;AAED,kEAAkE;AAClE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAiBD;;;oFAGoF;AACpF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,GAAG,IAAI,CAqB7E;AAED,gEAAgE;AAChE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAI5F;AAED,+DAA+D;AAC/D,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAMlF;AAED,4DAA4D;AAC5D,wBAAgB,gBAAgB,CAC/B,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,SAAS,gBAAgB,EAAE,GAClC,IAAI,CAIN;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,CAC9B,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACX,gBAAgB,EAAE,CAMpB;AAED;0EAC0E;AAC1E,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,gBAAgB,EAAE,CAKxE;AAED;;;kFAGkF;AAClF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAWzE;AAED;;4DAE4D;AAC5D,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CASzF"}
1
+ {"version":3,"file":"region_table.d.ts","sourceRoot":"","sources":["../../../src/core/store/region_table.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EACN,wBAAwB,EACxB,0BAA0B,EAE1B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,CAAC;AAEhE;;;;;;;yBAOyB;AACzB,MAAM,WAAW,eAAe;IAC/B;8DAC0D;IAC1D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;sBACkB;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;0DAEsD;IACtD,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACrD;AAED;kDACkD;AAClD,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC5B;AAED;;;;gFAIgF;AAChF,MAAM,WAAW,uBAAuB;IACvC;;;iCAG6B;IAC7B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,mEAAmE;IACnE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB;uEACmE;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,mBAAoB,SAAQ,KAAK;gBACjC,OAAO,EAAE,MAAM;CAI3B;AAED,kEAAkE;AAClE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAiBD;;;oFAGoF;AACpF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,GAAG,IAAI,CAqB3E;AAED,gEAAgE;AAChE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAI5F;AAED,+DAA+D;AAC/D,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAMlF;AAED,4DAA4D;AAC5D,wBAAgB,gBAAgB,CAC/B,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,SAAS,gBAAgB,EAAE,GAClC,IAAI,CAIN;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,CAC9B,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACX,gBAAgB,EAAE,CAMpB;AAED;0EAC0E;AAC1E,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,gBAAgB,EAAE,CAKxE;AAED;;;;sBAIsB;AACtB,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAWzE;AAED;;4DAE4D;AAC5D,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CASzF"}
@@ -1,43 +1,58 @@
1
1
  import { ColumnStore } from './column_store.cjs';
2
2
  import { BufferAllocator } from './allocator.cjs';
3
- export declare class StoreRestoreError extends Error {
4
- constructor(message: string);
3
+ import { StoreRestoreError } from '../restore_errors.cjs';
4
+ export { StoreRestoreError };
5
+ /** Options for `restoreColumnStore`. */
6
+ export interface RestoreColumnStoreOptions {
7
+ /** Byte offset inside the fresh backing where the restored header goes.
8
+ * Default 0. A snapshot carries no base, so a store taken at one base
9
+ * restores at any other. */
10
+ readonly storeBase?: number;
5
11
  }
6
12
  /** Zero-copy `Uint8Array` view over the SAB's used byte range. Length is
7
- * `header.capacity` the canonical size, NOT `buffer.byteLength`. The two
13
+ * `header.capacity`, the canonical size, not `buffer.byteLength`. The two
8
14
  * coincide for `DEFAULT_SAB_ALLOCATOR` (it allocates exactly `totalBytes`),
9
- * but `wasmMemoryAllocator` / `growableSabAllocator` round the buffer up
10
- * to 64 KiB page boundaries, so `buffer.byteLength` can exceed `capacity` by up
11
- * to a page of trailing slack (see the allocator contract in `allocator.ts`).
15
+ * but `wasmMemoryAllocator` rounds the buffer up to 64 KiB page boundaries,
16
+ * and `heapArrayBufferAllocator` and `fixedSabAllocator` reserve the whole cap,
17
+ * so `buffer.byteLength` can exceed `capacity` (see the allocator contract in
18
+ * `allocator.ts`).
12
19
  * Hashing or round-tripping that slack would make two logically-identical
13
20
  * stores with different grow trajectories (or different allocators) diverge,
14
21
  * so we size to `capacity` here.
15
22
  *
16
23
  * Capacity is read live from `store.view` rather than the cached
17
- * `store.header` the in-place grow path bumps the header fields in the
24
+ * `store.header`, the in-place grow path bumps the header fields in the
18
25
  * view but leaves `store.header` a stale snapshot (see `grow.ts`).
19
26
  *
20
- * The view shares storage with the SAB; subsequent writes to columns are
27
+ * The span starts at `store.storeBase`, so the bytes are base free: two stores
28
+ * with the same history at different bases give the same snapshot and the same
29
+ * digest.
30
+ *
31
+ * The view shares storage with the backing. Subsequent writes to columns are
21
32
  * visible through it. Callers that need a stable snapshot should slice
22
33
  * (`new Uint8Array(view)`) before mutating the store further. */
23
- export declare function snapshotColumnStore(store: ColumnStore): Uint8Array;
34
+ export declare function columnStoreBytesView(store: ColumnStore): Uint8Array;
24
35
  /** Allocate a fresh backing buffer of `bytes.byteLength`, copy the snapshot
25
36
  * bytes in, validate the header, and reconstruct the `ColumnStore` (header cache +
26
37
  * DataView + per-archetype `ArchetypeViews`).
27
38
  *
28
39
  * `allocator` selects the backing: the default `DEFAULT_SAB_ALLOCATOR`
29
- * (`SharedArrayBuffer`) keeps existing callers' behaviour; pass
30
- * `heapArraybufferAllocator()` to round-trip a snapshot into a pure-TS heap
31
- * world (no SAB required). Either way only one allocation happens restore
32
- * never grows so a non-in-place allocator is fine here.
40
+ * (`SharedArrayBuffer`) keeps existing callers' behaviour. Pass
41
+ * `heapArrayBufferAllocator()` to round-trip a snapshot into a pure-TS heap
42
+ * world (no SAB required). Either way only one allocation happens, restore
43
+ * never grows, so a non-in-place allocator is fine here.
33
44
  *
34
- * The input can be any `Uint8Array` a view from `snapshotColumnStore`,
35
- * a sliced copy, or bytes read off disk / postMessage. The function
45
+ * The input can be any `Uint8Array`, a view from `columnStoreBytesView`,
46
+ * a sliced copy, or bytes read off disk or off `postMessage`. The function
36
47
  * honours `bytes.byteOffset` and `bytes.byteLength`, so passing a
37
48
  * subarray that doesn't start at offset 0 of its backing buffer is
38
49
  * supported.
39
50
  *
51
+ * `options.storeBase` places the restored header at that byte offset in the
52
+ * fresh backing, default 0. The snapshot itself carries no base, so a store
53
+ * taken at one base restores at any other and both digests agree.
54
+ *
40
55
  * Throws `StoreRestoreError` if the bytes are too short for the header,
41
56
  * have the wrong magic, or carry an incompatible `sim_abi_version`. */
42
- export declare function restoreColumnStore(bytes: Uint8Array, allocator?: BufferAllocator): ColumnStore;
57
+ export declare function restoreColumnStore(bytes: Uint8Array, allocator?: BufferAllocator, options?: RestoreColumnStoreOptions): ColumnStore;
43
58
  //# sourceMappingURL=snapshot.d.ts.map
@@ -1,43 +1,58 @@
1
1
  import { ColumnStore } from './column_store.js';
2
2
  import { BufferAllocator } from './allocator.js';
3
- export declare class StoreRestoreError extends Error {
4
- constructor(message: string);
3
+ import { StoreRestoreError } from '../restore_errors.js';
4
+ export { StoreRestoreError };
5
+ /** Options for `restoreColumnStore`. */
6
+ export interface RestoreColumnStoreOptions {
7
+ /** Byte offset inside the fresh backing where the restored header goes.
8
+ * Default 0. A snapshot carries no base, so a store taken at one base
9
+ * restores at any other. */
10
+ readonly storeBase?: number;
5
11
  }
6
12
  /** Zero-copy `Uint8Array` view over the SAB's used byte range. Length is
7
- * `header.capacity` the canonical size, NOT `buffer.byteLength`. The two
13
+ * `header.capacity`, the canonical size, not `buffer.byteLength`. The two
8
14
  * coincide for `DEFAULT_SAB_ALLOCATOR` (it allocates exactly `totalBytes`),
9
- * but `wasmMemoryAllocator` / `growableSabAllocator` round the buffer up
10
- * to 64 KiB page boundaries, so `buffer.byteLength` can exceed `capacity` by up
11
- * to a page of trailing slack (see the allocator contract in `allocator.ts`).
15
+ * but `wasmMemoryAllocator` rounds the buffer up to 64 KiB page boundaries,
16
+ * and `heapArrayBufferAllocator` and `fixedSabAllocator` reserve the whole cap,
17
+ * so `buffer.byteLength` can exceed `capacity` (see the allocator contract in
18
+ * `allocator.ts`).
12
19
  * Hashing or round-tripping that slack would make two logically-identical
13
20
  * stores with different grow trajectories (or different allocators) diverge,
14
21
  * so we size to `capacity` here.
15
22
  *
16
23
  * Capacity is read live from `store.view` rather than the cached
17
- * `store.header` the in-place grow path bumps the header fields in the
24
+ * `store.header`, the in-place grow path bumps the header fields in the
18
25
  * view but leaves `store.header` a stale snapshot (see `grow.ts`).
19
26
  *
20
- * The view shares storage with the SAB; subsequent writes to columns are
27
+ * The span starts at `store.storeBase`, so the bytes are base free: two stores
28
+ * with the same history at different bases give the same snapshot and the same
29
+ * digest.
30
+ *
31
+ * The view shares storage with the backing. Subsequent writes to columns are
21
32
  * visible through it. Callers that need a stable snapshot should slice
22
33
  * (`new Uint8Array(view)`) before mutating the store further. */
23
- export declare function snapshotColumnStore(store: ColumnStore): Uint8Array;
34
+ export declare function columnStoreBytesView(store: ColumnStore): Uint8Array;
24
35
  /** Allocate a fresh backing buffer of `bytes.byteLength`, copy the snapshot
25
36
  * bytes in, validate the header, and reconstruct the `ColumnStore` (header cache +
26
37
  * DataView + per-archetype `ArchetypeViews`).
27
38
  *
28
39
  * `allocator` selects the backing: the default `DEFAULT_SAB_ALLOCATOR`
29
- * (`SharedArrayBuffer`) keeps existing callers' behaviour; pass
30
- * `heapArraybufferAllocator()` to round-trip a snapshot into a pure-TS heap
31
- * world (no SAB required). Either way only one allocation happens restore
32
- * never grows so a non-in-place allocator is fine here.
40
+ * (`SharedArrayBuffer`) keeps existing callers' behaviour. Pass
41
+ * `heapArrayBufferAllocator()` to round-trip a snapshot into a pure-TS heap
42
+ * world (no SAB required). Either way only one allocation happens, restore
43
+ * never grows, so a non-in-place allocator is fine here.
33
44
  *
34
- * The input can be any `Uint8Array` a view from `snapshotColumnStore`,
35
- * a sliced copy, or bytes read off disk / postMessage. The function
45
+ * The input can be any `Uint8Array`, a view from `columnStoreBytesView`,
46
+ * a sliced copy, or bytes read off disk or off `postMessage`. The function
36
47
  * honours `bytes.byteOffset` and `bytes.byteLength`, so passing a
37
48
  * subarray that doesn't start at offset 0 of its backing buffer is
38
49
  * supported.
39
50
  *
51
+ * `options.storeBase` places the restored header at that byte offset in the
52
+ * fresh backing, default 0. The snapshot itself carries no base, so a store
53
+ * taken at one base restores at any other and both digests agree.
54
+ *
40
55
  * Throws `StoreRestoreError` if the bytes are too short for the header,
41
56
  * have the wrong magic, or carry an incompatible `sim_abi_version`. */
42
- export declare function restoreColumnStore(bytes: Uint8Array, allocator?: BufferAllocator): ColumnStore;
57
+ export declare function restoreColumnStore(bytes: Uint8Array, allocator?: BufferAllocator, options?: RestoreColumnStoreOptions): ColumnStore;
43
58
  //# sourceMappingURL=snapshot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../src/core/store/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAUH,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAE1E,qBAAa,iBAAkB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAI3B;AAED;;;;;;;;;;;;;;;;iEAgBiE;AACjE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,GAAG,UAAU,CAGlE;AAED;;;;;;;;;;;;;;;;;uEAiBuE;AACvE,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,UAAU,EACjB,SAAS,GAAE,eAAuC,GAChD,WAAW,CAiEb"}
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../src/core/store/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAkBH,OAAO,EAAkD,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClG,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAG1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B,wCAAwC;AACxC,MAAM,WAAW,yBAAyB;IACzC;;gCAE4B;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;iEAqBiE;AACjE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,UAAU,CAGnE;AAoED;;;;;;;;;;;;;;;;;;;;;uEAqBuE;AACvE,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,UAAU,EACjB,SAAS,GAAE,eAAuC,EAClD,OAAO,GAAE,yBAA8B,GACrC,WAAW,CAoGb"}
@@ -1,23 +1,23 @@
1
1
  import { ColumnStore } from './column_store.cjs';
2
- /** FNV-1a 32-bit offset basis (Fowler/Noll/Vo). */
2
+ /** FNV-1a 32-bit offset basis (Fowler, Noll and Vo). */
3
3
  export declare const FNV1A_OFFSET_BASIS = 2166136261;
4
4
  /** FNV-1a 32-bit prime. */
5
5
  export declare const FNV1A_PRIME = 16777619;
6
6
  /** One FNV-1a round folding a single **byte** (the low 8 bits of `b`) into the
7
7
  * running `hash`: `hash = imul((hash ^ (b & 0xff)) >>> 0, PRIME) >>> 0`. The
8
- * single canonical definition of the byte step (#498) — reused by `fnv1a32`
9
- * here, by the sparse-store `schemaFingerprint`, and by the server determinism
10
- * byte/u32 folds, so the constants and the round live in exactly one place.
8
+ * single canonical definition of the byte step, reused by `fnv1a32`
9
+ * here, by the sparse-store `schemaFingerprint`, and by the determinism
10
+ * byte and u32 folds, so the constants and the round live in exactly one place.
11
11
  *
12
- * Trivially inlinable (monomorphic, no allocation); the intermediate `>>> 0`s
13
- * never change a later round (xor/imul see the same 32-bit pattern signed or
14
- * unsigned), they just keep the value unsigned for readers. */
12
+ * Trivially inlinable, monomorphic and allocation-free. The intermediate `>>> 0`s
13
+ * never change a later round (xor and imul see the same 32-bit pattern signed or
14
+ * unsigned), they only keep the value unsigned for readers. */
15
15
  export declare function fnv1aStep(hash: number, b: number): number;
16
- /** One FNV-1a round folding a full 32-bit **word** into `hash` the whole word
16
+ /** One FNV-1a round folding a full 32-bit **word** into `hash`, the whole word
17
17
  * xored at once, not four byte rounds. A coarser fold than per-byte FNV-1a, but
18
- * equally deterministic and ~4× cheaper, which is why `Store.stateHash` folds
19
- * its columns this way (#326). This is the canonical word-step definition its
20
- * cold sparse/relation folds call; its hot dense-column inner loop inlines this
18
+ * equally deterministic and far cheaper, which is why `Store.stateHash` folds
19
+ * its columns this way. This is the canonical word-step definition its
20
+ * cold sparse and relation folds call. Its hot dense-column inner loop inlines this
21
21
  * exact step for speed and must stay in sync. Same `>>> 0` reasoning as
22
22
  * `fnv1aStep`. */
23
23
  export declare function fnv1aStepWord(hash: number, word: number): number;
@@ -28,11 +28,11 @@ export declare function fnv1aStepWord(hash: number, word: number): number;
28
28
  * snapshot, bytes off disk, a hot subrange) can hash without round-tripping
29
29
  * through `ColumnStore`. */
30
30
  export declare function fnv1a32(bytes: Uint8Array): number;
31
- /** FNV-1a 32-bit hash of the entire SAB region header + descriptors +
31
+ /** FNV-1a 32-bit hash of the entire SAB region, header + descriptors +
32
32
  * column bytes. The canonical state identifier for cross-replay determinism
33
- * checks (#171 plan exit criterion §6.1.7).
33
+ * checks.
34
34
  *
35
- * The snapshot view is zero-copy (`snapshotColumnStore` is a view, not a
35
+ * The snapshot view is zero-copy (`columnStoreBytesView` is a view, not a
36
36
  * copy), so this is one scan over the live SAB with no allocation. */
37
37
  export declare function columnStoreStateHash(store: ColumnStore): number;
38
38
  //# sourceMappingURL=state_hash.d.ts.map
@@ -1,23 +1,23 @@
1
1
  import { ColumnStore } from './column_store.js';
2
- /** FNV-1a 32-bit offset basis (Fowler/Noll/Vo). */
2
+ /** FNV-1a 32-bit offset basis (Fowler, Noll and Vo). */
3
3
  export declare const FNV1A_OFFSET_BASIS = 2166136261;
4
4
  /** FNV-1a 32-bit prime. */
5
5
  export declare const FNV1A_PRIME = 16777619;
6
6
  /** One FNV-1a round folding a single **byte** (the low 8 bits of `b`) into the
7
7
  * running `hash`: `hash = imul((hash ^ (b & 0xff)) >>> 0, PRIME) >>> 0`. The
8
- * single canonical definition of the byte step (#498) — reused by `fnv1a32`
9
- * here, by the sparse-store `schemaFingerprint`, and by the server determinism
10
- * byte/u32 folds, so the constants and the round live in exactly one place.
8
+ * single canonical definition of the byte step, reused by `fnv1a32`
9
+ * here, by the sparse-store `schemaFingerprint`, and by the determinism
10
+ * byte and u32 folds, so the constants and the round live in exactly one place.
11
11
  *
12
- * Trivially inlinable (monomorphic, no allocation); the intermediate `>>> 0`s
13
- * never change a later round (xor/imul see the same 32-bit pattern signed or
14
- * unsigned), they just keep the value unsigned for readers. */
12
+ * Trivially inlinable, monomorphic and allocation-free. The intermediate `>>> 0`s
13
+ * never change a later round (xor and imul see the same 32-bit pattern signed or
14
+ * unsigned), they only keep the value unsigned for readers. */
15
15
  export declare function fnv1aStep(hash: number, b: number): number;
16
- /** One FNV-1a round folding a full 32-bit **word** into `hash` the whole word
16
+ /** One FNV-1a round folding a full 32-bit **word** into `hash`, the whole word
17
17
  * xored at once, not four byte rounds. A coarser fold than per-byte FNV-1a, but
18
- * equally deterministic and ~4× cheaper, which is why `Store.stateHash` folds
19
- * its columns this way (#326). This is the canonical word-step definition its
20
- * cold sparse/relation folds call; its hot dense-column inner loop inlines this
18
+ * equally deterministic and far cheaper, which is why `Store.stateHash` folds
19
+ * its columns this way. This is the canonical word-step definition its
20
+ * cold sparse and relation folds call. Its hot dense-column inner loop inlines this
21
21
  * exact step for speed and must stay in sync. Same `>>> 0` reasoning as
22
22
  * `fnv1aStep`. */
23
23
  export declare function fnv1aStepWord(hash: number, word: number): number;
@@ -28,11 +28,11 @@ export declare function fnv1aStepWord(hash: number, word: number): number;
28
28
  * snapshot, bytes off disk, a hot subrange) can hash without round-tripping
29
29
  * through `ColumnStore`. */
30
30
  export declare function fnv1a32(bytes: Uint8Array): number;
31
- /** FNV-1a 32-bit hash of the entire SAB region header + descriptors +
31
+ /** FNV-1a 32-bit hash of the entire SAB region, header + descriptors +
32
32
  * column bytes. The canonical state identifier for cross-replay determinism
33
- * checks (#171 plan exit criterion §6.1.7).
33
+ * checks.
34
34
  *
35
- * The snapshot view is zero-copy (`snapshotColumnStore` is a view, not a
35
+ * The snapshot view is zero-copy (`columnStoreBytesView` is a view, not a
36
36
  * copy), so this is one scan over the live SAB with no allocation. */
37
37
  export declare function columnStoreStateHash(store: ColumnStore): number;
38
38
  //# sourceMappingURL=state_hash.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state_hash.d.ts","sourceRoot":"","sources":["../../../src/core/store/state_hash.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,mDAAmD;AACnD,eAAO,MAAM,kBAAkB,aAAa,CAAC;AAC7C,2BAA2B;AAC3B,eAAO,MAAM,WAAW,WAAa,CAAC;AAEtC;;;;;;;;+DAQ+D;AAC/D,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAGzD;AAED;;;;;;kBAMkB;AAClB,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED;;;;;4BAK4B;AAC5B,wBAAgB,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAIjD;AAED;;;;;sEAKsE;AACtE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAE/D"}
1
+ {"version":3,"file":"state_hash.d.ts","sourceRoot":"","sources":["../../../src/core/store/state_hash.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,wDAAwD;AACxD,eAAO,MAAM,kBAAkB,aAAa,CAAC;AAC7C,2BAA2B;AAC3B,eAAO,MAAM,WAAW,WAAa,CAAC;AAEtC;;;;;;;;+DAQ+D;AAC/D,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAGzD;AAED;;;;;;kBAMkB;AAClB,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED;;;;;4BAK4B;AAC5B,wBAAgB,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAIjD;AAED;;;;;sEAKsE;AACtE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAE/D"}
@@ -1,8 +1,8 @@
1
1
  import { CreateColumnStoreOptions } from './column_store.cjs';
2
- /** The `StoreHeader` fields that hold a MECHANISM region's byte offset (0 ⇒
3
- * region absent). Exactly the four fields a `MechanismRegionSpec` can own; the
4
- * always-present `bindings_off` / `layout_descriptor_off` and the generic
5
- * `region_table_off` / `region_table_count` pair are not mechanism regions in
2
+ /** The `StoreHeader` fields that hold a mechanism region's byte offset (0 ⇒
3
+ * region absent). Exactly the four fields a `MechanismRegionSpec` can own. The
4
+ * always-present `bindings_off` and `layout_descriptor_off`, and the generic
5
+ * `region_table_off` and `region_table_count` pair, are not mechanism regions in
6
6
  * this sense and are computed directly outside the loop. */
7
7
  export type StoreRegionOffsetField = "command_ring_off" | "entity_index_off" | "event_ring_off" | "action_ring_off";
8
8
  /** Mutable accumulator for building `CreateColumnStoreOptions` field by field as
@@ -10,18 +10,18 @@ export type StoreRegionOffsetField = "command_ring_off" | "entity_index_off" | "
10
10
  export type MutableColumnStoreOptions = {
11
11
  -readonly [K in keyof CreateColumnStoreOptions]: CreateColumnStoreOptions[K];
12
12
  };
13
- /** One engine MECHANISM region. The four closures are the per-region half of
14
- * each generic pass; see the module doc for which consumer drives which.
13
+ /** One engine mechanism region. The four closures are the per-region half of
14
+ * each generic pass. See the module doc for which consumer drives which.
15
15
  *
16
- * (Consumer/game regions use the separate self-contained `StoreRegionSpec` in
17
- * `region_table.ts` they carry a precomputed `bytes` + `init` and are
16
+ * (A consumer's own regions use the separate self-contained `StoreRegionSpec` in
17
+ * `region_table.ts`. They carry a precomputed `bytes` + `init` and are
18
18
  * addressed by an opaque `region_id`, not a named header field.) */
19
19
  export interface MechanismRegionSpec {
20
- /** Stable name reads in diagnostics and keeps the array self-documenting. */
20
+ /** Stable name, reads in diagnostics and keeps the array self-documenting. */
21
21
  readonly name: string;
22
22
  /** `StoreHeader` field this region's byte offset is written to. */
23
23
  readonly headerOff: StoreRegionOffsetField;
24
- /** Byte size implied by `options` (0 ⇒ region absent, so no offset/init). */
24
+ /** Byte size implied by `options` (0 ⇒ region absent, so no offset and no init). */
25
25
  readonly sizeFromOptions: (options: CreateColumnStoreOptions) => number;
26
26
  /** Initialise the region's header at `off`. Called by `createColumnStore`
27
27
  * only when the region is present (`off !== 0`). */
@@ -1,8 +1,8 @@
1
1
  import { CreateColumnStoreOptions } from './column_store.js';
2
- /** The `StoreHeader` fields that hold a MECHANISM region's byte offset (0 ⇒
3
- * region absent). Exactly the four fields a `MechanismRegionSpec` can own; the
4
- * always-present `bindings_off` / `layout_descriptor_off` and the generic
5
- * `region_table_off` / `region_table_count` pair are not mechanism regions in
2
+ /** The `StoreHeader` fields that hold a mechanism region's byte offset (0 ⇒
3
+ * region absent). Exactly the four fields a `MechanismRegionSpec` can own. The
4
+ * always-present `bindings_off` and `layout_descriptor_off`, and the generic
5
+ * `region_table_off` and `region_table_count` pair, are not mechanism regions in
6
6
  * this sense and are computed directly outside the loop. */
7
7
  export type StoreRegionOffsetField = "command_ring_off" | "entity_index_off" | "event_ring_off" | "action_ring_off";
8
8
  /** Mutable accumulator for building `CreateColumnStoreOptions` field by field as
@@ -10,18 +10,18 @@ export type StoreRegionOffsetField = "command_ring_off" | "entity_index_off" | "
10
10
  export type MutableColumnStoreOptions = {
11
11
  -readonly [K in keyof CreateColumnStoreOptions]: CreateColumnStoreOptions[K];
12
12
  };
13
- /** One engine MECHANISM region. The four closures are the per-region half of
14
- * each generic pass; see the module doc for which consumer drives which.
13
+ /** One engine mechanism region. The four closures are the per-region half of
14
+ * each generic pass. See the module doc for which consumer drives which.
15
15
  *
16
- * (Consumer/game regions use the separate self-contained `StoreRegionSpec` in
17
- * `region_table.ts` they carry a precomputed `bytes` + `init` and are
16
+ * (A consumer's own regions use the separate self-contained `StoreRegionSpec` in
17
+ * `region_table.ts`. They carry a precomputed `bytes` + `init` and are
18
18
  * addressed by an opaque `region_id`, not a named header field.) */
19
19
  export interface MechanismRegionSpec {
20
- /** Stable name reads in diagnostics and keeps the array self-documenting. */
20
+ /** Stable name, reads in diagnostics and keeps the array self-documenting. */
21
21
  readonly name: string;
22
22
  /** `StoreHeader` field this region's byte offset is written to. */
23
23
  readonly headerOff: StoreRegionOffsetField;
24
- /** Byte size implied by `options` (0 ⇒ region absent, so no offset/init). */
24
+ /** Byte size implied by `options` (0 ⇒ region absent, so no offset and no init). */
25
25
  readonly sizeFromOptions: (options: CreateColumnStoreOptions) => number;
26
26
  /** Initialise the region's header at `off`. Called by `createColumnStore`
27
27
  * only when the region is present (`off !== 0`). */
@@ -1 +1 @@
1
- {"version":3,"file":"store_regions.d.ts","sourceRoot":"","sources":["../../../src/core/store/store_regions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAUH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE/D;;;;4DAI4D;AAC5D,MAAM,MAAM,sBAAsB,GAC/B,kBAAkB,GAClB,kBAAkB,GAClB,gBAAgB,GAChB,iBAAiB,CAAC;AAErB;2EAC2E;AAC3E,MAAM,MAAM,yBAAyB,GAAG;IACvC,CAAC,UAAU,CAAC,IAAI,MAAM,wBAAwB,GAAG,wBAAwB,CAAC,CAAC,CAAC;CAC5E,CAAC;AAEF;;;;;oEAKoE;AACpE,MAAM,WAAW,mBAAmB;IACnC,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mEAAmE;IACnE,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC;IAC3C,6EAA6E;IAC7E,QAAQ,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,MAAM,CAAC;IACxE;wDACoD;IACpD,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACxF;mEAC+D;IAC/D,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9D;qEACiE;IACjE,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,yBAAyB,KAAK,IAAI,CAAC;CAC5F;AAED,+EAA+E;AAC/E,eAAO,MAAM,oBAAoB,EAAE,SAAS,mBAAmB,EAgE9D,CAAC"}
1
+ {"version":3,"file":"store_regions.d.ts","sourceRoot":"","sources":["../../../src/core/store/store_regions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAUH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE/D;;;;4DAI4D;AAC5D,MAAM,MAAM,sBAAsB,GAC/B,kBAAkB,GAClB,kBAAkB,GAClB,gBAAgB,GAChB,iBAAiB,CAAC;AAErB;2EAC2E;AAC3E,MAAM,MAAM,yBAAyB,GAAG;IACvC,CAAC,UAAU,CAAC,IAAI,MAAM,wBAAwB,GAAG,wBAAwB,CAAC,CAAC,CAAC;CAC5E,CAAC;AAEF;;;;;oEAKoE;AACpE,MAAM,WAAW,mBAAmB;IACnC,8EAA8E;IAC9E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mEAAmE;IACnE,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC;IAC3C,oFAAoF;IACpF,QAAQ,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,MAAM,CAAC;IACxE;wDACoD;IACpD,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACxF;mEAC+D;IAC/D,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9D;qEACiE;IACjE,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,yBAAyB,KAAK,IAAI,CAAC;CAC5F;AAED,+EAA+E;AAC/E,eAAO,MAAM,oBAAoB,EAAE,SAAS,mBAAmB,EA0D9D,CAAC"}
@@ -1,5 +1,29 @@
1
1
  export declare const STORE_MAGIC = 827148627;
2
- export declare const SIM_ABI_VERSION = 0;
2
+ /** Schema version of the header, the descriptors and the region table.
3
+ *
4
+ * Version 1 makes every `*_off` in the header, every `byte_off` in a column
5
+ * descriptor and every region-table offset relative to the store base, and
6
+ * makes `capacity` the store span measured from that base. Version 0 measured
7
+ * all of them from buffer byte 0. Restore and resume reject a version they do
8
+ * not know, because the two readings of one offset disagree.
9
+ *
10
+ * Version 1 also reserves `entity_ids_off` in the archetype descriptor header.
11
+ * The version stays at 1 because no store of version 1 has shipped. Nothing
12
+ * outside this repository can hold the narrower header, so growing it now
13
+ * costs nothing. Reserving the field after the release costs a version bump
14
+ * and a reader that must branch on two header widths. */
15
+ export declare const SIM_ABI_VERSION = 1;
16
+ /** The version the published 0.5 line wrote. Every store of that version sat
17
+ * at buffer byte 0, so its offsets read correctly as version 1 offsets from the
18
+ * header. Restore and resume accept it and stamp the current version. */
19
+ export declare const LEGACY_ABSOLUTE_ABI_VERSION = 0;
20
+ /** The archetype descriptor header width version 0 wrote, before
21
+ * `entity_ids_off` joined the header. Every field version 0 carries sits at the
22
+ * offset version 1 gives it, so a version 0 region differs from a version 1
23
+ * region only in where the columns start and how far one record reaches.
24
+ * Restore walks a version 0 region with this width and re-emits it at the
25
+ * current width. */
26
+ export declare const LEGACY_ARCHETYPE_DESCRIPTOR_HEADER_BYTES = 36;
3
27
  export declare const COMPONENT_MASK_WORDS = 4;
4
28
  export declare const STORE_HEADER_BYTES = 52;
5
29
  export declare const STORE_HEADER_OFFSETS: {
@@ -31,7 +55,7 @@ export declare const COLUMN_DESCRIPTOR_OFFSETS: {
31
55
  readonly byte_off: 8;
32
56
  readonly stride: 12;
33
57
  };
34
- export declare const ARCHETYPE_DESCRIPTOR_HEADER_BYTES = 36;
58
+ export declare const ARCHETYPE_DESCRIPTOR_HEADER_BYTES = 40;
35
59
  export declare const ARCHETYPE_DESCRIPTOR_OFFSETS: {
36
60
  readonly archetype_id: 0;
37
61
  readonly component_mask: 4;
@@ -39,5 +63,6 @@ export declare const ARCHETYPE_DESCRIPTOR_OFFSETS: {
39
63
  readonly row_capacity: 24;
40
64
  readonly column_count: 28;
41
65
  readonly enabled_count: 32;
66
+ readonly entity_ids_off: 36;
42
67
  };
43
68
  //# sourceMappingURL=abi.d.ts.map
@@ -1,5 +1,29 @@
1
1
  export declare const STORE_MAGIC = 827148627;
2
- export declare const SIM_ABI_VERSION = 0;
2
+ /** Schema version of the header, the descriptors and the region table.
3
+ *
4
+ * Version 1 makes every `*_off` in the header, every `byte_off` in a column
5
+ * descriptor and every region-table offset relative to the store base, and
6
+ * makes `capacity` the store span measured from that base. Version 0 measured
7
+ * all of them from buffer byte 0. Restore and resume reject a version they do
8
+ * not know, because the two readings of one offset disagree.
9
+ *
10
+ * Version 1 also reserves `entity_ids_off` in the archetype descriptor header.
11
+ * The version stays at 1 because no store of version 1 has shipped. Nothing
12
+ * outside this repository can hold the narrower header, so growing it now
13
+ * costs nothing. Reserving the field after the release costs a version bump
14
+ * and a reader that must branch on two header widths. */
15
+ export declare const SIM_ABI_VERSION = 1;
16
+ /** The version the published 0.5 line wrote. Every store of that version sat
17
+ * at buffer byte 0, so its offsets read correctly as version 1 offsets from the
18
+ * header. Restore and resume accept it and stamp the current version. */
19
+ export declare const LEGACY_ABSOLUTE_ABI_VERSION = 0;
20
+ /** The archetype descriptor header width version 0 wrote, before
21
+ * `entity_ids_off` joined the header. Every field version 0 carries sits at the
22
+ * offset version 1 gives it, so a version 0 region differs from a version 1
23
+ * region only in where the columns start and how far one record reaches.
24
+ * Restore walks a version 0 region with this width and re-emits it at the
25
+ * current width. */
26
+ export declare const LEGACY_ARCHETYPE_DESCRIPTOR_HEADER_BYTES = 36;
3
27
  export declare const COMPONENT_MASK_WORDS = 4;
4
28
  export declare const STORE_HEADER_BYTES = 52;
5
29
  export declare const STORE_HEADER_OFFSETS: {
@@ -31,7 +55,7 @@ export declare const COLUMN_DESCRIPTOR_OFFSETS: {
31
55
  readonly byte_off: 8;
32
56
  readonly stride: 12;
33
57
  };
34
- export declare const ARCHETYPE_DESCRIPTOR_HEADER_BYTES = 36;
58
+ export declare const ARCHETYPE_DESCRIPTOR_HEADER_BYTES = 40;
35
59
  export declare const ARCHETYPE_DESCRIPTOR_OFFSETS: {
36
60
  readonly archetype_id: 0;
37
61
  readonly component_mask: 4;
@@ -39,5 +63,6 @@ export declare const ARCHETYPE_DESCRIPTOR_OFFSETS: {
39
63
  readonly row_capacity: 24;
40
64
  readonly column_count: 28;
41
65
  readonly enabled_count: 32;
66
+ readonly entity_ids_off: 36;
42
67
  };
43
68
  //# sourceMappingURL=abi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../../../src/core/store/vendored_abi/abi.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,WAAW,YAAa,CAAC;AACtC,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;CAcvB,CAAC;AAEX,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,0BAA0B;;;;CAI7B,CAAC;AAEX,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,yBAAyB;;;;;;CAM5B,CAAC;AAEX,eAAO,MAAM,iCAAiC,KAAK,CAAC;AACpD,eAAO,MAAM,4BAA4B;;;;;;;CAO/B,CAAC"}
1
+ {"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../../../src/core/store/vendored_abi/abi.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,WAAW,YAAa,CAAC;AACtC;;;;;;;;;;;;yDAYyD;AACzD,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC;;yEAEyE;AACzE,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAC7C;;;;;oBAKoB;AACpB,eAAO,MAAM,wCAAwC,KAAK,CAAC;AAC3D,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;CAcvB,CAAC;AAEX,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,0BAA0B;;;;CAI7B,CAAC;AAEX,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,yBAAyB;;;;;;CAM5B,CAAC;AAoBX,eAAO,MAAM,iCAAiC,KAAK,CAAC;AACpD,eAAO,MAAM,4BAA4B;;;;;;;;CAQ/B,CAAC"}