@tonyclaw/agent-inspector 4.0.7 → 4.0.9

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 (119) hide show
  1. package/.output/backend/nitro.json +1 -1
  2. package/.output/cli.js +915 -25970
  3. package/.output/server/_chunks/ssr-renderer.mjs +1 -38
  4. package/.output/server/_libs/@opentelemetry/semantic-conventions+[...].mjs +1 -2658
  5. package/.output/server/_libs/agent-base.mjs +2 -234
  6. package/.output/server/_libs/ajv-formats.mjs +1 -330
  7. package/.output/server/_libs/ajv.mjs +8 -6080
  8. package/.output/server/_libs/anthropic-ai__sdk.mjs +19 -6021
  9. package/.output/server/_libs/atomically.mjs +1 -155
  10. package/.output/server/_libs/base64-js.mjs +1 -102
  11. package/.output/server/_libs/bignumber.js.mjs +1 -1353
  12. package/.output/server/_libs/buffer-equal-constant-time.mjs +1 -38
  13. package/.output/server/_libs/conf.mjs +1 -635
  14. package/.output/server/_libs/cookie-es.mjs +1 -44
  15. package/.output/server/_libs/core-util-is.mjs +1 -75
  16. package/.output/server/_libs/data-uri-to-buffer.mjs +1 -39
  17. package/.output/server/_libs/debounce-fn.mjs +1 -69
  18. package/.output/server/_libs/debug.mjs +5 -547
  19. package/.output/server/_libs/dot-prop.mjs +1 -265
  20. package/.output/server/_libs/ecdsa-sig-formatter.mjs +1 -162
  21. package/.output/server/_libs/env-paths.mjs +1 -57
  22. package/.output/server/_libs/extend.mjs +1 -94
  23. package/.output/server/_libs/fast-deep-equal.mjs +1 -38
  24. package/.output/server/_libs/fast-uri.mjs +1 -812
  25. package/.output/server/_libs/fetch-blob.mjs +1 -287
  26. package/.output/server/_libs/formdata-polyfill.mjs +9 -86
  27. package/.output/server/_libs/gaxios.mjs +5 -926
  28. package/.output/server/_libs/gcp-metadata.mjs +1 -322
  29. package/.output/server/_libs/google-auth-library.mjs +16 -6339
  30. package/.output/server/_libs/google-logging-utils.mjs +1 -385
  31. package/.output/server/_libs/google__genai.mjs +13 -18034
  32. package/.output/server/_libs/h3-v2.mjs +2 -287
  33. package/.output/server/_libs/h3.mjs +2 -408
  34. package/.output/server/_libs/has-flag.mjs +1 -16
  35. package/.output/server/_libs/https-proxy-agent.mjs +7 -280
  36. package/.output/server/_libs/immediate.mjs +1 -74
  37. package/.output/server/_libs/inherits.mjs +1 -50
  38. package/.output/server/_libs/isarray.mjs +1 -14
  39. package/.output/server/_libs/isbot.mjs +1 -20
  40. package/.output/server/_libs/json-bigint.mjs +8 -413
  41. package/.output/server/_libs/json-schema-traverse.mjs +1 -91
  42. package/.output/server/_libs/jszip.mjs +2 -3051
  43. package/.output/server/_libs/jwa.mjs +3 -233
  44. package/.output/server/_libs/jws.mjs +1 -298
  45. package/.output/server/_libs/lie.mjs +1 -273
  46. package/.output/server/_libs/mariozechner__pi-agent-core.mjs +1 -824
  47. package/.output/server/_libs/mariozechner__pi-ai.mjs +34 -22887
  48. package/.output/server/_libs/mimic-function.mjs +2 -47
  49. package/.output/server/_libs/mistralai__mistralai.mjs +7 -32045
  50. package/.output/server/_libs/modelcontextprotocol__core.mjs +1 -1121
  51. package/.output/server/_libs/modelcontextprotocol__server.mjs +13 -13205
  52. package/.output/server/_libs/ms.mjs +1 -120
  53. package/.output/server/_libs/node-domexception.mjs +1 -17
  54. package/.output/server/_libs/node-fetch.mjs +4 -1578
  55. package/.output/server/_libs/ohash.mjs +1 -1
  56. package/.output/server/_libs/openai.mjs +23 -6766
  57. package/.output/server/_libs/opentelemetry__api.mjs +1 -1678
  58. package/.output/server/_libs/p-retry.mjs +1 -87
  59. package/.output/server/_libs/pako.mjs +1 -4223
  60. package/.output/server/_libs/partial-json.mjs +2 -244
  61. package/.output/server/_libs/process-nextick-args.mjs +1 -48
  62. package/.output/server/_libs/react-dom.mjs +62 -10778
  63. package/.output/server/_libs/react.mjs +1 -519
  64. package/.output/server/_libs/readable-stream.mjs +1 -1518
  65. package/.output/server/_libs/retry.mjs +1 -236
  66. package/.output/server/_libs/rou3.mjs +1 -14
  67. package/.output/server/_libs/safe-buffer.mjs +1 -126
  68. package/.output/server/_libs/semver.mjs +1 -1938
  69. package/.output/server/_libs/seroval-plugins.mjs +1 -58
  70. package/.output/server/_libs/seroval.mjs +3 -1775
  71. package/.output/server/_libs/setimmediate.mjs +1 -152
  72. package/.output/server/_libs/srvx.mjs +4 -1390
  73. package/.output/server/_libs/stubborn-fs.mjs +1 -91
  74. package/.output/server/_libs/stubborn-utils.mjs +1 -66
  75. package/.output/server/_libs/supports-color.mjs +1 -108
  76. package/.output/server/_libs/tanstack__history.mjs +1 -230
  77. package/.output/server/_libs/tanstack__react-router.mjs +1 -848
  78. package/.output/server/_libs/tanstack__react-store.mjs +1 -1
  79. package/.output/server/_libs/tanstack__router-core.mjs +1 -4839
  80. package/.output/server/_libs/typebox.mjs +3 -6596
  81. package/.output/server/_libs/ufo.mjs +1 -54
  82. package/.output/server/_libs/uint8array-extras.mjs +1 -69
  83. package/.output/server/_libs/util-deprecate.mjs +1 -12
  84. package/.output/server/_libs/web-streams-polyfill.mjs +1 -4282
  85. package/.output/server/_libs/when-exit.mjs +1 -53
  86. package/.output/server/_libs/ws.mjs +7 -3715
  87. package/.output/server/_libs/zod-to-json-schema.mjs +5 -1207
  88. package/.output/server/_libs/zod.mjs +59 -9958
  89. package/.output/server/_ssr/empty-plugin-adapters-C3Q1xu4u.mjs +1 -0
  90. package/.output/server/_ssr/index.mjs +2 -1512
  91. package/.output/server/_ssr/publicBasePathContext--TAQS2_5.mjs +1 -0
  92. package/.output/server/_ssr/router-zSWaME0l.mjs +341 -0
  93. package/.output/server/_ssr/start-PDVGOqUN.mjs +1 -0
  94. package/.output/server/_tanstack-start-manifest_v-D7cKwKzM.mjs +1 -0
  95. package/.output/server/index.mjs +1 -320
  96. package/.output/ui/assets/{CompareDrawer-fWsmegqc.js → CompareDrawer-C6KvvPtJ.js} +1 -1
  97. package/.output/ui/assets/{InspectorPet-Z9XIA0t8.js → InspectorPet-CSH6OAhB.js} +1 -1
  98. package/.output/ui/assets/{ProxyViewerContainer-DhIB_ZAU.js → ProxyViewerContainer-vPd7g0Xn.js} +4 -4
  99. package/.output/ui/assets/{ReplayDialog-w_3PENIi.js → ReplayDialog-DbXUcT39.js} +1 -1
  100. package/.output/ui/assets/{RequestAnatomy-Dix0D4G6.js → RequestAnatomy-BWOCIN7J.js} +1 -1
  101. package/.output/ui/assets/{ResponseView-BtlbxW2o.js → ResponseView-BqDbTzFs.js} +1 -1
  102. package/.output/ui/assets/{StreamingChunkSequence-BqNQJASb.js → StreamingChunkSequence-UHl2g6w6.js} +1 -1
  103. package/.output/ui/assets/{_sessionId-DPiw4uu2.js → _sessionId-B2S61lDJ.js} +1 -1
  104. package/.output/ui/assets/{_sessionId-Bo9J8C5J.js → _sessionId-CS6hqj8-.js} +1 -1
  105. package/.output/ui/assets/{index-BL5id77_.js → index-C6V66rNI.js} +1 -1
  106. package/.output/ui/assets/{index-icwV1YtX.js → index-DY5xBYHr.js} +1 -1
  107. package/.output/ui/assets/{index-Wd6TK76x.js → index-DgyIeqyV.js} +2 -2
  108. package/.output/ui/assets/{index-CWSVfojK.js → index-HLs5jTyi.js} +1 -1
  109. package/.output/ui/assets/{json-viewer-Cpr3uw1I.js → json-viewer-i5LcN8e7.js} +1 -1
  110. package/.output/ui/assets/{jszip.min-Cncg6JOi.js → jszip.min-yNpb9qnf.js} +1 -1
  111. package/.output/ui/index.html +1 -1
  112. package/.output/workers/logFinalizer.worker.js +41 -17739
  113. package/.output/workers/sessionWorkerEntry.js +41 -17735
  114. package/package.json +7 -7
  115. package/.output/server/_ssr/empty-plugin-adapters-BFgPZ6_d.mjs +0 -6
  116. package/.output/server/_ssr/publicBasePathContext-IH2ilOfu.mjs +0 -176
  117. package/.output/server/_ssr/router-weYHAqCb.mjs +0 -27177
  118. package/.output/server/_ssr/start-COQu_AgD.mjs +0 -57
  119. package/.output/server/_tanstack-start-manifest_v-ClTaMkEj.mjs +0 -4
