@abloatai/transaction 0.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONVENTIONS.md +83 -0
- package/README.md +48 -0
- package/dist/ablo.d.ts +90 -0
- package/dist/ablo.d.ts.map +1 -0
- package/dist/ablo.js +34 -0
- package/dist/ablo.js.map +1 -0
- package/dist/ai-sdk/coordinatedTool.d.ts +123 -0
- package/dist/ai-sdk/coordinatedTool.d.ts.map +1 -0
- package/dist/ai-sdk/coordinatedTool.js +135 -0
- package/dist/ai-sdk/coordinatedTool.js.map +1 -0
- package/dist/ai-sdk/index.d.ts +2 -0
- package/dist/ai-sdk/index.d.ts.map +1 -0
- package/dist/ai-sdk/index.js +2 -0
- package/dist/ai-sdk/index.js.map +1 -0
- package/dist/auth/apiKey.d.ts +154 -0
- package/dist/auth/apiKey.d.ts.map +1 -0
- package/dist/auth/apiKey.js +408 -0
- package/dist/auth/apiKey.js.map +1 -0
- package/dist/auth/bootstrapScope.d.ts +16 -0
- package/dist/auth/bootstrapScope.d.ts.map +1 -0
- package/dist/auth/bootstrapScope.js +2 -0
- package/dist/auth/bootstrapScope.js.map +1 -0
- package/dist/auth/browserCredentialSafety.d.ts +7 -0
- package/dist/auth/browserCredentialSafety.d.ts.map +1 -0
- package/dist/auth/browserCredentialSafety.js +29 -0
- package/dist/auth/browserCredentialSafety.js.map +1 -0
- package/dist/auth/capability.d.ts +241 -0
- package/dist/auth/capability.d.ts.map +1 -0
- package/dist/auth/capability.js +253 -0
- package/dist/auth/capability.js.map +1 -0
- package/dist/auth/capabilityLifecycle.d.ts +47 -0
- package/dist/auth/capabilityLifecycle.d.ts.map +1 -0
- package/dist/auth/capabilityLifecycle.js +108 -0
- package/dist/auth/capabilityLifecycle.js.map +1 -0
- package/dist/auth/credentialEndpoint.d.ts +10 -0
- package/dist/auth/credentialEndpoint.d.ts.map +1 -0
- package/dist/auth/credentialEndpoint.js +58 -0
- package/dist/auth/credentialEndpoint.js.map +1 -0
- package/dist/auth/credentialEndpointProtocol.d.ts +24 -0
- package/dist/auth/credentialEndpointProtocol.d.ts.map +1 -0
- package/dist/auth/credentialEndpointProtocol.js +34 -0
- package/dist/auth/credentialEndpointProtocol.js.map +1 -0
- package/dist/auth/credentialKind.d.ts +4 -0
- package/dist/auth/credentialKind.d.ts.map +1 -0
- package/dist/auth/credentialKind.js +15 -0
- package/dist/auth/credentialKind.js.map +1 -0
- package/dist/auth/credentialPolicy.d.ts +141 -0
- package/dist/auth/credentialPolicy.d.ts.map +1 -0
- package/dist/auth/credentialPolicy.js +113 -0
- package/dist/auth/credentialPolicy.js.map +1 -0
- package/dist/auth/credentialResult.d.ts +7 -0
- package/dist/auth/credentialResult.d.ts.map +1 -0
- package/dist/auth/credentialResult.js +9 -0
- package/dist/auth/credentialResult.js.map +1 -0
- package/dist/auth/credentialSource.d.ts +31 -0
- package/dist/auth/credentialSource.d.ts.map +1 -0
- package/dist/auth/credentialSource.js +56 -0
- package/dist/auth/credentialSource.js.map +1 -0
- package/dist/auth/hostedEndpoints.d.ts +22 -0
- package/dist/auth/hostedEndpoints.d.ts.map +1 -0
- package/dist/auth/hostedEndpoints.js +22 -0
- package/dist/auth/hostedEndpoints.js.map +1 -0
- package/dist/auth/identity.d.ts +62 -0
- package/dist/auth/identity.d.ts.map +1 -0
- package/dist/auth/identity.js +224 -0
- package/dist/auth/identity.js.map +1 -0
- package/dist/auth/index.d.ts +189 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +312 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/schemas.d.ts +41 -0
- package/dist/auth/schemas.d.ts.map +1 -0
- package/dist/auth/schemas.js +69 -0
- package/dist/auth/schemas.js.map +1 -0
- package/dist/auth/sessionMint.d.ts +29 -0
- package/dist/auth/sessionMint.d.ts.map +1 -0
- package/dist/auth/sessionMint.js +92 -0
- package/dist/auth/sessionMint.js.map +1 -0
- package/dist/auth/token.d.ts +4 -0
- package/dist/auth/token.d.ts.map +1 -0
- package/dist/auth/token.js +4 -0
- package/dist/auth/token.js.map +1 -0
- package/dist/batching/index.d.ts +56 -0
- package/dist/batching/index.d.ts.map +1 -0
- package/dist/batching/index.js +148 -0
- package/dist/batching/index.js.map +1 -0
- package/dist/coordination/awaitClaimGrant.d.ts +57 -0
- package/dist/coordination/awaitClaimGrant.d.ts.map +1 -0
- package/dist/coordination/awaitClaimGrant.js +138 -0
- package/dist/coordination/awaitClaimGrant.js.map +1 -0
- package/dist/coordination/claimHeartbeatLoop.d.ts +85 -0
- package/dist/coordination/claimHeartbeatLoop.d.ts.map +1 -0
- package/dist/coordination/claimHeartbeatLoop.js +109 -0
- package/dist/coordination/claimHeartbeatLoop.js.map +1 -0
- package/dist/coordination/claimMeta.d.ts +50 -0
- package/dist/coordination/claimMeta.d.ts.map +1 -0
- package/dist/coordination/claimMeta.js +53 -0
- package/dist/coordination/claimMeta.js.map +1 -0
- package/dist/coordination/events.d.ts +75 -0
- package/dist/coordination/events.d.ts.map +1 -0
- package/dist/coordination/events.js +8 -0
- package/dist/coordination/events.js.map +1 -0
- package/dist/coordination/index.d.ts +20 -0
- package/dist/coordination/index.d.ts.map +1 -0
- package/dist/coordination/index.js +46 -0
- package/dist/coordination/index.js.map +1 -0
- package/dist/coordination/locator.d.ts +106 -0
- package/dist/coordination/locator.d.ts.map +1 -0
- package/dist/coordination/locator.js +110 -0
- package/dist/coordination/locator.js.map +1 -0
- package/dist/coordination/schema.d.ts +1332 -0
- package/dist/coordination/schema.d.ts.map +1 -0
- package/dist/coordination/schema.js +1137 -0
- package/dist/coordination/schema.js.map +1 -0
- package/dist/coordination/targetConflict.d.ts +3 -0
- package/dist/coordination/targetConflict.d.ts.map +1 -0
- package/dist/coordination/targetConflict.js +74 -0
- package/dist/coordination/targetConflict.js.map +1 -0
- package/dist/coordination/trace.d.ts +79 -0
- package/dist/coordination/trace.d.ts.map +1 -0
- package/dist/coordination/trace.js +139 -0
- package/dist/coordination/trace.js.map +1 -0
- package/dist/docs/catalog.d.ts +73 -0
- package/dist/docs/catalog.d.ts.map +1 -0
- package/dist/docs/catalog.js +231 -0
- package/dist/docs/catalog.js.map +1 -0
- package/dist/docs/index.d.ts +11 -0
- package/dist/docs/index.d.ts.map +1 -0
- package/dist/docs/index.js +11 -0
- package/dist/docs/index.js.map +1 -0
- package/dist/durableWrites.d.ts +63 -0
- package/dist/durableWrites.d.ts.map +1 -0
- package/dist/durableWrites.js +72 -0
- package/dist/durableWrites.js.map +1 -0
- package/dist/environment.d.ts +106 -0
- package/dist/environment.d.ts.map +1 -0
- package/dist/environment.js +109 -0
- package/dist/environment.js.map +1 -0
- package/dist/errorCodes.d.ts +411 -0
- package/dist/errorCodes.d.ts.map +1 -0
- package/dist/errorCodes.js +500 -0
- package/dist/errorCodes.js.map +1 -0
- package/dist/errors.d.ts +429 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +687 -0
- package/dist/errors.js.map +1 -0
- package/dist/footprint.d.ts +112 -0
- package/dist/footprint.d.ts.map +1 -0
- package/dist/footprint.js +0 -0
- package/dist/footprint.js.map +1 -0
- package/dist/headlessClient.d.ts +10 -0
- package/dist/headlessClient.d.ts.map +1 -0
- package/dist/headlessClient.js +114 -0
- package/dist/headlessClient.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/keys/index.d.ts +88 -0
- package/dist/keys/index.d.ts.map +1 -0
- package/dist/keys/index.js +208 -0
- package/dist/keys/index.js.map +1 -0
- package/dist/log/syncDeltaRow.d.ts +159 -0
- package/dist/log/syncDeltaRow.d.ts.map +1 -0
- package/dist/log/syncDeltaRow.js +96 -0
- package/dist/log/syncDeltaRow.js.map +1 -0
- package/dist/logger.d.ts +17 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +8 -0
- package/dist/logger.js.map +1 -0
- package/dist/observability.d.ts +54 -0
- package/dist/observability.d.ts.map +1 -0
- package/dist/observability.js +20 -0
- package/dist/observability.js.map +1 -0
- package/dist/policy/types.d.ts +218 -0
- package/dist/policy/types.d.ts.map +1 -0
- package/dist/policy/types.js +127 -0
- package/dist/policy/types.js.map +1 -0
- package/dist/resources/functionalUpdate.d.ts +80 -0
- package/dist/resources/functionalUpdate.d.ts.map +1 -0
- package/dist/resources/functionalUpdate.js +88 -0
- package/dist/resources/functionalUpdate.js.map +1 -0
- package/dist/resources/httpResources.d.ts +449 -0
- package/dist/resources/httpResources.d.ts.map +1 -0
- package/dist/resources/httpResources.js +8 -0
- package/dist/resources/httpResources.js.map +1 -0
- package/dist/resources/modelOperations.d.ts +380 -0
- package/dist/resources/modelOperations.d.ts.map +1 -0
- package/dist/resources/modelOperations.js +13 -0
- package/dist/resources/modelOperations.js.map +1 -0
- package/dist/resources/mutationOptions.d.ts +67 -0
- package/dist/resources/mutationOptions.d.ts.map +1 -0
- package/dist/resources/mutationOptions.js +10 -0
- package/dist/resources/mutationOptions.js.map +1 -0
- package/dist/resources/where.d.ts +102 -0
- package/dist/resources/where.d.ts.map +1 -0
- package/dist/resources/where.js +116 -0
- package/dist/resources/where.js.map +1 -0
- package/dist/resources/writeOptionsSchema.d.ts +48 -0
- package/dist/resources/writeOptionsSchema.d.ts.map +1 -0
- package/dist/resources/writeOptionsSchema.js +74 -0
- package/dist/resources/writeOptionsSchema.js.map +1 -0
- package/dist/schema/coordination.d.ts +113 -0
- package/dist/schema/coordination.d.ts.map +1 -0
- package/dist/schema/coordination.js +134 -0
- package/dist/schema/coordination.js.map +1 -0
- package/dist/schema/ddl.d.ts +98 -0
- package/dist/schema/ddl.d.ts.map +1 -0
- package/dist/schema/ddl.js +492 -0
- package/dist/schema/ddl.js.map +1 -0
- package/dist/schema/ddlLock.d.ts +36 -0
- package/dist/schema/ddlLock.d.ts.map +1 -0
- package/dist/schema/ddlLock.js +47 -0
- package/dist/schema/ddlLock.js.map +1 -0
- package/dist/schema/diff.d.ts +226 -0
- package/dist/schema/diff.d.ts.map +1 -0
- package/dist/schema/diff.js +290 -0
- package/dist/schema/diff.js.map +1 -0
- package/dist/schema/field.d.ts +121 -0
- package/dist/schema/field.d.ts.map +1 -0
- package/dist/schema/field.js +266 -0
- package/dist/schema/field.js.map +1 -0
- package/dist/schema/fieldRef.d.ts +58 -0
- package/dist/schema/fieldRef.d.ts.map +1 -0
- package/dist/schema/fieldRef.js +26 -0
- package/dist/schema/fieldRef.js.map +1 -0
- package/dist/schema/generate.d.ts +20 -0
- package/dist/schema/generate.d.ts.map +1 -0
- package/dist/schema/generate.js +87 -0
- package/dist/schema/generate.js.map +1 -0
- package/dist/schema/index.d.ts +43 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +81 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/loadStrategy.d.ts +46 -0
- package/dist/schema/loadStrategy.d.ts.map +1 -0
- package/dist/schema/loadStrategy.js +47 -0
- package/dist/schema/loadStrategy.js.map +1 -0
- package/dist/schema/model.d.ts +380 -0
- package/dist/schema/model.d.ts.map +1 -0
- package/dist/schema/model.js +124 -0
- package/dist/schema/model.js.map +1 -0
- package/dist/schema/openapi.d.ts +59 -0
- package/dist/schema/openapi.d.ts.map +1 -0
- package/dist/schema/openapi.js +508 -0
- package/dist/schema/openapi.js.map +1 -0
- package/dist/schema/queries.d.ts +202 -0
- package/dist/schema/queries.d.ts.map +1 -0
- package/dist/schema/queries.js +144 -0
- package/dist/schema/queries.js.map +1 -0
- package/dist/schema/relation.d.ts +205 -0
- package/dist/schema/relation.d.ts.map +1 -0
- package/dist/schema/relation.js +105 -0
- package/dist/schema/relation.js.map +1 -0
- package/dist/schema/residency.d.ts +30 -0
- package/dist/schema/residency.d.ts.map +1 -0
- package/dist/schema/residency.js +26 -0
- package/dist/schema/residency.js.map +1 -0
- package/dist/schema/roles.d.ts +250 -0
- package/dist/schema/roles.d.ts.map +1 -0
- package/dist/schema/roles.js +231 -0
- package/dist/schema/roles.js.map +1 -0
- package/dist/schema/schema.d.ts +352 -0
- package/dist/schema/schema.d.ts.map +1 -0
- package/dist/schema/schema.js +326 -0
- package/dist/schema/schema.js.map +1 -0
- package/dist/schema/select.d.ts +41 -0
- package/dist/schema/select.d.ts.map +1 -0
- package/dist/schema/select.js +91 -0
- package/dist/schema/select.js.map +1 -0
- package/dist/schema/serialize.d.ts +116 -0
- package/dist/schema/serialize.d.ts.map +1 -0
- package/dist/schema/serialize.js +278 -0
- package/dist/schema/serialize.js.map +1 -0
- package/dist/schema/sugar.d.ts +110 -0
- package/dist/schema/sugar.d.ts.map +1 -0
- package/dist/schema/sugar.js +84 -0
- package/dist/schema/sugar.js.map +1 -0
- package/dist/schema/tenancy.d.ts +140 -0
- package/dist/schema/tenancy.d.ts.map +1 -0
- package/dist/schema/tenancy.js +191 -0
- package/dist/schema/tenancy.js.map +1 -0
- package/dist/server/adapter.d.ts +174 -0
- package/dist/server/adapter.d.ts.map +1 -0
- package/dist/server/adapter.js +19 -0
- package/dist/server/adapter.js.map +1 -0
- package/dist/server/commit.d.ts +108 -0
- package/dist/server/commit.d.ts.map +1 -0
- package/dist/server/commit.js +2 -0
- package/dist/server/commit.js.map +1 -0
- package/dist/server/index.d.ts +15 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +3 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/readConfig.d.ts +81 -0
- package/dist/server/readConfig.d.ts.map +1 -0
- package/dist/server/readConfig.js +9 -0
- package/dist/server/readConfig.js.map +1 -0
- package/dist/server/storageMode.d.ts +24 -0
- package/dist/server/storageMode.d.ts.map +1 -0
- package/dist/server/storageMode.js +18 -0
- package/dist/server/storageMode.js.map +1 -0
- package/dist/source/adapter.d.ts +84 -0
- package/dist/source/adapter.d.ts.map +1 -0
- package/dist/source/adapter.js +25 -0
- package/dist/source/adapter.js.map +1 -0
- package/dist/source/adapters/drizzle.d.ts +49 -0
- package/dist/source/adapters/drizzle.d.ts.map +1 -0
- package/dist/source/adapters/drizzle.js +220 -0
- package/dist/source/adapters/drizzle.js.map +1 -0
- package/dist/source/adapters/kysely.d.ts +43 -0
- package/dist/source/adapters/kysely.d.ts.map +1 -0
- package/dist/source/adapters/kysely.js +206 -0
- package/dist/source/adapters/kysely.js.map +1 -0
- package/dist/source/adapters/kyselyMutationCore.d.ts +77 -0
- package/dist/source/adapters/kyselyMutationCore.d.ts.map +1 -0
- package/dist/source/adapters/kyselyMutationCore.js +126 -0
- package/dist/source/adapters/kyselyMutationCore.js.map +1 -0
- package/dist/source/adapters/memory.d.ts +14 -0
- package/dist/source/adapters/memory.d.ts.map +1 -0
- package/dist/source/adapters/memory.js +131 -0
- package/dist/source/adapters/memory.js.map +1 -0
- package/dist/source/adapters/prisma.d.ts +64 -0
- package/dist/source/adapters/prisma.d.ts.map +1 -0
- package/dist/source/adapters/prisma.js +203 -0
- package/dist/source/adapters/prisma.js.map +1 -0
- package/dist/source/conformance.d.ts +38 -0
- package/dist/source/conformance.d.ts.map +1 -0
- package/dist/source/conformance.js +216 -0
- package/dist/source/conformance.js.map +1 -0
- package/dist/source/connector.d.ts +96 -0
- package/dist/source/connector.d.ts.map +1 -0
- package/dist/source/connector.js +267 -0
- package/dist/source/connector.js.map +1 -0
- package/dist/source/connectorProtocol.d.ts +155 -0
- package/dist/source/connectorProtocol.d.ts.map +1 -0
- package/dist/source/connectorProtocol.js +164 -0
- package/dist/source/connectorProtocol.js.map +1 -0
- package/dist/source/contract.d.ts +196 -0
- package/dist/source/contract.d.ts.map +1 -0
- package/dist/source/contract.js +165 -0
- package/dist/source/contract.js.map +1 -0
- package/dist/source/drizzle.d.ts +2 -0
- package/dist/source/drizzle.d.ts.map +1 -0
- package/dist/source/drizzle.js +2 -0
- package/dist/source/drizzle.js.map +1 -0
- package/dist/source/factory.d.ts +93 -0
- package/dist/source/factory.d.ts.map +1 -0
- package/dist/source/factory.js +287 -0
- package/dist/source/factory.js.map +1 -0
- package/dist/source/idempotency.d.ts +62 -0
- package/dist/source/idempotency.d.ts.map +1 -0
- package/dist/source/idempotency.js +145 -0
- package/dist/source/idempotency.js.map +1 -0
- package/dist/source/index.d.ts +24 -0
- package/dist/source/index.d.ts.map +1 -0
- package/dist/source/index.js +29 -0
- package/dist/source/index.js.map +1 -0
- package/dist/source/kysely.d.ts +3 -0
- package/dist/source/kysely.d.ts.map +1 -0
- package/dist/source/kysely.js +3 -0
- package/dist/source/kysely.js.map +1 -0
- package/dist/source/migrations.d.ts +22 -0
- package/dist/source/migrations.d.ts.map +1 -0
- package/dist/source/migrations.js +104 -0
- package/dist/source/migrations.js.map +1 -0
- package/dist/source/next.d.ts +33 -0
- package/dist/source/next.d.ts.map +1 -0
- package/dist/source/next.js +26 -0
- package/dist/source/next.js.map +1 -0
- package/dist/source/pushQueue.d.ts +135 -0
- package/dist/source/pushQueue.d.ts.map +1 -0
- package/dist/source/pushQueue.js +257 -0
- package/dist/source/pushQueue.js.map +1 -0
- package/dist/source/signing.d.ts +93 -0
- package/dist/source/signing.d.ts.map +1 -0
- package/dist/source/signing.js +163 -0
- package/dist/source/signing.js.map +1 -0
- package/dist/source/types.d.ts +402 -0
- package/dist/source/types.d.ts.map +1 -0
- package/dist/source/types.js +60 -0
- package/dist/source/types.js.map +1 -0
- package/dist/syncLog/contract.d.ts +21 -0
- package/dist/syncLog/contract.d.ts.map +1 -0
- package/dist/syncLog/contract.js +20 -0
- package/dist/syncLog/contract.js.map +1 -0
- package/dist/syncLog/index.d.ts +2 -0
- package/dist/syncLog/index.d.ts.map +1 -0
- package/dist/syncLog/index.js +2 -0
- package/dist/syncLog/index.js.map +1 -0
- package/dist/testing/fixtures/httpResponses.d.ts +74 -0
- package/dist/testing/fixtures/httpResponses.d.ts.map +1 -0
- package/dist/testing/fixtures/httpResponses.js +102 -0
- package/dist/testing/fixtures/httpResponses.js.map +1 -0
- package/dist/transactionLayer.d.ts +110 -0
- package/dist/transactionLayer.d.ts.map +1 -0
- package/dist/transactionLayer.js +25 -0
- package/dist/transactionLayer.js.map +1 -0
- package/dist/transactions/settlement/commitEnvelope.d.ts +144 -0
- package/dist/transactions/settlement/commitEnvelope.d.ts.map +1 -0
- package/dist/transactions/settlement/commitEnvelope.js +162 -0
- package/dist/transactions/settlement/commitEnvelope.js.map +1 -0
- package/dist/transactions/settlement/httpCommitEnvelope.d.ts +54 -0
- package/dist/transactions/settlement/httpCommitEnvelope.d.ts.map +1 -0
- package/dist/transactions/settlement/httpCommitEnvelope.js +208 -0
- package/dist/transactions/settlement/httpCommitEnvelope.js.map +1 -0
- package/dist/transactions/settlement/idempotencyKey.d.ts +11 -0
- package/dist/transactions/settlement/idempotencyKey.d.ts.map +1 -0
- package/dist/transactions/settlement/idempotencyKey.js +10 -0
- package/dist/transactions/settlement/idempotencyKey.js.map +1 -0
- package/dist/transactions/settlement/pendingWrite.d.ts +113 -0
- package/dist/transactions/settlement/pendingWrite.d.ts.map +1 -0
- package/dist/transactions/settlement/pendingWrite.js +21 -0
- package/dist/transactions/settlement/pendingWrite.js.map +1 -0
- package/dist/transport/commitFrames.d.ts +91 -0
- package/dist/transport/commitFrames.d.ts.map +1 -0
- package/dist/transport/commitFrames.js +135 -0
- package/dist/transport/commitFrames.js.map +1 -0
- package/dist/transport/connectionManager.d.ts +216 -0
- package/dist/transport/connectionManager.d.ts.map +1 -0
- package/dist/transport/connectionManager.js +674 -0
- package/dist/transport/connectionManager.js.map +1 -0
- package/dist/transport/credentialLifecycle.d.ts +178 -0
- package/dist/transport/credentialLifecycle.d.ts.map +1 -0
- package/dist/transport/credentialLifecycle.js +324 -0
- package/dist/transport/credentialLifecycle.js.map +1 -0
- package/dist/transport/heartbeat.d.ts +66 -0
- package/dist/transport/heartbeat.d.ts.map +1 -0
- package/dist/transport/heartbeat.js +94 -0
- package/dist/transport/heartbeat.js.map +1 -0
- package/dist/transport/httpClient.d.ts +143 -0
- package/dist/transport/httpClient.d.ts.map +1 -0
- package/dist/transport/httpClient.js +150 -0
- package/dist/transport/httpClient.js.map +1 -0
- package/dist/transport/httpFeed.d.ts +4 -0
- package/dist/transport/httpFeed.d.ts.map +1 -0
- package/dist/transport/httpFeed.js +94 -0
- package/dist/transport/httpFeed.js.map +1 -0
- package/dist/transport/httpOptions.d.ts +34 -0
- package/dist/transport/httpOptions.d.ts.map +1 -0
- package/dist/transport/httpOptions.js +13 -0
- package/dist/transport/httpOptions.js.map +1 -0
- package/dist/transport/httpTransport.d.ts +68 -0
- package/dist/transport/httpTransport.d.ts.map +1 -0
- package/dist/transport/httpTransport.js +1433 -0
- package/dist/transport/httpTransport.js.map +1 -0
- package/dist/transport/networkProbe.d.ts +85 -0
- package/dist/transport/networkProbe.d.ts.map +1 -0
- package/dist/transport/networkProbe.js +208 -0
- package/dist/transport/networkProbe.js.map +1 -0
- package/dist/transport/wsFrameHandlers.d.ts +129 -0
- package/dist/transport/wsFrameHandlers.d.ts.map +1 -0
- package/dist/transport/wsFrameHandlers.js +429 -0
- package/dist/transport/wsFrameHandlers.js.map +1 -0
- package/dist/transport/wsTransport.d.ts +575 -0
- package/dist/transport/wsTransport.d.ts.map +1 -0
- package/dist/transport/wsTransport.js +1024 -0
- package/dist/transport/wsTransport.js.map +1 -0
- package/dist/types/assertExact.d.ts +18 -0
- package/dist/types/assertExact.d.ts.map +1 -0
- package/dist/types/assertExact.js +2 -0
- package/dist/types/assertExact.js.map +1 -0
- package/dist/types/global.d.ts +108 -0
- package/dist/types/global.d.ts.map +1 -0
- package/dist/types/global.js +41 -0
- package/dist/types/global.js.map +1 -0
- package/dist/types/index.d.ts +206 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +57 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/modelData.d.ts +11 -0
- package/dist/types/modelData.d.ts.map +1 -0
- package/dist/types/modelData.js +10 -0
- package/dist/types/modelData.js.map +1 -0
- package/dist/types/participant.d.ts +21 -0
- package/dist/types/participant.d.ts.map +1 -0
- package/dist/types/participant.js +11 -0
- package/dist/types/participant.js.map +1 -0
- package/dist/types/streams.d.ts +545 -0
- package/dist/types/streams.d.ts.map +1 -0
- package/dist/types/streams.js +12 -0
- package/dist/types/streams.js.map +1 -0
- package/dist/utils/asyncIterator.d.ts +35 -0
- package/dist/utils/asyncIterator.d.ts.map +1 -0
- package/dist/utils/asyncIterator.js +136 -0
- package/dist/utils/asyncIterator.js.map +1 -0
- package/dist/utils/duration.d.ts +51 -0
- package/dist/utils/duration.d.ts.map +1 -0
- package/dist/utils/duration.js +78 -0
- package/dist/utils/duration.js.map +1 -0
- package/dist/utils/json.d.ts +58 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +277 -0
- package/dist/utils/json.js.map +1 -0
- package/dist/webhooks/events.d.ts +44 -0
- package/dist/webhooks/events.d.ts.map +1 -0
- package/dist/webhooks/events.js +43 -0
- package/dist/webhooks/events.js.map +1 -0
- package/dist/webhooks/index.d.ts +9 -0
- package/dist/webhooks/index.d.ts.map +1 -0
- package/dist/webhooks/index.js +9 -0
- package/dist/webhooks/index.js.map +1 -0
- package/dist/wire/accountResponses.d.ts +463 -0
- package/dist/wire/accountResponses.d.ts.map +1 -0
- package/dist/wire/accountResponses.js +294 -0
- package/dist/wire/accountResponses.js.map +1 -0
- package/dist/wire/auth.d.ts +57 -0
- package/dist/wire/auth.d.ts.map +1 -0
- package/dist/wire/auth.js +71 -0
- package/dist/wire/auth.js.map +1 -0
- package/dist/wire/bootstrapReason.d.ts +10 -0
- package/dist/wire/bootstrapReason.d.ts.map +1 -0
- package/dist/wire/bootstrapReason.js +9 -0
- package/dist/wire/bootstrapReason.js.map +1 -0
- package/dist/wire/claimEvent.d.ts +70 -0
- package/dist/wire/claimEvent.d.ts.map +1 -0
- package/dist/wire/claimEvent.js +74 -0
- package/dist/wire/claimEvent.js.map +1 -0
- package/dist/wire/claims.d.ts +475 -0
- package/dist/wire/claims.d.ts.map +1 -0
- package/dist/wire/claims.js +326 -0
- package/dist/wire/claims.js.map +1 -0
- package/dist/wire/commit.d.ts +604 -0
- package/dist/wire/commit.d.ts.map +1 -0
- package/dist/wire/commit.js +322 -0
- package/dist/wire/commit.js.map +1 -0
- package/dist/wire/delta.d.ts +251 -0
- package/dist/wire/delta.d.ts.map +1 -0
- package/dist/wire/delta.js +148 -0
- package/dist/wire/delta.js.map +1 -0
- package/dist/wire/errorEnvelope.d.ts +73 -0
- package/dist/wire/errorEnvelope.d.ts.map +1 -0
- package/dist/wire/errorEnvelope.js +124 -0
- package/dist/wire/errorEnvelope.js.map +1 -0
- package/dist/wire/feedCursor.d.ts +61 -0
- package/dist/wire/feedCursor.d.ts.map +1 -0
- package/dist/wire/feedCursor.js +83 -0
- package/dist/wire/feedCursor.js.map +1 -0
- package/dist/wire/feedEvent.d.ts +264 -0
- package/dist/wire/feedEvent.d.ts.map +1 -0
- package/dist/wire/feedEvent.js +66 -0
- package/dist/wire/feedEvent.js.map +1 -0
- package/dist/wire/frames.d.ts +195 -0
- package/dist/wire/frames.d.ts.map +1 -0
- package/dist/wire/frames.js +51 -0
- package/dist/wire/frames.js.map +1 -0
- package/dist/wire/inboundFrames.d.ts +490 -0
- package/dist/wire/inboundFrames.d.ts.map +1 -0
- package/dist/wire/inboundFrames.js +117 -0
- package/dist/wire/inboundFrames.js.map +1 -0
- package/dist/wire/index.d.ts +55 -0
- package/dist/wire/index.d.ts.map +1 -0
- package/dist/wire/index.js +84 -0
- package/dist/wire/index.js.map +1 -0
- package/dist/wire/listEnvelope.d.ts +38 -0
- package/dist/wire/listEnvelope.d.ts.map +1 -0
- package/dist/wire/listEnvelope.js +43 -0
- package/dist/wire/listEnvelope.js.map +1 -0
- package/dist/wire/modelMutations.d.ts +32 -0
- package/dist/wire/modelMutations.d.ts.map +1 -0
- package/dist/wire/modelMutations.js +53 -0
- package/dist/wire/modelMutations.js.map +1 -0
- package/dist/wire/modelResponses.d.ts +79 -0
- package/dist/wire/modelResponses.d.ts.map +1 -0
- package/dist/wire/modelResponses.js +44 -0
- package/dist/wire/modelResponses.js.map +1 -0
- package/dist/wire/modelShape.d.ts +79 -0
- package/dist/wire/modelShape.d.ts.map +1 -0
- package/dist/wire/modelShape.js +75 -0
- package/dist/wire/modelShape.js.map +1 -0
- package/dist/wire/protocol.d.ts +39 -0
- package/dist/wire/protocol.d.ts.map +1 -0
- package/dist/wire/protocol.js +39 -0
- package/dist/wire/protocol.js.map +1 -0
- package/dist/wire/protocolVersion.d.ts +74 -0
- package/dist/wire/protocolVersion.d.ts.map +1 -0
- package/dist/wire/protocolVersion.js +84 -0
- package/dist/wire/protocolVersion.js.map +1 -0
- package/package.json +187 -0
- package/src/ablo.ts +139 -0
- package/src/ai-sdk/coordinatedTool.ts +214 -0
- package/src/ai-sdk/index.ts +7 -0
- package/src/auth/apiKey.ts +540 -0
- package/src/auth/bootstrapScope.ts +15 -0
- package/src/auth/browserCredentialSafety.ts +48 -0
- package/src/auth/capability.ts +326 -0
- package/src/auth/capabilityLifecycle.ts +174 -0
- package/src/auth/credentialEndpoint.ts +79 -0
- package/src/auth/credentialEndpointProtocol.ts +51 -0
- package/src/auth/credentialKind.ts +20 -0
- package/src/auth/credentialPolicy.ts +244 -0
- package/src/auth/credentialResult.ts +23 -0
- package/src/auth/credentialSource.ts +99 -0
- package/src/auth/hostedEndpoints.ts +24 -0
- package/src/auth/identity.ts +330 -0
- package/src/auth/index.ts +592 -0
- package/src/auth/schemas.ts +94 -0
- package/src/auth/sessionMint.ts +126 -0
- package/src/auth/token.ts +4 -0
- package/src/batching/index.ts +200 -0
- package/src/coordination/awaitClaimGrant.ts +243 -0
- package/src/coordination/claimHeartbeatLoop.ts +165 -0
- package/src/coordination/claimMeta.ts +56 -0
- package/src/coordination/events.ts +86 -0
- package/src/coordination/index.ts +181 -0
- package/src/coordination/locator.ts +200 -0
- package/src/coordination/schema.ts +1346 -0
- package/src/coordination/targetConflict.ts +85 -0
- package/src/coordination/trace.ts +173 -0
- package/src/docs/catalog.ts +274 -0
- package/src/docs/index.ts +18 -0
- package/src/durableWrites.ts +134 -0
- package/src/environment.ts +132 -0
- package/src/errorCodes.ts +1591 -0
- package/src/errors.ts +918 -0
- package/src/footprint.ts +0 -0
- package/src/headlessClient.ts +161 -0
- package/src/index.ts +52 -0
- package/src/keys/index.ts +254 -0
- package/src/log/syncDeltaRow.ts +119 -0
- package/src/logger.ts +22 -0
- package/src/observability.ts +85 -0
- package/src/policy/types.ts +292 -0
- package/src/resources/functionalUpdate.ts +151 -0
- package/src/resources/httpResources.ts +520 -0
- package/src/resources/modelOperations.ts +444 -0
- package/src/resources/mutationOptions.ts +66 -0
- package/src/resources/where.ts +160 -0
- package/src/resources/writeOptionsSchema.ts +91 -0
- package/src/schema/coordination.ts +161 -0
- package/src/schema/ddl.ts +593 -0
- package/src/schema/ddlLock.ts +53 -0
- package/src/schema/diff.ts +489 -0
- package/src/schema/field.ts +321 -0
- package/src/schema/fieldRef.ts +88 -0
- package/src/schema/generate.ts +95 -0
- package/src/schema/index.ts +278 -0
- package/src/schema/loadStrategy.ts +52 -0
- package/src/schema/model.ts +476 -0
- package/src/schema/openapi.ts +658 -0
- package/src/schema/queries.ts +273 -0
- package/src/schema/relation.ts +291 -0
- package/src/schema/residency.ts +30 -0
- package/src/schema/roles.ts +325 -0
- package/src/schema/schema.ts +825 -0
- package/src/schema/select.ts +115 -0
- package/src/schema/serialize.ts +373 -0
- package/src/schema/sugar.ts +194 -0
- package/src/schema/tenancy.ts +221 -0
- package/src/server/adapter.ts +203 -0
- package/src/server/commit.ts +109 -0
- package/src/server/index.ts +26 -0
- package/src/server/readConfig.ts +82 -0
- package/src/server/storageMode.ts +20 -0
- package/src/source/adapter.ts +85 -0
- package/src/source/adapters/drizzle.ts +291 -0
- package/src/source/adapters/kysely.ts +346 -0
- package/src/source/adapters/kyselyMutationCore.ts +220 -0
- package/src/source/adapters/memory.ts +154 -0
- package/src/source/adapters/prisma.ts +282 -0
- package/src/source/conformance.ts +287 -0
- package/src/source/connector.ts +394 -0
- package/src/source/connectorProtocol.ts +189 -0
- package/src/source/contract.ts +221 -0
- package/src/source/drizzle.ts +1 -0
- package/src/source/factory.ts +444 -0
- package/src/source/idempotency.ts +189 -0
- package/src/source/index.ts +182 -0
- package/src/source/kysely.ts +2 -0
- package/src/source/migrations.ts +109 -0
- package/src/source/next.ts +38 -0
- package/src/source/pushQueue.ts +368 -0
- package/src/source/signing.ts +279 -0
- package/src/source/types.ts +502 -0
- package/src/syncLog/contract.ts +32 -0
- package/src/syncLog/index.ts +1 -0
- package/src/testing/fixtures/httpResponses.ts +155 -0
- package/src/transactionLayer.ts +122 -0
- package/src/transactions/settlement/commitEnvelope.ts +192 -0
- package/src/transactions/settlement/httpCommitEnvelope.ts +250 -0
- package/src/transactions/settlement/idempotencyKey.ts +11 -0
- package/src/transactions/settlement/pendingWrite.ts +24 -0
- package/src/transport/commitFrames.ts +225 -0
- package/src/transport/connectionManager.ts +856 -0
- package/src/transport/credentialLifecycle.ts +389 -0
- package/src/transport/heartbeat.ts +118 -0
- package/src/transport/httpClient.ts +354 -0
- package/src/transport/httpFeed.ts +111 -0
- package/src/transport/httpOptions.ts +41 -0
- package/src/transport/httpTransport.ts +1976 -0
- package/src/transport/networkProbe.ts +249 -0
- package/src/transport/wsFrameHandlers.ts +619 -0
- package/src/transport/wsTransport.ts +1491 -0
- package/src/types/assertExact.ts +17 -0
- package/src/types/global.ts +123 -0
- package/src/types/index.ts +270 -0
- package/src/types/modelData.ts +11 -0
- package/src/types/participant.ts +22 -0
- package/src/types/streams.ts +702 -0
- package/src/utils/asyncIterator.ts +141 -0
- package/src/utils/duration.ts +88 -0
- package/src/utils/json.ts +281 -0
- package/src/webhooks/events.ts +96 -0
- package/src/webhooks/index.ts +12 -0
- package/src/wire/accountResponses.ts +328 -0
- package/src/wire/auth.ts +86 -0
- package/src/wire/bootstrapReason.ts +10 -0
- package/src/wire/claimEvent.ts +85 -0
- package/src/wire/claims.ts +370 -0
- package/src/wire/commit.ts +379 -0
- package/src/wire/delta.ts +173 -0
- package/src/wire/errorEnvelope.ts +133 -0
- package/src/wire/feedCursor.ts +91 -0
- package/src/wire/feedEvent.ts +74 -0
- package/src/wire/frames.ts +77 -0
- package/src/wire/inboundFrames.ts +182 -0
- package/src/wire/index.ts +328 -0
- package/src/wire/listEnvelope.ts +51 -0
- package/src/wire/modelMutations.ts +55 -0
- package/src/wire/modelResponses.ts +48 -0
- package/src/wire/modelShape.ts +83 -0
- package/src/wire/protocol.ts +39 -0
- package/src/wire/protocolVersion.ts +97 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpTransport.js","sourceRoot":"","sources":["../../src/transport/httpTransport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detects real network and session connectivity for the sync engine. It exists
|
|
3
|
+
* because `navigator.onLine` is unreliable: it reports true whenever the device
|
|
4
|
+
* has a local network connection, even with no route to the internet, and after
|
|
5
|
+
* sleep/wake it can report true before Wi-Fi or DNS are working again.
|
|
6
|
+
*
|
|
7
|
+
* The probe makes one authenticated request to the sync server's
|
|
8
|
+
* `/api/auth/check` endpoint — which runs the same auth middleware as the
|
|
9
|
+
* WebSocket upgrade — and classifies the response into a single
|
|
10
|
+
* {@link ProbeOutcome} through the recovery taxonomy ({@link classifyRecovery}):
|
|
11
|
+
* 204 No Content → `reachable` (credential valid)
|
|
12
|
+
* 401 `apikey_expired` (ephemeral key) → `credential_stale` (re-mint and retry, no sign-out)
|
|
13
|
+
* 401 `session_expired` / bare 401 → `session_expired` (sign out)
|
|
14
|
+
* 401/403 credential-type/config/perm → `auth_blocked` (stop; no loop, no sign-out)
|
|
15
|
+
* network failure / offline → `unreachable`
|
|
16
|
+
*
|
|
17
|
+
* This closes a real gap. The browser's WebSocket API hides the HTTP status of
|
|
18
|
+
* a failed handshake, so a 401 on the upgrade surfaces only as close code 1006.
|
|
19
|
+
* Without this HTTP probe, the client cannot tell an auth failure from a network
|
|
20
|
+
* blip, and loops reconnecting forever instead of sending the user to sign in.
|
|
21
|
+
*
|
|
22
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Navigator/onLine
|
|
23
|
+
*/
|
|
24
|
+
import { z } from 'zod';
|
|
25
|
+
import { type AuthTokenGetter } from '../auth/credentialSource.js';
|
|
26
|
+
import { type Logger } from '../logger.js';
|
|
27
|
+
/**
|
|
28
|
+
* The complete set of probe outcomes. Each value carries both reachability and
|
|
29
|
+
* credential state, so the connection state machine can branch on one exhaustive
|
|
30
|
+
* discriminant instead of piecing the situation together from several booleans.
|
|
31
|
+
* It mirrors the `RecoveryClass` taxonomy at the connectivity layer.
|
|
32
|
+
*/
|
|
33
|
+
export declare const PROBE_OUTCOMES: readonly ["reachable", "unreachable", "session_expired", "credential_stale", "auth_blocked"];
|
|
34
|
+
/** Zod enum derived from {@link PROBE_OUTCOMES}. */
|
|
35
|
+
export declare const probeOutcomeSchema: z.ZodEnum<{
|
|
36
|
+
auth_blocked: "auth_blocked";
|
|
37
|
+
session_expired: "session_expired";
|
|
38
|
+
reachable: "reachable";
|
|
39
|
+
unreachable: "unreachable";
|
|
40
|
+
credential_stale: "credential_stale";
|
|
41
|
+
}>;
|
|
42
|
+
/** A single probe outcome. See {@link PROBE_OUTCOMES}. */
|
|
43
|
+
export type ProbeOutcome = z.infer<typeof probeOutcomeSchema>;
|
|
44
|
+
/** Result of a network probe: a single {@link ProbeOutcome} plus round-trip
|
|
45
|
+
* latency (null when the probe never completed). */
|
|
46
|
+
export declare const probeResultSchema: z.ZodObject<{
|
|
47
|
+
outcome: z.ZodEnum<{
|
|
48
|
+
auth_blocked: "auth_blocked";
|
|
49
|
+
session_expired: "session_expired";
|
|
50
|
+
reachable: "reachable";
|
|
51
|
+
unreachable: "unreachable";
|
|
52
|
+
credential_stale: "credential_stale";
|
|
53
|
+
}>;
|
|
54
|
+
latencyMs: z.ZodNullable<z.ZodNumber>;
|
|
55
|
+
}, z.core.$strip>;
|
|
56
|
+
/** @see {@link probeResultSchema} */
|
|
57
|
+
export type ProbeResult = z.infer<typeof probeResultSchema>;
|
|
58
|
+
export interface NetworkProbeOptions {
|
|
59
|
+
/**
|
|
60
|
+
* Sync-server base URL (HTTP or WS scheme accepted). If omitted, the probe
|
|
61
|
+
* targets the canonical hosted endpoint ({@link ABLO_DEFAULT_BASE_URL}) —
|
|
62
|
+
* the same default `Ablo()` resolves.
|
|
63
|
+
*/
|
|
64
|
+
baseUrl?: string;
|
|
65
|
+
/**
|
|
66
|
+
* Optional bearer credential. Browser cookie deployments can omit this;
|
|
67
|
+
* bearer-first deployments must pass the same `ek_`/`rk_` token used by
|
|
68
|
+
* bootstrap and the WebSocket upgrade.
|
|
69
|
+
*/
|
|
70
|
+
getAuthToken?: AuthTokenGetter;
|
|
71
|
+
/** Compatibility fallback for callers with a copied token string. */
|
|
72
|
+
authToken?: string | null;
|
|
73
|
+
/** Where probe outcomes are logged. Defaults to silent. */
|
|
74
|
+
logger?: Logger;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Probes the sync server with a lightweight HEAD request, returning both
|
|
78
|
+
* reachability and session status in a single call so the connection state
|
|
79
|
+
* machine can pick the right transition without guessing.
|
|
80
|
+
*
|
|
81
|
+
* @param input The sync-server base URL (an HTTP or WS scheme is accepted), or
|
|
82
|
+
* an options bag. A bare string is also accepted.
|
|
83
|
+
*/
|
|
84
|
+
export declare function probeNetwork(input?: string | NetworkProbeOptions): Promise<ProbeResult>;
|
|
85
|
+
//# sourceMappingURL=networkProbe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"networkProbe.d.ts","sourceRoot":"","sources":["../../src/transport/networkProbe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEpF,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,8FAcjB,CAAC;AAEX,oDAAoD;AACpD,eAAO,MAAM,kBAAkB;;;;;;EAAyB,CAAC;AAEzD,0DAA0D;AAC1D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;qDACqD;AACrD,eAAO,MAAM,iBAAiB;;;;;;;;;iBAG5B,CAAC;AAEH,qCAAqC;AACrC,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAI5D,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAkBD;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,CAuI7F"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detects real network and session connectivity for the sync engine. It exists
|
|
3
|
+
* because `navigator.onLine` is unreliable: it reports true whenever the device
|
|
4
|
+
* has a local network connection, even with no route to the internet, and after
|
|
5
|
+
* sleep/wake it can report true before Wi-Fi or DNS are working again.
|
|
6
|
+
*
|
|
7
|
+
* The probe makes one authenticated request to the sync server's
|
|
8
|
+
* `/api/auth/check` endpoint — which runs the same auth middleware as the
|
|
9
|
+
* WebSocket upgrade — and classifies the response into a single
|
|
10
|
+
* {@link ProbeOutcome} through the recovery taxonomy ({@link classifyRecovery}):
|
|
11
|
+
* 204 No Content → `reachable` (credential valid)
|
|
12
|
+
* 401 `apikey_expired` (ephemeral key) → `credential_stale` (re-mint and retry, no sign-out)
|
|
13
|
+
* 401 `session_expired` / bare 401 → `session_expired` (sign out)
|
|
14
|
+
* 401/403 credential-type/config/perm → `auth_blocked` (stop; no loop, no sign-out)
|
|
15
|
+
* network failure / offline → `unreachable`
|
|
16
|
+
*
|
|
17
|
+
* This closes a real gap. The browser's WebSocket API hides the HTTP status of
|
|
18
|
+
* a failed handshake, so a 401 on the upgrade surfaces only as close code 1006.
|
|
19
|
+
* Without this HTTP probe, the client cannot tell an auth failure from a network
|
|
20
|
+
* blip, and loops reconnecting forever instead of sending the user to sign in.
|
|
21
|
+
*
|
|
22
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Navigator/onLine
|
|
23
|
+
*/
|
|
24
|
+
import { z } from 'zod';
|
|
25
|
+
import { classifyRecovery } from '../errors.js';
|
|
26
|
+
import { withAuthHeaders } from '../auth/credentialSource.js';
|
|
27
|
+
import { ABLO_DEFAULT_BASE_URL } from '../auth/hostedEndpoints.js';
|
|
28
|
+
import { noopLogger } from '../logger.js';
|
|
29
|
+
/**
|
|
30
|
+
* The complete set of probe outcomes. Each value carries both reachability and
|
|
31
|
+
* credential state, so the connection state machine can branch on one exhaustive
|
|
32
|
+
* discriminant instead of piecing the situation together from several booleans.
|
|
33
|
+
* It mirrors the `RecoveryClass` taxonomy at the connectivity layer.
|
|
34
|
+
*/
|
|
35
|
+
export const PROBE_OUTCOMES = [
|
|
36
|
+
/** Server reachable and the access credential is currently valid. */
|
|
37
|
+
'reachable',
|
|
38
|
+
/** Could not reach the server (offline, DNS, TLS, or timeout). */
|
|
39
|
+
'unreachable',
|
|
40
|
+
/** Reachable, but the long-lived login is gone. Terminal: sign out. */
|
|
41
|
+
'session_expired',
|
|
42
|
+
/** Reachable, but the ephemeral access key (`ek_`/`rk_`) expired. Silently
|
|
43
|
+
* re-mint a fresh key from the still-valid login and retry; not a sign-out. */
|
|
44
|
+
'credential_stale',
|
|
45
|
+
/** Reachable, but the credential's type or configuration was rejected (wrong
|
|
46
|
+
* key kind, untrusted issuer, no organization, or a 403). Stop: neither
|
|
47
|
+
* reconnecting nor re-authenticating helps. Distinct from a sign-out. */
|
|
48
|
+
'auth_blocked',
|
|
49
|
+
];
|
|
50
|
+
/** Zod enum derived from {@link PROBE_OUTCOMES}. */
|
|
51
|
+
export const probeOutcomeSchema = z.enum(PROBE_OUTCOMES);
|
|
52
|
+
/** Result of a network probe: a single {@link ProbeOutcome} plus round-trip
|
|
53
|
+
* latency (null when the probe never completed). */
|
|
54
|
+
export const probeResultSchema = z.object({
|
|
55
|
+
outcome: probeOutcomeSchema,
|
|
56
|
+
latencyMs: z.number().nullable(),
|
|
57
|
+
});
|
|
58
|
+
const PROBE_TIMEOUT_MS = 4000;
|
|
59
|
+
/**
|
|
60
|
+
* Derive the probe URL from a sync-server base URL. Accepts `ws://`,
|
|
61
|
+
* `wss://`, `http://`, `https://`, or a bare host — mirrors the
|
|
62
|
+
* normalisation in `BootstrapFetcher` / `createSyncEngine`.
|
|
63
|
+
*/
|
|
64
|
+
function resolveProbeUrl(baseUrl) {
|
|
65
|
+
// No explicit baseUrl → probe the canonical hosted endpoint, matching the
|
|
66
|
+
// `Ablo()` default.
|
|
67
|
+
const resolved = baseUrl ?? ABLO_DEFAULT_BASE_URL;
|
|
68
|
+
// Normalize ws → http so fetch() accepts the URL. Strip any trailing slash
|
|
69
|
+
// so we don't produce `//api/auth/check`.
|
|
70
|
+
const httpBase = resolved.replace(/^ws/, 'http').replace(/\/+$/, '');
|
|
71
|
+
return `${httpBase}/api/auth/check`;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Probes the sync server with a lightweight HEAD request, returning both
|
|
75
|
+
* reachability and session status in a single call so the connection state
|
|
76
|
+
* machine can pick the right transition without guessing.
|
|
77
|
+
*
|
|
78
|
+
* @param input The sync-server base URL (an HTTP or WS scheme is accepted), or
|
|
79
|
+
* an options bag. A bare string is also accepted.
|
|
80
|
+
*/
|
|
81
|
+
export async function probeNetwork(input) {
|
|
82
|
+
const baseUrl = typeof input === 'string' ? input : input?.baseUrl;
|
|
83
|
+
const getAuthToken = typeof input === 'string' ? undefined : input?.getAuthToken;
|
|
84
|
+
const authToken = typeof input === 'string' ? undefined : input?.authToken;
|
|
85
|
+
const logger = (typeof input === 'string' ? undefined : input?.logger) ?? noopLogger;
|
|
86
|
+
const url = resolveProbeUrl(baseUrl);
|
|
87
|
+
// Fast-fail: if navigator.onLine is false, skip the probe entirely. This is
|
|
88
|
+
// the one case where navigator.onLine is reliable (MDN: "false means
|
|
89
|
+
// definitely offline"). Use `=== false` rather than `!onLine` because Node
|
|
90
|
+
// 22+ exposes `navigator` with `onLine === undefined`, and `!undefined` is
|
|
91
|
+
// true, which would short-circuit the probe server-side.
|
|
92
|
+
if (typeof navigator !== 'undefined' && navigator.onLine === false) {
|
|
93
|
+
return { outcome: 'unreachable', latencyMs: null };
|
|
94
|
+
}
|
|
95
|
+
const controller = new AbortController();
|
|
96
|
+
const timeout = setTimeout(() => { controller.abort(); }, PROBE_TIMEOUT_MS);
|
|
97
|
+
const start = performance.now();
|
|
98
|
+
try {
|
|
99
|
+
const headers = withAuthHeaders(getAuthToken, { 'Cache-Control': 'no-cache' }, authToken);
|
|
100
|
+
const response = await fetch(url, {
|
|
101
|
+
method: 'HEAD',
|
|
102
|
+
signal: controller.signal,
|
|
103
|
+
// Cache-bust to avoid stale responses
|
|
104
|
+
headers,
|
|
105
|
+
});
|
|
106
|
+
const latencyMs = Math.round(performance.now() - start);
|
|
107
|
+
// The probe is a HEAD request (no body), but the server sets
|
|
108
|
+
// `X-Auth-Failure: <code>` on every auth rejection. Route the code through
|
|
109
|
+
// the recovery taxonomy so each failure mode gets its correct outcome. That
|
|
110
|
+
// distinction is the whole point: an expired ephemeral key
|
|
111
|
+
// (`access_credential_expiry`) must re-mint, not sign the user out the way a
|
|
112
|
+
// genuine login expiry (`session_expiry`) does, and not wedge the way a
|
|
113
|
+
// credential type or configuration rejection (`auth_blocked`) does.
|
|
114
|
+
const authFailure = response.headers.get('x-auth-failure');
|
|
115
|
+
if (authFailure) {
|
|
116
|
+
const recovery = classifyRecovery(authFailure);
|
|
117
|
+
switch (recovery) {
|
|
118
|
+
case 'session_expiry':
|
|
119
|
+
logger.info('[NetworkProbe] Server reachable, login expired', {
|
|
120
|
+
status: response.status,
|
|
121
|
+
code: authFailure,
|
|
122
|
+
latencyMs,
|
|
123
|
+
});
|
|
124
|
+
return { outcome: 'session_expired', latencyMs };
|
|
125
|
+
case 'access_credential_expiry':
|
|
126
|
+
logger.info('[NetworkProbe] Server reachable, access key stale — will re-mint', {
|
|
127
|
+
status: response.status,
|
|
128
|
+
code: authFailure,
|
|
129
|
+
latencyMs,
|
|
130
|
+
});
|
|
131
|
+
return { outcome: 'credential_stale', latencyMs };
|
|
132
|
+
case 'auth_blocked':
|
|
133
|
+
case 'permission':
|
|
134
|
+
case 'none':
|
|
135
|
+
// A non-expiry auth rejection — wrong credential type or config, a
|
|
136
|
+
// 403, or an auth-tagged code this SDK does not recognise.
|
|
137
|
+
// Re-authenticating re-mints the same rejected credential and
|
|
138
|
+
// retrying will not help, so stop rather than reconnect-loop or sign
|
|
139
|
+
// the user out.
|
|
140
|
+
logger.debug('[NetworkProbe] Reachable but auth-blocked (non-retryable, non-expiry)', {
|
|
141
|
+
status: response.status,
|
|
142
|
+
code: authFailure,
|
|
143
|
+
recovery,
|
|
144
|
+
latencyMs,
|
|
145
|
+
});
|
|
146
|
+
return { outcome: 'auth_blocked', latencyMs };
|
|
147
|
+
case 'transient':
|
|
148
|
+
// Retryable auth-tagged response — connectivity is proven; fall
|
|
149
|
+
// through to `reachable` and let the normal retry path handle it.
|
|
150
|
+
break;
|
|
151
|
+
default: {
|
|
152
|
+
const _exhaustive = recovery;
|
|
153
|
+
void _exhaustive;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
else if (response.status === 401) {
|
|
158
|
+
// Bare 401 with no readable structured code. This is ambiguous and must
|
|
159
|
+
// not sign the user out on its own — two common causes are both
|
|
160
|
+
// recoverable, and only one is a real logout:
|
|
161
|
+
// 1. The server did send `X-Auth-Failure: apikey_expired`, but it is a
|
|
162
|
+
// custom header on a cross-origin response the server did not list in
|
|
163
|
+
// `Access-Control-Expose-Headers`, so the browser stripped it to
|
|
164
|
+
// null. The access key just needs a re-mint.
|
|
165
|
+
// 2. A genuinely expired access key on a non-Ablo proxy or cookie path.
|
|
166
|
+
// So route to `credential_stale`: the state machine attempts a re-mint,
|
|
167
|
+
// and the only way to actually sign out is that re-mint resolving `null`
|
|
168
|
+
// (the login is truly gone). If no refresher is wired, the bounded attempt
|
|
169
|
+
// counter falls through to `auth_blocked` (stop) — still never a spurious
|
|
170
|
+
// logout. The invariant holds: null is the only terminal path, never a
|
|
171
|
+
// bare 401.
|
|
172
|
+
logger.info('[NetworkProbe] Server reachable, bare 401 — re-mint (not sign-out)', {
|
|
173
|
+
latencyMs,
|
|
174
|
+
});
|
|
175
|
+
return { outcome: 'credential_stale', latencyMs };
|
|
176
|
+
}
|
|
177
|
+
// 2xx (including 204) means reachable + credential valid.
|
|
178
|
+
// 3xx/4xx (non-auth) still prove connectivity even though the probe
|
|
179
|
+
// expected 204; log a warning so misconfigurations surface instead of
|
|
180
|
+
// silently passing.
|
|
181
|
+
if (response.status < 200 || response.status >= 300) {
|
|
182
|
+
logger.debug('[NetworkProbe] Unexpected probe response', {
|
|
183
|
+
status: response.status,
|
|
184
|
+
url,
|
|
185
|
+
latencyMs,
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
logger.debug('[NetworkProbe] Server reachable, credential valid', {
|
|
190
|
+
status: response.status,
|
|
191
|
+
latencyMs,
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
return { outcome: 'reachable', latencyMs };
|
|
195
|
+
}
|
|
196
|
+
catch (error) {
|
|
197
|
+
clearTimeout(timeout);
|
|
198
|
+
const isAbort = error instanceof DOMException && error.name === 'AbortError';
|
|
199
|
+
logger.info('[NetworkProbe] Probe failed', {
|
|
200
|
+
reason: isAbort ? 'timeout' : error.message,
|
|
201
|
+
});
|
|
202
|
+
return { outcome: 'unreachable', latencyMs: null };
|
|
203
|
+
}
|
|
204
|
+
finally {
|
|
205
|
+
clearTimeout(timeout);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=networkProbe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"networkProbe.js","sourceRoot":"","sources":["../../src/transport/networkProbe.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Routes each inbound frame from the sync WebSocket to the handler for its
|
|
3
|
+
* type. Handlers work against a minimal {@link WsSession} interface — only
|
|
4
|
+
* the members they actually touch, rather than the transport object itself,
|
|
5
|
+
* which keeps this module free of an import cycle. Reading a message off the
|
|
6
|
+
* socket, parsing its JSON, and tracking heartbeats all happen before this
|
|
7
|
+
* point; every parsed frame then passes through {@link dispatchWsFrame}.
|
|
8
|
+
*/
|
|
9
|
+
import { type WsInboundEnvelope } from '../wire/inboundFrames.js';
|
|
10
|
+
import { type CommitAck } from './commitFrames.js';
|
|
11
|
+
import type { Logger } from '../logger.js';
|
|
12
|
+
import type { SocketObservability } from '../observability.js';
|
|
13
|
+
/**
|
|
14
|
+
* In-flight `commit` request record, keyed by clientTxId in the session.
|
|
15
|
+
* Resolved when a matching `mutation_result` frame arrives from the
|
|
16
|
+
* server, or rejected on timeout / disconnect.
|
|
17
|
+
*/
|
|
18
|
+
export interface PendingCommit {
|
|
19
|
+
resolve: (value: CommitAck) => void;
|
|
20
|
+
reject: (err: Error) => void;
|
|
21
|
+
timeout: ReturnType<typeof setTimeout>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* In-flight `claim` request record, keyed by claimId. Resolved when the
|
|
25
|
+
* matching `claim_ack` arrives, or rejected on timeout/disconnect.
|
|
26
|
+
*/
|
|
27
|
+
export interface PendingClaim {
|
|
28
|
+
resolve: (value: {
|
|
29
|
+
syncGroups: string[];
|
|
30
|
+
ttlSeconds?: number;
|
|
31
|
+
}) => void;
|
|
32
|
+
reject: (err: Error) => void;
|
|
33
|
+
timeout: ReturnType<typeof setTimeout>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* An in-flight `update_subscription` request awaiting its
|
|
37
|
+
* `subscription_ack`. The wire carries no correlation id, so requests are
|
|
38
|
+
* matched to their acknowledgements in first-in, first-out order, the same
|
|
39
|
+
* order the server applies them.
|
|
40
|
+
*/
|
|
41
|
+
export interface PendingSubscription {
|
|
42
|
+
resolve: (value: {
|
|
43
|
+
syncGroups: string[];
|
|
44
|
+
}) => void;
|
|
45
|
+
reject: (err: Error) => void;
|
|
46
|
+
timeout: ReturnType<typeof setTimeout>;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* A parsed inbound wire frame — the envelope only, with its payload still
|
|
50
|
+
* untrusted. Inferred from {@link wsInboundEnvelopeSchema} rather than written
|
|
51
|
+
* out, so the type a handler sees and the check the socket runs are the same
|
|
52
|
+
* statement. The open key set is what carries the oldest delta form, which puts
|
|
53
|
+
* a delta's own fields (`actionType`, `modelName`) at the top level instead of
|
|
54
|
+
* under `payload`.
|
|
55
|
+
*/
|
|
56
|
+
export type WsInboundFrame = WsInboundEnvelope;
|
|
57
|
+
/** Narrow arbitrary wire data to a plain string-keyed record. */
|
|
58
|
+
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
59
|
+
/**
|
|
60
|
+
* Read the envelope off an inbound message, or `null` when it is not one —
|
|
61
|
+
* anything that is not an object, or whose `type` is not a string. The payload
|
|
62
|
+
* is not checked here; that belongs to the frame's own schema, applied at
|
|
63
|
+
* dispatch.
|
|
64
|
+
*/
|
|
65
|
+
export declare function readWsInboundFrame(value: unknown): WsInboundFrame | null;
|
|
66
|
+
/**
|
|
67
|
+
* The subset of the sync WebSocket that the frame handlers need. The
|
|
68
|
+
* transport builds a single object exposing these members over its own
|
|
69
|
+
* private state. Handlers read the fields live rather than capturing them,
|
|
70
|
+
* so resetting a field elsewhere — such as clearing pending subscriptions
|
|
71
|
+
* on close — never leaves a handler holding a stale value.
|
|
72
|
+
*/
|
|
73
|
+
export interface WsSession {
|
|
74
|
+
/** EventEmitter surface — handlers emit the typed transport events. */
|
|
75
|
+
emit(event: string, ...args: unknown[]): boolean;
|
|
76
|
+
/** Where the handlers log. The transport passes its own port. */
|
|
77
|
+
logger: Logger;
|
|
78
|
+
/** Where coordination outcomes and lifecycle breadcrumbs are reported. */
|
|
79
|
+
observability: SocketObservability;
|
|
80
|
+
/** In-flight commit acks keyed by clientTxId. */
|
|
81
|
+
pendingMutations: Map<string, PendingCommit>;
|
|
82
|
+
/** In-flight claim acks keyed by claimId. */
|
|
83
|
+
pendingClaims: Map<string, PendingClaim>;
|
|
84
|
+
/** Removes and returns the oldest in-flight `update_subscription` request. */
|
|
85
|
+
shiftPendingSubscription(): PendingSubscription | undefined;
|
|
86
|
+
/** Connection options subset the handlers write back (acked sync groups). */
|
|
87
|
+
options: {
|
|
88
|
+
syncGroups: string[];
|
|
89
|
+
};
|
|
90
|
+
/** Registered collaboration event keys (colon format). */
|
|
91
|
+
collaborationEventTypes: ReadonlySet<string>;
|
|
92
|
+
/**
|
|
93
|
+
* Processes one inbound delta. The argument is untrusted wire data; the
|
|
94
|
+
* transport validates it against the canonical delta schema and drops
|
|
95
|
+
* anything malformed, so handlers here never cast.
|
|
96
|
+
*/
|
|
97
|
+
handleDelta(delta: unknown): void;
|
|
98
|
+
handleSyncResponse(payload: unknown): void;
|
|
99
|
+
handleBootstrapResponse(payload: unknown): void;
|
|
100
|
+
handlePresenceUpdate(message: {
|
|
101
|
+
payload?: unknown;
|
|
102
|
+
[k: string]: unknown;
|
|
103
|
+
}): void;
|
|
104
|
+
}
|
|
105
|
+
export type WsFrameHandler = (session: WsSession, message: WsInboundFrame) => void;
|
|
106
|
+
/**
|
|
107
|
+
* Maps each frame type to its handler. Every named server frame this
|
|
108
|
+
* package understands is dispatched from this table; anything else falls
|
|
109
|
+
* through to the collaboration-event and unknown-type path in
|
|
110
|
+
* {@link dispatchWsFrame}.
|
|
111
|
+
*/
|
|
112
|
+
export declare const wsFrameHandlers: Record<string, WsFrameHandler>;
|
|
113
|
+
/**
|
|
114
|
+
* Routes one inbound frame to its handler, validating the payload first.
|
|
115
|
+
*
|
|
116
|
+
* A frame the protocol declares with a payload schema is parsed here, so its
|
|
117
|
+
* handler works on a proven shape. A frame the protocol does not declare is
|
|
118
|
+
* rejected: the server and this package ship together, so an unrecognised type
|
|
119
|
+
* means the two have drifted, and a change nobody validated should not reach a
|
|
120
|
+
* local store. The one exception is an application's own collaboration events,
|
|
121
|
+
* which the consumer registers at construction and the protocol knows nothing
|
|
122
|
+
* about.
|
|
123
|
+
*
|
|
124
|
+
* Throwing is the reporting channel. The transport's message loop catches and
|
|
125
|
+
* reports through `captureWebSocketError`, so a bad frame surfaces as a
|
|
126
|
+
* captured error and the connection survives.
|
|
127
|
+
*/
|
|
128
|
+
export declare function dispatchWsFrame(session: WsSession, message: WsInboundFrame): void;
|
|
129
|
+
//# sourceMappingURL=wsFrameHandlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wsFrameHandlers.d.ts","sourceRoot":"","sources":["../../src/transport/wsFrameHandlers.ts"],"names":[],"mappings":"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"}
|