request-iframe 0.0.6 → 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.
Files changed (95) hide show
  1. package/README.CN.md +220 -21
  2. package/README.md +221 -24
  3. package/esm/api/client.js +80 -0
  4. package/esm/api/server.js +61 -0
  5. package/esm/constants/index.js +289 -0
  6. package/esm/constants/messages.js +157 -0
  7. package/esm/core/client-server.js +294 -0
  8. package/esm/core/client.js +873 -0
  9. package/esm/core/request.js +27 -0
  10. package/esm/core/response.js +459 -0
  11. package/esm/core/server.js +776 -0
  12. package/esm/index.js +21 -0
  13. package/esm/interceptors/index.js +122 -0
  14. package/esm/message/channel.js +182 -0
  15. package/esm/message/dispatcher.js +418 -0
  16. package/esm/message/index.js +2 -0
  17. package/esm/stream/file-stream.js +289 -0
  18. package/esm/stream/index.js +44 -0
  19. package/esm/stream/readable-stream.js +539 -0
  20. package/esm/stream/stream-core.js +204 -0
  21. package/esm/stream/types.js +1 -0
  22. package/esm/stream/writable-stream.js +836 -0
  23. package/esm/types/index.js +1 -0
  24. package/esm/utils/ack.js +36 -0
  25. package/esm/utils/cache.js +147 -0
  26. package/esm/utils/cookie.js +352 -0
  27. package/esm/utils/debug.js +521 -0
  28. package/esm/utils/error.js +27 -0
  29. package/esm/utils/index.js +180 -0
  30. package/esm/utils/origin.js +30 -0
  31. package/esm/utils/path-match.js +148 -0
  32. package/esm/utils/protocol.js +157 -0
  33. package/library/api/client.d.ts.map +1 -1
  34. package/library/api/client.js +13 -5
  35. package/library/api/server.d.ts.map +1 -1
  36. package/library/api/server.js +6 -1
  37. package/library/constants/index.d.ts +59 -4
  38. package/library/constants/index.d.ts.map +1 -1
  39. package/library/constants/index.js +67 -9
  40. package/library/constants/messages.d.ts +8 -1
  41. package/library/constants/messages.d.ts.map +1 -1
  42. package/library/constants/messages.js +8 -1
  43. package/library/core/client-server.d.ts +7 -15
  44. package/library/core/client-server.d.ts.map +1 -1
  45. package/library/core/client-server.js +56 -44
  46. package/library/core/client.d.ts +4 -1
  47. package/library/core/client.d.ts.map +1 -1
  48. package/library/core/client.js +74 -31
  49. package/library/core/response.d.ts +21 -3
  50. package/library/core/response.d.ts.map +1 -1
  51. package/library/core/response.js +55 -7
  52. package/library/core/server.d.ts +34 -3
  53. package/library/core/server.d.ts.map +1 -1
  54. package/library/core/server.js +191 -21
  55. package/library/message/channel.d.ts +6 -0
  56. package/library/message/channel.d.ts.map +1 -1
  57. package/library/message/channel.js +2 -1
  58. package/library/message/dispatcher.d.ts +32 -0
  59. package/library/message/dispatcher.d.ts.map +1 -1
  60. package/library/message/dispatcher.js +131 -1
  61. package/library/stream/file-stream.d.ts +4 -0
  62. package/library/stream/file-stream.d.ts.map +1 -1
  63. package/library/stream/file-stream.js +61 -33
  64. package/library/stream/index.d.ts.map +1 -1
  65. package/library/stream/index.js +2 -0
  66. package/library/stream/readable-stream.d.ts +30 -11
  67. package/library/stream/readable-stream.d.ts.map +1 -1
  68. package/library/stream/readable-stream.js +368 -73
  69. package/library/stream/stream-core.d.ts +65 -0
  70. package/library/stream/stream-core.d.ts.map +1 -0
  71. package/library/stream/stream-core.js +211 -0
  72. package/library/stream/types.d.ts +203 -3
  73. package/library/stream/types.d.ts.map +1 -1
  74. package/library/stream/writable-stream.d.ts +59 -13
  75. package/library/stream/writable-stream.d.ts.map +1 -1
  76. package/library/stream/writable-stream.js +647 -197
  77. package/library/types/index.d.ts +70 -4
  78. package/library/types/index.d.ts.map +1 -1
  79. package/library/utils/ack.d.ts +2 -0
  80. package/library/utils/ack.d.ts.map +1 -0
  81. package/library/utils/ack.js +44 -0
  82. package/library/utils/debug.js +1 -1
  83. package/library/utils/index.d.ts +1 -0
  84. package/library/utils/index.d.ts.map +1 -1
  85. package/library/utils/index.js +19 -2
  86. package/library/utils/origin.d.ts +14 -0
  87. package/library/utils/origin.d.ts.map +1 -0
  88. package/library/utils/origin.js +35 -0
  89. package/package.json +30 -7
  90. package/react/README.md +16 -0
  91. package/react/esm/index.js +284 -0
  92. package/react/library/index.d.ts +1 -1
  93. package/react/library/index.d.ts.map +1 -1
  94. package/react/library/index.js +3 -3
  95. package/react/package.json +24 -2
