@forgeax/engine-ecs 0.0.0-dev.8d955ade1c79

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 (383) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +278 -0
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/__fixtures__/field-shape-fixture.d.ts +16 -0
  5. package/dist/__fixtures__/field-shape-fixture.d.ts.map +1 -0
  6. package/dist/__tests__/__fixtures__/inspect-scripts.snapshot.d.ts +3 -0
  7. package/dist/__tests__/__fixtures__/inspect-scripts.snapshot.d.ts.map +1 -0
  8. package/dist/__tests__/archetype.unit.test.d.ts +2 -0
  9. package/dist/__tests__/archetype.unit.test.d.ts.map +1 -0
  10. package/dist/__tests__/array-handle-element.test-d.d.ts +2 -0
  11. package/dist/__tests__/array-handle-element.test-d.d.ts.map +1 -0
  12. package/dist/__tests__/buffer-array-vocab.test-d.d.ts +2 -0
  13. package/dist/__tests__/buffer-array-vocab.test-d.d.ts.map +1 -0
  14. package/dist/__tests__/buffer-field-input-widen.unit.test.d.ts +2 -0
  15. package/dist/__tests__/buffer-field-input-widen.unit.test.d.ts.map +1 -0
  16. package/dist/__tests__/buffer-pool.test-d.d.ts +2 -0
  17. package/dist/__tests__/buffer-pool.test-d.d.ts.map +1 -0
  18. package/dist/__tests__/change-detection.unit.test.d.ts +2 -0
  19. package/dist/__tests__/change-detection.unit.test.d.ts.map +1 -0
  20. package/dist/__tests__/command-buffer.test.d.ts +2 -0
  21. package/dist/__tests__/command-buffer.test.d.ts.map +1 -0
  22. package/dist/__tests__/commands-deferred.unit.test.d.ts +2 -0
  23. package/dist/__tests__/commands-deferred.unit.test.d.ts.map +1 -0
  24. package/dist/__tests__/component-catalog.test.d.ts +2 -0
  25. package/dist/__tests__/component-catalog.test.d.ts.map +1 -0
  26. package/dist/__tests__/component-definition-identity.unit.test.d.ts +2 -0
  27. package/dist/__tests__/component-definition-identity.unit.test.d.ts.map +1 -0
  28. package/dist/__tests__/component-nan-preflight.unit.test.d.ts +2 -0
  29. package/dist/__tests__/component-nan-preflight.unit.test.d.ts.map +1 -0
  30. package/dist/__tests__/component-schema.test-d.d.ts +2 -0
  31. package/dist/__tests__/component-schema.test-d.d.ts.map +1 -0
  32. package/dist/__tests__/component-schema.test.d.ts +2 -0
  33. package/dist/__tests__/component-schema.test.d.ts.map +1 -0
  34. package/dist/__tests__/define-component-options.test-d.d.ts +2 -0
  35. package/dist/__tests__/define-component-options.test-d.d.ts.map +1 -0
  36. package/dist/__tests__/deprecated-vocab-rejection.unit.test.d.ts +2 -0
  37. package/dist/__tests__/deprecated-vocab-rejection.unit.test.d.ts.map +1 -0
  38. package/dist/__tests__/despawn-all.unit.test.d.ts +2 -0
  39. package/dist/__tests__/despawn-all.unit.test.d.ts.map +1 -0
  40. package/dist/__tests__/ecs-core-reduction.characterization.test.d.ts +2 -0
  41. package/dist/__tests__/ecs-core-reduction.characterization.test.d.ts.map +1 -0
  42. package/dist/__tests__/ecs-core-reduction.perf.test.d.ts +2 -0
  43. package/dist/__tests__/ecs-core-reduction.perf.test.d.ts.map +1 -0
  44. package/dist/__tests__/ecs-error-code-31.test-d.d.ts +2 -0
  45. package/dist/__tests__/ecs-error-code-31.test-d.d.ts.map +1 -0
  46. package/dist/__tests__/entity-disabling.unit.test.d.ts +2 -0
  47. package/dist/__tests__/entity-disabling.unit.test.d.ts.map +1 -0
  48. package/dist/__tests__/entity-handle-codec-parity.unit.test.d.ts +2 -0
  49. package/dist/__tests__/entity-handle-codec-parity.unit.test.d.ts.map +1 -0
  50. package/dist/__tests__/errors.unit.test.d.ts +2 -0
  51. package/dist/__tests__/errors.unit.test.d.ts.map +1 -0
  52. package/dist/__tests__/execution-conflict-boundary.unit.test.d.ts +2 -0
  53. package/dist/__tests__/execution-conflict-boundary.unit.test.d.ts.map +1 -0
  54. package/dist/__tests__/execution-shared-storage.unit.test.d.ts +2 -0
  55. package/dist/__tests__/execution-shared-storage.unit.test.d.ts.map +1 -0
  56. package/dist/__tests__/externalization-portable-value.unit.test.d.ts +2 -0
  57. package/dist/__tests__/externalization-portable-value.unit.test.d.ts.map +1 -0
  58. package/dist/__tests__/externalization-projection.unit.test.d.ts +2 -0
  59. package/dist/__tests__/externalization-projection.unit.test.d.ts.map +1 -0
  60. package/dist/__tests__/externalization-render-read-lease.test-d.d.ts +2 -0
  61. package/dist/__tests__/externalization-render-read-lease.test-d.d.ts.map +1 -0
  62. package/dist/__tests__/externalization-render-read-lease.unit.test.d.ts +2 -0
  63. package/dist/__tests__/externalization-render-read-lease.unit.test.d.ts.map +1 -0
  64. package/dist/__tests__/externalization-root-surface.unit.test.d.ts +2 -0
  65. package/dist/__tests__/externalization-root-surface.unit.test.d.ts.map +1 -0
  66. package/dist/__tests__/field-enum-labels-reflection.test.d.ts +2 -0
  67. package/dist/__tests__/field-enum-labels-reflection.test.d.ts.map +1 -0
  68. package/dist/__tests__/field-shape-fixture.test.d.ts +2 -0
  69. package/dist/__tests__/field-shape-fixture.test.d.ts.map +1 -0
  70. package/dist/__tests__/field-transient-reflection.test.d.ts +2 -0
  71. package/dist/__tests__/field-transient-reflection.test.d.ts.map +1 -0
  72. package/dist/__tests__/field-value-type.test-d.d.ts +2 -0
  73. package/dist/__tests__/field-value-type.test-d.d.ts.map +1 -0
  74. package/dist/__tests__/fixed-update.unit.test.d.ts +2 -0
  75. package/dist/__tests__/fixed-update.unit.test.d.ts.map +1 -0
  76. package/dist/__tests__/handle.test-d.d.ts +2 -0
  77. package/dist/__tests__/handle.test-d.d.ts.map +1 -0
  78. package/dist/__tests__/hierarchy.unit.test.d.ts +2 -0
  79. package/dist/__tests__/hierarchy.unit.test.d.ts.map +1 -0
  80. package/dist/__tests__/managed-array-vocab.test-d.d.ts +2 -0
  81. package/dist/__tests__/managed-array-vocab.test-d.d.ts.map +1 -0
  82. package/dist/__tests__/minimal-example.test-d.d.ts +2 -0
  83. package/dist/__tests__/minimal-example.test-d.d.ts.map +1 -0
  84. package/dist/__tests__/name-read-types.test-d.d.ts +2 -0
  85. package/dist/__tests__/name-read-types.test-d.d.ts.map +1 -0
  86. package/dist/__tests__/plugin-service.test.d.ts +2 -0
  87. package/dist/__tests__/plugin-service.test.d.ts.map +1 -0
  88. package/dist/__tests__/query-combinations.unit.test.d.ts +2 -0
  89. package/dist/__tests__/query-combinations.unit.test.d.ts.map +1 -0
  90. package/dist/__tests__/query-light-extract-flat-column-ratio.perf.test.d.ts +2 -0
  91. package/dist/__tests__/query-light-extract-flat-column-ratio.perf.test.d.ts.map +1 -0
  92. package/dist/__tests__/query-storage-trends.perf.test.d.ts +2 -0
  93. package/dist/__tests__/query-storage-trends.perf.test.d.ts.map +1 -0
  94. package/dist/__tests__/query-trs-flat-column-ratio.perf.test.d.ts +2 -0
  95. package/dist/__tests__/query-trs-flat-column-ratio.perf.test.d.ts.map +1 -0
  96. package/dist/__tests__/query.unit.test.d.ts +2 -0
  97. package/dist/__tests__/query.unit.test.d.ts.map +1 -0
  98. package/dist/__tests__/relationship-index.perf.test.d.ts +2 -0
  99. package/dist/__tests__/relationship-index.perf.test.d.ts.map +1 -0
  100. package/dist/__tests__/relationship-index.test.d.ts +2 -0
  101. package/dist/__tests__/relationship-index.test.d.ts.map +1 -0
  102. package/dist/__tests__/scalar-field-type-owner.test-d.d.ts +2 -0
  103. package/dist/__tests__/scalar-field-type-owner.test-d.d.ts.map +1 -0
  104. package/dist/__tests__/schedule-determinism.unit.test.d.ts +2 -0
  105. package/dist/__tests__/schedule-determinism.unit.test.d.ts.map +1 -0
  106. package/dist/__tests__/schedule-inspection.unit.test.d.ts +2 -0
  107. package/dist/__tests__/schedule-inspection.unit.test.d.ts.map +1 -0
  108. package/dist/__tests__/schedule-scope-error.unit.test.d.ts +2 -0
  109. package/dist/__tests__/schedule-scope-error.unit.test.d.ts.map +1 -0
  110. package/dist/__tests__/schedule-token.unit.test.d.ts +2 -0
  111. package/dist/__tests__/schedule-token.unit.test.d.ts.map +1 -0
  112. package/dist/__tests__/schema-vocab.test-d.d.ts +2 -0
  113. package/dist/__tests__/schema-vocab.test-d.d.ts.map +1 -0
  114. package/dist/__tests__/serialization.unit.test.d.ts +2 -0
  115. package/dist/__tests__/serialization.unit.test.d.ts.map +1 -0
  116. package/dist/__tests__/shared-kernel-eligibility.test-d.d.ts +2 -0
  117. package/dist/__tests__/shared-kernel-eligibility.test-d.d.ts.map +1 -0
  118. package/dist/__tests__/shared-kernel-eligibility.unit.test.d.ts +2 -0
  119. package/dist/__tests__/shared-kernel-eligibility.unit.test.d.ts.map +1 -0
  120. package/dist/__tests__/shared-ref-store.unit.test.d.ts +2 -0
  121. package/dist/__tests__/shared-ref-store.unit.test.d.ts.map +1 -0
  122. package/dist/__tests__/sparse-tag.unit.test.d.ts +2 -0
  123. package/dist/__tests__/sparse-tag.unit.test.d.ts.map +1 -0
  124. package/dist/__tests__/spawn-field-error.test-d.d.ts +2 -0
  125. package/dist/__tests__/spawn-field-error.test-d.d.ts.map +1 -0
  126. package/dist/__tests__/stale-error.test-d.d.ts +2 -0
  127. package/dist/__tests__/stale-error.test-d.d.ts.map +1 -0
  128. package/dist/__tests__/string-view-symmetry.test-d.d.ts +2 -0
  129. package/dist/__tests__/string-view-symmetry.test-d.d.ts.map +1 -0
  130. package/dist/__tests__/string-vocab.test-d.d.ts +2 -0
  131. package/dist/__tests__/string-vocab.test-d.d.ts.map +1 -0
  132. package/dist/__tests__/structure-epoch-boundaries.unit.test.d.ts +2 -0
  133. package/dist/__tests__/structure-epoch-boundaries.unit.test.d.ts.map +1 -0
  134. package/dist/__tests__/structure-epoch.unit.test.d.ts +2 -0
  135. package/dist/__tests__/structure-epoch.unit.test.d.ts.map +1 -0
  136. package/dist/__tests__/table-archetype-mapping.unit.test.d.ts +2 -0
  137. package/dist/__tests__/table-archetype-mapping.unit.test.d.ts.map +1 -0
  138. package/dist/__tests__/time.unit.test.d.ts +2 -0
  139. package/dist/__tests__/time.unit.test.d.ts.map +1 -0
  140. package/dist/__tests__/types.test-d.d.ts +2 -0
  141. package/dist/__tests__/types.test-d.d.ts.map +1 -0
  142. package/dist/__tests__/unique-ref-store.unit.test.d.ts +2 -0
  143. package/dist/__tests__/unique-ref-store.unit.test.d.ts.map +1 -0
  144. package/dist/__tests__/utils/handle-numeric.d.ts +14 -0
  145. package/dist/__tests__/utils/handle-numeric.d.ts.map +1 -0
  146. package/dist/__tests__/validation-root-surface.unit.test.d.ts +2 -0
  147. package/dist/__tests__/validation-root-surface.unit.test.d.ts.map +1 -0
  148. package/dist/__tests__/visibility-atomic-write.unit.test.d.ts +2 -0
  149. package/dist/__tests__/visibility-atomic-write.unit.test.d.ts.map +1 -0
  150. package/dist/__tests__/world-change-journal.unit.test.d.ts +2 -0
  151. package/dist/__tests__/world-change-journal.unit.test.d.ts.map +1 -0
  152. package/dist/__tests__/world-characterization.unit.test.d.ts +2 -0
  153. package/dist/__tests__/world-characterization.unit.test.d.ts.map +1 -0
  154. package/dist/__tests__/world-consumer-inference.test-d.d.ts +2 -0
  155. package/dist/__tests__/world-consumer-inference.test-d.d.ts.map +1 -0
  156. package/dist/__tests__/world-health.contract.test.d.ts +2 -0
  157. package/dist/__tests__/world-health.contract.test.d.ts.map +1 -0
  158. package/dist/__tests__/world-inspection.test.d.ts +2 -0
  159. package/dist/__tests__/world-inspection.test.d.ts.map +1 -0
  160. package/dist/__tests__/world-internal-identity.unit.test.d.ts +2 -0
  161. package/dist/__tests__/world-internal-identity.unit.test.d.ts.map +1 -0
  162. package/dist/__tests__/world-managed-roundtrip.unit.test.d.ts +2 -0
  163. package/dist/__tests__/world-managed-roundtrip.unit.test.d.ts.map +1 -0
  164. package/dist/__tests__/world-scheduling.m4.test.d.ts +2 -0
  165. package/dist/__tests__/world-scheduling.m4.test.d.ts.map +1 -0
  166. package/dist/__tests__/world-unique-roundtrip.unit.test.d.ts +2 -0
  167. package/dist/__tests__/world-unique-roundtrip.unit.test.d.ts.map +1 -0
  168. package/dist/__tests__/world.test-d.d.ts +2 -0
  169. package/dist/__tests__/world.test-d.d.ts.map +1 -0
  170. package/dist/buffer-pool.d.ts +109 -0
  171. package/dist/buffer-pool.d.ts.map +1 -0
  172. package/dist/commands.d.ts +93 -0
  173. package/dist/commands.d.ts.map +1 -0
  174. package/dist/component-default-fallback.d.ts +88 -0
  175. package/dist/component-default-fallback.d.ts.map +1 -0
  176. package/dist/component-schema.d.ts +34 -0
  177. package/dist/component-schema.d.ts.map +1 -0
  178. package/dist/component-value-validate.d.ts +29 -0
  179. package/dist/component-value-validate.d.ts.map +1 -0
  180. package/dist/component.d.ts +581 -0
  181. package/dist/component.d.ts.map +1 -0
  182. package/dist/entity-handle.d.ts +68 -0
  183. package/dist/entity-handle.d.ts.map +1 -0
  184. package/dist/entity.d.ts +86 -0
  185. package/dist/entity.d.ts.map +1 -0
  186. package/dist/errors/query-and-component-errors.d.ts +132 -0
  187. package/dist/errors/query-and-component-errors.d.ts.map +1 -0
  188. package/dist/errors/relationship-errors.d.ts +112 -0
  189. package/dist/errors/relationship-errors.d.ts.map +1 -0
  190. package/dist/errors/sprite-and-shared-errors.d.ts +107 -0
  191. package/dist/errors/sprite-and-shared-errors.d.ts.map +1 -0
  192. package/dist/errors/validation-errors.d.ts +229 -0
  193. package/dist/errors/validation-errors.d.ts.map +1 -0
  194. package/dist/errors.d.ts +763 -0
  195. package/dist/errors.d.ts.map +1 -0
  196. package/dist/execution/shared-kernel.d.ts +106 -0
  197. package/dist/execution/shared-kernel.d.ts.map +1 -0
  198. package/dist/externalization/index.d.ts +31 -0
  199. package/dist/externalization/index.d.ts.map +1 -0
  200. package/dist/externalization/index.mjs +298 -0
  201. package/dist/externalization/index.mjs.map +1 -0
  202. package/dist/index.d.ts +261 -0
  203. package/dist/index.d.ts.map +1 -0
  204. package/dist/index.mjs +7422 -0
  205. package/dist/index.mjs.map +1 -0
  206. package/dist/internal.mjs +479 -0
  207. package/dist/internal.mjs.map +1 -0
  208. package/dist/plugin-service.d.ts +11 -0
  209. package/dist/plugin-service.d.ts.map +1 -0
  210. package/dist/projection/index.d.ts +103 -0
  211. package/dist/projection/index.d.ts.map +1 -0
  212. package/dist/projection/index.mjs +615 -0
  213. package/dist/projection/index.mjs.map +1 -0
  214. package/dist/query/query.d.ts +58 -0
  215. package/dist/query/query.d.ts.map +1 -0
  216. package/dist/relationship-index.d.ts +81 -0
  217. package/dist/relationship-index.d.ts.map +1 -0
  218. package/dist/resource.d.ts +70 -0
  219. package/dist/resource.d.ts.map +1 -0
  220. package/dist/schedule-token.d.ts +16 -0
  221. package/dist/schedule-token.d.ts.map +1 -0
  222. package/dist/schedule.d.ts +271 -0
  223. package/dist/schedule.d.ts.map +1 -0
  224. package/dist/shared-ref-store.d.ts +144 -0
  225. package/dist/shared-ref-store.d.ts.map +1 -0
  226. package/dist/shared.d.ts +3 -0
  227. package/dist/shared.d.ts.map +1 -0
  228. package/dist/shared.mjs +364 -0
  229. package/dist/shared.mjs.map +1 -0
  230. package/dist/storage/archetype-graph.d.ts +54 -0
  231. package/dist/storage/archetype-graph.d.ts.map +1 -0
  232. package/dist/storage/archetype.d.ts +23 -0
  233. package/dist/storage/archetype.d.ts.map +1 -0
  234. package/dist/storage/change-detection.d.ts +40 -0
  235. package/dist/storage/change-detection.d.ts.map +1 -0
  236. package/dist/storage/column.d.ts +111 -0
  237. package/dist/storage/column.d.ts.map +1 -0
  238. package/dist/storage/table.d.ts +29 -0
  239. package/dist/storage/table.d.ts.map +1 -0
  240. package/dist/time.d.ts +57 -0
  241. package/dist/time.d.ts.map +1 -0
  242. package/dist/unique-ref-store.d.ts +105 -0
  243. package/dist/unique-ref-store.d.ts.map +1 -0
  244. package/dist/world-change-journal.d.ts +34 -0
  245. package/dist/world-change-journal.d.ts.map +1 -0
  246. package/dist/world-component-access.d.ts +265 -0
  247. package/dist/world-component-access.d.ts.map +1 -0
  248. package/dist/world-component-storage.d.ts +282 -0
  249. package/dist/world-component-storage.d.ts.map +1 -0
  250. package/dist/world-core.d.ts +39 -0
  251. package/dist/world-core.d.ts.map +1 -0
  252. package/dist/world-entity-lifecycle.d.ts +30 -0
  253. package/dist/world-entity-lifecycle.d.ts.map +1 -0
  254. package/dist/world-internal.d.ts +14 -0
  255. package/dist/world-internal.d.ts.map +1 -0
  256. package/dist/world-scheduling.d.ts +30 -0
  257. package/dist/world-scheduling.d.ts.map +1 -0
  258. package/dist/world.d.ts +620 -0
  259. package/dist/world.d.ts.map +1 -0
  260. package/package.json +77 -0
  261. package/src/__fixtures__/field-shape-fixture.ts +30 -0
  262. package/src/__tests__/__fixtures__/inspect-scripts.snapshot.ts +2 -0
  263. package/src/__tests__/archetype.unit.test.ts +1837 -0
  264. package/src/__tests__/array-handle-element.test-d.ts +34 -0
  265. package/src/__tests__/buffer-array-vocab.test-d.ts +53 -0
  266. package/src/__tests__/buffer-field-input-widen.unit.test.ts +99 -0
  267. package/src/__tests__/buffer-pool.test-d.ts +32 -0
  268. package/src/__tests__/change-detection.unit.test.ts +86 -0
  269. package/src/__tests__/command-buffer.test.ts +179 -0
  270. package/src/__tests__/commands-deferred.unit.test.ts +68 -0
  271. package/src/__tests__/component-catalog.test.ts +59 -0
  272. package/src/__tests__/component-definition-identity.unit.test.ts +24 -0
  273. package/src/__tests__/component-nan-preflight.unit.test.ts +186 -0
  274. package/src/__tests__/component-schema.test-d.ts +119 -0
  275. package/src/__tests__/component-schema.test.ts +55 -0
  276. package/src/__tests__/define-component-options.test-d.ts +35 -0
  277. package/src/__tests__/deprecated-vocab-rejection.unit.test.ts +59 -0
  278. package/src/__tests__/despawn-all.unit.test.ts +17 -0
  279. package/src/__tests__/ecs-core-reduction.characterization.test.ts +130 -0
  280. package/src/__tests__/ecs-core-reduction.perf.test.ts +260 -0
  281. package/src/__tests__/ecs-error-code-31.test-d.ts +42 -0
  282. package/src/__tests__/entity-disabling.unit.test.ts +37 -0
  283. package/src/__tests__/entity-handle-codec-parity.unit.test.ts +126 -0
  284. package/src/__tests__/errors.unit.test.ts +1456 -0
  285. package/src/__tests__/execution-conflict-boundary.unit.test.ts +123 -0
  286. package/src/__tests__/execution-shared-storage.unit.test.ts +40 -0
  287. package/src/__tests__/externalization-portable-value.unit.test.ts +275 -0
  288. package/src/__tests__/externalization-projection.unit.test.ts +325 -0
  289. package/src/__tests__/externalization-render-read-lease.test-d.ts +30 -0
  290. package/src/__tests__/externalization-render-read-lease.unit.test.ts +79 -0
  291. package/src/__tests__/externalization-root-surface.unit.test.ts +33 -0
  292. package/src/__tests__/field-enum-labels-reflection.test.ts +66 -0
  293. package/src/__tests__/field-shape-fixture.test.ts +61 -0
  294. package/src/__tests__/field-transient-reflection.test.ts +59 -0
  295. package/src/__tests__/field-value-type.test-d.ts +57 -0
  296. package/src/__tests__/fixed-update.unit.test.ts +78 -0
  297. package/src/__tests__/handle.test-d.ts +86 -0
  298. package/src/__tests__/hierarchy.unit.test.ts +2534 -0
  299. package/src/__tests__/managed-array-vocab.test-d.ts +137 -0
  300. package/src/__tests__/minimal-example.test-d.ts +42 -0
  301. package/src/__tests__/name-read-types.test-d.ts +72 -0
  302. package/src/__tests__/plugin-service.test.ts +13 -0
  303. package/src/__tests__/query-combinations.unit.test.ts +42 -0
  304. package/src/__tests__/query-light-extract-flat-column-ratio.perf.test.ts +252 -0
  305. package/src/__tests__/query-storage-trends.perf.test.ts +104 -0
  306. package/src/__tests__/query-trs-flat-column-ratio.perf.test.ts +194 -0
  307. package/src/__tests__/query.unit.test.ts +196 -0
  308. package/src/__tests__/relationship-index.perf.test.ts +126 -0
  309. package/src/__tests__/relationship-index.test.ts +70 -0
  310. package/src/__tests__/scalar-field-type-owner.test-d.ts +71 -0
  311. package/src/__tests__/schedule-determinism.unit.test.ts +36 -0
  312. package/src/__tests__/schedule-inspection.unit.test.ts +81 -0
  313. package/src/__tests__/schedule-scope-error.unit.test.ts +63 -0
  314. package/src/__tests__/schedule-token.unit.test.ts +54 -0
  315. package/src/__tests__/schema-vocab.test-d.ts +103 -0
  316. package/src/__tests__/serialization.unit.test.ts +2740 -0
  317. package/src/__tests__/shared-kernel-eligibility.test-d.ts +18 -0
  318. package/src/__tests__/shared-kernel-eligibility.unit.test.ts +78 -0
  319. package/src/__tests__/shared-ref-store.unit.test.ts +646 -0
  320. package/src/__tests__/sparse-tag.unit.test.ts +201 -0
  321. package/src/__tests__/spawn-field-error.test-d.ts +41 -0
  322. package/src/__tests__/stale-error.test-d.ts +208 -0
  323. package/src/__tests__/string-view-symmetry.test-d.ts +26 -0
  324. package/src/__tests__/string-vocab.test-d.ts +49 -0
  325. package/src/__tests__/structure-epoch-boundaries.unit.test.ts +39 -0
  326. package/src/__tests__/structure-epoch.unit.test.ts +48 -0
  327. package/src/__tests__/table-archetype-mapping.unit.test.ts +78 -0
  328. package/src/__tests__/time.unit.test.ts +79 -0
  329. package/src/__tests__/types.test-d.ts +38 -0
  330. package/src/__tests__/unique-ref-store.unit.test.ts +348 -0
  331. package/src/__tests__/utils/handle-numeric.ts +30 -0
  332. package/src/__tests__/validation-root-surface.unit.test.ts +15 -0
  333. package/src/__tests__/visibility-atomic-write.unit.test.ts +82 -0
  334. package/src/__tests__/world-change-journal.unit.test.ts +97 -0
  335. package/src/__tests__/world-characterization.unit.test.ts +408 -0
  336. package/src/__tests__/world-consumer-inference.test-d.ts +16 -0
  337. package/src/__tests__/world-health.contract.test.ts +87 -0
  338. package/src/__tests__/world-inspection.test.ts +37 -0
  339. package/src/__tests__/world-internal-identity.unit.test.ts +17 -0
  340. package/src/__tests__/world-managed-roundtrip.unit.test.ts +98 -0
  341. package/src/__tests__/world-scheduling.m4.test.ts +52 -0
  342. package/src/__tests__/world-unique-roundtrip.unit.test.ts +357 -0
  343. package/src/__tests__/world.test-d.ts +156 -0
  344. package/src/buffer-pool.ts +357 -0
  345. package/src/commands.ts +644 -0
  346. package/src/component-default-fallback.ts +236 -0
  347. package/src/component-schema.ts +92 -0
  348. package/src/component-value-validate.ts +135 -0
  349. package/src/component.ts +1268 -0
  350. package/src/entity-handle.ts +104 -0
  351. package/src/entity.ts +140 -0
  352. package/src/errors/query-and-component-errors.ts +200 -0
  353. package/src/errors/relationship-errors.ts +198 -0
  354. package/src/errors/sprite-and-shared-errors.ts +231 -0
  355. package/src/errors/validation-errors.ts +506 -0
  356. package/src/errors.ts +1464 -0
  357. package/src/execution/shared-kernel.ts +392 -0
  358. package/src/externalization/index.ts +170 -0
  359. package/src/index.ts +414 -0
  360. package/src/plugin-service.ts +35 -0
  361. package/src/projection/index.ts +318 -0
  362. package/src/query/query.ts +606 -0
  363. package/src/relationship-index.ts +175 -0
  364. package/src/resource.ts +106 -0
  365. package/src/schedule-token.ts +40 -0
  366. package/src/schedule.ts +846 -0
  367. package/src/shared-ref-store.ts +418 -0
  368. package/src/shared.ts +23 -0
  369. package/src/storage/archetype-graph.ts +166 -0
  370. package/src/storage/archetype.ts +78 -0
  371. package/src/storage/change-detection.ts +231 -0
  372. package/src/storage/column.ts +247 -0
  373. package/src/storage/table.ts +153 -0
  374. package/src/time.ts +122 -0
  375. package/src/unique-ref-store.ts +278 -0
  376. package/src/world-change-journal.ts +84 -0
  377. package/src/world-component-access.ts +1421 -0
  378. package/src/world-component-storage.ts +1178 -0
  379. package/src/world-core.ts +74 -0
  380. package/src/world-entity-lifecycle.ts +539 -0
  381. package/src/world-internal.ts +75 -0
  382. package/src/world-scheduling.ts +499 -0
  383. package/src/world.ts +1399 -0
