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.
@@ -90,14 +90,10 @@ function getIteratorFn(maybeIterable) {
90
90
  maybeIterable["@@iterator"];
91
91
  return "function" === typeof maybeIterable ? maybeIterable : null;
92
92
  }
93
- var isArrayImpl = Array.isArray,
94
- getPrototypeOf = Object.getPrototypeOf;
95
- function writeTemporaryReference(set, object) {
96
- var newId = set.length;
97
- set.push(object);
98
- return newId;
99
- }
100
- var ObjectPrototype = Object.prototype,
93
+ var ASYNC_ITERATOR = Symbol.asyncIterator,
94
+ isArrayImpl = Array.isArray,
95
+ getPrototypeOf = Object.getPrototypeOf,
96
+ ObjectPrototype = Object.prototype,
101
97
  knownServerReferences = new WeakMap();
102
98
  function serializeNumber(number) {
103
99
  return Number.isFinite(number)
@@ -117,28 +113,129 @@ function processReply(
117
113
  resolve,
118
114
  reject
119
115
  ) {
116
+ function serializeTypedArray(tag, typedArray) {
117
+ typedArray = new Blob([
118
+ new Uint8Array(
119
+ typedArray.buffer,
120
+ typedArray.byteOffset,
121
+ typedArray.byteLength
122
+ )
123
+ ]);
124
+ var blobId = nextPartId++;
125
+ null === formData && (formData = new FormData());
126
+ formData.append(formFieldPrefix + blobId, typedArray);
127
+ return "$" + tag + blobId.toString(16);
128
+ }
129
+ function serializeBinaryReader(reader) {
130
+ function progress(entry) {
131
+ entry.done
132
+ ? ((entry = nextPartId++),
133
+ data.append(formFieldPrefix + entry, new Blob(buffer)),
134
+ data.append(
135
+ formFieldPrefix + streamId,
136
+ '"$o' + entry.toString(16) + '"'
137
+ ),
138
+ data.append(formFieldPrefix + streamId, "C"),
139
+ pendingParts--,
140
+ 0 === pendingParts && resolve(data))
141
+ : (buffer.push(entry.value),
142
+ reader.read(new Uint8Array(1024)).then(progress, reject));
143
+ }
144
+ null === formData && (formData = new FormData());
145
+ var data = formData;
146
+ pendingParts++;
147
+ var streamId = nextPartId++,
148
+ buffer = [];
149
+ reader.read(new Uint8Array(1024)).then(progress, reject);
150
+ return "$r" + streamId.toString(16);
151
+ }
152
+ function serializeReader(reader) {
153
+ function progress(entry) {
154
+ if (entry.done)
155
+ data.append(formFieldPrefix + streamId, "C"),
156
+ pendingParts--,
157
+ 0 === pendingParts && resolve(data);
158
+ else
159
+ try {
160
+ var partJSON = JSON.stringify(entry.value, resolveToJSON);
161
+ data.append(formFieldPrefix + streamId, partJSON);
162
+ reader.read().then(progress, reject);
163
+ } catch (x) {
164
+ reject(x);
165
+ }
166
+ }
167
+ null === formData && (formData = new FormData());
168
+ var data = formData;
169
+ pendingParts++;
170
+ var streamId = nextPartId++;
171
+ reader.read().then(progress, reject);
172
+ return "$R" + streamId.toString(16);
173
+ }
174
+ function serializeReadableStream(stream) {
175
+ try {
176
+ var binaryReader = stream.getReader({ mode: "byob" });
177
+ } catch (x) {
178
+ return serializeReader(stream.getReader());
179
+ }
180
+ return serializeBinaryReader(binaryReader);
181
+ }
182
+ function serializeAsyncIterable(iterable, iterator) {
183
+ function progress(entry) {
184
+ if (entry.done) {
185
+ if (void 0 === entry.value)
186
+ data.append(formFieldPrefix + streamId, "C");
187
+ else
188
+ try {
189
+ var partJSON = JSON.stringify(entry.value, resolveToJSON);
190
+ data.append(formFieldPrefix + streamId, "C" + partJSON);
191
+ } catch (x) {
192
+ reject(x);
193
+ return;
194
+ }
195
+ pendingParts--;
196
+ 0 === pendingParts && resolve(data);
197
+ } else
198
+ try {
199
+ var partJSON$22 = JSON.stringify(entry.value, resolveToJSON);
200
+ data.append(formFieldPrefix + streamId, partJSON$22);
201
+ iterator.next().then(progress, reject);
202
+ } catch (x$23) {
203
+ reject(x$23);
204
+ }
205
+ }
206
+ null === formData && (formData = new FormData());
207
+ var data = formData;
208
+ pendingParts++;
209
+ var streamId = nextPartId++;
210
+ iterable = iterable === iterator;
211
+ iterator.next().then(progress, reject);
212
+ return "$" + (iterable ? "x" : "X") + streamId.toString(16);
213
+ }
120
214
  function resolveToJSON(key, value) {
121
215
  if (null === value) return null;
122
216
  if ("object" === typeof value) {
123
217
  switch (value.$$typeof) {
124
218
  case REACT_ELEMENT_TYPE:
125
- if (void 0 === temporaryReferences)
126
- throw Error(
127
- "React Element cannot be passed to Server Functions from the Client without a temporary reference set. Pass a TemporaryReferenceSet to the options."
128
- );
129
- return (
130
- "$T" +
131
- writeTemporaryReference(temporaryReferences, value).toString(16)
219
+ if (void 0 !== temporaryReferences && -1 === key.indexOf(":")) {
220
+ var parentReference = writtenObjects.get(this);
221
+ if (void 0 !== parentReference)
222
+ return (
223
+ temporaryReferences.set(parentReference + ":" + key, value),
224
+ "$T"
225
+ );
226
+ }
227
+ throw Error(
228
+ "React Element cannot be passed to Server Functions from the Client without a temporary reference set. Pass a TemporaryReferenceSet to the options."
132
229
  );
133
230
  case REACT_LAZY_TYPE:
134
- key = value._payload;
231
+ parentReference = value._payload;
135
232
  var init = value._init;
136
233
  null === formData && (formData = new FormData());
137
234
  pendingParts++;
138
235
  try {
139
- var resolvedModel = init(key),
236
+ var resolvedModel = init(parentReference),
140
237
  lazyId = nextPartId++,
141
- partJSON = JSON.stringify(resolvedModel, resolveToJSON);
238
+ partJSON = serializeModel(resolvedModel, lazyId);
142
239
  formData.append(formFieldPrefix + lazyId, partJSON);
143
240
  return "$" + lazyId.toString(16);
144
241
  } catch (x) {
@@ -148,20 +245,20 @@ function processReply(
148
245
  "function" === typeof x.then
149
246
  ) {
150
247
  pendingParts++;
151
- var lazyId$21 = nextPartId++;
152
- resolvedModel = function () {
248
+ var lazyId$24 = nextPartId++;
249
+ parentReference = function () {
153
250
  try {
154
- var partJSON$22 = JSON.stringify(value, resolveToJSON),
155
- data$23 = formData;
156
- data$23.append(formFieldPrefix + lazyId$21, partJSON$22);
251
+ var partJSON$25 = serializeModel(value, lazyId$24),
252
+ data$26 = formData;
253
+ data$26.append(formFieldPrefix + lazyId$24, partJSON$25);
157
254
  pendingParts--;
158
- 0 === pendingParts && resolve(data$23);
255
+ 0 === pendingParts && resolve(data$26);
159
256
  } catch (reason) {
160
257
  reject(reason);
161
258
  }
162
259
  };
163
- x.then(resolvedModel, resolvedModel);
164
- return "$" + lazyId$21.toString(16);
260
+ x.then(parentReference, parentReference);
261
+ return "$" + lazyId$24.toString(16);
165
262
  }
166
263
  reject(x);
167
264
  return null;
@@ -175,9 +272,9 @@ function processReply(
175
272
  var promiseId = nextPartId++;
176
273
  value.then(function (partValue) {
177
274
  try {
178
- var partJSON$25 = JSON.stringify(partValue, resolveToJSON);
275
+ var partJSON$28 = serializeModel(partValue, promiseId);
179
276
  partValue = formData;
180
- partValue.append(formFieldPrefix + promiseId, partJSON$25);
277
+ partValue.append(formFieldPrefix + promiseId, partJSON$28);
181
278
  pendingParts--;
182
279
  0 === pendingParts && resolve(partValue);
183
280
  } catch (reason) {
@@ -186,97 +283,154 @@ function processReply(
186
283
  }, reject);
187
284
  return "$@" + promiseId.toString(16);
188
285
  }
286
+ parentReference = writtenObjects.get(value);
287
+ if (void 0 !== parentReference)
288
+ if (modelRoot === value) modelRoot = null;
289
+ else return parentReference;
290
+ else
291
+ -1 === key.indexOf(":") &&
292
+ ((parentReference = writtenObjects.get(this)),
293
+ void 0 !== parentReference &&
294
+ ((key = parentReference + ":" + key),
295
+ writtenObjects.set(value, key),
296
+ void 0 !== temporaryReferences &&
297
+ temporaryReferences.set(key, value)));
189
298
  if (isArrayImpl(value)) return value;
190
299
  if (value instanceof FormData) {
191
300
  null === formData && (formData = new FormData());
192
- var data$27 = formData;
193
- resolvedModel = nextPartId++;
194
- var prefix = formFieldPrefix + resolvedModel + "_";
301
+ var data$32 = formData;
302
+ key = nextPartId++;
303
+ var prefix = formFieldPrefix + key + "_";
195
304
  value.forEach(function (originalValue, originalKey) {
196
- data$27.append(prefix + originalKey, originalValue);
305
+ data$32.append(prefix + originalKey, originalValue);
197
306
  });
198
- return "$K" + resolvedModel.toString(16);
307
+ return "$K" + key.toString(16);
199
308
  }
200
309
  if (value instanceof Map)
201
310
  return (
202
- (resolvedModel = JSON.stringify(Array.from(value), resolveToJSON)),
311
+ (key = nextPartId++),
312
+ (parentReference = serializeModel(Array.from(value), key)),
203
313
  null === formData && (formData = new FormData()),
204
- (lazyId = nextPartId++),
205
- formData.append(formFieldPrefix + lazyId, resolvedModel),
206
- "$Q" + lazyId.toString(16)
314
+ formData.append(formFieldPrefix + key, parentReference),
315
+ "$Q" + key.toString(16)
207
316
  );
208
317
  if (value instanceof Set)
209
318
  return (
210
- (resolvedModel = JSON.stringify(Array.from(value), resolveToJSON)),
319
+ (key = nextPartId++),
320
+ (parentReference = serializeModel(Array.from(value), key)),
321
+ null === formData && (formData = new FormData()),
322
+ formData.append(formFieldPrefix + key, parentReference),
323
+ "$W" + key.toString(16)
324
+ );
325
+ if (value instanceof ArrayBuffer)
326
+ return (
327
+ (key = new Blob([value])),
328
+ (parentReference = nextPartId++),
211
329
  null === formData && (formData = new FormData()),
212
- (lazyId = nextPartId++),
213
- formData.append(formFieldPrefix + lazyId, resolvedModel),
214
- "$W" + lazyId.toString(16)
330
+ formData.append(formFieldPrefix + parentReference, key),
331
+ "$A" + parentReference.toString(16)
215
332
  );
216
- if ((resolvedModel = getIteratorFn(value)))
333
+ if (value instanceof Int8Array) return serializeTypedArray("O", value);
334
+ if (value instanceof Uint8Array) return serializeTypedArray("o", value);
335
+ if (value instanceof Uint8ClampedArray)
336
+ return serializeTypedArray("U", value);
337
+ if (value instanceof Int16Array) return serializeTypedArray("S", value);
338
+ if (value instanceof Uint16Array) return serializeTypedArray("s", value);
339
+ if (value instanceof Int32Array) return serializeTypedArray("L", value);
340
+ if (value instanceof Uint32Array) return serializeTypedArray("l", value);
341
+ if (value instanceof Float32Array) return serializeTypedArray("G", value);
342
+ if (value instanceof Float64Array) return serializeTypedArray("g", value);
343
+ if (value instanceof BigInt64Array)
344
+ return serializeTypedArray("M", value);
345
+ if (value instanceof BigUint64Array)
346
+ return serializeTypedArray("m", value);
347
+ if (value instanceof DataView) return serializeTypedArray("V", value);
348
+ if ("function" === typeof Blob && value instanceof Blob)
217
349
  return (
218
- (resolvedModel = resolvedModel.call(value)),
219
- resolvedModel === value
220
- ? ((resolvedModel = JSON.stringify(
221
- Array.from(resolvedModel),
222
- resolveToJSON
350
+ null === formData && (formData = new FormData()),
351
+ (key = nextPartId++),
352
+ formData.append(formFieldPrefix + key, value),
353
+ "$B" + key.toString(16)
354
+ );
355
+ if ((key = getIteratorFn(value)))
356
+ return (
357
+ (parentReference = key.call(value)),
358
+ parentReference === value
359
+ ? ((key = nextPartId++),
360
+ (parentReference = serializeModel(
361
+ Array.from(parentReference),
362
+ key
223
363
  )),
224
364
  null === formData && (formData = new FormData()),
225
- (lazyId = nextPartId++),
226
- formData.append(formFieldPrefix + lazyId, resolvedModel),
227
- "$i" + lazyId.toString(16))
228
- : Array.from(resolvedModel)
365
+ formData.append(formFieldPrefix + key, parentReference),
366
+ "$i" + key.toString(16))
367
+ : Array.from(parentReference)
229
368
  );
230
- resolvedModel = getPrototypeOf(value);
231
369
  if (
232
- resolvedModel !== ObjectPrototype &&
233
- (null === resolvedModel || null !== getPrototypeOf(resolvedModel))
370
+ "function" === typeof ReadableStream &&
371
+ value instanceof ReadableStream
372
+ )
373
+ return serializeReadableStream(value);
374
+ key = value[ASYNC_ITERATOR];
375
+ if ("function" === typeof key)
376
+ return serializeAsyncIterable(value, key.call(value));
377
+ key = getPrototypeOf(value);
378
+ if (
379
+ key !== ObjectPrototype &&
380
+ (null === key || null !== getPrototypeOf(key))
234
381
  ) {
235
382
  if (void 0 === temporaryReferences)
236
383
  throw Error(
237
384
  "Only plain objects, and a few built-ins, can be passed to Server Actions. Classes or null prototypes are not supported."
238
385
  );
239
- return (
240
- "$T" +
241
- writeTemporaryReference(temporaryReferences, value).toString(16)
242
- );
386
+ return "$T";
243
387
  }
244
388
  return value;
245
389
  }
246
390
  if ("string" === typeof value) {
247
391
  if ("Z" === value[value.length - 1] && this[key] instanceof Date)
248
392
  return "$D" + value;
249
- resolvedModel = "$" === value[0] ? "$" + value : value;
250
- return resolvedModel;
393
+ key = "$" === value[0] ? "$" + value : value;
394
+ return key;
251
395
  }
252
396
  if ("boolean" === typeof value) return value;
253
397
  if ("number" === typeof value) return serializeNumber(value);
254
398
  if ("undefined" === typeof value) return "$undefined";
255
399
  if ("function" === typeof value) {
256
- resolvedModel = knownServerReferences.get(value);
257
- if (void 0 !== resolvedModel)
400
+ parentReference = knownServerReferences.get(value);
401
+ if (void 0 !== parentReference)
258
402
  return (
259
- (resolvedModel = JSON.stringify(resolvedModel, resolveToJSON)),
403
+ (key = JSON.stringify(parentReference, resolveToJSON)),
260
404
  null === formData && (formData = new FormData()),
261
- (lazyId = nextPartId++),
262
- formData.set(formFieldPrefix + lazyId, resolvedModel),
263
- "$F" + lazyId.toString(16)
405
+ (parentReference = nextPartId++),
406
+ formData.set(formFieldPrefix + parentReference, key),
407
+ "$F" + parentReference.toString(16)
264
408
  );
265
- if (void 0 === temporaryReferences)
266
- throw Error(
267
- "Client Functions cannot be passed directly to Server Functions. Only Functions passed from the Server can be passed back again."
409
+ if (
410
+ void 0 !== temporaryReferences &&
411
+ -1 === key.indexOf(":") &&
412
+ ((parentReference = writtenObjects.get(this)),
413
+ void 0 !== parentReference)
414
+ )
415
+ return (
416
+ temporaryReferences.set(parentReference + ":" + key, value), "$T"
268
417
  );
269
- return (
270
- "$T" + writeTemporaryReference(temporaryReferences, value).toString(16)
418
+ throw Error(
419
+ "Client Functions cannot be passed directly to Server Functions. Only Functions passed from the Server can be passed back again."
271
420
  );
272
421
  }
273
422
  if ("symbol" === typeof value) {
274
- if (void 0 === temporaryReferences)
275
- throw Error(
276
- "Symbols cannot be passed to a Server Function without a temporary reference set. Pass a TemporaryReferenceSet to the options."
423
+ if (
424
+ void 0 !== temporaryReferences &&
425
+ -1 === key.indexOf(":") &&
426
+ ((parentReference = writtenObjects.get(this)),
427
+ void 0 !== parentReference)
428
+ )
429
+ return (
430
+ temporaryReferences.set(parentReference + ":" + key, value), "$T"
277
431
  );
278
- return (
279
- "$T" + writeTemporaryReference(temporaryReferences, value).toString(16)
432
+ throw Error(
433
+ "Symbols cannot be passed to a Server Function without a temporary reference set. Pass a TemporaryReferenceSet to the options."
280
434
  );
281
435
  }
282
436
  if ("bigint" === typeof value) return "$n" + value.toString(10);
@@ -286,10 +440,21 @@ function processReply(
286
440
  " is not supported as an argument to a Server Function."
287
441
  );
288
442
  }
443
+ function serializeModel(model, id) {
444
+ "object" === typeof model &&
445
+ null !== model &&
446
+ ((id = "$" + id.toString(16)),
447
+ writtenObjects.set(model, id),
448
+ void 0 !== temporaryReferences && temporaryReferences.set(id, model));
449
+ modelRoot = model;
450
+ return JSON.stringify(model, resolveToJSON);
451
+ }
289
452
  var nextPartId = 1,
290
453
  pendingParts = 0,
291
- formData = null;
292
- root = JSON.stringify(root, resolveToJSON);
454
+ formData = null,
455
+ writtenObjects = new WeakMap(),
456
+ modelRoot = root;
457
+ root = serializeModel(root, 0);
293
458
  null === formData
294
459
  ? resolve(root)
295
460
  : (formData.set(formFieldPrefix + "0", root),
@@ -490,6 +655,9 @@ function readChunk(chunk) {
490
655
  throw chunk.reason;
491
656
  }
492
657
  }
658
+ function createPendingChunk(response) {
659
+ return new Chunk("pending", null, null, response);
660
+ }
493
661
  function wakeChunk(listeners, value) {
494
662
  for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value);
495
663
  }
@@ -509,13 +677,41 @@ function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) {
509
677
  }
510
678
  }
511
679
  function triggerErrorOnChunk(chunk, error) {
512
- if ("pending" === chunk.status || "blocked" === chunk.status) {
680
+ if ("pending" !== chunk.status && "blocked" !== chunk.status)
681
+ chunk.reason.error(error);
682
+ else {
513
683
  var listeners = chunk.reason;
514
684
  chunk.status = "rejected";
515
685
  chunk.reason = error;
516
686
  null !== listeners && wakeChunk(listeners, error);
517
687
  }
518
688
  }
689
+ function createResolvedIteratorResultChunk(response, value, done) {
690
+ return new Chunk(
691
+ "resolved_model",
692
+ (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}",
693
+ null,
694
+ response
695
+ );
696
+ }
697
+ function resolveIteratorResultChunk(chunk, value, done) {
698
+ resolveModelChunk(
699
+ chunk,
700
+ (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}"
701
+ );
702
+ }
703
+ function resolveModelChunk(chunk, value) {
704
+ if ("pending" !== chunk.status) chunk.reason.enqueueModel(value);
705
+ else {
706
+ var resolveListeners = chunk.value,
707
+ rejectListeners = chunk.reason;
708
+ chunk.status = "resolved_model";
709
+ chunk.value = value;
710
+ null !== resolveListeners &&
711
+ (initializeModelChunk(chunk),
712
+ wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners));
713
+ }
714
+ }
519
715
  function resolveModuleChunk(chunk, value) {
520
716
  if ("pending" === chunk.status || "blocked" === chunk.status) {
521
717
  var resolveListeners = chunk.value,
@@ -587,12 +783,18 @@ function reportGlobalError(response, error) {
587
783
  function getChunk(response, id) {
588
784
  var chunks = response._chunks,
589
785
  chunk = chunks.get(id);
590
- chunk ||
591
- ((chunk = new Chunk("pending", null, null, response)),
592
- chunks.set(id, chunk));
786
+ chunk || ((chunk = createPendingChunk(response)), chunks.set(id, chunk));
593
787
  return chunk;
594
788
  }
595
- function createModelResolver(chunk, parentObject, key, cyclic, response, map) {
789
+ function createModelResolver(
790
+ chunk,
791
+ parentObject,
792
+ key,
793
+ cyclic,
794
+ response,
795
+ map,
796
+ path
797
+ ) {
596
798
  if (initializingChunkBlockedModel) {
597
799
  var blocked = initializingChunkBlockedModel;
598
800
  cyclic || blocked.deps++;
@@ -602,6 +804,7 @@ function createModelResolver(chunk, parentObject, key, cyclic, response, map) {
602
804
  value: null
603
805
  };
604
806
  return function (value) {
807
+ for (var i = 1; i < path.length; i++) value = value[path[i]];
605
808
  parentObject[key] = map(response, value);
606
809
  "" === key && null === blocked.value && (blocked.value = parentObject[key]);
607
810
  blocked.deps--;
@@ -634,7 +837,9 @@ function createServerReferenceProxy(response, metaData) {
634
837
  registerServerReference(proxy, metaData, response._encodeFormAction);
635
838
  return proxy;
636
839
  }
637
- function getOutlinedModel(response, id, parentObject, key, map) {
840
+ function getOutlinedModel(response, reference, parentObject, key, map) {
841
+ reference = reference.split(":");
842
+ var id = parseInt(reference[0], 16);
638
843
  id = getChunk(response, id);
639
844
  switch (id.status) {
640
845
  case "resolved_model":
@@ -645,7 +850,10 @@ function getOutlinedModel(response, id, parentObject, key, map) {
645
850
  }
646
851
  switch (id.status) {
647
852
  case "fulfilled":
648
- return map(response, id.value);
853
+ parentObject = id.value;
854
+ for (key = 1; key < reference.length; key++)
855
+ parentObject = parentObject[reference[key]];
856
+ return map(response, parentObject);
649
857
  case "pending":
650
858
  case "blocked":
651
859
  case "cyclic":
@@ -657,7 +865,8 @@ function getOutlinedModel(response, id, parentObject, key, map) {
657
865
  key,
658
866
  "cyclic" === id.status,
659
867
  response,
660
- map
868
+ map,
869
+ reference
661
870
  ),
662
871
  createModelReject(parentChunk)
663
872
  );
@@ -672,6 +881,9 @@ function createMap(response, model) {
672
881
  function createSet(response, model) {
673
882
  return new Set(model);
674
883
  }
884
+ function createBlob(response, model) {
885
+ return new Blob(model.slice(1), { type: model[0] });
886
+ }
675
887
  function createFormData(response, model) {
676
888
  response = new FormData();
677
889
  for (var i = 0; i < model.length; i++)
@@ -704,7 +916,7 @@ function parseModelString(response, parentObject, key, value) {
704
916
  return Symbol.for(value.slice(2));
705
917
  case "F":
706
918
  return (
707
- (value = parseInt(value.slice(2), 16)),
919
+ (value = value.slice(2)),
708
920
  getOutlinedModel(
709
921
  response,
710
922
  value,
@@ -714,37 +926,36 @@ function parseModelString(response, parentObject, key, value) {
714
926
  )
715
927
  );
716
928
  case "T":
717
- parentObject = parseInt(value.slice(2), 16);
929
+ parentObject = "$" + value.slice(2);
718
930
  response = response._tempRefs;
719
931
  if (null == response)
720
932
  throw Error(
721
933
  "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."
722
934
  );
723
- if (0 > parentObject || parentObject >= response.length)
724
- throw Error(
725
- "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."
726
- );
727
- return response[parentObject];
935
+ return response.get(parentObject);
728
936
  case "Q":
729
937
  return (
730
- (value = parseInt(value.slice(2), 16)),
938
+ (value = value.slice(2)),
731
939
  getOutlinedModel(response, value, parentObject, key, createMap)
732
940
  );
733
941
  case "W":
734
942
  return (
735
- (value = parseInt(value.slice(2), 16)),
943
+ (value = value.slice(2)),
736
944
  getOutlinedModel(response, value, parentObject, key, createSet)
737
945
  );
738
946
  case "B":
739
- return;
947
+ return (
948
+ (value = value.slice(2)),
949
+ getOutlinedModel(response, value, parentObject, key, createBlob)
950
+ );
740
951
  case "K":
741
952
  return (
742
- (value = parseInt(value.slice(2), 16)),
953
+ (value = value.slice(2)),
743
954
  getOutlinedModel(response, value, parentObject, key, createFormData)
744
955
  );
745
956
  case "i":
746
957
  return (
747
- (value = parseInt(value.slice(2), 16)),
958
+ (value = value.slice(2)),
748
959
  getOutlinedModel(response, value, parentObject, key, extractIterator)
749
960
  );
750
961
  case "I":
@@ -761,7 +972,7 @@ function parseModelString(response, parentObject, key, value) {
761
972
  return BigInt(value.slice(2));
762
973
  default:
763
974
  return (
764
- (value = parseInt(value.slice(1), 16)),
975
+ (value = value.slice(1)),
765
976
  getOutlinedModel(response, value, parentObject, key, createModel)
766
977
  );
767
978
  }
@@ -801,6 +1012,13 @@ function createResponse(
801
1012
  bundlerConfig._fromJSON = createFromJSONCallback(bundlerConfig);
802
1013
  return bundlerConfig;
803
1014
  }
1015
+ function resolveBuffer(response, id, buffer) {
1016
+ var chunks = response._chunks,
1017
+ chunk = chunks.get(id);
1018
+ chunk && "pending" !== chunk.status
1019
+ ? chunk.reason.enqueueValue(buffer)
1020
+ : chunks.set(id, new Chunk("fulfilled", buffer, null, response));
1021
+ }
804
1022
  function resolveModule(response, id, model) {
805
1023
  var chunks = response._chunks,
806
1024
  chunk = chunks.get(id);
@@ -834,6 +1052,367 @@ function resolveModule(response, id, model) {
834
1052
  new Chunk("resolved_module", clientReference, null, response)
835
1053
  );
836
1054
  }
1055
+ function resolveStream(response, id, stream, controller) {
1056
+ var chunks = response._chunks,
1057
+ chunk = chunks.get(id);
1058
+ chunk
1059
+ ? "pending" === chunk.status &&
1060
+ ((response = chunk.value),
1061
+ (chunk.status = "fulfilled"),
1062
+ (chunk.value = stream),
1063
+ (chunk.reason = controller),
1064
+ null !== response && wakeChunk(response, chunk.value))
1065
+ : chunks.set(id, new Chunk("fulfilled", stream, controller, response));
1066
+ }
1067
+ function startReadableStream(response, id, type) {
1068
+ var controller = null;
1069
+ type = new ReadableStream({
1070
+ type: type,
1071
+ start: function (c) {
1072
+ controller = c;
1073
+ }
1074
+ });
1075
+ var previousBlockedChunk = null;
1076
+ resolveStream(response, id, type, {
1077
+ enqueueValue: function (value) {
1078
+ null === previousBlockedChunk
1079
+ ? controller.enqueue(value)
1080
+ : previousBlockedChunk.then(function () {
1081
+ controller.enqueue(value);
1082
+ });
1083
+ },
1084
+ enqueueModel: function (json) {
1085
+ if (null === previousBlockedChunk) {
1086
+ var chunk = new Chunk("resolved_model", json, null, response);
1087
+ initializeModelChunk(chunk);
1088
+ "fulfilled" === chunk.status
1089
+ ? controller.enqueue(chunk.value)
1090
+ : (chunk.then(
1091
+ function (v) {
1092
+ return controller.enqueue(v);
1093
+ },
1094
+ function (e) {
1095
+ return controller.error(e);
1096
+ }
1097
+ ),
1098
+ (previousBlockedChunk = chunk));
1099
+ } else {
1100
+ chunk = previousBlockedChunk;
1101
+ var chunk$50 = createPendingChunk(response);
1102
+ chunk$50.then(
1103
+ function (v) {
1104
+ return controller.enqueue(v);
1105
+ },
1106
+ function (e) {
1107
+ return controller.error(e);
1108
+ }
1109
+ );
1110
+ previousBlockedChunk = chunk$50;
1111
+ chunk.then(function () {
1112
+ previousBlockedChunk === chunk$50 && (previousBlockedChunk = null);
1113
+ resolveModelChunk(chunk$50, json);
1114
+ });
1115
+ }
1116
+ },
1117
+ close: function () {
1118
+ if (null === previousBlockedChunk) controller.close();
1119
+ else {
1120
+ var blockedChunk = previousBlockedChunk;
1121
+ previousBlockedChunk = null;
1122
+ blockedChunk.then(function () {
1123
+ return controller.close();
1124
+ });
1125
+ }
1126
+ },
1127
+ error: function (error) {
1128
+ if (null === previousBlockedChunk) controller.error(error);
1129
+ else {
1130
+ var blockedChunk = previousBlockedChunk;
1131
+ previousBlockedChunk = null;
1132
+ blockedChunk.then(function () {
1133
+ return controller.error(error);
1134
+ });
1135
+ }
1136
+ }
1137
+ });
1138
+ }
1139
+ function asyncIterator() {
1140
+ return this;
1141
+ }
1142
+ function createIterator(next) {
1143
+ next = { next: next };
1144
+ next[ASYNC_ITERATOR] = asyncIterator;
1145
+ return next;
1146
+ }
1147
+ function startAsyncIterable(response, id, iterator) {
1148
+ var buffer = [],
1149
+ closed = !1,
1150
+ nextWriteIndex = 0,
1151
+ $jscomp$compprop0 = {};
1152
+ $jscomp$compprop0 =
1153
+ (($jscomp$compprop0[ASYNC_ITERATOR] = function () {
1154
+ var nextReadIndex = 0;
1155
+ return createIterator(function (arg) {
1156
+ if (void 0 !== arg)
1157
+ throw Error(
1158
+ "Values cannot be passed to next() of AsyncIterables passed to Client Components."
1159
+ );
1160
+ if (nextReadIndex === buffer.length) {
1161
+ if (closed)
1162
+ return new Chunk(
1163
+ "fulfilled",
1164
+ { done: !0, value: void 0 },
1165
+ null,
1166
+ response
1167
+ );
1168
+ buffer[nextReadIndex] = createPendingChunk(response);
1169
+ }
1170
+ return buffer[nextReadIndex++];
1171
+ });
1172
+ }),
1173
+ $jscomp$compprop0);
1174
+ resolveStream(
1175
+ response,
1176
+ id,
1177
+ iterator ? $jscomp$compprop0[ASYNC_ITERATOR]() : $jscomp$compprop0,
1178
+ {
1179
+ enqueueValue: function (value) {
1180
+ if (nextWriteIndex === buffer.length)
1181
+ buffer[nextWriteIndex] = new Chunk(
1182
+ "fulfilled",
1183
+ { done: !1, value: value },
1184
+ null,
1185
+ response
1186
+ );
1187
+ else {
1188
+ var chunk = buffer[nextWriteIndex],
1189
+ resolveListeners = chunk.value,
1190
+ rejectListeners = chunk.reason;
1191
+ chunk.status = "fulfilled";
1192
+ chunk.value = { done: !1, value: value };
1193
+ null !== resolveListeners &&
1194
+ wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners);
1195
+ }
1196
+ nextWriteIndex++;
1197
+ },
1198
+ enqueueModel: function (value) {
1199
+ nextWriteIndex === buffer.length
1200
+ ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
1201
+ response,
1202
+ value,
1203
+ !1
1204
+ ))
1205
+ : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !1);
1206
+ nextWriteIndex++;
1207
+ },
1208
+ close: function (value) {
1209
+ closed = !0;
1210
+ nextWriteIndex === buffer.length
1211
+ ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
1212
+ response,
1213
+ value,
1214
+ !0
1215
+ ))
1216
+ : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !0);
1217
+ for (nextWriteIndex++; nextWriteIndex < buffer.length; )
1218
+ resolveIteratorResultChunk(
1219
+ buffer[nextWriteIndex++],
1220
+ '"$undefined"',
1221
+ !0
1222
+ );
1223
+ },
1224
+ error: function (error) {
1225
+ closed = !0;
1226
+ for (
1227
+ nextWriteIndex === buffer.length &&
1228
+ (buffer[nextWriteIndex] = createPendingChunk(response));
1229
+ nextWriteIndex < buffer.length;
1230
+
1231
+ )
1232
+ triggerErrorOnChunk(buffer[nextWriteIndex++], error);
1233
+ }
1234
+ }
1235
+ );
1236
+ }
1237
+ function mergeBuffer(buffer, lastChunk) {
1238
+ for (var l = buffer.length, byteLength = lastChunk.length, i = 0; i < l; i++)
1239
+ byteLength += buffer[i].byteLength;
1240
+ byteLength = new Uint8Array(byteLength);
1241
+ for (var i$51 = (i = 0); i$51 < l; i$51++) {
1242
+ var chunk = buffer[i$51];
1243
+ byteLength.set(chunk, i);
1244
+ i += chunk.byteLength;
1245
+ }
1246
+ byteLength.set(lastChunk, i);
1247
+ return byteLength;
1248
+ }
1249
+ function resolveTypedArray(
1250
+ response,
1251
+ id,
1252
+ buffer,
1253
+ lastChunk,
1254
+ constructor,
1255
+ bytesPerElement
1256
+ ) {
1257
+ buffer =
1258
+ 0 === buffer.length && 0 === lastChunk.byteOffset % bytesPerElement
1259
+ ? lastChunk
1260
+ : mergeBuffer(buffer, lastChunk);
1261
+ constructor = new constructor(
1262
+ buffer.buffer,
1263
+ buffer.byteOffset,
1264
+ buffer.byteLength / bytesPerElement
1265
+ );
1266
+ resolveBuffer(response, id, constructor);
1267
+ }
1268
+ function processFullRow(response, id, tag, buffer, chunk) {
1269
+ switch (tag) {
1270
+ case 65:
1271
+ resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer);
1272
+ return;
1273
+ case 79:
1274
+ resolveTypedArray(response, id, buffer, chunk, Int8Array, 1);
1275
+ return;
1276
+ case 111:
1277
+ resolveBuffer(
1278
+ response,
1279
+ id,
1280
+ 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk)
1281
+ );
1282
+ return;
1283
+ case 85:
1284
+ resolveTypedArray(response, id, buffer, chunk, Uint8ClampedArray, 1);
1285
+ return;
1286
+ case 83:
1287
+ resolveTypedArray(response, id, buffer, chunk, Int16Array, 2);
1288
+ return;
1289
+ case 115:
1290
+ resolveTypedArray(response, id, buffer, chunk, Uint16Array, 2);
1291
+ return;
1292
+ case 76:
1293
+ resolveTypedArray(response, id, buffer, chunk, Int32Array, 4);
1294
+ return;
1295
+ case 108:
1296
+ resolveTypedArray(response, id, buffer, chunk, Uint32Array, 4);
1297
+ return;
1298
+ case 71:
1299
+ resolveTypedArray(response, id, buffer, chunk, Float32Array, 4);
1300
+ return;
1301
+ case 103:
1302
+ resolveTypedArray(response, id, buffer, chunk, Float64Array, 8);
1303
+ return;
1304
+ case 77:
1305
+ resolveTypedArray(response, id, buffer, chunk, BigInt64Array, 8);
1306
+ return;
1307
+ case 109:
1308
+ resolveTypedArray(response, id, buffer, chunk, BigUint64Array, 8);
1309
+ return;
1310
+ case 86:
1311
+ resolveTypedArray(response, id, buffer, chunk, DataView, 1);
1312
+ return;
1313
+ }
1314
+ for (
1315
+ var stringDecoder = response._stringDecoder, row = "", i = 0;
1316
+ i < buffer.length;
1317
+ i++
1318
+ )
1319
+ row += stringDecoder.decode(buffer[i], decoderOptions);
1320
+ row += stringDecoder.decode(chunk);
1321
+ switch (tag) {
1322
+ case 73:
1323
+ resolveModule(response, id, row);
1324
+ break;
1325
+ case 72:
1326
+ id = row[0];
1327
+ row = row.slice(1);
1328
+ response = JSON.parse(row, response._fromJSON);
1329
+ row = ReactDOMSharedInternals.d;
1330
+ switch (id) {
1331
+ case "D":
1332
+ row.D(response);
1333
+ break;
1334
+ case "C":
1335
+ "string" === typeof response
1336
+ ? row.C(response)
1337
+ : row.C(response[0], response[1]);
1338
+ break;
1339
+ case "L":
1340
+ id = response[0];
1341
+ tag = response[1];
1342
+ 3 === response.length ? row.L(id, tag, response[2]) : row.L(id, tag);
1343
+ break;
1344
+ case "m":
1345
+ "string" === typeof response
1346
+ ? row.m(response)
1347
+ : row.m(response[0], response[1]);
1348
+ break;
1349
+ case "X":
1350
+ "string" === typeof response
1351
+ ? row.X(response)
1352
+ : row.X(response[0], response[1]);
1353
+ break;
1354
+ case "S":
1355
+ "string" === typeof response
1356
+ ? row.S(response)
1357
+ : row.S(
1358
+ response[0],
1359
+ 0 === response[1] ? void 0 : response[1],
1360
+ 3 === response.length ? response[2] : void 0
1361
+ );
1362
+ break;
1363
+ case "M":
1364
+ "string" === typeof response
1365
+ ? row.M(response)
1366
+ : row.M(response[0], response[1]);
1367
+ }
1368
+ break;
1369
+ case 69:
1370
+ tag = JSON.parse(row).digest;
1371
+ row = Error(
1372
+ "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."
1373
+ );
1374
+ row.stack = "Error: " + row.message;
1375
+ row.digest = tag;
1376
+ tag = response._chunks;
1377
+ (buffer = tag.get(id))
1378
+ ? triggerErrorOnChunk(buffer, row)
1379
+ : tag.set(id, new Chunk("rejected", null, row, response));
1380
+ break;
1381
+ case 84:
1382
+ tag = response._chunks;
1383
+ (buffer = tag.get(id)) && "pending" !== buffer.status
1384
+ ? buffer.reason.enqueueValue(row)
1385
+ : tag.set(id, new Chunk("fulfilled", row, null, response));
1386
+ break;
1387
+ case 68:
1388
+ case 87:
1389
+ throw Error(
1390
+ "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."
1391
+ );
1392
+ case 82:
1393
+ startReadableStream(response, id, void 0);
1394
+ break;
1395
+ case 114:
1396
+ startReadableStream(response, id, "bytes");
1397
+ break;
1398
+ case 88:
1399
+ startAsyncIterable(response, id, !1);
1400
+ break;
1401
+ case 120:
1402
+ startAsyncIterable(response, id, !0);
1403
+ break;
1404
+ case 67:
1405
+ (response = response._chunks.get(id)) &&
1406
+ "fulfilled" === response.status &&
1407
+ response.reason.close("" === row ? '"$undefined"' : row);
1408
+ break;
1409
+ default:
1410
+ (tag = response._chunks),
1411
+ (buffer = tag.get(id))
1412
+ ? resolveModelChunk(buffer, row)
1413
+ : tag.set(id, new Chunk("resolved_model", row, null, response));
1414
+ }
1415
+ }
837
1416
  function createFromJSONCallback(response) {
838
1417
  return function (key, value) {
839
1418
  return "string" === typeof value
@@ -890,7 +1469,20 @@ exports.createFromNodeStream = function (stream, ssrManifest, options) {
890
1469
  continue;
891
1470
  case 1:
892
1471
  rowState = chunk[i];
893
- 84 === rowState
1472
+ 84 === rowState ||
1473
+ 65 === rowState ||
1474
+ 79 === rowState ||
1475
+ 111 === rowState ||
1476
+ 85 === rowState ||
1477
+ 83 === rowState ||
1478
+ 115 === rowState ||
1479
+ 76 === rowState ||
1480
+ 108 === rowState ||
1481
+ 71 === rowState ||
1482
+ 103 === rowState ||
1483
+ 77 === rowState ||
1484
+ 109 === rowState ||
1485
+ 86 === rowState
894
1486
  ? ((rowTag = rowState), (rowState = 2), i++)
895
1487
  : (64 < rowState && 91 > rowState) ||
896
1488
  114 === rowState ||
@@ -913,113 +1505,14 @@ exports.createFromNodeStream = function (stream, ssrManifest, options) {
913
1505
  (lastIdx = i + rowLength), lastIdx > chunk.length && (lastIdx = -1);
914
1506
  }
915
1507
  var offset = chunk.byteOffset + i;
916
- if (-1 < lastIdx) {
917
- rowLength = new Uint8Array(chunk.buffer, offset, lastIdx - i);
918
- i = rowTag;
919
- offset = response._stringDecoder;
920
- rowTag = "";
921
- for (var i$jscomp$0 = 0; i$jscomp$0 < buffer.length; i$jscomp$0++)
922
- rowTag += offset.decode(buffer[i$jscomp$0], decoderOptions);
923
- rowTag += offset.decode(rowLength);
924
- switch (i) {
925
- case 73:
926
- resolveModule(response, rowID, rowTag);
927
- break;
928
- case 72:
929
- rowID = rowTag[0];
930
- rowTag = rowTag.slice(1);
931
- rowTag = JSON.parse(rowTag, response._fromJSON);
932
- rowLength = ReactDOMSharedInternals.d;
933
- switch (rowID) {
934
- case "D":
935
- rowLength.D(rowTag);
936
- break;
937
- case "C":
938
- "string" === typeof rowTag
939
- ? rowLength.C(rowTag)
940
- : rowLength.C(rowTag[0], rowTag[1]);
941
- break;
942
- case "L":
943
- rowID = rowTag[0];
944
- i = rowTag[1];
945
- 3 === rowTag.length
946
- ? rowLength.L(rowID, i, rowTag[2])
947
- : rowLength.L(rowID, i);
948
- break;
949
- case "m":
950
- "string" === typeof rowTag
951
- ? rowLength.m(rowTag)
952
- : rowLength.m(rowTag[0], rowTag[1]);
953
- break;
954
- case "X":
955
- "string" === typeof rowTag
956
- ? rowLength.X(rowTag)
957
- : rowLength.X(rowTag[0], rowTag[1]);
958
- break;
959
- case "S":
960
- "string" === typeof rowTag
961
- ? rowLength.S(rowTag)
962
- : rowLength.S(
963
- rowTag[0],
964
- 0 === rowTag[1] ? void 0 : rowTag[1],
965
- 3 === rowTag.length ? rowTag[2] : void 0
966
- );
967
- break;
968
- case "M":
969
- "string" === typeof rowTag
970
- ? rowLength.M(rowTag)
971
- : rowLength.M(rowTag[0], rowTag[1]);
972
- }
973
- break;
974
- case 69:
975
- rowTag = JSON.parse(rowTag);
976
- rowLength = rowTag.digest;
977
- rowTag = Error(
978
- "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."
979
- );
980
- rowTag.stack = "Error: " + rowTag.message;
981
- rowTag.digest = rowLength;
982
- rowLength = response._chunks;
983
- (i = rowLength.get(rowID))
984
- ? triggerErrorOnChunk(i, rowTag)
985
- : rowLength.set(
986
- rowID,
987
- new Chunk("rejected", null, rowTag, response)
988
- );
989
- break;
990
- case 84:
991
- response._chunks.set(
992
- rowID,
993
- new Chunk("fulfilled", rowTag, null, response)
994
- );
995
- break;
996
- case 68:
997
- case 87:
998
- throw Error(
999
- "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."
1000
- );
1001
- default:
1002
- (rowLength = response._chunks),
1003
- (i = rowLength.get(rowID))
1004
- ? ((rowID = i),
1005
- "pending" === rowID.status &&
1006
- ((rowLength = rowID.value),
1007
- (i = rowID.reason),
1008
- (rowID.status = "resolved_model"),
1009
- (rowID.value = rowTag),
1010
- null !== rowLength &&
1011
- (initializeModelChunk(rowID),
1012
- wakeChunkIfInitialized(rowID, rowLength, i))))
1013
- : rowLength.set(
1014
- rowID,
1015
- new Chunk("resolved_model", rowTag, null, response)
1016
- );
1017
- }
1018
- i = lastIdx;
1019
- 3 === rowState && i++;
1020
- rowLength = rowID = rowTag = rowState = 0;
1021
- buffer.length = 0;
1022
- } else {
1508
+ if (-1 < lastIdx)
1509
+ (rowLength = new Uint8Array(chunk.buffer, offset, lastIdx - i)),
1510
+ processFullRow(response, rowID, rowTag, buffer, rowLength),
1511
+ (i = lastIdx),
1512
+ 3 === rowState && i++,
1513
+ (rowLength = rowID = rowTag = rowState = 0),
1514
+ (buffer.length = 0);
1515
+ else {
1023
1516
  chunk = new Uint8Array(chunk.buffer, offset, chunk.byteLength - i);
1024
1517
  buffer.push(chunk);
1025
1518
  rowLength -= chunk.byteLength;