murow 0.0.70 → 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.
Files changed (439) hide show
  1. package/README.md +52 -37
  2. package/dist/cjs/core/binary-codec/binary-codec.js +1 -0
  3. package/dist/cjs/core/binary-codec/index.js +1 -0
  4. package/dist/cjs/core/driver/driver.js +1 -0
  5. package/dist/cjs/core/driver/drivers/immediate.js +1 -0
  6. package/dist/cjs/core/driver/drivers/index.js +1 -0
  7. package/dist/cjs/core/driver/drivers/raf.js +1 -0
  8. package/dist/cjs/core/driver/drivers/timeout.js +1 -0
  9. package/dist/cjs/core/driver/index.js +1 -0
  10. package/dist/cjs/core/events/event-system.js +1 -0
  11. package/dist/cjs/core/events/index.js +1 -0
  12. package/dist/cjs/core/fixed-ticker/fixed-ticker.js +1 -0
  13. package/dist/cjs/core/fixed-ticker/index.js +1 -0
  14. package/dist/cjs/core/free-list/free-list.js +1 -0
  15. package/dist/cjs/core/free-list/index.js +1 -0
  16. package/dist/cjs/core/generate-id/generate-id.js +1 -0
  17. package/dist/cjs/core/generate-id/index.js +1 -0
  18. package/dist/cjs/core/index.js +1 -0
  19. package/dist/cjs/core/input/index.js +1 -0
  20. package/dist/cjs/core/input/manager.js +1 -0
  21. package/dist/cjs/core/input/sources/browser.js +1 -0
  22. package/dist/cjs/core/input/sources/index.js +1 -0
  23. package/dist/cjs/core/input/types.js +1 -0
  24. package/dist/cjs/core/lerp/index.js +1 -0
  25. package/dist/cjs/core/lerp/lerp.js +1 -0
  26. package/dist/cjs/core/navmesh/index.js +1 -0
  27. package/dist/cjs/core/navmesh/navmesh-worker-pool.js +1 -0
  28. package/dist/cjs/core/navmesh/navmesh.js +1 -0
  29. package/dist/cjs/core/navmesh/navmesh.worker.js +1 -0
  30. package/dist/cjs/core/pooled-codec/index.js +1 -0
  31. package/dist/cjs/core/pooled-codec/pooled-codec.js +1 -0
  32. package/dist/cjs/core/prediction/index.js +1 -0
  33. package/dist/cjs/core/prediction/prediction.js +1 -0
  34. package/dist/cjs/core/ray/index.js +1 -0
  35. package/dist/cjs/core/ray/ray-2d.js +1 -0
  36. package/dist/cjs/core/ray/ray-3d.js +1 -0
  37. package/dist/cjs/core/simple-rng/index.js +1 -0
  38. package/dist/cjs/core/simple-rng/simple-rng.js +1 -0
  39. package/dist/cjs/core/sparse-batcher/index.js +1 -0
  40. package/dist/cjs/core/sparse-batcher/sparse-batcher.js +1 -0
  41. package/dist/cjs/ecs/component-store.js +1 -0
  42. package/dist/cjs/ecs/component.js +1 -0
  43. package/dist/cjs/ecs/entity-handle.js +1 -0
  44. package/dist/cjs/ecs/index.js +1 -0
  45. package/dist/cjs/ecs/system-builder.js +1 -0
  46. package/dist/cjs/ecs/world-systems.js +1 -0
  47. package/dist/cjs/ecs/world.js +1 -0
  48. package/dist/cjs/game/index.js +1 -0
  49. package/dist/cjs/game/loop/index.js +1 -0
  50. package/dist/cjs/game/loop/loop.js +1 -0
  51. package/dist/cjs/index.js +1 -0
  52. package/dist/cjs/net/adapters/browser-websocket.js +1 -0
  53. package/dist/cjs/net/adapters/bun-websocket.js +1 -0
  54. package/dist/cjs/net/buffer-pool.js +1 -0
  55. package/dist/cjs/net/client.js +1 -0
  56. package/dist/cjs/net/index.js +1 -0
  57. package/dist/cjs/net/server.js +1 -0
  58. package/dist/cjs/net/types.js +1 -0
  59. package/dist/cjs/net/validators.js +1 -0
  60. package/dist/cjs/protocol/index.js +1 -0
  61. package/dist/cjs/protocol/intent/define-intent.js +1 -0
  62. package/dist/cjs/protocol/intent/index.js +1 -0
  63. package/dist/cjs/protocol/intent/intent-registry.js +1 -0
  64. package/dist/cjs/protocol/intent/intent.js +1 -0
  65. package/dist/cjs/protocol/rpc/define-rpc.js +1 -0
  66. package/dist/cjs/protocol/rpc/index.js +1 -0
  67. package/dist/cjs/protocol/rpc/rpc-registry.js +1 -0
  68. package/dist/cjs/protocol/rpc/rpc.js +1 -0
  69. package/dist/cjs/protocol/snapshot/index.js +1 -0
  70. package/dist/cjs/protocol/snapshot/snapshot-codec.js +1 -0
  71. package/dist/cjs/protocol/snapshot/snapshot-registry.js +1 -0
  72. package/dist/cjs/protocol/snapshot/snapshot.js +1 -0
  73. package/dist/cjs/renderer/base-2d-renderer.js +1 -0
  74. package/dist/cjs/renderer/base-3d-renderer.js +1 -0
  75. package/dist/cjs/renderer/base-renderer.js +1 -0
  76. package/dist/cjs/renderer/index.js +1 -0
  77. package/dist/cjs/renderer/types.js +1 -0
  78. package/dist/esm/core/binary-codec/binary-codec.js +1 -0
  79. package/dist/esm/core/binary-codec/index.js +1 -0
  80. package/dist/esm/core/driver/driver.js +1 -0
  81. package/dist/esm/core/driver/drivers/immediate.js +1 -0
  82. package/dist/esm/core/driver/drivers/index.js +1 -0
  83. package/dist/esm/core/driver/drivers/raf.js +1 -0
  84. package/dist/esm/core/driver/drivers/timeout.js +1 -0
  85. package/dist/esm/core/driver/index.js +1 -0
  86. package/dist/esm/core/events/event-system.js +1 -0
  87. package/dist/esm/core/events/index.js +1 -0
  88. package/dist/esm/core/fixed-ticker/fixed-ticker.js +1 -0
  89. package/dist/esm/core/fixed-ticker/index.js +1 -0
  90. package/dist/esm/core/free-list/free-list.js +1 -0
  91. package/dist/esm/core/free-list/index.js +1 -0
  92. package/dist/esm/core/generate-id/generate-id.js +1 -0
  93. package/dist/esm/core/generate-id/index.js +1 -0
  94. package/dist/esm/core/index.js +1 -0
  95. package/dist/esm/core/input/index.js +1 -0
  96. package/dist/esm/core/input/manager.js +1 -0
  97. package/dist/esm/core/input/sources/browser.js +1 -0
  98. package/dist/esm/core/input/sources/index.js +1 -0
  99. package/dist/esm/core/input/types.js +0 -0
  100. package/dist/esm/core/lerp/index.js +1 -0
  101. package/dist/esm/core/lerp/lerp.js +1 -0
  102. package/dist/esm/core/navmesh/index.js +1 -0
  103. package/dist/esm/core/navmesh/navmesh-worker-pool.js +1 -0
  104. package/dist/esm/core/navmesh/navmesh.js +1 -0
  105. package/dist/esm/core/navmesh/navmesh.worker.js +1 -0
  106. package/dist/esm/core/pooled-codec/index.js +1 -0
  107. package/dist/esm/core/pooled-codec/pooled-codec.js +1 -0
  108. package/dist/esm/core/prediction/index.js +1 -0
  109. package/dist/esm/core/prediction/prediction.js +1 -0
  110. package/dist/esm/core/ray/index.js +1 -0
  111. package/dist/esm/core/ray/ray-2d.js +1 -0
  112. package/dist/esm/core/ray/ray-3d.js +1 -0
  113. package/dist/esm/core/simple-rng/index.js +1 -0
  114. package/dist/esm/core/simple-rng/simple-rng.js +1 -0
  115. package/dist/esm/core/sparse-batcher/index.js +1 -0
  116. package/dist/esm/core/sparse-batcher/sparse-batcher.js +1 -0
  117. package/dist/esm/ecs/component-store.js +1 -0
  118. package/dist/esm/ecs/component.js +1 -0
  119. package/dist/esm/ecs/entity-handle.js +1 -0
  120. package/dist/esm/ecs/index.js +1 -0
  121. package/dist/esm/ecs/system-builder.js +1 -0
  122. package/dist/esm/ecs/world-systems.js +1 -0
  123. package/dist/esm/ecs/world.js +1 -0
  124. package/dist/esm/game/index.js +1 -0
  125. package/dist/esm/game/loop/index.js +1 -0
  126. package/dist/esm/game/loop/loop.js +1 -0
  127. package/dist/esm/index.js +1 -0
  128. package/dist/esm/net/adapters/browser-websocket.js +1 -0
  129. package/dist/esm/net/adapters/bun-websocket.js +1 -0
  130. package/dist/esm/net/buffer-pool.js +1 -0
  131. package/dist/esm/net/client.js +1 -0
  132. package/dist/esm/net/index.js +1 -0
  133. package/dist/esm/net/server.js +1 -0
  134. package/dist/esm/net/types.js +1 -0
  135. package/dist/esm/net/validators.js +1 -0
  136. package/dist/esm/protocol/index.js +1 -0
  137. package/dist/esm/protocol/intent/define-intent.js +1 -0
  138. package/dist/esm/protocol/intent/index.js +1 -0
  139. package/dist/esm/protocol/intent/intent-registry.js +1 -0
  140. package/dist/esm/protocol/intent/intent.js +0 -0
  141. package/dist/esm/protocol/rpc/define-rpc.js +1 -0
  142. package/dist/esm/protocol/rpc/index.js +1 -0
  143. package/dist/esm/protocol/rpc/rpc-registry.js +1 -0
  144. package/dist/esm/protocol/rpc/rpc.js +0 -0
  145. package/dist/esm/protocol/snapshot/index.js +1 -0
  146. package/dist/esm/protocol/snapshot/snapshot-codec.js +1 -0
  147. package/dist/esm/protocol/snapshot/snapshot-registry.js +1 -0
  148. package/dist/esm/protocol/snapshot/snapshot.js +1 -0
  149. package/dist/esm/renderer/base-2d-renderer.js +1 -0
  150. package/dist/esm/renderer/base-3d-renderer.js +1 -0
  151. package/dist/esm/renderer/base-renderer.js +1 -0
  152. package/dist/esm/renderer/index.js +1 -0
  153. package/dist/esm/renderer/types.js +0 -0
  154. package/dist/{core → types/core}/binary-codec/binary-codec.d.ts +4 -0
  155. package/dist/{core → types/core}/events/event-system.d.ts +14 -33
  156. package/dist/types/core/free-list/free-list.d.ts +31 -0
  157. package/dist/types/core/free-list/index.d.ts +1 -0
  158. package/dist/{core → types/core}/index.d.ts +5 -0
  159. package/dist/{core → types/core}/input/index.d.ts +1 -0
  160. package/dist/{core → types/core}/input/manager.d.ts +2 -0
  161. package/dist/{core → types/core}/navmesh/navmesh.d.ts +1 -21
  162. package/dist/types/core/ray/index.d.ts +2 -0
  163. package/dist/types/core/ray/ray-2d.d.ts +37 -0
  164. package/dist/types/core/ray/ray-3d.d.ts +42 -0
  165. package/dist/types/core/simple-rng/index.d.ts +1 -0
  166. package/dist/types/core/simple-rng/simple-rng.d.ts +36 -0
  167. package/dist/types/core/sparse-batcher/index.d.ts +1 -0
  168. package/dist/types/core/sparse-batcher/sparse-batcher.d.ts +55 -0
  169. package/dist/{ecs → types/ecs}/world.d.ts +11 -0
  170. package/dist/{game → types/game}/loop/loop.d.ts +33 -29
  171. package/dist/{index.d.ts → types/index.d.ts} +1 -0
  172. package/dist/{net → types/net}/index.d.ts +2 -2
  173. package/dist/types/renderer/base-2d-renderer.d.ts +13 -0
  174. package/dist/types/renderer/base-3d-renderer.d.ts +10 -0
  175. package/dist/types/renderer/base-renderer.d.ts +21 -0
  176. package/dist/types/renderer/index.d.ts +4 -0
  177. package/dist/types/renderer/types.d.ts +79 -0
  178. package/dist/webgpu/cjs/index.js +6004 -0
  179. package/dist/webgpu/esm/index.js +5972 -0
  180. package/dist/webgpu/types/2d/animation.d.ts +97 -0
  181. package/dist/webgpu/types/2d/renderer.d.ts +55 -0
  182. package/dist/webgpu/types/2d/shader.d.ts +61 -0
  183. package/dist/webgpu/types/2d/sprite-accessor.d.ts +47 -0
  184. package/dist/webgpu/types/3d/gltf-skin-parser.d.ts +101 -0
  185. package/dist/webgpu/types/3d/morph-animation.d.ts +69 -0
  186. package/dist/webgpu/types/3d/morph-animation.test.d.ts +1 -0
  187. package/dist/webgpu/types/3d/renderer.d.ts +216 -0
  188. package/dist/webgpu/types/3d/shader.d.ts +136 -0
  189. package/dist/webgpu/types/3d/skeletal-animation-compute/index.d.ts +2 -0
  190. package/dist/webgpu/types/3d/skeletal-animation-compute/kernel.d.ts +8 -0
  191. package/dist/webgpu/types/3d/skeletal-animation-compute/packer.d.ts +32 -0
  192. package/dist/webgpu/types/3d/skeletal-animation.d.ts +90 -0
  193. package/dist/webgpu/types/camera/camera-2d.d.ts +53 -0
  194. package/dist/webgpu/types/camera/camera-2d.test.d.ts +1 -0
  195. package/dist/webgpu/types/camera/camera-3d.d.ts +81 -0
  196. package/dist/webgpu/types/camera/camera-3d.test.d.ts +1 -0
  197. package/dist/webgpu/types/camera/index.d.ts +2 -0
  198. package/dist/webgpu/types/compute/compute-builder.d.ts +123 -0
  199. package/dist/webgpu/types/compute/compute-builder.test.d.ts +1 -0
  200. package/dist/webgpu/types/core/constants.d.ts +59 -0
  201. package/dist/webgpu/types/core/constants.test.d.ts +1 -0
  202. package/dist/webgpu/types/core/index.d.ts +2 -0
  203. package/dist/webgpu/types/core/math.d.ts +37 -0
  204. package/dist/webgpu/types/core/types.d.ts +125 -0
  205. package/dist/webgpu/types/core/types.test.d.ts +1 -0
  206. package/dist/webgpu/types/geometry/built-in.d.ts +58 -0
  207. package/dist/webgpu/types/geometry/built-in.test.d.ts +1 -0
  208. package/dist/webgpu/types/geometry/geometry-builder.d.ts +281 -0
  209. package/dist/webgpu/types/geometry/geometry-builder.test.d.ts +1 -0
  210. package/dist/webgpu/types/geometry/index.d.ts +2 -0
  211. package/dist/webgpu/types/index.d.ts +32 -0
  212. package/dist/webgpu/types/particle/emitter.d.ts +36 -0
  213. package/dist/webgpu/types/shaders/index.d.ts +2 -0
  214. package/dist/webgpu/types/shaders/runtime-transpile.d.ts +18 -0
  215. package/dist/webgpu/types/shaders/sprite-2d.wgsl.d.ts +10 -0
  216. package/dist/webgpu/types/shaders/typegpu.d.ts +9 -0
  217. package/dist/webgpu/types/shaders/utils.d.ts +28 -0
  218. package/dist/webgpu/types/shaders/utils.test.d.ts +1 -0
  219. package/dist/webgpu/types/spritesheet/index.d.ts +1 -0
  220. package/dist/webgpu/types/spritesheet/spritesheet.d.ts +57 -0
  221. package/dist/webgpu/types/spritesheet/spritesheet.test.d.ts +1 -0
  222. package/package.json +96 -26
  223. package/dist/core/binary-codec/binary-codec.js +0 -354
  224. package/dist/core/binary-codec/index.js +0 -1
  225. package/dist/core/driver/driver.js +0 -47
  226. package/dist/core/driver/drivers/immediate.js +0 -61
  227. package/dist/core/driver/drivers/index.js +0 -3
  228. package/dist/core/driver/drivers/raf.js +0 -62
  229. package/dist/core/driver/drivers/timeout.js +0 -71
  230. package/dist/core/driver/index.js +0 -2
  231. package/dist/core/events/event-system.js +0 -88
  232. package/dist/core/events/index.js +0 -1
  233. package/dist/core/fixed-ticker/fixed-ticker.js +0 -105
  234. package/dist/core/fixed-ticker/index.js +0 -1
  235. package/dist/core/generate-id/generate-id.js +0 -25
  236. package/dist/core/generate-id/index.js +0 -1
  237. package/dist/core/index.js +0 -10
  238. package/dist/core/input/index.js +0 -2
  239. package/dist/core/input/manager.js +0 -211
  240. package/dist/core/input/sources/browser.js +0 -29
  241. package/dist/core/input/sources/index.js +0 -1
  242. package/dist/core/lerp/index.js +0 -1
  243. package/dist/core/lerp/lerp.js +0 -42
  244. package/dist/core/navmesh/index.js +0 -1
  245. package/dist/core/navmesh/navmesh-worker-pool.js +0 -180
  246. package/dist/core/navmesh/navmesh.js +0 -799
  247. package/dist/core/navmesh/navmesh.worker.js +0 -79
  248. package/dist/core/pooled-codec/index.js +0 -1
  249. package/dist/core/pooled-codec/pooled-codec.js +0 -410
  250. package/dist/core/prediction/index.js +0 -1
  251. package/dist/core/prediction/prediction.js +0 -99
  252. package/dist/core.esm.js +0 -1
  253. package/dist/core.js +0 -1
  254. package/dist/ecs/component-store.js +0 -175
  255. package/dist/ecs/component.js +0 -43
  256. package/dist/ecs/entity-handle.js +0 -515
  257. package/dist/ecs/example.js +0 -125
  258. package/dist/ecs/index.js +0 -4
  259. package/dist/ecs/system-builder.js +0 -249
  260. package/dist/ecs/world-systems.js +0 -79
  261. package/dist/ecs/world.js +0 -767
  262. package/dist/game/index.js +0 -1
  263. package/dist/game/loop/index.js +0 -1
  264. package/dist/game/loop/loop.js +0 -108
  265. package/dist/index.js +0 -26
  266. package/dist/net/adapters/browser-websocket.js +0 -74
  267. package/dist/net/adapters/bun-websocket.js +0 -245
  268. package/dist/net/buffer-pool.js +0 -89
  269. package/dist/net/client.js +0 -586
  270. package/dist/net/index.js +0 -58
  271. package/dist/net/server.js +0 -974
  272. package/dist/net/types.js +0 -31
  273. package/dist/net/validators.js +0 -88
  274. package/dist/protocol/index.js +0 -92
  275. package/dist/protocol/intent/define-intent.js +0 -125
  276. package/dist/protocol/intent/index.js +0 -91
  277. package/dist/protocol/intent/intent-registry.js +0 -91
  278. package/dist/protocol/rpc/define-rpc.js +0 -84
  279. package/dist/protocol/rpc/index.js +0 -3
  280. package/dist/protocol/rpc/rpc-registry.js +0 -159
  281. package/dist/protocol/rpc/rpc.js +0 -12
  282. package/dist/protocol/snapshot/index.js +0 -43
  283. package/dist/protocol/snapshot/snapshot-codec.js +0 -67
  284. package/dist/protocol/snapshot/snapshot-registry.js +0 -168
  285. package/dist/protocol/snapshot/snapshot.js +0 -30
  286. package/src/core/binary-codec/README.md +0 -60
  287. package/src/core/binary-codec/binary-codec.test.ts +0 -300
  288. package/src/core/binary-codec/binary-codec.ts +0 -448
  289. package/src/core/binary-codec/index.ts +0 -1
  290. package/src/core/driver/README.md +0 -97
  291. package/src/core/driver/driver.test.ts +0 -414
  292. package/src/core/driver/driver.ts +0 -71
  293. package/src/core/driver/drivers/immediate.ts +0 -66
  294. package/src/core/driver/drivers/index.ts +0 -3
  295. package/src/core/driver/drivers/raf.ts +0 -67
  296. package/src/core/driver/drivers/timeout.ts +0 -77
  297. package/src/core/driver/index.ts +0 -2
  298. package/src/core/events/README.md +0 -47
  299. package/src/core/events/event-system.test.ts +0 -243
  300. package/src/core/events/event-system.ts +0 -140
  301. package/src/core/events/index.ts +0 -1
  302. package/src/core/fixed-ticker/README.md +0 -77
  303. package/src/core/fixed-ticker/fixed-ticker.test.ts +0 -151
  304. package/src/core/fixed-ticker/fixed-ticker.ts +0 -174
  305. package/src/core/fixed-ticker/index.ts +0 -1
  306. package/src/core/generate-id/README.md +0 -18
  307. package/src/core/generate-id/generate-id.test.ts +0 -79
  308. package/src/core/generate-id/generate-id.ts +0 -37
  309. package/src/core/generate-id/index.ts +0 -1
  310. package/src/core/index.ts +0 -10
  311. package/src/core/input/README.md +0 -24
  312. package/src/core/input/index.ts +0 -2
  313. package/src/core/input/manager.ts +0 -259
  314. package/src/core/input/sources/browser.ts +0 -39
  315. package/src/core/input/sources/index.ts +0 -1
  316. package/src/core/input/types.ts +0 -40
  317. package/src/core/lerp/README.md +0 -79
  318. package/src/core/lerp/index.ts +0 -1
  319. package/src/core/lerp/lerp.test.ts +0 -90
  320. package/src/core/lerp/lerp.ts +0 -42
  321. package/src/core/navmesh/README.md +0 -164
  322. package/src/core/navmesh/index.ts +0 -1
  323. package/src/core/navmesh/navmesh-worker-pool.ts +0 -236
  324. package/src/core/navmesh/navmesh-workers.test.ts +0 -356
  325. package/src/core/navmesh/navmesh.test.ts +0 -344
  326. package/src/core/navmesh/navmesh.ts +0 -1047
  327. package/src/core/navmesh/navmesh.worker.ts +0 -147
  328. package/src/core/pooled-codec/README.md +0 -70
  329. package/src/core/pooled-codec/index.ts +0 -1
  330. package/src/core/pooled-codec/pooled-codec.test.ts +0 -862
  331. package/src/core/pooled-codec/pooled-codec.ts +0 -504
  332. package/src/core/prediction/README.md +0 -64
  333. package/src/core/prediction/index.ts +0 -1
  334. package/src/core/prediction/prediction.test.ts +0 -423
  335. package/src/core/prediction/prediction.ts +0 -112
  336. package/src/ecs/README.md +0 -427
  337. package/src/ecs/benchmark.test.ts +0 -1645
  338. package/src/ecs/component-store.ts +0 -198
  339. package/src/ecs/component.ts +0 -90
  340. package/src/ecs/entity-handle.test.ts +0 -393
  341. package/src/ecs/entity-handle.ts +0 -563
  342. package/src/ecs/example.ts +0 -152
  343. package/src/ecs/index.ts +0 -4
  344. package/src/ecs/system-builder.ts +0 -404
  345. package/src/ecs/world-systems.ts +0 -83
  346. package/src/ecs/world.test.ts +0 -310
  347. package/src/ecs/world.ts +0 -904
  348. package/src/game/index.ts +0 -1
  349. package/src/game/loop/README.md +0 -32
  350. package/src/game/loop/index.ts +0 -1
  351. package/src/game/loop/loop.ts +0 -236
  352. package/src/index.ts +0 -32
  353. package/src/net/README.md +0 -474
  354. package/src/net/adapters/browser-websocket.ts +0 -86
  355. package/src/net/adapters/bun-websocket.ts +0 -292
  356. package/src/net/buffer-pool.ts +0 -106
  357. package/src/net/client.test.ts +0 -807
  358. package/src/net/client.ts +0 -695
  359. package/src/net/index.ts +0 -60
  360. package/src/net/server.test.ts +0 -799
  361. package/src/net/server.ts +0 -1152
  362. package/src/net/types.ts +0 -228
  363. package/src/net/validators.ts +0 -104
  364. package/src/protocol/README.md +0 -469
  365. package/src/protocol/index.ts +0 -93
  366. package/src/protocol/intent/define-intent.test.ts +0 -397
  367. package/src/protocol/intent/define-intent.ts +0 -201
  368. package/src/protocol/intent/index.ts +0 -94
  369. package/src/protocol/intent/intent-registry.test.ts +0 -198
  370. package/src/protocol/intent/intent-registry.ts +0 -112
  371. package/src/protocol/intent/intent.ts +0 -12
  372. package/src/protocol/rpc/define-rpc.test.ts +0 -141
  373. package/src/protocol/rpc/define-rpc.ts +0 -113
  374. package/src/protocol/rpc/index.ts +0 -3
  375. package/src/protocol/rpc/rpc-registry.test.ts +0 -168
  376. package/src/protocol/rpc/rpc-registry.ts +0 -176
  377. package/src/protocol/rpc/rpc.ts +0 -37
  378. package/src/protocol/snapshot/index.ts +0 -45
  379. package/src/protocol/snapshot/snapshot-codec.test.ts +0 -138
  380. package/src/protocol/snapshot/snapshot-codec.ts +0 -87
  381. package/src/protocol/snapshot/snapshot-registry.test.ts +0 -310
  382. package/src/protocol/snapshot/snapshot-registry.ts +0 -201
  383. package/src/protocol/snapshot/snapshot.test.ts +0 -76
  384. package/src/protocol/snapshot/snapshot.ts +0 -41
  385. /package/dist/{core → types/core}/binary-codec/index.d.ts +0 -0
  386. /package/dist/{core → types/core}/driver/driver.d.ts +0 -0
  387. /package/dist/{core → types/core}/driver/drivers/immediate.d.ts +0 -0
  388. /package/dist/{core → types/core}/driver/drivers/index.d.ts +0 -0
  389. /package/dist/{core → types/core}/driver/drivers/raf.d.ts +0 -0
  390. /package/dist/{core → types/core}/driver/drivers/timeout.d.ts +0 -0
  391. /package/dist/{core → types/core}/driver/index.d.ts +0 -0
  392. /package/dist/{core → types/core}/events/index.d.ts +0 -0
  393. /package/dist/{core → types/core}/fixed-ticker/fixed-ticker.d.ts +0 -0
  394. /package/dist/{core → types/core}/fixed-ticker/index.d.ts +0 -0
  395. /package/dist/{core → types/core}/generate-id/generate-id.d.ts +0 -0
  396. /package/dist/{core → types/core}/generate-id/index.d.ts +0 -0
  397. /package/dist/{core → types/core}/input/sources/browser.d.ts +0 -0
  398. /package/dist/{core → types/core}/input/sources/index.d.ts +0 -0
  399. /package/dist/{core → types/core}/input/types.d.ts +0 -0
  400. /package/dist/{core → types/core}/lerp/index.d.ts +0 -0
  401. /package/dist/{core → types/core}/lerp/lerp.d.ts +0 -0
  402. /package/dist/{core → types/core}/navmesh/index.d.ts +0 -0
  403. /package/dist/{core → types/core}/navmesh/navmesh-worker-pool.d.ts +0 -0
  404. /package/dist/{core → types/core}/navmesh/navmesh.worker.d.ts +0 -0
  405. /package/dist/{core → types/core}/pooled-codec/index.d.ts +0 -0
  406. /package/dist/{core → types/core}/pooled-codec/pooled-codec.d.ts +0 -0
  407. /package/dist/{core → types/core}/prediction/index.d.ts +0 -0
  408. /package/dist/{core → types/core}/prediction/prediction.d.ts +0 -0
  409. /package/dist/{ecs → types/ecs}/component-store.d.ts +0 -0
  410. /package/dist/{ecs → types/ecs}/component.d.ts +0 -0
  411. /package/dist/{ecs → types/ecs}/entity-handle.d.ts +0 -0
  412. /package/dist/{ecs → types/ecs}/example.d.ts +0 -0
  413. /package/dist/{ecs → types/ecs}/index.d.ts +0 -0
  414. /package/dist/{ecs → types/ecs}/system-builder.d.ts +0 -0
  415. /package/dist/{ecs → types/ecs}/world-systems.d.ts +0 -0
  416. /package/dist/{game → types/game}/index.d.ts +0 -0
  417. /package/dist/{game → types/game}/loop/index.d.ts +0 -0
  418. /package/dist/{net → types/net}/adapters/browser-websocket.d.ts +0 -0
  419. /package/dist/{net → types/net}/adapters/bun-websocket.d.ts +0 -0
  420. /package/dist/{net → types/net}/buffer-pool.d.ts +0 -0
  421. /package/dist/{net → types/net}/client.d.ts +0 -0
  422. /package/dist/{net → types/net}/server.d.ts +0 -0
  423. /package/dist/{net → types/net}/types.d.ts +0 -0
  424. /package/dist/{net → types/net}/validators.d.ts +0 -0
  425. /package/dist/{protocol → types/protocol}/index.d.ts +0 -0
  426. /package/dist/{protocol → types/protocol}/intent/define-intent.d.ts +0 -0
  427. /package/dist/{protocol → types/protocol}/intent/index.d.ts +0 -0
  428. /package/dist/{protocol → types/protocol}/intent/intent-registry.d.ts +0 -0
  429. /package/dist/{protocol → types/protocol}/intent/intent.d.ts +0 -0
  430. /package/dist/{protocol → types/protocol}/rpc/define-rpc.d.ts +0 -0
  431. /package/dist/{protocol → types/protocol}/rpc/index.d.ts +0 -0
  432. /package/dist/{protocol → types/protocol}/rpc/rpc-registry.d.ts +0 -0
  433. /package/dist/{protocol → types/protocol}/rpc/rpc.d.ts +0 -0
  434. /package/dist/{protocol → types/protocol}/snapshot/index.d.ts +0 -0
  435. /package/dist/{protocol → types/protocol}/snapshot/snapshot-codec.d.ts +0 -0
  436. /package/dist/{protocol → types/protocol}/snapshot/snapshot-registry.d.ts +0 -0
  437. /package/dist/{protocol → types/protocol}/snapshot/snapshot.d.ts +0 -0
  438. /package/dist/{core/input/types.js → webgpu/types/2d/animation.test.d.ts} +0 -0
  439. /package/dist/{protocol/intent/intent.js → webgpu/types/2d/sprite-accessor.test.d.ts} +0 -0