@@ -0,0 +1,282 @@
1
+ import type { BufferPool } from './buffer-pool';
2
+ import { type ArrayMeta, type Component, type ComponentSchema, type ManagedArrayElementType, type ShapeOf } from './component';
3
+ import { type EntityHandle } from './entity-handle';
4
+ import type { ManagedArrayErrorEnvelope } from './errors';
5
+ type ErrorContext = {
6
+ readonly systemName: string;
7
+ };
8
+ import type { SharedRefStore } from './shared-ref-store';
9
+ import { type Archetype } from './storage/archetype';
10
+ import { type ArchetypeGraph } from './storage/archetype-graph';
11
+ import { type FieldView } from './storage/column';
12
+ import type { UniqueRefStore } from './unique-ref-store';
13
+ import type { EntityRecord } from './world';
14
+ export interface ComponentStorageState {
15
+ readonly graph: ArchetypeGraph;
16
+ readonly records: EntityRecord[];
17
+ readonly bufferPool: BufferPool;
18
+ readonly uniqueRefs: UniqueRefStore;
19
+ readonly sharedRefs: SharedRefStore;
20
+ routeError(err: unknown, ctx: ErrorContext): void;
21
+ }
22
+ export declare class ComponentStorage {
23
+ private readonly state;
24
+ constructor(state: ComponentStorageState);
25
+ private get records();
26
+ private table;
27
+ private get bufferPool();
28
+ private get uniqueRefs();
29
+ private get sharedRefs();
30
+ private routeError;
31
+ readArrayView(arch: Archetype, component: Component, row: number, fieldName: string): FieldView | undefined;
32
+ readRow<S extends ComponentSchema>(arch: Archetype, component: Component<string, S>, row: number): ShapeOf<S>;
33
+ /**
34
+ * Write the full packed entity handle into the row's essential id=0 `Entity`
35
+ * column (`self` field). Called by `spawn` / `_materializePendingEntity`
36
+ * after the row is appended (feat-20260602 / plan-strategy D-3). The column
37
+ * always exists -- `createArchetype` folds the Entity column into every
38
+ * archetype -- so this is a direct u32 store, no readRow/writeRow walk.
39
+ */
40
+ writeEntitySelf(arch: Archetype, row: number, handle: EntityHandle): void;
41
+ writeRow<S extends ComponentSchema>(arch: Archetype, component: Component<string, S>, row: number, value: ShapeOf<S>): void;
42
+ /**
43
+ * Release every managed-resource field on `component` for the row at
44
+ * `row` in `arch`. Walks the schema once and delegates each field to
45
+ * `releaseManagedFieldOnRow` (feat-20260614 M2 SSOT). Family coverage
46
+ * (per-field) lives in that helper's JSDoc.
47
+ *
48
+ * Naming note (D-6 whitelist): the prefix `managed` here means
49
+ * `managed = ECS-tracked` — i.e. fields whose lifecycle the ECS
50
+ * actively releases on despawn / overwrite / removeComponent. It does
51
+ * NOT refer to the retired `'managed' | 'unmanaged'` Handle brand
52
+ * (renamed to `'unique' | 'shared'` in feat-20260614 M1). The helper
53
+ * walks BOTH `'unique<T>'` and `'shared<T>'` fields because both are
54
+ * ECS-tracked from the column's perspective; the per-field dispatch
55
+ * inside `releaseManagedFieldOnRow` distinguishes drop-on-despawn
56
+ * (unique) vs ref-counted release (shared).
57
+ *
58
+ * Skips sentinel slots (handle / id 0) and missing stores. Failures
59
+ * (double release / lookup mismatch) route to the Layer 3 ErrorHandler so
60
+ * the despawn / removeComponent chain never aborts (charter: explicit-
61
+ * failure boundary; the chain is total).
62
+ *
63
+ * Four release paths route through this helper (AC-11, plan §6 M2):
64
+ * 1. `world.despawn(e)` - every component on `e`.
65
+ * 2. `world.removeComponent(e, C)` - the removed component only.
66
+ * 3. `world.set` ref/string/buffer overwrite - per-field, before the new
67
+ * value lands in the column.
68
+ * 4. `writeArrayField` set arm prior-slot release (variable array<T>).
69
+ *
70
+ * After feat-20260614 M2 SSOT collapse the schema-field 3-arm dispatch
71
+ * lives in `releaseManagedFieldOnRow` (one site); this method walks the
72
+ * component schema and delegates per field.
73
+ *
74
+ * BufferPool slot id is reusable post-release: same-bucket free-list LIFO
75
+ * (D-7) returns the freed id on the next `alloc(byteLength)`. Tests:
76
+ * `__tests__/managed-array-release.test.ts` (w10) +
77
+ * `__tests__/world-managed-roundtrip.unit.test.ts` (w3 net-zero matrix).
78
+ */
79
+ releaseManagedRefsOnRow(arch: Archetype, component: Component, row: number): void;
80
+ /**
81
+ * SSOT release dispatch for a single managed field on a row (feat-20260614
82
+ * M2 / D-2). Inspects the component schema's field type and routes to the
83
+ * matching release path:
84
+ *
85
+ * - `'unique<T>'` / `'string'` (`isManagedField`) — release the
86
+ * UniqueRefStore handle u32 stored in the column.
87
+ * - `'buffer'` variable (`isManagedBufferField`) — release the
88
+ * BufferPool slot id stored in the column. Fixed `'buffer<N>'` is
89
+ * inline stride-N (feat-20260602) and has no slot to release.
90
+ * - `array<T>` variable (`isManagedArrayField`) — release the
91
+ * BufferPool slot id in the primary column + zero the column and the
92
+ * `<fieldName>:count` sidecar so post-recycle reads observe count=0
93
+ * (defense-in-depth; the swap-pop row migration overwrites both
94
+ * columns anyway). Fixed `array<T,N>` is inline stride-N — nothing to
95
+ * release.
96
+ *
97
+ * Sentinel handle / slot id 0 short-circuits silently. Double-release /
98
+ * lookup mismatch routes via Layer 3 ErrorHandler so the despawn /
99
+ * removeComponent / set chain never aborts (charter explicit-failure
100
+ * boundary; the chain is total).
101
+ *
102
+ * SceneInstance state alloc/release rollback at world.ts:3494/3522 stays
103
+ * a direct `uniqueRefs.release(stateRef)` (research Finding 1.8 / D-5):
104
+ * those two sites are alloc-pair rollback, not schema-field dispatch.
105
+ *
106
+ * Naming note (D-6 whitelist): `releaseManagedFieldOnRow` uses
107
+ * `managed = ECS-tracked` — every field family this dispatcher knows
108
+ * (`'unique<T>'`, `'shared<T>'`, `'string'`, variable `'buffer'`,
109
+ * variable `'array<T>'`) is one whose lifecycle the ECS owns. The
110
+ * `'managed' | 'unmanaged'` Handle brand is gone (M1 renamed to
111
+ * `'unique' | 'shared'`); the helper name was deliberately kept
112
+ * because `managed` here is a column-side semantic, not a brand label.
113
+ */
114
+ releaseManagedFieldOnRow(arch: Archetype, component: Component, row: number, fieldName: string): void;
115
+ /**
116
+ * Release a single managed handle u32. Routes failures through Layer 3.
117
+ * Slot-0 sentinel short-circuits silently (no error); already-released
118
+ * slots surface `unique-ref-double-release` through the ErrorHandler so
119
+ * AI users see the structured payload (`.code` / `.hint` / `.expected` /
120
+ * `.detail`) - charter explicit-failure boundary.
121
+ *
122
+ * Helper-internal only after feat-20260614 M2 (AC-03 grep gate). External
123
+ * callers route via `releaseManagedFieldOnRow`.
124
+ */
125
+ releaseManagedRefHandle(handleU32: number, componentName: string, fieldName: string): void;
126
+ /**
127
+ * Release a single shared-ref handle u32 (feat-20260614 M4 / AC-08).
128
+ * Decrements the SharedRefStore refcount; the slot drops on rc 1 -> 0.
129
+ * Slot-0 sentinel short-circuits silently. Already-released slots route
130
+ * `shared-ref-double-release` through Layer 3 ErrorHandler so AI users
131
+ * see structured payloads (charter explicit-failure boundary).
132
+ *
133
+ * Mirrors `releaseManagedRefHandle` in shape; the store + error code are
134
+ * the only differences. Helper-internal — external callers route via
135
+ * `releaseManagedFieldOnRow` (D-2 SSOT).
136
+ */
137
+ releaseSharedRefHandle(handleU32: number, componentName: string, fieldName: string): void;
138
+ /**
139
+ * Retain a single `shared<T>` scalar slot id (feat-20260614 M5 / D-5).
140
+ * Mirrors `releaseSharedRefHandle`; called from spawn / set scalar write
141
+ * paths so each ECS holder participates in the SharedRefStore rc.
142
+ * Sentinel slot 0 is a no-op. Failures (handle already released) route
143
+ * via Layer 3 ErrorHandler so the spawn / set chain stays total.
144
+ */
145
+ retainSharedScalarHandle(handleU32: number, componentName: string, fieldName: string): void;
146
+ /**
147
+ * Release a single managed buffer slot id. Routes failures through Layer 3.
148
+ * Slot id 0 (sentinel for unallocated buffer fields) short-circuits
149
+ * silently. M2 v1 release surface is total - `BufferPool.release` returns
150
+ * `Result<void, never>` for unknown ids, so the chain stays noise-free.
151
+ *
152
+ * Helper-internal only after feat-20260614 M2 (AC-03 grep gate). External
153
+ * callers route via `releaseManagedFieldOnRow`.
154
+ */
155
+ releaseManagedBufferSlot(slotId: number, componentName: string, fieldName: string): void;
156
+ /**
157
+ * Bridge a Layer-3 ErrorHandler call from a `ManagedArrayErrorEnvelope`.
158
+ * The envelope shape (`code / hint / expected / detail`) already mirrors
159
+ * the EcsError contract; this helper only attaches the systemName context
160
+ * so AI users can correlate the error with the holder component / field.
161
+ */
162
+ routeArrayError(err: ManagedArrayErrorEnvelope, componentName: string, fieldName: string): void;
163
+ /**
164
+ * Write the value of an `array<T>` / `array<T,N>` field at `row` (D-3 +
165
+ /**
166
+ * Write an `array<T>` / `array<T,N>` field's payload at `row` (M1 / w7,
167
+ * D-1; feat-20260614 M2 / D-3). Spawn and set both delegate here without
168
+ * an `operation` parameter — the caller's calling convention encodes the
169
+ * difference:
170
+ * - Set path: caller invokes `releaseManagedFieldOnRow(arch, comp, row,
171
+ * fieldName)` BEFORE this method to release the prior slot (variable
172
+ * `array<T>`). Fixed `array<T,N>` is inline stride-N (feat-20260602)
173
+ * and has no slot to release on either path.
174
+ * - Spawn path: caller does NOT call the helper — fresh rows treat any
175
+ * non-zero u32 in the column as stale swap-pop debris owned by the
176
+ * migrated entity in the new archetype.
177
+ *
178
+ * Body:
179
+ * - Alloc a fresh BufferPool slot of `payload.length * elementBytes`.
180
+ * - Copy bytes from the payload's typed-array buffer into the slot view.
181
+ * - Persist slot id in the primary u32 column. For `array<T>` (variable),
182
+ * persist the live count in the sidecar `<fieldName>:count` column.
183
+ *
184
+ * Errors flow through `routeArrayError` with a uniform `World.write` label.
185
+ */
186
+ writeArrayField(arch: Archetype, component: Component, row: number, fieldName: string, _fieldType: string, arrayMeta: ArrayMeta, raw: unknown): void;
187
+ /**
188
+ * Walk the first `count` u32 handles in `bytes` and call
189
+ * `SharedRefStore.retain` on each non-sentinel slot id (feat-20260614 M4 /
190
+ * D-3). Failures route via Layer 3 ErrorHandler so the write chain stays
191
+ * total; charter explicit-failure boundary lets AI users see structured
192
+ * `shared-ref-released` payloads when retaining a stale handle.
193
+ *
194
+ * Helper-internal -- only called from `writeArrayField`'s `'shared'` arm.
195
+ */
196
+ retainSharedArrayElements(bytes: Uint8Array, count: number): void;
197
+ /**
198
+ * Walk the first `count` u32 handles in `bytes` and call
199
+ * `SharedRefStore.release` on each non-sentinel slot id (feat-20260614 M4 /
200
+ * D-3). Mirrors `retainSharedArrayElements`; called from
201
+ * `releaseManagedFieldOnRow`'s array arm BEFORE the BufferPool slot is
202
+ * released so the underlying bytes are still valid.
203
+ */
204
+ releaseSharedArrayElements(bytes: Uint8Array, count: number): void;
205
+ writeArrayElementAt(bytes: Uint8Array, idx: number, elementType: ManagedArrayElementType, value: number): void;
206
+ readArrayElementAt(bytes: Uint8Array, idx: number, elementType: ManagedArrayElementType): number;
207
+ /**
208
+ * Materialise a fresh `TypedArray` snapshot for an `array<T,N>` /
209
+ * `array<T>` field at `row` (plan-strategy §2.2 -- read-only snapshot
210
+ * contract; mutations route through `world.set` / `world.push` /
211
+ * `world.pop`).
212
+ *
213
+ * **Transient view contract (feat-20260602):** for fixed `array<T,N>`
214
+ * columns the returned `TypedArray` aliases the inline column buffer
215
+ * directly (`col.view.subarray(row * arity, ...)`); for variable
216
+ * `array<T>` columns it aliases the live `BufferPool` slot bytes
217
+ * (zero-copy; `pool.view(slotId)` is the SSOT byte region). In both
218
+ * cases the view is valid only until the next structural change. Writing
219
+ * into the snapshot is undefined behaviour -- the contract is read-only
220
+ * and the implementation may switch to a copy in the future without
221
+ * breaking AI users who consume only `length` / index reads.
222
+ *
223
+ * For variable arrays the typed-array length matches the live count from
224
+ * the sidecar `<fieldName>:count` column; for fixed arrays it matches the
225
+ * schema-declared `N`. `entity` element fields surface as a `Uint32Array`
226
+ * view (Entity packs slot+gen into u32).
227
+ */
228
+ materializeArrayView(arch: Archetype, component: Component, row: number, fieldName: string, elementType: ManagedArrayElementType, fixedLength: number | undefined, slotId: number): Float32Array | Float64Array | Int32Array | Uint32Array | Int16Array | Uint16Array | Int8Array | Uint8Array;
229
+ /**
230
+ * Migrate an entity from srcArch to targetArch.
231
+ * Copies all shared component data, then removes from src via swap-pop.
232
+ *
233
+ * AC-04 carry-over contract (M4): for every component that survives the
234
+ * migration (i.e. the target archetype carries the same `compId`), every
235
+ * field column's u32 value is copied verbatim from src to target. This
236
+ * preserves every managed resource handle in place:
237
+ *
238
+ * - `ref<T>` field - the u32 (managed handle = (slot << 8) | gen) is
239
+ * bit-equal across migrate, so `Object.is` on the
240
+ * handle holds and `UniqueRefStore.resolve` returns
241
+ * the same payload object reference (per-(slot, gen)
242
+ * wrapper singleton, D-3).
243
+ * - `buffer<N>` field - fixed-capacity inline stride-N `u8` column
244
+ * (feat-20260602): the N bytes are copied verbatim
245
+ * by the generic per-column row copy, so the live
246
+ * bytes survive byte-for-byte. No BufferPool slot
247
+ * (only variable `buffer` carries a pool slot id).
248
+ * - `entity` field - the u32 (encoded slot+gen) is bit-equal across
249
+ * migrate.
250
+ * - `array<T,N>` field - fixed-capacity inline stride-N column
251
+ * (feat-20260602): the N elements live contiguously
252
+ * in the column row and are copied verbatim by the
253
+ * generic per-column row copy, so they survive
254
+ * byte-for-byte (no BufferPool slot). The TypedArray
255
+ * snapshot is rematerialised on every `world.get`
256
+ * (D-4 no cache); we do NOT guarantee `Object.is` on
257
+ * the wrapper — only the underlying bytes (D-R7 weak
258
+ * carry-over).
259
+ * - `array<T>` field - dual u32 columns: primary slot id + sidecar
260
+ * `<fieldName>:count`. Both columns are copied via
261
+ * the generic per-column loop below, so count and
262
+ * slot id stay in lock-step. Capacity is derived
263
+ * from `BufferPool.view(slotId).byteLength /
264
+ * elementBytes` and is therefore preserved by the
265
+ * slot-id carry-over alone (no separate column).
266
+ *
267
+ * Negative invariant: this routine MUST NOT call UniqueRefStore.release /
268
+ * BufferPool.release for surviving components. The pre-migrate release
269
+ * loop lives at `removeComponent` (only for the component being removed)
270
+ * and `despawn` (every component); migrate is only a column copy. The
271
+ * array-field release-loop split (D-3 / D-5) further guarantees that
272
+ * spawn into a vacated row treats stale slot-id debris as no-op (the slot
273
+ * is owned by the migrated entity in the new archetype) — see
274
+ * `writeArrayField`'s `operation: 'spawn' | 'set'` discriminant.
275
+ * Tests: `__tests__/managed-carry-over.test.ts` (w16),
276
+ * `__tests__/managed-array-carry-over.test.ts` (w8).
277
+ */
278
+ migrateEntity(record: EntityRecord, srcArch: Archetype, targetArch: Archetype): void;
279
+ moveEntityArchetype(record: EntityRecord, srcArch: Archetype, targetArch: Archetype): void;
280
+ }
281
+ export {};
282
+ //# sourceMappingURL=world-component-storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"world-component-storage.d.ts","sourceRoot":"","sources":["../src/world-component-storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { BufferPool } from './buffer-pool';
2
+ import type { RelationshipIndex } from './relationship-index';
3
+ import type { SharedRefStore } from './shared-ref-store';
4
+ import { type ArchetypeGraph } from './storage/archetype-graph';
5
+ import { WorldChangeJournal } from './storage/change-detection';
6
+ import type { UniqueRefStore } from './unique-ref-store';
7
+ import type { EntityRecord } from './world';
8
+ interface WorldStorageCore {
9
+ readonly graph: ArchetypeGraph;
10
+ readonly records: EntityRecord[];
11
+ readonly freeIndices: number[];
12
+ readonly bufferPool: BufferPool;
13
+ readonly uniqueRefs: UniqueRefStore;
14
+ readonly sharedRefs: SharedRefStore;
15
+ }
16
+ /**
17
+ * Package-private state authority for World. A World is the public facade;
18
+ * this object is the only owner of archetype storage, entity records, managed
19
+ * stores, epochs, and bounded change evidence.
20
+ */
21
+ export declare class WorldCore {
22
+ readonly identity: string;
23
+ readonly uniqueRefs: UniqueRefStore;
24
+ readonly sharedRefs: SharedRefStore;
25
+ readonly storage: WorldStorageCore;
26
+ readonly componentMutationEpochs: number[];
27
+ readonly changeJournal: WorldChangeJournal;
28
+ /** One packed reverse index per relationship source component. */
29
+ readonly relationshipIndexes: Map<number, RelationshipIndex>;
30
+ mutationEpoch: number;
31
+ structureEpoch: number;
32
+ constructor(sharedStorage: boolean);
33
+ get graph(): ArchetypeGraph;
34
+ get records(): EntityRecord[];
35
+ get freeIndices(): number[];
36
+ get bufferPool(): BufferPool;
37
+ }
38
+ export {};
39
+ //# sourceMappingURL=world-core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"world-core.d.ts","sourceRoot":"","sources":["../src/world-core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,KAAK,cAAc,EAAwB,MAAM,2BAA2B,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,UAAU,gBAAgB;IACxB,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;CACrC;AAgBD;;;;GAIG;AACH,qBAAa,SAAS;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAyB;IAClD,QAAQ,CAAC,UAAU,EAAE,cAAc,CAA4B;IAC/D,QAAQ,CAAC,UAAU,EAAE,cAAc,CAA4B;IAC/D,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,EAAE,CAAM;IAChD,QAAQ,CAAC,aAAa,qBAA4B;IAClD,kEAAkE;IAClE,QAAQ,CAAC,mBAAmB,iCAAwC;IACpE,aAAa,SAAK;IAClB,cAAc,SAAK;gBAEP,aAAa,EAAE,OAAO;IAOlC,IAAI,KAAK,mBAER;IAED,IAAI,OAAO,mBAEV;IAED,IAAI,WAAW,aAEd;IAED,IAAI,UAAU,eAEb;CACF"}
@@ -0,0 +1,30 @@
1
+ import { type Result } from '@forgeax/engine-types';
2
+ import type { Component, ComponentSchema, InputShapeOf } from './component';
3
+ import { type EntityHandle } from './entity-handle';
4
+ import type { EcsError, World } from './world';
5
+ /**
6
+ * Core implementation of `spawn` with a relationship reentry guard.
7
+ *
8
+ * @param internal - `true` when relationship maintenance creates a mirror.
9
+ */
10
+ export declare function spawnCore(world: World, componentDatas: {
11
+ component: Component;
12
+ data: Partial<Record<string, unknown>>;
13
+ }[], internal: boolean): Result<EntityHandle, EcsError>;
14
+ /**
15
+ * Core implementation of `despawn` with a linked-spawn cascade guard.
16
+ *
17
+ * @param internal - `true` while recursively retiring linked children.
18
+ */
19
+ export declare function despawnCore(world: World, entity: EntityHandle, internal: boolean): Result<void, EcsError>;
20
+ /** Attach a child and maintain the relationship mirror through component storage. */
21
+ export declare function worldAddChild<S extends ComponentSchema>(world: World, parent: EntityHandle, child: EntityHandle, component: Component<string, S>, data: Partial<InputShapeOf<S>>): Result<void, EcsError>;
22
+ /** Detach a child only when its current relationship target matches `parent`. */
23
+ export declare function worldRemoveChild<S extends ComponentSchema>(world: World, parent: EntityHandle, child: EntityHandle, component: Component<string, S>): Result<void, EcsError>;
24
+ /** Move a child to a new parent after cycle validation and old-mirror detachment. */
25
+ export declare function worldReparent<S extends ComponentSchema>(world: World, child: EntityHandle, newParent: EntityHandle, component: Component<string, S>, data: Partial<InputShapeOf<S>>): Result<void, EcsError>;
26
+ /** Iterate ancestors in child-to-root order while safely terminating corrupt cycles. */
27
+ export declare function worldIterAncestors(world: World, entity: EntityHandle): Iterable<EntityHandle>;
28
+ /** Iterate descendants depth-first through relationship mirror lists. */
29
+ export declare function worldIterDescendants(world: World, entity: EntityHandle): Iterable<EntityHandle>;
30
+ //# sourceMappingURL=world-entity-lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"world-entity-lifecycle.d.ts","sourceRoot":"","sources":["../src/world-entity-lifecycle.ts"],"names":[],"mappings":"AAMA,OAAO,EAAgC,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAW,MAAM,aAAa,CAAC;AAKrF,OAAO,EAEL,KAAK,YAAY,EAIlB,MAAM,iBAAiB,CAAC;AAczB,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAQ/C;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAAE,EAAE,EAClF,QAAQ,EAAE,OAAO,GAChB,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CA0DhC;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,OAAO,GAChB,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CA+DxB;AAED,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,CAAC,SAAS,eAAe,EACrD,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,EAC/B,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAC7B,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CA+CxB;AAED,iFAAiF;AACjF,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,eAAe,EACxD,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAC9B,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CA6CxB;AAED,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,CAAC,SAAS,eAAe,EACrD,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,YAAY,EACvB,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,EAC/B,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAC7B,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAiDxB;AAED,wFAAwF;AACxF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,CAkD7F;AAED,yEAAyE;AACzE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,CAuC/F"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * ECS package-internal World seam.
3
+ *
4
+ * This module is intentionally not re-exported by the package entry points.
5
+ * It keeps implementation access out of World's discoverable API while
6
+ * retaining direct bound calls for the hot query and structural paths.
7
+ */
8
+ export declare const worldInternal: unique symbol;
9
+ type InternalName = 'addComponentCore' | 'allocateIndex' | 'allocatePendingEntity' | 'cancelPendingEntity' | 'despawnCore' | 'getArrayView' | 'getBufferPool' | 'getChangeCursor' | 'getClockWriter' | 'getComponentChange' | 'getComponentMutationEpoch' | 'getEntityArchetype' | 'getFixedAccumulator' | 'getFreeIndices' | 'getGraph' | 'getMutationEpoch' | 'getQueryRow' | 'getRecords' | 'getRelationshipEpoch' | 'getRelationshipTargetEntities' | 'getResources' | 'getSchedule' | 'getSchedules' | 'getSharedRefs' | 'getStructureEpoch' | 'getUniqueRefs' | 'lookupAlive' | 'markComponentAdded' | 'markComponentChanged' | 'markComponentRangeChanged' | 'markComponentsAdded' | 'markDerivedComponentChanges' | 'markStructureChanged' | 'materializePendingEntity' | 'nextMutationEpoch' | 'poisonExecution' | 'preflightComponentData' | 'readChangesSince' | 'readRow' | 'recordIsLive' | 'relationshipOnInsert' | 'relationshipOnRemove' | 'releaseManagedRefsOnRow' | 'removeComponentChange' | 'removeComponentCore' | 'removeEntityChanges' | 'routeError' | 'setFixedAccumulator' | 'setQueryRow' | 'spawnCore' | 'writeEntitySelf' | 'writeRow';
10
+ export type WorldInternal = {
11
+ readonly [K in InternalName]: (...args: any[]) => any;
12
+ };
13
+ export {};
14
+ //# sourceMappingURL=world-internal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"world-internal.d.ts","sourceRoot":"","sources":["../src/world-internal.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,eAAO,MAAM,aAAa,EAAE,OAAO,MAEC,CAAC;AAErC,KAAK,YAAY,GACb,kBAAkB,GAClB,eAAe,GACf,uBAAuB,GACvB,qBAAqB,GACrB,aAAa,GACb,cAAc,GACd,eAAe,GACf,iBAAiB,GACjB,gBAAgB,GAChB,oBAAoB,GACpB,2BAA2B,GAC3B,oBAAoB,GACpB,qBAAqB,GACrB,gBAAgB,GAChB,UAAU,GACV,kBAAkB,GAClB,aAAa,GACb,YAAY,GACZ,sBAAsB,GACtB,+BAA+B,GAC/B,cAAc,GACd,aAAa,GACb,cAAc,GACd,eAAe,GACf,mBAAmB,GACnB,eAAe,GACf,aAAa,GACb,oBAAoB,GACpB,sBAAsB,GACtB,2BAA2B,GAC3B,qBAAqB,GACrB,6BAA6B,GAC7B,sBAAsB,GACtB,0BAA0B,GAC1B,mBAAmB,GACnB,iBAAiB,GACjB,wBAAwB,GACxB,kBAAkB,GAClB,SAAS,GACT,cAAc,GACd,sBAAsB,GACtB,sBAAsB,GACtB,yBAAyB,GACzB,uBAAuB,GACvB,qBAAqB,GACrB,qBAAqB,GACrB,YAAY,GACZ,qBAAqB,GACrB,aAAa,GACb,WAAW,GACX,iBAAiB,GACjB,UAAU,CAAC;AAEf,MAAM,MAAM,aAAa,GAAG;IAE1B,QAAQ,EAAE,CAAC,IAAI,YAAY,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG;CACtD,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { Handle } from '@forgeax/engine-types';
2
+ import { type Result } from '@forgeax/engine-types';
3
+ import { CommandFailedError, CyclicDependencyError, ScheduleScopeMismatchError, SystemFailedError, type SystemSetNotRegisteredError, TimeConfigInvalidError, TimeDeltaInvalidError } from './errors';
4
+ import { SharedKernelFailureError, WorldPoisonedError } from './execution/shared-kernel';
5
+ import type { QueryDescriptor } from './query/query';
6
+ import { type SystemDescriptor, type SystemSet, removeSystem as scheduleRemoveSystem, replaceSystem as scheduleReplaceSystem } from './schedule';
7
+ import { type ScheduleToken } from './schedule-token';
8
+ import type { World, WorldInspection, WorldScheduleData } from './world';
9
+ type ResourceKey = string | {
10
+ readonly name: string;
11
+ };
12
+ export declare function worldAddSystem<const Qs extends ReadonlyArray<QueryDescriptor>>(world: World, token: ScheduleToken, descriptor: SystemDescriptor<Qs>): Result<void, ScheduleScopeMismatchError>;
13
+ export declare function worldRemoveSystem(world: World, token: ScheduleToken, name: string): ReturnType<typeof scheduleRemoveSystem> | Result<never, ScheduleScopeMismatchError>;
14
+ export declare function worldReplaceSystem<const Qs extends ReadonlyArray<QueryDescriptor>>(world: World, token: ScheduleToken, name: string, descriptor: SystemDescriptor<Qs>): ReturnType<typeof scheduleReplaceSystem> | Result<never, ScheduleScopeMismatchError>;
15
+ export declare function worldAddSystems<const Qs extends ReadonlyArray<QueryDescriptor>>(world: World, token: ScheduleToken, set: SystemSet, systems: ReadonlyArray<SystemDescriptor<Qs>>): Result<void, SystemSetNotRegisteredError | ScheduleScopeMismatchError>;
16
+ export declare function worldUpdate(world: World, deltaSeconds?: number): Result<void, TimeDeltaInvalidError | TimeConfigInvalidError | ScheduleScopeMismatchError | WorldPoisonedError | CommandFailedError | SystemFailedError | CyclicDependencyError | SharedKernelFailureError>;
17
+ export declare function worldInsertResource<T>(world: World, key: ResourceKey, value: T): void;
18
+ export declare function worldGetResource<T>(world: World, key: ResourceKey): T;
19
+ export declare function worldHasResource(world: World, key: ResourceKey): boolean;
20
+ export declare function worldRemoveResource(world: World, key: ResourceKey): void;
21
+ export declare function worldInspect(world: World): WorldInspection;
22
+ /** Project schedule registration into a JSON-safe graph for tooling and AI inspection. */
23
+ export declare function worldScheduleData(world: World): ReadonlyArray<WorldScheduleData>;
24
+ /** Control-plane guard used before releasing a World-local component registration. */
25
+ export declare function worldScheduleUsesComponent(world: World, component: object): boolean;
26
+ export declare function worldAllocUniqueRef<Target extends string, T>(world: World, target: Target, payload: T, onRelease?: (payload: T) => void): Handle<Target, 'unique'>;
27
+ export declare function worldAllocSharedRef<Target extends string, T>(world: World, target: Target, payload: T): Handle<Target, 'shared'>;
28
+ export declare function worldInternSharedRef<Target extends string, T extends object>(world: World, target: Target, payload: T): Handle<Target, 'shared'>;
29
+ export {};
30
+ //# sourceMappingURL=world-scheduling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"world-scheduling.d.ts","sourceRoot":"","sources":["../src/world-scheduling.ts"],"names":[],"mappings":"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"}