@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
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { HttpClientConfig } from './
|
|
2
|
-
import type { CommitResource, HttpClaimApi, HttpClaimsResource, HttpLogsResource, ModelReadOptions, ModelList, SessionResource } from '
|
|
3
|
-
import type { ModelCreateParams, ModelCreateManyParams, ModelDeleteParams, ServerReadOptions, ListAllOptions,
|
|
4
|
-
import type { Schema, SchemaRecord, InferModel, InferCreate } from '
|
|
5
|
-
import { type ModelUpdater, type FunctionalUpdateOptions } from '
|
|
6
|
-
import type { ReadDependency } from '
|
|
7
|
-
import type { EffectiveAuthority } from '
|
|
1
|
+
import type { HttpClientConfig } from './options.js';
|
|
2
|
+
import type { CommitResource, HttpClaimApi, HttpClaimsResource, HttpLogsResource, ModelReadOptions, ModelList, SessionResource } from '../../client/resources/httpResources.js';
|
|
3
|
+
import type { ModelCreateParams, ModelCreateManyParams, ModelDeleteParams, ServerReadOptions, ListAllOptions, ModelReadParams, ModelUpdateParams } from '../../client/resources/modelOperations.js';
|
|
4
|
+
import type { Schema, SchemaRecord, InferModel, InferCreate } from '../../schema/schema.js';
|
|
5
|
+
import { type ModelUpdater, type FunctionalUpdateOptions } from '../../client/resources/functionalUpdate.js';
|
|
6
|
+
import type { ReadDependency } from '../../coordination/schema.js';
|
|
7
|
+
import type { EffectiveAuthority } from '../../auth/capability.js';
|
|
8
8
|
export interface AbloHttpClientOptions<S extends SchemaRecord> extends HttpClientConfig<S> {
|
|
9
9
|
/**
|
|
10
10
|
* Per-request deadline. A black-holed HTTP request otherwise has no platform
|
|
@@ -24,9 +24,10 @@ export type HttpModelMutationParams<P> = Omit<P, 'reads'> & {
|
|
|
24
24
|
};
|
|
25
25
|
/**
|
|
26
26
|
* The per-model surface of the stateless HTTP client — everything reachable over
|
|
27
|
-
* request/response: reads (`get` and `list`),
|
|
28
|
-
*
|
|
29
|
-
*
|
|
27
|
+
* request/response: observational reads (`get` and `list`), declared decision
|
|
28
|
+
* reads (`read`), writes (`create`, `update`,
|
|
29
|
+
* and `delete`), and the durable-lease {@link HttpClaimApi | claim} plane for
|
|
30
|
+
* coordinated writes.
|
|
30
31
|
* It deliberately omits the stateful client's local-only
|
|
31
32
|
* reads (the `local` namespace) and live subscriptions (`onChange`), which need
|
|
32
33
|
* a resident graph and a persistent socket; those are absent from the type, so
|
|
@@ -36,39 +37,37 @@ export type HttpModelMutationParams<P> = Omit<P, 'reads'> & {
|
|
|
36
37
|
* than a parallel list it happens to agree with — a verb added here arrives
|
|
37
38
|
* there without a second edit.
|
|
38
39
|
*
|
|
39
|
-
* The typed model contract is transport-independent: `get`
|
|
40
|
-
* `list` returns rows, `create`/`update` return the resulting row, and `delete`
|
|
40
|
+
* The typed model contract is transport-independent: `get` and `read` return
|
|
41
|
+
* one row, `list` returns rows, `create`/`update` return the resulting row, and `delete`
|
|
41
42
|
* returns nothing. The low-level protocol client keeps its read watermark and
|
|
42
43
|
* commit receipt envelopes internally; callers should not have to change data
|
|
43
44
|
* access syntax when they switch transport.
|
|
44
45
|
*/
|
|
45
46
|
export interface HttpModelClient<T, C = T> {
|
|
47
|
+
/** Reads one current row without declaring it as input to a later decision. */
|
|
48
|
+
get(params: ModelReadParams & ModelReadOptions): Promise<T | undefined>;
|
|
46
49
|
/**
|
|
47
50
|
* Reads one row by id. Resolves to `undefined` when no such row exists — a
|
|
48
51
|
* miss is data-absence, not an error.
|
|
49
52
|
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
* synchronous `local.get` exists alongside this: same read, restricted
|
|
54
|
-
* to what is already here.
|
|
53
|
+
* Unlike `get`, the exact returned object privately carries model, id, and
|
|
54
|
+
* readAt evidence. Pass it in one mutation's `reads` array when that mutation
|
|
55
|
+
* was decided from this version.
|
|
55
56
|
*/
|
|
56
|
-
|
|
57
|
-
get(params: ModelRetrieveParams & ModelReadOptions): Promise<CapturedRow<T> | undefined>;
|
|
58
|
-
/** @deprecated Use `get({ id })` for an authoritative point lookup. */
|
|
59
|
-
retrieve(params: ModelRetrieveParams & ModelReadOptions): Promise<CapturedRow<T> | undefined>;
|
|
57
|
+
read(params: ModelReadParams & ModelReadOptions): Promise<CapturedRow<T> | undefined>;
|
|
60
58
|
/**
|
|
61
|
-
*
|
|
62
|
-
*
|
|
59
|
+
* Observes the rows matching a filter, deduplicating concurrent identical
|
|
60
|
+
* calls. List rows are plain values; deliberately `read({ id })` any row a
|
|
61
|
+
* later mutation depends on.
|
|
63
62
|
*/
|
|
64
63
|
/**
|
|
65
64
|
* The rows are an array as before; `hasMore` and `nextCursor` on the result
|
|
66
65
|
* say whether the collection continues past this page. Pass `nextCursor`
|
|
67
66
|
* back as `cursor`, with the same `where` and `orderBy`, to walk it.
|
|
68
67
|
*/
|
|
69
|
-
list(options?: ServerReadOptions<T>): Promise<ModelList<
|
|
68
|
+
list(options?: ServerReadOptions<T>): Promise<ModelList<T>>;
|
|
70
69
|
/** Reads every matching row, following cursors with a bounded traversal. */
|
|
71
|
-
listAll(options?: ListAllOptions<T>): Promise<
|
|
70
|
+
listAll(options?: ListAllOptions<T>): Promise<T[]>;
|
|
72
71
|
/**
|
|
73
72
|
* Creates a row and returns it, including any framework-applied defaults.
|
|
74
73
|
* Passing an id that already exists is idempotent: the existing row is
|
|
@@ -99,24 +98,6 @@ export interface HttpModelClient<T, C = T> {
|
|
|
99
98
|
update(id: string, updater: ModelUpdater<T>, options?: FunctionalUpdateOptions<ReadDependency | CapturedRow>): Promise<T | undefined>;
|
|
100
99
|
delete(params: HttpModelMutationParams<ModelDeleteParams<T, C>>): Promise<void>;
|
|
101
100
|
claim: HttpClaimApi<T, C>;
|
|
102
|
-
/**
|
|
103
|
-
* Registers a durable premise on a row — "keep telling me about this one".
|
|
104
|
-
* Any change that lands on the tracked row rides back on the `notifications`
|
|
105
|
-
* of this client's next commit, so a long-running agent learns its context
|
|
106
|
-
* went stale without re-reading. A track it already holds is refreshed, not
|
|
107
|
-
* duplicated.
|
|
108
|
-
*
|
|
109
|
-
* ```ts
|
|
110
|
-
* await ablo.items.track({ id: 'item_42' });
|
|
111
|
-
* // …minutes of other work later, on the next write…
|
|
112
|
-
* const res = await ablo.commits.create({ operations: [ … ] });
|
|
113
|
-
* res.notifications; // populated if item_42 moved in the meantime
|
|
114
|
-
* ```
|
|
115
|
-
*
|
|
116
|
-
* The returned `notifications` are only the tracks that had ALREADY fired at
|
|
117
|
-
* registration time; the ongoing signal arrives on later receipts.
|
|
118
|
-
*/
|
|
119
|
-
track(params: ModelTrackParams): Promise<ModelTrackResult>;
|
|
120
101
|
}
|
|
121
102
|
/**
|
|
122
103
|
* The type of the stateless HTTP client: a typed {@link HttpModelClient} per
|
|
@@ -133,7 +114,7 @@ export type AbloHttpClient<S extends SchemaRecord> = {
|
|
|
133
114
|
ready(): Promise<void>;
|
|
134
115
|
/** Replays every pending durable HTTP write in seal order and waits for confirmation. */
|
|
135
116
|
waitForFlush(): Promise<void>;
|
|
136
|
-
readonly commits: CommitResource
|
|
117
|
+
readonly commits: CommitResource<ReadDependency | CapturedRow>;
|
|
137
118
|
/**
|
|
138
119
|
* Claim-ticket operations keyed by `claimId`: `retrieve` polls a queued
|
|
139
120
|
* ticket to its grant, `heartbeat` keeps one lease (held or queued) alive,
|
|
@@ -170,4 +151,4 @@ export type AbloHttpClient<S extends SchemaRecord> = {
|
|
|
170
151
|
/** @internal Constructed only through the public `Ablo({ transport: 'http' })` factory. */
|
|
171
152
|
export declare function createAbloHttpClient<S extends SchemaRecord>(options: AbloHttpClientOptions<S>): AbloHttpClient<S>;
|
|
172
153
|
export {};
|
|
173
|
-
//# sourceMappingURL=
|
|
154
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/transport/http/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,15 +17,15 @@
|
|
|
17
17
|
* routing private; application code gets the same `client.<model>` surface the
|
|
18
18
|
* stateful client offers.
|
|
19
19
|
*/
|
|
20
|
-
import { createHttpTransport, } from './
|
|
21
|
-
import { modelWireNames } from '
|
|
22
|
-
import { collectModelList, modelList } from '
|
|
23
|
-
import { resolveCreateId } from '
|
|
24
|
-
import { omittedModelError } from '
|
|
25
|
-
import { reconcileFunctionalUpdate, } from '
|
|
26
|
-
import { AbloConnectionError, AbloValidationError } from '
|
|
27
|
-
import {
|
|
28
|
-
import { recordHttpCommitReceipt } from '
|
|
20
|
+
import { createHttpTransport, } from './transport.js';
|
|
21
|
+
import { modelWireNames } from '../../auth/capability.js';
|
|
22
|
+
import { collectModelList, modelList } from '../../client/resources/httpResources.js';
|
|
23
|
+
import { resolveCreateId } from '../../client/resources/modelCreate.js';
|
|
24
|
+
import { omittedModelError } from '../../schema/select.js';
|
|
25
|
+
import { reconcileFunctionalUpdate, } from '../../client/resources/functionalUpdate.js';
|
|
26
|
+
import { AbloConnectionError, AbloValidationError } from '../../errors.js';
|
|
27
|
+
import { capturePointRead, createReadSetContext, kReadEvidence, prepareReadSet, } from '../../commit/readSetContext.js';
|
|
28
|
+
import { recordHttpCommitReceipt } from '../../commit/recordRuntime.js';
|
|
29
29
|
/**
|
|
30
30
|
* Private transport members that pass straight through the facade. Everything
|
|
31
31
|
* else must be a declared schema model; there is no dynamic fallback namespace.
|
|
@@ -53,7 +53,7 @@ function isProtocolMember(prop) {
|
|
|
53
53
|
*/
|
|
54
54
|
function createHttpModelClient(protocol, modelName, clientIdentity, readSetContext) {
|
|
55
55
|
async function readRow(id) {
|
|
56
|
-
const read = await protocol.
|
|
56
|
+
const read = await protocol.read({ id });
|
|
57
57
|
capturePointRead(readSetContext, clientIdentity, modelName, id, read.data, read.stamp);
|
|
58
58
|
return read.data;
|
|
59
59
|
}
|
|
@@ -76,19 +76,14 @@ function createHttpModelClient(protocol, modelName, clientIdentity, readSetConte
|
|
|
76
76
|
};
|
|
77
77
|
}
|
|
78
78
|
function preparedMutation(params) {
|
|
79
|
-
const prepared = prepareReadSet(readSetContext, clientIdentity, params.readAt, params.
|
|
79
|
+
const prepared = prepareReadSet(readSetContext, clientIdentity, params.readAt, params.idempotencyKey, params.reads);
|
|
80
80
|
return {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
? { idempotencyKey: prepared.idempotencyKey }
|
|
88
|
-
: {}),
|
|
89
|
-
},
|
|
90
|
-
consumed: prepared.consumed,
|
|
91
|
-
automaticCommit: prepared.automaticCommit,
|
|
81
|
+
...mutationOptions(params),
|
|
82
|
+
...(prepared.readAt !== undefined ? { readAt: prepared.readAt } : {}),
|
|
83
|
+
...(prepared.reads !== undefined ? { reads: prepared.reads } : {}),
|
|
84
|
+
...(prepared.idempotencyKey !== undefined
|
|
85
|
+
? { idempotencyKey: prepared.idempotencyKey }
|
|
86
|
+
: {}),
|
|
92
87
|
};
|
|
93
88
|
}
|
|
94
89
|
async function update(arg, updater, options) {
|
|
@@ -100,114 +95,64 @@ function createHttpModelClient(protocol, modelName, clientIdentity, readSetConte
|
|
|
100
95
|
model: modelName,
|
|
101
96
|
id: arg,
|
|
102
97
|
readFresh: async () => {
|
|
103
|
-
const read = await protocol.
|
|
98
|
+
const read = await protocol.read({ id: arg });
|
|
104
99
|
capturePointRead(readSetContext, clientIdentity, modelName, arg, read.data, read.stamp);
|
|
105
100
|
return { data: read.data, stamp: read.stamp };
|
|
106
101
|
},
|
|
107
102
|
writeNext: async (patch, readAt) => {
|
|
108
|
-
const
|
|
103
|
+
const opts = preparedMutation({
|
|
109
104
|
readAt,
|
|
110
|
-
onStale: 'reject',
|
|
111
105
|
reads: options?.reads,
|
|
112
106
|
});
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
});
|
|
119
|
-
consumeReadSet(readSetContext, clientIdentity, prepared.consumed, prepared.automaticCommit);
|
|
120
|
-
return result;
|
|
121
|
-
}
|
|
122
|
-
catch (error) {
|
|
123
|
-
abortReadSetCommit(readSetContext, prepared.automaticCommit);
|
|
124
|
-
throw error;
|
|
125
|
-
}
|
|
107
|
+
return await protocol.update({
|
|
108
|
+
...opts,
|
|
109
|
+
id: arg,
|
|
110
|
+
data: patch,
|
|
111
|
+
});
|
|
126
112
|
},
|
|
127
113
|
});
|
|
128
114
|
return receipt === undefined ? undefined : requireUpdatedRow(arg);
|
|
129
115
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
data: arg.data,
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
catch (error) {
|
|
139
|
-
abortReadSetCommit(readSetContext, prepared.automaticCommit);
|
|
140
|
-
throw error;
|
|
141
|
-
}
|
|
142
|
-
consumeReadSet(readSetContext, clientIdentity, prepared.consumed, prepared.automaticCommit);
|
|
116
|
+
await protocol.update({
|
|
117
|
+
...preparedMutation(arg),
|
|
118
|
+
id: arg.id,
|
|
119
|
+
data: arg.data,
|
|
120
|
+
});
|
|
143
121
|
return requireUpdatedRow(arg.id);
|
|
144
122
|
}
|
|
145
123
|
const get = async (params) => {
|
|
146
|
-
const
|
|
147
|
-
|
|
148
|
-
|
|
124
|
+
const result = await protocol.read(params);
|
|
125
|
+
return result.data;
|
|
126
|
+
};
|
|
127
|
+
const read = async (params) => {
|
|
128
|
+
const result = await protocol.read(params);
|
|
129
|
+
capturePointRead(readSetContext, clientIdentity, modelName, params.id, result.data, result.stamp);
|
|
130
|
+
return result.data;
|
|
149
131
|
};
|
|
150
132
|
async function createModel(params) {
|
|
151
|
-
const
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
? { idempotencyKey: prepared.options.idempotencyKey }
|
|
160
|
-
: {}),
|
|
161
|
-
...(prepared.options.reads
|
|
162
|
-
? { reads: [...prepared.options.reads] }
|
|
163
|
-
: {}),
|
|
164
|
-
...(prepared.options.track
|
|
165
|
-
? { track: [...prepared.options.track] }
|
|
166
|
-
: {}),
|
|
167
|
-
});
|
|
168
|
-
consumeReadSet(readSetContext, clientIdentity, prepared.consumed, prepared.automaticCommit);
|
|
169
|
-
return rows;
|
|
170
|
-
}
|
|
171
|
-
const single = params;
|
|
172
|
-
const resolvedId = resolveCreateId(single.id, single.data);
|
|
173
|
-
const row = await protocol.create({
|
|
174
|
-
...prepared.options,
|
|
175
|
-
...(resolvedId !== undefined ? { id: resolvedId } : {}),
|
|
176
|
-
data: single.data,
|
|
133
|
+
const opts = preparedMutation(params);
|
|
134
|
+
// The list form is one atomic commit through the protocol's batch door.
|
|
135
|
+
// Same verb because it is the same act; the argument says how many.
|
|
136
|
+
if (Array.isArray(params.data)) {
|
|
137
|
+
const rows = await protocol.createMany({
|
|
138
|
+
data: params.data,
|
|
139
|
+
...(opts.idempotencyKey ? { idempotencyKey: opts.idempotencyKey } : {}),
|
|
140
|
+
...(opts.reads ? { reads: [...opts.reads] } : {}),
|
|
177
141
|
});
|
|
178
|
-
|
|
179
|
-
return row;
|
|
180
|
-
}
|
|
181
|
-
catch (error) {
|
|
182
|
-
abortReadSetCommit(readSetContext, prepared.automaticCommit);
|
|
183
|
-
throw error;
|
|
142
|
+
return rows;
|
|
184
143
|
}
|
|
144
|
+
const single = params;
|
|
145
|
+
const resolvedId = resolveCreateId(single.id, single.data);
|
|
146
|
+
const row = await protocol.create({
|
|
147
|
+
...opts,
|
|
148
|
+
...(resolvedId !== undefined ? { id: resolvedId } : {}),
|
|
149
|
+
data: single.data,
|
|
150
|
+
});
|
|
151
|
+
return row;
|
|
185
152
|
}
|
|
186
153
|
const list = async (options) => {
|
|
187
154
|
const snapshot = await protocol.list(options);
|
|
188
|
-
|
|
189
|
-
// Following pages re-enter this same read, so each one is captured into
|
|
190
|
-
// the read set exactly as the first was. A `for await` over the result
|
|
191
|
-
// therefore carries the same evidence a manual cursor walk would.
|
|
192
|
-
(cursor) => list({ ...options, cursor }));
|
|
193
|
-
const registry = readSetContext?.getStore();
|
|
194
|
-
if (!registry)
|
|
195
|
-
return page;
|
|
196
|
-
if (!snapshot.evidence) {
|
|
197
|
-
throw new AbloConnectionError(`${modelName}.list did not return row evidence. Upgrade the Ablo server or use get({ id }).`, { code: 'commit_no_result' });
|
|
198
|
-
}
|
|
199
|
-
const byId = new Map(snapshot.evidence.map((entry) => [entry.id, entry.stamp]));
|
|
200
|
-
for (const row of snapshot.data) {
|
|
201
|
-
const id = typeof row === 'object' && row !== null
|
|
202
|
-
? Reflect.get(row, 'id')
|
|
203
|
-
: undefined;
|
|
204
|
-
const stamp = typeof id === 'string' ? byId.get(id) : undefined;
|
|
205
|
-
if (typeof id !== 'string' || stamp === undefined) {
|
|
206
|
-
throw new AbloConnectionError(`${modelName}.list returned a row without matching evidence.`, { code: 'commit_no_result' });
|
|
207
|
-
}
|
|
208
|
-
capturePointRead(readSetContext, clientIdentity, modelName, id, row, stamp);
|
|
209
|
-
}
|
|
210
|
-
return page;
|
|
155
|
+
return modelList(snapshot.data, snapshot, (cursor) => list({ ...options, cursor }));
|
|
211
156
|
};
|
|
212
157
|
const listAll = async (options = {}) => {
|
|
213
158
|
const { maxPages, signal, ...readOptions } = options;
|
|
@@ -217,12 +162,13 @@ function createHttpModelClient(protocol, modelName, clientIdentity, readSetConte
|
|
|
217
162
|
};
|
|
218
163
|
// Claim acquisition performs its authoritative read only after the grant.
|
|
219
164
|
// Preserve that exact post-grant watermark while retaining the callable
|
|
220
|
-
// namespace and all of its state/queue/release members through the proxy.
|
|
165
|
+
// namespace and all of its state/list/queue/release/reorder members through the proxy.
|
|
221
166
|
const claim = new Proxy(protocol.claim, {
|
|
222
167
|
apply(target, thisArg, argArray) {
|
|
223
168
|
const result = Reflect.apply(target, thisArg, argArray);
|
|
224
169
|
return result.then((held) => {
|
|
225
|
-
|
|
170
|
+
// A row-free lease (`claim(id)`) carries no snapshot: nothing to capture.
|
|
171
|
+
if (held && 'data' in held && held.readAt !== undefined) {
|
|
226
172
|
capturePointRead(readSetContext, clientIdentity, modelName, held.target.id, held.data, held.readAt);
|
|
227
173
|
}
|
|
228
174
|
return held;
|
|
@@ -231,24 +177,15 @@ function createHttpModelClient(protocol, modelName, clientIdentity, readSetConte
|
|
|
231
177
|
});
|
|
232
178
|
return {
|
|
233
179
|
get,
|
|
234
|
-
|
|
180
|
+
read,
|
|
235
181
|
list,
|
|
236
182
|
listAll,
|
|
237
183
|
create: createModel,
|
|
238
184
|
update,
|
|
239
185
|
async delete(params) {
|
|
240
|
-
|
|
241
|
-
try {
|
|
242
|
-
await protocol.delete({ ...prepared.options, id: params.id });
|
|
243
|
-
}
|
|
244
|
-
catch (error) {
|
|
245
|
-
abortReadSetCommit(readSetContext, prepared.automaticCommit);
|
|
246
|
-
throw error;
|
|
247
|
-
}
|
|
248
|
-
consumeReadSet(readSetContext, clientIdentity, prepared.consumed, prepared.automaticCommit);
|
|
186
|
+
await protocol.delete({ ...preparedMutation(params), id: params.id });
|
|
249
187
|
},
|
|
250
188
|
claim,
|
|
251
|
-
track: (params) => protocol.track(params),
|
|
252
189
|
};
|
|
253
190
|
}
|
|
254
191
|
/**
|
|
@@ -283,13 +220,36 @@ export function createAbloHttpClient(options) {
|
|
|
283
220
|
models.set(name, created);
|
|
284
221
|
return created;
|
|
285
222
|
};
|
|
223
|
+
const commits = {
|
|
224
|
+
async create(commitOptions) {
|
|
225
|
+
const prepared = prepareReadSet(readSetContext, clientIdentity, commitOptions.readAt, commitOptions.idempotencyKey, commitOptions.reads);
|
|
226
|
+
return transport.commits.create({
|
|
227
|
+
operations: commitOptions.operations,
|
|
228
|
+
...(commitOptions.claim !== undefined ? { claim: commitOptions.claim } : {}),
|
|
229
|
+
...(commitOptions.wait !== undefined ? { wait: commitOptions.wait } : {}),
|
|
230
|
+
...(prepared.readAt !== undefined ? { readAt: prepared.readAt } : {}),
|
|
231
|
+
...(prepared.reads !== undefined ? { reads: prepared.reads } : {}),
|
|
232
|
+
...(prepared.idempotencyKey !== undefined
|
|
233
|
+
? { idempotencyKey: prepared.idempotencyKey }
|
|
234
|
+
: {}),
|
|
235
|
+
});
|
|
236
|
+
},
|
|
237
|
+
get: (options) => transport.commits.get(options),
|
|
238
|
+
list: (options) => transport.commits.list(options),
|
|
239
|
+
};
|
|
286
240
|
const facade = new Proxy({}, {
|
|
287
241
|
get(_target, prop) {
|
|
288
242
|
if (prop === kReadEvidence) {
|
|
289
|
-
return {
|
|
243
|
+
return {
|
|
244
|
+
context: readSetContext,
|
|
245
|
+
client: clientIdentity,
|
|
246
|
+
onChange: transport.onChange,
|
|
247
|
+
};
|
|
290
248
|
}
|
|
291
249
|
if (typeof prop !== 'string')
|
|
292
250
|
return undefined;
|
|
251
|
+
if (prop === 'commits')
|
|
252
|
+
return commits;
|
|
293
253
|
// Real protocol members pass through unchanged.
|
|
294
254
|
if (isProtocolMember(prop)) {
|
|
295
255
|
return transport[prop];
|
|
@@ -311,4 +271,4 @@ export function createAbloHttpClient(options) {
|
|
|
311
271
|
// method on this type is missing at runtime.
|
|
312
272
|
return facade;
|
|
313
273
|
}
|
|
314
|
-
//# sourceMappingURL=
|
|
274
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/transport/http/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EACL,mBAAmB,GAEpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAgB1D,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAWxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACL,yBAAyB,GAG1B,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3E,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,cAAc,GAEf,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AA0JxE;;;GAGG;AACH,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAS;IACvC,OAAO;IACP,cAAc;IACd,SAAS;IACT,SAAS;IACT,QAAQ;IACR,MAAM;IACN,UAAU;IACV,cAAc;IACd,UAAU;CACX,CAAC,CAAC;AAEH,wFAAwF;AACxF,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB,CAC5B,QAAkC,EAClC,SAAiB,EACjB,cAAsB,EACtB,cAA0C;IAE1C,KAAK,UAAU,OAAO,CAAC,EAAU;QAC/B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACzC,gBAAgB,CAAC,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACvF,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,UAAU,iBAAiB,CAAC,EAAU;QACzC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,mBAAmB,CAC3B,sBAAsB,EAAE,0CAA0C,EAClE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAC7B,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,+EAA+E;IAC/E,+EAA+E;IAC/E,2EAA2E;IAC3E,kEAAkE;IAClE,SAAS,eAAe,CACtB,MAAS;QAET,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QAClC,OAAO;YACL,GAAG,IAAI;YACP,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1C,CAAC;IACJ,CAAC;IAED,SAAS,gBAAgB,CAMvB,MAAS;QAET,MAAM,QAAQ,GAAG,cAAc,CAC7B,cAAc,EACd,cAAc,EACd,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,cAAc,EACrB,MAAM,CAAC,KAAK,CACb,CAAC;QACF,OAAO;YACL,GAAG,eAAe,CAAC,MAAM,CAAC;YAC1B,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,GAAG,CAAC,QAAQ,CAAC,cAAc,KAAK,SAAS;gBACvC,CAAC,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,cAAc,EAAE;gBAC7C,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IAQD,KAAK,UAAU,MAAM,CACnB,GAA8D,EAC9D,OAAyB,EACzB,OAA+D;QAE/D,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,mBAAmB,CAC3B,iDAAiD,EACjD,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAClC,CAAC;YACJ,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAK7C,OAAO,EACP,OAAO,EACP;gBACE,KAAK,EAAE,SAAS;gBAChB,EAAE,EAAE,GAAG;gBACP,SAAS,EAAE,KAAK,IAAI,EAAE;oBACpB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC9C,gBAAgB,CACd,cAAc,EACd,cAAc,EACd,SAAS,EACT,GAAG,EACH,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,KAAK,CACX,CAAC;oBACF,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;gBAChD,CAAC;gBACD,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;oBACjC,MAAM,IAAI,GAAG,gBAAgB,CAAC;wBAC5B,MAAM;wBACN,KAAK,EAAE,OAAO,EAAE,KAAK;qBACtB,CAAC,CAAC;oBACH,OAAO,MAAM,QAAQ,CAAC,MAAM,CAAC;wBAC3B,GAAG,IAAI;wBACP,EAAE,EAAE,GAAG;wBACP,IAAI,EAAE,KAAK;qBACZ,CAAC,CAAC;gBACL,CAAC;aACF,CACF,CAAC;YACF,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,QAAQ,CAAC,MAAM,CAAC;YACpB,GAAG,gBAAgB,CAAC,GAAG,CAAC;YACxB,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,CAAC,IAAI;SACf,CAAC,CAAC;QACH,OAAO,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,EACf,MAA0C,EAClB,EAAE;QAC1B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,KAAK,EAChB,MAA0C,EACL,EAAE;QACvC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,gBAAgB,CACd,cAAc,EACd,cAAc,EACd,SAAS,EACT,MAAM,CAAC,EAAE,EACT,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,KAAK,CACb,CAAC;QACF,OAAO,MAAM,CAAC,IAAkC,CAAC;IACnD,CAAC,CAAC;IAWF,KAAK,UAAU,WAAW,CACxB,MAEqD;QAErD,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACtC,wEAAwE;QACxE,oEAAoE;QACpE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC;gBACrC,IAAI,EAAE,MAAM,CAAC,IAA0C;gBACvD,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAClD,CAAC,CAAC;YACH,OAAO,IAAwB,CAAC;QAClC,CAAC;QACD,MAAM,MAAM,GAAG,MAA0D,CAAC;QAC1E,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YAChC,GAAG,IAAI;YACP,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,IAAI,EAAE,MAAM,CAAC,IAA+B;SAC7C,CAAC,CAAC;QACH,OAAO,GAAqB,CAAC;IAC/B,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,EAChB,OAA8B,EACP,EAAE;QACzB,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9C,OAAO,SAAS,CACd,QAAQ,CAAC,IAAI,EACb,QAAQ,EACR,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAC,CACzC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,KAAK,EACnB,UAA6B,EAAE,EACjB,EAAE;QAChB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC;QACrD,MAAM,EAAE,cAAc,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC;QACtC,OAAO,gBAAgB,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC;IAEF,0EAA0E;IAC1E,wEAAwE;IACxE,uFAAuF;IACvF,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE;QACtC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ;YAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAErD,CAAC;YACF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC1B,0EAA0E;gBAC1E,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBACxD,gBAAgB,CACd,cAAc,EACd,cAAc,EACd,SAAS,EACT,IAAI,CAAC,MAAM,CAAC,EAAE,EACd,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,MAAM,CACZ,CAAC;gBACJ,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;IAEH,OAAO;QACL,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,MAAM,EAAE,WAAW;QACnB,MAAM;QACN,KAAK,CAAC,MAAM,CAAC,MAAM;YACjB,MAAM,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,KAAK;KACN,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,2FAA2F;AAC3F,MAAM,UAAU,oBAAoB,CAClC,OAAiC;IAEjC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IACrD,MAAM,cAAc,GAAG,oBAAoB,EAAE,CAAC;IAC9C,MAAM,SAAS,GAAkB,mBAAmB,CAAC;QACnD,GAAG,IAAI;QACP,2EAA2E;QAC3E,8BAA8B;QAC9B,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC;QAC7C,eAAe,EAAE,CAAC,WAAW,EAAE,EAAE;YAC/B,uBAAuB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;YACrD,eAAe,EAAE,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC;KACF,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACzD,MAAM,cAAc,GAAG,EAAE,CAAC;IAC1B,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,IAAI,GAAG,EAGnB,CAAC;IAEJ,MAAM,KAAK,GAAG,CACZ,IAAY,EACuD,EAAE;QACrE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,MAAM,OAAO,GAAG,qBAAqB,CACnC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EACrB,IAAI,EACJ,cAAc,EACd,cAAc,CACf,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1B,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,OAAO,GAAiD;QAC5D,KAAK,CAAC,MAAM,CAAC,aAAa;YACxB,MAAM,QAAQ,GAAG,cAAc,CAC7B,cAAc,EACd,cAAc,EACd,aAAa,CAAC,MAAM,EACpB,aAAa,CAAC,cAAc,EAC5B,aAAa,CAAC,KAAK,CACpB,CAAC;YACF,OAAO,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC9B,UAAU,EAAE,aAAa,CAAC,UAAU;gBACpC,GAAG,CAAC,aAAa,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5E,GAAG,CAAC,aAAa,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzE,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrE,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClE,GAAG,CAAC,QAAQ,CAAC,cAAc,KAAK,SAAS;oBACvC,CAAC,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,cAAc,EAAE;oBAC7C,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;QACL,CAAC;QACD,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;QAChD,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;KACnD,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,KAAK,CAA6B,EAAE,EAAE;QACvD,GAAG,CAAC,OAAO,EAAE,IAAI;YACf,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;gBAC3B,OAAO;oBACL,OAAO,EAAE,cAAc;oBACvB,MAAM,EAAE,cAAc;oBACtB,QAAQ,EAAE,SAAS,CAAC,QAAQ;iBAC7B,CAAC;YACJ,CAAC;YACD,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO,SAAS,CAAC;YAC/C,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC;YACvC,gDAAgD;YAChD,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;YACD,yEAAyE;YACzE,4EAA4E;YAC5E,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/C,yEAAyE;YACzE,yEAAyE;YACzE,kEAAkE;YAClE,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC3D,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CAAC,CAAC;IAEH,2EAA2E;IAC3E,6EAA6E;IAC7E,6CAA6C;IAC7C,OAAO,MAA2B,CAAC;AACrC,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { type CommitReceiptWire } from '
|
|
2
|
-
import type { ClaimHeartbeatReply } from '
|
|
3
|
-
import type { ModelClaim } from '
|
|
4
|
-
import type { Claim, ClaimHeartbeat } from '
|
|
1
|
+
import { type CommitReceiptWire } from '../../commit/contract.js';
|
|
2
|
+
import type { ClaimHeartbeatReply } from '../../claims/contract.js';
|
|
3
|
+
import type { ModelClaim } from '../../client/resources/httpResources.js';
|
|
4
|
+
import type { Claim, ClaimHeartbeat } from '../../types/streams.js';
|
|
5
5
|
/** Interpret a heartbeat reply for a lease this handle currently holds. */
|
|
6
6
|
export declare function heldHeartbeatReply(reply: ClaimHeartbeatReply, label: string): ClaimHeartbeat;
|
|
7
7
|
export declare function parseSuccessfulCommitResponse(value: unknown, idempotencyKey: string): CommitReceiptWire;
|
|
8
8
|
/** Decode the HTTP claim DTO into the public Claim shape. */
|
|
9
9
|
export declare function claimFromModelClaim(claim: ModelClaim): Claim;
|
|
10
|
-
//# sourceMappingURL=
|
|
10
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/transport/http/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AAG1E,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAEpE,2EAA2E;AAC3E,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EAAE,MAAM,GACZ,cAAc,CAWhB;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,OAAO,EACd,cAAc,EAAE,MAAM,GACrB,iBAAiB,CAcnB;AAED,6DAA6D;AAC7D,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,KAAK,CAiB5D"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { AbloClaimedError, AbloConnectionError } from '
|
|
2
|
-
import { commitReceiptSchema } from '
|
|
3
|
-
import { subTarget, streamTarget } from '
|
|
4
|
-
import { declaredMeta } from '
|
|
1
|
+
import { AbloClaimedError, AbloConnectionError } from '../../errors.js';
|
|
2
|
+
import { commitReceiptSchema } from '../../commit/contract.js';
|
|
3
|
+
import { subTarget, streamTarget } from '../../claims/locator.js';
|
|
4
|
+
import { declaredMeta } from '../../claims/meta.js';
|
|
5
5
|
/** Interpret a heartbeat reply for a lease this handle currently holds. */
|
|
6
6
|
export function heldHeartbeatReply(reply, label) {
|
|
7
7
|
if (reply.status === 'held' && typeof reply.expiresAt === 'number') {
|
|
@@ -43,4 +43,4 @@ export function claimFromModelClaim(claim) {
|
|
|
43
43
|
},
|
|
44
44
|
};
|
|
45
45
|
}
|
|
46
|
-
//# sourceMappingURL=
|
|
46
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/transport/http/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAA0B,MAAM,0BAA0B,CAAC;AAGvF,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,2EAA2E;AAC3E,MAAM,UAAU,kBAAkB,CAChC,KAA0B,EAC1B,KAAa;IAEb,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACnE,OAAO;YACL,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5E,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,KAAK,mKAAmK,EAC5L,EAAE,IAAI,EAAE,YAAY,EAAE,CACvB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,KAAc,EACd,cAAsB;IAEtB,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,KAAK,cAAc,EAAE,CAAC;QACjE,MAAM,IAAI,mBAAmB,CAC3B,4GAA4G,EAC5G;YACE,IAAI,EAAE,kBAAkB;YACxB,KAAK,EAAE,MAAM,CAAC,OAAO;gBACnB,CAAC,CAAC,IAAI,KAAK,CAAC,6DAA6D,CAAC;gBAC1E,CAAC,CAAC,MAAM,CAAC,KAAK;SACjB,CACF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,mBAAmB,CAAC,KAAiB;IACnD,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrD,OAAO;QACL,MAAM,EAAE,OAAO;QACf,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,SAAS;QAC3C,MAAM,EAAE,KAAK,CAAC,KAAK;QACnB,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,MAAM,EAAE;YACN,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;YAC7B,GAAG,OAAO;YACV,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transport/http/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transport/http/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
|
|
@@ -9,12 +9,12 @@
|
|
|
9
9
|
* TypeScript is structural, so a consumer's full options object satisfies this
|
|
10
10
|
* without declaring `extends`; the composition root keeps owning its own type.
|
|
11
11
|
*/
|
|
12
|
-
import type { Schema, SchemaRecord } from '
|
|
13
|
-
import type { AuthClientOptions } from '
|
|
14
|
-
import type { CoordinationObservability } from '
|
|
15
|
-
import type { CommitOutboxScope } from '
|
|
16
|
-
import type { CommitReceiptWire } from '
|
|
17
|
-
import type { DurableWriteStore, DurableWritesConfig } from '
|
|
12
|
+
import type { Schema, SchemaRecord } from '../../schema/schema.js';
|
|
13
|
+
import type { AuthClientOptions } from '../../auth/apiKey.js';
|
|
14
|
+
import type { CoordinationObservability } from '../../observability.js';
|
|
15
|
+
import type { CommitOutboxScope } from '../../commit/confirmation/commitEnvelope.js';
|
|
16
|
+
import type { CommitReceiptWire } from '../../commit/contract.js';
|
|
17
|
+
import type { DurableWriteStore, DurableWritesConfig } from '../../commit/durableWrites.js';
|
|
18
18
|
export interface HttpClientConfig<S extends SchemaRecord = SchemaRecord> extends AuthClientOptions {
|
|
19
19
|
schema: Schema<S>;
|
|
20
20
|
/** Overrides where credential exchange and bootstrap are reached. */
|
|
@@ -39,4 +39,4 @@ export interface HttpClientConfig<S extends SchemaRecord = SchemaRecord> extends
|
|
|
39
39
|
readonly body: unknown;
|
|
40
40
|
}) => void;
|
|
41
41
|
}
|
|
42
|
-
//# sourceMappingURL=
|
|
42
|
+
//# sourceMappingURL=options.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/transport/http/options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,CAGrE,SAAQ,iBAAiB;IACzB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAClB,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,KAAK,GAAG,SAAS,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IAC9D,aAAa,CAAC,EAAE,yBAAyB,CAAC;IAC1C,iFAAiF;IACjF,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,2DAA2D;IAC3D,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,mEAAmE;IACnE,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,qDAAqD;IACrD,SAAS,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;IAC7C,iFAAiF;IACjF,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE;QAC9B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;QACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;KACxB,KAAK,IAAI,CAAC;CACZ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/transport/http/options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ReadDependency } from '../../coordination/schema.js';
|
|
2
|
+
import { AbloStaleContextError } from '../../errors.js';
|
|
3
|
+
export interface HttpReadOnChangeDeps {
|
|
4
|
+
readonly fetch: typeof fetch;
|
|
5
|
+
readonly endpoint: () => string;
|
|
6
|
+
readonly authHeaders: () => Promise<Record<string, string>>;
|
|
7
|
+
readonly prepare: () => Promise<void>;
|
|
8
|
+
readonly register: (controller: AbortController) => void;
|
|
9
|
+
readonly unregister: (controller: AbortController) => void;
|
|
10
|
+
}
|
|
11
|
+
export type HttpReadOnChange = (reads: readonly ReadDependency[], listener: (error: AbloStaleContextError) => void) => () => void;
|
|
12
|
+
/** POST the existing reads and consume one `stale_context` SSE event. */
|
|
13
|
+
export declare function createHttpReadOnChange(deps: HttpReadOnChangeDeps): HttpReadOnChange;
|
|
14
|
+
/** Full-jitter reconnect delay; exported only for transport unit tests. */
|
|
15
|
+
export declare function reconnectDelayMs(failures: number, random?: () => number): number;
|
|
16
|
+
//# sourceMappingURL=subscription.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../../../src/transport/http/subscription.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EACL,qBAAqB,EAEtB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5D,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,eAAe,KAAK,IAAI,CAAC;IACzD,QAAQ,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,eAAe,KAAK,IAAI,CAAC;CAC5D;AAED,MAAM,MAAM,gBAAgB,GAAG,CAC7B,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,KAC7C,MAAM,IAAI,CAAC;AAKhB,yEAAyE;AACzE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,oBAAoB,GAAG,gBAAgB,CA4DnF;AAED,2EAA2E;AAC3E,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,eAAc,GAAG,MAAM,CAM/E"}
|