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