@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
package/dist/index.d.ts
CHANGED
|
@@ -1,112 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* ```ts
|
|
5
|
-
* import Ablo from '@abloatai/ablo';
|
|
6
|
-
*
|
|
7
|
-
* const ablo = Ablo({ schema, apiKey: process.env.ABLO_API_KEY });
|
|
8
|
-
* const report = await ablo.weatherReports.retrieve({ id: 'report_stockholm' });
|
|
9
|
-
* await ablo.weatherReports.update({
|
|
10
|
-
* id: 'report_stockholm',
|
|
11
|
-
* data: { status: 'ready' },
|
|
12
|
-
* });
|
|
13
|
-
*
|
|
14
|
-
* type Entry = Ablo.Peer;
|
|
15
|
-
* ```
|
|
16
|
-
*
|
|
17
|
-
* `Ablo({ schema, apiKey })` returns typed model clients. Server-side agents,
|
|
18
|
-
* MCP route handlers, and workers select `transport: 'http'`; both transports
|
|
19
|
-
* keep the same `ablo.<model>` application surface.
|
|
20
|
-
*
|
|
21
|
-
* The whole package reaches you through one name: `Ablo` is at once a factory
|
|
22
|
-
* function, a type, and a namespace. You call model clients with dot access on
|
|
23
|
-
* the instance (`ablo.reports.retrieve(...)`) and reach every supporting type
|
|
24
|
-
* through the namespace (`Ablo.Peer`, `Ablo.Claim`).
|
|
25
|
-
*
|
|
26
|
-
* Related surfaces live on their own import subpaths:
|
|
27
|
-
* @abloatai/ablo/schema — defineSchema, model, z (Zod)
|
|
28
|
-
* @abloatai/ablo/react — <AbloProvider>, useQuery, useMutate
|
|
29
|
-
* @abloatai/ablo/testing — test harnesses and fixtures
|
|
30
|
-
*
|
|
31
|
-
* Reads come in two flavors, distinguished by where the data is fetched from.
|
|
32
|
-
* `ablo.<model>.retrieve({ id })` and `.list({ where })` are asynchronous reads
|
|
33
|
-
* that consult the local cache first and fall back to the network, de-duplicating
|
|
34
|
-
* concurrent requests for the same row. They are the default, and the right
|
|
35
|
-
* choice for stateless callers whose local graph starts empty.
|
|
36
|
-
* `ablo.<model>.local.retrieve(id)`, `.local.list(...)`, and `.local.count(...)` are synchronous
|
|
37
|
-
* snapshots of the already-loaded local graph with no network round-trip — use
|
|
38
|
-
* them in reactive React selectors (`useAblo((ablo) => ablo.<model>.get(id))`)
|
|
39
|
-
* once the graph is warm.
|
|
40
|
-
*
|
|
41
|
-
* What to import, in short:
|
|
42
|
-
* • `Ablo` (the default export), `AbloOptions`, and the `Model*Params` option
|
|
43
|
-
* bags cover what most applications and agents ever need.
|
|
44
|
-
* • the `Ablo*Error` classes let you discriminate failures in catch blocks.
|
|
45
|
-
*
|
|
46
|
-
* A handful of exports are for advanced use and are marked "Advanced" at their
|
|
47
|
-
* declaration below, each with the one situation it is for:
|
|
48
|
-
* • `dataSource` — when your own database stays canonical.
|
|
49
|
-
* • `defaultPolicy` — when you customize conflict resolution.
|
|
50
|
-
* • `defineMutators` / `createTransaction` — when you write custom mutators.
|
|
51
|
-
* If you don't recognize one of these, you don't need it.
|
|
52
|
-
*/
|
|
53
|
-
export { Ablo } from './client/Ablo.js';
|
|
54
|
-
export { humans } from './client/humans.js';
|
|
55
|
-
export type { HumansSurface } from './client/humans.js';
|
|
56
|
-
export type { AbloCoreClient } from './client/coreClient.js';
|
|
57
|
-
export type { AbloPlugin, PipelineStage, TransportCapabilities } from './transaction/plugin.js';
|
|
58
|
-
export type { MutationExecutor } from './interfaces/index.js';
|
|
59
|
-
export type { ModelUpdater, ContentionOptions } from './transaction/resources/functionalUpdate.js';
|
|
60
|
-
export { DEFAULT_CONTENTION_RETRIES } from './transaction/resources/functionalUpdate.js';
|
|
61
|
-
export type { AbloReads } from './client/abloClient.js';
|
|
62
|
-
export { type AbloHttpClientOptions, type AbloHttpClient, type HttpModelClient, } from './transaction/transport/httpClient.js';
|
|
63
|
-
export { ABLO_DEFAULT_BASE_URL, ABLO_HOSTED_API_DOMAIN, ABLO_HOSTED_HTTP_BASE_URL, normalizeAbloHostedBaseUrl, } from './transaction/auth/apiKey.js';
|
|
64
|
-
export type { AbloOptions } from './client/Ablo.js';
|
|
65
|
-
export type { LocalCountOptions, LocalReadOptions, ModelListScope, ServerReadOptions, ModelRetrieveParams, ModelCreateParams, ModelUpdateParams, ModelDeleteParams, } from './client/resourceTypes.js';
|
|
66
|
-
/**
|
|
67
|
-
* @deprecated Use `Ablo.Claim.Held`. This compatibility export remains until
|
|
68
|
-
* the next major release because it was explicitly documented in 0.20.1.
|
|
69
|
-
*/
|
|
70
|
-
export type { HeldClaim } from './client/resourceTypes.js';
|
|
71
|
-
/** The resolved value of the row-free `ablo.<model>.claim(id)` overload — a
|
|
72
|
-
* held lease on a key whose row Ablo does not hold (a {@link HeldClaim} with
|
|
73
|
-
* no `.data`). */
|
|
74
|
-
export type { HeldLease } from './client/resourceTypes.js';
|
|
75
|
-
export type { AbloPersistence } from './transaction/persistence.js';
|
|
76
|
-
export { durableWritesConfigSchema, durableWriteStoreSchema, pendingWriteSchema, } from './transactions/mutations/durableWriteStore.js';
|
|
77
|
-
export type { DurableWritesConfig, DurableWriteStore, PendingWrite, } from './transactions/mutations/durableWriteStore.js';
|
|
78
|
-
export { durableCommitEnvelopeSchema, } from './transaction/transactions/settlement/commitEnvelope.js';
|
|
79
|
-
export type { CommitOutboxScope, DurableCommitEnvelope, } from './transaction/transactions/settlement/commitEnvelope.js';
|
|
80
|
-
export { durableHttpCommitEnvelopeSchema, } from './transaction/transactions/settlement/httpCommitEnvelope.js';
|
|
81
|
-
export type { DurableHttpCommitEnvelope, } from './transaction/transactions/settlement/httpCommitEnvelope.js';
|
|
82
|
-
import { Ablo } from './client/Ablo.js';
|
|
83
|
-
export default Ablo;
|
|
84
|
-
export { dataSource, sourceEventForOperation, signAbloSourceRequest, verifyAbloSourceRequest, } from './source/index.js';
|
|
85
|
-
export { createSourceConnector, type SourceConnector, type SourceConnectorOptions, type ConnectorStatus, } from './source/connector.js';
|
|
86
|
-
export { defaultPolicy, capabilityPreemptPolicy, interpretConflictAxis } from './policy/index.js';
|
|
87
|
-
export { AbloSessionError, SyncSessionError, AbloError, AbloAuthenticationError, AbloPermissionError, AbloRateLimitError, AbloIdempotencyError, AbloConnectionError, AbloValidationError, AbloNotFoundError, AbloServerError, AbloStaleContextError, AbloClaimedError, AbloContentionError, CapabilityError, translateHttpError, hasWireCode, errorFromWire, toAbloError, ERROR_CODES, ERROR_CONTRACT_VERSION, errorCodeSpec, isRetryableCode, classifyRecovery, recoveryClassSchema, RECOVERY_CLASSES, } from './transaction/errors.js';
|
|
88
|
-
export type { RequiredCapability } from './transaction/errors.js';
|
|
89
|
-
export type { ErrorCode, WireErrorCode, ErrorCategory, ErrorCodeSpec, RecoveryClass } from './transaction/errors.js';
|
|
90
|
-
export { errorEnvelope, statusForType } from './transaction/wire/errorEnvelope.js';
|
|
91
|
-
export type { ErrorEnvelope } from './transaction/wire/errorEnvelope.js';
|
|
92
|
-
export { WS_BEARER_SUBPROTOCOL_PREFIX, WS_SYNC_SUBPROTOCOL } from './transaction/auth/credentialSource.js';
|
|
93
|
-
export { ENVIRONMENTS, environmentSchema, normalizeEnvironment, environmentFromKeyPrefix, environmentToKeyPrefix, isSandboxEnvironment, } from './transaction/environment.js';
|
|
94
|
-
export type { Environment, KeyPrefixEnvironment } from './transaction/environment.js';
|
|
95
|
-
export { writeOptionsSchema, onStaleModeSchema, assertWriteOptions, } from './transaction/resources/writeOptionsSchema.js';
|
|
96
|
-
export type { WriteOptionsInput } from './transaction/resources/writeOptionsSchema.js';
|
|
97
|
-
export type { OnStaleMode } from './transaction/coordination/schema.js';
|
|
98
|
-
export type { WriteOptions, MutationOptions } from './interfaces/index.js';
|
|
99
|
-
export { staleNotificationSchema, readDependencySchema } from './transaction/coordination/schema.js';
|
|
100
|
-
export type { StaleNotification, ReadDependency } from './transaction/coordination/schema.js';
|
|
101
|
-
export { ClaimLog, formatClaim, formatConflict } from './coordination/ClaimLog.js';
|
|
102
|
-
export type { ClaimLogEntry } from './coordination/ClaimLog.js';
|
|
103
|
-
export type { ClaimEvent, ConflictEvent, SyncObservabilityProvider, } from './interfaces/index.js';
|
|
104
|
-
export { noopObservability } from './RuntimeContext.js';
|
|
105
|
-
export { IDBOpenTimeoutError, isStorageOpenTimeout } from './core/openIDBWithTimeout.js';
|
|
106
|
-
export type { CommitLatencySample } from './transactions/mutations/commitLatency.js';
|
|
107
|
-
export { PUBLIC_MODEL_VERBS, PUBLIC_LIST_OPTION_KEYS, PUBLIC_ABLO_OPTION_KEYS, } from './surface.js';
|
|
108
|
-
export type { ModelVerb, ListOptionKey, AbloOptionKey } from './surface.js';
|
|
109
|
-
export type { Register, DefaultSyncShape } from './transaction/types/global.js';
|
|
110
|
-
export { defineMutators } from './mutators/defineMutators.js';
|
|
111
|
-
export { createTransaction, type Transaction } from './mutators/Transaction.js';
|
|
112
|
-
export { deepEqual, stableStringify } from './transaction/utils/json.js';
|
|
1
|
+
export * from '@abloatai/transaction';
|
|
2
|
+
export { Ablo as default } from '@abloatai/transaction';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,161 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* ```ts
|
|
5
|
-
* import Ablo from '@abloatai/ablo';
|
|
6
|
-
*
|
|
7
|
-
* const ablo = Ablo({ schema, apiKey: process.env.ABLO_API_KEY });
|
|
8
|
-
* const report = await ablo.weatherReports.retrieve({ id: 'report_stockholm' });
|
|
9
|
-
* await ablo.weatherReports.update({
|
|
10
|
-
* id: 'report_stockholm',
|
|
11
|
-
* data: { status: 'ready' },
|
|
12
|
-
* });
|
|
13
|
-
*
|
|
14
|
-
* type Entry = Ablo.Peer;
|
|
15
|
-
* ```
|
|
16
|
-
*
|
|
17
|
-
* `Ablo({ schema, apiKey })` returns typed model clients. Server-side agents,
|
|
18
|
-
* MCP route handlers, and workers select `transport: 'http'`; both transports
|
|
19
|
-
* keep the same `ablo.<model>` application surface.
|
|
20
|
-
*
|
|
21
|
-
* The whole package reaches you through one name: `Ablo` is at once a factory
|
|
22
|
-
* function, a type, and a namespace. You call model clients with dot access on
|
|
23
|
-
* the instance (`ablo.reports.retrieve(...)`) and reach every supporting type
|
|
24
|
-
* through the namespace (`Ablo.Peer`, `Ablo.Claim`).
|
|
25
|
-
*
|
|
26
|
-
* Related surfaces live on their own import subpaths:
|
|
27
|
-
* @abloatai/ablo/schema — defineSchema, model, z (Zod)
|
|
28
|
-
* @abloatai/ablo/react — <AbloProvider>, useQuery, useMutate
|
|
29
|
-
* @abloatai/ablo/testing — test harnesses and fixtures
|
|
30
|
-
*
|
|
31
|
-
* Reads come in two flavors, distinguished by where the data is fetched from.
|
|
32
|
-
* `ablo.<model>.retrieve({ id })` and `.list({ where })` are asynchronous reads
|
|
33
|
-
* that consult the local cache first and fall back to the network, de-duplicating
|
|
34
|
-
* concurrent requests for the same row. They are the default, and the right
|
|
35
|
-
* choice for stateless callers whose local graph starts empty.
|
|
36
|
-
* `ablo.<model>.local.retrieve(id)`, `.local.list(...)`, and `.local.count(...)` are synchronous
|
|
37
|
-
* snapshots of the already-loaded local graph with no network round-trip — use
|
|
38
|
-
* them in reactive React selectors (`useAblo((ablo) => ablo.<model>.get(id))`)
|
|
39
|
-
* once the graph is warm.
|
|
40
|
-
*
|
|
41
|
-
* What to import, in short:
|
|
42
|
-
* • `Ablo` (the default export), `AbloOptions`, and the `Model*Params` option
|
|
43
|
-
* bags cover what most applications and agents ever need.
|
|
44
|
-
* • the `Ablo*Error` classes let you discriminate failures in catch blocks.
|
|
45
|
-
*
|
|
46
|
-
* A handful of exports are for advanced use and are marked "Advanced" at their
|
|
47
|
-
* declaration below, each with the one situation it is for:
|
|
48
|
-
* • `dataSource` — when your own database stays canonical.
|
|
49
|
-
* • `defaultPolicy` — when you customize conflict resolution.
|
|
50
|
-
* • `defineMutators` / `createTransaction` — when you write custom mutators.
|
|
51
|
-
* If you don't recognize one of these, you don't need it.
|
|
52
|
-
*/
|
|
53
|
-
// ── Consumer API ──────────────────────────────────────────────────────────
|
|
54
|
-
// These are the only symbols external consumers should need from this path.
|
|
55
|
-
// Everything else is in a subpath.
|
|
56
|
-
// The primary surface. `Ablo` is a function, a type, and a namespace sharing
|
|
57
|
-
// one name. It is the default export, so `import Ablo from '@abloatai/ablo'`
|
|
58
|
-
// works, and a named export, so `import { Ablo }` compiles too.
|
|
59
|
-
export { Ablo } from './client/Ablo.js';
|
|
60
|
-
// The reactive materialiser as a declared capability (ADR 0016): installed by
|
|
61
|
-
// default on the socket client, named explicitly when the list is written out.
|
|
62
|
-
// `AbloPlugin` is the one uniform shape every capability declares.
|
|
63
|
-
export { humans } from './client/humans.js';
|
|
64
|
-
export { DEFAULT_CONTENTION_RETRIES } from './transaction/resources/functionalUpdate.js';
|
|
65
|
-
// The stateless HTTP client is constructed through `Ablo({ transport: 'http' })`.
|
|
66
|
-
// There is no separate constructor to import; annotate values with the
|
|
67
|
-
// `AbloHttpClient` type, which is the return type of that call.
|
|
68
|
-
export {} from './transaction/transport/httpClient.js';
|
|
69
|
-
export { ABLO_DEFAULT_BASE_URL, ABLO_HOSTED_API_DOMAIN, ABLO_HOSTED_HTTP_BASE_URL, normalizeAbloHostedBaseUrl, } from './transaction/auth/apiKey.js';
|
|
70
|
-
export { durableWritesConfigSchema, durableWriteStoreSchema, pendingWriteSchema, } from './transactions/mutations/durableWriteStore.js';
|
|
71
|
-
export { durableCommitEnvelopeSchema, } from './transaction/transactions/settlement/commitEnvelope.js';
|
|
72
|
-
export { durableHttpCommitEnvelopeSchema, } from './transaction/transactions/settlement/httpCommitEnvelope.js';
|
|
73
|
-
// Participant types live under `Ablo.Participant.*` —
|
|
74
|
-
// `Ablo.Participant.Joined`, `Ablo.Participant.Manager`,
|
|
75
|
-
// `Ablo.Participant.JoinOptions`, etc. Same dot-access shape as
|
|
76
|
-
// `Ablo.Peer`, `Ablo.Claim`. No flat re-exports.
|
|
77
|
-
import { Ablo } from './client/Ablo.js';
|
|
78
|
-
export default Ablo;
|
|
79
|
-
// Advanced, and rarely imported. The storage adapter for Data Source mode,
|
|
80
|
-
// where Ablo coordinates state while the canonical rows stay in your own
|
|
81
|
-
// database. The default is Ablo-managed storage; reach for this only when you
|
|
82
|
-
// have deliberately chosen to keep your database canonical. The matching types
|
|
83
|
-
// live under `Ablo.Source.*` (`Ablo.Source.Operation`, `Ablo.Source.Commit.Params`).
|
|
84
|
-
export { dataSource, sourceEventForOperation, signAbloSourceRequest, verifyAbloSourceRequest, } from './source/index.js';
|
|
85
|
-
// Serves the Data Source `commit`, `load`, and `list` operations over an
|
|
86
|
-
// outbound WebSocket, so a database with no public inbound URL (running on a
|
|
87
|
-
// developer's machine or inside a locked-down network) can still be reached by
|
|
88
|
-
// dialing out to Ablo rather than accepting an inbound connection.
|
|
89
|
-
export { createSourceConnector, } from './source/connector.js';
|
|
90
|
-
// Schema DSL is intentionally published from `@abloatai/ablo/schema`.
|
|
91
|
-
// Keeping it out of the root import preserves one clean runtime surface:
|
|
92
|
-
// `import Ablo from '@abloatai/ablo'`.
|
|
93
|
-
// Advanced, and rarely imported. The default conflict policy rejects writes
|
|
94
|
-
// premised on stale data and is already applied on the server, so import
|
|
95
|
-
// `defaultPolicy` only to build a custom policy on top of it. Leave it be and
|
|
96
|
-
// stale writes are rejected safely. The matching types live under `Ablo.Conflict.*`.
|
|
97
|
-
export { defaultPolicy, capabilityPreemptPolicy, interpretConflictAxis } from './policy/index.js';
|
|
98
|
-
// The typed error hierarchy. One import brings in every class you need to
|
|
99
|
-
// tell failures apart — by `e instanceof AbloX` or `e.type === 'AbloX'` — along
|
|
100
|
-
// with the helper that translates an HTTP response into the right class.
|
|
101
|
-
export { AbloSessionError,
|
|
102
|
-
// Deprecated alias, removed in 0.36.0. The barrel keeps re-exporting it until
|
|
103
|
-
// then so consumers don't lose the name a version early.
|
|
104
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
105
|
-
SyncSessionError, AbloError, AbloAuthenticationError, AbloPermissionError, AbloRateLimitError, AbloIdempotencyError, AbloConnectionError, AbloValidationError, AbloNotFoundError, AbloServerError, AbloStaleContextError, AbloClaimedError, AbloContentionError, CapabilityError, translateHttpError, hasWireCode, errorFromWire, toAbloError, ERROR_CODES, ERROR_CONTRACT_VERSION, errorCodeSpec, isRetryableCode, classifyRecovery, recoveryClassSchema, RECOVERY_CLASSES, } from './transaction/errors.js';
|
|
106
|
-
// The wire contract for errors, with no dependencies: the JSON envelope shape
|
|
107
|
-
// plus the table mapping each AbloError subclass to an HTTP status. A server
|
|
108
|
-
// that returns Ablo errors can assert against these so its responses never
|
|
109
|
-
// drift from what the client expects.
|
|
110
|
-
export { errorEnvelope, statusForType } from './transaction/wire/errorEnvelope.js';
|
|
111
|
-
export { WS_BEARER_SUBPROTOCOL_PREFIX, WS_SYNC_SUBPROTOCOL } from './transaction/auth/credentialSource.js';
|
|
112
|
-
export { ENVIRONMENTS, environmentSchema, normalizeEnvironment, environmentFromKeyPrefix, environmentToKeyPrefix, isSandboxEnvironment, } from './transaction/environment.js';
|
|
113
|
-
// The write-options contract: the single Zod schema for the option bag every
|
|
114
|
-
// write accepts (`ablo.<model>.create/update/delete`, `commits.create`, and the
|
|
115
|
-
// HTTP model routes). The SDK validates against it at each boundary, and it is
|
|
116
|
-
// exported so you can validate or assemble options before a call — for example,
|
|
117
|
-
// as the input schema of an agent tool. It is the runtime counterpart of the
|
|
118
|
-
// `MutationOptions` type.
|
|
119
|
-
export { writeOptionsSchema, onStaleModeSchema, assertWriteOptions, } from './transaction/resources/writeOptionsSchema.js';
|
|
120
|
-
// The value handed back to a writer whose change hit a stale-context conflict
|
|
121
|
-
// under `onStale: 'notify'`. Instead of throwing, the commit succeeds and
|
|
122
|
-
// returns this notification so the caller can reconcile against the current
|
|
123
|
-
// value and retry rather than discard its work.
|
|
124
|
-
export { staleNotificationSchema, readDependencySchema } from './transaction/coordination/schema.js';
|
|
125
|
-
// Collects claim events and stale-write collisions into an ordered list you can
|
|
126
|
-
// print to inspect coordination, or read through `collisions()` to assert on in
|
|
127
|
-
// tests. Pass `new ClaimLog()` as `Ablo({ observability })`.
|
|
128
|
-
export { ClaimLog, formatClaim, formatConflict } from './coordination/ClaimLog.js';
|
|
129
|
-
// Spread this to provide a custom `observability` that overrides only the hooks
|
|
130
|
-
// you care about (e.g. captureClaim) and no-ops the rest.
|
|
131
|
-
export { noopObservability } from './RuntimeContext.js';
|
|
132
|
-
// Detects a stuck local store: use these to recognize when the browser's
|
|
133
|
-
// IndexedDB backing store fails to open in time, so your app can show a
|
|
134
|
-
// recovery screen instead of hanging.
|
|
135
|
-
export { IDBOpenTimeoutError, isStorageOpenTimeout } from './core/openIDBWithTimeout.js';
|
|
136
|
-
// A machine-readable manifest of the SDK's public verb and option names, bound
|
|
137
|
-
// at compile time to the real types so the lists can never name a method or
|
|
138
|
-
// option the API doesn't have. Useful for generating documentation or tooling
|
|
139
|
-
// that needs to enumerate the surface.
|
|
140
|
-
export { PUBLIC_MODEL_VERBS, PUBLIC_LIST_OPTION_KEYS, PUBLIC_ABLO_OPTION_KEYS, } from './surface.js';
|
|
141
|
-
// Advanced, and rarely imported. Custom mutators. Ordinary writes go through
|
|
142
|
-
// `ablo.<model>.create/update/delete`; reach for `defineMutators` only when you
|
|
143
|
-
// need a named, multi-step mutation with its own undo behavior. The matching
|
|
144
|
-
// types live under the `Ablo` namespace:
|
|
145
|
-
// Ablo.Mutator.Fn, Ablo.Mutator.Transaction
|
|
146
|
-
// Ablo.Mutator.UndoEntry, Ablo.Mutator.UndoScope, Ablo.Mutator.InverseOp
|
|
147
|
-
export { defineMutators } from './mutators/defineMutators.js';
|
|
148
|
-
// `createTransaction` lets callers outside React — server-side workers, agent
|
|
149
|
-
// runtimes — run custom mutators without the `useMutators` hook. Build a
|
|
150
|
-
// transaction from the client's schema, store, and organization id, then pass
|
|
151
|
-
// it to your mutator function as `{ tx, args }`.
|
|
152
|
-
export { createTransaction } from './mutators/Transaction.js';
|
|
153
|
-
// Undo runtime is intentionally not part of the public root surface. App code
|
|
154
|
-
// uses `useUndoScope` from `@abloatai/ablo/react`.
|
|
155
|
-
// JSON comparison helpers. A `field.json()` value stored in a Postgres `jsonb`
|
|
156
|
-
// column can come back with its object keys reordered, because jsonb does not
|
|
157
|
-
// preserve key order. A naive `JSON.stringify(a) === JSON.stringify(b)` check
|
|
158
|
-
// then reports a difference that isn't real — a common trap when reconciling an
|
|
159
|
-
// Ablo row against external editor state. These compare independent of key
|
|
160
|
-
// order, so use them instead.
|
|
161
|
-
export { deepEqual, stableStringify } from './transaction/utils/json.js';
|
|
1
|
+
export * from '@abloatai/transaction';
|
|
2
|
+
export { Ablo as default } from '@abloatai/transaction';
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/react.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC9E,cAAc,wBAAwB,CAAC"}
|
package/dist/react.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEhD,cAAc,wBAAwB,CAAC"}
|
package/dist/schema.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC"}
|
package/dist/schema.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC"}
|
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC"}
|
package/dist/server.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-conformance.d.ts","sourceRoot":"","sources":["../src/source-conformance.ts"],"names":[],"mappings":"AAAA,cAAc,0CAA0C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-conformance.js","sourceRoot":"","sources":["../src/source-conformance.ts"],"names":[],"mappings":"AAAA,cAAc,0CAA0C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-drizzle.d.ts","sourceRoot":"","sources":["../src/source-drizzle.ts"],"names":[],"mappings":"AAAA,cAAc,sCAAsC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-drizzle.js","sourceRoot":"","sources":["../src/source-drizzle.ts"],"names":[],"mappings":"AAAA,cAAc,sCAAsC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-kysely.d.ts","sourceRoot":"","sources":["../src/source-kysely.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-kysely.js","sourceRoot":"","sources":["../src/source-kysely.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-next.d.ts","sourceRoot":"","sources":["../src/source-next.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-next.js","sourceRoot":"","sources":["../src/source-next.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC"}
|
package/dist/source.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC"}
|
package/dist/source.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source.js","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC"}
|
package/dist/wire.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../src/wire.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC"}
|
package/dist/wire.js
ADDED
package/dist/wire.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../src/wire.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC"}
|
package/docs/agents.md
CHANGED
|
@@ -34,7 +34,7 @@ const ablo = Ablo({ schema, apiKey: process.env.ABLO_API_KEY, transport: "http"
|
|
|
34
34
|
// `retrieve` resolves to the row, or `undefined` when none matches.
|
|
35
35
|
const open = await ablo.tasks.list({ where: { status: "todo" } });
|
|
36
36
|
|
|
37
|
-
const task = await ablo.tasks.
|
|
37
|
+
const task = await ablo.tasks.get({ id: open[0].id });
|
|
38
38
|
if (!task) throw new Error("task not found");
|
|
39
39
|
|
|
40
40
|
console.log(task.title);
|
|
@@ -47,7 +47,7 @@ and `claim`. It does **not** expose the stateful-only surface (`get` /
|
|
|
47
47
|
live connection, so with `transport: 'http'` the return type narrows and they
|
|
48
48
|
are a *compile error*, not a runtime surprise.
|
|
49
49
|
|
|
50
|
-
## Coordination
|
|
50
|
+
## Coordination: claim, queue, reorder
|
|
51
51
|
|
|
52
52
|
The differentiator. A claim is a **durable lease + FIFO wait-line** on a row —
|
|
53
53
|
"who's working on this, who's waiting" — and it's request/response, so an agent
|
package/docs/api-keys.md
CHANGED
|
@@ -21,9 +21,9 @@ Pick your row:
|
|
|
21
21
|
|
|
22
22
|
| Where your code runs | What to pass | Example |
|
|
23
23
|
|---|---|---|
|
|
24
|
-
| **Server / worker / CLI** (can hold a secret) | your secret `sk_
|
|
25
|
-
| **Browser
|
|
26
|
-
| **Browser
|
|
24
|
+
| **Server / worker / CLI** (can hold a secret) | your secret `sk_`: it defaults to `ABLO_API_KEY`, so usually pass **nothing** | `Ablo({ schema })` |
|
|
25
|
+
| **Browser: read-only** | a publishable `pk_` (safe to ship, like a Stripe `pk_`) | `Ablo({ schema, apiKey: process.env.NEXT_PUBLIC_ABLO_PUBLISHABLE_KEY })` |
|
|
26
|
+
| **Browser: writing as the signed-in user** | `authEndpoint`: the route on your own backend that mints a short-lived per-user token | `Ablo({ schema, authEndpoint: '/api/ablo-session' })` |
|
|
27
27
|
|
|
28
28
|
That's the whole story: one knob, filled by audience.
|
|
29
29
|
|
|
@@ -31,10 +31,10 @@ That's the whole story: one knob, filled by audience.
|
|
|
31
31
|
|
|
32
32
|
| Stripe | Ablo | Where it goes |
|
|
33
33
|
|---|---|---|
|
|
34
|
-
| publishable `pk_` (client-safe) | `pk_` | browser
|
|
35
|
-
| secret `sk_` (server, full) | `sk_` | server
|
|
36
|
-
| restricted `rk_` (granular) | `rk_` | scoped
|
|
37
|
-
| ephemeral key (client, customer-scoped) | `ek_` | per-user browser sessions (`sessions.create({ user })`) |
|
|
34
|
+
| publishable `pk_` (client-safe) | `pk_` | browser: read-only |
|
|
35
|
+
| secret `sk_` (server, full) | `sk_` | server: full authority |
|
|
36
|
+
| restricted `rk_` (granular) | `rk_` | scoped agents (`agents.create({ can })`) |
|
|
37
|
+
| ephemeral key (client, customer-scoped) | `ek_` | per-user browser sessions (`sessions.create({ user, can })`) |
|
|
38
38
|
|
|
39
39
|
Mode lives in the prefix too — `sk_test_` / `sk_live_` — exactly like Stripe. The
|
|
40
40
|
`apiKey` resolver fetching an `ek_` is Ablo's ephemeral-key flow: server mints, client holds.
|
|
@@ -42,7 +42,7 @@ Mode lives in the prefix too — `sk_test_` / `sk_live_` — exactly like Stripe
|
|
|
42
42
|
**Why a function for browser writes?** Anything you ship to a browser must be public, and a
|
|
43
43
|
public `pk_` is **read-only** — it can't carry one specific user's write authority. So when
|
|
44
44
|
the browser writes *as the logged-in user*, your backend (which holds the secret `sk_` and
|
|
45
|
-
knows who's signed in) mints a short-lived per-user token with `sessions.create({ user })`,
|
|
45
|
+
knows who's signed in) mints a short-lived per-user token with `sessions.create({ user, can })`,
|
|
46
46
|
and the browser's `apiKey` function fetches it. You don't manage refresh — the SDK calls the
|
|
47
47
|
function once before connecting and then keeps the token fresh (re-mint before expiry, and on
|
|
48
48
|
tab-focus / network-online / device-wake). This is the Stripe ephemeral-key / Supabase
|
|
@@ -58,10 +58,11 @@ knobs, and you set exactly one.
|
|
|
58
58
|
|
|
59
59
|
| Mint | Call | Result |
|
|
60
60
|
|---|---|---|
|
|
61
|
-
| Human end-user session | `await server.sessions.create({ user: { id } })` | `ek_` (
|
|
62
|
-
|
|
|
61
|
+
| Human end-user session | `await server.sessions.create({ user: { id }, can: { tasks: ['read'] } })` | `ek_` (scoped to `can`) |
|
|
62
|
+
| Ready agent client | `await server.agents.create({ can: { tasks: ['update'] } })` | Auto-refreshing client scoped to `can` |
|
|
63
|
+
| Raw delegated agent token | `await server.sessions.create({ agent: { id }, can: { tasks: ['update'] } })` | `rk_` for another runtime |
|
|
63
64
|
|
|
64
|
-
The principal kind comes from *which* shape you pass — `{ user }` → `user`, `{ agent, can }` → `agent`.
|
|
65
|
+
The principal kind comes from *which* shape you pass — `{ user, can }` → `user`, `{ agent, can }` → `agent`.
|
|
65
66
|
|
|
66
67
|
## Server-Side API Keys
|
|
67
68
|
|
|
@@ -74,7 +75,7 @@ Use API keys from trusted (server-side) runtimes:
|
|
|
74
75
|
|
|
75
76
|
Never ship a secret API key to a browser bundle.
|
|
76
77
|
|
|
77
|
-
## Publishable key (`pk_`)
|
|
78
|
+
## Publishable key (`pk_`): browser-safe, read-only
|
|
78
79
|
|
|
79
80
|
For a read-only browser experience, a publishable key is safe to ship in the
|
|
80
81
|
bundle. Like a Stripe `pk_` or a Supabase anon key, it is long-lived,
|