@@ -0,0 +1,211 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.IframeStreamCore = void 0;
8
+ require("core-js/modules/es.array.from.js");
9
+ require("core-js/modules/es.array.iterator.js");
10
+ require("core-js/modules/es.map.js");
11
+ require("core-js/modules/es.promise.js");
12
+ require("core-js/modules/es.set.js");
13
+ require("core-js/modules/web.dom-collections.for-each.js");
14
+ require("core-js/modules/web.dom-collections.iterator.js");
15
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
+ var _constants = require("../constants");
17
+ /**
18
+ * Shared stream core (internal).
19
+ *
20
+ * - Read side: buffer + waiters + consume compaction
21
+ * - Common: state + terminal error + basic waiter mechanics
22
+ *
23
+ * NOTE:
24
+ * This is an internal abstraction to share logic between Readable/Writable streams.
25
+ * Public API remains `IframeReadableStream` / `IframeWritableStream`.
26
+ */
27
+ class IframeStreamCore {
28
+ constructor(streamId, type, chunked, metadata, consume, mode) {
29
+ (0, _defineProperty2.default)(this, "_state", _constants.StreamState.PENDING);
30
+ (0, _defineProperty2.default)(this, "chunks", []);
31
+ (0, _defineProperty2.default)(this, "waiters", []);
32
+ (0, _defineProperty2.default)(this, "listeners", new Map());
33
+ this.streamId = streamId;
34
+ this.type = type;
35
+ this.chunked = chunked;
36
+ this.metadata = metadata;
37
+ this.consume = consume;
38
+ this.mode = mode;
39
+ }
40
+ get state() {
41
+ return this._state;
42
+ }
43
+
44
+ /**
45
+ * Subscribe to stream events.
46
+ *
47
+ * This is designed for observability (debugging / metrics / UI progress),
48
+ * and should not be used to drive protocol-critical logic.
49
+ *
50
+ * Returns an unsubscribe function.
51
+ */
52
+
53
+ on(event, listener) {
54
+ if (!this.listeners.has(event)) {
55
+ this.listeners.set(event, new Set());
56
+ }
57
+ this.listeners.get(event).add(listener);
58
+
59
+ // Terminal events: if already reached, fire once immediately for convenience.
60
+ if (event === _constants.StreamEvent.END && this._state === _constants.StreamState.ENDED) {
61
+ this.safeCall(listener);
62
+ } else if (event === _constants.StreamEvent.ERROR && this._state === _constants.StreamState.ERROR) {
63
+ this.safeCall(listener, {
64
+ error: this.terminalError
65
+ });
66
+ } else if (event === _constants.StreamEvent.CANCEL && this._state === _constants.StreamState.CANCELLED) {
67
+ this.safeCall(listener, {
68
+ error: this.terminalError
69
+ });
70
+ }
71
+ return () => this.off(event, listener);
72
+ }
73
+ once(event, listener) {
74
+ // If already terminal, behave like a synchronous one-shot.
75
+ if (event === _constants.StreamEvent.END && this._state === _constants.StreamState.ENDED) {
76
+ this.safeCall(listener);
77
+ return () => {};
78
+ }
79
+ if (event === _constants.StreamEvent.ERROR && this._state === _constants.StreamState.ERROR) {
80
+ this.safeCall(listener, {
81
+ error: this.terminalError
82
+ });
83
+ return () => {};
84
+ }
85
+ if (event === _constants.StreamEvent.CANCEL && this._state === _constants.StreamState.CANCELLED) {
86
+ this.safeCall(listener, {
87
+ error: this.terminalError
88
+ });
89
+ return () => {};
90
+ }
91
+ var wrapped = payload => {
92
+ this.off(event, wrapped);
93
+ this.safeCall(listener, payload);
94
+ };
95
+ return this.on(event, wrapped);
96
+ }
97
+
98
+ /**
99
+ * Unsubscribe from stream events.
100
+ */
101
+
102
+ off(event, listener) {
103
+ var set = this.listeners.get(event);
104
+ if (!set) return;
105
+ set.delete(listener);
106
+ if (set.size === 0) {
107
+ this.listeners.delete(event);
108
+ }
109
+ }
110
+ emit(event, payload) {
111
+ var set = this.listeners.get(event);
112
+ if (!set || set.size === 0) return;
113
+ // Snapshot to avoid issues if listeners mutate subscriptions.
114
+ var list = Array.from(set);
115
+ list.forEach(fn => this.safeCall(fn, payload));
116
+ }
117
+ clearAllListeners() {
118
+ this.listeners.clear();
119
+ }
120
+ safeCall(fn, payload) {
121
+ try {
122
+ fn(payload);
123
+ } catch (_unused) {
124
+ /** ignore user listener errors */
125
+ }
126
+ }
127
+ notifyWaiters() {
128
+ if (this.waiters.length === 0) return;
129
+ var list = this.waiters;
130
+ this.waiters = [];
131
+ list.forEach(fn => {
132
+ try {
133
+ fn();
134
+ } catch (_unused2) {
135
+ /** ignore */
136
+ }
137
+ });
138
+ }
139
+ waitForChange() {
140
+ if (this._state === _constants.StreamState.ENDED || this._state === _constants.StreamState.ERROR || this._state === _constants.StreamState.CANCELLED) {
141
+ return Promise.resolve();
142
+ }
143
+ return new Promise(resolve => {
144
+ this.waiters.push(resolve);
145
+ });
146
+ }
147
+ fail(error) {
148
+ if (this._state === _constants.StreamState.ENDED || this._state === _constants.StreamState.ERROR) return;
149
+ this._state = _constants.StreamState.ERROR;
150
+ this.terminalError = error;
151
+ this.emit(_constants.StreamEvent.ERROR, {
152
+ error
153
+ });
154
+ this.emit(_constants.StreamEvent.STATE, {
155
+ state: this._state
156
+ });
157
+ this.notifyWaiters();
158
+ }
159
+ cancel(reason) {
160
+ if (this._state === _constants.StreamState.ENDED || this._state === _constants.StreamState.ERROR || this._state === _constants.StreamState.CANCELLED) return;
161
+ this._state = _constants.StreamState.CANCELLED;
162
+ this.terminalError = new Error(reason || _constants.Messages.STREAM_CANCELLED);
163
+ this.emit(_constants.StreamEvent.CANCEL, {
164
+ reason,
165
+ error: this.terminalError
166
+ });
167
+ this.emit(_constants.StreamEvent.STATE, {
168
+ state: this._state
169
+ });
170
+ this.notifyWaiters();
171
+ }
172
+
173
+ /**
174
+ * Read-side: enqueue a decoded chunk
175
+ */
176
+ pushChunk(chunk) {
177
+ if (this._state !== _constants.StreamState.PENDING && this._state !== _constants.StreamState.STREAMING) return;
178
+ this._state = _constants.StreamState.STREAMING;
179
+ this.chunks.push(chunk);
180
+ this.emit(_constants.StreamEvent.DATA, {
181
+ chunk
182
+ });
183
+ this.emit(_constants.StreamEvent.STATE, {
184
+ state: this._state
185
+ });
186
+ this.notifyWaiters();
187
+ }
188
+
189
+ /**
190
+ * Read-side: mark end
191
+ */
192
+ end() {
193
+ if (this._state === _constants.StreamState.ENDED) return;
194
+ this._state = _constants.StreamState.ENDED;
195
+ this.emit(_constants.StreamEvent.END);
196
+ this.emit(_constants.StreamEvent.STATE, {
197
+ state: this._state
198
+ });
199
+ this.notifyWaiters();
200
+ }
201
+
202
+ /**
203
+ * Handle inbound message (shared).
204
+ * - ReadableStream will use DATA/END/ERROR/CANCEL
205
+ * - WritableStream may use PULL/ACK/CANCEL separately, so this is intentionally minimal.
206
+ */
207
+ handleInboundMessage(_data) {
208
+ // Intentionally left blank in core.
209
+ }
210
+ }
211
+ exports.IframeStreamCore = IframeStreamCore;
@@ -1,9 +1,85 @@
1
- import { StreamType as StreamTypeConstant, StreamState as StreamStateConstant } from '../constants';
1
+ import { StreamType as StreamTypeConstant, StreamState as StreamStateConstant, StreamMode as StreamModeConstant, StreamEvent as StreamEventConstant } from '../constants';
2
2
  import type { MessageChannel } from '../message';