@@ -1,198 +0,0 @@
1
- import { describe, it, expect, beforeEach } from "bun:test";
2
- import { IntentRegistry } from "./intent-registry";
3
- import { Intent } from "./intent";
4
- import { defineIntent } from "./define-intent";
5
- import { BinaryCodec } from "../../core/binary-codec";
6
-
7
- // Define intents using defineIntent for testing
8
- const MockIntent = defineIntent({
9
- kind: 1 as const,
10
- schema: {
11
- value: BinaryCodec.u32,
12
- },
13
- });
14
-
15
- const AnotherIntent = defineIntent({
16
- kind: 2 as const,
17
- schema: {
18
- data: BinaryCodec.string(64),
19
- },
20
- });
21
-
22
- type MockIntentType = typeof MockIntent.type;
23
- type AnotherIntentType = typeof AnotherIntent.type;
24
-
25
- describe("IntentRegistry", () => {
26
- let registry: IntentRegistry;
27
-
28
- beforeEach(() => {
29
- registry = new IntentRegistry();
30
- });
31
-
32
- describe("register", () => {
33
- it("should register a codec for an intent kind", () => {
34
- registry.register(MockIntent);
35
- expect(registry.has(1)).toBe(true);
36
- });
37
-
38
- it("should throw error when registering duplicate kind", () => {
39
- registry.register(MockIntent);
40
- expect(() => registry.register(MockIntent)).toThrow(
41
- "Intent kind 1 is already registered"
42
- );
43
- });
44
-
45
- it("should allow registering multiple different kinds", () => {
46
- registry.register(MockIntent);
47
- registry.register(AnotherIntent);
48
- expect(registry.has(1)).toBe(true);
49
- expect(registry.has(2)).toBe(true);
50
- });
51
- });
52
-
53
- describe("encode", () => {
54
- it("should encode an intent using registered codec", () => {
55
- registry.register(MockIntent);
56
- const intent: MockIntentType = { kind: 1, tick: 100, value: 42 };
57
- const buf = registry.encode(intent);
58
-
59
- expect(buf).toBeInstanceOf(Uint8Array);
60
- expect(buf[0]).toBe(1); // kind
61
- });
62
-
63
- it("should throw error when encoding unregistered intent kind", () => {
64
- const intent: MockIntentType = { kind: 1, tick: 100, value: 42 };
65
- expect(() => registry.encode(intent)).toThrow(
66
- "No codec registered for intent kind 1"
67
- );
68
- });
69
-
70
- it("should encode different intent types correctly", () => {
71
- registry.register(MockIntent);
72
- registry.register(AnotherIntent);
73
-
74
- const intent1: MockIntentType = { kind: 1, tick: 100, value: 42 };
75
- const intent2: AnotherIntentType = { kind: 2, tick: 200, data: "test" };
76
-
77
- const buf1 = registry.encode(intent1);
78
- const buf2 = registry.encode(intent2);
79
-
80
- expect(buf1[0]).toBe(1);
81
- expect(buf2[0]).toBe(2);
82
- });
83
- });
84
-
85
- describe("decode", () => {
86
- it("should decode a buffer using registered codec", () => {
87
- registry.register(MockIntent);
88
- const original: MockIntentType = { kind: 1, tick: 100, value: 42 };
89
- const buf = registry.encode(original);
90
- const decoded = registry.decode(buf);
91
-
92
- expect(decoded).toEqual(original);
93
- });
94
-
95
- it("should throw error when decoding with unregistered kind", () => {
96
- const buf = new Uint8Array([99, 0, 0, 0, 100, 0, 0, 0, 42]); // kind=99 not registered
97
- expect(() => registry.decode(buf)).toThrow(
98
- "No codec registered for intent kind 99"
99
- );
100
- });
101
-
102
- it("should decode different intent types correctly", () => {
103
- registry.register(MockIntent);
104
- registry.register(AnotherIntent);
105
-
106
- const intent1: MockIntentType = { kind: 1, tick: 100, value: 42 };
107
- const intent2: AnotherIntentType = { kind: 2, tick: 200, data: "hello" };
108
-
109
- const buf1 = registry.encode(intent1);
110
- const buf2 = registry.encode(intent2);
111
-
112
- const decoded1 = registry.decode(buf1);
113
- const decoded2 = registry.decode(buf2);
114
-
115
- expect(decoded1).toEqual(intent1);
116
- expect(decoded2).toEqual(intent2);
117
- });
118
- });
119
-
120
- describe("has", () => {
121
- it("should return true for registered kinds", () => {
122
- registry.register(MockIntent);
123
- expect(registry.has(1)).toBe(true);
124
- });
125
-
126
- it("should return false for unregistered kinds", () => {
127
- expect(registry.has(1)).toBe(false);
128
- });
129
- });
130
-
131
- describe("unregister", () => {
132
- it("should remove a registered codec", () => {
133
- registry.register(MockIntent);
134
- expect(registry.has(1)).toBe(true);
135
-
136
- const removed = registry.unregister(1);
137
- expect(removed).toBe(true);
138
- expect(registry.has(1)).toBe(false);
139
- });
140
-
141
- it("should return false when unregistering non-existent kind", () => {
142
- const removed = registry.unregister(1);
143
- expect(removed).toBe(false);
144
- });
145
- });
146
-
147
- describe("clear", () => {
148
- it("should remove all registered codecs", () => {
149
- registry.register(MockIntent);
150
- registry.register(AnotherIntent);
151
-
152
- registry.clear();
153
-
154
- expect(registry.has(1)).toBe(false);
155
- expect(registry.has(2)).toBe(false);
156
- });
157
- });
158
-
159
- describe("getKinds", () => {
160
- it("should return empty array when no codecs registered", () => {
161
- expect(registry.getKinds()).toEqual([]);
162
- });
163
-
164
- it("should return all registered kinds", () => {
165
- registry.register(MockIntent);
166
- registry.register(AnotherIntent);
167
-
168
- const kinds = registry.getKinds();
169
- expect(kinds).toContain(1);
170
- expect(kinds).toContain(2);
171
- expect(kinds.length).toBe(2);
172
- });
173
- });
174
-
175
- describe("round-trip encoding/decoding", () => {
176
- it("should preserve intent data through encode/decode cycle", () => {
177
- registry.register(MockIntent);
178
-
179
- const original: MockIntentType = { kind: 1, tick: 12345, value: 98765 };
180
- const buf = registry.encode(original);
181
- const decoded = registry.decode(buf);
182
-
183
- expect(decoded).toEqual(original);
184
- });
185
-
186
- it("should handle multiple round-trips", () => {
187
- registry.register(MockIntent);
188
-
189
- const original: MockIntentType = { kind: 1, tick: 100, value: 42 };
190
-
191
- for (let i = 0; i < 10; i++) {
192
- const buf = registry.encode(original);
193
- const decoded = registry.decode(buf);
194
- expect(decoded).toEqual(original);
195
- }
196
- });
197
- });
198
- });
@@ -1,112 +0,0 @@
1
- import { DefinedIntent } from "./define-intent";
2
- import type { Intent } from "./intent";
3
-
4
- /**
5
- * Generic codec interface (users import from core/pooled-codec)
6
- */
7
- export interface Codec<T> {
8
- encode(value: T): Uint8Array;
9
- decode(buf: Uint8Array): T;
10
- calculateSize?(value: T): number;
11
- encodeInto?(value: T, buffer: Uint8Array, offset: number): number;
12
- }
13
-
14
- /**
15
- * Registry for mapping intent kinds to their codecs.
16
- *
17
- * Users instantiate this once and register their intent types with
18
- * PooledCodec instances (from core/pooled-codec).
19
- *
20
- * @example
21
- * ```ts
22
- * import { IntentRegistry } from './protocol/intent';
23
- * import { PooledCodec } from './core/pooled-codec';
24
- * import { BinaryCodec } from './core/binary-codec';
25
- *
26
- * const registry = new IntentRegistry();
27
- *
28
- * registry.register(1, new PooledCodec({
29
- * kind: BinaryCodec.u8,
30
- * tick: BinaryCodec.u32,
31
- * dx: BinaryCodec.f32,
32
- * dy: BinaryCodec.f32,
33
- * }));
34
- *
35
- * // Encode/decode
36
- * const buf = registry.encode(intent);
37
- * const decoded = registry.decode(buf);
38
- * ```
39
- */
40
- export class IntentRegistry {
41
- private codecs = new Map<number, Codec<any>>();
42
-
43
- /**
44
- * Register a codec for a specific intent kind.
45
- * Call this once per intent type at startup.
46
- */
47
- register<T extends Intent>(intent: DefinedIntent<T['kind'], T>): void {
48
- if (this.codecs.has(intent.kind)) {
49
- throw new Error(`Intent kind ${intent.kind} is already registered`);
50
- }
51
- this.codecs.set(intent.kind, intent.codec);
52
- }
53
-
54
- /**
55
- * Encode an intent into binary format.
56
- */
57
- encode<T extends Intent>(intent: T): Uint8Array {
58
- const codec = this.codecs.get(intent.kind);
59
- if (!codec) {
60
- throw new Error(`No codec registered for intent kind ${intent.kind}`);
61
- }
62
- return codec.encode(intent);
63
- }
64
-
65
- /**
66
- * Decode binary data into an intent.
67
- * Extracts the kind from the first byte of the buffer.
68
- */
69
- decode(buf: Uint8Array): Intent {
70
- if (buf.byteLength === 0) {
71
- throw new Error('Cannot decode empty buffer');
72
- }
73
-
74
- // Extract kind from first byte (all intent codecs must encode kind as u8 in first byte)
75
- const kind = buf[0];
76
-
77
- const codec = this.codecs.get(kind);
78
- if (!codec) {
79
- throw new Error(`No codec registered for intent kind ${kind}`);
80
- }
81
- return codec.decode(buf);
82
- }
83
-
84
- /**
85
- * Decode binary data into an intent when kind is already known.
86
- * Useful for testing or when kind is transmitted separately.
87
- * @deprecated Use decode(buf) instead for standard intent decoding
88
- */
89
- decodeWithKnownKind(kind: number, buf: Uint8Array): Intent {
90
- const codec = this.codecs.get(kind);
91
- if (!codec) {
92
- throw new Error(`No codec registered for intent kind ${kind}`);
93
- }
94
- return codec.decode(buf);
95
- }
96
-
97
- has(kind: number): boolean {
98
- return this.codecs.has(kind);
99
- }
100
-
101
- unregister(kind: number): boolean {
102
- return this.codecs.delete(kind);
103
- }
104
-
105
- clear(): void {
106
- this.codecs.clear();
107
- }
108
-
109
- getKinds(): number[] {
110
- return Array.from(this.codecs.keys());
111
- }
112
- }
@@ -1,12 +0,0 @@
1
- /**
2
- * Base interface for all game intents.
3
- *
4
- * Intents represent player or AI actions that need to be processed by the game simulation.
5
- * They are timestamped with a tick number for deterministic replay and synchronization.
6
- */
7
- export interface Intent {
8
- /** The game tick at which this intent should be processed */
9
- tick: number;
10
- /** Numeric identifier for the intent type (used for codec lookup) */
11
- kind: number;
12
- }
@@ -1,141 +0,0 @@
1
- import { describe, it, expect } from "bun:test";
2
- import { defineRPC } from "./define-rpc";
3
- import { BinaryCodec } from "../../core/binary-codec";
4
- import { RpcRegistry } from "./rpc-registry";
5
-
6
- describe("defineRPC", () => {
7
- describe("type inference", () => {
8
- it("should infer correct type from schema", () => {
9
- const MatchCountdown = defineRPC({
10
- method: 'matchCountdown',
11
- schema: {
12
- secondsRemaining: BinaryCodec.u8,
13
- },
14
- });
15
-
16
- type MatchCountdown = typeof MatchCountdown.type;
17
-
18
- // Create an instance to verify type inference
19
- const countdown: MatchCountdown = {
20
- secondsRemaining: 10,
21
- };
22
-
23
- expect(countdown.secondsRemaining).toBe(10);
24
- });
25
-
26
- it("should support RPCs with different field types", () => {
27
- const BuyItem = defineRPC({
28
- method: 'buyItem',
29
- schema: {
30
- itemId: BinaryCodec.string(32),
31
- quantity: BinaryCodec.u16,
32
- price: BinaryCodec.f32,
33
- },
34
- });
35
-
36
- type BuyItem = typeof BuyItem.type;
37
-
38
- const purchase: BuyItem = {
39
- itemId: 'long_sword',
40
- quantity: 5,
41
- price: 100.5,
42
- };
43
-
44
- expect(purchase.itemId).toBe('long_sword');
45
- expect(purchase.quantity).toBe(5);
46
- expect(purchase.price).toBe(100.5);
47
- });
48
-
49
- it("should support empty RPCs (no parameters)", () => {
50
- const Ping = defineRPC({
51
- method: 'ping',
52
- schema: {},
53
- });
54
-
55
- type Ping = typeof Ping.type;
56
-
57
- const ping: Ping = {};
58
-
59
- expect(ping).toEqual({});
60
- });
61
- });
62
-
63
- describe("codec generation", () => {
64
- it("should generate a codec that can encode/decode", () => {
65
- const TestRpc = defineRPC({
66
- method: 'test',
67
- schema: {
68
- value: BinaryCodec.u32,
69
- },
70
- });
71
-
72
- type TestRpc = typeof TestRpc.type;
73
-
74
- const data: TestRpc = { value: 42 };
75
- const encoded = TestRpc.codec.encode(data);
76
-
77
- expect(encoded).toBeInstanceOf(Uint8Array);
78
-
79
- const decoded = TestRpc.codec.decode(encoded);
80
- expect(decoded.value).toBe(42);
81
- });
82
-
83
- it("should encode/decode complex types", () => {
84
- const PlayerInfo = defineRPC({
85
- method: 'playerInfo',
86
- schema: {
87
- playerId: BinaryCodec.u32,
88
- name: BinaryCodec.string(64),
89
- level: BinaryCodec.u8,
90
- health: BinaryCodec.f32,
91
- },
92
- });
93
-
94
- type PlayerInfo = typeof PlayerInfo.type;
95
-
96
- const data: PlayerInfo = {
97
- playerId: 12345,
98
- name: 'TestPlayer',
99
- level: 50,
100
- health: 85.5,
101
- };
102
-
103
- const encoded = PlayerInfo.codec.encode(data);
104
- const decoded = PlayerInfo.codec.decode(encoded);
105
-
106
- expect(decoded.playerId).toBe(12345);
107
- expect(decoded.name).toBe('TestPlayer');
108
- expect(decoded.level).toBe(50);
109
- expect(decoded.health).toBeCloseTo(85.5, 1);
110
- });
111
- });
112
-
113
- describe("integration with RpcRegistry", () => {
114
- it("should work with RpcRegistry", () => {
115
- const Notification = defineRPC({
116
- method: 'notification',
117
- schema: {
118
- message: BinaryCodec.string(128),
119
- priority: BinaryCodec.u8,
120
- },
121
- });
122
-
123
- type Notification = typeof Notification.type;
124
-
125
- const registry = new RpcRegistry();
126
- registry.register(Notification);
127
-
128
- const data: Notification = {
129
- message: 'Test notification',
130
- priority: 1,
131
- };
132
-
133
- const encoded = registry.encode(Notification, data);
134
- const decoded = registry.decode(encoded);
135
-
136
- expect(decoded.method).toBe('notification');
137
- expect(decoded.data.message).toBe('Test notification');
138
- expect(decoded.data.priority).toBe(1);
139
- });
140
- });
141
- });
@@ -1,113 +0,0 @@
1
- import type { DefinedRPC, RpcCodec } from "./rpc";
2
- import type { Schema } from "../../core/binary-codec";
3
- import { BinaryCodec } from "../../core/binary-codec";
4
-
5
- /**
6
- * Configuration for defining an RPC type.
7
- * @template S The schema type describing the RPC's data fields
8
- */
9
- export interface RpcDefinition<S extends Record<string, any>> {
10
- /** Method name for this RPC (must be unique) */
11
- method: string;
12
- /** Schema describing the RPC's data fields */
13
- schema: S;
14
- }
15
-
16
- /**
17
- * Infers the TypeScript type from an RPC schema.
18
- * @template S The schema type
19
- */
20
- export type InferRpcType<S extends Record<string, any>> = {
21
- [P in keyof S]: S[P] extends { read(dv: DataView, o: number): infer R } ? R : never;
22
- };
23
-
24
- /**
25
- * Simple codec implementation that uses BinaryCodec for encoding/decoding.
26
- * @template T The RPC data type
27
- */
28
- class RpcCodecImpl<T extends object> implements RpcCodec<T> {
29
- constructor(private schema: Schema<T>) {}
30
-
31
- encode(value: T): Uint8Array {
32
- return BinaryCodec.encode(this.schema, value);
33
- }
34
-
35
- decode(buf: Uint8Array): T {
36
- // Create a target object with nil values
37
- const target = {} as T;
38
- for (const key of Object.keys(this.schema) as (keyof T)[]) {
39
- const field = this.schema[key];
40
- target[key] = field.toNil() as T[keyof T];
41
- }
42
- return BinaryCodec.decode(this.schema, buf, target);
43
- }
44
- }
45
-
46
- /**
47
- * Define a type-safe RPC with automatic schema generation.
48
- *
49
- * RPCs are bidirectional one-off events/commands for:
50
- * - Meta-game events (achievements, notifications)
51
- * - Match lifecycle (countdown, results)
52
- * - Request/response patterns
53
- * - System announcements
54
- *
55
- * NOT for game state synchronization (use Snapshots) or player inputs (use Intents)
56
- *
57
- * @template S The schema type
58
- * @param definition RPC configuration with method and schema
59
- * @returns A DefinedRpc object with method and codec
60
- *
61
- * @example Server → Client RPC
62
- * ```ts
63
- * const MatchCountdown = defineRPC({
64
- * method: 'matchCountdown',
65
- * schema: {
66
- * secondsRemaining: BinaryCodec.u8,
67
- * }
68
- * });
69
- *
70
- * // Server sends
71
- * server.sendRpcBroadcast(MatchCountdown, { secondsRemaining: 10 });
72
- *
73
- * // Client receives
74
- * client.onRpc(MatchCountdown, (rpc) => {
75
- * console.log(`Match starting in ${rpc.secondsRemaining}s`);
76
- * });
77
- * ```
78
- *
79
- * @example Client → Server RPC
80
- * ```ts
81
- * const BuyItem = defineRPC({
82
- * method: 'buyItem',
83
- * schema: {
84
- * itemId: BinaryCodec.string(32),
85
- * }
86
- * });
87
- *
88
- * // Client sends
89
- * client.sendRpc(BuyItem, { itemId: 'long_sword' });
90
- *
91
- * // Server receives
92
- * server.onRpc(BuyItem, (peerId, rpc) => {
93
- * console.log(`${peerId} wants to buy ${rpc.itemId}`);
94
- * });
95
- * ```
96
- */
97
- export function defineRPC<S extends Record<string, any>>(
98
- definition: RpcDefinition<S>
99
- ): DefinedRPC<InferRpcType<S>> {
100
- type RpcType = InferRpcType<S>;
101
-
102
- // Create the schema from definition
103
- const schema = definition.schema as Schema<RpcType>;
104
-
105
- // Create the codec using BinaryCodec
106
- const codec = new RpcCodecImpl<RpcType>(schema);
107
-
108
- return {
109
- method: definition.method,
110
- codec,
111
- type: undefined as any as RpcType, // Phantom type for inference
112
- };
113
- }
@@ -1,3 +0,0 @@
1
- export * from './rpc';
2
- export * from './define-rpc';
3
- export * from './rpc-registry';