@abloatai/ablo 0.26.0 → 0.28.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/CHANGELOG.md +42 -2
- package/README.md +102 -86
- package/dist/BaseSyncedStore.d.ts +85 -88
- package/dist/BaseSyncedStore.js +134 -151
- package/dist/Database.d.ts +68 -69
- package/dist/Database.js +316 -135
- package/dist/{ObjectPool.d.ts → InstanceCache.d.ts} +10 -13
- package/dist/{ObjectPool.js → InstanceCache.js} +85 -83
- package/dist/LazyReferenceCollection.d.ts +11 -15
- package/dist/LazyReferenceCollection.js +12 -16
- package/dist/Model.d.ts +54 -52
- package/dist/Model.js +78 -62
- package/dist/ModelRegistry.d.ts +21 -19
- package/dist/ModelRegistry.js +23 -27
- package/dist/NetworkMonitor.d.ts +5 -6
- package/dist/NetworkMonitor.js +5 -6
- package/dist/SyncClient.d.ts +122 -118
- package/dist/SyncClient.js +541 -245
- package/dist/adapters/alwaysOnline.d.ts +6 -8
- package/dist/adapters/alwaysOnline.js +6 -8
- package/dist/adapters/inMemoryStorage.d.ts +10 -9
- package/dist/adapters/inMemoryStorage.js +21 -9
- package/dist/agent/Agent.d.ts +27 -32
- package/dist/agent/Agent.js +18 -19
- package/dist/agent/index.d.ts +4 -4
- package/dist/agent/index.js +5 -5
- package/dist/agent/session.d.ts +47 -44
- package/dist/agent/session.js +37 -48
- package/dist/agent/types.d.ts +26 -31
- package/dist/agent/types.js +6 -7
- package/dist/ai-sdk/coordinatedTool.d.ts +108 -0
- package/dist/ai-sdk/{coordinated-tool.js → coordinatedTool.js} +44 -38
- package/dist/ai-sdk/coordinationContext.d.ts +46 -0
- package/dist/ai-sdk/{coordination-context.js → coordinationContext.js} +26 -33
- package/dist/ai-sdk/index.d.ts +25 -22
- package/dist/ai-sdk/index.js +25 -22
- package/dist/ai-sdk/wrap.d.ts +6 -7
- package/dist/ai-sdk/wrap.js +1 -1
- package/dist/auth/credentialPolicy.d.ts +69 -74
- package/dist/auth/credentialPolicy.js +51 -56
- package/dist/auth/credentialSource.d.ts +6 -5
- package/dist/auth/credentialSource.js +9 -10
- package/dist/auth/index.d.ts +59 -58
- package/dist/auth/index.js +31 -37
- package/dist/auth/schemas.d.ts +5 -4
- package/dist/auth/schemas.js +5 -4
- package/dist/batching/index.d.ts +19 -21
- package/dist/batching/index.js +14 -17
- package/dist/cli.cjs +173 -121
- package/dist/client/Ablo.d.ts +97 -74
- package/dist/client/Ablo.js +129 -163
- package/dist/client/ApiClient.d.ts +30 -19
- package/dist/client/ApiClient.js +442 -81
- package/dist/client/auth.d.ts +47 -47
- package/dist/client/auth.js +108 -117
- package/dist/client/claimHeartbeatLoop.d.ts +50 -0
- package/dist/client/claimHeartbeatLoop.js +88 -0
- package/dist/client/consoleLogger.d.ts +5 -6
- package/dist/client/consoleLogger.js +5 -6
- package/dist/client/createInternalComponents.d.ts +16 -17
- package/dist/client/createInternalComponents.js +26 -31
- package/dist/client/createModelProxy.d.ts +130 -120
- package/dist/client/createModelProxy.js +152 -122
- package/dist/client/credentialEndpoint.d.ts +40 -42
- package/dist/client/credentialEndpoint.js +35 -36
- package/dist/client/functionalUpdate.d.ts +29 -27
- package/dist/client/functionalUpdate.js +21 -21
- package/dist/client/hostedEndpoints.d.ts +9 -12
- package/dist/client/hostedEndpoints.js +9 -12
- package/dist/client/httpClient.d.ts +59 -53
- package/dist/client/httpClient.js +29 -31
- package/dist/client/identity.d.ts +15 -20
- package/dist/client/identity.js +47 -58
- package/dist/client/modelRegistration.d.ts +5 -9
- package/dist/client/modelRegistration.js +78 -87
- package/dist/client/options.d.ts +157 -157
- package/dist/client/options.js +3 -7
- package/dist/client/registerDataSource.d.ts +9 -9
- package/dist/client/registerDataSource.js +15 -16
- package/dist/client/resourceTypes.d.ts +64 -75
- package/dist/client/resourceTypes.js +4 -10
- package/dist/client/schemaConfig.d.ts +31 -43
- package/dist/client/schemaConfig.js +38 -50
- package/dist/client/sessionMint.d.ts +16 -12
- package/dist/client/sessionMint.js +26 -31
- package/dist/client/validateAbloOptions.d.ts +12 -14
- package/dist/client/validateAbloOptions.js +8 -9
- package/dist/client/writeOptionsSchema.d.ts +18 -16
- package/dist/client/writeOptionsSchema.js +23 -20
- package/dist/client/wsMutationExecutor.d.ts +16 -20
- package/dist/client/wsMutationExecutor.js +18 -23
- package/dist/commit/contract.d.ts +493 -0
- package/dist/commit/contract.js +187 -0
- package/dist/commit/index.d.ts +6 -0
- package/dist/commit/index.js +5 -0
- package/dist/context.d.ts +6 -4
- package/dist/context.js +6 -4
- package/dist/coordination/index.d.ts +10 -8
- package/dist/coordination/index.js +14 -12
- package/dist/coordination/schema.d.ts +176 -128
- package/dist/coordination/schema.js +197 -133
- package/dist/coordination/trace.d.ts +9 -10
- package/dist/coordination/trace.js +13 -14
- package/dist/core/DatabaseManager.d.ts +5 -7
- package/dist/core/DatabaseManager.js +15 -19
- package/dist/core/QueryProcessor.d.ts +7 -9
- package/dist/core/QueryProcessor.js +22 -28
- package/dist/core/QueryView.d.ts +8 -8
- package/dist/core/QueryView.js +2 -2
- package/dist/core/StoreManager.d.ts +14 -14
- package/dist/core/StoreManager.js +33 -24
- package/dist/core/ViewRegistry.d.ts +5 -5
- package/dist/core/ViewRegistry.js +4 -4
- package/dist/core/index.d.ts +17 -12
- package/dist/core/index.js +32 -26
- package/dist/core/openIDBWithTimeout.d.ts +38 -36
- package/dist/core/openIDBWithTimeout.js +42 -43
- package/dist/core/queryUtils.d.ts +45 -0
- package/dist/core/queryUtils.js +69 -0
- package/dist/core/storeContract.d.ts +63 -61
- package/dist/core/storeContract.js +8 -12
- package/dist/environment.d.ts +28 -0
- package/dist/environment.js +21 -0
- package/dist/errorCodes.d.ts +107 -99
- package/dist/errorCodes.js +137 -134
- package/dist/errors.d.ts +160 -166
- package/dist/errors.js +155 -158
- package/dist/index.d.ts +36 -27
- package/dist/index.js +91 -86
- package/dist/interfaces/index.d.ts +102 -113
- package/dist/interfaces/index.js +5 -4
- package/dist/keys/index.d.ts +27 -29
- package/dist/keys/index.js +41 -40
- package/dist/mutators/RecordingTransaction.d.ts +16 -16
- package/dist/mutators/RecordingTransaction.js +31 -37
- package/dist/mutators/Transaction.d.ts +18 -26
- package/dist/mutators/Transaction.js +14 -20
- package/dist/mutators/UndoManager.d.ts +124 -131
- package/dist/mutators/UndoManager.js +177 -156
- package/dist/mutators/defineMutators.d.ts +23 -34
- package/dist/mutators/defineMutators.js +14 -20
- package/dist/mutators/inverseOp.d.ts +12 -15
- package/dist/mutators/inverseOp.js +12 -15
- package/dist/mutators/mutateActions.d.ts +10 -9
- package/dist/mutators/mutateActions.js +1 -1
- package/dist/mutators/readerActions.d.ts +9 -8
- package/dist/mutators/readerActions.js +2 -2
- package/dist/mutators/undoApply.d.ts +31 -27
- package/dist/mutators/undoApply.js +26 -24
- package/dist/policy/index.d.ts +5 -3
- package/dist/policy/index.js +5 -3
- package/dist/policy/types.d.ts +104 -100
- package/dist/policy/types.js +67 -66
- package/dist/query/client.d.ts +28 -23
- package/dist/query/client.js +45 -43
- package/dist/query/types.d.ts +37 -60
- package/dist/query/types.js +13 -33
- package/dist/react/AbloProvider.d.ts +1 -1
- package/dist/react/AbloProvider.js +2 -2
- package/dist/react/context.d.ts +25 -28
- package/dist/react/context.js +9 -10
- package/dist/react/index.d.ts +41 -42
- package/dist/react/index.js +37 -38
- package/dist/react/internalContext.d.ts +17 -19
- package/dist/react/useAblo.d.ts +28 -25
- package/dist/react/useAblo.js +41 -17
- package/dist/react/useCurrentUserId.d.ts +8 -7
- package/dist/react/useCurrentUserId.js +8 -7
- package/dist/react/useErrorListener.d.ts +7 -7
- package/dist/react/useErrorListener.js +10 -11
- package/dist/react/useMutationFailureListener.d.ts +8 -8
- package/dist/react/useMutationFailureListener.js +8 -8
- package/dist/react/useMutators.d.ts +11 -11
- package/dist/react/useMutators.js +3 -3
- package/dist/react/useReactive.js +2 -2
- package/dist/react/useSyncStatus.d.ts +4 -6
- package/dist/react/useUndoScope.d.ts +7 -9
- package/dist/react/useUndoScope.js +1 -1
- package/dist/schema/coordination.d.ts +21 -25
- package/dist/schema/coordination.js +21 -25
- package/dist/schema/ddl.d.ts +43 -39
- package/dist/schema/ddl.js +75 -68
- package/dist/schema/ddlLock.d.ts +20 -24
- package/dist/schema/ddlLock.js +18 -23
- package/dist/schema/diff.d.ts +99 -61
- package/dist/schema/diff.js +43 -34
- package/dist/schema/field.d.ts +37 -42
- package/dist/schema/field.js +35 -48
- package/dist/schema/generate.d.ts +12 -12
- package/dist/schema/generate.js +12 -12
- package/dist/schema/index.d.ts +3 -3
- package/dist/schema/index.js +21 -23
- package/dist/schema/model.d.ts +118 -143
- package/dist/schema/model.js +22 -33
- package/dist/schema/openapi.d.ts +10 -9
- package/dist/schema/openapi.js +5 -3
- package/dist/schema/queries.d.ts +29 -31
- package/dist/schema/queries.js +23 -25
- package/dist/schema/relation.d.ts +89 -99
- package/dist/schema/relation.js +13 -13
- package/dist/schema/residency.d.ts +16 -13
- package/dist/schema/residency.js +16 -13
- package/dist/schema/roles.d.ts +36 -43
- package/dist/schema/roles.js +31 -37
- package/dist/schema/schema.d.ts +64 -43
- package/dist/schema/schema.js +31 -32
- package/dist/schema/select.d.ts +13 -13
- package/dist/schema/select.js +13 -13
- package/dist/schema/serialize.d.ts +28 -31
- package/dist/schema/serialize.js +27 -31
- package/dist/schema/sugar.d.ts +17 -32
- package/dist/schema/sugar.js +14 -29
- package/dist/schema/{sync-delta-row.d.ts → syncDeltaRow.d.ts} +26 -49
- package/dist/schema/syncDeltaRow.js +89 -0
- package/dist/schema/tenancy.d.ts +44 -46
- package/dist/schema/tenancy.js +46 -48
- package/dist/server/adapter.d.ts +58 -58
- package/dist/server/adapter.js +13 -14
- package/dist/server/commit.d.ts +60 -64
- package/dist/server/index.d.ts +9 -10
- package/dist/server/index.js +1 -1
- package/dist/server/readConfig.d.ts +70 -0
- package/dist/server/readConfig.js +8 -0
- package/dist/server/storageMode.d.ts +23 -0
- package/dist/server/storageMode.js +17 -0
- package/dist/source/adapter.d.ts +30 -25
- package/dist/source/adapter.js +10 -10
- package/dist/source/adapters/drizzle.d.ts +28 -23
- package/dist/source/adapters/drizzle.js +30 -25
- package/dist/source/adapters/kysely.d.ts +27 -25
- package/dist/source/adapters/kysely.js +24 -23
- package/dist/source/adapters/memory.d.ts +8 -7
- package/dist/source/adapters/memory.js +9 -8
- package/dist/source/adapters/prisma.d.ts +13 -12
- package/dist/source/adapters/prisma.js +22 -25
- package/dist/source/conformance.d.ts +18 -11
- package/dist/source/conformance.js +17 -11
- package/dist/source/connector.d.ts +31 -32
- package/dist/source/connector.js +28 -28
- package/dist/source/connectorProtocol.d.ts +160 -0
- package/dist/source/connectorProtocol.js +162 -0
- package/dist/source/contract.d.ts +26 -27
- package/dist/source/contract.js +28 -29
- package/dist/source/factory.d.ts +46 -58
- package/dist/source/factory.js +22 -27
- package/dist/source/index.d.ts +7 -9
- package/dist/source/index.js +12 -14
- package/dist/source/migrations.d.ts +9 -9
- package/dist/source/migrations.js +9 -9
- package/dist/source/next.d.ts +9 -10
- package/dist/source/next.js +6 -7
- package/dist/source/pushQueue.d.ts +69 -47
- package/dist/source/pushQueue.js +32 -28
- package/dist/source/signing.d.ts +46 -17
- package/dist/source/signing.js +28 -11
- package/dist/source/types.d.ts +121 -104
- package/dist/source/types.js +13 -14
- package/dist/stores/ObjectStore.d.ts +24 -12
- package/dist/stores/ObjectStore.js +38 -16
- package/dist/stores/ObjectStoreContract.d.ts +14 -15
- package/dist/stores/SyncActionStore.d.ts +7 -11
- package/dist/stores/SyncActionStore.js +13 -17
- package/dist/surface.d.ts +28 -21
- package/dist/surface.js +29 -20
- package/dist/sync/{BootstrapHelper.d.ts → BootstrapFetcher.d.ts} +36 -42
- package/dist/sync/{BootstrapHelper.js → BootstrapFetcher.js} +76 -76
- package/dist/sync/ConnectionManager.d.ts +39 -50
- package/dist/sync/ConnectionManager.js +55 -66
- package/dist/sync/NetworkProbe.d.ts +24 -29
- package/dist/sync/NetworkProbe.js +63 -69
- package/dist/sync/{HydrationCoordinator.d.ts → OnDemandLoader.d.ts} +42 -41
- package/dist/sync/{HydrationCoordinator.js → OnDemandLoader.js} +59 -54
- package/dist/sync/{AreaOfInterestManager.d.ts → SubscriptionManager.d.ts} +43 -57
- package/dist/sync/{AreaOfInterestManager.js → SubscriptionManager.js} +43 -51
- package/dist/sync/SyncWebSocket.d.ts +141 -166
- package/dist/sync/SyncWebSocket.js +191 -223
- package/dist/sync/awaitClaimGrant.d.ts +18 -18
- package/dist/sync/awaitClaimGrant.js +11 -11
- package/dist/sync/bootstrapApply.d.ts +34 -24
- package/dist/sync/bootstrapApply.js +27 -19
- package/dist/sync/commitFrames.d.ts +21 -20
- package/dist/sync/commitFrames.js +18 -18
- package/dist/sync/createClaimStream.d.ts +23 -22
- package/dist/sync/createClaimStream.js +105 -23
- package/dist/sync/createPresenceStream.d.ts +19 -18
- package/dist/sync/createPresenceStream.js +25 -26
- package/dist/sync/createSnapshot.d.ts +12 -14
- package/dist/sync/createSnapshot.js +20 -26
- package/dist/sync/credentialLifecycle.d.ts +104 -104
- package/dist/sync/credentialLifecycle.js +140 -147
- package/dist/sync/deltaPipeline.d.ts +36 -34
- package/dist/sync/deltaPipeline.js +64 -65
- package/dist/sync/groupChange.d.ts +63 -61
- package/dist/sync/groupChange.js +74 -78
- package/dist/sync/heartbeat.d.ts +34 -33
- package/dist/sync/heartbeat.js +31 -31
- package/dist/sync/participants.d.ts +19 -19
- package/dist/sync/persistedPrefix.d.ts +12 -0
- package/dist/sync/persistedPrefix.js +22 -0
- package/dist/sync/schemas.d.ts +3 -2
- package/dist/sync/schemas.js +14 -10
- package/dist/sync/syncCursor.d.ts +17 -21
- package/dist/sync/syncCursor.js +17 -21
- package/dist/sync/syncPlan.d.ts +28 -36
- package/dist/sync/syncPlan.js +18 -19
- package/dist/sync/syncPosition.d.ts +54 -49
- package/dist/sync/syncPosition.js +57 -52
- package/dist/sync/wsFrameHandlers.d.ts +35 -36
- package/dist/sync/wsFrameHandlers.js +63 -67
- package/dist/testing/fixtures/bootstrap.d.ts +12 -6
- package/dist/testing/fixtures/bootstrap.js +12 -6
- package/dist/testing/fixtures/deltas.d.ts +30 -33
- package/dist/testing/fixtures/deltas.js +30 -33
- package/dist/testing/fixtures/models.d.ts +11 -10
- package/dist/testing/fixtures/models.js +11 -10
- package/dist/testing/helpers/{react-wrapper.d.ts → reactWrapper.d.ts} +13 -10
- package/dist/testing/helpers/{react-wrapper.js → reactWrapper.js} +15 -12
- package/dist/testing/helpers/{sync-engine-harness.d.ts → syncEngineHarness.d.ts} +17 -15
- package/dist/testing/helpers/{sync-engine-harness.js → syncEngineHarness.js} +12 -10
- package/dist/testing/helpers/wait.d.ts +13 -8
- package/dist/testing/helpers/wait.js +13 -8
- package/dist/testing/index.d.ts +5 -3
- package/dist/testing/index.js +3 -2
- package/dist/testing/mocks/FakeDatabase.d.ts +18 -0
- package/dist/testing/mocks/FakeDatabase.js +10 -0
- package/dist/testing/mocks/MockMutationExecutor.d.ts +18 -17
- package/dist/testing/mocks/MockMutationExecutor.js +15 -14
- package/dist/testing/mocks/MockNetworkMonitor.d.ts +8 -8
- package/dist/testing/mocks/MockNetworkMonitor.js +8 -8
- package/dist/testing/mocks/MockSyncContext.d.ts +20 -17
- package/dist/testing/mocks/MockSyncContext.js +15 -13
- package/dist/testing/mocks/MockSyncStore.d.ts +10 -10
- package/dist/testing/mocks/MockSyncStore.js +11 -11
- package/dist/testing/mocks/MockWebSocket.d.ts +28 -23
- package/dist/testing/mocks/MockWebSocket.js +22 -21
- package/dist/transactions/TransactionQueue.d.ts +244 -181
- package/dist/transactions/TransactionQueue.js +929 -423
- package/dist/transactions/TransactionStore.d.ts +6 -4
- package/dist/transactions/TransactionStore.js +6 -4
- package/dist/transactions/UnconfirmedWrites.d.ts +82 -0
- package/dist/transactions/UnconfirmedWrites.js +104 -0
- package/dist/transactions/coalesceRules.d.ts +41 -17
- package/dist/transactions/coalesceRules.js +40 -17
- package/dist/transactions/commitEnvelope.d.ts +132 -0
- package/dist/transactions/commitEnvelope.js +139 -0
- package/dist/transactions/commitOutboxStore.d.ts +32 -0
- package/dist/transactions/commitOutboxStore.js +26 -0
- package/dist/transactions/commitPayload.d.ts +63 -52
- package/dist/transactions/commitPayload.js +54 -57
- package/dist/transactions/deltaConfirmation.d.ts +20 -22
- package/dist/transactions/deltaConfirmation.js +37 -45
- package/dist/transactions/httpCommitEnvelope.d.ts +43 -0
- package/dist/transactions/httpCommitEnvelope.js +179 -0
- package/dist/transactions/optimisticApply.d.ts +49 -0
- package/dist/transactions/optimisticApply.js +65 -0
- package/dist/transactions/replayValidation.d.ts +182 -0
- package/dist/transactions/replayValidation.js +156 -0
- package/dist/types/global.d.ts +46 -41
- package/dist/types/global.js +20 -19
- package/dist/types/index.d.ts +71 -77
- package/dist/types/index.js +22 -22
- package/dist/types/modelData.d.ts +6 -8
- package/dist/types/modelData.js +5 -7
- package/dist/types/participant.d.ts +10 -11
- package/dist/types/participant.js +6 -8
- package/dist/types/streams.d.ts +208 -195
- package/dist/types/streams.js +7 -7
- package/dist/utils/asyncIterator.d.ts +25 -32
- package/dist/utils/asyncIterator.js +25 -32
- package/dist/utils/duration.d.ts +12 -15
- package/dist/utils/duration.js +12 -15
- package/dist/utils/mobxSetup.d.ts +53 -0
- package/dist/utils/{mobx-setup.js → mobxSetup.js} +42 -98
- package/dist/webhooks/events.d.ts +21 -16
- package/dist/webhooks/events.js +10 -8
- package/dist/webhooks/index.d.ts +5 -7
- package/dist/webhooks/index.js +5 -7
- package/dist/wire/bootstrapReason.d.ts +9 -0
- package/dist/wire/bootstrapReason.js +8 -0
- package/dist/{schema/sync-delta-wire.d.ts → wire/delta.d.ts} +58 -41
- package/dist/wire/delta.js +114 -0
- package/dist/wire/errorEnvelope.d.ts +30 -31
- package/dist/wire/errorEnvelope.js +34 -40
- package/dist/wire/frames.d.ts +315 -86
- package/dist/wire/frames.js +47 -33
- package/dist/wire/index.d.ts +18 -14
- package/dist/wire/index.js +32 -27
- package/dist/wire/listEnvelope.d.ts +16 -23
- package/dist/wire/listEnvelope.js +7 -6
- package/dist/wire/protocol.d.ts +25 -32
- package/dist/wire/protocol.js +25 -32
- package/dist/wire/protocolVersion.d.ts +44 -40
- package/dist/wire/protocolVersion.js +44 -40
- package/docs/api.md +10 -10
- package/docs/coordination.md +59 -0
- package/docs/mcp.md +1 -1
- package/package.json +17 -11
- package/dist/ai-sdk/coordinated-tool.d.ts +0 -101
- package/dist/ai-sdk/coordination-context.d.ts +0 -52
- package/dist/core/query-utils.d.ts +0 -34
- package/dist/core/query-utils.js +0 -59
- package/dist/schema/sync-delta-row.js +0 -103
- package/dist/schema/sync-delta-wire.js +0 -102
- package/dist/server/read-config.d.ts +0 -67
- package/dist/server/read-config.js +0 -8
- package/dist/server/storage-mode.d.ts +0 -8
- package/dist/server/storage-mode.js +0 -28
- package/dist/source/connector-protocol.d.ts +0 -159
- package/dist/source/connector-protocol.js +0 -161
- package/dist/transactions/OptimisticEchoTracker.d.ts +0 -82
- package/dist/transactions/OptimisticEchoTracker.js +0 -104
- package/dist/transactions/mutation-error-handler.d.ts +0 -5
- package/dist/transactions/mutation-error-handler.js +0 -39
- package/dist/transactions/optimistic.d.ts +0 -24
- package/dist/transactions/optimistic.js +0 -45
- package/dist/transactions/persistedReplay.d.ts +0 -93
- package/dist/transactions/persistedReplay.js +0 -105
- package/dist/utils/mobx-setup.d.ts +0 -42
package/dist/types/index.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Core type definitions for the model-driven sync layer.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* These types describe how a model's properties are declared, when their data
|
|
5
|
+
* is loaded, and how changes are represented on the wire as they synchronize.
|
|
6
6
|
*/
|
|
7
7
|
import type { FieldMeta } from '../schema/field.js';
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
9
|
+
* A lifecycle filter for queries: whether to return live entities, archived
|
|
10
|
+
* ones, or both.
|
|
11
11
|
*/
|
|
12
12
|
export declare enum ModelScope {
|
|
13
13
|
live = "live",
|
|
@@ -15,43 +15,43 @@ export declare enum ModelScope {
|
|
|
15
15
|
all = "all"
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
19
|
-
*
|
|
18
|
+
* The kinds of property a model can declare. Each kind determines how the
|
|
19
|
+
* property behaves in the sync system — whether it is persisted, how it relates
|
|
20
|
+
* to other models, and how it is loaded.
|
|
20
21
|
*/
|
|
21
22
|
export declare enum PropertyType {
|
|
22
|
-
/**
|
|
23
|
+
/** A standard observable field owned by the model, both persisted and synced. */
|
|
23
24
|
property = "property",
|
|
24
|
-
/**
|
|
25
|
+
/** A runtime-only field that is neither persisted nor synced. */
|
|
25
26
|
ephemeralProperty = "ephemeralProperty",
|
|
26
|
-
/**
|
|
27
|
+
/** A foreign-key reference that stores only the related model's id. */
|
|
27
28
|
reference = "reference",
|
|
28
|
-
/**
|
|
29
|
+
/** A single related model resolved on demand from its id, exposed as a getter and setter. */
|
|
29
30
|
referenceModel = "referenceModel",
|
|
30
|
-
/**
|
|
31
|
+
/** A collection of related models — the many side of a one-to-many relationship. */
|
|
31
32
|
referenceCollection = "referenceCollection",
|
|
32
|
-
/**
|
|
33
|
+
/** A computed field that follows a relationship in the inverse direction. */
|
|
33
34
|
backReference = "backReference",
|
|
34
|
-
/**
|
|
35
|
+
/** An array of foreign-key ids — a many-to-many relationship. */
|
|
35
36
|
referenceArray = "referenceArray"
|
|
36
37
|
}
|
|
37
38
|
/**
|
|
38
|
-
*
|
|
39
|
-
* Controls when and how model data is loaded from the server
|
|
39
|
+
* When and how a model's data is loaded from the server.
|
|
40
40
|
*/
|
|
41
41
|
export declare enum LoadStrategy {
|
|
42
|
-
/**
|
|
42
|
+
/** Loaded during startup, before it is first used — for models needed right away. */
|
|
43
43
|
instant = "instant",
|
|
44
|
-
/**
|
|
44
|
+
/** Loaded all at once the first time it is needed — for secondary models. */
|
|
45
45
|
lazy = "lazy",
|
|
46
|
-
/**
|
|
46
|
+
/** Loaded on demand in subsets — for large collections. */
|
|
47
47
|
partial = "partial",
|
|
48
|
-
/**
|
|
48
|
+
/** Loaded only when the application asks for it — for optional data. */
|
|
49
49
|
explicitlyRequested = "explicitlyRequested",
|
|
50
|
-
/** Never
|
|
50
|
+
/** Never synced with the server; kept only on the client — for local-only state. */
|
|
51
51
|
local = "local"
|
|
52
52
|
}
|
|
53
53
|
/**
|
|
54
|
-
*
|
|
54
|
+
* The resolved configuration for a single model property.
|
|
55
55
|
*/
|
|
56
56
|
export interface PropertyMetadata {
|
|
57
57
|
type: PropertyType;
|
|
@@ -61,31 +61,32 @@ export interface PropertyMetadata {
|
|
|
61
61
|
defaultValue?: unknown;
|
|
62
62
|
loadStrategy?: LoadStrategy;
|
|
63
63
|
/**
|
|
64
|
-
*
|
|
65
|
-
* MobX
|
|
64
|
+
* How deeply the reactivity layer wraps this property's value when the model
|
|
65
|
+
* is registered. The engine uses MobX, so the choice maps directly to MobX's
|
|
66
|
+
* observability modes.
|
|
66
67
|
*
|
|
67
|
-
* - `'deep'` (default): full recursive observability
|
|
68
|
-
* object
|
|
69
|
-
* small structured values
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
* do NOT recurse into element internals. Right for collections whose
|
|
68
|
+
* - `'deep'` (the default): full recursive observability, where every nested
|
|
69
|
+
* object or array becomes its own reactive node. Correct for scalar fields
|
|
70
|
+
* and small structured values whose inner properties are read directly.
|
|
71
|
+
* - `'shallow'`: track the reference and array, map, and set operations, but
|
|
72
|
+
* do not recurse into element internals. Right for collections whose
|
|
73
73
|
* elements are replaced wholesale.
|
|
74
|
-
* - `'ref'`: track
|
|
75
|
-
*
|
|
76
|
-
* immutable values
|
|
77
|
-
*
|
|
78
|
-
*
|
|
74
|
+
* - `'ref'`: track only reassignment of the value. Right for opaque JSON
|
|
75
|
+
* blobs — chart specs, rich-text documents, style maps — that are treated
|
|
76
|
+
* as immutable values and always read whole before being handed to a
|
|
77
|
+
* renderer. Deep-wrapping these produces many needless reactions for no
|
|
78
|
+
* benefit.
|
|
79
79
|
*
|
|
80
|
-
* Schema-driven registration
|
|
81
|
-
* wire type `'json'`,
|
|
80
|
+
* Schema-driven registration sets this to `'ref'` automatically for fields
|
|
81
|
+
* whose wire type is `'json'`, the right default for the blob pattern.
|
|
82
82
|
*/
|
|
83
83
|
observability?: 'deep' | 'shallow' | 'ref';
|
|
84
84
|
}
|
|
85
|
-
/**
|
|
85
|
+
/** The constructor type of a model class, used by reference metadata to point at the related model. */
|
|
86
86
|
type ModelConstructor = abstract new (...args: never[]) => unknown;
|
|
87
87
|
/**
|
|
88
|
-
*
|
|
88
|
+
* The configuration for a reference property — which model it points to and how
|
|
89
|
+
* the relationship behaves.
|
|
89
90
|
*/
|
|
90
91
|
export interface ReferenceMetadata {
|
|
91
92
|
referencedModel: () => ModelConstructor;
|
|
@@ -94,7 +95,7 @@ export interface ReferenceMetadata {
|
|
|
94
95
|
nullable?: boolean;
|
|
95
96
|
}
|
|
96
97
|
/**
|
|
97
|
-
*
|
|
98
|
+
* The resolved configuration for a model class.
|
|
98
99
|
*/
|
|
99
100
|
export interface ModelMetadata {
|
|
100
101
|
loadStrategy: LoadStrategy;
|
|
@@ -104,45 +105,35 @@ export interface ModelMetadata {
|
|
|
104
105
|
usedForPartialIndexes?: boolean;
|
|
105
106
|
schemaVersion?: number;
|
|
106
107
|
/**
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
* JSON-typed values
|
|
108
|
+
* The schema-declared fields for this model, keyed by field name. When a
|
|
109
|
+
* change is committed, the transaction queue uses this to project the payload
|
|
110
|
+
* down to the declared fields and to serialize JSON-typed values.
|
|
110
111
|
*
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
* projection becomes identity pass-through (back-compat for models
|
|
115
|
-
* registered outside the schema path).
|
|
116
|
-
*
|
|
117
|
-
* Narrowed to the canonical union via `Pick` rather than re-declared —
|
|
118
|
-
* a hand-rolled copy silently drifts when a new field type lands.
|
|
112
|
+
* Each entry carries the field's {@link FieldMeta.type} tag, which tells the
|
|
113
|
+
* wire serializer how to encode the value. When this is absent — a model
|
|
114
|
+
* registered without a schema — the payload is passed through unchanged.
|
|
119
115
|
*/
|
|
120
116
|
fields?: Readonly<Record<string, Pick<FieldMeta, 'type'>>>;
|
|
121
117
|
/**
|
|
122
|
-
* Fields to
|
|
123
|
-
* during
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
*
|
|
128
|
-
* Used by `SyncClient.healModelRecord` to keep the engine
|
|
129
|
-
* product-neutral: the engine no longer hardcodes which models carry
|
|
130
|
-
* `organizationId` / `createdBy` — the consumer's schema declares it.
|
|
118
|
+
* Fields to fill in from the signed-in identity when they are missing from a
|
|
119
|
+
* stored row during self-healing. Each entry maps a field on this model to
|
|
120
|
+
* one of the identity values the client holds — `organizationId` or `userId`.
|
|
121
|
+
* Declaring it in the schema keeps the engine product-neutral: it does not
|
|
122
|
+
* assume which models carry an organization or owner field.
|
|
131
123
|
*/
|
|
132
124
|
autoFill?: readonly {
|
|
133
125
|
field: string;
|
|
134
126
|
from: 'organizationId' | 'userId';
|
|
135
127
|
}[];
|
|
136
128
|
/**
|
|
137
|
-
* Fields
|
|
138
|
-
*
|
|
139
|
-
* to signal the caller to skip the row. Populated from
|
|
140
|
-
* `ModelOptions.requiredFields` in the schema.
|
|
129
|
+
* Fields a stored row must have to be usable. During self-healing, a row
|
|
130
|
+
* missing any of these is treated as orphaned and skipped rather than loaded.
|
|
141
131
|
*/
|
|
142
132
|
requiredFields?: readonly string[];
|
|
143
133
|
}
|
|
144
134
|
/**
|
|
145
|
-
*
|
|
135
|
+
* The options accepted when declaring a model — its load strategy, optional
|
|
136
|
+
* sync group, and optional table name.
|
|
146
137
|
*/
|
|
147
138
|
export interface ModelOptions {
|
|
148
139
|
loadStrategy: LoadStrategy;
|
|
@@ -150,7 +141,7 @@ export interface ModelOptions {
|
|
|
150
141
|
tableName?: string;
|
|
151
142
|
}
|
|
152
143
|
/**
|
|
153
|
-
*
|
|
144
|
+
* The options accepted when declaring a model property.
|
|
154
145
|
*/
|
|
155
146
|
export interface PropertyOptions {
|
|
156
147
|
indexed?: boolean;
|
|
@@ -159,21 +150,22 @@ export interface PropertyOptions {
|
|
|
159
150
|
ephemeral?: boolean;
|
|
160
151
|
}
|
|
161
152
|
/**
|
|
162
|
-
*
|
|
153
|
+
* The options accepted when declaring a reference property.
|
|
163
154
|
*/
|
|
164
155
|
export interface ReferenceOptions {
|
|
165
156
|
indexed?: boolean;
|
|
166
157
|
nullable?: boolean;
|
|
167
158
|
}
|
|
168
159
|
/**
|
|
169
|
-
* GraphQL
|
|
160
|
+
* A GraphQL mutation: its query text and the variables to run it with.
|
|
170
161
|
*/
|
|
171
162
|
export interface GraphQLMutation {
|
|
172
163
|
mutationText: string;
|
|
173
164
|
variables: Record<string, unknown>;
|
|
174
165
|
}
|
|
175
166
|
/**
|
|
176
|
-
*
|
|
167
|
+
* A request to load model rows by an indexed key. When the load completes,
|
|
168
|
+
* `resolve` is called with the matching rows.
|
|
177
169
|
*/
|
|
178
170
|
export interface LoadRequest {
|
|
179
171
|
modelName: string;
|
|
@@ -182,11 +174,11 @@ export interface LoadRequest {
|
|
|
182
174
|
resolve?: (value: unknown[]) => void;
|
|
183
175
|
}
|
|
184
176
|
/**
|
|
185
|
-
*
|
|
177
|
+
* The one-letter code identifying what kind of change a sync action carries.
|
|
186
178
|
*/
|
|
187
179
|
export type SyncActionType = 'I' | 'U' | 'A' | 'D' | 'C' | 'G' | 'S' | 'V';
|
|
188
180
|
/**
|
|
189
|
-
*
|
|
181
|
+
* A single change to one model row, as carried on the sync stream.
|
|
190
182
|
*/
|
|
191
183
|
export interface SyncAction {
|
|
192
184
|
id: number;
|
|
@@ -197,22 +189,24 @@ export interface SyncAction {
|
|
|
197
189
|
__class: 'SyncAction';
|
|
198
190
|
}
|
|
199
191
|
/**
|
|
200
|
-
*
|
|
192
|
+
* A batch of sync actions delivered together.
|
|
201
193
|
*/
|
|
202
194
|
export type DeltaPacket = SyncAction[];
|
|
203
195
|
/**
|
|
204
|
-
*
|
|
196
|
+
* The kind of initial data load performed when a client starts: a full load, a
|
|
197
|
+
* partial subset, or local-only.
|
|
205
198
|
*/
|
|
206
199
|
export type BootstrapType = 'full' | 'partial' | 'local';
|
|
207
200
|
/**
|
|
208
|
-
*
|
|
201
|
+
* The metadata returned with a bootstrap: the last sync id seen and the sync
|
|
202
|
+
* groups the client is subscribed to.
|
|
209
203
|
*/
|
|
210
204
|
export interface BootstrapMetadata {
|
|
211
205
|
lastSyncId: number;
|
|
212
206
|
subscribedSyncGroups: string[];
|
|
213
207
|
}
|
|
214
208
|
/**
|
|
215
|
-
*
|
|
209
|
+
* The locally tracked sync state that lets a client resume where it left off.
|
|
216
210
|
*/
|
|
217
211
|
export interface DatabaseMetadata {
|
|
218
212
|
lastSyncId: number;
|
|
@@ -222,7 +216,7 @@ export interface DatabaseMetadata {
|
|
|
222
216
|
updatedAt: Date;
|
|
223
217
|
}
|
|
224
218
|
/**
|
|
225
|
-
*
|
|
219
|
+
* The operation a batch mutation performs on a model row.
|
|
226
220
|
*/
|
|
227
221
|
export declare enum MutationOperationType {
|
|
228
222
|
ARCHIVE = "ARCHIVE",
|
|
@@ -232,7 +226,7 @@ export declare enum MutationOperationType {
|
|
|
232
226
|
UPDATE = "UPDATE"
|
|
233
227
|
}
|
|
234
228
|
/**
|
|
235
|
-
*
|
|
229
|
+
* Describes a partial index used to load subsets of a large model.
|
|
236
230
|
*/
|
|
237
231
|
export interface PartialIndexInfo {
|
|
238
232
|
modelName: string;
|
package/dist/types/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Core type definitions for the model-driven sync layer.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* These types describe how a model's properties are declared, when their data
|
|
5
|
+
* is loaded, and how changes are represented on the wire as they synchronize.
|
|
6
6
|
*/
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
8
|
+
* A lifecycle filter for queries: whether to return live entities, archived
|
|
9
|
+
* ones, or both.
|
|
10
10
|
*/
|
|
11
11
|
export var ModelScope;
|
|
12
12
|
(function (ModelScope) {
|
|
@@ -15,45 +15,45 @@ export var ModelScope;
|
|
|
15
15
|
ModelScope["all"] = "all";
|
|
16
16
|
})(ModelScope || (ModelScope = {}));
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
19
|
-
*
|
|
18
|
+
* The kinds of property a model can declare. Each kind determines how the
|
|
19
|
+
* property behaves in the sync system — whether it is persisted, how it relates
|
|
20
|
+
* to other models, and how it is loaded.
|
|
20
21
|
*/
|
|
21
22
|
export var PropertyType;
|
|
22
23
|
(function (PropertyType) {
|
|
23
|
-
/**
|
|
24
|
+
/** A standard observable field owned by the model, both persisted and synced. */
|
|
24
25
|
PropertyType["property"] = "property";
|
|
25
|
-
/**
|
|
26
|
+
/** A runtime-only field that is neither persisted nor synced. */
|
|
26
27
|
PropertyType["ephemeralProperty"] = "ephemeralProperty";
|
|
27
|
-
/**
|
|
28
|
+
/** A foreign-key reference that stores only the related model's id. */
|
|
28
29
|
PropertyType["reference"] = "reference";
|
|
29
|
-
/**
|
|
30
|
+
/** A single related model resolved on demand from its id, exposed as a getter and setter. */
|
|
30
31
|
PropertyType["referenceModel"] = "referenceModel";
|
|
31
|
-
/**
|
|
32
|
+
/** A collection of related models — the many side of a one-to-many relationship. */
|
|
32
33
|
PropertyType["referenceCollection"] = "referenceCollection";
|
|
33
|
-
/**
|
|
34
|
+
/** A computed field that follows a relationship in the inverse direction. */
|
|
34
35
|
PropertyType["backReference"] = "backReference";
|
|
35
|
-
/**
|
|
36
|
+
/** An array of foreign-key ids — a many-to-many relationship. */
|
|
36
37
|
PropertyType["referenceArray"] = "referenceArray";
|
|
37
38
|
})(PropertyType || (PropertyType = {}));
|
|
38
39
|
/**
|
|
39
|
-
*
|
|
40
|
-
* Controls when and how model data is loaded from the server
|
|
40
|
+
* When and how a model's data is loaded from the server.
|
|
41
41
|
*/
|
|
42
42
|
export var LoadStrategy;
|
|
43
43
|
(function (LoadStrategy) {
|
|
44
|
-
/**
|
|
44
|
+
/** Loaded during startup, before it is first used — for models needed right away. */
|
|
45
45
|
LoadStrategy["instant"] = "instant";
|
|
46
|
-
/**
|
|
46
|
+
/** Loaded all at once the first time it is needed — for secondary models. */
|
|
47
47
|
LoadStrategy["lazy"] = "lazy";
|
|
48
|
-
/**
|
|
48
|
+
/** Loaded on demand in subsets — for large collections. */
|
|
49
49
|
LoadStrategy["partial"] = "partial";
|
|
50
|
-
/**
|
|
50
|
+
/** Loaded only when the application asks for it — for optional data. */
|
|
51
51
|
LoadStrategy["explicitlyRequested"] = "explicitlyRequested";
|
|
52
|
-
/** Never
|
|
52
|
+
/** Never synced with the server; kept only on the client — for local-only state. */
|
|
53
53
|
LoadStrategy["local"] = "local";
|
|
54
54
|
})(LoadStrategy || (LoadStrategy = {}));
|
|
55
55
|
/**
|
|
56
|
-
*
|
|
56
|
+
* The operation a batch mutation performs on a model row.
|
|
57
57
|
*/
|
|
58
58
|
export var MutationOperationType;
|
|
59
59
|
(function (MutationOperationType) {
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The generic record shape for a model's data — a map from field name to value.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* class type, and SyncClient needed this alias back from the store.)
|
|
9
|
-
* `BaseSyncedStore` re-exports it, so existing importers are unchanged.
|
|
4
|
+
* Because the values are typed as `unknown`, read the data as the
|
|
5
|
+
* schema-inferred entity type rather than accessing fields off this shape
|
|
6
|
+
* directly. It has no imports of its own, so any module can depend on it
|
|
7
|
+
* without creating an import cycle.
|
|
10
8
|
*/
|
|
11
|
-
/**
|
|
9
|
+
/** A record mapping each model field name to its value. */
|
|
12
10
|
export type ModelData = Record<string, unknown>;
|
package/dist/types/modelData.js
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The generic record shape for a model's data — a map from field name to value.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* class type, and SyncClient needed this alias back from the store.)
|
|
9
|
-
* `BaseSyncedStore` re-exports it, so existing importers are unchanged.
|
|
4
|
+
* Because the values are typed as `unknown`, read the data as the
|
|
5
|
+
* schema-inferred entity type rather than accessing fields off this shape
|
|
6
|
+
* directly. It has no imports of its own, so any module can depend on it
|
|
7
|
+
* without creating an import cycle.
|
|
10
8
|
*/
|
|
11
9
|
export {};
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The identity of a participant — a person's session, an AI agent, or a system
|
|
3
|
+
* actor — in the coordination protocol.
|
|
3
4
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* foundation triangle `types/streams → schema/model → policy/types →
|
|
9
|
-
* types/streams`. The runtime validator for the same literals stays in
|
|
10
|
-
* `coordination/schema.ts` (`participantKindSchema`).
|
|
5
|
+
* {@link ParticipantRef} is the single identity shape shared by the streams
|
|
6
|
+
* types and the conflict-policy types. It has no imports of its own, so both
|
|
7
|
+
* can depend on it without creating an import cycle. The runtime validator for
|
|
8
|
+
* the same participant kinds lives alongside the other coordination schemas.
|
|
11
9
|
*/
|
|
12
|
-
/** The
|
|
10
|
+
/** The kind of actor a participant is: a human session, an AI agent, or a system actor. */
|
|
13
11
|
export type ParticipantKind = 'user' | 'agent' | 'system';
|
|
14
12
|
/**
|
|
15
|
-
*
|
|
16
|
-
*
|
|
13
|
+
* A reference to one participant: its {@link ParticipantKind} and its id. Used
|
|
14
|
+
* both for the actor performing an action and for the participant it acts on
|
|
15
|
+
* behalf of.
|
|
17
16
|
*/
|
|
18
17
|
export interface ParticipantRef {
|
|
19
18
|
kind: ParticipantKind;
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The identity of a participant — a person's session, an AI agent, or a system
|
|
3
|
+
* actor — in the coordination protocol.
|
|
3
4
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* foundation triangle `types/streams → schema/model → policy/types →
|
|
9
|
-
* types/streams`. The runtime validator for the same literals stays in
|
|
10
|
-
* `coordination/schema.ts` (`participantKindSchema`).
|
|
5
|
+
* {@link ParticipantRef} is the single identity shape shared by the streams
|
|
6
|
+
* types and the conflict-policy types. It has no imports of its own, so both
|
|
7
|
+
* can depend on it without creating an import cycle. The runtime validator for
|
|
8
|
+
* the same participant kinds lives alongside the other coordination schemas.
|
|
11
9
|
*/
|
|
12
10
|
export {};
|