@@ -1,4282 +1 @@
1
- import { c as commonjsGlobal } from "./react.mjs";
2
- var ponyfill_es2018$1 = { exports: {} };
3
- var ponyfill_es2018 = ponyfill_es2018$1.exports;
4
- var hasRequiredPonyfill_es2018;
5
- function requirePonyfill_es2018() {
6
- if (hasRequiredPonyfill_es2018) return ponyfill_es2018$1.exports;
7
- hasRequiredPonyfill_es2018 = 1;
8
- (function(module, exports$1) {
9
- (function(global, factory) {
10
- factory(exports$1);
11
- })(ponyfill_es2018, (function(exports$12) {
12
- function noop() {
13
- return void 0;
14
- }
15
- function typeIsObject(x) {
16
- return typeof x === "object" && x !== null || typeof x === "function";
17
- }
18
- const rethrowAssertionErrorRejection = noop;
19
- function setFunctionName(fn, name) {
20
- try {
21
- Object.defineProperty(fn, "name", {
22
- value: name,
23
- configurable: true
24
- });
25
- } catch (_a2) {
26
- }
27
- }
28
- const originalPromise = Promise;
29
- const originalPromiseThen = Promise.prototype.then;
30
- const originalPromiseReject = Promise.reject.bind(originalPromise);
31
- function newPromise(executor) {
32
- return new originalPromise(executor);
33
- }
34
- function promiseResolvedWith(value) {
35
- return newPromise((resolve) => resolve(value));
36
- }
37
- function promiseRejectedWith(reason) {
38
- return originalPromiseReject(reason);
39
- }
40
- function PerformPromiseThen(promise, onFulfilled, onRejected) {
41
- return originalPromiseThen.call(promise, onFulfilled, onRejected);
42
- }
43
- function uponPromise(promise, onFulfilled, onRejected) {
44
- PerformPromiseThen(PerformPromiseThen(promise, onFulfilled, onRejected), void 0, rethrowAssertionErrorRejection);
45
- }
46
- function uponFulfillment(promise, onFulfilled) {
47
- uponPromise(promise, onFulfilled);
48
- }
49
- function uponRejection(promise, onRejected) {
50
- uponPromise(promise, void 0, onRejected);
51
- }
52
- function transformPromiseWith(promise, fulfillmentHandler, rejectionHandler) {
53
- return PerformPromiseThen(promise, fulfillmentHandler, rejectionHandler);
54
- }
55
- function setPromiseIsHandledToTrue(promise) {
56
- PerformPromiseThen(promise, void 0, rethrowAssertionErrorRejection);
57
- }
58
- let _queueMicrotask = (callback) => {
59
- if (typeof queueMicrotask === "function") {
60
- _queueMicrotask = queueMicrotask;
61
- } else {
62
- const resolvedPromise = promiseResolvedWith(void 0);
63
- _queueMicrotask = (cb) => PerformPromiseThen(resolvedPromise, cb);
64
- }
65
- return _queueMicrotask(callback);
66
- };
67
- function reflectCall(F, V, args) {
68
- if (typeof F !== "function") {
69
- throw new TypeError("Argument is not a function");
70
- }
71
- return Function.prototype.apply.call(F, V, args);
72
- }
73
- function promiseCall(F, V, args) {
74
- try {
75
- return promiseResolvedWith(reflectCall(F, V, args));
76
- } catch (value) {
77
- return promiseRejectedWith(value);
78
- }
79
- }
80
- const QUEUE_MAX_ARRAY_SIZE = 16384;
81
- class SimpleQueue {
82
- constructor() {
83
- this._cursor = 0;
84
- this._size = 0;
85
- this._front = {
86
- _elements: [],
87
- _next: void 0
88
- };
89
- this._back = this._front;
90
- this._cursor = 0;
91
- this._size = 0;
92
- }
93
- get length() {
94
- return this._size;
95
- }
96
- // For exception safety, this method is structured in order:
97
- // 1. Read state
98
- // 2. Calculate required state mutations
99
- // 3. Perform state mutations
100
- push(element) {
101
- const oldBack = this._back;
102
- let newBack = oldBack;
103
- if (oldBack._elements.length === QUEUE_MAX_ARRAY_SIZE - 1) {
104
- newBack = {
105
- _elements: [],
106
- _next: void 0
107
- };
108
- }
109
- oldBack._elements.push(element);
110
- if (newBack !== oldBack) {
111
- this._back = newBack;
112
- oldBack._next = newBack;
113
- }
114
- ++this._size;
115
- }
116
- // Like push(), shift() follows the read -> calculate -> mutate pattern for
117
- // exception safety.
118
- shift() {
119
- const oldFront = this._front;
120
- let newFront = oldFront;
121
- const oldCursor = this._cursor;
122
- let newCursor = oldCursor + 1;
123
- const elements = oldFront._elements;
124
- const element = elements[oldCursor];
125
- if (newCursor === QUEUE_MAX_ARRAY_SIZE) {
126
- newFront = oldFront._next;
127
- newCursor = 0;
128
- }
129
- --this._size;
130
- this._cursor = newCursor;
131
- if (oldFront !== newFront) {
132
- this._front = newFront;
133
- }
134
- elements[oldCursor] = void 0;
135
- return element;
136
- }
137
- // The tricky thing about forEach() is that it can be called
138
- // re-entrantly. The queue may be mutated inside the callback. It is easy to
139
- // see that push() within the callback has no negative effects since the end
140
- // of the queue is checked for on every iteration. If shift() is called
141
- // repeatedly within the callback then the next iteration may return an
142
- // element that has been removed. In this case the callback will be called
143
- // with undefined values until we either "catch up" with elements that still
144
- // exist or reach the back of the queue.
145
- forEach(callback) {
146
- let i = this._cursor;
147
- let node = this._front;
148
- let elements = node._elements;
149
- while (i !== elements.length || node._next !== void 0) {
150
- if (i === elements.length) {
151
- node = node._next;
152
- elements = node._elements;
153
- i = 0;
154
- if (elements.length === 0) {
155
- break;
156
- }
157
- }
158
- callback(elements[i]);
159
- ++i;
160
- }
161
- }
162
- // Return the element that would be returned if shift() was called now,
163
- // without modifying the queue.
164
- peek() {
165
- const front = this._front;
166
- const cursor = this._cursor;
167
- return front._elements[cursor];
168
- }
169
- }
170
- const AbortSteps = /* @__PURE__ */ Symbol("[[AbortSteps]]");
171
- const ErrorSteps = /* @__PURE__ */ Symbol("[[ErrorSteps]]");
172
- const CancelSteps = /* @__PURE__ */ Symbol("[[CancelSteps]]");
173
- const PullSteps = /* @__PURE__ */ Symbol("[[PullSteps]]");
174
- const ReleaseSteps = /* @__PURE__ */ Symbol("[[ReleaseSteps]]");
175
- function ReadableStreamReaderGenericInitialize(reader, stream) {
176
- reader._ownerReadableStream = stream;
177
- stream._reader = reader;
178
- if (stream._state === "readable") {
179
- defaultReaderClosedPromiseInitialize(reader);
180
- } else if (stream._state === "closed") {
181
- defaultReaderClosedPromiseInitializeAsResolved(reader);
182
- } else {
183
- defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);
184
- }
185
- }
186
- function ReadableStreamReaderGenericCancel(reader, reason) {
187
- const stream = reader._ownerReadableStream;
188
- return ReadableStreamCancel(stream, reason);
189
- }
190
- function ReadableStreamReaderGenericRelease(reader) {
191
- const stream = reader._ownerReadableStream;
192
- if (stream._state === "readable") {
193
- defaultReaderClosedPromiseReject(reader, new TypeError(`Reader was released and can no longer be used to monitor the stream's closedness`));
194
- } else {
195
- defaultReaderClosedPromiseResetToRejected(reader, new TypeError(`Reader was released and can no longer be used to monitor the stream's closedness`));
196
- }
197
- stream._readableStreamController[ReleaseSteps]();
198
- stream._reader = void 0;
199
- reader._ownerReadableStream = void 0;
200
- }
201
- function readerLockException(name) {
202
- return new TypeError("Cannot " + name + " a stream using a released reader");
203
- }
204
- function defaultReaderClosedPromiseInitialize(reader) {
205
- reader._closedPromise = newPromise((resolve, reject) => {
206
- reader._closedPromise_resolve = resolve;
207
- reader._closedPromise_reject = reject;
208
- });
209
- }
210
- function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {
211
- defaultReaderClosedPromiseInitialize(reader);
212
- defaultReaderClosedPromiseReject(reader, reason);
213
- }
214
- function defaultReaderClosedPromiseInitializeAsResolved(reader) {
215
- defaultReaderClosedPromiseInitialize(reader);
216
- defaultReaderClosedPromiseResolve(reader);
217
- }
218
- function defaultReaderClosedPromiseReject(reader, reason) {
219
- if (reader._closedPromise_reject === void 0) {
220
- return;
221
- }
222
- setPromiseIsHandledToTrue(reader._closedPromise);
223
- reader._closedPromise_reject(reason);
224
- reader._closedPromise_resolve = void 0;
225
- reader._closedPromise_reject = void 0;
226
- }
227
- function defaultReaderClosedPromiseResetToRejected(reader, reason) {
228
- defaultReaderClosedPromiseInitializeAsRejected(reader, reason);
229
- }
230
- function defaultReaderClosedPromiseResolve(reader) {
231
- if (reader._closedPromise_resolve === void 0) {
232
- return;
233
- }
234
- reader._closedPromise_resolve(void 0);
235
- reader._closedPromise_resolve = void 0;
236
- reader._closedPromise_reject = void 0;
237
- }
238
- const NumberIsFinite = Number.isFinite || function(x) {
239
- return typeof x === "number" && isFinite(x);
240
- };
241
- const MathTrunc = Math.trunc || function(v) {
242
- return v < 0 ? Math.ceil(v) : Math.floor(v);
243
- };
244
- function isDictionary(x) {
245
- return typeof x === "object" || typeof x === "function";
246
- }
247
- function assertDictionary(obj, context) {
248
- if (obj !== void 0 && !isDictionary(obj)) {
249
- throw new TypeError(`${context} is not an object.`);
250
- }
251
- }
252
- function assertFunction(x, context) {
253
- if (typeof x !== "function") {
254
- throw new TypeError(`${context} is not a function.`);
255
- }
256
- }
257
- function isObject(x) {
258
- return typeof x === "object" && x !== null || typeof x === "function";
259
- }
260
- function assertObject(x, context) {
261
- if (!isObject(x)) {
262
- throw new TypeError(`${context} is not an object.`);
263
- }
264
- }
265
- function assertRequiredArgument(x, position, context) {
266
- if (x === void 0) {
267
- throw new TypeError(`Parameter ${position} is required in '${context}'.`);
268
- }
269
- }
270
- function assertRequiredField(x, field, context) {
271
- if (x === void 0) {
272
- throw new TypeError(`${field} is required in '${context}'.`);
273
- }
274
- }
275
- function convertUnrestrictedDouble(value) {
276
- return Number(value);
277
- }
278
- function censorNegativeZero(x) {
279
- return x === 0 ? 0 : x;
280
- }
281
- function integerPart(x) {
282
- return censorNegativeZero(MathTrunc(x));
283
- }
284
- function convertUnsignedLongLongWithEnforceRange(value, context) {
285
- const lowerBound = 0;
286
- const upperBound = Number.MAX_SAFE_INTEGER;
287
- let x = Number(value);
288
- x = censorNegativeZero(x);
289
- if (!NumberIsFinite(x)) {
290
- throw new TypeError(`${context} is not a finite number`);
291
- }
292
- x = integerPart(x);
293
- if (x < lowerBound || x > upperBound) {
294
- throw new TypeError(`${context} is outside the accepted range of ${lowerBound} to ${upperBound}, inclusive`);
295
- }
296
- if (!NumberIsFinite(x) || x === 0) {
297
- return 0;
298
- }
299
- return x;
300
- }
301
- function assertReadableStream(x, context) {
302
- if (!IsReadableStream(x)) {
303
- throw new TypeError(`${context} is not a ReadableStream.`);
304
- }
305
- }
306
- function AcquireReadableStreamDefaultReader(stream) {
307
- return new ReadableStreamDefaultReader(stream);
308
- }
309
- function ReadableStreamAddReadRequest(stream, readRequest) {
310
- stream._reader._readRequests.push(readRequest);
311
- }
312
- function ReadableStreamFulfillReadRequest(stream, chunk, done) {
313
- const reader = stream._reader;
314
- const readRequest = reader._readRequests.shift();
315
- if (done) {
316
- readRequest._closeSteps();
317
- } else {
318
- readRequest._chunkSteps(chunk);
319
- }
320
- }
321
- function ReadableStreamGetNumReadRequests(stream) {
322
- return stream._reader._readRequests.length;
323
- }
324
- function ReadableStreamHasDefaultReader(stream) {
325
- const reader = stream._reader;
326
- if (reader === void 0) {
327
- return false;
328
- }
329
- if (!IsReadableStreamDefaultReader(reader)) {
330
- return false;
331
- }
332
- return true;
333
- }
334
- class ReadableStreamDefaultReader {
335
- constructor(stream) {
336
- assertRequiredArgument(stream, 1, "ReadableStreamDefaultReader");
337
- assertReadableStream(stream, "First parameter");
338
- if (IsReadableStreamLocked(stream)) {
339
- throw new TypeError("This stream has already been locked for exclusive reading by another reader");
340
- }
341
- ReadableStreamReaderGenericInitialize(this, stream);
342
- this._readRequests = new SimpleQueue();
343
- }
344
- /**
345
- * Returns a promise that will be fulfilled when the stream becomes closed,
346
- * or rejected if the stream ever errors or the reader's lock is released before the stream finishes closing.
347
- */
348
- get closed() {
349
- if (!IsReadableStreamDefaultReader(this)) {
350
- return promiseRejectedWith(defaultReaderBrandCheckException("closed"));
351
- }
352
- return this._closedPromise;
353
- }
354
- /**
355
- * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}.
356
- */
357
- cancel(reason = void 0) {
358
- if (!IsReadableStreamDefaultReader(this)) {
359
- return promiseRejectedWith(defaultReaderBrandCheckException("cancel"));
360
- }
361
- if (this._ownerReadableStream === void 0) {
362
- return promiseRejectedWith(readerLockException("cancel"));
363
- }
364
- return ReadableStreamReaderGenericCancel(this, reason);
365
- }
366
- /**
367
- * Returns a promise that allows access to the next chunk from the stream's internal queue, if available.
368
- *
369
- * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source.
370
- */
371
- read() {
372
- if (!IsReadableStreamDefaultReader(this)) {
373
- return promiseRejectedWith(defaultReaderBrandCheckException("read"));
374
- }
375
- if (this._ownerReadableStream === void 0) {
376
- return promiseRejectedWith(readerLockException("read from"));
377
- }
378
- let resolvePromise;
379
- let rejectPromise;
380
- const promise = newPromise((resolve, reject) => {
381
- resolvePromise = resolve;
382
- rejectPromise = reject;
383
- });
384
- const readRequest = {
385
- _chunkSteps: (chunk) => resolvePromise({ value: chunk, done: false }),
386
- _closeSteps: () => resolvePromise({ value: void 0, done: true }),
387
- _errorSteps: (e) => rejectPromise(e)
388
- };
389
- ReadableStreamDefaultReaderRead(this, readRequest);
390
- return promise;
391
- }
392
- /**
393
- * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active.
394
- * If the associated stream is errored when the lock is released, the reader will appear errored in the same way
395
- * from now on; otherwise, the reader will appear closed.
396
- *
397
- * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by
398
- * the reader's {@link ReadableStreamDefaultReader.read | read()} method has not yet been settled. Attempting to
399
- * do so will throw a `TypeError` and leave the reader locked to the stream.
400
- */
401
- releaseLock() {
402
- if (!IsReadableStreamDefaultReader(this)) {
403
- throw defaultReaderBrandCheckException("releaseLock");
404
- }
405
- if (this._ownerReadableStream === void 0) {
406
- return;
407
- }
408
- ReadableStreamDefaultReaderRelease(this);
409
- }
410
- }
411
- Object.defineProperties(ReadableStreamDefaultReader.prototype, {
412
- cancel: { enumerable: true },
413
- read: { enumerable: true },
414
- releaseLock: { enumerable: true },
415
- closed: { enumerable: true }
416
- });
417
- setFunctionName(ReadableStreamDefaultReader.prototype.cancel, "cancel");
418
- setFunctionName(ReadableStreamDefaultReader.prototype.read, "read");
419
- setFunctionName(ReadableStreamDefaultReader.prototype.releaseLock, "releaseLock");
420
- if (typeof Symbol.toStringTag === "symbol") {
421
- Object.defineProperty(ReadableStreamDefaultReader.prototype, Symbol.toStringTag, {
422
- value: "ReadableStreamDefaultReader",
423
- configurable: true
424
- });
425
- }
426
- function IsReadableStreamDefaultReader(x) {
427
- if (!typeIsObject(x)) {
428
- return false;
429
- }
430
- if (!Object.prototype.hasOwnProperty.call(x, "_readRequests")) {
431
- return false;
432
- }
433
- return x instanceof ReadableStreamDefaultReader;
434
- }
435
- function ReadableStreamDefaultReaderRead(reader, readRequest) {
436
- const stream = reader._ownerReadableStream;
437
- stream._disturbed = true;
438
- if (stream._state === "closed") {
439
- readRequest._closeSteps();
440
- } else if (stream._state === "errored") {
441
- readRequest._errorSteps(stream._storedError);
442
- } else {
443
- stream._readableStreamController[PullSteps](readRequest);
444
- }
445
- }
446
- function ReadableStreamDefaultReaderRelease(reader) {
447
- ReadableStreamReaderGenericRelease(reader);
448
- const e = new TypeError("Reader was released");
449
- ReadableStreamDefaultReaderErrorReadRequests(reader, e);
450
- }
451
- function ReadableStreamDefaultReaderErrorReadRequests(reader, e) {
452
- const readRequests = reader._readRequests;
453
- reader._readRequests = new SimpleQueue();
454
- readRequests.forEach((readRequest) => {
455
- readRequest._errorSteps(e);
456
- });
457
- }
458
- function defaultReaderBrandCheckException(name) {
459
- return new TypeError(`ReadableStreamDefaultReader.prototype.${name} can only be used on a ReadableStreamDefaultReader`);
460
- }
461
- const AsyncIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf(async function* () {
462
- }).prototype);
463
- class ReadableStreamAsyncIteratorImpl {
464
- constructor(reader, preventCancel) {
465
- this._ongoingPromise = void 0;
466
- this._isFinished = false;
467
- this._reader = reader;
468
- this._preventCancel = preventCancel;
469
- }
470
- next() {
471
- const nextSteps = () => this._nextSteps();
472
- this._ongoingPromise = this._ongoingPromise ? transformPromiseWith(this._ongoingPromise, nextSteps, nextSteps) : nextSteps();
473
- return this._ongoingPromise;
474
- }
475
- return(value) {
476
- const returnSteps = () => this._returnSteps(value);
477
- return this._ongoingPromise ? transformPromiseWith(this._ongoingPromise, returnSteps, returnSteps) : returnSteps();
478
- }
479
- _nextSteps() {
480
- if (this._isFinished) {
481
- return Promise.resolve({ value: void 0, done: true });
482
- }
483
- const reader = this._reader;
484
- let resolvePromise;
485
- let rejectPromise;
486
- const promise = newPromise((resolve, reject) => {
487
- resolvePromise = resolve;
488
- rejectPromise = reject;
489
- });
490
- const readRequest = {
491
- _chunkSteps: (chunk) => {
492
- this._ongoingPromise = void 0;
493
- _queueMicrotask(() => resolvePromise({ value: chunk, done: false }));
494
- },
495
- _closeSteps: () => {
496
- this._ongoingPromise = void 0;
497
- this._isFinished = true;
498
- ReadableStreamReaderGenericRelease(reader);
499
- resolvePromise({ value: void 0, done: true });
500
- },
501
- _errorSteps: (reason) => {
502
- this._ongoingPromise = void 0;
503
- this._isFinished = true;
504
- ReadableStreamReaderGenericRelease(reader);
505
- rejectPromise(reason);
506
- }
507
- };
508
- ReadableStreamDefaultReaderRead(reader, readRequest);
509
- return promise;
510
- }
511
- _returnSteps(value) {
512
- if (this._isFinished) {
513
- return Promise.resolve({ value, done: true });
514
- }
515
- this._isFinished = true;
516
- const reader = this._reader;
517
- if (!this._preventCancel) {
518
- const result = ReadableStreamReaderGenericCancel(reader, value);
519
- ReadableStreamReaderGenericRelease(reader);
520
- return transformPromiseWith(result, () => ({ value, done: true }));
521
- }
522
- ReadableStreamReaderGenericRelease(reader);
523
- return promiseResolvedWith({ value, done: true });
524
- }
525
- }
526
- const ReadableStreamAsyncIteratorPrototype = {
527
- next() {
528
- if (!IsReadableStreamAsyncIterator(this)) {
529
- return promiseRejectedWith(streamAsyncIteratorBrandCheckException("next"));
530
- }
531
- return this._asyncIteratorImpl.next();
532
- },
533
- return(value) {
534
- if (!IsReadableStreamAsyncIterator(this)) {
535
- return promiseRejectedWith(streamAsyncIteratorBrandCheckException("return"));
536
- }
537
- return this._asyncIteratorImpl.return(value);
538
- }
539
- };
540
- Object.setPrototypeOf(ReadableStreamAsyncIteratorPrototype, AsyncIteratorPrototype);
541
- function AcquireReadableStreamAsyncIterator(stream, preventCancel) {
542
- const reader = AcquireReadableStreamDefaultReader(stream);
543
- const impl = new ReadableStreamAsyncIteratorImpl(reader, preventCancel);
544
- const iterator = Object.create(ReadableStreamAsyncIteratorPrototype);
545
- iterator._asyncIteratorImpl = impl;
546
- return iterator;
547
- }
548
- function IsReadableStreamAsyncIterator(x) {
549
- if (!typeIsObject(x)) {
550
- return false;
551
- }
552
- if (!Object.prototype.hasOwnProperty.call(x, "_asyncIteratorImpl")) {
553
- return false;
554
- }
555
- try {
556
- return x._asyncIteratorImpl instanceof ReadableStreamAsyncIteratorImpl;
557
- } catch (_a2) {
558
- return false;
559
- }
560
- }
561
- function streamAsyncIteratorBrandCheckException(name) {
562
- return new TypeError(`ReadableStreamAsyncIterator.${name} can only be used on a ReadableSteamAsyncIterator`);
563
- }
564
- const NumberIsNaN = Number.isNaN || function(x) {
565
- return x !== x;
566
- };
567
- var _a, _b, _c;
568
- function CreateArrayFromList(elements) {
569
- return elements.slice();
570
- }
571
- function CopyDataBlockBytes(dest, destOffset, src, srcOffset, n) {
572
- new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);
573
- }
574
- let TransferArrayBuffer = (O) => {
575
- if (typeof O.transfer === "function") {
576
- TransferArrayBuffer = (buffer) => buffer.transfer();
577
- } else if (typeof structuredClone === "function") {
578
- TransferArrayBuffer = (buffer) => structuredClone(buffer, { transfer: [buffer] });
579
- } else {
580
- TransferArrayBuffer = (buffer) => buffer;
581
- }
582
- return TransferArrayBuffer(O);
583
- };
584
- let IsDetachedBuffer = (O) => {
585
- if (typeof O.detached === "boolean") {
586
- IsDetachedBuffer = (buffer) => buffer.detached;
587
- } else {
588
- IsDetachedBuffer = (buffer) => buffer.byteLength === 0;
589
- }
590
- return IsDetachedBuffer(O);
591
- };
592
- function ArrayBufferSlice(buffer, begin, end) {
593
- if (buffer.slice) {
594
- return buffer.slice(begin, end);
595
- }
596
- const length = end - begin;
597
- const slice = new ArrayBuffer(length);
598
- CopyDataBlockBytes(slice, 0, buffer, begin, length);
599
- return slice;
600
- }
601
- function GetMethod(receiver, prop) {
602
- const func = receiver[prop];
603
- if (func === void 0 || func === null) {
604
- return void 0;
605
- }
606
- if (typeof func !== "function") {
607
- throw new TypeError(`${String(prop)} is not a function`);
608
- }
609
- return func;
610
- }
611
- function CreateAsyncFromSyncIterator(syncIteratorRecord) {
612
- const syncIterable = {
613
- [Symbol.iterator]: () => syncIteratorRecord.iterator
614
- };
615
- const asyncIterator = (async function* () {
616
- return yield* syncIterable;
617
- })();
618
- const nextMethod = asyncIterator.next;
619
- return { iterator: asyncIterator, nextMethod, done: false };
620
- }
621
- const SymbolAsyncIterator = (_c = (_a = Symbol.asyncIterator) !== null && _a !== void 0 ? _a : (_b = Symbol.for) === null || _b === void 0 ? void 0 : _b.call(Symbol, "Symbol.asyncIterator")) !== null && _c !== void 0 ? _c : "@@asyncIterator";
622
- function GetIterator(obj, hint = "sync", method) {
623
- if (method === void 0) {
624
- if (hint === "async") {
625
- method = GetMethod(obj, SymbolAsyncIterator);
626
- if (method === void 0) {
627
- const syncMethod = GetMethod(obj, Symbol.iterator);
628
- const syncIteratorRecord = GetIterator(obj, "sync", syncMethod);
629
- return CreateAsyncFromSyncIterator(syncIteratorRecord);
630
- }
631
- } else {
632
- method = GetMethod(obj, Symbol.iterator);
633
- }
634
- }
635
- if (method === void 0) {
636
- throw new TypeError("The object is not iterable");
637
- }
638
- const iterator = reflectCall(method, obj, []);
639
- if (!typeIsObject(iterator)) {
640
- throw new TypeError("The iterator method must return an object");
641
- }
642
- const nextMethod = iterator.next;
643
- return { iterator, nextMethod, done: false };
644
- }
645
- function IteratorNext(iteratorRecord) {
646
- const result = reflectCall(iteratorRecord.nextMethod, iteratorRecord.iterator, []);
647
- if (!typeIsObject(result)) {
648
- throw new TypeError("The iterator.next() method must return an object");
649
- }
650
- return result;
651
- }
652
- function IteratorComplete(iterResult) {
653
- return Boolean(iterResult.done);
654
- }
655
- function IteratorValue(iterResult) {
656
- return iterResult.value;
657
- }
658
- function IsNonNegativeNumber(v) {
659
- if (typeof v !== "number") {
660
- return false;
661
- }
662
- if (NumberIsNaN(v)) {
663
- return false;
664
- }
665
- if (v < 0) {
666
- return false;
667
- }
668
- return true;
669
- }
670
- function CloneAsUint8Array(O) {
671
- const buffer = ArrayBufferSlice(O.buffer, O.byteOffset, O.byteOffset + O.byteLength);
672
- return new Uint8Array(buffer);
673
- }
674
- function DequeueValue(container) {
675
- const pair = container._queue.shift();
676
- container._queueTotalSize -= pair.size;
677
- if (container._queueTotalSize < 0) {
678
- container._queueTotalSize = 0;
679
- }
680
- return pair.value;
681
- }
682
- function EnqueueValueWithSize(container, value, size) {
683
- if (!IsNonNegativeNumber(size) || size === Infinity) {
684
- throw new RangeError("Size must be a finite, non-NaN, non-negative number.");
685
- }
686
- container._queue.push({ value, size });
687
- container._queueTotalSize += size;
688
- }
689
- function PeekQueueValue(container) {
690
- const pair = container._queue.peek();
691
- return pair.value;
692
- }
693
- function ResetQueue(container) {
694
- container._queue = new SimpleQueue();
695
- container._queueTotalSize = 0;
696
- }
697
- function isDataViewConstructor(ctor) {
698
- return ctor === DataView;
699
- }
700
- function isDataView(view) {
701
- return isDataViewConstructor(view.constructor);
702
- }
703
- function arrayBufferViewElementSize(ctor) {
704
- if (isDataViewConstructor(ctor)) {
705
- return 1;
706
- }
707
- return ctor.BYTES_PER_ELEMENT;
708
- }
709
- class ReadableStreamBYOBRequest {
710
- constructor() {
711
- throw new TypeError("Illegal constructor");
712
- }
713
- /**
714
- * Returns the view for writing in to, or `null` if the BYOB request has already been responded to.
715
- */
716
- get view() {
717
- if (!IsReadableStreamBYOBRequest(this)) {
718
- throw byobRequestBrandCheckException("view");
719
- }
720
- return this._view;
721
- }
722
- respond(bytesWritten) {
723
- if (!IsReadableStreamBYOBRequest(this)) {
724
- throw byobRequestBrandCheckException("respond");
725
- }
726
- assertRequiredArgument(bytesWritten, 1, "respond");
727
- bytesWritten = convertUnsignedLongLongWithEnforceRange(bytesWritten, "First parameter");
728
- if (this._associatedReadableByteStreamController === void 0) {
729
- throw new TypeError("This BYOB request has been invalidated");
730
- }
731
- if (IsDetachedBuffer(this._view.buffer)) {
732
- throw new TypeError(`The BYOB request's buffer has been detached and so cannot be used as a response`);
733
- }
734
- ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);
735
- }
736
- respondWithNewView(view) {
737
- if (!IsReadableStreamBYOBRequest(this)) {
738
- throw byobRequestBrandCheckException("respondWithNewView");
739
- }
740
- assertRequiredArgument(view, 1, "respondWithNewView");
741
- if (!ArrayBuffer.isView(view)) {
742
- throw new TypeError("You can only respond with array buffer views");
743
- }
744
- if (this._associatedReadableByteStreamController === void 0) {
745
- throw new TypeError("This BYOB request has been invalidated");
746
- }
747
- if (IsDetachedBuffer(view.buffer)) {
748
- throw new TypeError("The given view's buffer has been detached and so cannot be used as a response");
749
- }
750
- ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);
751
- }
752
- }
753
- Object.defineProperties(ReadableStreamBYOBRequest.prototype, {
754
- respond: { enumerable: true },
755
- respondWithNewView: { enumerable: true },
756
- view: { enumerable: true }
757
- });
758
- setFunctionName(ReadableStreamBYOBRequest.prototype.respond, "respond");
759
- setFunctionName(ReadableStreamBYOBRequest.prototype.respondWithNewView, "respondWithNewView");
760
- if (typeof Symbol.toStringTag === "symbol") {
761
- Object.defineProperty(ReadableStreamBYOBRequest.prototype, Symbol.toStringTag, {
762
- value: "ReadableStreamBYOBRequest",
763
- configurable: true
764
- });
765
- }
766
- class ReadableByteStreamController {
767
- constructor() {
768
- throw new TypeError("Illegal constructor");
769
- }
770
- /**
771
- * Returns the current BYOB pull request, or `null` if there isn't one.
772
- */
773
- get byobRequest() {
774
- if (!IsReadableByteStreamController(this)) {
775
- throw byteStreamControllerBrandCheckException("byobRequest");
776
- }
777
- return ReadableByteStreamControllerGetBYOBRequest(this);
778
- }
779
- /**
780
- * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is
781
- * over-full. An underlying byte source ought to use this information to determine when and how to apply backpressure.
782
- */
783
- get desiredSize() {
784
- if (!IsReadableByteStreamController(this)) {
785
- throw byteStreamControllerBrandCheckException("desiredSize");
786
- }
787
- return ReadableByteStreamControllerGetDesiredSize(this);
788
- }
789
- /**
790
- * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from
791
- * the stream, but once those are read, the stream will become closed.
792
- */
793
- close() {
794
- if (!IsReadableByteStreamController(this)) {
795
- throw byteStreamControllerBrandCheckException("close");
796
- }
797
- if (this._closeRequested) {
798
- throw new TypeError("The stream has already been closed; do not close it again!");
799
- }
800
- const state = this._controlledReadableByteStream._state;
801
- if (state !== "readable") {
802
- throw new TypeError(`The stream (in ${state} state) is not in the readable state and cannot be closed`);
803
- }
804
- ReadableByteStreamControllerClose(this);
805
- }
806
- enqueue(chunk) {
807
- if (!IsReadableByteStreamController(this)) {
808
- throw byteStreamControllerBrandCheckException("enqueue");
809
- }
810
- assertRequiredArgument(chunk, 1, "enqueue");
811
- if (!ArrayBuffer.isView(chunk)) {
812
- throw new TypeError("chunk must be an array buffer view");
813
- }
814
- if (chunk.byteLength === 0) {
815
- throw new TypeError("chunk must have non-zero byteLength");
816
- }
817
- if (chunk.buffer.byteLength === 0) {
818
- throw new TypeError(`chunk's buffer must have non-zero byteLength`);
819
- }
820
- if (this._closeRequested) {
821
- throw new TypeError("stream is closed or draining");
822
- }
823
- const state = this._controlledReadableByteStream._state;
824
- if (state !== "readable") {
825
- throw new TypeError(`The stream (in ${state} state) is not in the readable state and cannot be enqueued to`);
826
- }
827
- ReadableByteStreamControllerEnqueue(this, chunk);
828
- }
829
- /**
830
- * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`.
831
- */
832
- error(e = void 0) {
833
- if (!IsReadableByteStreamController(this)) {
834
- throw byteStreamControllerBrandCheckException("error");
835
- }
836
- ReadableByteStreamControllerError(this, e);
837
- }
838
- /** @internal */
839
- [CancelSteps](reason) {
840
- ReadableByteStreamControllerClearPendingPullIntos(this);
841
- ResetQueue(this);
842
- const result = this._cancelAlgorithm(reason);
843
- ReadableByteStreamControllerClearAlgorithms(this);
844
- return result;
845
- }
846
- /** @internal */
847
- [PullSteps](readRequest) {
848
- const stream = this._controlledReadableByteStream;
849
- if (this._queueTotalSize > 0) {
850
- ReadableByteStreamControllerFillReadRequestFromQueue(this, readRequest);
851
- return;
852
- }
853
- const autoAllocateChunkSize = this._autoAllocateChunkSize;
854
- if (autoAllocateChunkSize !== void 0) {
855
- let buffer;
856
- try {
857
- buffer = new ArrayBuffer(autoAllocateChunkSize);
858
- } catch (bufferE) {
859
- readRequest._errorSteps(bufferE);
860
- return;
861
- }
862
- const pullIntoDescriptor = {
863
- buffer,
864
- bufferByteLength: autoAllocateChunkSize,
865
- byteOffset: 0,
866
- byteLength: autoAllocateChunkSize,
867
- bytesFilled: 0,
868
- minimumFill: 1,
869
- elementSize: 1,
870
- viewConstructor: Uint8Array,
871
- readerType: "default"
872
- };
873
- this._pendingPullIntos.push(pullIntoDescriptor);
874
- }
875
- ReadableStreamAddReadRequest(stream, readRequest);
876
- ReadableByteStreamControllerCallPullIfNeeded(this);
877
- }
878
- /** @internal */
879
- [ReleaseSteps]() {
880
- if (this._pendingPullIntos.length > 0) {
881
- const firstPullInto = this._pendingPullIntos.peek();
882
- firstPullInto.readerType = "none";
883
- this._pendingPullIntos = new SimpleQueue();
884
- this._pendingPullIntos.push(firstPullInto);
885
- }
886
- }
887
- }
888
- Object.defineProperties(ReadableByteStreamController.prototype, {
889
- close: { enumerable: true },
890
- enqueue: { enumerable: true },
891
- error: { enumerable: true },
892
- byobRequest: { enumerable: true },
893
- desiredSize: { enumerable: true }
894
- });
895
- setFunctionName(ReadableByteStreamController.prototype.close, "close");
896
- setFunctionName(ReadableByteStreamController.prototype.enqueue, "enqueue");
897
- setFunctionName(ReadableByteStreamController.prototype.error, "error");
898
- if (typeof Symbol.toStringTag === "symbol") {
899
- Object.defineProperty(ReadableByteStreamController.prototype, Symbol.toStringTag, {
900
- value: "ReadableByteStreamController",
901
- configurable: true
902
- });
903
- }
904
- function IsReadableByteStreamController(x) {
905
- if (!typeIsObject(x)) {
906
- return false;
907
- }
908
- if (!Object.prototype.hasOwnProperty.call(x, "_controlledReadableByteStream")) {
909
- return false;
910
- }
911
- return x instanceof ReadableByteStreamController;
912
- }
913
- function IsReadableStreamBYOBRequest(x) {
914
- if (!typeIsObject(x)) {
915
- return false;
916
- }
917
- if (!Object.prototype.hasOwnProperty.call(x, "_associatedReadableByteStreamController")) {
918
- return false;
919
- }
920
- return x instanceof ReadableStreamBYOBRequest;
921
- }
922
- function ReadableByteStreamControllerCallPullIfNeeded(controller) {
923
- const shouldPull = ReadableByteStreamControllerShouldCallPull(controller);
924
- if (!shouldPull) {
925
- return;
926
- }
927
- if (controller._pulling) {
928
- controller._pullAgain = true;
929
- return;
930
- }
931
- controller._pulling = true;
932
- const pullPromise = controller._pullAlgorithm();
933
- uponPromise(pullPromise, () => {
934
- controller._pulling = false;
935
- if (controller._pullAgain) {
936
- controller._pullAgain = false;
937
- ReadableByteStreamControllerCallPullIfNeeded(controller);
938
- }
939
- return null;
940
- }, (e) => {
941
- ReadableByteStreamControllerError(controller, e);
942
- return null;
943
- });
944
- }
945
- function ReadableByteStreamControllerClearPendingPullIntos(controller) {
946
- ReadableByteStreamControllerInvalidateBYOBRequest(controller);
947
- controller._pendingPullIntos = new SimpleQueue();
948
- }
949
- function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {
950
- let done = false;
951
- if (stream._state === "closed") {
952
- done = true;
953
- }
954
- const filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);
955
- if (pullIntoDescriptor.readerType === "default") {
956
- ReadableStreamFulfillReadRequest(stream, filledView, done);
957
- } else {
958
- ReadableStreamFulfillReadIntoRequest(stream, filledView, done);
959
- }
960
- }
961
- function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {
962
- const bytesFilled = pullIntoDescriptor.bytesFilled;
963
- const elementSize = pullIntoDescriptor.elementSize;
964
- return new pullIntoDescriptor.viewConstructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);
965
- }
966
- function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {
967
- controller._queue.push({ buffer, byteOffset, byteLength });
968
- controller._queueTotalSize += byteLength;
969
- }
970
- function ReadableByteStreamControllerEnqueueClonedChunkToQueue(controller, buffer, byteOffset, byteLength) {
971
- let clonedChunk;
972
- try {
973
- clonedChunk = ArrayBufferSlice(buffer, byteOffset, byteOffset + byteLength);
974
- } catch (cloneE) {
975
- ReadableByteStreamControllerError(controller, cloneE);
976
- throw cloneE;
977
- }
978
- ReadableByteStreamControllerEnqueueChunkToQueue(controller, clonedChunk, 0, byteLength);
979
- }
980
- function ReadableByteStreamControllerEnqueueDetachedPullIntoToQueue(controller, firstDescriptor) {
981
- if (firstDescriptor.bytesFilled > 0) {
982
- ReadableByteStreamControllerEnqueueClonedChunkToQueue(controller, firstDescriptor.buffer, firstDescriptor.byteOffset, firstDescriptor.bytesFilled);
983
- }
984
- ReadableByteStreamControllerShiftPendingPullInto(controller);
985
- }
986
- function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {
987
- const maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);
988
- const maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;
989
- let totalBytesToCopyRemaining = maxBytesToCopy;
990
- let ready = false;
991
- const remainderBytes = maxBytesFilled % pullIntoDescriptor.elementSize;
992
- const maxAlignedBytes = maxBytesFilled - remainderBytes;
993
- if (maxAlignedBytes >= pullIntoDescriptor.minimumFill) {
994
- totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;
995
- ready = true;
996
- }
997
- const queue = controller._queue;
998
- while (totalBytesToCopyRemaining > 0) {
999
- const headOfQueue = queue.peek();
1000
- const bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);
1001
- const destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;
1002
- CopyDataBlockBytes(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);
1003
- if (headOfQueue.byteLength === bytesToCopy) {
1004
- queue.shift();
1005
- } else {
1006
- headOfQueue.byteOffset += bytesToCopy;
1007
- headOfQueue.byteLength -= bytesToCopy;
1008
- }
1009
- controller._queueTotalSize -= bytesToCopy;
1010
- ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);
1011
- totalBytesToCopyRemaining -= bytesToCopy;
1012
- }
1013
- return ready;
1014
- }
1015
- function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {
1016
- pullIntoDescriptor.bytesFilled += size;
1017
- }
1018
- function ReadableByteStreamControllerHandleQueueDrain(controller) {
1019
- if (controller._queueTotalSize === 0 && controller._closeRequested) {
1020
- ReadableByteStreamControllerClearAlgorithms(controller);
1021
- ReadableStreamClose(controller._controlledReadableByteStream);
1022
- } else {
1023
- ReadableByteStreamControllerCallPullIfNeeded(controller);
1024
- }
1025
- }
1026
- function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {
1027
- if (controller._byobRequest === null) {
1028
- return;
1029
- }
1030
- controller._byobRequest._associatedReadableByteStreamController = void 0;
1031
- controller._byobRequest._view = null;
1032
- controller._byobRequest = null;
1033
- }
1034
- function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {
1035
- while (controller._pendingPullIntos.length > 0) {
1036
- if (controller._queueTotalSize === 0) {
1037
- return;
1038
- }
1039
- const pullIntoDescriptor = controller._pendingPullIntos.peek();
1040
- if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) {
1041
- ReadableByteStreamControllerShiftPendingPullInto(controller);
1042
- ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);
1043
- }
1044
- }
1045
- }
1046
- function ReadableByteStreamControllerProcessReadRequestsUsingQueue(controller) {
1047
- const reader = controller._controlledReadableByteStream._reader;
1048
- while (reader._readRequests.length > 0) {
1049
- if (controller._queueTotalSize === 0) {
1050
- return;
1051
- }
1052
- const readRequest = reader._readRequests.shift();
1053
- ReadableByteStreamControllerFillReadRequestFromQueue(controller, readRequest);
1054
- }
1055
- }
1056
- function ReadableByteStreamControllerPullInto(controller, view, min, readIntoRequest) {
1057
- const stream = controller._controlledReadableByteStream;
1058
- const ctor = view.constructor;
1059
- const elementSize = arrayBufferViewElementSize(ctor);
1060
- const { byteOffset, byteLength } = view;
1061
- const minimumFill = min * elementSize;
1062
- let buffer;
1063
- try {
1064
- buffer = TransferArrayBuffer(view.buffer);
1065
- } catch (e) {
1066
- readIntoRequest._errorSteps(e);
1067
- return;
1068
- }
1069
- const pullIntoDescriptor = {
1070
- buffer,
1071
- bufferByteLength: buffer.byteLength,
1072
- byteOffset,
1073
- byteLength,
1074
- bytesFilled: 0,
1075
- minimumFill,
1076
- elementSize,
1077
- viewConstructor: ctor,
1078
- readerType: "byob"
1079
- };
1080
- if (controller._pendingPullIntos.length > 0) {
1081
- controller._pendingPullIntos.push(pullIntoDescriptor);
1082
- ReadableStreamAddReadIntoRequest(stream, readIntoRequest);
1083
- return;
1084
- }
1085
- if (stream._state === "closed") {
1086
- const emptyView = new ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);
1087
- readIntoRequest._closeSteps(emptyView);
1088
- return;
1089
- }
1090
- if (controller._queueTotalSize > 0) {
1091
- if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) {
1092
- const filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);
1093
- ReadableByteStreamControllerHandleQueueDrain(controller);
1094
- readIntoRequest._chunkSteps(filledView);
1095
- return;
1096
- }
1097
- if (controller._closeRequested) {
1098
- const e = new TypeError("Insufficient bytes to fill elements in the given buffer");
1099
- ReadableByteStreamControllerError(controller, e);
1100
- readIntoRequest._errorSteps(e);
1101
- return;
1102
- }
1103
- }
1104
- controller._pendingPullIntos.push(pullIntoDescriptor);
1105
- ReadableStreamAddReadIntoRequest(stream, readIntoRequest);
1106
- ReadableByteStreamControllerCallPullIfNeeded(controller);
1107
- }
1108
- function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {
1109
- if (firstDescriptor.readerType === "none") {
1110
- ReadableByteStreamControllerShiftPendingPullInto(controller);
1111
- }
1112
- const stream = controller._controlledReadableByteStream;
1113
- if (ReadableStreamHasBYOBReader(stream)) {
1114
- while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {
1115
- const pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);
1116
- ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);
1117
- }
1118
- }
1119
- }
1120
- function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {
1121
- ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);
1122
- if (pullIntoDescriptor.readerType === "none") {
1123
- ReadableByteStreamControllerEnqueueDetachedPullIntoToQueue(controller, pullIntoDescriptor);
1124
- ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);
1125
- return;
1126
- }
1127
- if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.minimumFill) {
1128
- return;
1129
- }
1130
- ReadableByteStreamControllerShiftPendingPullInto(controller);
1131
- const remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;
1132
- if (remainderSize > 0) {
1133
- const end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;
1134
- ReadableByteStreamControllerEnqueueClonedChunkToQueue(controller, pullIntoDescriptor.buffer, end - remainderSize, remainderSize);
1135
- }
1136
- pullIntoDescriptor.bytesFilled -= remainderSize;
1137
- ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);
1138
- ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);
1139
- }
1140
- function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {
1141
- const firstDescriptor = controller._pendingPullIntos.peek();
1142
- ReadableByteStreamControllerInvalidateBYOBRequest(controller);
1143
- const state = controller._controlledReadableByteStream._state;
1144
- if (state === "closed") {
1145
- ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor);
1146
- } else {
1147
- ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);
1148
- }
1149
- ReadableByteStreamControllerCallPullIfNeeded(controller);
1150
- }
1151
- function ReadableByteStreamControllerShiftPendingPullInto(controller) {
1152
- const descriptor = controller._pendingPullIntos.shift();
1153
- return descriptor;
1154
- }
1155
- function ReadableByteStreamControllerShouldCallPull(controller) {
1156
- const stream = controller._controlledReadableByteStream;
1157
- if (stream._state !== "readable") {
1158
- return false;
1159
- }
1160
- if (controller._closeRequested) {
1161
- return false;
1162
- }
1163
- if (!controller._started) {
1164
- return false;
1165
- }
1166
- if (ReadableStreamHasDefaultReader(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {
1167
- return true;
1168
- }
1169
- if (ReadableStreamHasBYOBReader(stream) && ReadableStreamGetNumReadIntoRequests(stream) > 0) {
1170
- return true;
1171
- }
1172
- const desiredSize = ReadableByteStreamControllerGetDesiredSize(controller);
1173
- if (desiredSize > 0) {
1174
- return true;
1175
- }
1176
- return false;
1177
- }
1178
- function ReadableByteStreamControllerClearAlgorithms(controller) {
1179
- controller._pullAlgorithm = void 0;
1180
- controller._cancelAlgorithm = void 0;
1181
- }
1182
- function ReadableByteStreamControllerClose(controller) {
1183
- const stream = controller._controlledReadableByteStream;
1184
- if (controller._closeRequested || stream._state !== "readable") {
1185
- return;
1186
- }
1187
- if (controller._queueTotalSize > 0) {
1188
- controller._closeRequested = true;
1189
- return;
1190
- }
1191
- if (controller._pendingPullIntos.length > 0) {
1192
- const firstPendingPullInto = controller._pendingPullIntos.peek();
1193
- if (firstPendingPullInto.bytesFilled % firstPendingPullInto.elementSize !== 0) {
1194
- const e = new TypeError("Insufficient bytes to fill elements in the given buffer");
1195
- ReadableByteStreamControllerError(controller, e);
1196
- throw e;
1197
- }
1198
- }
1199
- ReadableByteStreamControllerClearAlgorithms(controller);
1200
- ReadableStreamClose(stream);
1201
- }
1202
- function ReadableByteStreamControllerEnqueue(controller, chunk) {
1203
- const stream = controller._controlledReadableByteStream;
1204
- if (controller._closeRequested || stream._state !== "readable") {
1205
- return;
1206
- }
1207
- const { buffer, byteOffset, byteLength } = chunk;
1208
- if (IsDetachedBuffer(buffer)) {
1209
- throw new TypeError("chunk's buffer is detached and so cannot be enqueued");
1210
- }
1211
- const transferredBuffer = TransferArrayBuffer(buffer);
1212
- if (controller._pendingPullIntos.length > 0) {
1213
- const firstPendingPullInto = controller._pendingPullIntos.peek();
1214
- if (IsDetachedBuffer(firstPendingPullInto.buffer)) {
1215
- throw new TypeError("The BYOB request's buffer has been detached and so cannot be filled with an enqueued chunk");
1216
- }
1217
- ReadableByteStreamControllerInvalidateBYOBRequest(controller);
1218
- firstPendingPullInto.buffer = TransferArrayBuffer(firstPendingPullInto.buffer);
1219
- if (firstPendingPullInto.readerType === "none") {
1220
- ReadableByteStreamControllerEnqueueDetachedPullIntoToQueue(controller, firstPendingPullInto);
1221
- }
1222
- }
1223
- if (ReadableStreamHasDefaultReader(stream)) {
1224
- ReadableByteStreamControllerProcessReadRequestsUsingQueue(controller);
1225
- if (ReadableStreamGetNumReadRequests(stream) === 0) {
1226
- ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);
1227
- } else {
1228
- if (controller._pendingPullIntos.length > 0) {
1229
- ReadableByteStreamControllerShiftPendingPullInto(controller);
1230
- }
1231
- const transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);
1232
- ReadableStreamFulfillReadRequest(stream, transferredView, false);
1233
- }
1234
- } else if (ReadableStreamHasBYOBReader(stream)) {
1235
- ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);
1236
- ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);
1237
- } else {
1238
- ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);
1239
- }
1240
- ReadableByteStreamControllerCallPullIfNeeded(controller);
1241
- }
1242
- function ReadableByteStreamControllerError(controller, e) {
1243
- const stream = controller._controlledReadableByteStream;
1244
- if (stream._state !== "readable") {
1245
- return;
1246
- }
1247
- ReadableByteStreamControllerClearPendingPullIntos(controller);
1248
- ResetQueue(controller);
1249
- ReadableByteStreamControllerClearAlgorithms(controller);
1250
- ReadableStreamError(stream, e);
1251
- }
1252
- function ReadableByteStreamControllerFillReadRequestFromQueue(controller, readRequest) {
1253
- const entry = controller._queue.shift();
1254
- controller._queueTotalSize -= entry.byteLength;
1255
- ReadableByteStreamControllerHandleQueueDrain(controller);
1256
- const view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);
1257
- readRequest._chunkSteps(view);
1258
- }
1259
- function ReadableByteStreamControllerGetBYOBRequest(controller) {
1260
- if (controller._byobRequest === null && controller._pendingPullIntos.length > 0) {
1261
- const firstDescriptor = controller._pendingPullIntos.peek();
1262
- const view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);
1263
- const byobRequest = Object.create(ReadableStreamBYOBRequest.prototype);
1264
- SetUpReadableStreamBYOBRequest(byobRequest, controller, view);
1265
- controller._byobRequest = byobRequest;
1266
- }
1267
- return controller._byobRequest;
1268
- }
1269
- function ReadableByteStreamControllerGetDesiredSize(controller) {
1270
- const state = controller._controlledReadableByteStream._state;
1271
- if (state === "errored") {
1272
- return null;
1273
- }
1274
- if (state === "closed") {
1275
- return 0;
1276
- }
1277
- return controller._strategyHWM - controller._queueTotalSize;
1278
- }
1279
- function ReadableByteStreamControllerRespond(controller, bytesWritten) {
1280
- const firstDescriptor = controller._pendingPullIntos.peek();
1281
- const state = controller._controlledReadableByteStream._state;
1282
- if (state === "closed") {
1283
- if (bytesWritten !== 0) {
1284
- throw new TypeError("bytesWritten must be 0 when calling respond() on a closed stream");
1285
- }
1286
- } else {
1287
- if (bytesWritten === 0) {
1288
- throw new TypeError("bytesWritten must be greater than 0 when calling respond() on a readable stream");
1289
- }
1290
- if (firstDescriptor.bytesFilled + bytesWritten > firstDescriptor.byteLength) {
1291
- throw new RangeError("bytesWritten out of range");
1292
- }
1293
- }
1294
- firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);
1295
- ReadableByteStreamControllerRespondInternal(controller, bytesWritten);
1296
- }
1297
- function ReadableByteStreamControllerRespondWithNewView(controller, view) {
1298
- const firstDescriptor = controller._pendingPullIntos.peek();
1299
- const state = controller._controlledReadableByteStream._state;
1300
- if (state === "closed") {
1301
- if (view.byteLength !== 0) {
1302
- throw new TypeError("The view's length must be 0 when calling respondWithNewView() on a closed stream");
1303
- }
1304
- } else {
1305
- if (view.byteLength === 0) {
1306
- throw new TypeError("The view's length must be greater than 0 when calling respondWithNewView() on a readable stream");
1307
- }
1308
- }
1309
- if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {
1310
- throw new RangeError("The region specified by view does not match byobRequest");
1311
- }
1312
- if (firstDescriptor.bufferByteLength !== view.buffer.byteLength) {
1313
- throw new RangeError("The buffer of view has different capacity than byobRequest");
1314
- }
1315
- if (firstDescriptor.bytesFilled + view.byteLength > firstDescriptor.byteLength) {
1316
- throw new RangeError("The region specified by view is larger than byobRequest");
1317
- }
1318
- const viewByteLength = view.byteLength;
1319
- firstDescriptor.buffer = TransferArrayBuffer(view.buffer);
1320
- ReadableByteStreamControllerRespondInternal(controller, viewByteLength);
1321
- }
1322
- function SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize) {
1323
- controller._controlledReadableByteStream = stream;
1324
- controller._pullAgain = false;
1325
- controller._pulling = false;
1326
- controller._byobRequest = null;
1327
- controller._queue = controller._queueTotalSize = void 0;
1328
- ResetQueue(controller);
1329
- controller._closeRequested = false;
1330
- controller._started = false;
1331
- controller._strategyHWM = highWaterMark;
1332
- controller._pullAlgorithm = pullAlgorithm;
1333
- controller._cancelAlgorithm = cancelAlgorithm;
1334
- controller._autoAllocateChunkSize = autoAllocateChunkSize;
1335
- controller._pendingPullIntos = new SimpleQueue();
1336
- stream._readableStreamController = controller;
1337
- const startResult = startAlgorithm();
1338
- uponPromise(promiseResolvedWith(startResult), () => {
1339
- controller._started = true;
1340
- ReadableByteStreamControllerCallPullIfNeeded(controller);
1341
- return null;
1342
- }, (r) => {
1343
- ReadableByteStreamControllerError(controller, r);
1344
- return null;
1345
- });
1346
- }
1347
- function SetUpReadableByteStreamControllerFromUnderlyingSource(stream, underlyingByteSource, highWaterMark) {
1348
- const controller = Object.create(ReadableByteStreamController.prototype);
1349
- let startAlgorithm;
1350
- let pullAlgorithm;
1351
- let cancelAlgorithm;
1352
- if (underlyingByteSource.start !== void 0) {
1353
- startAlgorithm = () => underlyingByteSource.start(controller);
1354
- } else {
1355
- startAlgorithm = () => void 0;
1356
- }
1357
- if (underlyingByteSource.pull !== void 0) {
1358
- pullAlgorithm = () => underlyingByteSource.pull(controller);
1359
- } else {
1360
- pullAlgorithm = () => promiseResolvedWith(void 0);
1361
- }
1362
- if (underlyingByteSource.cancel !== void 0) {
1363
- cancelAlgorithm = (reason) => underlyingByteSource.cancel(reason);
1364
- } else {
1365
- cancelAlgorithm = () => promiseResolvedWith(void 0);
1366
- }
1367
- const autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;
1368
- if (autoAllocateChunkSize === 0) {
1369
- throw new TypeError("autoAllocateChunkSize must be greater than 0");
1370
- }
1371
- SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize);
1372
- }
1373
- function SetUpReadableStreamBYOBRequest(request, controller, view) {
1374
- request._associatedReadableByteStreamController = controller;
1375
- request._view = view;
1376
- }
1377
- function byobRequestBrandCheckException(name) {
1378
- return new TypeError(`ReadableStreamBYOBRequest.prototype.${name} can only be used on a ReadableStreamBYOBRequest`);
1379
- }
1380
- function byteStreamControllerBrandCheckException(name) {
1381
- return new TypeError(`ReadableByteStreamController.prototype.${name} can only be used on a ReadableByteStreamController`);
1382
- }
1383
- function convertReaderOptions(options, context) {
1384
- assertDictionary(options, context);
1385
- const mode = options === null || options === void 0 ? void 0 : options.mode;
1386
- return {
1387
- mode: mode === void 0 ? void 0 : convertReadableStreamReaderMode(mode, `${context} has member 'mode' that`)
1388
- };
1389
- }
1390
- function convertReadableStreamReaderMode(mode, context) {
1391
- mode = `${mode}`;
1392
- if (mode !== "byob") {
1393
- throw new TypeError(`${context} '${mode}' is not a valid enumeration value for ReadableStreamReaderMode`);
1394
- }
1395
- return mode;
1396
- }
1397
- function convertByobReadOptions(options, context) {
1398
- var _a2;
1399
- assertDictionary(options, context);
1400
- const min = (_a2 = options === null || options === void 0 ? void 0 : options.min) !== null && _a2 !== void 0 ? _a2 : 1;
1401
- return {
1402
- min: convertUnsignedLongLongWithEnforceRange(min, `${context} has member 'min' that`)
1403
- };
1404
- }
1405
- function AcquireReadableStreamBYOBReader(stream) {
1406
- return new ReadableStreamBYOBReader(stream);
1407
- }
1408
- function ReadableStreamAddReadIntoRequest(stream, readIntoRequest) {
1409
- stream._reader._readIntoRequests.push(readIntoRequest);
1410
- }
1411
- function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {
1412
- const reader = stream._reader;
1413
- const readIntoRequest = reader._readIntoRequests.shift();
1414
- if (done) {
1415
- readIntoRequest._closeSteps(chunk);
1416
- } else {
1417
- readIntoRequest._chunkSteps(chunk);
1418
- }
1419
- }
1420
- function ReadableStreamGetNumReadIntoRequests(stream) {
1421
- return stream._reader._readIntoRequests.length;
1422
- }
1423
- function ReadableStreamHasBYOBReader(stream) {
1424
- const reader = stream._reader;
1425
- if (reader === void 0) {
1426
- return false;
1427
- }
1428
- if (!IsReadableStreamBYOBReader(reader)) {
1429
- return false;
1430
- }
1431
- return true;
1432
- }
1433
- class ReadableStreamBYOBReader {
1434
- constructor(stream) {
1435
- assertRequiredArgument(stream, 1, "ReadableStreamBYOBReader");
1436
- assertReadableStream(stream, "First parameter");
1437
- if (IsReadableStreamLocked(stream)) {
1438
- throw new TypeError("This stream has already been locked for exclusive reading by another reader");
1439
- }
1440
- if (!IsReadableByteStreamController(stream._readableStreamController)) {
1441
- throw new TypeError("Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte source");
1442
- }
1443
- ReadableStreamReaderGenericInitialize(this, stream);
1444
- this._readIntoRequests = new SimpleQueue();
1445
- }
1446
- /**
1447
- * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or
1448
- * the reader's lock is released before the stream finishes closing.
1449
- */
1450
- get closed() {
1451
- if (!IsReadableStreamBYOBReader(this)) {
1452
- return promiseRejectedWith(byobReaderBrandCheckException("closed"));
1453
- }
1454
- return this._closedPromise;
1455
- }
1456
- /**
1457
- * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}.
1458
- */
1459
- cancel(reason = void 0) {
1460
- if (!IsReadableStreamBYOBReader(this)) {
1461
- return promiseRejectedWith(byobReaderBrandCheckException("cancel"));
1462
- }
1463
- if (this._ownerReadableStream === void 0) {
1464
- return promiseRejectedWith(readerLockException("cancel"));
1465
- }
1466
- return ReadableStreamReaderGenericCancel(this, reason);
1467
- }
1468
- read(view, rawOptions = {}) {
1469
- if (!IsReadableStreamBYOBReader(this)) {
1470
- return promiseRejectedWith(byobReaderBrandCheckException("read"));
1471
- }
1472
- if (!ArrayBuffer.isView(view)) {
1473
- return promiseRejectedWith(new TypeError("view must be an array buffer view"));
1474
- }
1475
- if (view.byteLength === 0) {
1476
- return promiseRejectedWith(new TypeError("view must have non-zero byteLength"));
1477
- }
1478
- if (view.buffer.byteLength === 0) {
1479
- return promiseRejectedWith(new TypeError(`view's buffer must have non-zero byteLength`));
1480
- }
1481
- if (IsDetachedBuffer(view.buffer)) {
1482
- return promiseRejectedWith(new TypeError("view's buffer has been detached"));
1483
- }
1484
- let options;
1485
- try {
1486
- options = convertByobReadOptions(rawOptions, "options");
1487
- } catch (e) {
1488
- return promiseRejectedWith(e);
1489
- }
1490
- const min = options.min;
1491
- if (min === 0) {
1492
- return promiseRejectedWith(new TypeError("options.min must be greater than 0"));
1493
- }
1494
- if (!isDataView(view)) {
1495
- if (min > view.length) {
1496
- return promiseRejectedWith(new RangeError("options.min must be less than or equal to view's length"));
1497
- }
1498
- } else if (min > view.byteLength) {
1499
- return promiseRejectedWith(new RangeError("options.min must be less than or equal to view's byteLength"));
1500
- }
1501
- if (this._ownerReadableStream === void 0) {
1502
- return promiseRejectedWith(readerLockException("read from"));
1503
- }
1504
- let resolvePromise;
1505
- let rejectPromise;
1506
- const promise = newPromise((resolve, reject) => {
1507
- resolvePromise = resolve;
1508
- rejectPromise = reject;
1509
- });
1510
- const readIntoRequest = {
1511
- _chunkSteps: (chunk) => resolvePromise({ value: chunk, done: false }),
1512
- _closeSteps: (chunk) => resolvePromise({ value: chunk, done: true }),
1513
- _errorSteps: (e) => rejectPromise(e)
1514
- };
1515
- ReadableStreamBYOBReaderRead(this, view, min, readIntoRequest);
1516
- return promise;
1517
- }
1518
- /**
1519
- * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active.
1520
- * If the associated stream is errored when the lock is released, the reader will appear errored in the same way
1521
- * from now on; otherwise, the reader will appear closed.
1522
- *
1523
- * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by
1524
- * the reader's {@link ReadableStreamBYOBReader.read | read()} method has not yet been settled. Attempting to
1525
- * do so will throw a `TypeError` and leave the reader locked to the stream.
1526
- */
1527
- releaseLock() {
1528
- if (!IsReadableStreamBYOBReader(this)) {
1529
- throw byobReaderBrandCheckException("releaseLock");
1530
- }
1531
- if (this._ownerReadableStream === void 0) {
1532
- return;
1533
- }
1534
- ReadableStreamBYOBReaderRelease(this);
1535
- }
1536
- }
1537
- Object.defineProperties(ReadableStreamBYOBReader.prototype, {
1538
- cancel: { enumerable: true },
1539
- read: { enumerable: true },
1540
- releaseLock: { enumerable: true },
1541
- closed: { enumerable: true }
1542
- });
1543
- setFunctionName(ReadableStreamBYOBReader.prototype.cancel, "cancel");
1544
- setFunctionName(ReadableStreamBYOBReader.prototype.read, "read");
1545
- setFunctionName(ReadableStreamBYOBReader.prototype.releaseLock, "releaseLock");
1546
- if (typeof Symbol.toStringTag === "symbol") {
1547
- Object.defineProperty(ReadableStreamBYOBReader.prototype, Symbol.toStringTag, {
1548
- value: "ReadableStreamBYOBReader",
1549
- configurable: true
1550
- });
1551
- }
1552
- function IsReadableStreamBYOBReader(x) {
1553
- if (!typeIsObject(x)) {
1554
- return false;
1555
- }
1556
- if (!Object.prototype.hasOwnProperty.call(x, "_readIntoRequests")) {
1557
- return false;
1558
- }
1559
- return x instanceof ReadableStreamBYOBReader;
1560
- }
1561
- function ReadableStreamBYOBReaderRead(reader, view, min, readIntoRequest) {
1562
- const stream = reader._ownerReadableStream;
1563
- stream._disturbed = true;
1564
- if (stream._state === "errored") {
1565
- readIntoRequest._errorSteps(stream._storedError);
1566
- } else {
1567
- ReadableByteStreamControllerPullInto(stream._readableStreamController, view, min, readIntoRequest);
1568
- }
1569
- }
1570
- function ReadableStreamBYOBReaderRelease(reader) {
1571
- ReadableStreamReaderGenericRelease(reader);
1572
- const e = new TypeError("Reader was released");
1573
- ReadableStreamBYOBReaderErrorReadIntoRequests(reader, e);
1574
- }
1575
- function ReadableStreamBYOBReaderErrorReadIntoRequests(reader, e) {
1576
- const readIntoRequests = reader._readIntoRequests;
1577
- reader._readIntoRequests = new SimpleQueue();
1578
- readIntoRequests.forEach((readIntoRequest) => {
1579
- readIntoRequest._errorSteps(e);
1580
- });
1581
- }
1582
- function byobReaderBrandCheckException(name) {
1583
- return new TypeError(`ReadableStreamBYOBReader.prototype.${name} can only be used on a ReadableStreamBYOBReader`);
1584
- }
1585
- function ExtractHighWaterMark(strategy, defaultHWM) {
1586
- const { highWaterMark } = strategy;
1587
- if (highWaterMark === void 0) {
1588
- return defaultHWM;
1589
- }
1590
- if (NumberIsNaN(highWaterMark) || highWaterMark < 0) {
1591
- throw new RangeError("Invalid highWaterMark");
1592
- }
1593
- return highWaterMark;
1594
- }
1595
- function ExtractSizeAlgorithm(strategy) {
1596
- const { size } = strategy;
1597
- if (!size) {
1598
- return () => 1;
1599
- }
1600
- return size;
1601
- }
1602
- function convertQueuingStrategy(init, context) {
1603
- assertDictionary(init, context);
1604
- const highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark;
1605
- const size = init === null || init === void 0 ? void 0 : init.size;
1606
- return {
1607
- highWaterMark: highWaterMark === void 0 ? void 0 : convertUnrestrictedDouble(highWaterMark),
1608
- size: size === void 0 ? void 0 : convertQueuingStrategySize(size, `${context} has member 'size' that`)
1609
- };
1610
- }
1611
- function convertQueuingStrategySize(fn, context) {
1612
- assertFunction(fn, context);
1613
- return (chunk) => convertUnrestrictedDouble(fn(chunk));
1614
- }
1615
- function convertUnderlyingSink(original, context) {
1616
- assertDictionary(original, context);
1617
- const abort = original === null || original === void 0 ? void 0 : original.abort;
1618
- const close = original === null || original === void 0 ? void 0 : original.close;
1619
- const start = original === null || original === void 0 ? void 0 : original.start;
1620
- const type = original === null || original === void 0 ? void 0 : original.type;
1621
- const write = original === null || original === void 0 ? void 0 : original.write;
1622
- return {
1623
- abort: abort === void 0 ? void 0 : convertUnderlyingSinkAbortCallback(abort, original, `${context} has member 'abort' that`),
1624
- close: close === void 0 ? void 0 : convertUnderlyingSinkCloseCallback(close, original, `${context} has member 'close' that`),
1625
- start: start === void 0 ? void 0 : convertUnderlyingSinkStartCallback(start, original, `${context} has member 'start' that`),
1626
- write: write === void 0 ? void 0 : convertUnderlyingSinkWriteCallback(write, original, `${context} has member 'write' that`),
1627
- type
1628
- };
1629
- }
1630
- function convertUnderlyingSinkAbortCallback(fn, original, context) {
1631
- assertFunction(fn, context);
1632
- return (reason) => promiseCall(fn, original, [reason]);
1633
- }
1634
- function convertUnderlyingSinkCloseCallback(fn, original, context) {
1635
- assertFunction(fn, context);
1636
- return () => promiseCall(fn, original, []);
1637
- }
1638
- function convertUnderlyingSinkStartCallback(fn, original, context) {
1639
- assertFunction(fn, context);
1640
- return (controller) => reflectCall(fn, original, [controller]);
1641
- }
1642
- function convertUnderlyingSinkWriteCallback(fn, original, context) {
1643
- assertFunction(fn, context);
1644
- return (chunk, controller) => promiseCall(fn, original, [chunk, controller]);
1645
- }
1646
- function assertWritableStream(x, context) {
1647
- if (!IsWritableStream(x)) {
1648
- throw new TypeError(`${context} is not a WritableStream.`);
1649
- }
1650
- }
1651
- function isAbortSignal(value) {
1652
- if (typeof value !== "object" || value === null) {
1653
- return false;
1654
- }
1655
- try {
1656
- return typeof value.aborted === "boolean";
1657
- } catch (_a2) {
1658
- return false;
1659
- }
1660
- }
1661
- const supportsAbortController = typeof AbortController === "function";
1662
- function createAbortController() {
1663
- if (supportsAbortController) {
1664
- return new AbortController();
1665
- }
1666
- return void 0;
1667
- }
1668
- class WritableStream {
1669
- constructor(rawUnderlyingSink = {}, rawStrategy = {}) {
1670
- if (rawUnderlyingSink === void 0) {
1671
- rawUnderlyingSink = null;
1672
- } else {
1673
- assertObject(rawUnderlyingSink, "First parameter");
1674
- }
1675
- const strategy = convertQueuingStrategy(rawStrategy, "Second parameter");
1676
- const underlyingSink = convertUnderlyingSink(rawUnderlyingSink, "First parameter");
1677
- InitializeWritableStream(this);
1678
- const type = underlyingSink.type;
1679
- if (type !== void 0) {
1680
- throw new RangeError("Invalid type is specified");
1681
- }
1682
- const sizeAlgorithm = ExtractSizeAlgorithm(strategy);
1683
- const highWaterMark = ExtractHighWaterMark(strategy, 1);
1684
- SetUpWritableStreamDefaultControllerFromUnderlyingSink(this, underlyingSink, highWaterMark, sizeAlgorithm);
1685
- }
1686
- /**
1687
- * Returns whether or not the writable stream is locked to a writer.
1688
- */
1689
- get locked() {
1690
- if (!IsWritableStream(this)) {
1691
- throw streamBrandCheckException$2("locked");
1692
- }
1693
- return IsWritableStreamLocked(this);
1694
- }
1695
- /**
1696
- * Aborts the stream, signaling that the producer can no longer successfully write to the stream and it is to be
1697
- * immediately moved to an errored state, with any queued-up writes discarded. This will also execute any abort
1698
- * mechanism of the underlying sink.
1699
- *
1700
- * The returned promise will fulfill if the stream shuts down successfully, or reject if the underlying sink signaled
1701
- * that there was an error doing so. Additionally, it will reject with a `TypeError` (without attempting to cancel
1702
- * the stream) if the stream is currently locked.
1703
- */
1704
- abort(reason = void 0) {
1705
- if (!IsWritableStream(this)) {
1706
- return promiseRejectedWith(streamBrandCheckException$2("abort"));
1707
- }
1708
- if (IsWritableStreamLocked(this)) {
1709
- return promiseRejectedWith(new TypeError("Cannot abort a stream that already has a writer"));
1710
- }
1711
- return WritableStreamAbort(this, reason);
1712
- }
1713
- /**
1714
- * Closes the stream. The underlying sink will finish processing any previously-written chunks, before invoking its
1715
- * close behavior. During this time any further attempts to write will fail (without erroring the stream).
1716
- *
1717
- * The method returns a promise that will fulfill if all remaining chunks are successfully written and the stream
1718
- * successfully closes, or rejects if an error is encountered during this process. Additionally, it will reject with
1719
- * a `TypeError` (without attempting to cancel the stream) if the stream is currently locked.
1720
- */
1721
- close() {
1722
- if (!IsWritableStream(this)) {
1723
- return promiseRejectedWith(streamBrandCheckException$2("close"));
1724
- }
1725
- if (IsWritableStreamLocked(this)) {
1726
- return promiseRejectedWith(new TypeError("Cannot close a stream that already has a writer"));
1727
- }
1728
- if (WritableStreamCloseQueuedOrInFlight(this)) {
1729
- return promiseRejectedWith(new TypeError("Cannot close an already-closing stream"));
1730
- }
1731
- return WritableStreamClose(this);
1732
- }
1733
- /**
1734
- * Creates a {@link WritableStreamDefaultWriter | writer} and locks the stream to the new writer. While the stream
1735
- * is locked, no other writer can be acquired until this one is released.
1736
- *
1737
- * This functionality is especially useful for creating abstractions that desire the ability to write to a stream
1738
- * without interruption or interleaving. By getting a writer for the stream, you can ensure nobody else can write at
1739
- * the same time, which would cause the resulting written data to be unpredictable and probably useless.
1740
- */
1741
- getWriter() {
1742
- if (!IsWritableStream(this)) {
1743
- throw streamBrandCheckException$2("getWriter");
1744
- }
1745
- return AcquireWritableStreamDefaultWriter(this);
1746
- }
1747
- }
1748
- Object.defineProperties(WritableStream.prototype, {
1749
- abort: { enumerable: true },
1750
- close: { enumerable: true },
1751
- getWriter: { enumerable: true },
1752
- locked: { enumerable: true }
1753
- });
1754
- setFunctionName(WritableStream.prototype.abort, "abort");
1755
- setFunctionName(WritableStream.prototype.close, "close");
1756
- setFunctionName(WritableStream.prototype.getWriter, "getWriter");
1757
- if (typeof Symbol.toStringTag === "symbol") {
1758
- Object.defineProperty(WritableStream.prototype, Symbol.toStringTag, {
1759
- value: "WritableStream",
1760
- configurable: true
1761
- });
1762
- }
1763
- function AcquireWritableStreamDefaultWriter(stream) {
1764
- return new WritableStreamDefaultWriter(stream);
1765
- }
1766
- function CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark = 1, sizeAlgorithm = () => 1) {
1767
- const stream = Object.create(WritableStream.prototype);
1768
- InitializeWritableStream(stream);
1769
- const controller = Object.create(WritableStreamDefaultController.prototype);
1770
- SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);
1771
- return stream;
1772
- }
1773
- function InitializeWritableStream(stream) {
1774
- stream._state = "writable";
1775
- stream._storedError = void 0;
1776
- stream._writer = void 0;
1777
- stream._writableStreamController = void 0;
1778
- stream._writeRequests = new SimpleQueue();
1779
- stream._inFlightWriteRequest = void 0;
1780
- stream._closeRequest = void 0;
1781
- stream._inFlightCloseRequest = void 0;
1782
- stream._pendingAbortRequest = void 0;
1783
- stream._backpressure = false;
1784
- }
1785
- function IsWritableStream(x) {
1786
- if (!typeIsObject(x)) {
1787
- return false;
1788
- }
1789
- if (!Object.prototype.hasOwnProperty.call(x, "_writableStreamController")) {
1790
- return false;
1791
- }
1792
- return x instanceof WritableStream;
1793
- }
1794
- function IsWritableStreamLocked(stream) {
1795
- if (stream._writer === void 0) {
1796
- return false;
1797
- }
1798
- return true;
1799
- }
1800
- function WritableStreamAbort(stream, reason) {
1801
- var _a2;
1802
- if (stream._state === "closed" || stream._state === "errored") {
1803
- return promiseResolvedWith(void 0);
1804
- }
1805
- stream._writableStreamController._abortReason = reason;
1806
- (_a2 = stream._writableStreamController._abortController) === null || _a2 === void 0 ? void 0 : _a2.abort(reason);
1807
- const state = stream._state;
1808
- if (state === "closed" || state === "errored") {
1809
- return promiseResolvedWith(void 0);
1810
- }
1811
- if (stream._pendingAbortRequest !== void 0) {
1812
- return stream._pendingAbortRequest._promise;
1813
- }
1814
- let wasAlreadyErroring = false;
1815
- if (state === "erroring") {
1816
- wasAlreadyErroring = true;
1817
- reason = void 0;
1818
- }
1819
- const promise = newPromise((resolve, reject) => {
1820
- stream._pendingAbortRequest = {
1821
- _promise: void 0,
1822
- _resolve: resolve,
1823
- _reject: reject,
1824
- _reason: reason,
1825
- _wasAlreadyErroring: wasAlreadyErroring
1826
- };
1827
- });
1828
- stream._pendingAbortRequest._promise = promise;
1829
- if (!wasAlreadyErroring) {
1830
- WritableStreamStartErroring(stream, reason);
1831
- }
1832
- return promise;
1833
- }
1834
- function WritableStreamClose(stream) {
1835
- const state = stream._state;
1836
- if (state === "closed" || state === "errored") {
1837
- return promiseRejectedWith(new TypeError(`The stream (in ${state} state) is not in the writable state and cannot be closed`));
1838
- }
1839
- const promise = newPromise((resolve, reject) => {
1840
- const closeRequest = {
1841
- _resolve: resolve,
1842
- _reject: reject
1843
- };
1844
- stream._closeRequest = closeRequest;
1845
- });
1846
- const writer = stream._writer;
1847
- if (writer !== void 0 && stream._backpressure && state === "writable") {
1848
- defaultWriterReadyPromiseResolve(writer);
1849
- }
1850
- WritableStreamDefaultControllerClose(stream._writableStreamController);
1851
- return promise;
1852
- }
1853
- function WritableStreamAddWriteRequest(stream) {
1854
- const promise = newPromise((resolve, reject) => {
1855
- const writeRequest = {
1856
- _resolve: resolve,
1857
- _reject: reject
1858
- };
1859
- stream._writeRequests.push(writeRequest);
1860
- });
1861
- return promise;
1862
- }
1863
- function WritableStreamDealWithRejection(stream, error) {
1864
- const state = stream._state;
1865
- if (state === "writable") {
1866
- WritableStreamStartErroring(stream, error);
1867
- return;
1868
- }
1869
- WritableStreamFinishErroring(stream);
1870
- }
1871
- function WritableStreamStartErroring(stream, reason) {
1872
- const controller = stream._writableStreamController;
1873
- stream._state = "erroring";
1874
- stream._storedError = reason;
1875
- const writer = stream._writer;
1876
- if (writer !== void 0) {
1877
- WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);
1878
- }
1879
- if (!WritableStreamHasOperationMarkedInFlight(stream) && controller._started) {
1880
- WritableStreamFinishErroring(stream);
1881
- }
1882
- }
1883
- function WritableStreamFinishErroring(stream) {
1884
- stream._state = "errored";
1885
- stream._writableStreamController[ErrorSteps]();
1886
- const storedError = stream._storedError;
1887
- stream._writeRequests.forEach((writeRequest) => {
1888
- writeRequest._reject(storedError);
1889
- });
1890
- stream._writeRequests = new SimpleQueue();
1891
- if (stream._pendingAbortRequest === void 0) {
1892
- WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
1893
- return;
1894
- }
1895
- const abortRequest = stream._pendingAbortRequest;
1896
- stream._pendingAbortRequest = void 0;
1897
- if (abortRequest._wasAlreadyErroring) {
1898
- abortRequest._reject(storedError);
1899
- WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
1900
- return;
1901
- }
1902
- const promise = stream._writableStreamController[AbortSteps](abortRequest._reason);
1903
- uponPromise(promise, () => {
1904
- abortRequest._resolve();
1905
- WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
1906
- return null;
1907
- }, (reason) => {
1908
- abortRequest._reject(reason);
1909
- WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
1910
- return null;
1911
- });
1912
- }
1913
- function WritableStreamFinishInFlightWrite(stream) {
1914
- stream._inFlightWriteRequest._resolve(void 0);
1915
- stream._inFlightWriteRequest = void 0;
1916
- }
1917
- function WritableStreamFinishInFlightWriteWithError(stream, error) {
1918
- stream._inFlightWriteRequest._reject(error);
1919
- stream._inFlightWriteRequest = void 0;
1920
- WritableStreamDealWithRejection(stream, error);
1921
- }
1922
- function WritableStreamFinishInFlightClose(stream) {
1923
- stream._inFlightCloseRequest._resolve(void 0);
1924
- stream._inFlightCloseRequest = void 0;
1925
- const state = stream._state;
1926
- if (state === "erroring") {
1927
- stream._storedError = void 0;
1928
- if (stream._pendingAbortRequest !== void 0) {
1929
- stream._pendingAbortRequest._resolve();
1930
- stream._pendingAbortRequest = void 0;
1931
- }
1932
- }
1933
- stream._state = "closed";
1934
- const writer = stream._writer;
1935
- if (writer !== void 0) {
1936
- defaultWriterClosedPromiseResolve(writer);
1937
- }
1938
- }
1939
- function WritableStreamFinishInFlightCloseWithError(stream, error) {
1940
- stream._inFlightCloseRequest._reject(error);
1941
- stream._inFlightCloseRequest = void 0;
1942
- if (stream._pendingAbortRequest !== void 0) {
1943
- stream._pendingAbortRequest._reject(error);
1944
- stream._pendingAbortRequest = void 0;
1945
- }
1946
- WritableStreamDealWithRejection(stream, error);
1947
- }
1948
- function WritableStreamCloseQueuedOrInFlight(stream) {
1949
- if (stream._closeRequest === void 0 && stream._inFlightCloseRequest === void 0) {
1950
- return false;
1951
- }
1952
- return true;
1953
- }
1954
- function WritableStreamHasOperationMarkedInFlight(stream) {
1955
- if (stream._inFlightWriteRequest === void 0 && stream._inFlightCloseRequest === void 0) {
1956
- return false;
1957
- }
1958
- return true;
1959
- }
1960
- function WritableStreamMarkCloseRequestInFlight(stream) {
1961
- stream._inFlightCloseRequest = stream._closeRequest;
1962
- stream._closeRequest = void 0;
1963
- }
1964
- function WritableStreamMarkFirstWriteRequestInFlight(stream) {
1965
- stream._inFlightWriteRequest = stream._writeRequests.shift();
1966
- }
1967
- function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {
1968
- if (stream._closeRequest !== void 0) {
1969
- stream._closeRequest._reject(stream._storedError);
1970
- stream._closeRequest = void 0;
1971
- }
1972
- const writer = stream._writer;
1973
- if (writer !== void 0) {
1974
- defaultWriterClosedPromiseReject(writer, stream._storedError);
1975
- }
1976
- }
1977
- function WritableStreamUpdateBackpressure(stream, backpressure) {
1978
- const writer = stream._writer;
1979
- if (writer !== void 0 && backpressure !== stream._backpressure) {
1980
- if (backpressure) {
1981
- defaultWriterReadyPromiseReset(writer);
1982
- } else {
1983
- defaultWriterReadyPromiseResolve(writer);
1984
- }
1985
- }
1986
- stream._backpressure = backpressure;
1987
- }
1988
- class WritableStreamDefaultWriter {
1989
- constructor(stream) {
1990
- assertRequiredArgument(stream, 1, "WritableStreamDefaultWriter");
1991
- assertWritableStream(stream, "First parameter");
1992
- if (IsWritableStreamLocked(stream)) {
1993
- throw new TypeError("This stream has already been locked for exclusive writing by another writer");
1994
- }
1995
- this._ownerWritableStream = stream;
1996
- stream._writer = this;
1997
- const state = stream._state;
1998
- if (state === "writable") {
1999
- if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._backpressure) {
2000
- defaultWriterReadyPromiseInitialize(this);
2001
- } else {
2002
- defaultWriterReadyPromiseInitializeAsResolved(this);
2003
- }
2004
- defaultWriterClosedPromiseInitialize(this);
2005
- } else if (state === "erroring") {
2006
- defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);
2007
- defaultWriterClosedPromiseInitialize(this);
2008
- } else if (state === "closed") {
2009
- defaultWriterReadyPromiseInitializeAsResolved(this);
2010
- defaultWriterClosedPromiseInitializeAsResolved(this);
2011
- } else {
2012
- const storedError = stream._storedError;
2013
- defaultWriterReadyPromiseInitializeAsRejected(this, storedError);
2014
- defaultWriterClosedPromiseInitializeAsRejected(this, storedError);
2015
- }
2016
- }
2017
- /**
2018
- * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or
2019
- * the writer’s lock is released before the stream finishes closing.
2020
- */
2021
- get closed() {
2022
- if (!IsWritableStreamDefaultWriter(this)) {
2023
- return promiseRejectedWith(defaultWriterBrandCheckException("closed"));
2024
- }
2025
- return this._closedPromise;
2026
- }
2027
- /**
2028
- * Returns the desired size to fill the stream’s internal queue. It can be negative, if the queue is over-full.
2029
- * A producer can use this information to determine the right amount of data to write.
2030
- *
2031
- * It will be `null` if the stream cannot be successfully written to (due to either being errored, or having an abort
2032
- * queued up). It will return zero if the stream is closed. And the getter will throw an exception if invoked when
2033
- * the writer’s lock is released.
2034
- */
2035
- get desiredSize() {
2036
- if (!IsWritableStreamDefaultWriter(this)) {
2037
- throw defaultWriterBrandCheckException("desiredSize");
2038
- }
2039
- if (this._ownerWritableStream === void 0) {
2040
- throw defaultWriterLockException("desiredSize");
2041
- }
2042
- return WritableStreamDefaultWriterGetDesiredSize(this);
2043
- }
2044
- /**
2045
- * Returns a promise that will be fulfilled when the desired size to fill the stream’s internal queue transitions
2046
- * from non-positive to positive, signaling that it is no longer applying backpressure. Once the desired size dips
2047
- * back to zero or below, the getter will return a new promise that stays pending until the next transition.
2048
- *
2049
- * If the stream becomes errored or aborted, or the writer’s lock is released, the returned promise will become
2050
- * rejected.
2051
- */
2052
- get ready() {
2053
- if (!IsWritableStreamDefaultWriter(this)) {
2054
- return promiseRejectedWith(defaultWriterBrandCheckException("ready"));
2055
- }
2056
- return this._readyPromise;
2057
- }
2058
- /**
2059
- * If the reader is active, behaves the same as {@link WritableStream.abort | stream.abort(reason)}.
2060
- */
2061
- abort(reason = void 0) {
2062
- if (!IsWritableStreamDefaultWriter(this)) {
2063
- return promiseRejectedWith(defaultWriterBrandCheckException("abort"));
2064
- }
2065
- if (this._ownerWritableStream === void 0) {
2066
- return promiseRejectedWith(defaultWriterLockException("abort"));
2067
- }
2068
- return WritableStreamDefaultWriterAbort(this, reason);
2069
- }
2070
- /**
2071
- * If the reader is active, behaves the same as {@link WritableStream.close | stream.close()}.
2072
- */
2073
- close() {
2074
- if (!IsWritableStreamDefaultWriter(this)) {
2075
- return promiseRejectedWith(defaultWriterBrandCheckException("close"));
2076
- }
2077
- const stream = this._ownerWritableStream;
2078
- if (stream === void 0) {
2079
- return promiseRejectedWith(defaultWriterLockException("close"));
2080
- }
2081
- if (WritableStreamCloseQueuedOrInFlight(stream)) {
2082
- return promiseRejectedWith(new TypeError("Cannot close an already-closing stream"));
2083
- }
2084
- return WritableStreamDefaultWriterClose(this);
2085
- }
2086
- /**
2087
- * Releases the writer’s lock on the corresponding stream. After the lock is released, the writer is no longer active.
2088
- * If the associated stream is errored when the lock is released, the writer will appear errored in the same way from
2089
- * now on; otherwise, the writer will appear closed.
2090
- *
2091
- * Note that the lock can still be released even if some ongoing writes have not yet finished (i.e. even if the
2092
- * promises returned from previous calls to {@link WritableStreamDefaultWriter.write | write()} have not yet settled).
2093
- * It’s not necessary to hold the lock on the writer for the duration of the write; the lock instead simply prevents
2094
- * other producers from writing in an interleaved manner.
2095
- */
2096
- releaseLock() {
2097
- if (!IsWritableStreamDefaultWriter(this)) {
2098
- throw defaultWriterBrandCheckException("releaseLock");
2099
- }
2100
- const stream = this._ownerWritableStream;
2101
- if (stream === void 0) {
2102
- return;
2103
- }
2104
- WritableStreamDefaultWriterRelease(this);
2105
- }
2106
- write(chunk = void 0) {
2107
- if (!IsWritableStreamDefaultWriter(this)) {
2108
- return promiseRejectedWith(defaultWriterBrandCheckException("write"));
2109
- }
2110
- if (this._ownerWritableStream === void 0) {
2111
- return promiseRejectedWith(defaultWriterLockException("write to"));
2112
- }
2113
- return WritableStreamDefaultWriterWrite(this, chunk);
2114
- }
2115
- }
2116
- Object.defineProperties(WritableStreamDefaultWriter.prototype, {
2117
- abort: { enumerable: true },
2118
- close: { enumerable: true },
2119
- releaseLock: { enumerable: true },
2120
- write: { enumerable: true },
2121
- closed: { enumerable: true },
2122
- desiredSize: { enumerable: true },
2123
- ready: { enumerable: true }
2124
- });
2125
- setFunctionName(WritableStreamDefaultWriter.prototype.abort, "abort");
2126
- setFunctionName(WritableStreamDefaultWriter.prototype.close, "close");
2127
- setFunctionName(WritableStreamDefaultWriter.prototype.releaseLock, "releaseLock");
2128
- setFunctionName(WritableStreamDefaultWriter.prototype.write, "write");
2129
- if (typeof Symbol.toStringTag === "symbol") {
2130
- Object.defineProperty(WritableStreamDefaultWriter.prototype, Symbol.toStringTag, {
2131
- value: "WritableStreamDefaultWriter",
2132
- configurable: true
2133
- });
2134
- }
2135
- function IsWritableStreamDefaultWriter(x) {
2136
- if (!typeIsObject(x)) {
2137
- return false;
2138
- }
2139
- if (!Object.prototype.hasOwnProperty.call(x, "_ownerWritableStream")) {
2140
- return false;
2141
- }
2142
- return x instanceof WritableStreamDefaultWriter;
2143
- }
2144
- function WritableStreamDefaultWriterAbort(writer, reason) {
2145
- const stream = writer._ownerWritableStream;
2146
- return WritableStreamAbort(stream, reason);
2147
- }
2148
- function WritableStreamDefaultWriterClose(writer) {
2149
- const stream = writer._ownerWritableStream;
2150
- return WritableStreamClose(stream);
2151
- }
2152
- function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {
2153
- const stream = writer._ownerWritableStream;
2154
- const state = stream._state;
2155
- if (WritableStreamCloseQueuedOrInFlight(stream) || state === "closed") {
2156
- return promiseResolvedWith(void 0);
2157
- }
2158
- if (state === "errored") {
2159
- return promiseRejectedWith(stream._storedError);
2160
- }
2161
- return WritableStreamDefaultWriterClose(writer);
2162
- }
2163
- function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {
2164
- if (writer._closedPromiseState === "pending") {
2165
- defaultWriterClosedPromiseReject(writer, error);
2166
- } else {
2167
- defaultWriterClosedPromiseResetToRejected(writer, error);
2168
- }
2169
- }
2170
- function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {
2171
- if (writer._readyPromiseState === "pending") {
2172
- defaultWriterReadyPromiseReject(writer, error);
2173
- } else {
2174
- defaultWriterReadyPromiseResetToRejected(writer, error);
2175
- }
2176
- }
2177
- function WritableStreamDefaultWriterGetDesiredSize(writer) {
2178
- const stream = writer._ownerWritableStream;
2179
- const state = stream._state;
2180
- if (state === "errored" || state === "erroring") {
2181
- return null;
2182
- }
2183
- if (state === "closed") {
2184
- return 0;
2185
- }
2186
- return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);
2187
- }
2188
- function WritableStreamDefaultWriterRelease(writer) {
2189
- const stream = writer._ownerWritableStream;
2190
- const releasedError = new TypeError(`Writer was released and can no longer be used to monitor the stream's closedness`);
2191
- WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);
2192
- WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);
2193
- stream._writer = void 0;
2194
- writer._ownerWritableStream = void 0;
2195
- }
2196
- function WritableStreamDefaultWriterWrite(writer, chunk) {
2197
- const stream = writer._ownerWritableStream;
2198
- const controller = stream._writableStreamController;
2199
- const chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);
2200
- if (stream !== writer._ownerWritableStream) {
2201
- return promiseRejectedWith(defaultWriterLockException("write to"));
2202
- }
2203
- const state = stream._state;
2204
- if (state === "errored") {
2205
- return promiseRejectedWith(stream._storedError);
2206
- }
2207
- if (WritableStreamCloseQueuedOrInFlight(stream) || state === "closed") {
2208
- return promiseRejectedWith(new TypeError("The stream is closing or closed and cannot be written to"));
2209
- }
2210
- if (state === "erroring") {
2211
- return promiseRejectedWith(stream._storedError);
2212
- }
2213
- const promise = WritableStreamAddWriteRequest(stream);
2214
- WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);
2215
- return promise;
2216
- }
2217
- const closeSentinel = {};
2218
- class WritableStreamDefaultController {
2219
- constructor() {
2220
- throw new TypeError("Illegal constructor");
2221
- }
2222
- /**
2223
- * The reason which was passed to `WritableStream.abort(reason)` when the stream was aborted.
2224
- *
2225
- * @deprecated
2226
- * This property has been removed from the specification, see https://github.com/whatwg/streams/pull/1177.
2227
- * Use {@link WritableStreamDefaultController.signal}'s `reason` instead.
2228
- */
2229
- get abortReason() {
2230
- if (!IsWritableStreamDefaultController(this)) {
2231
- throw defaultControllerBrandCheckException$2("abortReason");
2232
- }
2233
- return this._abortReason;
2234
- }
2235
- /**
2236
- * An `AbortSignal` that can be used to abort the pending write or close operation when the stream is aborted.
2237
- */
2238
- get signal() {
2239
- if (!IsWritableStreamDefaultController(this)) {
2240
- throw defaultControllerBrandCheckException$2("signal");
2241
- }
2242
- if (this._abortController === void 0) {
2243
- throw new TypeError("WritableStreamDefaultController.prototype.signal is not supported");
2244
- }
2245
- return this._abortController.signal;
2246
- }
2247
- /**
2248
- * Closes the controlled writable stream, making all future interactions with it fail with the given error `e`.
2249
- *
2250
- * This method is rarely used, since usually it suffices to return a rejected promise from one of the underlying
2251
- * sink's methods. However, it can be useful for suddenly shutting down a stream in response to an event outside the
2252
- * normal lifecycle of interactions with the underlying sink.
2253
- */
2254
- error(e = void 0) {
2255
- if (!IsWritableStreamDefaultController(this)) {
2256
- throw defaultControllerBrandCheckException$2("error");
2257
- }
2258
- const state = this._controlledWritableStream._state;
2259
- if (state !== "writable") {
2260
- return;
2261
- }
2262
- WritableStreamDefaultControllerError(this, e);
2263
- }
2264
- /** @internal */
2265
- [AbortSteps](reason) {
2266
- const result = this._abortAlgorithm(reason);
2267
- WritableStreamDefaultControllerClearAlgorithms(this);
2268
- return result;
2269
- }
2270
- /** @internal */
2271
- [ErrorSteps]() {
2272
- ResetQueue(this);
2273
- }
2274
- }
2275
- Object.defineProperties(WritableStreamDefaultController.prototype, {
2276
- abortReason: { enumerable: true },
2277
- signal: { enumerable: true },
2278
- error: { enumerable: true }
2279
- });
2280
- if (typeof Symbol.toStringTag === "symbol") {
2281
- Object.defineProperty(WritableStreamDefaultController.prototype, Symbol.toStringTag, {
2282
- value: "WritableStreamDefaultController",
2283
- configurable: true
2284
- });
2285
- }
2286
- function IsWritableStreamDefaultController(x) {
2287
- if (!typeIsObject(x)) {
2288
- return false;
2289
- }
2290
- if (!Object.prototype.hasOwnProperty.call(x, "_controlledWritableStream")) {
2291
- return false;
2292
- }
2293
- return x instanceof WritableStreamDefaultController;
2294
- }
2295
- function SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {
2296
- controller._controlledWritableStream = stream;
2297
- stream._writableStreamController = controller;
2298
- controller._queue = void 0;
2299
- controller._queueTotalSize = void 0;
2300
- ResetQueue(controller);
2301
- controller._abortReason = void 0;
2302
- controller._abortController = createAbortController();
2303
- controller._started = false;
2304
- controller._strategySizeAlgorithm = sizeAlgorithm;
2305
- controller._strategyHWM = highWaterMark;
2306
- controller._writeAlgorithm = writeAlgorithm;
2307
- controller._closeAlgorithm = closeAlgorithm;
2308
- controller._abortAlgorithm = abortAlgorithm;
2309
- const backpressure = WritableStreamDefaultControllerGetBackpressure(controller);
2310
- WritableStreamUpdateBackpressure(stream, backpressure);
2311
- const startResult = startAlgorithm();
2312
- const startPromise = promiseResolvedWith(startResult);
2313
- uponPromise(startPromise, () => {
2314
- controller._started = true;
2315
- WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
2316
- return null;
2317
- }, (r) => {
2318
- controller._started = true;
2319
- WritableStreamDealWithRejection(stream, r);
2320
- return null;
2321
- });
2322
- }
2323
- function SetUpWritableStreamDefaultControllerFromUnderlyingSink(stream, underlyingSink, highWaterMark, sizeAlgorithm) {
2324
- const controller = Object.create(WritableStreamDefaultController.prototype);
2325
- let startAlgorithm;
2326
- let writeAlgorithm;
2327
- let closeAlgorithm;
2328
- let abortAlgorithm;
2329
- if (underlyingSink.start !== void 0) {
2330
- startAlgorithm = () => underlyingSink.start(controller);
2331
- } else {
2332
- startAlgorithm = () => void 0;
2333
- }
2334
- if (underlyingSink.write !== void 0) {
2335
- writeAlgorithm = (chunk) => underlyingSink.write(chunk, controller);
2336
- } else {
2337
- writeAlgorithm = () => promiseResolvedWith(void 0);
2338
- }
2339
- if (underlyingSink.close !== void 0) {
2340
- closeAlgorithm = () => underlyingSink.close();
2341
- } else {
2342
- closeAlgorithm = () => promiseResolvedWith(void 0);
2343
- }
2344
- if (underlyingSink.abort !== void 0) {
2345
- abortAlgorithm = (reason) => underlyingSink.abort(reason);
2346
- } else {
2347
- abortAlgorithm = () => promiseResolvedWith(void 0);
2348
- }
2349
- SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);
2350
- }
2351
- function WritableStreamDefaultControllerClearAlgorithms(controller) {
2352
- controller._writeAlgorithm = void 0;
2353
- controller._closeAlgorithm = void 0;
2354
- controller._abortAlgorithm = void 0;
2355
- controller._strategySizeAlgorithm = void 0;
2356
- }
2357
- function WritableStreamDefaultControllerClose(controller) {
2358
- EnqueueValueWithSize(controller, closeSentinel, 0);
2359
- WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
2360
- }
2361
- function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {
2362
- try {
2363
- return controller._strategySizeAlgorithm(chunk);
2364
- } catch (chunkSizeE) {
2365
- WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);
2366
- return 1;
2367
- }
2368
- }
2369
- function WritableStreamDefaultControllerGetDesiredSize(controller) {
2370
- return controller._strategyHWM - controller._queueTotalSize;
2371
- }
2372
- function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {
2373
- try {
2374
- EnqueueValueWithSize(controller, chunk, chunkSize);
2375
- } catch (enqueueE) {
2376
- WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);
2377
- return;
2378
- }
2379
- const stream = controller._controlledWritableStream;
2380
- if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._state === "writable") {
2381
- const backpressure = WritableStreamDefaultControllerGetBackpressure(controller);
2382
- WritableStreamUpdateBackpressure(stream, backpressure);
2383
- }
2384
- WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
2385
- }
2386
- function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {
2387
- const stream = controller._controlledWritableStream;
2388
- if (!controller._started) {
2389
- return;
2390
- }
2391
- if (stream._inFlightWriteRequest !== void 0) {
2392
- return;
2393
- }
2394
- const state = stream._state;
2395
- if (state === "erroring") {
2396
- WritableStreamFinishErroring(stream);
2397
- return;
2398
- }
2399
- if (controller._queue.length === 0) {
2400
- return;
2401
- }
2402
- const value = PeekQueueValue(controller);
2403
- if (value === closeSentinel) {
2404
- WritableStreamDefaultControllerProcessClose(controller);
2405
- } else {
2406
- WritableStreamDefaultControllerProcessWrite(controller, value);
2407
- }
2408
- }
2409
- function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {
2410
- if (controller._controlledWritableStream._state === "writable") {
2411
- WritableStreamDefaultControllerError(controller, error);
2412
- }
2413
- }
2414
- function WritableStreamDefaultControllerProcessClose(controller) {
2415
- const stream = controller._controlledWritableStream;
2416
- WritableStreamMarkCloseRequestInFlight(stream);
2417
- DequeueValue(controller);
2418
- const sinkClosePromise = controller._closeAlgorithm();
2419
- WritableStreamDefaultControllerClearAlgorithms(controller);
2420
- uponPromise(sinkClosePromise, () => {
2421
- WritableStreamFinishInFlightClose(stream);
2422
- return null;
2423
- }, (reason) => {
2424
- WritableStreamFinishInFlightCloseWithError(stream, reason);
2425
- return null;
2426
- });
2427
- }
2428
- function WritableStreamDefaultControllerProcessWrite(controller, chunk) {
2429
- const stream = controller._controlledWritableStream;
2430
- WritableStreamMarkFirstWriteRequestInFlight(stream);
2431
- const sinkWritePromise = controller._writeAlgorithm(chunk);
2432
- uponPromise(sinkWritePromise, () => {
2433
- WritableStreamFinishInFlightWrite(stream);
2434
- const state = stream._state;
2435
- DequeueValue(controller);
2436
- if (!WritableStreamCloseQueuedOrInFlight(stream) && state === "writable") {
2437
- const backpressure = WritableStreamDefaultControllerGetBackpressure(controller);
2438
- WritableStreamUpdateBackpressure(stream, backpressure);
2439
- }
2440
- WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
2441
- return null;
2442
- }, (reason) => {
2443
- if (stream._state === "writable") {
2444
- WritableStreamDefaultControllerClearAlgorithms(controller);
2445
- }
2446
- WritableStreamFinishInFlightWriteWithError(stream, reason);
2447
- return null;
2448
- });
2449
- }
2450
- function WritableStreamDefaultControllerGetBackpressure(controller) {
2451
- const desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);
2452
- return desiredSize <= 0;
2453
- }
2454
- function WritableStreamDefaultControllerError(controller, error) {
2455
- const stream = controller._controlledWritableStream;
2456
- WritableStreamDefaultControllerClearAlgorithms(controller);
2457
- WritableStreamStartErroring(stream, error);
2458
- }
2459
- function streamBrandCheckException$2(name) {
2460
- return new TypeError(`WritableStream.prototype.${name} can only be used on a WritableStream`);
2461
- }
2462
- function defaultControllerBrandCheckException$2(name) {
2463
- return new TypeError(`WritableStreamDefaultController.prototype.${name} can only be used on a WritableStreamDefaultController`);
2464
- }
2465
- function defaultWriterBrandCheckException(name) {
2466
- return new TypeError(`WritableStreamDefaultWriter.prototype.${name} can only be used on a WritableStreamDefaultWriter`);
2467
- }
2468
- function defaultWriterLockException(name) {
2469
- return new TypeError("Cannot " + name + " a stream using a released writer");
2470
- }
2471
- function defaultWriterClosedPromiseInitialize(writer) {
2472
- writer._closedPromise = newPromise((resolve, reject) => {
2473
- writer._closedPromise_resolve = resolve;
2474
- writer._closedPromise_reject = reject;
2475
- writer._closedPromiseState = "pending";
2476
- });
2477
- }
2478
- function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {
2479
- defaultWriterClosedPromiseInitialize(writer);
2480
- defaultWriterClosedPromiseReject(writer, reason);
2481
- }
2482
- function defaultWriterClosedPromiseInitializeAsResolved(writer) {
2483
- defaultWriterClosedPromiseInitialize(writer);
2484
- defaultWriterClosedPromiseResolve(writer);
2485
- }
2486
- function defaultWriterClosedPromiseReject(writer, reason) {
2487
- if (writer._closedPromise_reject === void 0) {
2488
- return;
2489
- }
2490
- setPromiseIsHandledToTrue(writer._closedPromise);
2491
- writer._closedPromise_reject(reason);
2492
- writer._closedPromise_resolve = void 0;
2493
- writer._closedPromise_reject = void 0;
2494
- writer._closedPromiseState = "rejected";
2495
- }
2496
- function defaultWriterClosedPromiseResetToRejected(writer, reason) {
2497
- defaultWriterClosedPromiseInitializeAsRejected(writer, reason);
2498
- }
2499
- function defaultWriterClosedPromiseResolve(writer) {
2500
- if (writer._closedPromise_resolve === void 0) {
2501
- return;
2502
- }
2503
- writer._closedPromise_resolve(void 0);
2504
- writer._closedPromise_resolve = void 0;
2505
- writer._closedPromise_reject = void 0;
2506
- writer._closedPromiseState = "resolved";
2507
- }
2508
- function defaultWriterReadyPromiseInitialize(writer) {
2509
- writer._readyPromise = newPromise((resolve, reject) => {
2510
- writer._readyPromise_resolve = resolve;
2511
- writer._readyPromise_reject = reject;
2512
- });
2513
- writer._readyPromiseState = "pending";
2514
- }
2515
- function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {
2516
- defaultWriterReadyPromiseInitialize(writer);
2517
- defaultWriterReadyPromiseReject(writer, reason);
2518
- }
2519
- function defaultWriterReadyPromiseInitializeAsResolved(writer) {
2520
- defaultWriterReadyPromiseInitialize(writer);
2521
- defaultWriterReadyPromiseResolve(writer);
2522
- }
2523
- function defaultWriterReadyPromiseReject(writer, reason) {
2524
- if (writer._readyPromise_reject === void 0) {
2525
- return;
2526
- }
2527
- setPromiseIsHandledToTrue(writer._readyPromise);
2528
- writer._readyPromise_reject(reason);
2529
- writer._readyPromise_resolve = void 0;
2530
- writer._readyPromise_reject = void 0;
2531
- writer._readyPromiseState = "rejected";
2532
- }
2533
- function defaultWriterReadyPromiseReset(writer) {
2534
- defaultWriterReadyPromiseInitialize(writer);
2535
- }
2536
- function defaultWriterReadyPromiseResetToRejected(writer, reason) {
2537
- defaultWriterReadyPromiseInitializeAsRejected(writer, reason);
2538
- }
2539
- function defaultWriterReadyPromiseResolve(writer) {
2540
- if (writer._readyPromise_resolve === void 0) {
2541
- return;
2542
- }
2543
- writer._readyPromise_resolve(void 0);
2544
- writer._readyPromise_resolve = void 0;
2545
- writer._readyPromise_reject = void 0;
2546
- writer._readyPromiseState = "fulfilled";
2547
- }
2548
- function getGlobals() {
2549
- if (typeof globalThis !== "undefined") {
2550
- return globalThis;
2551
- } else if (typeof self !== "undefined") {
2552
- return self;
2553
- } else if (typeof commonjsGlobal !== "undefined") {
2554
- return commonjsGlobal;
2555
- }
2556
- return void 0;
2557
- }
2558
- const globals = getGlobals();
2559
- function isDOMExceptionConstructor(ctor) {
2560
- if (!(typeof ctor === "function" || typeof ctor === "object")) {
2561
- return false;
2562
- }
2563
- if (ctor.name !== "DOMException") {
2564
- return false;
2565
- }
2566
- try {
2567
- new ctor();
2568
- return true;
2569
- } catch (_a2) {
2570
- return false;
2571
- }
2572
- }
2573
- function getFromGlobal() {
2574
- const ctor = globals === null || globals === void 0 ? void 0 : globals.DOMException;
2575
- return isDOMExceptionConstructor(ctor) ? ctor : void 0;
2576
- }
2577
- function createPolyfill() {
2578
- const ctor = function DOMException2(message, name) {
2579
- this.message = message || "";
2580
- this.name = name || "Error";
2581
- if (Error.captureStackTrace) {
2582
- Error.captureStackTrace(this, this.constructor);
2583
- }
2584
- };
2585
- setFunctionName(ctor, "DOMException");
2586
- ctor.prototype = Object.create(Error.prototype);
2587
- Object.defineProperty(ctor.prototype, "constructor", { value: ctor, writable: true, configurable: true });
2588
- return ctor;
2589
- }
2590
- const DOMException = getFromGlobal() || createPolyfill();
2591
- function ReadableStreamPipeTo(source, dest, preventClose, preventAbort, preventCancel, signal) {
2592
- const reader = AcquireReadableStreamDefaultReader(source);
2593
- const writer = AcquireWritableStreamDefaultWriter(dest);
2594
- source._disturbed = true;
2595
- let shuttingDown = false;
2596
- let currentWrite = promiseResolvedWith(void 0);
2597
- return newPromise((resolve, reject) => {
2598
- let abortAlgorithm;
2599
- if (signal !== void 0) {
2600
- abortAlgorithm = () => {
2601
- const error = signal.reason !== void 0 ? signal.reason : new DOMException("Aborted", "AbortError");
2602
- const actions = [];
2603
- if (!preventAbort) {
2604
- actions.push(() => {
2605
- if (dest._state === "writable") {
2606
- return WritableStreamAbort(dest, error);
2607
- }
2608
- return promiseResolvedWith(void 0);
2609
- });
2610
- }
2611
- if (!preventCancel) {
2612
- actions.push(() => {
2613
- if (source._state === "readable") {
2614
- return ReadableStreamCancel(source, error);
2615
- }
2616
- return promiseResolvedWith(void 0);
2617
- });
2618
- }
2619
- shutdownWithAction(() => Promise.all(actions.map((action) => action())), true, error);
2620
- };
2621
- if (signal.aborted) {
2622
- abortAlgorithm();
2623
- return;
2624
- }
2625
- signal.addEventListener("abort", abortAlgorithm);
2626
- }
2627
- function pipeLoop() {
2628
- return newPromise((resolveLoop, rejectLoop) => {
2629
- function next(done) {
2630
- if (done) {
2631
- resolveLoop();
2632
- } else {
2633
- PerformPromiseThen(pipeStep(), next, rejectLoop);
2634
- }
2635
- }
2636
- next(false);
2637
- });
2638
- }
2639
- function pipeStep() {
2640
- if (shuttingDown) {
2641
- return promiseResolvedWith(true);
2642
- }
2643
- return PerformPromiseThen(writer._readyPromise, () => {
2644
- return newPromise((resolveRead, rejectRead) => {
2645
- ReadableStreamDefaultReaderRead(reader, {
2646
- _chunkSteps: (chunk) => {
2647
- currentWrite = PerformPromiseThen(WritableStreamDefaultWriterWrite(writer, chunk), void 0, noop);
2648
- resolveRead(false);
2649
- },
2650
- _closeSteps: () => resolveRead(true),
2651
- _errorSteps: rejectRead
2652
- });
2653
- });
2654
- });
2655
- }
2656
- isOrBecomesErrored(source, reader._closedPromise, (storedError) => {
2657
- if (!preventAbort) {
2658
- shutdownWithAction(() => WritableStreamAbort(dest, storedError), true, storedError);
2659
- } else {
2660
- shutdown(true, storedError);
2661
- }
2662
- return null;
2663
- });
2664
- isOrBecomesErrored(dest, writer._closedPromise, (storedError) => {
2665
- if (!preventCancel) {
2666
- shutdownWithAction(() => ReadableStreamCancel(source, storedError), true, storedError);
2667
- } else {
2668
- shutdown(true, storedError);
2669
- }
2670
- return null;
2671
- });
2672
- isOrBecomesClosed(source, reader._closedPromise, () => {
2673
- if (!preventClose) {
2674
- shutdownWithAction(() => WritableStreamDefaultWriterCloseWithErrorPropagation(writer));
2675
- } else {
2676
- shutdown();
2677
- }
2678
- return null;
2679
- });
2680
- if (WritableStreamCloseQueuedOrInFlight(dest) || dest._state === "closed") {
2681
- const destClosed = new TypeError("the destination writable stream closed before all data could be piped to it");
2682
- if (!preventCancel) {
2683
- shutdownWithAction(() => ReadableStreamCancel(source, destClosed), true, destClosed);
2684
- } else {
2685
- shutdown(true, destClosed);
2686
- }
2687
- }
2688
- setPromiseIsHandledToTrue(pipeLoop());
2689
- function waitForWritesToFinish() {
2690
- const oldCurrentWrite = currentWrite;
2691
- return PerformPromiseThen(currentWrite, () => oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : void 0);
2692
- }
2693
- function isOrBecomesErrored(stream, promise, action) {
2694
- if (stream._state === "errored") {
2695
- action(stream._storedError);
2696
- } else {
2697
- uponRejection(promise, action);
2698
- }
2699
- }
2700
- function isOrBecomesClosed(stream, promise, action) {
2701
- if (stream._state === "closed") {
2702
- action();
2703
- } else {
2704
- uponFulfillment(promise, action);
2705
- }
2706
- }
2707
- function shutdownWithAction(action, originalIsError, originalError) {
2708
- if (shuttingDown) {
2709
- return;
2710
- }
2711
- shuttingDown = true;
2712
- if (dest._state === "writable" && !WritableStreamCloseQueuedOrInFlight(dest)) {
2713
- uponFulfillment(waitForWritesToFinish(), doTheRest);
2714
- } else {
2715
- doTheRest();
2716
- }
2717
- function doTheRest() {
2718
- uponPromise(action(), () => finalize(originalIsError, originalError), (newError) => finalize(true, newError));
2719
- return null;
2720
- }
2721
- }
2722
- function shutdown(isError, error) {
2723
- if (shuttingDown) {
2724
- return;
2725
- }
2726
- shuttingDown = true;
2727
- if (dest._state === "writable" && !WritableStreamCloseQueuedOrInFlight(dest)) {
2728
- uponFulfillment(waitForWritesToFinish(), () => finalize(isError, error));
2729
- } else {
2730
- finalize(isError, error);
2731
- }
2732
- }
2733
- function finalize(isError, error) {
2734
- WritableStreamDefaultWriterRelease(writer);
2735
- ReadableStreamReaderGenericRelease(reader);
2736
- if (signal !== void 0) {
2737
- signal.removeEventListener("abort", abortAlgorithm);
2738
- }
2739
- if (isError) {
2740
- reject(error);
2741
- } else {
2742
- resolve(void 0);
2743
- }
2744
- return null;
2745
- }
2746
- });
2747
- }
2748
- class ReadableStreamDefaultController {
2749
- constructor() {
2750
- throw new TypeError("Illegal constructor");
2751
- }
2752
- /**
2753
- * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is
2754
- * over-full. An underlying source ought to use this information to determine when and how to apply backpressure.
2755
- */
2756
- get desiredSize() {
2757
- if (!IsReadableStreamDefaultController(this)) {
2758
- throw defaultControllerBrandCheckException$1("desiredSize");
2759
- }
2760
- return ReadableStreamDefaultControllerGetDesiredSize(this);
2761
- }
2762
- /**
2763
- * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from
2764
- * the stream, but once those are read, the stream will become closed.
2765
- */
2766
- close() {
2767
- if (!IsReadableStreamDefaultController(this)) {
2768
- throw defaultControllerBrandCheckException$1("close");
2769
- }
2770
- if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) {
2771
- throw new TypeError("The stream is not in a state that permits close");
2772
- }
2773
- ReadableStreamDefaultControllerClose(this);
2774
- }
2775
- enqueue(chunk = void 0) {
2776
- if (!IsReadableStreamDefaultController(this)) {
2777
- throw defaultControllerBrandCheckException$1("enqueue");
2778
- }
2779
- if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) {
2780
- throw new TypeError("The stream is not in a state that permits enqueue");
2781
- }
2782
- return ReadableStreamDefaultControllerEnqueue(this, chunk);
2783
- }
2784
- /**
2785
- * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`.
2786
- */
2787
- error(e = void 0) {
2788
- if (!IsReadableStreamDefaultController(this)) {
2789
- throw defaultControllerBrandCheckException$1("error");
2790
- }
2791
- ReadableStreamDefaultControllerError(this, e);
2792
- }
2793
- /** @internal */
2794
- [CancelSteps](reason) {
2795
- ResetQueue(this);
2796
- const result = this._cancelAlgorithm(reason);
2797
- ReadableStreamDefaultControllerClearAlgorithms(this);
2798
- return result;
2799
- }
2800
- /** @internal */
2801
- [PullSteps](readRequest) {
2802
- const stream = this._controlledReadableStream;
2803
- if (this._queue.length > 0) {
2804
- const chunk = DequeueValue(this);
2805
- if (this._closeRequested && this._queue.length === 0) {
2806
- ReadableStreamDefaultControllerClearAlgorithms(this);
2807
- ReadableStreamClose(stream);
2808
- } else {
2809
- ReadableStreamDefaultControllerCallPullIfNeeded(this);
2810
- }
2811
- readRequest._chunkSteps(chunk);
2812
- } else {
2813
- ReadableStreamAddReadRequest(stream, readRequest);
2814
- ReadableStreamDefaultControllerCallPullIfNeeded(this);
2815
- }
2816
- }
2817
- /** @internal */
2818
- [ReleaseSteps]() {
2819
- }
2820
- }
2821
- Object.defineProperties(ReadableStreamDefaultController.prototype, {
2822
- close: { enumerable: true },
2823
- enqueue: { enumerable: true },
2824
- error: { enumerable: true },
2825
- desiredSize: { enumerable: true }
2826
- });
2827
- setFunctionName(ReadableStreamDefaultController.prototype.close, "close");
2828
- setFunctionName(ReadableStreamDefaultController.prototype.enqueue, "enqueue");
2829
- setFunctionName(ReadableStreamDefaultController.prototype.error, "error");
2830
- if (typeof Symbol.toStringTag === "symbol") {
2831
- Object.defineProperty(ReadableStreamDefaultController.prototype, Symbol.toStringTag, {
2832
- value: "ReadableStreamDefaultController",
2833
- configurable: true
2834
- });
2835
- }
2836
- function IsReadableStreamDefaultController(x) {
2837
- if (!typeIsObject(x)) {
2838
- return false;
2839
- }
2840
- if (!Object.prototype.hasOwnProperty.call(x, "_controlledReadableStream")) {
2841
- return false;
2842
- }
2843
- return x instanceof ReadableStreamDefaultController;
2844
- }
2845
- function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {
2846
- const shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);
2847
- if (!shouldPull) {
2848
- return;
2849
- }
2850
- if (controller._pulling) {
2851
- controller._pullAgain = true;
2852
- return;
2853
- }
2854
- controller._pulling = true;
2855
- const pullPromise = controller._pullAlgorithm();
2856
- uponPromise(pullPromise, () => {
2857
- controller._pulling = false;
2858
- if (controller._pullAgain) {
2859
- controller._pullAgain = false;
2860
- ReadableStreamDefaultControllerCallPullIfNeeded(controller);
2861
- }
2862
- return null;
2863
- }, (e) => {
2864
- ReadableStreamDefaultControllerError(controller, e);
2865
- return null;
2866
- });
2867
- }
2868
- function ReadableStreamDefaultControllerShouldCallPull(controller) {
2869
- const stream = controller._controlledReadableStream;
2870
- if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {
2871
- return false;
2872
- }
2873
- if (!controller._started) {
2874
- return false;
2875
- }
2876
- if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {
2877
- return true;
2878
- }
2879
- const desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);
2880
- if (desiredSize > 0) {
2881
- return true;
2882
- }
2883
- return false;
2884
- }
2885
- function ReadableStreamDefaultControllerClearAlgorithms(controller) {
2886
- controller._pullAlgorithm = void 0;
2887
- controller._cancelAlgorithm = void 0;
2888
- controller._strategySizeAlgorithm = void 0;
2889
- }
2890
- function ReadableStreamDefaultControllerClose(controller) {
2891
- if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {
2892
- return;
2893
- }
2894
- const stream = controller._controlledReadableStream;
2895
- controller._closeRequested = true;
2896
- if (controller._queue.length === 0) {
2897
- ReadableStreamDefaultControllerClearAlgorithms(controller);
2898
- ReadableStreamClose(stream);
2899
- }
2900
- }
2901
- function ReadableStreamDefaultControllerEnqueue(controller, chunk) {
2902
- if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {
2903
- return;
2904
- }
2905
- const stream = controller._controlledReadableStream;
2906
- if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {
2907
- ReadableStreamFulfillReadRequest(stream, chunk, false);
2908
- } else {
2909
- let chunkSize;
2910
- try {
2911
- chunkSize = controller._strategySizeAlgorithm(chunk);
2912
- } catch (chunkSizeE) {
2913
- ReadableStreamDefaultControllerError(controller, chunkSizeE);
2914
- throw chunkSizeE;
2915
- }
2916
- try {
2917
- EnqueueValueWithSize(controller, chunk, chunkSize);
2918
- } catch (enqueueE) {
2919
- ReadableStreamDefaultControllerError(controller, enqueueE);
2920
- throw enqueueE;
2921
- }
2922
- }
2923
- ReadableStreamDefaultControllerCallPullIfNeeded(controller);
2924
- }
2925
- function ReadableStreamDefaultControllerError(controller, e) {
2926
- const stream = controller._controlledReadableStream;
2927
- if (stream._state !== "readable") {
2928
- return;
2929
- }
2930
- ResetQueue(controller);
2931
- ReadableStreamDefaultControllerClearAlgorithms(controller);
2932
- ReadableStreamError(stream, e);
2933
- }
2934
- function ReadableStreamDefaultControllerGetDesiredSize(controller) {
2935
- const state = controller._controlledReadableStream._state;
2936
- if (state === "errored") {
2937
- return null;
2938
- }
2939
- if (state === "closed") {
2940
- return 0;
2941
- }
2942
- return controller._strategyHWM - controller._queueTotalSize;
2943
- }
2944
- function ReadableStreamDefaultControllerHasBackpressure(controller) {
2945
- if (ReadableStreamDefaultControllerShouldCallPull(controller)) {
2946
- return false;
2947
- }
2948
- return true;
2949
- }
2950
- function ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) {
2951
- const state = controller._controlledReadableStream._state;
2952
- if (!controller._closeRequested && state === "readable") {
2953
- return true;
2954
- }
2955
- return false;
2956
- }
2957
- function SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {
2958
- controller._controlledReadableStream = stream;
2959
- controller._queue = void 0;
2960
- controller._queueTotalSize = void 0;
2961
- ResetQueue(controller);
2962
- controller._started = false;
2963
- controller._closeRequested = false;
2964
- controller._pullAgain = false;
2965
- controller._pulling = false;
2966
- controller._strategySizeAlgorithm = sizeAlgorithm;
2967
- controller._strategyHWM = highWaterMark;
2968
- controller._pullAlgorithm = pullAlgorithm;
2969
- controller._cancelAlgorithm = cancelAlgorithm;
2970
- stream._readableStreamController = controller;
2971
- const startResult = startAlgorithm();
2972
- uponPromise(promiseResolvedWith(startResult), () => {
2973
- controller._started = true;
2974
- ReadableStreamDefaultControllerCallPullIfNeeded(controller);
2975
- return null;
2976
- }, (r) => {
2977
- ReadableStreamDefaultControllerError(controller, r);
2978
- return null;
2979
- });
2980
- }
2981
- function SetUpReadableStreamDefaultControllerFromUnderlyingSource(stream, underlyingSource, highWaterMark, sizeAlgorithm) {
2982
- const controller = Object.create(ReadableStreamDefaultController.prototype);
2983
- let startAlgorithm;
2984
- let pullAlgorithm;
2985
- let cancelAlgorithm;
2986
- if (underlyingSource.start !== void 0) {
2987
- startAlgorithm = () => underlyingSource.start(controller);
2988
- } else {
2989
- startAlgorithm = () => void 0;
2990
- }
2991
- if (underlyingSource.pull !== void 0) {
2992
- pullAlgorithm = () => underlyingSource.pull(controller);
2993
- } else {
2994
- pullAlgorithm = () => promiseResolvedWith(void 0);
2995
- }
2996
- if (underlyingSource.cancel !== void 0) {
2997
- cancelAlgorithm = (reason) => underlyingSource.cancel(reason);
2998
- } else {
2999
- cancelAlgorithm = () => promiseResolvedWith(void 0);
3000
- }
3001
- SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);
3002
- }
3003
- function defaultControllerBrandCheckException$1(name) {
3004
- return new TypeError(`ReadableStreamDefaultController.prototype.${name} can only be used on a ReadableStreamDefaultController`);
3005
- }
3006
- function ReadableStreamTee(stream, cloneForBranch2) {
3007
- if (IsReadableByteStreamController(stream._readableStreamController)) {
3008
- return ReadableByteStreamTee(stream);
3009
- }
3010
- return ReadableStreamDefaultTee(stream);
3011
- }
3012
- function ReadableStreamDefaultTee(stream, cloneForBranch2) {
3013
- const reader = AcquireReadableStreamDefaultReader(stream);
3014
- let reading = false;
3015
- let readAgain = false;
3016
- let canceled1 = false;
3017
- let canceled2 = false;
3018
- let reason1;
3019
- let reason2;
3020
- let branch1;
3021
- let branch2;
3022
- let resolveCancelPromise;
3023
- const cancelPromise = newPromise((resolve) => {
3024
- resolveCancelPromise = resolve;
3025
- });
3026
- function pullAlgorithm() {
3027
- if (reading) {
3028
- readAgain = true;
3029
- return promiseResolvedWith(void 0);
3030
- }
3031
- reading = true;
3032
- const readRequest = {
3033
- _chunkSteps: (chunk) => {
3034
- _queueMicrotask(() => {
3035
- readAgain = false;
3036
- const chunk1 = chunk;
3037
- const chunk2 = chunk;
3038
- if (!canceled1) {
3039
- ReadableStreamDefaultControllerEnqueue(branch1._readableStreamController, chunk1);
3040
- }
3041
- if (!canceled2) {
3042
- ReadableStreamDefaultControllerEnqueue(branch2._readableStreamController, chunk2);
3043
- }
3044
- reading = false;
3045
- if (readAgain) {
3046
- pullAlgorithm();
3047
- }
3048
- });
3049
- },
3050
- _closeSteps: () => {
3051
- reading = false;
3052
- if (!canceled1) {
3053
- ReadableStreamDefaultControllerClose(branch1._readableStreamController);
3054
- }
3055
- if (!canceled2) {
3056
- ReadableStreamDefaultControllerClose(branch2._readableStreamController);
3057
- }
3058
- if (!canceled1 || !canceled2) {
3059
- resolveCancelPromise(void 0);
3060
- }
3061
- },
3062
- _errorSteps: () => {
3063
- reading = false;
3064
- }
3065
- };
3066
- ReadableStreamDefaultReaderRead(reader, readRequest);
3067
- return promiseResolvedWith(void 0);
3068
- }
3069
- function cancel1Algorithm(reason) {
3070
- canceled1 = true;
3071
- reason1 = reason;
3072
- if (canceled2) {
3073
- const compositeReason = CreateArrayFromList([reason1, reason2]);
3074
- const cancelResult = ReadableStreamCancel(stream, compositeReason);
3075
- resolveCancelPromise(cancelResult);
3076
- }
3077
- return cancelPromise;
3078
- }
3079
- function cancel2Algorithm(reason) {
3080
- canceled2 = true;
3081
- reason2 = reason;
3082
- if (canceled1) {
3083
- const compositeReason = CreateArrayFromList([reason1, reason2]);
3084
- const cancelResult = ReadableStreamCancel(stream, compositeReason);
3085
- resolveCancelPromise(cancelResult);
3086
- }
3087
- return cancelPromise;
3088
- }
3089
- function startAlgorithm() {
3090
- }
3091
- branch1 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel1Algorithm);
3092
- branch2 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel2Algorithm);
3093
- uponRejection(reader._closedPromise, (r) => {
3094
- ReadableStreamDefaultControllerError(branch1._readableStreamController, r);
3095
- ReadableStreamDefaultControllerError(branch2._readableStreamController, r);
3096
- if (!canceled1 || !canceled2) {
3097
- resolveCancelPromise(void 0);
3098
- }
3099
- return null;
3100
- });
3101
- return [branch1, branch2];
3102
- }
3103
- function ReadableByteStreamTee(stream) {
3104
- let reader = AcquireReadableStreamDefaultReader(stream);
3105
- let reading = false;
3106
- let readAgainForBranch1 = false;
3107
- let readAgainForBranch2 = false;
3108
- let canceled1 = false;
3109
- let canceled2 = false;
3110
- let reason1;
3111
- let reason2;
3112
- let branch1;
3113
- let branch2;
3114
- let resolveCancelPromise;
3115
- const cancelPromise = newPromise((resolve) => {
3116
- resolveCancelPromise = resolve;
3117
- });
3118
- function forwardReaderError(thisReader) {
3119
- uponRejection(thisReader._closedPromise, (r) => {
3120
- if (thisReader !== reader) {
3121
- return null;
3122
- }
3123
- ReadableByteStreamControllerError(branch1._readableStreamController, r);
3124
- ReadableByteStreamControllerError(branch2._readableStreamController, r);
3125
- if (!canceled1 || !canceled2) {
3126
- resolveCancelPromise(void 0);
3127
- }
3128
- return null;
3129
- });
3130
- }
3131
- function pullWithDefaultReader() {
3132
- if (IsReadableStreamBYOBReader(reader)) {
3133
- ReadableStreamReaderGenericRelease(reader);
3134
- reader = AcquireReadableStreamDefaultReader(stream);
3135
- forwardReaderError(reader);
3136
- }
3137
- const readRequest = {
3138
- _chunkSteps: (chunk) => {
3139
- _queueMicrotask(() => {
3140
- readAgainForBranch1 = false;
3141
- readAgainForBranch2 = false;
3142
- const chunk1 = chunk;
3143
- let chunk2 = chunk;
3144
- if (!canceled1 && !canceled2) {
3145
- try {
3146
- chunk2 = CloneAsUint8Array(chunk);
3147
- } catch (cloneE) {
3148
- ReadableByteStreamControllerError(branch1._readableStreamController, cloneE);
3149
- ReadableByteStreamControllerError(branch2._readableStreamController, cloneE);
3150
- resolveCancelPromise(ReadableStreamCancel(stream, cloneE));
3151
- return;
3152
- }
3153
- }
3154
- if (!canceled1) {
3155
- ReadableByteStreamControllerEnqueue(branch1._readableStreamController, chunk1);
3156
- }
3157
- if (!canceled2) {
3158
- ReadableByteStreamControllerEnqueue(branch2._readableStreamController, chunk2);
3159
- }
3160
- reading = false;
3161
- if (readAgainForBranch1) {
3162
- pull1Algorithm();
3163
- } else if (readAgainForBranch2) {
3164
- pull2Algorithm();
3165
- }
3166
- });
3167
- },
3168
- _closeSteps: () => {
3169
- reading = false;
3170
- if (!canceled1) {
3171
- ReadableByteStreamControllerClose(branch1._readableStreamController);
3172
- }
3173
- if (!canceled2) {
3174
- ReadableByteStreamControllerClose(branch2._readableStreamController);
3175
- }
3176
- if (branch1._readableStreamController._pendingPullIntos.length > 0) {
3177
- ReadableByteStreamControllerRespond(branch1._readableStreamController, 0);
3178
- }
3179
- if (branch2._readableStreamController._pendingPullIntos.length > 0) {
3180
- ReadableByteStreamControllerRespond(branch2._readableStreamController, 0);
3181
- }
3182
- if (!canceled1 || !canceled2) {
3183
- resolveCancelPromise(void 0);
3184
- }
3185
- },
3186
- _errorSteps: () => {
3187
- reading = false;
3188
- }
3189
- };
3190
- ReadableStreamDefaultReaderRead(reader, readRequest);
3191
- }
3192
- function pullWithBYOBReader(view, forBranch2) {
3193
- if (IsReadableStreamDefaultReader(reader)) {
3194
- ReadableStreamReaderGenericRelease(reader);
3195
- reader = AcquireReadableStreamBYOBReader(stream);
3196
- forwardReaderError(reader);
3197
- }
3198
- const byobBranch = forBranch2 ? branch2 : branch1;
3199
- const otherBranch = forBranch2 ? branch1 : branch2;
3200
- const readIntoRequest = {
3201
- _chunkSteps: (chunk) => {
3202
- _queueMicrotask(() => {
3203
- readAgainForBranch1 = false;
3204
- readAgainForBranch2 = false;
3205
- const byobCanceled = forBranch2 ? canceled2 : canceled1;
3206
- const otherCanceled = forBranch2 ? canceled1 : canceled2;
3207
- if (!otherCanceled) {
3208
- let clonedChunk;
3209
- try {
3210
- clonedChunk = CloneAsUint8Array(chunk);
3211
- } catch (cloneE) {
3212
- ReadableByteStreamControllerError(byobBranch._readableStreamController, cloneE);
3213
- ReadableByteStreamControllerError(otherBranch._readableStreamController, cloneE);
3214
- resolveCancelPromise(ReadableStreamCancel(stream, cloneE));
3215
- return;
3216
- }
3217
- if (!byobCanceled) {
3218
- ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);
3219
- }
3220
- ReadableByteStreamControllerEnqueue(otherBranch._readableStreamController, clonedChunk);
3221
- } else if (!byobCanceled) {
3222
- ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);
3223
- }
3224
- reading = false;
3225
- if (readAgainForBranch1) {
3226
- pull1Algorithm();
3227
- } else if (readAgainForBranch2) {
3228
- pull2Algorithm();
3229
- }
3230
- });
3231
- },
3232
- _closeSteps: (chunk) => {
3233
- reading = false;
3234
- const byobCanceled = forBranch2 ? canceled2 : canceled1;
3235
- const otherCanceled = forBranch2 ? canceled1 : canceled2;
3236
- if (!byobCanceled) {
3237
- ReadableByteStreamControllerClose(byobBranch._readableStreamController);
3238
- }
3239
- if (!otherCanceled) {
3240
- ReadableByteStreamControllerClose(otherBranch._readableStreamController);
3241
- }
3242
- if (chunk !== void 0) {
3243
- if (!byobCanceled) {
3244
- ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);
3245
- }
3246
- if (!otherCanceled && otherBranch._readableStreamController._pendingPullIntos.length > 0) {
3247
- ReadableByteStreamControllerRespond(otherBranch._readableStreamController, 0);
3248
- }
3249
- }
3250
- if (!byobCanceled || !otherCanceled) {
3251
- resolveCancelPromise(void 0);
3252
- }
3253
- },
3254
- _errorSteps: () => {
3255
- reading = false;
3256
- }
3257
- };
3258
- ReadableStreamBYOBReaderRead(reader, view, 1, readIntoRequest);
3259
- }
3260
- function pull1Algorithm() {
3261
- if (reading) {
3262
- readAgainForBranch1 = true;
3263
- return promiseResolvedWith(void 0);
3264
- }
3265
- reading = true;
3266
- const byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch1._readableStreamController);
3267
- if (byobRequest === null) {
3268
- pullWithDefaultReader();
3269
- } else {
3270
- pullWithBYOBReader(byobRequest._view, false);
3271
- }
3272
- return promiseResolvedWith(void 0);
3273
- }
3274
- function pull2Algorithm() {
3275
- if (reading) {
3276
- readAgainForBranch2 = true;
3277
- return promiseResolvedWith(void 0);
3278
- }
3279
- reading = true;
3280
- const byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch2._readableStreamController);
3281
- if (byobRequest === null) {
3282
- pullWithDefaultReader();
3283
- } else {
3284
- pullWithBYOBReader(byobRequest._view, true);
3285
- }
3286
- return promiseResolvedWith(void 0);
3287
- }
3288
- function cancel1Algorithm(reason) {
3289
- canceled1 = true;
3290
- reason1 = reason;
3291
- if (canceled2) {
3292
- const compositeReason = CreateArrayFromList([reason1, reason2]);
3293
- const cancelResult = ReadableStreamCancel(stream, compositeReason);
3294
- resolveCancelPromise(cancelResult);
3295
- }
3296
- return cancelPromise;
3297
- }
3298
- function cancel2Algorithm(reason) {
3299
- canceled2 = true;
3300
- reason2 = reason;
3301
- if (canceled1) {
3302
- const compositeReason = CreateArrayFromList([reason1, reason2]);
3303
- const cancelResult = ReadableStreamCancel(stream, compositeReason);
3304
- resolveCancelPromise(cancelResult);
3305
- }
3306
- return cancelPromise;
3307
- }
3308
- function startAlgorithm() {
3309
- return;
3310
- }
3311
- branch1 = CreateReadableByteStream(startAlgorithm, pull1Algorithm, cancel1Algorithm);
3312
- branch2 = CreateReadableByteStream(startAlgorithm, pull2Algorithm, cancel2Algorithm);
3313
- forwardReaderError(reader);
3314
- return [branch1, branch2];
3315
- }
3316
- function isReadableStreamLike(stream) {
3317
- return typeIsObject(stream) && typeof stream.getReader !== "undefined";
3318
- }
3319
- function ReadableStreamFrom(source) {
3320
- if (isReadableStreamLike(source)) {
3321
- return ReadableStreamFromDefaultReader(source.getReader());
3322
- }
3323
- return ReadableStreamFromIterable(source);
3324
- }
3325
- function ReadableStreamFromIterable(asyncIterable) {
3326
- let stream;
3327
- const iteratorRecord = GetIterator(asyncIterable, "async");
3328
- const startAlgorithm = noop;
3329
- function pullAlgorithm() {
3330
- let nextResult;
3331
- try {
3332
- nextResult = IteratorNext(iteratorRecord);
3333
- } catch (e) {
3334
- return promiseRejectedWith(e);
3335
- }
3336
- const nextPromise = promiseResolvedWith(nextResult);
3337
- return transformPromiseWith(nextPromise, (iterResult) => {
3338
- if (!typeIsObject(iterResult)) {
3339
- throw new TypeError("The promise returned by the iterator.next() method must fulfill with an object");
3340
- }
3341
- const done = IteratorComplete(iterResult);
3342
- if (done) {
3343
- ReadableStreamDefaultControllerClose(stream._readableStreamController);
3344
- } else {
3345
- const value = IteratorValue(iterResult);
3346
- ReadableStreamDefaultControllerEnqueue(stream._readableStreamController, value);
3347
- }
3348
- });
3349
- }
3350
- function cancelAlgorithm(reason) {
3351
- const iterator = iteratorRecord.iterator;
3352
- let returnMethod;
3353
- try {
3354
- returnMethod = GetMethod(iterator, "return");
3355
- } catch (e) {
3356
- return promiseRejectedWith(e);
3357
- }
3358
- if (returnMethod === void 0) {
3359
- return promiseResolvedWith(void 0);
3360
- }
3361
- let returnResult;
3362
- try {
3363
- returnResult = reflectCall(returnMethod, iterator, [reason]);
3364
- } catch (e) {
3365
- return promiseRejectedWith(e);
3366
- }
3367
- const returnPromise = promiseResolvedWith(returnResult);
3368
- return transformPromiseWith(returnPromise, (iterResult) => {
3369
- if (!typeIsObject(iterResult)) {
3370
- throw new TypeError("The promise returned by the iterator.return() method must fulfill with an object");
3371
- }
3372
- return void 0;
3373
- });
3374
- }
3375
- stream = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, 0);
3376
- return stream;
3377
- }
3378
- function ReadableStreamFromDefaultReader(reader) {
3379
- let stream;
3380
- const startAlgorithm = noop;
3381
- function pullAlgorithm() {
3382
- let readPromise;
3383
- try {
3384
- readPromise = reader.read();
3385
- } catch (e) {
3386
- return promiseRejectedWith(e);
3387
- }
3388
- return transformPromiseWith(readPromise, (readResult) => {
3389
- if (!typeIsObject(readResult)) {
3390
- throw new TypeError("The promise returned by the reader.read() method must fulfill with an object");
3391
- }
3392
- if (readResult.done) {
3393
- ReadableStreamDefaultControllerClose(stream._readableStreamController);
3394
- } else {
3395
- const value = readResult.value;
3396
- ReadableStreamDefaultControllerEnqueue(stream._readableStreamController, value);
3397
- }
3398
- });
3399
- }
3400
- function cancelAlgorithm(reason) {
3401
- try {
3402
- return promiseResolvedWith(reader.cancel(reason));
3403
- } catch (e) {
3404
- return promiseRejectedWith(e);
3405
- }
3406
- }
3407
- stream = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, 0);
3408
- return stream;
3409
- }
3410
- function convertUnderlyingDefaultOrByteSource(source, context) {
3411
- assertDictionary(source, context);
3412
- const original = source;
3413
- const autoAllocateChunkSize = original === null || original === void 0 ? void 0 : original.autoAllocateChunkSize;
3414
- const cancel = original === null || original === void 0 ? void 0 : original.cancel;
3415
- const pull = original === null || original === void 0 ? void 0 : original.pull;
3416
- const start = original === null || original === void 0 ? void 0 : original.start;
3417
- const type = original === null || original === void 0 ? void 0 : original.type;
3418
- return {
3419
- autoAllocateChunkSize: autoAllocateChunkSize === void 0 ? void 0 : convertUnsignedLongLongWithEnforceRange(autoAllocateChunkSize, `${context} has member 'autoAllocateChunkSize' that`),
3420
- cancel: cancel === void 0 ? void 0 : convertUnderlyingSourceCancelCallback(cancel, original, `${context} has member 'cancel' that`),
3421
- pull: pull === void 0 ? void 0 : convertUnderlyingSourcePullCallback(pull, original, `${context} has member 'pull' that`),
3422
- start: start === void 0 ? void 0 : convertUnderlyingSourceStartCallback(start, original, `${context} has member 'start' that`),
3423
- type: type === void 0 ? void 0 : convertReadableStreamType(type, `${context} has member 'type' that`)
3424
- };
3425
- }
3426
- function convertUnderlyingSourceCancelCallback(fn, original, context) {
3427
- assertFunction(fn, context);
3428
- return (reason) => promiseCall(fn, original, [reason]);
3429
- }
3430
- function convertUnderlyingSourcePullCallback(fn, original, context) {
3431
- assertFunction(fn, context);
3432
- return (controller) => promiseCall(fn, original, [controller]);
3433
- }
3434
- function convertUnderlyingSourceStartCallback(fn, original, context) {
3435
- assertFunction(fn, context);
3436
- return (controller) => reflectCall(fn, original, [controller]);
3437
- }
3438
- function convertReadableStreamType(type, context) {
3439
- type = `${type}`;
3440
- if (type !== "bytes") {
3441
- throw new TypeError(`${context} '${type}' is not a valid enumeration value for ReadableStreamType`);
3442
- }
3443
- return type;
3444
- }
3445
- function convertIteratorOptions(options, context) {
3446
- assertDictionary(options, context);
3447
- const preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel;
3448
- return { preventCancel: Boolean(preventCancel) };
3449
- }
3450
- function convertPipeOptions(options, context) {
3451
- assertDictionary(options, context);
3452
- const preventAbort = options === null || options === void 0 ? void 0 : options.preventAbort;
3453
- const preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel;
3454
- const preventClose = options === null || options === void 0 ? void 0 : options.preventClose;
3455
- const signal = options === null || options === void 0 ? void 0 : options.signal;
3456
- if (signal !== void 0) {
3457
- assertAbortSignal(signal, `${context} has member 'signal' that`);
3458
- }
3459
- return {
3460
- preventAbort: Boolean(preventAbort),
3461
- preventCancel: Boolean(preventCancel),
3462
- preventClose: Boolean(preventClose),
3463
- signal
3464
- };
3465
- }
3466
- function assertAbortSignal(signal, context) {
3467
- if (!isAbortSignal(signal)) {
3468
- throw new TypeError(`${context} is not an AbortSignal.`);
3469
- }
3470
- }
3471
- function convertReadableWritablePair(pair, context) {
3472
- assertDictionary(pair, context);
3473
- const readable = pair === null || pair === void 0 ? void 0 : pair.readable;
3474
- assertRequiredField(readable, "readable", "ReadableWritablePair");
3475
- assertReadableStream(readable, `${context} has member 'readable' that`);
3476
- const writable = pair === null || pair === void 0 ? void 0 : pair.writable;
3477
- assertRequiredField(writable, "writable", "ReadableWritablePair");
3478
- assertWritableStream(writable, `${context} has member 'writable' that`);
3479
- return { readable, writable };
3480
- }
3481
- class ReadableStream {
3482
- constructor(rawUnderlyingSource = {}, rawStrategy = {}) {
3483
- if (rawUnderlyingSource === void 0) {
3484
- rawUnderlyingSource = null;
3485
- } else {
3486
- assertObject(rawUnderlyingSource, "First parameter");
3487
- }
3488
- const strategy = convertQueuingStrategy(rawStrategy, "Second parameter");
3489
- const underlyingSource = convertUnderlyingDefaultOrByteSource(rawUnderlyingSource, "First parameter");
3490
- InitializeReadableStream(this);
3491
- if (underlyingSource.type === "bytes") {
3492
- if (strategy.size !== void 0) {
3493
- throw new RangeError("The strategy for a byte stream cannot have a size function");
3494
- }
3495
- const highWaterMark = ExtractHighWaterMark(strategy, 0);
3496
- SetUpReadableByteStreamControllerFromUnderlyingSource(this, underlyingSource, highWaterMark);
3497
- } else {
3498
- const sizeAlgorithm = ExtractSizeAlgorithm(strategy);
3499
- const highWaterMark = ExtractHighWaterMark(strategy, 1);
3500
- SetUpReadableStreamDefaultControllerFromUnderlyingSource(this, underlyingSource, highWaterMark, sizeAlgorithm);
3501
- }
3502
- }
3503
- /**
3504
- * Whether or not the readable stream is locked to a {@link ReadableStreamDefaultReader | reader}.
3505
- */
3506
- get locked() {
3507
- if (!IsReadableStream(this)) {
3508
- throw streamBrandCheckException$1("locked");
3509
- }
3510
- return IsReadableStreamLocked(this);
3511
- }
3512
- /**
3513
- * Cancels the stream, signaling a loss of interest in the stream by a consumer.
3514
- *
3515
- * The supplied `reason` argument will be given to the underlying source's {@link UnderlyingSource.cancel | cancel()}
3516
- * method, which might or might not use it.
3517
- */
3518
- cancel(reason = void 0) {
3519
- if (!IsReadableStream(this)) {
3520
- return promiseRejectedWith(streamBrandCheckException$1("cancel"));
3521
- }
3522
- if (IsReadableStreamLocked(this)) {
3523
- return promiseRejectedWith(new TypeError("Cannot cancel a stream that already has a reader"));
3524
- }
3525
- return ReadableStreamCancel(this, reason);
3526
- }
3527
- getReader(rawOptions = void 0) {
3528
- if (!IsReadableStream(this)) {
3529
- throw streamBrandCheckException$1("getReader");
3530
- }
3531
- const options = convertReaderOptions(rawOptions, "First parameter");
3532
- if (options.mode === void 0) {
3533
- return AcquireReadableStreamDefaultReader(this);
3534
- }
3535
- return AcquireReadableStreamBYOBReader(this);
3536
- }
3537
- pipeThrough(rawTransform, rawOptions = {}) {
3538
- if (!IsReadableStream(this)) {
3539
- throw streamBrandCheckException$1("pipeThrough");
3540
- }
3541
- assertRequiredArgument(rawTransform, 1, "pipeThrough");
3542
- const transform = convertReadableWritablePair(rawTransform, "First parameter");
3543
- const options = convertPipeOptions(rawOptions, "Second parameter");
3544
- if (IsReadableStreamLocked(this)) {
3545
- throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream");
3546
- }
3547
- if (IsWritableStreamLocked(transform.writable)) {
3548
- throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream");
3549
- }
3550
- const promise = ReadableStreamPipeTo(this, transform.writable, options.preventClose, options.preventAbort, options.preventCancel, options.signal);
3551
- setPromiseIsHandledToTrue(promise);
3552
- return transform.readable;
3553
- }
3554
- pipeTo(destination, rawOptions = {}) {
3555
- if (!IsReadableStream(this)) {
3556
- return promiseRejectedWith(streamBrandCheckException$1("pipeTo"));
3557
- }
3558
- if (destination === void 0) {
3559
- return promiseRejectedWith(`Parameter 1 is required in 'pipeTo'.`);
3560
- }
3561
- if (!IsWritableStream(destination)) {
3562
- return promiseRejectedWith(new TypeError(`ReadableStream.prototype.pipeTo's first argument must be a WritableStream`));
3563
- }
3564
- let options;
3565
- try {
3566
- options = convertPipeOptions(rawOptions, "Second parameter");
3567
- } catch (e) {
3568
- return promiseRejectedWith(e);
3569
- }
3570
- if (IsReadableStreamLocked(this)) {
3571
- return promiseRejectedWith(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream"));
3572
- }
3573
- if (IsWritableStreamLocked(destination)) {
3574
- return promiseRejectedWith(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream"));
3575
- }
3576
- return ReadableStreamPipeTo(this, destination, options.preventClose, options.preventAbort, options.preventCancel, options.signal);
3577
- }
3578
- /**
3579
- * Tees this readable stream, returning a two-element array containing the two resulting branches as
3580
- * new {@link ReadableStream} instances.
3581
- *
3582
- * Teeing a stream will lock it, preventing any other consumer from acquiring a reader.
3583
- * To cancel the stream, cancel both of the resulting branches; a composite cancellation reason will then be
3584
- * propagated to the stream's underlying source.
3585
- *
3586
- * Note that the chunks seen in each branch will be the same object. If the chunks are not immutable,
3587
- * this could allow interference between the two branches.
3588
- */
3589
- tee() {
3590
- if (!IsReadableStream(this)) {
3591
- throw streamBrandCheckException$1("tee");
3592
- }
3593
- const branches = ReadableStreamTee(this);
3594
- return CreateArrayFromList(branches);
3595
- }
3596
- values(rawOptions = void 0) {
3597
- if (!IsReadableStream(this)) {
3598
- throw streamBrandCheckException$1("values");
3599
- }
3600
- const options = convertIteratorOptions(rawOptions, "First parameter");
3601
- return AcquireReadableStreamAsyncIterator(this, options.preventCancel);
3602
- }
3603
- [SymbolAsyncIterator](options) {
3604
- return this.values(options);
3605
- }
3606
- /**
3607
- * Creates a new ReadableStream wrapping the provided iterable or async iterable.
3608
- *
3609
- * This can be used to adapt various kinds of objects into a readable stream,
3610
- * such as an array, an async generator, or a Node.js readable stream.
3611
- */
3612
- static from(asyncIterable) {
3613
- return ReadableStreamFrom(asyncIterable);
3614
- }
3615
- }
3616
- Object.defineProperties(ReadableStream, {
3617
- from: { enumerable: true }
3618
- });
3619
- Object.defineProperties(ReadableStream.prototype, {
3620
- cancel: { enumerable: true },
3621
- getReader: { enumerable: true },
3622
- pipeThrough: { enumerable: true },
3623
- pipeTo: { enumerable: true },
3624
- tee: { enumerable: true },
3625
- values: { enumerable: true },
3626
- locked: { enumerable: true }
3627
- });
3628
- setFunctionName(ReadableStream.from, "from");
3629
- setFunctionName(ReadableStream.prototype.cancel, "cancel");
3630
- setFunctionName(ReadableStream.prototype.getReader, "getReader");
3631
- setFunctionName(ReadableStream.prototype.pipeThrough, "pipeThrough");
3632
- setFunctionName(ReadableStream.prototype.pipeTo, "pipeTo");
3633
- setFunctionName(ReadableStream.prototype.tee, "tee");
3634
- setFunctionName(ReadableStream.prototype.values, "values");
3635
- if (typeof Symbol.toStringTag === "symbol") {
3636
- Object.defineProperty(ReadableStream.prototype, Symbol.toStringTag, {
3637
- value: "ReadableStream",
3638
- configurable: true
3639
- });
3640
- }
3641
- Object.defineProperty(ReadableStream.prototype, SymbolAsyncIterator, {
3642
- value: ReadableStream.prototype.values,
3643
- writable: true,
3644
- configurable: true
3645
- });
3646
- function CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark = 1, sizeAlgorithm = () => 1) {
3647
- const stream = Object.create(ReadableStream.prototype);
3648
- InitializeReadableStream(stream);
3649
- const controller = Object.create(ReadableStreamDefaultController.prototype);
3650
- SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);
3651
- return stream;
3652
- }
3653
- function CreateReadableByteStream(startAlgorithm, pullAlgorithm, cancelAlgorithm) {
3654
- const stream = Object.create(ReadableStream.prototype);
3655
- InitializeReadableStream(stream);
3656
- const controller = Object.create(ReadableByteStreamController.prototype);
3657
- SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, 0, void 0);
3658
- return stream;
3659
- }
3660
- function InitializeReadableStream(stream) {
3661
- stream._state = "readable";
3662
- stream._reader = void 0;
3663
- stream._storedError = void 0;
3664
- stream._disturbed = false;
3665
- }
3666
- function IsReadableStream(x) {
3667
- if (!typeIsObject(x)) {
3668
- return false;
3669
- }
3670
- if (!Object.prototype.hasOwnProperty.call(x, "_readableStreamController")) {
3671
- return false;
3672
- }
3673
- return x instanceof ReadableStream;
3674
- }
3675
- function IsReadableStreamLocked(stream) {
3676
- if (stream._reader === void 0) {
3677
- return false;
3678
- }
3679
- return true;
3680
- }
3681
- function ReadableStreamCancel(stream, reason) {
3682
- stream._disturbed = true;
3683
- if (stream._state === "closed") {
3684
- return promiseResolvedWith(void 0);
3685
- }
3686
- if (stream._state === "errored") {
3687
- return promiseRejectedWith(stream._storedError);
3688
- }
3689
- ReadableStreamClose(stream);
3690
- const reader = stream._reader;
3691
- if (reader !== void 0 && IsReadableStreamBYOBReader(reader)) {
3692
- const readIntoRequests = reader._readIntoRequests;
3693
- reader._readIntoRequests = new SimpleQueue();
3694
- readIntoRequests.forEach((readIntoRequest) => {
3695
- readIntoRequest._closeSteps(void 0);
3696
- });
3697
- }
3698
- const sourceCancelPromise = stream._readableStreamController[CancelSteps](reason);
3699
- return transformPromiseWith(sourceCancelPromise, noop);
3700
- }
3701
- function ReadableStreamClose(stream) {
3702
- stream._state = "closed";
3703
- const reader = stream._reader;
3704
- if (reader === void 0) {
3705
- return;
3706
- }
3707
- defaultReaderClosedPromiseResolve(reader);
3708
- if (IsReadableStreamDefaultReader(reader)) {
3709
- const readRequests = reader._readRequests;
3710
- reader._readRequests = new SimpleQueue();
3711
- readRequests.forEach((readRequest) => {
3712
- readRequest._closeSteps();
3713
- });
3714
- }
3715
- }
3716
- function ReadableStreamError(stream, e) {
3717
- stream._state = "errored";
3718
- stream._storedError = e;
3719
- const reader = stream._reader;
3720
- if (reader === void 0) {
3721
- return;
3722
- }
3723
- defaultReaderClosedPromiseReject(reader, e);
3724
- if (IsReadableStreamDefaultReader(reader)) {
3725
- ReadableStreamDefaultReaderErrorReadRequests(reader, e);
3726
- } else {
3727
- ReadableStreamBYOBReaderErrorReadIntoRequests(reader, e);
3728
- }
3729
- }
3730
- function streamBrandCheckException$1(name) {
3731
- return new TypeError(`ReadableStream.prototype.${name} can only be used on a ReadableStream`);
3732
- }
3733
- function convertQueuingStrategyInit(init, context) {
3734
- assertDictionary(init, context);
3735
- const highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark;
3736
- assertRequiredField(highWaterMark, "highWaterMark", "QueuingStrategyInit");
3737
- return {
3738
- highWaterMark: convertUnrestrictedDouble(highWaterMark)
3739
- };
3740
- }
3741
- const byteLengthSizeFunction = (chunk) => {
3742
- return chunk.byteLength;
3743
- };
3744
- setFunctionName(byteLengthSizeFunction, "size");
3745
- class ByteLengthQueuingStrategy {
3746
- constructor(options) {
3747
- assertRequiredArgument(options, 1, "ByteLengthQueuingStrategy");
3748
- options = convertQueuingStrategyInit(options, "First parameter");
3749
- this._byteLengthQueuingStrategyHighWaterMark = options.highWaterMark;
3750
- }
3751
- /**
3752
- * Returns the high water mark provided to the constructor.
3753
- */
3754
- get highWaterMark() {
3755
- if (!IsByteLengthQueuingStrategy(this)) {
3756
- throw byteLengthBrandCheckException("highWaterMark");
3757
- }
3758
- return this._byteLengthQueuingStrategyHighWaterMark;
3759
- }
3760
- /**
3761
- * Measures the size of `chunk` by returning the value of its `byteLength` property.
3762
- */
3763
- get size() {
3764
- if (!IsByteLengthQueuingStrategy(this)) {
3765
- throw byteLengthBrandCheckException("size");
3766
- }
3767
- return byteLengthSizeFunction;
3768
- }
3769
- }
3770
- Object.defineProperties(ByteLengthQueuingStrategy.prototype, {
3771
- highWaterMark: { enumerable: true },
3772
- size: { enumerable: true }
3773
- });
3774
- if (typeof Symbol.toStringTag === "symbol") {
3775
- Object.defineProperty(ByteLengthQueuingStrategy.prototype, Symbol.toStringTag, {
3776
- value: "ByteLengthQueuingStrategy",
3777
- configurable: true
3778
- });
3779
- }
3780
- function byteLengthBrandCheckException(name) {
3781
- return new TypeError(`ByteLengthQueuingStrategy.prototype.${name} can only be used on a ByteLengthQueuingStrategy`);
3782
- }
3783
- function IsByteLengthQueuingStrategy(x) {
3784
- if (!typeIsObject(x)) {
3785
- return false;
3786
- }
3787
- if (!Object.prototype.hasOwnProperty.call(x, "_byteLengthQueuingStrategyHighWaterMark")) {
3788
- return false;
3789
- }
3790
- return x instanceof ByteLengthQueuingStrategy;
3791
- }
3792
- const countSizeFunction = () => {
3793
- return 1;
3794
- };
3795
- setFunctionName(countSizeFunction, "size");
3796
- class CountQueuingStrategy {
3797
- constructor(options) {
3798
- assertRequiredArgument(options, 1, "CountQueuingStrategy");
3799
- options = convertQueuingStrategyInit(options, "First parameter");
3800
- this._countQueuingStrategyHighWaterMark = options.highWaterMark;
3801
- }
3802
- /**
3803
- * Returns the high water mark provided to the constructor.
3804
- */
3805
- get highWaterMark() {
3806
- if (!IsCountQueuingStrategy(this)) {
3807
- throw countBrandCheckException("highWaterMark");
3808
- }
3809
- return this._countQueuingStrategyHighWaterMark;
3810
- }
3811
- /**
3812
- * Measures the size of `chunk` by always returning 1.
3813
- * This ensures that the total queue size is a count of the number of chunks in the queue.
3814
- */
3815
- get size() {
3816
- if (!IsCountQueuingStrategy(this)) {
3817
- throw countBrandCheckException("size");
3818
- }
3819
- return countSizeFunction;
3820
- }
3821
- }
3822
- Object.defineProperties(CountQueuingStrategy.prototype, {
3823
- highWaterMark: { enumerable: true },
3824
- size: { enumerable: true }
3825
- });
3826
- if (typeof Symbol.toStringTag === "symbol") {
3827
- Object.defineProperty(CountQueuingStrategy.prototype, Symbol.toStringTag, {
3828
- value: "CountQueuingStrategy",
3829
- configurable: true
3830
- });
3831
- }
3832
- function countBrandCheckException(name) {
3833
- return new TypeError(`CountQueuingStrategy.prototype.${name} can only be used on a CountQueuingStrategy`);
3834
- }
3835
- function IsCountQueuingStrategy(x) {
3836
- if (!typeIsObject(x)) {
3837
- return false;
3838
- }
3839
- if (!Object.prototype.hasOwnProperty.call(x, "_countQueuingStrategyHighWaterMark")) {
3840
- return false;
3841
- }
3842
- return x instanceof CountQueuingStrategy;
3843
- }
3844
- function convertTransformer(original, context) {
3845
- assertDictionary(original, context);
3846
- const cancel = original === null || original === void 0 ? void 0 : original.cancel;
3847
- const flush = original === null || original === void 0 ? void 0 : original.flush;
3848
- const readableType = original === null || original === void 0 ? void 0 : original.readableType;
3849
- const start = original === null || original === void 0 ? void 0 : original.start;
3850
- const transform = original === null || original === void 0 ? void 0 : original.transform;
3851
- const writableType = original === null || original === void 0 ? void 0 : original.writableType;
3852
- return {
3853
- cancel: cancel === void 0 ? void 0 : convertTransformerCancelCallback(cancel, original, `${context} has member 'cancel' that`),
3854
- flush: flush === void 0 ? void 0 : convertTransformerFlushCallback(flush, original, `${context} has member 'flush' that`),
3855
- readableType,
3856
- start: start === void 0 ? void 0 : convertTransformerStartCallback(start, original, `${context} has member 'start' that`),
3857
- transform: transform === void 0 ? void 0 : convertTransformerTransformCallback(transform, original, `${context} has member 'transform' that`),
3858
- writableType
3859
- };
3860
- }
3861
- function convertTransformerFlushCallback(fn, original, context) {
3862
- assertFunction(fn, context);
3863
- return (controller) => promiseCall(fn, original, [controller]);
3864
- }
3865
- function convertTransformerStartCallback(fn, original, context) {
3866
- assertFunction(fn, context);
3867
- return (controller) => reflectCall(fn, original, [controller]);
3868
- }
3869
- function convertTransformerTransformCallback(fn, original, context) {
3870
- assertFunction(fn, context);
3871
- return (chunk, controller) => promiseCall(fn, original, [chunk, controller]);
3872
- }
3873
- function convertTransformerCancelCallback(fn, original, context) {
3874
- assertFunction(fn, context);
3875
- return (reason) => promiseCall(fn, original, [reason]);
3876
- }
3877
- class TransformStream {
3878
- constructor(rawTransformer = {}, rawWritableStrategy = {}, rawReadableStrategy = {}) {
3879
- if (rawTransformer === void 0) {
3880
- rawTransformer = null;
3881
- }
3882
- const writableStrategy = convertQueuingStrategy(rawWritableStrategy, "Second parameter");
3883
- const readableStrategy = convertQueuingStrategy(rawReadableStrategy, "Third parameter");
3884
- const transformer = convertTransformer(rawTransformer, "First parameter");
3885
- if (transformer.readableType !== void 0) {
3886
- throw new RangeError("Invalid readableType specified");
3887
- }
3888
- if (transformer.writableType !== void 0) {
3889
- throw new RangeError("Invalid writableType specified");
3890
- }
3891
- const readableHighWaterMark = ExtractHighWaterMark(readableStrategy, 0);
3892
- const readableSizeAlgorithm = ExtractSizeAlgorithm(readableStrategy);
3893
- const writableHighWaterMark = ExtractHighWaterMark(writableStrategy, 1);
3894
- const writableSizeAlgorithm = ExtractSizeAlgorithm(writableStrategy);
3895
- let startPromise_resolve;
3896
- const startPromise = newPromise((resolve) => {
3897
- startPromise_resolve = resolve;
3898
- });
3899
- InitializeTransformStream(this, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm);
3900
- SetUpTransformStreamDefaultControllerFromTransformer(this, transformer);
3901
- if (transformer.start !== void 0) {
3902
- startPromise_resolve(transformer.start(this._transformStreamController));
3903
- } else {
3904
- startPromise_resolve(void 0);
3905
- }
3906
- }
3907
- /**
3908
- * The readable side of the transform stream.
3909
- */
3910
- get readable() {
3911
- if (!IsTransformStream(this)) {
3912
- throw streamBrandCheckException("readable");
3913
- }
3914
- return this._readable;
3915
- }
3916
- /**
3917
- * The writable side of the transform stream.
3918
- */
3919
- get writable() {
3920
- if (!IsTransformStream(this)) {
3921
- throw streamBrandCheckException("writable");
3922
- }
3923
- return this._writable;
3924
- }
3925
- }
3926
- Object.defineProperties(TransformStream.prototype, {
3927
- readable: { enumerable: true },
3928
- writable: { enumerable: true }
3929
- });
3930
- if (typeof Symbol.toStringTag === "symbol") {
3931
- Object.defineProperty(TransformStream.prototype, Symbol.toStringTag, {
3932
- value: "TransformStream",
3933
- configurable: true
3934
- });
3935
- }
3936
- function InitializeTransformStream(stream, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm) {
3937
- function startAlgorithm() {
3938
- return startPromise;
3939
- }
3940
- function writeAlgorithm(chunk) {
3941
- return TransformStreamDefaultSinkWriteAlgorithm(stream, chunk);
3942
- }
3943
- function abortAlgorithm(reason) {
3944
- return TransformStreamDefaultSinkAbortAlgorithm(stream, reason);
3945
- }
3946
- function closeAlgorithm() {
3947
- return TransformStreamDefaultSinkCloseAlgorithm(stream);
3948
- }
3949
- stream._writable = CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, writableHighWaterMark, writableSizeAlgorithm);
3950
- function pullAlgorithm() {
3951
- return TransformStreamDefaultSourcePullAlgorithm(stream);
3952
- }
3953
- function cancelAlgorithm(reason) {
3954
- return TransformStreamDefaultSourceCancelAlgorithm(stream, reason);
3955
- }
3956
- stream._readable = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, readableHighWaterMark, readableSizeAlgorithm);
3957
- stream._backpressure = void 0;
3958
- stream._backpressureChangePromise = void 0;
3959
- stream._backpressureChangePromise_resolve = void 0;
3960
- TransformStreamSetBackpressure(stream, true);
3961
- stream._transformStreamController = void 0;
3962
- }
3963
- function IsTransformStream(x) {
3964
- if (!typeIsObject(x)) {
3965
- return false;
3966
- }
3967
- if (!Object.prototype.hasOwnProperty.call(x, "_transformStreamController")) {
3968
- return false;
3969
- }
3970
- return x instanceof TransformStream;
3971
- }
3972
- function TransformStreamError(stream, e) {
3973
- ReadableStreamDefaultControllerError(stream._readable._readableStreamController, e);
3974
- TransformStreamErrorWritableAndUnblockWrite(stream, e);
3975
- }
3976
- function TransformStreamErrorWritableAndUnblockWrite(stream, e) {
3977
- TransformStreamDefaultControllerClearAlgorithms(stream._transformStreamController);
3978
- WritableStreamDefaultControllerErrorIfNeeded(stream._writable._writableStreamController, e);
3979
- TransformStreamUnblockWrite(stream);
3980
- }
3981
- function TransformStreamUnblockWrite(stream) {
3982
- if (stream._backpressure) {
3983
- TransformStreamSetBackpressure(stream, false);
3984
- }
3985
- }
3986
- function TransformStreamSetBackpressure(stream, backpressure) {
3987
- if (stream._backpressureChangePromise !== void 0) {
3988
- stream._backpressureChangePromise_resolve();
3989
- }
3990
- stream._backpressureChangePromise = newPromise((resolve) => {
3991
- stream._backpressureChangePromise_resolve = resolve;
3992
- });
3993
- stream._backpressure = backpressure;
3994
- }
3995
- class TransformStreamDefaultController {
3996
- constructor() {
3997
- throw new TypeError("Illegal constructor");
3998
- }
3999
- /**
4000
- * Returns the desired size to fill the readable side’s internal queue. It can be negative, if the queue is over-full.
4001
- */
4002
- get desiredSize() {
4003
- if (!IsTransformStreamDefaultController(this)) {
4004
- throw defaultControllerBrandCheckException("desiredSize");
4005
- }
4006
- const readableController = this._controlledTransformStream._readable._readableStreamController;
4007
- return ReadableStreamDefaultControllerGetDesiredSize(readableController);
4008
- }
4009
- enqueue(chunk = void 0) {
4010
- if (!IsTransformStreamDefaultController(this)) {
4011
- throw defaultControllerBrandCheckException("enqueue");
4012
- }
4013
- TransformStreamDefaultControllerEnqueue(this, chunk);
4014
- }
4015
- /**
4016
- * Errors both the readable side and the writable side of the controlled transform stream, making all future
4017
- * interactions with it fail with the given error `e`. Any chunks queued for transformation will be discarded.
4018
- */
4019
- error(reason = void 0) {
4020
- if (!IsTransformStreamDefaultController(this)) {
4021
- throw defaultControllerBrandCheckException("error");
4022
- }
4023
- TransformStreamDefaultControllerError(this, reason);
4024
- }
4025
- /**
4026
- * Closes the readable side and errors the writable side of the controlled transform stream. This is useful when the
4027
- * transformer only needs to consume a portion of the chunks written to the writable side.
4028
- */
4029
- terminate() {
4030
- if (!IsTransformStreamDefaultController(this)) {
4031
- throw defaultControllerBrandCheckException("terminate");
4032
- }
4033
- TransformStreamDefaultControllerTerminate(this);
4034
- }
4035
- }
4036
- Object.defineProperties(TransformStreamDefaultController.prototype, {
4037
- enqueue: { enumerable: true },
4038
- error: { enumerable: true },
4039
- terminate: { enumerable: true },
4040
- desiredSize: { enumerable: true }
4041
- });
4042
- setFunctionName(TransformStreamDefaultController.prototype.enqueue, "enqueue");
4043
- setFunctionName(TransformStreamDefaultController.prototype.error, "error");
4044
- setFunctionName(TransformStreamDefaultController.prototype.terminate, "terminate");
4045
- if (typeof Symbol.toStringTag === "symbol") {
4046
- Object.defineProperty(TransformStreamDefaultController.prototype, Symbol.toStringTag, {
4047
- value: "TransformStreamDefaultController",
4048
- configurable: true
4049
- });
4050
- }
4051
- function IsTransformStreamDefaultController(x) {
4052
- if (!typeIsObject(x)) {
4053
- return false;
4054
- }
4055
- if (!Object.prototype.hasOwnProperty.call(x, "_controlledTransformStream")) {
4056
- return false;
4057
- }
4058
- return x instanceof TransformStreamDefaultController;
4059
- }
4060
- function SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm, cancelAlgorithm) {
4061
- controller._controlledTransformStream = stream;
4062
- stream._transformStreamController = controller;
4063
- controller._transformAlgorithm = transformAlgorithm;
4064
- controller._flushAlgorithm = flushAlgorithm;
4065
- controller._cancelAlgorithm = cancelAlgorithm;
4066
- controller._finishPromise = void 0;
4067
- controller._finishPromise_resolve = void 0;
4068
- controller._finishPromise_reject = void 0;
4069
- }
4070
- function SetUpTransformStreamDefaultControllerFromTransformer(stream, transformer) {
4071
- const controller = Object.create(TransformStreamDefaultController.prototype);
4072
- let transformAlgorithm;
4073
- let flushAlgorithm;
4074
- let cancelAlgorithm;
4075
- if (transformer.transform !== void 0) {
4076
- transformAlgorithm = (chunk) => transformer.transform(chunk, controller);
4077
- } else {
4078
- transformAlgorithm = (chunk) => {
4079
- try {
4080
- TransformStreamDefaultControllerEnqueue(controller, chunk);
4081
- return promiseResolvedWith(void 0);
4082
- } catch (transformResultE) {
4083
- return promiseRejectedWith(transformResultE);
4084
- }
4085
- };
4086
- }
4087
- if (transformer.flush !== void 0) {
4088
- flushAlgorithm = () => transformer.flush(controller);
4089
- } else {
4090
- flushAlgorithm = () => promiseResolvedWith(void 0);
4091
- }
4092
- if (transformer.cancel !== void 0) {
4093
- cancelAlgorithm = (reason) => transformer.cancel(reason);
4094
- } else {
4095
- cancelAlgorithm = () => promiseResolvedWith(void 0);
4096
- }
4097
- SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm, cancelAlgorithm);
4098
- }
4099
- function TransformStreamDefaultControllerClearAlgorithms(controller) {
4100
- controller._transformAlgorithm = void 0;
4101
- controller._flushAlgorithm = void 0;
4102
- controller._cancelAlgorithm = void 0;
4103
- }
4104
- function TransformStreamDefaultControllerEnqueue(controller, chunk) {
4105
- const stream = controller._controlledTransformStream;
4106
- const readableController = stream._readable._readableStreamController;
4107
- if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController)) {
4108
- throw new TypeError("Readable side is not in a state that permits enqueue");
4109
- }
4110
- try {
4111
- ReadableStreamDefaultControllerEnqueue(readableController, chunk);
4112
- } catch (e) {
4113
- TransformStreamErrorWritableAndUnblockWrite(stream, e);
4114
- throw stream._readable._storedError;
4115
- }
4116
- const backpressure = ReadableStreamDefaultControllerHasBackpressure(readableController);
4117
- if (backpressure !== stream._backpressure) {
4118
- TransformStreamSetBackpressure(stream, true);
4119
- }
4120
- }
4121
- function TransformStreamDefaultControllerError(controller, e) {
4122
- TransformStreamError(controller._controlledTransformStream, e);
4123
- }
4124
- function TransformStreamDefaultControllerPerformTransform(controller, chunk) {
4125
- const transformPromise = controller._transformAlgorithm(chunk);
4126
- return transformPromiseWith(transformPromise, void 0, (r) => {
4127
- TransformStreamError(controller._controlledTransformStream, r);
4128
- throw r;
4129
- });
4130
- }
4131
- function TransformStreamDefaultControllerTerminate(controller) {
4132
- const stream = controller._controlledTransformStream;
4133
- const readableController = stream._readable._readableStreamController;
4134
- ReadableStreamDefaultControllerClose(readableController);
4135
- const error = new TypeError("TransformStream terminated");
4136
- TransformStreamErrorWritableAndUnblockWrite(stream, error);
4137
- }
4138
- function TransformStreamDefaultSinkWriteAlgorithm(stream, chunk) {
4139
- const controller = stream._transformStreamController;
4140
- if (stream._backpressure) {
4141
- const backpressureChangePromise = stream._backpressureChangePromise;
4142
- return transformPromiseWith(backpressureChangePromise, () => {
4143
- const writable = stream._writable;
4144
- const state = writable._state;
4145
- if (state === "erroring") {
4146
- throw writable._storedError;
4147
- }
4148
- return TransformStreamDefaultControllerPerformTransform(controller, chunk);
4149
- });
4150
- }
4151
- return TransformStreamDefaultControllerPerformTransform(controller, chunk);
4152
- }
4153
- function TransformStreamDefaultSinkAbortAlgorithm(stream, reason) {
4154
- const controller = stream._transformStreamController;
4155
- if (controller._finishPromise !== void 0) {
4156
- return controller._finishPromise;
4157
- }
4158
- const readable = stream._readable;
4159
- controller._finishPromise = newPromise((resolve, reject) => {
4160
- controller._finishPromise_resolve = resolve;
4161
- controller._finishPromise_reject = reject;
4162
- });
4163
- const cancelPromise = controller._cancelAlgorithm(reason);
4164
- TransformStreamDefaultControllerClearAlgorithms(controller);
4165
- uponPromise(cancelPromise, () => {
4166
- if (readable._state === "errored") {
4167
- defaultControllerFinishPromiseReject(controller, readable._storedError);
4168
- } else {
4169
- ReadableStreamDefaultControllerError(readable._readableStreamController, reason);
4170
- defaultControllerFinishPromiseResolve(controller);
4171
- }
4172
- return null;
4173
- }, (r) => {
4174
- ReadableStreamDefaultControllerError(readable._readableStreamController, r);
4175
- defaultControllerFinishPromiseReject(controller, r);
4176
- return null;
4177
- });
4178
- return controller._finishPromise;
4179
- }
4180
- function TransformStreamDefaultSinkCloseAlgorithm(stream) {
4181
- const controller = stream._transformStreamController;
4182
- if (controller._finishPromise !== void 0) {
4183
- return controller._finishPromise;
4184
- }
4185
- const readable = stream._readable;
4186
- controller._finishPromise = newPromise((resolve, reject) => {
4187
- controller._finishPromise_resolve = resolve;
4188
- controller._finishPromise_reject = reject;
4189
- });
4190
- const flushPromise = controller._flushAlgorithm();
4191
- TransformStreamDefaultControllerClearAlgorithms(controller);
4192
- uponPromise(flushPromise, () => {
4193
- if (readable._state === "errored") {
4194
- defaultControllerFinishPromiseReject(controller, readable._storedError);
4195
- } else {
4196
- ReadableStreamDefaultControllerClose(readable._readableStreamController);
4197
- defaultControllerFinishPromiseResolve(controller);
4198
- }
4199
- return null;
4200
- }, (r) => {
4201
- ReadableStreamDefaultControllerError(readable._readableStreamController, r);
4202
- defaultControllerFinishPromiseReject(controller, r);
4203
- return null;
4204
- });
4205
- return controller._finishPromise;
4206
- }
4207
- function TransformStreamDefaultSourcePullAlgorithm(stream) {
4208
- TransformStreamSetBackpressure(stream, false);
4209
- return stream._backpressureChangePromise;
4210
- }
4211
- function TransformStreamDefaultSourceCancelAlgorithm(stream, reason) {
4212
- const controller = stream._transformStreamController;
4213
- if (controller._finishPromise !== void 0) {
4214
- return controller._finishPromise;
4215
- }
4216
- const writable = stream._writable;
4217
- controller._finishPromise = newPromise((resolve, reject) => {
4218
- controller._finishPromise_resolve = resolve;
4219
- controller._finishPromise_reject = reject;
4220
- });
4221
- const cancelPromise = controller._cancelAlgorithm(reason);
4222
- TransformStreamDefaultControllerClearAlgorithms(controller);
4223
- uponPromise(cancelPromise, () => {
4224
- if (writable._state === "errored") {
4225
- defaultControllerFinishPromiseReject(controller, writable._storedError);
4226
- } else {
4227
- WritableStreamDefaultControllerErrorIfNeeded(writable._writableStreamController, reason);
4228
- TransformStreamUnblockWrite(stream);
4229
- defaultControllerFinishPromiseResolve(controller);
4230
- }
4231
- return null;
4232
- }, (r) => {
4233
- WritableStreamDefaultControllerErrorIfNeeded(writable._writableStreamController, r);
4234
- TransformStreamUnblockWrite(stream);
4235
- defaultControllerFinishPromiseReject(controller, r);
4236
- return null;
4237
- });
4238
- return controller._finishPromise;
4239
- }
4240
- function defaultControllerBrandCheckException(name) {
4241
- return new TypeError(`TransformStreamDefaultController.prototype.${name} can only be used on a TransformStreamDefaultController`);
4242
- }
4243
- function defaultControllerFinishPromiseResolve(controller) {
4244
- if (controller._finishPromise_resolve === void 0) {
4245
- return;
4246
- }
4247
- controller._finishPromise_resolve();
4248
- controller._finishPromise_resolve = void 0;
4249
- controller._finishPromise_reject = void 0;
4250
- }
4251
- function defaultControllerFinishPromiseReject(controller, reason) {
4252
- if (controller._finishPromise_reject === void 0) {
4253
- return;
4254
- }
4255
- setPromiseIsHandledToTrue(controller._finishPromise);
4256
- controller._finishPromise_reject(reason);
4257
- controller._finishPromise_resolve = void 0;
4258
- controller._finishPromise_reject = void 0;
4259
- }
4260
- function streamBrandCheckException(name) {
4261
- return new TypeError(`TransformStream.prototype.${name} can only be used on a TransformStream`);
4262
- }
4263
- exports$12.ByteLengthQueuingStrategy = ByteLengthQueuingStrategy;
4264
- exports$12.CountQueuingStrategy = CountQueuingStrategy;
4265
- exports$12.ReadableByteStreamController = ReadableByteStreamController;
4266
- exports$12.ReadableStream = ReadableStream;
4267
- exports$12.ReadableStreamBYOBReader = ReadableStreamBYOBReader;
4268
- exports$12.ReadableStreamBYOBRequest = ReadableStreamBYOBRequest;
4269
- exports$12.ReadableStreamDefaultController = ReadableStreamDefaultController;
4270
- exports$12.ReadableStreamDefaultReader = ReadableStreamDefaultReader;
4271
- exports$12.TransformStream = TransformStream;
4272
- exports$12.TransformStreamDefaultController = TransformStreamDefaultController;
4273
- exports$12.WritableStream = WritableStream;
4274
- exports$12.WritableStreamDefaultController = WritableStreamDefaultController;
4275
- exports$12.WritableStreamDefaultWriter = WritableStreamDefaultWriter;
4276
- }));
4277
- })(ponyfill_es2018$1, ponyfill_es2018$1.exports);
4278
- return ponyfill_es2018$1.exports;
4279
- }
4280
- export {
4281
- requirePonyfill_es2018 as r
4282
- };
1
+ import{c as Tn}from"./react.mjs";var Fe={exports:{}};var Ra=Fe.exports,vn;function Pa(){return vn||(vn=1,(function(wa,En){(function(C,ne){ne(En)})(Ra,(function(C){function ne(){}function S(e){return typeof e=="object"&&e!==null||typeof e=="function"}const nr=ne;function m(e,t){try{Object.defineProperty(e,"name",{value:t,configurable:!0})}catch{}}const or=Promise,qn=Promise.prototype.then,Wn=Promise.reject.bind(or);function g(e){return new or(e)}function _(e){return g(t=>t(e))}function u(e){return Wn(e)}function z(e,t,r){return qn.call(e,t,r)}function P(e,t,r){z(z(e,t,r),void 0,nr)}function ht(e,t){P(e,t)}function mt(e,t){P(e,void 0,t)}function F(e,t,r){return z(e,t,r)}function he(e){z(e,void 0,nr)}let oe=e=>{if(typeof queueMicrotask=="function")oe=queueMicrotask;else{const t=_(void 0);oe=r=>z(t,r)}return oe(e)};function ae(e,t,r){if(typeof e!="function")throw new TypeError("Argument is not a function");return Function.prototype.apply.call(e,t,r)}function V(e,t,r){try{return _(ae(e,t,r))}catch(n){return u(n)}}const ar=16384;class E{constructor(){this._cursor=0,this._size=0,this._front={_elements:[],_next:void 0},this._back=this._front,this._cursor=0,this._size=0}get length(){return this._size}push(t){const r=this._back;let n=r;r._elements.length===ar-1&&(n={_elements:[],_next:void 0}),r._elements.push(t),n!==r&&(this._back=n,r._next=n),++this._size}shift(){const t=this._front;let r=t;const n=this._cursor;let o=n+1;const a=t._elements,i=a[n];return o===ar&&(r=t._next,o=0),--this._size,this._cursor=o,t!==r&&(this._front=r),a[n]=void 0,i}forEach(t){let r=this._cursor,n=this._front,o=n._elements;for(;(r!==o.length||n._next!==void 0)&&!(r===o.length&&(n=n._next,o=n._elements,r=0,o.length===0));)t(o[r]),++r}peek(){const t=this._front,r=this._cursor;return t._elements[r]}}const ir=Symbol("[[AbortSteps]]"),sr=Symbol("[[ErrorSteps]]"),_t=Symbol("[[CancelSteps]]"),pt=Symbol("[[PullSteps]]"),yt=Symbol("[[ReleaseSteps]]");function ur(e,t){e._ownerReadableStream=t,t._reader=e,t._state==="readable"?gt(e):t._state==="closed"?An(e):lr(e,t._storedError)}function St(e,t){const r=e._ownerReadableStream;return k(r,t)}function D(e){const t=e._ownerReadableStream;t._state==="readable"?Rt(e,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")):Bn(e,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")),t._readableStreamController[yt](),t._reader=void 0,e._ownerReadableStream=void 0}function De(e){return new TypeError("Cannot "+e+" a stream using a released reader")}function gt(e){e._closedPromise=g((t,r)=>{e._closedPromise_resolve=t,e._closedPromise_reject=r})}function lr(e,t){gt(e),Rt(e,t)}function An(e){gt(e),dr(e)}function Rt(e,t){e._closedPromise_reject!==void 0&&(he(e._closedPromise),e._closedPromise_reject(t),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0)}function Bn(e,t){lr(e,t)}function dr(e){e._closedPromise_resolve!==void 0&&(e._closedPromise_resolve(void 0),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0)}const fr=Number.isFinite||function(e){return typeof e=="number"&&isFinite(e)},kn=Math.trunc||function(e){return e<0?Math.ceil(e):Math.floor(e)};function On(e){return typeof e=="object"||typeof e=="function"}function I(e,t){if(e!==void 0&&!On(e))throw new TypeError(`${t} is not an object.`)}function q(e,t){if(typeof e!="function")throw new TypeError(`${t} is not a function.`)}function In(e){return typeof e=="object"&&e!==null||typeof e=="function"}function cr(e,t){if(!In(e))throw new TypeError(`${t} is not an object.`)}function L(e,t,r){if(e===void 0)throw new TypeError(`Parameter ${t} is required in '${r}'.`)}function wt(e,t,r){if(e===void 0)throw new TypeError(`${t} is required in '${r}'.`)}function Ct(e){return Number(e)}function br(e){return e===0?0:e}function jn(e){return br(kn(e))}function Pt(e,t){const n=Number.MAX_SAFE_INTEGER;let o=Number(e);if(o=br(o),!fr(o))throw new TypeError(`${t} is not a finite number`);if(o=jn(o),o<0||o>n)throw new TypeError(`${t} is outside the accepted range of 0 to ${n}, inclusive`);return!fr(o)||o===0?0:o}function Tt(e,t){if(!x(e))throw new TypeError(`${t} is not a ReadableStream.`)}function me(e){return new H(e)}function hr(e,t){e._reader._readRequests.push(t)}function vt(e,t,r){const o=e._reader._readRequests.shift();r?o._closeSteps():o._chunkSteps(t)}function Le(e){return e._reader._readRequests.length}function mr(e){const t=e._reader;return!(t===void 0||!G(t))}class H{constructor(t){if(L(t,1,"ReadableStreamDefaultReader"),Tt(t,"First parameter"),ee(t))throw new TypeError("This stream has already been locked for exclusive reading by another reader");ur(this,t),this._readRequests=new E}get closed(){return G(this)?this._closedPromise:u(Me("closed"))}cancel(t=void 0){return G(this)?this._ownerReadableStream===void 0?u(De("cancel")):St(this,t):u(Me("cancel"))}read(){if(!G(this))return u(Me("read"));if(this._ownerReadableStream===void 0)return u(De("read from"));let t,r;const n=g((a,i)=>{t=a,r=i});return Ee(this,{_chunkSteps:a=>t({value:a,done:!1}),_closeSteps:()=>t({value:void 0,done:!0}),_errorSteps:a=>r(a)}),n}releaseLock(){if(!G(this))throw Me("releaseLock");this._ownerReadableStream!==void 0&&zn(this)}}Object.defineProperties(H.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),m(H.prototype.cancel,"cancel"),m(H.prototype.read,"read"),m(H.prototype.releaseLock,"releaseLock"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(H.prototype,Symbol.toStringTag,{value:"ReadableStreamDefaultReader",configurable:!0});function G(e){return!S(e)||!Object.prototype.hasOwnProperty.call(e,"_readRequests")?!1:e instanceof H}function Ee(e,t){const r=e._ownerReadableStream;r._disturbed=!0,r._state==="closed"?t._closeSteps():r._state==="errored"?t._errorSteps(r._storedError):r._readableStreamController[pt](t)}function zn(e){D(e);const t=new TypeError("Reader was released");_r(e,t)}function _r(e,t){const r=e._readRequests;e._readRequests=new E,r.forEach(n=>{n._errorSteps(t)})}function Me(e){return new TypeError(`ReadableStreamDefaultReader.prototype.${e} can only be used on a ReadableStreamDefaultReader`)}const Fn=Object.getPrototypeOf(Object.getPrototypeOf(async function*(){}).prototype);class pr{constructor(t,r){this._ongoingPromise=void 0,this._isFinished=!1,this._reader=t,this._preventCancel=r}next(){const t=()=>this._nextSteps();return this._ongoingPromise=this._ongoingPromise?F(this._ongoingPromise,t,t):t(),this._ongoingPromise}return(t){const r=()=>this._returnSteps(t);return this._ongoingPromise?F(this._ongoingPromise,r,r):r()}_nextSteps(){if(this._isFinished)return Promise.resolve({value:void 0,done:!0});const t=this._reader;let r,n;const o=g((i,s)=>{r=i,n=s});return Ee(t,{_chunkSteps:i=>{this._ongoingPromise=void 0,oe(()=>r({value:i,done:!1}))},_closeSteps:()=>{this._ongoingPromise=void 0,this._isFinished=!0,D(t),r({value:void 0,done:!0})},_errorSteps:i=>{this._ongoingPromise=void 0,this._isFinished=!0,D(t),n(i)}}),o}_returnSteps(t){if(this._isFinished)return Promise.resolve({value:t,done:!0});this._isFinished=!0;const r=this._reader;if(!this._preventCancel){const n=St(r,t);return D(r),F(n,()=>({value:t,done:!0}))}return D(r),_({value:t,done:!0})}}const yr={next(){return Sr(this)?this._asyncIteratorImpl.next():u(gr("next"))},return(e){return Sr(this)?this._asyncIteratorImpl.return(e):u(gr("return"))}};Object.setPrototypeOf(yr,Fn);function Dn(e,t){const r=me(e),n=new pr(r,t),o=Object.create(yr);return o._asyncIteratorImpl=n,o}function Sr(e){if(!S(e)||!Object.prototype.hasOwnProperty.call(e,"_asyncIteratorImpl"))return!1;try{return e._asyncIteratorImpl instanceof pr}catch{return!1}}function gr(e){return new TypeError(`ReadableStreamAsyncIterator.${e} can only be used on a ReadableSteamAsyncIterator`)}const Rr=Number.isNaN||function(e){return e!==e};var Et,qt,Wt;function qe(e){return e.slice()}function wr(e,t,r,n,o){new Uint8Array(e).set(new Uint8Array(r,n,o),t)}let M=e=>(typeof e.transfer=="function"?M=t=>t.transfer():typeof structuredClone=="function"?M=t=>structuredClone(t,{transfer:[t]}):M=t=>t,M(e)),X=e=>(typeof e.detached=="boolean"?X=t=>t.detached:X=t=>t.byteLength===0,X(e));function Cr(e,t,r){if(e.slice)return e.slice(t,r);const n=r-t,o=new ArrayBuffer(n);return wr(o,0,e,t,n),o}function $e(e,t){const r=e[t];if(r!=null){if(typeof r!="function")throw new TypeError(`${String(t)} is not a function`);return r}}function Ln(e){const t={[Symbol.iterator]:()=>e.iterator},r=(async function*(){return yield*t})(),n=r.next;return{iterator:r,nextMethod:n,done:!1}}const At=(Wt=(Et=Symbol.asyncIterator)!==null&&Et!==void 0?Et:(qt=Symbol.for)===null||qt===void 0?void 0:qt.call(Symbol,"Symbol.asyncIterator"))!==null&&Wt!==void 0?Wt:"@@asyncIterator";function Pr(e,t="sync",r){if(r===void 0)if(t==="async"){if(r=$e(e,At),r===void 0){const a=$e(e,Symbol.iterator),i=Pr(e,"sync",a);return Ln(i)}}else r=$e(e,Symbol.iterator);if(r===void 0)throw new TypeError("The object is not iterable");const n=ae(r,e,[]);if(!S(n))throw new TypeError("The iterator method must return an object");const o=n.next;return{iterator:n,nextMethod:o,done:!1}}function Mn(e){const t=ae(e.nextMethod,e.iterator,[]);if(!S(t))throw new TypeError("The iterator.next() method must return an object");return t}function $n(e){return!!e.done}function Qn(e){return e.value}function Nn(e){return!(typeof e!="number"||Rr(e)||e<0)}function Tr(e){const t=Cr(e.buffer,e.byteOffset,e.byteOffset+e.byteLength);return new Uint8Array(t)}function Bt(e){const t=e._queue.shift();return e._queueTotalSize-=t.size,e._queueTotalSize<0&&(e._queueTotalSize=0),t.value}function kt(e,t,r){if(!Nn(r)||r===1/0)throw new RangeError("Size must be a finite, non-NaN, non-negative number.");e._queue.push({value:t,size:r}),e._queueTotalSize+=r}function Un(e){return e._queue.peek().value}function Z(e){e._queue=new E,e._queueTotalSize=0}function vr(e){return e===DataView}function Yn(e){return vr(e.constructor)}function Vn(e){return vr(e)?1:e.BYTES_PER_ELEMENT}class ie{constructor(){throw new TypeError("Illegal constructor")}get view(){if(!Ot(this))throw Dt("view");return this._view}respond(t){if(!Ot(this))throw Dt("respond");if(L(t,1,"respond"),t=Pt(t,"First parameter"),this._associatedReadableByteStreamController===void 0)throw new TypeError("This BYOB request has been invalidated");if(X(this._view.buffer))throw new TypeError("The BYOB request's buffer has been detached and so cannot be used as a response");Ye(this._associatedReadableByteStreamController,t)}respondWithNewView(t){if(!Ot(this))throw Dt("respondWithNewView");if(L(t,1,"respondWithNewView"),!ArrayBuffer.isView(t))throw new TypeError("You can only respond with array buffer views");if(this._associatedReadableByteStreamController===void 0)throw new TypeError("This BYOB request has been invalidated");if(X(t.buffer))throw new TypeError("The given view's buffer has been detached and so cannot be used as a response");Ve(this._associatedReadableByteStreamController,t)}}Object.defineProperties(ie.prototype,{respond:{enumerable:!0},respondWithNewView:{enumerable:!0},view:{enumerable:!0}}),m(ie.prototype.respond,"respond"),m(ie.prototype.respondWithNewView,"respondWithNewView"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(ie.prototype,Symbol.toStringTag,{value:"ReadableStreamBYOBRequest",configurable:!0});class ${constructor(){throw new TypeError("Illegal constructor")}get byobRequest(){if(!se(this))throw Ae("byobRequest");return Ft(this)}get desiredSize(){if(!se(this))throw Ae("desiredSize");return zr(this)}close(){if(!se(this))throw Ae("close");if(this._closeRequested)throw new TypeError("The stream has already been closed; do not close it again!");const t=this._controlledReadableByteStream._state;if(t!=="readable")throw new TypeError(`The stream (in ${t} state) is not in the readable state and cannot be closed`);We(this)}enqueue(t){if(!se(this))throw Ae("enqueue");if(L(t,1,"enqueue"),!ArrayBuffer.isView(t))throw new TypeError("chunk must be an array buffer view");if(t.byteLength===0)throw new TypeError("chunk must have non-zero byteLength");if(t.buffer.byteLength===0)throw new TypeError("chunk's buffer must have non-zero byteLength");if(this._closeRequested)throw new TypeError("stream is closed or draining");const r=this._controlledReadableByteStream._state;if(r!=="readable")throw new TypeError(`The stream (in ${r} state) is not in the readable state and cannot be enqueued to`);Ue(this,t)}error(t=void 0){if(!se(this))throw Ae("error");W(this,t)}[_t](t){Er(this),Z(this);const r=this._cancelAlgorithm(t);return Ne(this),r}[pt](t){const r=this._controlledReadableByteStream;if(this._queueTotalSize>0){jr(this,t);return}const n=this._autoAllocateChunkSize;if(n!==void 0){let o;try{o=new ArrayBuffer(n)}catch(i){t._errorSteps(i);return}const a={buffer:o,bufferByteLength:n,byteOffset:0,byteLength:n,bytesFilled:0,minimumFill:1,elementSize:1,viewConstructor:Uint8Array,readerType:"default"};this._pendingPullIntos.push(a)}hr(r,t),ue(this)}[yt](){if(this._pendingPullIntos.length>0){const t=this._pendingPullIntos.peek();t.readerType="none",this._pendingPullIntos=new E,this._pendingPullIntos.push(t)}}}Object.defineProperties($.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},byobRequest:{enumerable:!0},desiredSize:{enumerable:!0}}),m($.prototype.close,"close"),m($.prototype.enqueue,"enqueue"),m($.prototype.error,"error"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty($.prototype,Symbol.toStringTag,{value:"ReadableByteStreamController",configurable:!0});function se(e){return!S(e)||!Object.prototype.hasOwnProperty.call(e,"_controlledReadableByteStream")?!1:e instanceof $}function Ot(e){return!S(e)||!Object.prototype.hasOwnProperty.call(e,"_associatedReadableByteStreamController")?!1:e instanceof ie}function ue(e){if(!Jn(e))return;if(e._pulling){e._pullAgain=!0;return}e._pulling=!0;const r=e._pullAlgorithm();P(r,()=>(e._pulling=!1,e._pullAgain&&(e._pullAgain=!1,ue(e)),null),n=>(W(e,n),null))}function Er(e){jt(e),e._pendingPullIntos=new E}function It(e,t){let r=!1;e._state==="closed"&&(r=!0);const n=qr(t);t.readerType==="default"?vt(e,n,r):no(e,n,r)}function qr(e){const t=e.bytesFilled,r=e.elementSize;return new e.viewConstructor(e.buffer,e.byteOffset,t/r)}function Qe(e,t,r,n){e._queue.push({buffer:t,byteOffset:r,byteLength:n}),e._queueTotalSize+=n}function Wr(e,t,r,n){let o;try{o=Cr(t,r,r+n)}catch(a){throw W(e,a),a}Qe(e,o,0,n)}function Ar(e,t){t.bytesFilled>0&&Wr(e,t.buffer,t.byteOffset,t.bytesFilled),_e(e)}function Br(e,t){const r=Math.min(e._queueTotalSize,t.byteLength-t.bytesFilled),n=t.bytesFilled+r;let o=r,a=!1;const i=n%t.elementSize,s=n-i;s>=t.minimumFill&&(o=s-t.bytesFilled,a=!0);const f=e._queue;for(;o>0;){const l=f.peek(),c=Math.min(o,l.byteLength),b=t.byteOffset+t.bytesFilled;wr(t.buffer,b,l.buffer,l.byteOffset,c),l.byteLength===c?f.shift():(l.byteOffset+=c,l.byteLength-=c),e._queueTotalSize-=c,kr(e,c,t),o-=c}return a}function kr(e,t,r){r.bytesFilled+=t}function Or(e){e._queueTotalSize===0&&e._closeRequested?(Ne(e),ze(e._controlledReadableByteStream)):ue(e)}function jt(e){e._byobRequest!==null&&(e._byobRequest._associatedReadableByteStreamController=void 0,e._byobRequest._view=null,e._byobRequest=null)}function zt(e){for(;e._pendingPullIntos.length>0;){if(e._queueTotalSize===0)return;const t=e._pendingPullIntos.peek();Br(e,t)&&(_e(e),It(e._controlledReadableByteStream,t))}}function Hn(e){const t=e._controlledReadableByteStream._reader;for(;t._readRequests.length>0;){if(e._queueTotalSize===0)return;const r=t._readRequests.shift();jr(e,r)}}function Gn(e,t,r,n){const o=e._controlledReadableByteStream,a=t.constructor,i=Vn(a),{byteOffset:s,byteLength:f}=t,l=r*i;let c;try{c=M(t.buffer)}catch(p){n._errorSteps(p);return}const b={buffer:c,bufferByteLength:c.byteLength,byteOffset:s,byteLength:f,bytesFilled:0,minimumFill:l,elementSize:i,viewConstructor:a,readerType:"byob"};if(e._pendingPullIntos.length>0){e._pendingPullIntos.push(b),Lr(o,n);return}if(o._state==="closed"){const p=new a(b.buffer,b.byteOffset,0);n._closeSteps(p);return}if(e._queueTotalSize>0){if(Br(e,b)){const p=qr(b);Or(e),n._chunkSteps(p);return}if(e._closeRequested){const p=new TypeError("Insufficient bytes to fill elements in the given buffer");W(e,p),n._errorSteps(p);return}}e._pendingPullIntos.push(b),Lr(o,n),ue(e)}function Xn(e,t){t.readerType==="none"&&_e(e);const r=e._controlledReadableByteStream;if(Lt(r))for(;Mr(r)>0;){const n=_e(e);It(r,n)}}function Zn(e,t,r){if(kr(e,t,r),r.readerType==="none"){Ar(e,r),zt(e);return}if(r.bytesFilled<r.minimumFill)return;_e(e);const n=r.bytesFilled%r.elementSize;if(n>0){const o=r.byteOffset+r.bytesFilled;Wr(e,r.buffer,o-n,n)}r.bytesFilled-=n,It(e._controlledReadableByteStream,r),zt(e)}function Ir(e,t){const r=e._pendingPullIntos.peek();jt(e),e._controlledReadableByteStream._state==="closed"?Xn(e,r):Zn(e,t,r),ue(e)}function _e(e){return e._pendingPullIntos.shift()}function Jn(e){const t=e._controlledReadableByteStream;return t._state!=="readable"||e._closeRequested||!e._started?!1:!!(mr(t)&&Le(t)>0||Lt(t)&&Mr(t)>0||zr(e)>0)}function Ne(e){e._pullAlgorithm=void 0,e._cancelAlgorithm=void 0}function We(e){const t=e._controlledReadableByteStream;if(!(e._closeRequested||t._state!=="readable")){if(e._queueTotalSize>0){e._closeRequested=!0;return}if(e._pendingPullIntos.length>0){const r=e._pendingPullIntos.peek();if(r.bytesFilled%r.elementSize!==0){const n=new TypeError("Insufficient bytes to fill elements in the given buffer");throw W(e,n),n}}Ne(e),ze(t)}}function Ue(e,t){const r=e._controlledReadableByteStream;if(e._closeRequested||r._state!=="readable")return;const{buffer:n,byteOffset:o,byteLength:a}=t;if(X(n))throw new TypeError("chunk's buffer is detached and so cannot be enqueued");const i=M(n);if(e._pendingPullIntos.length>0){const s=e._pendingPullIntos.peek();if(X(s.buffer))throw new TypeError("The BYOB request's buffer has been detached and so cannot be filled with an enqueued chunk");jt(e),s.buffer=M(s.buffer),s.readerType==="none"&&Ar(e,s)}if(mr(r))if(Hn(e),Le(r)===0)Qe(e,i,o,a);else{e._pendingPullIntos.length>0&&_e(e);const s=new Uint8Array(i,o,a);vt(r,s,!1)}else Lt(r)?(Qe(e,i,o,a),zt(e)):Qe(e,i,o,a);ue(e)}function W(e,t){const r=e._controlledReadableByteStream;r._state==="readable"&&(Er(e),Z(e),Ne(e),fn(r,t))}function jr(e,t){const r=e._queue.shift();e._queueTotalSize-=r.byteLength,Or(e);const n=new Uint8Array(r.buffer,r.byteOffset,r.byteLength);t._chunkSteps(n)}function Ft(e){if(e._byobRequest===null&&e._pendingPullIntos.length>0){const t=e._pendingPullIntos.peek(),r=new Uint8Array(t.buffer,t.byteOffset+t.bytesFilled,t.byteLength-t.bytesFilled),n=Object.create(ie.prototype);xn(n,e,r),e._byobRequest=n}return e._byobRequest}function zr(e){const t=e._controlledReadableByteStream._state;return t==="errored"?null:t==="closed"?0:e._strategyHWM-e._queueTotalSize}function Ye(e,t){const r=e._pendingPullIntos.peek();if(e._controlledReadableByteStream._state==="closed"){if(t!==0)throw new TypeError("bytesWritten must be 0 when calling respond() on a closed stream")}else{if(t===0)throw new TypeError("bytesWritten must be greater than 0 when calling respond() on a readable stream");if(r.bytesFilled+t>r.byteLength)throw new RangeError("bytesWritten out of range")}r.buffer=M(r.buffer),Ir(e,t)}function Ve(e,t){const r=e._pendingPullIntos.peek();if(e._controlledReadableByteStream._state==="closed"){if(t.byteLength!==0)throw new TypeError("The view's length must be 0 when calling respondWithNewView() on a closed stream")}else if(t.byteLength===0)throw new TypeError("The view's length must be greater than 0 when calling respondWithNewView() on a readable stream");if(r.byteOffset+r.bytesFilled!==t.byteOffset)throw new RangeError("The region specified by view does not match byobRequest");if(r.bufferByteLength!==t.buffer.byteLength)throw new RangeError("The buffer of view has different capacity than byobRequest");if(r.bytesFilled+t.byteLength>r.byteLength)throw new RangeError("The region specified by view is larger than byobRequest");const o=t.byteLength;r.buffer=M(t.buffer),Ir(e,o)}function Fr(e,t,r,n,o,a,i){t._controlledReadableByteStream=e,t._pullAgain=!1,t._pulling=!1,t._byobRequest=null,t._queue=t._queueTotalSize=void 0,Z(t),t._closeRequested=!1,t._started=!1,t._strategyHWM=a,t._pullAlgorithm=n,t._cancelAlgorithm=o,t._autoAllocateChunkSize=i,t._pendingPullIntos=new E,e._readableStreamController=t;const s=r();P(_(s),()=>(t._started=!0,ue(t),null),f=>(W(t,f),null))}function Kn(e,t,r){const n=Object.create($.prototype);let o,a,i;t.start!==void 0?o=()=>t.start(n):o=()=>{},t.pull!==void 0?a=()=>t.pull(n):a=()=>_(void 0),t.cancel!==void 0?i=f=>t.cancel(f):i=()=>_(void 0);const s=t.autoAllocateChunkSize;if(s===0)throw new TypeError("autoAllocateChunkSize must be greater than 0");Fr(e,n,o,a,i,r,s)}function xn(e,t,r){e._associatedReadableByteStreamController=t,e._view=r}function Dt(e){return new TypeError(`ReadableStreamBYOBRequest.prototype.${e} can only be used on a ReadableStreamBYOBRequest`)}function Ae(e){return new TypeError(`ReadableByteStreamController.prototype.${e} can only be used on a ReadableByteStreamController`)}function eo(e,t){I(e,t);const r=e?.mode;return{mode:r===void 0?void 0:to(r,`${t} has member 'mode' that`)}}function to(e,t){if(e=`${e}`,e!=="byob")throw new TypeError(`${t} '${e}' is not a valid enumeration value for ReadableStreamReaderMode`);return e}function ro(e,t){var r;I(e,t);const n=(r=e?.min)!==null&&r!==void 0?r:1;return{min:Pt(n,`${t} has member 'min' that`)}}function Dr(e){return new J(e)}function Lr(e,t){e._reader._readIntoRequests.push(t)}function no(e,t,r){const o=e._reader._readIntoRequests.shift();r?o._closeSteps(t):o._chunkSteps(t)}function Mr(e){return e._reader._readIntoRequests.length}function Lt(e){const t=e._reader;return!(t===void 0||!le(t))}class J{constructor(t){if(L(t,1,"ReadableStreamBYOBReader"),Tt(t,"First parameter"),ee(t))throw new TypeError("This stream has already been locked for exclusive reading by another reader");if(!se(t._readableStreamController))throw new TypeError("Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte source");ur(this,t),this._readIntoRequests=new E}get closed(){return le(this)?this._closedPromise:u(He("closed"))}cancel(t=void 0){return le(this)?this._ownerReadableStream===void 0?u(De("cancel")):St(this,t):u(He("cancel"))}read(t,r={}){if(!le(this))return u(He("read"));if(!ArrayBuffer.isView(t))return u(new TypeError("view must be an array buffer view"));if(t.byteLength===0)return u(new TypeError("view must have non-zero byteLength"));if(t.buffer.byteLength===0)return u(new TypeError("view's buffer must have non-zero byteLength"));if(X(t.buffer))return u(new TypeError("view's buffer has been detached"));let n;try{n=ro(r,"options")}catch(l){return u(l)}const o=n.min;if(o===0)return u(new TypeError("options.min must be greater than 0"));if(Yn(t)){if(o>t.byteLength)return u(new RangeError("options.min must be less than or equal to view's byteLength"))}else if(o>t.length)return u(new RangeError("options.min must be less than or equal to view's length"));if(this._ownerReadableStream===void 0)return u(De("read from"));let a,i;const s=g((l,c)=>{a=l,i=c});return $r(this,t,o,{_chunkSteps:l=>a({value:l,done:!1}),_closeSteps:l=>a({value:l,done:!0}),_errorSteps:l=>i(l)}),s}releaseLock(){if(!le(this))throw He("releaseLock");this._ownerReadableStream!==void 0&&oo(this)}}Object.defineProperties(J.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),m(J.prototype.cancel,"cancel"),m(J.prototype.read,"read"),m(J.prototype.releaseLock,"releaseLock"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(J.prototype,Symbol.toStringTag,{value:"ReadableStreamBYOBReader",configurable:!0});function le(e){return!S(e)||!Object.prototype.hasOwnProperty.call(e,"_readIntoRequests")?!1:e instanceof J}function $r(e,t,r,n){const o=e._ownerReadableStream;o._disturbed=!0,o._state==="errored"?n._errorSteps(o._storedError):Gn(o._readableStreamController,t,r,n)}function oo(e){D(e);const t=new TypeError("Reader was released");Qr(e,t)}function Qr(e,t){const r=e._readIntoRequests;e._readIntoRequests=new E,r.forEach(n=>{n._errorSteps(t)})}function He(e){return new TypeError(`ReadableStreamBYOBReader.prototype.${e} can only be used on a ReadableStreamBYOBReader`)}function Be(e,t){const{highWaterMark:r}=e;if(r===void 0)return t;if(Rr(r)||r<0)throw new RangeError("Invalid highWaterMark");return r}function Ge(e){const{size:t}=e;return t||(()=>1)}function Xe(e,t){I(e,t);const r=e?.highWaterMark,n=e?.size;return{highWaterMark:r===void 0?void 0:Ct(r),size:n===void 0?void 0:ao(n,`${t} has member 'size' that`)}}function ao(e,t){return q(e,t),r=>Ct(e(r))}function io(e,t){I(e,t);const r=e?.abort,n=e?.close,o=e?.start,a=e?.type,i=e?.write;return{abort:r===void 0?void 0:so(r,e,`${t} has member 'abort' that`),close:n===void 0?void 0:uo(n,e,`${t} has member 'close' that`),start:o===void 0?void 0:lo(o,e,`${t} has member 'start' that`),write:i===void 0?void 0:fo(i,e,`${t} has member 'write' that`),type:a}}function so(e,t,r){return q(e,r),n=>V(e,t,[n])}function uo(e,t,r){return q(e,r),()=>V(e,t,[])}function lo(e,t,r){return q(e,r),n=>ae(e,t,[n])}function fo(e,t,r){return q(e,r),(n,o)=>V(e,t,[n,o])}function Nr(e,t){if(!pe(e))throw new TypeError(`${t} is not a WritableStream.`)}function co(e){if(typeof e!="object"||e===null)return!1;try{return typeof e.aborted=="boolean"}catch{return!1}}const bo=typeof AbortController=="function";function ho(){if(bo)return new AbortController}class K{constructor(t={},r={}){t===void 0?t=null:cr(t,"First parameter");const n=Xe(r,"Second parameter"),o=io(t,"First parameter");if(Yr(this),o.type!==void 0)throw new RangeError("Invalid type is specified");const i=Ge(n),s=Be(n,1);qo(this,o,s,i)}get locked(){if(!pe(this))throw et("locked");return ye(this)}abort(t=void 0){return pe(this)?ye(this)?u(new TypeError("Cannot abort a stream that already has a writer")):Ze(this,t):u(et("abort"))}close(){return pe(this)?ye(this)?u(new TypeError("Cannot close a stream that already has a writer")):j(this)?u(new TypeError("Cannot close an already-closing stream")):Vr(this):u(et("close"))}getWriter(){if(!pe(this))throw et("getWriter");return Ur(this)}}Object.defineProperties(K.prototype,{abort:{enumerable:!0},close:{enumerable:!0},getWriter:{enumerable:!0},locked:{enumerable:!0}}),m(K.prototype.abort,"abort"),m(K.prototype.close,"close"),m(K.prototype.getWriter,"getWriter"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(K.prototype,Symbol.toStringTag,{value:"WritableStream",configurable:!0});function Ur(e){return new Q(e)}function mo(e,t,r,n,o=1,a=()=>1){const i=Object.create(K.prototype);Yr(i);const s=Object.create(Se.prototype);return Kr(i,s,e,t,r,n,o,a),i}function Yr(e){e._state="writable",e._storedError=void 0,e._writer=void 0,e._writableStreamController=void 0,e._writeRequests=new E,e._inFlightWriteRequest=void 0,e._closeRequest=void 0,e._inFlightCloseRequest=void 0,e._pendingAbortRequest=void 0,e._backpressure=!1}function pe(e){return!S(e)||!Object.prototype.hasOwnProperty.call(e,"_writableStreamController")?!1:e instanceof K}function ye(e){return e._writer!==void 0}function Ze(e,t){var r;if(e._state==="closed"||e._state==="errored")return _(void 0);e._writableStreamController._abortReason=t,(r=e._writableStreamController._abortController)===null||r===void 0||r.abort(t);const n=e._state;if(n==="closed"||n==="errored")return _(void 0);if(e._pendingAbortRequest!==void 0)return e._pendingAbortRequest._promise;let o=!1;n==="erroring"&&(o=!0,t=void 0);const a=g((i,s)=>{e._pendingAbortRequest={_promise:void 0,_resolve:i,_reject:s,_reason:t,_wasAlreadyErroring:o}});return e._pendingAbortRequest._promise=a,o||$t(e,t),a}function Vr(e){const t=e._state;if(t==="closed"||t==="errored")return u(new TypeError(`The stream (in ${t} state) is not in the writable state and cannot be closed`));const r=g((o,a)=>{const i={_resolve:o,_reject:a};e._closeRequest=i}),n=e._writer;return n!==void 0&&e._backpressure&&t==="writable"&&Xt(n),Wo(e._writableStreamController),r}function _o(e){return g((r,n)=>{const o={_resolve:r,_reject:n};e._writeRequests.push(o)})}function Mt(e,t){if(e._state==="writable"){$t(e,t);return}Qt(e)}function $t(e,t){const r=e._writableStreamController;e._state="erroring",e._storedError=t;const n=e._writer;n!==void 0&&Gr(n,t),!Ro(e)&&r._started&&Qt(e)}function Qt(e){e._state="errored",e._writableStreamController[sr]();const t=e._storedError;if(e._writeRequests.forEach(o=>{o._reject(t)}),e._writeRequests=new E,e._pendingAbortRequest===void 0){Je(e);return}const r=e._pendingAbortRequest;if(e._pendingAbortRequest=void 0,r._wasAlreadyErroring){r._reject(t),Je(e);return}const n=e._writableStreamController[ir](r._reason);P(n,()=>(r._resolve(),Je(e),null),o=>(r._reject(o),Je(e),null))}function po(e){e._inFlightWriteRequest._resolve(void 0),e._inFlightWriteRequest=void 0}function yo(e,t){e._inFlightWriteRequest._reject(t),e._inFlightWriteRequest=void 0,Mt(e,t)}function So(e){e._inFlightCloseRequest._resolve(void 0),e._inFlightCloseRequest=void 0,e._state==="erroring"&&(e._storedError=void 0,e._pendingAbortRequest!==void 0&&(e._pendingAbortRequest._resolve(),e._pendingAbortRequest=void 0)),e._state="closed";const r=e._writer;r!==void 0&&rn(r)}function go(e,t){e._inFlightCloseRequest._reject(t),e._inFlightCloseRequest=void 0,e._pendingAbortRequest!==void 0&&(e._pendingAbortRequest._reject(t),e._pendingAbortRequest=void 0),Mt(e,t)}function j(e){return!(e._closeRequest===void 0&&e._inFlightCloseRequest===void 0)}function Ro(e){return!(e._inFlightWriteRequest===void 0&&e._inFlightCloseRequest===void 0)}function wo(e){e._inFlightCloseRequest=e._closeRequest,e._closeRequest=void 0}function Co(e){e._inFlightWriteRequest=e._writeRequests.shift()}function Je(e){e._closeRequest!==void 0&&(e._closeRequest._reject(e._storedError),e._closeRequest=void 0);const t=e._writer;t!==void 0&&Ht(t,e._storedError)}function Nt(e,t){const r=e._writer;r!==void 0&&t!==e._backpressure&&(t?zo(r):Xt(r)),e._backpressure=t}class Q{constructor(t){if(L(t,1,"WritableStreamDefaultWriter"),Nr(t,"First parameter"),ye(t))throw new TypeError("This stream has already been locked for exclusive writing by another writer");this._ownerWritableStream=t,t._writer=this;const r=t._state;if(r==="writable")!j(t)&&t._backpressure?rt(this):nn(this),tt(this);else if(r==="erroring")Gt(this,t._storedError),tt(this);else if(r==="closed")nn(this),Io(this);else{const n=t._storedError;Gt(this,n),tn(this,n)}}get closed(){return de(this)?this._closedPromise:u(fe("closed"))}get desiredSize(){if(!de(this))throw fe("desiredSize");if(this._ownerWritableStream===void 0)throw Oe("desiredSize");return Eo(this)}get ready(){return de(this)?this._readyPromise:u(fe("ready"))}abort(t=void 0){return de(this)?this._ownerWritableStream===void 0?u(Oe("abort")):Po(this,t):u(fe("abort"))}close(){if(!de(this))return u(fe("close"));const t=this._ownerWritableStream;return t===void 0?u(Oe("close")):j(t)?u(new TypeError("Cannot close an already-closing stream")):Hr(this)}releaseLock(){if(!de(this))throw fe("releaseLock");this._ownerWritableStream!==void 0&&Xr(this)}write(t=void 0){return de(this)?this._ownerWritableStream===void 0?u(Oe("write to")):Zr(this,t):u(fe("write"))}}Object.defineProperties(Q.prototype,{abort:{enumerable:!0},close:{enumerable:!0},releaseLock:{enumerable:!0},write:{enumerable:!0},closed:{enumerable:!0},desiredSize:{enumerable:!0},ready:{enumerable:!0}}),m(Q.prototype.abort,"abort"),m(Q.prototype.close,"close"),m(Q.prototype.releaseLock,"releaseLock"),m(Q.prototype.write,"write"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Q.prototype,Symbol.toStringTag,{value:"WritableStreamDefaultWriter",configurable:!0});function de(e){return!S(e)||!Object.prototype.hasOwnProperty.call(e,"_ownerWritableStream")?!1:e instanceof Q}function Po(e,t){const r=e._ownerWritableStream;return Ze(r,t)}function Hr(e){const t=e._ownerWritableStream;return Vr(t)}function To(e){const t=e._ownerWritableStream,r=t._state;return j(t)||r==="closed"?_(void 0):r==="errored"?u(t._storedError):Hr(e)}function vo(e,t){e._closedPromiseState==="pending"?Ht(e,t):jo(e,t)}function Gr(e,t){e._readyPromiseState==="pending"?on(e,t):Fo(e,t)}function Eo(e){const t=e._ownerWritableStream,r=t._state;return r==="errored"||r==="erroring"?null:r==="closed"?0:xr(t._writableStreamController)}function Xr(e){const t=e._ownerWritableStream,r=new TypeError("Writer was released and can no longer be used to monitor the stream's closedness");Gr(e,r),vo(e,r),t._writer=void 0,e._ownerWritableStream=void 0}function Zr(e,t){const r=e._ownerWritableStream,n=r._writableStreamController,o=Ao(n,t);if(r!==e._ownerWritableStream)return u(Oe("write to"));const a=r._state;if(a==="errored")return u(r._storedError);if(j(r)||a==="closed")return u(new TypeError("The stream is closing or closed and cannot be written to"));if(a==="erroring")return u(r._storedError);const i=_o(r);return Bo(n,t,o),i}const Jr={};class Se{constructor(){throw new TypeError("Illegal constructor")}get abortReason(){if(!Ut(this))throw Vt("abortReason");return this._abortReason}get signal(){if(!Ut(this))throw Vt("signal");if(this._abortController===void 0)throw new TypeError("WritableStreamDefaultController.prototype.signal is not supported");return this._abortController.signal}error(t=void 0){if(!Ut(this))throw Vt("error");this._controlledWritableStream._state==="writable"&&en(this,t)}[ir](t){const r=this._abortAlgorithm(t);return Ke(this),r}[sr](){Z(this)}}Object.defineProperties(Se.prototype,{abortReason:{enumerable:!0},signal:{enumerable:!0},error:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Se.prototype,Symbol.toStringTag,{value:"WritableStreamDefaultController",configurable:!0});function Ut(e){return!S(e)||!Object.prototype.hasOwnProperty.call(e,"_controlledWritableStream")?!1:e instanceof Se}function Kr(e,t,r,n,o,a,i,s){t._controlledWritableStream=e,e._writableStreamController=t,t._queue=void 0,t._queueTotalSize=void 0,Z(t),t._abortReason=void 0,t._abortController=ho(),t._started=!1,t._strategySizeAlgorithm=s,t._strategyHWM=i,t._writeAlgorithm=n,t._closeAlgorithm=o,t._abortAlgorithm=a;const f=Yt(t);Nt(e,f);const l=r(),c=_(l);P(c,()=>(t._started=!0,xe(t),null),b=>(t._started=!0,Mt(e,b),null))}function qo(e,t,r,n){const o=Object.create(Se.prototype);let a,i,s,f;t.start!==void 0?a=()=>t.start(o):a=()=>{},t.write!==void 0?i=l=>t.write(l,o):i=()=>_(void 0),t.close!==void 0?s=()=>t.close():s=()=>_(void 0),t.abort!==void 0?f=l=>t.abort(l):f=()=>_(void 0),Kr(e,o,a,i,s,f,r,n)}function Ke(e){e._writeAlgorithm=void 0,e._closeAlgorithm=void 0,e._abortAlgorithm=void 0,e._strategySizeAlgorithm=void 0}function Wo(e){kt(e,Jr,0),xe(e)}function Ao(e,t){try{return e._strategySizeAlgorithm(t)}catch(r){return ke(e,r),1}}function xr(e){return e._strategyHWM-e._queueTotalSize}function Bo(e,t,r){try{kt(e,t,r)}catch(o){ke(e,o);return}const n=e._controlledWritableStream;if(!j(n)&&n._state==="writable"){const o=Yt(e);Nt(n,o)}xe(e)}function xe(e){const t=e._controlledWritableStream;if(!e._started||t._inFlightWriteRequest!==void 0)return;if(t._state==="erroring"){Qt(t);return}if(e._queue.length===0)return;const n=Un(e);n===Jr?ko(e):Oo(e,n)}function ke(e,t){e._controlledWritableStream._state==="writable"&&en(e,t)}function ko(e){const t=e._controlledWritableStream;wo(t),Bt(e);const r=e._closeAlgorithm();Ke(e),P(r,()=>(So(t),null),n=>(go(t,n),null))}function Oo(e,t){const r=e._controlledWritableStream;Co(r);const n=e._writeAlgorithm(t);P(n,()=>{po(r);const o=r._state;if(Bt(e),!j(r)&&o==="writable"){const a=Yt(e);Nt(r,a)}return xe(e),null},o=>(r._state==="writable"&&Ke(e),yo(r,o),null))}function Yt(e){return xr(e)<=0}function en(e,t){const r=e._controlledWritableStream;Ke(e),$t(r,t)}function et(e){return new TypeError(`WritableStream.prototype.${e} can only be used on a WritableStream`)}function Vt(e){return new TypeError(`WritableStreamDefaultController.prototype.${e} can only be used on a WritableStreamDefaultController`)}function fe(e){return new TypeError(`WritableStreamDefaultWriter.prototype.${e} can only be used on a WritableStreamDefaultWriter`)}function Oe(e){return new TypeError("Cannot "+e+" a stream using a released writer")}function tt(e){e._closedPromise=g((t,r)=>{e._closedPromise_resolve=t,e._closedPromise_reject=r,e._closedPromiseState="pending"})}function tn(e,t){tt(e),Ht(e,t)}function Io(e){tt(e),rn(e)}function Ht(e,t){e._closedPromise_reject!==void 0&&(he(e._closedPromise),e._closedPromise_reject(t),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0,e._closedPromiseState="rejected")}function jo(e,t){tn(e,t)}function rn(e){e._closedPromise_resolve!==void 0&&(e._closedPromise_resolve(void 0),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0,e._closedPromiseState="resolved")}function rt(e){e._readyPromise=g((t,r)=>{e._readyPromise_resolve=t,e._readyPromise_reject=r}),e._readyPromiseState="pending"}function Gt(e,t){rt(e),on(e,t)}function nn(e){rt(e),Xt(e)}function on(e,t){e._readyPromise_reject!==void 0&&(he(e._readyPromise),e._readyPromise_reject(t),e._readyPromise_resolve=void 0,e._readyPromise_reject=void 0,e._readyPromiseState="rejected")}function zo(e){rt(e)}function Fo(e,t){Gt(e,t)}function Xt(e){e._readyPromise_resolve!==void 0&&(e._readyPromise_resolve(void 0),e._readyPromise_resolve=void 0,e._readyPromise_reject=void 0,e._readyPromiseState="fulfilled")}function Do(){if(typeof globalThis<"u")return globalThis;if(typeof self<"u")return self;if(typeof Tn<"u")return Tn}const Zt=Do();function Lo(e){if(!(typeof e=="function"||typeof e=="object")||e.name!=="DOMException")return!1;try{return new e,!0}catch{return!1}}function Mo(){const e=Zt?.DOMException;return Lo(e)?e:void 0}function $o(){const e=function(r,n){this.message=r||"",this.name=n||"Error",Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)};return m(e,"DOMException"),e.prototype=Object.create(Error.prototype),Object.defineProperty(e.prototype,"constructor",{value:e,writable:!0,configurable:!0}),e}const Qo=Mo()||$o();function an(e,t,r,n,o,a){const i=me(e),s=Ur(t);e._disturbed=!0;let f=!1,l=_(void 0);return g((c,b)=>{let p;if(a!==void 0){if(p=()=>{const d=a.reason!==void 0?a.reason:new Qo("Aborted","AbortError"),h=[];n||h.push(()=>t._state==="writable"?Ze(t,d):_(void 0)),o||h.push(()=>e._state==="readable"?k(e,d):_(void 0)),T(()=>Promise.all(h.map(y=>y())),!0,d)},a.aborted){p();return}a.addEventListener("abort",p)}function O(){return g((d,h)=>{function y(v){v?d():z(Ce(),y,h)}y(!1)})}function Ce(){return f?_(!0):z(s._readyPromise,()=>g((d,h)=>{Ee(i,{_chunkSteps:y=>{l=z(Zr(s,y),void 0,ne),d(!1)},_closeSteps:()=>d(!0),_errorSteps:h})}))}if(U(e,i._closedPromise,d=>(n?A(!0,d):T(()=>Ze(t,d),!0,d),null)),U(t,s._closedPromise,d=>(o?A(!0,d):T(()=>k(e,d),!0,d),null)),w(e,i._closedPromise,()=>(r?A():T(()=>To(s)),null)),j(t)||t._state==="closed"){const d=new TypeError("the destination writable stream closed before all data could be piped to it");o?A(!0,d):T(()=>k(e,d),!0,d)}he(O());function re(){const d=l;return z(l,()=>d!==l?re():void 0)}function U(d,h,y){d._state==="errored"?y(d._storedError):mt(h,y)}function w(d,h,y){d._state==="closed"?y():ht(h,y)}function T(d,h,y){if(f)return;f=!0,t._state==="writable"&&!j(t)?ht(re(),v):v();function v(){return P(d(),()=>Y(h,y),Pe=>Y(!0,Pe)),null}}function A(d,h){f||(f=!0,t._state==="writable"&&!j(t)?ht(re(),()=>Y(d,h)):Y(d,h))}function Y(d,h){return Xr(s),D(i),a!==void 0&&a.removeEventListener("abort",p),d?b(h):c(void 0),null}})}class N{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!nt(this))throw at("desiredSize");return Jt(this)}close(){if(!nt(this))throw at("close");if(!Re(this))throw new TypeError("The stream is not in a state that permits close");ce(this)}enqueue(t=void 0){if(!nt(this))throw at("enqueue");if(!Re(this))throw new TypeError("The stream is not in a state that permits enqueue");return ge(this,t)}error(t=void 0){if(!nt(this))throw at("error");B(this,t)}[_t](t){Z(this);const r=this._cancelAlgorithm(t);return ot(this),r}[pt](t){const r=this._controlledReadableStream;if(this._queue.length>0){const n=Bt(this);this._closeRequested&&this._queue.length===0?(ot(this),ze(r)):Ie(this),t._chunkSteps(n)}else hr(r,t),Ie(this)}[yt](){}}Object.defineProperties(N.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},desiredSize:{enumerable:!0}}),m(N.prototype.close,"close"),m(N.prototype.enqueue,"enqueue"),m(N.prototype.error,"error"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(N.prototype,Symbol.toStringTag,{value:"ReadableStreamDefaultController",configurable:!0});function nt(e){return!S(e)||!Object.prototype.hasOwnProperty.call(e,"_controlledReadableStream")?!1:e instanceof N}function Ie(e){if(!sn(e))return;if(e._pulling){e._pullAgain=!0;return}e._pulling=!0;const r=e._pullAlgorithm();P(r,()=>(e._pulling=!1,e._pullAgain&&(e._pullAgain=!1,Ie(e)),null),n=>(B(e,n),null))}function sn(e){const t=e._controlledReadableStream;return!Re(e)||!e._started?!1:!!(ee(t)&&Le(t)>0||Jt(e)>0)}function ot(e){e._pullAlgorithm=void 0,e._cancelAlgorithm=void 0,e._strategySizeAlgorithm=void 0}function ce(e){if(!Re(e))return;const t=e._controlledReadableStream;e._closeRequested=!0,e._queue.length===0&&(ot(e),ze(t))}function ge(e,t){if(!Re(e))return;const r=e._controlledReadableStream;if(ee(r)&&Le(r)>0)vt(r,t,!1);else{let n;try{n=e._strategySizeAlgorithm(t)}catch(o){throw B(e,o),o}try{kt(e,t,n)}catch(o){throw B(e,o),o}}Ie(e)}function B(e,t){const r=e._controlledReadableStream;r._state==="readable"&&(Z(e),ot(e),fn(r,t))}function Jt(e){const t=e._controlledReadableStream._state;return t==="errored"?null:t==="closed"?0:e._strategyHWM-e._queueTotalSize}function No(e){return!sn(e)}function Re(e){const t=e._controlledReadableStream._state;return!e._closeRequested&&t==="readable"}function un(e,t,r,n,o,a,i){t._controlledReadableStream=e,t._queue=void 0,t._queueTotalSize=void 0,Z(t),t._started=!1,t._closeRequested=!1,t._pullAgain=!1,t._pulling=!1,t._strategySizeAlgorithm=i,t._strategyHWM=a,t._pullAlgorithm=n,t._cancelAlgorithm=o,e._readableStreamController=t;const s=r();P(_(s),()=>(t._started=!0,Ie(t),null),f=>(B(t,f),null))}function Uo(e,t,r,n){const o=Object.create(N.prototype);let a,i,s;t.start!==void 0?a=()=>t.start(o):a=()=>{},t.pull!==void 0?i=()=>t.pull(o):i=()=>_(void 0),t.cancel!==void 0?s=f=>t.cancel(f):s=()=>_(void 0),un(e,o,a,i,s,r,n)}function at(e){return new TypeError(`ReadableStreamDefaultController.prototype.${e} can only be used on a ReadableStreamDefaultController`)}function Yo(e,t){return se(e._readableStreamController)?Ho(e):Vo(e)}function Vo(e,t){const r=me(e);let n=!1,o=!1,a=!1,i=!1,s,f,l,c,b;const p=g(w=>{b=w});function O(){return n?(o=!0,_(void 0)):(n=!0,Ee(r,{_chunkSteps:T=>{oe(()=>{o=!1;const A=T,Y=T;a||ge(l._readableStreamController,A),i||ge(c._readableStreamController,Y),n=!1,o&&O()})},_closeSteps:()=>{n=!1,a||ce(l._readableStreamController),i||ce(c._readableStreamController),(!a||!i)&&b(void 0)},_errorSteps:()=>{n=!1}}),_(void 0))}function Ce(w){if(a=!0,s=w,i){const T=qe([s,f]),A=k(e,T);b(A)}return p}function re(w){if(i=!0,f=w,a){const T=qe([s,f]),A=k(e,T);b(A)}return p}function U(){}return l=je(U,O,Ce),c=je(U,O,re),mt(r._closedPromise,w=>(B(l._readableStreamController,w),B(c._readableStreamController,w),(!a||!i)&&b(void 0),null)),[l,c]}function Ho(e){let t=me(e),r=!1,n=!1,o=!1,a=!1,i=!1,s,f,l,c,b;const p=g(d=>{b=d});function O(d){mt(d._closedPromise,h=>(d!==t||(W(l._readableStreamController,h),W(c._readableStreamController,h),(!a||!i)&&b(void 0)),null))}function Ce(){le(t)&&(D(t),t=me(e),O(t)),Ee(t,{_chunkSteps:h=>{oe(()=>{n=!1,o=!1;const y=h;let v=h;if(!a&&!i)try{v=Tr(h)}catch(Pe){W(l._readableStreamController,Pe),W(c._readableStreamController,Pe),b(k(e,Pe));return}a||Ue(l._readableStreamController,y),i||Ue(c._readableStreamController,v),r=!1,n?U():o&&w()})},_closeSteps:()=>{r=!1,a||We(l._readableStreamController),i||We(c._readableStreamController),l._readableStreamController._pendingPullIntos.length>0&&Ye(l._readableStreamController,0),c._readableStreamController._pendingPullIntos.length>0&&Ye(c._readableStreamController,0),(!a||!i)&&b(void 0)},_errorSteps:()=>{r=!1}})}function re(d,h){G(t)&&(D(t),t=Dr(e),O(t));const y=h?c:l,v=h?l:c;$r(t,d,1,{_chunkSteps:Te=>{oe(()=>{n=!1,o=!1;const ve=h?i:a;if(h?a:i)ve||Ve(y._readableStreamController,Te);else{let Pn;try{Pn=Tr(Te)}catch(rr){W(y._readableStreamController,rr),W(v._readableStreamController,rr),b(k(e,rr));return}ve||Ve(y._readableStreamController,Te),Ue(v._readableStreamController,Pn)}r=!1,n?U():o&&w()})},_closeSteps:Te=>{r=!1;const ve=h?i:a,bt=h?a:i;ve||We(y._readableStreamController),bt||We(v._readableStreamController),Te!==void 0&&(ve||Ve(y._readableStreamController,Te),!bt&&v._readableStreamController._pendingPullIntos.length>0&&Ye(v._readableStreamController,0)),(!ve||!bt)&&b(void 0)},_errorSteps:()=>{r=!1}})}function U(){if(r)return n=!0,_(void 0);r=!0;const d=Ft(l._readableStreamController);return d===null?Ce():re(d._view,!1),_(void 0)}function w(){if(r)return o=!0,_(void 0);r=!0;const d=Ft(c._readableStreamController);return d===null?Ce():re(d._view,!0),_(void 0)}function T(d){if(a=!0,s=d,i){const h=qe([s,f]),y=k(e,h);b(y)}return p}function A(d){if(i=!0,f=d,a){const h=qe([s,f]),y=k(e,h);b(y)}return p}function Y(){}return l=dn(Y,U,T),c=dn(Y,w,A),O(t),[l,c]}function Go(e){return S(e)&&typeof e.getReader<"u"}function Xo(e){return Go(e)?Jo(e.getReader()):Zo(e)}function Zo(e){let t;const r=Pr(e,"async"),n=ne;function o(){let i;try{i=Mn(r)}catch(f){return u(f)}const s=_(i);return F(s,f=>{if(!S(f))throw new TypeError("The promise returned by the iterator.next() method must fulfill with an object");if($n(f))ce(t._readableStreamController);else{const c=Qn(f);ge(t._readableStreamController,c)}})}function a(i){const s=r.iterator;let f;try{f=$e(s,"return")}catch(b){return u(b)}if(f===void 0)return _(void 0);let l;try{l=ae(f,s,[i])}catch(b){return u(b)}const c=_(l);return F(c,b=>{if(!S(b))throw new TypeError("The promise returned by the iterator.return() method must fulfill with an object")})}return t=je(n,o,a,0),t}function Jo(e){let t;const r=ne;function n(){let a;try{a=e.read()}catch(i){return u(i)}return F(a,i=>{if(!S(i))throw new TypeError("The promise returned by the reader.read() method must fulfill with an object");if(i.done)ce(t._readableStreamController);else{const s=i.value;ge(t._readableStreamController,s)}})}function o(a){try{return _(e.cancel(a))}catch(i){return u(i)}}return t=je(r,n,o,0),t}function Ko(e,t){I(e,t);const r=e,n=r?.autoAllocateChunkSize,o=r?.cancel,a=r?.pull,i=r?.start,s=r?.type;return{autoAllocateChunkSize:n===void 0?void 0:Pt(n,`${t} has member 'autoAllocateChunkSize' that`),cancel:o===void 0?void 0:xo(o,r,`${t} has member 'cancel' that`),pull:a===void 0?void 0:ea(a,r,`${t} has member 'pull' that`),start:i===void 0?void 0:ta(i,r,`${t} has member 'start' that`),type:s===void 0?void 0:ra(s,`${t} has member 'type' that`)}}function xo(e,t,r){return q(e,r),n=>V(e,t,[n])}function ea(e,t,r){return q(e,r),n=>V(e,t,[n])}function ta(e,t,r){return q(e,r),n=>ae(e,t,[n])}function ra(e,t){if(e=`${e}`,e!=="bytes")throw new TypeError(`${t} '${e}' is not a valid enumeration value for ReadableStreamType`);return e}function na(e,t){return I(e,t),{preventCancel:!!e?.preventCancel}}function ln(e,t){I(e,t);const r=e?.preventAbort,n=e?.preventCancel,o=e?.preventClose,a=e?.signal;return a!==void 0&&oa(a,`${t} has member 'signal' that`),{preventAbort:!!r,preventCancel:!!n,preventClose:!!o,signal:a}}function oa(e,t){if(!co(e))throw new TypeError(`${t} is not an AbortSignal.`)}function aa(e,t){I(e,t);const r=e?.readable;wt(r,"readable","ReadableWritablePair"),Tt(r,`${t} has member 'readable' that`);const n=e?.writable;return wt(n,"writable","ReadableWritablePair"),Nr(n,`${t} has member 'writable' that`),{readable:r,writable:n}}class R{constructor(t={},r={}){t===void 0?t=null:cr(t,"First parameter");const n=Xe(r,"Second parameter"),o=Ko(t,"First parameter");if(Kt(this),o.type==="bytes"){if(n.size!==void 0)throw new RangeError("The strategy for a byte stream cannot have a size function");const a=Be(n,0);Kn(this,o,a)}else{const a=Ge(n),i=Be(n,1);Uo(this,o,i,a)}}get locked(){if(!x(this))throw be("locked");return ee(this)}cancel(t=void 0){return x(this)?ee(this)?u(new TypeError("Cannot cancel a stream that already has a reader")):k(this,t):u(be("cancel"))}getReader(t=void 0){if(!x(this))throw be("getReader");return eo(t,"First parameter").mode===void 0?me(this):Dr(this)}pipeThrough(t,r={}){if(!x(this))throw be("pipeThrough");L(t,1,"pipeThrough");const n=aa(t,"First parameter"),o=ln(r,"Second parameter");if(ee(this))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream");if(ye(n.writable))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream");const a=an(this,n.writable,o.preventClose,o.preventAbort,o.preventCancel,o.signal);return he(a),n.readable}pipeTo(t,r={}){if(!x(this))return u(be("pipeTo"));if(t===void 0)return u("Parameter 1 is required in 'pipeTo'.");if(!pe(t))return u(new TypeError("ReadableStream.prototype.pipeTo's first argument must be a WritableStream"));let n;try{n=ln(r,"Second parameter")}catch(o){return u(o)}return ee(this)?u(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream")):ye(t)?u(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream")):an(this,t,n.preventClose,n.preventAbort,n.preventCancel,n.signal)}tee(){if(!x(this))throw be("tee");const t=Yo(this);return qe(t)}values(t=void 0){if(!x(this))throw be("values");const r=na(t,"First parameter");return Dn(this,r.preventCancel)}[At](t){return this.values(t)}static from(t){return Xo(t)}}Object.defineProperties(R,{from:{enumerable:!0}}),Object.defineProperties(R.prototype,{cancel:{enumerable:!0},getReader:{enumerable:!0},pipeThrough:{enumerable:!0},pipeTo:{enumerable:!0},tee:{enumerable:!0},values:{enumerable:!0},locked:{enumerable:!0}}),m(R.from,"from"),m(R.prototype.cancel,"cancel"),m(R.prototype.getReader,"getReader"),m(R.prototype.pipeThrough,"pipeThrough"),m(R.prototype.pipeTo,"pipeTo"),m(R.prototype.tee,"tee"),m(R.prototype.values,"values"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(R.prototype,Symbol.toStringTag,{value:"ReadableStream",configurable:!0}),Object.defineProperty(R.prototype,At,{value:R.prototype.values,writable:!0,configurable:!0});function je(e,t,r,n=1,o=()=>1){const a=Object.create(R.prototype);Kt(a);const i=Object.create(N.prototype);return un(a,i,e,t,r,n,o),a}function dn(e,t,r){const n=Object.create(R.prototype);Kt(n);const o=Object.create($.prototype);return Fr(n,o,e,t,r,0,void 0),n}function Kt(e){e._state="readable",e._reader=void 0,e._storedError=void 0,e._disturbed=!1}function x(e){return!S(e)||!Object.prototype.hasOwnProperty.call(e,"_readableStreamController")?!1:e instanceof R}function ee(e){return e._reader!==void 0}function k(e,t){if(e._disturbed=!0,e._state==="closed")return _(void 0);if(e._state==="errored")return u(e._storedError);ze(e);const r=e._reader;if(r!==void 0&&le(r)){const o=r._readIntoRequests;r._readIntoRequests=new E,o.forEach(a=>{a._closeSteps(void 0)})}const n=e._readableStreamController[_t](t);return F(n,ne)}function ze(e){e._state="closed";const t=e._reader;if(t!==void 0&&(dr(t),G(t))){const r=t._readRequests;t._readRequests=new E,r.forEach(n=>{n._closeSteps()})}}function fn(e,t){e._state="errored",e._storedError=t;const r=e._reader;r!==void 0&&(Rt(r,t),G(r)?_r(r,t):Qr(r,t))}function be(e){return new TypeError(`ReadableStream.prototype.${e} can only be used on a ReadableStream`)}function cn(e,t){I(e,t);const r=e?.highWaterMark;return wt(r,"highWaterMark","QueuingStrategyInit"),{highWaterMark:Ct(r)}}const bn=e=>e.byteLength;m(bn,"size");class it{constructor(t){L(t,1,"ByteLengthQueuingStrategy"),t=cn(t,"First parameter"),this._byteLengthQueuingStrategyHighWaterMark=t.highWaterMark}get highWaterMark(){if(!mn(this))throw hn("highWaterMark");return this._byteLengthQueuingStrategyHighWaterMark}get size(){if(!mn(this))throw hn("size");return bn}}Object.defineProperties(it.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(it.prototype,Symbol.toStringTag,{value:"ByteLengthQueuingStrategy",configurable:!0});function hn(e){return new TypeError(`ByteLengthQueuingStrategy.prototype.${e} can only be used on a ByteLengthQueuingStrategy`)}function mn(e){return!S(e)||!Object.prototype.hasOwnProperty.call(e,"_byteLengthQueuingStrategyHighWaterMark")?!1:e instanceof it}const _n=()=>1;m(_n,"size");class st{constructor(t){L(t,1,"CountQueuingStrategy"),t=cn(t,"First parameter"),this._countQueuingStrategyHighWaterMark=t.highWaterMark}get highWaterMark(){if(!yn(this))throw pn("highWaterMark");return this._countQueuingStrategyHighWaterMark}get size(){if(!yn(this))throw pn("size");return _n}}Object.defineProperties(st.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(st.prototype,Symbol.toStringTag,{value:"CountQueuingStrategy",configurable:!0});function pn(e){return new TypeError(`CountQueuingStrategy.prototype.${e} can only be used on a CountQueuingStrategy`)}function yn(e){return!S(e)||!Object.prototype.hasOwnProperty.call(e,"_countQueuingStrategyHighWaterMark")?!1:e instanceof st}function ia(e,t){I(e,t);const r=e?.cancel,n=e?.flush,o=e?.readableType,a=e?.start,i=e?.transform,s=e?.writableType;return{cancel:r===void 0?void 0:da(r,e,`${t} has member 'cancel' that`),flush:n===void 0?void 0:sa(n,e,`${t} has member 'flush' that`),readableType:o,start:a===void 0?void 0:ua(a,e,`${t} has member 'start' that`),transform:i===void 0?void 0:la(i,e,`${t} has member 'transform' that`),writableType:s}}function sa(e,t,r){return q(e,r),n=>V(e,t,[n])}function ua(e,t,r){return q(e,r),n=>ae(e,t,[n])}function la(e,t,r){return q(e,r),(n,o)=>V(e,t,[n,o])}function da(e,t,r){return q(e,r),n=>V(e,t,[n])}class ut{constructor(t={},r={},n={}){t===void 0&&(t=null);const o=Xe(r,"Second parameter"),a=Xe(n,"Third parameter"),i=ia(t,"First parameter");if(i.readableType!==void 0)throw new RangeError("Invalid readableType specified");if(i.writableType!==void 0)throw new RangeError("Invalid writableType specified");const s=Be(a,0),f=Ge(a),l=Be(o,1),c=Ge(o);let b;const p=g(O=>{b=O});fa(this,p,l,c,s,f),ba(this,i),i.start!==void 0?b(i.start(this._transformStreamController)):b(void 0)}get readable(){if(!Sn(this))throw Cn("readable");return this._readable}get writable(){if(!Sn(this))throw Cn("writable");return this._writable}}Object.defineProperties(ut.prototype,{readable:{enumerable:!0},writable:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(ut.prototype,Symbol.toStringTag,{value:"TransformStream",configurable:!0});function fa(e,t,r,n,o,a){function i(){return t}function s(p){return _a(e,p)}function f(p){return pa(e,p)}function l(){return ya(e)}e._writable=mo(i,s,l,f,r,n);function c(){return Sa(e)}function b(p){return ga(e,p)}e._readable=je(i,c,b,o,a),e._backpressure=void 0,e._backpressureChangePromise=void 0,e._backpressureChangePromise_resolve=void 0,lt(e,!0),e._transformStreamController=void 0}function Sn(e){return!S(e)||!Object.prototype.hasOwnProperty.call(e,"_transformStreamController")?!1:e instanceof ut}function gn(e,t){B(e._readable._readableStreamController,t),xt(e,t)}function xt(e,t){ft(e._transformStreamController),ke(e._writable._writableStreamController,t),er(e)}function er(e){e._backpressure&&lt(e,!1)}function lt(e,t){e._backpressureChangePromise!==void 0&&e._backpressureChangePromise_resolve(),e._backpressureChangePromise=g(r=>{e._backpressureChangePromise_resolve=r}),e._backpressure=t}class te{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!dt(this))throw ct("desiredSize");const t=this._controlledTransformStream._readable._readableStreamController;return Jt(t)}enqueue(t=void 0){if(!dt(this))throw ct("enqueue");Rn(this,t)}error(t=void 0){if(!dt(this))throw ct("error");ha(this,t)}terminate(){if(!dt(this))throw ct("terminate");ma(this)}}Object.defineProperties(te.prototype,{enqueue:{enumerable:!0},error:{enumerable:!0},terminate:{enumerable:!0},desiredSize:{enumerable:!0}}),m(te.prototype.enqueue,"enqueue"),m(te.prototype.error,"error"),m(te.prototype.terminate,"terminate"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(te.prototype,Symbol.toStringTag,{value:"TransformStreamDefaultController",configurable:!0});function dt(e){return!S(e)||!Object.prototype.hasOwnProperty.call(e,"_controlledTransformStream")?!1:e instanceof te}function ca(e,t,r,n,o){t._controlledTransformStream=e,e._transformStreamController=t,t._transformAlgorithm=r,t._flushAlgorithm=n,t._cancelAlgorithm=o,t._finishPromise=void 0,t._finishPromise_resolve=void 0,t._finishPromise_reject=void 0}function ba(e,t){const r=Object.create(te.prototype);let n,o,a;t.transform!==void 0?n=i=>t.transform(i,r):n=i=>{try{return Rn(r,i),_(void 0)}catch(s){return u(s)}},t.flush!==void 0?o=()=>t.flush(r):o=()=>_(void 0),t.cancel!==void 0?a=i=>t.cancel(i):a=()=>_(void 0),ca(e,r,n,o,a)}function ft(e){e._transformAlgorithm=void 0,e._flushAlgorithm=void 0,e._cancelAlgorithm=void 0}function Rn(e,t){const r=e._controlledTransformStream,n=r._readable._readableStreamController;if(!Re(n))throw new TypeError("Readable side is not in a state that permits enqueue");try{ge(n,t)}catch(a){throw xt(r,a),r._readable._storedError}No(n)!==r._backpressure&&lt(r,!0)}function ha(e,t){gn(e._controlledTransformStream,t)}function wn(e,t){const r=e._transformAlgorithm(t);return F(r,void 0,n=>{throw gn(e._controlledTransformStream,n),n})}function ma(e){const t=e._controlledTransformStream,r=t._readable._readableStreamController;ce(r);const n=new TypeError("TransformStream terminated");xt(t,n)}function _a(e,t){const r=e._transformStreamController;if(e._backpressure){const n=e._backpressureChangePromise;return F(n,()=>{const o=e._writable;if(o._state==="erroring")throw o._storedError;return wn(r,t)})}return wn(r,t)}function pa(e,t){const r=e._transformStreamController;if(r._finishPromise!==void 0)return r._finishPromise;const n=e._readable;r._finishPromise=g((a,i)=>{r._finishPromise_resolve=a,r._finishPromise_reject=i});const o=r._cancelAlgorithm(t);return ft(r),P(o,()=>(n._state==="errored"?we(r,n._storedError):(B(n._readableStreamController,t),tr(r)),null),a=>(B(n._readableStreamController,a),we(r,a),null)),r._finishPromise}function ya(e){const t=e._transformStreamController;if(t._finishPromise!==void 0)return t._finishPromise;const r=e._readable;t._finishPromise=g((o,a)=>{t._finishPromise_resolve=o,t._finishPromise_reject=a});const n=t._flushAlgorithm();return ft(t),P(n,()=>(r._state==="errored"?we(t,r._storedError):(ce(r._readableStreamController),tr(t)),null),o=>(B(r._readableStreamController,o),we(t,o),null)),t._finishPromise}function Sa(e){return lt(e,!1),e._backpressureChangePromise}function ga(e,t){const r=e._transformStreamController;if(r._finishPromise!==void 0)return r._finishPromise;const n=e._writable;r._finishPromise=g((a,i)=>{r._finishPromise_resolve=a,r._finishPromise_reject=i});const o=r._cancelAlgorithm(t);return ft(r),P(o,()=>(n._state==="errored"?we(r,n._storedError):(ke(n._writableStreamController,t),er(e),tr(r)),null),a=>(ke(n._writableStreamController,a),er(e),we(r,a),null)),r._finishPromise}function ct(e){return new TypeError(`TransformStreamDefaultController.prototype.${e} can only be used on a TransformStreamDefaultController`)}function tr(e){e._finishPromise_resolve!==void 0&&(e._finishPromise_resolve(),e._finishPromise_resolve=void 0,e._finishPromise_reject=void 0)}function we(e,t){e._finishPromise_reject!==void 0&&(he(e._finishPromise),e._finishPromise_reject(t),e._finishPromise_resolve=void 0,e._finishPromise_reject=void 0)}function Cn(e){return new TypeError(`TransformStream.prototype.${e} can only be used on a TransformStream`)}C.ByteLengthQueuingStrategy=it,C.CountQueuingStrategy=st,C.ReadableByteStreamController=$,C.ReadableStream=R,C.ReadableStreamBYOBReader=J,C.ReadableStreamBYOBRequest=ie,C.ReadableStreamDefaultController=N,C.ReadableStreamDefaultReader=H,C.TransformStream=ut,C.TransformStreamDefaultController=te,C.WritableStream=K,C.WritableStreamDefaultController=Se,C.WritableStreamDefaultWriter=Q}))})(Fe,Fe.exports)),Fe.exports}export{Pa as r};