@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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* MutationQueue manages the lifecycle of local writes on their way to the
|
|
3
3
|
* server: it applies each change optimistically, batches the writes made in one
|
|
4
4
|
* event-loop tick into a single commit, retries transient failures, and rolls
|
|
5
5
|
* back on permanent rejection.
|
|
@@ -12,18 +12,19 @@
|
|
|
12
12
|
* - A dependency-injected executor, so several queues can coexist.
|
|
13
13
|
*/
|
|
14
14
|
import { EventEmitter } from 'events';
|
|
15
|
-
import type { Database } from '
|
|
16
|
-
import { Model } from '
|
|
17
|
-
import {
|
|
18
|
-
import
|
|
19
|
-
import type {
|
|
20
|
-
import {
|
|
21
|
-
import { type
|
|
15
|
+
import type { Database } from '../../Database.js';
|
|
16
|
+
import { Model } from '../../Model.js';
|
|
17
|
+
import type { RuntimeContext } from '../../RuntimeContext.js';
|
|
18
|
+
import { LogPosition } from '../../transaction/logPosition.js';
|
|
19
|
+
import type { WriteOptions } from '../../interfaces/index.js';
|
|
20
|
+
import type { OnStaleMode, StaleNotification, ReadDependency, TrackDependency } from '../../transaction/coordination/schema.js';
|
|
21
|
+
import { type MutationInput, type QueuedMutation, type UserContext } from './commitPayload.js';
|
|
22
|
+
import { type DurableCommitEnvelope, type DurableCommitOperation, type CommitOutboxScope } from '../../transaction/transactions/settlement/commitEnvelope.js';
|
|
22
23
|
import type { DurableWriteStore } from './durableWriteStore.js';
|
|
23
|
-
export type {
|
|
24
|
+
export type { QueuedMutation, UserContext } from './commitPayload.js';
|
|
24
25
|
/**
|
|
25
26
|
* A pre-built, multi-operation commit submitted through
|
|
26
|
-
* `ablo.commits.create()`. Unlike the per-model {@link
|
|
27
|
+
* `ablo.commits.create()`. Unlike the per-model {@link QueuedMutation} (see
|
|
27
28
|
* `./commitPayload.js`), the caller supplies the operations and the whole
|
|
28
29
|
* envelope commits atomically: the queue does not coalesce it, reorder its
|
|
29
30
|
* operations for foreign keys, or apply it optimistically. It runs through the
|
|
@@ -40,16 +41,22 @@ interface CommitTransaction {
|
|
|
40
41
|
input?: Record<string, unknown>;
|
|
41
42
|
transactionId?: string;
|
|
42
43
|
readAt?: number | null;
|
|
43
|
-
onStale?:
|
|
44
|
+
onStale?: OnStaleMode | null;
|
|
44
45
|
}[];
|
|
45
|
-
|
|
46
|
-
/** Read dependencies for the whole batch, forwarded to the executor so the server can detect stale-context writes. */
|
|
46
|
+
/** The premise for the whole batch, forwarded to the executor so the server can detect stale-context writes. */
|
|
47
47
|
reads?: ReadDependency[] | null;
|
|
48
|
-
/** Durable
|
|
48
|
+
/** Durable premises (`track`) to register for the batch's participant, forwarded to the executor. */
|
|
49
49
|
track?: TrackDependency[] | null;
|
|
50
50
|
status: 'pending' | 'executing' | 'awaiting_delta' | 'completed' | 'failed';
|
|
51
51
|
createdAt: number;
|
|
52
52
|
attempts: number;
|
|
53
|
+
/**
|
|
54
|
+
* Transient failures that were NOT the transport being down. Waiting out a
|
|
55
|
+
* dropped connection is unbounded on purpose — that is what lets a commit
|
|
56
|
+
* survive a reconnect — so connection errors are deliberately not counted
|
|
57
|
+
* here, and only a server that keeps rejecting can exhaust the lane.
|
|
58
|
+
*/
|
|
59
|
+
transientAttempts?: number;
|
|
53
60
|
lastSyncId?: number;
|
|
54
61
|
/** Opaque customer-side batch ledger key returned by a queued receipt. */
|
|
55
62
|
correlationId?: string;
|
|
@@ -65,9 +72,11 @@ interface ConflictResolution {
|
|
|
65
72
|
strategy: 'last-write-wins' | 'merge' | 'reject' | 'custom';
|
|
66
73
|
resolver?: (local: MutationInput | undefined, remote: MutationInput) => MutationInput;
|
|
67
74
|
}
|
|
68
|
-
interface
|
|
69
|
-
/** Shared client position (see
|
|
70
|
-
position?:
|
|
75
|
+
interface MutationQueueConfig {
|
|
76
|
+
/** Shared client position (see logPosition.ts). One per client. */
|
|
77
|
+
position?: LogPosition;
|
|
78
|
+
/** The owning client's runtime. Defaults to the module-global bridge. */
|
|
79
|
+
runtime?: RuntimeContext;
|
|
71
80
|
maxBatchSize: number;
|
|
72
81
|
batchDelay: number;
|
|
73
82
|
maxRetries: number;
|
|
@@ -99,13 +108,26 @@ interface TransactionQueueConfig {
|
|
|
99
108
|
* forever if the connection died while a commit was in flight.
|
|
100
109
|
*/
|
|
101
110
|
commitOfflineGraceMs: number;
|
|
111
|
+
/**
|
|
112
|
+
* How long, in milliseconds, to wait for the transport to acknowledge a
|
|
113
|
+
* dispatched commit before treating the silence as a retryable no-receipt
|
|
114
|
+
* failure. A transport that never answers — a half-open socket, a dropped
|
|
115
|
+
* response frame — would otherwise hold the commit in flight forever, and
|
|
116
|
+
* with it the client's staged-batch lock: every later write in the session
|
|
117
|
+
* queues silently behind the unanswered one. The envelope's idempotency key
|
|
118
|
+
* is stable across retries, so a commit the server DID apply before the
|
|
119
|
+
* timeout is deduplicated on the retry rather than double-applied.
|
|
120
|
+
* Defaults to 30 seconds. Set `0` to disable the bound.
|
|
121
|
+
*/
|
|
122
|
+
commitDispatchTimeoutMs: number;
|
|
102
123
|
}
|
|
103
|
-
export declare class
|
|
124
|
+
export declare class MutationQueue extends EventEmitter {
|
|
104
125
|
private static readonly DURABLE_REPLAY_WINDOW_MS;
|
|
105
126
|
private store;
|
|
106
127
|
private lastPermanentErrorSig?;
|
|
107
128
|
private _mutationExecutor;
|
|
108
129
|
private get mutationExecutor();
|
|
130
|
+
private readonly runtime;
|
|
109
131
|
private executionQueue;
|
|
110
132
|
private isProcessing;
|
|
111
133
|
private processTimer?;
|
|
@@ -177,9 +199,9 @@ export declare class TransactionQueue extends EventEmitter {
|
|
|
177
199
|
* shared: the client injects one, and a standalone queue creates its own. The
|
|
178
200
|
* queue advances the `acked` cursor as commit responses arrive, the store
|
|
179
201
|
* advances `applied` and `persisted`, and snapshots and claims read
|
|
180
|
-
* `readFloor`. See `../
|
|
202
|
+
* `readFloor`. See `../logPosition.js` for the full contract.
|
|
181
203
|
*/
|
|
182
|
-
readonly position:
|
|
204
|
+
readonly position: LogPosition;
|
|
183
205
|
/** Applied-cursor alias, kept so the many internal read sites stay legible. */
|
|
184
206
|
private get lastSeenSyncId();
|
|
185
207
|
private noteAck;
|
|
@@ -213,6 +235,18 @@ export declare class TransactionQueue extends EventEmitter {
|
|
|
213
235
|
private persistDurableCommitAcceptance;
|
|
214
236
|
/** Parse an untrusted/custom executor receipt without making ambiguity fatal. */
|
|
215
237
|
private parseMutationCommitResult;
|
|
238
|
+
/**
|
|
239
|
+
* Dispatch a sealed envelope to the transport, bounded by
|
|
240
|
+
* `commitDispatchTimeoutMs`. Every executor call site routes through here:
|
|
241
|
+
* a transport that never answers must become a retryable no-receipt failure
|
|
242
|
+
* (the same class as a malformed receipt) instead of an eternally in-flight
|
|
243
|
+
* commit, because an unanswered commit holds the staged-batch lock and
|
|
244
|
+
* silently stalls every later write in the session. The abandoned commit's
|
|
245
|
+
* eventual result, if it ever arrives, is discarded; the retry re-sends the
|
|
246
|
+
* identical idempotency key, so the server deduplicates an already-applied
|
|
247
|
+
* write.
|
|
248
|
+
*/
|
|
249
|
+
private dispatchCommitBounded;
|
|
216
250
|
private clearReplicationLagState;
|
|
217
251
|
/**
|
|
218
252
|
* Bounds the public `wait: 'confirmed'` promise without changing the
|
|
@@ -237,11 +271,11 @@ export declare class TransactionQueue extends EventEmitter {
|
|
|
237
271
|
* Resolvers for per-transaction `confirmation` promises. Populated in
|
|
238
272
|
* `attachConfirmation` at staging time, consumed by the constructor-time
|
|
239
273
|
* listeners on `transaction:completed` / `transaction:failed`. Kept off
|
|
240
|
-
* the
|
|
274
|
+
* the QueuedMutation row so the store's iteration order stays plain-data
|
|
241
275
|
* and serialization-friendly.
|
|
242
276
|
*/
|
|
243
277
|
private confirmationResolvers;
|
|
244
|
-
constructor(config?: Partial<
|
|
278
|
+
constructor(config?: Partial<MutationQueueConfig>);
|
|
245
279
|
/**
|
|
246
280
|
* Returns the in-flight confirmation promise for a given model and id. When
|
|
247
281
|
* several transactions match, it returns the most recent one's promise; when
|
|
@@ -252,7 +286,7 @@ export declare class TransactionQueue extends EventEmitter {
|
|
|
252
286
|
* be rolled back — `pending`, `executing`, and `awaiting_delta` — and ignores
|
|
253
287
|
* `completed` (already settled) and `failed`/`rolled_back` (already
|
|
254
288
|
* rejected). This complements the `confirmation` promise carried on a known
|
|
255
|
-
* {@link
|
|
289
|
+
* {@link QueuedMutation}: use this method at call sites that hold a model
|
|
256
290
|
* returned by `ablo.<model>.create()` but never see the underlying
|
|
257
291
|
* transaction.
|
|
258
292
|
*/
|
|
@@ -297,7 +331,7 @@ export declare class TransactionQueue extends EventEmitter {
|
|
|
297
331
|
* through this instance's connection even when several client instances exist
|
|
298
332
|
* in the same process.
|
|
299
333
|
*/
|
|
300
|
-
setMutationExecutor(executor: import('
|
|
334
|
+
setMutationExecutor(executor: import('../../interfaces/index.js').MutationExecutor): void;
|
|
301
335
|
/**
|
|
302
336
|
* Stages a transaction for commit. Transactions staged within the same
|
|
303
337
|
* event-loop tick are committed together.
|
|
@@ -321,24 +355,24 @@ export declare class TransactionQueue extends EventEmitter {
|
|
|
321
355
|
flushOfflineQueue(): Promise<void>;
|
|
322
356
|
/**
|
|
323
357
|
* Records a create and applies it optimistically, then stages it for the next
|
|
324
|
-
* batched commit. Returns the {@link
|
|
358
|
+
* batched commit. Returns the {@link QueuedMutation}, whose `confirmation`
|
|
325
359
|
* promise settles once the server confirms the write.
|
|
326
360
|
*/
|
|
327
|
-
create(model: Model, context: UserContext, writeOptions?: WriteOptions, sourceMutationId?: string): Promise<
|
|
361
|
+
create(model: Model, context: UserContext, writeOptions?: WriteOptions, sourceMutationId?: string): Promise<QueuedMutation>;
|
|
328
362
|
/**
|
|
329
363
|
* Records an update and applies it optimistically, then stages it for the next
|
|
330
364
|
* batched commit. Rapid updates to the same entity coalesce into a single wire
|
|
331
365
|
* operation.
|
|
332
366
|
* @param precomputedChanges - Optional pre-captured changes, used instead of re-reading them from the model.
|
|
333
367
|
*/
|
|
334
|
-
update(model: Model, context: UserContext, precomputedChanges?: Record<string, unknown>, writeOptions?: WriteOptions, sourceMutationId?: string): Promise<
|
|
368
|
+
update(model: Model, context: UserContext, precomputedChanges?: Record<string, unknown>, writeOptions?: WriteOptions, sourceMutationId?: string): Promise<QueuedMutation>;
|
|
335
369
|
/**
|
|
336
370
|
* Records a delete and applies it optimistically. If the row's own create has
|
|
337
371
|
* not yet been sent, both are cancelled locally rather than sending a create
|
|
338
372
|
* followed by a delete; if the create is already in flight, the delete waits
|
|
339
373
|
* until it settles so the server never sees a delete before the create.
|
|
340
374
|
*/
|
|
341
|
-
delete(model: Model, context: UserContext, writeOptions?: WriteOptions, sourceMutationId?: string): Promise<
|
|
375
|
+
delete(model: Model, context: UserContext, writeOptions?: WriteOptions, sourceMutationId?: string): Promise<QueuedMutation>;
|
|
342
376
|
/**
|
|
343
377
|
* Uploads a single attachment, delegating to the mutation executor.
|
|
344
378
|
*/
|
|
@@ -362,12 +396,12 @@ export declare class TransactionQueue extends EventEmitter {
|
|
|
362
396
|
* Records an archive and applies it optimistically, then stages it for the
|
|
363
397
|
* next batched commit.
|
|
364
398
|
*/
|
|
365
|
-
archive(model: Model, context: UserContext, writeOptions?: WriteOptions, sourceMutationId?: string): Promise<
|
|
399
|
+
archive(model: Model, context: UserContext, writeOptions?: WriteOptions, sourceMutationId?: string): Promise<QueuedMutation>;
|
|
366
400
|
/**
|
|
367
401
|
* Records an unarchive and applies it optimistically, then stages it for the
|
|
368
402
|
* next batched commit.
|
|
369
403
|
*/
|
|
370
|
-
unarchive(model: Model, context: UserContext): Promise<
|
|
404
|
+
unarchive(model: Model, context: UserContext): Promise<QueuedMutation>;
|
|
371
405
|
/**
|
|
372
406
|
* Places a transaction on the execution queue, coalescing it into an existing
|
|
373
407
|
* same-entity update where possible so redundant writes collapse.
|
|
@@ -410,7 +444,6 @@ export declare class TransactionQueue extends EventEmitter {
|
|
|
410
444
|
* `mutation_log` still prevents a second logical write.
|
|
411
445
|
*/
|
|
412
446
|
enqueueCommit(clientTxId: string, operations: CommitTransaction['operations'], options?: {
|
|
413
|
-
causedByTaskId?: string | null;
|
|
414
447
|
reads?: ReadDependency[] | null;
|
|
415
448
|
track?: TrackDependency[] | null;
|
|
416
449
|
}): Promise<void>;
|
|
@@ -464,7 +497,7 @@ export declare class TransactionQueue extends EventEmitter {
|
|
|
464
497
|
* last-write-wins rolls the local change back, merge and reject re-enqueue it,
|
|
465
498
|
* and custom applies the caller's resolver.
|
|
466
499
|
*/
|
|
467
|
-
handleConflict(transaction:
|
|
500
|
+
handleConflict(transaction: QueuedMutation, serverData: MutationInput): Promise<void>;
|
|
468
501
|
/**
|
|
469
502
|
* Optimistic updates. The apply and rollback rules live in `./optimisticApply.js`;
|
|
470
503
|
* these methods bind them to the queue's own tracking map and event emitter.
|
|
@@ -497,14 +530,14 @@ export declare class TransactionQueue extends EventEmitter {
|
|
|
497
530
|
* optionally limited to one operation type, rolling back their optimistic
|
|
498
531
|
* state. Returns the cancelled transactions.
|
|
499
532
|
*/
|
|
500
|
-
cancelTransactionsForModel(modelId: string, transactionType?: string):
|
|
533
|
+
cancelTransactionsForModel(modelId: string, transactionType?: string): QueuedMutation[];
|
|
501
534
|
/**
|
|
502
535
|
* Cancels pending transactions for child rows that reference a deleted parent,
|
|
503
536
|
* used to cascade a parent deletion. The caller supplies the foreign-key
|
|
504
537
|
* relationship; this method performs the cancellation.
|
|
505
538
|
*
|
|
506
|
-
* @param childModelName - The child model type (for example '
|
|
507
|
-
* @param foreignKey - The foreign-key property name (for example '
|
|
539
|
+
* @param childModelName - The child model type (for example 'Block').
|
|
540
|
+
* @param foreignKey - The foreign-key property name (for example 'sectionId').
|
|
508
541
|
* @param parentId - The deleted parent's id.
|
|
509
542
|
* @returns The number of transactions cancelled.
|
|
510
543
|
*/
|
|
@@ -530,8 +563,10 @@ export declare class TransactionQueue extends EventEmitter {
|
|
|
530
563
|
totalTransactions: number;
|
|
531
564
|
batchIndex: number;
|
|
532
565
|
config: {
|
|
533
|
-
/** Shared client position (see
|
|
534
|
-
position?:
|
|
566
|
+
/** Shared client position (see logPosition.ts). One per client. */
|
|
567
|
+
position?: LogPosition;
|
|
568
|
+
/** The owning client's runtime. Defaults to the module-global bridge. */
|
|
569
|
+
runtime?: RuntimeContext;
|
|
535
570
|
maxBatchSize: number;
|
|
536
571
|
batchDelay: number;
|
|
537
572
|
maxRetries: number;
|
|
@@ -563,6 +598,18 @@ export declare class TransactionQueue extends EventEmitter {
|
|
|
563
598
|
* forever if the connection died while a commit was in flight.
|
|
564
599
|
*/
|
|
565
600
|
commitOfflineGraceMs: number;
|
|
601
|
+
/**
|
|
602
|
+
* How long, in milliseconds, to wait for the transport to acknowledge a
|
|
603
|
+
* dispatched commit before treating the silence as a retryable no-receipt
|
|
604
|
+
* failure. A transport that never answers — a half-open socket, a dropped
|
|
605
|
+
* response frame — would otherwise hold the commit in flight forever, and
|
|
606
|
+
* with it the client's staged-batch lock: every later write in the session
|
|
607
|
+
* queues silently behind the unanswered one. The envelope's idempotency key
|
|
608
|
+
* is stable across retries, so a commit the server DID apply before the
|
|
609
|
+
* timeout is deduplicated on the retry rather than double-applied.
|
|
610
|
+
* Defaults to 30 seconds. Set `0` to disable the bound.
|
|
611
|
+
*/
|
|
612
|
+
commitDispatchTimeoutMs: number;
|
|
566
613
|
};
|
|
567
614
|
};
|
|
568
615
|
/**
|
|
@@ -595,7 +642,7 @@ export declare class TransactionQueue extends EventEmitter {
|
|
|
595
642
|
}[];
|
|
596
643
|
};
|
|
597
644
|
/** Merges the given options into the queue's configuration. */
|
|
598
|
-
setConfig(config: Partial<
|
|
645
|
+
setConfig(config: Partial<MutationQueueConfig>): void;
|
|
599
646
|
/**
|
|
600
647
|
* Re-emits an incoming sync delta on the `sync:delta` event for the store to
|
|
601
648
|
* apply. Because rows use stable ids, no id reconciliation is needed here.
|