@oasys/oecs 0.4.0 → 0.5.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 +553 -0
- package/README.md +42 -31
- package/dist/core/ecs/access_check.d.cts +77 -0
- package/dist/core/ecs/access_check.d.ts +8 -8
- package/dist/core/ecs/access_check.d.ts.map +1 -1
- package/dist/core/ecs/archetype.d.cts +486 -0
- package/dist/core/ecs/archetype.d.ts +23 -11
- package/dist/core/ecs/archetype.d.ts.map +1 -1
- package/dist/core/ecs/archetype_graph.d.cts +96 -0
- package/dist/core/ecs/archetype_graph.d.ts +96 -0
- package/dist/core/ecs/archetype_graph.d.ts.map +1 -0
- package/dist/core/ecs/builtin_relations.d.cts +43 -0
- package/dist/core/ecs/builtin_relations.d.ts +8 -8
- package/dist/core/ecs/builtin_relations.d.ts.map +1 -1
- package/dist/core/ecs/command_log.d.cts +116 -0
- package/dist/core/ecs/command_log.d.ts +13 -10
- package/dist/core/ecs/command_log.d.ts.map +1 -1
- package/dist/core/ecs/component.d.cts +176 -0
- package/dist/core/ecs/component.d.ts +75 -5
- package/dist/core/ecs/component.d.ts.map +1 -1
- package/dist/core/ecs/compute_backend.d.cts +37 -0
- package/dist/core/ecs/compute_backend.d.ts +2 -2
- package/dist/core/ecs/debug_names.d.cts +7 -0
- package/dist/core/ecs/debug_names.d.ts +7 -0
- package/dist/core/ecs/debug_names.d.ts.map +1 -0
- package/dist/core/ecs/deferred_commands.d.cts +55 -0
- package/dist/core/ecs/deferred_commands.d.ts +55 -0
- package/dist/core/ecs/deferred_commands.d.ts.map +1 -0
- package/dist/core/ecs/dispatch_trace.d.cts +93 -0
- package/dist/core/ecs/dispatch_trace.d.ts +3 -3
- package/dist/core/ecs/ecs.d.cts +562 -0
- package/dist/core/ecs/ecs.d.ts +314 -285
- package/dist/core/ecs/ecs.d.ts.map +1 -1
- package/dist/core/ecs/ecs_memory.d.cts +179 -0
- package/dist/core/ecs/ecs_memory.d.ts +1 -1
- package/dist/core/ecs/entity.d.cts +34 -0
- package/dist/core/ecs/entity.d.ts +7 -1
- package/dist/core/ecs/entity.d.ts.map +1 -1
- package/dist/core/ecs/entity_allocator.d.cts +59 -0
- package/dist/core/ecs/entity_allocator.d.ts +59 -0
- package/dist/core/ecs/entity_allocator.d.ts.map +1 -0
- package/dist/core/ecs/event.d.cts +79 -0
- package/dist/core/ecs/event.d.ts +36 -11
- package/dist/core/ecs/event.d.ts.map +1 -1
- package/dist/core/ecs/event_registry.d.cts +22 -0
- package/dist/core/ecs/event_registry.d.ts +22 -0
- package/dist/core/ecs/event_registry.d.ts.map +1 -0
- package/dist/core/ecs/facades.d.cts +158 -0
- package/dist/core/ecs/facades.d.ts +158 -0
- package/dist/core/ecs/facades.d.ts.map +1 -0
- package/dist/core/ecs/frame_stepper.d.cts +58 -0
- package/dist/core/ecs/frame_stepper.d.ts +58 -0
- package/dist/core/ecs/frame_stepper.d.ts.map +1 -0
- package/dist/core/ecs/frame_trace.d.cts +133 -0
- package/dist/core/ecs/frame_trace.d.ts +5 -5
- package/dist/core/ecs/frame_trace.d.ts.map +1 -1
- package/dist/core/ecs/host_commands.d.cts +274 -0
- package/dist/core/ecs/host_commands.d.ts +53 -31
- package/dist/core/ecs/host_commands.d.ts.map +1 -1
- package/dist/core/ecs/index.d.cts +46 -0
- package/dist/core/ecs/index.d.ts +45 -40
- package/dist/core/ecs/index.d.ts.map +1 -1
- package/dist/core/ecs/observer.d.cts +173 -0
- package/dist/core/ecs/observer.d.ts +43 -12
- package/dist/core/ecs/observer.d.ts.map +1 -1
- package/dist/core/ecs/query.d.cts +718 -0
- package/dist/core/ecs/query.d.ts +251 -90
- package/dist/core/ecs/query.d.ts.map +1 -1
- package/dist/core/ecs/ref.d.cts +31 -0
- package/dist/core/ecs/ref.d.ts +3 -3
- package/dist/core/ecs/relation.d.cts +243 -0
- package/dist/core/ecs/relation.d.ts +26 -14
- package/dist/core/ecs/relation.d.ts.map +1 -1
- package/dist/core/ecs/relation_service.d.cts +235 -0
- package/dist/core/ecs/relation_service.d.ts +235 -0
- package/dist/core/ecs/relation_service.d.ts.map +1 -0
- package/dist/core/ecs/resource.d.cts +53 -0
- package/dist/core/ecs/resource.d.ts +25 -5
- package/dist/core/ecs/resource.d.ts.map +1 -1
- package/dist/core/ecs/resource_registry.d.cts +20 -0
- package/dist/core/ecs/resource_registry.d.ts +20 -0
- package/dist/core/ecs/resource_registry.d.ts.map +1 -0
- package/dist/core/ecs/resume.d.cts +85 -0
- package/dist/core/ecs/resume.d.ts +6 -6
- package/dist/core/ecs/resume.d.ts.map +1 -1
- package/dist/core/ecs/run_condition.d.cts +81 -0
- package/dist/core/ecs/run_condition.d.ts +15 -9
- package/dist/core/ecs/run_condition.d.ts.map +1 -1
- package/dist/core/ecs/schedule.d.cts +142 -0
- package/dist/core/ecs/schedule.d.ts +15 -6
- package/dist/core/ecs/schedule.d.ts.map +1 -1
- package/dist/core/ecs/snapshot_service.d.cts +94 -0
- package/dist/core/ecs/snapshot_service.d.ts +94 -0
- package/dist/core/ecs/snapshot_service.d.ts.map +1 -0
- package/dist/core/ecs/sparse_store.d.cts +110 -0
- package/dist/core/ecs/sparse_store.d.ts +5 -2
- package/dist/core/ecs/sparse_store.d.ts.map +1 -1
- package/dist/core/ecs/store.d.cts +950 -0
- package/dist/core/ecs/store.d.ts +143 -342
- package/dist/core/ecs/store.d.ts.map +1 -1
- package/dist/core/ecs/store_layout_listener.d.cts +23 -0
- package/dist/core/ecs/system.d.cts +250 -0
- package/dist/core/ecs/system.d.ts +138 -22
- package/dist/core/ecs/system.d.ts.map +1 -1
- package/dist/{utils/arrays.d.ts → core/ecs/utils/arrays.d.cts} +1 -0
- package/dist/core/ecs/utils/error.d.cts +61 -0
- package/dist/core/ecs/utils/error.d.ts +12 -2
- package/dist/core/ecs/utils/error.d.ts.map +1 -1
- package/dist/core/store/action_ring.d.cts +136 -0
- package/dist/core/store/allocator.d.cts +238 -0
- package/dist/core/store/allocator.d.ts.map +1 -1
- package/dist/core/store/buffer_backed_column.d.cts +69 -0
- package/dist/core/store/buffer_backed_column.d.ts +2 -2
- package/dist/core/store/column_store.d.cts +273 -0
- package/dist/core/store/column_store.d.ts +18 -10
- package/dist/core/store/column_store.d.ts.map +1 -1
- package/dist/core/store/command_dispatch.d.cts +52 -0
- package/dist/core/store/command_ring.d.cts +107 -0
- package/dist/core/store/descriptor.d.cts +80 -0
- package/dist/core/store/descriptor.d.ts +1 -1
- package/dist/core/store/descriptor.d.ts.map +1 -1
- package/dist/core/store/entity_index.d.cts +108 -0
- package/dist/core/store/event_ring.d.cts +95 -0
- package/dist/core/store/extend.d.cts +39 -0
- package/dist/core/store/extend.d.ts +3 -73
- package/dist/core/store/extend.d.ts.map +1 -1
- package/dist/core/store/grow.d.cts +34 -0
- package/dist/core/store/grow.d.ts +4 -9
- package/dist/core/store/grow.d.ts.map +1 -1
- package/dist/core/store/header.d.cts +64 -0
- package/dist/core/store/header.d.ts +1 -1
- package/dist/core/store/header.d.ts.map +1 -1
- package/dist/core/store/index.d.cts +17 -0
- package/dist/core/store/index.d.ts +16 -15
- package/dist/core/store/index.d.ts.map +1 -1
- package/dist/core/store/layout_ops.d.cts +152 -0
- package/dist/core/store/layout_ops.d.ts +152 -0
- package/dist/core/store/layout_ops.d.ts.map +1 -0
- package/dist/core/store/region_table.d.cts +74 -0
- package/dist/core/store/region_table.d.ts +1 -1
- package/dist/core/store/region_table.d.ts.map +1 -1
- package/dist/core/store/snapshot.d.cts +43 -0
- package/dist/core/store/snapshot.d.ts +2 -2
- package/dist/core/store/state_hash.d.cts +38 -0
- package/dist/core/store/state_hash.d.ts +1 -1
- package/dist/core/store/store_regions.d.cts +38 -0
- package/dist/core/store/store_regions.d.ts +1 -1
- package/dist/core/store/vendored_abi/abi.d.ts +43 -0
- package/dist/core/store/{__generated__ → vendored_abi}/abi.d.ts.map +1 -1
- package/dist/dev_flag.d.cts +17 -0
- package/dist/dev_flag.d.ts +17 -0
- package/dist/dev_flag.d.ts.map +1 -0
- package/dist/extensions/editor/editor.d.cts +170 -0
- package/dist/extensions/editor/editor.d.ts +43 -22
- package/dist/extensions/editor/editor.d.ts.map +1 -1
- package/dist/extensions/editor/field_handle.d.cts +40 -0
- package/dist/extensions/editor/field_handle.d.ts +8 -3
- package/dist/extensions/editor/field_handle.d.ts.map +1 -1
- package/dist/extensions/editor/index.cjs +1 -1
- package/dist/extensions/editor/index.d.cts +21 -0
- package/dist/extensions/editor/index.d.ts +2 -2
- package/dist/extensions/editor/index.js +116 -88
- package/dist/extensions/reactive/ecs_sync.d.cts +214 -0
- package/dist/extensions/reactive/ecs_sync.d.ts +26 -22
- package/dist/extensions/reactive/ecs_sync.d.ts.map +1 -1
- package/dist/extensions/reactive/index.cjs +1 -1
- package/dist/extensions/reactive/index.d.cts +23 -0
- package/dist/extensions/reactive/index.d.ts +1 -1
- package/dist/extensions/reactive/index.js +106 -116
- package/dist/extensions/solid/index.cjs +1 -1
- package/dist/extensions/solid/index.d.cts +6 -0
- package/dist/extensions/solid/index.d.ts +2 -2
- package/dist/extensions/solid/index.js +8 -4
- package/dist/extensions/solid/kernel_solid.d.cts +45 -0
- package/dist/extensions/solid/kernel_solid.d.ts +6 -3
- package/dist/extensions/solid/kernel_solid.d.ts.map +1 -1
- package/dist/host_commands-BF8QMi3c.cjs +1 -0
- package/dist/host_commands-i4cAeyL5.js +2318 -0
- package/dist/index.cjs +1 -2
- package/dist/index.d.cts +66 -0
- package/dist/index.d.ts +50 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4469 -5933
- package/dist/internal.cjs +2 -0
- package/dist/internal.d.cts +20 -0
- package/dist/internal.d.ts +20 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +141 -0
- package/dist/primitives.cjs +1 -1
- package/dist/primitives.d.cts +18 -0
- package/dist/primitives.d.ts +6 -6
- package/dist/primitives.js +24 -23
- package/dist/reactive/array.d.ts +24 -0
- package/dist/reactive/array.d.ts.map +1 -0
- package/dist/reactive/index.cjs +1 -0
- package/dist/reactive/index.d.cts +11 -0
- package/dist/reactive/index.d.ts +11 -0
- package/dist/reactive/index.d.ts.map +1 -0
- package/dist/reactive/index.js +18 -0
- package/dist/reactive/interop.d.cts +19 -0
- package/dist/{core/reactive → reactive}/interop.d.ts +1 -1
- package/dist/reactive/interop.d.ts.map +1 -0
- package/dist/reactive/kernel.d.cts +73 -0
- package/dist/{core/reactive → reactive}/kernel.d.ts +5 -3
- package/dist/reactive/kernel.d.ts.map +1 -0
- package/dist/reactive/map.d.ts +16 -0
- package/dist/reactive/map.d.ts.map +1 -0
- package/dist/reactive/shallow.d.cts +11 -0
- package/dist/reactive/shallow.d.ts +11 -0
- package/dist/reactive/shallow.d.ts.map +1 -0
- package/dist/reactive/struct.d.cts +10 -0
- package/dist/{core/reactive → reactive}/struct.d.ts +1 -1
- package/dist/reactive/struct.d.ts.map +1 -0
- package/dist/shallow-DQ8aG51_.cjs +1 -0
- package/dist/shallow-DfnAm9vG.js +150 -0
- package/dist/shared-BU1Cd40h.js +103 -0
- package/dist/shared-BymrGTyR.cjs +1 -0
- package/dist/shared.cjs +1 -1
- package/dist/shared.d.cts +22 -0
- package/dist/shared.d.ts +2 -2
- package/dist/shared.js +1 -1
- package/dist/topological_sort-BDvEyb9W.cjs +1 -0
- package/dist/topological_sort-DK6EjpWa.js +135 -0
- package/dist/type_primitives/assertions.d.cts +32 -0
- package/dist/type_primitives/assertions.d.ts +13 -1
- package/dist/type_primitives/assertions.d.ts.map +1 -1
- package/dist/type_primitives/binary_heap/binary_heap.d.cts +37 -0
- package/dist/type_primitives/bitset/bitset.d.cts +54 -0
- package/dist/type_primitives/brand.d.cts +23 -0
- package/dist/type_primitives/error.d.cts +16 -0
- package/dist/type_primitives/error.d.ts +4 -3
- package/dist/type_primitives/error.d.ts.map +1 -1
- package/dist/type_primitives/index.d.cts +13 -0
- package/dist/type_primitives/index.d.ts +9 -9
- package/dist/type_primitives/sparse_map/sparse_map.d.cts +30 -0
- package/dist/type_primitives/sparse_set/sparse_set.d.cts +28 -0
- package/dist/type_primitives/topological_sort/topological_sort.d.cts +29 -0
- package/dist/type_primitives/typed_arrays/typed_arrays.d.cts +127 -0
- package/dist/typed_arrays-BcXcnzB4.js +258 -0
- package/dist/typed_arrays-D3NmwtCG.cjs +1 -0
- package/dist/utils/error.d.cts +6 -0
- package/dist/version.d.cts +10 -0
- package/dist/version.d.ts +10 -0
- package/dist/version.d.ts.map +1 -0
- package/package.json +102 -19
- package/dist/array-CxbPyiHO.cjs +0 -1
- package/dist/array-uFR7Q8fU.js +0 -132
- package/dist/core/reactive/array.d.ts.map +0 -1
- package/dist/core/reactive/index.cjs +0 -1
- package/dist/core/reactive/index.d.ts +0 -10
- package/dist/core/reactive/index.d.ts.map +0 -1
- package/dist/core/reactive/index.js +0 -17
- package/dist/core/reactive/interop.d.ts.map +0 -1
- package/dist/core/reactive/kernel.d.ts.map +0 -1
- package/dist/core/reactive/map.d.ts.map +0 -1
- package/dist/core/reactive/struct.d.ts.map +0 -1
- package/dist/log/console_sink.d.ts +0 -4
- package/dist/log/console_sink.d.ts.map +0 -1
- package/dist/log/index.d.ts +0 -3
- package/dist/log/index.d.ts.map +0 -1
- package/dist/log/logger.d.ts +0 -27
- package/dist/log/logger.d.ts.map +0 -1
- package/dist/shared-BXSZnxx4.cjs +0 -1
- package/dist/shared-C678TAPY.js +0 -99
- package/dist/topological_sort-DlRpSrxu.js +0 -391
- package/dist/topological_sort-WAT-VHb-.cjs +0 -1
- package/dist/utils/arrays.d.ts.map +0 -1
- package/dist/utils/constants.d.ts.map +0 -1
- /package/dist/{utils/constants.d.ts → core/ecs/utils/constants.d.cts} +0 -0
- /package/dist/core/store/{__generated__/abi.d.ts → vendored_abi/abi.d.cts} +0 -0
- /package/dist/{core/reactive/array.d.ts → reactive/array.d.cts} +0 -0
- /package/dist/{core/reactive/map.d.ts → reactive/map.d.cts} +0 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entity-index SAB region — `EntityID` → `(archetype_id, row, generation)`
|
|
3
|
+
* lookup table shared with the Zig sim. (#245 / Phase 4 PR 4B)
|
|
4
|
+
*
|
|
5
|
+
* Every hot fixed-update system that needs to resolve an `EntityID`
|
|
6
|
+
* held in a column (e.g. a component field that points at another
|
|
7
|
+
* entity → that entity's columns) has to do
|
|
8
|
+
* `entityId → archetype + row` translation. The plan forbids
|
|
9
|
+
* WASM-into-TS callbacks during `tick()` (§4 / §5.2), so the lookup
|
|
10
|
+
* tables must live in shared memory.
|
|
11
|
+
*
|
|
12
|
+
* Layout:
|
|
13
|
+
*
|
|
14
|
+
* [ length: u32 ] high-water index (count of slots ever issued)
|
|
15
|
+
* [ capacity: u32 ] backing-array length (slots × 1; not bytes)
|
|
16
|
+
* [ _pad0: u32 ] alignment pad to 16 bytes
|
|
17
|
+
* [ _pad1: u32 ] ───
|
|
18
|
+
* [ generations[capacity]: i32 ]
|
|
19
|
+
* [ archetypes[capacity]: i32 ]
|
|
20
|
+
* [ rows[capacity]: i32 ]
|
|
21
|
+
*
|
|
22
|
+
* Sentinels:
|
|
23
|
+
* - `generations[i] = 0` (INITIAL_GENERATION) for never-used slots.
|
|
24
|
+
* Generation grows by 1 on every destroy; an `EntityID`'s generation
|
|
25
|
+
* field matches `generations[index]` iff it's still alive.
|
|
26
|
+
* - `archetypes[i] = -1` (UNASSIGNED) when the slot hasn't been placed
|
|
27
|
+
* into an archetype, OR when the entity is destroyed.
|
|
28
|
+
* - `rows[i] = -1` (UNASSIGNED) on destroy / not-placed.
|
|
29
|
+
*
|
|
30
|
+
* Field width: i32 (signed) on the TS side so `-1` round-trips through
|
|
31
|
+
* `Int32Array` without unsigned coercion. Zig reads as i32 too — bit
|
|
32
|
+
* pattern is identical to u32 `0xFFFFFFFF` for the UNASSIGNED case, and
|
|
33
|
+
* for valid archetype_ids (bounded by `MAX_INDEX = 2^20`) the sign bit
|
|
34
|
+
* is never set, so signed/unsigned interpretation agrees.
|
|
35
|
+
*
|
|
36
|
+
* Region placement: between command ring and descriptor region so the
|
|
37
|
+
* offset is stable across descriptor / column-region growth (same
|
|
38
|
+
* property the command ring gets). Grow path (when entityHighWater
|
|
39
|
+
* exceeds `capacity`) uses `growColumnStore` — slow path, same as
|
|
40
|
+
* descriptor-region overflow.
|
|
41
|
+
*
|
|
42
|
+
* Reading from Zig: see `packages/sim/src/entity_index.zig` for the
|
|
43
|
+
* symmetric reader.
|
|
44
|
+
*/
|
|
45
|
+
/** Fixed bytes of the region header (length, capacity, two pad u32s for
|
|
46
|
+
* 16-byte alignment of the i32 arrays that follow). */
|
|
47
|
+
export declare const ENTITY_INDEX_HEADER_BYTES = 16;
|
|
48
|
+
/** Bytes per slot: three i32 columns. */
|
|
49
|
+
export declare const ENTITY_INDEX_BYTES_PER_SLOT = 12;
|
|
50
|
+
/** Byte offsets within the region header. Locked by the
|
|
51
|
+
* `entity_index.test.ts` golden bytes; any change here is a
|
|
52
|
+
* `SIM_ABI_VERSION` bump. */
|
|
53
|
+
export declare const ENTITY_INDEX_HEADER_OFFSETS: {
|
|
54
|
+
readonly length: 0;
|
|
55
|
+
readonly capacity: 4;
|
|
56
|
+
};
|
|
57
|
+
/** Default initial slot count when the engine creates a Store. Matches
|
|
58
|
+
* `MAX_INDEX = (1 << 20) - 1 + 1 = 1_048_576` (the EntityID 20-bit index
|
|
59
|
+
* range, see `entity.ts`), so the region pre-sizes to the entire
|
|
60
|
+
* addressable entity space and `createEntity` can never run out under
|
|
61
|
+
* the default. 1M × 12 B ≈ 12 MiB SAB region — virtual memory only;
|
|
62
|
+
* physical pages allocate lazily via OS page-fault on first touch, so
|
|
63
|
+
* the typical 1000-entity workload pays for ~12 KiB physical even though the
|
|
64
|
+
* virtual reservation is 12 MiB.
|
|
65
|
+
*
|
|
66
|
+
* Tests / benches can pass a smaller `StoreOptions.entityIndexCapacity`
|
|
67
|
+
* to bench tighter reservations. A future PR will replace this with
|
|
68
|
+
* on-demand growth via `growColumnStore` so the default can drop. */
|
|
69
|
+
export declare const ENTITY_INDEX_DEFAULT_CAPACITY: number;
|
|
70
|
+
/** Total region bytes for `capacity` slots: header + 3 i32 columns. */
|
|
71
|
+
export declare function entityIndexRegionBytes(capacity: number): number;
|
|
72
|
+
/** Byte offset of the generations column within the region. */
|
|
73
|
+
export declare function entityIndexGenerationsOff(regionOff: number): number;
|
|
74
|
+
/** Byte offset of the archetype-id column. */
|
|
75
|
+
export declare function entityIndexArchetypesOff(regionOff: number, capacity: number): number;
|
|
76
|
+
/** Byte offset of the row column. */
|
|
77
|
+
export declare function entityIndexRowsOff(regionOff: number, capacity: number): number;
|
|
78
|
+
export declare class EntityIndexError extends Error {
|
|
79
|
+
constructor(message: string);
|
|
80
|
+
}
|
|
81
|
+
/** Initialise the region header at `regionOff`. Sets `length=0` and
|
|
82
|
+
* `capacity=<arg>`. The i32 arrays past the header are left untouched
|
|
83
|
+
* (callers normally allocate the region on a fresh, zero-initialised
|
|
84
|
+
* SAB; generation 0 is the INITIAL_GENERATION sentinel, archetype/row
|
|
85
|
+
* sentinels of 0 are caught by `length=0` so no read reaches them). */
|
|
86
|
+
export declare function initEntityIndexRegion(view: DataView, regionOff: number, capacity: number): void;
|
|
87
|
+
/** Read the region's current length (high-water index, ≤ capacity). */
|
|
88
|
+
export declare function entityIndexLength(view: DataView, regionOff: number): number;
|
|
89
|
+
/** Read the region's current capacity (backing-array length). */
|
|
90
|
+
export declare function entityIndexCapacity(view: DataView, regionOff: number): number;
|
|
91
|
+
/** Update the region's length (called from the engine's Store on every
|
|
92
|
+
* entity allocation that pushes `entityHighWater` past its previous
|
|
93
|
+
* value). */
|
|
94
|
+
export declare function setEntityIndexLength(view: DataView, regionOff: number, length: number): void;
|
|
95
|
+
/** Materialise the three Int32Array views over the region's column data
|
|
96
|
+
* for use by the engine's Store. The views live as long as the
|
|
97
|
+
* SharedArrayBuffer hasn't been reallocated — refresh on `view_stamp`
|
|
98
|
+
* bump (the engine's `_onBufferResized` callback).
|
|
99
|
+
*
|
|
100
|
+
* Three separate views (not a single struct-of-arrays object) because
|
|
101
|
+
* the engine's hot paths benefit from each being a direct typed-array
|
|
102
|
+
* read; V8 specialises `arr[i] = v` aggressively for typed arrays. */
|
|
103
|
+
export declare function buildEntityIndexViews(buffer: ArrayBufferLike, regionOff: number, capacity: number): {
|
|
104
|
+
readonly generations: Int32Array;
|
|
105
|
+
readonly archetypes: Int32Array;
|
|
106
|
+
readonly rows: Int32Array;
|
|
107
|
+
};
|
|
108
|
+
//# sourceMappingURL=entity_index.d.ts.map
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event ring — SPSC ring buffer for ECS signal/event payloads shared
|
|
3
|
+
* between TS and the Zig sim. (#247 / Phase 4 PR 4C)
|
|
4
|
+
*
|
|
5
|
+
* Same byte layout as the command ring (`command_ring.ts`); the two
|
|
6
|
+
* could share a primitive but keeping them separate makes the
|
|
7
|
+
* direction of flow explicit: command ring is WASM→TS (structural
|
|
8
|
+
* intents to drain post-tick); event ring is bidirectional during
|
|
9
|
+
* `tick()` — Zig systems push events, TS readers (or other Zig
|
|
10
|
+
* systems) drain.
|
|
11
|
+
*
|
|
12
|
+
* Layout (identical to command ring):
|
|
13
|
+
*
|
|
14
|
+
* [ write_head: u32 ] slot 0..N-1, monotonic (NOT slot-modulo)
|
|
15
|
+
* [ read_head: u32 ] slot 0..N-1, monotonic
|
|
16
|
+
* [ capacity: u32 ] slot count, power-of-two
|
|
17
|
+
* [ overflow_flag: u32 ] 0 = OK; 1 = sticky overflow witness
|
|
18
|
+
* [ slot 0: 16 B ] opCode: u8, payload: [15]u8
|
|
19
|
+
* [ slot 1: 16 B ] ...
|
|
20
|
+
*
|
|
21
|
+
* Op codes: event-def IDs (assigned by `ECS.registerEvent()` at
|
|
22
|
+
* registration time; #247 plan §required-FFI). The 0 op-code is
|
|
23
|
+
* reserved as the empty-slot marker so a zero-initialised SAB does not
|
|
24
|
+
* appear to hold a valid event. Event-def registration starts numbering
|
|
25
|
+
* from 1 to honour this; the engine integration in 4D+ enforces it.
|
|
26
|
+
*
|
|
27
|
+
* SPSC contract (Phase 4 scope, single host thread):
|
|
28
|
+
* - Producer: Zig sim `tick()` (post-4D) OR TS host (test producers /
|
|
29
|
+
* existing JS-side emitters bridged into the ring).
|
|
30
|
+
* - Consumer: TS host drain (post-4D) OR Zig system that reads
|
|
31
|
+
* queued events from a sibling system.
|
|
32
|
+
* - The two never run concurrently in Phase 4 (single host thread
|
|
33
|
+
* orchestrates both). Phase 5's worker offload promotes the head
|
|
34
|
+
* bumps to `Atomics.store`; that's an additive change without
|
|
35
|
+
* altering the layout.
|
|
36
|
+
*
|
|
37
|
+
* Payload size: fixed 15 bytes per slot. Today's events all fit
|
|
38
|
+
* (e.g. a 12-byte 3-field event, a 4-byte 1-field event, a 0-field
|
|
39
|
+
* signal). Larger payloads require a separate variable-size ring
|
|
40
|
+
* design — out of scope here.
|
|
41
|
+
*
|
|
42
|
+
* Region placement: between the entity-index region and the descriptor
|
|
43
|
+
* region so its offset is stable across descriptor / column growth.
|
|
44
|
+
* `header.event_ring_off` (the field promoted out of `_reserved0` in
|
|
45
|
+
* #245's reservation) carries the offset; 0 means absent.
|
|
46
|
+
*/
|
|
47
|
+
/** Total bytes for the ring header. Matches command ring exactly. */
|
|
48
|
+
export declare const EVENT_RING_HEADER_BYTES = 16;
|
|
49
|
+
/** Fixed slot size — 1-byte opCode + 15-byte payload. Matches
|
|
50
|
+
* command ring exactly. */
|
|
51
|
+
export declare const EVENT_RING_SLOT_BYTES = 16;
|
|
52
|
+
/** Default ring capacity in slots. 256 × 16 B = 4 KiB of slot data
|
|
53
|
+
* plus 16 B header. Mirrors `COMMAND_RING_DEFAULT_CAPACITY_SLOTS`. */
|
|
54
|
+
export declare const EVENT_RING_DEFAULT_CAPACITY_SLOTS = 256;
|
|
55
|
+
/** Byte offsets within the ring header. Mirrored on the Zig side in
|
|
56
|
+
* `packages/sim/src/event_ring.zig` — keep in sync. */
|
|
57
|
+
export declare const EVENT_RING_HEADER_OFFSETS: {
|
|
58
|
+
readonly write_head: 0;
|
|
59
|
+
readonly read_head: 4;
|
|
60
|
+
readonly capacity_slots: 8;
|
|
61
|
+
readonly overflow_flag: 12;
|
|
62
|
+
};
|
|
63
|
+
/** Op-code = `0` is reserved across the SAB layer as "empty slot"
|
|
64
|
+
* (see file header). Event-def IDs start at 1; `ECS.registerEvent`
|
|
65
|
+
* shifts to honour this when wiring SAB-backed channels in 4D+. */
|
|
66
|
+
export declare const EVENT_OP_EMPTY = 0;
|
|
67
|
+
/** Total bytes the ring occupies for `capacity_slots` slots. */
|
|
68
|
+
export declare function eventRingBytes(capacitySlots: number): number;
|
|
69
|
+
export declare class EventRingError extends Error {
|
|
70
|
+
constructor(message: string);
|
|
71
|
+
}
|
|
72
|
+
/** Initialise the ring header at `ringOff` in the SAB. Zeroes
|
|
73
|
+
* `write_head`, `read_head`, and `overflow_flag`; sets `capacity_slots`.
|
|
74
|
+
* Slot bytes are left as-is (callers normally allocate the ring on a
|
|
75
|
+
* fresh, zero-initialised SAB). */
|
|
76
|
+
export declare function initEventRing(view: DataView, ringOff: number, capacitySlots: number): void;
|
|
77
|
+
export declare function ringWriteHead(view: DataView, ringOff: number): number;
|
|
78
|
+
export declare function ringReadHead(view: DataView, ringOff: number): number;
|
|
79
|
+
export declare function ringCapacitySlots(view: DataView, ringOff: number): number;
|
|
80
|
+
export declare function ringOverflow(view: DataView, ringOff: number): boolean;
|
|
81
|
+
/** Pending event count = `(write_head - read_head) mod 2^32`. */
|
|
82
|
+
export declare function pendingEventCount(view: DataView, ringOff: number): number;
|
|
83
|
+
/** Push an event into the ring. Returns `false` on overflow and sets
|
|
84
|
+
* the (sticky) overflow flag. `opCode` must be > 0 — 0 is reserved as
|
|
85
|
+
* the empty-slot marker. Payload must be exactly 15 bytes. */
|
|
86
|
+
export declare function pushEvent(view: DataView, ringOff: number, opCode: number, payload: Uint8Array): boolean;
|
|
87
|
+
/** Read one event from the ring. Returns opCode (0 = empty/no event)
|
|
88
|
+
* and fills `outPayload` with 15 bytes. When 0 is returned,
|
|
89
|
+
* `outPayload` is untouched. */
|
|
90
|
+
export declare function popEvent(view: DataView, ringOff: number, outPayload: Uint8Array): number;
|
|
91
|
+
/** Drain every pending event, calling `handler` for each. Yields a
|
|
92
|
+
* freshly-copied 15-byte Uint8Array per event so handlers can hold the
|
|
93
|
+
* payload past the next iteration. Returns the count drained. */
|
|
94
|
+
export declare function drainEventRing(view: DataView, ringOff: number, handler: (opCode: number, payload: Uint8Array) => void): number;
|
|
95
|
+
//# sourceMappingURL=event_ring.d.ts.map
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { ArchetypeSpec, ColumnStore } from './column_store.cjs';
|
|
2
|
+
import { BufferAllocator } from './allocator.cjs';
|
|
3
|
+
import { ArchetypeGrowSpec } from './layout_ops.cjs';
|
|
4
|
+
export interface ExtendPlan {
|
|
5
|
+
/** Archetypes to append. Each `archetype_id` MUST be absent from
|
|
6
|
+
* `old.archetypes`; collisions throw `StoreExtendError`. */
|
|
7
|
+
readonly newArchetypes: readonly ArchetypeSpec[];
|
|
8
|
+
/** Per-existing-archetype live row counts. Same shape as
|
|
9
|
+
* `GrowPlan.archetypes` so callers can reuse plan-building helpers.
|
|
10
|
+
* Omitted or `0` ⇒ no rows to copy (the archetype is empty). */
|
|
11
|
+
readonly existing?: readonly ArchetypeGrowSpec[];
|
|
12
|
+
}
|
|
13
|
+
export interface ExtendResult {
|
|
14
|
+
readonly store: ColumnStore;
|
|
15
|
+
readonly oldViewStamp: number;
|
|
16
|
+
readonly newViewStamp: number;
|
|
17
|
+
/** True when the in-place fast path (#237 Option A) was taken: the SAB
|
|
18
|
+
* instance is reused, existing column TypedArray views are unchanged,
|
|
19
|
+
* and callers may skip `refreshViews` on every pre-existing
|
|
20
|
+
* Archetype. False when the slow path ran (fresh SAB or wasm-memory
|
|
21
|
+
* grow with detached views); callers MUST refresh every Archetype's
|
|
22
|
+
* SAB-backed columns from the returned `store` before reading them. */
|
|
23
|
+
readonly viewsPreserved: boolean;
|
|
24
|
+
}
|
|
25
|
+
export declare class StoreExtendError extends Error {
|
|
26
|
+
constructor(message: string);
|
|
27
|
+
}
|
|
28
|
+
/** Allocate a new SAB sized for `old` + `plan.newArchetypes`, copy
|
|
29
|
+
* existing rows, bump `view_stamp`.
|
|
30
|
+
*
|
|
31
|
+
* `allocator` (PR 3D / #234): pluggable buffer source forwarded into
|
|
32
|
+
* `createColumnStore`. When the allocator is `wasmMemoryAllocator`,
|
|
33
|
+
* `memory.grow` may detach `old`'s typed-array views before the copy
|
|
34
|
+
* runs — so live rows are snapshotted into heap `Uint8Array`s BEFORE the
|
|
35
|
+
* allocator call and restored into the new views afterwards. The cost
|
|
36
|
+
* is one extra heap allocation per live archetype-column; negligible
|
|
37
|
+
* compared to the SAB walk itself. */
|
|
38
|
+
export declare function extendColumnStore(old: ColumnStore, plan: ExtendPlan, allocator?: BufferAllocator): ExtendResult;
|
|
39
|
+
//# sourceMappingURL=extend.d.ts.map
|
|
@@ -1,76 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { StoreRegionOffsetField } from './store_regions';
|
|
5
|
-
/**
|
|
6
|
-
* Derive `CreateColumnStoreOptions` from an old ColumnStore so a slow-path realloc
|
|
7
|
-
* preserves the same set of optional regions at the same byte offsets in the
|
|
8
|
-
* new SAB. Without this, an extend / grow would silently drop a region — the
|
|
9
|
-
* command ring's pending commands, every entity placement in the index, etc.
|
|
10
|
-
* would be lost.
|
|
11
|
-
*
|
|
12
|
-
* Walks `STORE_PREFIX_REGIONS`: each present region's `readOptions` replays the
|
|
13
|
-
* exact capacity the engine configured (regions may carry non-default sizes),
|
|
14
|
-
* not just the default. Live state (write_head, length, …) is preserved
|
|
15
|
-
* separately via `snapshotPrefixRegions`.
|
|
16
|
-
*
|
|
17
|
-
* Also re-applies the descriptor-region headroom policy
|
|
18
|
-
* (`reservedDescriptorBytes`, #541). Unlike the prefix regions this is NOT
|
|
19
|
-
* read from the SAB bytes — it's a JS-side policy carried on
|
|
20
|
-
* `ColumnStoreInternal._reservedDescriptorBytes` — but it belongs here for the
|
|
21
|
-
* same reason: without it the realloc'd store drops to zero descriptor
|
|
22
|
-
* headroom and every later `extendColumnStore` takes the slow path forever.
|
|
23
|
-
* Re-reserving the same margin (additive, see `planLayout`) keeps the #237
|
|
24
|
-
* in-place fast path alive across reallocs.
|
|
25
|
-
*/
|
|
26
|
-
export declare function optionsFromOld(old: ColumnStore): CreateColumnStoreOptions;
|
|
27
|
-
/** A prefix-region snapshot: the live bytes of every present region from the
|
|
28
|
-
* old SAB. `mechanism` is keyed by the `StoreHeader` field holding a mechanism
|
|
29
|
-
* region's offset; `consumer` is keyed by `region_id` (consumer regions have no
|
|
30
|
-
* named header field). Pairs `snapshotPrefixRegions` with
|
|
31
|
-
* `restorePrefixRegions`. */
|
|
32
|
-
export interface PrefixRegionSnapshot {
|
|
33
|
-
readonly mechanism: Map<StoreRegionOffsetField, Uint8Array>;
|
|
34
|
-
readonly consumer: Map<number, Uint8Array>;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Snapshot the live bytes of every present region — both engine MECHANISM
|
|
38
|
-
* regions (STORE_PREFIX_REGIONS) and CONSUMER regions (the region-table
|
|
39
|
-
* directory) — from the old SAB BEFORE any allocator call that may detach
|
|
40
|
-
* views. Each entry is a heap `Uint8Array` copy (via `slice()`) so it survives
|
|
41
|
-
* an allocator-induced detach; `restorePrefixRegions` places it back at the
|
|
42
|
-
* matching offset in the new SAB.
|
|
43
|
-
*
|
|
44
|
-
* Header bytes themselves are NOT snapshotted — `createColumnStore` writes the
|
|
45
|
-
* header (and the region-table directory) from scratch with the correct
|
|
46
|
-
* view_stamp (bumped after this call) and offsets.
|
|
47
|
-
*/
|
|
48
|
-
export declare function snapshotPrefixRegions(old: ColumnStore): PrefixRegionSnapshot;
|
|
49
|
-
/** Restore prefix-region byte snapshots into `newStore` at the matching
|
|
50
|
-
* region offsets. Pairs with `snapshotPrefixRegions`. The new SAB's regions
|
|
51
|
-
* were sized identically by `optionsFromOld`, so each snapshot lands at the
|
|
52
|
-
* same length its source had — mechanism regions at their named header offset,
|
|
53
|
-
* consumer regions at the offset the rebuilt region-table resolves their id to. */
|
|
54
|
-
export declare function restorePrefixRegions(newStore: ColumnStore, snap: PrefixRegionSnapshot): void;
|
|
55
|
-
/**
|
|
56
|
-
* Snapshot per-archetype live column bytes from `old` BEFORE any
|
|
57
|
-
* subsequent allocator call may detach the underlying typed-array views.
|
|
58
|
-
* Returned shape: `{ archetype_id → Uint8Array[] }`, one entry per
|
|
59
|
-
* column in `columnsInOrder`. Each `Uint8Array` is a fresh copy
|
|
60
|
-
* (not a view) so it survives a `WebAssembly.Memory.grow`. Archetypes
|
|
61
|
-
* with `row_count === 0` are omitted — nothing to copy.
|
|
62
|
-
*
|
|
63
|
-
* Shared with `growColumnStore`; both functions need the same
|
|
64
|
-
* snapshot-before-allocate pattern under the wasm-memory allocator.
|
|
65
|
-
*/
|
|
66
|
-
export declare function snapshotLiveColumns(old: ColumnStore, rowCountsById: Map<number, number>): Map<number, Uint8Array[]>;
|
|
67
|
-
/**
|
|
68
|
-
* Write per-archetype column snapshots produced by `snapshotLiveColumns`
|
|
69
|
-
* into `newStore`'s column views. The snapshot's column ORDER must match
|
|
70
|
-
* the new archetype's `columnsInOrder` (extend / grow guarantee this
|
|
71
|
-
* because they carry the column spec forward unchanged).
|
|
72
|
-
*/
|
|
73
|
-
export declare function restoreColumnSnapshots(newStore: ColumnStore, snapshots: Map<number, Uint8Array[]>): void;
|
|
1
|
+
import { ArchetypeSpec, ColumnStore } from './column_store.js';
|
|
2
|
+
import { BufferAllocator } from './allocator.js';
|
|
3
|
+
import { ArchetypeGrowSpec } from './layout_ops.js';
|
|
74
4
|
export interface ExtendPlan {
|
|
75
5
|
/** Archetypes to append. Each `archetype_id` MUST be absent from
|
|
76
6
|
* `old.archetypes`; collisions throw `StoreExtendError`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extend.d.ts","sourceRoot":"","sources":["../../../src/core/store/extend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;
|
|
1
|
+
{"version":3,"file":"extend.d.ts","sourceRoot":"","sources":["../../../src/core/store/extend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,EAEN,KAAK,aAAa,EAElB,KAAK,WAAW,EAGhB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAMnD,OAAO,EAIN,KAAK,iBAAiB,EAEtB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,UAAU;IAC1B;gEAC4D;IAC5D,QAAQ,CAAC,aAAa,EAAE,SAAS,aAAa,EAAE,CAAC;IACjD;;oEAEgE;IAChE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACjD;AAED,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B;;;;;2EAKuE;IACvE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CACjC;AAED,qBAAa,gBAAiB,SAAQ,KAAK;gBAC9B,OAAO,EAAE,MAAM;CAI3B;AAED;;;;;;;;;sCASsC;AACtC,wBAAgB,iBAAiB,CAChC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,UAAU,EAChB,SAAS,CAAC,EAAE,eAAe,GACzB,YAAY,CAoId"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ColumnStore } from './column_store.cjs';
|
|
2
|
+
import { BufferAllocator } from './allocator.cjs';
|
|
3
|
+
import { ArchetypeGrowSpec } from './layout_ops.cjs';
|
|
4
|
+
export type { ArchetypeGrowSpec } from './layout_ops.cjs';
|
|
5
|
+
export interface GrowPlan {
|
|
6
|
+
readonly archetypes: readonly ArchetypeGrowSpec[];
|
|
7
|
+
}
|
|
8
|
+
/** Returned alongside the new `ColumnStore` so callers can sanity-check the
|
|
9
|
+
* grow (and so tests can assert it without re-reading the SAB). */
|
|
10
|
+
export interface GrowResult {
|
|
11
|
+
readonly store: ColumnStore;
|
|
12
|
+
readonly oldViewStamp: number;
|
|
13
|
+
readonly newViewStamp: number;
|
|
14
|
+
/** True when the in-place fast path ran: every archetype EXCEPT those in
|
|
15
|
+
* `grownArchetypeIds` kept its column views, so the caller only needs to
|
|
16
|
+
* `refreshViews` the grown ones. False on the realloc path, where the
|
|
17
|
+
* whole store moved and every view must be refreshed. */
|
|
18
|
+
readonly viewsPreserved: boolean;
|
|
19
|
+
/** Archetype ids whose columns were relocated (in-place path). Empty on
|
|
20
|
+
* the realloc path. */
|
|
21
|
+
readonly grownArchetypeIds: readonly number[];
|
|
22
|
+
}
|
|
23
|
+
export declare class StoreGrowError extends Error {
|
|
24
|
+
constructor(message: string);
|
|
25
|
+
}
|
|
26
|
+
/** Allocate a new SAB sized for `plan`, copy live rows from `old`, bump
|
|
27
|
+
* `view_stamp`. With the default allocator the old SAB is untouched and
|
|
28
|
+
* callers may continue reading from it until they finish swapping in
|
|
29
|
+
* the new views. With a `wasmMemoryAllocator`, `old`'s typed-array
|
|
30
|
+
* views may be detached as soon as `createColumnStore` returns — live
|
|
31
|
+
* data is snapshotted before the allocator call to make both code paths
|
|
32
|
+
* behave identically from the caller's perspective. (PR 3D / #234) */
|
|
33
|
+
export declare function growColumnStore(old: ColumnStore, plan: GrowPlan, allocator?: BufferAllocator): GrowResult;
|
|
34
|
+
//# sourceMappingURL=grow.d.ts.map
|
|
@@ -1,12 +1,7 @@
|
|
|
1
|
-
import { ColumnStore } from './column_store';
|
|
2
|
-
import { BufferAllocator } from './allocator';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export interface ArchetypeGrowSpec {
|
|
6
|
-
readonly archetypeId: number;
|
|
7
|
-
readonly newRowCapacity: number;
|
|
8
|
-
readonly rowCount: number;
|
|
9
|
-
}
|
|
1
|
+
import { ColumnStore } from './column_store.js';
|
|
2
|
+
import { BufferAllocator } from './allocator.js';
|
|
3
|
+
import { ArchetypeGrowSpec } from './layout_ops.js';
|
|
4
|
+
export type { ArchetypeGrowSpec } from './layout_ops.js';
|
|
10
5
|
export interface GrowPlan {
|
|
11
6
|
readonly archetypes: readonly ArchetypeGrowSpec[];
|
|
12
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grow.d.ts","sourceRoot":"","sources":["../../../src/core/store/grow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;
|
|
1
|
+
{"version":3,"file":"grow.d.ts","sourceRoot":"","sources":["../../../src/core/store/grow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AASH,OAAO,EAIN,KAAK,WAAW,EAGhB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAIN,KAAK,iBAAiB,EAEtB,MAAM,cAAc,CAAC;AAMtB,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,WAAW,QAAQ;IACxB,QAAQ,CAAC,UAAU,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAClD;AAED;mEACmE;AACnE,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B;;;6DAGyD;IACzD,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC;2BACuB;IACvB,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9C;AAyJD,qBAAa,cAAe,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI3B;AAED;;;;;;sEAMsE;AACtE,wBAAgB,eAAe,CAC9B,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,QAAQ,EACd,SAAS,CAAC,EAAE,eAAe,GACzB,UAAU,CAmGZ"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { STORE_MAGIC, SIM_ABI_VERSION, STORE_HEADER_BYTES, STORE_HEADER_OFFSETS, REGION_TABLE_ENTRY_BYTES, REGION_TABLE_ENTRY_OFFSETS } from './vendored_abi/abi.cjs';
|
|
2
|
+
export { STORE_MAGIC, SIM_ABI_VERSION, STORE_HEADER_BYTES, STORE_HEADER_OFFSETS, REGION_TABLE_ENTRY_BYTES, REGION_TABLE_ENTRY_OFFSETS };
|
|
3
|
+
export interface StoreHeader {
|
|
4
|
+
/** Magic value `STORE_MAGIC`; used to detect a stale or foreign buffer
|
|
5
|
+
* before any other field is trusted. */
|
|
6
|
+
readonly magic: number;
|
|
7
|
+
/** ABI version; mismatch means the WASM and TS disagree on layout and
|
|
8
|
+
* the SAB must not be used. */
|
|
9
|
+
readonly simAbiVersion: number;
|
|
10
|
+
/** Monotonic; incremented every time the host reallocates the SAB.
|
|
11
|
+
* Cached TypedArray views become stale on bump. (#171 §8.1) */
|
|
12
|
+
readonly viewStamp: number;
|
|
13
|
+
/** Total SAB size in bytes. */
|
|
14
|
+
readonly capacity: number;
|
|
15
|
+
/** Number of archetype regions described by the layout descriptor. */
|
|
16
|
+
readonly archetypeCount: number;
|
|
17
|
+
/** Byte offset into the SAB where the layout descriptor region starts. */
|
|
18
|
+
readonly layoutDescriptorOff: number;
|
|
19
|
+
/** Byte offset of the WASM→TS command ring header. (#171 §7.5) */
|
|
20
|
+
readonly commandRingOff: number;
|
|
21
|
+
/** Byte offset of the TS→WASM action ring header. (#171 §7.5, Phase 5) */
|
|
22
|
+
readonly actionRingOff: number;
|
|
23
|
+
/** Byte offset of the entity-index region (entityId → archetype_id,
|
|
24
|
+
* row, generation lookup). 0 means absent — fixtures and bare-SAB
|
|
25
|
+
* tests that don't need the index see the v1 layout (the engine's
|
|
26
|
+
* `Store` always allocates one). (#245 / Phase 4 PR 4B) */
|
|
27
|
+
readonly entityIndexOff: number;
|
|
28
|
+
/** Byte offset of the event ring region (ECS signal payloads shared
|
|
29
|
+
* with the Zig sim). 0 means absent. (#247 / Phase 4 PR 4C) */
|
|
30
|
+
readonly eventRingOff: number;
|
|
31
|
+
/** Byte offset of the region-table directory — a `RegionTableEntry[]`
|
|
32
|
+
* (`(region_id, byte_offset, byte_length)` triples) holding one entry
|
|
33
|
+
* per consumer-declared region. 0 means no consumer regions were
|
|
34
|
+
* declared. The engine treats `region_id` as opaque; a consumer resolves
|
|
35
|
+
* its region with `findRegionOffset(view, header, id)` (TS) /
|
|
36
|
+
* `abi.find_region(header_addr, id)` (Zig). Replaces the five game-named
|
|
37
|
+
* offset fields (`terrain_off`/`spatial_grid_off`/… ) the SAB header
|
|
38
|
+
* used to hard-code. (#623 — de-game the SAB substrate; ADR-0018.) */
|
|
39
|
+
readonly regionTableOff: number;
|
|
40
|
+
/** Number of `RegionTableEntry` records at `region_table_off`. (#623) */
|
|
41
|
+
readonly regionTableCount: number;
|
|
42
|
+
/** Byte offset of the sim-bindings region — an opaque block of `u16`
|
|
43
|
+
* `(component_id, field_id)` IDs (layout owned by the game, in
|
|
44
|
+
* `@internal/sim`'s `sim_bindings.ts` / `bindings.zig`). The host writes it
|
|
45
|
+
* once per layout via `write_sim_bindings`; the Zig per-system exports
|
|
46
|
+
* (`tick_cooldown_ready` / `tick_movement_tick` / `tick_faith_production`
|
|
47
|
+
* and the batched `tick_all`) read their IDs from here instead of taking
|
|
48
|
+
* them as call args. Present only when the consumer opts into a WASM backend
|
|
49
|
+
* by passing `bindingsRegionBytes` to `createColumnStore`; 0 = absent (a
|
|
50
|
+
* pure-TS game pays nothing for this region). The size is a runtime input,
|
|
51
|
+
* not an engine ABI constant, since #625. (v5 / "SAB-is-the-interface".) */
|
|
52
|
+
readonly bindingsOff: number;
|
|
53
|
+
}
|
|
54
|
+
export declare function writeStoreHeader(view: DataView, h: StoreHeader): void;
|
|
55
|
+
export declare function readStoreHeader(view: DataView): StoreHeader;
|
|
56
|
+
/** Increment `view_stamp` in place after a host-side SAB reallocation. The
|
|
57
|
+
* monotonic counter is the trigger for cached-view invalidation on the TS
|
|
58
|
+
* side and for re-pointing in WASM. (#171 §8.1) */
|
|
59
|
+
export declare function bumpViewStamp(view: DataView): number;
|
|
60
|
+
/** True iff the buffer's first four bytes are `STORE_MAGIC` AND the ABI
|
|
61
|
+
* version matches the current build. Used by both TS and WASM as a
|
|
62
|
+
* pre-flight before treating any other field as meaningful. */
|
|
63
|
+
export declare function isValidSab(view: DataView): boolean;
|
|
64
|
+
//# sourceMappingURL=header.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { STORE_MAGIC, SIM_ABI_VERSION, STORE_HEADER_BYTES, STORE_HEADER_OFFSETS, REGION_TABLE_ENTRY_BYTES, REGION_TABLE_ENTRY_OFFSETS } from './
|
|
1
|
+
import { STORE_MAGIC, SIM_ABI_VERSION, STORE_HEADER_BYTES, STORE_HEADER_OFFSETS, REGION_TABLE_ENTRY_BYTES, REGION_TABLE_ENTRY_OFFSETS } from './vendored_abi/abi.js';
|
|
2
2
|
export { STORE_MAGIC, SIM_ABI_VERSION, STORE_HEADER_BYTES, STORE_HEADER_OFFSETS, REGION_TABLE_ENTRY_BYTES, REGION_TABLE_ENTRY_OFFSETS };
|
|
3
3
|
export interface StoreHeader {
|
|
4
4
|
/** Magic value `STORE_MAGIC`; used to detect a stale or foreign buffer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../src/core/store/header.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkFG;AAoBH,OAAO,EACN,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,EAC1B,MAAM,
|
|
1
|
+
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../src/core/store/header.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkFG;AAoBH,OAAO,EACN,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,EAC1B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACN,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,EAC1B,CAAC;AAEF,MAAM,WAAW,WAAW;IAC3B;4CACwC;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;mCAC+B;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B;mEAC+D;IAC/D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,+BAA+B;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,sEAAsE;IACtE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,0EAA0E;IAC1E,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,kEAAkE;IAClE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B;;;+DAG2D;IAC3D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC;mEAC+D;IAC/D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B;;;;;;;0EAOsE;IACtE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,yEAAyE;IACzE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC;;;;;;;;;gFAS4E;IAC5E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,GAAG,IAAI,CAcrE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,WAAW,CAgB3D;AAED;;mDAEmD;AACnD,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAIpD;AAED;;+DAE+D;AAC/D,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAKlD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export { STORE_MAGIC, SIM_ABI_VERSION, STORE_HEADER_BYTES, STORE_HEADER_OFFSETS, REGION_TABLE_ENTRY_BYTES, REGION_TABLE_ENTRY_OFFSETS, type StoreHeader, writeStoreHeader, readStoreHeader, bumpViewStamp, isValidSab } from './header.cjs';
|
|
2
|
+
export { type StoreRegionSpec, type RegionTableEntry, type ColumnStoreRegionHandle, RegionRegistryError, regionTableBytes, validateRegionSpecs, writeRegionTableEntry, readRegionTableEntry, writeRegionTable, readRegionTable, readHeaderRegionTable, findRegionOffset, findRegionEntry } from './region_table.cjs';
|
|
3
|
+
export { TYPE_TAG, type TypeTagValue, TYPE_TAG_STRIDE, TYPED_ARRAY_TAG_TO_TYPE_TAG, COLUMN_DESCRIPTOR_BYTES, COLUMN_DESCRIPTOR_OFFSETS, type ColumnDescriptor, writeColumnDescriptor, readColumnDescriptor, ARCHETYPE_DESCRIPTOR_HEADER_BYTES, ARCHETYPE_DESCRIPTOR_OFFSETS, COMPONENT_MASK_WORDS, STORE_DESCRIPTOR_COMPONENT_LIMIT, type ArchetypeDescriptor, archetypeDescriptorBytes, writeArchetypeDescriptor, readArchetypeDescriptor, writeLayoutDescriptorRegion, readLayoutDescriptorRegion, layoutDescriptorRegionBytes } from './descriptor.cjs';
|
|
4
|
+
export { type ColumnSpec, type ArchetypeSpec, type ColumnView, type ArchetypeViews, type ColumnStore, type AnyTypedArray, type CreateColumnStoreOptions, alignUp, buildArchetypeViews, columnKey, createColumnStore, StoreLayoutOverflowError, STORE_MAX_BYTE_OFFSET, COMMAND_RING_DEFAULT_CAPACITY_SLOTS, ENTITY_INDEX_DEFAULT_CAPACITY, EVENT_RING_DEFAULT_CAPACITY_SLOTS } from './column_store.cjs';
|
|
5
|
+
export { EVENT_OP_EMPTY, EVENT_RING_HEADER_BYTES, EVENT_RING_SLOT_BYTES, EVENT_RING_HEADER_OFFSETS, EventRingError, drainEventRing, eventRingBytes, initEventRing, pendingEventCount, popEvent, pushEvent, ringCapacitySlots as eventRingCapacitySlots, ringOverflow as eventRingOverflow, ringReadHead as eventRingReadHead, ringWriteHead as eventRingWriteHead } from './event_ring.cjs';
|
|
6
|
+
export { ENTITY_INDEX_HEADER_BYTES, ENTITY_INDEX_BYTES_PER_SLOT, ENTITY_INDEX_HEADER_OFFSETS, EntityIndexError, buildEntityIndexViews, entityIndexCapacity, entityIndexLength, entityIndexRegionBytes, initEntityIndexRegion, setEntityIndexLength } from './entity_index.cjs';
|
|
7
|
+
export { COMMAND_OP_EMPTY, COMMAND_RING_HEADER_BYTES, COMMAND_RING_SLOT_BYTES, COMMAND_RING_HEADER_OFFSETS, CommandRingError, commandRingBytes, drainCommandRing, initCommandRing, pendingCommandCount, popCommand, pushCommand, ringCapacitySlots, ringOverflow, ringReadHead, ringWriteHead } from './command_ring.cjs';
|
|
8
|
+
export { type PayloadCodec, CommandDispatcher } from './command_dispatch.cjs';
|
|
9
|
+
export { BufferBackedColumn, StoreColumnOverflowError } from './buffer_backed_column.cjs';
|
|
10
|
+
export { type ArchetypeGrowSpec, type GrowPlan, type GrowResult, StoreGrowError, growColumnStore } from './grow.cjs';
|
|
11
|
+
export { type ExtendPlan, type ExtendResult, StoreExtendError, extendColumnStore } from './extend.cjs';
|
|
12
|
+
export { snapshotLiveColumns, restoreColumnSnapshots } from './layout_ops.cjs';
|
|
13
|
+
export { type BufferAllocator, type InPlaceBufferAllocator, StoreCapExceededError, SabUnavailableError, DEFAULT_SAB_ALLOCATOR, wasmMemoryAllocator, growableSabAllocator, heapArraybufferAllocator } from './allocator.cjs';
|
|
14
|
+
export { StoreRestoreError, snapshotColumnStore, restoreColumnStore } from './snapshot.cjs';
|
|
15
|
+
export { FNV1A_OFFSET_BASIS, FNV1A_PRIME, fnv1a32, fnv1aStep, fnv1aStepWord, columnStoreStateHash } from './state_hash.cjs';
|
|
16
|
+
export { ACTION_RING_DEFAULT_CAPACITY_SLOTS, ACTION_RING_HEADER_BYTES, ACTION_RING_HEADER_OFFSETS, ACTION_RING_MAX_PAYLOAD_BYTES, ACTION_RING_SLOT_BYTES, ActionRingError, actionRingBytes, actionRingCapacitySlots, actionRingOverflow, actionRingReadHead, actionRingWriteHead, clearActionRingOverflow, drainActionRing, initActionRing, pendingActionCount, popAction, pushAction } from './action_ring.cjs';
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
export { STORE_MAGIC, SIM_ABI_VERSION, STORE_HEADER_BYTES, STORE_HEADER_OFFSETS, REGION_TABLE_ENTRY_BYTES, REGION_TABLE_ENTRY_OFFSETS, type StoreHeader, writeStoreHeader, readStoreHeader, bumpViewStamp, isValidSab } from './header';
|
|
2
|
-
export { type StoreRegionSpec, type RegionTableEntry, type ColumnStoreRegionHandle, RegionRegistryError, regionTableBytes, validateRegionSpecs, writeRegionTableEntry, readRegionTableEntry, writeRegionTable, readRegionTable, readHeaderRegionTable, findRegionOffset, findRegionEntry } from './region_table';
|
|
3
|
-
export { TYPE_TAG, type TypeTagValue, TYPE_TAG_STRIDE, TYPED_ARRAY_TAG_TO_TYPE_TAG, COLUMN_DESCRIPTOR_BYTES, COLUMN_DESCRIPTOR_OFFSETS, type ColumnDescriptor, writeColumnDescriptor, readColumnDescriptor, ARCHETYPE_DESCRIPTOR_HEADER_BYTES, ARCHETYPE_DESCRIPTOR_OFFSETS, COMPONENT_MASK_WORDS, STORE_DESCRIPTOR_COMPONENT_LIMIT, type ArchetypeDescriptor, archetypeDescriptorBytes, writeArchetypeDescriptor, readArchetypeDescriptor, writeLayoutDescriptorRegion, readLayoutDescriptorRegion, layoutDescriptorRegionBytes } from './descriptor';
|
|
4
|
-
export { type ColumnSpec, type ArchetypeSpec, type ColumnView, type ArchetypeViews, type ColumnStore, type AnyTypedArray, type CreateColumnStoreOptions, alignUp, buildArchetypeViews, columnKey, createColumnStore, StoreLayoutOverflowError, STORE_MAX_BYTE_OFFSET, COMMAND_RING_DEFAULT_CAPACITY_SLOTS, ENTITY_INDEX_DEFAULT_CAPACITY, EVENT_RING_DEFAULT_CAPACITY_SLOTS } from './column_store';
|
|
5
|
-
export { EVENT_OP_EMPTY, EVENT_RING_HEADER_BYTES, EVENT_RING_SLOT_BYTES, EVENT_RING_HEADER_OFFSETS, EventRingError, drainEventRing, eventRingBytes, initEventRing, pendingEventCount, popEvent, pushEvent, ringCapacitySlots as eventRingCapacitySlots, ringOverflow as eventRingOverflow, ringReadHead as eventRingReadHead, ringWriteHead as eventRingWriteHead } from './event_ring';
|
|
6
|
-
export { ENTITY_INDEX_HEADER_BYTES, ENTITY_INDEX_BYTES_PER_SLOT, ENTITY_INDEX_HEADER_OFFSETS, EntityIndexError, buildEntityIndexViews, entityIndexCapacity, entityIndexLength, entityIndexRegionBytes, initEntityIndexRegion, setEntityIndexLength } from './entity_index';
|
|
7
|
-
export { COMMAND_OP_EMPTY, COMMAND_RING_HEADER_BYTES, COMMAND_RING_SLOT_BYTES, COMMAND_RING_HEADER_OFFSETS, CommandRingError, commandRingBytes, drainCommandRing, initCommandRing, pendingCommandCount, popCommand, pushCommand, ringCapacitySlots, ringOverflow, ringReadHead, ringWriteHead } from './command_ring';
|
|
8
|
-
export { type PayloadCodec, CommandDispatcher } from './command_dispatch';
|
|
9
|
-
export { BufferBackedColumn, StoreColumnOverflowError } from './buffer_backed_column';
|
|
10
|
-
export { type ArchetypeGrowSpec, type GrowPlan, type GrowResult, StoreGrowError, growColumnStore } from './grow';
|
|
11
|
-
export { type ExtendPlan, type ExtendResult, StoreExtendError, extendColumnStore
|
|
12
|
-
export {
|
|
13
|
-
export {
|
|
14
|
-
export {
|
|
15
|
-
export {
|
|
1
|
+
export { STORE_MAGIC, SIM_ABI_VERSION, STORE_HEADER_BYTES, STORE_HEADER_OFFSETS, REGION_TABLE_ENTRY_BYTES, REGION_TABLE_ENTRY_OFFSETS, type StoreHeader, writeStoreHeader, readStoreHeader, bumpViewStamp, isValidSab } from './header.js';
|
|
2
|
+
export { type StoreRegionSpec, type RegionTableEntry, type ColumnStoreRegionHandle, RegionRegistryError, regionTableBytes, validateRegionSpecs, writeRegionTableEntry, readRegionTableEntry, writeRegionTable, readRegionTable, readHeaderRegionTable, findRegionOffset, findRegionEntry } from './region_table.js';
|
|
3
|
+
export { TYPE_TAG, type TypeTagValue, TYPE_TAG_STRIDE, TYPED_ARRAY_TAG_TO_TYPE_TAG, COLUMN_DESCRIPTOR_BYTES, COLUMN_DESCRIPTOR_OFFSETS, type ColumnDescriptor, writeColumnDescriptor, readColumnDescriptor, ARCHETYPE_DESCRIPTOR_HEADER_BYTES, ARCHETYPE_DESCRIPTOR_OFFSETS, COMPONENT_MASK_WORDS, STORE_DESCRIPTOR_COMPONENT_LIMIT, type ArchetypeDescriptor, archetypeDescriptorBytes, writeArchetypeDescriptor, readArchetypeDescriptor, writeLayoutDescriptorRegion, readLayoutDescriptorRegion, layoutDescriptorRegionBytes } from './descriptor.js';
|
|
4
|
+
export { type ColumnSpec, type ArchetypeSpec, type ColumnView, type ArchetypeViews, type ColumnStore, type AnyTypedArray, type CreateColumnStoreOptions, alignUp, buildArchetypeViews, columnKey, createColumnStore, StoreLayoutOverflowError, STORE_MAX_BYTE_OFFSET, COMMAND_RING_DEFAULT_CAPACITY_SLOTS, ENTITY_INDEX_DEFAULT_CAPACITY, EVENT_RING_DEFAULT_CAPACITY_SLOTS } from './column_store.js';
|
|
5
|
+
export { EVENT_OP_EMPTY, EVENT_RING_HEADER_BYTES, EVENT_RING_SLOT_BYTES, EVENT_RING_HEADER_OFFSETS, EventRingError, drainEventRing, eventRingBytes, initEventRing, pendingEventCount, popEvent, pushEvent, ringCapacitySlots as eventRingCapacitySlots, ringOverflow as eventRingOverflow, ringReadHead as eventRingReadHead, ringWriteHead as eventRingWriteHead } from './event_ring.js';
|
|
6
|
+
export { ENTITY_INDEX_HEADER_BYTES, ENTITY_INDEX_BYTES_PER_SLOT, ENTITY_INDEX_HEADER_OFFSETS, EntityIndexError, buildEntityIndexViews, entityIndexCapacity, entityIndexLength, entityIndexRegionBytes, initEntityIndexRegion, setEntityIndexLength } from './entity_index.js';
|
|
7
|
+
export { COMMAND_OP_EMPTY, COMMAND_RING_HEADER_BYTES, COMMAND_RING_SLOT_BYTES, COMMAND_RING_HEADER_OFFSETS, CommandRingError, commandRingBytes, drainCommandRing, initCommandRing, pendingCommandCount, popCommand, pushCommand, ringCapacitySlots, ringOverflow, ringReadHead, ringWriteHead } from './command_ring.js';
|
|
8
|
+
export { type PayloadCodec, CommandDispatcher } from './command_dispatch.js';
|
|
9
|
+
export { BufferBackedColumn, StoreColumnOverflowError } from './buffer_backed_column.js';
|
|
10
|
+
export { type ArchetypeGrowSpec, type GrowPlan, type GrowResult, StoreGrowError, growColumnStore } from './grow.js';
|
|
11
|
+
export { type ExtendPlan, type ExtendResult, StoreExtendError, extendColumnStore } from './extend.js';
|
|
12
|
+
export { snapshotLiveColumns, restoreColumnSnapshots } from './layout_ops.js';
|
|
13
|
+
export { type BufferAllocator, type InPlaceBufferAllocator, StoreCapExceededError, SabUnavailableError, DEFAULT_SAB_ALLOCATOR, wasmMemoryAllocator, growableSabAllocator, heapArraybufferAllocator } from './allocator.js';
|
|
14
|
+
export { StoreRestoreError, snapshotColumnStore, restoreColumnStore } from './snapshot.js';
|
|
15
|
+
export { FNV1A_OFFSET_BASIS, FNV1A_PRIME, fnv1a32, fnv1aStep, fnv1aStepWord, columnStoreStateHash } from './state_hash.js';
|
|
16
|
+
export { ACTION_RING_DEFAULT_CAPACITY_SLOTS, ACTION_RING_HEADER_BYTES, ACTION_RING_HEADER_OFFSETS, ACTION_RING_MAX_PAYLOAD_BYTES, ACTION_RING_SLOT_BYTES, ActionRingError, actionRingBytes, actionRingCapacitySlots, actionRingOverflow, actionRingReadHead, actionRingWriteHead, clearActionRingOverflow, drainActionRing, initActionRing, pendingActionCount, popAction, pushAction } from './action_ring.js';
|
|
16
17
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/store/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,EAC1B,KAAK,WAAW,EAChB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,UAAU,EACV,MAAM,UAAU,CAAC;AAKlB,OAAO,EACN,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACN,QAAQ,EACR,KAAK,YAAY,EACjB,eAAe,EACf,2BAA2B,EAC3B,uBAAuB,EACvB,yBAAyB,EACzB,KAAK,gBAAgB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,iCAAiC,EACjC,4BAA4B,EAC5B,oBAAoB,EACpB,gCAAgC,EAChC,KAAK,mBAAmB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,2BAA2B,EAC3B,0BAA0B,EAC1B,2BAA2B,EAC3B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACN,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,OAAO,EACP,mBAAmB,EACnB,SAAS,EACT,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,mCAAmC,EACnC,6BAA6B,EAC7B,iCAAiC,EACjC,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACN,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,EACzB,cAAc,EACd,cAAc,EACd,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,iBAAiB,IAAI,sBAAsB,EAC3C,YAAY,IAAI,iBAAiB,EACjC,YAAY,IAAI,iBAAiB,EACjC,aAAa,IAAI,kBAAkB,EACnC,MAAM,cAAc,CAAC;AAEtB,OAAO,EACN,yBAAyB,EACzB,2BAA2B,EAC3B,2BAA2B,EAC3B,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACN,gBAAgB,EAChB,yBAAyB,EACzB,uBAAuB,EACvB,2BAA2B,EAC3B,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,MAAM,gBAAgB,CAAC;AAMxB,OAAO,EAAE,KAAK,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE1E,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAEtF,OAAO,EACN,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,cAAc,EACd,eAAe,EACf,MAAM,QAAQ,CAAC;AAEhB,OAAO,EACN,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/store/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,EAC1B,KAAK,WAAW,EAChB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,UAAU,EACV,MAAM,UAAU,CAAC;AAKlB,OAAO,EACN,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACN,QAAQ,EACR,KAAK,YAAY,EACjB,eAAe,EACf,2BAA2B,EAC3B,uBAAuB,EACvB,yBAAyB,EACzB,KAAK,gBAAgB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,iCAAiC,EACjC,4BAA4B,EAC5B,oBAAoB,EACpB,gCAAgC,EAChC,KAAK,mBAAmB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,2BAA2B,EAC3B,0BAA0B,EAC1B,2BAA2B,EAC3B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACN,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,OAAO,EACP,mBAAmB,EACnB,SAAS,EACT,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,mCAAmC,EACnC,6BAA6B,EAC7B,iCAAiC,EACjC,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACN,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,EACzB,cAAc,EACd,cAAc,EACd,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,iBAAiB,IAAI,sBAAsB,EAC3C,YAAY,IAAI,iBAAiB,EACjC,YAAY,IAAI,iBAAiB,EACjC,aAAa,IAAI,kBAAkB,EACnC,MAAM,cAAc,CAAC;AAEtB,OAAO,EACN,yBAAyB,EACzB,2BAA2B,EAC3B,2BAA2B,EAC3B,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACN,gBAAgB,EAChB,yBAAyB,EACzB,uBAAuB,EACvB,2BAA2B,EAC3B,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,MAAM,gBAAgB,CAAC;AAMxB,OAAO,EAAE,KAAK,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE1E,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAEtF,OAAO,EACN,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,cAAc,EACd,eAAe,EACf,MAAM,QAAQ,CAAC;AAEhB,OAAO,EACN,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,MAAM,UAAU,CAAC;AAKlB,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE3E,OAAO,EACN,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAExF,OAAO,EACN,kBAAkB,EAClB,WAAW,EACX,OAAO,EACP,SAAS,EACT,aAAa,EACb,oBAAoB,EACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACN,kCAAkC,EAClC,wBAAwB,EACxB,0BAA0B,EAC1B,6BAA6B,EAC7B,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,MAAM,eAAe,CAAC"}
|