@voltro/plugin-rooms 0.87.0 → 0.89.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +272 -6
- package/THIRD-PARTY-NOTICES.md +1542 -368
- package/dist/actor.js +1 -2
- package/dist/apiBinding.js +1 -2
- package/dist/apiRegistryBinding.js +1 -2
- package/dist/apiReservations.js +3 -4
- package/dist/baselines.js +1 -2
- package/dist/bots.js +2 -3
- package/dist/catalog.js +1 -2
- package/dist/checkpointJson.js +1 -2
- package/dist/checkpointStore.js +13 -14
- package/dist/client.js +1 -2
- package/dist/clockSync.js +1 -2
- package/dist/collision.js +3 -4
- package/dist/commandDelivery.js +1 -2
- package/dist/commandRecord.js +1 -2
- package/dist/commandWithdrawal.js +1 -2
- package/dist/connection.js +1 -2
- package/dist/controlCarrier.js +1 -2
- package/dist/controlRegistry.js +1 -2
- package/dist/controlTarget.js +1 -2
- package/dist/controlTransport.js +1 -2
- package/dist/developmentBinding.js +1 -2
- package/dist/directory.js +3 -4
- package/dist/directoryProjection.js +1 -2
- package/dist/errors.js +1 -2
- package/dist/fixed32.js +1 -2
- package/dist/fixedCollision.js +1 -2
- package/dist/fixedCollision32.js +1 -2
- package/dist/fixedMath.js +1 -2
- package/dist/fixedRaw.js +1 -2
- package/dist/fixedSlabs.js +1 -2
- package/dist/fixedTrig.js +1 -2
- package/dist/fixedTrig32.js +1 -2
- package/dist/fixedVectors.js +1 -2
- package/dist/fixedVectors32.js +1 -2
- package/dist/fixedWide.js +1 -2
- package/dist/fixedWords.js +1 -2
- package/dist/gateway.js +1 -2
- package/dist/geometryActivation.js +1 -2
- package/dist/geometryActorInventory.js +1 -2
- package/dist/geometryAdminClient.js +1 -2
- package/dist/geometryAdminData.js +1 -2
- package/dist/geometryAdminFixtures.js +1 -2
- package/dist/geometryAdminPorts.js +1 -2
- package/dist/geometryAdminRpc.js +1 -2
- package/dist/geometryAdminRpcRoutes.js +1 -2
- package/dist/geometryAdminSchemas.js +1 -2
- package/dist/geometryAdministration.js +1 -2
- package/dist/geometryAdministrationPorts.js +1 -2
- package/dist/geometryApiBinding.js +1 -2
- package/dist/geometryAppStorage.js +1 -2
- package/dist/geometryArtifacts.js +1 -2
- package/dist/geometryAssetBundle.js +1 -2
- package/dist/geometryAssetClient.js +1 -2
- package/dist/geometryAssetData.js +1 -2
- package/dist/geometryAssetHttp.js +1 -2
- package/dist/geometryAssetPorts.js +1 -2
- package/dist/geometryAssetRpc.js +1 -2
- package/dist/geometryAssetRpcRoutes.js +1 -2
- package/dist/geometryAssetStorageGrant.js +1 -2
- package/dist/geometryBoxOverlap.js +1 -2
- package/dist/geometryCatalogueDigest.js +1 -2
- package/dist/geometryCellCoverage.js +1 -2
- package/dist/geometryCellLoader.js +1 -2
- package/dist/geometryChannel.js +1 -2
- package/dist/geometryChunkHttp.js +1 -2
- package/dist/geometryChunkLeases.js +1 -2
- package/dist/geometryClient.js +1 -2
- package/dist/geometryClientChunks.js +1 -2
- package/dist/geometryClientDelta.js +1 -2
- package/dist/geometryClientHttp.js +1 -2
- package/dist/geometryClientInterest.js +1 -2
- package/dist/geometryClientStatic.js +1 -2
- package/dist/geometryCms.js +1 -2
- package/dist/geometryCommitCoordinator.js +1 -2
- package/dist/geometryCompactionFixture.js +1 -2
- package/dist/geometryCompactionStrategies.js +1 -2
- package/dist/geometryConnectionClient.js +1 -2
- package/dist/geometryDerivationFixtures.js +1 -2
- package/dist/geometryDerivationStrategies.js +1 -2
- package/dist/geometryDigest.js +1 -2
- package/dist/geometryEditChannel.js +1 -2
- package/dist/geometryEditIngress.js +1 -2
- package/dist/geometryEdits.js +1 -2
- package/dist/geometryEnvelope.js +1 -2
- package/dist/geometryGridRaycast.js +1 -2
- package/dist/geometryGridSweep.js +1 -2
- package/dist/geometryHeightfield.js +1 -2
- package/dist/geometryHeightfieldRaycast.js +1 -2
- package/dist/geometryHeightfieldSweep.js +1 -2
- package/dist/geometryHeightfieldVolume.js +1 -2
- package/dist/geometryHost.js +2 -3
- package/dist/geometryHostDirectory.js +1 -2
- package/dist/geometryHostMutations.js +1 -2
- package/dist/geometryHostStreams.js +1 -2
- package/dist/geometryHttpBody.js +1 -2
- package/dist/geometryHttpRoutes.js +1 -2
- package/dist/geometryImportGltf.js +1 -2
- package/dist/geometryImportLdtk.js +1 -2
- package/dist/geometryImportPng.js +1 -2
- package/dist/geometryImportPublication.js +1 -2
- package/dist/geometryImportTiled.js +1 -2
- package/dist/geometryImportTiles.js +1 -2
- package/dist/geometryImportVox.js +1 -2
- package/dist/geometryImportedSource.js +1 -2
- package/dist/geometryInspectEndpoint.js +1 -2
- package/dist/geometryInspection.js +1 -2
- package/dist/geometryInstall.js +1 -2
- package/dist/geometryJournalArchiveData.js +1 -2
- package/dist/geometryJournalArchiveIndex.js +2 -3
- package/dist/geometryJournalArchiveTable.js +1 -2
- package/dist/geometryJournalCompaction.js +1 -2
- package/dist/geometryJournalPatch.js +1 -2
- package/dist/geometryJournalRetention.js +1 -2
- package/dist/geometryJournalRetentionSchemas.js +1 -2
- package/dist/geometryJournalRetentionSweep.js +1 -2
- package/dist/geometryJournalRetentionWorkflow.js +1 -2
- package/dist/geometryJournalRetentionWorkflowData.js +1 -2
- package/dist/geometryJournalStorage.js +1 -2
- package/dist/geometryLoader.js +1 -2
- package/dist/geometryManifest.js +1 -2
- package/dist/geometryManifestChannel.js +1 -2
- package/dist/geometryManifestClient.js +1 -2
- package/dist/geometryManifestData.js +1 -2
- package/dist/geometryManifestPorts.js +1 -2
- package/dist/geometryManifestPublication.js +1 -2
- package/dist/geometryManifestSource.js +1 -2
- package/dist/geometryMigrationJournal.js +1 -2
- package/dist/geometryMigrationStrategies.js +1 -2
- package/dist/geometryMigrations.js +1 -2
- package/dist/geometryNativeMetadata.js +1 -2
- package/dist/geometryPatch.js +1 -2
- package/dist/geometryPersistence.js +1 -2
- package/dist/geometryPersistenceCapture.js +1 -2
- package/dist/geometryPersistenceData.js +1 -2
- package/dist/geometryPersistencePorts.js +1 -2
- package/dist/geometryPlayerAdmission.js +1 -2
- package/dist/geometryPlayerEditOwner.js +1 -2
- package/dist/geometryPlayerEdits.js +1 -2
- package/dist/geometryPrepared.js +1 -2
- package/dist/geometryPrivacyFence.js +1 -2
- package/dist/geometryProceduralPublication.js +1 -2
- package/dist/geometryProceduralWorker.js +1 -2
- package/dist/geometryPublication.js +1 -2
- package/dist/geometryRayAlgebra.js +1 -2
- package/dist/geometryReadClient.js +1 -2
- package/dist/geometryReadPorts.js +1 -2
- package/dist/geometryReadRpc.js +1 -2
- package/dist/geometryReadRpcRoutes.js +1 -2
- package/dist/geometryReliablePublication.js +1 -2
- package/dist/geometryReloadPorts.js +1 -2
- package/dist/geometryReloadSource.js +1 -2
- package/dist/geometryRenderCache.js +1 -2
- package/dist/geometryRenderLod.js +1 -2
- package/dist/geometryRollback.js +1 -2
- package/dist/geometryRollbackCoordinator.js +2 -3
- package/dist/geometryRollbackPorts.js +1 -2
- package/dist/geometryRollbackSource.js +1 -2
- package/dist/geometryRollbackStore.js +1 -2
- package/dist/geometrySchemas.js +1 -2
- package/dist/geometryShapeRaycast.js +1 -2
- package/dist/geometryShapeSegments.js +1 -2
- package/dist/geometryShapes.js +1 -2
- package/dist/geometrySnapshot.js +1 -2
- package/dist/geometrySnapshotChannel.js +1 -2
- package/dist/geometrySnapshotClient.js +1 -2
- package/dist/geometrySnapshotPreparation.js +1 -2
- package/dist/geometrySnapshotServer.js +1 -2
- package/dist/geometrySqlOwner.js +1 -2
- package/dist/geometryStorage.js +1 -2
- package/dist/geometryStorageGrant.js +1 -2
- package/dist/geometryStorageIdentity.js +1 -2
- package/dist/geometryTileArtifact.js +1 -2
- package/dist/geometryTileCodec.js +1 -2
- package/dist/geometryTileCollision.js +1 -2
- package/dist/geometryTileNavigation.js +1 -2
- package/dist/geometryTileView.js +1 -2
- package/dist/geometryVersionActivation.js +1 -2
- package/dist/geometryVersionClient.js +1 -2
- package/dist/geometryVersionCompare.js +1 -2
- package/dist/geometryVersionMigration.js +1 -2
- package/dist/geometryVoxel.js +1 -2
- package/dist/geometryWorldEntitySubject.js +1 -2
- package/dist/geometryWorldExtent.js +1 -2
- package/dist/geometryWorldMetadata.js +1 -2
- package/dist/geometryWorldStrategyFixtures.js +1 -2
- package/dist/geometryWorldView.js +1 -2
- package/dist/host.js +1 -2
- package/dist/hostBinding.js +1 -2
- package/dist/hostCellObservation.js +1 -2
- package/dist/hostClientCapacity.js +1 -2
- package/dist/hostCommandScope.js +1 -2
- package/dist/hostController.js +2 -3
- package/dist/hostDeployment.js +1 -2
- package/dist/hostDrain.js +1 -2
- package/dist/hostDrainPorts.js +1 -2
- package/dist/hostDriver.js +1 -2
- package/dist/hostLane.js +1 -2
- package/dist/hostListener.js +1 -2
- package/dist/hostListenerBinding.js +1 -2
- package/dist/hostLoopObservation.js +1 -2
- package/dist/hostMetrics.js +1 -2
- package/dist/hostRegistryBinding.js +1 -2
- package/dist/hostSelection.js +1 -2
- package/dist/hostShutdown.js +1 -2
- package/dist/hostTurnObservation.js +1 -2
- package/dist/identities.js +1 -2
- package/dist/index.js +1 -2
- package/dist/inputReceipts.js +1 -2
- package/dist/inputRedundancy.js +1 -2
- package/dist/inspect.js +1 -2
- package/dist/lockstep.js +1 -2
- package/dist/lockstepAdmission.js +1 -2
- package/dist/lockstepAdmissionCodec.js +1 -2
- package/dist/lockstepAdmissionPorts.js +1 -2
- package/dist/lockstepClientSession.js +1 -2
- package/dist/lockstepDefinition.js +1 -2
- package/dist/lockstepHostLoop.js +1 -2
- package/dist/lockstepInitialAdmission.js +1 -2
- package/dist/lockstepInitialStrategyFixtures.js +1 -2
- package/dist/lockstepJournal.js +1 -2
- package/dist/lockstepJournalCodec.js +1 -2
- package/dist/lockstepJournalPorts.js +1 -2
- package/dist/lockstepJournalRebuild.js +1 -2
- package/dist/lockstepJournalRows.js +1 -2
- package/dist/lockstepMembers.js +1 -2
- package/dist/lockstepMessages.js +1 -2
- package/dist/lockstepOwnedRoom.js +1 -2
- package/dist/lockstepPolicies.js +1 -2
- package/dist/lockstepReact.js +1 -2
- package/dist/lockstepRecoveryTruth.js +1 -2
- package/dist/lockstepRosterConfig.js +1 -2
- package/dist/lockstepSeed.js +1 -2
- package/dist/lockstepSeedFixture.js +1 -2
- package/dist/lockstepServer.js +1 -2
- package/dist/lockstepServerConfig.js +1 -2
- package/dist/lockstepServerRoles.js +1 -2
- package/dist/lockstepServerStrategyFixtures.js +1 -2
- package/dist/lockstepStrategies.js +1 -2
- package/dist/lockstepStrategyFixtures.js +1 -2
- package/dist/lockstepTerminal.js +1 -2
- package/dist/lockstepTerminalPorts.js +1 -2
- package/dist/lockstepTransport.js +1 -2
- package/dist/lockstepTransportConfig.js +1 -2
- package/dist/lockstepWireRoster.js +1 -2
- package/dist/matchRoomProvider.js +1 -2
- package/dist/matchRooms.js +1 -2
- package/dist/membershipObserver.js +1 -2
- package/dist/moderation.js +1 -2
- package/dist/movementSpecials.js +1 -2
- package/dist/ownership.js +1 -2
- package/dist/ownershipWithdrawal.js +1 -2
- package/dist/pcg32.js +1 -2
- package/dist/ports.js +1 -2
- package/dist/quaternion.js +2 -3
- package/dist/react.js +1 -2
- package/dist/reaper.js +1 -2
- package/dist/reaperSchemas.js +1 -2
- package/dist/reaperWorkflow.js +1 -2
- package/dist/recovery.js +1 -2
- package/dist/recoverySeats.js +1 -2
- package/dist/replay.js +8 -9
- package/dist/replayPorts.js +1 -2
- package/dist/replayRecording.js +2 -3
- package/dist/replaySchema.js +1 -2
- package/dist/replayStorage.js +1 -2
- package/dist/reservationBatch.js +1 -2
- package/dist/reservationSchemas.js +1 -2
- package/dist/reservations.js +1 -2
- package/dist/reservePort.js +1 -2
- package/dist/resolvedOptions.js +1 -2
- package/dist/room.js +1 -2
- package/dist/roomAccessSweep.js +1 -2
- package/dist/roomAppCommandControl.js +1 -2
- package/dist/roomAuthoringStrategy.js +1 -2
- package/dist/roomErasure.js +1 -2
- package/dist/roomPoolRuntimeDefaults.js +1 -2
- package/dist/roomPoolSelection.js +1 -2
- package/dist/roomPoolTopology.js +1 -2
- package/dist/rpc.js +1 -2
- package/dist/rpcClient.js +1 -2
- package/dist/rpcRoutes.js +1 -2
- package/dist/runtime.js +2 -3
- package/dist/schemaHistory.js +1 -2
- package/dist/seatStore.js +1 -2
- package/dist/seatStrategyFixtures.js +1 -2
- package/dist/seatSubject.js +1 -2
- package/dist/seats.js +1 -2
- package/dist/serverSession.js +1 -2
- package/dist/serverSessionConfig.js +1 -2
- package/dist/sessionAdmission.js +1 -2
- package/dist/sidecarAdmission.js +1 -2
- package/dist/sidecarConfig.js +2 -3
- package/dist/sidecarConfigPublication.js +1 -2
- package/dist/sidecarHostListener.js +1 -2
- package/dist/sidecarIpc.js +1 -2
- package/dist/sidecarPeer.js +1 -2
- package/dist/sidecarProcessPort.js +1 -2
- package/dist/sidecarRuntime.js +1 -2
- package/dist/sidecarSelection.js +1 -2
- package/dist/sidecarWire.js +4 -5
- package/dist/sidecarWrites.js +1 -2
- package/dist/simulation.js +1 -2
- package/dist/simulationAuthoring.js +1 -2
- package/dist/simulationBytes.js +1 -2
- package/dist/simulationConformance.js +1 -2
- package/dist/simulationInputHistoryCapture.js +1 -2
- package/dist/simulationInputHistoryWire.js +1 -2
- package/dist/simulationOptionsWire.js +1 -2
- package/dist/simulationRecoveryWire.js +1 -2
- package/dist/simulationReplay.js +1 -2
- package/dist/simulationSnapshotWire.js +1 -2
- package/dist/simulationState.js +1 -2
- package/dist/snapshotBlob.js +2 -3
- package/dist/snapshotBlobCleanup.js +1 -2
- package/dist/snapshotBlobIndex.js +1 -2
- package/dist/snapshotBudget.js +1 -2
- package/dist/snapshotChain.js +1 -2
- package/dist/snapshotErasure.js +1 -2
- package/dist/snapshotInspection.js +1 -2
- package/dist/snapshotSegmentBlobs.js +1 -2
- package/dist/snapshotUploads.js +1 -2
- package/dist/socketTransport.js +1 -2
- package/dist/spatial.js +2 -3
- package/dist/spectatorPolicy.js +3 -4
- package/dist/spectatorProducer.js +2 -3
- package/dist/startFailureCause.js +1 -2
- package/dist/stateCodec.js +2 -3
- package/dist/strategyFixtures.js +1 -2
- package/dist/streamFraming.js +1 -2
- package/dist/streamTransport.js +1 -2
- package/dist/subjectAdmission.js +1 -2
- package/dist/subjectPrivacy.js +1 -2
- package/dist/subjectPrivacyBinding.js +1 -2
- package/dist/systemManifest.js +1 -2
- package/dist/tables.js +1 -2
- package/dist/testHarness.js +1 -2
- package/dist/testing.js +1 -2
- package/dist/testingPorts.js +1 -2
- package/dist/transform.js +4 -5
- package/dist/transform3d.js +1 -2
- package/dist/transformCollection.js +1 -2
- package/dist/transformCollection3d.js +1 -2
- package/dist/transformCollectionCore.js +2 -3
- package/dist/transformFrames.js +1 -2
- package/dist/transformPrediction3d.js +2 -3
- package/dist/transformRules.js +1 -2
- package/dist/transformSchemas.js +1 -2
- package/dist/transport.js +1 -2
- package/dist/transportAuthoring.js +1 -2
- package/dist/transportCleanup.js +1 -2
- package/dist/transportConformance.js +1 -2
- package/dist/transportConnector.js +1 -2
- package/dist/transportEndpoints.js +1 -2
- package/dist/viewProjection.js +1 -2
- package/dist/web.js +1 -2
- package/dist/webTransportClient.js +1 -2
- package/dist/wire.js +4 -5
- package/dist/withdrawalPort.js +1 -2
- package/dist/world.js +8 -9
- package/dist/worldActorReceipts.js +1 -2
- package/dist/worldActorTransferSnapshot.js +1 -2
- package/dist/worldAdmissionPending.js +1 -2
- package/dist/worldBoundaryCoordinator.js +1 -2
- package/dist/worldCatalog.js +3 -4
- package/dist/worldCellAllocation.js +2 -3
- package/dist/worldCellDestination.js +1 -2
- package/dist/worldCells.js +5 -6
- package/dist/worldChange.js +4 -5
- package/dist/worldClient.js +1 -2
- package/dist/worldClientControl.js +6 -7
- package/dist/worldClientPendingInput.js +1 -2
- package/dist/worldClientRpc.js +1 -2
- package/dist/worldClientRpcRoutes.js +1 -2
- package/dist/worldClientSchemas.js +1 -2
- package/dist/worldCommands.js +5 -6
- package/dist/worldData.js +3 -4
- package/dist/worldDefaultBinding.js +1 -2
- package/dist/worldDefaultGroupAdmission.js +1 -2
- package/dist/worldDefaultGroupAppServices.js +1 -2
- package/dist/worldDefaultGroupCompensation.js +1 -2
- package/dist/worldDefaultGroupContinuation.js +1 -2
- package/dist/worldDefaultGroupControl.js +1 -2
- package/dist/worldDefaultGroupMembers.js +1 -2
- package/dist/worldDefaultGroups.js +1 -2
- package/dist/worldDefaultPending.js +1 -2
- package/dist/worldDefaultService.js +1 -2
- package/dist/worldEntities.js +49 -50
- package/dist/worldEntityCodec.js +1 -2
- package/dist/worldEntityHandoffView.js +1 -2
- package/dist/worldGeometry.js +1 -2
- package/dist/worldGhostAdmission.js +1 -2
- package/dist/worldGhostDestination.js +3 -4
- package/dist/worldGhostGateway.js +1 -2
- package/dist/worldGhostHandshake.js +1 -2
- package/dist/worldGhostHost.js +1 -2
- package/dist/worldGhostIngress.js +1 -2
- package/dist/worldGhostNeighborhood.js +1 -2
- package/dist/worldGhostNeighbors.js +1 -2
- package/dist/worldGhostOutbound.js +1 -2
- package/dist/worldGhostPublisher.js +1 -2
- package/dist/worldGhostReceiver.js +1 -2
- package/dist/worldGhostSender.js +1 -2
- package/dist/worldGhostSocket.js +1 -2
- package/dist/worldGhostWire.js +3 -4
- package/dist/worldGroupCommand.js +1 -2
- package/dist/worldGroupDeadline.js +1 -2
- package/dist/worldGroupPreparation.js +1 -2
- package/dist/worldGroupReadyControl.js +8 -9
- package/dist/worldGroupSupervisor.js +3 -4
- package/dist/worldHandoffMetrics.js +1 -2
- package/dist/worldHandoffView.js +1 -2
- package/dist/worldHostSource.js +5 -6
- package/dist/worldInspectEndpoint.js +1 -2
- package/dist/worldInspection.js +1 -2
- package/dist/worldInstanceAdmission.js +1 -2
- package/dist/worldInstanceAllocation.js +1 -2
- package/dist/worldInstanceDestination.js +1 -2
- package/dist/worldInstanceExpiry.js +1 -2
- package/dist/worldInstanceExpirySupervisor.js +1 -2
- package/dist/worldInstanceLifecycle.js +1 -2
- package/dist/worldInstanceState.js +1 -2
- package/dist/worldInstances.js +1 -2
- package/dist/worldJoin.js +1 -2
- package/dist/worldLayers.js +6 -7
- package/dist/worldLeases.js +5 -6
- package/dist/worldManifest.js +1 -2
- package/dist/worldMovement.js +1 -2
- package/dist/worldPersistence.js +4 -5
- package/dist/worldProjection.js +6 -7
- package/dist/worldReact.js +1 -2
- package/dist/worldRecoveryActor.js +1 -2
- package/dist/worldReturnAnchor.js +1 -2
- package/dist/worldRoomHooks.js +5 -6
- package/dist/worldRoomPool.js +2 -3
- package/dist/worldRoomSteps.js +1 -2
- package/dist/worldSeatBinding.js +1 -2
- package/dist/worldSourceSeatPending.js +1 -2
- package/dist/worldStrategyFixtures.js +1 -2
- package/dist/worldTesting.js +1 -2
- package/dist/worldTransitionDefaults.js +1 -2
- package/dist/worldTransitionExecutor.js +9 -10
- package/dist/worldTransitionGroup.js +1 -2
- package/dist/worldTransitionPhysicalSteps.js +1 -2
- package/dist/worldTransitionResolver.js +8 -9
- package/dist/worldTransitionSeatGroup.js +1 -2
- package/dist/worldTransitionSeats.js +2 -3
- package/dist/worldTransitionState.js +1 -2
- package/dist/worldTransitions.js +8 -9
- package/package.json +10 -10
package/dist/actor.js
CHANGED
|
@@ -8,7 +8,7 @@ import { WorldAdmissionPending as m } from "./worldAdmissionPending.js";
|
|
|
8
8
|
import { captureWorldActorReceipts as h, worldActorCanonicalJson as g, worldActorFingerprint as _ } from "./worldActorReceipts.js";
|
|
9
9
|
import { captureGeometryWorldView as v } from "./geometryWorldView.js";
|
|
10
10
|
import { Effect as y, Result as b, Schema as x } from "effect";
|
|
11
|
-
|
|
11
|
+
// src/actor.ts
|
|
12
12
|
var S = (e, t, n) => {
|
|
13
13
|
if (t === void 0) return;
|
|
14
14
|
let i = t(n);
|
|
@@ -1470,5 +1470,4 @@ var S = (e, t, n) => {
|
|
|
1470
1470
|
};
|
|
1471
1471
|
}
|
|
1472
1472
|
};
|
|
1473
|
-
//#endregion
|
|
1474
1473
|
export { w as RoomActor };
|
package/dist/apiBinding.js
CHANGED
|
@@ -31,7 +31,7 @@ import { captureAdmittedRoomPoolTopology as j, captureRoomPoolCatalog as M } fro
|
|
|
31
31
|
import { captureRoomAccessRecheckInput as me, captureRoomCloseAllInput as he, captureRoomCloseInput as ge, captureRoomKickInput as _e } from "./moderation.js";
|
|
32
32
|
import { Subject as N } from "@voltro/protocol";
|
|
33
33
|
import { Cause as P, Effect as F, Layer as I, Option as L, Schema as R } from "effect";
|
|
34
|
-
|
|
34
|
+
// src/apiBinding.ts
|
|
35
35
|
var z = class extends Error {
|
|
36
36
|
retryCleanup;
|
|
37
37
|
name = "RoomsApiBindFailure";
|
|
@@ -674,5 +674,4 @@ var z = class extends Error {
|
|
|
674
674
|
}), e;
|
|
675
675
|
}
|
|
676
676
|
};
|
|
677
|
-
//#endregion
|
|
678
677
|
export { z as RoomsApiBindFailure, B as RoomsApiOwner };
|
|
@@ -26,7 +26,7 @@ import { Effect as g } from "effect";
|
|
|
26
26
|
import { createHash as me } from "node:crypto";
|
|
27
27
|
import { ConnectionRegistry as he } from "@voltro/kv/connection";
|
|
28
28
|
import { HotStore as ge, layerRoutedHotRedis as _e } from "@voltro/kv/hot";
|
|
29
|
-
|
|
29
|
+
// src/apiRegistryBinding.ts
|
|
30
30
|
function _(t) {
|
|
31
31
|
throw new e({ detail: t });
|
|
32
32
|
}
|
|
@@ -395,5 +395,4 @@ var v = (e, t) => Number.isSafeInteger(e) && e > 0 && e <= t ? e : _("Invalid re
|
|
|
395
395
|
}
|
|
396
396
|
};
|
|
397
397
|
};
|
|
398
|
-
//#endregion
|
|
399
398
|
export { y as registryRoomsApiBinder };
|
package/dist/apiReservations.js
CHANGED
|
@@ -23,7 +23,7 @@ import { decodeRoomDirectoryListing as _e } from "./directory.js";
|
|
|
23
23
|
import { and as T, eq as E, or as ve } from "@voltro/database";
|
|
24
24
|
import { checkGuardsEffect as ye } from "@voltro/protocol";
|
|
25
25
|
import { Effect as D, Layer as O, Result as k, Schema as A } from "effect";
|
|
26
|
-
|
|
26
|
+
// src/apiReservations.ts
|
|
27
27
|
var be = (e, t) => {
|
|
28
28
|
if (e === void 0) return null;
|
|
29
29
|
let r = typeof e == "object" && e && "until" in e ? e.until : void 0;
|
|
@@ -179,7 +179,7 @@ var N = (e) => typeof e == "string" && e.trim() && e.length <= 191 ? e : M("Inva
|
|
|
179
179
|
if (!c || c.state !== "live" || c.hostId !== r || c.epoch !== i) throw new o({ roomId: e });
|
|
180
180
|
if (O.catalog.get(N(c.name)).mode === "lockstep") {
|
|
181
181
|
let e = await Fe(t, c);
|
|
182
|
-
|
|
182
|
+
e && e.admission.adoption?.priorEpoch === i - 1 || M("Lockstep publication needs its actual retained adoption");
|
|
183
183
|
} else {
|
|
184
184
|
let e = await Ie(t, c, s, a);
|
|
185
185
|
(e.disposition !== "live" || e.epoch !== i) && M("Room wake has no matching published SQL checkpoint");
|
|
@@ -252,7 +252,7 @@ var N = (e) => typeof e == "string" && e.trim() && e.length <= 191 ? e : M("Inva
|
|
|
252
252
|
let _ = await Y(l.roomId, u.tenantId);
|
|
253
253
|
if (c && (_.name !== c.name || ze(_, O.catalog.get(c.name)) !== c.encodedOptions) && M("Room creation changed the authorized descriptor or options"), c && O.catalog.get(c.name).mode === "lockstep" && _.lockstepCreatorSubjectId !== u.subjectId && M("Lockstep creation changed its actual requesting creator"), se(r, N(_.name), q(i).tenantId, _.pool, n.pool, n.region), _.state !== "live" || _.hostId !== n.id || _.epoch !== g.epoch) throw new o({ roomId: l.roomId });
|
|
254
254
|
let v = (await R(t, y, T(E("roomId", g.roomId), E("tenantId", u.tenantId), E("sessionId", g.sessionId), E("subjectId", u.subjectId), E("epoch", g.epoch), E("token", w(l.token)), E("state", "reserved"))))[0], b = v?.expiresAt, x = b instanceof Date ? b.getTime() : typeof b == "string" ? Date.parse(b) : NaN;
|
|
255
|
-
return
|
|
255
|
+
return v && v.nonce === g.nonce && v.role === g.role && x === g.expiresAt || M("Room reservation has no matching SQL seat receipt"), {
|
|
256
256
|
...l,
|
|
257
257
|
endpoints: p,
|
|
258
258
|
token: Uint8Array.from(l.token)
|
|
@@ -429,5 +429,4 @@ var N = (e) => typeof e == "string" && e.trim() && e.length <= 191 ? e : M("Inva
|
|
|
429
429
|
})
|
|
430
430
|
});
|
|
431
431
|
}, Se = (e, t) => O.succeed(C, z(e, t));
|
|
432
|
-
//#endregion
|
|
433
432
|
export { z as dataStoreRoomApiReservations, be as roomAccessDeadline, Se as roomApiReservationLayer, xe as seatAccessUntil, j as timedRoomAdmission };
|
package/dist/baselines.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RoomAuthoringError as e } from "./errors.js";
|
|
2
|
-
|
|
2
|
+
// src/baselines.ts
|
|
3
3
|
var t = class {
|
|
4
4
|
capacity;
|
|
5
5
|
maxBaselineAgeMs;
|
|
@@ -69,5 +69,4 @@ var t = class {
|
|
|
69
69
|
this.sent.clear(), this.ackTick = null, this.lastAckAt = -1;
|
|
70
70
|
}
|
|
71
71
|
};
|
|
72
|
-
//#endregion
|
|
73
72
|
export { t as RoomBaselineRing };
|
package/dist/bots.js
CHANGED
|
@@ -2,7 +2,7 @@ import { BudgetExceeded as e, ProtocolError as t, RoomAuthoringError as n } from
|
|
|
2
2
|
import { RoomInputCodec as r } from "./stateCodec.js";
|
|
3
3
|
import { projectRoomView as i } from "./viewProjection.js";
|
|
4
4
|
import { Effect as a, Result as o, Schema as s } from "effect";
|
|
5
|
-
|
|
5
|
+
// src/bots.ts
|
|
6
6
|
function c(e) {
|
|
7
7
|
throw new t({ detail: e });
|
|
8
8
|
}
|
|
@@ -55,7 +55,7 @@ var l = (e) => Number.isFinite(e) ? e : c("Bot helper requires finite numbers"),
|
|
|
55
55
|
deciding = !1;
|
|
56
56
|
decision = null;
|
|
57
57
|
constructor(e, t) {
|
|
58
|
-
this.rng = t,
|
|
58
|
+
this.rng = t, e && typeof e == "object" || c("Bot brain requires an admitted behavior");
|
|
59
59
|
let { _tag: n, ...r } = e;
|
|
60
60
|
(n !== "RoomBotDescriptor" || typeof t != "function") && c("Bot brain requires an admitted behavior and replay random source"), this.descriptor = f(r);
|
|
61
61
|
let i = this.descriptor.initialMemory();
|
|
@@ -559,5 +559,4 @@ var l = (e) => Number.isFinite(e) ? e : c("Bot helper requires finite numbers"),
|
|
|
559
559
|
}
|
|
560
560
|
});
|
|
561
561
|
};
|
|
562
|
-
//#endregion
|
|
563
562
|
export { p as RoomBotBrain, g as RoomBotFill, h as RoomBotLocalClient, m as RoomBotNetworkClient, x as aimError, f as defineBot, C as navGrid, b as reactionDelay, y as steer, S as utilityAI };
|
package/dist/catalog.js
CHANGED
|
@@ -3,7 +3,7 @@ import { defineRoom as t } from "./room.js";
|
|
|
3
3
|
import { roomCodecs as n } from "./web.js";
|
|
4
4
|
import { advanceRoomSchemaHistory as r, validateRoomSchemaHistory as i } from "./schemaHistory.js";
|
|
5
5
|
import { Schema as a } from "effect";
|
|
6
|
-
|
|
6
|
+
// src/catalog.ts
|
|
7
7
|
var o = async (n, r, i = {}) => {
|
|
8
8
|
let o = i.maxRooms ?? 256;
|
|
9
9
|
if (!Number.isSafeInteger(o) || o < 1) throw new e({
|
|
@@ -76,5 +76,4 @@ var o = async (n, r, i = {}) => {
|
|
|
76
76
|
return Object.freeze([...this.descriptors.values()].sort((e, t) => e.descriptor.name < t.descriptor.name ? -1 : +(e.descriptor.name > t.descriptor.name)));
|
|
77
77
|
}
|
|
78
78
|
};
|
|
79
|
-
//#endregion
|
|
80
79
|
export { s as RoomCatalog, o as loadRoomCatalog };
|
package/dist/checkpointJson.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ProtocolError as e } from "./errors.js";
|
|
2
|
-
|
|
2
|
+
// src/checkpointJson.ts
|
|
3
3
|
function t(t) {
|
|
4
4
|
throw new e({ detail: t });
|
|
5
5
|
}
|
|
@@ -20,5 +20,4 @@ var n = (e, r = 0) => {
|
|
|
20
20
|
return !a || !("value" in a) ? t("Checkpoint accessors are refused") : `${JSON.stringify(i)}:${n(a.value, r + 1)}`;
|
|
21
21
|
}).join(",")}}` : t("Non-JSON checkpoint properties are refused") : t("Checkpoint values must be lossless JSON data");
|
|
22
22
|
};
|
|
23
|
-
//#endregion
|
|
24
23
|
export { n as canonicalRoomJson };
|
package/dist/checkpointStore.js
CHANGED
|
@@ -16,7 +16,7 @@ import { loadRoomSnapshotPayload as T, prepareRoomSnapshotPayload as E, writeRoo
|
|
|
16
16
|
import { and as O, eq as k, generateId as A, or as j } from "@voltro/database";
|
|
17
17
|
import { Effect as M, Layer as N } from "effect";
|
|
18
18
|
import { createHash as P } from "node:crypto";
|
|
19
|
-
|
|
19
|
+
// src/checkpointStore.ts
|
|
20
20
|
function F(t) {
|
|
21
21
|
throw new e({ detail: t });
|
|
22
22
|
}
|
|
@@ -39,7 +39,7 @@ var I = (t) => M.flatMap(M.context(), (n) => M.tryPromise({
|
|
|
39
39
|
return t && n.update(t), n.digest("hex");
|
|
40
40
|
}, B = (e, t, r, i) => {
|
|
41
41
|
let a = e.checkpoint, o = e.bytes;
|
|
42
|
-
|
|
42
|
+
a && typeof a == "object" && !Array.isArray(a) && o instanceof Uint8Array || F("Malformed durable Room checkpoint");
|
|
43
43
|
let c = s(a);
|
|
44
44
|
(Buffer.byteLength(c) + o.byteLength > i || e.digest !== z(c, o)) && F("Durable Room checkpoint integrity or byte budget failed");
|
|
45
45
|
let l = JSON.parse(c);
|
|
@@ -117,21 +117,21 @@ var I = (t) => M.flatMap(M.context(), (n) => M.tryPromise({
|
|
|
117
117
|
if (!u) return !1;
|
|
118
118
|
if ((u.snapshotErasure != null || u.erasure != null) && F("Room snapshot privacy withdrawal was fenced"), u.state === "hibernated" && u.hostId === null) {
|
|
119
119
|
let r = await R(e, i, U(t, a));
|
|
120
|
-
|
|
120
|
+
r && r.ownerHostId === n.hostId || F("Hibernated Room receipt owner was fenced");
|
|
121
121
|
let l = await V(e, r, t, a, c, C, o, s);
|
|
122
122
|
return (l.disposition !== "hibernated" || l.epoch !== u.epoch) && F("Hibernated Room command receipt was fenced"), !1;
|
|
123
123
|
}
|
|
124
|
-
if (
|
|
124
|
+
if (u.hostId === n.hostId && [
|
|
125
125
|
"live",
|
|
126
126
|
"creating",
|
|
127
127
|
"faulted",
|
|
128
128
|
"disposed",
|
|
129
129
|
"hibernating"
|
|
130
|
-
].includes(String(u.state))
|
|
130
|
+
].includes(String(u.state)) || F("Room command owner was fenced"), u.state === "creating") return l && Number(u.epoch) > 1;
|
|
131
131
|
if (u.state === "disposed" || u.state === "faulted") {
|
|
132
132
|
let n = await R(e, i, U(t, a));
|
|
133
133
|
if (!n && u.lockstepJournal != null) return !0;
|
|
134
|
-
|
|
134
|
+
n && (await V(e, n, t, a, c, C, o, s)).epoch === u.epoch || F("Terminal Room command owner was fenced");
|
|
135
135
|
}
|
|
136
136
|
return !0;
|
|
137
137
|
};
|
|
@@ -161,16 +161,16 @@ var I = (t) => M.flatMap(M.context(), (n) => M.tryPromise({
|
|
|
161
161
|
if (T && (G.snapshot?.mode === "delta" || G.snapshot?.mode === "full" && L.byteLength > J)) {
|
|
162
162
|
let t = await e.transactional(async (e) => {
|
|
163
163
|
let t = await R(e, r, O(k("id", G.roomId), k("tenantId", G.tenantId))), a = await R(e, i, U(G.roomId, G.tenantId));
|
|
164
|
-
if (G.publication === "held" && t?.state !== "creating" && F("Held checkpoint requires an unpublished owner"), (t?.snapshotErasure != null || t?.erasure != null) && F("Checkpoint snapshot privacy withdrawal was fenced"), a && a.checkpoint?.requestId === G.requestId) return a.digest !== K && F("Checkpoint requestId was reused with different data"),
|
|
164
|
+
if (G.publication === "held" && t?.state !== "creating" && F("Held checkpoint requires an unpublished owner"), (t?.snapshotErasure != null || t?.erasure != null) && F("Checkpoint snapshot privacy withdrawal was fenced"), a && a.checkpoint?.requestId === G.requestId) return a.digest !== K && F("Checkpoint requestId was reused with different data"), t && t.epoch === G.epoch && (t.hostId === n.hostId || t.state === "hibernated" && t.hostId === null && a.ownerHostId === n.hostId) || F("Checkpoint blob owner was fenced"), {
|
|
165
165
|
committed: !0,
|
|
166
166
|
plan: void 0,
|
|
167
167
|
intent: void 0
|
|
168
168
|
};
|
|
169
|
-
|
|
169
|
+
t && t.hostId === n.hostId && t.epoch === G.epoch && [
|
|
170
170
|
"live",
|
|
171
171
|
"creating",
|
|
172
172
|
"hibernating"
|
|
173
|
-
].includes(String(t.state))
|
|
173
|
+
].includes(String(t.state)) && G.revision === (a?.checkpoint?.revision ?? 0) + 1 || F("Checkpoint blob admission was fenced");
|
|
174
174
|
let o = G.snapshot?.mode === "delta" && a ? await V(e, a, G.roomId, G.tenantId, c, C, q, w) : void 0, s = G.snapshot?.mode === "delta" ? await E(e, {
|
|
175
175
|
...G,
|
|
176
176
|
bytes: L
|
|
@@ -211,23 +211,23 @@ var I = (t) => M.flatMap(M.context(), (n) => M.tryPromise({
|
|
|
211
211
|
}
|
|
212
212
|
await e.transactional(async (e) => {
|
|
213
213
|
let u = await R(e, r, O(k("id", G.roomId), k("tenantId", G.tenantId)));
|
|
214
|
-
|
|
214
|
+
u && u.epoch === G.epoch && u.snapshotErasure == null && u.erasure == null || F("Checkpoint owner was fenced");
|
|
215
215
|
let f = await R(e, i, U(G.roomId, G.tenantId)), p = f ? await V(e, f, G.roomId, G.tenantId, c, C, q, w) : void 0;
|
|
216
216
|
if (u.state === "hibernated") {
|
|
217
217
|
(u.hostId !== null || f?.ownerHostId !== n.hostId || p?.disposition !== "hibernated" || G.disposition !== "hibernated" || p.requestId !== G.requestId || f.digest !== K) && F("Hibernated checkpoint receipt was fenced");
|
|
218
218
|
return;
|
|
219
219
|
}
|
|
220
|
-
if (
|
|
220
|
+
if (u.hostId === n.hostId && [
|
|
221
221
|
"live",
|
|
222
222
|
"creating",
|
|
223
223
|
"faulted",
|
|
224
224
|
"disposed",
|
|
225
225
|
"hibernating"
|
|
226
|
-
].includes(String(u.state))
|
|
226
|
+
].includes(String(u.state)) || F("Checkpoint owner was fenced"), G.publication === "held" && u.state !== "creating" && F("Held checkpoint requires an unpublished owner"), p?.requestId === G.requestId) {
|
|
227
227
|
f?.digest !== K && F("Checkpoint requestId was reused with different data");
|
|
228
228
|
return;
|
|
229
229
|
}
|
|
230
|
-
G.disposition === "hibernated" ?
|
|
230
|
+
G.disposition === "hibernated" ? u.state === "hibernating" && p?.disposition === "hibernating" && p.epoch === G.epoch && G.commands.length === 0 && G.tick === p.tick && G.commandCursor === p.commandCursor && G.schemaHash === p.schemaHash && s(G.schedules) === s(p.schedules) && s(G.inputReceipts) === s(p.inputReceipts) && Buffer.from(L).equals(Buffer.from(p.bytes)) || F("Hibernate requires the unchanged staged durable snapshot") : u.state !== "live" && u.state !== "creating" && F("Room is no longer live"), (G.revision !== (p?.revision ?? 0) + 1 || G.epoch < (p?.epoch ?? 0) || G.commandCursor < (p?.commandCursor ?? 0)) && F("Checkpoint revision or cursor regressed");
|
|
231
231
|
let _ = v(f, {
|
|
232
232
|
...G,
|
|
233
233
|
bytes: L
|
|
@@ -382,5 +382,4 @@ var I = (t) => M.flatMap(M.context(), (n) => M.tryPromise({
|
|
|
382
382
|
})
|
|
383
383
|
});
|
|
384
384
|
}, W = (e, t) => N.succeed(c, U(e, t));
|
|
385
|
-
//#endregion
|
|
386
385
|
export { s as canonicalRoomJson, U as dataStoreRoomCheckpoints, B as decodeDurableRoomCheckpoint, V as loadDurableRoomCheckpoint, H as prefetchRoomCheckpointBlobs, W as roomCheckpointLayer };
|
package/dist/client.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { RoomConnection as e } from "./connection.js";
|
|
2
2
|
import { roomTransportConnector as t } from "./transportConnector.js";
|
|
3
3
|
import { roomRpcReservations as n, worldRpcJoin as r } from "./rpcClient.js";
|
|
4
|
-
|
|
4
|
+
// src/client.ts
|
|
5
5
|
var i = (n, r, i) => {
|
|
6
6
|
let a = i.clock ?? { now: () => performance.now() };
|
|
7
7
|
return new e(n, a, r, t({
|
|
@@ -52,5 +52,4 @@ var i = (n, r, i) => {
|
|
|
52
52
|
entityId: l
|
|
53
53
|
};
|
|
54
54
|
};
|
|
55
|
-
//#endregion
|
|
56
55
|
export { c as createRoom, i as createRoomClient, l as joinById, s as joinRoom, u as joinSeat, d as joinWorld };
|
package/dist/clockSync.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ProtocolError as e } from "./errors.js";
|
|
2
|
-
|
|
2
|
+
// src/clockSync.ts
|
|
3
3
|
var t = (e) => {
|
|
4
4
|
if (e.length === 0) return 0;
|
|
5
5
|
let t = [...e].sort((e, t) => e - t), n = Math.floor(t.length / 2);
|
|
@@ -47,5 +47,4 @@ var t = (e) => {
|
|
|
47
47
|
return n === null ? null : (this.lastServerNow = Math.max(this.lastServerNow, t + n), this.lastServerNow);
|
|
48
48
|
}
|
|
49
49
|
};
|
|
50
|
-
//#endregion
|
|
51
50
|
export { n as RoomClockSync };
|
package/dist/collision.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BudgetExceeded as e, RoomAuthoringError as t } from "./errors.js";
|
|
2
2
|
import { spatialGrid as n } from "./spatial.js";
|
|
3
|
-
|
|
3
|
+
// src/collision.ts
|
|
4
4
|
function r(e) {
|
|
5
5
|
throw new t({
|
|
6
6
|
room: "collision",
|
|
@@ -45,11 +45,11 @@ var i = (e) => Number.isFinite(e) ? e : r("Collision geometry must be finite"),
|
|
|
45
45
|
budget: "collisionTiles",
|
|
46
46
|
limit: t.maxTiles
|
|
47
47
|
});
|
|
48
|
-
|
|
48
|
+
Array.isArray(t.solid) && t.solid.length === l || r("Tile occupancy must be a complete dense row-major array"), s(t.origin);
|
|
49
49
|
let u = t.origin.x, d = t.origin.y, f = t.width;
|
|
50
50
|
i(u + t.width * n), i(d + t.height * n);
|
|
51
51
|
let p = [];
|
|
52
|
-
for (let e = 0; e < l; e++)
|
|
52
|
+
for (let e = 0; e < l; e++) Object.hasOwn(t.solid, e) && typeof t.solid[e] == "boolean" || r("Tile occupancy must contain only explicit booleans"), t.solid[e] && p.push({
|
|
53
53
|
id: `tile:${e % f}:${Math.floor(e / f)}`,
|
|
54
54
|
entity: {
|
|
55
55
|
position: {
|
|
@@ -152,5 +152,4 @@ var i = (e) => Number.isFinite(e) ? e : r("Collision geometry must be finite"),
|
|
|
152
152
|
iterations: h
|
|
153
153
|
};
|
|
154
154
|
};
|
|
155
|
-
//#endregion
|
|
156
155
|
export { p as collide, c as collisionWorld, l as tileCollisionWorld2D };
|
package/dist/commandDelivery.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BudgetExceeded as e, ProtocolError as t } from "./errors.js";
|
|
2
2
|
import "./ports.js";
|
|
3
3
|
import { Effect as n, Result as r } from "effect";
|
|
4
|
-
|
|
4
|
+
// src/commandDelivery.ts
|
|
5
5
|
var i = "Room app command deferred; it stays pending for the next delivery turn", a = () => new t({ detail: i }), o = "Room application command failed", s = 3e5, c = (e) => {
|
|
6
6
|
let { roomId: t, requestId: n } = e, [r, i, ...a] = n.startsWith(t + ":") ? n.slice(t.length + 1).split(":") : [];
|
|
7
7
|
return a.length === 0 && r !== void 0 && i !== void 0 && /^[1-9][0-9]*$/.test(r) && /^[0-9]+$/.test(i) && Number.isSafeInteger(Number(r)) ? Number(r) : null;
|
|
@@ -97,5 +97,4 @@ var i = "Room app command deferred; it stays pending for the next delivery turn"
|
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
};
|
|
100
|
-
//#endregion
|
|
101
100
|
export { i as ROOM_COMMAND_DEFERRED, o as ROOM_COMMAND_FAILED, s as ROOM_COMMAND_PARK_AFTER_MS, u as RoomCommandDelivery, l as applicationRoomCommands, a as roomCommandDeferred, c as roomCommandEpoch };
|
package/dist/commandRecord.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { ProtocolError as e } from "./errors.js";
|
|
2
2
|
import { canonicalRoomJson as t } from "./checkpointJson.js";
|
|
3
3
|
import { createHash as n } from "node:crypto";
|
|
4
|
-
|
|
4
|
+
// src/commandRecord.ts
|
|
5
5
|
var r = (r, i, a, o) => {
|
|
6
6
|
let s = t(r.command), c = JSON.parse(s);
|
|
7
7
|
if (r.roomId !== i || r.tenantId !== a || Buffer.byteLength(s, "utf8") > o || !c || typeof c != "object" || Array.isArray(c) || ![r.epoch, r.sequence].every((e) => typeof e == "number" && Number.isSafeInteger(e) && e > 0) || r.digest !== n("sha256").update(s).digest("hex") || c.requestId !== r.requestId || c.requestId !== `${i}:${r.epoch}:${r.sequence}` || !["run", "publish"].includes(c.kind) || typeof c.name != "string" || !c.name.trim() || c.kind === "publish" && (typeof c.key != "string" || !c.key.trim())) throw new e({ detail: "Durable Room command integrity failed" });
|
|
8
8
|
return c;
|
|
9
9
|
};
|
|
10
|
-
//#endregion
|
|
11
10
|
export { r as decodeDurableRoomCommand };
|
|
@@ -7,7 +7,7 @@ import { decodeDurableRoomCommand as o } from "./commandRecord.js";
|
|
|
7
7
|
import { captureRoomHostWithdrawalInput as s } from "./ownershipWithdrawal.js";
|
|
8
8
|
import { and as c, eq as l } from "@voltro/database";
|
|
9
9
|
import { Effect as u, Layer as d } from "effect";
|
|
10
|
-
|
|
10
|
+
// src/commandWithdrawal.ts
|
|
11
11
|
function f(t) {
|
|
12
12
|
throw new e({ detail: t });
|
|
13
13
|
}
|
|
@@ -179,5 +179,4 @@ var p = (e) => typeof e == "string" && e.trim() && e.length <= 191 ? e : f("Inva
|
|
|
179
179
|
})));
|
|
180
180
|
} });
|
|
181
181
|
}, _ = (e, t, n = {}) => d.succeed(r, g(e, t, n));
|
|
182
|
-
//#endregion
|
|
183
182
|
export { g as applicationRoomExternalWorkWithdrawal, _ as roomExternalWorkWithdrawalLayer };
|
package/dist/connection.js
CHANGED
|
@@ -4,7 +4,7 @@ import { RoomTransportCleanupFailure as s } from "./transportCleanup.js";
|
|
|
4
4
|
import { captureRoomTransportEndpoints as c } from "./transportEndpoints.js";
|
|
5
5
|
import { RoomInputRedundancy as l, defaultRoomInputRedundancy as u } from "./inputRedundancy.js";
|
|
6
6
|
import { RoomSession as d, defaultRoomClockSampling as f } from "./web.js";
|
|
7
|
-
|
|
7
|
+
// src/connection.ts
|
|
8
8
|
var p = (e) => e < 3e3 ? 200 : 1e3, m = (e) => {
|
|
9
9
|
if (!Number.isSafeInteger(e.attempt) || e.attempt < 0 || !Number.isFinite(e.initialBackoffMs) || e.initialBackoffMs <= 0 || !Number.isFinite(e.maxBackoffMs) || e.maxBackoffMs < e.initialBackoffMs || !Number.isFinite(e.remainingMs) || e.remainingMs <= 0 || !Number.isFinite(e.random) || e.random < 0 || e.random >= 1) throw new n({
|
|
10
10
|
room: "client",
|
|
@@ -493,5 +493,4 @@ var p = (e) => e < 3e3 ? 200 : 1e3, m = (e) => {
|
|
|
493
493
|
if (!n) throw new t({ detail: "Geometry requires its genuine currently joined Room connection" });
|
|
494
494
|
return n;
|
|
495
495
|
};
|
|
496
|
-
//#endregion
|
|
497
496
|
export { y as RoomConnection, b as captureRoomConnectionGeometrySession, p as defaultRoomClockPingCadence, m as defaultRoomReconnectPolicy };
|
package/dist/controlCarrier.js
CHANGED
|
@@ -10,7 +10,7 @@ import { RoomHostWithdrawalInputSchema as d } from "./ownershipWithdrawal.js";
|
|
|
10
10
|
import { SubjectIdentity as f, subjectIdentity as p } from "@voltro/protocol";
|
|
11
11
|
import { Schema as m } from "effect";
|
|
12
12
|
import { signSession as h, verifySessionKeyed as g } from "@voltro/protocol/session";
|
|
13
|
-
|
|
13
|
+
// src/controlCarrier.ts
|
|
14
14
|
var _ = m.NonEmptyString.pipe(m.check(m.isMaxLength(191))), v = m.Record(m.String, m.Union([
|
|
15
15
|
m.String,
|
|
16
16
|
m.Number,
|
|
@@ -371,5 +371,4 @@ var U = (e, t) => e.hostId === t.hostId && e.instanceId === t.instanceId && e.st
|
|
|
371
371
|
}
|
|
372
372
|
});
|
|
373
373
|
};
|
|
374
|
-
//#endregion
|
|
375
374
|
export { F as RoomControlAppCommandSchema, A as RoomControlMatchPrepareSchema, x as RoomControlTargetSchema, L as RoomControlWorldAdmissionSchema, O as RoomControlWorldAuthoritySchema, I as RoomControlWorldCaptureSchema, k as RoomControlWorldPrepareSchema, E as RoomControlWorldStepSchema, P as RoomControlWorldTransitionSchema, Y as decodeRoomControlReservation, q as decodeRoomControlToken, J as encodeRoomControlReservation, K as encodeRoomControlToken, X as makeRoomControlCarrier, W as roomControlIdentity, G as sameRoomControlIdentity, U as sameRoomControlTarget };
|
package/dist/controlRegistry.js
CHANGED
|
@@ -4,7 +4,7 @@ import { RoomsHostBindFailure as n } from "./hostBinding.js";
|
|
|
4
4
|
import { openRoomAppCommandServer as r } from "./roomAppCommandControl.js";
|
|
5
5
|
import { openRoomControlClient as i, openRoomControlServer as a } from "./controlTransport.js";
|
|
6
6
|
import { Effect as o, Result as s } from "effect";
|
|
7
|
-
|
|
7
|
+
// src/controlRegistry.ts
|
|
8
8
|
var c = () => new e({ detail: "Room control requires an explicit shared registry Pub/Sub declaration" }), l = (t, r, i, a) => {
|
|
9
9
|
if (typeof r != "string" || !/^(redis|nats):[A-Za-z][A-Za-z0-9_-]*$/.test(r) || typeof t?.validate != "function" || typeof t.pubsub != "function") return o.fail(c());
|
|
10
10
|
let l = t.validate.bind(t), u = t.pubsub.bind(t);
|
|
@@ -75,5 +75,4 @@ var c = () => new e({ detail: "Room control requires an explicit shared registry
|
|
|
75
75
|
fence: () => void 0,
|
|
76
76
|
close: e.close
|
|
77
77
|
}))), (e) => new t(e))).pipe(o.map((e) => Object.freeze({ close: e.close })));
|
|
78
|
-
//#endregion
|
|
79
78
|
export { p as openRegistryRoomAppCommandServer, d as openRegistryRoomControlClient, f as openRegistryRoomControlServer };
|
package/dist/controlTarget.js
CHANGED
|
@@ -4,7 +4,7 @@ import { captureAdmittedRoomPoolTopology as n } from "./roomPoolTopology.js";
|
|
|
4
4
|
import { RoomControlTargetSchema as r } from "./controlCarrier.js";
|
|
5
5
|
import { eq as i } from "@voltro/database";
|
|
6
6
|
import { Effect as a, Schema as o } from "effect";
|
|
7
|
-
|
|
7
|
+
// src/controlTarget.ts
|
|
8
8
|
var s = (s, c, l, u) => {
|
|
9
9
|
if (typeof l != "string" || !l.trim() || l.length > 191 || typeof c.list != "function") throw new e({ detail: "Room control requires an admitted region and borrowed membership" });
|
|
10
10
|
let d = s.hosts.bind(s), f = c.list.bind(c), p = u === void 0 ? void 0 : n(u.pools), m = u?.store.query.bind(u.store);
|
|
@@ -41,5 +41,4 @@ var s = (s, c, l, u) => {
|
|
|
41
41
|
});
|
|
42
42
|
});
|
|
43
43
|
};
|
|
44
|
-
//#endregion
|
|
45
44
|
export { s as directoryRoomControlTargetResolver };
|
package/dist/controlTransport.js
CHANGED
|
@@ -18,7 +18,7 @@ import { runWorldTransitionForward as A } from "./worldDefaultService.js";
|
|
|
18
18
|
import { Subject as j } from "@voltro/protocol";
|
|
19
19
|
import { Effect as M, Result as ae, Schema as N } from "effect";
|
|
20
20
|
import { createHash as P, randomUUID as F } from "node:crypto";
|
|
21
|
-
|
|
21
|
+
// src/controlTransport.ts
|
|
22
22
|
var I = () => new n({ detail: "Room control outcome is unconfirmed; do not repeat or select another host" }), L = "Room control transport is unavailable", R = () => new n({ detail: L }), z = (e, t) => {
|
|
23
23
|
if (!Number.isSafeInteger(e) || e < 1 || e > t) throw new n({ detail: "Invalid Room control resource budget" });
|
|
24
24
|
return e;
|
|
@@ -570,5 +570,4 @@ var I = () => new n({ detail: "Room control outcome is unconfirmed; do not repea
|
|
|
570
570
|
}
|
|
571
571
|
});
|
|
572
572
|
})));
|
|
573
|
-
//#endregion
|
|
574
573
|
export { U as openRoomControlClient, H as openRoomControlServer };
|
|
@@ -7,7 +7,7 @@ import { roomControlSubjectResolver as a, roomSeatSubjectResolver as o } from ".
|
|
|
7
7
|
import { Subject as s } from "@voltro/protocol";
|
|
8
8
|
import { Effect as c, Schema as l } from "effect";
|
|
9
9
|
import { randomBytes as u, randomUUID as d } from "node:crypto";
|
|
10
|
-
|
|
10
|
+
// src/developmentBinding.ts
|
|
11
11
|
var f = (t) => t.subjectId === null || t.subjectType !== void 0 && t.subjectType !== "user" ? c.fail(new e({ detail: "Development seats admit signed-in players only" })) : c.try({
|
|
12
12
|
try: () => l.decodeUnknownSync(s)({
|
|
13
13
|
type: "user",
|
|
@@ -109,5 +109,4 @@ var f = (t) => t.subjectId === null || t.subjectType !== void 0 && t.subjectType
|
|
|
109
109
|
throw clearInterval(N), await M.close().catch(() => void 0), e;
|
|
110
110
|
}
|
|
111
111
|
};
|
|
112
|
-
//#endregion
|
|
113
112
|
export { p as developmentRoomsBinding, f as trustedRoomSeatSubject };
|
package/dist/directory.js
CHANGED
|
@@ -10,7 +10,7 @@ import { and as g, eq as _, generateId as v, gt as y, or as b } from "@voltro/da
|
|
|
10
10
|
import { Effect as x, Layer as S } from "effect";
|
|
11
11
|
import { createHash as C } from "node:crypto";
|
|
12
12
|
import { registerWakeup as w } from "@voltro/runtime";
|
|
13
|
-
|
|
13
|
+
// src/directory.ts
|
|
14
14
|
var T = "room-pool", E = 5e3;
|
|
15
15
|
function D(e) {
|
|
16
16
|
throw new t({ detail: e });
|
|
@@ -81,7 +81,7 @@ var O = (e) => typeof e == "number" && Number.isSafeInteger(e) && e >= 0 ? e : D
|
|
|
81
81
|
let e = S.epochNow();
|
|
82
82
|
return Number.isFinite(e) && e >= 0 && e <= 864e13 ? e : D("Invalid directory wall clock");
|
|
83
83
|
}, V = (e) => (O(e.rooms), O(e.clients), (!Number.isFinite(e.cpu) || e.cpu < 0 || e.cpu > 1) && D("Host CPU load must be measured between zero and one"), { ...e }), H = (t, n) => P(async () => {
|
|
84
|
-
n
|
|
84
|
+
n === void 0 || I && Object.hasOwn(I.pools, n) && I.pools[n].regions.includes(t) || D("Unknown host pool or region");
|
|
85
85
|
let r = await F(d, l, g(_("region", k(t)), _("ready", !0), _("draining", !1), y("lastHeartbeatAt", new Date(B() - S.heartbeatTtlMs)), ...n === void 0 ? I ? [] : [_("pool", null)] : [_("pool", n)]), L + 1);
|
|
86
86
|
if (r.length > L) throw new e({
|
|
87
87
|
budget: "listedHosts",
|
|
@@ -250,7 +250,7 @@ var O = (e) => typeof e == "number" && Number.isSafeInteger(e) && e >= 0 ? e : D
|
|
|
250
250
|
let r = n[0];
|
|
251
251
|
(r.requestHash !== m || r.tenantId !== a.tenantId || r.requestKey !== o) && D("Room creation retry changed its original input");
|
|
252
252
|
let i = await F(t, s, _("id", k(r.roomId)), 2, !0), c = i[0];
|
|
253
|
-
return
|
|
253
|
+
return i.length === 1 && c && c.tenantId === a.tenantId && c.hostId === e && c.name === a.name && (c.pool ?? null) === f && c.epoch === 1 && ["creating", "live"].includes(String(c.state)) || D("Room creation retry requires its original active owner"), M(c);
|
|
254
254
|
}
|
|
255
255
|
}
|
|
256
256
|
let h = O(d.capacity);
|
|
@@ -319,5 +319,4 @@ var O = (e) => typeof e == "number" && Number.isSafeInteger(e) && e >= 0 ? e : D
|
|
|
319
319
|
})
|
|
320
320
|
});
|
|
321
321
|
}, L = (e, t) => S.succeed(d, I(e, t));
|
|
322
|
-
//#endregion
|
|
323
322
|
export { T as ROOM_POOL_WAKE, E as ROOM_POOL_WAKE_RETRY_MS, I as dataStoreRoomDirectory, M as decodeRoomDirectoryListing, L as roomDirectoryLayer };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BudgetExceeded as e, ProtocolError as t } from "./errors.js";
|
|
2
2
|
import { Effect as n, Option as r } from "effect";
|
|
3
3
|
import { HotError as i, readHotStoreWithFallback as a } from "@voltro/kv/hot/contract";
|
|
4
|
-
|
|
4
|
+
// src/directoryProjection.ts
|
|
5
5
|
var o = (e) => {
|
|
6
6
|
if (typeof e != "string" || !e.trim() || e.length > 191) throw new t({ detail: "Invalid directory projection identity" });
|
|
7
7
|
return e;
|
|
@@ -113,5 +113,4 @@ var o = (e) => {
|
|
|
113
113
|
});
|
|
114
114
|
return l(n, await e.hotStore({ tenantId: i }), c);
|
|
115
115
|
};
|
|
116
|
-
//#endregion
|
|
117
116
|
export { u as bindRoomDirectoryProjection, l as makeRoomDirectoryProjection };
|
package/dist/errors.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Schema as e } from "effect";
|
|
2
|
-
|
|
2
|
+
// src/errors.ts
|
|
3
3
|
var t = class extends e.TaggedError()("RoomAuthoringError", {
|
|
4
4
|
room: e.String,
|
|
5
5
|
detail: e.String
|
|
@@ -49,5 +49,4 @@ var t = class extends e.TaggedError()("RoomAuthoringError", {
|
|
|
49
49
|
return `Room budget ${this.budget} exceeded (limit ${this.limit})`;
|
|
50
50
|
}
|
|
51
51
|
};
|
|
52
|
-
//#endregion
|
|
53
52
|
export { h as BudgetExceeded, m as NotRoomMember, n as ProtocolError, t as RoomAuthoringError, f as RoomForbidden, c as RoomFull, d as RoomGone, a as RoomHibernatePending, u as RoomLocked, l as RoomPoolWaking, s as RoomsClosed, p as SeatExpired, r as SimulationConformanceDivergence, i as SimulationConformanceFailure, o as WorldTransitionCooldown };
|
package/dist/fixed32.js
CHANGED
|
@@ -4,7 +4,7 @@ import { fixedRawInteger as i } from "./fixedRaw.js";
|
|
|
4
4
|
import { simulationOwnData as a } from "./simulationAuthoring.js";
|
|
5
5
|
import { compare as o, compareWide as s, invert as c, limbs as l, magnitude as u, negative as d, product as f, subtract as p, words as m } from "./fixedWide.js";
|
|
6
6
|
import { atan2Fx32 as h, cosFx32 as g, sinFx32 as _ } from "./fixedTrig32.js";
|
|
7
|
-
|
|
7
|
+
// src/fixed32.ts
|
|
8
8
|
function v(t) {
|
|
9
9
|
throw new e({
|
|
10
10
|
room: "fixed",
|
|
@@ -130,5 +130,4 @@ var y = (e, t) => {
|
|
|
130
130
|
}
|
|
131
131
|
});
|
|
132
132
|
};
|
|
133
|
-
//#endregion
|
|
134
133
|
export { b as createFixed32 };
|
package/dist/fixedCollision.js
CHANGED
|
@@ -3,7 +3,7 @@ import { compareUint64 as t, multiplyWords as n, signedProductDifferenceSign as
|
|
|
3
3
|
import { createFixed as i } from "./fixedMath.js";
|
|
4
4
|
import { captureVec2 as a, fixedOwnData as o } from "./fixedVectors.js";
|
|
5
5
|
import { clipFixedBoxSlabs as s } from "./fixedSlabs.js";
|
|
6
|
-
|
|
6
|
+
// src/fixedCollision.ts
|
|
7
7
|
var c = i();
|
|
8
8
|
function l(t) {
|
|
9
9
|
throw new e({
|
|
@@ -56,5 +56,4 @@ var u = (e) => {
|
|
|
56
56
|
let r = u(e), i = u(n), o = a(t);
|
|
57
57
|
return s([r.min.x, r.min.y], [r.max.x, r.max.y], [o.x, o.y], [i.min.x, i.min.y], [i.max.x, i.max.y], !1);
|
|
58
58
|
};
|
|
59
|
-
//#endregion
|
|
60
59
|
export { m as aabbIntersectsFx, _ as circleAabbIntersectsFx, h as circleContainsFx, g as circlesIntersectFx, b as segmentsIntersectFx, x as sweepAabbFx };
|
package/dist/fixedCollision32.js
CHANGED
|
@@ -4,7 +4,7 @@ import { fixedOwnData as r } from "./fixedVectors.js";
|
|
|
4
4
|
import { addWide as i, compare as a, compareWide as o, magnitude as s, negative as c, product as l, subtract as u } from "./fixedWide.js";
|
|
5
5
|
import { createFixed32 as d } from "./fixed32.js";
|
|
6
6
|
import { captureVec2Fx32 as f } from "./fixedVectors32.js";
|
|
7
|
-
|
|
7
|
+
// src/fixedCollision32.ts
|
|
8
8
|
var p = d(), m = {
|
|
9
9
|
hi: 0,
|
|
10
10
|
lo: 0
|
|
@@ -105,5 +105,4 @@ var _ = (e) => e.hi === 0 && e.lo === 0, v = (e, t) => a(e, t) < 0 ? {
|
|
|
105
105
|
exit: P(u)
|
|
106
106
|
});
|
|
107
107
|
};
|
|
108
|
-
//#endregion
|
|
109
108
|
export { w as aabbIntersectsFx32, O as circleAabbIntersectsFx32, T as circleContainsFx32, E as circlesIntersectFx32, M as segmentsIntersectFx32, F as sweepAabbFx32 };
|
package/dist/fixedMath.js
CHANGED
|
@@ -2,7 +2,7 @@ import { RoomAuthoringError as e } from "./errors.js";
|
|
|
2
2
|
import { multiplyWords as t } from "./fixedWords.js";
|
|
3
3
|
import { fixedRawInteger as n } from "./fixedRaw.js";
|
|
4
4
|
import { atan2Fx as r, cosFx as i, sinFx as a } from "./fixedTrig.js";
|
|
5
|
-
|
|
5
|
+
// src/fixedMath.ts
|
|
6
6
|
function o(t) {
|
|
7
7
|
throw new e({
|
|
8
8
|
room: "fixed",
|
|
@@ -52,5 +52,4 @@ var s = (e, n) => {
|
|
|
52
52
|
lerp: (e, t, r) => (n(e), n(t), n(r), r < 0 || r > 65536 ? o("Fixed interpolation fraction must lie in [0, 1]") : c(e + s(t - e, r)))
|
|
53
53
|
});
|
|
54
54
|
};
|
|
55
|
-
//#endregion
|
|
56
55
|
export { c as createFixed };
|
package/dist/fixedRaw.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RoomAuthoringError as e } from "./errors.js";
|
|
2
|
-
|
|
2
|
+
// src/fixedRaw.ts
|
|
3
3
|
var t = (t) => {
|
|
4
4
|
if (!Number.isInteger(t) || t < -2147483648 || t > 2147483647) throw new e({
|
|
5
5
|
room: "fixed",
|
|
@@ -7,5 +7,4 @@ var t = (t) => {
|
|
|
7
7
|
});
|
|
8
8
|
return t === 0 ? 0 : t;
|
|
9
9
|
};
|
|
10
|
-
//#endregion
|
|
11
10
|
export { t as fixedRawInteger };
|
package/dist/fixedSlabs.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { signedProductDifferenceSign as e } from "./fixedWords.js";
|
|
2
|
-
|
|
2
|
+
// src/fixedSlabs.ts
|
|
3
3
|
var t = (t, n) => e(t.numerator, n.denominator, n.numerator, t.denominator), n = (e, n, r, i, a, o) => {
|
|
4
4
|
let s = {
|
|
5
5
|
numerator: 0,
|
|
@@ -30,5 +30,4 @@ var t = (t, n) => e(t.numerator, n.denominator, n.numerator, t.denominator), n =
|
|
|
30
30
|
exit: Object.freeze(c)
|
|
31
31
|
});
|
|
32
32
|
};
|
|
33
|
-
//#endregion
|
|
34
33
|
export { n as clipFixedBoxSlabs, t as compareFixedSlabFraction };
|
package/dist/fixedTrig.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { RoomAuthoringError as e } from "./errors.js";
|
|
2
2
|
import { signedProductDifferenceSign as t } from "./fixedWords.js";
|
|
3
3
|
import { fixedRawInteger as n } from "./fixedRaw.js";
|
|
4
|
-
|
|
4
|
+
// src/fixedTrig.ts
|
|
5
5
|
var r = Object.freeze([
|
|
6
6
|
0,
|
|
7
7
|
6424,
|
|
@@ -44,5 +44,4 @@ var r = Object.freeze([
|
|
|
44
44
|
}
|
|
45
45
|
return (o >= 0 ? s >= 0 ? u : 65536 - u : s >= 0 ? 32768 - u : 32768 + u) & 65535;
|
|
46
46
|
};
|
|
47
|
-
//#endregion
|
|
48
47
|
export { c as atan2Fx, s as cosFx, r as fixedQuarterSine, o as sinFx };
|