@abloatai/transaction 0.57.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 +51 -41
- 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 +51 -57
- package/dist/client/resources/httpResources.d.ts.map +1 -0
- package/dist/{resources → client/resources}/httpResources.js +1 -1
- package/dist/client/resources/httpResources.js.map +1 -0
- package/dist/{resources → client/resources}/modelCreate.d.ts +1 -1
- package/dist/client/resources/modelCreate.d.ts.map +1 -0
- package/dist/{resources → client/resources}/modelCreate.js +1 -1
- package/dist/client/resources/modelCreate.js.map +1 -0
- package/dist/{resources → client/resources}/modelOperations.d.ts +35 -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 +2 -35
- package/dist/client/resources/writeOptionsSchema.d.ts.map +1 -0
- package/dist/{resources → client/resources}/writeOptionsSchema.js +5 -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} +13 -20
- 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/{transport/httpCommitRequest.d.ts → commit/httpRequest.d.ts} +6 -6
- package/dist/commit/httpRequest.d.ts.map +1 -0
- package/dist/{transport/httpCommitRequest.js → commit/httpRequest.js} +2 -3
- 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} +10 -25
- 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 -459
- package/dist/coordination/schema.d.ts.map +1 -1
- package/dist/coordination/schema.js +13 -261
- package/dist/coordination/schema.js.map +1 -1
- package/dist/errorCodes.d.ts +15 -9
- package/dist/errorCodes.d.ts.map +1 -1
- package/dist/errorCodes.js +13 -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/index.d.ts +5 -6
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +4 -7
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/model.d.ts +0 -27
- package/dist/schema/model.d.ts.map +1 -1
- package/dist/schema/model.js +0 -2
- package/dist/schema/model.js.map +1 -1
- package/dist/schema/openapi.d.ts.map +1 -1
- package/dist/schema/openapi.js +45 -6
- package/dist/schema/openapi.js.map +1 -1
- package/dist/schema/schema.d.ts +11 -3
- package/dist/schema/schema.d.ts.map +1 -1
- package/dist/schema/schema.js +9 -2
- package/dist/schema/schema.js.map +1 -1
- package/dist/schema/serialize.d.ts +1 -4
- package/dist/schema/serialize.d.ts.map +1 -1
- package/dist/schema/serialize.js +0 -4
- package/dist/schema/serialize.js.map +1 -1
- package/dist/schema/tenancy.d.ts +1 -1
- package/dist/server/adapter.d.ts +1 -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/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} +8 -77
- package/dist/source/adapters/contract.d.ts.map +1 -0
- package/dist/source/{contract.js → adapters/contract.js} +12 -57
- 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 +21 -23
- 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 +1 -1
- package/dist/source/adapters/kysely.d.ts.map +1 -1
- package/dist/source/adapters/kysely.js +18 -20
- package/dist/source/adapters/kysely.js.map +1 -1
- package/dist/source/adapters/kyselyMutationCore.d.ts +2 -2
- package/dist/source/adapters/kyselyMutationCore.d.ts.map +1 -1
- package/dist/source/adapters/kyselyMutationCore.js +1 -1
- 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 +19 -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 -52
- 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 +21 -28
- package/dist/source/adapters/prisma.js.map +1 -1
- package/dist/source/{subjectAuthorization.d.ts → adapters/subjectAuthorization.d.ts} +1 -1
- package/dist/source/adapters/subjectAuthorization.d.ts.map +1 -0
- package/dist/source/{subjectAuthorization.js → adapters/subjectAuthorization.js} +2 -2
- 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} +3 -3
- package/dist/source/endpoint/factory.d.ts.map +1 -0
- package/dist/source/{factory.js → endpoint/factory.js} +9 -4
- 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 +14 -12
- package/dist/source/index.d.ts.map +1 -1
- package/dist/source/index.js +13 -11
- 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 +16 -17
- package/dist/source/types.d.ts.map +1 -1
- package/dist/source/types.js +1 -0
- package/dist/source/types.js.map +1 -1
- package/dist/syncLog/contract.d.ts +19 -2
- package/dist/syncLog/contract.d.ts.map +1 -1
- package/dist/syncLog/contract.js +19 -2
- package/dist/syncLog/contract.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} +26 -45
- package/dist/transport/http/client.d.ts.map +1 -0
- package/dist/transport/{httpClient.js → http/client.js} +84 -124
- package/dist/transport/http/client.js.map +1 -0
- package/dist/transport/{httpTransportHelpers.d.ts → http/helpers.d.ts} +5 -5
- package/dist/transport/http/helpers.d.ts.map +1 -0
- package/dist/transport/{httpTransportHelpers.js → http/helpers.js} +5 -5
- 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} +95 -93
- 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/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 +17 -15
- package/dist/wire/index.d.ts.map +1 -1
- package/dist/wire/index.js +11 -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/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 +48 -68
- package/src/{resources → client/resources}/modelCreate.ts +2 -2
- package/src/{resources → client/resources}/modelOperations.ts +46 -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 +7 -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} +11 -25
- package/src/{durableWrites.ts → commit/durableWrites.ts} +7 -7
- package/src/{transport/httpCommitRequest.ts → commit/httpRequest.ts} +6 -7
- package/src/commit/index.ts +16 -0
- package/src/{readSetContext.ts → commit/readSetContext.ts} +16 -41
- package/src/{commitRecordRuntime.ts → commit/recordRuntime.ts} +12 -67
- package/src/coordination/index.ts +4 -52
- package/src/coordination/schema.ts +15 -302
- package/src/errorCodes.ts +56 -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/index.ts +4 -20
- package/src/schema/model.ts +0 -33
- package/src/schema/openapi.ts +47 -7
- package/src/schema/schema.ts +23 -3
- package/src/schema/serialize.ts +0 -8
- package/src/server/adapter.ts +1 -1
- package/src/server/commit.ts +6 -14
- package/src/server/index.ts +1 -1
- 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} +16 -64
- package/src/source/adapters/drizzle.ts +29 -27
- package/src/source/{idempotency.ts → adapters/idempotency.ts} +2 -2
- package/src/source/adapters/index.ts +20 -0
- package/src/source/adapters/kysely.ts +32 -25
- package/src/source/adapters/kyselyMutationCore.ts +3 -3
- package/src/source/adapters/memory.ts +25 -9
- package/src/source/adapters/migration.ts +11 -0
- package/src/source/{migrations.ts → adapters/migrations.ts} +6 -54
- package/src/source/adapters/prisma.ts +33 -32
- package/src/source/{subjectAuthorization.ts → adapters/subjectAuthorization.ts} +2 -2
- 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} +13 -8
- 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 +22 -19
- 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 +17 -17
- package/src/syncLog/contract.ts +19 -2
- 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} +128 -209
- package/src/transport/{httpTransportHelpers.ts → http/helpers.ts} +7 -7
- 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} +127 -113
- 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/frames.ts +5 -15
- package/src/wire/inboundFrames.ts +3 -3
- package/src/wire/index.ts +19 -15
- package/src/wire/modelMutations.ts +1 -14
- 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.map +0 -1
- package/dist/resources/modelCreate.d.ts.map +0 -1
- package/dist/resources/modelCreate.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/source/subjectAuthorization.d.ts.map +0 -1
- package/dist/source/subjectAuthorization.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/httpCommitRequest.d.ts.map +0 -1
- package/dist/transport/httpCommitRequest.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/httpTransportHelpers.d.ts.map +0 -1
- package/dist/transport/httpTransportHelpers.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 -2866
- 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 @@
|
|
|
1
|
+
{"version":3,"file":"meta.js","sourceRoot":"","sources":["../../src/claims/meta.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,OAAO,GAAuB,CAAC;AACjC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAa;IACpC,OAAO,IAA+B,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where the claim routes live, named once.
|
|
3
|
+
*
|
|
4
|
+
* A path is a contract between two programs, and it was being stated twice: the
|
|
5
|
+
* server registered `/v1/models/:model/:id/claim` and every client wrote the
|
|
6
|
+
* same string out again with its parameters interpolated. Nothing held the two
|
|
7
|
+
* spellings together, so a rename would have compiled on both sides and failed
|
|
8
|
+
* at the first request — the one class of drift that survives a green build.
|
|
9
|
+
*
|
|
10
|
+
* The two ends need the path differently. A router wants the `:param` pattern;
|
|
11
|
+
* a caller wants the filled URL. Both come from the same literal here: the
|
|
12
|
+
* pattern is the definition, and every builder below is a substitution into it,
|
|
13
|
+
* so a path can be corrected in exactly one place.
|
|
14
|
+
*
|
|
15
|
+
* Percent-encoding belongs here too. A model or row id is caller-supplied, and
|
|
16
|
+
* an id containing `/` silently addressed a different route when each call site
|
|
17
|
+
* remembered to encode on its own.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Claim route patterns, in the `:param` spelling a router registers.
|
|
21
|
+
*
|
|
22
|
+
* `as const` is load-bearing: it keeps each value a literal type, which is what
|
|
23
|
+
* lets a typed router infer a route's parameter names from the pattern it is
|
|
24
|
+
* handed. Widening these to `string` would compile and quietly cost the server
|
|
25
|
+
* its `c.req.param()` typing.
|
|
26
|
+
*/
|
|
27
|
+
export declare const CLAIM_ROUTES: {
|
|
28
|
+
/** List claims, and take one. */
|
|
29
|
+
readonly collection: "/v1/claims";
|
|
30
|
+
/** Beat every lease this caller holds, in one call. */
|
|
31
|
+
readonly collectionHeartbeat: "/v1/claims/heartbeat";
|
|
32
|
+
/** Poll one claim, or release it. */
|
|
33
|
+
readonly byId: "/v1/claims/:claimId";
|
|
34
|
+
/** Beat one named lease. */
|
|
35
|
+
readonly byIdHeartbeat: "/v1/claims/:claimId/heartbeat";
|
|
36
|
+
/** The model-scoped surface, mirroring `ablo.<model>.claim({ id })`. */
|
|
37
|
+
readonly onModel: "/v1/models/:model/:id/claim";
|
|
38
|
+
readonly onModelHeartbeat: "/v1/models/:model/:id/claim/heartbeat";
|
|
39
|
+
readonly onModelReorder: "/v1/models/:model/:id/claim/reorder";
|
|
40
|
+
/** The pre-`/v1` spelling, still mounted for clients that predate it. */
|
|
41
|
+
readonly legacyCollection: "/sync/claims";
|
|
42
|
+
readonly legacyById: "/sync/claims/:claimId";
|
|
43
|
+
};
|
|
44
|
+
/** The row a model-scoped claim route addresses. */
|
|
45
|
+
export interface ClaimRouteTarget {
|
|
46
|
+
readonly model: string;
|
|
47
|
+
readonly id: string;
|
|
48
|
+
}
|
|
49
|
+
/** `POST` to take the lease on a row, `DELETE` to give it back. */
|
|
50
|
+
export declare function claimOnModelPath(target: ClaimRouteTarget): string;
|
|
51
|
+
/** `POST` to say the holder is still working. */
|
|
52
|
+
export declare function claimHeartbeatOnModelPath(target: ClaimRouteTarget): string;
|
|
53
|
+
/** `POST` to move a waiter within the line. */
|
|
54
|
+
export declare function claimReorderOnModelPath(target: ClaimRouteTarget): string;
|
|
55
|
+
/** `GET` to poll one claim's state, `DELETE` to release it by its own id. */
|
|
56
|
+
export declare function claimByIdPath(claimId: string): string;
|
|
57
|
+
/** `POST` to beat one named lease. */
|
|
58
|
+
export declare function claimHeartbeatByIdPath(claimId: string): string;
|
|
59
|
+
//# sourceMappingURL=routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/claims/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY;IACvB,iCAAiC;;IAEjC,uDAAuD;;IAEvD,qCAAqC;;IAErC,4BAA4B;;IAE5B,wEAAwE;;;;IAIxE,yEAAyE;;;CAGjE,CAAC;AAEX,oDAAoD;AACpD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAQD,mEAAmE;AACnE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAEjE;AAED,iDAAiD;AACjD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAE1E;AAED,+CAA+C;AAC/C,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAExE;AAED,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,sCAAsC;AACtC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE9D"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where the claim routes live, named once.
|
|
3
|
+
*
|
|
4
|
+
* A path is a contract between two programs, and it was being stated twice: the
|
|
5
|
+
* server registered `/v1/models/:model/:id/claim` and every client wrote the
|
|
6
|
+
* same string out again with its parameters interpolated. Nothing held the two
|
|
7
|
+
* spellings together, so a rename would have compiled on both sides and failed
|
|
8
|
+
* at the first request — the one class of drift that survives a green build.
|
|
9
|
+
*
|
|
10
|
+
* The two ends need the path differently. A router wants the `:param` pattern;
|
|
11
|
+
* a caller wants the filled URL. Both come from the same literal here: the
|
|
12
|
+
* pattern is the definition, and every builder below is a substitution into it,
|
|
13
|
+
* so a path can be corrected in exactly one place.
|
|
14
|
+
*
|
|
15
|
+
* Percent-encoding belongs here too. A model or row id is caller-supplied, and
|
|
16
|
+
* an id containing `/` silently addressed a different route when each call site
|
|
17
|
+
* remembered to encode on its own.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Claim route patterns, in the `:param` spelling a router registers.
|
|
21
|
+
*
|
|
22
|
+
* `as const` is load-bearing: it keeps each value a literal type, which is what
|
|
23
|
+
* lets a typed router infer a route's parameter names from the pattern it is
|
|
24
|
+
* handed. Widening these to `string` would compile and quietly cost the server
|
|
25
|
+
* its `c.req.param()` typing.
|
|
26
|
+
*/
|
|
27
|
+
export const CLAIM_ROUTES = {
|
|
28
|
+
/** List claims, and take one. */
|
|
29
|
+
collection: '/v1/claims',
|
|
30
|
+
/** Beat every lease this caller holds, in one call. */
|
|
31
|
+
collectionHeartbeat: '/v1/claims/heartbeat',
|
|
32
|
+
/** Poll one claim, or release it. */
|
|
33
|
+
byId: '/v1/claims/:claimId',
|
|
34
|
+
/** Beat one named lease. */
|
|
35
|
+
byIdHeartbeat: '/v1/claims/:claimId/heartbeat',
|
|
36
|
+
/** The model-scoped surface, mirroring `ablo.<model>.claim({ id })`. */
|
|
37
|
+
onModel: '/v1/models/:model/:id/claim',
|
|
38
|
+
onModelHeartbeat: '/v1/models/:model/:id/claim/heartbeat',
|
|
39
|
+
onModelReorder: '/v1/models/:model/:id/claim/reorder',
|
|
40
|
+
/** The pre-`/v1` spelling, still mounted for clients that predate it. */
|
|
41
|
+
legacyCollection: '/sync/claims',
|
|
42
|
+
legacyById: '/sync/claims/:claimId',
|
|
43
|
+
};
|
|
44
|
+
function forTarget(pattern, target) {
|
|
45
|
+
return pattern
|
|
46
|
+
.replace(':model', encodeURIComponent(target.model))
|
|
47
|
+
.replace(':id', encodeURIComponent(target.id));
|
|
48
|
+
}
|
|
49
|
+
/** `POST` to take the lease on a row, `DELETE` to give it back. */
|
|
50
|
+
export function claimOnModelPath(target) {
|
|
51
|
+
return forTarget(CLAIM_ROUTES.onModel, target);
|
|
52
|
+
}
|
|
53
|
+
/** `POST` to say the holder is still working. */
|
|
54
|
+
export function claimHeartbeatOnModelPath(target) {
|
|
55
|
+
return forTarget(CLAIM_ROUTES.onModelHeartbeat, target);
|
|
56
|
+
}
|
|
57
|
+
/** `POST` to move a waiter within the line. */
|
|
58
|
+
export function claimReorderOnModelPath(target) {
|
|
59
|
+
return forTarget(CLAIM_ROUTES.onModelReorder, target);
|
|
60
|
+
}
|
|
61
|
+
/** `GET` to poll one claim's state, `DELETE` to release it by its own id. */
|
|
62
|
+
export function claimByIdPath(claimId) {
|
|
63
|
+
return CLAIM_ROUTES.byId.replace(':claimId', encodeURIComponent(claimId));
|
|
64
|
+
}
|
|
65
|
+
/** `POST` to beat one named lease. */
|
|
66
|
+
export function claimHeartbeatByIdPath(claimId) {
|
|
67
|
+
return CLAIM_ROUTES.byIdHeartbeat.replace(':claimId', encodeURIComponent(claimId));
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/claims/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,iCAAiC;IACjC,UAAU,EAAE,YAAY;IACxB,uDAAuD;IACvD,mBAAmB,EAAE,sBAAsB;IAC3C,qCAAqC;IACrC,IAAI,EAAE,qBAAqB;IAC3B,4BAA4B;IAC5B,aAAa,EAAE,+BAA+B;IAC9C,wEAAwE;IACxE,OAAO,EAAE,6BAA6B;IACtC,gBAAgB,EAAE,uCAAuC;IACzD,cAAc,EAAE,qCAAqC;IACrD,yEAAyE;IACzE,gBAAgB,EAAE,cAAc;IAChC,UAAU,EAAE,uBAAuB;CAC3B,CAAC;AAQX,SAAS,SAAS,CAAC,OAAe,EAAE,MAAwB;IAC1D,OAAO,OAAO;SACX,OAAO,CAAC,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACnD,OAAO,CAAC,KAAK,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,gBAAgB,CAAC,MAAwB;IACvD,OAAO,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,yBAAyB,CAAC,MAAwB;IAChE,OAAO,SAAS,CAAC,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AAC1D,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,uBAAuB,CAAC,MAAwB;IAC9D,OAAO,SAAS,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AACxD,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,OAAO,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,OAAO,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;AACrF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"targetConflict.d.ts","sourceRoot":"","sources":["../../src/claims/targetConflict.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAwDvD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,kBAAkB,EACxB,QAAQ,EAAE,kBAAkB,GAAG,SAAS,GACvC,OAAO,CAyBT"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"targetConflict.js","sourceRoot":"","sources":["../../src/claims/targetConflict.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH;;;;;;;GAOG;AACH,SAAS,QAAQ,CAAC,MAAsC;IACtD,MAAM,KAAK,GAAG;QACZ,GAAG,CAAC,MAAM,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC;KAC1B,CAAC;IACF,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,6DAA6D;AAC7D,SAAS,YAAY,CAAC,MAAsC;IAC1D,OAAO,OAAO,CACZ,MAAM,EAAE,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAC9D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,IAAwB,EACxB,QAAwC;IAExC,wEAAwE;IACxE,qCAAqC;IACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAEhE,8EAA8E;IAC9E,8EAA8E;IAC9E,4EAA4E;IAC5E,0EAA0E;IAC1E,8EAA8E;IAC9E,6EAA6E;IAC7E,2EAA2E;IAC3E,0EAA0E;IAC1E,mDAAmD;IACnD,EAAE;IACF,2EAA2E;IAC3E,6EAA6E;IAC7E,wBAAwB;IACxB,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC1C,OAAO,CACL,UAAU,CAAC,IAAI,KAAK,CAAC;QACrB,cAAc,CAAC,IAAI,KAAK,CAAC;QACzB,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CACzD,CAAC;AACJ,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* A claim log — the simplest way to watch agents collide. The engine reports
|
|
3
3
|
* the claim lifecycle (`acquired → queued → granted → lost / rejected /
|
|
4
|
-
* expired`) and
|
|
4
|
+
* expired`) and rejected write collisions through two channels:
|
|
5
5
|
* human-readable `logger` lines (shown with `new Ablo({ debug: true })`) and
|
|
6
6
|
* structured `observability.captureClaim` / `captureConflict` calls.
|
|
7
7
|
*
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
import type { ClaimEvent, ConflictEvent, CoordinationObserver } from './events.js';
|
|
13
13
|
/** A claim state change as one quiet, greppable line. */
|
|
14
14
|
export declare function formatClaim(e: ClaimEvent): string;
|
|
15
|
-
/** A
|
|
15
|
+
/** A rejected stale write or foreign-claim collision as one readable line. */
|
|
16
16
|
export declare function formatConflict(e: ConflictEvent): string;
|
|
17
17
|
/** One ordered entry in a {@link ClaimLog}. */
|
|
18
18
|
export interface ClaimLogEntry {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/claims/trace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,aAAa,EACb,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAOrB,yDAAyD;AACzD,wBAAgB,WAAW,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAwBjD;AAED,8EAA8E;AAC9E,wBAAgB,cAAc,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAWvD;AAMD,+CAA+C;AAC/C,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,QAAS,YAAW,oBAAoB;IASvC,OAAO,CAAC,QAAQ,CAAC,GAAG;IALhC,OAAO,CAAC,IAAI,CAAgC;IAC5C,OAAO,CAAC,GAAG,CAAK;IAChB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IAEnD,qEAAqE;gBACxC,GAAG,SAAQ;IAIxC,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAQrC,eAAe,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAM9C;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,QAAQ,GAAI,UAAU,MAAM,IAAI,KAAG,CAAC,MAAM,IAAI,CAAC,CAGtD;IAIF,0EAA0E;IAC1E,IAAI,OAAO,IAAI,SAAS,aAAa,EAAE,CAEtC;IAED,gEAAgE;IAChE,UAAU,IAAI,SAAS,aAAa,EAAE;IAItC,iEAAiE;IACjE,KAAK,IAAI,IAAI;IAMb,wDAAwD;IACxD,QAAQ,IAAI,MAAM;IAQlB,OAAO,CAAC,GAAG;IAMX,OAAO,CAAC,MAAM;CAIf"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* A claim log — the simplest way to watch agents collide. The engine reports
|
|
3
3
|
* the claim lifecycle (`acquired → queued → granted → lost / rejected /
|
|
4
|
-
* expired`) and
|
|
4
|
+
* expired`) and rejected write collisions through two channels:
|
|
5
5
|
* human-readable `logger` lines (shown with `new Ablo({ debug: true })`) and
|
|
6
6
|
* structured `observability.captureClaim` / `captureConflict` calls.
|
|
7
7
|
*
|
|
@@ -28,18 +28,18 @@ export function formatClaim(e) {
|
|
|
28
28
|
? ` — held by ${actor}`
|
|
29
29
|
: ` — by ${actor}`
|
|
30
30
|
: '';
|
|
31
|
-
// The cause when there is one,
|
|
32
|
-
//
|
|
31
|
+
// The cause when there is one, with human-readable detail when supplied;
|
|
32
|
+
// otherwise what the holder said they were doing. A line never
|
|
33
33
|
// shows both, because a claim that ended has a cause and a claim that is
|
|
34
34
|
// simply alive has only its description.
|
|
35
35
|
const why = e.reason
|
|
36
|
-
? `: ${e.
|
|
36
|
+
? `: ${e.message ?? e.reason}`
|
|
37
37
|
: e.description
|
|
38
38
|
? `: ${e.description}`
|
|
39
39
|
: '';
|
|
40
40
|
return `claim ${e.phase}: ${target}${scope}${pos}${by}${why}`;
|
|
41
41
|
}
|
|
42
|
-
/** A
|
|
42
|
+
/** A rejected stale write or foreign-claim collision as one readable line. */
|
|
43
43
|
export function formatConflict(e) {
|
|
44
44
|
const rows = e.rows
|
|
45
45
|
.map((r) => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/claims/trace.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* ```ts
|
|
11
11
|
* import { Ablo } from '@abloatai/ablo';
|
|
12
|
-
* import { schema } from '
|
|
12
|
+
* import { schema } from '../schema';
|
|
13
13
|
*
|
|
14
14
|
* const ablo = Ablo({ schema, apiKey: process.env.ABLO_API_KEY, transport: 'http' });
|
|
15
15
|
* await ablo.items.update({ id: itemId, data: { status: 'done' } });
|
|
@@ -19,12 +19,11 @@
|
|
|
19
19
|
* is provided by `@abloatai/humans`, which layers
|
|
20
20
|
* above this one and shares the same `ablo.<model>` surface (ADR 0016).
|
|
21
21
|
*/
|
|
22
|
-
import { type AbloHttpClient, type AbloHttpClientOptions } from '
|
|
23
|
-
import type { SchemaRecord } from '
|
|
24
|
-
import type * as _Streams from '
|
|
25
|
-
import type * as _SchemaTypes from '
|
|
26
|
-
import type * as _Global from '
|
|
27
|
-
import type * as _Policy from './policy/types.js';
|
|
22
|
+
import { type AbloHttpClient, type AbloHttpClientOptions } from '../transport/http/client.js';
|
|
23
|
+
import type { SchemaRecord } from '../schema/schema.js';
|
|
24
|
+
import type * as _Streams from '../types/streams.js';
|
|
25
|
+
import type * as _SchemaTypes from '../schema/schema.js';
|
|
26
|
+
import type * as _Global from '../types/global.js';
|
|
28
27
|
import type * as _Http from './resources/httpResources.js';
|
|
29
28
|
/**
|
|
30
29
|
* Create a coordination-layer client in one call.
|
|
@@ -70,14 +69,6 @@ export declare namespace Ablo {
|
|
|
70
69
|
type InferRow<S extends _SchemaTypes.Schema, K extends keyof S['models']> = _SchemaTypes.InferRow<S, K>;
|
|
71
70
|
type InferModelNames<S extends _SchemaTypes.Schema> = _SchemaTypes.InferModelNames<S>;
|
|
72
71
|
}
|
|
73
|
-
type Conflict = _Policy.Conflict;
|
|
74
|
-
namespace Conflict {
|
|
75
|
-
type Kind = _Policy.ConflictKind;
|
|
76
|
-
type Operation = _Policy.ConflictOperation;
|
|
77
|
-
type Decision = _Policy.ConflictDecision;
|
|
78
|
-
type Policy = _Policy.ConflictPolicy;
|
|
79
|
-
type Axis = _Policy.ConflictAxis;
|
|
80
|
-
}
|
|
81
72
|
namespace Commit {
|
|
82
73
|
type Wait = _Http.CommitWait;
|
|
83
74
|
type OperationAction = _Http.ModelOperationAction;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ablo.d.ts","sourceRoot":"","sources":["../../src/client/ablo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC3B,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,KAAK,YAAY,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,KAAK,OAAO,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,KAAK,KAAK,MAAM,8BAA8B,CAAC;AAE3D;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,YAAY,EAC/C,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACzD,cAAc,CAAC,CAAC,CAAC,CAEnB;AAcD,yBAAiB,IAAI,CAAC;IAEpB,KAAY,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;IAC/C,KAAY,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;IACrD,KAAY,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;IAGzC,KAAY,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IACjC,KAAY,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACzC,KAAY,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IACnC,KAAY,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;IACrD,KAAY,qBAAqB,GAAG,QAAQ,CAAC,qBAAqB,CAAC;IAInE,UAAiB,KAAK,CAAC;QACrB,KAAY,IAAI,CACd,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3B,CAAC,GAAG,OAAO,CAAC,gBAAgB,IAC1B,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7B,KAAY,WAAW,GAAG,QAAQ,CAAC,gBAAgB,CAAC;QACpD,KAAY,YAAY,GAAG,QAAQ,CAAC,iBAAiB,CAAC;KACvD;IAGD,KAAY,MAAM,CAAC,CAAC,SAAS,YAAY,CAAC,YAAY,GAAG,YAAY,CAAC,YAAY,IAChF,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACzB;;;;OAIG;IACH,KAAY,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAClD;;;;OAIG;IACH,KAAY,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAExD,UAAiB,MAAM,CAAC;QACtB,KAAY,KAAK,CACf,CAAC,SAAS,YAAY,CAAC,MAAM,EAC7B,CAAC,SAAS,MAAM,CAAC,CAAC,QAAQ,CAAC,IACzB,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7B,KAAY,WAAW,CACrB,CAAC,SAAS,YAAY,CAAC,MAAM,EAC7B,CAAC,SAAS,MAAM,CAAC,CAAC,QAAQ,CAAC,IACzB,YAAY,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,KAAY,QAAQ,CAClB,CAAC,SAAS,YAAY,CAAC,MAAM,EAC7B,CAAC,SAAS,MAAM,CAAC,CAAC,QAAQ,CAAC,IACzB,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAChC,KAAY,eAAe,CAAC,CAAC,SAAS,YAAY,CAAC,MAAM,IACvD,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;KACnC;IAID,UAAiB,MAAM,CAAC;QACtB,KAAY,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;QACpC,KAAY,eAAe,GAAG,KAAK,CAAC,oBAAoB,CAAC;QACzD,KAAY,cAAc,GAAG,KAAK,CAAC,oBAAoB,CAAC;QACxD,KAAY,aAAa,GAAG,KAAK,CAAC,mBAAmB,CAAC;QACtD,KAAY,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC;QAC1C,KAAY,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC;KAC3C;CACF"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* ```ts
|
|
11
11
|
* import { Ablo } from '@abloatai/ablo';
|
|
12
|
-
* import { schema } from '
|
|
12
|
+
* import { schema } from '../schema';
|
|
13
13
|
*
|
|
14
14
|
* const ablo = Ablo({ schema, apiKey: process.env.ABLO_API_KEY, transport: 'http' });
|
|
15
15
|
* await ablo.items.update({ id: itemId, data: { status: 'done' } });
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* is provided by `@abloatai/humans`, which layers
|
|
20
20
|
* above this one and shares the same `ablo.<model>` surface (ADR 0016).
|
|
21
21
|
*/
|
|
22
|
-
import { createAbloHttpClient, } from '
|
|
22
|
+
import { createAbloHttpClient, } from '../transport/http/client.js';
|
|
23
23
|
/**
|
|
24
24
|
* Create a coordination-layer client in one call.
|
|
25
25
|
*
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ablo.js","sourceRoot":"","sources":["../../src/client/ablo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EACL,oBAAoB,GAGrB,MAAM,6BAA6B,CAAC;AAOrC;;;;;;;GAOG;AACH,MAAM,UAAU,IAAI,CAClB,OAA0D;IAE1D,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -10,10 +10,9 @@
|
|
|
10
10
|
* transaction layer never calls up into it.
|
|
11
11
|
*
|
|
12
12
|
* `participant` stays the WHO (user | agent | system), never the name of this.
|
|
13
|
-
* The taught verbs map onto the seam directly: `
|
|
14
|
-
* operations inside a `commit()` payload
|
|
15
|
-
*
|
|
16
|
-
* commit). Presence (`join`) is deliberately absent: it is live observation
|
|
13
|
+
* The taught verbs map onto the seam directly: `read` returns settled state,
|
|
14
|
+
* `create`/`update`/`delete` are operations inside a `commit()` payload, and
|
|
15
|
+
* `claim` is `claim()`. Presence (`join`) is deliberately absent: it is live observation
|
|
17
16
|
* over a socket, and it joins the seam when its core carrier type exists —
|
|
18
17
|
* see docs/plans/transaction-core-language.md, Tier 3.
|
|
19
18
|
*
|
|
@@ -21,11 +20,11 @@
|
|
|
21
20
|
* as a proxy to the hosted authority; other compositions gain the same
|
|
22
21
|
* compile-time conformance pin against this interface.
|
|
23
22
|
*/
|
|
24
|
-
import type { CommitMessage } from '
|
|
25
|
-
import type { ClientCommitReceipt } from '
|
|
26
|
-
import type { Delta, HeldClaim, ClaimTarget, ClaimLeaseOptions } from '
|
|
27
|
-
import type { ModelData } from '
|
|
28
|
-
import type { ModelScope } from '
|
|
23
|
+
import type { CommitMessage } from '../wire/frames.js';
|
|
24
|
+
import type { ClientCommitReceipt } from '../commit/contract.js';
|
|
25
|
+
import type { Delta, HeldClaim, ClaimTarget, ClaimLeaseOptions } from '../types/streams.js';
|
|
26
|
+
import type { ModelData } from '../types/modelData.js';
|
|
27
|
+
import type { ModelScope } from '../types/index.js';
|
|
29
28
|
/**
|
|
30
29
|
* A commit's durable acceptance — `{ status: 'queued' }` with the correlation
|
|
31
30
|
* the confirmation feed later confirms. The wire layer owns the receipt fields;
|
|
@@ -85,13 +84,12 @@ export interface TransactionLayer {
|
|
|
85
84
|
/** Authentication: mint or renew the short-lived credential (`ek_`). */
|
|
86
85
|
ready(): Promise<void>;
|
|
87
86
|
/** Read one settled row by id, or `null` when absent. */
|
|
88
|
-
|
|
87
|
+
read(model: string, id: string): Promise<ModelData | null>;
|
|
89
88
|
/** Read settled rows matching a {@link ListQuery}. */
|
|
90
89
|
list(model: string, query?: ListQuery): Promise<ModelData[]>;
|
|
91
90
|
/**
|
|
92
|
-
* Submit a batch of operations
|
|
93
|
-
* `reads`
|
|
94
|
-
* durable acceptance.
|
|
91
|
+
* Submit a batch of operations with its idempotent `clientTxId` and compact
|
|
92
|
+
* `reads` evidence, then receive durable acceptance.
|
|
95
93
|
*/
|
|
96
94
|
commit(payload: CommitMessage['payload']): Promise<CommitReceipt>;
|
|
97
95
|
/** Resolve when the receipt's operations have appended to the sync log. */
|
|
@@ -107,4 +105,4 @@ export interface TransactionLayer {
|
|
|
107
105
|
*/
|
|
108
106
|
observe(options?: ObserveOptions | string | readonly string[]): AsyncIterable<ObservedDelta>;
|
|
109
107
|
}
|
|
110
|
-
//# sourceMappingURL=
|
|
108
|
+
//# sourceMappingURL=contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/client/contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,10 +10,9 @@
|
|
|
10
10
|
* transaction layer never calls up into it.
|
|
11
11
|
*
|
|
12
12
|
* `participant` stays the WHO (user | agent | system), never the name of this.
|
|
13
|
-
* The taught verbs map onto the seam directly: `
|
|
14
|
-
* operations inside a `commit()` payload
|
|
15
|
-
*
|
|
16
|
-
* commit). Presence (`join`) is deliberately absent: it is live observation
|
|
13
|
+
* The taught verbs map onto the seam directly: `read` returns settled state,
|
|
14
|
+
* `create`/`update`/`delete` are operations inside a `commit()` payload, and
|
|
15
|
+
* `claim` is `claim()`. Presence (`join`) is deliberately absent: it is live observation
|
|
17
16
|
* over a socket, and it joins the seam when its core carrier type exists —
|
|
18
17
|
* see docs/plans/transaction-core-language.md, Tier 3.
|
|
19
18
|
*
|
|
@@ -22,4 +21,4 @@
|
|
|
22
21
|
* compile-time conformance pin against this interface.
|
|
23
22
|
*/
|
|
24
23
|
export {};
|
|
25
|
-
//# sourceMappingURL=
|
|
24
|
+
//# sourceMappingURL=contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/client/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { type AbloHttpClient, type AbloHttpClientOptions } from '
|
|
2
|
-
import type { SchemaRecord } from '
|
|
3
|
-
import type { TransactionLayer } from './
|
|
1
|
+
import { type AbloHttpClient, type AbloHttpClientOptions } from '../transport/http/client.js';
|
|
2
|
+
import type { SchemaRecord } from '../schema/schema.js';
|
|
3
|
+
import type { TransactionLayer } from './contract.js';
|
|
4
4
|
export interface TransactionClientOptions<S extends SchemaRecord> extends AbloHttpClientOptions<S> {
|
|
5
5
|
}
|
|
6
6
|
export type TransactionClient<S extends SchemaRecord> = TransactionLayer & AbloHttpClient<S> & {
|
|
7
7
|
dispose(): Promise<void>;
|
|
8
8
|
};
|
|
9
9
|
export declare function createTransactionClient<S extends SchemaRecord>(options: TransactionClientOptions<S>): TransactionClient<S>;
|
|
10
|
-
//# sourceMappingURL=
|
|
10
|
+
//# sourceMappingURL=headless.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headless.d.ts","sourceRoot":"","sources":["../../src/client/headless.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC3B,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAMxD,OAAO,KAAK,EAGV,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAGvB,MAAM,WAAW,wBAAwB,CAAC,CAAC,SAAS,YAAY,CAC9D,SAAQ,qBAAqB,CAAC,CAAC,CAAC;CAAG;AAErC,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,YAAY,IAClD,gBAAgB,GACd,cAAc,CAAC,CAAC,CAAC,GACjB;IAAE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC;AAwCjC,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,YAAY,EAC5D,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC,GACnC,iBAAiB,CAAC,CAAC,CAAC,CA2FtB"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { createAbloHttpClient, } from '
|
|
2
|
-
import { createHttpFeed } from '
|
|
3
|
-
import { fieldRef } from '
|
|
4
|
-
import { AbloConnectionError } from '
|
|
1
|
+
import { createAbloHttpClient, } from '../transport/http/client.js';
|
|
2
|
+
import { createHttpFeed } from '../observation/httpFeed.js';
|
|
3
|
+
import { fieldRef } from '../schema/fieldRef.js';
|
|
4
|
+
import { AbloConnectionError } from '../errors.js';
|
|
5
5
|
const LAYER_MEMBERS = new Set([
|
|
6
6
|
'ready',
|
|
7
|
-
'
|
|
7
|
+
'read',
|
|
8
8
|
'list',
|
|
9
9
|
'commit',
|
|
10
10
|
'settled',
|
|
@@ -21,12 +21,10 @@ function toCommitOptions(payload) {
|
|
|
21
21
|
id: operation.id,
|
|
22
22
|
data: operation.input,
|
|
23
23
|
readAt: operation.readAt,
|
|
24
|
-
onStale: operation.onStale,
|
|
25
24
|
transactionId: operation.transactionId,
|
|
26
25
|
fenceToken: operation.fenceToken,
|
|
27
26
|
})),
|
|
28
27
|
reads: payload.reads,
|
|
29
|
-
track: payload.track,
|
|
30
28
|
};
|
|
31
29
|
}
|
|
32
30
|
export function createTransactionClient(options) {
|
|
@@ -45,8 +43,8 @@ export function createTransactionClient(options) {
|
|
|
45
43
|
}
|
|
46
44
|
const layer = {
|
|
47
45
|
ready: () => http.ready(),
|
|
48
|
-
async
|
|
49
|
-
return (await model(modelName).
|
|
46
|
+
async read(modelName, id) {
|
|
47
|
+
return (await model(modelName).read({ id })) ?? null;
|
|
50
48
|
},
|
|
51
49
|
list(modelName, query) {
|
|
52
50
|
return model(modelName).list({
|
|
@@ -111,4 +109,4 @@ export function createTransactionClient(options) {
|
|
|
111
109
|
},
|
|
112
110
|
});
|
|
113
111
|
}
|
|
114
|
-
//# sourceMappingURL=
|
|
112
|
+
//# sourceMappingURL=headless.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"headless.js","sourceRoot":"","sources":["../../src/client/headless.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public transaction client subsystem.
|
|
3
|
+
*
|
|
4
|
+
* Start here and descend through the transaction contract, headless runtime,
|
|
5
|
+
* typed Ablo factory, and model resource contracts.
|
|
6
|
+
*/
|
|
7
|
+
export * from './contract.js';
|
|
8
|
+
export * from './headless.js';
|
|
9
|
+
export * from './ablo.js';
|
|
10
|
+
export * from './resources/functionalUpdate.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,iCAAiC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public transaction client subsystem.
|
|
3
|
+
*
|
|
4
|
+
* Start here and descend through the transaction contract, headless runtime,
|
|
5
|
+
* typed Ablo factory, and model resource contracts.
|
|
6
|
+
*/
|
|
7
|
+
export * from './contract.js';
|
|
8
|
+
export * from './headless.js';
|
|
9
|
+
export * from './ablo.js';
|
|
10
|
+
export * from './resources/functionalUpdate.js';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,iCAAiC,CAAC"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* caller. The write either lands or, at the extreme, throws a single
|
|
11
11
|
* {@link AbloContentionError} once the reconcile budget is spent.
|
|
12
12
|
*
|
|
13
|
-
* Correctness comes from the `readAt` watermark
|
|
13
|
+
* Correctness comes from the `readAt` watermark
|
|
14
14
|
* (optimistic concurrency, or compare-and-swap), not from participant identity.
|
|
15
15
|
* That is why it is immune to the shared-credential silent-overwrite hazard and
|
|
16
16
|
* behaves identically on both transports: the HTTP and WebSocket clients inject
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
* The mental model is React's `setState(prev => next)`: pass a function of the
|
|
21
21
|
* current state and the runtime owns reconciliation.
|
|
22
22
|
*/
|
|
23
|
-
import { AbloContentionError } from '
|
|
24
|
-
import type { ReadDependency } from '
|
|
23
|
+
import { AbloContentionError } from '../../errors.js';
|
|
24
|
+
import type { ReadDependency } from '../../coordination/schema.js';
|
|
25
25
|
/**
|
|
26
26
|
* The functional form of an update: given the freshly-read row, return the
|
|
27
27
|
* fields to write. Return `null` or `undefined` to make no write — a no-op the
|
|
@@ -55,7 +55,7 @@ export declare const DEFAULT_CONTENTION_RETRIES = 16;
|
|
|
55
55
|
* and retry" rather than a genuine failure to surface. These are the
|
|
56
56
|
* optimistic-concurrency signals the functional update reconciles against:
|
|
57
57
|
* - `stale_context` — the `readAt` watermark was overtaken by a concurrent write
|
|
58
|
-
* - `claim_lost` —
|
|
58
|
+
* - `claim_lost` — the write's holder lost its lease
|
|
59
59
|
* - `claim_queued` — a holder is actively editing the row right now
|
|
60
60
|
*/
|
|
61
61
|
export declare function isReconcilableConflict(err: unknown): boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functionalUpdate.d.ts","sourceRoot":"","sources":["../../../src/client/resources/functionalUpdate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAKL,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE;;;;GAIG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAC5B,OAAO,EAAE,CAAC,KACP,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAE5E,sEAAsE;AACtE,MAAM,WAAW,uBAAuB,CAAC,UAAU,GAAG,cAAc;IAClE;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,UAAU,EAAE,GAAG,IAAI,CAAC;CAC/C;AAED,uDAAuD;AACvD,MAAM,MAAM,iBAAiB,CAAC,UAAU,GAAG,cAAc,IACvD,uBAAuB,CAAC,UAAU,CAAC,CAAC;AAEtC,2EAA2E;AAC3E,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAa7C;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAM5D;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,EAAE,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,SAAS,EAAE,MAAM,OAAO,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1F;;;;;OAKG;IACH,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CAC9D;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,cAAc,EACzE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EACxB,OAAO,EAAE,uBAAuB,CAAC,IAAI,CAAC,GAAG,SAAS,EAClD,SAAS,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,GAClC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAoCxB;AAID,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* caller. The write either lands or, at the extreme, throws a single
|
|
11
11
|
* {@link AbloContentionError} once the reconcile budget is spent.
|
|
12
12
|
*
|
|
13
|
-
* Correctness comes from the `readAt` watermark
|
|
13
|
+
* Correctness comes from the `readAt` watermark
|
|
14
14
|
* (optimistic concurrency, or compare-and-swap), not from participant identity.
|
|
15
15
|
* That is why it is immune to the shared-credential silent-overwrite hazard and
|
|
16
16
|
* behaves identically on both transports: the HTTP and WebSocket clients inject
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* The mental model is React's `setState(prev => next)`: pass a function of the
|
|
21
21
|
* current state and the runtime owns reconciliation.
|
|
22
22
|
*/
|
|
23
|
-
import { AbloError, AbloNotFoundError, AbloStaleContextError, AbloClaimedError, AbloContentionError, } from '
|
|
23
|
+
import { AbloError, AbloNotFoundError, AbloStaleContextError, AbloClaimedError, AbloContentionError, } from '../../errors.js';
|
|
24
24
|
/** Reconcile rounds before a hot row is declared permanently contended. */
|
|
25
25
|
export const DEFAULT_CONTENTION_RETRIES = 16;
|
|
26
26
|
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
@@ -36,7 +36,7 @@ function backoffMs(attempt) {
|
|
|
36
36
|
* and retry" rather than a genuine failure to surface. These are the
|
|
37
37
|
* optimistic-concurrency signals the functional update reconciles against:
|
|
38
38
|
* - `stale_context` — the `readAt` watermark was overtaken by a concurrent write
|
|
39
|
-
* - `claim_lost` —
|
|
39
|
+
* - `claim_lost` — the write's holder lost its lease
|
|
40
40
|
* - `claim_queued` — a holder is actively editing the row right now
|
|
41
41
|
*/
|
|
42
42
|
export function isReconcilableConflict(err) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functionalUpdate.js","sourceRoot":"","sources":["../../../src/client/resources/functionalUpdate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAmCzB,2EAA2E;AAC3E,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAE7C,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CAC1C,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAEpD;;;GAGG;AACH,SAAS,SAAS,CAAC,OAAe;IAChC,OAAO,EAAE,GAAG,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAY;IACjD,IAAI,GAAG,YAAY,qBAAqB;QAAE,OAAO,IAAI,CAAC;IACtD,IAAI,GAAG,YAAY,gBAAgB,EAAE,CAAC;QACpC,OAAO,GAAG,CAAC,IAAI,KAAK,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,CAAC;IAClE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAqBD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,OAAwB,EACxB,OAAkD,EAClD,SAAmC;IAEnC,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,0BAA0B,CAAC;IAC/D,IAAI,YAAqB,CAAC;IAE1B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;QACpD,IAAI,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,SAAS,CACjB,aAAa,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,EAAE,gCAAgC,EAC5E,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAC3B,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,SAAS,CAAC,SAAS,EAAE,CAAC;QACpD,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,MAAM,IAAI,iBAAiB,CACzB,iBAAiB,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,EAAE,6BAA6B;gBAC3E,mCAAmC,EACrC,CAAC,SAAS,CAAC,EAAE,CAAC,CACf,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO,SAAS,CAAC,CAAC,wCAAwC;QAE7E,IAAI,CAAC;YACH,OAAO,MAAM,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC;gBAAE,MAAM,GAAG,CAAC,CAAC,+BAA+B;YAC5E,YAAY,GAAG,GAAG,CAAC;YACnB,IAAI,OAAO,GAAG,OAAO;gBAAE,MAAM,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,MAAM,IAAI,mBAAmB,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,OAAO,GAAG,CAAC,EAAE;QACxE,KAAK,EAAE,YAAY;KACpB,CAAC,CAAC;AACL,CAAC;AAED,4EAA4E;AAC5E,sEAAsE;AACtE,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|