3
3
  /**
4
4
  * Stream type
5
5
  */
6
6
  export type StreamType = typeof StreamTypeConstant[keyof typeof StreamTypeConstant];
7
+ /** Writable stream mode */
8
+ export type WritableStreamMode = typeof StreamModeConstant[keyof typeof StreamModeConstant];
9
+ /**
10
+ * Stream event name
11
+ */
12
+ export type StreamEventName = typeof StreamEventConstant[keyof typeof StreamEventConstant];
13
+ /**
14
+ * Stream event payload map (for stream.on/once/off typing)
15
+ */
16
+ export type StreamEventPayloadMap = {
17
+ start: {
18
+ streamId: string;
19
+ type: StreamType;
20
+ chunked: boolean;
21
+ mode?: WritableStreamMode;
22
+ metadata?: Record<string, any>;
23
+ };
24
+ data: {
25
+ chunk: any;
26
+ done?: boolean;
27
+ seq?: number;
28
+ };
29
+ read: {
30
+ value: any;
31
+ };
32
+ write: {
33
+ data: any;
34
+ done?: boolean;
35
+ };
36
+ send: {
37
+ seq: number;
38
+ done?: boolean;
39
+ };
40
+ pull: {
41
+ credit: number;
42
+ totalCredit?: number;
43
+ };
44
+ ack: {
45
+ seq?: number;
46
+ };
47
+ end: void;
48
+ cancel: {
49
+ reason?: string;
50
+ remote?: boolean;
51
+ error?: Error;
52
+ };
53
+ error: {
54
+ error?: Error;
55
+ };
56
+ timeout: {
57
+ timeout?: number;
58
+ };
59
+ expired: {
60
+ timeout: number;
61
+ };
62
+ state: {
63
+ state: StreamState;
64
+ };
65
+ };
66
+ export type StreamEventListener<E extends StreamEventName = StreamEventName> = (payload: StreamEventPayloadMap[E]) => void;
67
+ /**
68
+ * Per-frame send/receive options (optional).
69
+ */
70
+ export interface StreamFrameOptions {
71
+ /**
72
+ * Whether to require delivery acknowledgment for this frame.
73
+ *
74
+ * When enabled:
75
+ * - the sender attaches `requireAck: true` to the underlying postMessage
76
+ * - the receiver (MessageDispatcher) auto-replies with `ack` after it accepts the message
77
+ * - the returned Promise resolves to true/false
78
+ */
79
+ requireAck?: boolean;
80
+ /** Acknowledgment timeout (ms). Default: DefaultTimeout.ACK */
81
+ ackTimeout?: number;
82
+ }
7
83
  /**
8
84
  * Stream data chunk
9
85
  */
