@abloatai/ablo 0.34.1 → 0.36.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/AGENTS.md +2 -1
- package/CHANGELOG.md +758 -5
- package/README.md +56 -502
- package/bin/ablo.cjs +39 -0
- package/dist/BaseSyncedStore.d.ts +176 -48
- package/dist/BaseSyncedStore.js +346 -214
- package/dist/Database.d.ts +17 -44
- package/dist/Database.js +96 -79
- package/dist/InstanceCache.d.ts +31 -6
- package/dist/InstanceCache.js +65 -30
- package/dist/LazyReferenceCollection.d.ts +3 -3
- package/dist/LazyReferenceCollection.js +4 -4
- package/dist/Model.d.ts +23 -13
- package/dist/Model.js +27 -17
- package/dist/ModelRegistry.d.ts +8 -4
- package/dist/ModelRegistry.js +20 -18
- package/dist/NetworkMonitor.d.ts +3 -1
- package/dist/NetworkMonitor.js +7 -5
- package/dist/{SyncEngineContext.d.ts → RuntimeContext.d.ts} +20 -13
- package/dist/{SyncEngineContext.js → RuntimeContext.js} +11 -12
- package/dist/SyncClient.d.ts +47 -47
- package/dist/SyncClient.js +215 -156
- package/dist/ai-sdk/coordinatedTool.d.ts +2 -2
- package/dist/ai-sdk/coordinatedTool.js +1 -1
- package/dist/ai-sdk/coordinationContext.d.ts +2 -2
- package/dist/ai-sdk/coordinationContext.js +1 -1
- package/dist/ai-sdk/wrap.d.ts +3 -3
- package/dist/ai-sdk/wrap.js +2 -2
- package/dist/auth/index.d.ts +1 -156
- package/dist/auth/index.js +8 -301
- package/dist/client/Ablo.d.ts +42 -287
- package/dist/client/Ablo.js +129 -963
- package/dist/client/abloClient.d.ts +309 -0
- package/dist/client/abloClient.js +13 -0
- package/dist/client/clientPrelude.d.ts +52 -0
- package/dist/client/clientPrelude.js +60 -0
- package/dist/client/consoleLogger.d.ts +2 -2
- package/dist/client/coreClient.d.ts +60 -0
- package/dist/client/coreClient.js +118 -0
- package/dist/client/createInternalComponents.d.ts +8 -4
- package/dist/client/createInternalComponents.js +17 -10
- package/dist/client/createModelProxy.d.ts +98 -373
- package/dist/client/createModelProxy.js +233 -139
- package/dist/client/humans.d.ts +69 -0
- package/dist/client/humans.js +78 -0
- package/dist/client/modelRegistration.d.ts +1 -1
- package/dist/client/modelRegistration.js +9 -9
- package/dist/client/options.d.ts +73 -17
- package/dist/client/reactiveEngine.d.ts +53 -0
- package/dist/client/reactiveEngine.js +688 -0
- package/dist/client/resourceTypes.d.ts +9 -250
- package/dist/client/resourceTypes.js +8 -5
- package/dist/client/schemaConfig.d.ts +4 -4
- package/dist/client/schemaConfig.js +6 -2
- package/dist/client/storeCluster.d.ts +47 -0
- package/dist/client/storeCluster.js +118 -0
- package/dist/client/storeLifecycle.d.ts +61 -0
- package/dist/client/storeLifecycle.js +231 -0
- package/dist/client/validateAbloOptions.d.ts +3 -2
- package/dist/client/validateAbloOptions.js +1 -1
- package/dist/client/wsMutationExecutor.d.ts +3 -3
- package/dist/client/wsMutationExecutor.js +3 -3
- package/dist/context.d.ts +22 -9
- package/dist/context.js +33 -9
- package/dist/coordination/ClaimLog.d.ts +26 -0
- package/dist/coordination/ClaimLog.js +32 -0
- package/dist/coordination/index.d.ts +1 -15
- package/dist/coordination/index.js +8 -31
- package/dist/core/index.d.ts +3 -3
- package/dist/core/index.js +2 -2
- package/dist/docs/catalog.d.ts +72 -0
- package/dist/docs/catalog.js +230 -0
- package/dist/docs/index.d.ts +10 -0
- package/dist/docs/index.js +10 -0
- package/dist/environment.d.ts +1 -40
- package/dist/environment.js +8 -37
- package/dist/index.d.ts +44 -36
- package/dist/index.js +30 -22
- package/dist/interfaces/index.d.ts +44 -134
- package/dist/keys/index.d.ts +1 -77
- package/dist/keys/index.js +8 -190
- package/dist/mutators/{RecordingTransaction.d.ts → RecordingMutation.d.ts} +4 -4
- package/dist/mutators/{RecordingTransaction.js → RecordingMutation.js} +2 -2
- package/dist/mutators/Transaction.d.ts +1 -1
- package/dist/mutators/Transaction.js +1 -1
- package/dist/mutators/UndoManager.d.ts +6 -6
- package/dist/mutators/UndoManager.js +5 -5
- package/dist/mutators/defineMutators.d.ts +3 -3
- package/dist/mutators/defineMutators.js +1 -1
- package/dist/mutators/inverseOp.js +2 -2
- package/dist/mutators/mutateActions.d.ts +3 -3
- package/dist/mutators/mutateActions.js +1 -1
- package/dist/mutators/readerActions.d.ts +1 -1
- package/dist/mutators/undoApply.d.ts +1 -1
- package/dist/mutators/undoApply.js +1 -1
- package/dist/policy/index.d.ts +2 -2
- package/dist/policy/index.js +1 -1
- package/dist/query/client.d.ts +5 -2
- package/dist/query/client.js +10 -9
- package/dist/query/types.d.ts +6 -41
- package/dist/query/types.js +2 -2
- package/dist/react/AbloProvider.d.ts +18 -8
- package/dist/react/AbloProvider.js +10 -9
- package/dist/react/context.d.ts +3 -3
- package/dist/react/context.js +1 -1
- package/dist/react/createAbloReact.d.ts +56 -0
- package/dist/react/createAbloReact.js +51 -0
- package/dist/react/index.d.ts +6 -5
- package/dist/react/index.js +6 -3
- package/dist/react/internalContext.d.ts +1 -1
- package/dist/react/useAblo.d.ts +12 -5
- package/dist/react/useAblo.js +26 -8
- package/dist/react/useCurrentUserId.js +1 -1
- package/dist/react/useErrorListener.js +1 -1
- package/dist/react/useMutationFailureListener.d.ts +2 -2
- package/dist/react/useMutationFailureListener.js +1 -1
- package/dist/react/useMutators.d.ts +3 -3
- package/dist/react/useMutators.js +3 -3
- package/dist/react/useUndoScope.d.ts +5 -5
- package/dist/react/useUndoScope.js +1 -1
- package/dist/schema/coordination.d.ts +69 -10
- package/dist/schema/coordination.js +90 -9
- package/dist/schema/ddl.js +2 -2
- package/dist/schema/diff.d.ts +1 -1
- package/dist/schema/generate.js +1 -1
- package/dist/schema/index.d.ts +11 -10
- package/dist/schema/index.js +22 -18
- package/dist/schema/queries.d.ts +27 -27
- package/dist/schema/queries.js +23 -23
- package/dist/schema/select.d.ts +3 -3
- package/dist/schema/select.js +6 -3
- package/dist/schema/serialize.d.ts +15 -6
- package/dist/schema/serialize.js +20 -3
- package/dist/schema/sugar.d.ts +6 -7
- package/dist/schema/sugar.js +9 -12
- package/dist/schema/syncDeltaRow.d.ts +4 -152
- package/dist/schema/syncDeltaRow.js +4 -105
- package/dist/server/adapter.d.ts +18 -1
- package/dist/server/commit.d.ts +10 -16
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.js +1 -1
- package/dist/server/readConfig.d.ts +1 -1
- package/dist/source/adapter.d.ts +7 -5
- package/dist/source/adapter.js +7 -5
- package/dist/source/adapters/drizzle.d.ts +1 -1
- package/dist/source/adapters/drizzle.js +2 -2
- package/dist/source/adapters/kysely.d.ts +1 -1
- package/dist/source/adapters/kysely.js +1 -1
- package/dist/source/adapters/kyselyMutationCore.d.ts +1 -1
- package/dist/source/adapters/kyselyMutationCore.js +2 -2
- package/dist/source/adapters/memory.js +1 -1
- package/dist/source/adapters/prisma.d.ts +8 -3
- package/dist/source/adapters/prisma.js +1 -1
- package/dist/source/connector.js +1 -1
- package/dist/source/connectorProtocol.d.ts +2 -8
- package/dist/source/connectorProtocol.js +3 -2
- package/dist/source/contract.d.ts +29 -17
- package/dist/source/contract.js +27 -22
- package/dist/source/factory.d.ts +1 -1
- package/dist/source/idempotency.js +2 -2
- package/dist/source/index.d.ts +1 -0
- package/dist/source/index.js +3 -0
- package/dist/source/next.d.ts +1 -1
- package/dist/source/signing.d.ts +9 -2
- package/dist/source/signing.js +4 -1
- package/dist/source/types.d.ts +6 -4
- package/dist/source/types.js +1 -1
- package/dist/{core/storeContract.d.ts → storeContract.d.ts} +6 -6
- package/dist/{core → stores}/DatabaseManager.d.ts +3 -1
- package/dist/{core → stores}/DatabaseManager.js +14 -13
- package/dist/stores/ObjectStore.d.ts +1 -1
- package/dist/{core → stores}/StoreManager.d.ts +9 -26
- package/dist/{core → stores}/StoreManager.js +29 -77
- package/dist/stores/SyncActionStore.d.ts +4 -2
- package/dist/stores/SyncActionStore.js +11 -17
- package/dist/stores/syncAction.d.ts +26 -0
- package/dist/stores/syncAction.js +16 -0
- package/dist/surface.d.ts +3 -3
- package/dist/surface.js +6 -4
- package/dist/sync/BootstrapFetcher.d.ts +127 -6
- package/dist/sync/BootstrapFetcher.js +511 -83
- package/dist/sync/ConnectionManager.d.ts +6 -198
- package/dist/sync/ConnectionManager.js +6 -677
- package/dist/sync/OnDemandLoader.d.ts +5 -2
- package/dist/sync/OnDemandLoader.js +61 -21
- package/dist/sync/SubscriptionManager.d.ts +13 -2
- package/dist/sync/SubscriptionManager.js +23 -5
- package/dist/sync/SyncWebSocket.d.ts +27 -510
- package/dist/sync/SyncWebSocket.js +76 -954
- package/dist/sync/awaitClaimGrant.d.ts +4 -44
- package/dist/sync/awaitClaimGrant.js +4 -109
- package/dist/sync/bootstrapApply.d.ts +3 -0
- package/dist/sync/bootstrapApply.js +2 -2
- package/dist/sync/commitFrames.d.ts +6 -40
- package/dist/sync/commitFrames.js +6 -97
- package/dist/sync/contextPorts.d.ts +18 -0
- package/dist/sync/contextPorts.js +31 -0
- package/dist/sync/createClaimStream.d.ts +5 -49
- package/dist/sync/createClaimStream.js +5 -469
- package/dist/sync/createPresenceStream.d.ts +26 -4
- package/dist/sync/createPresenceStream.js +28 -20
- package/dist/sync/createSnapshot.d.ts +2 -2
- package/dist/sync/createSnapshot.js +1 -1
- package/dist/sync/credentialLifecycle.d.ts +5 -173
- package/dist/sync/credentialLifecycle.js +5 -320
- package/dist/sync/deltaPipeline.d.ts +13 -12
- package/dist/sync/deltaPipeline.js +21 -4
- package/dist/sync/groupChange.d.ts +3 -0
- package/dist/sync/groupChange.js +16 -14
- package/dist/sync/participants.d.ts +24 -6
- package/dist/sync/participants.js +32 -23
- package/dist/sync/schemaDrift.d.ts +55 -0
- package/dist/sync/schemaDrift.js +53 -0
- package/dist/sync/schemas.d.ts +23 -33
- package/dist/sync/schemas.js +29 -20
- package/dist/sync/syncPlan.d.ts +3 -3
- package/dist/sync/wsFrameHandlers.d.ts +6 -114
- package/dist/sync/wsFrameHandlers.js +6 -392
- package/dist/syncLog/contract.d.ts +20 -0
- package/dist/syncLog/contract.js +19 -0
- package/dist/syncLog/index.d.ts +1 -0
- package/dist/syncLog/index.js +1 -0
- package/dist/transaction/ablo.d.ts +88 -0
- package/dist/transaction/ablo.js +33 -0
- package/dist/{client/auth.d.ts → transaction/auth/apiKey.d.ts} +43 -8
- package/dist/{client/auth.js → transaction/auth/apiKey.js} +19 -0
- package/dist/transaction/auth/bootstrapScope.d.ts +15 -0
- package/dist/transaction/auth/bootstrapScope.js +1 -0
- package/dist/transaction/auth/capability.d.ts +212 -0
- package/dist/transaction/auth/capability.js +224 -0
- package/dist/{auth → transaction/auth}/credentialSource.d.ts +8 -1
- package/dist/{client → transaction/auth}/identity.d.ts +8 -7
- package/dist/{client → transaction/auth}/identity.js +1 -1
- package/dist/transaction/auth/index.d.ts +162 -0
- package/dist/transaction/auth/index.js +304 -0
- package/dist/{auth → transaction/auth}/schemas.d.ts +1 -1
- package/dist/{auth → transaction/auth}/schemas.js +13 -13
- package/dist/{client → transaction/auth}/sessionMint.d.ts +8 -8
- package/dist/{client → transaction/auth}/sessionMint.js +4 -7
- package/dist/transaction/coordination/awaitClaimGrant.d.ts +56 -0
- package/dist/transaction/coordination/awaitClaimGrant.js +124 -0
- package/dist/{client → transaction/coordination}/claimHeartbeatLoop.d.ts +34 -0
- package/dist/{client → transaction/coordination}/claimHeartbeatLoop.js +20 -0
- package/dist/transaction/coordination/claimMeta.d.ts +49 -0
- package/dist/transaction/coordination/claimMeta.js +52 -0
- package/dist/transaction/coordination/createClaimStream.d.ts +64 -0
- package/dist/transaction/coordination/createClaimStream.js +475 -0
- package/dist/transaction/coordination/events.d.ts +74 -0
- package/dist/transaction/coordination/events.js +7 -0
- package/dist/transaction/coordination/index.d.ts +19 -0
- package/dist/transaction/coordination/index.js +45 -0
- package/dist/transaction/coordination/locator.d.ts +104 -0
- package/dist/transaction/coordination/locator.js +102 -0
- package/dist/transaction/coordination/schema.d.ts +1536 -0
- package/dist/transaction/coordination/schema.js +1177 -0
- package/dist/transaction/coordination/targetConflict.d.ts +2 -0
- package/dist/transaction/coordination/targetConflict.js +107 -0
- package/dist/{coordination → transaction/coordination}/trace.d.ts +7 -18
- package/dist/{coordination → transaction/coordination}/trace.js +18 -25
- package/dist/transaction/durableWrites.d.ts +62 -0
- package/dist/{client → transaction}/durableWrites.js +28 -3
- package/dist/transaction/environment.d.ts +105 -0
- package/dist/transaction/environment.js +108 -0
- package/dist/{errorCodes.d.ts → transaction/errorCodes.d.ts} +12 -12
- package/dist/{errorCodes.js → transaction/errorCodes.js} +45 -18
- package/dist/{errors.d.ts → transaction/errors.d.ts} +37 -13
- package/dist/{errors.js → transaction/errors.js} +85 -16
- package/dist/transaction/footprint.d.ts +111 -0
- package/dist/transaction/footprint.js +0 -0
- package/dist/transaction/index.d.ts +20 -0
- package/dist/transaction/index.js +20 -0
- package/dist/transaction/keys/index.d.ts +87 -0
- package/dist/transaction/keys/index.js +207 -0
- package/dist/transaction/log/syncDeltaRow.d.ts +158 -0
- package/dist/transaction/log/syncDeltaRow.js +95 -0
- package/dist/{sync/syncPosition.d.ts → transaction/logPosition.d.ts} +22 -8
- package/dist/{sync/syncPosition.js → transaction/logPosition.js} +15 -6
- package/dist/transaction/logger.d.ts +16 -0
- package/dist/transaction/logger.js +7 -0
- package/dist/transaction/observability.d.ts +53 -0
- package/dist/transaction/observability.js +19 -0
- package/dist/transaction/plugin.d.ts +285 -0
- package/dist/transaction/plugin.js +106 -0
- package/dist/{policy → transaction/policy}/types.d.ts +3 -3
- package/dist/{policy → transaction/policy}/types.js +2 -0
- package/dist/transaction/resources/httpResources.d.ts +321 -0
- package/dist/transaction/resources/httpResources.js +7 -0
- package/dist/transaction/resources/modelOperations.d.ts +427 -0
- package/dist/transaction/resources/modelOperations.js +12 -0
- package/dist/transaction/resources/mutationOptions.d.ts +66 -0
- package/dist/transaction/resources/mutationOptions.js +9 -0
- package/dist/transaction/resources/where.d.ts +101 -0
- package/dist/transaction/resources/where.js +115 -0
- package/dist/{client → transaction/resources}/writeOptionsSchema.d.ts +2 -6
- package/dist/{client → transaction/resources}/writeOptionsSchema.js +9 -5
- package/dist/{schema → transaction/schema}/field.d.ts +17 -23
- package/dist/{schema → transaction/schema}/field.js +5 -5
- package/dist/transaction/schema/fieldRef.d.ts +38 -0
- package/dist/transaction/schema/fieldRef.js +11 -0
- package/dist/transaction/schema/loadStrategy.d.ts +45 -0
- package/dist/transaction/schema/loadStrategy.js +46 -0
- package/dist/{schema → transaction/schema}/model.d.ts +50 -35
- package/dist/{schema → transaction/schema}/model.js +30 -20
- package/dist/transaction/schema/openapi.d.ts +58 -0
- package/dist/transaction/schema/openapi.js +501 -0
- package/dist/{schema → transaction/schema}/relation.d.ts +21 -16
- package/dist/{schema → transaction/schema}/relation.js +7 -7
- package/dist/{schema → transaction/schema}/residency.d.ts +0 -9
- package/dist/{schema → transaction/schema}/residency.js +0 -5
- package/dist/{schema → transaction/schema}/roles.d.ts +5 -5
- package/dist/{schema → transaction/schema}/roles.js +5 -5
- package/dist/{schema → transaction/schema}/schema.d.ts +39 -10
- package/dist/{schema → transaction/schema}/schema.js +24 -3
- package/dist/{schema → transaction/schema}/tenancy.d.ts +1 -1
- package/dist/{schema → transaction/schema}/tenancy.js +7 -4
- package/dist/transaction/transactionLayer.d.ts +82 -0
- package/dist/transaction/transactionLayer.js +24 -0
- package/dist/{transactions → transaction/transactions/settlement}/commitEnvelope.d.ts +5 -6
- package/dist/{transactions → transaction/transactions/settlement}/commitEnvelope.js +9 -13
- package/dist/{transactions → transaction/transactions/settlement}/httpCommitEnvelope.d.ts +9 -2
- package/dist/{transactions → transaction/transactions/settlement}/httpCommitEnvelope.js +5 -9
- package/dist/{transactions/durableWriteStore.d.ts → transaction/transactions/settlement/pendingWrite.d.ts} +11 -37
- package/dist/transaction/transactions/settlement/pendingWrite.js +20 -0
- package/dist/transaction/transport/commitFrames.d.ts +90 -0
- package/dist/transaction/transport/commitFrames.js +134 -0
- package/dist/transaction/transport/connectionManager.d.ts +215 -0
- package/dist/transaction/transport/connectionManager.js +673 -0
- package/dist/transaction/transport/credentialLifecycle.d.ts +177 -0
- package/dist/transaction/transport/credentialLifecycle.js +324 -0
- package/dist/{sync → transaction/transport}/heartbeat.d.ts +3 -1
- package/dist/{sync → transaction/transport}/heartbeat.js +6 -4
- package/dist/transaction/transport/httpClient.d.ts +131 -0
- package/dist/{client → transaction/transport}/httpClient.js +6 -5
- package/dist/transaction/transport/httpOptions.d.ts +33 -0
- package/dist/transaction/transport/httpOptions.js +12 -0
- package/dist/{client → transaction/transport}/httpTransport.js +295 -97
- package/dist/{sync/NetworkProbe.d.ts → transaction/transport/networkProbe.d.ts} +7 -4
- package/dist/{sync/NetworkProbe.js → transaction/transport/networkProbe.js} +14 -13
- package/dist/transaction/transport/wsFrameHandlers.d.ts +128 -0
- package/dist/transaction/transport/wsFrameHandlers.js +429 -0
- package/dist/transaction/transport/wsTransport.d.ts +574 -0
- package/dist/transaction/transport/wsTransport.js +1023 -0
- package/dist/transaction/types/assertExact.d.ts +17 -0
- package/dist/transaction/types/assertExact.js +1 -0
- package/dist/{types → transaction/types}/global.d.ts +17 -2
- package/dist/{types → transaction/types}/global.js +2 -1
- package/dist/{types → transaction/types}/index.d.ts +14 -46
- package/dist/{types → transaction/types}/index.js +7 -16
- package/dist/{types → transaction/types}/streams.d.ts +73 -45
- package/dist/transaction/utils/duration.d.ts +50 -0
- package/dist/{utils → transaction/utils}/duration.js +32 -0
- package/dist/{utils → transaction/utils}/json.d.ts +18 -0
- package/dist/transaction/utils/json.js +276 -0
- package/dist/transaction/wire/accountResponses.d.ts +420 -0
- package/dist/transaction/wire/accountResponses.js +290 -0
- package/dist/transaction/wire/auth.d.ts +56 -0
- package/dist/transaction/wire/auth.js +63 -0
- package/dist/transaction/wire/claimEvent.d.ts +76 -0
- package/dist/transaction/wire/claimEvent.js +73 -0
- package/dist/transaction/wire/claims.d.ts +530 -0
- package/dist/transaction/wire/claims.js +327 -0
- package/dist/{wire → transaction/wire}/commit.d.ts +125 -193
- package/dist/{wire → transaction/wire}/commit.js +68 -47
- package/dist/{wire → transaction/wire}/delta.d.ts +66 -17
- package/dist/{wire → transaction/wire}/delta.js +37 -13
- package/dist/transaction/wire/errorEnvelope.d.ts +72 -0
- package/dist/{wire → transaction/wire}/errorEnvelope.js +36 -5
- package/dist/transaction/wire/feedCursor.d.ts +60 -0
- package/dist/transaction/wire/feedCursor.js +82 -0
- package/dist/transaction/wire/feedEvent.d.ts +204 -0
- package/dist/transaction/wire/feedEvent.js +65 -0
- package/dist/transaction/wire/frames.d.ts +194 -0
- package/dist/transaction/wire/frames.js +50 -0
- package/dist/transaction/wire/inboundFrames.d.ts +562 -0
- package/dist/transaction/wire/inboundFrames.js +116 -0
- package/dist/transaction/wire/index.d.ts +54 -0
- package/dist/transaction/wire/index.js +83 -0
- package/dist/{wire → transaction/wire}/listEnvelope.d.ts +13 -14
- package/dist/transaction/wire/listEnvelope.js +42 -0
- package/dist/transaction/wire/modelMutations.d.ts +31 -0
- package/dist/transaction/wire/modelMutations.js +52 -0
- package/dist/transaction/wire/modelResponses.d.ts +85 -0
- package/dist/transaction/wire/modelResponses.js +43 -0
- package/dist/transaction/wire/modelShape.d.ts +78 -0
- package/dist/transaction/wire/modelShape.js +74 -0
- package/dist/transactions/{TransactionQueue.d.ts → mutations/MutationQueue.d.ts} +85 -38
- package/dist/transactions/{TransactionQueue.js → mutations/MutationQueue.js} +141 -80
- package/dist/transactions/{TransactionStore.d.ts → mutations/MutationStore.d.ts} +8 -8
- package/dist/transactions/{TransactionStore.js → mutations/MutationStore.js} +2 -2
- package/dist/transactions/{coalesceRules.d.ts → mutations/coalesceRules.d.ts} +10 -10
- package/dist/transactions/{coalesceRules.js → mutations/coalesceRules.js} +1 -1
- package/dist/transactions/mutations/commitLatency.d.ts +52 -0
- package/dist/transactions/mutations/commitLatency.js +130 -0
- package/dist/transactions/{commitOutboxStore.d.ts → mutations/commitOutboxStore.d.ts} +1 -5
- package/dist/transactions/{commitOutboxStore.js → mutations/commitOutboxStore.js} +1 -1
- package/dist/transactions/{commitPayload.d.ts → mutations/commitPayload.d.ts} +18 -16
- package/dist/transactions/{commitPayload.js → mutations/commitPayload.js} +15 -15
- package/dist/transactions/{deltaConfirmation.d.ts → mutations/deltaConfirmation.d.ts} +15 -11
- package/dist/transactions/{deltaConfirmation.js → mutations/deltaConfirmation.js} +14 -12
- package/dist/transactions/mutations/durableWriteStore.d.ts +14 -0
- package/dist/transactions/mutations/durableWriteStore.js +12 -0
- package/dist/transactions/{optimisticApply.d.ts → mutations/optimisticApply.d.ts} +7 -7
- package/dist/transactions/{replayValidation.d.ts → mutations/replayValidation.d.ts} +4 -3
- package/dist/transactions/{replayValidation.js → mutations/replayValidation.js} +7 -5
- package/dist/utils/mobxSetup.d.ts +1 -1
- package/dist/utils/mobxSetup.js +5 -2
- package/dist/{core → views}/QueryView.d.ts +2 -2
- package/dist/{core → views}/QueryView.js +2 -2
- package/dist/{core → views}/ViewRegistry.d.ts +1 -1
- package/dist/{core/queryUtils.d.ts → views/incrementalView.d.ts} +6 -6
- package/dist/{core/queryUtils.js → views/incrementalView.js} +6 -6
- package/dist/webhooks/events.d.ts +2 -2
- package/dist/wire/index.d.ts +1 -34
- package/dist/wire/index.js +8 -49
- package/docs/agent-messaging.md +3 -3
- package/docs/agents.md +20 -13
- package/docs/api-keys.md +14 -10
- package/docs/api.md +27 -61
- package/docs/audit.md +6 -3
- package/docs/cli.md +41 -13
- package/docs/client-behavior.md +11 -9
- package/docs/concurrency-convention.md +49 -57
- package/docs/coordination.md +283 -121
- package/docs/data-sources.md +7 -5
- package/docs/debugging.md +39 -15
- package/docs/deployment.md +267 -0
- package/docs/examples/agent-human.md +49 -42
- package/docs/examples/ai-sdk-tool.md +69 -44
- package/docs/examples/existing-python-backend.md +8 -6
- package/docs/examples/nextjs.md +129 -47
- package/docs/examples/scoped-agent.md +46 -45
- package/docs/examples/server-agent.md +46 -26
- package/docs/groups.md +87 -30
- package/docs/guarantees.md +41 -12
- package/docs/how-it-works.md +38 -12
- package/docs/idempotency.md +126 -0
- package/docs/identity.md +77 -74
- package/docs/index.md +172 -86
- package/docs/integration-guide.md +31 -19
- package/docs/mcp.md +46 -21
- package/docs/migration.md +95 -18
- package/docs/operating-on-your-database.md +3 -1
- package/docs/projects.md +3 -1
- package/docs/quickstart.md +22 -5
- package/docs/react.md +31 -18
- package/docs/schema-contract.md +5 -3
- package/docs/session-settings.md +108 -0
- package/docs/sessions.md +4 -2
- package/docs/webhooks.md +12 -10
- package/llms.txt +48 -18
- package/package.json +21 -26
- package/dist/agent/Agent.d.ts +0 -366
- package/dist/agent/Agent.js +0 -514
- package/dist/agent/index.d.ts +0 -115
- package/dist/agent/index.js +0 -128
- package/dist/agent/session.d.ts +0 -93
- package/dist/agent/session.js +0 -149
- package/dist/agent/types.d.ts +0 -68
- package/dist/agent/types.js +0 -9
- package/dist/cli.cjs +0 -286329
- package/dist/client/durableWrites.d.ts +0 -21
- package/dist/client/httpClient.d.ts +0 -80
- package/dist/coordination/schema.d.ts +0 -722
- package/dist/coordination/schema.js +0 -578
- package/dist/schema/openapi.d.ts +0 -29
- package/dist/schema/openapi.js +0 -124
- package/dist/testing/fixtures/bootstrap.d.ts +0 -49
- package/dist/testing/fixtures/bootstrap.js +0 -59
- package/dist/testing/fixtures/deltas.d.ts +0 -83
- package/dist/testing/fixtures/deltas.js +0 -136
- package/dist/testing/fixtures/models.d.ts +0 -83
- package/dist/testing/fixtures/models.js +0 -272
- package/dist/testing/helpers/reactWrapper.d.ts +0 -69
- package/dist/testing/helpers/reactWrapper.js +0 -67
- package/dist/testing/helpers/syncEngineHarness.d.ts +0 -54
- package/dist/testing/helpers/syncEngineHarness.js +0 -73
- package/dist/testing/helpers/wait.d.ts +0 -30
- package/dist/testing/helpers/wait.js +0 -49
- package/dist/testing/index.d.ts +0 -23
- package/dist/testing/index.js +0 -33
- package/dist/testing/mocks/FakeDatabase.d.ts +0 -18
- package/dist/testing/mocks/FakeDatabase.js +0 -10
- package/dist/testing/mocks/MockMutationExecutor.d.ts +0 -87
- package/dist/testing/mocks/MockMutationExecutor.js +0 -192
- package/dist/testing/mocks/MockNetworkMonitor.d.ts +0 -20
- package/dist/testing/mocks/MockNetworkMonitor.js +0 -46
- package/dist/testing/mocks/MockSyncContext.d.ts +0 -51
- package/dist/testing/mocks/MockSyncContext.js +0 -71
- package/dist/testing/mocks/MockSyncStore.d.ts +0 -88
- package/dist/testing/mocks/MockSyncStore.js +0 -171
- package/dist/testing/mocks/MockWebSocket.d.ts +0 -71
- package/dist/testing/mocks/MockWebSocket.js +0 -118
- package/dist/transactions/durableWriteStore.js +0 -30
- package/dist/utils/duration.d.ts +0 -25
- package/dist/utils/json.js +0 -88
- package/dist/wire/errorEnvelope.d.ts +0 -55
- package/dist/wire/frames.d.ts +0 -197
- package/dist/wire/frames.js +0 -49
- package/dist/wire/listEnvelope.js +0 -18
- package/docs/interaction-model.md +0 -97
- /package/dist/{core → query}/QueryProcessor.d.ts +0 -0
- /package/dist/{core → query}/QueryProcessor.js +0 -0
- /package/dist/{core/storeContract.js → storeContract.js} +0 -0
- /package/dist/{core → stores}/openIDBWithTimeout.d.ts +0 -0
- /package/dist/{core → stores}/openIDBWithTimeout.js +0 -0
- /package/dist/{client → transaction/auth}/credentialEndpoint.d.ts +0 -0
- /package/dist/{client → transaction/auth}/credentialEndpoint.js +0 -0
- /package/dist/{auth → transaction/auth}/credentialPolicy.d.ts +0 -0
- /package/dist/{auth → transaction/auth}/credentialPolicy.js +0 -0
- /package/dist/{auth → transaction/auth}/credentialSource.js +0 -0
- /package/dist/{client → transaction/auth}/hostedEndpoints.d.ts +0 -0
- /package/dist/{client → transaction/auth}/hostedEndpoints.js +0 -0
- /package/dist/{client → transaction}/persistence.d.ts +0 -0
- /package/dist/{client → transaction}/persistence.js +0 -0
- /package/dist/{client → transaction/resources}/functionalUpdate.d.ts +0 -0
- /package/dist/{client → transaction/resources}/functionalUpdate.js +0 -0
- /package/dist/{transactions → transaction/transactions/settlement}/idempotencyKey.d.ts +0 -0
- /package/dist/{transactions → transaction/transactions/settlement}/idempotencyKey.js +0 -0
- /package/dist/{client → transaction/transport}/httpTransport.d.ts +0 -0
- /package/dist/{types → transaction/types}/modelData.d.ts +0 -0
- /package/dist/{types → transaction/types}/modelData.js +0 -0
- /package/dist/{types → transaction/types}/participant.d.ts +0 -0
- /package/dist/{types → transaction/types}/participant.js +0 -0
- /package/dist/{types → transaction/types}/streams.js +0 -0
- /package/dist/{utils → transaction/utils}/asyncIterator.d.ts +0 -0
- /package/dist/{utils → transaction/utils}/asyncIterator.js +0 -0
- /package/dist/{wire → transaction/wire}/bootstrapReason.d.ts +0 -0
- /package/dist/{wire → transaction/wire}/bootstrapReason.js +0 -0
- /package/dist/{wire → transaction/wire}/protocol.d.ts +0 -0
- /package/dist/{wire → transaction/wire}/protocol.js +0 -0
- /package/dist/{wire → transaction/wire}/protocolVersion.d.ts +0 -0
- /package/dist/{wire → transaction/wire}/protocolVersion.js +0 -0
- /package/dist/transactions/{UnconfirmedWrites.d.ts → mutations/UnconfirmedWrites.d.ts} +0 -0
- /package/dist/transactions/{UnconfirmedWrites.js → mutations/UnconfirmedWrites.js} +0 -0
- /package/dist/transactions/{optimisticApply.js → mutations/optimisticApply.js} +0 -0
- /package/dist/{core → views}/ViewRegistry.js +0 -0
|
@@ -23,11 +23,12 @@
|
|
|
23
23
|
*/
|
|
24
24
|
import { z } from 'zod';
|
|
25
25
|
import { type AuthTokenGetter } from '../auth/credentialSource.js';
|
|
26
|
+
import { type Logger } from '../logger.js';
|
|
26
27
|
/**
|
|
27
28
|
* The complete set of probe outcomes. Each value carries both reachability and
|
|
28
|
-
* credential state, so
|
|
29
|
+
* credential state, so the connection state machine can branch on one exhaustive
|
|
29
30
|
* discriminant instead of piecing the situation together from several booleans.
|
|
30
|
-
* It mirrors the
|
|
31
|
+
* It mirrors the `RecoveryClass` taxonomy at the connectivity layer.
|
|
31
32
|
*/
|
|
32
33
|
export declare const PROBE_OUTCOMES: readonly ["reachable", "unreachable", "session_expired", "credential_stale", "auth_blocked"];
|
|
33
34
|
/** Zod enum derived from {@link PROBE_OUTCOMES}. */
|
|
@@ -69,11 +70,13 @@ export interface NetworkProbeOptions {
|
|
|
69
70
|
getAuthToken?: AuthTokenGetter;
|
|
70
71
|
/** Compatibility fallback for callers with a copied token string. */
|
|
71
72
|
authToken?: string | null;
|
|
73
|
+
/** Where probe outcomes are logged. Defaults to silent. */
|
|
74
|
+
logger?: Logger;
|
|
72
75
|
}
|
|
73
76
|
/**
|
|
74
77
|
* Probes the sync server with a lightweight HEAD request, returning both
|
|
75
|
-
* reachability and session status in a single call so
|
|
76
|
-
* can pick the right
|
|
78
|
+
* reachability and session status in a single call so the connection state
|
|
79
|
+
* machine can pick the right transition without guessing.
|
|
77
80
|
*
|
|
78
81
|
* @param input The sync-server base URL (an HTTP or WS scheme is accepted), or
|
|
79
82
|
* an options bag. A bare string is also accepted.
|
|
@@ -22,15 +22,15 @@
|
|
|
22
22
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/Navigator/onLine
|
|
23
23
|
*/
|
|
24
24
|
import { z } from 'zod';
|
|
25
|
-
import { getContext } from '../context.js';
|
|
26
25
|
import { classifyRecovery } from '../errors.js';
|
|
27
26
|
import { withAuthHeaders } from '../auth/credentialSource.js';
|
|
28
|
-
import { ABLO_DEFAULT_BASE_URL } from '../
|
|
27
|
+
import { ABLO_DEFAULT_BASE_URL } from '../auth/hostedEndpoints.js';
|
|
28
|
+
import { noopLogger } from '../logger.js';
|
|
29
29
|
/**
|
|
30
30
|
* The complete set of probe outcomes. Each value carries both reachability and
|
|
31
|
-
* credential state, so
|
|
31
|
+
* credential state, so the connection state machine can branch on one exhaustive
|
|
32
32
|
* discriminant instead of piecing the situation together from several booleans.
|
|
33
|
-
* It mirrors the
|
|
33
|
+
* It mirrors the `RecoveryClass` taxonomy at the connectivity layer.
|
|
34
34
|
*/
|
|
35
35
|
export const PROBE_OUTCOMES = [
|
|
36
36
|
/** Server reachable and the access credential is currently valid. */
|
|
@@ -72,8 +72,8 @@ function resolveProbeUrl(baseUrl) {
|
|
|
72
72
|
}
|
|
73
73
|
/**
|
|
74
74
|
* Probes the sync server with a lightweight HEAD request, returning both
|
|
75
|
-
* reachability and session status in a single call so
|
|
76
|
-
* can pick the right
|
|
75
|
+
* reachability and session status in a single call so the connection state
|
|
76
|
+
* machine can pick the right transition without guessing.
|
|
77
77
|
*
|
|
78
78
|
* @param input The sync-server base URL (an HTTP or WS scheme is accepted), or
|
|
79
79
|
* an options bag. A bare string is also accepted.
|
|
@@ -82,6 +82,7 @@ export async function probeNetwork(input) {
|
|
|
82
82
|
const baseUrl = typeof input === 'string' ? input : input?.baseUrl;
|
|
83
83
|
const getAuthToken = typeof input === 'string' ? undefined : input?.getAuthToken;
|
|
84
84
|
const authToken = typeof input === 'string' ? undefined : input?.authToken;
|
|
85
|
+
const logger = (typeof input === 'string' ? undefined : input?.logger) ?? noopLogger;
|
|
85
86
|
const url = resolveProbeUrl(baseUrl);
|
|
86
87
|
// Fast-fail: if navigator.onLine is false, skip the probe entirely. This is
|
|
87
88
|
// the one case where navigator.onLine is reliable (MDN: "false means
|
|
@@ -115,14 +116,14 @@ export async function probeNetwork(input) {
|
|
|
115
116
|
const recovery = classifyRecovery(authFailure);
|
|
116
117
|
switch (recovery) {
|
|
117
118
|
case 'session_expiry':
|
|
118
|
-
|
|
119
|
+
logger.info('[NetworkProbe] Server reachable, login expired', {
|
|
119
120
|
status: response.status,
|
|
120
121
|
code: authFailure,
|
|
121
122
|
latencyMs,
|
|
122
123
|
});
|
|
123
124
|
return { outcome: 'session_expired', latencyMs };
|
|
124
125
|
case 'access_credential_expiry':
|
|
125
|
-
|
|
126
|
+
logger.info('[NetworkProbe] Server reachable, access key stale — will re-mint', {
|
|
126
127
|
status: response.status,
|
|
127
128
|
code: authFailure,
|
|
128
129
|
latencyMs,
|
|
@@ -136,7 +137,7 @@ export async function probeNetwork(input) {
|
|
|
136
137
|
// Re-authenticating re-mints the same rejected credential and
|
|
137
138
|
// retrying will not help, so stop rather than reconnect-loop or sign
|
|
138
139
|
// the user out.
|
|
139
|
-
|
|
140
|
+
logger.debug('[NetworkProbe] Reachable but auth-blocked (non-retryable, non-expiry)', {
|
|
140
141
|
status: response.status,
|
|
141
142
|
code: authFailure,
|
|
142
143
|
recovery,
|
|
@@ -168,7 +169,7 @@ export async function probeNetwork(input) {
|
|
|
168
169
|
// counter falls through to `auth_blocked` (stop) — still never a spurious
|
|
169
170
|
// logout. The invariant holds: null is the only terminal path, never a
|
|
170
171
|
// bare 401.
|
|
171
|
-
|
|
172
|
+
logger.info('[NetworkProbe] Server reachable, bare 401 — re-mint (not sign-out)', {
|
|
172
173
|
latencyMs,
|
|
173
174
|
});
|
|
174
175
|
return { outcome: 'credential_stale', latencyMs };
|
|
@@ -178,14 +179,14 @@ export async function probeNetwork(input) {
|
|
|
178
179
|
// expected 204; log a warning so misconfigurations surface instead of
|
|
179
180
|
// silently passing.
|
|
180
181
|
if (response.status < 200 || response.status >= 300) {
|
|
181
|
-
|
|
182
|
+
logger.debug('[NetworkProbe] Unexpected probe response', {
|
|
182
183
|
status: response.status,
|
|
183
184
|
url,
|
|
184
185
|
latencyMs,
|
|
185
186
|
});
|
|
186
187
|
}
|
|
187
188
|
else {
|
|
188
|
-
|
|
189
|
+
logger.debug('[NetworkProbe] Server reachable, credential valid', {
|
|
189
190
|
status: response.status,
|
|
190
191
|
latencyMs,
|
|
191
192
|
});
|
|
@@ -195,7 +196,7 @@ export async function probeNetwork(input) {
|
|
|
195
196
|
catch (error) {
|
|
196
197
|
clearTimeout(timeout);
|
|
197
198
|
const isAbort = error instanceof DOMException && error.name === 'AbortError';
|
|
198
|
-
|
|
199
|
+
logger.info('[NetworkProbe] Probe failed', {
|
|
199
200
|
reason: isAbort ? 'timeout' : error.message,
|
|
200
201
|
});
|
|
201
202
|
return { outcome: 'unreachable', latencyMs: null };
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Routes each inbound frame from the sync WebSocket to the handler for its
|
|
3
|
+
* type. Handlers work against a minimal {@link WsSession} interface — only
|
|
4
|
+
* the members they actually touch, rather than the transport object itself,
|
|
5
|
+
* which keeps this module free of an import cycle. Reading a message off the
|
|
6
|
+
* socket, parsing its JSON, and tracking heartbeats all happen before this
|
|
7
|
+
* point; every parsed frame then passes through {@link dispatchWsFrame}.
|
|
8
|
+
*/
|
|
9
|
+
import { type WsInboundEnvelope } from '../wire/inboundFrames.js';
|
|
10
|
+
import { type CommitAck } from './commitFrames.js';
|
|
11
|
+
import type { Logger } from '../logger.js';
|
|
12
|
+
import type { SocketObservability } from '../observability.js';
|
|
13
|
+
/**
|
|
14
|
+
* In-flight `commit` request record, keyed by clientTxId in the session.
|
|
15
|
+
* Resolved when a matching `mutation_result` frame arrives from the
|
|
16
|
+
* server, or rejected on timeout / disconnect.
|
|
17
|
+
*/
|
|
18
|
+
export interface PendingCommit {
|
|
19
|
+
resolve: (value: CommitAck) => void;
|
|
20
|
+
reject: (err: Error) => void;
|
|
21
|
+
timeout: ReturnType<typeof setTimeout>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* In-flight `claim` request record, keyed by claimId. Resolved when the
|
|
25
|
+
* matching `claim_ack` arrives, or rejected on timeout/disconnect.
|
|
26
|
+
*/
|
|
27
|
+
export interface PendingClaim {
|
|
28
|
+
resolve: (value: {
|
|
29
|
+
syncGroups: string[];
|
|
30
|
+
ttlSeconds?: number;
|
|
31
|
+
}) => void;
|
|
32
|
+
reject: (err: Error) => void;
|
|
33
|
+
timeout: ReturnType<typeof setTimeout>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* An in-flight `update_subscription` request awaiting its
|
|
37
|
+
* `subscription_ack`. The wire carries no correlation id, so requests are
|
|
38
|
+
* matched to their acknowledgements in first-in, first-out order, the same
|
|
39
|
+
* order the server applies them.
|
|
40
|
+
*/
|
|
41
|
+
export interface PendingSubscription {
|
|
42
|
+
resolve: (value: {
|
|
43
|
+
syncGroups: string[];
|
|
44
|
+
}) => void;
|
|
45
|
+
reject: (err: Error) => void;
|
|
46
|
+
timeout: ReturnType<typeof setTimeout>;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* A parsed inbound wire frame — the envelope only, with its payload still
|
|
50
|
+
* untrusted. Inferred from {@link wsInboundEnvelopeSchema} rather than written
|
|
51
|
+
* out, so the type a handler sees and the check the socket runs are the same
|
|
52
|
+
* statement. The open key set is what carries the oldest delta form, which puts
|
|
53
|
+
* a delta's own fields (`actionType`, `modelName`) at the top level instead of
|
|
54
|
+
* under `payload`.
|
|
55
|
+
*/
|
|
56
|
+
export type WsInboundFrame = WsInboundEnvelope;
|
|
57
|
+
/** Narrow arbitrary wire data to a plain string-keyed record. */
|
|
58
|
+
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
59
|
+
/**
|
|
60
|
+
* Read the envelope off an inbound message, or `null` when it is not one —
|
|
61
|
+
* anything that is not an object, or whose `type` is not a string. The payload
|
|
62
|
+
* is not checked here; that belongs to the frame's own schema, applied at
|
|
63
|
+
* dispatch.
|
|
64
|
+
*/
|
|
65
|
+
export declare function readWsInboundFrame(value: unknown): WsInboundFrame | null;
|
|
66
|
+
/**
|
|
67
|
+
* The subset of the sync WebSocket that the frame handlers need. The
|
|
68
|
+
* transport builds a single object exposing these members over its own
|
|
69
|
+
* private state. Handlers read the fields live rather than capturing them,
|
|
70
|
+
* so resetting a field elsewhere — such as clearing pending subscriptions
|
|
71
|
+
* on close — never leaves a handler holding a stale value.
|
|
72
|
+
*/
|
|
73
|
+
export interface WsSession {
|
|
74
|
+
/** EventEmitter surface — handlers emit the typed transport events. */
|
|
75
|
+
emit(event: string, ...args: unknown[]): boolean;
|
|
76
|
+
/** Where the handlers log. The transport passes its own port. */
|
|
77
|
+
logger: Logger;
|
|
78
|
+
/** Where coordination outcomes and lifecycle breadcrumbs are reported. */
|
|
79
|
+
observability: SocketObservability;
|
|
80
|
+
/** In-flight commit acks keyed by clientTxId. */
|
|
81
|
+
pendingMutations: Map<string, PendingCommit>;
|
|
82
|
+
/** In-flight claim acks keyed by claimId. */
|
|
83
|
+
pendingClaims: Map<string, PendingClaim>;
|
|
84
|
+
/** Removes and returns the oldest in-flight `update_subscription` request. */
|
|
85
|
+
shiftPendingSubscription(): PendingSubscription | undefined;
|
|
86
|
+
/** Connection options subset the handlers write back (acked sync groups). */
|
|
87
|
+
options: {
|
|
88
|
+
syncGroups: string[];
|
|
89
|
+
};
|
|
90
|
+
/** Registered collaboration event keys (colon format). */
|
|
91
|
+
collaborationEventTypes: ReadonlySet<string>;
|
|
92
|
+
/**
|
|
93
|
+
* Processes one inbound delta. The argument is untrusted wire data; the
|
|
94
|
+
* transport validates it against the canonical delta schema and drops
|
|
95
|
+
* anything malformed, so handlers here never cast.
|
|
96
|
+
*/
|
|
97
|
+
handleDelta(delta: unknown): void;
|
|
98
|
+
handleSyncResponse(payload: unknown): void;
|
|
99
|
+
handleBootstrapResponse(payload: unknown): void;
|
|
100
|
+
handlePresenceUpdate(message: {
|
|
101
|
+
payload?: unknown;
|
|
102
|
+
[k: string]: unknown;
|
|
103
|
+
}): void;
|
|
104
|
+
}
|
|
105
|
+
export type WsFrameHandler = (session: WsSession, message: WsInboundFrame) => void;
|
|
106
|
+
/**
|
|
107
|
+
* Maps each frame type to its handler. Every named server frame this
|
|
108
|
+
* package understands is dispatched from this table; anything else falls
|
|
109
|
+
* through to the collaboration-event and unknown-type path in
|
|
110
|
+
* {@link dispatchWsFrame}.
|
|
111
|
+
*/
|
|
112
|
+
export declare const wsFrameHandlers: Record<string, WsFrameHandler>;
|
|
113
|
+
/**
|
|
114
|
+
* Routes one inbound frame to its handler, validating the payload first.
|
|
115
|
+
*
|
|
116
|
+
* A frame the protocol declares with a payload schema is parsed here, so its
|
|
117
|
+
* handler works on a proven shape. A frame the protocol does not declare is
|
|
118
|
+
* rejected: the server and this package ship together, so an unrecognised type
|
|
119
|
+
* means the two have drifted, and a change nobody validated should not reach a
|
|
120
|
+
* local store. The one exception is an application's own collaboration events,
|
|
121
|
+
* which the consumer registers at construction and the protocol knows nothing
|
|
122
|
+
* about.
|
|
123
|
+
*
|
|
124
|
+
* Throwing is the reporting channel. The transport's message loop catches and
|
|
125
|
+
* reports through `captureWebSocketError`, so a bad frame surfaces as a
|
|
126
|
+
* captured error and the connection survives.
|
|
127
|
+
*/
|
|
128
|
+
export declare function dispatchWsFrame(session: WsSession, message: WsInboundFrame): void;
|