@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
|
@@ -1,39 +1,56 @@
|
|
|
1
1
|
import { InPlaceBufferAllocator } from '../store/index.js';
|
|
2
|
-
/** Default
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
/** Default store base for the wasm backing, one WASM page. It clears nothing on
|
|
3
|
+
* its own. It is the smallest base that keeps the header off address 0, which a
|
|
4
|
+
* safe Zig or Rust build cannot read. A caller whose module reaches higher
|
|
5
|
+
* passes a base above that module's `__heap_base`. */
|
|
6
|
+
export declare const WASM_STORE_BASE_BYTES: number;
|
|
7
|
+
/**
|
|
8
|
+
* A store base that clears a module's own memory, read from the module.
|
|
9
|
+
*
|
|
10
|
+
* A compiled module owns the low addresses of its linear memory. Its data
|
|
11
|
+
* segment, its shadow stack and its heap all start there, and `__heap_base` is
|
|
12
|
+
* the first address above the segment and the stack. A store based below that
|
|
13
|
+
* overlaps the module. The loss is silent, because the region that lands under
|
|
14
|
+
* a module is the entity index and no digest folds it.
|
|
15
|
+
*
|
|
16
|
+
* `extraBytes` is the run-time heap the module allocates above `__heap_base`.
|
|
17
|
+
* Only the module can bound it, so the caller passes it. Pass the module's own
|
|
18
|
+
* peak, not a guess, because a store based inside the heap fails the same
|
|
19
|
+
* silent way.
|
|
20
|
+
*
|
|
21
|
+
* The result rounds up to a whole WASM page, so a grow of the module's memory
|
|
22
|
+
* never lands in the middle of the store's first page. Cold path, and a caller
|
|
23
|
+
* runs it once, between instantiation and `ECS.create`.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* const instance = await WebAssembly.instantiate(module, { env: { memory } });
|
|
27
|
+
* const ecs = ECS.create({
|
|
28
|
+
* memory: {
|
|
29
|
+
* backing: { wasm: { memory } },
|
|
30
|
+
* storeBase: storeBaseAbove(instance.exports, 4 * 1024 * 1024)
|
|
31
|
+
* }
|
|
32
|
+
* });
|
|
33
|
+
*/
|
|
34
|
+
export declare function storeBaseAbove(exports: Record<string, unknown>, extraBytes?: number): number;
|
|
35
|
+
/** Default byte ceiling of every backing, mirrors `growableSabAllocator`'s
|
|
36
|
+
* default (see its doc comment for the measured footprint analysis that makes
|
|
37
|
+
* 256 MiB structurally unreachable). */
|
|
5
38
|
export declare const DEFAULT_ECS_CAP_BYTES: number;
|
|
6
|
-
/** Headroom multiplier applied to
|
|
7
|
-
* doubling plus abandoned in-place holes bound worst-case footprint at
|
|
8
|
-
* live data (footprint analysis in `growableSabAllocator`'s doc). */
|
|
39
|
+
/** Headroom multiplier applied to an entity count's live column bytes: capacity
|
|
40
|
+
* doubling plus abandoned in-place holes bound the worst-case footprint at
|
|
41
|
+
* this multiple of the live data (footprint analysis in `growableSabAllocator`'s doc). */
|
|
9
42
|
export declare const BUDGET_GROWTH_HEADROOM = 3;
|
|
10
|
-
/** Default average fully-populated row stride assumed
|
|
11
|
-
*
|
|
43
|
+
/** Default average fully-populated row stride assumed when the caller gives an
|
|
44
|
+
* entity count. A workload with two components uses less than this for each
|
|
45
|
+
* row, thus 64 rounds up and gives headroom. */
|
|
12
46
|
export declare const BUDGET_DEFAULT_BYTES_PER_ENTITY = 64;
|
|
13
|
-
/** Default archetype spread assumed
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* (amortised) column doubling. */
|
|
47
|
+
/** Default archetype spread assumed when the caller doesn't declare one. Drives
|
|
48
|
+
* only the derived per-archetype column capacity, not correctness, an
|
|
49
|
+
* under-declared spread only means earlier (amortised) column doubling. */
|
|
17
50
|
export declare const BUDGET_DEFAULT_ARCHETYPES = 8;
|
|
18
|
-
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
export interface EntityBudget {
|
|
22
|
-
/** Expected peak live entities — the one number most callers know.
|
|
23
|
-
* Bounded by the EntityID 20-bit index space (1<<20). */
|
|
24
|
-
readonly entities: number;
|
|
25
|
-
/** Expected distinct archetypes the entities spread across.
|
|
26
|
-
* Default `BUDGET_DEFAULT_ARCHETYPES`. */
|
|
27
|
-
readonly archetypes?: number;
|
|
28
|
-
/** Average fully-populated row stride in bytes.
|
|
29
|
-
* Default `BUDGET_DEFAULT_BYTES_PER_ENTITY`. */
|
|
30
|
-
readonly bytesPerEntity?: number;
|
|
31
|
-
}
|
|
32
|
-
/** WASM-backed memory, first-class (#682). Either bring your own shared
|
|
33
|
-
* `WebAssembly.Memory` (the server match context does — its sim factory
|
|
34
|
-
* owns the memory), or declare page bounds and let the engine construct
|
|
35
|
-
* it — replacing the hand-wired incantation that previously lived only in
|
|
36
|
-
* `workbench/ecs/scripts/run-memory.ts`. */
|
|
51
|
+
/** WASM-backed memory. Either bring your own shared `WebAssembly.Memory`, which
|
|
52
|
+
* a consumer that instantiates the module itself already owns, or declare page
|
|
53
|
+
* bounds and let the engine construct it. */
|
|
37
54
|
export type WasmMemoryArm = {
|
|
38
55
|
readonly memory: WebAssembly.Memory;
|
|
39
56
|
readonly initialPages?: never;
|
|
@@ -43,126 +60,108 @@ export type WasmMemoryArm = {
|
|
|
43
60
|
readonly initialPages?: number;
|
|
44
61
|
readonly memory?: never;
|
|
45
62
|
};
|
|
46
|
-
/** Pure-TS **heap** backing (#643 / ADR-0018 §1B): a plain fixed (non-resizable)
|
|
47
|
-
* `ArrayBuffer` reserved at the cap up front, instead of a `SharedArrayBuffer`.
|
|
48
|
-
* Needs no cross-origin isolation (COOP/COEP) and is the intended default for
|
|
49
|
-
* embedders that can't set those headers (the oecs profile). Trade-off: no
|
|
50
|
-
* worker offload and no WASM compute backend — both require a transferable
|
|
51
|
-
* `SharedArrayBuffer`. An empty `{}` takes the default 256 MiB cap. */
|
|
52
|
-
export interface HeapMemoryArm {
|
|
53
|
-
/** Byte ceiling of the growable heap backing. Default
|
|
54
|
-
* `DEFAULT_ECS_CAP_BYTES` (256 MiB), same hard-ceiling semantics as the
|
|
55
|
-
* SAB backing (#380). */
|
|
56
|
-
readonly maxBytes?: number;
|
|
57
|
-
}
|
|
58
|
-
/** Opt-in **shared-memory** backing (`@oasys/oecs/shared`): a growable
|
|
59
|
-
* `SharedArrayBuffer` instead of a plain `ArrayBuffer`. Required for worker
|
|
60
|
-
* offload and a WASM compute backend, but needs cross-origin isolation
|
|
61
|
-
* (COOP/COEP) in browsers. Empty `{}` takes the default 256 MiB growable cap. */
|
|
62
|
-
export interface SharedMemoryArm {
|
|
63
|
-
/** Byte ceiling of the growable shared backing. Default
|
|
64
|
-
* `DEFAULT_ECS_CAP_BYTES` (256 MiB), hard-ceiling semantics (#380). */
|
|
65
|
-
readonly maxBytes?: number;
|
|
66
|
-
}
|
|
67
|
-
/** Pinnable on every arm: exact initial rows per archetype column. The
|
|
68
|
-
* budget arm derives one when unpinned; every other arm defaults to
|
|
69
|
-
* `DEFAULT_COLUMN_CAPACITY`. */
|
|
70
|
-
interface ColumnCapacityPin {
|
|
71
|
-
readonly columnCapacity?: number;
|
|
72
|
-
}
|
|
73
63
|
/**
|
|
74
|
-
*
|
|
75
|
-
* exactly one
|
|
76
|
-
*
|
|
77
|
-
*
|
|
64
|
+
* What backs the world's bytes. This is the only axis with real exclusivity: a
|
|
65
|
+
* world has exactly one buffer, so these genuinely cannot combine. Sizing is a
|
|
66
|
+
* separate field and combines with all of them.
|
|
67
|
+
*
|
|
68
|
+
* "heap" a plain fixed `ArrayBuffer` reserved at the cap. No
|
|
69
|
+
* cross-origin isolation needed, and the default. Trade-off: no
|
|
70
|
+
* worker offload and no WASM compute backend, because both need
|
|
71
|
+
* a transferable `SharedArrayBuffer`.
|
|
72
|
+
* "shared" a growable `SharedArrayBuffer` (`@oasys/oecs/shared`).
|
|
73
|
+
* Enables worker offload and a WASM compute backend, and needs
|
|
74
|
+
* COOP and COEP in a browser. See `growableSabAllocator`'s doc for
|
|
75
|
+
* the JavaScriptCore write cost this backing carries.
|
|
76
|
+
* { wasm } the buffer is a `WebAssembly.Memory`, zero-copy with a WASM
|
|
77
|
+
* `ComputeBackend`.
|
|
78
|
+
* { allocator } expert escape hatch. Typed `InPlaceBufferAllocator` so only
|
|
79
|
+
* allocators that statically declare `isInPlace: true` compile.
|
|
80
|
+
* Give `maxBytes` beside it to declare the ceiling, which the
|
|
81
|
+
* index derivation then respects.
|
|
78
82
|
*/
|
|
79
|
-
export type
|
|
80
|
-
readonly budget: EntityBudget;
|
|
81
|
-
readonly maxBytes?: never;
|
|
82
|
-
readonly wasm?: never;
|
|
83
|
-
readonly allocator?: never;
|
|
84
|
-
readonly heap?: never;
|
|
85
|
-
readonly shared?: never;
|
|
86
|
-
} & ColumnCapacityPin) | ({
|
|
87
|
-
readonly maxBytes: number;
|
|
88
|
-
readonly budget?: never;
|
|
89
|
-
readonly wasm?: never;
|
|
90
|
-
readonly allocator?: never;
|
|
91
|
-
readonly heap?: never;
|
|
92
|
-
readonly shared?: never;
|
|
93
|
-
} & ColumnCapacityPin) | ({
|
|
83
|
+
export type MemoryBacking = "heap" | "shared" | {
|
|
94
84
|
readonly wasm: WasmMemoryArm;
|
|
95
|
-
readonly budget?: never;
|
|
96
|
-
readonly maxBytes?: never;
|
|
97
85
|
readonly allocator?: never;
|
|
98
|
-
|
|
99
|
-
readonly shared?: never;
|
|
100
|
-
} & ColumnCapacityPin) | ({
|
|
101
|
-
readonly heap: HeapMemoryArm;
|
|
102
|
-
readonly budget?: never;
|
|
103
|
-
readonly maxBytes?: never;
|
|
104
|
-
readonly wasm?: never;
|
|
105
|
-
readonly allocator?: never;
|
|
106
|
-
readonly shared?: never;
|
|
107
|
-
} & ColumnCapacityPin) | ({
|
|
108
|
-
readonly shared: SharedMemoryArm;
|
|
109
|
-
readonly budget?: never;
|
|
110
|
-
readonly maxBytes?: never;
|
|
111
|
-
readonly wasm?: never;
|
|
112
|
-
readonly allocator?: never;
|
|
113
|
-
readonly heap?: never;
|
|
114
|
-
} & ColumnCapacityPin) | ({
|
|
115
|
-
/** Expert escape hatch. Typed `InPlaceBufferAllocator` so only
|
|
116
|
-
* allocators that statically declare `isInPlace: true` compile —
|
|
117
|
-
* the ADR-0008 boundary. `DEFAULT_SAB_ALLOCATOR` is rejected by the
|
|
118
|
-
* type system; non-in-place allocators stay snapshot/test-sizing
|
|
119
|
-
* utilities. */
|
|
86
|
+
} | {
|
|
120
87
|
readonly allocator: InPlaceBufferAllocator;
|
|
121
|
-
/** The allocator owns its real ceiling; this hint only labels
|
|
122
|
-
* diagnostics (cap errors, `memoryPlan.derivation`). */
|
|
123
|
-
readonly capBytesHint?: number;
|
|
124
|
-
readonly budget?: never;
|
|
125
|
-
readonly maxBytes?: never;
|
|
126
|
-
readonly wasm?: never;
|
|
127
|
-
readonly heap?: never;
|
|
128
|
-
readonly shared?: never;
|
|
129
|
-
} & ColumnCapacityPin) | ({
|
|
130
|
-
/** No sizing arm: default growable backing (256 MiB cap), with the
|
|
131
|
-
* column capacity optionally pinned — the minimal migration from the
|
|
132
|
-
* removed `initialCapacity` knob. */
|
|
133
|
-
readonly budget?: never;
|
|
134
|
-
readonly maxBytes?: never;
|
|
135
88
|
readonly wasm?: never;
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* How the world is sized and what backs it. Every field is optional and every
|
|
92
|
+
* combination is legal, the two axes do not police each other.
|
|
93
|
+
*
|
|
94
|
+
* Give `entities` when you know roughly how many the world holds. Give
|
|
95
|
+
* `maxBytes` when you know the ceiling instead. Give both when you know both:
|
|
96
|
+
* the count sizes the columns and the entity index, and the cap is yours.
|
|
97
|
+
*/
|
|
98
|
+
export interface ECSMemoryOptions {
|
|
99
|
+
/** Expected peak live entities, the one number most callers know. Sizes the
|
|
100
|
+
* column capacity, the entity-index reservation and (unless `maxBytes` says
|
|
101
|
+
* otherwise) the byte cap. Bounded by the EntityID 20-bit index space
|
|
102
|
+
* (1<<20). */
|
|
103
|
+
readonly entities?: number;
|
|
104
|
+
/** Expected distinct archetypes the entities spread across. Shapes the
|
|
105
|
+
* derived column capacity only. Needs `entities`. Default
|
|
106
|
+
* `BUDGET_DEFAULT_ARCHETYPES`. */
|
|
107
|
+
readonly archetypes?: number;
|
|
108
|
+
/** Average fully-populated row stride in bytes. Shapes the derived cap only.
|
|
109
|
+
* Needs `entities`. Default `BUDGET_DEFAULT_BYTES_PER_ENTITY`. */
|
|
110
|
+
readonly bytesPerEntity?: number;
|
|
111
|
+
/** Byte ceiling of the backing, with hard-ceiling semantics and no
|
|
112
|
+
* grow-beyond fallback. Wins over a cap derived from `entities`. For the
|
|
113
|
+
* allocator backing this is a declaration: the allocator owns the real
|
|
114
|
+
* ceiling, but the index derivation believes this number. Default
|
|
115
|
+
* `DEFAULT_ECS_CAP_BYTES` (256 MiB). */
|
|
116
|
+
readonly maxBytes?: number;
|
|
117
|
+
/** Exact initial rows per archetype column. Overrides the derived value. */
|
|
118
|
+
readonly columnCapacity?: number;
|
|
119
|
+
/** What holds the bytes. Default `"heap"`. */
|
|
120
|
+
readonly backing?: MemoryBacking;
|
|
121
|
+
/** Byte offset inside the backing where the store header goes. Every offset
|
|
122
|
+
* the store writes is relative to it, and the store writes only inside
|
|
123
|
+
* `[storeBase, storeBase + capacity)`.
|
|
124
|
+
*
|
|
125
|
+
* Default 0 for the heap, shared and allocator backings. Default
|
|
126
|
+
* `WASM_STORE_BASE_BYTES` for the wasm backing, because a module owns the
|
|
127
|
+
* low addresses of its own linear memory and a safe Zig or Rust build traps
|
|
128
|
+
* on a read of address 0. Raise it above the module's `__heap_base` plus
|
|
129
|
+
* whatever the module allocates at run time.
|
|
130
|
+
*
|
|
131
|
+
* Must be an integer >= 0 and a multiple of `STORE_BASE_ALIGNMENT`. */
|
|
132
|
+
readonly storeBase?: number;
|
|
133
|
+
}
|
|
140
134
|
/** What the caller's intent resolved to. Exposed as `ECS.memoryPlan` for
|
|
141
|
-
* diagnostics
|
|
142
|
-
*
|
|
135
|
+
* diagnostics. `intentLabel`, `budgetEntities` and `capBytes` also travel into
|
|
136
|
+
* `Store` so cap errors speak the caller's language. */
|
|
143
137
|
export interface ResolvedECSMemory {
|
|
144
|
-
|
|
138
|
+
/** Which backing holds the bytes, the axis-B answer. */
|
|
139
|
+
readonly source: "heap" | "shared" | "wasm" | "allocator";
|
|
140
|
+
/** Which sizing input drove the numbers, the axis-A answer. */
|
|
141
|
+
readonly sizing: "default" | "entities" | "maxBytes" | "entities+maxBytes";
|
|
145
142
|
readonly allocator: InPlaceBufferAllocator;
|
|
146
143
|
readonly columnCapacity: number;
|
|
147
144
|
readonly entityIndexCapacity: number;
|
|
148
145
|
/** Byte ceiling of the backing, `null` when unknowable from JS (a
|
|
149
|
-
* bring-your-own `WebAssembly.Memory` hides its `maximum
|
|
150
|
-
*
|
|
146
|
+
* bring-your-own `WebAssembly.Memory` hides its `maximum`. A custom allocator
|
|
147
|
+
* owns its own cap unless `maxBytes` declared one). */
|
|
151
148
|
readonly capBytes: number | null;
|
|
152
|
-
/** Human phrasing of the declared intent
|
|
153
|
-
*
|
|
149
|
+
/** Human phrasing of the declared intent, reused verbatim in cap errors so
|
|
150
|
+
* the failure names what the caller asked for. */
|
|
154
151
|
readonly intentLabel: string;
|
|
155
|
-
/** The declared entity
|
|
156
|
-
*
|
|
152
|
+
/** The declared entity count when one was given, drives the "N× the
|
|
153
|
+
* declared budget" cap-error diagnostic. */
|
|
157
154
|
readonly budgetEntities: number | null;
|
|
158
155
|
/** How each derived number was arrived at, one line per decision. */
|
|
159
156
|
readonly derivation: readonly string[];
|
|
160
|
-
/**
|
|
161
|
-
|
|
162
|
-
|
|
157
|
+
/** Byte offset of the store header inside the backing. */
|
|
158
|
+
readonly storeBase: number;
|
|
159
|
+
/** The backing `WebAssembly.Memory` when the wasm backing was used (both
|
|
160
|
+
* bring-your-own and engine-constructed), the consumer hands this to its
|
|
161
|
+
* WASM `ComputeBackend` so the module and the columns share bytes. */
|
|
163
162
|
readonly wasmMemory: WebAssembly.Memory | null;
|
|
164
163
|
}
|
|
165
|
-
/** Subset of the plan `Store` needs to phrase cap
|
|
164
|
+
/** Subset of the plan `Store` needs to phrase cap and overflow errors in the
|
|
166
165
|
* caller's terms. */
|
|
167
166
|
export interface ECSMemoryCapContext {
|
|
168
167
|
readonly capBytes: number | null;
|
|
@@ -170,10 +169,9 @@ export interface ECSMemoryCapContext {
|
|
|
170
169
|
readonly budgetEntities: number | null;
|
|
171
170
|
}
|
|
172
171
|
/**
|
|
173
|
-
* Turn a consumer's sizing intent into a concrete memory plan. Pure apart
|
|
174
|
-
*
|
|
175
|
-
*
|
|
172
|
+
* Turn a consumer's sizing intent into a concrete memory plan. Pure apart from
|
|
173
|
+
* allocator and Memory construction. Throws `INVALID_MEMORY_OPTIONS` on a malformed
|
|
174
|
+
* option set, at construction, not first-grow.
|
|
176
175
|
*/
|
|
177
176
|
export declare function resolveECSMemory(opts?: ECSMemoryOptions): ResolvedECSMemory;
|
|
178
|
-
export {};
|
|
179
177
|
//# sourceMappingURL=ecs_memory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecs_memory.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/ecs_memory.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ecs_memory.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/ecs_memory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAEH,OAAO,EAQN,KAAK,sBAAsB,EAC3B,MAAM,UAAU,CAAC;AAQlB;;;sDAGsD;AACtD,eAAO,MAAM,qBAAqB,QAAkB,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,SAAI,GAAG,MAAM,CA0BvF;AAED;;wCAEwC;AACxC,eAAO,MAAM,qBAAqB,QAAY,CAAC;AAE/C;;0FAE0F;AAC1F,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC;;gDAEgD;AAChD,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAElD;;2EAE2E;AAC3E,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAO3C;;6CAE6C;AAC7C,MAAM,MAAM,aAAa,GACtB;IACA,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC;CAC7B,GACD;IAAE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAE9F;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,aAAa,GACtB,MAAM,GACN,QAAQ,GACR;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAA;CAAE,GAC5D;IAAE,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAEzE;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAChC;;;kBAGc;IACd,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;sCAEkC;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;sEACkE;IAClE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC;;;;4CAIwC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,8CAA8C;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IACjC;;;;;;;;;;2EAUuE;IACvE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;wDAEwD;AACxD,MAAM,WAAW,iBAAiB;IACjC,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IAC1D,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,mBAAmB,CAAC;IAC3E,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC;IAC3C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC;;2DAEuD;IACvD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;sDACkD;IAClD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;gDAC4C;IAC5C,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,qEAAqE;IACrE,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;0EAEsE;IACtE,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC;CAC/C;AAED;qBACqB;AACrB,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC;AA6ED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,iBAAiB,CAoU3E"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { StoreRegionSpec } from '../store/index.cjs';
|
|
2
|
+
import { ECSMemoryOptions } from './ecs_memory.cjs';
|
|
3
|
+
/** Every key `ECSOptions` accepts, the constructor's dev-mode typo tripwire
|
|
4
|
+
* checks unknown keys against this (kept adjacent so additions stay in sync). */
|
|
5
|
+
export declare const ECS_OPTION_KEYS: ReadonlySet<string>;
|
|
6
|
+
export interface ECSOptions {
|
|
7
|
+
fixedTimestep?: number;
|
|
8
|
+
maxFixedSteps?: number;
|
|
9
|
+
/** Sink for dev-mode engine diagnostics (currently the schedule's
|
|
10
|
+
* dropped-ordering-edge warning). Defaults to `console.warn`. Mirrors the
|
|
11
|
+
* `FrameTraceSink` seam's injectable style, no global logger. */
|
|
12
|
+
onWarn?: (message: string) => void;
|
|
13
|
+
/** How the world's memory is sized and backed. Two independent axes, two
|
|
14
|
+
* independent fields, every combination of them is legal.
|
|
15
|
+
*
|
|
16
|
+
* How big: `entities` (with optional `archetypes` and `bytesPerEntity` to
|
|
17
|
+
* shape the derivation) or `maxBytes`, or both. Give both when you know
|
|
18
|
+
* both: the count sizes the columns and the entity index, the cap is yours.
|
|
19
|
+
*
|
|
20
|
+
* What backs it: `backing`, `"heap"` (default, a plain fixed ArrayBuffer),
|
|
21
|
+
* `"shared"` (a SharedArrayBuffer, for worker offload or a WASM backend),
|
|
22
|
+
* `{ wasm }` (the buffer is a WebAssembly.Memory) or `{ allocator }` (the
|
|
23
|
+
* expert escape hatch, in-place-typed).
|
|
24
|
+
*
|
|
25
|
+
* `columnCapacity` pins the rows per archetype column on any combination.
|
|
26
|
+
* Omitted ⇒ heap backing, a fixed 256 MiB reservation and 1024-row columns.
|
|
27
|
+
* The resolved plan is exposed as `ECS.memoryPlan`. */
|
|
28
|
+
memory?: ECSMemoryOptions;
|
|
29
|
+
/** Consumer-declared SAB regions, forwarded to `Store`. Each
|
|
30
|
+
* `StoreRegionSpec` carries an opaque `region_id`, a precomputed byte size,
|
|
31
|
+
* and an `init` closure. The engine lays them out generically and exposes
|
|
32
|
+
* them through `regionHandle(id)` and `regionOffset(id)`. A consumer
|
|
33
|
+
* supplies the specs. The engine ships no region of its own. Replaces the
|
|
34
|
+
* eight game-named region options
|
|
35
|
+
* (`terrain_map_radius`, `spatial_grid_*`, `army_*`, `flow_field_*`,
|
|
36
|
+
* `actionRingCapacitySlots`) the ECS used to carry. */
|
|
37
|
+
regions?: readonly StoreRegionSpec[];
|
|
38
|
+
/** Byte size of the opt-in bindings region, forwarded to `Store`.
|
|
39
|
+
* A consumer that attaches a WASM `ComputeBackend` passes its own size,
|
|
40
|
+
* computed from its own binding manifest, so the host can publish the
|
|
41
|
+
* `(component_id, field_id)` ids the accelerated systems read. Omitted or
|
|
42
|
+
* 0 ⇒ no region, and a pure-TS world pays
|
|
43
|
+
* nothing for the WASM seam. The size is a runtime input, not an engine ABI
|
|
44
|
+
* constant. It is de-welded from the generated ABI. */
|
|
45
|
+
bindingsRegionBytes?: number;
|
|
46
|
+
/** Opt into the **determinism surface**, forwarded to
|
|
47
|
+
* `Store`. Default `false`. When `false`, the canonical-ordering methods
|
|
48
|
+
* (`stateHash`, `snapshotSparse`, `restoreSparse`) throw
|
|
49
|
+
* `DETERMINISM_DISABLED`. When `true`, today's replay and hash behavior is
|
|
50
|
+
* reproduced bit-for-bit. Determinism is the implementer's choice. A host
|
|
51
|
+
* that verifies a replay opts in. A host that rolls back with diffs, and
|
|
52
|
+
* never re-runs the frame, leaves it off. The flag gates only that
|
|
53
|
+
* surface: memory-safety
|
|
54
|
+
* invariants (the in-place SAB allocator) and the `enabled_count`
|
|
55
|
+
* partition are always-on regardless. */
|
|
56
|
+
deterministic?: boolean;
|
|
57
|
+
}
|
|
58
|
+
/** The fixed-timestep drives the `while (accumulator >= dt)` catch-up loop in
|
|
59
|
+
* `update()`. A non-positive `dt` makes that loop non-terminating (the
|
|
60
|
+
* accumulator never decreases), and a non-finite `dt` poisons `fixedAlpha`,
|
|
61
|
+
* so reject both at the configuration boundary rather than hanging mid-tick. */
|
|
62
|
+
export declare function validateFixedTimestep(value: number): number;
|
|
63
|
+
/** The spiral-of-death clamp in `update()` is `maxAcc = maxFixedSteps *
|
|
64
|
+
* fixedTimestep; if (accumulator > maxAcc) accumulator = maxAcc`. A non-finite
|
|
65
|
+
* `maxFixedSteps` makes `maxAcc` non-finite so the clamp never fires and a large
|
|
66
|
+
* `dt` runs `while (accumulator >= fixedTimestep)` unboundedly, the exact hang
|
|
67
|
+
* the clamp exists to prevent. A `0` clamps the accumulator to 0, so no fixed
|
|
68
|
+
* system runs. Validate it as a finite integer ≥ 1, the way `fixedTimestep` is. */
|
|
69
|
+
export declare function validateMaxFixedSteps(value: number): number;
|
|
70
|
+
/**
|
|
71
|
+
* DEV-only: reject a value that is not a template.
|
|
72
|
+
*
|
|
73
|
+
* `spawn` and `spawnMany` take a template from `ECS.template(...)`. Two
|
|
74
|
+
* mistakes are usual. The caller gives a component definition (`ecs.spawn(Pos)`).
|
|
75
|
+
* Or the caller gives a bundle (`ecs.spawn(Pos({ x: 0 }))`). The types reject
|
|
76
|
+
* both. An untyped call site does not.
|
|
77
|
+
*
|
|
78
|
+
* Without this check the value goes to the store. The store then reads
|
|
79
|
+
* `template.archetypeId`, which is `undefined`. The failure is a `TypeError`
|
|
80
|
+
* about `materializesRows`, from a frame deep in the store. That error names
|
|
81
|
+
* the wrong place, and it does not tell the caller what to do.
|
|
82
|
+
*
|
|
83
|
+
* A template is a plain object with a numeric `archetypeId`. A component
|
|
84
|
+
* definition is a function. A bundle is an object with `values` and no
|
|
85
|
+
* `archetypeId`. The test below separates all three, and it names the
|
|
86
|
+
* alternative for each one.
|
|
87
|
+
*/
|
|
88
|
+
export declare function assertTemplate(value: unknown, op: string): void;
|
|
89
|
+
//# sourceMappingURL=ecs_options.d.ts.map
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { StoreRegionSpec } from '../store/index.js';
|
|
2
|
+
import { ECSMemoryOptions } from './ecs_memory.js';
|
|
3
|
+
/** Every key `ECSOptions` accepts, the constructor's dev-mode typo tripwire
|
|
4
|
+
* checks unknown keys against this (kept adjacent so additions stay in sync). */
|
|
5
|
+
export declare const ECS_OPTION_KEYS: ReadonlySet<string>;
|
|
6
|
+
export interface ECSOptions {
|
|
7
|
+
fixedTimestep?: number;
|
|
8
|
+
maxFixedSteps?: number;
|
|
9
|
+
/** Sink for dev-mode engine diagnostics (currently the schedule's
|
|
10
|
+
* dropped-ordering-edge warning). Defaults to `console.warn`. Mirrors the
|
|
11
|
+
* `FrameTraceSink` seam's injectable style, no global logger. */
|
|
12
|
+
onWarn?: (message: string) => void;
|
|
13
|
+
/** How the world's memory is sized and backed. Two independent axes, two
|
|
14
|
+
* independent fields, every combination of them is legal.
|
|
15
|
+
*
|
|
16
|
+
* How big: `entities` (with optional `archetypes` and `bytesPerEntity` to
|
|
17
|
+
* shape the derivation) or `maxBytes`, or both. Give both when you know
|
|
18
|
+
* both: the count sizes the columns and the entity index, the cap is yours.
|
|
19
|
+
*
|
|
20
|
+
* What backs it: `backing`, `"heap"` (default, a plain fixed ArrayBuffer),
|
|
21
|
+
* `"shared"` (a SharedArrayBuffer, for worker offload or a WASM backend),
|
|
22
|
+
* `{ wasm }` (the buffer is a WebAssembly.Memory) or `{ allocator }` (the
|
|
23
|
+
* expert escape hatch, in-place-typed).
|
|
24
|
+
*
|
|
25
|
+
* `columnCapacity` pins the rows per archetype column on any combination.
|
|
26
|
+
* Omitted ⇒ heap backing, a fixed 256 MiB reservation and 1024-row columns.
|
|
27
|
+
* The resolved plan is exposed as `ECS.memoryPlan`. */
|
|
28
|
+
memory?: ECSMemoryOptions;
|
|
29
|
+
/** Consumer-declared SAB regions, forwarded to `Store`. Each
|
|
30
|
+
* `StoreRegionSpec` carries an opaque `region_id`, a precomputed byte size,
|
|
31
|
+
* and an `init` closure. The engine lays them out generically and exposes
|
|
32
|
+
* them through `regionHandle(id)` and `regionOffset(id)`. A consumer
|
|
33
|
+
* supplies the specs. The engine ships no region of its own. Replaces the
|
|
34
|
+
* eight game-named region options
|
|
35
|
+
* (`terrain_map_radius`, `spatial_grid_*`, `army_*`, `flow_field_*`,
|
|
36
|
+
* `actionRingCapacitySlots`) the ECS used to carry. */
|
|
37
|
+
regions?: readonly StoreRegionSpec[];
|
|
38
|
+
/** Byte size of the opt-in bindings region, forwarded to `Store`.
|
|
39
|
+
* A consumer that attaches a WASM `ComputeBackend` passes its own size,
|
|
40
|
+
* computed from its own binding manifest, so the host can publish the
|
|
41
|
+
* `(component_id, field_id)` ids the accelerated systems read. Omitted or
|
|
42
|
+
* 0 ⇒ no region, and a pure-TS world pays
|
|
43
|
+
* nothing for the WASM seam. The size is a runtime input, not an engine ABI
|
|
44
|
+
* constant. It is de-welded from the generated ABI. */
|
|
45
|
+
bindingsRegionBytes?: number;
|
|
46
|
+
/** Opt into the **determinism surface**, forwarded to
|
|
47
|
+
* `Store`. Default `false`. When `false`, the canonical-ordering methods
|
|
48
|
+
* (`stateHash`, `snapshotSparse`, `restoreSparse`) throw
|
|
49
|
+
* `DETERMINISM_DISABLED`. When `true`, today's replay and hash behavior is
|
|
50
|
+
* reproduced bit-for-bit. Determinism is the implementer's choice. A host
|
|
51
|
+
* that verifies a replay opts in. A host that rolls back with diffs, and
|
|
52
|
+
* never re-runs the frame, leaves it off. The flag gates only that
|
|
53
|
+
* surface: memory-safety
|
|
54
|
+
* invariants (the in-place SAB allocator) and the `enabled_count`
|
|
55
|
+
* partition are always-on regardless. */
|
|
56
|
+
deterministic?: boolean;
|
|
57
|
+
}
|
|
58
|
+
/** The fixed-timestep drives the `while (accumulator >= dt)` catch-up loop in
|
|
59
|
+
* `update()`. A non-positive `dt` makes that loop non-terminating (the
|
|
60
|
+
* accumulator never decreases), and a non-finite `dt` poisons `fixedAlpha`,
|
|
61
|
+
* so reject both at the configuration boundary rather than hanging mid-tick. */
|
|
62
|
+
export declare function validateFixedTimestep(value: number): number;
|
|
63
|
+
/** The spiral-of-death clamp in `update()` is `maxAcc = maxFixedSteps *
|
|
64
|
+
* fixedTimestep; if (accumulator > maxAcc) accumulator = maxAcc`. A non-finite
|
|
65
|
+
* `maxFixedSteps` makes `maxAcc` non-finite so the clamp never fires and a large
|
|
66
|
+
* `dt` runs `while (accumulator >= fixedTimestep)` unboundedly, the exact hang
|
|
67
|
+
* the clamp exists to prevent. A `0` clamps the accumulator to 0, so no fixed
|
|
68
|
+
* system runs. Validate it as a finite integer ≥ 1, the way `fixedTimestep` is. */
|
|
69
|
+
export declare function validateMaxFixedSteps(value: number): number;
|
|
70
|
+
/**
|
|
71
|
+
* DEV-only: reject a value that is not a template.
|
|
72
|
+
*
|
|
73
|
+
* `spawn` and `spawnMany` take a template from `ECS.template(...)`. Two
|
|
74
|
+
* mistakes are usual. The caller gives a component definition (`ecs.spawn(Pos)`).
|
|
75
|
+
* Or the caller gives a bundle (`ecs.spawn(Pos({ x: 0 }))`). The types reject
|
|
76
|
+
* both. An untyped call site does not.
|
|
77
|
+
*
|
|
78
|
+
* Without this check the value goes to the store. The store then reads
|
|
79
|
+
* `template.archetypeId`, which is `undefined`. The failure is a `TypeError`
|
|
80
|
+
* about `materializesRows`, from a frame deep in the store. That error names
|
|
81
|
+
* the wrong place, and it does not tell the caller what to do.
|
|
82
|
+
*
|
|
83
|
+
* A template is a plain object with a numeric `archetypeId`. A component
|
|
84
|
+
* definition is a function. A bundle is an object with `values` and no
|
|
85
|
+
* `archetypeId`. The test below separates all three, and it names the
|
|
86
|
+
* alternative for each one.
|
|
87
|
+
*/
|
|
88
|
+
export declare function assertTemplate(value: unknown, op: string): void;
|
|
89
|
+
//# sourceMappingURL=ecs_options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ecs_options.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/ecs_options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;KAaK;AAEL,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrD;iFACiF;AACjF,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,MAAM,CAW9C,CAAC;AAEH,MAAM,WAAW,UAAU;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;qEAEiE;IACjE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;;;;;;;;;;;;;2DAcuD;IACvD,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B;;;;;;;2DAOuD;IACvD,OAAO,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACrC;;;;;;2DAMuD;IACvD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;;;;;6CASyC;IACzC,aAAa,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;gFAGgF;AAChF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ3D;AAED;;;;;mFAKmF;AACnF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ3D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CA6B/D"}
|
|
@@ -3,11 +3,11 @@ import { ECSError } from './utils/error.cjs';
|
|
|
3
3
|
export type EntityID = Brand<number, "entity_id">;
|
|
4
4
|
/**
|
|
5
5
|
* Compile-time readonly view of a `Uint32Array` whose elements are packed
|
|
6
|
-
* `EntityID`s
|
|
6
|
+
* `EntityID`s, `Archetype.entityIds` returns this, so `ids[i]` is already
|
|
7
7
|
* branded and consumers don't re-brand by hand. Blocks index writes at the
|
|
8
8
|
* type layer.
|
|
9
9
|
*
|
|
10
|
-
* **Advisory, not a runtime barrier
|
|
10
|
+
* **Advisory, not a runtime barrier**, same caveat as `ReadonlyColumn`: the
|
|
11
11
|
* underlying value is the live mutable buffer, and indexing past
|
|
12
12
|
* `totalCount - 1` reads stale slots (the brand can't catch that).
|
|
13
13
|
*/
|
|
@@ -27,8 +27,8 @@ export declare const createEntityId: (index: number, generation: number) => Enti
|
|
|
27
27
|
export declare const getEntityIndex: (id: EntityID) => number;
|
|
28
28
|
export declare const getEntityGeneration: (id: EntityID) => number;
|
|
29
29
|
/** Build the `ENTITY_NOT_ALIVE` error every dev-mode liveness guard throws:
|
|
30
|
-
* names the failing operation, the packed id, and its decoded index
|
|
31
|
-
* so the user can see
|
|
30
|
+
* names the failing operation, the packed id, and its decoded index and generation
|
|
31
|
+
* so the user can see which handle went stale without decoding by hand.
|
|
32
32
|
* `detail` appends op-specific context (e.g. the component being read). */
|
|
33
33
|
export declare const entityNotAliveError: (op: string, id: EntityID, detail?: string) => ECSError;
|
|
34
34
|
//# sourceMappingURL=entity.d.ts.map
|
|
@@ -3,11 +3,11 @@ import { ECSError } from './utils/error.js';
|
|
|
3
3
|
export type EntityID = Brand<number, "entity_id">;
|
|
4
4
|
/**
|
|
5
5
|
* Compile-time readonly view of a `Uint32Array` whose elements are packed
|
|
6
|
-
* `EntityID`s
|
|
6
|
+
* `EntityID`s, `Archetype.entityIds` returns this, so `ids[i]` is already
|
|
7
7
|
* branded and consumers don't re-brand by hand. Blocks index writes at the
|
|
8
8
|
* type layer.
|
|
9
9
|
*
|
|
10
|
-
* **Advisory, not a runtime barrier
|
|
10
|
+
* **Advisory, not a runtime barrier**, same caveat as `ReadonlyColumn`: the
|
|
11
11
|
* underlying value is the live mutable buffer, and indexing past
|
|
12
12
|
* `totalCount - 1` reads stale slots (the brand can't catch that).
|
|
13
13
|
*/
|
|
@@ -27,8 +27,8 @@ export declare const createEntityId: (index: number, generation: number) => Enti
|
|
|
27
27
|
export declare const getEntityIndex: (id: EntityID) => number;
|
|
28
28
|
export declare const getEntityGeneration: (id: EntityID) => number;
|
|
29
29
|
/** Build the `ENTITY_NOT_ALIVE` error every dev-mode liveness guard throws:
|
|
30
|
-
* names the failing operation, the packed id, and its decoded index
|
|
31
|
-
* so the user can see
|
|
30
|
+
* names the failing operation, the packed id, and its decoded index and generation
|
|
31
|
+
* so the user can see which handle went stale without decoding by hand.
|
|
32
32
|
* `detail` appends op-specific context (e.g. the component being read). */
|
|
33
33
|
export declare const entityNotAliveError: (op: string, id: EntityID, detail?: string) => ECSError;
|
|
34
34
|
//# sourceMappingURL=entity.d.ts.map
|