@@ -21,6 +97,24 @@ export interface WritableStreamOptions {
21
97
  type?: StreamType;
22
98
  /** Whether to use chunked transfer (true: multiple transfers, false: single transfer) */
23
99
  chunked?: boolean;
100
+ /**
101
+ * Stream mode
102
+ * - pull (default): uses iterator/next to produce chunks
103
+ * - push: user calls write()/end() manually (iterator/next not required)
104
+ */
105
+ mode?: WritableStreamMode;
106
+ /**
107
+ * Stream expire timeout (milliseconds).
108
+ * If set to a positive number, the stream will automatically error out after this duration
109
+ * to avoid leaking resources when the receiver never finishes consuming.
110
+ */
111
+ expireTimeout?: number;
112
+ /**
113
+ * Stream idle timeout (milliseconds) on the writer side.
114
+ * - Used for pull/ack protocol: if the writer does not receive pull/ack within this duration,
115
+ * it will perform a heartbeat check (if available) and fail the stream if not alive.
116
+ */
117
+ streamTimeout?: number;
24
118
  /** Data generator iterator (higher priority than next) */
25
119
  iterator?: () => AsyncGenerator<any, void, unknown>;
26
120
  /** Data generator function (returns next chunk on each call) */
@@ -32,6 +126,28 @@ export interface WritableStreamOptions {
32
126
  * If true, client will automatically read the stream and return fileData instead of stream
33
127
  */
34
128
  autoResolve?: boolean;
129
+ /**
130
+ * Maximum number of pending (unsent) chunks kept in memory on the writer side.
131
+ *
132
+ * This is especially useful for long-lived `push` streams when the receiver stops pulling
133
+ * (e.g. tab hidden/backgrounded): the writer-side `pendingQueue` may grow without bound if
134
+ * user code keeps calling write().
135
+ *
136
+ * - When enabled (value > 0), exceeding the limit will cause write()/producer to throw.
137
+ * - Default: unlimited.
138
+ */
139
+ maxPendingChunks?: number;
140
+ /**
141
+ * Maximum bytes of pending (unsent) chunks kept in memory on the writer side.
142
+ *
143
+ * Notes:
144
+ * - Only counts well-defined types: string / ArrayBuffer / TypedArray(DataView) / Blob / File.
145
+ * - For other values (plain objects), the size is treated as 0 (not counted). If you need
146
+ * byte-level backpressure for objects, stringify them yourself before write().
147
+ *
148
+ * Default: unlimited.
149
+ */
150
+ maxPendingBytes?: number;
35
151
  }
36
152
  /**
37
153
  * Readable stream configuration options
@@ -43,6 +159,28 @@ export interface ReadableStreamOptions {
43
159
  chunked?: boolean;
44
160
  /** Stream metadata */
45
161
  metadata?: Record<string, any>;
162
+ /** secretKey (for generating outgoing stream control messages like stream_cancel) */
163
+ secretKey?: string;
164
+ /**
165
+ * Idle timeout (milliseconds) while waiting for new stream data.
166
+ * - When triggered, the stream may perform a heartbeat check (if provided).
167
+ */
168
+ idleTimeout?: number;
169
+ /**
170
+ * Heartbeat function used during idle timeout.
171
+ * - Should resolve true if connection is still alive, otherwise false.
172
+ */
173
+ heartbeat?: () => Promise<boolean>;
174
+ /**
175
+ * Whether to discard already-consumed chunks during async iteration to reduce memory usage.
176
+ * Default is false (keeps all chunks, useful for read()/readAll()).
177
+ */
178
+ consume?: boolean;
179
+ /**
180
+ * Stream mode from the sender (optional).
181
+ * - Populated from stream_start so receiver can make decisions.
182
+ */
183
+ mode?: WritableStreamMode;
46
184
  }
