murow 0.0.60 → 0.0.71
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/README.md +52 -37
- package/dist/cjs/core/binary-codec/binary-codec.js +1 -0
- package/dist/cjs/core/binary-codec/index.js +1 -0
- package/dist/cjs/core/driver/driver.js +1 -0
- package/dist/cjs/core/driver/drivers/immediate.js +1 -0
- package/dist/cjs/core/driver/drivers/index.js +1 -0
- package/dist/cjs/core/driver/drivers/raf.js +1 -0
- package/dist/cjs/core/driver/drivers/timeout.js +1 -0
- package/dist/cjs/core/driver/index.js +1 -0
- package/dist/cjs/core/events/event-system.js +1 -0
- package/dist/cjs/core/events/index.js +1 -0
- package/dist/cjs/core/fixed-ticker/fixed-ticker.js +1 -0
- package/dist/cjs/core/fixed-ticker/index.js +1 -0
- package/dist/cjs/core/free-list/free-list.js +1 -0
- package/dist/cjs/core/free-list/index.js +1 -0
- package/dist/cjs/core/generate-id/generate-id.js +1 -0
- package/dist/cjs/core/generate-id/index.js +1 -0
- package/dist/cjs/core/index.js +1 -0
- package/dist/cjs/core/input/index.js +1 -0
- package/dist/cjs/core/input/manager.js +1 -0
- package/dist/cjs/core/input/sources/browser.js +1 -0
- package/dist/cjs/core/input/sources/index.js +1 -0
- package/dist/cjs/core/input/types.js +1 -0
- package/dist/cjs/core/lerp/index.js +1 -0
- package/dist/cjs/core/lerp/lerp.js +1 -0
- package/dist/cjs/core/navmesh/index.js +1 -0
- package/dist/cjs/core/navmesh/navmesh-worker-pool.js +1 -0
- package/dist/cjs/core/navmesh/navmesh.js +1 -0
- package/dist/cjs/core/navmesh/navmesh.worker.js +1 -0
- package/dist/cjs/core/pooled-codec/index.js +1 -0
- package/dist/cjs/core/pooled-codec/pooled-codec.js +1 -0
- package/dist/cjs/core/prediction/index.js +1 -0
- package/dist/cjs/core/prediction/prediction.js +1 -0
- package/dist/cjs/core/ray/index.js +1 -0
- package/dist/cjs/core/ray/ray-2d.js +1 -0
- package/dist/cjs/core/ray/ray-3d.js +1 -0
- package/dist/cjs/core/simple-rng/index.js +1 -0
- package/dist/cjs/core/simple-rng/simple-rng.js +1 -0
- package/dist/cjs/core/sparse-batcher/index.js +1 -0
- package/dist/cjs/core/sparse-batcher/sparse-batcher.js +1 -0
- package/dist/cjs/ecs/component-store.js +1 -0
- package/dist/cjs/ecs/component.js +1 -0
- package/dist/cjs/ecs/entity-handle.js +1 -0
- package/dist/cjs/ecs/index.js +1 -0
- package/dist/cjs/ecs/system-builder.js +1 -0
- package/dist/cjs/ecs/world-systems.js +1 -0
- package/dist/cjs/ecs/world.js +1 -0
- package/dist/cjs/game/index.js +1 -0
- package/dist/cjs/game/loop/index.js +1 -0
- package/dist/cjs/game/loop/loop.js +1 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/net/adapters/browser-websocket.js +1 -0
- package/dist/cjs/net/adapters/bun-websocket.js +1 -0
- package/dist/cjs/net/buffer-pool.js +1 -0
- package/dist/cjs/net/client.js +1 -0
- package/dist/cjs/net/index.js +1 -0
- package/dist/cjs/net/server.js +1 -0
- package/dist/cjs/net/types.js +1 -0
- package/dist/cjs/net/validators.js +1 -0
- package/dist/cjs/protocol/index.js +1 -0
- package/dist/cjs/protocol/intent/define-intent.js +1 -0
- package/dist/cjs/protocol/intent/index.js +1 -0
- package/dist/cjs/protocol/intent/intent-registry.js +1 -0
- package/dist/cjs/protocol/intent/intent.js +1 -0
- package/dist/cjs/protocol/rpc/define-rpc.js +1 -0
- package/dist/cjs/protocol/rpc/index.js +1 -0
- package/dist/cjs/protocol/rpc/rpc-registry.js +1 -0
- package/dist/cjs/protocol/rpc/rpc.js +1 -0
- package/dist/cjs/protocol/snapshot/index.js +1 -0
- package/dist/cjs/protocol/snapshot/snapshot-codec.js +1 -0
- package/dist/cjs/protocol/snapshot/snapshot-registry.js +1 -0
- package/dist/cjs/protocol/snapshot/snapshot.js +1 -0
- package/dist/cjs/renderer/base-2d-renderer.js +1 -0
- package/dist/cjs/renderer/base-3d-renderer.js +1 -0
- package/dist/cjs/renderer/base-renderer.js +1 -0
- package/dist/cjs/renderer/index.js +1 -0
- package/dist/cjs/renderer/types.js +1 -0
- package/dist/esm/core/binary-codec/binary-codec.js +1 -0
- package/dist/esm/core/binary-codec/index.js +1 -0
- package/dist/esm/core/driver/driver.js +1 -0
- package/dist/esm/core/driver/drivers/immediate.js +1 -0
- package/dist/esm/core/driver/drivers/index.js +1 -0
- package/dist/esm/core/driver/drivers/raf.js +1 -0
- package/dist/esm/core/driver/drivers/timeout.js +1 -0
- package/dist/esm/core/driver/index.js +1 -0
- package/dist/esm/core/events/event-system.js +1 -0
- package/dist/esm/core/events/index.js +1 -0
- package/dist/esm/core/fixed-ticker/fixed-ticker.js +1 -0
- package/dist/esm/core/fixed-ticker/index.js +1 -0
- package/dist/esm/core/free-list/free-list.js +1 -0
- package/dist/esm/core/free-list/index.js +1 -0
- package/dist/esm/core/generate-id/generate-id.js +1 -0
- package/dist/esm/core/generate-id/index.js +1 -0
- package/dist/esm/core/index.js +1 -0
- package/dist/esm/core/input/index.js +1 -0
- package/dist/esm/core/input/manager.js +1 -0
- package/dist/esm/core/input/sources/browser.js +1 -0
- package/dist/esm/core/input/sources/index.js +1 -0
- package/dist/esm/core/input/types.js +0 -0
- package/dist/esm/core/lerp/index.js +1 -0
- package/dist/esm/core/lerp/lerp.js +1 -0
- package/dist/esm/core/navmesh/index.js +1 -0
- package/dist/esm/core/navmesh/navmesh-worker-pool.js +1 -0
- package/dist/esm/core/navmesh/navmesh.js +1 -0
- package/dist/esm/core/navmesh/navmesh.worker.js +1 -0
- package/dist/esm/core/pooled-codec/index.js +1 -0
- package/dist/esm/core/pooled-codec/pooled-codec.js +1 -0
- package/dist/esm/core/prediction/index.js +1 -0
- package/dist/esm/core/prediction/prediction.js +1 -0
- package/dist/esm/core/ray/index.js +1 -0
- package/dist/esm/core/ray/ray-2d.js +1 -0
- package/dist/esm/core/ray/ray-3d.js +1 -0
- package/dist/esm/core/simple-rng/index.js +1 -0
- package/dist/esm/core/simple-rng/simple-rng.js +1 -0
- package/dist/esm/core/sparse-batcher/index.js +1 -0
- package/dist/esm/core/sparse-batcher/sparse-batcher.js +1 -0
- package/dist/esm/ecs/component-store.js +1 -0
- package/dist/esm/ecs/component.js +1 -0
- package/dist/esm/ecs/entity-handle.js +1 -0
- package/dist/esm/ecs/index.js +1 -0
- package/dist/esm/ecs/system-builder.js +1 -0
- package/dist/esm/ecs/world-systems.js +1 -0
- package/dist/esm/ecs/world.js +1 -0
- package/dist/esm/game/index.js +1 -0
- package/dist/esm/game/loop/index.js +1 -0
- package/dist/esm/game/loop/loop.js +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/net/adapters/browser-websocket.js +1 -0
- package/dist/esm/net/adapters/bun-websocket.js +1 -0
- package/dist/esm/net/buffer-pool.js +1 -0
- package/dist/esm/net/client.js +1 -0
- package/dist/esm/net/index.js +1 -0
- package/dist/esm/net/server.js +1 -0
- package/dist/esm/net/types.js +1 -0
- package/dist/esm/net/validators.js +1 -0
- package/dist/esm/protocol/index.js +1 -0
- package/dist/esm/protocol/intent/define-intent.js +1 -0
- package/dist/esm/protocol/intent/index.js +1 -0
- package/dist/esm/protocol/intent/intent-registry.js +1 -0
- package/dist/esm/protocol/intent/intent.js +0 -0
- package/dist/esm/protocol/rpc/define-rpc.js +1 -0
- package/dist/esm/protocol/rpc/index.js +1 -0
- package/dist/esm/protocol/rpc/rpc-registry.js +1 -0
- package/dist/esm/protocol/rpc/rpc.js +0 -0
- package/dist/esm/protocol/snapshot/index.js +1 -0
- package/dist/esm/protocol/snapshot/snapshot-codec.js +1 -0
- package/dist/esm/protocol/snapshot/snapshot-registry.js +1 -0
- package/dist/esm/protocol/snapshot/snapshot.js +1 -0
- package/dist/esm/renderer/base-2d-renderer.js +1 -0
- package/dist/esm/renderer/base-3d-renderer.js +1 -0
- package/dist/esm/renderer/base-renderer.js +1 -0
- package/dist/esm/renderer/index.js +1 -0
- package/dist/esm/renderer/types.js +0 -0
- package/dist/{core → types/core}/binary-codec/binary-codec.d.ts +4 -0
- package/dist/{core/loop → types/core/driver}/drivers/immediate.d.ts +1 -1
- package/dist/{core/loop → types/core/driver}/drivers/raf.d.ts +1 -1
- package/dist/{core/loop → types/core/driver}/drivers/timeout.d.ts +1 -1
- package/dist/{core/loop → types/core/driver}/index.d.ts +1 -1
- package/dist/{core → types/core}/events/event-system.d.ts +14 -33
- package/dist/{core → types/core}/fixed-ticker/fixed-ticker.d.ts +1 -1
- package/dist/types/core/free-list/free-list.d.ts +31 -0
- package/dist/types/core/free-list/index.d.ts +1 -0
- package/dist/{core → types/core}/index.d.ts +7 -1
- package/dist/types/core/input/index.d.ts +3 -0
- package/dist/types/core/input/manager.d.ts +56 -0
- package/dist/types/core/input/sources/browser.d.ts +9 -0
- package/dist/types/core/input/sources/index.d.ts +1 -0
- package/dist/types/core/input/types.d.ts +36 -0
- package/dist/{core → types/core}/navmesh/navmesh.d.ts +1 -21
- package/dist/types/core/ray/index.d.ts +2 -0
- package/dist/types/core/ray/ray-2d.d.ts +37 -0
- package/dist/types/core/ray/ray-3d.d.ts +42 -0
- package/dist/types/core/simple-rng/index.d.ts +1 -0
- package/dist/types/core/simple-rng/simple-rng.d.ts +36 -0
- package/dist/types/core/sparse-batcher/index.d.ts +1 -0
- package/dist/types/core/sparse-batcher/sparse-batcher.d.ts +55 -0
- package/dist/{ecs → types/ecs}/system-builder.d.ts +20 -9
- package/dist/{ecs → types/ecs}/world.d.ts +11 -0
- package/dist/types/game/index.d.ts +1 -0
- package/dist/types/game/loop/index.d.ts +1 -0
- package/dist/types/game/loop/loop.d.ts +175 -0
- package/dist/{index.d.ts → types/index.d.ts} +2 -0
- package/dist/{net → types/net}/index.d.ts +2 -2
- package/dist/{net → types/net}/server.d.ts +39 -19
- package/dist/{protocol → types/protocol}/intent/define-intent.d.ts +15 -0
- package/dist/{protocol → types/protocol}/intent/index.d.ts +1 -1
- package/dist/types/renderer/base-2d-renderer.d.ts +13 -0
- package/dist/types/renderer/base-3d-renderer.d.ts +10 -0
- package/dist/types/renderer/base-renderer.d.ts +21 -0
- package/dist/types/renderer/index.d.ts +4 -0
- package/dist/types/renderer/types.d.ts +79 -0
- package/dist/webgpu/cjs/index.js +6004 -0
- package/dist/webgpu/esm/index.js +5972 -0
- package/dist/webgpu/types/2d/animation.d.ts +97 -0
- package/dist/webgpu/types/2d/renderer.d.ts +55 -0
- package/dist/webgpu/types/2d/shader.d.ts +61 -0
- package/dist/webgpu/types/2d/sprite-accessor.d.ts +47 -0
- package/dist/webgpu/types/2d/sprite-accessor.test.d.ts +1 -0
- package/dist/webgpu/types/3d/gltf-skin-parser.d.ts +101 -0
- package/dist/webgpu/types/3d/morph-animation.d.ts +69 -0
- package/dist/webgpu/types/3d/morph-animation.test.d.ts +1 -0
- package/dist/webgpu/types/3d/renderer.d.ts +216 -0
- package/dist/webgpu/types/3d/shader.d.ts +136 -0
- package/dist/webgpu/types/3d/skeletal-animation-compute/index.d.ts +2 -0
- package/dist/webgpu/types/3d/skeletal-animation-compute/kernel.d.ts +8 -0
- package/dist/webgpu/types/3d/skeletal-animation-compute/packer.d.ts +32 -0
- package/dist/webgpu/types/3d/skeletal-animation.d.ts +90 -0
- package/dist/webgpu/types/camera/camera-2d.d.ts +53 -0
- package/dist/webgpu/types/camera/camera-2d.test.d.ts +1 -0
- package/dist/webgpu/types/camera/camera-3d.d.ts +81 -0
- package/dist/webgpu/types/camera/camera-3d.test.d.ts +1 -0
- package/dist/webgpu/types/camera/index.d.ts +2 -0
- package/dist/webgpu/types/compute/compute-builder.d.ts +123 -0
- package/dist/webgpu/types/compute/compute-builder.test.d.ts +1 -0
- package/dist/webgpu/types/core/constants.d.ts +59 -0
- package/dist/webgpu/types/core/constants.test.d.ts +1 -0
- package/dist/webgpu/types/core/index.d.ts +2 -0
- package/dist/webgpu/types/core/math.d.ts +37 -0
- package/dist/webgpu/types/core/types.d.ts +125 -0
- package/dist/webgpu/types/core/types.test.d.ts +1 -0
- package/dist/webgpu/types/geometry/built-in.d.ts +58 -0
- package/dist/webgpu/types/geometry/built-in.test.d.ts +1 -0
- package/dist/webgpu/types/geometry/geometry-builder.d.ts +281 -0
- package/dist/webgpu/types/geometry/geometry-builder.test.d.ts +1 -0
- package/dist/webgpu/types/geometry/index.d.ts +2 -0
- package/dist/webgpu/types/index.d.ts +32 -0
- package/dist/webgpu/types/particle/emitter.d.ts +36 -0
- package/dist/webgpu/types/shaders/index.d.ts +2 -0
- package/dist/webgpu/types/shaders/runtime-transpile.d.ts +18 -0
- package/dist/webgpu/types/shaders/sprite-2d.wgsl.d.ts +10 -0
- package/dist/webgpu/types/shaders/typegpu.d.ts +9 -0
- package/dist/webgpu/types/shaders/utils.d.ts +28 -0
- package/dist/webgpu/types/shaders/utils.test.d.ts +1 -0
- package/dist/webgpu/types/spritesheet/index.d.ts +1 -0
- package/dist/webgpu/types/spritesheet/spritesheet.d.ts +57 -0
- package/dist/webgpu/types/spritesheet/spritesheet.test.d.ts +1 -0
- package/package.json +96 -26
- package/dist/core/binary-codec/binary-codec.js +0 -354
- package/dist/core/binary-codec/index.js +0 -1
- package/dist/core/events/event-system.js +0 -88
- package/dist/core/events/index.js +0 -1
- package/dist/core/fixed-ticker/fixed-ticker.js +0 -101
- package/dist/core/fixed-ticker/index.js +0 -1
- package/dist/core/generate-id/generate-id.js +0 -25
- package/dist/core/generate-id/index.js +0 -1
- package/dist/core/index.js +0 -9
- package/dist/core/lerp/index.js +0 -1
- package/dist/core/lerp/lerp.js +0 -42
- package/dist/core/loop/drivers/immediate.js +0 -61
- package/dist/core/loop/drivers/index.js +0 -3
- package/dist/core/loop/drivers/raf.js +0 -62
- package/dist/core/loop/drivers/timeout.js +0 -71
- package/dist/core/loop/index.js +0 -2
- package/dist/core/loop/loop.js +0 -47
- package/dist/core/navmesh/index.js +0 -1
- package/dist/core/navmesh/navmesh-worker-pool.js +0 -180
- package/dist/core/navmesh/navmesh.js +0 -799
- package/dist/core/navmesh/navmesh.worker.js +0 -79
- package/dist/core/pooled-codec/index.js +0 -1
- package/dist/core/pooled-codec/pooled-codec.js +0 -410
- package/dist/core/prediction/index.js +0 -1
- package/dist/core/prediction/prediction.js +0 -99
- package/dist/core.esm.js +0 -1
- package/dist/core.js +0 -1
- package/dist/ecs/component-store.js +0 -175
- package/dist/ecs/component.js +0 -43
- package/dist/ecs/entity-handle.js +0 -515
- package/dist/ecs/example.js +0 -125
- package/dist/ecs/index.js +0 -4
- package/dist/ecs/system-builder.js +0 -180
- package/dist/ecs/system.d.ts +0 -63
- package/dist/ecs/system.js +0 -92
- package/dist/ecs/world-systems.js +0 -79
- package/dist/ecs/world.js +0 -684
- package/dist/index.js +0 -24
- package/dist/net/adapters/browser-websocket.js +0 -74
- package/dist/net/adapters/bun-websocket.js +0 -245
- package/dist/net/buffer-pool.js +0 -89
- package/dist/net/client.js +0 -586
- package/dist/net/index.js +0 -58
- package/dist/net/server.js +0 -938
- package/dist/net/types.js +0 -31
- package/dist/net/validators.js +0 -88
- package/dist/protocol/index.js +0 -92
- package/dist/protocol/intent/define-intent.js +0 -125
- package/dist/protocol/intent/index.js +0 -91
- package/dist/protocol/intent/intent-registry.js +0 -91
- package/dist/protocol/rpc/define-rpc.js +0 -84
- package/dist/protocol/rpc/index.js +0 -3
- package/dist/protocol/rpc/rpc-registry.js +0 -159
- package/dist/protocol/rpc/rpc.js +0 -12
- package/dist/protocol/snapshot/index.js +0 -43
- package/dist/protocol/snapshot/snapshot-codec.js +0 -67
- package/dist/protocol/snapshot/snapshot-registry.js +0 -168
- package/dist/protocol/snapshot/snapshot.js +0 -30
- package/src/core/binary-codec/README.md +0 -60
- package/src/core/binary-codec/binary-codec.test.ts +0 -300
- package/src/core/binary-codec/binary-codec.ts +0 -448
- package/src/core/binary-codec/index.ts +0 -1
- package/src/core/events/README.md +0 -47
- package/src/core/events/event-system.test.ts +0 -243
- package/src/core/events/event-system.ts +0 -140
- package/src/core/events/index.ts +0 -1
- package/src/core/fixed-ticker/README.md +0 -77
- package/src/core/fixed-ticker/fixed-ticker.test.ts +0 -151
- package/src/core/fixed-ticker/fixed-ticker.ts +0 -169
- package/src/core/fixed-ticker/index.ts +0 -1
- package/src/core/generate-id/README.md +0 -18
- package/src/core/generate-id/generate-id.test.ts +0 -79
- package/src/core/generate-id/generate-id.ts +0 -37
- package/src/core/generate-id/index.ts +0 -1
- package/src/core/index.ts +0 -9
- package/src/core/lerp/README.md +0 -79
- package/src/core/lerp/index.ts +0 -1
- package/src/core/lerp/lerp.test.ts +0 -90
- package/src/core/lerp/lerp.ts +0 -42
- package/src/core/loop/README.md +0 -97
- package/src/core/loop/drivers/immediate.ts +0 -66
- package/src/core/loop/drivers/index.ts +0 -3
- package/src/core/loop/drivers/raf.ts +0 -67
- package/src/core/loop/drivers/timeout.ts +0 -77
- package/src/core/loop/index.ts +0 -2
- package/src/core/loop/loop.test.ts +0 -414
- package/src/core/loop/loop.ts +0 -71
- package/src/core/navmesh/README.md +0 -164
- package/src/core/navmesh/index.ts +0 -1
- package/src/core/navmesh/navmesh-worker-pool.ts +0 -236
- package/src/core/navmesh/navmesh-workers.test.ts +0 -356
- package/src/core/navmesh/navmesh.test.ts +0 -344
- package/src/core/navmesh/navmesh.ts +0 -1047
- package/src/core/navmesh/navmesh.worker.ts +0 -147
- package/src/core/pooled-codec/README.md +0 -70
- package/src/core/pooled-codec/index.ts +0 -1
- package/src/core/pooled-codec/pooled-codec.test.ts +0 -862
- package/src/core/pooled-codec/pooled-codec.ts +0 -504
- package/src/core/prediction/README.md +0 -64
- package/src/core/prediction/index.ts +0 -1
- package/src/core/prediction/prediction.test.ts +0 -423
- package/src/core/prediction/prediction.ts +0 -112
- package/src/ecs/README.md +0 -427
- package/src/ecs/benchmark.test.ts +0 -1645
- package/src/ecs/component-store.ts +0 -198
- package/src/ecs/component.ts +0 -90
- package/src/ecs/entity-handle.test.ts +0 -393
- package/src/ecs/entity-handle.ts +0 -563
- package/src/ecs/example.ts +0 -152
- package/src/ecs/index.ts +0 -4
- package/src/ecs/system-builder.ts +0 -309
- package/src/ecs/system.ts +0 -111
- package/src/ecs/world-systems.ts +0 -83
- package/src/ecs/world.test.ts +0 -310
- package/src/ecs/world.ts +0 -828
- package/src/index.ts +0 -28
- package/src/net/README.md +0 -474
- package/src/net/adapters/browser-websocket.ts +0 -86
- package/src/net/adapters/bun-websocket.ts +0 -292
- package/src/net/buffer-pool.ts +0 -106
- package/src/net/client.test.ts +0 -807
- package/src/net/client.ts +0 -695
- package/src/net/index.ts +0 -60
- package/src/net/server.test.ts +0 -799
- package/src/net/server.ts +0 -1116
- package/src/net/types.ts +0 -228
- package/src/net/validators.ts +0 -104
- package/src/protocol/README.md +0 -469
- package/src/protocol/index.ts +0 -93
- package/src/protocol/intent/define-intent.test.ts +0 -397
- package/src/protocol/intent/define-intent.ts +0 -182
- package/src/protocol/intent/index.ts +0 -94
- package/src/protocol/intent/intent-registry.test.ts +0 -198
- package/src/protocol/intent/intent-registry.ts +0 -112
- package/src/protocol/intent/intent.ts +0 -12
- package/src/protocol/rpc/define-rpc.test.ts +0 -141
- package/src/protocol/rpc/define-rpc.ts +0 -113
- package/src/protocol/rpc/index.ts +0 -3
- package/src/protocol/rpc/rpc-registry.test.ts +0 -168
- package/src/protocol/rpc/rpc-registry.ts +0 -176
- package/src/protocol/rpc/rpc.ts +0 -37
- package/src/protocol/snapshot/index.ts +0 -45
- package/src/protocol/snapshot/snapshot-codec.test.ts +0 -138
- package/src/protocol/snapshot/snapshot-codec.ts +0 -87
- package/src/protocol/snapshot/snapshot-registry.test.ts +0 -310
- package/src/protocol/snapshot/snapshot-registry.ts +0 -201
- package/src/protocol/snapshot/snapshot.test.ts +0 -76
- package/src/protocol/snapshot/snapshot.ts +0 -41
- /package/dist/{core → types/core}/binary-codec/index.d.ts +0 -0
- /package/dist/{core/loop/loop.d.ts → types/core/driver/driver.d.ts} +0 -0
- /package/dist/{core/loop → types/core/driver}/drivers/index.d.ts +0 -0
- /package/dist/{core → types/core}/events/index.d.ts +0 -0
- /package/dist/{core → types/core}/fixed-ticker/index.d.ts +0 -0
- /package/dist/{core → types/core}/generate-id/generate-id.d.ts +0 -0
- /package/dist/{core → types/core}/generate-id/index.d.ts +0 -0
- /package/dist/{core → types/core}/lerp/index.d.ts +0 -0
- /package/dist/{core → types/core}/lerp/lerp.d.ts +0 -0
- /package/dist/{core → types/core}/navmesh/index.d.ts +0 -0
- /package/dist/{core → types/core}/navmesh/navmesh-worker-pool.d.ts +0 -0
- /package/dist/{core → types/core}/navmesh/navmesh.worker.d.ts +0 -0
- /package/dist/{core → types/core}/pooled-codec/index.d.ts +0 -0
- /package/dist/{core → types/core}/pooled-codec/pooled-codec.d.ts +0 -0
- /package/dist/{core → types/core}/prediction/index.d.ts +0 -0
- /package/dist/{core → types/core}/prediction/prediction.d.ts +0 -0
- /package/dist/{ecs → types/ecs}/component-store.d.ts +0 -0
- /package/dist/{ecs → types/ecs}/component.d.ts +0 -0
- /package/dist/{ecs → types/ecs}/entity-handle.d.ts +0 -0
- /package/dist/{ecs → types/ecs}/example.d.ts +0 -0
- /package/dist/{ecs → types/ecs}/index.d.ts +0 -0
- /package/dist/{ecs → types/ecs}/world-systems.d.ts +0 -0
- /package/dist/{net → types/net}/adapters/browser-websocket.d.ts +0 -0
- /package/dist/{net → types/net}/adapters/bun-websocket.d.ts +0 -0
- /package/dist/{net → types/net}/buffer-pool.d.ts +0 -0
- /package/dist/{net → types/net}/client.d.ts +0 -0
- /package/dist/{net → types/net}/types.d.ts +0 -0
- /package/dist/{net → types/net}/validators.d.ts +0 -0
- /package/dist/{protocol → types/protocol}/index.d.ts +0 -0
- /package/dist/{protocol → types/protocol}/intent/intent-registry.d.ts +0 -0
- /package/dist/{protocol → types/protocol}/intent/intent.d.ts +0 -0
- /package/dist/{protocol → types/protocol}/rpc/define-rpc.d.ts +0 -0
- /package/dist/{protocol → types/protocol}/rpc/index.d.ts +0 -0
- /package/dist/{protocol → types/protocol}/rpc/rpc-registry.d.ts +0 -0
- /package/dist/{protocol → types/protocol}/rpc/rpc.d.ts +0 -0
- /package/dist/{protocol → types/protocol}/snapshot/index.d.ts +0 -0
- /package/dist/{protocol → types/protocol}/snapshot/snapshot-codec.d.ts +0 -0
- /package/dist/{protocol → types/protocol}/snapshot/snapshot-registry.d.ts +0 -0
- /package/dist/{protocol → types/protocol}/snapshot/snapshot.d.ts +0 -0
- /package/dist/{protocol/intent/intent.js → webgpu/types/2d/animation.test.d.ts} +0 -0
|
@@ -1,292 +0,0 @@
|
|
|
1
|
-
import type { Server, ServerWebSocket } from "bun";
|
|
2
|
-
import type { TransportAdapter, ServerTransportAdapter } from "../types";
|
|
3
|
-
import { generateId } from "../../core/generate-id/generate-id";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Bun WebSocket transport adapter for client-side connections
|
|
7
|
-
*/
|
|
8
|
-
export class BunWebSocketClientTransport implements TransportAdapter {
|
|
9
|
-
private socket: WebSocket;
|
|
10
|
-
private messageHandlers: Array<(data: Uint8Array) => void> = [];
|
|
11
|
-
private closeHandlers: Array<() => void> = [];
|
|
12
|
-
private errorHandlers: Array<(error: Error) => void> = [];
|
|
13
|
-
|
|
14
|
-
constructor(socket: WebSocket) {
|
|
15
|
-
this.socket = socket;
|
|
16
|
-
this.setupHandlers();
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
send(data: Uint8Array): void {
|
|
20
|
-
if (this.socket.readyState === WebSocket.OPEN) {
|
|
21
|
-
this.socket.send(data);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
onMessage(handler: (data: Uint8Array) => void): void {
|
|
26
|
-
this.messageHandlers.push(handler);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
onClose(handler: () => void): void {
|
|
30
|
-
this.closeHandlers.push(handler);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
onError(handler: (error: Error) => void): void {
|
|
34
|
-
this.errorHandlers.push(handler);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
close(): void {
|
|
38
|
-
this.socket.close();
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
private setupHandlers(): void {
|
|
42
|
-
this.socket.binaryType = "arraybuffer";
|
|
43
|
-
|
|
44
|
-
this.socket.addEventListener("message", (event) => {
|
|
45
|
-
if (event.data instanceof ArrayBuffer) {
|
|
46
|
-
const data = new Uint8Array(event.data);
|
|
47
|
-
for (const handler of this.messageHandlers) {
|
|
48
|
-
handler(data);
|
|
49
|
-
}
|
|
50
|
-
} else {
|
|
51
|
-
// Warn about non-binary messages
|
|
52
|
-
const error = new Error(`Unexpected message type: ${typeof event.data}`);
|
|
53
|
-
for (const handler of this.errorHandlers) {
|
|
54
|
-
handler(error);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
this.socket.addEventListener("close", () => {
|
|
60
|
-
for (const handler of this.closeHandlers) {
|
|
61
|
-
handler();
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
this.socket.addEventListener("error", () => {
|
|
66
|
-
const error = new Error("WebSocket error");
|
|
67
|
-
for (const handler of this.errorHandlers) {
|
|
68
|
-
handler(error);
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Static factory method to connect to a server
|
|
75
|
-
*/
|
|
76
|
-
static connect(url: string): Promise<BunWebSocketClientTransport> {
|
|
77
|
-
return new Promise((resolve, reject) => {
|
|
78
|
-
const socket = new WebSocket(url);
|
|
79
|
-
const transport = new BunWebSocketClientTransport(socket);
|
|
80
|
-
|
|
81
|
-
socket.addEventListener("open", () => {
|
|
82
|
-
resolve(transport);
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
socket.addEventListener("error", (error) => {
|
|
86
|
-
reject(error);
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Bun WebSocket transport adapter for server-side peer connections
|
|
94
|
-
*/
|
|
95
|
-
export class BunWebSocketPeerTransport implements TransportAdapter {
|
|
96
|
-
private socket: ServerWebSocket<unknown>;
|
|
97
|
-
private messageHandlers: Array<(data: Uint8Array) => void> = [];
|
|
98
|
-
private closeHandlers: Array<() => void> = [];
|
|
99
|
-
private errorHandlers: Array<(error: Error) => void> = [];
|
|
100
|
-
|
|
101
|
-
constructor(socket: ServerWebSocket<unknown>) {
|
|
102
|
-
this.socket = socket;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
send(data: Uint8Array): void {
|
|
106
|
-
this.socket.send(data);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
onMessage(handler: (data: Uint8Array) => void): void {
|
|
110
|
-
this.messageHandlers.push(handler);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
onClose(handler: () => void): void {
|
|
114
|
-
this.closeHandlers.push(handler);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
onError(handler: (error: Error) => void): void {
|
|
118
|
-
this.errorHandlers.push(handler);
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
close(): void {
|
|
122
|
-
this.socket.close();
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
_handleOpen(): void {
|
|
126
|
-
// No-op for server peer transport
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* Internal: Call message handlers (used by server adapter)
|
|
131
|
-
*/
|
|
132
|
-
_handleMessage(data: Uint8Array): void {
|
|
133
|
-
for (const handler of this.messageHandlers) {
|
|
134
|
-
handler(data);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
/**
|
|
139
|
-
* Internal: Call close handlers (used by server adapter)
|
|
140
|
-
*/
|
|
141
|
-
_handleClose(): void {
|
|
142
|
-
for (const handler of this.closeHandlers) {
|
|
143
|
-
handler();
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* Internal: Call error handlers (used by server adapter)
|
|
149
|
-
*/
|
|
150
|
-
_handleError(error: Error): void {
|
|
151
|
-
for (const handler of this.errorHandlers) {
|
|
152
|
-
handler(error);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
/**
|
|
158
|
-
* Bun WebSocket server transport adapter
|
|
159
|
-
*/
|
|
160
|
-
export class BunWebSocketServerTransport implements ServerTransportAdapter<BunWebSocketPeerTransport> {
|
|
161
|
-
private server: Server<unknown>;
|
|
162
|
-
private peers = new Map<string, BunWebSocketPeerTransport>();
|
|
163
|
-
|
|
164
|
-
private connectionHandlers: Array<(peer: BunWebSocketPeerTransport, peerId: string) => void> = [];
|
|
165
|
-
private disconnectionHandlers: Array<(peerId: string) => void> = [];
|
|
166
|
-
|
|
167
|
-
constructor(server: Server<unknown>) {
|
|
168
|
-
this.server = server;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
onConnection(handler: (peer: BunWebSocketPeerTransport, peerId: string) => void): void {
|
|
172
|
-
this.connectionHandlers.push(handler);
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
onDisconnection(handler: (peerId: string) => void): void {
|
|
176
|
-
this.disconnectionHandlers.push(handler);
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
getPeer(peerId: string): BunWebSocketPeerTransport | undefined {
|
|
180
|
-
return this.peers.get(peerId);
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
getPeerIds(): string[] {
|
|
184
|
-
return Array.from(this.peers.keys());
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
close(): void {
|
|
188
|
-
this.server.stop();
|
|
189
|
-
this.peers.clear();
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
/**
|
|
193
|
-
* Internal: Register a new peer (called from Bun server fetch handler)
|
|
194
|
-
*/
|
|
195
|
-
_registerPeer(socket: ServerWebSocket<unknown>): string {
|
|
196
|
-
const peerId = generateId({ prefix: "peer_" });
|
|
197
|
-
const peer = new BunWebSocketPeerTransport(socket);
|
|
198
|
-
this.peers.set(peerId, peer);
|
|
199
|
-
|
|
200
|
-
// Notify connection handlers
|
|
201
|
-
for (const handler of this.connectionHandlers) {
|
|
202
|
-
handler(peer, peerId);
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
return peerId;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* Internal: Handle peer message (called from Bun server message handler)
|
|
210
|
-
*/
|
|
211
|
-
_handlePeerMessage(peerId: string, data: Uint8Array): void {
|
|
212
|
-
const peer = this.peers.get(peerId);
|
|
213
|
-
if (peer) {
|
|
214
|
-
peer._handleMessage(data);
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
/**
|
|
219
|
-
* Internal: Handle peer disconnection (called from Bun server close handler)
|
|
220
|
-
*/
|
|
221
|
-
_handlePeerDisconnection(peerId: string): void {
|
|
222
|
-
const peer = this.peers.get(peerId);
|
|
223
|
-
if (peer) {
|
|
224
|
-
peer._handleClose();
|
|
225
|
-
this.peers.delete(peerId);
|
|
226
|
-
|
|
227
|
-
// Notify disconnection handlers
|
|
228
|
-
for (const handler of this.disconnectionHandlers) {
|
|
229
|
-
handler(peerId);
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
_handlePeerConnection(peerId: string): void {
|
|
235
|
-
const peer = this.peers.get(peerId);
|
|
236
|
-
if (peer) {
|
|
237
|
-
for (const handler of this.connectionHandlers) {
|
|
238
|
-
handler(peer, peerId);
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
/**
|
|
244
|
-
* Static factory method to create a Bun WebSocket server
|
|
245
|
-
*/
|
|
246
|
-
static create(port: number): BunWebSocketServerTransport {
|
|
247
|
-
// Peer ID tracking per socket
|
|
248
|
-
const socketToPeerId = new WeakMap<ServerWebSocket<unknown>, string>();
|
|
249
|
-
|
|
250
|
-
let transport: BunWebSocketServerTransport;
|
|
251
|
-
|
|
252
|
-
const server = Bun.serve({
|
|
253
|
-
port,
|
|
254
|
-
fetch(req, server) {
|
|
255
|
-
// Upgrade HTTP request to WebSocket
|
|
256
|
-
if (server.upgrade(req)) {
|
|
257
|
-
return; // Connection upgraded
|
|
258
|
-
}
|
|
259
|
-
return new Response("Expected WebSocket connection", { status: 400 });
|
|
260
|
-
},
|
|
261
|
-
websocket: {
|
|
262
|
-
open(ws) {
|
|
263
|
-
// Register peer on connection
|
|
264
|
-
const peerId = transport._registerPeer(ws);
|
|
265
|
-
socketToPeerId.set(ws, peerId);
|
|
266
|
-
transport._handlePeerConnection(peerId);
|
|
267
|
-
transport.connectionHandlers.forEach((handler) => handler(transport.getPeer(peerId)!, peerId));
|
|
268
|
-
},
|
|
269
|
-
message(ws, message) {
|
|
270
|
-
// Handle incoming message
|
|
271
|
-
const peerId = socketToPeerId.get(ws);
|
|
272
|
-
if (peerId && message instanceof Uint8Array) {
|
|
273
|
-
transport._handlePeerMessage(peerId, message);
|
|
274
|
-
} else if (peerId && message instanceof ArrayBuffer) {
|
|
275
|
-
transport._handlePeerMessage(peerId, new Uint8Array(message));
|
|
276
|
-
}
|
|
277
|
-
},
|
|
278
|
-
close(ws) {
|
|
279
|
-
// Handle disconnection
|
|
280
|
-
const peerId = socketToPeerId.get(ws);
|
|
281
|
-
if (peerId) {
|
|
282
|
-
transport._handlePeerDisconnection(peerId);
|
|
283
|
-
socketToPeerId.delete(ws);
|
|
284
|
-
}
|
|
285
|
-
},
|
|
286
|
-
},
|
|
287
|
-
});
|
|
288
|
-
|
|
289
|
-
transport = new BunWebSocketServerTransport(server);
|
|
290
|
-
return transport;
|
|
291
|
-
}
|
|
292
|
-
}
|
package/src/net/buffer-pool.ts
DELETED
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import { ObjectPool } from "../core/pooled-codec/pooled-codec";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Message wrapper pool for network messages
|
|
5
|
-
* Pools buffers for wrapping encoded data with message type headers
|
|
6
|
-
*
|
|
7
|
-
* Works alongside PooledCodec:
|
|
8
|
-
* - PooledCodec handles encoding game data (intents/snapshots)
|
|
9
|
-
* - MessageWrapperPool handles wrapping with protocol headers
|
|
10
|
-
*
|
|
11
|
-
* This eliminates the "new Uint8Array(1 + data.length)" allocation in hot paths
|
|
12
|
-
*
|
|
13
|
-
* Uses ObjectPool from core/pooled-codec for consistent pooling strategy
|
|
14
|
-
*/
|
|
15
|
-
export class MessageWrapperPool {
|
|
16
|
-
private pools: Map<number, ObjectPool<Uint8Array>> = new Map();
|
|
17
|
-
private readonly sizeClass: number;
|
|
18
|
-
private readonly zeroBuffersOnRelease: boolean;
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* @param sizeClass Buffers are pooled in multiples of this size (default: 256 bytes)
|
|
22
|
-
* @param zeroBuffersOnRelease If true, zero buffers before returning to pool (default: false for performance)
|
|
23
|
-
*/
|
|
24
|
-
constructor(sizeClass: number = 256, zeroBuffersOnRelease: boolean = false) {
|
|
25
|
-
this.sizeClass = sizeClass;
|
|
26
|
-
this.zeroBuffersOnRelease = zeroBuffersOnRelease;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Wrap payload data with a message type header
|
|
31
|
-
* Returns a buffer from the pool (or allocates if needed)
|
|
32
|
-
*
|
|
33
|
-
* Format: [messageType: u8][payload: Uint8Array]
|
|
34
|
-
*
|
|
35
|
-
* IMPORTANT: Caller must call release() when done to return buffer to pool
|
|
36
|
-
*/
|
|
37
|
-
wrap(messageType: number, payload: Uint8Array): Uint8Array {
|
|
38
|
-
const totalSize = 1 + payload.byteLength;
|
|
39
|
-
const poolSize = Math.ceil(totalSize / this.sizeClass) * this.sizeClass;
|
|
40
|
-
|
|
41
|
-
// Get or create pool for this size class
|
|
42
|
-
let pool = this.pools.get(poolSize);
|
|
43
|
-
if (!pool) {
|
|
44
|
-
pool = new ObjectPool(() => new Uint8Array(poolSize));
|
|
45
|
-
this.pools.set(poolSize, pool);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
// Acquire buffer from pool
|
|
49
|
-
const buffer = pool.acquire();
|
|
50
|
-
|
|
51
|
-
// Write message type and payload
|
|
52
|
-
buffer[0] = messageType;
|
|
53
|
-
buffer.set(payload, 1);
|
|
54
|
-
|
|
55
|
-
// Return view of exact size needed
|
|
56
|
-
return buffer.subarray(0, totalSize);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Return a buffer to the pool for reuse
|
|
61
|
-
* Optionally zeros buffer based on constructor config
|
|
62
|
-
*
|
|
63
|
-
* WARNING: Caller must not use the buffer after calling release()
|
|
64
|
-
*/
|
|
65
|
-
release(buffer: Uint8Array): void {
|
|
66
|
-
// Get the actual underlying buffer size
|
|
67
|
-
const poolSize = buffer.buffer.byteLength;
|
|
68
|
-
|
|
69
|
-
// Only pool buffers that match our size classes
|
|
70
|
-
if (poolSize % this.sizeClass !== 0) {
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
const pool = this.pools.get(poolSize);
|
|
75
|
-
if (!pool) {
|
|
76
|
-
return; // No pool for this size, let it be garbage collected
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
// Create a view of the full buffer
|
|
80
|
-
const fullBuffer = new Uint8Array(buffer.buffer);
|
|
81
|
-
|
|
82
|
-
// Optionally zero buffer (expensive but safer if caller might hold references)
|
|
83
|
-
if (this.zeroBuffersOnRelease) {
|
|
84
|
-
fullBuffer.fill(0);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
pool.release(fullBuffer);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Get current pool statistics
|
|
92
|
-
* Note: ObjectPool doesn't expose size, so we can only list pool classes
|
|
93
|
-
*/
|
|
94
|
-
getStats(): { poolSizes: number[] } {
|
|
95
|
-
return {
|
|
96
|
-
poolSizes: Array.from(this.pools.keys()).sort((a, b) => a - b),
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Clear all pooled buffers (useful for testing or memory cleanup)
|
|
102
|
-
*/
|
|
103
|
-
clear(): void {
|
|
104
|
-
this.pools.clear();
|
|
105
|
-
}
|
|
106
|
-
}
|