@abloatai/transaction 0.56.0 → 0.58.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/CONVENTIONS.md +54 -10
- package/README.md +3 -1
- package/dist/ai-sdk/modelTools.d.ts +3 -3
- package/dist/ai-sdk/modelTools.d.ts.map +1 -1
- package/dist/ai-sdk/modelTools.js +1 -1
- package/dist/ai-sdk/modelTools.js.map +1 -1
- package/dist/ai-sdk/updateTool.d.ts +5 -7
- package/dist/ai-sdk/updateTool.d.ts.map +1 -1
- package/dist/ai-sdk/updateTool.js +3 -5
- package/dist/ai-sdk/updateTool.js.map +1 -1
- package/dist/auth/capability.d.ts +5 -0
- package/dist/auth/capability.d.ts.map +1 -1
- package/dist/auth/capability.js +5 -0
- package/dist/auth/capability.js.map +1 -1
- package/dist/auth/capabilityLifecycle.d.ts +1 -1
- package/dist/auth/capabilityLifecycle.d.ts.map +1 -1
- package/dist/auth/credentialPolicy.d.ts +1 -1
- package/dist/auth/credentialPolicy.d.ts.map +1 -1
- package/dist/auth/identity.d.ts +3 -3
- package/dist/auth/identity.d.ts.map +1 -1
- package/dist/auth/identity.js +5 -5
- package/dist/auth/identity.js.map +1 -1
- package/dist/auth/index.d.ts +4 -208
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +4 -330
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/runtime.d.ts +218 -0
- package/dist/auth/runtime.d.ts.map +1 -0
- package/dist/auth/runtime.js +336 -0
- package/dist/auth/runtime.js.map +1 -0
- package/dist/auth/sessionMint.d.ts +1 -1
- package/dist/auth/sessionMint.d.ts.map +1 -1
- package/dist/auth/sessionMint.js +2 -1
- package/dist/auth/sessionMint.js.map +1 -1
- package/dist/branches.d.ts +25 -21
- package/dist/branches.d.ts.map +1 -1
- package/dist/branches.js +3 -0
- package/dist/branches.js.map +1 -1
- package/dist/{coordination/awaitClaimGrant.d.ts → claims/awaitGrant.d.ts} +1 -1
- package/dist/claims/awaitGrant.d.ts.map +1 -0
- package/dist/{coordination/awaitClaimGrant.js → claims/awaitGrant.js} +4 -4
- package/dist/claims/awaitGrant.js.map +1 -0
- package/dist/{wire/claims.d.ts → claims/contract.d.ts} +1 -1
- package/dist/claims/contract.d.ts.map +1 -0
- package/dist/{wire/claims.js → claims/contract.js} +2 -2
- package/dist/claims/contract.js.map +1 -0
- package/dist/{wire/claimEvent.d.ts → claims/eventContract.d.ts} +1 -1
- package/dist/claims/eventContract.d.ts.map +1 -0
- package/dist/{wire/claimEvent.js → claims/eventContract.js} +1 -1
- package/dist/claims/eventContract.js.map +1 -0
- package/dist/{coordination → claims}/events.d.ts +7 -11
- package/dist/claims/events.d.ts.map +1 -0
- package/dist/claims/events.js +8 -0
- package/dist/claims/events.js.map +1 -0
- package/dist/{coordination/claimHeartbeatLoop.d.ts → claims/heartbeat.d.ts} +1 -1
- package/dist/claims/heartbeat.d.ts.map +1 -0
- package/dist/{coordination/claimHeartbeatLoop.js → claims/heartbeat.js} +1 -1
- package/dist/claims/heartbeat.js.map +1 -0
- package/dist/claims/index.d.ts +17 -0
- package/dist/claims/index.d.ts.map +1 -0
- package/dist/claims/index.js +16 -0
- package/dist/claims/index.js.map +1 -0
- package/dist/claims/lifetime.d.ts +26 -0
- package/dist/claims/lifetime.d.ts.map +1 -0
- package/dist/claims/lifetime.js +62 -0
- package/dist/claims/lifetime.js.map +1 -0
- package/dist/{coordination → claims}/locator.d.ts +1 -1
- package/dist/claims/locator.d.ts.map +1 -0
- package/dist/{coordination → claims}/locator.js +2 -2
- package/dist/claims/locator.js.map +1 -0
- package/dist/{coordination/claimMeta.d.ts → claims/meta.d.ts} +1 -1
- package/dist/claims/meta.d.ts.map +1 -0
- package/dist/{coordination/claimMeta.js → claims/meta.js} +1 -1
- package/dist/claims/meta.js.map +1 -0
- package/dist/claims/routes.d.ts +59 -0
- package/dist/claims/routes.d.ts.map +1 -0
- package/dist/claims/routes.js +69 -0
- package/dist/claims/routes.js.map +1 -0
- package/dist/claims/targetConflict.d.ts.map +1 -0
- package/dist/claims/targetConflict.js.map +1 -0
- package/dist/{coordination → claims}/trace.d.ts +2 -2
- package/dist/claims/trace.d.ts.map +1 -0
- package/dist/{coordination → claims}/trace.js +5 -5
- package/dist/claims/trace.js.map +1 -0
- package/dist/{ablo.d.ts → client/ablo.d.ts} +6 -15
- package/dist/client/ablo.d.ts.map +1 -0
- package/dist/{ablo.js → client/ablo.js} +2 -2
- package/dist/client/ablo.js.map +1 -0
- package/dist/{transactionLayer.d.ts → client/contract.d.ts} +12 -14
- package/dist/client/contract.d.ts.map +1 -0
- package/dist/{transactionLayer.js → client/contract.js} +4 -5
- package/dist/client/contract.js.map +1 -0
- package/dist/{headlessClient.d.ts → client/headless.d.ts} +4 -4
- package/dist/client/headless.d.ts.map +1 -0
- package/dist/{headlessClient.js → client/headless.js} +8 -10
- package/dist/{headlessClient.js.map → client/headless.js.map} +1 -1
- package/dist/client/index.d.ts +11 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +11 -0
- package/dist/client/index.js.map +1 -0
- package/dist/{resources → client/resources}/functionalUpdate.d.ts +4 -4
- package/dist/client/resources/functionalUpdate.d.ts.map +1 -0
- package/dist/{resources → client/resources}/functionalUpdate.js +3 -3
- package/dist/client/resources/functionalUpdate.js.map +1 -0
- package/dist/{resources → client/resources}/httpResources.d.ts +92 -77
- package/dist/client/resources/httpResources.d.ts.map +1 -0
- package/dist/client/resources/httpResources.js +94 -0
- package/dist/client/resources/httpResources.js.map +1 -0
- package/dist/client/resources/modelCreate.d.ts +21 -0
- package/dist/client/resources/modelCreate.d.ts.map +1 -0
- package/dist/client/resources/modelCreate.js +49 -0
- package/dist/client/resources/modelCreate.js.map +1 -0
- package/dist/{resources → client/resources}/modelOperations.d.ts +57 -51
- package/dist/client/resources/modelOperations.d.ts.map +1 -0
- package/dist/{resources → client/resources}/modelOperations.js +1 -1
- package/dist/client/resources/modelOperations.js.map +1 -0
- package/dist/{resources → client/resources}/mutationOptions.d.ts +4 -17
- package/dist/client/resources/mutationOptions.d.ts.map +1 -0
- package/dist/client/resources/mutationOptions.js.map +1 -0
- package/dist/client/resources/where.d.ts.map +1 -0
- package/dist/{resources → client/resources}/where.js +1 -1
- package/dist/client/resources/where.js.map +1 -0
- package/dist/{resources → client/resources}/writeOptionsSchema.d.ts +16 -35
- package/dist/client/resources/writeOptionsSchema.d.ts.map +1 -0
- package/dist/{resources → client/resources}/writeOptionsSchema.js +25 -18
- package/dist/client/resources/writeOptionsSchema.js.map +1 -0
- package/dist/{transactions → commit}/confirmation/commitEnvelope.d.ts +1 -37
- package/dist/commit/confirmation/commitEnvelope.d.ts.map +1 -0
- package/dist/{transactions → commit}/confirmation/commitEnvelope.js +2 -7
- package/dist/commit/confirmation/commitEnvelope.js.map +1 -0
- package/dist/commit/confirmation/httpCommitEnvelope.d.ts.map +1 -0
- package/dist/{transactions → commit}/confirmation/httpCommitEnvelope.js +1 -1
- package/dist/commit/confirmation/httpCommitEnvelope.js.map +1 -0
- package/dist/commit/confirmation/idempotencyKey.d.ts.map +1 -0
- package/dist/commit/confirmation/idempotencyKey.js.map +1 -0
- package/dist/{transactions → commit}/confirmation/pendingWrite.d.ts +2 -33
- package/dist/commit/confirmation/pendingWrite.d.ts.map +1 -0
- package/dist/{transactions → commit}/confirmation/pendingWrite.js +1 -1
- package/dist/commit/confirmation/pendingWrite.js.map +1 -0
- package/dist/commit/contract.d.ts +1404 -0
- package/dist/commit/contract.d.ts.map +1 -0
- package/dist/{wire/commit.js → commit/contract.js} +26 -21
- package/dist/commit/contract.js.map +1 -0
- package/dist/{durableWrites.d.ts → commit/durableWrites.d.ts} +6 -6
- package/dist/commit/durableWrites.d.ts.map +1 -0
- package/dist/{durableWrites.js → commit/durableWrites.js} +5 -5
- package/dist/commit/durableWrites.js.map +1 -0
- package/dist/commit/httpRequest.d.ts +45 -0
- package/dist/commit/httpRequest.d.ts.map +1 -0
- package/dist/commit/httpRequest.js +66 -0
- package/dist/commit/httpRequest.js.map +1 -0
- package/dist/commit/index.d.ts +17 -0
- package/dist/commit/index.d.ts.map +1 -0
- package/dist/commit/index.js +17 -0
- package/dist/commit/index.js.map +1 -0
- package/dist/{readSetContext.d.ts → commit/readSetContext.d.ts} +7 -15
- package/dist/commit/readSetContext.d.ts.map +1 -0
- package/dist/{readSetContext.js → commit/readSetContext.js} +18 -28
- package/dist/commit/readSetContext.js.map +1 -0
- package/dist/{commitRecordRuntime.d.ts → commit/recordRuntime.d.ts} +3 -5
- package/dist/commit/recordRuntime.d.ts.map +1 -0
- package/dist/{commitRecordRuntime.js → commit/recordRuntime.js} +13 -54
- package/dist/commit/recordRuntime.js.map +1 -0
- package/dist/coordination/index.d.ts +6 -8
- package/dist/coordination/index.d.ts.map +1 -1
- package/dist/coordination/index.js +3 -9
- package/dist/coordination/index.js.map +1 -1
- package/dist/coordination/schema.d.ts +11 -466
- package/dist/coordination/schema.d.ts.map +1 -1
- package/dist/coordination/schema.js +13 -265
- package/dist/coordination/schema.js.map +1 -1
- package/dist/errorCodes.d.ts +16 -9
- package/dist/errorCodes.d.ts.map +1 -1
- package/dist/errorCodes.js +14 -6
- package/dist/errorCodes.js.map +1 -1
- package/dist/errorObservation.d.ts +2 -2
- package/dist/errors.d.ts +3 -2
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +27 -11
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/internal/read-set.d.ts +3 -3
- package/dist/internal/read-set.d.ts.map +1 -1
- package/dist/internal/read-set.js +2 -2
- package/dist/internal/read-set.js.map +1 -1
- package/dist/observability.d.ts +4 -4
- package/dist/observability.d.ts.map +1 -1
- package/dist/observability.js +2 -2
- package/dist/{wire/delta.d.ts → observation/contract.d.ts} +8 -8
- package/dist/observation/contract.d.ts.map +1 -0
- package/dist/{wire/delta.js → observation/contract.js} +3 -3
- package/dist/observation/contract.js.map +1 -0
- package/dist/{wire/feedCursor.d.ts → observation/cursor.d.ts} +1 -1
- package/dist/observation/cursor.d.ts.map +1 -0
- package/dist/{wire/feedCursor.js → observation/cursor.js} +1 -1
- package/dist/observation/cursor.js.map +1 -0
- package/dist/{wire/deltaDelivery.d.ts → observation/deliveryContract.d.ts} +1 -1
- package/dist/observation/deliveryContract.d.ts.map +1 -0
- package/dist/{wire/deltaDelivery.js → observation/deliveryContract.js} +1 -1
- package/dist/observation/deliveryContract.js.map +1 -0
- package/dist/{wire/feedEvent.d.ts → observation/feedContract.d.ts} +10 -10
- package/dist/observation/feedContract.d.ts.map +1 -0
- package/dist/{wire/feedEvent.js → observation/feedContract.js} +4 -4
- package/dist/observation/feedContract.js.map +1 -0
- package/dist/observation/httpFeed.d.ts +4 -0
- package/dist/observation/httpFeed.d.ts.map +1 -0
- package/dist/{transport → observation}/httpFeed.js +1 -1
- package/dist/{transport → observation}/httpFeed.js.map +1 -1
- package/dist/observation/index.d.ts +13 -0
- package/dist/observation/index.d.ts.map +1 -0
- package/dist/observation/index.js +13 -0
- package/dist/observation/index.js.map +1 -0
- package/dist/{log → observation/persistence}/syncDeltaRow.d.ts +8 -8
- package/dist/observation/persistence/syncDeltaRow.d.ts.map +1 -0
- package/dist/{log → observation/persistence}/syncDeltaRow.js +4 -4
- package/dist/observation/persistence/syncDeltaRow.js.map +1 -0
- package/dist/pricing.d.ts +20 -12
- package/dist/pricing.d.ts.map +1 -1
- package/dist/pricing.js +46 -26
- package/dist/pricing.js.map +1 -1
- package/dist/schema/audit.d.ts +15 -0
- package/dist/schema/audit.d.ts.map +1 -0
- package/dist/schema/audit.js +90 -0
- package/dist/schema/audit.js.map +1 -0
- package/dist/schema/ddl.d.ts.map +1 -1
- package/dist/schema/ddl.js +68 -1
- package/dist/schema/ddl.js.map +1 -1
- package/dist/schema/index.d.ts +7 -6
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +6 -7
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/model.d.ts +14 -27
- package/dist/schema/model.d.ts.map +1 -1
- package/dist/schema/model.js +2 -2
- package/dist/schema/model.js.map +1 -1
- package/dist/schema/openapi.d.ts.map +1 -1
- package/dist/schema/openapi.js +149 -8
- package/dist/schema/openapi.js.map +1 -1
- package/dist/schema/roles.d.ts +27 -0
- package/dist/schema/roles.d.ts.map +1 -1
- package/dist/schema/roles.js +40 -0
- package/dist/schema/roles.js.map +1 -1
- package/dist/schema/schema.d.ts +34 -7
- package/dist/schema/schema.d.ts.map +1 -1
- package/dist/schema/schema.js +39 -3
- package/dist/schema/schema.js.map +1 -1
- package/dist/schema/serialize.d.ts +5 -5
- package/dist/schema/serialize.d.ts.map +1 -1
- package/dist/schema/serialize.js +5 -5
- package/dist/schema/serialize.js.map +1 -1
- package/dist/schema/subject.d.ts +18 -0
- package/dist/schema/subject.d.ts.map +1 -0
- package/dist/schema/subject.js +27 -0
- package/dist/schema/subject.js.map +1 -0
- package/dist/schema/tenancy.d.ts +1 -1
- package/dist/server/adapter.d.ts +3 -1
- package/dist/server/adapter.d.ts.map +1 -1
- package/dist/server/commit.d.ts +6 -14
- package/dist/server/commit.d.ts.map +1 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +1 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/readConfig.d.ts +3 -0
- package/dist/server/readConfig.d.ts.map +1 -1
- package/dist/server/readConfig.js +0 -21
- package/dist/server/readConfig.js.map +1 -1
- package/dist/server/storageMode.d.ts +1 -1
- package/dist/source/{adapter.d.ts → adapters/adapter.d.ts} +10 -4
- package/dist/source/adapters/adapter.d.ts.map +1 -0
- package/dist/source/adapters/adapter.js.map +1 -0
- package/dist/source/adapters/adapterFactory.d.ts.map +1 -0
- package/dist/source/{adapterFactory.js → adapters/adapterFactory.js} +1 -1
- package/dist/source/adapters/adapterFactory.js.map +1 -0
- package/dist/source/adapters/adapterProfile.d.ts.map +1 -0
- package/dist/source/adapters/adapterProfile.js.map +1 -0
- package/dist/source/{conformance.d.ts → adapters/conformance.d.ts} +1 -1
- package/dist/source/adapters/conformance.d.ts.map +1 -0
- package/dist/source/{conformance.js → adapters/conformance.js} +1 -1
- package/dist/source/adapters/conformance.js.map +1 -0
- package/dist/source/{contract.d.ts → adapters/contract.d.ts} +20 -75
- package/dist/source/adapters/contract.d.ts.map +1 -0
- package/dist/source/{contract.js → adapters/contract.js} +20 -55
- package/dist/source/adapters/contract.js.map +1 -0
- package/dist/source/adapters/drizzle.d.ts +1 -1
- package/dist/source/adapters/drizzle.d.ts.map +1 -1
- package/dist/source/adapters/drizzle.js +54 -25
- package/dist/source/adapters/drizzle.js.map +1 -1
- package/dist/source/adapters/idempotency.d.ts.map +1 -0
- package/dist/source/{idempotency.js → adapters/idempotency.js} +2 -2
- package/dist/source/adapters/idempotency.js.map +1 -0
- package/dist/source/adapters/index.d.ts +21 -0
- package/dist/source/adapters/index.d.ts.map +1 -0
- package/dist/source/adapters/index.js +21 -0
- package/dist/source/adapters/index.js.map +1 -0
- package/dist/source/adapters/kysely.d.ts +3 -1
- package/dist/source/adapters/kysely.d.ts.map +1 -1
- package/dist/source/adapters/kysely.js +49 -23
- package/dist/source/adapters/kysely.js.map +1 -1
- package/dist/source/adapters/kyselyMutationCore.d.ts +6 -3
- package/dist/source/adapters/kyselyMutationCore.d.ts.map +1 -1
- package/dist/source/adapters/kyselyMutationCore.js +17 -8
- package/dist/source/adapters/kyselyMutationCore.js.map +1 -1
- package/dist/source/adapters/memory.d.ts +3 -3
- package/dist/source/adapters/memory.d.ts.map +1 -1
- package/dist/source/adapters/memory.js +20 -7
- package/dist/source/adapters/memory.js.map +1 -1
- package/dist/source/adapters/migration.d.ts +8 -0
- package/dist/source/adapters/migration.d.ts.map +1 -0
- package/dist/source/adapters/migration.js +9 -0
- package/dist/source/adapters/migration.js.map +1 -0
- package/dist/source/{migrations.d.ts → adapters/migrations.d.ts} +3 -4
- package/dist/source/adapters/migrations.d.ts.map +1 -0
- package/dist/source/{migrations.js → adapters/migrations.js} +4 -31
- package/dist/source/adapters/migrations.js.map +1 -0
- package/dist/source/adapters/prisma.d.ts +1 -1
- package/dist/source/adapters/prisma.d.ts.map +1 -1
- package/dist/source/adapters/prisma.js +75 -30
- package/dist/source/adapters/prisma.js.map +1 -1
- package/dist/source/adapters/subjectAuthorization.d.ts +16 -0
- package/dist/source/adapters/subjectAuthorization.d.ts.map +1 -0
- package/dist/source/adapters/subjectAuthorization.js +126 -0
- package/dist/source/adapters/subjectAuthorization.js.map +1 -0
- package/dist/source/{connector.d.ts → connector/client.d.ts} +6 -1
- package/dist/source/connector/client.d.ts.map +1 -0
- package/dist/source/{connector.js → connector/client.js} +28 -11
- package/dist/source/connector/client.js.map +1 -0
- package/dist/source/connector/index.d.ts +4 -0
- package/dist/source/connector/index.d.ts.map +1 -0
- package/dist/source/connector/index.js +4 -0
- package/dist/source/connector/index.js.map +1 -0
- package/dist/source/{connectorProtocol.d.ts → connector/protocol.d.ts} +8 -1
- package/dist/source/connector/protocol.d.ts.map +1 -0
- package/dist/source/{connectorProtocol.js → connector/protocol.js} +10 -3
- package/dist/source/connector/protocol.js.map +1 -0
- package/dist/source/delivery/index.d.ts +3 -0
- package/dist/source/delivery/index.d.ts.map +1 -0
- package/dist/source/delivery/index.js +3 -0
- package/dist/source/delivery/index.js.map +1 -0
- package/dist/source/{pushQueue.d.ts → delivery/pushQueue.d.ts} +1 -1
- package/dist/source/delivery/pushQueue.d.ts.map +1 -0
- package/dist/source/{pushQueue.js → delivery/pushQueue.js} +1 -1
- package/dist/source/delivery/pushQueue.js.map +1 -0
- package/dist/source/{factory.d.ts → endpoint/factory.d.ts} +9 -3
- package/dist/source/endpoint/factory.d.ts.map +1 -0
- package/dist/source/{factory.js → endpoint/factory.js} +122 -6
- package/dist/source/endpoint/factory.js.map +1 -0
- package/dist/source/endpoint/index.d.ts +5 -0
- package/dist/source/endpoint/index.d.ts.map +1 -0
- package/dist/source/endpoint/index.js +5 -0
- package/dist/source/endpoint/index.js.map +1 -0
- package/dist/source/{next.d.ts → endpoint/next.d.ts} +2 -2
- package/dist/source/endpoint/next.d.ts.map +1 -0
- package/dist/source/{next.js → endpoint/next.js} +1 -1
- package/dist/source/endpoint/next.js.map +1 -0
- package/dist/source/{signing.d.ts → endpoint/signing.d.ts} +1 -1
- package/dist/source/endpoint/signing.d.ts.map +1 -0
- package/dist/source/{signing.js → endpoint/signing.js} +1 -1
- package/dist/source/endpoint/signing.js.map +1 -0
- package/dist/source/index.d.ts +15 -12
- package/dist/source/index.d.ts.map +1 -1
- package/dist/source/index.js +13 -10
- package/dist/source/index.js.map +1 -1
- package/dist/source/outbox/contract.d.ts +50 -0
- package/dist/source/outbox/contract.d.ts.map +1 -0
- package/dist/source/outbox/contract.js +50 -0
- package/dist/source/outbox/contract.js.map +1 -0
- package/dist/source/outbox/envelope.d.ts +9 -0
- package/dist/source/outbox/envelope.d.ts.map +1 -0
- package/dist/source/outbox/envelope.js +36 -0
- package/dist/source/outbox/envelope.js.map +1 -0
- package/dist/source/outbox/index.d.ts +11 -0
- package/dist/source/outbox/index.d.ts.map +1 -0
- package/dist/source/outbox/index.js +11 -0
- package/dist/source/outbox/index.js.map +1 -0
- package/dist/source/outbox/migrations.d.ts +4 -0
- package/dist/source/outbox/migrations.d.ts.map +1 -0
- package/dist/source/outbox/migrations.js +67 -0
- package/dist/source/outbox/migrations.js.map +1 -0
- package/dist/source/outbox/retention.d.ts +3 -0
- package/dist/source/outbox/retention.d.ts.map +1 -0
- package/dist/source/outbox/retention.js +3 -0
- package/dist/source/outbox/retention.js.map +1 -0
- package/dist/source/types.d.ts +59 -10
- package/dist/source/types.d.ts.map +1 -1
- package/dist/source/types.js +2 -0
- package/dist/source/types.js.map +1 -1
- package/dist/syncLog/contract.d.ts +19 -8
- package/dist/syncLog/contract.d.ts.map +1 -1
- package/dist/syncLog/contract.js +19 -6
- package/dist/syncLog/contract.js.map +1 -1
- package/dist/testing/fixtures/httpResponses.d.ts +6 -0
- package/dist/testing/fixtures/httpResponses.d.ts.map +1 -1
- package/dist/testing/fixtures/httpResponses.js +1 -0
- package/dist/testing/fixtures/httpResponses.js.map +1 -1
- package/dist/transport/{credentialLifecycle.d.ts → connection/credentialLifecycle.d.ts} +3 -3
- package/dist/transport/connection/credentialLifecycle.d.ts.map +1 -0
- package/dist/transport/{credentialLifecycle.js → connection/credentialLifecycle.js} +2 -2
- package/dist/transport/connection/credentialLifecycle.js.map +1 -0
- package/dist/transport/connection/index.d.ts +5 -0
- package/dist/transport/connection/index.d.ts.map +1 -0
- package/dist/transport/connection/index.js +5 -0
- package/dist/transport/connection/index.js.map +1 -0
- package/dist/transport/{connectionManager.d.ts → connection/manager.d.ts} +13 -5
- package/dist/transport/connection/manager.d.ts.map +1 -0
- package/dist/transport/{connectionManager.js → connection/manager.js} +6 -4
- package/dist/transport/connection/manager.js.map +1 -0
- package/dist/transport/{networkProbe.d.ts → connection/networkProbe.d.ts} +2 -2
- package/dist/transport/connection/networkProbe.d.ts.map +1 -0
- package/dist/transport/{networkProbe.js → connection/networkProbe.js} +4 -4
- package/dist/transport/connection/networkProbe.js.map +1 -0
- package/dist/transport/{httpClient.d.ts → http/client.d.ts} +32 -44
- package/dist/transport/http/client.d.ts.map +1 -0
- package/dist/transport/{httpClient.js → http/client.js} +96 -105
- package/dist/transport/http/client.js.map +1 -0
- package/dist/transport/http/helpers.d.ts +10 -0
- package/dist/transport/http/helpers.d.ts.map +1 -0
- package/dist/transport/http/helpers.js +46 -0
- package/dist/transport/http/helpers.js.map +1 -0
- package/dist/transport/http/index.d.ts +6 -0
- package/dist/transport/http/index.d.ts.map +1 -0
- package/dist/transport/http/index.js +6 -0
- package/dist/transport/http/index.js.map +1 -0
- package/dist/transport/{httpOptions.d.ts → http/options.d.ts} +7 -7
- package/dist/transport/{httpOptions.d.ts.map → http/options.d.ts.map} +1 -1
- package/dist/transport/{httpOptions.js → http/options.js} +1 -1
- package/dist/transport/http/options.js.map +1 -0
- package/dist/transport/http/subscription.d.ts +16 -0
- package/dist/transport/http/subscription.d.ts.map +1 -0
- package/dist/transport/http/subscription.js +146 -0
- package/dist/transport/http/subscription.js.map +1 -0
- package/dist/transport/{httpTransport.d.ts → http/transport.d.ts} +9 -6
- package/dist/transport/http/transport.d.ts.map +1 -0
- package/dist/transport/{httpTransport.js → http/transport.js} +153 -188
- package/dist/transport/http/transport.js.map +1 -0
- package/dist/transport/index.d.ts +8 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +8 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/{commitFrames.d.ts → websocket/commitFrames.d.ts} +8 -20
- package/dist/transport/websocket/commitFrames.d.ts.map +1 -0
- package/dist/transport/{commitFrames.js → websocket/commitFrames.js} +6 -25
- package/dist/transport/websocket/commitFrames.js.map +1 -0
- package/dist/transport/{wsFrameHandlers.d.ts → websocket/frameHandlers.d.ts} +5 -5
- package/dist/transport/websocket/frameHandlers.d.ts.map +1 -0
- package/dist/transport/{wsFrameHandlers.js → websocket/frameHandlers.js} +10 -51
- package/dist/transport/websocket/frameHandlers.js.map +1 -0
- package/dist/transport/{heartbeat.d.ts → websocket/heartbeat.d.ts} +1 -1
- package/dist/transport/websocket/heartbeat.d.ts.map +1 -0
- package/dist/transport/{heartbeat.js → websocket/heartbeat.js} +2 -2
- package/dist/transport/websocket/heartbeat.js.map +1 -0
- package/dist/transport/websocket/index.d.ts +6 -0
- package/dist/transport/websocket/index.d.ts.map +1 -0
- package/dist/transport/websocket/index.js +6 -0
- package/dist/transport/websocket/index.js.map +1 -0
- package/dist/transport/{wsTransport.d.ts → websocket/transport.d.ts} +13 -25
- package/dist/transport/websocket/transport.d.ts.map +1 -0
- package/dist/transport/{wsTransport.js → websocket/transport.js} +14 -14
- package/dist/transport/websocket/transport.js.map +1 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/streams.d.ts +8 -48
- package/dist/types/streams.d.ts.map +1 -1
- package/dist/types/streams.js +2 -2
- package/dist/wire/accountResponses.d.ts +4 -72
- package/dist/wire/accountResponses.d.ts.map +1 -1
- package/dist/wire/accountResponses.js +2 -10
- package/dist/wire/accountResponses.js.map +1 -1
- package/dist/wire/apiLifecycle.d.ts +63 -0
- package/dist/wire/apiLifecycle.d.ts.map +1 -0
- package/dist/wire/apiLifecycle.js +89 -0
- package/dist/wire/apiLifecycle.js.map +1 -0
- package/dist/wire/frames.d.ts +6 -83
- package/dist/wire/frames.d.ts.map +1 -1
- package/dist/wire/frames.js +4 -11
- package/dist/wire/frames.js.map +1 -1
- package/dist/wire/inboundFrames.d.ts +6 -131
- package/dist/wire/inboundFrames.d.ts.map +1 -1
- package/dist/wire/inboundFrames.js +3 -3
- package/dist/wire/inboundFrames.js.map +1 -1
- package/dist/wire/index.d.ts +20 -15
- package/dist/wire/index.d.ts.map +1 -1
- package/dist/wire/index.js +22 -8
- package/dist/wire/index.js.map +1 -1
- package/dist/wire/modelMutations.d.ts +1 -32
- package/dist/wire/modelMutations.d.ts.map +1 -1
- package/dist/wire/modelMutations.js +1 -8
- package/dist/wire/modelMutations.js.map +1 -1
- package/dist/wire/rateLimit.d.ts +82 -0
- package/dist/wire/rateLimit.d.ts.map +1 -0
- package/dist/wire/rateLimit.js +142 -0
- package/dist/wire/rateLimit.js.map +1 -0
- package/package.json +130 -10
- package/src/ai-sdk/modelTools.ts +5 -5
- package/src/ai-sdk/updateTool.ts +5 -7
- package/src/auth/capability.ts +5 -0
- package/src/auth/capabilityLifecycle.ts +1 -1
- package/src/auth/credentialPolicy.ts +1 -1
- package/src/auth/identity.ts +7 -7
- package/src/auth/index.ts +4 -663
- package/src/auth/runtime.ts +669 -0
- package/src/auth/sessionMint.ts +3 -2
- package/src/branches.ts +3 -0
- package/src/{coordination/awaitClaimGrant.ts → claims/awaitGrant.ts} +4 -4
- package/src/{wire/claims.ts → claims/contract.ts} +1 -1
- package/src/{coordination → claims}/events.ts +7 -11
- package/src/claims/index.ts +21 -0
- package/src/claims/lifetime.ts +78 -0
- package/src/{coordination → claims}/locator.ts +3 -3
- package/src/claims/routes.ts +81 -0
- package/src/{coordination → claims}/trace.ts +5 -5
- package/src/{ablo.ts → client/ablo.ts} +8 -20
- package/src/{transactionLayer.ts → client/contract.ts} +11 -13
- package/src/{headlessClient.ts → client/headless.ts} +13 -15
- package/src/client/index.ts +10 -0
- package/src/{resources → client/resources}/functionalUpdate.ts +4 -4
- package/src/{resources → client/resources}/httpResources.ts +163 -92
- package/src/client/resources/modelCreate.ts +73 -0
- package/src/{resources → client/resources}/modelOperations.ts +73 -55
- package/src/{resources → client/resources}/mutationOptions.ts +4 -17
- package/src/{resources → client/resources}/where.ts +1 -1
- package/src/{resources → client/resources}/writeOptionsSchema.ts +35 -27
- package/src/{transactions → commit}/confirmation/commitEnvelope.ts +2 -12
- package/src/{transactions → commit}/confirmation/httpCommitEnvelope.ts +1 -1
- package/src/{transactions → commit}/confirmation/pendingWrite.ts +1 -1
- package/src/{wire/commit.ts → commit/contract.ts} +27 -26
- package/src/{durableWrites.ts → commit/durableWrites.ts} +7 -7
- package/src/commit/httpRequest.ts +103 -0
- package/src/commit/index.ts +16 -0
- package/src/{readSetContext.ts → commit/readSetContext.ts} +24 -43
- package/src/{commitRecordRuntime.ts → commit/recordRuntime.ts} +12 -67
- package/src/coordination/index.ts +4 -54
- package/src/coordination/schema.ts +15 -309
- package/src/errorCodes.ts +62 -10
- package/src/errors.ts +32 -10
- package/src/index.ts +8 -8
- package/src/internal/read-set.ts +3 -6
- package/src/observability.ts +4 -4
- package/src/{wire/delta.ts → observation/contract.ts} +2 -2
- package/src/{wire/feedEvent.ts → observation/feedContract.ts} +3 -4
- package/src/{transport → observation}/httpFeed.ts +3 -3
- package/src/observation/index.ts +12 -0
- package/src/{log → observation/persistence}/syncDeltaRow.ts +6 -7
- package/src/pricing.ts +46 -25
- package/src/schema/audit.ts +121 -0
- package/src/schema/ddl.ts +71 -1
- package/src/schema/index.ts +20 -20
- package/src/schema/model.ts +17 -33
- package/src/schema/openapi.ts +170 -9
- package/src/schema/roles.ts +53 -0
- package/src/schema/schema.ts +91 -6
- package/src/schema/serialize.ts +8 -9
- package/src/schema/subject.ts +43 -0
- package/src/server/adapter.ts +3 -1
- package/src/server/commit.ts +6 -14
- package/src/server/index.ts +1 -1
- package/src/server/readConfig.ts +4 -0
- package/src/source/{adapter.ts → adapters/adapter.ts} +9 -5
- package/src/source/{adapterFactory.ts → adapters/adapterFactory.ts} +1 -1
- package/src/source/{conformance.ts → adapters/conformance.ts} +1 -1
- package/src/source/{contract.ts → adapters/contract.ts} +24 -61
- package/src/source/adapters/drizzle.ts +75 -29
- package/src/source/{idempotency.ts → adapters/idempotency.ts} +2 -2
- package/src/source/adapters/index.ts +20 -0
- package/src/source/adapters/kysely.ts +77 -27
- package/src/source/adapters/kyselyMutationCore.ts +23 -11
- package/src/source/adapters/memory.ts +26 -9
- package/src/source/adapters/migration.ts +11 -0
- package/src/source/{migrations.ts → adapters/migrations.ts} +6 -33
- package/src/source/adapters/prisma.ts +98 -34
- package/src/source/adapters/subjectAuthorization.ts +182 -0
- package/src/source/{connector.ts → connector/client.ts} +35 -12
- package/src/source/connector/index.ts +3 -0
- package/src/source/{connectorProtocol.ts → connector/protocol.ts} +10 -2
- package/src/source/delivery/index.ts +2 -0
- package/src/source/{pushQueue.ts → delivery/pushQueue.ts} +2 -2
- package/src/source/{factory.ts → endpoint/factory.ts} +150 -9
- package/src/source/endpoint/index.ts +4 -0
- package/src/source/{next.ts → endpoint/next.ts} +2 -2
- package/src/source/{signing.ts → endpoint/signing.ts} +1 -1
- package/src/source/index.ts +27 -18
- package/src/source/outbox/contract.ts +56 -0
- package/src/source/outbox/envelope.ts +47 -0
- package/src/source/outbox/index.ts +15 -0
- package/src/source/outbox/migrations.ts +71 -0
- package/src/source/outbox/retention.ts +2 -0
- package/src/source/types.ts +64 -10
- package/src/syncLog/contract.ts +19 -9
- package/src/testing/fixtures/httpResponses.ts +7 -0
- package/src/transport/{credentialLifecycle.ts → connection/credentialLifecycle.ts} +3 -3
- package/src/transport/connection/index.ts +4 -0
- package/src/transport/{connectionManager.ts → connection/manager.ts} +13 -4
- package/src/transport/{networkProbe.ts → connection/networkProbe.ts} +4 -4
- package/src/transport/{httpClient.ts → http/client.ts} +165 -184
- package/src/transport/http/helpers.ts +63 -0
- package/src/transport/http/index.ts +5 -0
- package/src/transport/{httpOptions.ts → http/options.ts} +6 -6
- package/src/transport/http/subscription.ts +174 -0
- package/src/transport/{httpTransport.ts → http/transport.ts} +210 -246
- package/src/transport/index.ts +7 -0
- package/src/transport/{commitFrames.ts → websocket/commitFrames.ts} +14 -46
- package/src/transport/{wsFrameHandlers.ts → websocket/frameHandlers.ts} +11 -54
- package/src/transport/{heartbeat.ts → websocket/heartbeat.ts} +2 -2
- package/src/transport/websocket/index.ts +5 -0
- package/src/transport/{wsTransport.ts → websocket/transport.ts} +16 -30
- package/src/types/index.ts +2 -6
- package/src/types/streams.ts +7 -61
- package/src/webhooks/events.ts +1 -1
- package/src/wire/accountResponses.ts +3 -12
- package/src/wire/apiLifecycle.ts +94 -0
- package/src/wire/frames.ts +5 -15
- package/src/wire/inboundFrames.ts +3 -3
- package/src/wire/index.ts +50 -15
- package/src/wire/modelMutations.ts +1 -14
- package/src/wire/rateLimit.ts +155 -0
- package/dist/ablo.d.ts.map +0 -1
- package/dist/ablo.js.map +0 -1
- package/dist/commitRecordRuntime.d.ts.map +0 -1
- package/dist/commitRecordRuntime.js.map +0 -1
- package/dist/coordination/awaitClaimGrant.d.ts.map +0 -1
- package/dist/coordination/awaitClaimGrant.js.map +0 -1
- package/dist/coordination/claimHeartbeatLoop.d.ts.map +0 -1
- package/dist/coordination/claimHeartbeatLoop.js.map +0 -1
- package/dist/coordination/claimMeta.d.ts.map +0 -1
- package/dist/coordination/claimMeta.js.map +0 -1
- package/dist/coordination/events.d.ts.map +0 -1
- package/dist/coordination/events.js +0 -8
- package/dist/coordination/events.js.map +0 -1
- package/dist/coordination/locator.d.ts.map +0 -1
- package/dist/coordination/locator.js.map +0 -1
- package/dist/coordination/targetConflict.d.ts.map +0 -1
- package/dist/coordination/targetConflict.js.map +0 -1
- package/dist/coordination/trace.d.ts.map +0 -1
- package/dist/coordination/trace.js.map +0 -1
- package/dist/durableWrites.d.ts.map +0 -1
- package/dist/durableWrites.js.map +0 -1
- package/dist/headlessClient.d.ts.map +0 -1
- package/dist/log/syncDeltaRow.d.ts.map +0 -1
- package/dist/log/syncDeltaRow.js.map +0 -1
- package/dist/policy/types.d.ts +0 -226
- package/dist/policy/types.d.ts.map +0 -1
- package/dist/policy/types.js +0 -127
- package/dist/policy/types.js.map +0 -1
- package/dist/readSetContext.d.ts.map +0 -1
- package/dist/readSetContext.js.map +0 -1
- package/dist/resources/functionalUpdate.d.ts.map +0 -1
- package/dist/resources/functionalUpdate.js.map +0 -1
- package/dist/resources/httpResources.d.ts.map +0 -1
- package/dist/resources/httpResources.js +0 -17
- package/dist/resources/httpResources.js.map +0 -1
- package/dist/resources/modelOperations.d.ts.map +0 -1
- package/dist/resources/modelOperations.js.map +0 -1
- package/dist/resources/mutationOptions.d.ts.map +0 -1
- package/dist/resources/mutationOptions.js.map +0 -1
- package/dist/resources/where.d.ts.map +0 -1
- package/dist/resources/where.js.map +0 -1
- package/dist/resources/writeOptionsSchema.d.ts.map +0 -1
- package/dist/resources/writeOptionsSchema.js.map +0 -1
- package/dist/schema/coordination.d.ts +0 -113
- package/dist/schema/coordination.d.ts.map +0 -1
- package/dist/schema/coordination.js +0 -134
- package/dist/schema/coordination.js.map +0 -1
- package/dist/source/adapter.d.ts.map +0 -1
- package/dist/source/adapter.js.map +0 -1
- package/dist/source/adapterFactory.d.ts.map +0 -1
- package/dist/source/adapterFactory.js.map +0 -1
- package/dist/source/adapterProfile.d.ts.map +0 -1
- package/dist/source/adapterProfile.js.map +0 -1
- package/dist/source/conformance.d.ts.map +0 -1
- package/dist/source/conformance.js.map +0 -1
- package/dist/source/connector.d.ts.map +0 -1
- package/dist/source/connector.js.map +0 -1
- package/dist/source/connectorProtocol.d.ts.map +0 -1
- package/dist/source/connectorProtocol.js.map +0 -1
- package/dist/source/contract.d.ts.map +0 -1
- package/dist/source/contract.js.map +0 -1
- package/dist/source/drizzle.d.ts +0 -2
- package/dist/source/drizzle.d.ts.map +0 -1
- package/dist/source/drizzle.js +0 -2
- package/dist/source/drizzle.js.map +0 -1
- package/dist/source/factory.d.ts.map +0 -1
- package/dist/source/factory.js.map +0 -1
- package/dist/source/idempotency.d.ts.map +0 -1
- package/dist/source/idempotency.js.map +0 -1
- package/dist/source/kysely.d.ts +0 -3
- package/dist/source/kysely.d.ts.map +0 -1
- package/dist/source/kysely.js +0 -3
- package/dist/source/kysely.js.map +0 -1
- package/dist/source/migrations.d.ts.map +0 -1
- package/dist/source/migrations.js.map +0 -1
- package/dist/source/next.d.ts.map +0 -1
- package/dist/source/next.js.map +0 -1
- package/dist/source/pushQueue.d.ts.map +0 -1
- package/dist/source/pushQueue.js.map +0 -1
- package/dist/source/signing.d.ts.map +0 -1
- package/dist/source/signing.js.map +0 -1
- package/dist/transactionLayer.d.ts.map +0 -1
- package/dist/transactionLayer.js.map +0 -1
- package/dist/transactions/confirmation/commitEnvelope.d.ts.map +0 -1
- package/dist/transactions/confirmation/commitEnvelope.js.map +0 -1
- package/dist/transactions/confirmation/httpCommitEnvelope.d.ts.map +0 -1
- package/dist/transactions/confirmation/httpCommitEnvelope.js.map +0 -1
- package/dist/transactions/confirmation/idempotencyKey.d.ts.map +0 -1
- package/dist/transactions/confirmation/idempotencyKey.js.map +0 -1
- package/dist/transactions/confirmation/pendingWrite.d.ts.map +0 -1
- package/dist/transactions/confirmation/pendingWrite.js.map +0 -1
- package/dist/transport/commitFrames.d.ts.map +0 -1
- package/dist/transport/commitFrames.js.map +0 -1
- package/dist/transport/connectionManager.d.ts.map +0 -1
- package/dist/transport/connectionManager.js.map +0 -1
- package/dist/transport/credentialLifecycle.d.ts.map +0 -1
- package/dist/transport/credentialLifecycle.js.map +0 -1
- package/dist/transport/heartbeat.d.ts.map +0 -1
- package/dist/transport/heartbeat.js.map +0 -1
- package/dist/transport/httpClient.d.ts.map +0 -1
- package/dist/transport/httpClient.js.map +0 -1
- package/dist/transport/httpFeed.d.ts +0 -4
- package/dist/transport/httpFeed.d.ts.map +0 -1
- package/dist/transport/httpOptions.js.map +0 -1
- package/dist/transport/httpTransport.d.ts.map +0 -1
- package/dist/transport/httpTransport.js.map +0 -1
- package/dist/transport/networkProbe.d.ts.map +0 -1
- package/dist/transport/networkProbe.js.map +0 -1
- package/dist/transport/wsFrameHandlers.d.ts.map +0 -1
- package/dist/transport/wsFrameHandlers.js.map +0 -1
- package/dist/transport/wsTransport.d.ts.map +0 -1
- package/dist/transport/wsTransport.js.map +0 -1
- package/dist/wire/claimEvent.d.ts.map +0 -1
- package/dist/wire/claimEvent.js.map +0 -1
- package/dist/wire/claims.d.ts.map +0 -1
- package/dist/wire/claims.js.map +0 -1
- package/dist/wire/commit.d.ts +0 -2801
- package/dist/wire/commit.d.ts.map +0 -1
- package/dist/wire/commit.js.map +0 -1
- package/dist/wire/delta.d.ts.map +0 -1
- package/dist/wire/delta.js.map +0 -1
- package/dist/wire/deltaDelivery.d.ts.map +0 -1
- package/dist/wire/deltaDelivery.js.map +0 -1
- package/dist/wire/feedCursor.d.ts.map +0 -1
- package/dist/wire/feedCursor.js.map +0 -1
- package/dist/wire/feedEvent.d.ts.map +0 -1
- package/dist/wire/feedEvent.js.map +0 -1
- package/src/policy/types.ts +0 -300
- package/src/schema/coordination.ts +0 -161
- package/src/source/drizzle.ts +0 -1
- package/src/source/kysely.ts +0 -2
- /package/dist/{coordination → claims}/targetConflict.d.ts +0 -0
- /package/dist/{coordination → claims}/targetConflict.js +0 -0
- /package/dist/{resources → client/resources}/mutationOptions.js +0 -0
- /package/dist/{resources → client/resources}/where.d.ts +0 -0
- /package/dist/{transactions → commit}/confirmation/httpCommitEnvelope.d.ts +0 -0
- /package/dist/{transactions → commit}/confirmation/idempotencyKey.d.ts +0 -0
- /package/dist/{transactions → commit}/confirmation/idempotencyKey.js +0 -0
- /package/dist/source/{adapter.js → adapters/adapter.js} +0 -0
- /package/dist/source/{adapterFactory.d.ts → adapters/adapterFactory.d.ts} +0 -0
- /package/dist/source/{adapterProfile.d.ts → adapters/adapterProfile.d.ts} +0 -0
- /package/dist/source/{adapterProfile.js → adapters/adapterProfile.js} +0 -0
- /package/dist/source/{idempotency.d.ts → adapters/idempotency.d.ts} +0 -0
- /package/src/{wire/claimEvent.ts → claims/eventContract.ts} +0 -0
- /package/src/{coordination/claimHeartbeatLoop.ts → claims/heartbeat.ts} +0 -0
- /package/src/{coordination/claimMeta.ts → claims/meta.ts} +0 -0
- /package/src/{coordination → claims}/targetConflict.ts +0 -0
- /package/src/{transactions → commit}/confirmation/idempotencyKey.ts +0 -0
- /package/src/{wire/feedCursor.ts → observation/cursor.ts} +0 -0
- /package/src/{wire/deltaDelivery.ts → observation/deliveryContract.ts} +0 -0
- /package/src/source/{adapterProfile.ts → adapters/adapterProfile.ts} +0 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The HTTP commit as a VALUE: what it is keyed by, the operations it carries,
|
|
3
|
+
* the exact bytes it is replayed as, and the error when its echo never lands.
|
|
4
|
+
*
|
|
5
|
+
* None of this touches the transport's state. It was written inside
|
|
6
|
+
* `createHttpTransport` because that is where it was first needed, which made a
|
|
7
|
+
* two-thousand-line closure the only place the shape of a commit was stated.
|
|
8
|
+
* Read together here, the four say one thing: a commit is identified by its
|
|
9
|
+
* idempotency key, normalized once so every operation carries the same
|
|
10
|
+
* defaults, replayed byte for byte, and abandoned only when the source accepted
|
|
11
|
+
* it and the replication echo did not arrive.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
import { AbloConnectionError, AbloValidationError } from '../errors.js';
|
|
15
|
+
import type { BatchFence } from '../claims/locator.js';
|
|
16
|
+
import { claimIdFor, fenceTokenFor } from '../claims/locator.js';
|
|
17
|
+
import type { Claim } from '../types/streams.js';
|
|
18
|
+
import type { CommitCreateOptions, CommitOperationInput } from '../client/resources/httpResources.js';
|
|
19
|
+
import type { CommitReceiptWire } from './contract.js';
|
|
20
|
+
import type { DurableHttpCommitMethod } from './confirmation/httpCommitEnvelope.js';
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* One commit, exactly as it will be sent and re-sent. A replay that changed any
|
|
24
|
+
* of these would be a different request wearing the same idempotency key.
|
|
25
|
+
*/
|
|
26
|
+
export interface ExactHttpCommitRequest {
|
|
27
|
+
readonly idempotencyKey: string;
|
|
28
|
+
readonly method: DurableHttpCommitMethod;
|
|
29
|
+
readonly path: string;
|
|
30
|
+
readonly body: string;
|
|
31
|
+
readonly sealedProtocolVersion?: number;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* The key a commit is replayed under. A caller's idempotency key wins, because
|
|
36
|
+
* it is the caller's statement that two attempts are the same write.
|
|
37
|
+
*/
|
|
38
|
+
export function createClientTxId(idempotencyKey?: string | null): string {
|
|
39
|
+
if (idempotencyKey && idempotencyKey.length > 0) return idempotencyKey;
|
|
40
|
+
return typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function'
|
|
41
|
+
? crypto.randomUUID()
|
|
42
|
+
: `tx_${Date.now()}_${Math.random().toString(36).slice(2, 10)}`;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/** One operation with the batch's defaults resolved onto it. */
|
|
46
|
+
export function normalizeCommitOperation(
|
|
47
|
+
op: CommitOperationInput,
|
|
48
|
+
defaults: Pick<CommitCreateOptions, 'readAt'>,
|
|
49
|
+
fence: BatchFence | null,
|
|
50
|
+
claim: Claim | null,
|
|
51
|
+
): CommitOperationInput {
|
|
52
|
+
return {
|
|
53
|
+
action: op.action,
|
|
54
|
+
model: op.model,
|
|
55
|
+
id: op.id ?? null,
|
|
56
|
+
data: op.data ?? null,
|
|
57
|
+
where: op.where ?? null,
|
|
58
|
+
transactionId: op.transactionId ?? null,
|
|
59
|
+
claimId: op.claimId ?? claimIdFor(claim?.target, claim?.id, op.model, op.id ?? null),
|
|
60
|
+
readAt: op.readAt ?? defaults.readAt ?? null,
|
|
61
|
+
fenceToken: op.fenceToken ?? fenceTokenFor(fence, op.model, op.id ?? null),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/** Every operation in a batch, normalized against the batch's own options. */
|
|
66
|
+
export function normalizeCommitOperations(
|
|
67
|
+
commitOptions: CommitCreateOptions,
|
|
68
|
+
fence: BatchFence | null,
|
|
69
|
+
): readonly CommitOperationInput[] {
|
|
70
|
+
if (commitOptions.operations.length === 0) {
|
|
71
|
+
throw new AbloValidationError('Commit requires a non-empty `operations` array.', {
|
|
72
|
+
code: 'commit_operation_required',
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return commitOptions.operations.map((op) =>
|
|
76
|
+
normalizeCommitOperation(op, commitOptions, fence, commitOptions.claim ?? null),
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* The source accepted the write and its replication echo did not arrive in
|
|
82
|
+
* time. `accepted: true` is the load-bearing detail: the row may well be
|
|
83
|
+
* written, so this is a confirmation timeout and never a reason to write again.
|
|
84
|
+
*/
|
|
85
|
+
export function replicationLagTimeout(
|
|
86
|
+
request: ExactHttpCommitRequest,
|
|
87
|
+
response: CommitReceiptWire,
|
|
88
|
+
requestTimeoutMs: number,
|
|
89
|
+
): AbloConnectionError {
|
|
90
|
+
return new AbloConnectionError(
|
|
91
|
+
`The source accepted commit ${request.idempotencyKey}, but its replication echo did not arrive within ${requestTimeoutMs}ms.`,
|
|
92
|
+
{
|
|
93
|
+
code: 'replication_lag_timeout',
|
|
94
|
+
httpStatus: 504,
|
|
95
|
+
details: {
|
|
96
|
+
clientTxId: request.idempotencyKey,
|
|
97
|
+
...(response.correlationId ? { correlationId: response.correlationId } : {}),
|
|
98
|
+
timeoutMs: requestTimeoutMs,
|
|
99
|
+
accepted: true,
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
);
|
|
103
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Commit subsystem.
|
|
3
|
+
*
|
|
4
|
+
* Start here and descend through the lifecycle contract, durable confirmation
|
|
5
|
+
* records, persistence port, request normalization, and runtime observation.
|
|
6
|
+
* Transport mechanisms consume this boundary; they do not own commit meaning.
|
|
7
|
+
*/
|
|
8
|
+
export * from './contract.js';
|
|
9
|
+
export * from './durableWrites.js';
|
|
10
|
+
export * from './httpRequest.js';
|
|
11
|
+
export * from './recordRuntime.js';
|
|
12
|
+
export * from './readSetContext.js';
|
|
13
|
+
export * from './confirmation/commitEnvelope.js';
|
|
14
|
+
export * from './confirmation/httpCommitEnvelope.js';
|
|
15
|
+
export * from './confirmation/idempotencyKey.js';
|
|
16
|
+
export * from './confirmation/pendingWrite.js';
|
|
@@ -5,14 +5,9 @@
|
|
|
5
5
|
* but this is not an execution context: it has no async carrier and no ambient
|
|
6
6
|
* scope. Evidence is keyed only by the exact object returned to the caller.
|
|
7
7
|
*/
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
type OnStaleMode,
|
|
12
|
-
type ReadDependency,
|
|
13
|
-
} from './coordination/schema.js';
|
|
14
|
-
import { AbloValidationError } from './errors.js';
|
|
15
|
-
import type { CommitRecord } from './wire/commit.js';
|
|
8
|
+
import { readDependencySchema, type ReadDependency } from '../coordination/schema.js';
|
|
9
|
+
import { AbloValidationError, type AbloStaleContextError } from '../errors.js';
|
|
10
|
+
import type { CommitRecord } from './contract.js';
|
|
16
11
|
|
|
17
12
|
type ClientIdentity = object;
|
|
18
13
|
|
|
@@ -22,7 +17,7 @@ export const kReadEvidence = Symbol.for('ablo.transaction.read-evidence');
|
|
|
22
17
|
/** @internal One exact returned-row assertion. */
|
|
23
18
|
export interface CapturedReadEvidence {
|
|
24
19
|
readonly client: ClientIdentity;
|
|
25
|
-
readonly entry:
|
|
20
|
+
readonly entry: ReadDependency;
|
|
26
21
|
readonly row: object;
|
|
27
22
|
}
|
|
28
23
|
|
|
@@ -42,6 +37,11 @@ export interface ReadSetContext {
|
|
|
42
37
|
export interface ReadEvidenceBinding {
|
|
43
38
|
readonly context: ReadSetContext;
|
|
44
39
|
readonly client: ClientIdentity;
|
|
40
|
+
/** @internal Transport-owned live check for the same exact reads. */
|
|
41
|
+
readonly onChange?: (
|
|
42
|
+
reads: readonly ReadDependency[],
|
|
43
|
+
listener: (error: AbloStaleContextError) => void,
|
|
44
|
+
) => () => void;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
/** @internal Reads the private evidence binding without occupying a model name. */
|
|
@@ -68,10 +68,7 @@ export function evidenceForRow(
|
|
|
68
68
|
|
|
69
69
|
export interface PreparedReadSet {
|
|
70
70
|
readonly readAt?: number;
|
|
71
|
-
readonly onStale?: OnStaleMode;
|
|
72
71
|
readonly reads?: readonly ReadDependency[] | null;
|
|
73
|
-
readonly consumed: readonly CapturedReadEvidence[];
|
|
74
|
-
readonly automaticCommit: false;
|
|
75
72
|
readonly idempotencyKey?: string;
|
|
76
73
|
}
|
|
77
74
|
|
|
@@ -97,9 +94,15 @@ export function publishCommitRecord(
|
|
|
97
94
|
registry.commitRecords.set(record.id, record);
|
|
98
95
|
try {
|
|
99
96
|
const observed = registry.onCommitRecord?.(record);
|
|
100
|
-
if (observed)
|
|
101
|
-
|
|
97
|
+
if (observed) {
|
|
98
|
+
void Promise.resolve(observed).catch((error) => {
|
|
99
|
+
// The observer is outside the transaction outcome by contract.
|
|
100
|
+
void error;
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
} catch (error) {
|
|
102
104
|
// Observability must never change a commit's outcome.
|
|
105
|
+
void error;
|
|
103
106
|
}
|
|
104
107
|
}
|
|
105
108
|
|
|
@@ -118,10 +121,9 @@ export function capturePointRead(
|
|
|
118
121
|
client,
|
|
119
122
|
row: rowObject,
|
|
120
123
|
entry: {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
onStale: 'reject',
|
|
124
|
+
model,
|
|
125
|
+
id,
|
|
126
|
+
readAt,
|
|
125
127
|
},
|
|
126
128
|
});
|
|
127
129
|
}
|
|
@@ -131,12 +133,10 @@ export function prepareReadSet(
|
|
|
131
133
|
context: ReadSetContext | undefined,
|
|
132
134
|
client: ClientIdentity,
|
|
133
135
|
explicitReadAt: number | null | undefined,
|
|
134
|
-
explicitOnStale: OnStaleMode | null | undefined,
|
|
135
136
|
explicitIdempotencyKey: string | null | undefined,
|
|
136
137
|
reads: readonly unknown[] | null | undefined,
|
|
137
138
|
): PreparedReadSet {
|
|
138
139
|
const registry = context?.getStore();
|
|
139
|
-
const consumed: CapturedReadEvidence[] = [];
|
|
140
140
|
const resolvedReads: ReadDependency[] = [];
|
|
141
141
|
|
|
142
142
|
for (const entry of reads ?? []) {
|
|
@@ -145,18 +145,16 @@ export function prepareReadSet(
|
|
|
145
145
|
? registry.byRow.get(entry)
|
|
146
146
|
: undefined;
|
|
147
147
|
if (captured?.client === client) {
|
|
148
|
-
|
|
149
|
-
if (target.scope !== 'row') {
|
|
148
|
+
if ('group' in captured.entry) {
|
|
150
149
|
throw new AbloValidationError('Captured read evidence must name a row.', {
|
|
151
150
|
code: 'write_options_invalid', param: 'reads',
|
|
152
151
|
});
|
|
153
152
|
}
|
|
154
153
|
resolvedReads.push({
|
|
155
|
-
model:
|
|
156
|
-
id:
|
|
157
|
-
readAt: captured.entry.
|
|
154
|
+
model: captured.entry.model,
|
|
155
|
+
id: captured.entry.id,
|
|
156
|
+
readAt: captured.entry.readAt,
|
|
158
157
|
});
|
|
159
|
-
consumed.push(captured);
|
|
160
158
|
continue;
|
|
161
159
|
}
|
|
162
160
|
const canonical = readDependencySchema.safeParse(entry);
|
|
@@ -172,24 +170,7 @@ export function prepareReadSet(
|
|
|
172
170
|
|
|
173
171
|
return {
|
|
174
172
|
...(explicitReadAt != null ? { readAt: explicitReadAt } : {}),
|
|
175
|
-
...(explicitOnStale != null ? { onStale: explicitOnStale } : {}),
|
|
176
173
|
...(reads !== undefined ? { reads: reads === null ? null : resolvedReads } : {}),
|
|
177
|
-
consumed,
|
|
178
|
-
automaticCommit: false,
|
|
179
174
|
...(explicitIdempotencyKey != null ? { idempotencyKey: explicitIdempotencyKey } : {}),
|
|
180
175
|
};
|
|
181
176
|
}
|
|
182
|
-
|
|
183
|
-
/** @internal Commit identity is the explicit request idempotency identity. */
|
|
184
|
-
export function commitRecordIdentity(
|
|
185
|
-
_context: ReadSetContext | undefined,
|
|
186
|
-
attemptId: string,
|
|
187
|
-
): { readonly id: string } {
|
|
188
|
-
return { id: attemptId };
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
/** @internal Explicit row evidence is reusable; successful writes do not consume it. */
|
|
192
|
-
export function consumeReadSet(..._args: readonly unknown[]): void {}
|
|
193
|
-
|
|
194
|
-
/** @internal There is no ambient automatic-commit reservation to release. */
|
|
195
|
-
export function abortReadSetCommit(..._args: readonly unknown[]): void {}
|
|
@@ -1,12 +1,5 @@
|
|
|
1
|
+
import type { ReadDependency } from '../coordination/schema.js';
|
|
1
2
|
import {
|
|
2
|
-
DEFAULT_TRACK_ON_STALE,
|
|
3
|
-
type CommitReadSetEntry,
|
|
4
|
-
type ReadDependency,
|
|
5
|
-
type ReadSetEntry,
|
|
6
|
-
type TrackDependency,
|
|
7
|
-
} from './coordination/schema.js';
|
|
8
|
-
import {
|
|
9
|
-
commitRecordIdentity,
|
|
10
3
|
publishCommitRecord,
|
|
11
4
|
type ReadSetContext,
|
|
12
5
|
} from './readSetContext.js';
|
|
@@ -14,7 +7,7 @@ import {
|
|
|
14
7
|
commitRecordSchema,
|
|
15
8
|
type CommitOperationBody,
|
|
16
9
|
type CommitReceiptWire,
|
|
17
|
-
} from './
|
|
10
|
+
} from './contract.js';
|
|
18
11
|
|
|
19
12
|
interface HttpCommitObservation {
|
|
20
13
|
readonly receipt: CommitReceiptWire;
|
|
@@ -32,41 +25,9 @@ interface WebSocketCommitObservation {
|
|
|
32
25
|
readonly input?: Record<string, unknown>;
|
|
33
26
|
readonly claimId?: string | null;
|
|
34
27
|
readonly readAt?: number | null;
|
|
35
|
-
readonly onStale?: CommitOperationBody['onStale'] | null;
|
|
36
28
|
readonly fenceToken?: number | null;
|
|
37
29
|
}[];
|
|
38
30
|
readonly reads?: readonly ReadDependency[] | null;
|
|
39
|
-
readonly track?: readonly TrackDependency[] | null;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
function commitEntry(dependency: ReadDependency): CommitReadSetEntry {
|
|
43
|
-
return {
|
|
44
|
-
target: 'group' in dependency
|
|
45
|
-
? { scope: 'group', group: dependency.group }
|
|
46
|
-
: {
|
|
47
|
-
scope: 'row',
|
|
48
|
-
model: dependency.model,
|
|
49
|
-
id: dependency.id,
|
|
50
|
-
...(dependency.fields ? { fields: dependency.fields } : {}),
|
|
51
|
-
},
|
|
52
|
-
watermark: dependency.readAt,
|
|
53
|
-
lifetime: 'commit',
|
|
54
|
-
onStale: dependency.onStale ?? 'reject',
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
function persistedEntry(
|
|
59
|
-
dependency: TrackDependency,
|
|
60
|
-
defaultWatermark: number,
|
|
61
|
-
): ReadSetEntry {
|
|
62
|
-
return {
|
|
63
|
-
target: 'group' in dependency
|
|
64
|
-
? { scope: 'group', group: dependency.group }
|
|
65
|
-
: { scope: 'row', model: dependency.model, id: dependency.id },
|
|
66
|
-
watermark: dependency.readAt ?? defaultWatermark,
|
|
67
|
-
lifetime: 'persisted',
|
|
68
|
-
onStale: dependency.onStale ?? DEFAULT_TRACK_ON_STALE,
|
|
69
|
-
};
|
|
70
31
|
}
|
|
71
32
|
|
|
72
33
|
function bodyRecord(value: unknown): Record<string, unknown> {
|
|
@@ -126,9 +87,6 @@ function operationFromModelRequest(
|
|
|
126
87
|
? { data: body.data as Record<string, unknown> }
|
|
127
88
|
: {}),
|
|
128
89
|
...(typeof body.readAt === 'number' ? { readAt: body.readAt } : {}),
|
|
129
|
-
...(typeof body.onStale === 'string'
|
|
130
|
-
? { onStale: body.onStale as CommitOperationBody['onStale'] }
|
|
131
|
-
: {}),
|
|
132
90
|
...(typeof body.fenceToken === 'number' ? { fenceToken: body.fenceToken } : {}),
|
|
133
91
|
...(typeof body.claim === 'string' ? { claimId: body.claim } : {}),
|
|
134
92
|
}];
|
|
@@ -145,21 +103,18 @@ export function recordHttpCommitReceipt(
|
|
|
145
103
|
? body.operations as CommitOperationBody[]
|
|
146
104
|
: operationFromModelRequest(observation, body);
|
|
147
105
|
const reads = Array.isArray(body.reads) ? body.reads as ReadDependency[] : [];
|
|
148
|
-
const
|
|
149
|
-
const readSet: ReadSetEntry[] = reads.map(commitEntry);
|
|
106
|
+
const retainedReads: ReadDependency[] = [...reads];
|
|
150
107
|
for (const operation of operations) {
|
|
151
108
|
if (typeof operation.readAt !== 'number' || !operation.id) continue;
|
|
152
|
-
|
|
109
|
+
retainedReads.push({
|
|
153
110
|
model: operation.model,
|
|
154
111
|
id: operation.id,
|
|
155
112
|
readAt: operation.readAt,
|
|
156
|
-
|
|
157
|
-
}));
|
|
113
|
+
});
|
|
158
114
|
}
|
|
159
|
-
readSet.push(...track.map((entry) => persistedEntry(entry, observation.receipt.lastSyncId)));
|
|
160
115
|
|
|
161
116
|
const record = commitRecordSchema.parse({
|
|
162
|
-
id:
|
|
117
|
+
id: observation.receipt.clientTxId,
|
|
163
118
|
createdAt: observation.receipt.createdAt,
|
|
164
119
|
status: observation.receipt.status,
|
|
165
120
|
statusAt: observation.receipt.statusAt,
|
|
@@ -167,7 +122,7 @@ export function recordHttpCommitReceipt(
|
|
|
167
122
|
...(observation.receipt.correlationId
|
|
168
123
|
? { correlationId: observation.receipt.correlationId }
|
|
169
124
|
: {}),
|
|
170
|
-
|
|
125
|
+
reads: retainedReads,
|
|
171
126
|
operations: retainedOperations(operations),
|
|
172
127
|
...commitEvidence(observation.receipt, operations, 'http'),
|
|
173
128
|
authority: observation.receipt.authority,
|
|
@@ -175,9 +130,6 @@ export function recordHttpCommitReceipt(
|
|
|
175
130
|
clientTxId: observation.receipt.clientTxId,
|
|
176
131
|
serverTxId: observation.receipt.serverTxId,
|
|
177
132
|
ops: observation.receipt.ops,
|
|
178
|
-
...(observation.receipt.notifications
|
|
179
|
-
? { notifications: observation.receipt.notifications }
|
|
180
|
-
: {}),
|
|
181
133
|
...(observation.receipt.missingIds
|
|
182
134
|
? { missingIds: observation.receipt.missingIds }
|
|
183
135
|
: {}),
|
|
@@ -199,25 +151,21 @@ export function recordWebSocketCommitReceipt(
|
|
|
199
151
|
...(operation.input ? { data: operation.input } : {}),
|
|
200
152
|
...(operation.claimId ? { claimId: operation.claimId } : {}),
|
|
201
153
|
...(typeof operation.readAt === 'number' ? { readAt: operation.readAt } : {}),
|
|
202
|
-
...(operation.onStale ? { onStale: operation.onStale } : {}),
|
|
203
154
|
...(typeof operation.fenceToken === 'number'
|
|
204
155
|
? { fenceToken: operation.fenceToken }
|
|
205
156
|
: {}),
|
|
206
157
|
}));
|
|
207
|
-
const
|
|
158
|
+
const retainedReads: ReadDependency[] = [...(observation.reads ?? [])];
|
|
208
159
|
for (const operation of operations) {
|
|
209
160
|
if (typeof operation.readAt !== 'number' || !operation.id) continue;
|
|
210
|
-
|
|
161
|
+
retainedReads.push({
|
|
211
162
|
model: operation.model,
|
|
212
163
|
id: operation.id,
|
|
213
164
|
readAt: operation.readAt,
|
|
214
|
-
|
|
215
|
-
}));
|
|
165
|
+
});
|
|
216
166
|
}
|
|
217
|
-
readSet.push(...(observation.track ?? []).map((entry) =>
|
|
218
|
-
persistedEntry(entry, observation.receipt.lastSyncId)));
|
|
219
167
|
const record = commitRecordSchema.parse({
|
|
220
|
-
id:
|
|
168
|
+
id: observation.receipt.clientTxId,
|
|
221
169
|
createdAt: observation.receipt.createdAt,
|
|
222
170
|
status: observation.receipt.status,
|
|
223
171
|
statusAt: observation.receipt.statusAt,
|
|
@@ -225,7 +173,7 @@ export function recordWebSocketCommitReceipt(
|
|
|
225
173
|
...(observation.receipt.correlationId
|
|
226
174
|
? { correlationId: observation.receipt.correlationId }
|
|
227
175
|
: {}),
|
|
228
|
-
|
|
176
|
+
reads: retainedReads,
|
|
229
177
|
operations: retainedOperations(operations),
|
|
230
178
|
...commitEvidence(observation.receipt, operations, 'websocket'),
|
|
231
179
|
authority: observation.receipt.authority,
|
|
@@ -233,9 +181,6 @@ export function recordWebSocketCommitReceipt(
|
|
|
233
181
|
clientTxId: observation.receipt.clientTxId,
|
|
234
182
|
serverTxId: observation.receipt.serverTxId,
|
|
235
183
|
ops: observation.receipt.ops,
|
|
236
|
-
...(observation.receipt.notifications
|
|
237
|
-
? { notifications: observation.receipt.notifications }
|
|
238
|
-
: {}),
|
|
239
184
|
...(observation.receipt.missingIds
|
|
240
185
|
? { missingIds: observation.receipt.missingIds }
|
|
241
186
|
: {}),
|
|
@@ -21,29 +21,11 @@ export {
|
|
|
21
21
|
DEFAULT_CLAIM_DESCRIPTION,
|
|
22
22
|
targetRefSchema,
|
|
23
23
|
// Layer 3 — optimistic stale-context
|
|
24
|
-
onStaleModeSchema,
|
|
25
|
-
readSetWatermarkSchema,
|
|
26
24
|
MAX_READ_SET_ENTRIES,
|
|
27
|
-
readSetRowTargetSchema,
|
|
28
|
-
readSetGroupTargetSchema,
|
|
29
|
-
commitReadSetTargetSchema,
|
|
30
|
-
persistedReadSetRowTargetSchema,
|
|
31
|
-
persistedReadSetTargetSchema,
|
|
32
|
-
commitReadSetEntrySchema,
|
|
33
|
-
persistedReadSetEntrySchema,
|
|
34
|
-
readSetEntrySchema,
|
|
35
|
-
readSetSchema,
|
|
36
25
|
writeGuardSchema,
|
|
37
|
-
staleNotificationSchema,
|
|
38
|
-
rowStaleNotificationSchema,
|
|
39
|
-
groupStaleNotificationSchema,
|
|
40
|
-
stalePropagationSchema,
|
|
41
26
|
|
|
42
27
|
readDependencySchema,
|
|
43
28
|
readDependencyListSchema,
|
|
44
|
-
readSetProjectionEntryCount,
|
|
45
|
-
trackDependencySchema,
|
|
46
|
-
trackDependencyListSchema,
|
|
47
29
|
// Layer 2 — pessimistic claim / claim-lease
|
|
48
30
|
claimStatusSchema,
|
|
49
31
|
wireClaimStatusSchema,
|
|
@@ -93,46 +75,14 @@ export {
|
|
|
93
75
|
presenceUpdateFrameSchema,
|
|
94
76
|
} from './schema.js';
|
|
95
77
|
|
|
96
|
-
// Conflict-policy runtime — the engine detects a conflict, and the policy
|
|
97
|
-
// decides what to do about it. These are re-exported here so that server-side
|
|
98
|
-
// code can reach both the coordination vocabulary and its default conflict
|
|
99
|
-
// resolution from this one subpath, without importing the full client from the
|
|
100
|
-
// package root.
|
|
101
|
-
export { defaultPolicy, capabilityPreemptPolicy, interpretConflictAxis } from '../policy/types.js';
|
|
102
|
-
export type {
|
|
103
|
-
Conflict,
|
|
104
|
-
ConflictAxis,
|
|
105
|
-
ConflictDecision,
|
|
106
|
-
ConflictKind,
|
|
107
|
-
ConflictOperation,
|
|
108
|
-
ConflictPolicy,
|
|
109
|
-
StaleContextConflict,
|
|
110
|
-
ClaimHeldConflict,
|
|
111
|
-
} from '../policy/types.js';
|
|
112
|
-
|
|
113
78
|
// Inferred types, one per schema (plus the standalone aliases).
|
|
114
79
|
export type {
|
|
115
80
|
// Shared primitives
|
|
116
81
|
ParticipantKind,
|
|
117
82
|
TargetRef,
|
|
118
83
|
// Layer 3 — optimistic stale-context
|
|
119
|
-
OnStaleMode,
|
|
120
|
-
ReadSetWatermark,
|
|
121
|
-
ReadSetRowTarget,
|
|
122
|
-
ReadSetGroupTarget,
|
|
123
|
-
CommitReadSetTarget,
|
|
124
|
-
PersistedReadSetTarget,
|
|
125
|
-
CommitReadSetEntry,
|
|
126
|
-
PersistedReadSetEntry,
|
|
127
|
-
ReadSetEntry,
|
|
128
|
-
ReadSet,
|
|
129
84
|
WriteGuard,
|
|
130
|
-
StaleNotification,
|
|
131
|
-
RowStaleNotification,
|
|
132
|
-
GroupStaleNotification,
|
|
133
|
-
StalePropagation,
|
|
134
85
|
ReadDependency,
|
|
135
|
-
TrackDependency,
|
|
136
86
|
// Layer 2 — pessimistic claim / claim-lease
|
|
137
87
|
ClaimStatus,
|
|
138
88
|
WireClaimStatus,
|
|
@@ -184,12 +134,12 @@ export type {
|
|
|
184
134
|
ClaimCounterparty,
|
|
185
135
|
ConflictEvent,
|
|
186
136
|
CoordinationObserver,
|
|
187
|
-
} from '
|
|
137
|
+
} from '../claims/events.js';
|
|
188
138
|
|
|
189
139
|
// The conflict rule itself — whether two claims on one row collide. It is the
|
|
190
140
|
// protocol's decision, not the server's deployment of it, so it lives here and
|
|
191
141
|
// every claim authority imports it.
|
|
192
|
-
export { targetsConflict } from '
|
|
142
|
+
export { targetsConflict } from '../claims/targetConflict.js';
|
|
193
143
|
|
|
194
144
|
// The locator itself — what a claim points at, and the projections that keep
|
|
195
145
|
// its three entity spellings (`entityType`/`entityId`, `model`/`id`,
|
|
@@ -199,7 +149,7 @@ export type {
|
|
|
199
149
|
ClaimTargetDetails,
|
|
200
150
|
ClaimTargetSource,
|
|
201
151
|
EntityLocator,
|
|
202
|
-
} from '
|
|
152
|
+
} from '../claims/locator.js';
|
|
203
153
|
export {
|
|
204
154
|
batchFence,
|
|
205
155
|
claimIdFor,
|
|
@@ -209,4 +159,4 @@ export {
|
|
|
209
159
|
wireTarget,
|
|
210
160
|
modelTarget,
|
|
211
161
|
streamTarget,
|
|
212
|
-
} from '
|
|
162
|
+
} from '../claims/locator.js';
|