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.
@@ -106,14 +106,10 @@ function getIteratorFn(maybeIterable) {
106
106
  maybeIterable["@@iterator"];
107
107
  return "function" === typeof maybeIterable ? maybeIterable : null;
108
108
  }
109
- var isArrayImpl = Array.isArray,
110
- getPrototypeOf = Object.getPrototypeOf;
111
- function writeTemporaryReference(set, object) {
112
- var newId = set.length;
113
- set.push(object);
114
- return newId;
115
- }
116
- var ObjectPrototype = Object.prototype,
109
+ var ASYNC_ITERATOR = Symbol.asyncIterator,
110
+ isArrayImpl = Array.isArray,
111
+ getPrototypeOf = Object.getPrototypeOf,
112
+ ObjectPrototype = Object.prototype,
117
113
  knownServerReferences = new WeakMap();
118
114
  function serializeNumber(number) {
119
115
  return Number.isFinite(number)
@@ -133,28 +129,129 @@ function processReply(
133
129
  resolve,
134
130
  reject
135
131
  ) {
132
+ function serializeTypedArray(tag, typedArray) {
133
+ typedArray = new Blob([
134
+ new Uint8Array(
135
+ typedArray.buffer,
136
+ typedArray.byteOffset,
137
+ typedArray.byteLength
138
+ )
139
+ ]);
140
+ var blobId = nextPartId++;
141
+ null === formData && (formData = new FormData());
142
+ formData.append(formFieldPrefix + blobId, typedArray);
143
+ return "$" + tag + blobId.toString(16);
144
+ }
145
+ function serializeBinaryReader(reader) {
146
+ function progress(entry) {
147
+ entry.done
148
+ ? ((entry = nextPartId++),
149
+ data.append(formFieldPrefix + entry, new Blob(buffer)),
150
+ data.append(
151
+ formFieldPrefix + streamId,
152
+ '"$o' + entry.toString(16) + '"'
153
+ ),
154
+ data.append(formFieldPrefix + streamId, "C"),
155
+ pendingParts--,
156
+ 0 === pendingParts && resolve(data))
157
+ : (buffer.push(entry.value),
158
+ reader.read(new Uint8Array(1024)).then(progress, reject));
159
+ }
160
+ null === formData && (formData = new FormData());
161
+ var data = formData;
162
+ pendingParts++;
163
+ var streamId = nextPartId++,
164
+ buffer = [];
165
+ reader.read(new Uint8Array(1024)).then(progress, reject);
166
+ return "$r" + streamId.toString(16);
167
+ }
168
+ function serializeReader(reader) {
169
+ function progress(entry) {
170
+ if (entry.done)
171
+ data.append(formFieldPrefix + streamId, "C"),
172
+ pendingParts--,
173
+ 0 === pendingParts && resolve(data);
174
+ else
175
+ try {
176
+ var partJSON = JSON.stringify(entry.value, resolveToJSON);
177
+ data.append(formFieldPrefix + streamId, partJSON);
178
+ reader.read().then(progress, reject);
179
+ } catch (x) {
180
+ reject(x);
181
+ }
182
+ }
183
+ null === formData && (formData = new FormData());
184
+ var data = formData;
185
+ pendingParts++;
186
+ var streamId = nextPartId++;
187
+ reader.read().then(progress, reject);
188
+ return "$R" + streamId.toString(16);
189
+ }
190
+ function serializeReadableStream(stream) {
191
+ try {
192
+ var binaryReader = stream.getReader({ mode: "byob" });
193
+ } catch (x) {
194
+ return serializeReader(stream.getReader());
195
+ }
196
+ return serializeBinaryReader(binaryReader);
197
+ }
198
+ function serializeAsyncIterable(iterable, iterator) {
199
+ function progress(entry) {
200
+ if (entry.done) {
201
+ if (void 0 === entry.value)
202
+ data.append(formFieldPrefix + streamId, "C");
203
+ else
204
+ try {
205
+ var partJSON = JSON.stringify(entry.value, resolveToJSON);
206
+ data.append(formFieldPrefix + streamId, "C" + partJSON);
207
+ } catch (x) {
208
+ reject(x);
209
+ return;
210
+ }
211
+ pendingParts--;
212
+ 0 === pendingParts && resolve(data);
213
+ } else
214
+ try {
215
+ var partJSON$22 = JSON.stringify(entry.value, resolveToJSON);
216
+ data.append(formFieldPrefix + streamId, partJSON$22);
217
+ iterator.next().then(progress, reject);
218
+ } catch (x$23) {
219
+ reject(x$23);
220
+ }
221
+ }
222
+ null === formData && (formData = new FormData());
223
+ var data = formData;
224
+ pendingParts++;
225
+ var streamId = nextPartId++;
226
+ iterable = iterable === iterator;
227
+ iterator.next().then(progress, reject);
228
+ return "$" + (iterable ? "x" : "X") + streamId.toString(16);
229
+ }
136
230
  function resolveToJSON(key, value) {
137
231
  if (null === value) return null;
138
232
  if ("object" === typeof value) {
139
233
  switch (value.$$typeof) {
140
234
  case REACT_ELEMENT_TYPE:
141
- if (void 0 === temporaryReferences)
142
- throw Error(
143
- "React Element cannot be passed to Server Functions from the Client without a temporary reference set. Pass a TemporaryReferenceSet to the options."
144
- );
145
- return (
146
- "$T" +
147
- writeTemporaryReference(temporaryReferences, value).toString(16)
235
+ if (void 0 !== temporaryReferences && -1 === key.indexOf(":")) {
236
+ var parentReference = writtenObjects.get(this);
237
+ if (void 0 !== parentReference)
238
+ return (
239
+ temporaryReferences.set(parentReference + ":" + key, value),
240
+ "$T"
241
+ );
242
+ }
243
+ throw Error(
244
+ "React Element cannot be passed to Server Functions from the Client without a temporary reference set. Pass a TemporaryReferenceSet to the options."
148
245
  );
149
246
  case REACT_LAZY_TYPE:
150
- key = value._payload;
247
+ parentReference = value._payload;
151
248
  var init = value._init;
152
249
  null === formData && (formData = new FormData());
153
250
  pendingParts++;
154
251
  try {
155
- var resolvedModel = init(key),
252
+ var resolvedModel = init(parentReference),
156
253
  lazyId = nextPartId++,
157
- partJSON = JSON.stringify(resolvedModel, resolveToJSON);
254
+ partJSON = serializeModel(resolvedModel, lazyId);
158
255
  formData.append(formFieldPrefix + lazyId, partJSON);
159
256
  return "$" + lazyId.toString(16);
160
257
  } catch (x) {
@@ -164,20 +261,20 @@ function processReply(
164
261
  "function" === typeof x.then
165
262
  ) {
166
263
  pendingParts++;
167
- var lazyId$21 = nextPartId++;
168
- resolvedModel = function () {
264
+ var lazyId$24 = nextPartId++;
265
+ parentReference = function () {
169
266
  try {
170
- var partJSON$22 = JSON.stringify(value, resolveToJSON),
171
- data$23 = formData;
172
- data$23.append(formFieldPrefix + lazyId$21, partJSON$22);
267
+ var partJSON$25 = serializeModel(value, lazyId$24),
268
+ data$26 = formData;
269
+ data$26.append(formFieldPrefix + lazyId$24, partJSON$25);
173
270
  pendingParts--;
174
- 0 === pendingParts && resolve(data$23);
271
+ 0 === pendingParts && resolve(data$26);
175
272
  } catch (reason) {
176
273
  reject(reason);
177
274
  }
178
275
  };
179
- x.then(resolvedModel, resolvedModel);
180
- return "$" + lazyId$21.toString(16);
276
+ x.then(parentReference, parentReference);
277
+ return "$" + lazyId$24.toString(16);
181
278
  }
182
279
  reject(x);
183
280
  return null;
@@ -191,9 +288,9 @@ function processReply(
191
288
  var promiseId = nextPartId++;
192
289
  value.then(function (partValue) {
193
290
  try {
194
- var partJSON$25 = JSON.stringify(partValue, resolveToJSON);
291
+ var partJSON$28 = serializeModel(partValue, promiseId);
195
292
  partValue = formData;
196
- partValue.append(formFieldPrefix + promiseId, partJSON$25);
293
+ partValue.append(formFieldPrefix + promiseId, partJSON$28);
197
294
  pendingParts--;
198
295
  0 === pendingParts && resolve(partValue);
199
296
  } catch (reason) {
@@ -202,97 +299,154 @@ function processReply(
202
299
  }, reject);
203
300
  return "$@" + promiseId.toString(16);
204
301
  }
302
+ parentReference = writtenObjects.get(value);
303
+ if (void 0 !== parentReference)
304
+ if (modelRoot === value) modelRoot = null;
305
+ else return parentReference;
306
+ else
307
+ -1 === key.indexOf(":") &&
308
+ ((parentReference = writtenObjects.get(this)),
309
+ void 0 !== parentReference &&
310
+ ((key = parentReference + ":" + key),
311
+ writtenObjects.set(value, key),
312
+ void 0 !== temporaryReferences &&
313
+ temporaryReferences.set(key, value)));
205
314
  if (isArrayImpl(value)) return value;
206
315
  if (value instanceof FormData) {
207
316
  null === formData && (formData = new FormData());
208
- var data$27 = formData;
209
- resolvedModel = nextPartId++;
210
- var prefix = formFieldPrefix + resolvedModel + "_";
317
+ var data$32 = formData;
318
+ key = nextPartId++;
319
+ var prefix = formFieldPrefix + key + "_";
211
320
  value.forEach(function (originalValue, originalKey) {
212
- data$27.append(prefix + originalKey, originalValue);
321
+ data$32.append(prefix + originalKey, originalValue);
213
322
  });
214
- return "$K" + resolvedModel.toString(16);
323
+ return "$K" + key.toString(16);
215
324
  }
216
325
  if (value instanceof Map)
217
326
  return (
218
- (resolvedModel = JSON.stringify(Array.from(value), resolveToJSON)),
327
+ (key = nextPartId++),
328
+ (parentReference = serializeModel(Array.from(value), key)),
219
329
  null === formData && (formData = new FormData()),
220
- (lazyId = nextPartId++),
221
- formData.append(formFieldPrefix + lazyId, resolvedModel),
222
- "$Q" + lazyId.toString(16)
330
+ formData.append(formFieldPrefix + key, parentReference),
331
+ "$Q" + key.toString(16)
223
332
  );
224
333
  if (value instanceof Set)
225
334
  return (
226
- (resolvedModel = JSON.stringify(Array.from(value), resolveToJSON)),
335
+ (key = nextPartId++),
336
+ (parentReference = serializeModel(Array.from(value), key)),
337
+ null === formData && (formData = new FormData()),
338
+ formData.append(formFieldPrefix + key, parentReference),
339
+ "$W" + key.toString(16)
340
+ );
341
+ if (value instanceof ArrayBuffer)
342
+ return (
343
+ (key = new Blob([value])),
344
+ (parentReference = nextPartId++),
345
+ null === formData && (formData = new FormData()),
346
+ formData.append(formFieldPrefix + parentReference, key),
347
+ "$A" + parentReference.toString(16)
348
+ );
349
+ if (value instanceof Int8Array) return serializeTypedArray("O", value);
350
+ if (value instanceof Uint8Array) return serializeTypedArray("o", value);
351
+ if (value instanceof Uint8ClampedArray)
352
+ return serializeTypedArray("U", value);
353
+ if (value instanceof Int16Array) return serializeTypedArray("S", value);
354
+ if (value instanceof Uint16Array) return serializeTypedArray("s", value);
355
+ if (value instanceof Int32Array) return serializeTypedArray("L", value);
356
+ if (value instanceof Uint32Array) return serializeTypedArray("l", value);
357
+ if (value instanceof Float32Array) return serializeTypedArray("G", value);
358
+ if (value instanceof Float64Array) return serializeTypedArray("g", value);
359
+ if (value instanceof BigInt64Array)
360
+ return serializeTypedArray("M", value);
361
+ if (value instanceof BigUint64Array)
362
+ return serializeTypedArray("m", value);
363
+ if (value instanceof DataView) return serializeTypedArray("V", value);
364
+ if ("function" === typeof Blob && value instanceof Blob)
365
+ return (
227
366
  null === formData && (formData = new FormData()),
228
- (lazyId = nextPartId++),
229
- formData.append(formFieldPrefix + lazyId, resolvedModel),
230
- "$W" + lazyId.toString(16)
367
+ (key = nextPartId++),
368
+ formData.append(formFieldPrefix + key, value),
369
+ "$B" + key.toString(16)
231
370
  );
232
- if ((resolvedModel = getIteratorFn(value)))
371
+ if ((key = getIteratorFn(value)))
233
372
  return (
234
- (resolvedModel = resolvedModel.call(value)),
235
- resolvedModel === value
236
- ? ((resolvedModel = JSON.stringify(
237
- Array.from(resolvedModel),
238
- resolveToJSON
373
+ (parentReference = key.call(value)),
374
+ parentReference === value
375
+ ? ((key = nextPartId++),
376
+ (parentReference = serializeModel(
377
+ Array.from(parentReference),
378
+ key
239
379
  )),
240
380
  null === formData && (formData = new FormData()),
241
- (lazyId = nextPartId++),
242
- formData.append(formFieldPrefix + lazyId, resolvedModel),
243
- "$i" + lazyId.toString(16))
244
- : Array.from(resolvedModel)
381
+ formData.append(formFieldPrefix + key, parentReference),
382
+ "$i" + key.toString(16))
383
+ : Array.from(parentReference)
245
384
  );
246
- resolvedModel = getPrototypeOf(value);
247
385
  if (
248
- resolvedModel !== ObjectPrototype &&
249
- (null === resolvedModel || null !== getPrototypeOf(resolvedModel))
386
+ "function" === typeof ReadableStream &&
387
+ value instanceof ReadableStream
388
+ )
389
+ return serializeReadableStream(value);
390
+ key = value[ASYNC_ITERATOR];
391
+ if ("function" === typeof key)
392
+ return serializeAsyncIterable(value, key.call(value));
393
+ key = getPrototypeOf(value);
394
+ if (
395
+ key !== ObjectPrototype &&
396
+ (null === key || null !== getPrototypeOf(key))
250
397
  ) {
251
398
  if (void 0 === temporaryReferences)
252
399
  throw Error(
253
400
  "Only plain objects, and a few built-ins, can be passed to Server Actions. Classes or null prototypes are not supported."
254
401
  );
255
- return (
256
- "$T" +
257
- writeTemporaryReference(temporaryReferences, value).toString(16)
258
- );
402
+ return "$T";
259
403
  }
260
404
  return value;
261
405
  }
262
406
  if ("string" === typeof value) {
263
407
  if ("Z" === value[value.length - 1] && this[key] instanceof Date)
264
408
  return "$D" + value;
265
- resolvedModel = "$" === value[0] ? "$" + value : value;
266
- return resolvedModel;
409
+ key = "$" === value[0] ? "$" + value : value;
410
+ return key;
267
411
  }
268
412
  if ("boolean" === typeof value) return value;
269
413
  if ("number" === typeof value) return serializeNumber(value);
270
414
  if ("undefined" === typeof value) return "$undefined";
271
415
  if ("function" === typeof value) {
272
- resolvedModel = knownServerReferences.get(value);
273
- if (void 0 !== resolvedModel)
416
+ parentReference = knownServerReferences.get(value);
417
+ if (void 0 !== parentReference)
274
418
  return (
275
- (resolvedModel = JSON.stringify(resolvedModel, resolveToJSON)),
419
+ (key = JSON.stringify(parentReference, resolveToJSON)),
276
420
  null === formData && (formData = new FormData()),
277
- (lazyId = nextPartId++),
278
- formData.set(formFieldPrefix + lazyId, resolvedModel),
279
- "$F" + lazyId.toString(16)
421
+ (parentReference = nextPartId++),
422
+ formData.set(formFieldPrefix + parentReference, key),
423
+ "$F" + parentReference.toString(16)
280
424
  );
281
- if (void 0 === temporaryReferences)
282
- throw Error(
283
- "Client Functions cannot be passed directly to Server Functions. Only Functions passed from the Server can be passed back again."
425
+ if (
426
+ void 0 !== temporaryReferences &&
427
+ -1 === key.indexOf(":") &&
428
+ ((parentReference = writtenObjects.get(this)),
429
+ void 0 !== parentReference)
430
+ )
431
+ return (
432
+ temporaryReferences.set(parentReference + ":" + key, value), "$T"
284
433
  );
285
- return (
286
- "$T" + writeTemporaryReference(temporaryReferences, value).toString(16)
434
+ throw Error(
435
+ "Client Functions cannot be passed directly to Server Functions. Only Functions passed from the Server can be passed back again."
287
436
  );
288
437
  }
289
438
  if ("symbol" === typeof value) {
290
- if (void 0 === temporaryReferences)
291
- throw Error(
292
- "Symbols cannot be passed to a Server Function without a temporary reference set. Pass a TemporaryReferenceSet to the options."
439
+ if (
440
+ void 0 !== temporaryReferences &&
441
+ -1 === key.indexOf(":") &&
442
+ ((parentReference = writtenObjects.get(this)),
443
+ void 0 !== parentReference)
444
+ )
445
+ return (
446
+ temporaryReferences.set(parentReference + ":" + key, value), "$T"
293
447
  );
294
- return (
295
- "$T" + writeTemporaryReference(temporaryReferences, value).toString(16)
448
+ throw Error(
449
+ "Symbols cannot be passed to a Server Function without a temporary reference set. Pass a TemporaryReferenceSet to the options."
296
450
  );
297
451
  }
298
452
  if ("bigint" === typeof value) return "$n" + value.toString(10);
@@ -302,10 +456,21 @@ function processReply(
302
456
  " is not supported as an argument to a Server Function."
303
457
  );
304
458
  }
459
+ function serializeModel(model, id) {
460
+ "object" === typeof model &&
461
+ null !== model &&
462
+ ((id = "$" + id.toString(16)),
463
+ writtenObjects.set(model, id),
464
+ void 0 !== temporaryReferences && temporaryReferences.set(id, model));
465
+ modelRoot = model;
466
+ return JSON.stringify(model, resolveToJSON);
467
+ }
305
468
  var nextPartId = 1,
306
469
  pendingParts = 0,
307
- formData = null;
308
- root = JSON.stringify(root, resolveToJSON);
470
+ formData = null,
471
+ writtenObjects = new WeakMap(),
472
+ modelRoot = root;
473
+ root = serializeModel(root, 0);
309
474
  null === formData
310
475
  ? resolve(root)
311
476
  : (formData.set(formFieldPrefix + "0", root),
@@ -506,6 +671,9 @@ function readChunk(chunk) {
506
671
  throw chunk.reason;
507
672
  }
508
673
  }
674
+ function createPendingChunk(response) {
675
+ return new Chunk("pending", null, null, response);
676
+ }
509
677
  function wakeChunk(listeners, value) {
510
678
  for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value);
511
679
  }
@@ -525,13 +693,41 @@ function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) {
525
693
  }
526
694
  }
527
695
  function triggerErrorOnChunk(chunk, error) {
528
- if ("pending" === chunk.status || "blocked" === chunk.status) {
696
+ if ("pending" !== chunk.status && "blocked" !== chunk.status)
697
+ chunk.reason.error(error);
698
+ else {
529
699
  var listeners = chunk.reason;
530
700
  chunk.status = "rejected";
531
701
  chunk.reason = error;
532
702
  null !== listeners && wakeChunk(listeners, error);
533
703
  }
534
704
  }
705
+ function createResolvedIteratorResultChunk(response, value, done) {
706
+ return new Chunk(
707
+ "resolved_model",
708
+ (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}",
709
+ null,
710
+ response
711
+ );
712
+ }
713
+ function resolveIteratorResultChunk(chunk, value, done) {
714
+ resolveModelChunk(
715
+ chunk,
716
+ (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}"
717
+ );
718
+ }
719
+ function resolveModelChunk(chunk, value) {
720
+ if ("pending" !== chunk.status) chunk.reason.enqueueModel(value);
721
+ else {
722
+ var resolveListeners = chunk.value,
723
+ rejectListeners = chunk.reason;
724
+ chunk.status = "resolved_model";
725
+ chunk.value = value;
726
+ null !== resolveListeners &&
727
+ (initializeModelChunk(chunk),
728
+ wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners));
729
+ }
730
+ }
535
731
  function resolveModuleChunk(chunk, value) {
536
732
  if ("pending" === chunk.status || "blocked" === chunk.status) {
537
733
  var resolveListeners = chunk.value,
@@ -607,12 +803,18 @@ function reportGlobalError(response, error) {
607
803
  function getChunk(response, id) {
608
804
  var chunks = response._chunks,
609
805
  chunk = chunks.get(id);
610
- chunk ||
611
- ((chunk = new Chunk("pending", null, null, response)),
612
- chunks.set(id, chunk));
806
+ chunk || ((chunk = createPendingChunk(response)), chunks.set(id, chunk));
613
807
  return chunk;
614
808
  }
615
- function createModelResolver(chunk, parentObject, key, cyclic, response, map) {
809
+ function createModelResolver(
810
+ chunk,
811
+ parentObject,
812
+ key,
813
+ cyclic,
814
+ response,
815
+ map,
816
+ path
817
+ ) {
616
818
  if (initializingChunkBlockedModel) {
617
819
  var blocked = initializingChunkBlockedModel;
618
820
  cyclic || blocked.deps++;
@@ -622,6 +824,7 @@ function createModelResolver(chunk, parentObject, key, cyclic, response, map) {
622
824
  value: null
623
825
  };
624
826
  return function (value) {
827
+ for (var i = 1; i < path.length; i++) value = value[path[i]];
625
828
  parentObject[key] = map(response, value);
626
829
  "" === key && null === blocked.value && (blocked.value = parentObject[key]);
627
830
  blocked.deps--;
@@ -654,7 +857,9 @@ function createServerReferenceProxy(response, metaData) {
654
857
  registerServerReference(proxy, metaData, response._encodeFormAction);
655
858
  return proxy;
656
859
  }
657
- function getOutlinedModel(response, id, parentObject, key, map) {
860
+ function getOutlinedModel(response, reference, parentObject, key, map) {
861
+ reference = reference.split(":");
862
+ var id = parseInt(reference[0], 16);
658
863
  id = getChunk(response, id);
659
864
  switch (id.status) {
660
865
  case "resolved_model":
@@ -665,7 +870,10 @@ function getOutlinedModel(response, id, parentObject, key, map) {
665
870
  }
666
871
  switch (id.status) {
667
872
  case "fulfilled":
668
- return map(response, id.value);
873
+ parentObject = id.value;
874
+ for (key = 1; key < reference.length; key++)
875
+ parentObject = parentObject[reference[key]];
876
+ return map(response, parentObject);
669
877
  case "pending":
670
878
  case "blocked":
671
879
  case "cyclic":
@@ -677,7 +885,8 @@ function getOutlinedModel(response, id, parentObject, key, map) {
677
885
  key,
678
886
  "cyclic" === id.status,
679
887
  response,
680
- map
888
+ map,
889
+ reference
681
890
  ),
682
891
  createModelReject(parentChunk)
683
892
  );
@@ -692,6 +901,9 @@ function createMap(response, model) {
692
901
  function createSet(response, model) {
693
902
  return new Set(model);
694
903
  }
904
+ function createBlob(response, model) {
905
+ return new Blob(model.slice(1), { type: model[0] });
906
+ }
695
907
  function createFormData(response, model) {
696
908
  response = new FormData();
697
909
  for (var i = 0; i < model.length; i++)
@@ -724,7 +936,7 @@ function parseModelString(response, parentObject, key, value) {
724
936
  return Symbol.for(value.slice(2));
725
937
  case "F":
726
938
  return (
727
- (value = parseInt(value.slice(2), 16)),
939
+ (value = value.slice(2)),
728
940
  getOutlinedModel(
729
941
  response,
730
942
  value,
@@ -734,37 +946,36 @@ function parseModelString(response, parentObject, key, value) {
734
946
  )
735
947
  );
736
948
  case "T":
737
- parentObject = parseInt(value.slice(2), 16);
949
+ parentObject = "$" + value.slice(2);
738
950
  response = response._tempRefs;
739
951
  if (null == response)
740
952
  throw Error(
741
953
  "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."
742
954
  );
743
- if (0 > parentObject || parentObject >= response.length)
744
- throw Error(
745
- "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."
746
- );
747
- return response[parentObject];
955
+ return response.get(parentObject);
748
956
  case "Q":
749
957
  return (
750
- (value = parseInt(value.slice(2), 16)),
958
+ (value = value.slice(2)),
751
959
  getOutlinedModel(response, value, parentObject, key, createMap)
752
960
  );
753
961
  case "W":
754
962
  return (
755
- (value = parseInt(value.slice(2), 16)),
963
+ (value = value.slice(2)),
756
964
  getOutlinedModel(response, value, parentObject, key, createSet)
757
965
  );
758
966
  case "B":
759
- return;
967
+ return (
968
+ (value = value.slice(2)),
969
+ getOutlinedModel(response, value, parentObject, key, createBlob)
970
+ );
760
971
  case "K":
761
972
  return (
762
- (value = parseInt(value.slice(2), 16)),
973
+ (value = value.slice(2)),
763
974
  getOutlinedModel(response, value, parentObject, key, createFormData)
764
975
  );
765
976
  case "i":
766
977
  return (
767
- (value = parseInt(value.slice(2), 16)),
978
+ (value = value.slice(2)),
768
979
  getOutlinedModel(response, value, parentObject, key, extractIterator)
769
980
  );
770
981
  case "I":
@@ -781,7 +992,7 @@ function parseModelString(response, parentObject, key, value) {
781
992
  return BigInt(value.slice(2));
782
993
  default:
783
994
  return (
784
- (value = parseInt(value.slice(1), 16)),
995
+ (value = value.slice(1)),
785
996
  getOutlinedModel(response, value, parentObject, key, createModel)
786
997
  );
787
998
  }
@@ -793,6 +1004,13 @@ function missingCall() {
793
1004
  'Trying to call a function from "use server" but the callServer option was not implemented in your router runtime.'
794
1005
  );
795
1006
  }
1007
+ function resolveBuffer(response, id, buffer) {
1008
+ var chunks = response._chunks,
1009
+ chunk = chunks.get(id);
1010
+ chunk && "pending" !== chunk.status
1011
+ ? chunk.reason.enqueueValue(buffer)
1012
+ : chunks.set(id, new Chunk("fulfilled", buffer, null, response));
1013
+ }
796
1014
  function resolveModule(response, id, model) {
797
1015
  var chunks = response._chunks,
798
1016
  chunk = chunks.get(id);
@@ -826,6 +1044,367 @@ function resolveModule(response, id, model) {
826
1044
  new Chunk("resolved_module", clientReference, null, response)
827
1045
  );
828
1046
  }
1047
+ function resolveStream(response, id, stream, controller) {
1048
+ var chunks = response._chunks,
1049
+ chunk = chunks.get(id);
1050
+ chunk
1051
+ ? "pending" === chunk.status &&
1052
+ ((response = chunk.value),
1053
+ (chunk.status = "fulfilled"),
1054
+ (chunk.value = stream),
1055
+ (chunk.reason = controller),
1056
+ null !== response && wakeChunk(response, chunk.value))
1057
+ : chunks.set(id, new Chunk("fulfilled", stream, controller, response));
1058
+ }
1059
+ function startReadableStream(response, id, type) {
1060
+ var controller = null;
1061
+ type = new ReadableStream({
1062
+ type: type,
1063
+ start: function (c) {
1064
+ controller = c;
1065
+ }
1066
+ });
1067
+ var previousBlockedChunk = null;
1068
+ resolveStream(response, id, type, {
1069
+ enqueueValue: function (value) {
1070
+ null === previousBlockedChunk
1071
+ ? controller.enqueue(value)
1072
+ : previousBlockedChunk.then(function () {
1073
+ controller.enqueue(value);
1074
+ });
1075
+ },
1076
+ enqueueModel: function (json) {
1077
+ if (null === previousBlockedChunk) {
1078
+ var chunk = new Chunk("resolved_model", json, null, response);
1079
+ initializeModelChunk(chunk);
1080
+ "fulfilled" === chunk.status
1081
+ ? controller.enqueue(chunk.value)
1082
+ : (chunk.then(
1083
+ function (v) {
1084
+ return controller.enqueue(v);
1085
+ },
1086
+ function (e) {
1087
+ return controller.error(e);
1088
+ }
1089
+ ),
1090
+ (previousBlockedChunk = chunk));
1091
+ } else {
1092
+ chunk = previousBlockedChunk;
1093
+ var chunk$50 = createPendingChunk(response);
1094
+ chunk$50.then(
1095
+ function (v) {
1096
+ return controller.enqueue(v);
1097
+ },
1098
+ function (e) {
1099
+ return controller.error(e);
1100
+ }
1101
+ );
1102
+ previousBlockedChunk = chunk$50;
1103
+ chunk.then(function () {
1104
+ previousBlockedChunk === chunk$50 && (previousBlockedChunk = null);
1105
+ resolveModelChunk(chunk$50, json);
1106
+ });
1107
+ }
1108
+ },
1109
+ close: function () {
1110
+ if (null === previousBlockedChunk) controller.close();
1111
+ else {
1112
+ var blockedChunk = previousBlockedChunk;
1113
+ previousBlockedChunk = null;
1114
+ blockedChunk.then(function () {
1115
+ return controller.close();
1116
+ });
1117
+ }
1118
+ },
1119
+ error: function (error) {
1120
+ if (null === previousBlockedChunk) controller.error(error);
1121
+ else {
1122
+ var blockedChunk = previousBlockedChunk;
1123
+ previousBlockedChunk = null;
1124
+ blockedChunk.then(function () {
1125
+ return controller.error(error);
1126
+ });
1127
+ }
1128
+ }
1129
+ });
1130
+ }
1131
+ function asyncIterator() {
1132
+ return this;
1133
+ }
1134
+ function createIterator(next) {
1135
+ next = { next: next };
1136
+ next[ASYNC_ITERATOR] = asyncIterator;
1137
+ return next;
1138
+ }
1139
+ function startAsyncIterable(response, id, iterator) {
1140
+ var buffer = [],
1141
+ closed = !1,
1142
+ nextWriteIndex = 0,
1143
+ $jscomp$compprop0 = {};
1144
+ $jscomp$compprop0 =
1145
+ (($jscomp$compprop0[ASYNC_ITERATOR] = function () {
1146
+ var nextReadIndex = 0;
1147
+ return createIterator(function (arg) {
1148
+ if (void 0 !== arg)
1149
+ throw Error(
1150
+ "Values cannot be passed to next() of AsyncIterables passed to Client Components."
1151
+ );
1152
+ if (nextReadIndex === buffer.length) {
1153
+ if (closed)
1154
+ return new Chunk(
1155
+ "fulfilled",
1156
+ { done: !0, value: void 0 },
1157
+ null,
1158
+ response
1159
+ );
1160
+ buffer[nextReadIndex] = createPendingChunk(response);
1161
+ }
1162
+ return buffer[nextReadIndex++];
1163
+ });
1164
+ }),
1165
+ $jscomp$compprop0);
1166
+ resolveStream(
1167
+ response,
1168
+ id,
1169
+ iterator ? $jscomp$compprop0[ASYNC_ITERATOR]() : $jscomp$compprop0,
1170
+ {
1171
+ enqueueValue: function (value) {
1172
+ if (nextWriteIndex === buffer.length)
1173
+ buffer[nextWriteIndex] = new Chunk(
1174
+ "fulfilled",
1175
+ { done: !1, value: value },
1176
+ null,
1177
+ response
1178
+ );
1179
+ else {
1180
+ var chunk = buffer[nextWriteIndex],
1181
+ resolveListeners = chunk.value,
1182
+ rejectListeners = chunk.reason;
1183
+ chunk.status = "fulfilled";
1184
+ chunk.value = { done: !1, value: value };
1185
+ null !== resolveListeners &&
1186
+ wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners);
1187
+ }
1188
+ nextWriteIndex++;
1189
+ },
1190
+ enqueueModel: function (value) {
1191
+ nextWriteIndex === buffer.length
1192
+ ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
1193
+ response,
1194
+ value,
1195
+ !1
1196
+ ))
1197
+ : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !1);
1198
+ nextWriteIndex++;
1199
+ },
1200
+ close: function (value) {
1201
+ closed = !0;
1202
+ nextWriteIndex === buffer.length
1203
+ ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
1204
+ response,
1205
+ value,
1206
+ !0
1207
+ ))
1208
+ : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !0);
1209
+ for (nextWriteIndex++; nextWriteIndex < buffer.length; )
1210
+ resolveIteratorResultChunk(
1211
+ buffer[nextWriteIndex++],
1212
+ '"$undefined"',
1213
+ !0
1214
+ );
1215
+ },
1216
+ error: function (error) {
1217
+ closed = !0;
1218
+ for (
1219
+ nextWriteIndex === buffer.length &&
1220
+ (buffer[nextWriteIndex] = createPendingChunk(response));
1221
+ nextWriteIndex < buffer.length;
1222
+
1223
+ )
1224
+ triggerErrorOnChunk(buffer[nextWriteIndex++], error);
1225
+ }
1226
+ }
1227
+ );
1228
+ }
1229
+ function mergeBuffer(buffer, lastChunk) {
1230
+ for (var l = buffer.length, byteLength = lastChunk.length, i = 0; i < l; i++)
1231
+ byteLength += buffer[i].byteLength;
1232
+ byteLength = new Uint8Array(byteLength);
1233
+ for (var i$51 = (i = 0); i$51 < l; i$51++) {
1234
+ var chunk = buffer[i$51];
1235
+ byteLength.set(chunk, i);
1236
+ i += chunk.byteLength;
1237
+ }
1238
+ byteLength.set(lastChunk, i);
1239
+ return byteLength;
1240
+ }
1241
+ function resolveTypedArray(
1242
+ response,
1243
+ id,
1244
+ buffer,
1245
+ lastChunk,
1246
+ constructor,
1247
+ bytesPerElement
1248
+ ) {
1249
+ buffer =
1250
+ 0 === buffer.length && 0 === lastChunk.byteOffset % bytesPerElement
1251
+ ? lastChunk
1252
+ : mergeBuffer(buffer, lastChunk);
1253
+ constructor = new constructor(
1254
+ buffer.buffer,
1255
+ buffer.byteOffset,
1256
+ buffer.byteLength / bytesPerElement
1257
+ );
1258
+ resolveBuffer(response, id, constructor);
1259
+ }
1260
+ function processFullRow(response, id, tag, buffer, chunk) {
1261
+ switch (tag) {
1262
+ case 65:
1263
+ resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer);
1264
+ return;
1265
+ case 79:
1266
+ resolveTypedArray(response, id, buffer, chunk, Int8Array, 1);
1267
+ return;
1268
+ case 111:
1269
+ resolveBuffer(
1270
+ response,
1271
+ id,
1272
+ 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk)
1273
+ );
1274
+ return;
1275
+ case 85:
1276
+ resolveTypedArray(response, id, buffer, chunk, Uint8ClampedArray, 1);
1277
+ return;
1278
+ case 83:
1279
+ resolveTypedArray(response, id, buffer, chunk, Int16Array, 2);
1280
+ return;
1281
+ case 115:
1282
+ resolveTypedArray(response, id, buffer, chunk, Uint16Array, 2);
1283
+ return;
1284
+ case 76:
1285
+ resolveTypedArray(response, id, buffer, chunk, Int32Array, 4);
1286
+ return;
1287
+ case 108:
1288
+ resolveTypedArray(response, id, buffer, chunk, Uint32Array, 4);
1289
+ return;
1290
+ case 71:
1291
+ resolveTypedArray(response, id, buffer, chunk, Float32Array, 4);
1292
+ return;
1293
+ case 103:
1294
+ resolveTypedArray(response, id, buffer, chunk, Float64Array, 8);
1295
+ return;
1296
+ case 77:
1297
+ resolveTypedArray(response, id, buffer, chunk, BigInt64Array, 8);
1298
+ return;
1299
+ case 109:
1300
+ resolveTypedArray(response, id, buffer, chunk, BigUint64Array, 8);
1301
+ return;
1302
+ case 86:
1303
+ resolveTypedArray(response, id, buffer, chunk, DataView, 1);
1304
+ return;
1305
+ }
1306
+ for (
1307
+ var stringDecoder = response._stringDecoder, row = "", i = 0;
1308
+ i < buffer.length;
1309
+ i++
1310
+ )
1311
+ row += stringDecoder.decode(buffer[i], decoderOptions);
1312
+ row += stringDecoder.decode(chunk);
1313
+ switch (tag) {
1314
+ case 73:
1315
+ resolveModule(response, id, row);
1316
+ break;
1317
+ case 72:
1318
+ id = row[0];
1319
+ row = row.slice(1);
1320
+ response = JSON.parse(row, response._fromJSON);
1321
+ row = ReactDOMSharedInternals.d;
1322
+ switch (id) {
1323
+ case "D":
1324
+ row.D(response);
1325
+ break;
1326
+ case "C":
1327
+ "string" === typeof response
1328
+ ? row.C(response)
1329
+ : row.C(response[0], response[1]);
1330
+ break;
1331
+ case "L":
1332
+ id = response[0];
1333
+ tag = response[1];
1334
+ 3 === response.length ? row.L(id, tag, response[2]) : row.L(id, tag);
1335
+ break;
1336
+ case "m":
1337
+ "string" === typeof response
1338
+ ? row.m(response)
1339
+ : row.m(response[0], response[1]);
1340
+ break;
1341
+ case "X":
1342
+ "string" === typeof response
1343
+ ? row.X(response)
1344
+ : row.X(response[0], response[1]);
1345
+ break;
1346
+ case "S":
1347
+ "string" === typeof response
1348
+ ? row.S(response)
1349
+ : row.S(
1350
+ response[0],
1351
+ 0 === response[1] ? void 0 : response[1],
1352
+ 3 === response.length ? response[2] : void 0
1353
+ );
1354
+ break;
1355
+ case "M":
1356
+ "string" === typeof response
1357
+ ? row.M(response)
1358
+ : row.M(response[0], response[1]);
1359
+ }
1360
+ break;
1361
+ case 69:
1362
+ tag = JSON.parse(row).digest;
1363
+ row = Error(
1364
+ "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."
1365
+ );
1366
+ row.stack = "Error: " + row.message;
1367
+ row.digest = tag;
1368
+ tag = response._chunks;
1369
+ (buffer = tag.get(id))
1370
+ ? triggerErrorOnChunk(buffer, row)
1371
+ : tag.set(id, new Chunk("rejected", null, row, response));
1372
+ break;
1373
+ case 84:
1374
+ tag = response._chunks;
1375
+ (buffer = tag.get(id)) && "pending" !== buffer.status
1376
+ ? buffer.reason.enqueueValue(row)
1377
+ : tag.set(id, new Chunk("fulfilled", row, null, response));
1378
+ break;
1379
+ case 68:
1380
+ case 87:
1381
+ throw Error(
1382
+ "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."
1383
+ );
1384
+ case 82:
1385
+ startReadableStream(response, id, void 0);
1386
+ break;
1387
+ case 114:
1388
+ startReadableStream(response, id, "bytes");
1389
+ break;
1390
+ case 88:
1391
+ startAsyncIterable(response, id, !1);
1392
+ break;
1393
+ case 120:
1394
+ startAsyncIterable(response, id, !0);
1395
+ break;
1396
+ case 67:
1397
+ (response = response._chunks.get(id)) &&
1398
+ "fulfilled" === response.status &&
1399
+ response.reason.close("" === row ? '"$undefined"' : row);
1400
+ break;
1401
+ default:
1402
+ (tag = response._chunks),
1403
+ (buffer = tag.get(id))
1404
+ ? resolveModelChunk(buffer, row)
1405
+ : tag.set(id, new Chunk("resolved_model", row, null, response));
1406
+ }
1407
+ }
829
1408
  function createFromJSONCallback(response) {
830
1409
  return function (key, value) {
831
1410
  return "string" === typeof value
@@ -885,24 +1464,41 @@ function startReadingFromStream(response, stream) {
885
1464
  if (_ref.done) reportGlobalError(response, Error("Connection closed."));
886
1465
  else {
887
1466
  var i = 0,
888
- rowState = response._rowState,
889
- rowID = response._rowID,
890
- rowTag = response._rowTag,
891
- rowLength = response._rowLength;
892
- _ref = response._buffer;
893
- for (var chunkLength = value.length; i < chunkLength; ) {
1467
+ rowState = response._rowState;
1468
+ _ref = response._rowID;
1469
+ for (
1470
+ var rowTag = response._rowTag,
1471
+ rowLength = response._rowLength,
1472
+ buffer = response._buffer,
1473
+ chunkLength = value.length;
1474
+ i < chunkLength;
1475
+
1476
+ ) {
894
1477
  var lastIdx = -1;
895
1478
  switch (rowState) {
896
1479
  case 0:
897
1480
  lastIdx = value[i++];
898
1481
  58 === lastIdx
899
1482
  ? (rowState = 1)
900
- : (rowID =
901
- (rowID << 4) | (96 < lastIdx ? lastIdx - 87 : lastIdx - 48));
1483
+ : (_ref =
1484
+ (_ref << 4) | (96 < lastIdx ? lastIdx - 87 : lastIdx - 48));
902
1485
  continue;
903
1486
  case 1:
904
1487
  rowState = value[i];
905
- 84 === rowState
1488
+ 84 === rowState ||
1489
+ 65 === rowState ||
1490
+ 79 === rowState ||
1491
+ 111 === rowState ||
1492
+ 85 === rowState ||
1493
+ 83 === rowState ||
1494
+ 115 === rowState ||
1495
+ 76 === rowState ||
1496
+ 108 === rowState ||
1497
+ 71 === rowState ||
1498
+ 103 === rowState ||
1499
+ 77 === rowState ||
1500
+ 109 === rowState ||
1501
+ 86 === rowState
906
1502
  ? ((rowTag = rowState), (rowState = 2), i++)
907
1503
  : (64 < rowState && 91 > rowState) ||
908
1504
  114 === rowState ||
@@ -925,120 +1521,22 @@ function startReadingFromStream(response, stream) {
925
1521
  (lastIdx = i + rowLength), lastIdx > value.length && (lastIdx = -1);
926
1522
  }
927
1523
  var offset = value.byteOffset + i;
928
- if (-1 < lastIdx) {
929
- i = new Uint8Array(value.buffer, offset, lastIdx - i);
930
- rowLength = response;
931
- offset = rowTag;
932
- var stringDecoder = rowLength._stringDecoder;
933
- rowTag = "";
934
- for (var i$jscomp$0 = 0; i$jscomp$0 < _ref.length; i$jscomp$0++)
935
- rowTag += stringDecoder.decode(_ref[i$jscomp$0], decoderOptions);
936
- rowTag += stringDecoder.decode(i);
937
- switch (offset) {
938
- case 73:
939
- resolveModule(rowLength, rowID, rowTag);
940
- break;
941
- case 72:
942
- rowID = rowTag[0];
943
- rowTag = rowTag.slice(1);
944
- rowLength = JSON.parse(rowTag, rowLength._fromJSON);
945
- rowTag = ReactDOMSharedInternals.d;
946
- switch (rowID) {
947
- case "D":
948
- rowTag.D(rowLength);
949
- break;
950
- case "C":
951
- "string" === typeof rowLength
952
- ? rowTag.C(rowLength)
953
- : rowTag.C(rowLength[0], rowLength[1]);
954
- break;
955
- case "L":
956
- rowID = rowLength[0];
957
- i = rowLength[1];
958
- 3 === rowLength.length
959
- ? rowTag.L(rowID, i, rowLength[2])
960
- : rowTag.L(rowID, i);
961
- break;
962
- case "m":
963
- "string" === typeof rowLength
964
- ? rowTag.m(rowLength)
965
- : rowTag.m(rowLength[0], rowLength[1]);
966
- break;
967
- case "X":
968
- "string" === typeof rowLength
969
- ? rowTag.X(rowLength)
970
- : rowTag.X(rowLength[0], rowLength[1]);
971
- break;
972
- case "S":
973
- "string" === typeof rowLength
974
- ? rowTag.S(rowLength)
975
- : rowTag.S(
976
- rowLength[0],
977
- 0 === rowLength[1] ? void 0 : rowLength[1],
978
- 3 === rowLength.length ? rowLength[2] : void 0
979
- );
980
- break;
981
- case "M":
982
- "string" === typeof rowLength
983
- ? rowTag.M(rowLength)
984
- : rowTag.M(rowLength[0], rowLength[1]);
985
- }
986
- break;
987
- case 69:
988
- rowTag = JSON.parse(rowTag);
989
- i = rowTag.digest;
990
- rowTag = Error(
991
- "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."
992
- );
993
- rowTag.stack = "Error: " + rowTag.message;
994
- rowTag.digest = i;
995
- i = rowLength._chunks;
996
- (offset = i.get(rowID))
997
- ? triggerErrorOnChunk(offset, rowTag)
998
- : i.set(rowID, new Chunk("rejected", null, rowTag, rowLength));
999
- break;
1000
- case 84:
1001
- rowLength._chunks.set(
1002
- rowID,
1003
- new Chunk("fulfilled", rowTag, null, rowLength)
1004
- );
1005
- break;
1006
- case 68:
1007
- case 87:
1008
- throw Error(
1009
- "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."
1010
- );
1011
- default:
1012
- (i = rowLength._chunks),
1013
- (offset = i.get(rowID))
1014
- ? ((rowLength = offset),
1015
- (rowID = rowTag),
1016
- "pending" === rowLength.status &&
1017
- ((rowTag = rowLength.value),
1018
- (i = rowLength.reason),
1019
- (rowLength.status = "resolved_model"),
1020
- (rowLength.value = rowID),
1021
- null !== rowTag &&
1022
- (initializeModelChunk(rowLength),
1023
- wakeChunkIfInitialized(rowLength, rowTag, i))))
1024
- : i.set(
1025
- rowID,
1026
- new Chunk("resolved_model", rowTag, null, rowLength)
1027
- );
1028
- }
1029
- i = lastIdx;
1030
- 3 === rowState && i++;
1031
- rowLength = rowID = rowTag = rowState = 0;
1032
- _ref.length = 0;
1033
- } else {
1524
+ if (-1 < lastIdx)
1525
+ (rowLength = new Uint8Array(value.buffer, offset, lastIdx - i)),
1526
+ processFullRow(response, _ref, rowTag, buffer, rowLength),
1527
+ (i = lastIdx),
1528
+ 3 === rowState && i++,
1529
+ (rowLength = _ref = rowTag = rowState = 0),
1530
+ (buffer.length = 0);
1531
+ else {
1034
1532
  value = new Uint8Array(value.buffer, offset, value.byteLength - i);
1035
- _ref.push(value);
1533
+ buffer.push(value);
1036
1534
  rowLength -= value.byteLength;
1037
1535
  break;
1038
1536
  }
1039
1537
  }
1040
1538
  response._rowState = rowState;
1041
- response._rowID = rowID;
1539
+ response._rowID = _ref;
1042
1540
  response._rowTag = rowTag;
1043
1541
  response._rowLength = rowLength;
1044
1542
  return reader.read().then(progress).catch(error);
@@ -1071,7 +1569,7 @@ exports.createServerReference = function (id) {
1071
1569
  return createServerReference$1(id, noServerCall);
1072
1570
  };
1073
1571
  exports.createTemporaryReferenceSet = function () {
1074
- return [];
1572
+ return new Map();
1075
1573
  };
1076
1574
  exports.encodeReply = function (value, options) {
1077
1575
  return new Promise(function (resolve, reject) {