@forgeax/engine-ecs 0.1.2

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 (374) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +272 -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-schema.test-d.d.ts +2 -0
  29. package/dist/__tests__/component-schema.test-d.d.ts.map +1 -0
  30. package/dist/__tests__/component-schema.test.d.ts +2 -0
  31. package/dist/__tests__/component-schema.test.d.ts.map +1 -0
  32. package/dist/__tests__/define-component-options.test-d.d.ts +2 -0
  33. package/dist/__tests__/define-component-options.test-d.d.ts.map +1 -0
  34. package/dist/__tests__/deprecated-vocab-rejection.unit.test.d.ts +2 -0
  35. package/dist/__tests__/deprecated-vocab-rejection.unit.test.d.ts.map +1 -0
  36. package/dist/__tests__/despawn-all.unit.test.d.ts +2 -0
  37. package/dist/__tests__/despawn-all.unit.test.d.ts.map +1 -0
  38. package/dist/__tests__/ecs-core-reduction.characterization.test.d.ts +2 -0
  39. package/dist/__tests__/ecs-core-reduction.characterization.test.d.ts.map +1 -0
  40. package/dist/__tests__/ecs-core-reduction.perf.test.d.ts +2 -0
  41. package/dist/__tests__/ecs-core-reduction.perf.test.d.ts.map +1 -0
  42. package/dist/__tests__/ecs-error-code-31.test-d.d.ts +2 -0
  43. package/dist/__tests__/ecs-error-code-31.test-d.d.ts.map +1 -0
  44. package/dist/__tests__/entity-disabling.unit.test.d.ts +2 -0
  45. package/dist/__tests__/entity-disabling.unit.test.d.ts.map +1 -0
  46. package/dist/__tests__/entity-handle-codec-parity.unit.test.d.ts +2 -0
  47. package/dist/__tests__/entity-handle-codec-parity.unit.test.d.ts.map +1 -0
  48. package/dist/__tests__/errors.unit.test.d.ts +2 -0
  49. package/dist/__tests__/errors.unit.test.d.ts.map +1 -0
  50. package/dist/__tests__/execution-conflict-boundary.unit.test.d.ts +2 -0
  51. package/dist/__tests__/execution-conflict-boundary.unit.test.d.ts.map +1 -0
  52. package/dist/__tests__/execution-shared-storage.unit.test.d.ts +2 -0
  53. package/dist/__tests__/execution-shared-storage.unit.test.d.ts.map +1 -0
  54. package/dist/__tests__/externalization-portable-value.unit.test.d.ts +2 -0
  55. package/dist/__tests__/externalization-portable-value.unit.test.d.ts.map +1 -0
  56. package/dist/__tests__/externalization-projection.unit.test.d.ts +2 -0
  57. package/dist/__tests__/externalization-projection.unit.test.d.ts.map +1 -0
  58. package/dist/__tests__/externalization-root-surface.unit.test.d.ts +2 -0
  59. package/dist/__tests__/externalization-root-surface.unit.test.d.ts.map +1 -0
  60. package/dist/__tests__/field-enum-labels-reflection.test.d.ts +2 -0
  61. package/dist/__tests__/field-enum-labels-reflection.test.d.ts.map +1 -0
  62. package/dist/__tests__/field-shape-fixture.test.d.ts +2 -0
  63. package/dist/__tests__/field-shape-fixture.test.d.ts.map +1 -0
  64. package/dist/__tests__/field-transient-reflection.test.d.ts +2 -0
  65. package/dist/__tests__/field-transient-reflection.test.d.ts.map +1 -0
  66. package/dist/__tests__/field-value-type.test-d.d.ts +2 -0
  67. package/dist/__tests__/field-value-type.test-d.d.ts.map +1 -0
  68. package/dist/__tests__/fixed-update.unit.test.d.ts +2 -0
  69. package/dist/__tests__/fixed-update.unit.test.d.ts.map +1 -0
  70. package/dist/__tests__/handle.test-d.d.ts +2 -0
  71. package/dist/__tests__/handle.test-d.d.ts.map +1 -0
  72. package/dist/__tests__/hierarchy.unit.test.d.ts +2 -0
  73. package/dist/__tests__/hierarchy.unit.test.d.ts.map +1 -0
  74. package/dist/__tests__/managed-array-vocab.test-d.d.ts +2 -0
  75. package/dist/__tests__/managed-array-vocab.test-d.d.ts.map +1 -0
  76. package/dist/__tests__/minimal-example.test-d.d.ts +2 -0
  77. package/dist/__tests__/minimal-example.test-d.d.ts.map +1 -0
  78. package/dist/__tests__/name-read-types.test-d.d.ts +2 -0
  79. package/dist/__tests__/name-read-types.test-d.d.ts.map +1 -0
  80. package/dist/__tests__/plugin-service.test.d.ts +2 -0
  81. package/dist/__tests__/plugin-service.test.d.ts.map +1 -0
  82. package/dist/__tests__/query-combinations.unit.test.d.ts +2 -0
  83. package/dist/__tests__/query-combinations.unit.test.d.ts.map +1 -0
  84. package/dist/__tests__/query-light-extract-flat-column-ratio.perf.test.d.ts +2 -0
  85. package/dist/__tests__/query-light-extract-flat-column-ratio.perf.test.d.ts.map +1 -0
  86. package/dist/__tests__/query-storage-trends.perf.test.d.ts +2 -0
  87. package/dist/__tests__/query-storage-trends.perf.test.d.ts.map +1 -0
  88. package/dist/__tests__/query-trs-flat-column-ratio.perf.test.d.ts +2 -0
  89. package/dist/__tests__/query-trs-flat-column-ratio.perf.test.d.ts.map +1 -0
  90. package/dist/__tests__/query.unit.test.d.ts +2 -0
  91. package/dist/__tests__/query.unit.test.d.ts.map +1 -0
  92. package/dist/__tests__/relationship-index.perf.test.d.ts +2 -0
  93. package/dist/__tests__/relationship-index.perf.test.d.ts.map +1 -0
  94. package/dist/__tests__/relationship-index.test.d.ts +2 -0
  95. package/dist/__tests__/relationship-index.test.d.ts.map +1 -0
  96. package/dist/__tests__/scalar-field-type-owner.test-d.d.ts +2 -0
  97. package/dist/__tests__/scalar-field-type-owner.test-d.d.ts.map +1 -0
  98. package/dist/__tests__/schedule-determinism.unit.test.d.ts +2 -0
  99. package/dist/__tests__/schedule-determinism.unit.test.d.ts.map +1 -0
  100. package/dist/__tests__/schedule-inspection.unit.test.d.ts +2 -0
  101. package/dist/__tests__/schedule-inspection.unit.test.d.ts.map +1 -0
  102. package/dist/__tests__/schedule-scope-error.unit.test.d.ts +2 -0
  103. package/dist/__tests__/schedule-scope-error.unit.test.d.ts.map +1 -0
  104. package/dist/__tests__/schedule-token.unit.test.d.ts +2 -0
  105. package/dist/__tests__/schedule-token.unit.test.d.ts.map +1 -0
  106. package/dist/__tests__/schema-vocab.test-d.d.ts +2 -0
  107. package/dist/__tests__/schema-vocab.test-d.d.ts.map +1 -0
  108. package/dist/__tests__/serialization.unit.test.d.ts +2 -0
  109. package/dist/__tests__/serialization.unit.test.d.ts.map +1 -0
  110. package/dist/__tests__/shared-kernel-eligibility.test-d.d.ts +2 -0
  111. package/dist/__tests__/shared-kernel-eligibility.test-d.d.ts.map +1 -0
  112. package/dist/__tests__/shared-kernel-eligibility.unit.test.d.ts +2 -0
  113. package/dist/__tests__/shared-kernel-eligibility.unit.test.d.ts.map +1 -0
  114. package/dist/__tests__/shared-ref-store.unit.test.d.ts +2 -0
  115. package/dist/__tests__/shared-ref-store.unit.test.d.ts.map +1 -0
  116. package/dist/__tests__/sparse-tag.unit.test.d.ts +2 -0
  117. package/dist/__tests__/sparse-tag.unit.test.d.ts.map +1 -0
  118. package/dist/__tests__/spawn-field-error.test-d.d.ts +2 -0
  119. package/dist/__tests__/spawn-field-error.test-d.d.ts.map +1 -0
  120. package/dist/__tests__/stale-error.test-d.d.ts +2 -0
  121. package/dist/__tests__/stale-error.test-d.d.ts.map +1 -0
  122. package/dist/__tests__/string-view-symmetry.test-d.d.ts +2 -0
  123. package/dist/__tests__/string-view-symmetry.test-d.d.ts.map +1 -0
  124. package/dist/__tests__/string-vocab.test-d.d.ts +2 -0
  125. package/dist/__tests__/string-vocab.test-d.d.ts.map +1 -0
  126. package/dist/__tests__/structure-epoch-boundaries.unit.test.d.ts +2 -0
  127. package/dist/__tests__/structure-epoch-boundaries.unit.test.d.ts.map +1 -0
  128. package/dist/__tests__/structure-epoch.unit.test.d.ts +2 -0
  129. package/dist/__tests__/structure-epoch.unit.test.d.ts.map +1 -0
  130. package/dist/__tests__/table-archetype-mapping.unit.test.d.ts +2 -0
  131. package/dist/__tests__/table-archetype-mapping.unit.test.d.ts.map +1 -0
  132. package/dist/__tests__/time.unit.test.d.ts +2 -0
  133. package/dist/__tests__/time.unit.test.d.ts.map +1 -0
  134. package/dist/__tests__/types.test-d.d.ts +2 -0
  135. package/dist/__tests__/types.test-d.d.ts.map +1 -0
  136. package/dist/__tests__/unique-ref-store.unit.test.d.ts +2 -0
  137. package/dist/__tests__/unique-ref-store.unit.test.d.ts.map +1 -0
  138. package/dist/__tests__/utils/handle-numeric.d.ts +14 -0
  139. package/dist/__tests__/utils/handle-numeric.d.ts.map +1 -0
  140. package/dist/__tests__/validation-root-surface.unit.test.d.ts +2 -0
  141. package/dist/__tests__/validation-root-surface.unit.test.d.ts.map +1 -0
  142. package/dist/__tests__/visibility-atomic-write.unit.test.d.ts +2 -0
  143. package/dist/__tests__/visibility-atomic-write.unit.test.d.ts.map +1 -0
  144. package/dist/__tests__/world-change-journal.unit.test.d.ts +2 -0
  145. package/dist/__tests__/world-change-journal.unit.test.d.ts.map +1 -0
  146. package/dist/__tests__/world-characterization.unit.test.d.ts +2 -0
  147. package/dist/__tests__/world-characterization.unit.test.d.ts.map +1 -0
  148. package/dist/__tests__/world-consumer-inference.test-d.d.ts +2 -0
  149. package/dist/__tests__/world-consumer-inference.test-d.d.ts.map +1 -0
  150. package/dist/__tests__/world-health.contract.test.d.ts +2 -0
  151. package/dist/__tests__/world-health.contract.test.d.ts.map +1 -0
  152. package/dist/__tests__/world-inspection.test.d.ts +2 -0
  153. package/dist/__tests__/world-inspection.test.d.ts.map +1 -0
  154. package/dist/__tests__/world-internal-identity.unit.test.d.ts +2 -0
  155. package/dist/__tests__/world-internal-identity.unit.test.d.ts.map +1 -0
  156. package/dist/__tests__/world-managed-roundtrip.unit.test.d.ts +2 -0
  157. package/dist/__tests__/world-managed-roundtrip.unit.test.d.ts.map +1 -0
  158. package/dist/__tests__/world-scheduling.m4.test.d.ts +2 -0
  159. package/dist/__tests__/world-scheduling.m4.test.d.ts.map +1 -0
  160. package/dist/__tests__/world-unique-roundtrip.unit.test.d.ts +2 -0
  161. package/dist/__tests__/world-unique-roundtrip.unit.test.d.ts.map +1 -0
  162. package/dist/__tests__/world.test-d.d.ts +2 -0
  163. package/dist/__tests__/world.test-d.d.ts.map +1 -0
  164. package/dist/buffer-pool.d.ts +109 -0
  165. package/dist/buffer-pool.d.ts.map +1 -0
  166. package/dist/commands.d.ts +93 -0
  167. package/dist/commands.d.ts.map +1 -0
  168. package/dist/component-default-fallback.d.ts +88 -0
  169. package/dist/component-default-fallback.d.ts.map +1 -0
  170. package/dist/component-schema.d.ts +34 -0
  171. package/dist/component-schema.d.ts.map +1 -0
  172. package/dist/component-value-validate.d.ts +29 -0
  173. package/dist/component-value-validate.d.ts.map +1 -0
  174. package/dist/component.d.ts +581 -0
  175. package/dist/component.d.ts.map +1 -0
  176. package/dist/entity-handle.d.ts +68 -0
  177. package/dist/entity-handle.d.ts.map +1 -0
  178. package/dist/entity.d.ts +86 -0
  179. package/dist/entity.d.ts.map +1 -0
  180. package/dist/errors/query-and-component-errors.d.ts +132 -0
  181. package/dist/errors/query-and-component-errors.d.ts.map +1 -0
  182. package/dist/errors/relationship-errors.d.ts +112 -0
  183. package/dist/errors/relationship-errors.d.ts.map +1 -0
  184. package/dist/errors/sprite-and-shared-errors.d.ts +107 -0
  185. package/dist/errors/sprite-and-shared-errors.d.ts.map +1 -0
  186. package/dist/errors/validation-errors.d.ts +214 -0
  187. package/dist/errors/validation-errors.d.ts.map +1 -0
  188. package/dist/errors.d.ts +756 -0
  189. package/dist/errors.d.ts.map +1 -0
  190. package/dist/execution/shared-kernel.d.ts +106 -0
  191. package/dist/execution/shared-kernel.d.ts.map +1 -0
  192. package/dist/externalization/index.d.ts +31 -0
  193. package/dist/externalization/index.d.ts.map +1 -0
  194. package/dist/externalization/index.mjs +298 -0
  195. package/dist/externalization/index.mjs.map +1 -0
  196. package/dist/index.d.ts +261 -0
  197. package/dist/index.d.ts.map +1 -0
  198. package/dist/index.mjs +7354 -0
  199. package/dist/index.mjs.map +1 -0
  200. package/dist/internal.mjs +479 -0
  201. package/dist/internal.mjs.map +1 -0
  202. package/dist/plugin-service.d.ts +11 -0
  203. package/dist/plugin-service.d.ts.map +1 -0
  204. package/dist/projection/index.d.ts +50 -0
  205. package/dist/projection/index.d.ts.map +1 -0
  206. package/dist/projection/index.mjs +517 -0
  207. package/dist/projection/index.mjs.map +1 -0
  208. package/dist/query/query.d.ts +58 -0
  209. package/dist/query/query.d.ts.map +1 -0
  210. package/dist/relationship-index.d.ts +81 -0
  211. package/dist/relationship-index.d.ts.map +1 -0
  212. package/dist/resource.d.ts +70 -0
  213. package/dist/resource.d.ts.map +1 -0
  214. package/dist/schedule-token.d.ts +16 -0
  215. package/dist/schedule-token.d.ts.map +1 -0
  216. package/dist/schedule.d.ts +271 -0
  217. package/dist/schedule.d.ts.map +1 -0
  218. package/dist/shared-ref-store.d.ts +144 -0
  219. package/dist/shared-ref-store.d.ts.map +1 -0
  220. package/dist/shared.d.ts +3 -0
  221. package/dist/shared.d.ts.map +1 -0
  222. package/dist/shared.mjs +364 -0
  223. package/dist/shared.mjs.map +1 -0
  224. package/dist/storage/archetype-graph.d.ts +54 -0
  225. package/dist/storage/archetype-graph.d.ts.map +1 -0
  226. package/dist/storage/archetype.d.ts +23 -0
  227. package/dist/storage/archetype.d.ts.map +1 -0
  228. package/dist/storage/change-detection.d.ts +40 -0
  229. package/dist/storage/change-detection.d.ts.map +1 -0
  230. package/dist/storage/column.d.ts +111 -0
  231. package/dist/storage/column.d.ts.map +1 -0
  232. package/dist/storage/table.d.ts +29 -0
  233. package/dist/storage/table.d.ts.map +1 -0
  234. package/dist/time.d.ts +57 -0
  235. package/dist/time.d.ts.map +1 -0
  236. package/dist/unique-ref-store.d.ts +105 -0
  237. package/dist/unique-ref-store.d.ts.map +1 -0
  238. package/dist/world-change-journal.d.ts +34 -0
  239. package/dist/world-change-journal.d.ts.map +1 -0
  240. package/dist/world-component-access.d.ts +264 -0
  241. package/dist/world-component-access.d.ts.map +1 -0
  242. package/dist/world-component-storage.d.ts +282 -0
  243. package/dist/world-component-storage.d.ts.map +1 -0
  244. package/dist/world-core.d.ts +39 -0
  245. package/dist/world-core.d.ts.map +1 -0
  246. package/dist/world-entity-lifecycle.d.ts +30 -0
  247. package/dist/world-entity-lifecycle.d.ts.map +1 -0
  248. package/dist/world-internal.d.ts +14 -0
  249. package/dist/world-internal.d.ts.map +1 -0
  250. package/dist/world-scheduling.d.ts +30 -0
  251. package/dist/world-scheduling.d.ts.map +1 -0
  252. package/dist/world.d.ts +620 -0
  253. package/dist/world.d.ts.map +1 -0
  254. package/package.json +77 -0
  255. package/src/__fixtures__/field-shape-fixture.ts +30 -0
  256. package/src/__tests__/__fixtures__/inspect-scripts.snapshot.ts +2 -0
  257. package/src/__tests__/archetype.unit.test.ts +1837 -0
  258. package/src/__tests__/array-handle-element.test-d.ts +34 -0
  259. package/src/__tests__/buffer-array-vocab.test-d.ts +53 -0
  260. package/src/__tests__/buffer-field-input-widen.unit.test.ts +99 -0
  261. package/src/__tests__/buffer-pool.test-d.ts +32 -0
  262. package/src/__tests__/change-detection.unit.test.ts +86 -0
  263. package/src/__tests__/command-buffer.test.ts +179 -0
  264. package/src/__tests__/commands-deferred.unit.test.ts +68 -0
  265. package/src/__tests__/component-catalog.test.ts +59 -0
  266. package/src/__tests__/component-definition-identity.unit.test.ts +24 -0
  267. package/src/__tests__/component-schema.test-d.ts +119 -0
  268. package/src/__tests__/component-schema.test.ts +55 -0
  269. package/src/__tests__/define-component-options.test-d.ts +35 -0
  270. package/src/__tests__/deprecated-vocab-rejection.unit.test.ts +59 -0
  271. package/src/__tests__/despawn-all.unit.test.ts +17 -0
  272. package/src/__tests__/ecs-core-reduction.characterization.test.ts +130 -0
  273. package/src/__tests__/ecs-core-reduction.perf.test.ts +260 -0
  274. package/src/__tests__/ecs-error-code-31.test-d.ts +42 -0
  275. package/src/__tests__/entity-disabling.unit.test.ts +37 -0
  276. package/src/__tests__/entity-handle-codec-parity.unit.test.ts +126 -0
  277. package/src/__tests__/errors.unit.test.ts +1452 -0
  278. package/src/__tests__/execution-conflict-boundary.unit.test.ts +123 -0
  279. package/src/__tests__/execution-shared-storage.unit.test.ts +40 -0
  280. package/src/__tests__/externalization-portable-value.unit.test.ts +275 -0
  281. package/src/__tests__/externalization-projection.unit.test.ts +325 -0
  282. package/src/__tests__/externalization-root-surface.unit.test.ts +33 -0
  283. package/src/__tests__/field-enum-labels-reflection.test.ts +66 -0
  284. package/src/__tests__/field-shape-fixture.test.ts +61 -0
  285. package/src/__tests__/field-transient-reflection.test.ts +59 -0
  286. package/src/__tests__/field-value-type.test-d.ts +57 -0
  287. package/src/__tests__/fixed-update.unit.test.ts +78 -0
  288. package/src/__tests__/handle.test-d.ts +86 -0
  289. package/src/__tests__/hierarchy.unit.test.ts +2534 -0
  290. package/src/__tests__/managed-array-vocab.test-d.ts +137 -0
  291. package/src/__tests__/minimal-example.test-d.ts +42 -0
  292. package/src/__tests__/name-read-types.test-d.ts +72 -0
  293. package/src/__tests__/plugin-service.test.ts +13 -0
  294. package/src/__tests__/query-combinations.unit.test.ts +42 -0
  295. package/src/__tests__/query-light-extract-flat-column-ratio.perf.test.ts +252 -0
  296. package/src/__tests__/query-storage-trends.perf.test.ts +104 -0
  297. package/src/__tests__/query-trs-flat-column-ratio.perf.test.ts +194 -0
  298. package/src/__tests__/query.unit.test.ts +196 -0
  299. package/src/__tests__/relationship-index.perf.test.ts +126 -0
  300. package/src/__tests__/relationship-index.test.ts +70 -0
  301. package/src/__tests__/scalar-field-type-owner.test-d.ts +71 -0
  302. package/src/__tests__/schedule-determinism.unit.test.ts +36 -0
  303. package/src/__tests__/schedule-inspection.unit.test.ts +81 -0
  304. package/src/__tests__/schedule-scope-error.unit.test.ts +63 -0
  305. package/src/__tests__/schedule-token.unit.test.ts +54 -0
  306. package/src/__tests__/schema-vocab.test-d.ts +103 -0
  307. package/src/__tests__/serialization.unit.test.ts +2740 -0
  308. package/src/__tests__/shared-kernel-eligibility.test-d.ts +18 -0
  309. package/src/__tests__/shared-kernel-eligibility.unit.test.ts +78 -0
  310. package/src/__tests__/shared-ref-store.unit.test.ts +646 -0
  311. package/src/__tests__/sparse-tag.unit.test.ts +201 -0
  312. package/src/__tests__/spawn-field-error.test-d.ts +41 -0
  313. package/src/__tests__/stale-error.test-d.ts +207 -0
  314. package/src/__tests__/string-view-symmetry.test-d.ts +26 -0
  315. package/src/__tests__/string-vocab.test-d.ts +49 -0
  316. package/src/__tests__/structure-epoch-boundaries.unit.test.ts +39 -0
  317. package/src/__tests__/structure-epoch.unit.test.ts +48 -0
  318. package/src/__tests__/table-archetype-mapping.unit.test.ts +78 -0
  319. package/src/__tests__/time.unit.test.ts +79 -0
  320. package/src/__tests__/types.test-d.ts +38 -0
  321. package/src/__tests__/unique-ref-store.unit.test.ts +348 -0
  322. package/src/__tests__/utils/handle-numeric.ts +30 -0
  323. package/src/__tests__/validation-root-surface.unit.test.ts +15 -0
  324. package/src/__tests__/visibility-atomic-write.unit.test.ts +82 -0
  325. package/src/__tests__/world-change-journal.unit.test.ts +97 -0
  326. package/src/__tests__/world-characterization.unit.test.ts +408 -0
  327. package/src/__tests__/world-consumer-inference.test-d.ts +16 -0
  328. package/src/__tests__/world-health.contract.test.ts +87 -0
  329. package/src/__tests__/world-inspection.test.ts +37 -0
  330. package/src/__tests__/world-internal-identity.unit.test.ts +17 -0
  331. package/src/__tests__/world-managed-roundtrip.unit.test.ts +98 -0
  332. package/src/__tests__/world-scheduling.m4.test.ts +52 -0
  333. package/src/__tests__/world-unique-roundtrip.unit.test.ts +357 -0
  334. package/src/__tests__/world.test-d.ts +156 -0
  335. package/src/buffer-pool.ts +357 -0
  336. package/src/commands.ts +644 -0
  337. package/src/component-default-fallback.ts +236 -0
  338. package/src/component-schema.ts +92 -0
  339. package/src/component-value-validate.ts +135 -0
  340. package/src/component.ts +1268 -0
  341. package/src/entity-handle.ts +104 -0
  342. package/src/entity.ts +140 -0
  343. package/src/errors/query-and-component-errors.ts +200 -0
  344. package/src/errors/relationship-errors.ts +198 -0
  345. package/src/errors/sprite-and-shared-errors.ts +231 -0
  346. package/src/errors/validation-errors.ts +418 -0
  347. package/src/errors.ts +1453 -0
  348. package/src/execution/shared-kernel.ts +392 -0
  349. package/src/externalization/index.ts +170 -0
  350. package/src/index.ts +414 -0
  351. package/src/plugin-service.ts +35 -0
  352. package/src/projection/index.ts +142 -0
  353. package/src/query/query.ts +606 -0
  354. package/src/relationship-index.ts +175 -0
  355. package/src/resource.ts +106 -0
  356. package/src/schedule-token.ts +40 -0
  357. package/src/schedule.ts +846 -0
  358. package/src/shared-ref-store.ts +418 -0
  359. package/src/shared.ts +23 -0
  360. package/src/storage/archetype-graph.ts +166 -0
  361. package/src/storage/archetype.ts +78 -0
  362. package/src/storage/change-detection.ts +231 -0
  363. package/src/storage/column.ts +247 -0
  364. package/src/storage/table.ts +153 -0
  365. package/src/time.ts +122 -0
  366. package/src/unique-ref-store.ts +278 -0
  367. package/src/world-change-journal.ts +84 -0
  368. package/src/world-component-access.ts +1412 -0
  369. package/src/world-component-storage.ts +1178 -0
  370. package/src/world-core.ts +74 -0
  371. package/src/world-entity-lifecycle.ts +539 -0
  372. package/src/world-internal.ts +75 -0
  373. package/src/world-scheduling.ts +499 -0
  374. package/src/world.ts +1397 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ import type { QueryDescriptor, QuerySpan } from '../query/query';
