@voltro/plugin-rooms 0.0.0-stage → 0.88.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (495) hide show
  1. package/CHANGELOG.md +24492 -0
  2. package/LICENSE +61 -0
  3. package/README.md +9204 -2
  4. package/SECURITY.md +56 -0
  5. package/THIRD-PARTY-NOTICES.md +12496 -0
  6. package/dist/actor.js +1473 -0
  7. package/dist/apiBinding.js +677 -0
  8. package/dist/apiRegistryBinding.js +398 -0
  9. package/dist/apiReservations.js +432 -0
  10. package/dist/baselines.js +72 -0
  11. package/dist/bots.d.ts +1485 -0
  12. package/dist/bots.js +562 -0
  13. package/dist/catalog.js +79 -0
  14. package/dist/checkpointJson.js +23 -0
  15. package/dist/checkpointStore.js +385 -0
  16. package/dist/client.js +55 -0
  17. package/dist/clockSync.js +50 -0
  18. package/dist/collision.js +155 -0
  19. package/dist/commandDelivery.js +100 -0
  20. package/dist/commandRecord.js +10 -0
  21. package/dist/commandWithdrawal.js +182 -0
  22. package/dist/connection.js +496 -0
  23. package/dist/controlCarrier.js +374 -0
  24. package/dist/controlRegistry.js +78 -0
  25. package/dist/controlTarget.js +44 -0
  26. package/dist/controlTransport.js +573 -0
  27. package/dist/developmentBinding.js +112 -0
  28. package/dist/directory.js +322 -0
  29. package/dist/directoryProjection.js +116 -0
  30. package/dist/errors.d.ts +125 -0
  31. package/dist/errors.js +52 -0
  32. package/dist/fixed.d.ts +284 -0
  33. package/dist/fixed.js +10 -0
  34. package/dist/fixed32.js +133 -0
  35. package/dist/fixedCollision.js +59 -0
  36. package/dist/fixedCollision32.js +108 -0
  37. package/dist/fixedMath.js +55 -0
  38. package/dist/fixedRaw.js +10 -0
  39. package/dist/fixedSlabs.js +33 -0
  40. package/dist/fixedTrig.js +47 -0
  41. package/dist/fixedTrig32.js +37 -0
  42. package/dist/fixedVectors.js +112 -0
  43. package/dist/fixedVectors32.js +94 -0
  44. package/dist/fixedWide.js +49 -0
  45. package/dist/fixedWords.js +45 -0
  46. package/dist/gateway.js +56 -0
  47. package/dist/geometry-retention-app/rooms.geometryJournalRetention.workflow.server.tsx +4 -0
  48. package/dist/geometry-retention-app/rooms.geometryJournalRetention.workflow.tsx +14 -0
  49. package/dist/geometry-worker/worker.d.mts +2 -0
  50. package/dist/geometry-worker/worker.mjs +50 -0
  51. package/dist/geometry.d.ts +2249 -0
  52. package/dist/geometry.js +40 -0
  53. package/dist/geometryActivation.js +81 -0
  54. package/dist/geometryActorInventory.js +107 -0
  55. package/dist/geometryAdminClient.js +86 -0
  56. package/dist/geometryAdminData.js +31 -0
  57. package/dist/geometryAdminFixtures.js +49 -0
  58. package/dist/geometryAdminPorts.js +4 -0
  59. package/dist/geometryAdminRpc.js +57 -0
  60. package/dist/geometryAdminRpcRoutes.js +48 -0
  61. package/dist/geometryAdminSchemas.js +38 -0
  62. package/dist/geometryAdministration.js +189 -0
  63. package/dist/geometryAdministrationPorts.js +4 -0
  64. package/dist/geometryApiBinding.js +164 -0
  65. package/dist/geometryAppStorage.js +57 -0
  66. package/dist/geometryArtifacts.js +197 -0
  67. package/dist/geometryAssetBundle.js +116 -0
  68. package/dist/geometryAssetClient.js +24 -0
  69. package/dist/geometryAssetData.js +105 -0
  70. package/dist/geometryAssetHttp.js +122 -0
  71. package/dist/geometryAssetPorts.js +4 -0
  72. package/dist/geometryAssetRpc.js +29 -0
  73. package/dist/geometryAssetRpcRoutes.js +39 -0
  74. package/dist/geometryAssetStorageGrant.js +102 -0
  75. package/dist/geometryBoxOverlap.js +109 -0
  76. package/dist/geometryCatalogueDigest.js +110 -0
  77. package/dist/geometryCellCoverage.js +84 -0
  78. package/dist/geometryCellLoader.js +27 -0
  79. package/dist/geometryChannel.js +133 -0
  80. package/dist/geometryChunkHttp.js +53 -0
  81. package/dist/geometryChunkLeases.js +21 -0
  82. package/dist/geometryClient.d.ts +1429 -0
  83. package/dist/geometryClient.js +148 -0
  84. package/dist/geometryClientChunks.js +329 -0
  85. package/dist/geometryClientDelta.js +24 -0
  86. package/dist/geometryClientHttp.js +36 -0
  87. package/dist/geometryClientInterest.js +108 -0
  88. package/dist/geometryClientStatic.js +33 -0
  89. package/dist/geometryCms.d.ts +763 -0
  90. package/dist/geometryCms.js +216 -0
  91. package/dist/geometryCommitCoordinator.js +240 -0
  92. package/dist/geometryCompactionFixture.js +83 -0
  93. package/dist/geometryCompactionStrategies.js +37 -0
  94. package/dist/geometryConnectionClient.js +22 -0
  95. package/dist/geometryDerivationFixtures.js +140 -0
  96. package/dist/geometryDerivationStrategies.js +26 -0
  97. package/dist/geometryDigest.js +12 -0
  98. package/dist/geometryEditChannel.js +69 -0
  99. package/dist/geometryEditIngress.js +262 -0
  100. package/dist/geometryEdits.js +365 -0
  101. package/dist/geometryEnvelope.js +40 -0
  102. package/dist/geometryGridRaycast.js +91 -0
  103. package/dist/geometryGridSweep.js +91 -0
  104. package/dist/geometryHeightfield.js +165 -0
  105. package/dist/geometryHeightfieldRaycast.js +73 -0
  106. package/dist/geometryHeightfieldSweep.js +84 -0
  107. package/dist/geometryHeightfieldVolume.js +44 -0
  108. package/dist/geometryHost.js +321 -0
  109. package/dist/geometryHostDirectory.js +206 -0
  110. package/dist/geometryHostMutations.js +136 -0
  111. package/dist/geometryHostStreams.js +123 -0
  112. package/dist/geometryHttpBody.js +75 -0
  113. package/dist/geometryHttpRoutes.js +111 -0
  114. package/dist/geometryImportGltf.js +299 -0
  115. package/dist/geometryImportLdtk.js +53 -0
  116. package/dist/geometryImportPng.js +143 -0
  117. package/dist/geometryImportPublication.js +66 -0
  118. package/dist/geometryImportTiled.js +38 -0
  119. package/dist/geometryImportTiles.js +135 -0
  120. package/dist/geometryImportVox.js +129 -0
  121. package/dist/geometryImportedSource.js +100 -0
  122. package/dist/geometryInspectEndpoint.js +247 -0
  123. package/dist/geometryInspection.js +91 -0
  124. package/dist/geometryInstall.js +120 -0
  125. package/dist/geometryJournalArchiveData.js +20 -0
  126. package/dist/geometryJournalArchiveIndex.js +329 -0
  127. package/dist/geometryJournalArchiveTable.js +20 -0
  128. package/dist/geometryJournalCompaction.js +99 -0
  129. package/dist/geometryJournalPatch.js +46 -0
  130. package/dist/geometryJournalRetention.js +111 -0
  131. package/dist/geometryJournalRetentionSchemas.js +35 -0
  132. package/dist/geometryJournalRetentionSweep.js +111 -0
  133. package/dist/geometryJournalRetentionWorkflow.js +27 -0
  134. package/dist/geometryJournalRetentionWorkflowData.js +30 -0
  135. package/dist/geometryJournalStorage.js +147 -0
  136. package/dist/geometryLoader.js +117 -0
  137. package/dist/geometryManifest.js +112 -0
  138. package/dist/geometryManifestChannel.js +92 -0
  139. package/dist/geometryManifestClient.js +121 -0
  140. package/dist/geometryManifestData.js +48 -0
  141. package/dist/geometryManifestPorts.js +4 -0
  142. package/dist/geometryManifestPublication.js +108 -0
  143. package/dist/geometryManifestSource.js +67 -0
  144. package/dist/geometryMigrationJournal.js +13 -0
  145. package/dist/geometryMigrationStrategies.js +6 -0
  146. package/dist/geometryMigrations.js +322 -0
  147. package/dist/geometryNativeMetadata.js +51 -0
  148. package/dist/geometryPatch.js +169 -0
  149. package/dist/geometryPersistence.js +448 -0
  150. package/dist/geometryPersistenceCapture.js +68 -0
  151. package/dist/geometryPersistenceData.js +139 -0
  152. package/dist/geometryPersistencePorts.js +4 -0
  153. package/dist/geometryPlayerAdmission.js +33 -0
  154. package/dist/geometryPlayerEditOwner.js +264 -0
  155. package/dist/geometryPlayerEdits.js +48 -0
  156. package/dist/geometryPrepared.js +187 -0
  157. package/dist/geometryPrivacyFence.js +23 -0
  158. package/dist/geometryProceduralPublication.js +90 -0
  159. package/dist/geometryProceduralWorker.js +163 -0
  160. package/dist/geometryPublication.js +109 -0
  161. package/dist/geometryRayAlgebra.js +115 -0
  162. package/dist/geometryReadClient.js +156 -0
  163. package/dist/geometryReadPorts.js +4 -0
  164. package/dist/geometryReadRpc.js +26 -0
  165. package/dist/geometryReadRpcRoutes.js +46 -0
  166. package/dist/geometryReliablePublication.js +81 -0
  167. package/dist/geometryReloadPorts.js +45 -0
  168. package/dist/geometryReloadSource.js +277 -0
  169. package/dist/geometryRenderCache.js +164 -0
  170. package/dist/geometryRenderLod.js +101 -0
  171. package/dist/geometryRollback.js +124 -0
  172. package/dist/geometryRollbackCoordinator.js +202 -0
  173. package/dist/geometryRollbackPorts.js +45 -0
  174. package/dist/geometryRollbackSource.js +208 -0
  175. package/dist/geometryRollbackStore.js +197 -0
  176. package/dist/geometrySchemas.js +26 -0
  177. package/dist/geometryServer.d.ts +2766 -0
  178. package/dist/geometryServer.js +62 -0
  179. package/dist/geometryShapeRaycast.js +110 -0
  180. package/dist/geometryShapeSegments.js +33 -0
  181. package/dist/geometryShapes.js +222 -0
  182. package/dist/geometrySnapshot.js +75 -0
  183. package/dist/geometrySnapshotChannel.js +159 -0
  184. package/dist/geometrySnapshotClient.js +158 -0
  185. package/dist/geometrySnapshotPreparation.js +75 -0
  186. package/dist/geometrySnapshotServer.js +190 -0
  187. package/dist/geometrySqlOwner.js +20 -0
  188. package/dist/geometryStorage.js +126 -0
  189. package/dist/geometryStorageGrant.js +68 -0
  190. package/dist/geometryStorageIdentity.js +8 -0
  191. package/dist/geometryTileArtifact.js +9 -0
  192. package/dist/geometryTileCodec.js +193 -0
  193. package/dist/geometryTileCollision.js +95 -0
  194. package/dist/geometryTileNavigation.js +127 -0
  195. package/dist/geometryTileView.js +34 -0
  196. package/dist/geometryVersionActivation.js +113 -0
  197. package/dist/geometryVersionClient.js +237 -0
  198. package/dist/geometryVersionCompare.js +39 -0
  199. package/dist/geometryVersionMigration.js +105 -0
  200. package/dist/geometryVoxel.js +252 -0
  201. package/dist/geometryWorldEntitySubject.js +31 -0
  202. package/dist/geometryWorldExtent.js +11 -0
  203. package/dist/geometryWorldMetadata.js +37 -0
  204. package/dist/geometryWorldStrategyFixtures.js +126 -0
  205. package/dist/geometryWorldView.js +306 -0
  206. package/dist/host.js +127 -0
  207. package/dist/hostBinding.js +276 -0
  208. package/dist/hostCellObservation.js +113 -0
  209. package/dist/hostClientCapacity.js +89 -0
  210. package/dist/hostCommandScope.js +63 -0
  211. package/dist/hostController.js +3093 -0
  212. package/dist/hostDeployment.js +64 -0
  213. package/dist/hostDrain.js +151 -0
  214. package/dist/hostDrainPorts.js +4 -0
  215. package/dist/hostDriver.js +178 -0
  216. package/dist/hostLane.js +287 -0
  217. package/dist/hostListener.js +78 -0
  218. package/dist/hostListenerBinding.js +18 -0
  219. package/dist/hostLoopObservation.js +89 -0
  220. package/dist/hostMetrics.js +55 -0
  221. package/dist/hostRegistryBinding.js +417 -0
  222. package/dist/hostSelection.js +15 -0
  223. package/dist/hostShutdown.js +46 -0
  224. package/dist/hostTurnObservation.js +52 -0
  225. package/dist/identities.js +3 -0
  226. package/dist/index.d.ts +8632 -0
  227. package/dist/index.js +231 -0
  228. package/dist/inputReceipts.js +62 -0
  229. package/dist/inputRedundancy.js +54 -0
  230. package/dist/inspect.js +237 -0
  231. package/dist/lockstep.d.ts +436 -0
  232. package/dist/lockstep.js +381 -0
  233. package/dist/lockstepAdmission.js +261 -0
  234. package/dist/lockstepAdmissionCodec.js +93 -0
  235. package/dist/lockstepAdmissionPorts.js +4 -0
  236. package/dist/lockstepClientSession.js +577 -0
  237. package/dist/lockstepDefinition.js +147 -0
  238. package/dist/lockstepHostLoop.js +242 -0
  239. package/dist/lockstepInitialAdmission.js +66 -0
  240. package/dist/lockstepInitialStrategyFixtures.js +44 -0
  241. package/dist/lockstepJournal.js +394 -0
  242. package/dist/lockstepJournalCodec.js +253 -0
  243. package/dist/lockstepJournalPorts.js +4 -0
  244. package/dist/lockstepJournalRebuild.js +207 -0
  245. package/dist/lockstepJournalRows.js +56 -0
  246. package/dist/lockstepMembers.js +130 -0
  247. package/dist/lockstepMessages.js +46 -0
  248. package/dist/lockstepOwnedRoom.js +763 -0
  249. package/dist/lockstepPolicies.js +83 -0
  250. package/dist/lockstepReact.js +46 -0
  251. package/dist/lockstepRecoveryTruth.js +120 -0
  252. package/dist/lockstepRosterConfig.js +31 -0
  253. package/dist/lockstepSeed.js +11 -0
  254. package/dist/lockstepSeedFixture.js +19 -0
  255. package/dist/lockstepServer.d.ts +3897 -0
  256. package/dist/lockstepServer.js +324 -0
  257. package/dist/lockstepServerConfig.js +100 -0
  258. package/dist/lockstepServerRoles.js +402 -0
  259. package/dist/lockstepServerStrategyFixtures.js +32 -0
  260. package/dist/lockstepStrategies.js +5 -0
  261. package/dist/lockstepStrategyFixtures.js +136 -0
  262. package/dist/lockstepTerminal.js +89 -0
  263. package/dist/lockstepTerminalPorts.js +4 -0
  264. package/dist/lockstepTransport.js +772 -0
  265. package/dist/lockstepTransportConfig.js +31 -0
  266. package/dist/lockstepWireRoster.js +33 -0
  267. package/dist/matchRoomProvider.js +31 -0
  268. package/dist/matchRooms.js +18 -0
  269. package/dist/membershipObserver.js +46 -0
  270. package/dist/moderation.js +97 -0
  271. package/dist/movementSpecials.js +103 -0
  272. package/dist/ownership.js +16 -0
  273. package/dist/ownershipWithdrawal.js +17 -0
  274. package/dist/pcg32.js +95 -0
  275. package/dist/ports.d.ts +1241 -0
  276. package/dist/ports.js +10 -0
  277. package/dist/quaternion.js +69 -0
  278. package/dist/react.d.ts +406 -0
  279. package/dist/react.js +108 -0
  280. package/dist/reaper-app/rooms.reaper.workflow.server.tsx +5 -0
  281. package/dist/reaper-app/rooms.reaper.workflow.tsx +13 -0
  282. package/dist/reaper.js +242 -0
  283. package/dist/reaperSchemas.js +41 -0
  284. package/dist/reaperWorkflow.js +69 -0
  285. package/dist/recovery.js +188 -0
  286. package/dist/recoverySeats.js +25 -0
  287. package/dist/replay.d.ts +273 -0
  288. package/dist/replay.js +484 -0
  289. package/dist/replayPorts.js +4 -0
  290. package/dist/replayRecording.js +66 -0
  291. package/dist/replaySchema.js +156 -0
  292. package/dist/replayStorage.d.ts +149 -0
  293. package/dist/replayStorage.js +484 -0
  294. package/dist/reservationBatch.js +421 -0
  295. package/dist/reservationSchemas.js +16 -0
  296. package/dist/reservations.js +258 -0
  297. package/dist/reservePort.js +68 -0
  298. package/dist/resolvedOptions.js +3 -0
  299. package/dist/room.d.ts +1006 -0
  300. package/dist/room.js +283 -0
  301. package/dist/roomAccessSweep.js +94 -0
  302. package/dist/roomAppCommandControl.js +58 -0
  303. package/dist/roomAuthoringStrategy.js +16 -0
  304. package/dist/roomErasure.js +197 -0
  305. package/dist/roomPoolRuntimeDefaults.js +23 -0
  306. package/dist/roomPoolSelection.js +18 -0
  307. package/dist/roomPoolTopology.js +211 -0
  308. package/dist/rpc.d.ts +551 -0
  309. package/dist/rpc.js +111 -0
  310. package/dist/rpcClient.js +151 -0
  311. package/dist/rpcRoutes.js +27 -0
  312. package/dist/runtime.js +1122 -0
  313. package/dist/schemaHistory.js +97 -0
  314. package/dist/seatStore.js +150 -0
  315. package/dist/seatStrategyFixtures.js +51 -0
  316. package/dist/seatSubject.js +31 -0
  317. package/dist/seats.js +129 -0
  318. package/dist/serverSession.js +810 -0
  319. package/dist/serverSessionConfig.js +42 -0
  320. package/dist/sessionAdmission.js +52 -0
  321. package/dist/sidecarAdmission.js +102 -0
  322. package/dist/sidecarConfig.js +115 -0
  323. package/dist/sidecarConfigPublication.js +63 -0
  324. package/dist/sidecarHostListener.js +207 -0
  325. package/dist/sidecarIpc.js +204 -0
  326. package/dist/sidecarPeer.js +309 -0
  327. package/dist/sidecarProcessPort.js +27 -0
  328. package/dist/sidecarRuntime.js +167 -0
  329. package/dist/sidecarSelection.js +141 -0
  330. package/dist/sidecarWire.js +177 -0
  331. package/dist/sidecarWrites.js +162 -0
  332. package/dist/simulation.d.ts +391 -0
  333. package/dist/simulation.js +281 -0
  334. package/dist/simulationAuthoring.js +28 -0
  335. package/dist/simulationBytes.js +26 -0
  336. package/dist/simulationConformance.js +304 -0
  337. package/dist/simulationInputHistoryCapture.js +34 -0
  338. package/dist/simulationInputHistoryWire.js +192 -0
  339. package/dist/simulationOptionsWire.js +77 -0
  340. package/dist/simulationRecoveryWire.js +133 -0
  341. package/dist/simulationReplay.js +126 -0
  342. package/dist/simulationSnapshotWire.js +111 -0
  343. package/dist/simulationState.js +177 -0
  344. package/dist/snapshotBlob.js +125 -0
  345. package/dist/snapshotBlobCleanup.js +92 -0
  346. package/dist/snapshotBlobIndex.js +37 -0
  347. package/dist/snapshotBudget.js +79 -0
  348. package/dist/snapshotChain.js +184 -0
  349. package/dist/snapshotErasure.js +171 -0
  350. package/dist/snapshotInspection.js +104 -0
  351. package/dist/snapshotSegmentBlobs.js +57 -0
  352. package/dist/snapshotUploads.js +165 -0
  353. package/dist/socketTransport.js +252 -0
  354. package/dist/spatial.js +103 -0
  355. package/dist/spectatorPolicy.js +25 -0
  356. package/dist/spectatorProducer.js +88 -0
  357. package/dist/startFailureCause.js +3 -0
  358. package/dist/stateCodec.js +657 -0
  359. package/dist/strategies.d.ts +210 -0
  360. package/dist/strategies.js +8 -0
  361. package/dist/strategiesServer.d.ts +286 -0
  362. package/dist/strategiesServer.js +11 -0
  363. package/dist/strategyFixtures.js +181 -0
  364. package/dist/streamFraming.js +121 -0
  365. package/dist/streamTransport.js +265 -0
  366. package/dist/subjectAdmission.js +49 -0
  367. package/dist/subjectPrivacy.js +280 -0
  368. package/dist/subjectPrivacyBinding.js +89 -0
  369. package/dist/systemManifest.js +181 -0
  370. package/dist/tables.js +158 -0
  371. package/dist/testHarness.js +88 -0
  372. package/dist/testing.d.ts +3684 -0
  373. package/dist/testing.js +220 -0
  374. package/dist/testingPorts.js +270 -0
  375. package/dist/testingServer.d.ts +4060 -0
  376. package/dist/testingServer.js +18 -0
  377. package/dist/transform.d.ts +692 -0
  378. package/dist/transform.js +216 -0
  379. package/dist/transform3d.js +117 -0
  380. package/dist/transformCollection.js +23 -0
  381. package/dist/transformCollection3d.js +23 -0
  382. package/dist/transformCollectionCore.js +155 -0
  383. package/dist/transformFrames.js +120 -0
  384. package/dist/transformPrediction3d.js +126 -0
  385. package/dist/transformRules.js +122 -0
  386. package/dist/transformSchemas.js +19 -0
  387. package/dist/transport.js +31 -0
  388. package/dist/transportAuthoring.js +28 -0
  389. package/dist/transportCleanup.js +21 -0
  390. package/dist/transportConformance.js +123 -0
  391. package/dist/transportConnector.js +81 -0
  392. package/dist/transportEndpoints.js +37 -0
  393. package/dist/transportsServer.d.ts +5515 -0
  394. package/dist/transportsServer.js +6 -0
  395. package/dist/viewProjection.js +15 -0
  396. package/dist/web.d.ts +2286 -0
  397. package/dist/web.js +517 -0
  398. package/dist/webTransportClient.js +172 -0
  399. package/dist/wire.d.ts +992 -0
  400. package/dist/wire.js +491 -0
  401. package/dist/withdrawalPort.js +27 -0
  402. package/dist/world.d.ts +1894 -0
  403. package/dist/world.js +332 -0
  404. package/dist/worldActorReceipts.js +47 -0
  405. package/dist/worldActorTransferSnapshot.js +13 -0
  406. package/dist/worldAdmissionPending.js +7 -0
  407. package/dist/worldBoundaryCoordinator.js +147 -0
  408. package/dist/worldCatalog.js +80 -0
  409. package/dist/worldCellAllocation.js +202 -0
  410. package/dist/worldCellDestination.js +67 -0
  411. package/dist/worldCells.js +488 -0
  412. package/dist/worldChange.js +31 -0
  413. package/dist/worldClient.js +663 -0
  414. package/dist/worldClientControl.js +140 -0
  415. package/dist/worldClientPendingInput.js +15 -0
  416. package/dist/worldClientRpc.js +132 -0
  417. package/dist/worldClientRpcRoutes.js +42 -0
  418. package/dist/worldClientSchemas.js +27 -0
  419. package/dist/worldCommands.js +139 -0
  420. package/dist/worldData.js +41 -0
  421. package/dist/worldDefaultBinding.js +376 -0
  422. package/dist/worldDefaultGroupAdmission.js +81 -0
  423. package/dist/worldDefaultGroupAppServices.js +30 -0
  424. package/dist/worldDefaultGroupCompensation.js +108 -0
  425. package/dist/worldDefaultGroupContinuation.js +95 -0
  426. package/dist/worldDefaultGroupControl.js +71 -0
  427. package/dist/worldDefaultGroupMembers.js +84 -0
  428. package/dist/worldDefaultGroups.js +20 -0
  429. package/dist/worldDefaultPending.js +78 -0
  430. package/dist/worldDefaultService.js +244 -0
  431. package/dist/worldEntities.js +2979 -0
  432. package/dist/worldEntityCodec.js +20 -0
  433. package/dist/worldEntityHandoffView.js +153 -0
  434. package/dist/worldGeometry.js +169 -0
  435. package/dist/worldGhostAdmission.js +64 -0
  436. package/dist/worldGhostDestination.js +117 -0
  437. package/dist/worldGhostGateway.js +131 -0
  438. package/dist/worldGhostHandshake.js +107 -0
  439. package/dist/worldGhostHost.js +41 -0
  440. package/dist/worldGhostIngress.js +131 -0
  441. package/dist/worldGhostNeighborhood.js +69 -0
  442. package/dist/worldGhostNeighbors.js +85 -0
  443. package/dist/worldGhostOutbound.js +109 -0
  444. package/dist/worldGhostPublisher.js +215 -0
  445. package/dist/worldGhostReceiver.js +212 -0
  446. package/dist/worldGhostSender.js +145 -0
  447. package/dist/worldGhostSocket.js +77 -0
  448. package/dist/worldGhostWire.js +171 -0
  449. package/dist/worldGroupCommand.js +48 -0
  450. package/dist/worldGroupDeadline.js +114 -0
  451. package/dist/worldGroupPreparation.js +114 -0
  452. package/dist/worldGroupReadyControl.js +127 -0
  453. package/dist/worldGroupSupervisor.js +119 -0
  454. package/dist/worldHandoffMetrics.js +58 -0
  455. package/dist/worldHandoffView.js +99 -0
  456. package/dist/worldHostSource.js +68 -0
  457. package/dist/worldInspectEndpoint.js +249 -0
  458. package/dist/worldInspection.js +108 -0
  459. package/dist/worldInstanceAdmission.js +30 -0
  460. package/dist/worldInstanceAllocation.js +115 -0
  461. package/dist/worldInstanceDestination.js +63 -0
  462. package/dist/worldInstanceExpiry.js +281 -0
  463. package/dist/worldInstanceExpirySupervisor.js +87 -0
  464. package/dist/worldInstanceLifecycle.js +102 -0
  465. package/dist/worldInstanceState.js +51 -0
  466. package/dist/worldInstances.js +477 -0
  467. package/dist/worldJoin.js +55 -0
  468. package/dist/worldLayers.js +150 -0
  469. package/dist/worldLeases.js +77 -0
  470. package/dist/worldManifest.js +24 -0
  471. package/dist/worldMovement.js +62 -0
  472. package/dist/worldPersistence.js +133 -0
  473. package/dist/worldProjection.js +220 -0
  474. package/dist/worldReact.js +109 -0
  475. package/dist/worldRecoveryActor.js +34 -0
  476. package/dist/worldReturnAnchor.js +48 -0
  477. package/dist/worldRoomHooks.js +56 -0
  478. package/dist/worldRoomPool.js +26 -0
  479. package/dist/worldRoomSteps.js +132 -0
  480. package/dist/worldSeatBinding.js +35 -0
  481. package/dist/worldServer.d.ts +6936 -0
  482. package/dist/worldServer.js +48 -0
  483. package/dist/worldSourceSeatPending.js +8 -0
  484. package/dist/worldStrategyFixtures.js +163 -0
  485. package/dist/worldTesting.js +26 -0
  486. package/dist/worldTransitionDefaults.js +197 -0
  487. package/dist/worldTransitionExecutor.js +518 -0
  488. package/dist/worldTransitionGroup.js +112 -0
  489. package/dist/worldTransitionPhysicalSteps.js +39 -0
  490. package/dist/worldTransitionResolver.js +227 -0
  491. package/dist/worldTransitionSeatGroup.js +63 -0
  492. package/dist/worldTransitionSeats.js +259 -0
  493. package/dist/worldTransitionState.js +94 -0
  494. package/dist/worldTransitions.js +100 -0
  495. package/package.json +189 -4
