@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,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Small, self-contained helpers for sorting, filtering, and binary insertion.
|
|
3
|
-
* The incrementally-updated views that implement {@link IncrementalView} rely on
|
|
4
|
-
* these for their ordering and matching, so keeping the rules in one place
|
|
5
|
-
* ensures every view sorts and filters identically. The functions here work on
|
|
6
|
-
* plain arrays and values — they hold no reference to models, pools, or the
|
|
7
|
-
* reactivity system.
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* The interface a live view implements to receive incremental updates: one call
|
|
11
|
-
* when an entity is added, one when it changes, and one when it is removed. A
|
|
12
|
-
* view registry holds its views under this non-generic base type so it can keep
|
|
13
|
-
* views over different entity shapes in a single collection and notify them
|
|
14
|
-
* uniformly. Because a generic `View<T>` is invariant in `T`, this shared base
|
|
15
|
-
* is what lets the registry store and dispatch to them without unsafe casts.
|
|
16
|
-
*/
|
|
17
|
-
export interface IncrementalView {
|
|
18
|
-
handleAdded(entity: Record<string, unknown>): void;
|
|
19
|
-
handleUpdated(entity: Record<string, unknown>): void;
|
|
20
|
-
handleRemoved(id: string): void;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Compares two values for sorting, tolerating `null` and `undefined`, which
|
|
24
|
-
* always sort last regardless of direction. `dir` is 1 for ascending or -1 for
|
|
25
|
-
* descending. Returns -1, 0, or 1.
|
|
26
|
-
*/
|
|
27
|
-
export declare function compareValues(a: unknown, b: unknown, dir: 1 | -1): number;
|
|
28
|
-
/**
|
|
29
|
-
* Finds, by binary search, the index at which `item` should be inserted to keep
|
|
30
|
-
* an array ordered. The array must already be sorted by `sortKey` in direction
|
|
31
|
-
* `dir`, using the same rule as {@link compareValues}. Returns that insertion
|
|
32
|
-
* index.
|
|
33
|
-
*/
|
|
34
|
-
export declare function binaryInsertionIndex<T>(arr: ArrayLike<T>, item: T, sortKey: string, dir: 1 | -1): number;
|
|
35
|
-
/**
|
|
36
|
-
* Returns true when an entity satisfies a declarative `where` filter: every key
|
|
37
|
-
* present in `where` must equal the entity's value for that key. A key whose
|
|
38
|
-
* filter value is `undefined` is skipped, so a partially-filled filter matches
|
|
39
|
-
* on only its defined keys.
|
|
40
|
-
*/
|
|
41
|
-
export declare function matchesWhere<T extends Record<string, unknown>>(entity: T, where: Partial<T>): boolean;
|
|
42
|
-
/**
|
|
43
|
-
* Find the index of an entity by id in an array. Returns -1 if not found.
|
|
44
|
-
*/
|
|
45
|
-
export declare function findIndexById<T extends Record<string, unknown>>(arr: ArrayLike<T>, id: string): number;
|
package/dist/core/queryUtils.js
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Small, self-contained helpers for sorting, filtering, and binary insertion.
|
|
3
|
-
* The incrementally-updated views that implement {@link IncrementalView} rely on
|
|
4
|
-
* these for their ordering and matching, so keeping the rules in one place
|
|
5
|
-
* ensures every view sorts and filters identically. The functions here work on
|
|
6
|
-
* plain arrays and values — they hold no reference to models, pools, or the
|
|
7
|
-
* reactivity system.
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* Compares two values for sorting, tolerating `null` and `undefined`, which
|
|
11
|
-
* always sort last regardless of direction. `dir` is 1 for ascending or -1 for
|
|
12
|
-
* descending. Returns -1, 0, or 1.
|
|
13
|
-
*/
|
|
14
|
-
export function compareValues(a, b, dir) {
|
|
15
|
-
if (a === b)
|
|
16
|
-
return 0;
|
|
17
|
-
if (a == null)
|
|
18
|
-
return 1;
|
|
19
|
-
if (b == null)
|
|
20
|
-
return -1;
|
|
21
|
-
return (a < b ? -1 : 1) * dir;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Finds, by binary search, the index at which `item` should be inserted to keep
|
|
25
|
-
* an array ordered. The array must already be sorted by `sortKey` in direction
|
|
26
|
-
* `dir`, using the same rule as {@link compareValues}. Returns that insertion
|
|
27
|
-
* index.
|
|
28
|
-
*/
|
|
29
|
-
export function binaryInsertionIndex(arr, item, sortKey, dir) {
|
|
30
|
-
let lo = 0;
|
|
31
|
-
let hi = arr.length;
|
|
32
|
-
const itemVal = item[sortKey];
|
|
33
|
-
while (lo < hi) {
|
|
34
|
-
const mid = (lo + hi) >>> 1;
|
|
35
|
-
const midVal = arr[mid][sortKey];
|
|
36
|
-
if (compareValues(midVal, itemVal, dir) <= 0) {
|
|
37
|
-
lo = mid + 1;
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
hi = mid;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
return lo;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Returns true when an entity satisfies a declarative `where` filter: every key
|
|
47
|
-
* present in `where` must equal the entity's value for that key. A key whose
|
|
48
|
-
* filter value is `undefined` is skipped, so a partially-filled filter matches
|
|
49
|
-
* on only its defined keys.
|
|
50
|
-
*/
|
|
51
|
-
export function matchesWhere(entity, where) {
|
|
52
|
-
for (const [key, value] of Object.entries(where)) {
|
|
53
|
-
if (value === undefined)
|
|
54
|
-
continue;
|
|
55
|
-
if (entity[key] !== value)
|
|
56
|
-
return false;
|
|
57
|
-
}
|
|
58
|
-
return true;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Find the index of an entity by id in an array. Returns -1 if not found.
|
|
62
|
-
*/
|
|
63
|
-
export function findIndexById(arr, id) {
|
|
64
|
-
for (let i = 0; i < arr.length; i++) {
|
|
65
|
-
if (arr[i]?.id === id)
|
|
66
|
-
return i;
|
|
67
|
-
}
|
|
68
|
-
return -1;
|
|
69
|
-
}
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The framework-neutral store contract. {@link SyncStoreContract} is the minimal
|
|
3
|
-
* store interface the SDK's hooks and mutators are written against, and
|
|
4
|
-
* {@link BaseSyncedStore} is the concrete class that implements it. Framework
|
|
5
|
-
* integrations, such as the React bindings, re-export these types, so a hook can
|
|
6
|
-
* accept any store that satisfies the contract without depending on a particular
|
|
7
|
-
* UI framework.
|
|
8
|
-
*
|
|
9
|
-
* This module is type-only: it has no runtime imports and contributes nothing to
|
|
10
|
-
* the runtime bundle beyond the erased interface declarations.
|
|
11
|
-
*/
|
|
12
|
-
import type { Model } from '../Model.js';
|
|
13
|
-
import type { ModelScope } from '../transaction/types/index.js';
|
|
14
|
-
import type { QueryView, QueryViewOptions } from './QueryView.js';
|
|
15
|
-
import type { ViewRegistry } from './ViewRegistry.js';
|
|
16
|
-
import type { ParticipantScope } from '../sync/participants.js';
|
|
17
|
-
/**
|
|
18
|
-
* A snapshot of the client's synchronization state, shaped for binding to UI.
|
|
19
|
-
* {@link SyncStoreContract.syncStatus} exposes a reactive instance of this, and
|
|
20
|
-
* the `useSyncStatus()` hook reads its fields to render connection and progress
|
|
21
|
-
* indicators.
|
|
22
|
-
*/
|
|
23
|
-
export interface SyncStatus {
|
|
24
|
-
state: 'idle' | 'syncing' | 'error' | 'offline' | 'reconnecting';
|
|
25
|
-
progress: number;
|
|
26
|
-
error?: Error;
|
|
27
|
-
/** When true, the error is a session/auth error requiring re-authentication. */
|
|
28
|
-
isSessionError: boolean;
|
|
29
|
-
lastSyncAt?: Date;
|
|
30
|
-
pendingChanges: number;
|
|
31
|
-
offlineSince?: Date;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* A single locally-originated mutation, observed as it flows through the commit
|
|
35
|
-
* stream. The undo system records these to build its inverse operations: one is
|
|
36
|
-
* emitted per local create, update, delete, or archive. Changes arriving from
|
|
37
|
-
* other participants do not appear here — they apply through a separate path
|
|
38
|
-
* that does not queue mutations. Because `previousData` captures the field
|
|
39
|
-
* values as they were before the edit, each event carries everything needed to
|
|
40
|
-
* derive its inverse, with no separate snapshot step. A store exposes this
|
|
41
|
-
* stream through {@link SyncStoreContract.subscribeLocalMutations}.
|
|
42
|
-
*/
|
|
43
|
-
export interface LocalMutation {
|
|
44
|
-
type: 'create' | 'update' | 'delete' | 'archive' | 'unarchive';
|
|
45
|
-
/** The registered name of the mutated model, for example `'Block'`. */
|
|
46
|
-
modelName: string;
|
|
47
|
-
modelId: string;
|
|
48
|
-
/** The new field values, for a create or an update. */
|
|
49
|
-
data?: Record<string, unknown> | null;
|
|
50
|
-
/** The field values as they were before the edit. For an update these form
|
|
51
|
-
* the inverse patch; for a delete they hold the full row needed to recreate
|
|
52
|
-
* it. */
|
|
53
|
-
previousData?: Record<string, unknown> | null;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* The minimal store interface the SDK's hooks and mutators depend on. Provide a
|
|
57
|
-
* concrete store that implements it — {@link BaseSyncedStore} is the built-in
|
|
58
|
-
* implementation — and the hooks work against your store without knowing its
|
|
59
|
-
* exact type. Optional members exist so lightweight test doubles can implement
|
|
60
|
-
* only the parts they exercise.
|
|
61
|
-
*/
|
|
62
|
-
export interface SyncStoreContract {
|
|
63
|
-
/**
|
|
64
|
-
* Subscribes to the stream of local mutations for undo recording, delivering
|
|
65
|
-
* each optimistic write before it is acknowledged by the server. See
|
|
66
|
-
* {@link LocalMutation}. Returns a function that removes the subscription.
|
|
67
|
-
* This is optional: when a store does not implement it, undo scopes simply
|
|
68
|
-
* record nothing.
|
|
69
|
-
*/
|
|
70
|
-
subscribeLocalMutations?(handler: (mutation: LocalMutation) => void): () => void;
|
|
71
|
-
retrieve(modelClass: abstract new (...args: never[]) => Model, id: string): Model | undefined;
|
|
72
|
-
queryByClass(modelClass: abstract new (...args: never[]) => Model, options?: {
|
|
73
|
-
predicate?: (model: Model) => boolean;
|
|
74
|
-
scope?: ModelScope;
|
|
75
|
-
orderBy?: keyof Model;
|
|
76
|
-
order?: 'asc' | 'desc';
|
|
77
|
-
limit?: number;
|
|
78
|
-
offset?: number;
|
|
79
|
-
}): {
|
|
80
|
-
data: Model[];
|
|
81
|
-
};
|
|
82
|
-
/**
|
|
83
|
-
* Saves one entity, creating it if new or updating it if it already exists.
|
|
84
|
-
* Calling `save` repeatedly within the same tick is efficient: the writes are
|
|
85
|
-
* coalesced and persisted, then sent to the server, as a single commit. There
|
|
86
|
-
* is deliberately no bulk method — issue one `save` per row and let the tick
|
|
87
|
-
* boundary batch them.
|
|
88
|
-
*
|
|
89
|
-
* Pass `skipValidation` on trusted, high-volume paths — bulk import or
|
|
90
|
-
* hydration, where the data has already been validated — to skip the per-row
|
|
91
|
-
* schema check, which is a measurable cost at that volume.
|
|
92
|
-
*/
|
|
93
|
-
save(model: Model, options?: {
|
|
94
|
-
skipValidation?: boolean;
|
|
95
|
-
}): Promise<void>;
|
|
96
|
-
delete(model: Model): Promise<void>;
|
|
97
|
-
archive(model: Model): Promise<void>;
|
|
98
|
-
unarchive(model: Model): Promise<void>;
|
|
99
|
-
/** The in-memory object pool: look up individual entities or collections by
|
|
100
|
-
* id or model name, create views, and resolve foreign-key relationships. */
|
|
101
|
-
pool: {
|
|
102
|
-
get(id: string): Model | undefined;
|
|
103
|
-
getByTypeName(typename: string, scope?: ModelScope): Model[];
|
|
104
|
-
getByForeignKey(modelName: string, fieldName: string, fieldValue: string): Model[];
|
|
105
|
-
createFromData(data: Record<string, unknown>): Model | null;
|
|
106
|
-
hasForeignKeyIndex(typename: string, fieldName: string): boolean;
|
|
107
|
-
createView<T extends Record<string, unknown>>(typename: string, options?: QueryViewOptions<T>): QueryView<T>;
|
|
108
|
-
viewRegistry: ViewRegistry;
|
|
109
|
-
};
|
|
110
|
-
/**
|
|
111
|
-
* Reactive getters for the current sync state. In the built-in store these
|
|
112
|
-
* are backed by observable computeds, so reading them inside a reactive
|
|
113
|
-
* context — an observer component or a reaction — re-runs that context when
|
|
114
|
-
* the state changes. Code that prefers not to work with the reactivity system
|
|
115
|
-
* directly can read the same values through the `useSyncStatus()` hook.
|
|
116
|
-
*/
|
|
117
|
-
readonly isReady: boolean;
|
|
118
|
-
readonly isSyncing: boolean;
|
|
119
|
-
readonly isOffline: boolean;
|
|
120
|
-
readonly isReconnecting: boolean;
|
|
121
|
-
readonly isError: boolean;
|
|
122
|
-
readonly hasUnsyncedChanges: boolean;
|
|
123
|
-
/**
|
|
124
|
-
* Manages the connection's area of interest — the dynamic set of data it
|
|
125
|
-
* subscribes to. Call `enterScope` and `leaveScope` to move that interest as
|
|
126
|
-
* the user navigates between documents, and `pinScope` and `unpinScope` to
|
|
127
|
-
* keep a scope subscribed while it stays important, such as while a claim is
|
|
128
|
-
* held. Every scope resolves through the same resolver the claim path uses, so
|
|
129
|
-
* read subscriptions and write claims always agree on which group they refer
|
|
130
|
-
* to. These are optional and do nothing until the connection is open.
|
|
131
|
-
*/
|
|
132
|
-
enterScope?(scope: ParticipantScope, opts?: {
|
|
133
|
-
hydrate?: boolean;
|
|
134
|
-
}): Promise<void>;
|
|
135
|
-
leaveScope?(scope: ParticipantScope): Promise<void>;
|
|
136
|
-
pinScope?(scope: ParticipantScope): Promise<void>;
|
|
137
|
-
unpinScope?(scope: ParticipantScope): Promise<void>;
|
|
138
|
-
/**
|
|
139
|
-
* The full reactive {@link SyncStatus} record. The `useSyncStatus()` hook
|
|
140
|
-
* reads its fields — `state`, `progress`, `pendingChanges`, `isSessionError`,
|
|
141
|
-
* and `error` — to present the current sync state. It is part of the contract
|
|
142
|
-
* so hooks and test doubles can read or set it directly.
|
|
143
|
-
*/
|
|
144
|
-
readonly syncStatus: SyncStatus;
|
|
145
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The framework-neutral store contract. {@link SyncStoreContract} is the minimal
|
|
3
|
-
* store interface the SDK's hooks and mutators are written against, and
|
|
4
|
-
* {@link BaseSyncedStore} is the concrete class that implements it. Framework
|
|
5
|
-
* integrations, such as the React bindings, re-export these types, so a hook can
|
|
6
|
-
* accept any store that satisfies the contract without depending on a particular
|
|
7
|
-
* UI framework.
|
|
8
|
-
*
|
|
9
|
-
* This module is type-only: it has no runtime imports and contributes nothing to
|
|
10
|
-
* the runtime bundle beyond the erased interface declarations.
|
|
11
|
-
*/
|
|
12
|
-
export {};
|
package/dist/docs/catalog.d.ts
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The catalog of documentation this package ships.
|
|
3
|
-
*
|
|
4
|
-
* One definition of *which docs exist*, read from the files themselves. Every
|
|
5
|
-
* reader — `ablo docs`, the public `/api/docs/*` routes, the MCP docs tools —
|
|
6
|
-
* resolves through here rather than keeping its own list, because a
|
|
7
|
-
* hand-maintained index of a directory is a copy that drifts the moment a page
|
|
8
|
-
* is added and nothing fails when it does. Before this module the public web
|
|
9
|
-
* allowlist had fallen 21 pages behind the corpus, including `coordination`.
|
|
10
|
-
*
|
|
11
|
-
* Title and description are DERIVED from each file's own convention: an H1,
|
|
12
|
-
* then a one-paragraph blockquote stating what the page is for. That blockquote
|
|
13
|
-
* is the description everywhere it is needed — the site frontmatter lifts the
|
|
14
|
-
* same line — so a page states its own promise exactly once, in the source that
|
|
15
|
-
* ships in the npm tarball and still reads correctly as plain markdown.
|
|
16
|
-
*
|
|
17
|
-
* The published set mirrors the tarball's `files` globs (`docs/*.md`,
|
|
18
|
-
* `docs/examples/*.md`, plus the three root files). Anything else under `docs/`
|
|
19
|
-
* — `docs/internal/**` above all — is neither shipped nor catalogued, and that
|
|
20
|
-
* exclusion is the only thing keeping internal notes off the public routes now
|
|
21
|
-
* that they read from here.
|
|
22
|
-
*/
|
|
23
|
-
/** Where a page sits in the corpus, and how a reader should group it. */
|
|
24
|
-
export type DocKind = 'guide' | 'example' | 'package';
|
|
25
|
-
/** One documentation page, as shipped. */
|
|
26
|
-
export interface DocEntry {
|
|
27
|
-
/** Stable reference: `quickstart`, `examples/nextjs`, `agents`. */
|
|
28
|
-
readonly slug: string;
|
|
29
|
-
/** Human-readable title — the file's H1, or curated for the root files. */
|
|
30
|
-
readonly title: string;
|
|
31
|
-
/** One line stating what the page is for — the file's promise blockquote. */
|
|
32
|
-
readonly description: string;
|
|
33
|
-
readonly kind: DocKind;
|
|
34
|
-
/** Absolute path on disk. */
|
|
35
|
-
readonly path: string;
|
|
36
|
-
readonly mime: string;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Read the catalog from a package root — the directory holding `docs/` and the
|
|
40
|
-
* three root files.
|
|
41
|
-
*
|
|
42
|
-
* The root is a parameter rather than resolved here because each reader knows
|
|
43
|
-
* it differently and they are genuinely different facts: the CLI resolves it
|
|
44
|
-
* against its own bundle inside `node_modules`, while the web app resolves it
|
|
45
|
-
* against the monorepo checkout. Nothing is cached; callers that serve many
|
|
46
|
-
* requests should memoize the returned array.
|
|
47
|
-
*/
|
|
48
|
-
export declare function readDocsCatalog(packageRoot: string): Promise<DocEntry[]>;
|
|
49
|
-
/**
|
|
50
|
-
* Pull a page's title and promise line out of its markdown.
|
|
51
|
-
*
|
|
52
|
-
* The convention every page follows: an H1, then a blockquote paragraph saying
|
|
53
|
-
* what the page is for. A page missing either simply reports what it has — the
|
|
54
|
-
* catalog never invents prose.
|
|
55
|
-
*/
|
|
56
|
-
export declare function parseDocHeader(body: string): {
|
|
57
|
-
readonly title: string | null;
|
|
58
|
-
readonly description: string;
|
|
59
|
-
};
|
|
60
|
-
/**
|
|
61
|
-
* Resolve a reference to a page. Accepts the slug (`coordination`), a curated
|
|
62
|
-
* alias (`storage`), or a repo-relative path (`docs/coordination.md`,
|
|
63
|
-
* `AGENTS.md`) — the three forms readers actually arrive with. Returns null
|
|
64
|
-
* rather than throwing so a caller can render its own not-found.
|
|
65
|
-
*/
|
|
66
|
-
export declare function findDoc(catalog: readonly DocEntry[], reference: string): DocEntry | null;
|
|
67
|
-
/**
|
|
68
|
-
* Slugs closest to a miss, for a "did you mean" line. Ranks by shared prefix,
|
|
69
|
-
* then substring containment — enough to catch a typo or a half-remembered
|
|
70
|
-
* name without pulling in a distance library.
|
|
71
|
-
*/
|
|
72
|
-
export declare function suggestSlugs(catalog: readonly DocEntry[], reference: string, limit?: number): string[];
|
package/dist/docs/catalog.js
DELETED
|
@@ -1,227 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The catalog of documentation this package ships.
|
|
3
|
-
*
|
|
4
|
-
* One definition of *which docs exist*, read from the files themselves. Every
|
|
5
|
-
* reader — `ablo docs`, the public `/api/docs/*` routes, the MCP docs tools —
|
|
6
|
-
* resolves through here rather than keeping its own list, because a
|
|
7
|
-
* hand-maintained index of a directory is a copy that drifts the moment a page
|
|
8
|
-
* is added and nothing fails when it does. Before this module the public web
|
|
9
|
-
* allowlist had fallen 21 pages behind the corpus, including `coordination`.
|
|
10
|
-
*
|
|
11
|
-
* Title and description are DERIVED from each file's own convention: an H1,
|
|
12
|
-
* then a one-paragraph blockquote stating what the page is for. That blockquote
|
|
13
|
-
* is the description everywhere it is needed — the site frontmatter lifts the
|
|
14
|
-
* same line — so a page states its own promise exactly once, in the source that
|
|
15
|
-
* ships in the npm tarball and still reads correctly as plain markdown.
|
|
16
|
-
*
|
|
17
|
-
* The published set mirrors the tarball's `files` globs (`docs/*.md`,
|
|
18
|
-
* `docs/examples/*.md`, plus the three root files). Anything else under `docs/`
|
|
19
|
-
* — `docs/internal/**` above all — is neither shipped nor catalogued, and that
|
|
20
|
-
* exclusion is the only thing keeping internal notes off the public routes now
|
|
21
|
-
* that they read from here.
|
|
22
|
-
*/
|
|
23
|
-
import { readdir, readFile } from 'node:fs/promises';
|
|
24
|
-
import { basename, join } from 'node:path';
|
|
25
|
-
const MARKDOWN_MIME = 'text/markdown; charset=utf-8';
|
|
26
|
-
const TEXT_MIME = 'text/plain; charset=utf-8';
|
|
27
|
-
/**
|
|
28
|
-
* The three files that document the package itself rather than a topic. They
|
|
29
|
-
* live at the package root, not under `docs/`, and none follows the H1 +
|
|
30
|
-
* blockquote convention — `llms.txt` opens with a prose paragraph and
|
|
31
|
-
* `README.md` with a banner — so their titles and descriptions are curated
|
|
32
|
-
* here, the one place that knows they are a different kind of artifact.
|
|
33
|
-
*
|
|
34
|
-
* Their slug is their filename, because the filename IS how these are referred
|
|
35
|
-
* to everywhere (`AGENTS.md` is an ecosystem convention, not a topic name) and
|
|
36
|
-
* because a bare word would collide: `docs/agents.md` is a published guide that
|
|
37
|
-
* the docs index cross-links as `agents`, and whichever of the two won that
|
|
38
|
-
* name would silently shadow the other. Friendlier spellings are aliases below.
|
|
39
|
-
*/
|
|
40
|
-
const PACKAGE_FILES = [
|
|
41
|
-
{
|
|
42
|
-
filename: 'AGENTS.md',
|
|
43
|
-
title: 'AGENTS.md',
|
|
44
|
-
description: 'The playbook a coding agent follows to install and drive Ablo without hanging on a prompt.',
|
|
45
|
-
mime: MARKDOWN_MIME,
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
filename: 'README.md',
|
|
49
|
-
title: 'README',
|
|
50
|
-
description: 'Package overview — what Ablo is and the shape of the API.',
|
|
51
|
-
mime: MARKDOWN_MIME,
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
filename: 'llms.txt',
|
|
55
|
-
title: 'llms.txt',
|
|
56
|
-
description: 'The curated single-file index of the whole API, for machine readers.',
|
|
57
|
-
mime: TEXT_MIME,
|
|
58
|
-
},
|
|
59
|
-
];
|
|
60
|
-
/**
|
|
61
|
-
* Curated redirects for references that are not a slug: the friendly spellings
|
|
62
|
-
* of the root files, plus the renames the public URLs carried before this
|
|
63
|
-
* module existed, kept so old links and any agent working from a cached page
|
|
64
|
-
* still resolve. Identity mappings are NOT listed — a slug resolves to itself
|
|
65
|
-
* by derivation, and restating the other 30 here would rebuild the
|
|
66
|
-
* hand-maintained list this module exists to delete.
|
|
67
|
-
*/
|
|
68
|
-
const SLUG_ALIASES = {
|
|
69
|
-
readme: 'README.md',
|
|
70
|
-
overview: 'README.md',
|
|
71
|
-
llms: 'llms.txt',
|
|
72
|
-
storage: 'data-sources',
|
|
73
|
-
'docs/storage.md': 'data-sources',
|
|
74
|
-
};
|
|
75
|
-
/**
|
|
76
|
-
* Read the catalog from a package root — the directory holding `docs/` and the
|
|
77
|
-
* three root files.
|
|
78
|
-
*
|
|
79
|
-
* The root is a parameter rather than resolved here because each reader knows
|
|
80
|
-
* it differently and they are genuinely different facts: the CLI resolves it
|
|
81
|
-
* against its own bundle inside `node_modules`, while the web app resolves it
|
|
82
|
-
* against the monorepo checkout. Nothing is cached; callers that serve many
|
|
83
|
-
* requests should memoize the returned array.
|
|
84
|
-
*/
|
|
85
|
-
export async function readDocsCatalog(packageRoot) {
|
|
86
|
-
const docsDir = join(packageRoot, 'docs');
|
|
87
|
-
const entries = [];
|
|
88
|
-
entries.push(...(await readDocsDirectory(docsDir, 'guide')));
|
|
89
|
-
entries.push(...(await readDocsDirectory(join(docsDir, 'examples'), 'example')));
|
|
90
|
-
for (const file of PACKAGE_FILES) {
|
|
91
|
-
const path = join(packageRoot, file.filename);
|
|
92
|
-
const body = await readFileOrNull(path);
|
|
93
|
-
if (body === null)
|
|
94
|
-
continue;
|
|
95
|
-
entries.push({
|
|
96
|
-
slug: file.filename,
|
|
97
|
-
title: file.title,
|
|
98
|
-
description: file.description,
|
|
99
|
-
kind: 'package',
|
|
100
|
-
path,
|
|
101
|
-
mime: file.mime,
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
return entries.sort((a, b) => a.slug.localeCompare(b.slug));
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Read one flat directory of markdown. Deliberately non-recursive: the shipped
|
|
108
|
-
* set is `docs/*.md` plus `docs/examples/*.md`, so descending would catalogue
|
|
109
|
-
* `docs/internal/**` — notes that are not in the tarball and must not reach a
|
|
110
|
-
* public route.
|
|
111
|
-
*/
|
|
112
|
-
async function readDocsDirectory(dir, kind) {
|
|
113
|
-
let names;
|
|
114
|
-
try {
|
|
115
|
-
const found = await readdir(dir, { withFileTypes: true });
|
|
116
|
-
names = found.filter((e) => e.isFile() && e.name.endsWith('.md')).map((e) => e.name);
|
|
117
|
-
}
|
|
118
|
-
catch {
|
|
119
|
-
return [];
|
|
120
|
-
}
|
|
121
|
-
const entries = [];
|
|
122
|
-
for (const name of names) {
|
|
123
|
-
const path = join(dir, name);
|
|
124
|
-
const body = await readFileOrNull(path);
|
|
125
|
-
if (body === null)
|
|
126
|
-
continue;
|
|
127
|
-
const stem = basename(name, '.md');
|
|
128
|
-
const { title, description } = parseDocHeader(body);
|
|
129
|
-
entries.push({
|
|
130
|
-
slug: kind === 'example' ? `examples/${stem}` : stem,
|
|
131
|
-
title: title ?? stem,
|
|
132
|
-
description,
|
|
133
|
-
kind,
|
|
134
|
-
path,
|
|
135
|
-
mime: MARKDOWN_MIME,
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
return entries;
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Pull a page's title and promise line out of its markdown.
|
|
142
|
-
*
|
|
143
|
-
* The convention every page follows: an H1, then a blockquote paragraph saying
|
|
144
|
-
* what the page is for. A page missing either simply reports what it has — the
|
|
145
|
-
* catalog never invents prose.
|
|
146
|
-
*/
|
|
147
|
-
export function parseDocHeader(body) {
|
|
148
|
-
const heading = body.match(/^#[ \t]+(.+?)[ \t]*$/m);
|
|
149
|
-
const title = heading?.[1] ?? null;
|
|
150
|
-
const afterHeading = heading?.index === undefined ? body : body.slice(heading.index + heading[0].length);
|
|
151
|
-
const promise = afterHeading.match(/^\s*\n((?:>.*\n)+)/);
|
|
152
|
-
const description = promise?.[1]
|
|
153
|
-
?.split('\n')
|
|
154
|
-
.filter(Boolean)
|
|
155
|
-
.map((line) => line.replace(/^>\s?/, ''))
|
|
156
|
-
.join(' ')
|
|
157
|
-
.trim() ?? '';
|
|
158
|
-
return { title, description };
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Resolve a reference to a page. Accepts the slug (`coordination`), a curated
|
|
162
|
-
* alias (`storage`), or a repo-relative path (`docs/coordination.md`,
|
|
163
|
-
* `AGENTS.md`) — the three forms readers actually arrive with. Returns null
|
|
164
|
-
* rather than throwing so a caller can render its own not-found.
|
|
165
|
-
*/
|
|
166
|
-
export function findDoc(catalog, reference) {
|
|
167
|
-
const trimmed = reference.trim();
|
|
168
|
-
if (trimmed === '')
|
|
169
|
-
return null;
|
|
170
|
-
const direct = matchSlug(catalog, trimmed);
|
|
171
|
-
if (direct)
|
|
172
|
-
return direct;
|
|
173
|
-
const aliased = SLUG_ALIASES[trimmed.toLowerCase()];
|
|
174
|
-
if (aliased) {
|
|
175
|
-
const target = matchSlug(catalog, aliased);
|
|
176
|
-
if (target)
|
|
177
|
-
return target;
|
|
178
|
-
}
|
|
179
|
-
// Path form: `docs/coordination.md`, `docs/examples/nextjs.md`, `llms.txt`.
|
|
180
|
-
const asSlug = trimmed
|
|
181
|
-
.replace(/^\.?\//, '')
|
|
182
|
-
.replace(/^docs\//, '')
|
|
183
|
-
.replace(/\.(md|txt)$/i, '');
|
|
184
|
-
return matchSlug(catalog, asSlug);
|
|
185
|
-
}
|
|
186
|
-
function matchSlug(catalog, slug) {
|
|
187
|
-
const needle = slug.toLowerCase();
|
|
188
|
-
return catalog.find((entry) => entry.slug.toLowerCase() === needle) ?? null;
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
191
|
-
* Slugs closest to a miss, for a "did you mean" line. Ranks by shared prefix,
|
|
192
|
-
* then substring containment — enough to catch a typo or a half-remembered
|
|
193
|
-
* name without pulling in a distance library.
|
|
194
|
-
*/
|
|
195
|
-
export function suggestSlugs(catalog, reference, limit = 3) {
|
|
196
|
-
const needle = reference.trim().toLowerCase();
|
|
197
|
-
if (needle === '')
|
|
198
|
-
return [];
|
|
199
|
-
return catalog
|
|
200
|
-
.map((entry) => {
|
|
201
|
-
const slug = entry.slug.toLowerCase();
|
|
202
|
-
let score = 0;
|
|
203
|
-
if (slug.includes(needle) || needle.includes(slug))
|
|
204
|
-
score += 10;
|
|
205
|
-
score += sharedPrefixLength(slug, needle);
|
|
206
|
-
return { slug: entry.slug, score };
|
|
207
|
-
})
|
|
208
|
-
.filter(({ score }) => score > 2)
|
|
209
|
-
.sort((a, b) => b.score - a.score)
|
|
210
|
-
.slice(0, limit)
|
|
211
|
-
.map(({ slug }) => slug);
|
|
212
|
-
}
|
|
213
|
-
function sharedPrefixLength(a, b) {
|
|
214
|
-
const max = Math.min(a.length, b.length);
|
|
215
|
-
let i = 0;
|
|
216
|
-
while (i < max && a[i] === b[i])
|
|
217
|
-
i += 1;
|
|
218
|
-
return i;
|
|
219
|
-
}
|
|
220
|
-
async function readFileOrNull(path) {
|
|
221
|
-
try {
|
|
222
|
-
return await readFile(path, 'utf8');
|
|
223
|
-
}
|
|
224
|
-
catch {
|
|
225
|
-
return null;
|
|
226
|
-
}
|
|
227
|
-
}
|
package/dist/docs/index.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Programmatic access to the documentation this package ships.
|
|
3
|
-
*
|
|
4
|
-
* The docs travel in the npm tarball beside the code they describe, so a reader
|
|
5
|
-
* that resolves them through here is reading the pages for the version actually
|
|
6
|
-
* installed — not whatever the website is serving today. That is the whole
|
|
7
|
-
* point of the subpath: a published version is frozen, its docs are frozen with
|
|
8
|
-
* it, and `retrieve` never turns back into `get` behind a pinned dependency.
|
|
9
|
-
*/
|
|
10
|
-
export { readDocsCatalog, findDoc, parseDocHeader, suggestSlugs, type DocEntry, type DocKind, } from './catalog.js';
|
package/dist/docs/index.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Programmatic access to the documentation this package ships.
|
|
3
|
-
*
|
|
4
|
-
* The docs travel in the npm tarball beside the code they describe, so a reader
|
|
5
|
-
* that resolves them through here is reading the pages for the version actually
|
|
6
|
-
* installed — not whatever the website is serving today. That is the whole
|
|
7
|
-
* point of the subpath: a published version is frozen, its docs are frozen with
|
|
8
|
-
* it, and `retrieve` never turns back into `get` behind a pinned dependency.
|
|
9
|
-
*/
|
|
10
|
-
export { readDocsCatalog, findDoc, parseDocHeader, suggestSlugs, } from './catalog.js';
|
package/dist/environment.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './transaction/environment.js';
|
package/dist/environment.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
// Moved to @ablo/transaction (ADR 0013 — the settlement core extraction).
|
|
2
|
-
// This shim re-exports it at the original path so in-package importers of
|
|
3
|
-
// `../environment.js` keep working; rewire to `@ablo/transaction/environment`
|
|
4
|
-
// and delete this shim once the core package is fully wired.
|
|
5
|
-
//
|
|
6
|
-
// Line comments on purpose: tsc copies a leading JSDoc block into the
|
|
7
|
-
// published `.d.ts`, and this note names a package npm has never heard of.
|
|
8
|
-
export * from './transaction/environment.js';
|