47
185
  /**
48
186
  * File writable stream configuration options
@@ -80,6 +218,18 @@ export interface StreamBindContext {
80
218
  secretKey?: string;
81
219
  /** MessageChannel for sending messages */
82
220
  channel: MessageChannel;
221
+ /**
222
+ * Register stream control message handler (for pull/ack/cancel) on the owner side.
223
+ * This allows writable streams to receive `stream_*` control messages routed by core client/server.
224
+ */
225
+ registerStreamHandler?: (streamId: string, handler: (data: StreamMessageData) => void) => void;
226
+ /** Unregister stream handler */
227
+ unregisterStreamHandler?: (streamId: string) => void;
228
+ /**
229
+ * Heartbeat function used by streamTimeout on writer side (optional).
230
+ * Should resolve true if connection is alive.
231
+ */
232
+ heartbeat?: () => Promise<boolean>;
83
233
  /** Server instance ID (for server-side streams, used as creatorId) */
84
234
  serverId?: string;
85
235
  /** Client instance ID (for client-side streams, used as creatorId) */
@@ -107,8 +257,29 @@ export interface IIframeWritableStream {
107
257
  _bind(context: StreamBindContext): void;
108
258
  /** Start stream transfer */
109
259
  start(): Promise<void>;
260
+ /**
261
+ * Push a chunk manually (only meaningful when mode === 'push').
262
+ * @param data Chunk payload
263
+ * @param done Whether this is the last chunk
264
+ */
265
+ write(data: any, done?: boolean): void;
266
+ write(data: any, options: StreamFrameOptions): Promise<boolean>;
267
+ write(data: any, done: boolean | undefined, options: StreamFrameOptions): Promise<boolean>;
268
+ /**
269
+ * End the stream (only meaningful when mode === 'push').
270
+ */
271
+ end(): void;
272
+ /** Abort stream transfer */
273
+ abort(reason?: string): void;
110
274
  /** Cancel stream transfer */
111
275
  cancel(reason?: string): void;
276
+ /**
277
+ * Subscribe to stream events (debug/observability).
278
+ * Returns an unsubscribe function.
279
+ */
280
+ on<E extends StreamEventName>(event: E, listener: StreamEventListener<E>): () => void;
281
+ once<E extends StreamEventName>(event: E, listener: StreamEventListener<E>): () => void;
282
+ off<E extends StreamEventName>(event: E, listener: StreamEventListener<E>): void;
112
283
  }
