@oasys/oecs 0.5.4 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1223 -266
- package/README.md +217 -112
- package/dist/core/ecs/access_check.d.cts +29 -29
- package/dist/core/ecs/access_check.d.ts +29 -29
- package/dist/core/ecs/access_check.d.ts.map +1 -1
- package/dist/core/ecs/archetype.d.cts +217 -209
- package/dist/core/ecs/archetype.d.ts +217 -209
- 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 +33 -33
- package/dist/core/ecs/archetype_graph.d.ts +33 -33
- 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 +26 -26
- package/dist/core/ecs/command_log.d.ts +26 -26
- package/dist/core/ecs/command_log.d.ts.map +1 -1
- package/dist/core/ecs/component.d.cts +43 -42
- package/dist/core/ecs/component.d.ts +43 -42
- 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 +289 -270
- package/dist/core/ecs/ecs.d.ts +289 -270
- 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 +20 -18
- package/dist/core/ecs/entity_allocator.d.ts +20 -18
- package/dist/core/ecs/entity_allocator.d.ts.map +1 -1
- package/dist/core/ecs/event.d.cts +36 -22
- package/dist/core/ecs/event.d.ts +36 -22
- 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 +32 -32
- package/dist/core/ecs/frame_trace.d.ts +32 -32
- package/dist/core/ecs/frame_trace.d.ts.map +1 -1
- package/dist/core/ecs/host_commands.d.cts +103 -85
- package/dist/core/ecs/host_commands.d.ts +103 -85
- package/dist/core/ecs/host_commands.d.ts.map +1 -1
- package/dist/core/ecs/index.d.cts +21 -11
- package/dist/core/ecs/index.d.ts +21 -11
- package/dist/core/ecs/index.d.ts.map +1 -1
- package/dist/core/ecs/observer.d.cts +39 -120
- package/dist/core/ecs/observer.d.ts +39 -120
- 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 +208 -578
- package/dist/core/ecs/query.d.ts +208 -578
- 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 +100 -39
- package/dist/core/ecs/ref.d.ts +100 -39
- package/dist/core/ecs/ref.d.ts.map +1 -1
- package/dist/core/ecs/relation.d.cts +101 -182
- package/dist/core/ecs/relation.d.ts +101 -182
- package/dist/core/ecs/relation.d.ts.map +1 -1
- package/dist/core/ecs/resource.d.cts +13 -13
- package/dist/core/ecs/resource.d.ts +13 -13
- package/dist/core/ecs/resource_registry.d.cts +5 -5
- package/dist/core/ecs/resource_registry.d.ts +5 -5
- 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 +91 -120
- package/dist/core/ecs/schedule.d.ts +91 -120
- 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 +108 -51
- package/dist/core/ecs/sparse_store.d.ts +108 -51
- package/dist/core/ecs/sparse_store.d.ts.map +1 -1
- package/dist/core/ecs/store.d.cts +527 -473
- package/dist/core/ecs/store.d.ts +527 -473
- package/dist/core/ecs/store.d.ts.map +1 -1
- package/dist/core/ecs/store_layout_listener.d.cts +6 -6
- package/dist/core/ecs/store_layout_listener.d.ts +6 -6
- 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 +146 -61
- package/dist/core/ecs/system.d.ts +146 -61
- 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 +82 -6
- package/dist/core/ecs/utils/error.d.ts +82 -6
- 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 +44 -44
- package/dist/core/store/action_ring.d.ts +44 -44
- package/dist/core/store/action_ring.d.ts.map +1 -1
- package/dist/core/store/allocator.d.cts +149 -95
- package/dist/core/store/allocator.d.ts +149 -95
- package/dist/core/store/allocator.d.ts.map +1 -1
- package/dist/core/store/buffer_backed_column.d.cts +17 -17
- package/dist/core/store/buffer_backed_column.d.ts +17 -17
- package/dist/core/store/buffer_backed_column.d.ts.map +1 -1
- package/dist/core/store/column_store.d.cts +124 -86
- package/dist/core/store/column_store.d.ts +124 -86
- 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 +36 -39
- package/dist/core/store/command_ring.d.ts +36 -39
- package/dist/core/store/command_ring.d.ts.map +1 -1
- package/dist/core/store/descriptor.d.cts +34 -17
- package/dist/core/store/descriptor.d.ts +34 -17
- 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 +36 -38
- package/dist/core/store/event_ring.d.ts +36 -38
- package/dist/core/store/event_ring.d.ts.map +1 -1
- package/dist/core/store/extend.d.cts +13 -7
- package/dist/core/store/extend.d.ts +13 -7
- package/dist/core/store/extend.d.ts.map +1 -1
- package/dist/core/store/grow.d.cts +2 -2
- package/dist/core/store/grow.d.ts +2 -2
- package/dist/core/store/grow.d.ts.map +1 -1
- package/dist/core/store/header.d.cts +31 -27
- package/dist/core/store/header.d.ts +31 -27
- 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 +71 -62
- package/dist/core/store/layout_ops.d.ts +71 -62
- 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 +12 -12
- package/dist/core/store/state_hash.d.ts +12 -12
- 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 +15 -10
- package/dist/index.d.ts +15 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.development.cjs +1 -1
- package/dist/index.development.js +5804 -5203
- package/dist/index.js +5323 -4764
- 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 +54 -54
- package/dist/{extensions → plugins}/editor/editor.d.ts +54 -54
- package/dist/plugins/editor/editor.d.ts.map +1 -0
- package/dist/{extensions → plugins}/editor/field_handle.d.cts +12 -12
- package/dist/{extensions → plugins}/editor/field_handle.d.ts +12 -12
- 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} +81 -64
- package/dist/{extensions/editor/index.js → plugins/editor.js} +81 -64
- 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 +85 -97
- package/dist/{core/ecs → plugins/relations}/relation_service.d.ts +85 -97
- 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 +16 -15
- package/dist/type_primitives/typed_arrays/typed_arrays.d.ts +16 -15
- 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 +3 -3
- package/dist/version.d.ts +3 -3
- 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-BlR3oZ3x.js +0 -2406
- package/dist/host_commands-C2cpU3yC.cjs +0 -1
- package/dist/internal-BoxWl4dG.js +0 -2565
- package/dist/internal-CGBEwfeB.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-Bs39EPh1.js +0 -150
- package/dist/shallow-C5YmTbtb.cjs +0 -1
- package/dist/shallow-CiFC70Dz.js +0 -159
- package/dist/shallow-DQ8aG51_.cjs +0 -1
- package/dist/shared-B4v0L1cw.js +0 -109
- package/dist/shared-DU78k0pU.cjs +0 -1
- package/dist/topological_sort-BDvEyb9W.cjs +0 -1
- package/dist/topological_sort-DK6EjpWa.js +0 -135
- package/dist/typed_arrays-D3NmwtCG.cjs +0 -1
- package/dist/typed_arrays-DIVwVy5_.js +0 -258
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/query.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { FrameTraceSink } from './frame_trace.cjs';
|
|
2
|
+
import { Archetype } from './archetype.cjs';
|
|
3
|
+
import { EntityID } from './entity.cjs';
|
|
4
|
+
import { ComponentDef, ComponentHandle } from './component.cjs';
|
|
5
|
+
import { SparseComponentID } from './sparse_store.cjs';
|
|
6
|
+
import { RelationDef } from './relation.cjs';
|
|
7
|
+
import { BitSet } from '../../type_primitives/index.cjs';
|
|
8
|
+
import { ArchetypeTerm, QueryTerms } from './query_terms.cjs';
|
|
9
|
+
import { Query } from './query.cjs';
|
|
10
|
+
import { ChangedQuery } from './changed_query.cjs';
|
|
11
|
+
/** The query-driver seam on `Store`, the typed contract behind the
|
|
12
|
+
* underscore members `ecs.ts` and the query internals reach. `Store`
|
|
13
|
+
* implements this. The interface names the collaborator, so a host swap
|
|
14
|
+
* touches no consumer.
|
|
15
|
+
* `tick` and `trace` are deliberately mutable. `ECS.update()` sets the frame
|
|
16
|
+
* tick, and `ECS.setTrace` installs the sink through this seam. */
|
|
17
|
+
export interface QueryHost {
|
|
18
|
+
/** Frame tick, set by `ECS.update()` each frame. `ctx.ecsTick` reads it. */
|
|
19
|
+
tick: number;
|
|
20
|
+
/** Change tick, the stamp every write makes. Advanced before each system
|
|
21
|
+
* run, so a consumer can order a write against its own last run. */
|
|
22
|
+
readonly changeTick: number;
|
|
23
|
+
/** Advance the change tick and return the new value. The schedule calls
|
|
24
|
+
* it before each system run and before each phase flush. */
|
|
25
|
+
advanceChangeTick(): number;
|
|
26
|
+
/** Dev-only frame-trace sink (`ECS.setTrace`). Always null in prod. */
|
|
27
|
+
trace: FrameTraceSink | null;
|
|
28
|
+
/** True once any component observer opted into per-entity dirty tracking,
|
|
29
|
+
* gates `noteSet` at every write site. */
|
|
30
|
+
readonly anyDirtyTracked: boolean;
|
|
31
|
+
/** Bumped when an archetype crosses empty↔non-empty, cached query
|
|
32
|
+
* archetype lists rebuild when their observed epoch is stale. */
|
|
33
|
+
readonly queryDirtyEpoch: number;
|
|
34
|
+
/** Record a row for the entity-level onSet of `cid` from a path that has
|
|
35
|
+
* resolved the archetype and the row (gated by `anyDirtyTracked` at the
|
|
36
|
+
* call site). */
|
|
37
|
+
noteSet(cid: number, arch: Archetype, row: number, eid: EntityID): void;
|
|
38
|
+
/** `noteSet` for a caller that holds the entity alone (`markChanged`). */
|
|
39
|
+
noteSetEntity(def: ComponentHandle, eid: EntityID): void;
|
|
40
|
+
/** A chunk loop took the row tick column of `cid` (`cols.ticks`). */
|
|
41
|
+
noteScan(cid: number): void;
|
|
42
|
+
/** The event registry and the relation service are reached by name off the
|
|
43
|
+
* store (`store.events`, `store.relations`), not through this seam. This
|
|
44
|
+
* interface stays the query driver's view of its host, and nothing else. */
|
|
45
|
+
/** Second query-match path: sparse-term intersection. */
|
|
46
|
+
forEachSparseMatch(include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, terms: QueryTerms, denseArchetypes: readonly Archetype[], cb: (entityId: EntityID) => void): void;
|
|
47
|
+
/** Fourth query-match path: hierarchy depth ordering. */
|
|
48
|
+
forEachHierarchyMatch(include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, terms: QueryTerms, denseArchetypes: readonly Archetype[], relation: RelationDef, maxDepth: number, cb: (entityId: EntityID) => void): void;
|
|
49
|
+
}
|
|
50
|
+
export interface QueryCacheEntry {
|
|
51
|
+
includeMask: BitSet;
|
|
52
|
+
excludeMask: BitSet | null;
|
|
53
|
+
anyOfMask: BitSet | null;
|
|
54
|
+
query: Query<any>;
|
|
55
|
+
}
|
|
56
|
+
/** One owner for every query-resolution cache. Previously the dedup
|
|
57
|
+
* bucket map lived on `ECS` while `Query` populated the composition maps
|
|
58
|
+
* declared on the resolver interface, ownership split across two modules.
|
|
59
|
+
* All entries are structural (a query is minted once per unique term set and
|
|
60
|
+
* lives for the world's lifetime. Components and queries are never
|
|
61
|
+
* unregistered), so there is no invalidation lifecycle, the maps are
|
|
62
|
+
* append-only. Key encodings are unchanged from the pre-extraction fields.
|
|
63
|
+
*
|
|
64
|
+
* The composition maps are exposed as readonly fields (not per-kind accessor
|
|
65
|
+
* pairs): the mutation protocol is uniform (`get` → miss → build → `set`) and
|
|
66
|
+
* hot enough that composition sites keep direct map access. The invariant
|
|
67
|
+
* this class carries is single ownership, not access mediation. */
|
|
68
|
+
export declare class QueryCache {
|
|
69
|
+
private readonly _dedup;
|
|
70
|
+
readonly andSingle: Map<number, Query<any>>;
|
|
71
|
+
readonly notSingle: Map<number, Query<any>>;
|
|
72
|
+
readonly orSingle: Map<number, Query<any>>;
|
|
73
|
+
readonly changedSingle: Map<number, ChangedQuery<any>>;
|
|
74
|
+
readonly optionalSingle: Map<number, Query<any>>;
|
|
75
|
+
readonly andSparseSingle: Map<number, Query<any>>;
|
|
76
|
+
readonly notSparseSingle: Map<number, Query<any>>;
|
|
77
|
+
readonly andRelationSingle: Map<number, Query<any>>;
|
|
78
|
+
readonly notRelationSingle: Map<number, Query<any>>;
|
|
79
|
+
readonly includeDisabledSingle: Map<number, Query<any>>;
|
|
80
|
+
readonly hierarchySingle: Map<number, Query<any>>;
|
|
81
|
+
readonly whereSingle: WeakMap<ArchetypeTerm, Map<number, Query<any>>>;
|
|
82
|
+
/** Dedup lookup: bucket scan with full mask equality. A bucket holds few
|
|
83
|
+
* entries, so the scan is cheap. */
|
|
84
|
+
findDedup(key: number, include: BitSet, exclude: BitSet | null, anyOf: BitSet | null): QueryCacheEntry | undefined;
|
|
85
|
+
/** Record a freshly minted query under its dedup key. */
|
|
86
|
+
addDedup(key: number, entry: QueryCacheEntry): void;
|
|
87
|
+
}
|
|
88
|
+
export interface QueryResolver {
|
|
89
|
+
resolveQuery(include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, defs: readonly ComponentDef[]): Query<any>;
|
|
90
|
+
getLastRunTick(): number;
|
|
91
|
+
/** The change tick, the stamp `forEachChunk` makes via `cols.mut`. */
|
|
92
|
+
getChangeTick(): number;
|
|
93
|
+
/** A chunk loop took the row tick column of `cid` (`cols.ticks`), so the
|
|
94
|
+
* entity-level onSet drain scans the plane this frame. */
|
|
95
|
+
noteScan(cid: number): void;
|
|
96
|
+
getQueryDirtyEpoch(): number;
|
|
97
|
+
nextQueryId(): number;
|
|
98
|
+
/** All query-resolution caches, dedup + composition. One owner. See
|
|
99
|
+
* `QueryCache` for the per-map keying and id-space notes. */
|
|
100
|
+
readonly caches: QueryCache;
|
|
101
|
+
/** Second query-match path: drive iteration by sparse
|
|
102
|
+
* membership rather than the archetype mask, yielding entities, sparse
|
|
103
|
+
* members are scattered across archetypes, so there is no archetype-column
|
|
104
|
+
* span to hand back. With a sparse require term, drive from the smallest
|
|
105
|
+
* required store and filter. With only sparse excludes, drive the dense
|
|
106
|
+
* archetype list and skip excluded rows. With neither, walk dense entities.
|
|
107
|
+
* Only entered via `Query.forEachEntity`, so dense `forEach` never pays.
|
|
108
|
+
* `includeDisabled` widens the per-archetype row scan from enabled rows to
|
|
109
|
+
* all rows. */
|
|
110
|
+
forEachSparseMatch(include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, terms: QueryTerms, denseArchetypes: readonly Archetype[], cb: (entityId: EntityID) => void): void;
|
|
111
|
+
/** Backing sparse id of a relation, resolves a `(R, *)` wildcard term
|
|
112
|
+
* (`andRelation`) to the membership store the sparse-match path
|
|
113
|
+
* already drives. `api` names the query verb the caller used, so a world
|
|
114
|
+
* without the relations plugin faults with the verb it reached. */
|
|
115
|
+
relationBackingSparseId(def: RelationDef, api: string): SparseComponentID;
|
|
116
|
+
/** Third query-match path: `(*, T)`, drive iteration from the union of
|
|
117
|
+
* every relation's `sourcesOf(target)` (dedup + canonical sort), intersected
|
|
118
|
+
* with the dense mask + sparse terms + the enabled-row filter. Only entered via
|
|
119
|
+
* `Query.forEachRelatedTo`. */
|
|
120
|
+
forEachTargetMatch(target: EntityID, include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, terms: QueryTerms, cb: (entityId: EntityID) => void): void;
|
|
121
|
+
/** Fourth query-match path: yield the matched entities (dense mask +
|
|
122
|
+
* sparse terms + enabled-row filter, exactly the `forEachSparseMatch`
|
|
123
|
+
* intersection) in canonical **hierarchy depth order** over exclusive relation
|
|
124
|
+
* `relation`, depth ascending (parents before children), entity index
|
|
125
|
+
* ascending within a depth band. Entities deeper than `maxDepth` are skipped
|
|
126
|
+
* (`HIERARCHY_UNBOUNDED` = no limit). Only entered via `Query.forEachEntity`
|
|
127
|
+
* on a query carrying a `.hierarchy(R)` term. */
|
|
128
|
+
forEachHierarchyMatch(include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, terms: QueryTerms, denseArchetypes: readonly Archetype[], relation: RelationDef, maxDepth: number, cb: (entityId: EntityID) => void): void;
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=query_cache.d.ts.map
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { FrameTraceSink } from './frame_trace.js';
|
|
2
|
+
import { Archetype } from './archetype.js';
|
|
3
|
+
import { EntityID } from './entity.js';
|
|
4
|
+
import { ComponentDef, ComponentHandle } from './component.js';
|
|
5
|
+
import { SparseComponentID } from './sparse_store.js';
|
|
6
|
+
import { RelationDef } from './relation.js';
|
|
7
|
+
import { BitSet } from '../../type_primitives/index.js';
|
|
8
|
+
import { ArchetypeTerm, QueryTerms } from './query_terms.js';
|
|
9
|
+
import { Query } from './query.js';
|
|
10
|
+
import { ChangedQuery } from './changed_query.js';
|
|
11
|
+
/** The query-driver seam on `Store`, the typed contract behind the
|
|
12
|
+
* underscore members `ecs.ts` and the query internals reach. `Store`
|
|
13
|
+
* implements this. The interface names the collaborator, so a host swap
|
|
14
|
+
* touches no consumer.
|
|
15
|
+
* `tick` and `trace` are deliberately mutable. `ECS.update()` sets the frame
|
|
16
|
+
* tick, and `ECS.setTrace` installs the sink through this seam. */
|
|
17
|
+
export interface QueryHost {
|
|
18
|
+
/** Frame tick, set by `ECS.update()` each frame. `ctx.ecsTick` reads it. */
|
|
19
|
+
tick: number;
|
|
20
|
+
/** Change tick, the stamp every write makes. Advanced before each system
|
|
21
|
+
* run, so a consumer can order a write against its own last run. */
|
|
22
|
+
readonly changeTick: number;
|
|
23
|
+
/** Advance the change tick and return the new value. The schedule calls
|
|
24
|
+
* it before each system run and before each phase flush. */
|
|
25
|
+
advanceChangeTick(): number;
|
|
26
|
+
/** Dev-only frame-trace sink (`ECS.setTrace`). Always null in prod. */
|
|
27
|
+
trace: FrameTraceSink | null;
|
|
28
|
+
/** True once any component observer opted into per-entity dirty tracking,
|
|
29
|
+
* gates `noteSet` at every write site. */
|
|
30
|
+
readonly anyDirtyTracked: boolean;
|
|
31
|
+
/** Bumped when an archetype crosses empty↔non-empty, cached query
|
|
32
|
+
* archetype lists rebuild when their observed epoch is stale. */
|
|
33
|
+
readonly queryDirtyEpoch: number;
|
|
34
|
+
/** Record a row for the entity-level onSet of `cid` from a path that has
|
|
35
|
+
* resolved the archetype and the row (gated by `anyDirtyTracked` at the
|
|
36
|
+
* call site). */
|
|
37
|
+
noteSet(cid: number, arch: Archetype, row: number, eid: EntityID): void;
|
|
38
|
+
/** `noteSet` for a caller that holds the entity alone (`markChanged`). */
|
|
39
|
+
noteSetEntity(def: ComponentHandle, eid: EntityID): void;
|
|
40
|
+
/** A chunk loop took the row tick column of `cid` (`cols.ticks`). */
|
|
41
|
+
noteScan(cid: number): void;
|
|
42
|
+
/** The event registry and the relation service are reached by name off the
|
|
43
|
+
* store (`store.events`, `store.relations`), not through this seam. This
|
|
44
|
+
* interface stays the query driver's view of its host, and nothing else. */
|
|
45
|
+
/** Second query-match path: sparse-term intersection. */
|
|
46
|
+
forEachSparseMatch(include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, terms: QueryTerms, denseArchetypes: readonly Archetype[], cb: (entityId: EntityID) => void): void;
|
|
47
|
+
/** Fourth query-match path: hierarchy depth ordering. */
|
|
48
|
+
forEachHierarchyMatch(include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, terms: QueryTerms, denseArchetypes: readonly Archetype[], relation: RelationDef, maxDepth: number, cb: (entityId: EntityID) => void): void;
|
|
49
|
+
}
|
|
50
|
+
export interface QueryCacheEntry {
|
|
51
|
+
includeMask: BitSet;
|
|
52
|
+
excludeMask: BitSet | null;
|
|
53
|
+
anyOfMask: BitSet | null;
|
|
54
|
+
query: Query<any>;
|
|
55
|
+
}
|
|
56
|
+
/** One owner for every query-resolution cache. Previously the dedup
|
|
57
|
+
* bucket map lived on `ECS` while `Query` populated the composition maps
|
|
58
|
+
* declared on the resolver interface, ownership split across two modules.
|
|
59
|
+
* All entries are structural (a query is minted once per unique term set and
|
|
60
|
+
* lives for the world's lifetime. Components and queries are never
|
|
61
|
+
* unregistered), so there is no invalidation lifecycle, the maps are
|
|
62
|
+
* append-only. Key encodings are unchanged from the pre-extraction fields.
|
|
63
|
+
*
|
|
64
|
+
* The composition maps are exposed as readonly fields (not per-kind accessor
|
|
65
|
+
* pairs): the mutation protocol is uniform (`get` → miss → build → `set`) and
|
|
66
|
+
* hot enough that composition sites keep direct map access. The invariant
|
|
67
|
+
* this class carries is single ownership, not access mediation. */
|
|
68
|
+
export declare class QueryCache {
|
|
69
|
+
private readonly _dedup;
|
|
70
|
+
readonly andSingle: Map<number, Query<any>>;
|
|
71
|
+
readonly notSingle: Map<number, Query<any>>;
|
|
72
|
+
readonly orSingle: Map<number, Query<any>>;
|
|
73
|
+
readonly changedSingle: Map<number, ChangedQuery<any>>;
|
|
74
|
+
readonly optionalSingle: Map<number, Query<any>>;
|
|
75
|
+
readonly andSparseSingle: Map<number, Query<any>>;
|
|
76
|
+
readonly notSparseSingle: Map<number, Query<any>>;
|
|
77
|
+
readonly andRelationSingle: Map<number, Query<any>>;
|
|
78
|
+
readonly notRelationSingle: Map<number, Query<any>>;
|
|
79
|
+
readonly includeDisabledSingle: Map<number, Query<any>>;
|
|
80
|
+
readonly hierarchySingle: Map<number, Query<any>>;
|
|
81
|
+
readonly whereSingle: WeakMap<ArchetypeTerm, Map<number, Query<any>>>;
|
|
82
|
+
/** Dedup lookup: bucket scan with full mask equality. A bucket holds few
|
|
83
|
+
* entries, so the scan is cheap. */
|
|
84
|
+
findDedup(key: number, include: BitSet, exclude: BitSet | null, anyOf: BitSet | null): QueryCacheEntry | undefined;
|
|
85
|
+
/** Record a freshly minted query under its dedup key. */
|
|
86
|
+
addDedup(key: number, entry: QueryCacheEntry): void;
|
|
87
|
+
}
|
|
88
|
+
export interface QueryResolver {
|
|
89
|
+
resolveQuery(include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, defs: readonly ComponentDef[]): Query<any>;
|
|
90
|
+
getLastRunTick(): number;
|
|
91
|
+
/** The change tick, the stamp `forEachChunk` makes via `cols.mut`. */
|
|
92
|
+
getChangeTick(): number;
|
|
93
|
+
/** A chunk loop took the row tick column of `cid` (`cols.ticks`), so the
|
|
94
|
+
* entity-level onSet drain scans the plane this frame. */
|
|
95
|
+
noteScan(cid: number): void;
|
|
96
|
+
getQueryDirtyEpoch(): number;
|
|
97
|
+
nextQueryId(): number;
|
|
98
|
+
/** All query-resolution caches, dedup + composition. One owner. See
|
|
99
|
+
* `QueryCache` for the per-map keying and id-space notes. */
|
|
100
|
+
readonly caches: QueryCache;
|
|
101
|
+
/** Second query-match path: drive iteration by sparse
|
|
102
|
+
* membership rather than the archetype mask, yielding entities, sparse
|
|
103
|
+
* members are scattered across archetypes, so there is no archetype-column
|
|
104
|
+
* span to hand back. With a sparse require term, drive from the smallest
|
|
105
|
+
* required store and filter. With only sparse excludes, drive the dense
|
|
106
|
+
* archetype list and skip excluded rows. With neither, walk dense entities.
|
|
107
|
+
* Only entered via `Query.forEachEntity`, so dense `forEach` never pays.
|
|
108
|
+
* `includeDisabled` widens the per-archetype row scan from enabled rows to
|
|
109
|
+
* all rows. */
|
|
110
|
+
forEachSparseMatch(include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, terms: QueryTerms, denseArchetypes: readonly Archetype[], cb: (entityId: EntityID) => void): void;
|
|
111
|
+
/** Backing sparse id of a relation, resolves a `(R, *)` wildcard term
|
|
112
|
+
* (`andRelation`) to the membership store the sparse-match path
|
|
113
|
+
* already drives. `api` names the query verb the caller used, so a world
|
|
114
|
+
* without the relations plugin faults with the verb it reached. */
|
|
115
|
+
relationBackingSparseId(def: RelationDef, api: string): SparseComponentID;
|
|
116
|
+
/** Third query-match path: `(*, T)`, drive iteration from the union of
|
|
117
|
+
* every relation's `sourcesOf(target)` (dedup + canonical sort), intersected
|
|
118
|
+
* with the dense mask + sparse terms + the enabled-row filter. Only entered via
|
|
119
|
+
* `Query.forEachRelatedTo`. */
|
|
120
|
+
forEachTargetMatch(target: EntityID, include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, terms: QueryTerms, cb: (entityId: EntityID) => void): void;
|
|
121
|
+
/** Fourth query-match path: yield the matched entities (dense mask +
|
|
122
|
+
* sparse terms + enabled-row filter, exactly the `forEachSparseMatch`
|
|
123
|
+
* intersection) in canonical **hierarchy depth order** over exclusive relation
|
|
124
|
+
* `relation`, depth ascending (parents before children), entity index
|
|
125
|
+
* ascending within a depth band. Entities deeper than `maxDepth` are skipped
|
|
126
|
+
* (`HIERARCHY_UNBOUNDED` = no limit). Only entered via `Query.forEachEntity`
|
|
127
|
+
* on a query carrying a `.hierarchy(R)` term. */
|
|
128
|
+
forEachHierarchyMatch(include: BitSet, exclude: BitSet | null, anyOf: BitSet | null, terms: QueryTerms, denseArchetypes: readonly Archetype[], relation: RelationDef, maxDepth: number, cb: (entityId: EntityID) => void): void;
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=query_cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query_cache.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/query_cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { BitSet } from '../../type_primitives/index.cjs';
|
|
2
|
+
import { Archetype, ArchetypeID } from './archetype.cjs';
|
|
3
|
+
import { Query } from './query.cjs';
|
|
4
|
+
/** What the registry needs from the archetype topology, closure-injected.
|
|
5
|
+
*
|
|
6
|
+
* Three reads, no writes. `archetypes` and `componentIndex` hand back the
|
|
7
|
+
* graph's live arrays, which is safe because the graph is their sole writer
|
|
8
|
+
* and an archetype is never removed. Creation and mint path only. */
|
|
9
|
+
export interface QueryRegistryHost {
|
|
10
|
+
/** Every archetype, by id. Read when a query declares no required
|
|
11
|
+
* component and has to scan the whole set. */
|
|
12
|
+
readonly archetypes: () => readonly Archetype[];
|
|
13
|
+
/** Component id to the ascending archetype ids that hold it. The registry
|
|
14
|
+
* starts its superset scan from the smallest bucket. */
|
|
15
|
+
readonly componentIndex: () => readonly ArchetypeID[][];
|
|
16
|
+
/** One archetype by id. */
|
|
17
|
+
readonly archetypeAt: (id: ArchetypeID) => Archetype;
|
|
18
|
+
}
|
|
19
|
+
export declare class QueryRegistry {
|
|
20
|
+
private readonly _registered;
|
|
21
|
+
private readonly _host;
|
|
22
|
+
constructor(host: QueryRegistryHost);
|
|
23
|
+
/**
|
|
24
|
+
* Every archetype matching the given masks.
|
|
25
|
+
* Starts from the component with the fewest archetypes, which is the
|
|
26
|
+
* tightest starting point for the superset intersection.
|
|
27
|
+
*/
|
|
28
|
+
matching(required: BitSet, excluded?: BitSet, anyOf?: BitSet): readonly Archetype[];
|
|
29
|
+
/**
|
|
30
|
+
* Register a live query. Returns a mutable `Archetype[]` that `fanIn`
|
|
31
|
+
* pushes newly-created matching archetypes into, keeping the query always
|
|
32
|
+
* up to date.
|
|
33
|
+
*
|
|
34
|
+
* **Mask ownership: borrowed.** Each mask is copied into the record here,
|
|
35
|
+
* so a caller may pass a scratch mask it intends to reuse.
|
|
36
|
+
*/
|
|
37
|
+
register(include: BitSet, exclude?: BitSet, anyOf?: BitSet): Archetype[];
|
|
38
|
+
/** Attach the `Query` that owns `result`, found by array identity. The
|
|
39
|
+
* back reference is for diagnostics, and the caller makes this call right
|
|
40
|
+
* after `register`. */
|
|
41
|
+
updateRef(result: Archetype[], query: Query<any>): void;
|
|
42
|
+
/** Push a newly-installed archetype into every registered query whose
|
|
43
|
+
* masks it satisfies. No epoch bump, see the note in
|
|
44
|
+
* `ArchetypeGraph._install`. Once per archetype creation. */
|
|
45
|
+
fanIn(archetype: Archetype): void;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=query_registry.d.ts.map
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { BitSet } from '../../type_primitives/index.js';
|
|
2
|
+
import { Archetype, ArchetypeID } from './archetype.js';
|
|
3
|
+
import { Query } from './query.js';
|
|
4
|
+
/** What the registry needs from the archetype topology, closure-injected.
|
|
5
|
+
*
|
|
6
|
+
* Three reads, no writes. `archetypes` and `componentIndex` hand back the
|
|
7
|
+
* graph's live arrays, which is safe because the graph is their sole writer
|
|
8
|
+
* and an archetype is never removed. Creation and mint path only. */
|
|
9
|
+
export interface QueryRegistryHost {
|
|
10
|
+
/** Every archetype, by id. Read when a query declares no required
|
|
11
|
+
* component and has to scan the whole set. */
|
|
12
|
+
readonly archetypes: () => readonly Archetype[];
|
|
13
|
+
/** Component id to the ascending archetype ids that hold it. The registry
|
|
14
|
+
* starts its superset scan from the smallest bucket. */
|
|
15
|
+
readonly componentIndex: () => readonly ArchetypeID[][];
|
|
16
|
+
/** One archetype by id. */
|
|
17
|
+
readonly archetypeAt: (id: ArchetypeID) => Archetype;
|
|
18
|
+
}
|
|
19
|
+
export declare class QueryRegistry {
|
|
20
|
+
private readonly _registered;
|
|
21
|
+
private readonly _host;
|
|
22
|
+
constructor(host: QueryRegistryHost);
|
|
23
|
+
/**
|
|
24
|
+
* Every archetype matching the given masks.
|
|
25
|
+
* Starts from the component with the fewest archetypes, which is the
|
|
26
|
+
* tightest starting point for the superset intersection.
|
|
27
|
+
*/
|
|
28
|
+
matching(required: BitSet, excluded?: BitSet, anyOf?: BitSet): readonly Archetype[];
|
|
29
|
+
/**
|
|
30
|
+
* Register a live query. Returns a mutable `Archetype[]` that `fanIn`
|
|
31
|
+
* pushes newly-created matching archetypes into, keeping the query always
|
|
32
|
+
* up to date.
|
|
33
|
+
*
|
|
34
|
+
* **Mask ownership: borrowed.** Each mask is copied into the record here,
|
|
35
|
+
* so a caller may pass a scratch mask it intends to reuse.
|
|
36
|
+
*/
|
|
37
|
+
register(include: BitSet, exclude?: BitSet, anyOf?: BitSet): Archetype[];
|
|
38
|
+
/** Attach the `Query` that owns `result`, found by array identity. The
|
|
39
|
+
* back reference is for diagnostics, and the caller makes this call right
|
|
40
|
+
* after `register`. */
|
|
41
|
+
updateRef(result: Archetype[], query: Query<any>): void;
|
|
42
|
+
/** Push a newly-installed archetype into every registered query whose
|
|
43
|
+
* masks it satisfies. No epoch bump, see the note in
|
|
44
|
+
* `ArchetypeGraph._install`. Once per archetype creation. */
|
|
45
|
+
fanIn(archetype: Archetype): void;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=query_registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query_registry.d.ts","sourceRoot":"","sources":["../../../src/core/ecs/query_registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;KAsBK;AAEL,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC;;;;qEAIqE;AACrE,MAAM,WAAW,iBAAiB;IACjC;kDAC8C;IAC9C,QAAQ,CAAC,UAAU,EAAE,MAAM,SAAS,SAAS,EAAE,CAAC;IAChD;4DACwD;IACxD,QAAQ,CAAC,cAAc,EAAE,MAAM,SAAS,WAAW,EAAE,EAAE,CAAC;IACxD,2BAA2B;IAC3B,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,SAAS,CAAC;CACrD;AAaD,qBAAa,aAAa;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IACrD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;gBAE9B,IAAI,EAAE,iBAAiB;IAInC;;;;OAIG;IACI,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,SAAS,EAAE;IA8D1F;;;;;;;OAOG;IACI,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE;IAY/E;;2BAEuB;IAChB,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI;IAU9D;;iEAE6D;IACtD,KAAK,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;CAaxC"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { ComponentDef, ComponentID } from './component.cjs';
|
|
2
|
+
import { SparseComponentID } from './sparse_store.cjs';
|
|
3
|
+
import { RelationDef } from './relation.cjs';
|
|
4
|
+
import { BitSet } from '../../type_primitives/index.cjs';
|
|
5
|
+
/** The non-dense query terms, carried as one frozen record.
|
|
6
|
+
*
|
|
7
|
+
* Every term here leaves the dense component mask alone, so a query that
|
|
8
|
+
* carries one still shares its parent's live archetype list. They travel
|
|
9
|
+
* together through each derive (`and`, `not`, `or`) and through each
|
|
10
|
+
* driver seam below, so one parameter replaces the run of positional lists
|
|
11
|
+
* those signatures used to repeat.
|
|
12
|
+
*
|
|
13
|
+
* A query that carries none of them holds `NO_TERMS`. That is why
|
|
14
|
+
* `_carryNondense` decides with one reference comparison, where it used to
|
|
15
|
+
* test each term in turn. The old shape spread one term across a constructor
|
|
16
|
+
* parameter, a carry test and a `new Query` argument, and a term added to two
|
|
17
|
+
* of the three went unnoticed. Add a term by adding a field here and a line to
|
|
18
|
+
* `deriveTerms`.
|
|
19
|
+
*
|
|
20
|
+
* Cold path. Read once per `forEach` call, never per row. */
|
|
21
|
+
/** An archetype-level term a plugin contributes.
|
|
22
|
+
*
|
|
23
|
+
* The engine already answers three archetype questions with a bit mask: hold
|
|
24
|
+
* these, hold none of these, hold one of these. A term answers a fourth in
|
|
25
|
+
* whatever way the plugin wants, over the same input. `or(and(A, B), C)` is
|
|
26
|
+
* one, and so is any predicate over the component mask.
|
|
27
|
+
*
|
|
28
|
+
* Where it runs. Once per archetype, per query, at the rebuild the store's
|
|
29
|
+
* dirty epoch triggers. Never per row, and never per drive. A query that
|
|
30
|
+
* carries no term reaches a rebuild body byte-identical to today's.
|
|
31
|
+
*
|
|
32
|
+
* What the caller guarantees. `matches` is pure and stable: one archetype
|
|
33
|
+
* gives one answer for the life of the world. The archetype list is rebuilt
|
|
34
|
+
* from scratch on each epoch, so an unstable term does not corrupt the list,
|
|
35
|
+
* but it does make the matched set depend on when the epoch last advanced,
|
|
36
|
+
* which nothing else in the query engine does.
|
|
37
|
+
*
|
|
38
|
+
* Cold path. Build the term once and hold it. */
|
|
39
|
+
export interface ArchetypeTerm {
|
|
40
|
+
/** Names the term in a dev refusal. Diagnostics only, never a cache key. */
|
|
41
|
+
readonly name: string;
|
|
42
|
+
/** True when an archetype whose component mask is `mask` belongs. */
|
|
43
|
+
matches(mask: BitSet): boolean;
|
|
44
|
+
}
|
|
45
|
+
/** One operand of `and`, `or` or `not`. A component definition is a leaf, and
|
|
46
|
+
* holding it is the whole question. Any `ArchetypeTerm` is a node, which is
|
|
47
|
+
* how one combinator nests inside another. */
|
|
48
|
+
export type ArchetypeExpr = ComponentDef<any> | ArchetypeTerm;
|
|
49
|
+
/** Every operand holds. `and()` over nothing matches every archetype, the
|
|
50
|
+
* identity of the conjunction, so a fold over an empty list narrows nothing.
|
|
51
|
+
*
|
|
52
|
+
* Pair it with `where`: `q.where(and(Pos, Vel))`. Prefer `q.and(Pos, Vel)`
|
|
53
|
+
* when the operands are a flat list of definitions, because a dense term sets
|
|
54
|
+
* a mask bit and picks the archetypes, where an expression tests each one.
|
|
55
|
+
*
|
|
56
|
+
* Cold path. Build the expression once and hold it, because `where` caches on
|
|
57
|
+
* the term's identity. */
|
|
58
|
+
export declare function and(...terms: ArchetypeExpr[]): ArchetypeTerm;
|
|
59
|
+
/** One operand holds, or more. `or()` over nothing matches no archetype, the
|
|
60
|
+
* identity of the disjunction. Cold path, same caching rule as `and`. */
|
|
61
|
+
export declare function or(...terms: ArchetypeExpr[]): ArchetypeTerm;
|
|
62
|
+
/** No operand holds. Several operands read as one negated disjunction, which
|
|
63
|
+
* is the same set as the conjunction of each negation, so `not(A, B)` matches
|
|
64
|
+
* exactly what `Query.not(A, B)` matches. `not()` over nothing matches every
|
|
65
|
+
* archetype. Cold path, same caching rule as `and`. */
|
|
66
|
+
export declare function not(...terms: ArchetypeExpr[]): ArchetypeTerm;
|
|
67
|
+
export interface QueryTerms {
|
|
68
|
+
/** Sparse membership a matched entity must hold. Also carries the backing
|
|
69
|
+
* sparse id of each `(R, *)` relation term, which is how the wildcard
|
|
70
|
+
* reuses the sparse-match driver unchanged. */
|
|
71
|
+
readonly sparseIncludes: readonly SparseComponentID[];
|
|
72
|
+
/** Sparse membership a matched entity must not hold. */
|
|
73
|
+
readonly sparseExcludes: readonly SparseComponentID[];
|
|
74
|
+
/** Fetch-if-present terms. Does not narrow the matched set. Authorizes
|
|
75
|
+
* `getOptionalColumnRead` under `DEV`. */
|
|
76
|
+
readonly optionalTerms: readonly ComponentID[];
|
|
77
|
+
/** Include disabled rows. Widens the iteration bound from the enabled
|
|
78
|
+
* count to the total count. */
|
|
79
|
+
readonly includesDisabled: boolean;
|
|
80
|
+
/** `(R, *)` terms, recorded for the `DEV` `relationReads` access check
|
|
81
|
+
* alone. The driver reads the backing sparse id off `sparseIncludes`. */
|
|
82
|
+
readonly relationIncludes: readonly RelationDef[];
|
|
83
|
+
readonly relationExcludes: readonly RelationDef[];
|
|
84
|
+
/** Depth-ordering term. Reorders the matched entities, parents first. */
|
|
85
|
+
readonly hierarchyTerm: HierarchyTerm | null;
|
|
86
|
+
/** Archetype-level terms a plugin contributed. Narrows the matched set
|
|
87
|
+
* without touching the dense mask, so the derived query still shares the
|
|
88
|
+
* parent's live archetype list and the narrowing happens at the rebuild.
|
|
89
|
+
* Empty for every query the core builds. */
|
|
90
|
+
readonly archetypeTerms: readonly ArchetypeTerm[];
|
|
91
|
+
}
|
|
92
|
+
/** The terms of a query that declares none. Shared by every dense-only query,
|
|
93
|
+
* so the common path allocates nothing and `_carryNondense` compares one
|
|
94
|
+
* reference. Frozen: a mutation here would reach every such query. */
|
|
95
|
+
export declare const NO_TERMS: QueryTerms;
|
|
96
|
+
/** Build the terms for a derived query.
|
|
97
|
+
*
|
|
98
|
+
* The result never equals `NO_TERMS`, and `_carryNondense` depends on that.
|
|
99
|
+
* Every caller adds a term and none removes one, so a derive always widens the
|
|
100
|
+
* record. The zero-argument forms (`optional()`, `andSparse()`) return the
|
|
101
|
+
* receiver before they reach here, which is what keeps the rule true. A future
|
|
102
|
+
* term that can be removed breaks it, and must collapse an emptied record back
|
|
103
|
+
* to `NO_TERMS` here.
|
|
104
|
+
*
|
|
105
|
+
* Cold path: one call per cache miss on a derive, never per row. */
|
|
106
|
+
export declare function deriveTerms(base: QueryTerms, patch: Partial<QueryTerms>): QueryTerms;
|
|
107
|
+
/** No depth limit on a `.hierarchy(R)` term, yield every matched entity
|
|
108
|
+
* regardless of its depth in the tree. The default `maxDepth`. */
|
|
109
|
+
export declare const HIERARCHY_UNBOUNDED: number;
|
|
110
|
+
/** A `.hierarchy(R)` depth-ordering term. Records the exclusive relation
|
|
111
|
+
* whose tree defines the order and the (optional) max depth to yield. Stored on
|
|
112
|
+
* the Query and consumed by the `forEachEntity` hierarchy match path. Absent
|
|
113
|
+
* (`null`) for the common case. */
|
|
114
|
+
export interface HierarchyTerm {
|
|
115
|
+
/** The exclusive relation whose chain and tree defines the depth ordering. */
|
|
116
|
+
readonly relation: RelationDef;
|
|
117
|
+
/** Inclusive max depth to yield, where a root is 0. The walk skips an entity
|
|
118
|
+
* deeper than this. `HIERARCHY_UNBOUNDED` for no limit (bitECS `Hierarchy()`
|
|
119
|
+
* depth arg). */
|
|
120
|
+
readonly maxDepth: number;
|
|
121
|
+
}
|
|
122
|
+
export declare function termCacheKey(queryId: number, sparseId: number): number;
|
|
123
|
+
export declare function appendSparse(terms: readonly SparseComponentID[], id: number): readonly SparseComponentID[];
|
|
124
|
+
export declare function appendOptional(terms: readonly ComponentID[], id: number): readonly ComponentID[];
|
|
125
|
+
export declare function appendRelation(terms: readonly RelationDef[], def: RelationDef): readonly RelationDef[];
|
|
126
|
+
//# sourceMappingURL=query_terms.d.ts.map
|