react-server-dom-webpack 19.0.0-beta-04b058868c-20240508 → 19.0.0-beta-9d76c954cf-20240510

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.
@@ -94,14 +94,10 @@ function getIteratorFn(maybeIterable) {
94
94
  maybeIterable["@@iterator"];
95
95
  return "function" === typeof maybeIterable ? maybeIterable : null;
96
96
  }
97
- var isArrayImpl = Array.isArray,
98
- getPrototypeOf = Object.getPrototypeOf;
99
- function writeTemporaryReference(set, object) {
100
- var newId = set.length;
101
- set.push(object);
102
- return newId;
103
- }
104
- var ObjectPrototype = Object.prototype,
97
+ var ASYNC_ITERATOR = Symbol.asyncIterator,
98
+ isArrayImpl = Array.isArray,
99
+ getPrototypeOf = Object.getPrototypeOf,
100
+ ObjectPrototype = Object.prototype,
105
101
  knownServerReferences = new WeakMap();
106
102
  function serializeNumber(number) {
107
103
  return Number.isFinite(number)
@@ -121,28 +117,129 @@ function processReply(
121
117
  resolve,
122
118
  reject
123
119
  ) {
120
+ function serializeTypedArray(tag, typedArray) {
121
+ typedArray = new Blob([
122
+ new Uint8Array(
123
+ typedArray.buffer,
124
+ typedArray.byteOffset,
125
+ typedArray.byteLength
126
+ )
127
+ ]);
128
+ var blobId = nextPartId++;
129
+ null === formData && (formData = new FormData());
130
+ formData.append(formFieldPrefix + blobId, typedArray);
131
+ return "$" + tag + blobId.toString(16);
132
+ }
133
+ function serializeBinaryReader(reader) {
134
+ function progress(entry) {
135
+ entry.done
136
+ ? ((entry = nextPartId++),
137
+ data.append(formFieldPrefix + entry, new Blob(buffer)),
138
+ data.append(
139
+ formFieldPrefix + streamId,
140
+ '"$o' + entry.toString(16) + '"'
141
+ ),
142
+ data.append(formFieldPrefix + streamId, "C"),
143
+ pendingParts--,
144
+ 0 === pendingParts && resolve(data))
145
+ : (buffer.push(entry.value),
146
+ reader.read(new Uint8Array(1024)).then(progress, reject));
147
+ }
148
+ null === formData && (formData = new FormData());
149
+ var data = formData;
150
+ pendingParts++;
151
+ var streamId = nextPartId++,
152
+ buffer = [];
153
+ reader.read(new Uint8Array(1024)).then(progress, reject);
154
+ return "$r" + streamId.toString(16);
155
+ }
156
+ function serializeReader(reader) {
157
+ function progress(entry) {
158
+ if (entry.done)
159
+ data.append(formFieldPrefix + streamId, "C"),
160
+ pendingParts--,
161
+ 0 === pendingParts && resolve(data);
162
+ else
163
+ try {
164
+ var partJSON = JSON.stringify(entry.value, resolveToJSON);
165
+ data.append(formFieldPrefix + streamId, partJSON);
166
+ reader.read().then(progress, reject);
167
+ } catch (x) {
168
+ reject(x);
169
+ }
170
+ }
171
+ null === formData && (formData = new FormData());
172
+ var data = formData;
173
+ pendingParts++;
174
+ var streamId = nextPartId++;
175
+ reader.read().then(progress, reject);
176
+ return "$R" + streamId.toString(16);
177
+ }
178
+ function serializeReadableStream(stream) {
179
+ try {
180
+ var binaryReader = stream.getReader({ mode: "byob" });
181
+ } catch (x) {
182
+ return serializeReader(stream.getReader());
183
+ }
184
+ return serializeBinaryReader(binaryReader);
185
+ }
186
+ function serializeAsyncIterable(iterable, iterator) {
187
+ function progress(entry) {
188
+ if (entry.done) {
189
+ if (void 0 === entry.value)
190
+ data.append(formFieldPrefix + streamId, "C");
191
+ else
192
+ try {
193
+ var partJSON = JSON.stringify(entry.value, resolveToJSON);
194
+ data.append(formFieldPrefix + streamId, "C" + partJSON);
195
+ } catch (x) {
196
+ reject(x);
197
+ return;
198
+ }
199
+ pendingParts--;
200
+ 0 === pendingParts && resolve(data);
201
+ } else
202
+ try {
203
+ var partJSON$22 = JSON.stringify(entry.value, resolveToJSON);
204
+ data.append(formFieldPrefix + streamId, partJSON$22);
205
+ iterator.next().then(progress, reject);
206
+ } catch (x$23) {
207
+ reject(x$23);
208
+ }
209
+ }
210
+ null === formData && (formData = new FormData());
211
+ var data = formData;
212
+ pendingParts++;
213
+ var streamId = nextPartId++;
214
+ iterable = iterable === iterator;
215
+ iterator.next().then(progress, reject);
216
+ return "$" + (iterable ? "x" : "X") + streamId.toString(16);
217
+ }
124
218
  function resolveToJSON(key, value) {
125
219
  if (null === value) return null;
126
220
  if ("object" === typeof value) {
127
221
  switch (value.$$typeof) {
128
222
  case REACT_ELEMENT_TYPE:
129
- if (void 0 === temporaryReferences)
130
- throw Error(
131
- "React Element cannot be passed to Server Functions from the Client without a temporary reference set. Pass a TemporaryReferenceSet to the options."
132
- );
133
- return (
134
- "$T" +
135
- writeTemporaryReference(temporaryReferences, value).toString(16)
223
+ if (void 0 !== temporaryReferences && -1 === key.indexOf(":")) {
224
+ var parentReference = writtenObjects.get(this);
225
+ if (void 0 !== parentReference)
226
+ return (
227
+ temporaryReferences.set(parentReference + ":" + key, value),
228
+ "$T"
229
+ );
230
+ }
231
+ throw Error(
232
+ "React Element cannot be passed to Server Functions from the Client without a temporary reference set. Pass a TemporaryReferenceSet to the options."
136
233
  );
137
234
  case REACT_LAZY_TYPE:
138
- key = value._payload;
235
+ parentReference = value._payload;
139
236
  var init = value._init;
140
237
  null === formData && (formData = new FormData());
141
238
  pendingParts++;
142
239
  try {
143
- var resolvedModel = init(key),
240
+ var resolvedModel = init(parentReference),
144
241
  lazyId = nextPartId++,
145
- partJSON = JSON.stringify(resolvedModel, resolveToJSON);
242
+ partJSON = serializeModel(resolvedModel, lazyId);
146
243
  formData.append(formFieldPrefix + lazyId, partJSON);
147
244
  return "$" + lazyId.toString(16);
148
245
  } catch (x) {
@@ -152,20 +249,20 @@ function processReply(
152
249
  "function" === typeof x.then
153
250
  ) {
154
251
  pendingParts++;
155
- var lazyId$21 = nextPartId++;
156
- resolvedModel = function () {
252
+ var lazyId$24 = nextPartId++;
253
+ parentReference = function () {
157
254
  try {
158
- var partJSON$22 = JSON.stringify(value, resolveToJSON),
159
- data$23 = formData;
160
- data$23.append(formFieldPrefix + lazyId$21, partJSON$22);
255
+ var partJSON$25 = serializeModel(value, lazyId$24),
256
+ data$26 = formData;
257
+ data$26.append(formFieldPrefix + lazyId$24, partJSON$25);
161
258
  pendingParts--;
162
- 0 === pendingParts && resolve(data$23);
259
+ 0 === pendingParts && resolve(data$26);
163
260
  } catch (reason) {
164
261
  reject(reason);
165
262
  }
166
263
  };
167
- x.then(resolvedModel, resolvedModel);
168
- return "$" + lazyId$21.toString(16);
264
+ x.then(parentReference, parentReference);
265
+ return "$" + lazyId$24.toString(16);
169
266
  }
170
267
  reject(x);
171
268
  return null;
@@ -179,9 +276,9 @@ function processReply(
179
276
  var promiseId = nextPartId++;
180
277
  value.then(function (partValue) {
181
278
  try {
182
- var partJSON$25 = JSON.stringify(partValue, resolveToJSON);
279
+ var partJSON$28 = serializeModel(partValue, promiseId);
183
280
  partValue = formData;
184
- partValue.append(formFieldPrefix + promiseId, partJSON$25);
281
+ partValue.append(formFieldPrefix + promiseId, partJSON$28);
185
282
  pendingParts--;
186
283
  0 === pendingParts && resolve(partValue);
187
284
  } catch (reason) {
@@ -190,97 +287,154 @@ function processReply(
190
287
  }, reject);
191
288
  return "$@" + promiseId.toString(16);
192
289
  }
290
+ parentReference = writtenObjects.get(value);
291
+ if (void 0 !== parentReference)
292
+ if (modelRoot === value) modelRoot = null;
293
+ else return parentReference;
294
+ else
295
+ -1 === key.indexOf(":") &&
296
+ ((parentReference = writtenObjects.get(this)),
297
+ void 0 !== parentReference &&
298
+ ((key = parentReference + ":" + key),
299
+ writtenObjects.set(value, key),
300
+ void 0 !== temporaryReferences &&
301
+ temporaryReferences.set(key, value)));
193
302
  if (isArrayImpl(value)) return value;
194
303
  if (value instanceof FormData) {
195
304
  null === formData && (formData = new FormData());
196
- var data$27 = formData;
197
- resolvedModel = nextPartId++;
198
- var prefix = formFieldPrefix + resolvedModel + "_";
305
+ var data$32 = formData;
306
+ key = nextPartId++;
307
+ var prefix = formFieldPrefix + key + "_";
199
308
  value.forEach(function (originalValue, originalKey) {
200
- data$27.append(prefix + originalKey, originalValue);
309
+ data$32.append(prefix + originalKey, originalValue);
201
310
  });
202
- return "$K" + resolvedModel.toString(16);
311
+ return "$K" + key.toString(16);
203
312
  }
204
313
  if (value instanceof Map)
205
314
  return (
206
- (resolvedModel = JSON.stringify(Array.from(value), resolveToJSON)),
315
+ (key = nextPartId++),
316
+ (parentReference = serializeModel(Array.from(value), key)),
207
317
  null === formData && (formData = new FormData()),
208
- (lazyId = nextPartId++),
209
- formData.append(formFieldPrefix + lazyId, resolvedModel),
210
- "$Q" + lazyId.toString(16)
318
+ formData.append(formFieldPrefix + key, parentReference),
319
+ "$Q" + key.toString(16)
211
320
  );
212
321
  if (value instanceof Set)
213
322
  return (
214
- (resolvedModel = JSON.stringify(Array.from(value), resolveToJSON)),
323
+ (key = nextPartId++),
324
+ (parentReference = serializeModel(Array.from(value), key)),
325
+ null === formData && (formData = new FormData()),
326
+ formData.append(formFieldPrefix + key, parentReference),
327
+ "$W" + key.toString(16)
328
+ );
329
+ if (value instanceof ArrayBuffer)
330
+ return (
331
+ (key = new Blob([value])),
332
+ (parentReference = nextPartId++),
215
333
  null === formData && (formData = new FormData()),
216
- (lazyId = nextPartId++),
217
- formData.append(formFieldPrefix + lazyId, resolvedModel),
218
- "$W" + lazyId.toString(16)
334
+ formData.append(formFieldPrefix + parentReference, key),
335
+ "$A" + parentReference.toString(16)
219
336
  );
220
- if ((resolvedModel = getIteratorFn(value)))
337
+ if (value instanceof Int8Array) return serializeTypedArray("O", value);
338
+ if (value instanceof Uint8Array) return serializeTypedArray("o", value);
339
+ if (value instanceof Uint8ClampedArray)
340
+ return serializeTypedArray("U", value);
341
+ if (value instanceof Int16Array) return serializeTypedArray("S", value);
342
+ if (value instanceof Uint16Array) return serializeTypedArray("s", value);
343
+ if (value instanceof Int32Array) return serializeTypedArray("L", value);
344
+ if (value instanceof Uint32Array) return serializeTypedArray("l", value);
345
+ if (value instanceof Float32Array) return serializeTypedArray("G", value);
346
+ if (value instanceof Float64Array) return serializeTypedArray("g", value);
347
+ if (value instanceof BigInt64Array)
348
+ return serializeTypedArray("M", value);
349
+ if (value instanceof BigUint64Array)
350
+ return serializeTypedArray("m", value);
351
+ if (value instanceof DataView) return serializeTypedArray("V", value);
352
+ if ("function" === typeof Blob && value instanceof Blob)
221
353
  return (
222
- (resolvedModel = resolvedModel.call(value)),
223
- resolvedModel === value
224
- ? ((resolvedModel = JSON.stringify(
225
- Array.from(resolvedModel),
226
- resolveToJSON
354
+ null === formData && (formData = new FormData()),
355
+ (key = nextPartId++),
356
+ formData.append(formFieldPrefix + key, value),
357
+ "$B" + key.toString(16)
358
+ );
359
+ if ((key = getIteratorFn(value)))
360
+ return (
361
+ (parentReference = key.call(value)),
362
+ parentReference === value
363
+ ? ((key = nextPartId++),
364
+ (parentReference = serializeModel(
365
+ Array.from(parentReference),
366
+ key
227
367
  )),
228
368
  null === formData && (formData = new FormData()),
229
- (lazyId = nextPartId++),
230
- formData.append(formFieldPrefix + lazyId, resolvedModel),
231
- "$i" + lazyId.toString(16))
232
- : Array.from(resolvedModel)
369
+ formData.append(formFieldPrefix + key, parentReference),
370
+ "$i" + key.toString(16))
371
+ : Array.from(parentReference)
233
372
  );
234
- resolvedModel = getPrototypeOf(value);
235
373
  if (
236
- resolvedModel !== ObjectPrototype &&
237
- (null === resolvedModel || null !== getPrototypeOf(resolvedModel))
374
+ "function" === typeof ReadableStream &&
375
+ value instanceof ReadableStream
376
+ )
377
+ return serializeReadableStream(value);
378
+ key = value[ASYNC_ITERATOR];
379
+ if ("function" === typeof key)
380
+ return serializeAsyncIterable(value, key.call(value));
381
+ key = getPrototypeOf(value);
382
+ if (
383
+ key !== ObjectPrototype &&
384
+ (null === key || null !== getPrototypeOf(key))
238
385
  ) {
239
386
  if (void 0 === temporaryReferences)
240
387
  throw Error(
241
388
  "Only plain objects, and a few built-ins, can be passed to Server Actions. Classes or null prototypes are not supported."
242
389
  );
243
- return (
244
- "$T" +
245
- writeTemporaryReference(temporaryReferences, value).toString(16)
246
- );
390
+ return "$T";
247
391
  }
248
392
  return value;
249
393
  }
250
394
  if ("string" === typeof value) {
251
395
  if ("Z" === value[value.length - 1] && this[key] instanceof Date)
252
396
  return "$D" + value;
253
- resolvedModel = "$" === value[0] ? "$" + value : value;
254
- return resolvedModel;
397
+ key = "$" === value[0] ? "$" + value : value;
398
+ return key;
255
399
  }
256
400
  if ("boolean" === typeof value) return value;
257
401
  if ("number" === typeof value) return serializeNumber(value);
258
402
  if ("undefined" === typeof value) return "$undefined";
259
403
  if ("function" === typeof value) {
260
- resolvedModel = knownServerReferences.get(value);
261
- if (void 0 !== resolvedModel)
404
+ parentReference = knownServerReferences.get(value);
405
+ if (void 0 !== parentReference)
262
406
  return (
263
- (resolvedModel = JSON.stringify(resolvedModel, resolveToJSON)),
407
+ (key = JSON.stringify(parentReference, resolveToJSON)),
264
408
  null === formData && (formData = new FormData()),
265
- (lazyId = nextPartId++),
266
- formData.set(formFieldPrefix + lazyId, resolvedModel),
267
- "$F" + lazyId.toString(16)
409
+ (parentReference = nextPartId++),
410
+ formData.set(formFieldPrefix + parentReference, key),
411
+ "$F" + parentReference.toString(16)
268
412
  );
269
- if (void 0 === temporaryReferences)
270
- throw Error(
271
- "Client Functions cannot be passed directly to Server Functions. Only Functions passed from the Server can be passed back again."
413
+ if (
414
+ void 0 !== temporaryReferences &&
415
+ -1 === key.indexOf(":") &&
416
+ ((parentReference = writtenObjects.get(this)),
417
+ void 0 !== parentReference)
418
+ )
419
+ return (
420
+ temporaryReferences.set(parentReference + ":" + key, value), "$T"
272
421
  );
273
- return (
274
- "$T" + writeTemporaryReference(temporaryReferences, value).toString(16)
422
+ throw Error(
423
+ "Client Functions cannot be passed directly to Server Functions. Only Functions passed from the Server can be passed back again."
275
424
  );
276
425
  }
277
426
  if ("symbol" === typeof value) {
278
- if (void 0 === temporaryReferences)
279
- throw Error(
280
- "Symbols cannot be passed to a Server Function without a temporary reference set. Pass a TemporaryReferenceSet to the options."
427
+ if (
428
+ void 0 !== temporaryReferences &&
429
+ -1 === key.indexOf(":") &&
430
+ ((parentReference = writtenObjects.get(this)),
431
+ void 0 !== parentReference)
432
+ )
433
+ return (
434
+ temporaryReferences.set(parentReference + ":" + key, value), "$T"
281
435
  );
282
- return (
283
- "$T" + writeTemporaryReference(temporaryReferences, value).toString(16)
436
+ throw Error(
437
+ "Symbols cannot be passed to a Server Function without a temporary reference set. Pass a TemporaryReferenceSet to the options."
284
438
  );
285
439
  }
286
440
  if ("bigint" === typeof value) return "$n" + value.toString(10);
@@ -290,10 +444,21 @@ function processReply(
290
444
  " is not supported as an argument to a Server Function."
291
445
  );
292
446
  }
447
+ function serializeModel(model, id) {
448
+ "object" === typeof model &&
449
+ null !== model &&
450
+ ((id = "$" + id.toString(16)),
451
+ writtenObjects.set(model, id),
452
+ void 0 !== temporaryReferences && temporaryReferences.set(id, model));
453
+ modelRoot = model;
454
+ return JSON.stringify(model, resolveToJSON);
455
+ }
293
456
  var nextPartId = 1,
294
457
  pendingParts = 0,
295
- formData = null;
296
- root = JSON.stringify(root, resolveToJSON);
458
+ formData = null,
459
+ writtenObjects = new WeakMap(),
460
+ modelRoot = root;
461
+ root = serializeModel(root, 0);
297
462
  null === formData
298
463
  ? resolve(root)
299
464
  : (formData.set(formFieldPrefix + "0", root),
@@ -352,6 +517,9 @@ function readChunk(chunk) {
352
517
  throw chunk.reason;
353
518
  }
354
519
  }
520
+ function createPendingChunk(response) {
521
+ return new Chunk("pending", null, null, response);
522
+ }
355
523
  function wakeChunk(listeners, value) {
356
524
  for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value);
357
525
  }
@@ -371,13 +539,41 @@ function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) {
371
539
  }
372
540
  }
373
541
  function triggerErrorOnChunk(chunk, error) {
374
- if ("pending" === chunk.status || "blocked" === chunk.status) {
542
+ if ("pending" !== chunk.status && "blocked" !== chunk.status)
543
+ chunk.reason.error(error);
544
+ else {
375
545
  var listeners = chunk.reason;
376
546
  chunk.status = "rejected";
377
547
  chunk.reason = error;
378
548
  null !== listeners && wakeChunk(listeners, error);
379
549
  }
380
550
  }
551
+ function createResolvedIteratorResultChunk(response, value, done) {
552
+ return new Chunk(
553
+ "resolved_model",
554
+ (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}",
555
+ null,
556
+ response
557
+ );
558
+ }
559
+ function resolveIteratorResultChunk(chunk, value, done) {
560
+ resolveModelChunk(
561
+ chunk,
562
+ (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}"
563
+ );
564
+ }
565
+ function resolveModelChunk(chunk, value) {
566
+ if ("pending" !== chunk.status) chunk.reason.enqueueModel(value);
567
+ else {
568
+ var resolveListeners = chunk.value,
569
+ rejectListeners = chunk.reason;
570
+ chunk.status = "resolved_model";
571
+ chunk.value = value;
572
+ null !== resolveListeners &&
573
+ (initializeModelChunk(chunk),
574
+ wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners));
575
+ }
576
+ }
381
577
  function resolveModuleChunk(chunk, value) {
382
578
  if ("pending" === chunk.status || "blocked" === chunk.status) {
383
579
  var resolveListeners = chunk.value,
@@ -453,12 +649,18 @@ function reportGlobalError(response, error) {
453
649
  function getChunk(response, id) {
454
650
  var chunks = response._chunks,
455
651
  chunk = chunks.get(id);
456
- chunk ||
457
- ((chunk = new Chunk("pending", null, null, response)),
458
- chunks.set(id, chunk));
652
+ chunk || ((chunk = createPendingChunk(response)), chunks.set(id, chunk));
459
653
  return chunk;
460
654
  }
461
- function createModelResolver(chunk, parentObject, key, cyclic, response, map) {
655
+ function createModelResolver(
656
+ chunk,
657
+ parentObject,
658
+ key,
659
+ cyclic,
660
+ response,
661
+ map,
662
+ path
663
+ ) {
462
664
  if (initializingChunkBlockedModel) {
463
665
  var blocked = initializingChunkBlockedModel;
464
666
  cyclic || blocked.deps++;
@@ -468,6 +670,7 @@ function createModelResolver(chunk, parentObject, key, cyclic, response, map) {
468
670
  value: null
469
671
  };
470
672
  return function (value) {
673
+ for (var i = 1; i < path.length; i++) value = value[path[i]];
471
674
  parentObject[key] = map(response, value);
472
675
  "" === key && null === blocked.value && (blocked.value = parentObject[key]);
473
676
  blocked.deps--;
@@ -500,7 +703,9 @@ function createServerReferenceProxy(response, metaData) {
500
703
  knownServerReferences.set(proxy, metaData);
501
704
  return proxy;
502
705
  }
503
- function getOutlinedModel(response, id, parentObject, key, map) {
706
+ function getOutlinedModel(response, reference, parentObject, key, map) {
707
+ reference = reference.split(":");
708
+ var id = parseInt(reference[0], 16);
504
709
  id = getChunk(response, id);
505
710
  switch (id.status) {
506
711
  case "resolved_model":
@@ -511,7 +716,10 @@ function getOutlinedModel(response, id, parentObject, key, map) {
511
716
  }
512
717
  switch (id.status) {
513
718
  case "fulfilled":
514
- return map(response, id.value);
719
+ parentObject = id.value;
720
+ for (key = 1; key < reference.length; key++)
721
+ parentObject = parentObject[reference[key]];
722
+ return map(response, parentObject);
515
723
  case "pending":
516
724
  case "blocked":
517
725
  case "cyclic":
@@ -523,7 +731,8 @@ function getOutlinedModel(response, id, parentObject, key, map) {
523
731
  key,
524
732
  "cyclic" === id.status,
525
733
  response,
526
- map
734
+ map,
735
+ reference
527
736
  ),
528
737
  createModelReject(parentChunk)
529
738
  );
@@ -538,6 +747,9 @@ function createMap(response, model) {
538
747
  function createSet(response, model) {
539
748
  return new Set(model);
540
749
  }
750
+ function createBlob(response, model) {
751
+ return new Blob(model.slice(1), { type: model[0] });
752
+ }
541
753
  function createFormData(response, model) {
542
754
  response = new FormData();
543
755
  for (var i = 0; i < model.length; i++)
@@ -570,7 +782,7 @@ function parseModelString(response, parentObject, key, value) {
570
782
  return Symbol.for(value.slice(2));
571
783
  case "F":
572
784
  return (
573
- (value = parseInt(value.slice(2), 16)),
785
+ (value = value.slice(2)),
574
786
  getOutlinedModel(
575
787
  response,
576
788
  value,
@@ -580,37 +792,36 @@ function parseModelString(response, parentObject, key, value) {
580
792
  )
581
793
  );
582
794
  case "T":
583
- parentObject = parseInt(value.slice(2), 16);
795
+ parentObject = "$" + value.slice(2);
584
796
  response = response._tempRefs;
585
797
  if (null == response)
586
798
  throw Error(
587
799
  "Missing a temporary reference set but the RSC response returned a temporary reference. Pass a temporaryReference option with the set that was used with the reply."
588
800
  );
589
- if (0 > parentObject || parentObject >= response.length)
590
- throw Error(
591
- "The RSC response contained a reference that doesn't exist in the temporary reference set. Always pass the matching set that was used to create the reply when parsing its response."
592
- );
593
- return response[parentObject];
801
+ return response.get(parentObject);
594
802
  case "Q":
595
803
  return (
596
- (value = parseInt(value.slice(2), 16)),
804
+ (value = value.slice(2)),
597
805
  getOutlinedModel(response, value, parentObject, key, createMap)
598
806
  );
599
807
  case "W":
600
808
  return (
601
- (value = parseInt(value.slice(2), 16)),
809
+ (value = value.slice(2)),
602
810
  getOutlinedModel(response, value, parentObject, key, createSet)
603
811
  );
604
812
  case "B":
605
- return;
813
+ return (
814
+ (value = value.slice(2)),
815
+ getOutlinedModel(response, value, parentObject, key, createBlob)
816
+ );
606
817
  case "K":
607
818
  return (
608
- (value = parseInt(value.slice(2), 16)),
819
+ (value = value.slice(2)),
609
820
  getOutlinedModel(response, value, parentObject, key, createFormData)
610
821
  );
611
822
  case "i":
612
823
  return (
613
- (value = parseInt(value.slice(2), 16)),
824
+ (value = value.slice(2)),
614
825
  getOutlinedModel(response, value, parentObject, key, extractIterator)
615
826
  );
616
827
  case "I":
@@ -627,7 +838,7 @@ function parseModelString(response, parentObject, key, value) {
627
838
  return BigInt(value.slice(2));
628
839
  default:
629
840
  return (
630
- (value = parseInt(value.slice(1), 16)),
841
+ (value = value.slice(1)),
631
842
  getOutlinedModel(response, value, parentObject, key, createModel)
632
843
  );
633
844
  }
@@ -639,6 +850,13 @@ function missingCall() {
639
850
  'Trying to call a function from "use server" but the callServer option was not implemented in your router runtime.'
640
851
  );
641
852
  }
853
+ function resolveBuffer(response, id, buffer) {
854
+ var chunks = response._chunks,
855
+ chunk = chunks.get(id);
856
+ chunk && "pending" !== chunk.status
857
+ ? chunk.reason.enqueueValue(buffer)
858
+ : chunks.set(id, new Chunk("fulfilled", buffer, null, response));
859
+ }
642
860
  function resolveModule(response, id, model) {
643
861
  var chunks = response._chunks,
644
862
  chunk = chunks.get(id);
@@ -667,6 +885,367 @@ function resolveModule(response, id, model) {
667
885
  new Chunk("resolved_module", clientReference, null, response)
668
886
  );
669
887
  }
888
+ function resolveStream(response, id, stream, controller) {
889
+ var chunks = response._chunks,
890
+ chunk = chunks.get(id);
891
+ chunk
892
+ ? "pending" === chunk.status &&
893
+ ((response = chunk.value),
894
+ (chunk.status = "fulfilled"),
895
+ (chunk.value = stream),
896
+ (chunk.reason = controller),
897
+ null !== response && wakeChunk(response, chunk.value))
898
+ : chunks.set(id, new Chunk("fulfilled", stream, controller, response));
899
+ }
900
+ function startReadableStream(response, id, type) {
901
+ var controller = null;
902
+ type = new ReadableStream({
903
+ type: type,
904
+ start: function (c) {
905
+ controller = c;
906
+ }
907
+ });
908
+ var previousBlockedChunk = null;
909
+ resolveStream(response, id, type, {
910
+ enqueueValue: function (value) {
911
+ null === previousBlockedChunk
912
+ ? controller.enqueue(value)
913
+ : previousBlockedChunk.then(function () {
914
+ controller.enqueue(value);
915
+ });
916
+ },
917
+ enqueueModel: function (json) {
918
+ if (null === previousBlockedChunk) {
919
+ var chunk = new Chunk("resolved_model", json, null, response);
920
+ initializeModelChunk(chunk);
921
+ "fulfilled" === chunk.status
922
+ ? controller.enqueue(chunk.value)
923
+ : (chunk.then(
924
+ function (v) {
925
+ return controller.enqueue(v);
926
+ },
927
+ function (e) {
928
+ return controller.error(e);
929
+ }
930
+ ),
931
+ (previousBlockedChunk = chunk));
932
+ } else {
933
+ chunk = previousBlockedChunk;
934
+ var chunk$50 = createPendingChunk(response);
935
+ chunk$50.then(
936
+ function (v) {
937
+ return controller.enqueue(v);
938
+ },
939
+ function (e) {
940
+ return controller.error(e);
941
+ }
942
+ );
943
+ previousBlockedChunk = chunk$50;
944
+ chunk.then(function () {
945
+ previousBlockedChunk === chunk$50 && (previousBlockedChunk = null);
946
+ resolveModelChunk(chunk$50, json);
947
+ });
948
+ }
949
+ },
950
+ close: function () {
951
+ if (null === previousBlockedChunk) controller.close();
952
+ else {
953
+ var blockedChunk = previousBlockedChunk;
954
+ previousBlockedChunk = null;
955
+ blockedChunk.then(function () {
956
+ return controller.close();
957
+ });
958
+ }
959
+ },
960
+ error: function (error) {
961
+ if (null === previousBlockedChunk) controller.error(error);
962
+ else {
963
+ var blockedChunk = previousBlockedChunk;
964
+ previousBlockedChunk = null;
965
+ blockedChunk.then(function () {
966
+ return controller.error(error);
967
+ });
968
+ }
969
+ }
970
+ });
971
+ }
972
+ function asyncIterator() {
973
+ return this;
974
+ }
975
+ function createIterator(next) {
976
+ next = { next: next };
977
+ next[ASYNC_ITERATOR] = asyncIterator;
978
+ return next;
979
+ }
980
+ function startAsyncIterable(response, id, iterator) {
981
+ var buffer = [],
982
+ closed = !1,
983
+ nextWriteIndex = 0,
984
+ $jscomp$compprop0 = {};
985
+ $jscomp$compprop0 =
986
+ (($jscomp$compprop0[ASYNC_ITERATOR] = function () {
987
+ var nextReadIndex = 0;
988
+ return createIterator(function (arg) {
989
+ if (void 0 !== arg)
990
+ throw Error(
991
+ "Values cannot be passed to next() of AsyncIterables passed to Client Components."
992
+ );
993
+ if (nextReadIndex === buffer.length) {
994
+ if (closed)
995
+ return new Chunk(
996
+ "fulfilled",
997
+ { done: !0, value: void 0 },
998
+ null,
999
+ response
1000
+ );
1001
+ buffer[nextReadIndex] = createPendingChunk(response);
1002
+ }
1003
+ return buffer[nextReadIndex++];
1004
+ });
1005
+ }),
1006
+ $jscomp$compprop0);
1007
+ resolveStream(
1008
+ response,
1009
+ id,
1010
+ iterator ? $jscomp$compprop0[ASYNC_ITERATOR]() : $jscomp$compprop0,
1011
+ {
1012
+ enqueueValue: function (value) {
1013
+ if (nextWriteIndex === buffer.length)
1014
+ buffer[nextWriteIndex] = new Chunk(
1015
+ "fulfilled",
1016
+ { done: !1, value: value },
1017
+ null,
1018
+ response
1019
+ );
1020
+ else {
1021
+ var chunk = buffer[nextWriteIndex],
1022
+ resolveListeners = chunk.value,
1023
+ rejectListeners = chunk.reason;
1024
+ chunk.status = "fulfilled";
1025
+ chunk.value = { done: !1, value: value };
1026
+ null !== resolveListeners &&
1027
+ wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners);
1028
+ }
1029
+ nextWriteIndex++;
1030
+ },
1031
+ enqueueModel: function (value) {
1032
+ nextWriteIndex === buffer.length
1033
+ ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
1034
+ response,
1035
+ value,
1036
+ !1
1037
+ ))
1038
+ : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !1);
1039
+ nextWriteIndex++;
1040
+ },
1041
+ close: function (value) {
1042
+ closed = !0;
1043
+ nextWriteIndex === buffer.length
1044
+ ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
1045
+ response,
1046
+ value,
1047
+ !0
1048
+ ))
1049
+ : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !0);
1050
+ for (nextWriteIndex++; nextWriteIndex < buffer.length; )
1051
+ resolveIteratorResultChunk(
1052
+ buffer[nextWriteIndex++],
1053
+ '"$undefined"',
1054
+ !0
1055
+ );
1056
+ },
1057
+ error: function (error) {
1058
+ closed = !0;
1059
+ for (
1060
+ nextWriteIndex === buffer.length &&
1061
+ (buffer[nextWriteIndex] = createPendingChunk(response));
1062
+ nextWriteIndex < buffer.length;
1063
+
1064
+ )
1065
+ triggerErrorOnChunk(buffer[nextWriteIndex++], error);
1066
+ }
1067
+ }
1068
+ );
1069
+ }
1070
+ function mergeBuffer(buffer, lastChunk) {
1071
+ for (var l = buffer.length, byteLength = lastChunk.length, i = 0; i < l; i++)
1072
+ byteLength += buffer[i].byteLength;
1073
+ byteLength = new Uint8Array(byteLength);
1074
+ for (var i$51 = (i = 0); i$51 < l; i$51++) {
1075
+ var chunk = buffer[i$51];
1076
+ byteLength.set(chunk, i);
1077
+ i += chunk.byteLength;
1078
+ }
1079
+ byteLength.set(lastChunk, i);
1080
+ return byteLength;
1081
+ }
1082
+ function resolveTypedArray(
1083
+ response,
1084
+ id,
1085
+ buffer,
1086
+ lastChunk,
1087
+ constructor,
1088
+ bytesPerElement
1089
+ ) {
1090
+ buffer =
1091
+ 0 === buffer.length && 0 === lastChunk.byteOffset % bytesPerElement
1092
+ ? lastChunk
1093
+ : mergeBuffer(buffer, lastChunk);
1094
+ constructor = new constructor(
1095
+ buffer.buffer,
1096
+ buffer.byteOffset,
1097
+ buffer.byteLength / bytesPerElement
1098
+ );
1099
+ resolveBuffer(response, id, constructor);
1100
+ }
1101
+ function processFullRow(response, id, tag, buffer, chunk) {
1102
+ switch (tag) {
1103
+ case 65:
1104
+ resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer);
1105
+ return;
1106
+ case 79:
1107
+ resolveTypedArray(response, id, buffer, chunk, Int8Array, 1);
1108
+ return;
1109
+ case 111:
1110
+ resolveBuffer(
1111
+ response,
1112
+ id,
1113
+ 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk)
1114
+ );
1115
+ return;
1116
+ case 85:
1117
+ resolveTypedArray(response, id, buffer, chunk, Uint8ClampedArray, 1);
1118
+ return;
1119
+ case 83:
1120
+ resolveTypedArray(response, id, buffer, chunk, Int16Array, 2);
1121
+ return;
1122
+ case 115:
1123
+ resolveTypedArray(response, id, buffer, chunk, Uint16Array, 2);
1124
+ return;
1125
+ case 76:
1126
+ resolveTypedArray(response, id, buffer, chunk, Int32Array, 4);
1127
+ return;
1128
+ case 108:
1129
+ resolveTypedArray(response, id, buffer, chunk, Uint32Array, 4);
1130
+ return;
1131
+ case 71:
1132
+ resolveTypedArray(response, id, buffer, chunk, Float32Array, 4);
1133
+ return;
1134
+ case 103:
1135
+ resolveTypedArray(response, id, buffer, chunk, Float64Array, 8);
1136
+ return;
1137
+ case 77:
1138
+ resolveTypedArray(response, id, buffer, chunk, BigInt64Array, 8);
1139
+ return;
1140
+ case 109:
1141
+ resolveTypedArray(response, id, buffer, chunk, BigUint64Array, 8);
1142
+ return;
1143
+ case 86:
1144
+ resolveTypedArray(response, id, buffer, chunk, DataView, 1);
1145
+ return;
1146
+ }
1147
+ for (
1148
+ var stringDecoder = response._stringDecoder, row = "", i = 0;
1149
+ i < buffer.length;
1150
+ i++
1151
+ )
1152
+ row += stringDecoder.decode(buffer[i], decoderOptions);
1153
+ row += stringDecoder.decode(chunk);
1154
+ switch (tag) {
1155
+ case 73:
1156
+ resolveModule(response, id, row);
1157
+ break;
1158
+ case 72:
1159
+ id = row[0];
1160
+ row = row.slice(1);
1161
+ response = JSON.parse(row, response._fromJSON);
1162
+ row = ReactDOMSharedInternals.d;
1163
+ switch (id) {
1164
+ case "D":
1165
+ row.D(response);
1166
+ break;
1167
+ case "C":
1168
+ "string" === typeof response
1169
+ ? row.C(response)
1170
+ : row.C(response[0], response[1]);
1171
+ break;
1172
+ case "L":
1173
+ id = response[0];
1174
+ tag = response[1];
1175
+ 3 === response.length ? row.L(id, tag, response[2]) : row.L(id, tag);
1176
+ break;
1177
+ case "m":
1178
+ "string" === typeof response
1179
+ ? row.m(response)
1180
+ : row.m(response[0], response[1]);
1181
+ break;
1182
+ case "X":
1183
+ "string" === typeof response
1184
+ ? row.X(response)
1185
+ : row.X(response[0], response[1]);
1186
+ break;
1187
+ case "S":
1188
+ "string" === typeof response
1189
+ ? row.S(response)
1190
+ : row.S(
1191
+ response[0],
1192
+ 0 === response[1] ? void 0 : response[1],
1193
+ 3 === response.length ? response[2] : void 0
1194
+ );
1195
+ break;
1196
+ case "M":
1197
+ "string" === typeof response
1198
+ ? row.M(response)
1199
+ : row.M(response[0], response[1]);
1200
+ }
1201
+ break;
1202
+ case 69:
1203
+ tag = JSON.parse(row).digest;
1204
+ row = Error(
1205
+ "An error occurred in the Server Components render. The specific message is omitted in production builds to avoid leaking sensitive details. A digest property is included on this error instance which may provide additional details about the nature of the error."
1206
+ );
1207
+ row.stack = "Error: " + row.message;
1208
+ row.digest = tag;
1209
+ tag = response._chunks;
1210
+ (buffer = tag.get(id))
1211
+ ? triggerErrorOnChunk(buffer, row)
1212
+ : tag.set(id, new Chunk("rejected", null, row, response));
1213
+ break;
1214
+ case 84:
1215
+ tag = response._chunks;
1216
+ (buffer = tag.get(id)) && "pending" !== buffer.status
1217
+ ? buffer.reason.enqueueValue(row)
1218
+ : tag.set(id, new Chunk("fulfilled", row, null, response));
1219
+ break;
1220
+ case 68:
1221
+ case 87:
1222
+ throw Error(
1223
+ "Failed to read a RSC payload created by a development version of React on the server while using a production version on the client. Always use matching versions on the server and the client."
1224
+ );
1225
+ case 82:
1226
+ startReadableStream(response, id, void 0);
1227
+ break;
1228
+ case 114:
1229
+ startReadableStream(response, id, "bytes");
1230
+ break;
1231
+ case 88:
1232
+ startAsyncIterable(response, id, !1);
1233
+ break;
1234
+ case 120:
1235
+ startAsyncIterable(response, id, !0);
1236
+ break;
1237
+ case 67:
1238
+ (response = response._chunks.get(id)) &&
1239
+ "fulfilled" === response.status &&
1240
+ response.reason.close("" === row ? '"$undefined"' : row);
1241
+ break;
1242
+ default:
1243
+ (tag = response._chunks),
1244
+ (buffer = tag.get(id))
1245
+ ? resolveModelChunk(buffer, row)
1246
+ : tag.set(id, new Chunk("resolved_model", row, null, response));
1247
+ }
1248
+ }
670
1249
  function createFromJSONCallback(response) {
671
1250
  return function (key, value) {
672
1251
  return "string" === typeof value
@@ -718,24 +1297,41 @@ function startReadingFromStream(response, stream) {
718
1297
  if (_ref.done) reportGlobalError(response, Error("Connection closed."));
719
1298
  else {
720
1299
  var i = 0,
721
- rowState = response._rowState,
722
- rowID = response._rowID,
723
- rowTag = response._rowTag,
724
- rowLength = response._rowLength;
725
- _ref = response._buffer;
726
- for (var chunkLength = value.length; i < chunkLength; ) {
1300
+ rowState = response._rowState;
1301
+ _ref = response._rowID;
1302
+ for (
1303
+ var rowTag = response._rowTag,
1304
+ rowLength = response._rowLength,
1305
+ buffer = response._buffer,
1306
+ chunkLength = value.length;
1307
+ i < chunkLength;
1308
+
1309
+ ) {
727
1310
  var lastIdx = -1;
728
1311
  switch (rowState) {
729
1312
  case 0:
730
1313
  lastIdx = value[i++];
731
1314
  58 === lastIdx
732
1315
  ? (rowState = 1)
733
- : (rowID =
734
- (rowID << 4) | (96 < lastIdx ? lastIdx - 87 : lastIdx - 48));
1316
+ : (_ref =
1317
+ (_ref << 4) | (96 < lastIdx ? lastIdx - 87 : lastIdx - 48));
735
1318
  continue;
736
1319
  case 1:
737
1320
  rowState = value[i];
738
- 84 === rowState
1321
+ 84 === rowState ||
1322
+ 65 === rowState ||
1323
+ 79 === rowState ||
1324
+ 111 === rowState ||
1325
+ 85 === rowState ||
1326
+ 83 === rowState ||
1327
+ 115 === rowState ||
1328
+ 76 === rowState ||
1329
+ 108 === rowState ||
1330
+ 71 === rowState ||
1331
+ 103 === rowState ||
1332
+ 77 === rowState ||
1333
+ 109 === rowState ||
1334
+ 86 === rowState
739
1335
  ? ((rowTag = rowState), (rowState = 2), i++)
740
1336
  : (64 < rowState && 91 > rowState) ||
741
1337
  114 === rowState ||
@@ -758,120 +1354,22 @@ function startReadingFromStream(response, stream) {
758
1354
  (lastIdx = i + rowLength), lastIdx > value.length && (lastIdx = -1);
759
1355
  }
760
1356
  var offset = value.byteOffset + i;
761
- if (-1 < lastIdx) {
762
- i = new Uint8Array(value.buffer, offset, lastIdx - i);
763
- rowLength = response;
764
- offset = rowTag;
765
- var stringDecoder = rowLength._stringDecoder;
766
- rowTag = "";
767
- for (var i$jscomp$0 = 0; i$jscomp$0 < _ref.length; i$jscomp$0++)
768
- rowTag += stringDecoder.decode(_ref[i$jscomp$0], decoderOptions);
769
- rowTag += stringDecoder.decode(i);
770
- switch (offset) {
771
- case 73:
772
- resolveModule(rowLength, rowID, rowTag);
773
- break;
774
- case 72:
775
- rowID = rowTag[0];
776
- rowTag = rowTag.slice(1);
777
- rowLength = JSON.parse(rowTag, rowLength._fromJSON);
778
- rowTag = ReactDOMSharedInternals.d;
779
- switch (rowID) {
780
- case "D":
781
- rowTag.D(rowLength);
782
- break;
783
- case "C":
784
- "string" === typeof rowLength
785
- ? rowTag.C(rowLength)
786
- : rowTag.C(rowLength[0], rowLength[1]);
787
- break;
788
- case "L":
789
- rowID = rowLength[0];
790
- i = rowLength[1];
791
- 3 === rowLength.length
792
- ? rowTag.L(rowID, i, rowLength[2])
793
- : rowTag.L(rowID, i);
794
- break;
795
- case "m":
796
- "string" === typeof rowLength
797
- ? rowTag.m(rowLength)
798
- : rowTag.m(rowLength[0], rowLength[1]);
799
- break;
800
- case "X":
801
- "string" === typeof rowLength
802
- ? rowTag.X(rowLength)
803
- : rowTag.X(rowLength[0], rowLength[1]);
804
- break;
805
- case "S":
806
- "string" === typeof rowLength
807
- ? rowTag.S(rowLength)
808
- : rowTag.S(
809
- rowLength[0],
810
- 0 === rowLength[1] ? void 0 : rowLength[1],
811
- 3 === rowLength.length ? rowLength[2] : void 0
812
- );
813
- break;
814
- case "M":
815
- "string" === typeof rowLength
816
- ? rowTag.M(rowLength)
817
- : rowTag.M(rowLength[0], rowLength[1]);
818
- }
819
- break;
820
- case 69:
821
- rowTag = JSON.parse(rowTag);
822
- i = rowTag.digest;
823
- rowTag = Error(
824
- "An error occurred in the Server Components render. The specific message is omitted in production builds to avoid leaking sensitive details. A digest property is included on this error instance which may provide additional details about the nature of the error."
825
- );
826
- rowTag.stack = "Error: " + rowTag.message;
827
- rowTag.digest = i;
828
- i = rowLength._chunks;
829
- (offset = i.get(rowID))
830
- ? triggerErrorOnChunk(offset, rowTag)
831
- : i.set(rowID, new Chunk("rejected", null, rowTag, rowLength));
832
- break;
833
- case 84:
834
- rowLength._chunks.set(
835
- rowID,
836
- new Chunk("fulfilled", rowTag, null, rowLength)
837
- );
838
- break;
839
- case 68:
840
- case 87:
841
- throw Error(
842
- "Failed to read a RSC payload created by a development version of React on the server while using a production version on the client. Always use matching versions on the server and the client."
843
- );
844
- default:
845
- (i = rowLength._chunks),
846
- (offset = i.get(rowID))
847
- ? ((rowLength = offset),
848
- (rowID = rowTag),
849
- "pending" === rowLength.status &&
850
- ((rowTag = rowLength.value),
851
- (i = rowLength.reason),
852
- (rowLength.status = "resolved_model"),
853
- (rowLength.value = rowID),
854
- null !== rowTag &&
855
- (initializeModelChunk(rowLength),
856
- wakeChunkIfInitialized(rowLength, rowTag, i))))
857
- : i.set(
858
- rowID,
859
- new Chunk("resolved_model", rowTag, null, rowLength)
860
- );
861
- }
862
- i = lastIdx;
863
- 3 === rowState && i++;
864
- rowLength = rowID = rowTag = rowState = 0;
865
- _ref.length = 0;
866
- } else {
1357
+ if (-1 < lastIdx)
1358
+ (rowLength = new Uint8Array(value.buffer, offset, lastIdx - i)),
1359
+ processFullRow(response, _ref, rowTag, buffer, rowLength),
1360
+ (i = lastIdx),
1361
+ 3 === rowState && i++,
1362
+ (rowLength = _ref = rowTag = rowState = 0),
1363
+ (buffer.length = 0);
1364
+ else {
867
1365
  value = new Uint8Array(value.buffer, offset, value.byteLength - i);
868
- _ref.push(value);
1366
+ buffer.push(value);
869
1367
  rowLength -= value.byteLength;
870
1368
  break;
871
1369
  }
872
1370
  }
873
1371
  response._rowState = rowState;
874
- response._rowID = rowID;
1372
+ response._rowID = _ref;
875
1373
  response._rowTag = rowTag;
876
1374
  response._rowLength = rowLength;
877
1375
  return reader.read().then(progress).catch(error);
@@ -909,7 +1407,7 @@ exports.createServerReference = function (id, callServer) {
909
1407
  return proxy;
910
1408
  };
911
1409
  exports.createTemporaryReferenceSet = function () {
912
- return [];
1410
+ return new Map();
913
1411
  };
914
1412
  exports.encodeReply = function (value, options) {
915
1413
  return new Promise(function (resolve, reject) {