@haverstack/wire-types 0.10.0 → 0.12.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/dist/index.d.ts +93 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +67 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { StackRecord, StackType, RecordVersion, Association, Permission, ValidationError, SchemaDriftViolation, StackErrorCode } from '@haverstack/core';
|
|
1
|
+
import type { StackRecord, StackType, RecordVersion, Association, Permission, ValidationError, SchemaDriftViolation, StackErrorCode, ChangeKind, ChangeOp, RecordChange } from '@haverstack/core';
|
|
2
2
|
import type { AdapterCapabilities } from '@haverstack/core/adapter';
|
|
3
3
|
export type WireRecord = {
|
|
4
4
|
id: string;
|
|
@@ -130,6 +130,7 @@ export type DiscoveryResponse = {
|
|
|
130
130
|
timezone?: string;
|
|
131
131
|
capabilities: AdapterCapabilities;
|
|
132
132
|
auth?: DiscoveryAuth;
|
|
133
|
+
changes?: DiscoveryChanges;
|
|
133
134
|
};
|
|
134
135
|
/**
|
|
135
136
|
* How a token can be earned here. Optional, and absent means only whatever
|
|
@@ -148,6 +149,33 @@ export declare const AUTH_METHOD_DID_CHALLENGE = "did-challenge";
|
|
|
148
149
|
export type AuthMethod = typeof AUTH_METHOD_DID_CHALLENGE;
|
|
149
150
|
/** Whether a server advertises the DID challenge–response handshake. */
|
|
150
151
|
export declare function supportsDidChallenge(discovery: DiscoveryResponse): boolean;
|
|
152
|
+
/**
|
|
153
|
+
* The change feed a server offers, absent when it offers none. An object
|
|
154
|
+
* rather than a boolean for the same reason `auth` is one: this surface
|
|
155
|
+
* grows entries — another transport, batched frames — and the alternative
|
|
156
|
+
* is a boolean followed by three more of them.
|
|
157
|
+
*
|
|
158
|
+
* See docs/spec/wire-format.md § Change feed.
|
|
159
|
+
*/
|
|
160
|
+
export type DiscoveryChanges = {
|
|
161
|
+
transports: ChangeTransport[];
|
|
162
|
+
/**
|
|
163
|
+
* Whether a resume cursor is honored. `false` is conformant and means
|
|
164
|
+
* every reconnect is answered with a `reset` frame.
|
|
165
|
+
*/
|
|
166
|
+
resume: boolean;
|
|
167
|
+
/** Whether `?include=record` is honored. Never honored for a purge. */
|
|
168
|
+
records: boolean;
|
|
169
|
+
};
|
|
170
|
+
/** Server→client streaming over `fetch`. The only transport in this version. */
|
|
171
|
+
export declare const CHANGE_TRANSPORT_SSE = "sse";
|
|
172
|
+
export type ChangeTransport = typeof CHANGE_TRANSPORT_SSE;
|
|
173
|
+
/**
|
|
174
|
+
* Whether a server offers a change feed this client can consume. A client
|
|
175
|
+
* checks this and fails locally rather than learning it as a 404 partway
|
|
176
|
+
* through a connection — the same reason `auth.methods` exists.
|
|
177
|
+
*/
|
|
178
|
+
export declare function supportsChangeFeed(discovery: DiscoveryResponse): boolean;
|
|
151
179
|
/** POST /auth/challenge request. */
|
|
152
180
|
export type AuthChallengeRequest = {
|
|
153
181
|
did: string;
|
|
@@ -196,6 +224,70 @@ export declare const WIRE_AUTH_ERROR_STATUS: Record<WireAuthErrorCode, number>;
|
|
|
196
224
|
export declare function isWireAuthError(body: unknown): body is WireAuthError;
|
|
197
225
|
/** Whether retrying the handshake from a fresh nonce could succeed. */
|
|
198
226
|
export declare function isRetryableAuthError(code: WireAuthErrorCode): boolean;
|
|
227
|
+
/**
|
|
228
|
+
* One change, as a `record` frame carries it. The envelope describes the
|
|
229
|
+
* change and nothing else: the record's own provenance rides `record`,
|
|
230
|
+
* where a consumer that wants it asks for it. See docs/spec/events.md
|
|
231
|
+
* § Attribution.
|
|
232
|
+
*/
|
|
233
|
+
export type WireRecordChange = {
|
|
234
|
+
kind: ChangeKind;
|
|
235
|
+
op: ChangeOp;
|
|
236
|
+
recordId: string;
|
|
237
|
+
typeId: string;
|
|
238
|
+
version: number;
|
|
239
|
+
updatedAt: string;
|
|
240
|
+
parentId?: string;
|
|
241
|
+
actor?: WireChangeActor;
|
|
242
|
+
record?: WireRecord;
|
|
243
|
+
seq?: string;
|
|
244
|
+
};
|
|
245
|
+
/** Who performed a change. Never who authored the record. */
|
|
246
|
+
export type WireChangeActor = {
|
|
247
|
+
entityId: string;
|
|
248
|
+
principalId?: string;
|
|
249
|
+
appId?: string;
|
|
250
|
+
};
|
|
251
|
+
/**
|
|
252
|
+
* A change as a server frames it. A purge carries neither the record nor
|
|
253
|
+
* its parent, whatever the subscriber asked for: hard delete is the
|
|
254
|
+
* erasure primitive, and a frame carrying the body — or anything else
|
|
255
|
+
* pointing at it — hands every subscriber a permanent copy of what the
|
|
256
|
+
* stack has just destroyed.
|
|
257
|
+
*
|
|
258
|
+
* The rule lives here rather than at each call site because a server holds
|
|
259
|
+
* the purged record at that moment, for the readability check it can only
|
|
260
|
+
* make before the write, and so is in exactly the position to leak it. See
|
|
261
|
+
* docs/spec/events.md § Purged records carry nothing.
|
|
262
|
+
*/
|
|
263
|
+
export declare function serializeChange(c: RecordChange): WireRecordChange;
|
|
264
|
+
/**
|
|
265
|
+
* Frame names. Every frame carries one, and a client MUST ignore a name it
|
|
266
|
+
* does not recognize — which is what makes a new frame an additive, minor
|
|
267
|
+
* change rather than a break. See docs/spec/wire-format.md § Change feed.
|
|
268
|
+
*/
|
|
269
|
+
export declare const CHANGE_FRAME_READY = "ready";
|
|
270
|
+
export declare const CHANGE_FRAME_RECORD = "record";
|
|
271
|
+
export declare const CHANGE_FRAME_RESET = "reset";
|
|
272
|
+
/**
|
|
273
|
+
* Sent first on every connection, before any change. It is what makes
|
|
274
|
+
* subscribe-then-query gap-free: everything after it is in the stream.
|
|
275
|
+
*/
|
|
276
|
+
export type WireReadyFrame = {
|
|
277
|
+
/** The head cursor. Absent from a server that mints none (`resume: false`). */
|
|
278
|
+
seq?: string;
|
|
279
|
+
};
|
|
280
|
+
/**
|
|
281
|
+
* Why a cursor could not be honored. Informational — a client's repair is
|
|
282
|
+
* the same for all three, and it is reconciling by query.
|
|
283
|
+
*/
|
|
284
|
+
export type ChangeResetReason = 'cursor_expired' | 'not_supported' | 'overflow';
|
|
285
|
+
/** Your cursor cannot be honored; resynchronize by query. */
|
|
286
|
+
export type WireResetFrame = {
|
|
287
|
+
reason: ChangeResetReason;
|
|
288
|
+
};
|
|
289
|
+
/** Whether a cursor is framable: unreserved base64url characters only. */
|
|
290
|
+
export declare function isValidSeq(seq: string): boolean;
|
|
199
291
|
/** Splits a MAJOR.MINOR protocol version. Returns null if it isn't one. */
|
|
200
292
|
export declare function parseProtocolVersion(version: string): {
|
|
201
293
|
major: number;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,aAAa,EACb,WAAW,EACX,UAAU,EACV,eAAe,EACf,oBAAoB,EACpB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -219,6 +219,16 @@ export const AUTH_METHOD_DID_CHALLENGE = 'did-challenge';
|
|
|
219
219
|
export function supportsDidChallenge(discovery) {
|
|
220
220
|
return discovery.auth?.methods?.includes(AUTH_METHOD_DID_CHALLENGE) ?? false;
|
|
221
221
|
}
|
|
222
|
+
/** Server→client streaming over `fetch`. The only transport in this version. */
|
|
223
|
+
export const CHANGE_TRANSPORT_SSE = 'sse';
|
|
224
|
+
/**
|
|
225
|
+
* Whether a server offers a change feed this client can consume. A client
|
|
226
|
+
* checks this and fails locally rather than learning it as a 404 partway
|
|
227
|
+
* through a connection — the same reason `auth.methods` exists.
|
|
228
|
+
*/
|
|
229
|
+
export function supportsChangeFeed(discovery) {
|
|
230
|
+
return discovery.changes?.transports?.includes(CHANGE_TRANSPORT_SSE) ?? false;
|
|
231
|
+
}
|
|
222
232
|
export const WIRE_AUTH_ERROR_STATUS = {
|
|
223
233
|
// Malformed input, not a rejected credential — there is nothing here to
|
|
224
234
|
// authenticate yet.
|
|
@@ -245,6 +255,63 @@ export function isWireAuthError(body) {
|
|
|
245
255
|
export function isRetryableAuthError(code) {
|
|
246
256
|
return RETRYABLE_AUTH_CODES.has(code);
|
|
247
257
|
}
|
|
258
|
+
/**
|
|
259
|
+
* A change as a server frames it. A purge carries neither the record nor
|
|
260
|
+
* its parent, whatever the subscriber asked for: hard delete is the
|
|
261
|
+
* erasure primitive, and a frame carrying the body — or anything else
|
|
262
|
+
* pointing at it — hands every subscriber a permanent copy of what the
|
|
263
|
+
* stack has just destroyed.
|
|
264
|
+
*
|
|
265
|
+
* The rule lives here rather than at each call site because a server holds
|
|
266
|
+
* the purged record at that moment, for the readability check it can only
|
|
267
|
+
* make before the write, and so is in exactly the position to leak it. See
|
|
268
|
+
* docs/spec/events.md § Purged records carry nothing.
|
|
269
|
+
*/
|
|
270
|
+
export function serializeChange(c) {
|
|
271
|
+
const w = {
|
|
272
|
+
kind: c.kind,
|
|
273
|
+
op: c.op,
|
|
274
|
+
recordId: c.recordId,
|
|
275
|
+
typeId: c.typeId,
|
|
276
|
+
version: c.version,
|
|
277
|
+
updatedAt: c.updatedAt.toISOString(),
|
|
278
|
+
};
|
|
279
|
+
if (c.actor !== undefined) {
|
|
280
|
+
const actor = { entityId: c.actor.entityId };
|
|
281
|
+
if (c.actor.principalId !== undefined)
|
|
282
|
+
actor.principalId = c.actor.principalId;
|
|
283
|
+
if (c.actor.appId !== undefined)
|
|
284
|
+
actor.appId = c.actor.appId;
|
|
285
|
+
w.actor = actor;
|
|
286
|
+
}
|
|
287
|
+
if (c.seq !== undefined)
|
|
288
|
+
w.seq = c.seq;
|
|
289
|
+
if (c.kind === 'purged')
|
|
290
|
+
return w;
|
|
291
|
+
if (c.parentId !== undefined)
|
|
292
|
+
w.parentId = c.parentId;
|
|
293
|
+
if (c.record !== undefined)
|
|
294
|
+
w.record = serializeRecord(c.record);
|
|
295
|
+
return w;
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Frame names. Every frame carries one, and a client MUST ignore a name it
|
|
299
|
+
* does not recognize — which is what makes a new frame an additive, minor
|
|
300
|
+
* change rather than a break. See docs/spec/wire-format.md § Change feed.
|
|
301
|
+
*/
|
|
302
|
+
export const CHANGE_FRAME_READY = 'ready';
|
|
303
|
+
export const CHANGE_FRAME_RECORD = 'record';
|
|
304
|
+
export const CHANGE_FRAME_RESET = 'reset';
|
|
305
|
+
/**
|
|
306
|
+
* A cursor travels in an SSE `id:` field, so a value spanning a line would
|
|
307
|
+
* truncate the frame carrying it. Same charset and same reason as the auth
|
|
308
|
+
* nonce — see docs/spec/wire-format.md § The handshake.
|
|
309
|
+
*/
|
|
310
|
+
const SEQ_FORMAT = /^[A-Za-z0-9_-]+$/;
|
|
311
|
+
/** Whether a cursor is framable: unreserved base64url characters only. */
|
|
312
|
+
export function isValidSeq(seq) {
|
|
313
|
+
return SEQ_FORMAT.test(seq);
|
|
314
|
+
}
|
|
248
315
|
/** Splits a MAJOR.MINOR protocol version. Returns null if it isn't one. */
|
|
249
316
|
export function parseProtocolVersion(version) {
|
|
250
317
|
const match = /^(\d+)\.(\d+)$/.exec(version);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@haverstack/wire-types",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "HTTP wire types and serialization for Haverstack",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
},
|
|
22
22
|
"license": "CC0-1.0",
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@haverstack/core": "^0.
|
|
24
|
+
"@haverstack/core": "^0.13.0"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/node": "^22.0.0",
|