@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,125 @@
1
+ import { Store } from './store.cjs';
2
+ import { ChangeFeed } from './change_feed.cjs';
3
+ import { SystemContext } from './system_context.cjs';
4
+ import { ECS } from './ecs.cjs';
5
+ import { RouteDispatch } from './schedule.cjs';
6
+ import { SystemConfig, SystemDescriptor } from './system.cjs';
7
+ export type { ChangeFeed } from './change_feed.cjs';
8
+ /** How a plugin claims the body of a system, and builds what one dispatch of
9
+ * it reads.
10
+ *
11
+ * The world asks the planner about every system it registers. A planner that
12
+ * has nothing to say about one answers `undefined`, and the system keeps its
13
+ * `fn`. Cold: registration only. */
14
+ export interface SystemRoutePlanner {
15
+ /** Build what one routed dispatch reads, or `undefined` for a system this
16
+ * route does not claim. The world freezes the result onto the descriptor as
17
+ * `routePlan` and never looks inside it, so the plan's shape belongs to the
18
+ * plugin. The plugin validates its own config here, which is why a world
19
+ * without the plugin validates none. */
20
+ plan(config: SystemConfig): object | undefined;
21
+ }
22
+ /** What a route holds back from the world after it installs.
23
+ *
24
+ * One call, and the world holds one route. `null` puts every claimed system
25
+ * back on its own `fn`. Cold: an attach and a detach, never a frame. */
26
+ export interface RouteControl {
27
+ route(dispatch: RouteDispatch | null): void;
28
+ }
29
+ /** Where the world's bytes are, for a plugin that reads them directly.
30
+ *
31
+ * A worker, a compute backend and a wasm module all need the same three
32
+ * facts. The memory travels and not its current buffer, because the two grow
33
+ * differently and a reader survives both. */
34
+ export interface PluginMemory {
35
+ /** The bytes a foreign reader reaches: the `WebAssembly.Memory` on the
36
+ * wasm backing, the `SharedArrayBuffer` on the shared backing, `null` on
37
+ * any other. */
38
+ readonly backing: SharedArrayBuffer | WebAssembly.Memory | null;
39
+ /** What `memory.backing` resolved to. A refusal on a backing the reader
40
+ * cannot reach names it. */
41
+ readonly backingSource: string;
42
+ /** The byte offset of the store header inside the backing. */
43
+ readonly storeBase: number;
44
+ }
45
+ /** What one plugin may reach during `install`, and nothing wider.
46
+ *
47
+ * The world hands this record out once, at construction. A member that a bare
48
+ * store cannot answer is a method and not a field, so `storeOnlyHost` below
49
+ * can throw on the ones a store has no answer for. */
50
+ export interface PluginHost {
51
+ /** Where the subsystem seams live. A plugin builds its service from a
52
+ * host record the store hands out, and gives the service back through an
53
+ * install method. */
54
+ readonly store: Store;
55
+ /** The bare world, for a plugin that registers a system, reads a
56
+ * field, builds a cursor or reaches a resource. It carries no facade of
57
+ * any plugin, including the one installing. */
58
+ readonly world: ECS;
59
+ /** The store's change feed, typed to what a consumer of it may touch. */
60
+ readonly changes: ChangeFeed;
61
+ /** The one system context an observer callback receives, shared with the
62
+ * schedule so an observer sees the same access span a system does. */
63
+ readonly context: SystemContext;
64
+ /** Run `fn` at the tail of every `update()`, after every system of the
65
+ * frame. `run` is the change tick of the detection point, above every
66
+ * stamp the frame made. Hooks run in install order. */
67
+ onSettle(fn: (run: number) => void): void;
68
+ /** Contribute the access shapes `startup()` folds into the archetype
69
+ * closure, so a callback that spawns or transitions gets its target
70
+ * archetype planted rather than first-touched mid-tick. Read once, at
71
+ * startup. */
72
+ onPrewarm(fn: () => readonly SystemDescriptor[]): void;
73
+ /** Run `fn` when the world goes away. A plugin that holds a thread, a
74
+ * timer or a socket ends it here. Hooks run in install order. */
75
+ onDispose(fn: () => void): void;
76
+ /** Where the world's bytes are. A plugin that hands the bytes to a worker
77
+ * or to a wasm module reads the three facts here. */
78
+ readonly memory: PluginMemory;
79
+ /** Claim the body of the systems this plugin routes, and take back the one
80
+ * call that turns the route on and off. A world holds one route, so a
81
+ * second install is a fault. */
82
+ installRoute(planner: SystemRoutePlanner): RouteControl;
83
+ }
84
+ /** An optional subsystem, and the facade surface it contributes.
85
+ *
86
+ * `install` receives the host because that is where the seams live: a plugin
87
+ * builds its service from a host record the store hands out, gives the service
88
+ * back through an install method, and returns its facade.
89
+ *
90
+ * `out X` (declared covariance) is what lets a plugin list be typed
91
+ * `readonly Plugin<object>[]`: `X` appears only in `install`'s return, so
92
+ * covariance is the honest direction and a concrete plugin is usable where
93
+ * any plugin is expected. Left unannotated, the compiler measures `X` from
94
+ * the whole interface and the list bound rejects every real plugin. */
95
+ export interface Plugin<out X extends object> {
96
+ /** Names the plugin in a `PLUGIN_NOT_INSTALLED` fault. Matches the
97
+ * published subpath, so the message can name the import that fixes it. */
98
+ readonly name: string;
99
+ /** The plugins this one reads through, by name. `ECS.create` walks
100
+ * the plugin list in order, so a dependency has to come first in the list,
101
+ * and a missing one is a fault at construction. */
102
+ readonly requires?: readonly string[];
103
+ install(host: PluginHost): X;
104
+ }
105
+ /** The facade surface of one plugin, or `never` for a non-plugin. */
106
+ type SurfaceOf<E> = E extends Plugin<infer X> ? X : never;
107
+ /** Turn a union into an intersection. A plugin list is a tuple, so its element
108
+ * type is the union of the plugins in it, and a world carries all of them
109
+ * at once. The inference site is contravariant, which is what performs the
110
+ * conversion. */
111
+ type UnionToIntersection<U> = (U extends unknown ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
112
+ /** The combined facade surface of a plugin list. `ECS.create` intersects this
113
+ * with the world, so `ecs.relations` exists exactly when `relations()` is in
114
+ * the list. */
115
+ export type PluginsOf<P extends readonly unknown[]> = UnionToIntersection<SurfaceOf<P[number]>> & object;
116
+ /** A host for a bare `Store`, with no world around it.
117
+ *
118
+ * Every plugin that only needs store seams installs through this, which is
119
+ * what a test driving a raw store uses. `store` and `changes` are both the
120
+ * store, so the change feed works here. Every world-level member throws: a
121
+ * bare store has no world, no system context, no schedule tail and nowhere to
122
+ * keep an observer registry, so reaching for one is a mistake worth naming
123
+ * rather than a case to silently support. */
124
+ export declare function storeOnlyHost(store: Store): PluginHost;
125
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1,125 @@
1
+ import { Store } from './store.js';
2
+ import { ChangeFeed } from './change_feed.js';
3
+ import { SystemContext } from './system_context.js';
4
+ import { ECS } from './ecs.js';
5
+ import { RouteDispatch } from './schedule.js';
6
+ import { SystemConfig, SystemDescriptor } from './system.js';
7
+ export type { ChangeFeed } from './change_feed.js';
8
+ /** How a plugin claims the body of a system, and builds what one dispatch of
9
+ * it reads.
10
+ *
11
+ * The world asks the planner about every system it registers. A planner that
12
+ * has nothing to say about one answers `undefined`, and the system keeps its
13
+ * `fn`. Cold: registration only. */
14
+ export interface SystemRoutePlanner {
15
+ /** Build what one routed dispatch reads, or `undefined` for a system this
16
+ * route does not claim. The world freezes the result onto the descriptor as
17
+ * `routePlan` and never looks inside it, so the plan's shape belongs to the
18
+ * plugin. The plugin validates its own config here, which is why a world
19
+ * without the plugin validates none. */
20
+ plan(config: SystemConfig): object | undefined;
21
+ }
22
+ /** What a route holds back from the world after it installs.
23
+ *
24
+ * One call, and the world holds one route. `null` puts every claimed system
25
+ * back on its own `fn`. Cold: an attach and a detach, never a frame. */
26
+ export interface RouteControl {
27
+ route(dispatch: RouteDispatch | null): void;
28
+ }
29
+ /** Where the world's bytes are, for a plugin that reads them directly.
30
+ *
31
+ * A worker, a compute backend and a wasm module all need the same three
32
+ * facts. The memory travels and not its current buffer, because the two grow
33
+ * differently and a reader survives both. */
34
+ export interface PluginMemory {
35
+ /** The bytes a foreign reader reaches: the `WebAssembly.Memory` on the
36
+ * wasm backing, the `SharedArrayBuffer` on the shared backing, `null` on
37
+ * any other. */
38
+ readonly backing: SharedArrayBuffer | WebAssembly.Memory | null;
39
+ /** What `memory.backing` resolved to. A refusal on a backing the reader
40
+ * cannot reach names it. */
41
+ readonly backingSource: string;
42
+ /** The byte offset of the store header inside the backing. */
43
+ readonly storeBase: number;
44
+ }
45
+ /** What one plugin may reach during `install`, and nothing wider.
46
+ *
47
+ * The world hands this record out once, at construction. A member that a bare
48
+ * store cannot answer is a method and not a field, so `storeOnlyHost` below
49
+ * can throw on the ones a store has no answer for. */
50
+ export interface PluginHost {
51
+ /** Where the subsystem seams live. A plugin builds its service from a
52
+ * host record the store hands out, and gives the service back through an
53
+ * install method. */
54
+ readonly store: Store;
55
+ /** The bare world, for a plugin that registers a system, reads a
56
+ * field, builds a cursor or reaches a resource. It carries no facade of
57
+ * any plugin, including the one installing. */
58
+ readonly world: ECS;
59
+ /** The store's change feed, typed to what a consumer of it may touch. */
60
+ readonly changes: ChangeFeed;
61
+ /** The one system context an observer callback receives, shared with the
62
+ * schedule so an observer sees the same access span a system does. */
63
+ readonly context: SystemContext;
64
+ /** Run `fn` at the tail of every `update()`, after every system of the
65
+ * frame. `run` is the change tick of the detection point, above every
66
+ * stamp the frame made. Hooks run in install order. */
67
+ onSettle(fn: (run: number) => void): void;
68
+ /** Contribute the access shapes `startup()` folds into the archetype
69
+ * closure, so a callback that spawns or transitions gets its target
70
+ * archetype planted rather than first-touched mid-tick. Read once, at
71
+ * startup. */
72
+ onPrewarm(fn: () => readonly SystemDescriptor[]): void;
73
+ /** Run `fn` when the world goes away. A plugin that holds a thread, a
74
+ * timer or a socket ends it here. Hooks run in install order. */
75
+ onDispose(fn: () => void): void;
76
+ /** Where the world's bytes are. A plugin that hands the bytes to a worker
77
+ * or to a wasm module reads the three facts here. */
78
+ readonly memory: PluginMemory;
79
+ /** Claim the body of the systems this plugin routes, and take back the one
80
+ * call that turns the route on and off. A world holds one route, so a
81
+ * second install is a fault. */
82
+ installRoute(planner: SystemRoutePlanner): RouteControl;
83
+ }
84
+ /** An optional subsystem, and the facade surface it contributes.
85
+ *
86
+ * `install` receives the host because that is where the seams live: a plugin
87
+ * builds its service from a host record the store hands out, gives the service
88
+ * back through an install method, and returns its facade.
89
+ *
90
+ * `out X` (declared covariance) is what lets a plugin list be typed
91
+ * `readonly Plugin<object>[]`: `X` appears only in `install`'s return, so
92
+ * covariance is the honest direction and a concrete plugin is usable where
93
+ * any plugin is expected. Left unannotated, the compiler measures `X` from
94
+ * the whole interface and the list bound rejects every real plugin. */
95
+ export interface Plugin<out X extends object> {
96
+ /** Names the plugin in a `PLUGIN_NOT_INSTALLED` fault. Matches the
97
+ * published subpath, so the message can name the import that fixes it. */
98
+ readonly name: string;
99
+ /** The plugins this one reads through, by name. `ECS.create` walks
100
+ * the plugin list in order, so a dependency has to come first in the list,
101
+ * and a missing one is a fault at construction. */
102
+ readonly requires?: readonly string[];
103
+ install(host: PluginHost): X;
104
+ }
105
+ /** The facade surface of one plugin, or `never` for a non-plugin. */
106
+ type SurfaceOf<E> = E extends Plugin<infer X> ? X : never;
107
+ /** Turn a union into an intersection. A plugin list is a tuple, so its element
108
+ * type is the union of the plugins in it, and a world carries all of them
109
+ * at once. The inference site is contravariant, which is what performs the
110
+ * conversion. */
111
+ type UnionToIntersection<U> = (U extends unknown ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
112
+ /** The combined facade surface of a plugin list. `ECS.create` intersects this
113
+ * with the world, so `ecs.relations` exists exactly when `relations()` is in
114
+ * the list. */
115
+ export type PluginsOf<P extends readonly unknown[]> = UnionToIntersection<SurfaceOf<P[number]>> & object;
116
+ /** A host for a bare `Store`, with no world around it.
117
+ *
118
+ * Every plugin that only needs store seams installs through this, which is
119
+ * what a test driving a raw store uses. `store` and `changes` are both the
120
+ * store, so the change feed works here. Every world-level member throws: a
121
+ * bare store has no world, no system context, no schedule tail and nowhere to
122
+ * keep an observer registry, so reaching for one is a mistake worth naming
123
+ * rather than a case to silently support. */
124
+ export declare function storeOnlyHost(store: Store): PluginHost;
125
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /***
2
+ * The plugin slots a bare world carries, and the guard that fills them.
3
+ *
4
+ * What this file owns: the value a world puts in the member of a plugin it
5
+ * never installed, and the dev refusal of a facade member that would overwrite
6
+ * something the world already has.
7
+ *
8
+ * What it refuses: the `PluginHost` and every type that names a world. The
9
+ * surface guard takes the world as a plain object, so this module stays out of
10
+ * the type cycle that `plugin.ts` and `ecs.ts` share.
11
+ *
12
+ * Cold path. The slots are built once per process, and the guard runs once per
13
+ * plugin under a `__DEV__` build.
14
+ ***/
15
+ export declare const MISSING_RELATIONS: object;
16
+ export declare const MISSING_EVENTS: object;
17
+ export declare const MISSING_WORKERS: object;
18
+ /** The reserved `observe` slot. A function, because a caller calls it. */
19
+ export declare function missingObserve(): never;
20
+ /** Refuse a facade member that would overwrite something the world already
21
+ * carries. `Object.assign` is silent about it, and the loss is a method the
22
+ * world needs. The reserved slots are the exception: a bare world
23
+ * declares each one so it can name the missing plugin, and the
24
+ * plugin that fills the slot is meant to replace it. Dev-only. */
25
+ export declare function assertPluginSurface(world: object, plugin: string, surface: object): void;
26
+ //# sourceMappingURL=plugin_slots.d.ts.map
@@ -0,0 +1,26 @@
1
+ /***
2
+ * The plugin slots a bare world carries, and the guard that fills them.
3
+ *
4
+ * What this file owns: the value a world puts in the member of a plugin it
5
+ * never installed, and the dev refusal of a facade member that would overwrite
6
+ * something the world already has.
7
+ *
8
+ * What it refuses: the `PluginHost` and every type that names a world. The
9
+ * surface guard takes the world as a plain object, so this module stays out of
10
+ * the type cycle that `plugin.ts` and `ecs.ts` share.
11
+ *
12
+ * Cold path. The slots are built once per process, and the guard runs once per
13
+ * plugin under a `__DEV__` build.
14
+ ***/
15
+ export declare const MISSING_RELATIONS: object;
16
+ export declare const MISSING_EVENTS: object;
17
+ export declare const MISSING_WORKERS: object;
18
+ /** The reserved `observe` slot. A function, because a caller calls it. */
19
+ export declare function missingObserve(): never;
20
+ /** Refuse a facade member that would overwrite something the world already
21
+ * carries. `Object.assign` is silent about it, and the loss is a method the
22
+ * world needs. The reserved slots are the exception: a bare world
23
+ * declares each one so it can name the missing plugin, and the
24
+ * plugin that fills the slot is meant to replace it. Dev-only. */
25
+ export declare function assertPluginSurface(world: object, plugin: string, surface: object): void;
26
+ //# sourceMappingURL=plugin_slots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin_slots.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/plugin_slots.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;KAaK;AAmCL,eAAO,MAAM,iBAAiB,EAAE,MAAuC,CAAC;AACxE,eAAO,MAAM,cAAc,EAAE,MAAoC,CAAC;AAClE,eAAO,MAAM,eAAe,EAAE,MAAqC,CAAC;AAapE,0EAA0E;AAC1E,wBAAgB,cAAc,IAAI,KAAK,CAEtC;AAED;;;;kEAIkE;AAClE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAaxF"}