113
284
  /**
114
285
  * Readable stream interface (client-side)
@@ -124,16 +295,38 @@ export interface IIframeReadableStream<T = any> {
124
295
  readonly state: StreamState;
125
296
  /** Stream metadata */
126
297
  readonly metadata?: Record<string, any>;
127
- /** Read all data (for non-chunked streams or wait for chunked stream to complete) */
128
- read(): Promise<T>;
298
+ /**
299
+ * Stream mode from the sender (if provided).
300
+ */
301
+ readonly mode?: WritableStreamMode;
302
+ /**
303
+ * Read all data (waits until the stream ends).
304
+ * - Non-chunked streams typically resolve to a single chunk (T)
305
+ * - Chunked streams may resolve to T[] (depending on stream implementation)
306
+ */
307
+ read(): Promise<T | T[]>;
308
+ /**
309
+ * Read all chunks as an array (always returns T[]).
310
+ * Useful for chunked streams when you want a consistent return type.
311
+ */
312
+ readAll(): Promise<T[]>;
129
313
  /** Async iterator (for chunked streams) */
130
314
  [Symbol.asyncIterator](): AsyncIterator<T>;
315
+ /** Abort stream */
316
+ abort(reason?: string): void;
131
317
  /** Cancel stream */
132
318
  cancel(reason?: string): void;
133
319
  /** Listen for stream end */
134
320
  onEnd(callback: () => void): void;
135
321
  /** Listen for stream error */
136
322
  onError(callback: (error: Error) => void): void;
323
+ /**
324
+ * Subscribe to stream events (debug/observability).
325
+ * Returns an unsubscribe function.
326
+ */
327
+ on<E extends StreamEventName>(event: E, listener: StreamEventListener<E>): () => void;
328
+ once<E extends StreamEventName>(event: E, listener: StreamEventListener<E>): () => void;
329
+ off<E extends StreamEventName>(event: E, listener: StreamEventListener<E>): void;
137
330
  }
138
331
  /**
139
332
  * File readable stream interface
@@ -164,10 +357,17 @@ export interface StreamMessageData {
164
357
  type?: StreamType;
165
358
  /** Whether chunked */
166
359
  chunked?: boolean;