@@ -0,0 +1,156 @@
1
+ import { ProtocolError as e } from "./errors.js";
2
+ import { RoomTransform as t, fieldId as n, precision as r, quantized as i } from "./room.js";
3
+ import { captureTransformRules as a } from "./transformRules.js";
4
+ import { RoomStateCodec as o } from "./stateCodec.js";
5
+ import { definedOnly as s } from "./resolvedOptions.js";
6
+ import { Result as c, Schema as l } from "effect";
7
+ // src/replaySchema.ts
8
+ function u() {
9
+ throw new e({ detail: "Invalid or unsupported archived binary schema" });
10
+ }
11
+ var d = (e) => {
12
+ if (typeof e != "object" || !e || Array.isArray(e) || ![Object.prototype, null].includes(Object.getPrototypeOf(e))) return u();
13
+ let t = Object.create(null);
14
+ for (let n of Reflect.ownKeys(e)) {
15
+ let r = Object.getOwnPropertyDescriptor(e, n);
16
+ if (typeof n != "string" || !r || !r.enumerable || !Object.hasOwn(r, "value")) return u();
17
+ t[n] = r.value;
18
+ }
19
+ return t;
20
+ }, f = (e, t) => {
21
+ try {
22
+ return l.decodeUnknownSync(e)(t, { onExcessProperty: "error" });
23
+ } catch {
24
+ return u();
25
+ }
26
+ }, p = (e, t, n) => {
27
+ let r = e === void 0 ? t : e;
28
+ return typeof r == "number" && Number.isSafeInteger(r) && r > 0 && r <= n ? r : u();
29
+ }, m = l.Struct({
30
+ min: l.Number,
31
+ max: l.Number,
32
+ step: l.optional(l.Number),
33
+ bits: l.optional(l.Int)
34
+ }), h = l.Struct({
35
+ kind: l.Literal("number"),
36
+ integer: l.Boolean,
37
+ precision: l.Literals(["f32", "f64"]),
38
+ q: l.optional(m),
39
+ wrap: l.optional(l.Int)
40
+ }), g = l.Struct({
41
+ name: l.String,
42
+ id: l.Int,
43
+ optional: l.Boolean,
44
+ node: l.Unknown,
45
+ omit: l.optional(l.Literal(!0))
46
+ }), _ = l.Struct({
47
+ kind: l.Literals(["struct", "transform3d"]),
48
+ fields: l.Array(g),
49
+ transform: l.optional(l.Unknown)
50
+ }), v = l.Struct({
51
+ maxBytes: l.optional(l.Int),
52
+ maxCollectionLength: l.optional(l.Int),
53
+ maxFieldId: l.optional(l.Int)
54
+ }), y = {
55
+ maxSpeed: l.Number,
56
+ maxAccel: l.Number,
57
+ precision: l.Number,
58
+ rotation: l.optional(l.Struct({ bits: l.Int })),
59
+ interpolation: l.Literals([
60
+ "linear",
61
+ "hermite",
62
+ "none"
63
+ ]),
64
+ extrapolateMs: l.Number,
65
+ teleportThreshold: l.Number
66
+ }, b = l.Struct({
67
+ ...y,
68
+ bounds: l.Struct({
69
+ min: l.Tuple([l.Number, l.Number]),
70
+ max: l.Tuple([l.Number, l.Number])
71
+ }),
72
+ velocity: l.optional(l.Literals([
73
+ "send",
74
+ "derive",
75
+ "none"
76
+ ]))
77
+ }), x = l.Struct({
78
+ ...y,
79
+ bounds: l.Struct({
80
+ min: l.Tuple([
81
+ l.Number,
82
+ l.Number,
83
+ l.Number
84
+ ]),
85
+ max: l.Tuple([
86
+ l.Number,
87
+ l.Number,
88
+ l.Number
89
+ ])
90
+ })
91
+ }), S = (g, y = {}) => {
92
+ try {
93
+ let e = d(y);
94
+ for (let t of Object.keys(e)) [
95
+ "maxDescriptionBytes",
96
+ "maxSchemaNodes",
97
+ "maxSchemaDepth",
98
+ "codecLimits"
99
+ ].includes(t) || u();
100
+ let S = p(e.maxDescriptionBytes, 262144, 1048576), C = p(e.maxSchemaNodes, 16384, 65536), w = p(e.maxSchemaDepth, 32, 64), T = e.codecLimits === void 0 ? {} : f(v, d(e.codecLimits));
101
+ (typeof g != "string" || g.length === 0 || g.length > S || !g.isWellFormed() || new TextEncoder().encode(g).length > S) && u();
102
+ let E = JSON.parse(g), D = 0, O = (e, o, s = !1) => {
103
+ (++D > C || o > w) && u();
104
+ let c = d(e), p = c.kind;
105
+ if (s && p !== "number" && u(), p === "number") {
106
+ let e = f(h, c);
107
+ if (s) return e.integer && u(), l.Number;
108
+ e.wrap !== void 0 && u();
109
+ let t = e.integer ? l.Int : l.Number;
110
+ if (t = t.pipe(r(e.precision)), e.q) {
111
+ let e = c.q;
112
+ if (!l.is(m)(e)) return u();
113
+ t = t.pipe(i(e));
114
+ }
115
+ return t;
116
+ }
117
+ if (p === "string" || p === "boolean") return f(l.Struct({ kind: l.Literals(["string", "boolean"]) }), c), p === "string" ? l.String : l.Boolean;
118
+ if (p === "literal") {
119
+ let e = f(l.Struct({
120
+ kind: l.Literal("literal"),
121
+ values: l.Array(l.Union([
122
+ l.String,
123
+ l.Number,
124
+ l.Boolean,
125
+ l.Null
126
+ ]))
127
+ }), c);
128
+ return (e.values.length < 1 || e.values.length > 256) && u(), l.Union(e.values.map((e) => e === null ? l.Null : l.Literal(e)));
129
+ }
130
+ if (p === "array" || p === "record") {
131
+ let e = f(l.Struct({
132
+ kind: l.Literals(["array", "record"]),
133
+ element: l.Unknown
134
+ }), c), t = O(e.element, o + 1);
135
+ return p === "array" ? l.Array(t) : l.Record(l.String, t);
136
+ }
137
+ if (p === "struct" || p === "transform3d") {
138
+ let e = f(_, c);
139
+ e.fields.length > C - D && u();
140
+ let r = e.transform === void 0 ? void 0 : a(f(l.Union([b, x]), e.transform));
141
+ (p === "transform3d" && (r === void 0 || r.bounds.min.length !== 3) || p === "struct" && r !== void 0 && r.bounds.min.length !== 2) && u();
142
+ let i = /* @__PURE__ */ new Set(), s = /* @__PURE__ */ new Set(), d = e.fields.map((e) => {
143
+ (!e.name.isWellFormed() || i.has(e.name) || s.has(e.id)) && u(), i.add(e.name), s.add(e.id);
144
+ let t = O(e.node, o + 1, r !== void 0).pipe(n(e.id));
145
+ return [e.name, e.optional ? l.optional(t) : t];
146
+ }), m = l.Struct(Object.fromEntries(d));
147
+ return r === void 0 ? m : m.annotate({ [t]: r });
148
+ }
149
+ return u();
150
+ }, k = l.make(O(E, 0).ast), A = new o(k, T === void 0 ? {} : s(T));
151
+ return A.schemaDescription() !== g && u(), c.succeed(A);
152
+ } catch (t) {
153
+ return c.fail(t instanceof e ? t : new e({ detail: "Invalid or unsupported archived binary schema" }));
154
+ }
155
+ };
156
+ export { S as restoreReplayCodec };
@@ -0,0 +1,149 @@
1
+ import { Context } from 'effect';
2
+ import { DataStore } from '@voltro/database';
3
+ import { Effect } from 'effect';
4
+ import { Layer } from 'effect';
5
+ import { PluginPrivacyRequest } from '@voltro/protocol';
6
+ import { Schema } from 'effect';
7
+ import { StorageObjectMetadata } from '@voltro/plugin-storage';
8
+ import { StorageServiceShape } from '@voltro/plugin-storage';
9
+ import { TableLike } from '@voltro/database';
10
+ import { YieldableError } from 'effect/Cause';
11
+
12
+ /** Shared exact own-data admission for a durable publication or host recording.
13
+ * No bytes, resource acquisition, authorization or write happens here. */
14
+ export declare const captureRoomReplayMetadata: (input: unknown, maxParticipants?: number) => RoomReplayPublicationMetadata;
15
+
16
+ /** SQL index/journal is truth; borrowed StorageService owns provider operations
17
+ * and claims. Every remote effect runs outside a SQL transaction and the tick.
18
+ * Explicit all-node authority is required; this does not invent a default. */
19
+ export declare const dataStoreRoomReplays: (store: DataStore, options: RoomReplayStoreOptions) => Context.Service.Shape<typeof RoomReplayPort>;
20
+
21
+ declare class ProtocolError extends ProtocolError_base {
22
+ get message(): string;
23
+ }
24
+
25
+ declare const ProtocolError_base: Schema.Class<ProtocolError, Schema.TaggedStruct<"ProtocolError", {
26
+ readonly detail: Schema.String;
27
+ }>, YieldableError>;
28
+
29
+ declare interface ReplaySchemaOptions {
30
+ readonly maxDescriptionBytes?: number | undefined;
31
+ readonly maxSchemaNodes?: number | undefined;
32
+ readonly maxSchemaDepth?: number | undefined;
33
+ readonly codecLimits?: Partial<RoomCodecLimits> | undefined;
34
+ }
35
+
36
+ export declare const ROOM_REPLAYS_TABLE = "_voltro_replays";
37
+
38
+ declare interface RoomCodecLimits {
39
+ readonly maxBytes: number;
40
+ readonly maxCollectionLength: number;
41
+ readonly maxFieldId: number;
42
+ }
43
+
44
+ export declare interface RoomReplayAuthority {
45
+ authorize(scope: RoomReplayScope, operation: 'publish' | 'load' | 'erase'): Effect.Effect<void, unknown>;
46
+ /** Fence and await every publisher/reader of this replay on all nodes. */
47
+ withdraw(scope: RoomReplayScope, requestId: string): Effect.Effect<void, unknown>;
48
+ authorizeSubject(request: PluginPrivacyRequest, operation: 'rooms' | 'export'): Effect.Effect<void, unknown>;
49
+ /** Permanent subject association fence + await accepted work, not a flag. */
50
+ withdrawSubject(request: PluginPrivacyRequest): Effect.Effect<void, unknown>;
51
+ }
52
+
53
+ export declare const roomReplayLayer: (store: DataStore, options: RoomReplayStoreOptions) => Layer.Layer<RoomReplayPort>;
54
+
55
+ declare interface RoomReplayLimits {
56
+ readonly maxBytes: number;
57
+ readonly maxFrameBytes: number;
58
+ readonly maxFrames: number;
59
+ readonly maxHighlights: number;
60
+ readonly maxSchemaBytes: number;
61
+ readonly maxDurationMs: number;
62
+ readonly checkpointEveryMs: number;
63
+ }
64
+
65
+ /** Browser-safe trusted server contract. No player mutation or storage adapter
66
+ * is imported at value level; replacement services use this exact Tag. */
67
+ export declare class RoomReplayPort extends RoomReplayPort_base {
68
+ }
69
+
70
+ declare const RoomReplayPort_base: Context.ServiceClass<RoomReplayPort, "@voltro/RoomReplayPort", {
71
+ publish(input: RoomReplayPublish): Effect.Effect<RoomStoredReplay, ProtocolError>;
72
+ load(scope: RoomReplayScope): Effect.Effect<Uint8Array, ProtocolError>;
73
+ erase(scope: RoomReplayScope, requestId: string): Effect.Effect<void, ProtocolError>;
74
+ expire(scope: RoomReplayScope, requestId: string): Effect.Effect<void, ProtocolError>;
75
+ subjectRooms(request: PluginPrivacyRequest): Effect.Effect<ReadonlyArray<string>, ProtocolError>;
76
+ eraseSubject(request: PluginPrivacyRequest): Effect.Effect<void, ProtocolError>;
77
+ exportSubject(request: PluginPrivacyRequest, roomId?: string): Effect.Effect<ReadonlyArray<RoomStoredReplay>, ProtocolError>;
78
+ }>;
79
+
80
+ export declare type RoomReplayPublicationMetadata = Omit<RoomReplayPublish, 'bytes'>;
81
+
82
+ export declare interface RoomReplayPublish extends RoomReplayScope {
83
+ readonly roomId: string;
84
+ readonly roomName: string;
85
+ readonly matchId: string;
86
+ readonly participants: ReadonlyArray<string>;
87
+ readonly visibility: 'private' | 'unlisted' | 'public';
88
+ readonly expiresAtMs: number | null;
89
+ readonly bytes: Uint8Array;
90
+ }
91
+
92
+ export declare interface RoomReplayScope {
93
+ readonly tenantId: string;
94
+ readonly replayId: string;
95
+ }
96
+
97
+ export declare interface RoomReplayStoreOptions {
98
+ readonly storage: Pick<StorageServiceShape, 'put' | 'head' | 'getStream' | 'delete'>;
99
+ readonly operations: {
100
+ readonly bucket: string;
101
+ readonly metadata: Pick<StorageObjectMetadata, 'lookup'>;
102
+ };
103
+ readonly authority: RoomReplayAuthority;
104
+ readonly epochNow: () => number;
105
+ readonly maxTenantReplays?: number;
106
+ readonly maxParticipants?: number;
107
+ readonly replayLimits?: Partial<RoomReplayLimits>;
108
+ readonly schemaOptions?: ReplaySchemaOptions;
109
+ }
110
+
111
+ /** Explicit application schema contribution; not automatically installed by
112
+ * roomsPlugin until its normal privacy/binding/panel integration is supplied. */
113
+ export declare const roomReplayTable: TableLike;
114
+
115
+ export declare interface RoomStoredReplay {
116
+ readonly replayId: string;
117
+ readonly roomId: string;
118
+ readonly roomName: string;
119
+ readonly matchId: string;
120
+ readonly visibility: RoomReplayPublish['visibility'];
121
+ readonly expiresAtMs: number | null;
122
+ readonly durationMs: number;
123
+ readonly size: number;
124
+ readonly schemaHash: number;
125
+ }
126
+
127
+ declare interface RoomSubjectDataPolicy {
128
+ /** Permanently fence this Subject on every writer, await accepted work and
129
+ * persist that authority before returning. Idempotent by trusted requestId. */
130
+ withdraw(request: PluginPrivacyRequest): Effect.Effect<void, unknown>;
131
+ /** After the permanent SQL fence, before Room selection/destruction.
132
+ * Durable/idempotent by requestId; join/erase dependent geometry writers. */
133
+ readonly afterFence?: (request: PluginPrivacyRequest) => Effect.Effect<void, unknown>;
134
+ /** Complete app-owned room associations beyond SQL seats, including state,
135
+ * replay and command references. Never truncate or infer them from payloads. */
136
+ rooms(request: PluginPrivacyRequest): Effect.Effect<ReadonlyArray<string>, unknown>;
137
+ /** Remove app-owned references only after every selected room is erased.
138
+ * Must survive lost replies under the same trusted request identity. */
139
+ eraseAssociations(request: PluginPrivacyRequest): Effect.Effect<void, unknown>;
140
+ /** Explicit lossless JSON projection for this target; never export a shared
141
+ * room's raw state/commands or other players by default. */
142
+ exportRoom(roomId: string, request: PluginPrivacyRequest): Effect.Effect<unknown, unknown>;
143
+ }
144
+
145
+ /** Compose into the actual supplied Rooms Subject policy. The base still owns
146
+ * distributed withdrawal and shared-room projection; no successful fake policy. */
147
+ export declare const withRoomReplayPrivacy: (policy: RoomSubjectDataPolicy, port: Context.Service.Shape<typeof RoomReplayPort>) => RoomSubjectDataPolicy;
148
+
149
+ export { }