2
+ import type { SystemHandle } from '../schedule';
3
+ export declare const SHARED_KERNEL_EXECUTOR_RESOURCE_KEY = "SharedKernelExecutor";
4
+ export interface KernelDispatchResult {
5
+ readonly mode: 'forced-inline' | 'shared';
6
+ readonly dispatched: number;
7
+ readonly completed: number;
8
+ readonly waitMs: number;
9
+ }
10
+ export interface KernelDispatchFailure {
11
+ readonly cause: unknown;
12
+ readonly dispatched: number;
13
+ readonly completed: number;
14
+ readonly partialWrite: boolean;
15
+ }
16
+ export interface KernelDispatchSpan {
17
+ readonly queryIndex: number;
18
+ readonly span: QuerySpan;
19
+ }
20
+ export interface SharedKernelExecutor {
21
+ warmup?(kernel: SharedKernelDispatch): void;
22
+ execute(kernel: SharedKernelDispatch, spans: readonly KernelDispatchSpan[]): KernelDispatchResult | KernelDispatchFailure;
23
+ }
24
+ export declare function isKernelDispatchFailure(value: KernelDispatchResult | KernelDispatchFailure): value is KernelDispatchFailure;
25
+ export declare const SHARED_KERNEL_ELIGIBILITY_REASONS: readonly ["callback-not-module-function", "dom-access", "missing-access-declaration", "descriptor-conflict", "object-field", "span-unavailable"];
26
+ export type SharedKernelEligibilityReason = (typeof SHARED_KERNEL_ELIGIBILITY_REASONS)[number];
27
+ export type WorldExecutionHealth = 'healthy' | 'poisoned';
28
+ export interface WorldExecutionFault {
29
+ readonly code: 'shared-kernel-failed';
30
+ readonly kernelName: string;
31
+ readonly cause: unknown;
32
+ readonly partialWrite: boolean;
33
+ readonly retryable: false;
34
+ }
35
+ export interface WorldExecutionState {
36
+ readonly identity: string;
37
+ readonly health: WorldExecutionHealth;
38
+ readonly fault: WorldExecutionFault | null;
39
+ }
40
+ export declare function createWorldIdentity(): string;
41
+ export declare function healthyWorldExecutionState(identity: string): WorldExecutionState;
42
+ export declare function poisonedWorldExecutionState(identity: string, fault: WorldExecutionFault): WorldExecutionState;
43
+ export interface SharedKernelDefinition<Qs extends readonly QueryDescriptor[]> {
44
+ readonly name: string;
45
+ readonly queries: Qs;
46
+ readonly run: (spans: readonly QuerySpan[]) => void;
47
+ readonly minimumRows?: number;
48
+ readonly before?: readonly (string | import('../schedule-token').ScheduleToken)[];
49
+ readonly after?: readonly (string | import('../schedule-token').ScheduleToken)[];
50
+ }
51
+ export interface SharedKernelDispatch<Qs extends readonly QueryDescriptor[] = readonly QueryDescriptor[]> {
52
+ readonly kind: 'shared-kernel';
53
+ readonly moduleUrl: string;
54
+ readonly name: string;
55
+ readonly minimumRows: number;
56
+ readonly queries: Qs;
57
+ readonly run: (spans: readonly QuerySpan[]) => void;
58
+ }
59
+ export interface SharedKernelHandle<Qs extends readonly QueryDescriptor[] = readonly QueryDescriptor[]> extends SystemHandle<Qs>, SharedKernelDispatch<Qs> {
60
+ }
61
+ export declare class SharedKernelEligibilityError extends Error {
62
+ readonly code: "shared-kernel-ineligible";
63
+ readonly expected = "a module-loadable named kernel with one or more numeric QuerySpan read/write declarations";
64
+ readonly hint = "export a named function from the kernel module and use only dense numeric QuerySpan columns";
65
+ readonly detail: {
66
+ readonly kernelName: string;
67
+ readonly reason: SharedKernelEligibilityReason;
68
+ };
69
+ constructor(kernelName: string, reason: SharedKernelEligibilityReason);
70
+ }
71
+ export declare class SharedKernelFailureError extends Error {
72
+ readonly code: "shared-kernel-failed";
73
+ readonly expected = "every dispatched shard completes without a possible partial write";
74
+ readonly hint = "do not retry this World; inspect detail.cause and rebuild with a new World identity";
75
+ readonly detail: {
76
+ readonly kernelName: string;
77
+ readonly worldIdentity: string;
78
+ readonly cause: unknown;
79
+ readonly partialWrite: boolean;
80
+ readonly retryable: false;
81
+ };
82
+ constructor(kernelName: string, worldIdentity: string, cause: unknown, partialWrite: boolean);
83
+ }
84
+ export declare class WorldPoisonedError extends Error {
85
+ readonly code: "world-poisoned";
86
+ readonly expected = "World health is healthy before update";
87
+ readonly hint = "stop scheduling this World and explicitly bootstrap a new World identity";
88
+ readonly detail: {
89
+ readonly worldIdentity: string;
90
+ readonly fault: unknown;
91
+ };
92
+ constructor(worldIdentity: string, fault: unknown);
93
+ }
94
+ export declare function sharedKernelEligibility(moduleUrl: string, definition: SharedKernelDefinition<readonly QueryDescriptor[]>): SharedKernelEligibilityReason | undefined;
95
+ export declare function defineSharedKernel<const Qs extends readonly QueryDescriptor[]>(moduleUrl: string, definition: SharedKernelDefinition<Qs>): SharedKernelHandle<Qs>;
96
+ export type SharedFieldView = Float32Array | Float64Array | Int32Array | Uint32Array | Int16Array | Uint16Array | Int8Array | Uint8Array;
97
+ export interface SharedSpanBinding {
98
+ readonly entities: Readonly<Uint32Array>;
99
+ readonly length: number;
100
+ readonly read: Readonly<Record<string, Readonly<Record<string, SharedFieldView>>>>;
101
+ readonly write: Readonly<Record<string, Readonly<Record<string, SharedFieldView>>>>;
102
+ }
103
+ export declare function bindSharedSpan(kernel: SharedKernelDispatch, span: QuerySpan, queryIndex: number): SharedSpanBinding;
104
+ export declare function splitSharedSpan(binding: SharedSpanBinding, shardCount: number): readonly SharedSpanBinding[];
105
+ export declare function isSharedSpan(binding: SharedSpanBinding): boolean;
106
+ //# sourceMappingURL=shared-kernel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-kernel.d.ts","sourceRoot":"","sources":["../../src/execution/shared-kernel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { Component, ComponentSchema } from '../component';
2
+ export type EntityFieldKind = {
3
+ readonly kind: 'entity';
4
+ readonly isArray: false;
5
+ } | {
6
+ readonly kind: 'entity';
7
+ readonly isArray: true;
8
+ };
9
+ export interface EntityRemapOptions {
10
+ readonly missing?: 'identity' | 'error';
11
+ }
12
+ export declare function classifyEntityField(token: Component, fieldName: string): EntityFieldKind | null;
13
+ export declare function remapEntityFieldValue(value: unknown, kind: EntityFieldKind | null, remapFn: (entity: number) => number): unknown;
14
+ export declare function createEntityRemap(mapping: Uint32Array | readonly number[], options?: EntityRemapOptions): (entity: number) => number;
15
+ export declare function projectComponentData<S extends ComponentSchema>(token: Component<string, S>, raw: Partial<Record<string, unknown>> | undefined, entityRemap?: (entity: number) => number): Record<string, unknown>;
16
+ export declare function isComponentPortable(token: Component): boolean;
17
+ export declare function isComponentFullyTransient(token: Component): boolean;
18
+ export declare function isFieldPortable(fieldType: string): boolean;
19
+ export interface ProfileComponentError {
20
+ readonly component: string;
21
+ readonly code: 'component-fully-transient' | 'field-not-portable';
22
+ readonly field?: string;
23
+ readonly fieldType?: string;
24
+ readonly expected: string;
25
+ readonly hint: string;
26
+ }
27
+ export declare function validateProfileComponents(components: readonly Component[]): {
28
+ readonly valid: boolean;
29
+ readonly errors: readonly ProfileComponentError[];
30
+ };
31
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/externalization/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAK/D,MAAM,MAAM,eAAe,GACvB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAA;CAAE,GACpD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAA;CAAE,CAAC;AAExD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;CACzC;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAO/F;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,eAAe,GAAG,IAAI,EAC5B,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAClC,OAAO,CAIT;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,WAAW,GAAG,SAAS,MAAM,EAAE,EACxC,OAAO,GAAE,kBAAuB,GAC/B,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAS5B;AA6CD,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,eAAe,EAC5D,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,EAC3B,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,EACjD,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GACvC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAM7D;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAEnE;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAY1D;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,2BAA2B,GAAG,oBAAoB,CAAC;IAClE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,GAAG;IAC3E,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACnD,CA6BA"}
@@ -0,0 +1,298 @@
1
+ import '@forgeax/engine-types';
2
+
3
+ // src/component.ts
4
+
5
+ // src/component-schema.ts
6
+ var COMPONENT_REGISTRY = /* @__PURE__ */ Symbol.for("forgeax.ecs.componentRegistry");
7
+ var globalSymbols = globalThis;
8
+ var definitions = globalSymbols[COMPONENT_REGISTRY] ?? (() => {
9
+ const registry = { definitions: /* @__PURE__ */ new WeakMap() };
10
+ globalSymbols[COMPONENT_REGISTRY] = registry;
11
+ return registry;
12
+ })();
13
+ function componentDefinition(component) {
14
+ const definition = definitions.definitions.get(component);
15
+ if (definition === void 0) {
16
+ throw new Error(`Component definition missing for '${component.name}'.`);
17
+ }
18
+ return definition;
19
+ }
20
+
21
+ // src/component.ts
22
+ var FIELD_SIZE_BYTES = {
23
+ f32: 4,
24
+ f64: 8,
25
+ i32: 4,
26
+ u32: 4,
27
+ i16: 2,
28
+ u16: 2,
29
+ i8: 1,
30
+ u8: 1,
31
+ bool: 1,
32
+ enum: 4,
33
+ ref: 4
34
+ };
35
+ var COMPONENT_OWNER_REGISTRY = /* @__PURE__ */ Symbol.for("forgeax.ecs.componentOwnerRegistry");
36
+ var ownerSymbols = globalThis;
37
+ var ownerRegistry = ownerSymbols[COMPONENT_OWNER_REGISTRY] ?? (() => {
38
+ const registry = {
39
+ nextId: 1,
40
+ ids: /* @__PURE__ */ new WeakMap(),
41
+ schemas: /* @__PURE__ */ new WeakMap()
42
+ };
43
+ ownerSymbols[COMPONENT_OWNER_REGISTRY] = registry;
44
+ return registry;
45
+ })();
46
+ function componentSchema(component) {
47
+ const schema = ownerRegistry.schemas.get(component);
48
+ if (schema === void 0) throw new Error(`Component schema missing for '${component.name}'.`);
49
+ return schema;
50
+ }
51
+ var VIEW_CTORS = {
52
+ f32: Float32Array,
53
+ f64: Float64Array,
54
+ i32: Int32Array,
55
+ u32: Uint32Array,
56
+ i16: Int16Array,
57
+ u16: Uint16Array,
58
+ i8: Int8Array,
59
+ u8: Uint8Array,
60
+ bool: Uint8Array,
61
+ enum: Uint32Array,
62
+ ref: Uint32Array
63
+ };
64
+ function scalarRow(t) {
65
+ return {
66
+ byteSize: FIELD_SIZE_BYTES[t],
67
+ viewCtor: VIEW_CTORS[t],
68
+ storage: t,
69
+ isScalar: true,
70
+ // The scalar `ref` shares its key with the vocab `ref<T>` family; mark
71
+ // it as managed so the single row covers both.
72
+ isManaged: t === "ref",
73
+ isBuffer: false,
74
+ isEntityRef: false,
75
+ isArray: false
76
+ };
77
+ }
78
+ Object.freeze({
79
+ f32: scalarRow("f32"),
80
+ f64: scalarRow("f64"),
81
+ i32: scalarRow("i32"),
82
+ u32: scalarRow("u32"),
83
+ i16: scalarRow("i16"),
84
+ u16: scalarRow("u16"),
85
+ i8: scalarRow("i8"),
86
+ u8: scalarRow("u8"),
87
+ bool: scalarRow("bool"),
88
+ enum: scalarRow("enum"),
89
+ ref: scalarRow("ref"),
90
+ entity: {
91
+ byteSize: 4,
92
+ viewCtor: Uint32Array,
93
+ storage: "u32",
94
+ isScalar: false,
95
+ isManaged: false,
96
+ isBuffer: false,
97
+ isEntityRef: true,
98
+ isArray: false
99
+ },
100
+ string: {
101
+ byteSize: 4,
102
+ viewCtor: Uint32Array,
103
+ storage: "u32",
104
+ isScalar: false,
105
+ isManaged: true,
106
+ isBuffer: false,
107
+ isEntityRef: false,
108
+ isArray: false
109
+ },
110
+ buffer: {
111
+ byteSize: 4,
112
+ viewCtor: Uint32Array,
113
+ storage: "u32",
114
+ isScalar: false,
115
+ isManaged: false,
116
+ isBuffer: true,
117
+ isEntityRef: false,
118
+ isArray: false
119
+ },
120
+ // feat-20260614-ecs-shared-component-and-unique-rename M3 (plan-strategy
121
+ // D-3): independent `'shared'` row, NOT a reuse of the `'ref'` (post-M2:
122
+ // `'unique<T>'` family) row. `isManaged: true` so write-barrier dispatch
123
+ // routes shared<T> fields through release on despawn / removeComponent /
124
+ // set-overwrite, but the M4 sub-dispatch in releaseManagedFieldOnRow will
125
+ // separate shared (rc--) from unique (direct slot drop) using the
126
+ // fieldType.startsWith('shared<') predicate. Keeping the meta key
127
+ // independent preserves the "meta key = release semantics" invariant
128
+ // (architecture-principles.md #1 SSOT).
129
+ shared: {
130
+ byteSize: 4,
131
+ viewCtor: Uint32Array,
132
+ storage: "u32",
133
+ isScalar: false,
134
+ isManaged: true,
135
+ isBuffer: false,
136
+ isEntityRef: false,
137
+ isArray: false
138
+ },
139
+ array: {
140
+ byteSize: 4,
141
+ viewCtor: Uint32Array,
142
+ storage: "u32",
143
+ isScalar: false,
144
+ isManaged: false,
145
+ isBuffer: false,
146
+ isEntityRef: false,
147
+ isArray: true
148
+ }
149
+ });
150
+ var ENTITY_NULL_RAW = 4294967295;
151
+
152
+ // src/component-default-fallback.ts
153
+ function typeDefault(fieldType) {
154
+ if (fieldType === "bool") return false;
155
+ if (fieldType === "entity") return ENTITY_NULL_RAW;
156
+ if (fieldType === "array<entity>") return [];
157
+ return 0;
158
+ }
159
+ function fillComponentDefaults(token, raw) {
160
+ const schema = componentSchema(token);
161
+ const layer2 = componentDefinition(token).defaults;
162
+ const out = /* @__PURE__ */ Object.create(null);
163
+ const rawObj = raw ?? void 0;
164
+ for (const fieldName of Object.keys(schema)) {
165
+ const fieldType = schema[fieldName];
166
+ if (fieldType === void 0) continue;
167
+ if (rawObj !== void 0 && fieldName in rawObj) {
168
+ out[fieldName] = rawObj[fieldName];
169
+ continue;
170
+ }
171
+ if (layer2 !== void 0 && fieldName in layer2) {
172
+ out[fieldName] = layer2[fieldName];
173
+ continue;
174
+ }
175
+ out[fieldName] = typeDefault(fieldType);
176
+ }
177
+ return out;
178
+ }
179
+
180
+ // src/externalization/index.ts
181
+ function classifyEntityField(token, fieldName) {
182
+ const field = componentDefinition(token).fields[fieldName];
183
+ if (field === void 0) return null;
184
+ if (field.arrayMeta !== void 0) {
185
+ return field.arrayMeta.elementType === "entity" ? { kind: "entity", isArray: true } : null;
186
+ }
187
+ return componentSchema(token)[fieldName] === "entity" ? { kind: "entity", isArray: false } : null;
188
+ }
189
+ function remapEntityFieldValue(value, kind, remapFn) {
190
+ if (kind === null) return value;
191
+ if (kind.isArray) return Array.isArray(value) ? value.map((entity) => remapFn(entity)) : value;
192
+ return typeof value === "number" ? remapFn(value) : value;
193
+ }
194
+ function createEntityRemap(mapping, options = {}) {
195
+ return (entity) => {
196
+ const mapped = entity >= 0 && entity < mapping.length ? mapping[entity] : void 0;
197
+ if (mapped !== void 0) return mapped;
198
+ if (options.missing === "error") {
199
+ throw new Error(`Entity mapping is missing source entity ${entity}.`);
200
+ }
201
+ return entity;
202
+ };
203
+ }
204
+ function deepCopyValue(value) {
205
+ if (Array.isArray(value)) return [...value];
206
+ if (ArrayBuffer.isView(value) && !(value instanceof DataView)) {
207
+ const view = value;
208
+ const ViewCtor = value.constructor;
209
+ return new ViewCtor(view);
210
+ }
211
+ return value;
212
+ }
213
+ function projectComponentDataInMode(token, raw, entityRemap) {
214
+ const definition = componentDefinition(token);
215
+ if (definition.policy.transient) return {};
216
+ const fields = definition.fields;
217
+ const rawObj = raw;
218
+ const filtered = {};
219
+ for (const fieldName of Object.keys(componentSchema(token))) {
220
+ const reflection = fields?.[fieldName];
221
+ if (reflection?.transient === true || rawObj === void 0 || !(fieldName in rawObj)) continue;
222
+ const value = rawObj[fieldName];
223
+ if (value === void 0) continue;
224
+ const kind = classifyEntityField(token, fieldName);
225
+ if (kind?.isArray && (Array.isArray(value) || ArrayBuffer.isView(value))) {
226
+ filtered[fieldName] = Array.from(
227
+ value,
228
+ (entity) => entityRemap === void 0 ? entity : entityRemap(entity)
229
+ );
230
+ } else if (kind !== null && typeof value === "number") {
231
+ filtered[fieldName] = entityRemap === void 0 ? value : entityRemap(value);
232
+ } else {
233
+ filtered[fieldName] = deepCopyValue(value);
234
+ }
235
+ }
236
+ const result = fillComponentDefaults(token, filtered);
237
+ for (const fieldName of Object.keys(componentSchema(token))) {
238
+ if (fields?.[fieldName]?.transient === true) delete result[fieldName];
239
+ }
240
+ return result;
241
+ }
242
+ function projectComponentData(token, raw, entityRemap) {
243
+ return projectComponentDataInMode(token, raw, entityRemap);
244
+ }
245
+ function isComponentPortable(token) {
246
+ const definition = componentDefinition(token);
247
+ if (definition.policy.transient) return false;
248
+ const fields = definition.fields;
249
+ if (fields === void 0) return true;
250
+ return Object.keys(componentSchema(token)).some((name) => fields[name]?.transient !== true);
251
+ }
252
+ function isComponentFullyTransient(token) {
253
+ return !isComponentPortable(token);
254
+ }
255
+ function isFieldPortable(fieldType) {
256
+ if (fieldType === "ref" || fieldType.startsWith("unique<") || fieldType.startsWith("shared<")) {
257
+ return false;
258
+ }
259
+ if (fieldType.startsWith("array<") && fieldType.endsWith(">")) {
260
+ const body = fieldType.slice(6, -1).replace(/,\s*\d+$/u, "").trim();
261
+ return body.length > 0 && isFieldPortable(body);
262
+ }
263
+ return true;
264
+ }
265
+ function validateProfileComponents(components) {
266
+ const errors = [];
267
+ for (const token of components) {
268
+ if (isComponentFullyTransient(token)) {
269
+ errors.push({
270
+ component: token.name,
271
+ code: "component-fully-transient",
272
+ expected: `Component '${token.name}' must have at least one non-transient, portable field`,
273
+ hint: "Remove the component-level transient flag or declare a non-transient field"
274
+ });
275
+ continue;
276
+ }
277
+ const fields = componentDefinition(token).fields;
278
+ for (const fieldName of Object.keys(componentSchema(token))) {
279
+ const fieldType = componentSchema(token)[fieldName];
280
+ if (fieldType === void 0 || fields?.[fieldName]?.transient === true) continue;
281
+ if (!isFieldPortable(fieldType)) {
282
+ errors.push({
283
+ component: token.name,
284
+ code: "field-not-portable",
285
+ field: fieldName,
286
+ fieldType,
287
+ expected: `Field '${fieldName}' of component '${token.name}' must be portable`,
288
+ hint: `Field type '${fieldType}' is a process-local reference`
289
+ });
290
+ }
291
+ }
292
+ }
293
+ return { valid: errors.length === 0, errors };
294
+ }
295
+
296
+ export { classifyEntityField, createEntityRemap, isComponentFullyTransient, isComponentPortable, isFieldPortable, projectComponentData, remapEntityFieldValue, validateProfileComponents };
297
+ //# sourceMappingURL=index.mjs.map
298
+ //# sourceMappingURL=index.mjs.map