360
+ /** Stream mode (provided by stream_start) */
361
+ mode?: WritableStreamMode;
167
362
  /** Data chunk */
168
363
  data?: any;
364
+ /** Chunk sequence number (used for data chunk identification) */
365
+ seq?: number;
169
366
  /** Whether this is the last chunk */
170
367
  done?: boolean;
368
+ /** Pull credit (how many chunks requested) */
369
+ credit?: number;
370
+ /** reserved */
171
371
  /** Error message */
172
372
  error?: string;
173
373
  /** Cancel reason */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/stream/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,kBAAkB,EAAE,WAAW,IAAI,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACpG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,kBAAkB,CAAC,MAAM,OAAO,kBAAkB,CAAC,CAAC;AAEpF;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,iBAAiB;IACjB,IAAI,EAAE,GAAG,CAAC;IACV,qCAAqC;IACrC,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,yDAAyD;IACzD,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,yFAAyF;IACzF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACpD,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;IAChD,sBAAsB;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,kBAAkB;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,sCAAsC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACpF,eAAe;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACpF,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,OAAO,EAAE,cAAc,CAAC;IACxB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,mBAAmB,CAAC,MAAM,OAAO,mBAAmB,CAAC,CAAC;AAEvF;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,gBAAgB;IAChB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,kBAAkB;IAClB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,sBAAsB;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,mBAAmB;IACnB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,8BAA8B;IAC9B,KAAK,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACxC,4BAA4B;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,6BAA6B;IAC7B,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB,CAAC,CAAC,GAAG,GAAG;IAC5C,gBAAgB;IAChB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,kBAAkB;IAClB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,sBAAsB;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,mBAAmB;IACnB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,sBAAsB;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC,qFAAqF;IACrF,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACnB,2CAA2C;IAC3C,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;IAC3C,oBAAoB;IACpB,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,4BAA4B;IAC5B,KAAK,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAClC,8BAA8B;IAC9B,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,qBAAqB,CAAC,UAAU,CAAC;IAClF,eAAe;IACf,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB;IAChB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB;IAChB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB;IACnB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,mBAAmB;IACnB,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,0BAA0B;IAC1B,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1C,uBAAuB;IACvB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,sBAAsB;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,qCAAqC;IACrC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/stream/types.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,43 @@
1
- import { StreamType, StreamState, StreamBindContext, WritableStreamOptions, IIframeWritableStream } from './types';
1
+ import { StreamState, StreamBindContext, WritableStreamOptions, IIframeWritableStream, WritableStreamMode, StreamFrameOptions } from './types';
2
+ import { IframeStreamCore } from './stream-core';
2
3
  /**
3
4
  * IframeWritableStream - Server-side writable stream
4
- * Used to send stream data to the client
5
+ *
6
+ * Writer/producer stream.
7
+ * It can be created on either side:
8
+ * - Server → Client: used as response stream (via `res.sendStream(stream)`)
9
+ * - Client → Server: used as request body stream (via `client.sendStream(path, stream)`)
5
10
  */
