@abloatai/ablo 0.35.0 → 0.37.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 -2
- package/CHANGELOG.md +71 -1929
- package/NOTICE +2 -2
- package/README.md +23 -532
- package/assets/banner.png +0 -0
- package/dist/auth.d.ts +2 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +2 -0
- package/dist/auth.js.map +1 -0
- package/dist/client.d.ts +3 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +3 -0
- package/dist/client.js.map +1 -0
- package/dist/coordination.d.ts +2 -0
- package/dist/coordination.d.ts.map +1 -0
- package/dist/coordination.js +2 -0
- package/dist/coordination.js.map +1 -0
- package/dist/index.d.ts +3 -112
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -161
- package/dist/index.js.map +1 -0
- package/dist/react.d.ts +4 -0
- package/dist/react.d.ts.map +1 -0
- package/dist/react.js +3 -0
- package/dist/react.js.map +1 -0
- package/dist/schema.d.ts +2 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +2 -0
- package/dist/schema.js.map +1 -0
- package/dist/server.d.ts +2 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +2 -0
- package/dist/server.js.map +1 -0
- package/dist/source-conformance.d.ts +2 -0
- package/dist/source-conformance.d.ts.map +1 -0
- package/dist/source-conformance.js +2 -0
- package/dist/source-conformance.js.map +1 -0
- package/dist/source-drizzle.d.ts +2 -0
- package/dist/source-drizzle.d.ts.map +1 -0
- package/dist/source-drizzle.js +2 -0
- package/dist/source-drizzle.js.map +1 -0
- package/dist/source-kysely.d.ts +2 -0
- package/dist/source-kysely.d.ts.map +1 -0
- package/dist/source-kysely.js +2 -0
- package/dist/source-kysely.js.map +1 -0
- package/dist/source-next.d.ts +2 -0
- package/dist/source-next.d.ts.map +1 -0
- package/dist/source-next.js +2 -0
- package/dist/source-next.js.map +1 -0
- package/dist/source.d.ts +2 -0
- package/dist/source.d.ts.map +1 -0
- package/dist/source.js +2 -0
- package/dist/source.js.map +1 -0
- package/dist/wire.d.ts +2 -0
- package/dist/wire.d.ts.map +1 -0
- package/dist/wire.js +2 -0
- package/dist/wire.js.map +1 -0
- package/docs/agents.md +2 -2
- package/docs/api-keys.md +13 -12
- package/docs/api.md +15 -53
- package/docs/audit.md +4 -3
- package/docs/cli.md +11 -11
- package/docs/client-behavior.md +9 -9
- package/docs/concurrency-convention.md +28 -42
- package/docs/coordination.md +228 -86
- package/docs/data-sources.md +5 -5
- package/docs/debugging.md +34 -12
- package/docs/deployment.md +8 -8
- package/docs/examples/agent-human.md +4 -4
- package/docs/examples/ai-sdk-tool.md +1 -1
- package/docs/examples/existing-python-backend.md +15 -4
- package/docs/examples/nextjs.md +27 -6
- package/docs/examples/scoped-agent.md +3 -3
- package/docs/examples/server-agent.md +2 -2
- package/docs/groups.md +57 -3
- package/docs/guarantees.md +37 -10
- package/docs/how-it-works.md +32 -8
- package/docs/idempotency.md +6 -6
- package/docs/identity.md +24 -24
- package/docs/index.md +8 -8
- package/docs/integration-guide.md +38 -16
- package/docs/internal/README.md +18 -0
- package/docs/internal/agent-fleet-coordination-design.md +171 -0
- package/docs/internal/agent-orchestration.md +58 -0
- package/docs/internal/commit-identifiers.md +91 -0
- package/docs/internal/concurrency-open-decisions.md +37 -0
- package/docs/internal/data-source-reverse-channel.md +150 -0
- package/docs/internal/per-field-conflict-detection.md +165 -0
- package/docs/internal/postgres-replication.md +64 -0
- package/docs/internal/serializable-schema.md +119 -0
- package/docs/internal/structure.md +32 -0
- package/docs/mcp.md +9 -9
- package/docs/migration.md +37 -18
- package/docs/projects.md +1 -1
- package/docs/quickstart.md +2 -2
- package/docs/react.md +24 -13
- package/docs/schema-contract.md +3 -3
- package/docs/sessions.md +91 -37
- package/docs/webhooks.md +9 -9
- package/examples/README.md +2 -2
- package/examples/data-source/README.md +1 -1
- package/examples/data-source/ablo-driver.ts +1 -1
- package/examples/data-source/customer-server.ts +1 -1
- package/examples/data-source/run.ts +1 -1
- package/examples/data-source/schema.ts +1 -1
- package/examples/quickstart.ts +2 -2
- package/llms.txt +12 -12
- package/package.json +64 -174
- package/dist/BaseSyncedStore.d.ts +0 -823
- package/dist/BaseSyncedStore.js +0 -1955
- package/dist/Database.d.ts +0 -335
- package/dist/Database.js +0 -1500
- package/dist/InstanceCache.d.ts +0 -233
- package/dist/InstanceCache.js +0 -1164
- package/dist/LazyReferenceCollection.d.ts +0 -177
- package/dist/LazyReferenceCollection.js +0 -461
- package/dist/Model.d.ts +0 -444
- package/dist/Model.js +0 -909
- package/dist/ModelRegistry.d.ts +0 -221
- package/dist/ModelRegistry.js +0 -537
- package/dist/NetworkMonitor.d.ts +0 -26
- package/dist/NetworkMonitor.js +0 -77
- package/dist/RuntimeContext.d.ts +0 -52
- package/dist/RuntimeContext.js +0 -80
- package/dist/SyncClient.d.ts +0 -551
- package/dist/SyncClient.js +0 -2199
- package/dist/adapters/alwaysOnline.d.ts +0 -14
- package/dist/adapters/alwaysOnline.js +0 -17
- package/dist/adapters/inMemoryStorage.d.ts +0 -31
- package/dist/adapters/inMemoryStorage.js +0 -110
- package/dist/ai-sdk/coordinatedTool.d.ts +0 -120
- package/dist/ai-sdk/coordinatedTool.js +0 -134
- package/dist/ai-sdk/coordinationContext.d.ts +0 -46
- package/dist/ai-sdk/coordinationContext.js +0 -106
- package/dist/ai-sdk/index.d.ts +0 -121
- package/dist/ai-sdk/index.js +0 -121
- package/dist/ai-sdk/wrap.d.ts +0 -65
- package/dist/ai-sdk/wrap.js +0 -39
- package/dist/auth/index.d.ts +0 -1
- package/dist/auth/index.js +0 -8
- package/dist/batching/index.d.ts +0 -55
- package/dist/batching/index.js +0 -147
- package/dist/cli.cjs +0 -288600
- package/dist/client/Ablo.d.ts +0 -231
- package/dist/client/Ablo.js +0 -149
- package/dist/client/abloClient.d.ts +0 -309
- package/dist/client/abloClient.js +0 -13
- package/dist/client/clientPrelude.d.ts +0 -52
- package/dist/client/clientPrelude.js +0 -60
- package/dist/client/consoleLogger.d.ts +0 -35
- package/dist/client/consoleLogger.js +0 -44
- package/dist/client/coreClient.d.ts +0 -60
- package/dist/client/coreClient.js +0 -118
- package/dist/client/createInternalComponents.d.ts +0 -46
- package/dist/client/createInternalComponents.js +0 -92
- package/dist/client/createModelProxy.d.ts +0 -228
- package/dist/client/createModelProxy.js +0 -818
- package/dist/client/humans.d.ts +0 -48
- package/dist/client/humans.js +0 -52
- package/dist/client/modelRegistration.d.ts +0 -10
- package/dist/client/modelRegistration.js +0 -312
- package/dist/client/options.d.ts +0 -461
- package/dist/client/options.js +0 -7
- package/dist/client/reactiveEngine.d.ts +0 -48
- package/dist/client/reactiveEngine.js +0 -910
- package/dist/client/resourceTypes.d.ts +0 -12
- package/dist/client/resourceTypes.js +0 -10
- package/dist/client/schemaConfig.d.ts +0 -44
- package/dist/client/schemaConfig.js +0 -185
- package/dist/client/validateAbloOptions.d.ts +0 -42
- package/dist/client/validateAbloOptions.js +0 -43
- package/dist/client/wsMutationExecutor.d.ts +0 -27
- package/dist/client/wsMutationExecutor.js +0 -72
- package/dist/context.d.ts +0 -29
- package/dist/context.js +0 -58
- package/dist/coordination/ClaimLog.d.ts +0 -26
- package/dist/coordination/ClaimLog.js +0 -32
- package/dist/coordination/index.d.ts +0 -1
- package/dist/coordination/index.js +0 -8
- package/dist/core/DatabaseManager.d.ts +0 -105
- package/dist/core/DatabaseManager.js +0 -387
- package/dist/core/QueryProcessor.d.ts +0 -75
- package/dist/core/QueryProcessor.js +0 -255
- package/dist/core/QueryView.d.ts +0 -79
- package/dist/core/QueryView.js +0 -218
- package/dist/core/StoreManager.d.ts +0 -112
- package/dist/core/StoreManager.js +0 -302
- package/dist/core/ViewRegistry.d.ts +0 -20
- package/dist/core/ViewRegistry.js +0 -55
- package/dist/core/index.d.ts +0 -33
- package/dist/core/index.js +0 -48
- package/dist/core/openIDBWithTimeout.d.ts +0 -65
- package/dist/core/openIDBWithTimeout.js +0 -153
- package/dist/core/queryUtils.d.ts +0 -45
- package/dist/core/queryUtils.js +0 -69
- package/dist/core/storeContract.d.ts +0 -145
- package/dist/core/storeContract.js +0 -12
- package/dist/docs/catalog.d.ts +0 -72
- package/dist/docs/catalog.js +0 -227
- package/dist/docs/index.d.ts +0 -10
- package/dist/docs/index.js +0 -10
- package/dist/environment.d.ts +0 -1
- package/dist/environment.js +0 -8
- package/dist/interfaces/index.d.ts +0 -311
- package/dist/interfaces/index.js +0 -9
- package/dist/keys/index.d.ts +0 -1
- package/dist/keys/index.js +0 -8
- package/dist/mutators/RecordingMutation.d.ts +0 -36
- package/dist/mutators/RecordingMutation.js +0 -182
- package/dist/mutators/Transaction.d.ts +0 -40
- package/dist/mutators/Transaction.js +0 -58
- package/dist/mutators/UndoManager.d.ts +0 -258
- package/dist/mutators/UndoManager.js +0 -658
- package/dist/mutators/defineMutators.d.ts +0 -60
- package/dist/mutators/defineMutators.js +0 -18
- package/dist/mutators/inverseOp.d.ts +0 -126
- package/dist/mutators/inverseOp.js +0 -71
- package/dist/mutators/mutateActions.d.ts +0 -45
- package/dist/mutators/mutateActions.js +0 -105
- package/dist/mutators/readerActions.d.ts +0 -33
- package/dist/mutators/readerActions.js +0 -57
- package/dist/mutators/undoApply.d.ts +0 -51
- package/dist/mutators/undoApply.js +0 -117
- package/dist/policy/index.d.ts +0 -21
- package/dist/policy/index.js +0 -20
- package/dist/query/client.d.ts +0 -61
- package/dist/query/client.js +0 -137
- package/dist/query/types.d.ts +0 -85
- package/dist/query/types.js +0 -16
- package/dist/react/AbloProvider.d.ts +0 -230
- package/dist/react/AbloProvider.js +0 -455
- package/dist/react/ClientSideSuspense.d.ts +0 -36
- package/dist/react/ClientSideSuspense.js +0 -17
- package/dist/react/DefaultFallback.d.ts +0 -24
- package/dist/react/DefaultFallback.js +0 -43
- package/dist/react/context.d.ts +0 -55
- package/dist/react/context.js +0 -29
- package/dist/react/index.d.ts +0 -61
- package/dist/react/index.js +0 -66
- package/dist/react/internalContext.d.ts +0 -33
- package/dist/react/internalContext.js +0 -3
- package/dist/react/useAblo.d.ts +0 -75
- package/dist/react/useAblo.js +0 -102
- package/dist/react/useCurrentUserId.d.ts +0 -22
- package/dist/react/useCurrentUserId.js +0 -34
- package/dist/react/useErrorListener.d.ts +0 -20
- package/dist/react/useErrorListener.js +0 -38
- package/dist/react/useMutationFailureListener.d.ts +0 -26
- package/dist/react/useMutationFailureListener.js +0 -38
- package/dist/react/useMutators.d.ts +0 -56
- package/dist/react/useMutators.js +0 -84
- package/dist/react/useReactive.d.ts +0 -35
- package/dist/react/useReactive.js +0 -123
- package/dist/react/useSyncStatus.d.ts +0 -59
- package/dist/react/useSyncStatus.js +0 -76
- package/dist/react/useUndoScope.d.ts +0 -34
- package/dist/react/useUndoScope.js +0 -81
- package/dist/schema/coordination.d.ts +0 -112
- package/dist/schema/coordination.js +0 -129
- package/dist/schema/ddl.d.ts +0 -97
- package/dist/schema/ddl.js +0 -491
- package/dist/schema/ddlLock.d.ts +0 -35
- package/dist/schema/ddlLock.js +0 -46
- package/dist/schema/diff.d.ts +0 -225
- package/dist/schema/diff.js +0 -289
- package/dist/schema/generate.d.ts +0 -19
- package/dist/schema/generate.js +0 -86
- package/dist/schema/index.d.ts +0 -41
- package/dist/schema/index.js +0 -76
- package/dist/schema/queries.d.ts +0 -201
- package/dist/schema/queries.js +0 -144
- package/dist/schema/select.d.ts +0 -40
- package/dist/schema/select.js +0 -87
- package/dist/schema/serialize.d.ts +0 -115
- package/dist/schema/serialize.js +0 -262
- package/dist/schema/sugar.d.ts +0 -109
- package/dist/schema/sugar.js +0 -83
- package/dist/schema/syncDeltaRow.d.ts +0 -6
- package/dist/schema/syncDeltaRow.js +0 -6
- package/dist/server/adapter.d.ts +0 -173
- package/dist/server/adapter.js +0 -18
- package/dist/server/commit.d.ts +0 -107
- package/dist/server/commit.js +0 -1
- package/dist/server/index.d.ts +0 -14
- package/dist/server/index.js +0 -2
- package/dist/server/readConfig.d.ts +0 -80
- package/dist/server/readConfig.js +0 -8
- package/dist/server/storageMode.d.ts +0 -23
- package/dist/server/storageMode.js +0 -17
- package/dist/source/adapter.d.ts +0 -81
- package/dist/source/adapter.js +0 -22
- package/dist/source/adapters/drizzle.d.ts +0 -48
- package/dist/source/adapters/drizzle.js +0 -219
- package/dist/source/adapters/kysely.d.ts +0 -42
- package/dist/source/adapters/kysely.js +0 -205
- package/dist/source/adapters/kyselyMutationCore.d.ts +0 -76
- package/dist/source/adapters/kyselyMutationCore.js +0 -125
- package/dist/source/adapters/memory.d.ts +0 -13
- package/dist/source/adapters/memory.js +0 -130
- package/dist/source/adapters/prisma.d.ts +0 -63
- package/dist/source/adapters/prisma.js +0 -202
- package/dist/source/conformance.d.ts +0 -37
- package/dist/source/conformance.js +0 -215
- package/dist/source/connector.d.ts +0 -95
- package/dist/source/connector.js +0 -266
- package/dist/source/connectorProtocol.d.ts +0 -154
- package/dist/source/connectorProtocol.js +0 -163
- package/dist/source/contract.d.ts +0 -195
- package/dist/source/contract.js +0 -164
- package/dist/source/factory.d.ts +0 -92
- package/dist/source/factory.js +0 -286
- package/dist/source/footprint.d.ts +0 -111
- package/dist/source/footprint.js +0 -0
- package/dist/source/idempotency.d.ts +0 -61
- package/dist/source/idempotency.js +0 -144
- package/dist/source/index.d.ts +0 -23
- package/dist/source/index.js +0 -30
- package/dist/source/migrations.d.ts +0 -21
- package/dist/source/migrations.js +0 -103
- package/dist/source/next.d.ts +0 -32
- package/dist/source/next.js +0 -25
- package/dist/source/pushQueue.d.ts +0 -134
- package/dist/source/pushQueue.js +0 -256
- package/dist/source/signing.d.ts +0 -92
- package/dist/source/signing.js +0 -162
- package/dist/source/types.d.ts +0 -401
- package/dist/source/types.js +0 -59
- package/dist/stores/ObjectStore.d.ts +0 -115
- package/dist/stores/ObjectStore.js +0 -393
- package/dist/stores/ObjectStoreContract.d.ts +0 -38
- package/dist/stores/ObjectStoreContract.js +0 -1
- package/dist/stores/SyncActionStore.d.ts +0 -97
- package/dist/stores/SyncActionStore.js +0 -504
- package/dist/stores/syncAction.d.ts +0 -26
- package/dist/stores/syncAction.js +0 -16
- package/dist/surface.d.ts +0 -36
- package/dist/surface.js +0 -75
- package/dist/sync/BootstrapFetcher.d.ts +0 -280
- package/dist/sync/BootstrapFetcher.js +0 -962
- package/dist/sync/ConnectionManager.d.ts +0 -8
- package/dist/sync/ConnectionManager.js +0 -8
- package/dist/sync/OnDemandLoader.d.ts +0 -228
- package/dist/sync/OnDemandLoader.js +0 -742
- package/dist/sync/SubscriptionManager.d.ts +0 -159
- package/dist/sync/SubscriptionManager.js +0 -243
- package/dist/sync/SyncWebSocket.d.ts +0 -173
- package/dist/sync/SyncWebSocket.js +0 -438
- package/dist/sync/awaitClaimGrant.d.ts +0 -6
- package/dist/sync/awaitClaimGrant.js +0 -6
- package/dist/sync/bootstrapApply.d.ts +0 -70
- package/dist/sync/bootstrapApply.js +0 -73
- package/dist/sync/commitFrames.d.ts +0 -8
- package/dist/sync/commitFrames.js +0 -8
- package/dist/sync/contextPorts.d.ts +0 -18
- package/dist/sync/contextPorts.js +0 -31
- package/dist/sync/createClaimStream.d.ts +0 -7
- package/dist/sync/createClaimStream.js +0 -7
- package/dist/sync/createPresenceStream.d.ts +0 -69
- package/dist/sync/createPresenceStream.js +0 -200
- package/dist/sync/createSnapshot.d.ts +0 -29
- package/dist/sync/createSnapshot.js +0 -118
- package/dist/sync/credentialLifecycle.d.ts +0 -7
- package/dist/sync/credentialLifecycle.js +0 -7
- package/dist/sync/deltaPipeline.d.ts +0 -113
- package/dist/sync/deltaPipeline.js +0 -261
- package/dist/sync/groupChange.d.ts +0 -113
- package/dist/sync/groupChange.js +0 -242
- package/dist/sync/participants.d.ts +0 -115
- package/dist/sync/participants.js +0 -344
- package/dist/sync/persistedPrefix.d.ts +0 -12
- package/dist/sync/persistedPrefix.js +0 -22
- package/dist/sync/schemaDrift.d.ts +0 -55
- package/dist/sync/schemaDrift.js +0 -53
- package/dist/sync/schemas.d.ts +0 -70
- package/dist/sync/schemas.js +0 -94
- package/dist/sync/syncCursor.d.ts +0 -40
- package/dist/sync/syncCursor.js +0 -55
- package/dist/sync/syncPlan.d.ts +0 -54
- package/dist/sync/syncPlan.js +0 -50
- package/dist/sync/wsFrameHandlers.d.ts +0 -8
- package/dist/sync/wsFrameHandlers.js +0 -8
- 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/httpResponses.d.ts +0 -70
- package/dist/testing/fixtures/httpResponses.js +0 -90
- 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 -186
- 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 -72
- 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/transaction/ablo.d.ts +0 -88
- package/dist/transaction/ablo.js +0 -33
- package/dist/transaction/auth/apiKey.d.ts +0 -152
- package/dist/transaction/auth/apiKey.js +0 -419
- package/dist/transaction/auth/bootstrapScope.d.ts +0 -15
- package/dist/transaction/auth/bootstrapScope.js +0 -1
- package/dist/transaction/auth/capability.d.ts +0 -177
- package/dist/transaction/auth/capability.js +0 -199
- package/dist/transaction/auth/credentialEndpoint.d.ts +0 -61
- package/dist/transaction/auth/credentialEndpoint.js +0 -86
- package/dist/transaction/auth/credentialPolicy.d.ts +0 -148
- package/dist/transaction/auth/credentialPolicy.js +0 -125
- package/dist/transaction/auth/credentialSource.d.ts +0 -30
- package/dist/transaction/auth/credentialSource.js +0 -55
- package/dist/transaction/auth/hostedEndpoints.d.ts +0 -21
- package/dist/transaction/auth/hostedEndpoints.js +0 -21
- package/dist/transaction/auth/identity.d.ts +0 -55
- package/dist/transaction/auth/identity.js +0 -210
- package/dist/transaction/auth/index.d.ts +0 -162
- package/dist/transaction/auth/index.js +0 -304
- package/dist/transaction/auth/schemas.d.ts +0 -59
- package/dist/transaction/auth/schemas.js +0 -85
- package/dist/transaction/auth/sessionMint.d.ts +0 -28
- package/dist/transaction/auth/sessionMint.js +0 -85
- package/dist/transaction/coordination/awaitClaimGrant.d.ts +0 -49
- package/dist/transaction/coordination/awaitClaimGrant.js +0 -112
- package/dist/transaction/coordination/claimHeartbeatLoop.d.ts +0 -50
- package/dist/transaction/coordination/claimHeartbeatLoop.js +0 -88
- package/dist/transaction/coordination/claimMeta.d.ts +0 -49
- package/dist/transaction/coordination/claimMeta.js +0 -52
- package/dist/transaction/coordination/createClaimStream.d.ts +0 -64
- package/dist/transaction/coordination/createClaimStream.js +0 -475
- package/dist/transaction/coordination/events.d.ts +0 -74
- package/dist/transaction/coordination/events.js +0 -7
- package/dist/transaction/coordination/index.d.ts +0 -19
- package/dist/transaction/coordination/index.js +0 -44
- package/dist/transaction/coordination/locator.d.ts +0 -83
- package/dist/transaction/coordination/locator.js +0 -82
- package/dist/transaction/coordination/schema.d.ts +0 -1473
- package/dist/transaction/coordination/schema.js +0 -1013
- package/dist/transaction/coordination/targetConflict.d.ts +0 -2
- package/dist/transaction/coordination/targetConflict.js +0 -103
- package/dist/transaction/coordination/trace.d.ts +0 -78
- package/dist/transaction/coordination/trace.js +0 -138
- package/dist/transaction/durableWrites.d.ts +0 -62
- package/dist/transaction/durableWrites.js +0 -71
- package/dist/transaction/environment.d.ts +0 -105
- package/dist/transaction/environment.js +0 -108
- package/dist/transaction/errorCodes.d.ts +0 -403
- package/dist/transaction/errorCodes.js +0 -480
- package/dist/transaction/errors.d.ts +0 -428
- package/dist/transaction/errors.js +0 -686
- package/dist/transaction/index.d.ts +0 -20
- package/dist/transaction/index.js +0 -20
- package/dist/transaction/keys/index.d.ts +0 -87
- package/dist/transaction/keys/index.js +0 -207
- package/dist/transaction/log/syncDeltaRow.d.ts +0 -158
- package/dist/transaction/log/syncDeltaRow.js +0 -95
- package/dist/transaction/logPosition.d.ts +0 -97
- package/dist/transaction/logPosition.js +0 -125
- package/dist/transaction/logger.d.ts +0 -16
- package/dist/transaction/logger.js +0 -7
- package/dist/transaction/observability.d.ts +0 -53
- package/dist/transaction/observability.js +0 -19
- package/dist/transaction/persistence.d.ts +0 -12
- package/dist/transaction/persistence.js +0 -11
- package/dist/transaction/plugin.d.ts +0 -192
- package/dist/transaction/plugin.js +0 -87
- package/dist/transaction/policy/types.d.ts +0 -217
- package/dist/transaction/policy/types.js +0 -126
- package/dist/transaction/resources/functionalUpdate.d.ts +0 -79
- package/dist/transaction/resources/functionalUpdate.js +0 -87
- package/dist/transaction/resources/httpResources.d.ts +0 -266
- package/dist/transaction/resources/httpResources.js +0 -7
- package/dist/transaction/resources/modelOperations.d.ts +0 -319
- package/dist/transaction/resources/modelOperations.js +0 -12
- package/dist/transaction/resources/mutationOptions.d.ts +0 -66
- package/dist/transaction/resources/mutationOptions.js +0 -9
- package/dist/transaction/resources/where.d.ts +0 -85
- package/dist/transaction/resources/where.js +0 -70
- package/dist/transaction/resources/writeOptionsSchema.d.ts +0 -47
- package/dist/transaction/resources/writeOptionsSchema.js +0 -73
- package/dist/transaction/schema/field.d.ts +0 -126
- package/dist/transaction/schema/field.js +0 -265
- package/dist/transaction/schema/loadStrategy.d.ts +0 -45
- package/dist/transaction/schema/loadStrategy.js +0 -46
- package/dist/transaction/schema/model.d.ts +0 -379
- package/dist/transaction/schema/model.js +0 -123
- package/dist/transaction/schema/openapi.d.ts +0 -57
- package/dist/transaction/schema/openapi.js +0 -340
- package/dist/transaction/schema/relation.d.ts +0 -199
- package/dist/transaction/schema/relation.js +0 -104
- package/dist/transaction/schema/residency.d.ts +0 -29
- package/dist/transaction/schema/residency.js +0 -25
- package/dist/transaction/schema/roles.d.ts +0 -249
- package/dist/transaction/schema/roles.js +0 -230
- package/dist/transaction/schema/schema.d.ts +0 -324
- package/dist/transaction/schema/schema.js +0 -305
- package/dist/transaction/schema/tenancy.d.ts +0 -139
- package/dist/transaction/schema/tenancy.js +0 -190
- package/dist/transaction/transactionLayer.d.ts +0 -82
- package/dist/transaction/transactionLayer.js +0 -24
- package/dist/transaction/transactions/settlement/commitEnvelope.d.ts +0 -143
- package/dist/transaction/transactions/settlement/commitEnvelope.js +0 -161
- package/dist/transaction/transactions/settlement/httpCommitEnvelope.d.ts +0 -53
- package/dist/transaction/transactions/settlement/httpCommitEnvelope.js +0 -207
- package/dist/transaction/transactions/settlement/idempotencyKey.d.ts +0 -10
- package/dist/transaction/transactions/settlement/idempotencyKey.js +0 -9
- package/dist/transaction/transactions/settlement/pendingWrite.d.ts +0 -112
- package/dist/transaction/transactions/settlement/pendingWrite.js +0 -20
- package/dist/transaction/transport/commitFrames.d.ts +0 -90
- package/dist/transaction/transport/commitFrames.js +0 -134
- package/dist/transaction/transport/connectionManager.d.ts +0 -215
- package/dist/transaction/transport/connectionManager.js +0 -673
- package/dist/transaction/transport/credentialLifecycle.d.ts +0 -177
- package/dist/transaction/transport/credentialLifecycle.js +0 -324
- package/dist/transaction/transport/heartbeat.d.ts +0 -65
- package/dist/transaction/transport/heartbeat.js +0 -93
- package/dist/transaction/transport/httpClient.d.ts +0 -123
- package/dist/transaction/transport/httpClient.js +0 -145
- package/dist/transaction/transport/httpOptions.d.ts +0 -33
- package/dist/transaction/transport/httpOptions.js +0 -12
- package/dist/transaction/transport/httpTransport.d.ts +0 -8
- package/dist/transaction/transport/httpTransport.js +0 -1276
- package/dist/transaction/transport/networkProbe.d.ts +0 -84
- package/dist/transaction/transport/networkProbe.js +0 -207
- package/dist/transaction/transport/wsFrameHandlers.d.ts +0 -128
- package/dist/transaction/transport/wsFrameHandlers.js +0 -429
- package/dist/transaction/transport/wsTransport.d.ts +0 -576
- package/dist/transaction/transport/wsTransport.js +0 -1017
- package/dist/transaction/types/assertExact.d.ts +0 -17
- package/dist/transaction/types/assertExact.js +0 -1
- package/dist/transaction/types/global.d.ts +0 -107
- package/dist/transaction/types/global.js +0 -40
- package/dist/transaction/types/index.d.ts +0 -205
- package/dist/transaction/types/index.js +0 -56
- package/dist/transaction/types/modelData.d.ts +0 -10
- package/dist/transaction/types/modelData.js +0 -9
- package/dist/transaction/types/participant.d.ts +0 -20
- package/dist/transaction/types/participant.js +0 -10
- package/dist/transaction/types/streams.d.ts +0 -540
- package/dist/transaction/types/streams.js +0 -11
- package/dist/transaction/utils/asyncIterator.d.ts +0 -34
- package/dist/transaction/utils/asyncIterator.js +0 -135
- package/dist/transaction/utils/duration.d.ts +0 -25
- package/dist/transaction/utils/duration.js +0 -45
- package/dist/transaction/utils/json.d.ts +0 -57
- package/dist/transaction/utils/json.js +0 -276
- package/dist/transaction/wire/accountResponses.d.ts +0 -351
- package/dist/transaction/wire/accountResponses.js +0 -255
- package/dist/transaction/wire/auth.d.ts +0 -49
- package/dist/transaction/wire/auth.js +0 -57
- package/dist/transaction/wire/bootstrapReason.d.ts +0 -9
- package/dist/transaction/wire/bootstrapReason.js +0 -8
- package/dist/transaction/wire/claimEvent.d.ts +0 -76
- package/dist/transaction/wire/claimEvent.js +0 -73
- package/dist/transaction/wire/claims.d.ts +0 -463
- package/dist/transaction/wire/claims.js +0 -229
- package/dist/transaction/wire/commit.d.ts +0 -603
- package/dist/transaction/wire/commit.js +0 -321
- package/dist/transaction/wire/delta.d.ts +0 -250
- package/dist/transaction/wire/delta.js +0 -147
- package/dist/transaction/wire/errorEnvelope.d.ts +0 -72
- package/dist/transaction/wire/errorEnvelope.js +0 -123
- package/dist/transaction/wire/feedCursor.d.ts +0 -60
- package/dist/transaction/wire/feedCursor.js +0 -82
- package/dist/transaction/wire/feedEvent.d.ts +0 -177
- package/dist/transaction/wire/feedEvent.js +0 -39
- package/dist/transaction/wire/frames.d.ts +0 -194
- package/dist/transaction/wire/frames.js +0 -50
- package/dist/transaction/wire/inboundFrames.d.ts +0 -552
- package/dist/transaction/wire/inboundFrames.js +0 -116
- package/dist/transaction/wire/index.d.ts +0 -50
- package/dist/transaction/wire/index.js +0 -74
- package/dist/transaction/wire/listEnvelope.d.ts +0 -37
- package/dist/transaction/wire/listEnvelope.js +0 -42
- package/dist/transaction/wire/modelResponses.d.ts +0 -85
- package/dist/transaction/wire/modelResponses.js +0 -43
- package/dist/transaction/wire/protocol.d.ts +0 -38
- package/dist/transaction/wire/protocol.js +0 -38
- package/dist/transaction/wire/protocolVersion.d.ts +0 -73
- package/dist/transaction/wire/protocolVersion.js +0 -83
- package/dist/transactions/mutations/MutationQueue.d.ts +0 -655
- package/dist/transactions/mutations/MutationQueue.js +0 -2797
- package/dist/transactions/mutations/MutationStore.d.ts +0 -20
- package/dist/transactions/mutations/MutationStore.js +0 -53
- package/dist/transactions/mutations/UnconfirmedWrites.d.ts +0 -82
- package/dist/transactions/mutations/UnconfirmedWrites.js +0 -104
- package/dist/transactions/mutations/coalesceRules.d.ts +0 -58
- package/dist/transactions/mutations/coalesceRules.js +0 -140
- package/dist/transactions/mutations/commitLatency.d.ts +0 -52
- package/dist/transactions/mutations/commitLatency.js +0 -130
- package/dist/transactions/mutations/commitOutboxStore.d.ts +0 -28
- package/dist/transactions/mutations/commitOutboxStore.js +0 -26
- package/dist/transactions/mutations/commitPayload.d.ts +0 -164
- package/dist/transactions/mutations/commitPayload.js +0 -152
- package/dist/transactions/mutations/deltaConfirmation.d.ts +0 -59
- package/dist/transactions/mutations/deltaConfirmation.js +0 -233
- package/dist/transactions/mutations/durableWriteStore.d.ts +0 -14
- package/dist/transactions/mutations/durableWriteStore.js +0 -12
- package/dist/transactions/mutations/optimisticApply.d.ts +0 -49
- package/dist/transactions/mutations/optimisticApply.js +0 -65
- package/dist/transactions/mutations/replayValidation.d.ts +0 -186
- package/dist/transactions/mutations/replayValidation.js +0 -163
- package/dist/utils/mobxSetup.d.ts +0 -53
- package/dist/utils/mobxSetup.js +0 -330
- package/dist/webhooks/events.d.ts +0 -43
- package/dist/webhooks/events.js +0 -42
- package/dist/webhooks/index.d.ts +0 -8
- package/dist/webhooks/index.js +0 -8
- package/dist/wire/index.d.ts +0 -1
- package/dist/wire/index.js +0 -8
- package/docs/interaction-model.md +0 -99
|
@@ -1,280 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Fetches the initial snapshot the sync engine needs before it can go live: the
|
|
3
|
-
* current rows for the requested models plus the sync position from which to
|
|
4
|
-
* resume live updates. It calls the sync server's `/sync/bootstrap` HTTP
|
|
5
|
-
* endpoint, retries transient failures with backoff, and can fall back to a
|
|
6
|
-
* cached snapshot when the device is offline. {@link BootstrapData} is the
|
|
7
|
-
* shape it returns; {@link BootstrapOptions} configures it.
|
|
8
|
-
*/
|
|
9
|
-
export interface BootstrapData {
|
|
10
|
-
type: 'full' | 'partial';
|
|
11
|
-
lastSyncId: number;
|
|
12
|
-
/**
|
|
13
|
-
* Model rows keyed by type name. Each row is opaque at this boundary; the
|
|
14
|
-
* engine asserts the per-model shape against the registered schema when it
|
|
15
|
-
* reduces the rows and writes them to local storage.
|
|
16
|
-
*/
|
|
17
|
-
models?: Record<string, unknown[]>;
|
|
18
|
-
deltas?: ValidatedServerDelta[];
|
|
19
|
-
deltaCount?: number;
|
|
20
|
-
/** Model types whose server-side query failed (timeout, RLS error, and the like). */
|
|
21
|
-
failedModels?: string[];
|
|
22
|
-
timestamp: number;
|
|
23
|
-
/**
|
|
24
|
-
* The content hash of the schema the server currently has active for this
|
|
25
|
-
* tenant — the same hash `ablo push` computes. Present once a schema has been
|
|
26
|
-
* pushed. The client compares it against its own `expectedSchemaHash` to warn
|
|
27
|
-
* when the app's schema and the deployed schema have drifted apart.
|
|
28
|
-
*/
|
|
29
|
-
schemaHash?: string;
|
|
30
|
-
/**
|
|
31
|
-
* Present when a paged single-model request stopped at its row limit with
|
|
32
|
-
* rows remaining: pass it back as the next page's `cursor`. Absent on the
|
|
33
|
-
* final page, on unpaged responses, and from servers that predate paging.
|
|
34
|
-
*/
|
|
35
|
-
nextCursor?: string;
|
|
36
|
-
}
|
|
37
|
-
export interface BootstrapFetchResult {
|
|
38
|
-
notModified: boolean;
|
|
39
|
-
data?: BootstrapData;
|
|
40
|
-
etag?: string | null;
|
|
41
|
-
}
|
|
42
|
-
export interface BootstrapOptions {
|
|
43
|
-
/**
|
|
44
|
-
* Full base URL of the sync server's HTTP API, **including the `/api`
|
|
45
|
-
* prefix**. The bootstrap endpoint is appended as `/sync/bootstrap`, so
|
|
46
|
-
* the final request hits `${baseUrl}/sync/bootstrap`.
|
|
47
|
-
*
|
|
48
|
-
* Example: `'http://localhost:8080/api'` → `http://localhost:8080/api/sync/bootstrap`
|
|
49
|
-
*
|
|
50
|
-
* Default: `'http://localhost:8080/api'`.
|
|
51
|
-
*/
|
|
52
|
-
baseUrl?: string;
|
|
53
|
-
/**
|
|
54
|
-
* Namespace for the offline bootstrap cache. Most callers leave this unset;
|
|
55
|
-
* the SDK fills it in once authentication has resolved the account scope, so
|
|
56
|
-
* the fallback cache is partitioned per account.
|
|
57
|
-
*/
|
|
58
|
-
cacheScope?: string | null;
|
|
59
|
-
/**
|
|
60
|
-
* @deprecated Use `cacheScope`. Retained so code that constructs
|
|
61
|
-
* {@link BootstrapFetcher} directly keeps its cache namespace.
|
|
62
|
-
*/
|
|
63
|
-
organizationId?: string;
|
|
64
|
-
syncGroups?: string[];
|
|
65
|
-
maxRetries?: number;
|
|
66
|
-
retryDelay?: number;
|
|
67
|
-
/**
|
|
68
|
-
* How long to wait for the server to START responding (response headers), in
|
|
69
|
-
* milliseconds. Default 20000 (20 seconds).
|
|
70
|
-
*
|
|
71
|
-
* Deliberately NOT a bound on the whole download: a cold-start snapshot can
|
|
72
|
-
* be tens of megabytes, and its transfer time depends on the connection. A
|
|
73
|
-
* healthy download that is actively delivering bytes is never aborted, no
|
|
74
|
-
* matter how long it takes — {@link stallTimeout} guards the body instead.
|
|
75
|
-
*/
|
|
76
|
-
fetchTimeout?: number;
|
|
77
|
-
/**
|
|
78
|
-
* The longest quiet gap allowed between body chunks while downloading, in
|
|
79
|
-
* milliseconds. Default 15000 (15 seconds). This is the progress watchdog:
|
|
80
|
-
* it aborts a download whose stream has gone silent (dead connection,
|
|
81
|
-
* hung proxy) without ever penalizing a slow-but-moving transfer.
|
|
82
|
-
*/
|
|
83
|
-
stallTimeout?: number;
|
|
84
|
-
/**
|
|
85
|
-
* The model names to request. When set, the server returns only these models
|
|
86
|
-
* and skips the rest. This is derived from each model's `load` strategy: only
|
|
87
|
-
* models loaded instantly (the default) are included. When unset, the server
|
|
88
|
-
* returns every model.
|
|
89
|
-
*/
|
|
90
|
-
instantModels?: string[];
|
|
91
|
-
/**
|
|
92
|
-
* Getter for the current credential, read at request time so a refreshed
|
|
93
|
-
* token takes effect without recreating the helper. Preferred over
|
|
94
|
-
* {@link BootstrapFetcher.setAuthToken}.
|
|
95
|
-
*/
|
|
96
|
-
getAuthToken?: AuthTokenGetter;
|
|
97
|
-
}
|
|
98
|
-
import { type AuthTokenGetter } from '../transaction/auth/credentialSource.js';
|
|
99
|
-
import { type ValidatedServerDelta } from './schemas.js';
|
|
100
|
-
export declare class BootstrapFetcher {
|
|
101
|
-
private options;
|
|
102
|
-
/**
|
|
103
|
-
* Every in-flight request's controller, tagged with the lane it belongs to. A
|
|
104
|
-
* registry rather than a single field because a chunked cold start runs
|
|
105
|
-
* several model fetches concurrently — aborting one request (its own
|
|
106
|
-
* TTFB/stall watchdog) must never take its siblings down, while
|
|
107
|
-
* {@link abort} takes down all of them.
|
|
108
|
-
*/
|
|
109
|
-
private readonly activeControllers;
|
|
110
|
-
/**
|
|
111
|
-
* Non-scoped bootstraps currently running, keyed by request identity. A
|
|
112
|
-
* second call for the same snapshot joins the one already in flight rather
|
|
113
|
-
* than cancelling and restarting it — see {@link fetchBootstrap}.
|
|
114
|
-
*/
|
|
115
|
-
private readonly flights;
|
|
116
|
-
/** Warn about schema drift at most once per helper. */
|
|
117
|
-
private schemaDriftWarned;
|
|
118
|
-
/**
|
|
119
|
-
* Abort every in-flight request in `lane` — or in every lane when none is
|
|
120
|
-
* given — with an explicit reason.
|
|
121
|
-
*
|
|
122
|
-
* The reason is load-bearing, not decoration. `fetch` rejects with the exact
|
|
123
|
-
* value handed to `abort()`, so passing a typed error is what lets the retry
|
|
124
|
-
* loop below tell a deliberate cancellation apart from a dead connection. A
|
|
125
|
-
* bare `abort()` produces an `AbortError` indistinguishable from the one the
|
|
126
|
-
* browser's stop button produces, and a retry loop that cannot tell them
|
|
127
|
-
* apart re-issues the requests it just killed.
|
|
128
|
-
*/
|
|
129
|
-
private cancelActive;
|
|
130
|
-
/**
|
|
131
|
-
* The longest a single bootstrap can run before every watchdog below has
|
|
132
|
-
* necessarily fired, derived from those watchdogs rather than guessed. A
|
|
133
|
-
* caller wanting an outer deadline reads this instead of picking a number,
|
|
134
|
-
* so it cannot set one shorter than the work it wraps. A cold start pages
|
|
135
|
-
* through its models {@link CHUNK_CONCURRENCY} at a time; each request may
|
|
136
|
-
* spend `fetchTimeout` waiting for response headers and `stallTimeout`
|
|
137
|
-
* waiting for the next body chunk, and may be retried `maxRetries` times.
|
|
138
|
-
*/
|
|
139
|
-
get budgetMs(): number;
|
|
140
|
-
get baseUrl(): string;
|
|
141
|
-
/**
|
|
142
|
-
* Advisory schema-drift check: compare the server's active schema hash (on the
|
|
143
|
-
* bootstrap response) against the hash this client was built with. A mismatch
|
|
144
|
-
* means the app's schema and the deployed schema have diverged — reads/writes
|
|
145
|
-
* relying on undeployed changes will later fail with an opaque DB constraint
|
|
146
|
-
* error. Warn once, actionably; never throws or blocks the bootstrap.
|
|
147
|
-
*
|
|
148
|
-
* The message names the SERVER it connected to, and spans all three real
|
|
149
|
-
* causes rather than assuming "you forgot to push". Drift most often means the
|
|
150
|
-
* schema was pushed to a different server, project, or environment than this
|
|
151
|
-
* client points at (a bare `ablo push` targets the hosted default; a local app
|
|
152
|
-
* usually reads a local server) — so the first, load-bearing pointer is `ablo
|
|
153
|
-
* status`, which names the exact org/project/environment the key resolves to
|
|
154
|
-
* and the deployed hash, turning "which of these is it?" into one glance. The
|
|
155
|
-
* older "Run `ablo push`" copy sent everyone down one path and confused the
|
|
156
|
-
* common wrong-target and version-skew cases.
|
|
157
|
-
*/
|
|
158
|
-
private warnOnSchemaDrift;
|
|
159
|
-
/** Fetch the server's per-model schema surface and warn precisely — or stay
|
|
160
|
-
* silent when every model this client declares matches (additive lead). */
|
|
161
|
-
private resolveSemanticDrift;
|
|
162
|
-
private warnWholeHashDrift;
|
|
163
|
-
constructor(options: BootstrapOptions);
|
|
164
|
-
/**
|
|
165
|
-
* Update the offline-cache namespace once auth has resolved the server-side
|
|
166
|
-
* account scope. This is intentionally not a public organizationId input.
|
|
167
|
-
*/
|
|
168
|
-
setCacheScope(cacheScope: string): void;
|
|
169
|
-
setSyncGroups(syncGroups: readonly string[] | undefined): void;
|
|
170
|
-
/**
|
|
171
|
-
* Sets a fixed credential for callers that construct the helper directly.
|
|
172
|
-
* The SDK instead supplies `getAuthToken` and never calls this.
|
|
173
|
-
*/
|
|
174
|
-
setAuthToken(authToken: string | undefined): void;
|
|
175
|
-
/**
|
|
176
|
-
* Fetch bootstrap data from sync engine with partial bootstrap support
|
|
177
|
-
* @param lastSyncId - Optional: client's current lastSyncId for partial bootstrap
|
|
178
|
-
* @returns Bootstrap data (either full snapshot or delta batch)
|
|
179
|
-
*/
|
|
180
|
-
fetchBootstrap(lastSyncId?: number,
|
|
181
|
-
/**
|
|
182
|
-
* A per-call set of sync groups for a scoped hydrate-on-enter. When given,
|
|
183
|
-
* the request uses these groups instead of the configured `syncGroups`, and
|
|
184
|
-
* does so without mutating the shared options, so a concurrent full
|
|
185
|
-
* bootstrap is unaffected. It also bypasses the offline snapshot cache,
|
|
186
|
-
* which holds the full bootstrap and would be a wrong answer to a subset
|
|
187
|
-
* request.
|
|
188
|
-
*/
|
|
189
|
-
syncGroupsOverride?: readonly string[]): Promise<BootstrapData>;
|
|
190
|
-
/**
|
|
191
|
-
* The identity of a bootstrap request: everything that determines its answer.
|
|
192
|
-
* Two calls with the same key are asking the same question, so the second can
|
|
193
|
-
* take the first's result.
|
|
194
|
-
*/
|
|
195
|
-
private flightKey;
|
|
196
|
-
/** One bootstrap, start to finish. {@link fetchBootstrap} owns whether it runs. */
|
|
197
|
-
private runBootstrap;
|
|
198
|
-
/**
|
|
199
|
-
* One bootstrap URL, fetched with backoff. Session errors and other
|
|
200
|
-
* non-retryable failures throw immediately; only transient failures
|
|
201
|
-
* (5xx, 429, timeouts, network blips) consume attempts. A cancellation is
|
|
202
|
-
* deliberate and therefore non-retryable — it leaves through the same gate.
|
|
203
|
-
*/
|
|
204
|
-
private fetchWithRetries;
|
|
205
|
-
/**
|
|
206
|
-
* Cold-start bootstrap, one request per instant model with a small
|
|
207
|
-
* concurrency cap. Any chunk's terminal failure fails the whole
|
|
208
|
-
* bootstrap (a partial snapshot must never masquerade as a full one)
|
|
209
|
-
* and cancels its siblings.
|
|
210
|
-
*/
|
|
211
|
-
private fetchChunkedBootstrap;
|
|
212
|
-
/**
|
|
213
|
-
* Fetch bootstrap with ETag, returning 304 hints
|
|
214
|
-
*/
|
|
215
|
-
fetchBootstrapWithETag(): Promise<BootstrapFetchResult>;
|
|
216
|
-
private fetchWithETagUsing;
|
|
217
|
-
/**
|
|
218
|
-
* Read a response body as a stream under a progress watchdog: the stall
|
|
219
|
-
* timer re-arms on every chunk, so only a silent stream is aborted — a
|
|
220
|
-
* slow-but-moving download is never killed for total duration. A cold-start
|
|
221
|
-
* snapshot can be tens of megabytes; bounding its total transfer time was
|
|
222
|
-
* what trapped large orgs in an endless full-bootstrap retry loop.
|
|
223
|
-
*
|
|
224
|
-
* Falls back to `response.json()` when the response exposes no readable
|
|
225
|
-
* stream (empty bodies, some test doubles).
|
|
226
|
-
*/
|
|
227
|
-
private readJsonWithStallGuard;
|
|
228
|
-
/**
|
|
229
|
-
* Perform one fetch. The timeout here bounds time to response headers
|
|
230
|
-
* only; the body download is guarded by the stall watchdog in
|
|
231
|
-
* {@link readJsonWithStallGuard}. Superseding an older in-flight
|
|
232
|
-
* bootstrap is the caller's job ({@link fetchBootstrap} cancels the
|
|
233
|
-
* registry) — chunk requests run through here concurrently and must
|
|
234
|
-
* not cancel each other.
|
|
235
|
-
*/
|
|
236
|
-
private fetchOnce;
|
|
237
|
-
private fetchOnceWith;
|
|
238
|
-
/**
|
|
239
|
-
* Fetch a single entity by ID (on-demand self-healing).
|
|
240
|
-
* Returns `null` for 404 (entity deleted) — this is an expected state, not an error.
|
|
241
|
-
* Throws for unexpected HTTP errors (5xx, network failures).
|
|
242
|
-
*/
|
|
243
|
-
fetchEntity(modelName: string, id: string): Promise<Record<string, unknown> | null>;
|
|
244
|
-
/**
|
|
245
|
-
* Clear all cached bootstrap data
|
|
246
|
-
*/
|
|
247
|
-
clearCache(): void;
|
|
248
|
-
private getBootstrapCacheKey;
|
|
249
|
-
private saveCachedBootstrap;
|
|
250
|
-
private loadCachedBootstrap;
|
|
251
|
-
/**
|
|
252
|
-
* Abort every ongoing bootstrap request (including all chunks of a
|
|
253
|
-
* chunked cold start). Entity self-heal fetches are unaffected.
|
|
254
|
-
*
|
|
255
|
-
* The flight registry is cleared first and synchronously, so a caller that
|
|
256
|
-
* bootstraps again in the same tick starts a fresh request rather than
|
|
257
|
-
* joining the one being torn down.
|
|
258
|
-
*/
|
|
259
|
-
abort(): void;
|
|
260
|
-
/**
|
|
261
|
-
* Helper to delay execution
|
|
262
|
-
*/
|
|
263
|
-
private delay;
|
|
264
|
-
/**
|
|
265
|
-
* Get health status of sync engine
|
|
266
|
-
*/
|
|
267
|
-
checkHealth(): Promise<boolean>;
|
|
268
|
-
}
|
|
269
|
-
/**
|
|
270
|
-
* Assemble per-model chunk responses into one full snapshot.
|
|
271
|
-
*
|
|
272
|
-
* Each chunk is internally consistent at its own sync position, and the
|
|
273
|
-
* positions differ (the chunks were served seconds apart). Anchoring the
|
|
274
|
-
* merged snapshot at the MINIMUM position turns that skew into an ordinary
|
|
275
|
-
* "briefly offline client": the WS catch-up replays every delta from the
|
|
276
|
-
* anchor, and since deltas carry full rows, re-applying one a later chunk
|
|
277
|
-
* already reflects converges to the same state. Anchoring at anything later
|
|
278
|
-
* would silently skip deltas for the earliest-fetched models.
|
|
279
|
-
*/
|
|
280
|
-
export declare function mergeBootstrapChunks(chunks: readonly BootstrapData[]): BootstrapData;
|