@oasys/oecs 0.5.3 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1399 -276
- package/README.md +327 -169
- package/dist/core/ecs/access_check.d.cts +31 -31
- package/dist/core/ecs/access_check.d.ts +31 -31
- package/dist/core/ecs/access_check.d.ts.map +1 -1
- package/dist/core/ecs/archetype.d.cts +273 -205
- package/dist/core/ecs/archetype.d.ts +273 -205
- package/dist/core/ecs/archetype.d.ts.map +1 -1
- package/dist/core/ecs/archetype_closure.d.cts +23 -0
- package/dist/core/ecs/archetype_closure.d.ts +23 -0
- package/dist/core/ecs/archetype_closure.d.ts.map +1 -0
- package/dist/core/ecs/archetype_graph.d.cts +34 -34
- package/dist/core/ecs/archetype_graph.d.ts +34 -34
- package/dist/core/ecs/archetype_graph.d.ts.map +1 -1
- package/dist/core/ecs/archetype_types.d.cts +55 -0
- package/dist/core/ecs/archetype_types.d.ts +55 -0
- package/dist/core/ecs/archetype_types.d.ts.map +1 -0
- package/dist/core/ecs/change_feed.d.cts +53 -0
- package/dist/core/ecs/change_feed.d.ts +53 -0
- package/dist/core/ecs/change_feed.d.ts.map +1 -0
- package/dist/core/ecs/changed_query.d.cts +36 -0
- package/dist/core/ecs/changed_query.d.ts +36 -0
- package/dist/core/ecs/changed_query.d.ts.map +1 -0
- package/dist/core/ecs/chunk_columns.d.cts +49 -0
- package/dist/core/ecs/chunk_columns.d.ts +49 -0
- package/dist/core/ecs/chunk_columns.d.ts.map +1 -0
- package/dist/core/ecs/command_log.d.cts +30 -30
- package/dist/core/ecs/command_log.d.ts +30 -30
- package/dist/core/ecs/command_log.d.ts.map +1 -1
- package/dist/core/ecs/component.d.cts +45 -44
- package/dist/core/ecs/component.d.ts +45 -44
- package/dist/core/ecs/component.d.ts.map +1 -1
- package/dist/core/ecs/component_registry.d.cts +53 -0
- package/dist/core/ecs/component_registry.d.ts +53 -0
- package/dist/core/ecs/component_registry.d.ts.map +1 -0
- package/dist/core/ecs/compute_backend.d.cts +18 -7
- package/dist/core/ecs/compute_backend.d.ts +18 -7
- package/dist/core/ecs/compute_backend.d.ts.map +1 -1
- package/dist/core/ecs/deferred_commands.d.cts +15 -14
- package/dist/core/ecs/deferred_commands.d.ts +15 -14
- package/dist/core/ecs/deferred_commands.d.ts.map +1 -1
- package/dist/core/ecs/dispatch_trace.d.cts +32 -31
- package/dist/core/ecs/dispatch_trace.d.ts +32 -31
- package/dist/core/ecs/dispatch_trace.d.ts.map +1 -1
- package/dist/core/ecs/ecs.d.cts +337 -276
- package/dist/core/ecs/ecs.d.ts +337 -276
- package/dist/core/ecs/ecs.d.ts.map +1 -1
- package/dist/core/ecs/ecs_memory.d.cts +134 -136
- package/dist/core/ecs/ecs_memory.d.ts +134 -136
- package/dist/core/ecs/ecs_memory.d.ts.map +1 -1
- package/dist/core/ecs/ecs_options.d.cts +89 -0
- package/dist/core/ecs/ecs_options.d.ts +89 -0
- package/dist/core/ecs/ecs_options.d.ts.map +1 -0
- package/dist/core/ecs/entity.d.cts +4 -4
- package/dist/core/ecs/entity.d.ts +4 -4
- package/dist/core/ecs/entity_allocator.d.cts +24 -22
- package/dist/core/ecs/entity_allocator.d.ts +24 -22
- package/dist/core/ecs/entity_allocator.d.ts.map +1 -1
- package/dist/core/ecs/event.d.cts +37 -23
- package/dist/core/ecs/event.d.ts +37 -23
- package/dist/core/ecs/event.d.ts.map +1 -1
- package/dist/core/ecs/facades.d.cts +12 -126
- package/dist/core/ecs/facades.d.ts +12 -126
- package/dist/core/ecs/facades.d.ts.map +1 -1
- package/dist/core/ecs/frame_stepper.d.cts +12 -12
- package/dist/core/ecs/frame_stepper.d.ts +12 -12
- package/dist/core/ecs/frame_stepper.d.ts.map +1 -1
- package/dist/core/ecs/frame_trace.d.cts +34 -34
- package/dist/core/ecs/frame_trace.d.ts +34 -34
- package/dist/core/ecs/frame_trace.d.ts.map +1 -1
- package/dist/core/ecs/host_commands.d.cts +107 -89
- package/dist/core/ecs/host_commands.d.ts +107 -89
- package/dist/core/ecs/host_commands.d.ts.map +1 -1
- package/dist/core/ecs/index.d.cts +22 -12
- package/dist/core/ecs/index.d.ts +22 -12
- package/dist/core/ecs/index.d.ts.map +1 -1
- package/dist/core/ecs/observer.d.cts +41 -122
- package/dist/core/ecs/observer.d.ts +41 -122
- package/dist/core/ecs/observer.d.ts.map +1 -1
- package/dist/core/ecs/phase.d.cts +79 -0
- package/dist/core/ecs/phase.d.ts +79 -0
- package/dist/core/ecs/phase.d.ts.map +1 -0
- package/dist/core/ecs/plugin.d.cts +125 -0
- package/dist/core/ecs/plugin.d.ts +125 -0
- package/dist/core/ecs/plugin.d.ts.map +1 -0
- package/dist/core/ecs/plugin_slots.d.cts +26 -0
- package/dist/core/ecs/plugin_slots.d.ts +26 -0
- package/dist/core/ecs/plugin_slots.d.ts.map +1 -0
- package/dist/core/ecs/query.d.cts +219 -568
- package/dist/core/ecs/query.d.ts +219 -568
- package/dist/core/ecs/query.d.ts.map +1 -1
- package/dist/core/ecs/query_cache.d.cts +130 -0
- package/dist/core/ecs/query_cache.d.ts +130 -0
- package/dist/core/ecs/query_cache.d.ts.map +1 -0
- package/dist/core/ecs/query_registry.d.cts +47 -0
- package/dist/core/ecs/query_registry.d.ts +47 -0
- package/dist/core/ecs/query_registry.d.ts.map +1 -0
- package/dist/core/ecs/query_terms.d.cts +126 -0
- package/dist/core/ecs/query_terms.d.ts +126 -0
- package/dist/core/ecs/query_terms.d.ts.map +1 -0
- package/dist/core/ecs/ref.d.cts +129 -16
- package/dist/core/ecs/ref.d.ts +129 -16
- package/dist/core/ecs/ref.d.ts.map +1 -1
- package/dist/core/ecs/relation.d.cts +105 -186
- package/dist/core/ecs/relation.d.ts +105 -186
- package/dist/core/ecs/relation.d.ts.map +1 -1
- package/dist/core/ecs/resource.d.cts +14 -14
- package/dist/core/ecs/resource.d.ts +14 -14
- package/dist/core/ecs/resource_registry.d.cts +6 -6
- package/dist/core/ecs/resource_registry.d.ts +6 -6
- package/dist/core/ecs/resource_registry.d.ts.map +1 -1
- package/dist/core/ecs/row_kinds.d.cts +24 -0
- package/dist/core/ecs/row_kinds.d.ts +24 -0
- package/dist/core/ecs/row_kinds.d.ts.map +1 -0
- package/dist/core/ecs/run_condition.d.cts +23 -23
- package/dist/core/ecs/run_condition.d.ts +23 -23
- package/dist/core/ecs/run_condition.d.ts.map +1 -1
- package/dist/core/ecs/schedule.d.cts +98 -114
- package/dist/core/ecs/schedule.d.ts +98 -114
- package/dist/core/ecs/schedule.d.ts.map +1 -1
- package/dist/core/ecs/schedule_plan.d.cts +33 -0
- package/dist/core/ecs/schedule_plan.d.ts +33 -0
- package/dist/core/ecs/schedule_plan.d.ts.map +1 -0
- package/dist/core/ecs/snapshot.d.cts +77 -0
- package/dist/core/ecs/snapshot.d.ts +77 -0
- package/dist/core/ecs/snapshot.d.ts.map +1 -0
- package/dist/core/ecs/snapshot_mount.d.cts +42 -0
- package/dist/core/ecs/snapshot_mount.d.ts +42 -0
- package/dist/core/ecs/snapshot_mount.d.ts.map +1 -0
- package/dist/core/ecs/sparse_store.d.cts +110 -53
- package/dist/core/ecs/sparse_store.d.ts +110 -53
- package/dist/core/ecs/sparse_store.d.ts.map +1 -1
- package/dist/core/ecs/store.d.cts +644 -511
- package/dist/core/ecs/store.d.ts +644 -511
- package/dist/core/ecs/store.d.ts.map +1 -1
- package/dist/core/ecs/store_layout_listener.d.cts +8 -8
- package/dist/core/ecs/store_layout_listener.d.ts +8 -8
- package/dist/core/ecs/store_types.d.cts +122 -0
- package/dist/core/ecs/store_types.d.ts +122 -0
- package/dist/core/ecs/store_types.d.ts.map +1 -0
- package/dist/core/ecs/system.d.cts +151 -66
- package/dist/core/ecs/system.d.ts +151 -66
- package/dist/core/ecs/system.d.ts.map +1 -1
- package/dist/core/ecs/system_context.d.cts +296 -0
- package/dist/core/ecs/system_context.d.ts +296 -0
- package/dist/core/ecs/system_context.d.ts.map +1 -0
- package/dist/core/ecs/system_set.d.cts +48 -0
- package/dist/core/ecs/system_set.d.ts +48 -0
- package/dist/core/ecs/system_set.d.ts.map +1 -0
- package/dist/core/ecs/utils/arrays.d.cts +15 -1
- package/dist/core/ecs/utils/arrays.d.ts +15 -1
- package/dist/core/ecs/utils/arrays.d.ts.map +1 -1
- package/dist/core/ecs/utils/error.d.cts +87 -4
- package/dist/core/ecs/utils/error.d.ts +87 -4
- package/dist/core/ecs/utils/error.d.ts.map +1 -1
- package/dist/core/ecs/utils/plugin_error.d.cts +10 -0
- package/dist/core/ecs/utils/plugin_error.d.ts +10 -0
- package/dist/core/ecs/utils/plugin_error.d.ts.map +1 -0
- package/dist/core/restore_errors.d.cts +30 -0
- package/dist/core/restore_errors.d.ts +30 -0
- package/dist/core/restore_errors.d.ts.map +1 -0
- package/dist/core/store/action_ring.d.cts +48 -49
- package/dist/core/store/action_ring.d.ts +48 -49
- package/dist/core/store/action_ring.d.ts.map +1 -1
- package/dist/core/store/allocator.d.cts +166 -114
- package/dist/core/store/allocator.d.ts +166 -114
- package/dist/core/store/allocator.d.ts.map +1 -1
- package/dist/core/store/buffer_backed_column.d.cts +21 -22
- package/dist/core/store/buffer_backed_column.d.ts +21 -22
- package/dist/core/store/buffer_backed_column.d.ts.map +1 -1
- package/dist/core/store/column_store.d.cts +138 -100
- package/dist/core/store/column_store.d.ts +138 -100
- package/dist/core/store/column_store.d.ts.map +1 -1
- package/dist/core/store/command_dispatch.d.cts +14 -15
- package/dist/core/store/command_dispatch.d.ts +14 -15
- package/dist/core/store/command_dispatch.d.ts.map +1 -1
- package/dist/core/store/command_ring.d.cts +41 -45
- package/dist/core/store/command_ring.d.ts +41 -45
- package/dist/core/store/command_ring.d.ts.map +1 -1
- package/dist/core/store/descriptor.d.cts +35 -18
- package/dist/core/store/descriptor.d.ts +35 -18
- package/dist/core/store/descriptor.d.ts.map +1 -1
- package/dist/core/store/entity_index.d.cts +34 -35
- package/dist/core/store/entity_index.d.ts +34 -35
- package/dist/core/store/entity_index.d.ts.map +1 -1
- package/dist/core/store/event_ring.d.cts +40 -42
- package/dist/core/store/event_ring.d.ts +40 -42
- package/dist/core/store/event_ring.d.ts.map +1 -1
- package/dist/core/store/extend.d.cts +15 -9
- package/dist/core/store/extend.d.ts +15 -9
- package/dist/core/store/extend.d.ts.map +1 -1
- package/dist/core/store/grow.d.cts +3 -3
- package/dist/core/store/grow.d.ts +3 -3
- package/dist/core/store/grow.d.ts.map +1 -1
- package/dist/core/store/header.d.cts +37 -33
- package/dist/core/store/header.d.ts +37 -33
- package/dist/core/store/header.d.ts.map +1 -1
- package/dist/core/store/index.d.cts +10 -10
- package/dist/core/store/index.d.ts +10 -10
- package/dist/core/store/index.d.ts.map +1 -1
- package/dist/core/store/layout_ops.d.cts +72 -63
- package/dist/core/store/layout_ops.d.ts +72 -63
- package/dist/core/store/layout_ops.d.ts.map +1 -1
- package/dist/core/store/region_table.d.cts +28 -21
- package/dist/core/store/region_table.d.ts +28 -21
- package/dist/core/store/region_table.d.ts.map +1 -1
- package/dist/core/store/snapshot.d.cts +31 -16
- package/dist/core/store/snapshot.d.ts +31 -16
- package/dist/core/store/snapshot.d.ts.map +1 -1
- package/dist/core/store/state_hash.d.cts +14 -14
- package/dist/core/store/state_hash.d.ts +14 -14
- package/dist/core/store/state_hash.d.ts.map +1 -1
- package/dist/core/store/store_regions.d.cts +10 -10
- package/dist/core/store/store_regions.d.ts +10 -10
- package/dist/core/store/store_regions.d.ts.map +1 -1
- package/dist/core/store/vendored_abi/abi.d.cts +27 -2
- package/dist/core/store/vendored_abi/abi.d.ts +27 -2
- package/dist/core/store/vendored_abi/abi.d.ts.map +1 -1
- package/dist/host_commands-B2KMx8O2.cjs +1 -0
- package/dist/host_commands-ClVPvhSa.cjs +2 -0
- package/dist/host_commands-CwxVQS1z.js +1524 -0
- package/dist/host_commands-nJvTy88E.js +1667 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +16 -11
- package/dist/index.d.ts +16 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.development.cjs +1 -1
- package/dist/index.development.js +6709 -5729
- package/dist/index.js +5664 -4743
- package/dist/internal.cjs +2 -2
- package/dist/internal.d.cts +5 -2
- package/dist/internal.d.ts +5 -2
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.development.cjs +1 -1
- package/dist/internal.development.js +70 -20
- package/dist/internal.js +138 -83
- package/dist/plugins/abi-D3V-QUSf.cjs +1 -0
- package/dist/plugins/abi-NP8pNxpd.js +42 -0
- package/dist/plugins/arrays-Dr_1hCjL.js +28 -0
- package/dist/plugins/arrays-Dt-Joc4i.cjs +1 -0
- package/dist/plugins/assertions-gtDVfbnQ.js +6 -0
- package/dist/plugins/assertions-z5GQd_bB.cjs +1 -0
- package/dist/{extensions → plugins}/editor/editor.d.cts +56 -56
- package/dist/{extensions → plugins}/editor/editor.d.ts +56 -56
- package/dist/plugins/editor/editor.d.ts.map +1 -0
- package/dist/{extensions → plugins}/editor/field_handle.d.cts +13 -13
- package/dist/{extensions → plugins}/editor/field_handle.d.ts +13 -13
- package/dist/plugins/editor/field_handle.d.ts.map +1 -0
- package/dist/plugins/editor/index.d.cts +22 -0
- package/dist/plugins/editor/index.d.ts +22 -0
- package/dist/plugins/editor/index.d.ts.map +1 -0
- package/dist/plugins/editor.cjs +1 -0
- package/dist/plugins/editor.d.cts +1 -0
- package/dist/plugins/editor.d.ts +1 -0
- package/dist/plugins/editor.development.cjs +1 -0
- package/dist/{extensions/editor/index.development.js → plugins/editor.development.js} +83 -66
- package/dist/{extensions/editor/index.js → plugins/editor.js} +83 -66
- package/dist/plugins/events/event_channel.d.cts +13 -0
- package/dist/plugins/events/event_channel.d.ts +13 -0
- package/dist/plugins/events/event_channel.d.ts.map +1 -0
- package/dist/plugins/events/event_registry.d.cts +22 -0
- package/dist/plugins/events/event_registry.d.ts +22 -0
- package/dist/plugins/events/event_registry.d.ts.map +1 -0
- package/dist/plugins/events/facade.d.cts +26 -0
- package/dist/plugins/events/facade.d.ts +26 -0
- package/dist/plugins/events/facade.d.ts.map +1 -0
- package/dist/plugins/events/index.d.cts +10 -0
- package/dist/plugins/events/index.d.ts +10 -0
- package/dist/plugins/events/index.d.ts.map +1 -0
- package/dist/plugins/events.cjs +1 -0
- package/dist/plugins/events.d.cts +1 -0
- package/dist/plugins/events.d.ts +1 -0
- package/dist/plugins/events.development.cjs +1 -0
- package/dist/plugins/events.development.js +174 -0
- package/dist/plugins/events.js +159 -0
- package/dist/plugins/observers/index.d.cts +23 -0
- package/dist/plugins/observers/index.d.ts +23 -0
- package/dist/plugins/observers/index.d.ts.map +1 -0
- package/dist/plugins/observers/observer_registry.d.cts +101 -0
- package/dist/plugins/observers/observer_registry.d.ts +101 -0
- package/dist/plugins/observers/observer_registry.d.ts.map +1 -0
- package/dist/plugins/observers.cjs +1 -0
- package/dist/plugins/observers.d.cts +1 -0
- package/dist/plugins/observers.d.ts +1 -0
- package/dist/plugins/observers.development.cjs +1 -0
- package/dist/plugins/observers.development.js +431 -0
- package/dist/plugins/observers.js +403 -0
- package/dist/plugins/relation_store-BsoegrZh.js +313 -0
- package/dist/plugins/relation_store-DQKSnxsm.cjs +1 -0
- package/dist/plugins/relation_store-RBhpcE28.cjs +1 -0
- package/dist/plugins/relation_store-RqW5Snx6.js +328 -0
- package/dist/plugins/relations/builtin_relations.d.cts +48 -0
- package/dist/plugins/relations/builtin_relations.d.ts +48 -0
- package/dist/plugins/relations/builtin_relations.d.ts.map +1 -0
- package/dist/plugins/relations/facade.d.cts +73 -0
- package/dist/plugins/relations/facade.d.ts +73 -0
- package/dist/plugins/relations/facade.d.ts.map +1 -0
- package/dist/plugins/relations/index.d.cts +11 -0
- package/dist/plugins/relations/index.d.ts +11 -0
- package/dist/plugins/relations/index.d.ts.map +1 -0
- package/dist/{core/ecs → plugins/relations}/relation_service.d.cts +93 -105
- package/dist/{core/ecs → plugins/relations}/relation_service.d.ts +93 -105
- package/dist/plugins/relations/relation_service.d.ts.map +1 -0
- package/dist/plugins/relations/relation_store.d.cts +177 -0
- package/dist/plugins/relations/relation_store.d.ts +177 -0
- package/dist/plugins/relations/relation_store.d.ts.map +1 -0
- package/dist/plugins/relations.cjs +1 -0
- package/dist/plugins/relations.d.cts +1 -0
- package/dist/plugins/relations.d.ts +1 -0
- package/dist/plugins/relations.development.cjs +1 -0
- package/dist/plugins/relations.development.js +603 -0
- package/dist/plugins/relations.js +553 -0
- package/dist/plugins/snapshots/index.d.cts +33 -0
- package/dist/plugins/snapshots/index.d.ts +33 -0
- package/dist/plugins/snapshots/index.d.ts.map +1 -0
- package/dist/plugins/snapshots/resume.d.cts +57 -0
- package/dist/plugins/snapshots/resume.d.ts +57 -0
- package/dist/plugins/snapshots/resume.d.ts.map +1 -0
- package/dist/plugins/snapshots/snapshot_service.d.cts +59 -0
- package/dist/plugins/snapshots/snapshot_service.d.ts +59 -0
- package/dist/plugins/snapshots/snapshot_service.d.ts.map +1 -0
- package/dist/plugins/snapshots.cjs +1 -0
- package/dist/plugins/snapshots.d.cts +1 -0
- package/dist/plugins/snapshots.d.ts +1 -0
- package/dist/plugins/snapshots.development.cjs +1 -0
- package/dist/plugins/snapshots.development.js +737 -0
- package/dist/plugins/snapshots.js +737 -0
- package/dist/plugins/solid/index.d.cts +8 -0
- package/dist/plugins/solid/index.d.ts +8 -0
- package/dist/plugins/solid/index.d.ts.map +1 -0
- package/dist/plugins/solid/solid.d.cts +97 -0
- package/dist/plugins/solid/solid.d.ts +97 -0
- package/dist/plugins/solid/solid.d.ts.map +1 -0
- package/dist/plugins/solid.cjs +1 -0
- package/dist/plugins/solid.d.cts +1 -0
- package/dist/plugins/solid.d.ts +1 -0
- package/dist/plugins/solid.development.cjs +1 -0
- package/dist/plugins/solid.development.js +319 -0
- package/dist/plugins/solid.js +319 -0
- package/dist/plugins/workers/index.d.cts +75 -0
- package/dist/plugins/workers/index.d.ts +75 -0
- package/dist/plugins/workers/index.d.ts.map +1 -0
- package/dist/plugins/workers/node_threads.d.cts +25 -0
- package/dist/plugins/workers/node_threads.d.ts +25 -0
- package/dist/plugins/workers/node_threads.d.ts.map +1 -0
- package/dist/plugins/workers/plan.d.cts +61 -0
- package/dist/plugins/workers/plan.d.ts +61 -0
- package/dist/plugins/workers/plan.d.ts.map +1 -0
- package/dist/plugins/workers/pool.d.cts +144 -0
- package/dist/plugins/workers/pool.d.ts +144 -0
- package/dist/plugins/workers/pool.d.ts.map +1 -0
- package/dist/plugins/workers/protocol.d.cts +112 -0
- package/dist/plugins/workers/protocol.d.ts +112 -0
- package/dist/plugins/workers/protocol.d.ts.map +1 -0
- package/dist/plugins/workers/worker_bind.d.cts +64 -0
- package/dist/plugins/workers/worker_bind.d.ts +64 -0
- package/dist/plugins/workers/worker_bind.d.ts.map +1 -0
- package/dist/plugins/workers/worker_loop.d.cts +14 -0
- package/dist/plugins/workers/worker_loop.d.ts +14 -0
- package/dist/plugins/workers/worker_loop.d.ts.map +1 -0
- package/dist/plugins/workers.cjs +1 -0
- package/dist/plugins/workers.d.cts +1 -0
- package/dist/plugins/workers.d.ts +1 -0
- package/dist/plugins/workers.development.cjs +1 -0
- package/dist/plugins/workers.development.js +596 -0
- package/dist/plugins/workers.js +474 -0
- package/dist/primitives.cjs +1 -1
- package/dist/primitives.d.cts +4 -4
- package/dist/primitives.d.ts +4 -4
- package/dist/primitives.development.cjs +1 -1
- package/dist/primitives.development.js +66 -22
- package/dist/primitives.js +66 -22
- package/dist/shared-BKl12xF1.js +132 -0
- package/dist/shared-Dk-pACZT.cjs +1 -0
- package/dist/shared.cjs +1 -1
- package/dist/shared.d.cts +7 -7
- package/dist/shared.d.ts +7 -7
- package/dist/shared.d.ts.map +1 -1
- package/dist/shared.development.cjs +1 -1
- package/dist/shared.development.js +4 -3
- package/dist/shared.js +4 -3
- package/dist/topological_sort-Cc_yXqPT.js +346 -0
- package/dist/topological_sort-vp1imU6D.cjs +1 -0
- package/dist/type_primitives/assertions.d.cts +12 -16
- package/dist/type_primitives/assertions.d.ts +12 -16
- package/dist/type_primitives/assertions.d.ts.map +1 -1
- package/dist/type_primitives/binary_heap/binary_heap.d.cts +2 -6
- package/dist/type_primitives/binary_heap/binary_heap.d.ts +2 -6
- package/dist/type_primitives/binary_heap/binary_heap.d.ts.map +1 -1
- package/dist/type_primitives/bitset/bitset.d.cts +7 -11
- package/dist/type_primitives/bitset/bitset.d.ts +7 -11
- package/dist/type_primitives/bitset/bitset.d.ts.map +1 -1
- package/dist/type_primitives/brand.d.cts +2 -7
- package/dist/type_primitives/brand.d.ts +2 -7
- package/dist/type_primitives/brand.d.ts.map +1 -1
- package/dist/type_primitives/error.d.cts +1 -2
- package/dist/type_primitives/error.d.ts +1 -2
- package/dist/type_primitives/error.d.ts.map +1 -1
- package/dist/type_primitives/index.d.cts +1 -1
- package/dist/type_primitives/index.d.ts +1 -1
- package/dist/type_primitives/sparse_map/sparse_map.d.cts +3 -7
- package/dist/type_primitives/sparse_map/sparse_map.d.ts +3 -7
- package/dist/type_primitives/sparse_map/sparse_map.d.ts.map +1 -1
- package/dist/type_primitives/sparse_set/sparse_set.d.cts +2 -6
- package/dist/type_primitives/sparse_set/sparse_set.d.ts +2 -6
- package/dist/type_primitives/sparse_set/sparse_set.d.ts.map +1 -1
- package/dist/type_primitives/topological_sort/topological_sort.d.cts +1 -5
- package/dist/type_primitives/topological_sort/topological_sort.d.ts +1 -5
- package/dist/type_primitives/topological_sort/topological_sort.d.ts.map +1 -1
- package/dist/type_primitives/typed_arrays/typed_arrays.d.cts +18 -17
- package/dist/type_primitives/typed_arrays/typed_arrays.d.ts +18 -17
- package/dist/type_primitives/typed_arrays/typed_arrays.d.ts.map +1 -1
- package/dist/utils/error.d.ts.map +1 -1
- package/dist/version.d.cts +4 -4
- package/dist/version.d.ts +4 -4
- package/dist/worker.cjs +1 -0
- package/dist/worker.d.cts +17 -0
- package/dist/worker.d.ts +17 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.development.cjs +1 -0
- package/dist/worker.development.js +253 -0
- package/dist/worker.js +253 -0
- package/package.json +363 -191
- package/dist/core/ecs/builtin_relations.d.cts +0 -43
- package/dist/core/ecs/builtin_relations.d.ts +0 -43
- package/dist/core/ecs/builtin_relations.d.ts.map +0 -1
- package/dist/core/ecs/event_registry.d.cts +0 -22
- package/dist/core/ecs/event_registry.d.ts +0 -22
- package/dist/core/ecs/event_registry.d.ts.map +0 -1
- package/dist/core/ecs/relation_service.d.ts.map +0 -1
- package/dist/core/ecs/resume.d.cts +0 -85
- package/dist/core/ecs/resume.d.ts +0 -85
- package/dist/core/ecs/resume.d.ts.map +0 -1
- package/dist/core/ecs/snapshot_service.d.cts +0 -94
- package/dist/core/ecs/snapshot_service.d.ts +0 -94
- package/dist/core/ecs/snapshot_service.d.ts.map +0 -1
- package/dist/extensions/editor/editor.d.ts.map +0 -1
- package/dist/extensions/editor/field_handle.d.ts.map +0 -1
- package/dist/extensions/editor/index.cjs +0 -1
- package/dist/extensions/editor/index.d.cts +0 -21
- package/dist/extensions/editor/index.d.ts +0 -21
- package/dist/extensions/editor/index.d.ts.map +0 -1
- package/dist/extensions/editor/index.development.cjs +0 -1
- package/dist/extensions/reactive/ecs_sync.d.cts +0 -214
- package/dist/extensions/reactive/ecs_sync.d.ts +0 -214
- package/dist/extensions/reactive/ecs_sync.d.ts.map +0 -1
- package/dist/extensions/reactive/index.cjs +0 -1
- package/dist/extensions/reactive/index.d.cts +0 -23
- package/dist/extensions/reactive/index.d.ts +0 -23
- package/dist/extensions/reactive/index.d.ts.map +0 -1
- package/dist/extensions/reactive/index.development.cjs +0 -1
- package/dist/extensions/reactive/index.development.js +0 -215
- package/dist/extensions/reactive/index.js +0 -215
- package/dist/extensions/solid/index.cjs +0 -1
- package/dist/extensions/solid/index.d.cts +0 -6
- package/dist/extensions/solid/index.d.ts +0 -6
- package/dist/extensions/solid/index.d.ts.map +0 -1
- package/dist/extensions/solid/index.development.cjs +0 -1
- package/dist/extensions/solid/index.development.js +0 -40
- package/dist/extensions/solid/index.js +0 -36
- package/dist/extensions/solid/kernel_solid.d.cts +0 -45
- package/dist/extensions/solid/kernel_solid.d.ts +0 -45
- package/dist/extensions/solid/kernel_solid.d.ts.map +0 -1
- package/dist/host_commands-3jyFfWNg.js +0 -2326
- package/dist/host_commands-DNf0f6ko.cjs +0 -1
- package/dist/internal-C9jjL90H.js +0 -2485
- package/dist/internal-RZN14uMw.cjs +0 -2
- package/dist/interop-CT-REx0W.cjs +0 -1
- package/dist/interop-CcY6ASQc.js +0 -18
- package/dist/interop-DqxleBo7.js +0 -18
- package/dist/interop-T1HZ-Dpa.cjs +0 -1
- package/dist/kernel-Cz2Kxlwl.js +0 -240
- package/dist/kernel-DgyrLFjW.js +0 -227
- package/dist/kernel-sw7ScKWu.cjs +0 -1
- package/dist/kernel-yWV3XnAb.cjs +0 -1
- package/dist/reactive/array.d.cts +0 -24
- package/dist/reactive/array.d.ts +0 -24
- package/dist/reactive/array.d.ts.map +0 -1
- package/dist/reactive/index.cjs +0 -1
- package/dist/reactive/index.d.cts +0 -11
- package/dist/reactive/index.d.ts +0 -11
- package/dist/reactive/index.d.ts.map +0 -1
- package/dist/reactive/index.development.cjs +0 -1
- package/dist/reactive/index.development.js +0 -18
- package/dist/reactive/index.js +0 -18
- package/dist/reactive/interop.d.cts +0 -19
- package/dist/reactive/interop.d.ts +0 -19
- package/dist/reactive/interop.d.ts.map +0 -1
- package/dist/reactive/kernel.d.cts +0 -73
- package/dist/reactive/kernel.d.ts +0 -73
- package/dist/reactive/kernel.d.ts.map +0 -1
- package/dist/reactive/map.d.cts +0 -16
- package/dist/reactive/map.d.ts +0 -16
- package/dist/reactive/map.d.ts.map +0 -1
- package/dist/reactive/shallow.d.cts +0 -11
- package/dist/reactive/shallow.d.ts +0 -11
- package/dist/reactive/shallow.d.ts.map +0 -1
- package/dist/reactive/struct.d.cts +0 -10
- package/dist/reactive/struct.d.ts +0 -10
- package/dist/reactive/struct.d.ts.map +0 -1
- package/dist/shallow-9S1pY_Iw.js +0 -159
- package/dist/shallow-C5YmTbtb.cjs +0 -1
- package/dist/shallow-DQ8aG51_.cjs +0 -1
- package/dist/shallow-DfnAm9vG.js +0 -150
- package/dist/shared-BMXh9hxm.cjs +0 -1
- package/dist/shared-DQKK0i-E.js +0 -109
- package/dist/topological_sort-BDvEyb9W.cjs +0 -1
- package/dist/topological_sort-DK6EjpWa.js +0 -135
- package/dist/typed_arrays-BcXcnzB4.js +0 -258
- package/dist/typed_arrays-D3NmwtCG.cjs +0 -1
|
@@ -5,14 +5,14 @@ import { COMMAND_RING_DEFAULT_CAPACITY_SLOTS } from './command_ring.cjs';
|
|
|
5
5
|
import { ENTITY_INDEX_DEFAULT_CAPACITY } from './entity_index.cjs';
|
|
6
6
|
import { EVENT_RING_DEFAULT_CAPACITY_SLOTS } from './event_ring.cjs';
|
|
7
7
|
import { StoreRegionSpec } from './region_table.cjs';
|
|
8
|
-
/** Caller-facing column spec
|
|
8
|
+
/** Caller-facing column spec, no `byte_off` yet, the store computes it. */
|
|
9
9
|
export interface ColumnSpec {
|
|
10
10
|
readonly componentId: number;
|
|
11
11
|
readonly fieldId: number;
|
|
12
12
|
readonly typeTag: TypeTagValue;
|
|
13
13
|
}
|
|
14
|
-
/** Caller-facing archetype spec
|
|
15
|
-
* `byte_off`s in the columns
|
|
14
|
+
/** Caller-facing archetype spec, no `column_count` (derived) and no
|
|
15
|
+
* `byte_off`s in the columns. Both are computed during sizing. */
|
|
16
16
|
export interface ArchetypeSpec {
|
|
17
17
|
readonly archetypeId: number;
|
|
18
18
|
/** Component bitmask, `COMPONENT_MASK_WORDS` little-endian u32 words. */
|
|
@@ -20,9 +20,10 @@ export interface ArchetypeSpec {
|
|
|
20
20
|
readonly rowCapacity: number;
|
|
21
21
|
readonly columns: readonly ColumnSpec[];
|
|
22
22
|
}
|
|
23
|
-
/** A single column's view after allocation.
|
|
24
|
-
*
|
|
25
|
-
* right element type, length `row_capacity`,
|
|
23
|
+
/** A single column's view after allocation. `byteOff` matches what the layout
|
|
24
|
+
* descriptor records, so it is measured from the store base. `view` is a
|
|
25
|
+
* TypedArray of the right element type, length `row_capacity`, and its
|
|
26
|
+
* `byteOffset` is `storeBase + byteOff`. */
|
|
26
27
|
export interface ColumnView {
|
|
27
28
|
readonly componentId: number;
|
|
28
29
|
readonly fieldId: number;
|
|
@@ -35,7 +36,7 @@ export interface ColumnView {
|
|
|
35
36
|
* key encoding `(component_id, field_id)` so a (cid, fid) pair maps to
|
|
36
37
|
* its column in O(1). The encoding (see `columnKey`) is dense over
|
|
37
38
|
* (cid: 0..65535, fid: 0..65535), letting V8 keep this as a
|
|
38
|
-
* Number-keyed `Map
|
|
39
|
+
* Number-keyed `Map`, meaningfully faster than the previous string
|
|
39
40
|
* keys (no per-lookup template-string allocation, no string hashing).
|
|
40
41
|
* The row order matches `ArchetypeSpec.columns`. The
|
|
41
42
|
* `component_mask` words mirror what's in the SAB layout descriptor so
|
|
@@ -51,13 +52,20 @@ export interface ArchetypeViews {
|
|
|
51
52
|
}
|
|
52
53
|
export interface ColumnStore {
|
|
53
54
|
/** The backing buffer. `ArrayBufferLike` because the store is backing-agnostic:
|
|
54
|
-
* a `SharedArrayBuffer` for the SAB
|
|
55
|
-
* `ArrayBuffer` for the pure-TS heap profile (`
|
|
56
|
-
*
|
|
57
|
-
*
|
|
55
|
+
* a `SharedArrayBuffer` for the SAB, WASM and worker profile, or a plain fixed
|
|
56
|
+
* `ArrayBuffer` for the pure-TS heap profile (`heapArrayBufferAllocator`).
|
|
57
|
+
* A consumer that genuinely requires sharing (worker transfer, WASM memory)
|
|
58
|
+
* narrows back to `SharedArrayBuffer` at its own boundary. */
|
|
58
59
|
readonly buffer: ArrayBufferLike;
|
|
60
|
+
/** A `DataView` whose start is the store base, so every relative offset the
|
|
61
|
+
* header and the descriptors carry indexes it directly. */
|
|
59
62
|
readonly view: DataView;
|
|
60
63
|
readonly header: StoreHeader;
|
|
64
|
+
/** Byte offset of the header inside `buffer`. Every other offset in the
|
|
65
|
+
* store is relative to this. The store writes only inside
|
|
66
|
+
* `[storeBase, storeBase + header.capacity)`, which is what lets a WASM
|
|
67
|
+
* module own the bytes below the base. */
|
|
68
|
+
readonly storeBase: number;
|
|
61
69
|
/** Indexed by `archetype_id`. */
|
|
62
70
|
readonly archetypes: ReadonlyMap<number, ArchetypeViews>;
|
|
63
71
|
}
|
|
@@ -82,46 +90,46 @@ export declare function columnKey(componentId: number, fieldId: number): number;
|
|
|
82
90
|
* their operands to **signed** 32-bit integers (`ToInt32`). Once an offset
|
|
83
91
|
* reaches 2³¹ the result wraps to a negative number (or, for some inputs, a
|
|
84
92
|
* misaligned positive one), which then flows straight into
|
|
85
|
-
* `new Uint8Array(buffer, byte_off, …)
|
|
93
|
+
* `new Uint8Array(buffer, byte_off, …)`, either a thrown `RangeError` deep in
|
|
86
94
|
* the TypedArray ctor or, worse, a silently wrong view overlapping another
|
|
87
95
|
* column. The 256 MiB default allocator cap (`growableSabAllocator`) keeps
|
|
88
|
-
* real
|
|
89
|
-
* and callers are invited to raise it for bigger worlds
|
|
96
|
+
* a real world far below this, but the cap is tunable
|
|
97
|
+
* and callers are invited to raise it for bigger worlds, so the layout step
|
|
90
98
|
* guards the hard 2³¹ ceiling explicitly rather than relying on the policy
|
|
91
|
-
* cap to stay in front of it
|
|
99
|
+
* cap to stay in front of it. */
|
|
92
100
|
export declare const STORE_MAX_BYTE_OFFSET: number;
|
|
93
101
|
/** Thrown when a SAB column layout would place an offset at or beyond
|
|
94
102
|
* {@link STORE_MAX_BYTE_OFFSET} (2³¹), past which the signed-32-bit bitwise
|
|
95
103
|
* `alignUp` can no longer produce correct offsets. This is a hard ceiling,
|
|
96
|
-
* not the (tunable, much lower) 256 MiB allocator cap
|
|
104
|
+
* not the (tunable, much lower) 256 MiB allocator cap. */
|
|
97
105
|
export declare class StoreLayoutOverflowError extends Error {
|
|
98
106
|
constructor(byteOff: number);
|
|
99
107
|
}
|
|
100
108
|
/** Round `off` up to the next multiple of `align`. `align` must be a power
|
|
101
|
-
* of two (1
|
|
109
|
+
* of two (1, 2, 4 or 8 here, all `TYPE_TAG_STRIDE` values).
|
|
102
110
|
*
|
|
103
111
|
* Throws {@link StoreLayoutOverflowError} when the rounded offset would reach
|
|
104
112
|
* {@link STORE_MAX_BYTE_OFFSET}, because the `& ~(align-1)` step coerces to a
|
|
105
|
-
* signed 32-bit int and wraps past 2
|
|
113
|
+
* signed 32-bit int and wraps past 2³¹. The guard fires before the
|
|
106
114
|
* bitwise op so any returned offset is always a correct, in-range value.
|
|
107
115
|
* Shared by `extend.ts` and `grow.ts`, whose in-place paths compute tail
|
|
108
116
|
* byte_offs without going through `planLayout`. */
|
|
109
117
|
export declare function alignUp(off: number, align: number): number;
|
|
110
118
|
/** Build the layout-descriptor-region descriptors (with `byte_off` and
|
|
111
|
-
* `stride` filled in) and return both them and the byte offset
|
|
112
|
-
* the last column
|
|
119
|
+
* `stride` filled in) and return both them and the byte offset immediately past
|
|
120
|
+
* the last column, i.e. the total SAB size.
|
|
113
121
|
*
|
|
114
|
-
* `headroomBytes` reserves slack at the end of the descriptor region
|
|
115
|
-
*
|
|
122
|
+
* `headroomBytes` reserves slack at the end of the descriptor region. On
|
|
123
|
+
* top of the natural size for `specs`, so future extends can append new
|
|
116
124
|
* descriptor entries without shifting existing column byte_offs. Used by
|
|
117
|
-
* the growable-SAB path
|
|
125
|
+
* the growable-SAB path, column views stay valid across
|
|
118
126
|
* `extendColumnStore` because their byte_offs don't move.
|
|
119
127
|
*
|
|
120
|
-
* Additive, not a floor
|
|
128
|
+
* Additive, not a floor: `regionSize = natural + headroom`, not
|
|
121
129
|
* `max(natural, headroom)`. A floor only yields slack while `natural` is
|
|
122
|
-
* below it
|
|
130
|
+
* below it. The moment the descriptor region outgrows the floor (the
|
|
123
131
|
* headroom exhausts and a realloc re-plans the merged spec set), a floor
|
|
124
|
-
* would size the region to exactly `natural
|
|
132
|
+
* would size the region to exactly `natural`, zero slack, and every
|
|
125
133
|
* subsequent extend would take the slow realloc path forever after. The
|
|
126
134
|
* additive form re-creates the same `headroom` margin on every realloc.
|
|
127
135
|
* For the engine's empty-seed store (`createColumnStore([], …)`, where
|
|
@@ -132,17 +140,17 @@ declare function planLayout(specs: readonly ArchetypeSpec[], regionOff: number,
|
|
|
132
140
|
totalBytes: number;
|
|
133
141
|
regionBytes: number;
|
|
134
142
|
};
|
|
135
|
-
/** Exported for the layout tests' overflow-guard coverage
|
|
143
|
+
/** Exported for the layout tests' overflow-guard coverage. The in-place
|
|
136
144
|
* resize paths use `layoutColumnsAtTail` (layout_ops.ts), not this. */
|
|
137
145
|
export { planLayout };
|
|
138
146
|
/** Optional configuration for `createColumnStore`. */
|
|
139
147
|
export interface CreateColumnStoreOptions {
|
|
140
148
|
/** Extra slack to reserve at the end of the layout descriptor region,
|
|
141
|
-
*
|
|
149
|
+
* on top of the natural size for `specs` (additive, not a floor).
|
|
142
150
|
* The descriptor region is padded with this many unused bytes so future
|
|
143
151
|
* `extendColumnStore` calls can append new archetype descriptors into the
|
|
144
152
|
* slack without shifting existing column byte_offs. Pairs with
|
|
145
|
-
* `growableSabAllocator` to give the
|
|
153
|
+
* `growableSabAllocator` to give the in-place fast path: existing
|
|
146
154
|
* TypedArray column views stay valid across extends because their offsets
|
|
147
155
|
* and the underlying buffer both stay put.
|
|
148
156
|
*
|
|
@@ -150,78 +158,98 @@ export interface CreateColumnStoreOptions {
|
|
|
150
158
|
* value lives on `ColumnStoreInternal._reservedDescriptorBytes` and
|
|
151
159
|
* `optionsFromOld` re-applies it, so a store that exhausts its headroom
|
|
152
160
|
* and reallocs gets a fresh margin rather than dropping to zero slack and
|
|
153
|
-
* going permanently slow
|
|
161
|
+
* going permanently slow. */
|
|
154
162
|
readonly reservedDescriptorBytes?: number;
|
|
155
|
-
/** When provided, allocates a command ring
|
|
156
|
-
* the SAB at a stable offset right after the
|
|
157
|
-
* count
|
|
158
|
-
* (256) is the canonical value. Omitted ⇒ no ring
|
|
159
|
-
* stays at 0 ("absent")
|
|
160
|
-
*
|
|
163
|
+
/** When provided, allocates a command ring inside
|
|
164
|
+
* the SAB at a stable offset right after the `STORE_HEADER_BYTES` header.
|
|
165
|
+
* Slot count must be a power of two. `COMMAND_RING_DEFAULT_CAPACITY_SLOTS`
|
|
166
|
+
* (256) is the canonical value. Omitted ⇒ no ring. `command_ring_off`
|
|
167
|
+
* stays at 0 ("absent"). An existing test fixture with a hand-rolled SAB
|
|
168
|
+
* sees the legacy layout, with the descriptor region right after the header.
|
|
161
169
|
*
|
|
162
|
-
* Sizing the ring this way
|
|
163
|
-
* keeps `command_ring_off` stable across `extendColumnStore`
|
|
164
|
-
* `growColumnStore`
|
|
170
|
+
* Sizing the ring this way, between header and descriptor region,
|
|
171
|
+
* keeps `command_ring_off` stable across an `extendColumnStore` or
|
|
172
|
+
* `growColumnStore` call, since those grow the descriptor region and
|
|
165
173
|
* the column tail but never the bytes between header and descriptor. */
|
|
166
174
|
readonly commandRingCapacitySlots?: number;
|
|
167
|
-
/** When provided, allocates the entity-index region
|
|
168
|
-
*
|
|
175
|
+
/** When provided, allocates the entity-index region inside the SAB at a
|
|
176
|
+
* stable offset between the command ring
|
|
169
177
|
* (or header) and the descriptor region. Holds `(generations,
|
|
170
|
-
* archetypes, rows)` triples indexed by entity slot
|
|
171
|
-
* `Store` populates them as entities are created
|
|
172
|
-
* and
|
|
173
|
-
* a callback. Capacity is in *slots* (entities), not bytes
|
|
174
|
-
* slot is 12 bytes. Omitted ⇒ no region
|
|
178
|
+
* archetypes, rows)` triples indexed by entity slot. The engine's
|
|
179
|
+
* `Store` populates them as entities are created, moved and destroyed,
|
|
180
|
+
* and a compute backend reads them to resolve cross-entity targets without
|
|
181
|
+
* a callback. Capacity is in *slots* (entities), not bytes. Each
|
|
182
|
+
* slot is 12 bytes. Omitted ⇒ no region. `entity_index_off` stays
|
|
175
183
|
* at 0 ("absent"). The engine's Store always sets it to
|
|
176
|
-
* `ENTITY_INDEX_DEFAULT_CAPACITY
|
|
184
|
+
* `ENTITY_INDEX_DEFAULT_CAPACITY`. Bare-SAB tests can leave it
|
|
177
185
|
* absent. */
|
|
178
186
|
readonly entityIndexCapacity?: number;
|
|
179
|
-
/** When provided, allocates the event ring
|
|
187
|
+
/** When provided, allocates the event ring
|
|
180
188
|
* inside the SAB at a stable offset between the entity-index region
|
|
181
|
-
* and the descriptor region.
|
|
182
|
-
* carries ECS signal payloads so
|
|
183
|
-
* them during
|
|
189
|
+
* and the descriptor region. It has the same SPSC shape as the command
|
|
190
|
+
* ring. It carries ECS signal payloads, so a module's systems emit and
|
|
191
|
+
* consume them during a tick without callbacks into TS.
|
|
184
192
|
*
|
|
185
|
-
* Slot count
|
|
186
|
-
* (256) is the canonical value. Omitted ⇒ no ring
|
|
187
|
-
* stays at 0 ("absent")
|
|
188
|
-
*
|
|
193
|
+
* Slot count must be a power of two. `EVENT_RING_DEFAULT_CAPACITY_SLOTS`
|
|
194
|
+
* (256) is the canonical value. Omitted ⇒ no ring. `event_ring_off`
|
|
195
|
+
* stays at 0 ("absent"). An existing test fixture with a hand-rolled
|
|
196
|
+
* SAB sees the layout without it. */
|
|
189
197
|
readonly eventRingCapacitySlots?: number;
|
|
190
|
-
/** When provided, allocates the action ring
|
|
191
|
-
* inside the SAB at a stable offset between the entity-index
|
|
192
|
-
* and the region-table directory.
|
|
193
|
-
* the
|
|
198
|
+
/** When provided, allocates the action ring
|
|
199
|
+
* inside the SAB at a stable offset between the entity-index and event-ring
|
|
200
|
+
* and the region-table directory. The main thread writes encoded actions to
|
|
201
|
+
* it, and the worker drains them on each apply.
|
|
194
202
|
*
|
|
195
|
-
* Slot count
|
|
196
|
-
* (256) is the canonical value. Omitted ⇒ no ring
|
|
197
|
-
* stays at 0 ("absent")
|
|
198
|
-
* `Store` allocates one always-on
|
|
203
|
+
* Slot count must be a power of two. `ACTION_RING_DEFAULT_CAPACITY_SLOTS`
|
|
204
|
+
* (256) is the canonical value. Omitted ⇒ no ring. `action_ring_off`
|
|
205
|
+
* stays at 0 ("absent"). A bare-SAB test skips it. (Engine mechanism, the
|
|
206
|
+
* `Store` allocates one always-on. It is no longer a public ECS option.) */
|
|
199
207
|
readonly actionRingCapacitySlots?: number;
|
|
200
|
-
/** Consumer-declared SAB regions
|
|
201
|
-
* opaque `region_id`, a precomputed byte size, and an `init` closure
|
|
208
|
+
/** Consumer-declared SAB regions. Each `StoreRegionSpec` carries an
|
|
209
|
+
* opaque `region_id`, a precomputed byte size, and an `init` closure. The
|
|
202
210
|
* engine lays them out after the mechanism regions, writes a generic
|
|
203
211
|
* region-table directory (`region_table.ts`) keyed by `region_id`, and
|
|
204
|
-
* snapshots
|
|
205
|
-
* interprets `region_id
|
|
206
|
-
*
|
|
212
|
+
* snapshots and restores them across a grow or extend. The engine never
|
|
213
|
+
* interprets `region_id`. The consumer that declared the region owns it.
|
|
214
|
+
* Omitted ⇒ no consumer regions. `region_table_off` stays 0. */
|
|
207
215
|
readonly regions?: readonly StoreRegionSpec[];
|
|
208
|
-
/** Byte size of the always-before-descriptor sim-bindings region
|
|
209
|
-
*
|
|
210
|
-
* its own
|
|
211
|
-
* the game's binding manifest. The engine treats the region as opaque bytes:
|
|
216
|
+
/** Byte size of the always-before-descriptor sim-bindings region. A consumer
|
|
217
|
+
* that opts into a WASM backend supplies its own size here, computed from
|
|
218
|
+
* its own binding manifest. The engine treats the region as opaque bytes:
|
|
212
219
|
* it reserves the block at `bindings_off` (right before the descriptor
|
|
213
|
-
* region, so the offset is stable across grow
|
|
214
|
-
* `(component_id, field_id)`
|
|
220
|
+
* region, so the offset is stable across grow and extend) and the host
|
|
221
|
+
* writes the `(component_id, field_id)` ids into it.
|
|
215
222
|
*
|
|
216
|
-
* Omitted
|
|
217
|
-
* default for a pure-TS
|
|
218
|
-
* to be
|
|
219
|
-
*
|
|
220
|
-
* the engine ABI golden. Re-derived across realloc by `optionsFromOld`
|
|
221
|
-
* (= `layout_descriptor_off - bindings_off`), so it survives grow
|
|
223
|
+
* Omitted or 0 ⇒ no bindings region (`bindings_off` stays 0, "absent"), the
|
|
224
|
+
* default for a pure-TS world that pays nothing for the WASM seam. This size
|
|
225
|
+
* used to be an engine-baked ABI constant reflected from the consumer's
|
|
226
|
+
* binding struct. It is now a runtime input, so a manifest edit no longer
|
|
227
|
+
* dirties the engine ABI golden. Re-derived across realloc by `optionsFromOld`
|
|
228
|
+
* (= `layout_descriptor_off - bindings_off`), so it survives grow and extend
|
|
222
229
|
* without a carried policy field. */
|
|
223
230
|
readonly bindingsRegionBytes?: number;
|
|
231
|
+
/** Byte offset inside the backing where the header goes. Default 0.
|
|
232
|
+
*
|
|
233
|
+
* Every offset the store writes is relative to this base, and the store
|
|
234
|
+
* writes only inside `[storeBase, storeBase + capacity)`. A WASM module owns
|
|
235
|
+
* the low addresses of its own linear memory, so a store mounted on that
|
|
236
|
+
* memory must stand above the module's data segment, its shadow stack and
|
|
237
|
+
* its heap base. A safe Zig or Rust build also traps on a read of address 0,
|
|
238
|
+
* so a module-hosted store cannot put the header there at all.
|
|
239
|
+
*
|
|
240
|
+
* Must be a non-negative integer and a multiple of
|
|
241
|
+
* `STORE_BASE_ALIGNMENT`, so every column keeps the alignment its type tag
|
|
242
|
+
* needs. */
|
|
243
|
+
readonly storeBase?: number;
|
|
224
244
|
}
|
|
245
|
+
/** Every store base must be a multiple of this. The widest column element is 8
|
|
246
|
+
* bytes, and the entity index wants 16, so 16 keeps both aligned whatever the
|
|
247
|
+
* base is. */
|
|
248
|
+
export declare const STORE_BASE_ALIGNMENT = 16;
|
|
249
|
+
/** Reject a base the layout math cannot honour. Cold path, one call per store
|
|
250
|
+
* creation. `resolveECSMemory` rejects the same values earlier with an
|
|
251
|
+
* `ECS_ERROR` code, so a world never reaches this. A direct store caller does. */
|
|
252
|
+
export declare function assertStoreBase(storeBase: number): void;
|
|
225
253
|
/** Internal `ColumnStore` extension carrying the descriptor-region byte
|
|
226
254
|
* size. Used by the in-place extend path to know where the next
|
|
227
255
|
* descriptor entry should be written (= `regionOff + region_bytes_used`,
|
|
@@ -230,44 +258,54 @@ export interface ColumnStoreInternal extends ColumnStore {
|
|
|
230
258
|
readonly _regionBytes: number;
|
|
231
259
|
readonly _allocator: BufferAllocator;
|
|
232
260
|
/** The `reservedDescriptorBytes` policy this store was created with
|
|
233
|
-
* (the additive descriptor-region headroom margin
|
|
234
|
-
* with the store
|
|
261
|
+
* (the additive descriptor-region headroom margin, 0 when none). Carried
|
|
262
|
+
* with the store. Not re-derivable from the SAB bytes, since `_regionBytes`
|
|
235
263
|
* holds the absolute region size (natural + this), and once `natural`
|
|
236
264
|
* outgrows the margin the two are indistinguishable. The realloc slow path
|
|
237
265
|
* reads it via `optionsFromOld` and re-reserves the same margin, so a
|
|
238
|
-
* store that exhausts its headroom and reallocs keeps taking the
|
|
239
|
-
* in-place fast path instead of going permanently slow
|
|
266
|
+
* store that exhausts its headroom and reallocs keeps taking the
|
|
267
|
+
* in-place fast path instead of going permanently slow. The
|
|
240
268
|
* `*_in_place` paths carry it forward verbatim. */
|
|
241
269
|
readonly _reservedDescriptorBytes: number;
|
|
270
|
+
/** The descriptor-region bytes in use: the sum of `archetypeDescriptorBytes`
|
|
271
|
+
* over every archetype. The in-place extend reads it to find where the next
|
|
272
|
+
* descriptor goes and how much headroom remains. Cached here so an extend
|
|
273
|
+
* does not sum over every archetype each time, which made the cost of the
|
|
274
|
+
* N-th archetype grow with N. Absent on a record that predates the cache
|
|
275
|
+
* (a store from `growColumnStore`), and then summed one time on demand. */
|
|
276
|
+
readonly _usedDescriptorBytes?: number;
|
|
242
277
|
}
|
|
243
|
-
/**
|
|
278
|
+
/** The descriptor-region bytes that `archetypes` use. */
|
|
279
|
+
export declare function usedDescriptorBytes(archetypes: ReadonlyMap<number, ArchetypeViews>): number;
|
|
280
|
+
/** Typed recovery of `ColumnStoreInternal` from a public `ColumnStore`.
|
|
244
281
|
* Not every store is internal: `restoreColumnStore` deliberately returns a
|
|
245
282
|
* plain `{ buffer, view, header, archetypes }` (a snapshot carries no JS-side
|
|
246
|
-
* allocator or headroom policy), and grow
|
|
247
|
-
* the realloc slow path. This guard is the
|
|
248
|
-
* happens
|
|
283
|
+
* allocator or headroom policy), and grow and extend must send such a store down
|
|
284
|
+
* the realloc slow path. This guard is the one place that discrimination
|
|
285
|
+
* happens, grow and extend previously re-derived the internal type via
|
|
249
286
|
* structural `as`-casts at six sites. */
|
|
250
287
|
export declare function isColumnStoreInternal(store: ColumnStore): store is ColumnStoreInternal;
|
|
251
|
-
/** Allocate a
|
|
252
|
-
* and construct one TypedArray
|
|
288
|
+
/** Allocate a backing sized for `specs` plus `options.storeBase`, write the
|
|
289
|
+
* header and the layout descriptor at the base, and construct one TypedArray
|
|
290
|
+
* view per column.
|
|
253
291
|
*
|
|
254
292
|
* The returned `ColumnStore` is the source of truth for "where every column
|
|
255
|
-
* lives in
|
|
256
|
-
*
|
|
293
|
+
* lives". Offsets in the bytes are relative to the base. `view_stamp` is
|
|
294
|
+
* initialised to 0, and a grow bumps it. */
|
|
257
295
|
export declare function createColumnStore(specs: readonly ArchetypeSpec[], allocator?: BufferAllocator, options?: CreateColumnStoreOptions): ColumnStore;
|
|
258
|
-
/** Default command-ring slot count used by `
|
|
296
|
+
/** Default command-ring slot count used by `Store` when constructing
|
|
259
297
|
* its SAB. Re-exported here so the Store doesn't reach across modules. */
|
|
260
298
|
export { COMMAND_RING_DEFAULT_CAPACITY_SLOTS };
|
|
261
|
-
/** Default entity-index capacity used by `
|
|
299
|
+
/** Default entity-index capacity used by `Store` when constructing
|
|
262
300
|
* its SAB. Re-exported alongside `COMMAND_RING_DEFAULT_CAPACITY_SLOTS`. */
|
|
263
301
|
export { ENTITY_INDEX_DEFAULT_CAPACITY };
|
|
264
|
-
/** Default event-ring slot count used by `
|
|
302
|
+
/** Default event-ring slot count used by `Store` when constructing
|
|
265
303
|
* its SAB. Re-exported alongside the other defaults. */
|
|
266
304
|
export { EVENT_RING_DEFAULT_CAPACITY_SLOTS };
|
|
267
|
-
/** Build the `ArchetypeViews` map from a
|
|
268
|
-
* Shared by `createColumnStore` (fresh allocation, byte_offs
|
|
305
|
+
/** Build the `ArchetypeViews` map from a backing and its parsed descriptors.
|
|
306
|
+
* Shared by `createColumnStore` (fresh allocation, byte_offs only computed)
|
|
269
307
|
* and `restoreColumnStore` (existing allocation, byte_offs read out of the
|
|
270
|
-
* snapshot). Either way
|
|
271
|
-
*
|
|
272
|
-
export declare function
|
|
308
|
+
* snapshot). Either way each view lands at `storeBase` plus the descriptor's
|
|
309
|
+
* `byte_off`. This helper does not plan layout. */
|
|
310
|
+
export declare function createArchetypeViews(buffer: ArrayBufferLike, storeBase: number, descriptors: readonly ArchetypeDescriptor[]): Map<number, ArchetypeViews>;
|
|
273
311
|
//# sourceMappingURL=column_store.d.ts.map
|