6
- export declare class IframeWritableStream implements IIframeWritableStream {
7
- readonly streamId: string;
8
- readonly type: StreamType;
9
- readonly chunked: boolean;
10
- private _state;
11
+ export declare class IframeWritableStream extends IframeStreamCore<any> implements IIframeWritableStream {
12
+ readonly mode: WritableStreamMode;
11
13
  private context;
12
14
  private readonly iterator?;
13
15
  private readonly nextFn?;
14
- private readonly metadata?;
15
16
  private readonly autoResolve?;
17
+ private readonly expireTimeout?;
18
+ private readonly streamTimeout?;
19
+ private readonly maxPendingChunks?;
20
+ private readonly maxPendingBytes?;
21
+ private expireTimer;
22
+ private idleTimer;
23
+ private lastRemoteActivityAt;
24
+ private heartbeatInFlight;
25
+ /** pull/ack protocol */
26
+ private pullCredit;
27
+ private seq;
28
+ private pendingBytes;
29
+ private readonly pendingQueue;
30
+ private pumping;
31
+ private completionPromise;
32
+ private resolveCompletion;
33
+ private rejectCompletion;
34
+ private ackWaiters;
35
+ private ackReceiverRegistered;
36
+ private ackReceiver?;
16
37
  constructor(options?: WritableStreamOptions);
38
+ private enqueue;
39
+ private estimateChunkBytes;
40
+ private utf8ByteLength;
17
41
  /** Get stream state */
18
42
  get state(): StreamState;
19
43
  /**
@@ -21,26 +45,44 @@ export declare class IframeWritableStream implements IIframeWritableStream {
21
45
  * Called during res.sendStream()
22
46
  */
23
47
  _bind(context: StreamBindContext): void;
48
+ private registerControlHandler;
49
+ private unregisterControlHandler;
50
+ private handleControlMessage;
51
+ private clearIdleTimer;
52
+ private performHeartbeat;
53
+ private startIdleTimer;
24
54
  /**
25
55
  * Send message (to client when server-side stream, to server when client-side stream)
26
56
  */
27
57
  private sendMessage;
58
+ private ensureAckReceiver;
59
+ private cleanupAckWaiters;
60
+ private registerAckWaiter;
61
+ private clearExpireTimer;
62
+ private startExpireTimer;
28
63
  /**
29
64
  * Start stream transfer
30
65
  */
31
66
  start(): Promise<void>;
32
67
  /**
33
- * Generate data from iterator
68
+ * Push a chunk manually (mode === 'push').
69
+ */
70
+ write(data: any, done?: boolean): void;
71
+ write(data: any, options: StreamFrameOptions): Promise<boolean>;
72
+ write(data: any, done: boolean | undefined, options: StreamFrameOptions): Promise<boolean>;
73
+ /**
74
+ * End the stream (mode === 'push').
34
75
  */
35
- private streamFromIterator;
76
+ end(): void;
36
77
  /**
37
- * Generate data from next function
78
+ * Generate data from iterator
38
79
  */
39
- private streamFromNext;
80
+ private pumpFromGenerator;
40
81
  /**
41
82
  * Send data chunk
42
83
  */
43
84
  private sendData;
85
+ private flush;
44
86
  /**
45
87
  * Encode data (subclasses can override, e.g., FileStream needs Base64 encoding)
46
88
  */
@@ -48,11 +90,15 @@ export declare class IframeWritableStream implements IIframeWritableStream {
48
90
  /**
49
91
  * End stream
50
92
  */
51
- private end;
93
+ private endInternal;
52
94
  /**
53
95
  * Send error
54
96
  */
55
97
  private error;
98
+ /**
99
+ * Abort stream transfer (is alias of cancel method)
100
+ */
101
+ abort(reason?: string): void;
56
102
  /**
57
103
  * Cancel stream transfer
58
104
  */
@@ -1 +1 @@
1
- {"version":3,"file":"writable-stream.d.ts","sourceRoot":"","sources":["../../src/stream/writable-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EAEtB,MAAM,SAAS,CAAC;AAWjB;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,qBAAqB;IAChE,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,IAAI,EAAE,UAAU,CAAC;IACjC,SAAgB,OAAO,EAAE,OAAO,CAAC;IAEjC,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAA2C;IACrE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAA2C;IACnE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAsB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAU;gBAEpB,OAAO,GAAE,qBAA0B;IAUtD,uBAAuB;IACvB,IAAW,KAAK,IAAI,WAAW,CAE9B;IAED;;;OAGG;IACI,KAAK,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAI9C;;OAEG;IACH,OAAO,CAAC,WAAW;IA4BnB;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAuCnC;;OAEG;YACW,kBAAkB;IAkChC;;OAEG;YACW,cAAc;IAyB5B;;OAEG;IACH,OAAO,CAAC,QAAQ;IAOhB;;OAEG;IACH,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG;IAIpC;;OAEG;IACH,OAAO,CAAC,GAAG;IAOX;;OAEG;IACH,OAAO,CAAC,KAAK;IASb;;OAEG;IACI,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;CAerC"}
1
+ {"version":3,"file":"writable-stream.d.ts","sourceRoot":"","sources":["../../src/stream/writable-stream.ts"],"names":[],"mappings":"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"}