@abloatai/transaction 0.59.0 → 0.59.2
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/dist/auth/capability.d.ts +15 -15
- package/dist/auth/capabilityLifecycle.d.ts +2 -2
- package/dist/auth/credentialEndpoint.js.map +1 -1
- package/dist/auth/credentialSource.js.map +1 -1
- package/dist/auth/identity.js.map +1 -1
- package/dist/auth/schemas.d.ts +5 -5
- package/dist/auth/sessionIssuanceProtocol.d.ts +8 -8
- package/dist/auth/sessionIssuanceProtocol.d.ts.map +1 -1
- package/dist/branches.d.ts +38 -38
- package/dist/claims/contract.d.ts +27 -27
- package/dist/claims/eventContract.d.ts +18 -18
- package/dist/claims/routes.d.ts +9 -9
- package/dist/claims/routes.d.ts.map +1 -1
- package/dist/claims/trace.d.ts.map +1 -1
- package/dist/claims/trace.js.map +1 -1
- package/dist/client/ablo.d.ts +6 -5
- package/dist/client/ablo.d.ts.map +1 -1
- package/dist/client/ablo.js +0 -8
- package/dist/client/ablo.js.map +1 -1
- package/dist/client/resources/httpResources.js.map +1 -1
- package/dist/client/resources/modelOperations.d.ts +6 -6
- package/dist/client/resources/modelOperations.d.ts.map +1 -1
- package/dist/client/resources/where.d.ts +12 -12
- package/dist/client/surface.d.ts +2 -2
- package/dist/client/surface.d.ts.map +1 -1
- package/dist/client/surface.js +7 -0
- package/dist/client/surface.js.map +1 -1
- package/dist/commit/confirmation/commitEnvelope.d.ts +7 -7
- package/dist/commit/confirmation/httpCommitEnvelope.d.ts +1 -1
- package/dist/commit/confirmation/pendingWrite.d.ts +5 -5
- package/dist/commit/contract.d.ts +249 -249
- package/dist/commit/contract.d.ts.map +1 -1
- package/dist/commit/recordRuntime.d.ts +3 -2
- package/dist/commit/recordRuntime.d.ts.map +1 -1
- package/dist/commit/recordRuntime.js +1 -0
- package/dist/commit/recordRuntime.js.map +1 -1
- package/dist/coordination/schema.d.ts +54 -54
- package/dist/coordination/schema.js.map +1 -1
- package/dist/environment.d.ts +3 -3
- package/dist/environment.d.ts.map +1 -1
- package/dist/environment.js.map +1 -1
- package/dist/errorCodes.d.ts +6 -5
- package/dist/errorCodes.d.ts.map +1 -1
- package/dist/errorCodes.js +2 -1
- package/dist/errorCodes.js.map +1 -1
- package/dist/errorObservation.d.ts +14 -14
- package/dist/errors.d.ts +11 -11
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +16 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/keys/index.d.ts +1 -1
- package/dist/keys/index.d.ts.map +1 -1
- package/dist/keys/index.js.map +1 -1
- package/dist/observation/contract.d.ts +34 -34
- package/dist/observation/feedContract.d.ts +86 -86
- package/dist/observation/persistence/syncDeltaRow.d.ts +23 -23
- package/dist/observation/persistence/syncDeltaRow.d.ts.map +1 -1
- package/dist/pricing.d.ts +12 -12
- package/dist/schema/audit.js.map +1 -1
- package/dist/schema/ddl.js.map +1 -1
- package/dist/schema/ddlLock.js.map +1 -1
- package/dist/schema/deployment/contracts.d.ts +64 -64
- package/dist/schema/deployment/index.d.ts.map +1 -1
- package/dist/schema/deployment/index.js +52 -3
- package/dist/schema/deployment/index.js.map +1 -1
- package/dist/schema/deployment/reconcile.d.ts +2 -2
- package/dist/schema/deployment/reconcile.d.ts.map +1 -1
- package/dist/schema/deployment/reconcile.js +98 -6
- package/dist/schema/deployment/reconcile.js.map +1 -1
- package/dist/schema/diff.js.map +1 -1
- package/dist/schema/field.d.ts +1 -1
- package/dist/schema/field.d.ts.map +1 -1
- package/dist/schema/loadStrategy.d.ts +2 -2
- package/dist/schema/loadStrategy.d.ts.map +1 -1
- package/dist/schema/openapi.js.map +1 -1
- package/dist/schema/relation.d.ts +3 -3
- package/dist/schema/relation.d.ts.map +1 -1
- package/dist/schema/residency.d.ts +1 -1
- package/dist/schema/roles.d.ts +1 -1
- package/dist/schema/roles.d.ts.map +1 -1
- package/dist/schema/roles.js.map +1 -1
- package/dist/schema/schema.d.ts +1 -1
- package/dist/schema/schema.d.ts.map +1 -1
- package/dist/schema/serialize.js.map +1 -1
- package/dist/schema/sugar.d.ts.map +1 -1
- package/dist/schema/tenancy.d.ts +2 -2
- package/dist/server/storageMode.d.ts +1 -1
- package/dist/source/adapters/adapterProfile.d.ts +6 -6
- package/dist/source/adapters/conformance.js.map +1 -1
- package/dist/source/adapters/contract.d.ts +14 -14
- package/dist/source/adapters/kysely.js.map +1 -1
- package/dist/source/adapters/memory.js.map +1 -1
- package/dist/source/adapters/prisma.js.map +1 -1
- package/dist/source/connector/client.d.ts.map +1 -1
- package/dist/source/connector/client.js.map +1 -1
- package/dist/source/connector/protocol.d.ts.map +1 -1
- package/dist/source/delivery/pushQueue.d.ts.map +1 -1
- package/dist/source/delivery/pushQueue.js.map +1 -1
- package/dist/source/endpoint/signing.d.ts +4 -4
- package/dist/source/endpoint/signing.d.ts.map +1 -1
- package/dist/source/outbox/contract.d.ts +4 -4
- package/dist/testing/fixtures/httpResponses.d.ts +2 -2
- package/dist/testing/fixtures/httpResponses.d.ts.map +1 -1
- package/dist/testing/fixtures/httpResponses.js.map +1 -1
- package/dist/transport/connection/credentialLifecycle.d.ts.map +1 -1
- package/dist/transport/connection/credentialLifecycle.js.map +1 -1
- package/dist/transport/connection/manager.d.ts.map +1 -1
- package/dist/transport/connection/manager.js.map +1 -1
- package/dist/transport/connection/networkProbe.d.ts +18 -5
- package/dist/transport/connection/networkProbe.d.ts.map +1 -1
- package/dist/transport/connection/networkProbe.js.map +1 -1
- package/dist/transport/http/client.d.ts +37 -1
- package/dist/transport/http/client.d.ts.map +1 -1
- package/dist/transport/http/client.js +117 -2
- package/dist/transport/http/client.js.map +1 -1
- package/dist/transport/http/transport.d.ts +21 -0
- package/dist/transport/http/transport.d.ts.map +1 -1
- package/dist/transport/http/transport.js +93 -5
- package/dist/transport/http/transport.js.map +1 -1
- package/dist/transport/websocket/commitFrames.d.ts +4 -3
- package/dist/transport/websocket/commitFrames.d.ts.map +1 -1
- package/dist/transport/websocket/commitFrames.js +1 -0
- package/dist/transport/websocket/commitFrames.js.map +1 -1
- package/dist/transport/websocket/contextSubscription.d.ts +6 -0
- package/dist/transport/websocket/contextSubscription.d.ts.map +1 -0
- package/dist/transport/websocket/contextSubscription.js +45 -0
- package/dist/transport/websocket/contextSubscription.js.map +1 -0
- package/dist/transport/websocket/heartbeat.d.ts.map +1 -1
- package/dist/transport/websocket/heartbeat.js.map +1 -1
- package/dist/transport/websocket/session.d.ts +4 -0
- package/dist/transport/websocket/session.d.ts.map +1 -0
- package/dist/transport/websocket/session.js +385 -0
- package/dist/transport/websocket/session.js.map +1 -0
- package/dist/transport/websocket/sessionContract.d.ts +89 -0
- package/dist/transport/websocket/sessionContract.d.ts.map +1 -0
- package/dist/transport/websocket/sessionContract.js +2 -0
- package/dist/transport/websocket/sessionContract.js.map +1 -0
- package/dist/transport/websocket/transport.d.ts +22 -0
- package/dist/transport/websocket/transport.d.ts.map +1 -1
- package/dist/transport/websocket/transport.js +63 -1
- package/dist/transport/websocket/transport.js.map +1 -1
- package/dist/wire/accountResponses.d.ts +31 -31
- package/dist/wire/auth.d.ts +3 -3
- package/dist/wire/bootstrapReason.d.ts +2 -2
- package/dist/wire/dataSourceResponses.d.ts +2 -2
- package/dist/wire/dataSourceResponses.d.ts.map +1 -1
- package/dist/wire/frames.d.ts +8 -8
- package/dist/wire/inboundFrames.d.ts +56 -56
- package/dist/wire/inboundFrames.d.ts.map +1 -1
- package/dist/wire/listEnvelope.js.map +1 -1
- package/dist/wire/modelResponses.d.ts +2 -2
- package/dist/wire/modelShape.d.ts +4 -4
- package/dist/wire/pricing.d.ts +3 -3
- package/dist/wire/protocolVersion.d.ts.map +1 -1
- package/package.json +2 -1
- package/src/client/ablo.ts +10 -5
- package/src/client/surface.ts +8 -1
- package/src/commit/recordRuntime.ts +4 -2
- package/src/errorCodes.ts +5 -1
- package/src/errors.ts +18 -1
- package/src/index.ts +1 -0
- package/src/schema/deployment/index.ts +54 -3
- package/src/schema/deployment/reconcile.ts +122 -6
- package/src/transport/http/client.ts +171 -4
- package/src/transport/http/transport.ts +126 -4
- package/src/transport/websocket/commitFrames.ts +5 -3
- package/src/transport/websocket/contextSubscription.ts +55 -0
- package/src/transport/websocket/session.ts +467 -0
- package/src/transport/websocket/sessionContract.ts +115 -0
- package/src/transport/websocket/transport.ts +72 -0
|
@@ -203,6 +203,7 @@ export interface CoreSyncEventMap {
|
|
|
203
203
|
presence_update: [PresenceUpdate];
|
|
204
204
|
error: [Error];
|
|
205
205
|
session_error: [Error];
|
|
206
|
+
protocol_mismatch: [CloseEvent];
|
|
206
207
|
/**
|
|
207
208
|
* The WebSocket `onclose` fired before `onopen` — the handshake itself
|
|
208
209
|
* failed. The browser cannot expose the HTTP status (it shows as code
|
|
@@ -998,6 +999,77 @@ export class WsTransport<
|
|
|
998
999
|
}
|
|
999
1000
|
}
|
|
1000
1001
|
|
|
1002
|
+
/**
|
|
1003
|
+
* Ask the server for every durable delta after the supplied position.
|
|
1004
|
+
*
|
|
1005
|
+
* This is deliberately part of the carrier rather than the reactive
|
|
1006
|
+
* materialiser: browser stores and headless WebSocket clients resume the same
|
|
1007
|
+
* ordered protocol. The owner decides when a received position is durable
|
|
1008
|
+
* enough to acknowledge.
|
|
1009
|
+
*/
|
|
1010
|
+
requestSync(position: {
|
|
1011
|
+
readonly cursor?: string | null;
|
|
1012
|
+
readonly lastSyncId: number;
|
|
1013
|
+
}): void {
|
|
1014
|
+
if (this.ws?.readyState !== WebSocket.OPEN) {
|
|
1015
|
+
throw this.notConnectedError('sync_request');
|
|
1016
|
+
}
|
|
1017
|
+
const capabilities = Object.entries(this.options.capabilities)
|
|
1018
|
+
.filter(([, enabled]) => enabled)
|
|
1019
|
+
.map(([name]) => name);
|
|
1020
|
+
this.send({
|
|
1021
|
+
type: 'sync_request',
|
|
1022
|
+
payload: {
|
|
1023
|
+
cursor: position.cursor ?? null,
|
|
1024
|
+
lastSyncId: position.lastSyncId,
|
|
1025
|
+
capabilities,
|
|
1026
|
+
protocolVersion: PROTOCOL_VERSION,
|
|
1027
|
+
},
|
|
1028
|
+
});
|
|
1029
|
+
}
|
|
1030
|
+
|
|
1031
|
+
/** Persist the server-side resume position after the caller durably applied it. */
|
|
1032
|
+
acknowledge(lastSyncId: number): void {
|
|
1033
|
+
if (!Number.isSafeInteger(lastSyncId) || lastSyncId < 0) {
|
|
1034
|
+
throw new AbloValidationError('acknowledge requires a non-negative safe integer.', {
|
|
1035
|
+
code: 'invalid_request',
|
|
1036
|
+
});
|
|
1037
|
+
}
|
|
1038
|
+
if (this.ws?.readyState !== WebSocket.OPEN) return;
|
|
1039
|
+
this.send({ type: 'ack', payload: { lastSyncId } });
|
|
1040
|
+
}
|
|
1041
|
+
|
|
1042
|
+
/** Announce this participant's current presence on the shared connection. */
|
|
1043
|
+
updatePresence(input: {
|
|
1044
|
+
readonly status?: 'online' | 'away' | 'offline';
|
|
1045
|
+
readonly customStatus?: string;
|
|
1046
|
+
readonly timezone?: string;
|
|
1047
|
+
readonly activity?: Record<string, unknown>;
|
|
1048
|
+
} = {}): void {
|
|
1049
|
+
if (this.ws?.readyState !== WebSocket.OPEN) {
|
|
1050
|
+
throw this.notConnectedError('presence_update');
|
|
1051
|
+
}
|
|
1052
|
+
let timezone = input.timezone;
|
|
1053
|
+
if (!timezone) {
|
|
1054
|
+
try {
|
|
1055
|
+
timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
1056
|
+
} catch {
|
|
1057
|
+
timezone = 'UTC';
|
|
1058
|
+
}
|
|
1059
|
+
}
|
|
1060
|
+
this.send({
|
|
1061
|
+
type: 'presence_update',
|
|
1062
|
+
payload: {
|
|
1063
|
+
status: input.status ?? 'online',
|
|
1064
|
+
timezone,
|
|
1065
|
+
...(input.customStatus !== undefined
|
|
1066
|
+
? { customStatus: input.customStatus }
|
|
1067
|
+
: {}),
|
|
1068
|
+
...(input.activity !== undefined ? { activity: input.activity } : {}),
|
|
1069
|
+
},
|
|
1070
|
+
});
|
|
1071
|
+
}
|
|
1072
|
+
|
|
1001
1073
|
/**
|
|
1002
1074
|
* Sends a `commit` mutation request over the existing WebSocket and resolves
|
|
1003
1075
|
* when the server's `mutation_result` frame comes back with the same
|