@opinionated-machine/sse-fallback 0.1.1

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscription.js","sourceRoot":"","sources":["../src/subscription.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,177 @@
1
+ /** A channel-agnostic request description built from the binding + params. */
2
+ export type TransportRequest = {
3
+ /** Resolved path (path params already substituted), no query string. */
4
+ path: string;
5
+ /** Lowercase HTTP method from the contract. */
6
+ method: string;
7
+ /** Query parameters, already stringified. */
8
+ query?: Record<string, string>;
9
+ /** Extra request headers (auth etc. belongs in the transport itself). */
10
+ headers?: Record<string, string>;
11
+ /** Request body for payload contracts. */
12
+ body?: unknown;
13
+ };
14
+ export type SnapshotResponse = {
15
+ status: number;
16
+ headers: Record<string, string>;
17
+ /** Parsed response body (transport decides how; typically response.json()). */
18
+ body: unknown;
19
+ };
20
+ /**
21
+ * The raw-chunk stream shape: the transport hands over decoded text and the
22
+ * core does the SSE framing. This is the recommended variant — see
23
+ * {@link StreamResponse}.
24
+ */
25
+ export type RawStreamResponse = {
26
+ status: number;
27
+ headers: Record<string, string>;
28
+ /**
29
+ * Decoded text chunks as they arrive, INCLUDING comment/heartbeat frames.
30
+ * The core frames the stream itself with `@opinionated-machine/sse-parser`
31
+ * and uses per-chunk arrival as byte-level liveness. Iteration ends when the
32
+ * stream closes; it throws on a mid-stream network error.
33
+ */
34
+ chunks: AsyncIterable<string>;
35
+ };
36
+ /** One SSE frame, already framed by the transport. */
37
+ export type ParsedSseFrame = {
38
+ /** The `id:` field, when the frame carried one. */
39
+ id?: string;
40
+ /** The `event:` field; the core treats a missing name as `'message'`. */
41
+ event?: string;
42
+ /** The raw `data:` payload, before `parseEventData`. */
43
+ data: string;
44
+ /** The `retry:` reconnection hint in ms, when the frame carried one. */
45
+ retry?: number;
46
+ /**
47
+ * The Last-Event-ID cursor as of this frame, when the framing tracked it.
48
+ *
49
+ * The cursor persists across frames that carry no `id:` of their own and is
50
+ * cleared by an empty `id:`, so it is not the same thing as {@link id}.
51
+ * Transports wrapping a client that only exposes per-event ids leave it
52
+ * unset; the core then falls back to {@link id}.
53
+ */
54
+ lastEventId?: string;
55
+ };
56
+ /**
57
+ * The parsed-event stream shape, for transports that cannot expose raw bytes.
58
+ *
59
+ * Wrapping an existing SSE client (`EventSource`, or an HTTP client whose SSE
60
+ * mode yields events rather than text) is only possible in this shape, because
61
+ * those clients drop comment frames before the caller ever sees them.
62
+ *
63
+ * The trade-off is liveness, not correctness: `staleConnectionTimeoutMs`
64
+ * degrades from byte-level to EVENT-level, so a stream carrying nothing but
65
+ * heartbeat comments looks idle and is force-closed after the timeout, and a
66
+ * silently dead connection is only noticed once the timeout elapses. Heartbeat
67
+ * *events* (a named event rather than a comment) still reset it. The deadman
68
+ * poll is unaffected, so delivery stays correct either way.
69
+ */
70
+ export type ParsedStreamResponse = {
71
+ status: number;
72
+ headers: Record<string, string>;
73
+ /**
74
+ * SSE frames as they arrive. Iteration ends when the stream closes; it
75
+ * throws on a mid-stream network error.
76
+ */
77
+ events: AsyncIterable<ParsedSseFrame>;
78
+ };
79
+ /**
80
+ * What `openStream` resolves with. Prefer {@link RawStreamResponse}; use
81
+ * {@link ParsedStreamResponse} when the underlying client will not give up its
82
+ * raw bytes.
83
+ */
84
+ export type StreamResponse = RawStreamResponse | ParsedStreamResponse;
85
+ export type FallbackTransport = {
86
+ /**
87
+ * Fetch a snapshot (the JSON branch). Resolves with status/body even for
88
+ * non-2xx responses; rejects only on network-level failure.
89
+ *
90
+ * Rate limiting across subscriptions is NOT handled here by default: after a
91
+ * server blip every live subscription reconnects and fires its own
92
+ * reconciliation poll at once. Either share a `pollGate` between
93
+ * subscriptions (see `createPollGate`) or cap and stagger the requests
94
+ * inside this method — one of the two is the transport author's
95
+ * responsibility.
96
+ */
97
+ fetchSnapshot(request: TransportRequest, opts: {
98
+ signal: AbortSignal;
99
+ }): Promise<SnapshotResponse>;
100
+ /**
101
+ * Open the SSE branch. Resolves once response headers are received;
102
+ * rejects only on network-level failure. A non-200 status (or a
103
+ * non-`text/event-stream` content type) is a CONNECT FAILURE the core
104
+ * counts toward degradation.
105
+ */
106
+ openStream(request: TransportRequest, opts: {
107
+ signal: AbortSignal;
108
+ lastEventId?: string;
109
+ }): Promise<StreamResponse>;
110
+ };
111
+ /** Whether a stream response hands over parsed frames instead of raw text. */
112
+ export declare function isParsedStreamResponse(response: StreamResponse): response is ParsedStreamResponse;
113
+ export type TestStreamHandle = {
114
+ /** Emit a complete SSE event frame. */
115
+ pushEvent(event: string, data: unknown, opts?: {
116
+ id?: string;
117
+ retry?: number;
118
+ }): void;
119
+ /** Emit a heartbeat comment frame (byte activity without a data event). */
120
+ pushHeartbeat(): void;
121
+ /** Emit a raw text chunk verbatim. */
122
+ pushRaw(text: string): void;
123
+ /** End the stream normally (server close). */
124
+ close(): void;
125
+ /** Fail the stream mid-flight (network error). */
126
+ fail(error?: Error): void;
127
+ readonly lastEventIdReceived: string | undefined;
128
+ readonly request: TransportRequest;
129
+ };
130
+ export type TestSnapshotCall = {
131
+ request: TransportRequest;
132
+ respond(body: unknown, status?: number): void;
133
+ fail(error?: Error): void;
134
+ };
135
+ /**
136
+ * Scripted {@link FallbackTransport} for unit tests. Pairs with fake timers:
137
+ * snapshot calls and stream connects are surfaced through the `onSnapshot` /
138
+ * `onStreamConnect` hooks (or the corresponding queues), and streams are
139
+ * driven manually via {@link TestStreamHandle}.
140
+ */
141
+ export declare class TestTransport implements FallbackTransport {
142
+ /**
143
+ * Which {@link StreamResponse} shape `openStream` resolves with. `'parsed'`
144
+ * models a transport wrapping a client that only exposes framed events, so
145
+ * pushed heartbeat comments never reach the core.
146
+ */
147
+ streamMode: 'raw' | 'parsed';
148
+ /** Called for every snapshot fetch; respond synchronously or later. */
149
+ onSnapshot?: (call: TestSnapshotCall) => void;
150
+ /** Called for every stream connect attempt after it is accepted. */
151
+ onStreamConnect?: (stream: TestStreamHandle) => void;
152
+ /** Statuses (or an Error) to reject/deny the next N stream connects with. */
153
+ private readonly connectDenials;
154
+ readonly snapshotCalls: TransportRequest[];
155
+ readonly streamConnects: TransportRequest[];
156
+ /** Whether each denied connect's request was aborted by the core. */
157
+ readonly deniedConnectAborts: boolean[];
158
+ /** Queue a denial for the next stream connect (non-200 status or network error). */
159
+ denyNextStreamConnect(denial: {
160
+ status?: number;
161
+ error?: Error;
162
+ }): void;
163
+ /**
164
+ * Queue a stream connect that never produces response headers, settling only
165
+ * when the core aborts it. Models an upstream that accepts the TCP
166
+ * connection and then goes quiet.
167
+ */
168
+ holdNextStreamConnect(): void;
169
+ fetchSnapshot(request: TransportRequest, opts: {
170
+ signal: AbortSignal;
171
+ }): Promise<SnapshotResponse>;
172
+ openStream(request: TransportRequest, opts: {
173
+ signal: AbortSignal;
174
+ lastEventId?: string;
175
+ }): Promise<StreamResponse>;
176
+ }
177
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,168 @@
1
+ /**
2
+ * Transport seam: the core owns no HTTP. Implementations wrap fetch (browser,
3
+ * via @lokalise/frontend-http-client), undici (Node), or scripted fixtures
4
+ * (tests). Response-body validation (zod) belongs in the transport wrapper,
5
+ * keeping this package dependency-free.
6
+ */
7
+ import { parseSSEStream } from '@opinionated-machine/sse-parser';
8
+ /** Whether a stream response hands over parsed frames instead of raw text. */
9
+ export function isParsedStreamResponse(response) {
10
+ return 'events' in response;
11
+ }
12
+ /**
13
+ * Scripted {@link FallbackTransport} for unit tests. Pairs with fake timers:
14
+ * snapshot calls and stream connects are surfaced through the `onSnapshot` /
15
+ * `onStreamConnect` hooks (or the corresponding queues), and streams are
16
+ * driven manually via {@link TestStreamHandle}.
17
+ */
18
+ export class TestTransport {
19
+ /**
20
+ * Which {@link StreamResponse} shape `openStream` resolves with. `'parsed'`
21
+ * models a transport wrapping a client that only exposes framed events, so
22
+ * pushed heartbeat comments never reach the core.
23
+ */
24
+ streamMode = 'raw';
25
+ /** Called for every snapshot fetch; respond synchronously or later. */
26
+ onSnapshot;
27
+ /** Called for every stream connect attempt after it is accepted. */
28
+ onStreamConnect;
29
+ /** Statuses (or an Error) to reject/deny the next N stream connects with. */
30
+ connectDenials = [];
31
+ snapshotCalls = [];
32
+ streamConnects = [];
33
+ /** Whether each denied connect's request was aborted by the core. */
34
+ deniedConnectAborts = [];
35
+ /** Queue a denial for the next stream connect (non-200 status or network error). */
36
+ denyNextStreamConnect(denial) {
37
+ this.connectDenials.push(denial);
38
+ }
39
+ /**
40
+ * Queue a stream connect that never produces response headers, settling only
41
+ * when the core aborts it. Models an upstream that accepts the TCP
42
+ * connection and then goes quiet.
43
+ */
44
+ holdNextStreamConnect() {
45
+ this.connectDenials.push({ hold: true });
46
+ }
47
+ fetchSnapshot(request, opts) {
48
+ this.snapshotCalls.push(request);
49
+ return new Promise((resolve, reject) => {
50
+ if (opts.signal.aborted) {
51
+ reject(new Error('aborted'));
52
+ return;
53
+ }
54
+ opts.signal.addEventListener('abort', () => reject(new Error('aborted')), { once: true });
55
+ const call = {
56
+ request,
57
+ respond: (body, status = 200) => resolve({ status, headers: {}, body }),
58
+ fail: (error) => reject(error ?? new Error('snapshot network failure')),
59
+ };
60
+ if (this.onSnapshot) {
61
+ this.onSnapshot(call);
62
+ }
63
+ else {
64
+ reject(new Error('TestTransport.onSnapshot is not configured'));
65
+ }
66
+ });
67
+ }
68
+ openStream(request, opts) {
69
+ this.streamConnects.push(request);
70
+ const denial = this.connectDenials.shift();
71
+ if (denial?.hold) {
72
+ return new Promise((_resolve, reject) => {
73
+ if (opts.signal.aborted) {
74
+ reject(new Error('aborted'));
75
+ return;
76
+ }
77
+ opts.signal.addEventListener('abort', () => reject(new Error('aborted')), { once: true });
78
+ });
79
+ }
80
+ if (denial?.error) {
81
+ return Promise.reject(denial.error);
82
+ }
83
+ if (denial?.status !== undefined) {
84
+ const index = this.deniedConnectAborts.push(false) - 1;
85
+ opts.signal.addEventListener('abort', () => {
86
+ this.deniedConnectAborts[index] = true;
87
+ }, { once: true });
88
+ return Promise.resolve({
89
+ status: denial.status,
90
+ headers: {},
91
+ chunks: emptyChunks(),
92
+ });
93
+ }
94
+ const queue = [];
95
+ let notify;
96
+ const controller = {
97
+ aborted: false,
98
+ push: (chunk) => {
99
+ queue.push(chunk);
100
+ notify?.();
101
+ },
102
+ };
103
+ opts.signal.addEventListener('abort', () => {
104
+ controller.aborted = true;
105
+ notify?.();
106
+ }, { once: true });
107
+ const handle = {
108
+ pushEvent: (event, data, eventOpts) => {
109
+ let frame = '';
110
+ if (eventOpts?.id !== undefined)
111
+ frame += `id: ${eventOpts.id}\n`;
112
+ frame += `event: ${event}\ndata: ${JSON.stringify(data)}\n`;
113
+ if (eventOpts?.retry !== undefined)
114
+ frame += `retry: ${eventOpts.retry}\n`;
115
+ controller.push({ kind: 'chunk', text: `${frame}\n` });
116
+ },
117
+ pushHeartbeat: () => controller.push({ kind: 'chunk', text: ': heartbeat\n\n' }),
118
+ pushRaw: (text) => controller.push({ kind: 'chunk', text }),
119
+ close: () => controller.push({ kind: 'close' }),
120
+ fail: (error) => controller.push({ kind: 'error', error: error ?? new Error('stream network failure') }),
121
+ lastEventIdReceived: opts.lastEventId,
122
+ request,
123
+ };
124
+ const chunks = (async function* () {
125
+ while (true) {
126
+ if (controller.aborted)
127
+ return;
128
+ const next = queue.shift();
129
+ if (!next) {
130
+ await new Promise((resolve) => {
131
+ notify = resolve;
132
+ });
133
+ notify = undefined;
134
+ continue;
135
+ }
136
+ if (next.kind === 'close')
137
+ return;
138
+ if (next.kind === 'error')
139
+ throw next.error;
140
+ yield next.text;
141
+ }
142
+ })();
143
+ this.onStreamConnect?.(handle);
144
+ if (this.streamMode === 'parsed') {
145
+ return Promise.resolve({
146
+ status: 200,
147
+ headers: { 'content-type': 'text/event-stream' },
148
+ events: framesOf(chunks),
149
+ });
150
+ }
151
+ return Promise.resolve({
152
+ status: 200,
153
+ headers: { 'content-type': 'text/event-stream' },
154
+ chunks,
155
+ });
156
+ }
157
+ }
158
+ async function* emptyChunks() {
159
+ // no chunks — used for denied connects
160
+ }
161
+ /**
162
+ * Frame raw chunks the way a parsed-event client would: comment/heartbeat
163
+ * frames are consumed by the framing and never surface as events.
164
+ */
165
+ function framesOf(chunks) {
166
+ return parseSSEStream(chunks);
167
+ }
168
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,76 @@
1
+ {
2
+ "name": "@opinionated-machine/sse-fallback",
3
+ "version": "0.1.1",
4
+ "description": "Browser-safe SSE client core with transparent polling fallback for opinionated-machine dual-mode contracts",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "main": "dist/index.js",
8
+ "types": "dist/index.d.ts",
9
+ "sideEffects": false,
10
+ "exports": {
11
+ ".": "./dist/index.js",
12
+ "./package.json": "./package.json"
13
+ },
14
+ "maintainers": [
15
+ {
16
+ "name": "Igor Savin",
17
+ "email": "kibertoad@gmail.com"
18
+ }
19
+ ],
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "git+https://github.com/kibertoad/opinionated-machine.git",
23
+ "directory": "packages/sse-fallback"
24
+ },
25
+ "dependencies": {
26
+ "@opinionated-machine/sse-parser": "0.1.0"
27
+ },
28
+ "peerDependencies": {
29
+ "@lokalise/api-contracts": ">=8.0.0",
30
+ "zod": ">=4.0.0"
31
+ },
32
+ "peerDependenciesMeta": {
33
+ "@lokalise/api-contracts": {
34
+ "optional": true
35
+ },
36
+ "zod": {
37
+ "optional": true
38
+ }
39
+ },
40
+ "devDependencies": {
41
+ "@biomejs/biome": "2.4.4",
42
+ "@lokalise/api-contracts": "^8.0.0",
43
+ "@lokalise/biome-config": "^3.1.1",
44
+ "@lokalise/tsconfig": "^3.1.0",
45
+ "rimraf": "^6.1.2",
46
+ "typescript": "^5.9.3",
47
+ "vitest": "^4.1.11",
48
+ "zod": "^4.4.3"
49
+ },
50
+ "private": false,
51
+ "publishConfig": {
52
+ "access": "public"
53
+ },
54
+ "keywords": [
55
+ "sse",
56
+ "server-sent-events",
57
+ "polling",
58
+ "fallback",
59
+ "realtime",
60
+ "browser",
61
+ "opinionated-machine"
62
+ ],
63
+ "homepage": "https://github.com/kibertoad/opinionated-machine/tree/main/packages/sse-fallback",
64
+ "files": [
65
+ "README.md",
66
+ "LICENSE",
67
+ "dist/*"
68
+ ],
69
+ "scripts": {
70
+ "build": "rimraf dist && tsc -p tsconfig.build.json",
71
+ "lint": "biome check . && tsc",
72
+ "lint:fix": "biome check --write .",
73
+ "test": "vitest run",
74
+ "test:watch": "vitest"
75
+ }
76
+ }