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
package/src/net/types.ts
DELETED
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Core networking types for transport-agnostic multiplayer game networking
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Generic transport adapter interface - implement this to support any transport layer
|
|
7
|
-
* (WebSocket, WebRTC, UDP, Socket.io, etc.)
|
|
8
|
-
*
|
|
9
|
-
* IMPORTANT: Implementations MUST copy the data buffer if they need to hold a reference
|
|
10
|
-
* after send() returns. The caller may reuse/mutate the buffer immediately after send()
|
|
11
|
-
* completes (for buffer pooling optimization).
|
|
12
|
-
*/
|
|
13
|
-
export interface TransportAdapter {
|
|
14
|
-
/**
|
|
15
|
-
* Send binary data through the transport.
|
|
16
|
-
*
|
|
17
|
-
* CRITICAL: You MUST copy the buffer if your transport will access it after
|
|
18
|
-
* this method returns (e.g., in async operations, queues, or callbacks).
|
|
19
|
-
* The caller may reuse this buffer immediately after send() completes.
|
|
20
|
-
*
|
|
21
|
-
* WebSocket transports (Bun, browser) copy automatically and are safe.
|
|
22
|
-
* Custom transports MUST explicitly copy: `new Uint8Array(data)`
|
|
23
|
-
*/
|
|
24
|
-
send(data: Uint8Array): void | Promise<void>;
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Register a callback for connection open
|
|
28
|
-
*/
|
|
29
|
-
onOpen?(handler: () => void): void;
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Register a callback for incoming binary data
|
|
33
|
-
*/
|
|
34
|
-
onMessage(handler: (data: Uint8Array) => void): void;
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Register a callback for connection close/disconnect
|
|
38
|
-
*/
|
|
39
|
-
onClose(handler: () => void): void;
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Register a callback for transport errors (optional)
|
|
43
|
-
*/
|
|
44
|
-
onError?(handler: (error: Error) => void): void;
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Close the connection
|
|
48
|
-
*/
|
|
49
|
-
close(): void | Promise<void>;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Server-side transport adapter - manages multiple peer connections
|
|
54
|
-
*/
|
|
55
|
-
export interface ServerTransportAdapter<TPeer extends TransportAdapter> {
|
|
56
|
-
/**
|
|
57
|
-
* Register a callback for new peer connections
|
|
58
|
-
*/
|
|
59
|
-
onConnection(handler: (peer: TPeer, peerId: string) => void): void;
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Register a callback for peer disconnections
|
|
63
|
-
*/
|
|
64
|
-
onDisconnection(handler: (peerId: string) => void): void;
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Get a specific peer connection by ID
|
|
68
|
-
*/
|
|
69
|
-
getPeer(peerId: string): TPeer | undefined;
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Get all connected peer IDs
|
|
73
|
-
*/
|
|
74
|
-
getPeerIds(): string[];
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Close the server and all connections
|
|
78
|
-
*/
|
|
79
|
-
close(): void | Promise<void>;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Message type identifiers for protocol discrimination
|
|
84
|
-
*/
|
|
85
|
-
export enum MessageType {
|
|
86
|
-
/** Client -> Server: Intent/command */
|
|
87
|
-
INTENT = 0x01,
|
|
88
|
-
/** Server -> Client: State snapshot */
|
|
89
|
-
SNAPSHOT = 0x02,
|
|
90
|
-
/** Bidirectional: Heartbeat/ping */
|
|
91
|
-
HEARTBEAT = 0x03,
|
|
92
|
-
/** Bidirectional: Custom application message */
|
|
93
|
-
CUSTOM = 0xff,
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Message priority levels for send queue
|
|
98
|
-
*/
|
|
99
|
-
export enum MessagePriority {
|
|
100
|
-
/** Lowest priority - can be dropped if queue is full (e.g., chat) */
|
|
101
|
-
LOW = 0,
|
|
102
|
-
/** Normal priority - most game messages (e.g., movement) */
|
|
103
|
-
NORMAL = 1,
|
|
104
|
-
/** High priority - important events (e.g., damage, scoring) */
|
|
105
|
-
HIGH = 2,
|
|
106
|
-
/** Critical priority - never drop (e.g., connection control) */
|
|
107
|
-
CRITICAL = 3,
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Queued message with priority
|
|
112
|
-
*/
|
|
113
|
-
export interface QueuedMessage {
|
|
114
|
-
data: Uint8Array;
|
|
115
|
-
priority: MessagePriority;
|
|
116
|
-
timestamp: number;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Lag simulation configuration for testing network conditions
|
|
121
|
-
*/
|
|
122
|
-
export type LagSimulation = number | { min: number; max: number };
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* Configuration for network message handling
|
|
126
|
-
*/
|
|
127
|
-
export interface NetworkConfig {
|
|
128
|
-
/**
|
|
129
|
-
* Maximum message size in bytes (default: 64KB)
|
|
130
|
-
*/
|
|
131
|
-
maxMessageSize?: number;
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* Enable debug logging
|
|
135
|
-
*/
|
|
136
|
-
debug?: boolean;
|
|
137
|
-
|
|
138
|
-
/**
|
|
139
|
-
* Maximum messages per second per peer (server only, default: 100)
|
|
140
|
-
* Set to 0 to disable rate limiting
|
|
141
|
-
*/
|
|
142
|
-
maxMessagesPerSecond?: number;
|
|
143
|
-
|
|
144
|
-
/**
|
|
145
|
-
* Maximum send queue size per peer (default: 100)
|
|
146
|
-
* When exceeded, oldest messages are dropped
|
|
147
|
-
*/
|
|
148
|
-
maxSendQueueSize?: number;
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* Enable buffer pooling for message wrapping (default: true)
|
|
152
|
-
*
|
|
153
|
-
* IMPORTANT: Only enable if your transport copies buffers synchronously in send().
|
|
154
|
-
* WebSocket transports (Bun, browser) are safe. Custom transports that queue
|
|
155
|
-
* buffers internally MUST copy the buffer before queuing.
|
|
156
|
-
*/
|
|
157
|
-
enableBufferPooling?: boolean;
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* Heartbeat interval in milliseconds (default: 30000 = 30s)
|
|
161
|
-
* Set to 0 to disable heartbeats
|
|
162
|
-
*/
|
|
163
|
-
heartbeatInterval?: number;
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* Heartbeat timeout in milliseconds (default: 60000 = 60s)
|
|
167
|
-
* If no message received within this time, connection is considered dead
|
|
168
|
-
*/
|
|
169
|
-
heartbeatTimeout?: number;
|
|
170
|
-
|
|
171
|
-
/**
|
|
172
|
-
* Simulate network lag for testing (client-side only)
|
|
173
|
-
* - number: Fixed delay in milliseconds
|
|
174
|
-
* - {min, max}: Random delay between min and max milliseconds
|
|
175
|
-
* - undefined: No lag simulation (default)
|
|
176
|
-
*
|
|
177
|
-
* @example
|
|
178
|
-
* ```ts
|
|
179
|
-
* // Fixed 100ms lag
|
|
180
|
-
* lagSimulation: 100
|
|
181
|
-
*
|
|
182
|
-
* // Random lag between 50-150ms
|
|
183
|
-
* lagSimulation: { min: 50, max: 150 }
|
|
184
|
-
* ```
|
|
185
|
-
*/
|
|
186
|
-
lagSimulation?: LagSimulation;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* Per-peer state tracking on the server
|
|
191
|
-
*/
|
|
192
|
-
export interface PeerState {
|
|
193
|
-
/** Unique peer identifier */
|
|
194
|
-
peerId: string;
|
|
195
|
-
|
|
196
|
-
/** Transport connection for this peer */
|
|
197
|
-
transport: TransportAdapter;
|
|
198
|
-
|
|
199
|
-
/** Last tick number sent to this peer */
|
|
200
|
-
lastSentTick: number;
|
|
201
|
-
|
|
202
|
-
/** Connection timestamp */
|
|
203
|
-
connectedAt: number;
|
|
204
|
-
|
|
205
|
-
/** Custom metadata (e.g., player name, team, etc.) */
|
|
206
|
-
metadata: Record<string, unknown>;
|
|
207
|
-
|
|
208
|
-
/** Rate limiting: message count in current second */
|
|
209
|
-
messageCount: number;
|
|
210
|
-
|
|
211
|
-
/** Rate limiting: timestamp of current second window */
|
|
212
|
-
messageCountWindow: number;
|
|
213
|
-
|
|
214
|
-
/** Send queue for backpressure handling (prioritized) */
|
|
215
|
-
sendQueue: QueuedMessage[];
|
|
216
|
-
|
|
217
|
-
/** Bandwidth tracking: bytes sent in current second */
|
|
218
|
-
bytesSent: number;
|
|
219
|
-
|
|
220
|
-
/** Bandwidth tracking: timestamp of current second window */
|
|
221
|
-
bandwidthWindow: number;
|
|
222
|
-
|
|
223
|
-
/** Flag to indicate if peer is experiencing backpressure */
|
|
224
|
-
isBackpressured: boolean;
|
|
225
|
-
|
|
226
|
-
/** Last time we received any message from this peer */
|
|
227
|
-
lastMessageReceivedAt: number;
|
|
228
|
-
}
|
package/src/net/validators.ts
DELETED
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import type { Intent } from "../protocol/intent/intent";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Common intent validation helpers
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Validate that intent tick is not in the past (with tolerance for network lag)
|
|
9
|
-
*
|
|
10
|
-
* NOTE: Pass the current tick value at the time you create the validator.
|
|
11
|
-
* If your tick advances, you'll need to recreate the validator or use a function
|
|
12
|
-
* that captures the current tick dynamically.
|
|
13
|
-
*
|
|
14
|
-
* @param currentTick Current server tick
|
|
15
|
-
* @param tolerance Number of ticks to allow in the past (default: 10)
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```ts
|
|
19
|
-
* // Option 1: Recreate validator each tick (simple but allocates)
|
|
20
|
-
* function onTick(currentTick: number) {
|
|
21
|
-
* const validator = validateTickNotTooOld(currentTick);
|
|
22
|
-
* // use validator...
|
|
23
|
-
* }
|
|
24
|
-
*
|
|
25
|
-
* // Option 2: Manual validation (zero allocation)
|
|
26
|
-
* if (intent.tick >= currentTick - 10) {
|
|
27
|
-
* // intent is valid
|
|
28
|
-
* }
|
|
29
|
-
* ```
|
|
30
|
-
*/
|
|
31
|
-
export function validateTickNotTooOld(currentTick: number, tolerance: number = 10) {
|
|
32
|
-
return <T extends Intent>(_peerId: string, intent: T): boolean => {
|
|
33
|
-
return intent.tick >= currentTick - tolerance;
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Validate that intent tick is not too far in the future
|
|
39
|
-
* @param currentTick Current server tick
|
|
40
|
-
* @param tolerance Number of ticks to allow in the future (default: 5)
|
|
41
|
-
*/
|
|
42
|
-
export function validateTickNotTooFuture(currentTick: number, tolerance: number = 5) {
|
|
43
|
-
return <T extends Intent>(_peerId: string, intent: T): boolean => {
|
|
44
|
-
return intent.tick <= currentTick + tolerance;
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Validate intent tick is within acceptable range
|
|
50
|
-
* @param currentTick Current server tick
|
|
51
|
-
* @param pastTolerance Ticks allowed in past (default: 10)
|
|
52
|
-
* @param futureTolerance Ticks allowed in future (default: 5)
|
|
53
|
-
*/
|
|
54
|
-
export function validateTickRange(
|
|
55
|
-
currentTick: number,
|
|
56
|
-
pastTolerance: number = 10,
|
|
57
|
-
futureTolerance: number = 5
|
|
58
|
-
) {
|
|
59
|
-
return <T extends Intent>(_peerId: string, intent: T): boolean => {
|
|
60
|
-
return (
|
|
61
|
-
intent.tick >= currentTick - pastTolerance &&
|
|
62
|
-
intent.tick <= currentTick + futureTolerance
|
|
63
|
-
);
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Combine multiple validators with AND logic
|
|
69
|
-
*/
|
|
70
|
-
export function combineValidators<T extends Intent>(
|
|
71
|
-
...validators: Array<(peerId: string, intent: T) => boolean>
|
|
72
|
-
) {
|
|
73
|
-
return (peerId: string, intent: T): boolean => {
|
|
74
|
-
for (const validator of validators) {
|
|
75
|
-
if (!validator(peerId, intent)) {
|
|
76
|
-
return false;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
return true;
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Validate that a numeric field is within a range
|
|
85
|
-
*/
|
|
86
|
-
export function validateRange(field: string, min: number, max: number) {
|
|
87
|
-
return <T extends Intent>(_peerId: string, intent: T): boolean => {
|
|
88
|
-
const value = (intent as any)[field];
|
|
89
|
-
if (typeof value !== "number") {
|
|
90
|
-
return false;
|
|
91
|
-
}
|
|
92
|
-
return value >= min && value <= max;
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Validate that a field exists and is of expected type
|
|
98
|
-
*/
|
|
99
|
-
export function validateFieldType(field: string, expectedType: string) {
|
|
100
|
-
return <T extends Intent>(_peerId: string, intent: T): boolean => {
|
|
101
|
-
const value = (intent as any)[field];
|
|
102
|
-
return typeof value === expectedType;
|
|
103
|
-
};
|
|
104
|
-
}
|