react-server-dom-webpack 19.0.0-canary-cf5ab8b8b2-20240425 → 19.0.0-rc-915b914b3a-20240515

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;
@@ -190,115 +287,167 @@ function processReply(
190
287
  null === formData && (formData = new FormData());
191
288
  pendingParts++;
192
289
  var promiseId = nextPartId++;
193
- value.then(
194
- function (partValue) {
195
- try {
196
- var partJSON$25 = JSON.stringify(partValue, resolveToJSON);
197
- partValue = formData;
198
- partValue.append(formFieldPrefix + promiseId, partJSON$25);
199
- pendingParts--;
200
- 0 === pendingParts && resolve(partValue);
201
- } catch (reason) {
202
- reject(reason);
203
- }
204
- },
205
- function (reason) {
290
+ value.then(function (partValue) {
291
+ try {
292
+ var partJSON$28 = serializeModel(partValue, promiseId);
293
+ partValue = formData;
294
+ partValue.append(formFieldPrefix + promiseId, partJSON$28);
295
+ pendingParts--;
296
+ 0 === pendingParts && resolve(partValue);
297
+ } catch (reason) {
206
298
  reject(reason);
207
299
  }
208
- );
300
+ }, reject);
209
301
  return "$@" + promiseId.toString(16);
210
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)));
211
315
  if (isArrayImpl(value)) return value;
212
316
  if (value instanceof FormData) {
213
317
  null === formData && (formData = new FormData());
214
- var data$27 = formData;
215
- resolvedModel = nextPartId++;
216
- var prefix = formFieldPrefix + resolvedModel + "_";
318
+ var data$32 = formData;
319
+ key = nextPartId++;
320
+ var prefix = formFieldPrefix + key + "_";
217
321
  value.forEach(function (originalValue, originalKey) {
218
- data$27.append(prefix + originalKey, originalValue);
322
+ data$32.append(prefix + originalKey, originalValue);
219
323
  });
220
- return "$K" + resolvedModel.toString(16);
324
+ return "$K" + key.toString(16);
221
325
  }
222
326
  if (value instanceof Map)
223
327
  return (
224
- (resolvedModel = JSON.stringify(Array.from(value), resolveToJSON)),
328
+ (key = nextPartId++),
329
+ (parentReference = serializeModel(Array.from(value), key)),
225
330
  null === formData && (formData = new FormData()),
226
- (lazyId = nextPartId++),
227
- formData.append(formFieldPrefix + lazyId, resolvedModel),
228
- "$Q" + lazyId.toString(16)
331
+ formData.append(formFieldPrefix + key, parentReference),
332
+ "$Q" + key.toString(16)
229
333
  );
230
334
  if (value instanceof Set)
231
335
  return (
232
- (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++),
233
346
  null === formData && (formData = new FormData()),
234
- (lazyId = nextPartId++),
235
- formData.append(formFieldPrefix + lazyId, resolvedModel),
236
- "$W" + lazyId.toString(16)
347
+ formData.append(formFieldPrefix + parentReference, key),
348
+ "$A" + parentReference.toString(16)
237
349
  );
238
- 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)
239
366
  return (
240
- (resolvedModel = resolvedModel.call(value)),
241
- resolvedModel === value
242
- ? ((resolvedModel = JSON.stringify(
243
- Array.from(resolvedModel),
244
- 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
245
380
  )),
246
381
  null === formData && (formData = new FormData()),
247
- (lazyId = nextPartId++),
248
- formData.append(formFieldPrefix + lazyId, resolvedModel),
249
- "$i" + lazyId.toString(16))
250
- : Array.from(resolvedModel)
382
+ formData.append(formFieldPrefix + key, parentReference),
383
+ "$i" + key.toString(16))
384
+ : Array.from(parentReference)
251
385
  );
252
- resolvedModel = getPrototypeOf(value);
253
386
  if (
254
- resolvedModel !== ObjectPrototype &&
255
- (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))
256
398
  ) {
257
399
  if (void 0 === temporaryReferences)
258
400
  throw Error(
259
401
  "Only plain objects, and a few built-ins, can be passed to Server Actions. Classes or null prototypes are not supported."
260
402
  );
261
- return (
262
- "$T" +
263
- writeTemporaryReference(temporaryReferences, value).toString(16)
264
- );
403
+ return "$T";
265
404
  }
266
405
  return value;
267
406
  }
268
407
  if ("string" === typeof value) {
269
408
  if ("Z" === value[value.length - 1] && this[key] instanceof Date)
270
409
  return "$D" + value;
271
- resolvedModel = "$" === value[0] ? "$" + value : value;
272
- return resolvedModel;
410
+ key = "$" === value[0] ? "$" + value : value;
411
+ return key;
273
412
  }
274
413
  if ("boolean" === typeof value) return value;
275
414
  if ("number" === typeof value) return serializeNumber(value);
276
415
  if ("undefined" === typeof value) return "$undefined";
277
416
  if ("function" === typeof value) {
278
- resolvedModel = knownServerReferences.get(value);
279
- if (void 0 !== resolvedModel)
417
+ parentReference = knownServerReferences.get(value);
418
+ if (void 0 !== parentReference)
280
419
  return (
281
- (resolvedModel = JSON.stringify(resolvedModel, resolveToJSON)),
420
+ (key = JSON.stringify(parentReference, resolveToJSON)),
282
421
  null === formData && (formData = new FormData()),
283
- (lazyId = nextPartId++),
284
- formData.set(formFieldPrefix + lazyId, resolvedModel),
285
- "$F" + lazyId.toString(16)
422
+ (parentReference = nextPartId++),
423
+ formData.set(formFieldPrefix + parentReference, key),
424
+ "$F" + parentReference.toString(16)
286
425
  );
287
- if (void 0 === temporaryReferences)
288
- throw Error(
289
- "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"
290
434
  );
291
- return (
292
- "$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."
293
437
  );
294
438
  }
295
439
  if ("symbol" === typeof value) {
296
- if (void 0 === temporaryReferences)
297
- throw Error(
298
- "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"
299
448
  );
300
- return (
301
- "$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."
302
451
  );
303
452
  }
304
453
  if ("bigint" === typeof value) return "$n" + value.toString(10);
@@ -308,10 +457,21 @@ function processReply(
308
457
  " is not supported as an argument to a Server Function."
309
458
  );
310
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
+ }
311
469
  var nextPartId = 1,
312
470
  pendingParts = 0,
313
- formData = null;
314
- root = JSON.stringify(root, resolveToJSON);
471
+ formData = null,
472
+ writtenObjects = new WeakMap(),
473
+ modelRoot = root;
474
+ root = serializeModel(root, 0);
315
475
  null === formData
316
476
  ? resolve(root)
317
477
  : (formData.set(formFieldPrefix + "0", root),
@@ -512,6 +672,9 @@ function readChunk(chunk) {
512
672
  throw chunk.reason;
513
673
  }
514
674
  }
675
+ function createPendingChunk(response) {
676
+ return new Chunk("pending", null, null, response);
677
+ }
515
678
  function wakeChunk(listeners, value) {
516
679
  for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value);
517
680
  }
@@ -531,13 +694,41 @@ function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) {
531
694
  }
532
695
  }
533
696
  function triggerErrorOnChunk(chunk, error) {
534
- if ("pending" === chunk.status || "blocked" === chunk.status) {
697
+ if ("pending" !== chunk.status && "blocked" !== chunk.status)
698
+ chunk.reason.error(error);
699
+ else {
535
700
  var listeners = chunk.reason;
536
701
  chunk.status = "rejected";
537
702
  chunk.reason = error;
538
703
  null !== listeners && wakeChunk(listeners, error);
539
704
  }
540
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
+ }
541
732
  function resolveModuleChunk(chunk, value) {
542
733
  if ("pending" === chunk.status || "blocked" === chunk.status) {
543
734
  var resolveListeners = chunk.value,
@@ -613,12 +804,18 @@ function reportGlobalError(response, error) {
613
804
  function getChunk(response, id) {
614
805
  var chunks = response._chunks,
615
806
  chunk = chunks.get(id);
616
- chunk ||
617
- ((chunk = new Chunk("pending", null, null, response)),
618
- chunks.set(id, chunk));
807
+ chunk || ((chunk = createPendingChunk(response)), chunks.set(id, chunk));
619
808
  return chunk;
620
809
  }
621
- 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
+ ) {
622
819
  if (initializingChunkBlockedModel) {
623
820
  var blocked = initializingChunkBlockedModel;
624
821
  cyclic || blocked.deps++;
@@ -628,6 +825,7 @@ function createModelResolver(chunk, parentObject, key, cyclic, response, map) {
628
825
  value: null
629
826
  };
630
827
  return function (value) {
828
+ for (var i = 1; i < path.length; i++) value = value[path[i]];
631
829
  parentObject[key] = map(response, value);
632
830
  "" === key && null === blocked.value && (blocked.value = parentObject[key]);
633
831
  blocked.deps--;
@@ -660,7 +858,9 @@ function createServerReferenceProxy(response, metaData) {
660
858
  registerServerReference(proxy, metaData, response._encodeFormAction);
661
859
  return proxy;
662
860
  }
663
- 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);
664
864
  id = getChunk(response, id);
665
865
  switch (id.status) {
666
866
  case "resolved_model":
@@ -671,7 +871,10 @@ function getOutlinedModel(response, id, parentObject, key, map) {
671
871
  }
672
872
  switch (id.status) {
673
873
  case "fulfilled":
674
- 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);
675
878
  case "pending":
676
879
  case "blocked":
677
880
  case "cyclic":
@@ -683,7 +886,8 @@ function getOutlinedModel(response, id, parentObject, key, map) {
683
886
  key,
684
887
  "cyclic" === id.status,
685
888
  response,
686
- map
889
+ map,
890
+ reference
687
891
  ),
688
892
  createModelReject(parentChunk)
689
893
  );
@@ -698,6 +902,9 @@ function createMap(response, model) {
698
902
  function createSet(response, model) {
699
903
  return new Set(model);
700
904
  }
905
+ function createBlob(response, model) {
906
+ return new Blob(model.slice(1), { type: model[0] });
907
+ }
701
908
  function createFormData(response, model) {
702
909
  response = new FormData();
703
910
  for (var i = 0; i < model.length; i++)
@@ -730,7 +937,7 @@ function parseModelString(response, parentObject, key, value) {
730
937
  return Symbol.for(value.slice(2));
731
938
  case "F":
732
939
  return (
733
- (value = parseInt(value.slice(2), 16)),
940
+ (value = value.slice(2)),
734
941
  getOutlinedModel(
735
942
  response,
736
943
  value,
@@ -740,37 +947,36 @@ function parseModelString(response, parentObject, key, value) {
740
947
  )
741
948
  );
742
949
  case "T":
743
- parentObject = parseInt(value.slice(2), 16);
950
+ parentObject = "$" + value.slice(2);
744
951
  response = response._tempRefs;
745
952
  if (null == response)
746
953
  throw Error(
747
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."
748
955
  );
749
- if (0 > parentObject || parentObject >= response.length)
750
- throw Error(
751
- "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."
752
- );
753
- return response[parentObject];
956
+ return response.get(parentObject);
754
957
  case "Q":
755
958
  return (
756
- (value = parseInt(value.slice(2), 16)),
959
+ (value = value.slice(2)),
757
960
  getOutlinedModel(response, value, parentObject, key, createMap)
758
961
  );
759
962
  case "W":
760
963
  return (
761
- (value = parseInt(value.slice(2), 16)),
964
+ (value = value.slice(2)),
762
965
  getOutlinedModel(response, value, parentObject, key, createSet)
763
966
  );
764
967
  case "B":
765
- return;
968
+ return (
969
+ (value = value.slice(2)),
970
+ getOutlinedModel(response, value, parentObject, key, createBlob)
971
+ );
766
972
  case "K":
767
973
  return (
768
- (value = parseInt(value.slice(2), 16)),
974
+ (value = value.slice(2)),
769
975
  getOutlinedModel(response, value, parentObject, key, createFormData)
770
976
  );
771
977
  case "i":
772
978
  return (
773
- (value = parseInt(value.slice(2), 16)),
979
+ (value = value.slice(2)),
774
980
  getOutlinedModel(response, value, parentObject, key, extractIterator)
775
981
  );
776
982
  case "I":
@@ -787,7 +993,7 @@ function parseModelString(response, parentObject, key, value) {
787
993
  return BigInt(value.slice(2));
788
994
  default:
789
995
  return (
790
- (value = parseInt(value.slice(1), 16)),
996
+ (value = value.slice(1)),
791
997
  getOutlinedModel(response, value, parentObject, key, createModel)
792
998
  );
793
999
  }
@@ -827,6 +1033,13 @@ function createResponse(
827
1033
  bundlerConfig._fromJSON = createFromJSONCallback(bundlerConfig);
828
1034
  return bundlerConfig;
829
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
+ }
830
1043
  function resolveModule(response, id, model) {
831
1044
  var chunks = response._chunks,
832
1045
  chunk = chunks.get(id);
@@ -860,6 +1073,367 @@ function resolveModule(response, id, model) {
860
1073
  new Chunk("resolved_module", clientReference, null, response)
861
1074
  );
862
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
+ }
863
1437
  function createFromJSONCallback(response) {
864
1438
  return function (key, value) {
865
1439
  return "string" === typeof value
@@ -916,7 +1490,20 @@ exports.createFromNodeStream = function (stream, ssrManifest, options) {
916
1490
  continue;
917
1491
  case 1:
918
1492
  rowState = chunk[i];
919
- 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
920
1507
  ? ((rowTag = rowState), (rowState = 2), i++)
921
1508
  : (64 < rowState && 91 > rowState) ||
922
1509
  114 === rowState ||
@@ -939,113 +1526,14 @@ exports.createFromNodeStream = function (stream, ssrManifest, options) {
939
1526
  (lastIdx = i + rowLength), lastIdx > chunk.length && (lastIdx = -1);
940
1527
  }
941
1528
  var offset = chunk.byteOffset + i;
942
- if (-1 < lastIdx) {
943
- rowLength = new Uint8Array(chunk.buffer, offset, lastIdx - i);
944
- i = rowTag;
945
- offset = response._stringDecoder;
946
- rowTag = "";
947
- for (var i$jscomp$0 = 0; i$jscomp$0 < buffer.length; i$jscomp$0++)
948
- rowTag += offset.decode(buffer[i$jscomp$0], decoderOptions);
949
- rowTag += offset.decode(rowLength);
950
- switch (i) {
951
- case 73:
952
- resolveModule(response, rowID, rowTag);
953
- break;
954
- case 72:
955
- rowID = rowTag[0];
956
- rowTag = rowTag.slice(1);
957
- rowTag = JSON.parse(rowTag, response._fromJSON);
958
- rowLength = ReactDOMSharedInternals.d;
959
- switch (rowID) {
960
- case "D":
961
- rowLength.D(rowTag);
962
- break;
963
- case "C":
964
- "string" === typeof rowTag
965
- ? rowLength.C(rowTag)
966
- : rowLength.C(rowTag[0], rowTag[1]);
967
- break;
968
- case "L":
969
- rowID = rowTag[0];
970
- i = rowTag[1];
971
- 3 === rowTag.length
972
- ? rowLength.L(rowID, i, rowTag[2])
973
- : rowLength.L(rowID, i);
974
- break;
975
- case "m":
976
- "string" === typeof rowTag
977
- ? rowLength.m(rowTag)
978
- : rowLength.m(rowTag[0], rowTag[1]);
979
- break;
980
- case "X":
981
- "string" === typeof rowTag
982
- ? rowLength.X(rowTag)
983
- : rowLength.X(rowTag[0], rowTag[1]);
984
- break;
985
- case "S":
986
- "string" === typeof rowTag
987
- ? rowLength.S(rowTag)
988
- : rowLength.S(
989
- rowTag[0],
990
- 0 === rowTag[1] ? void 0 : rowTag[1],
991
- 3 === rowTag.length ? rowTag[2] : void 0
992
- );
993
- break;
994
- case "M":
995
- "string" === typeof rowTag
996
- ? rowLength.M(rowTag)
997
- : rowLength.M(rowTag[0], rowTag[1]);
998
- }
999
- break;
1000
- case 69:
1001
- rowTag = JSON.parse(rowTag);
1002
- rowLength = rowTag.digest;
1003
- rowTag = Error(
1004
- "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."
1005
- );
1006
- rowTag.stack = "Error: " + rowTag.message;
1007
- rowTag.digest = rowLength;
1008
- rowLength = response._chunks;
1009
- (i = rowLength.get(rowID))
1010
- ? triggerErrorOnChunk(i, rowTag)
1011
- : rowLength.set(
1012
- rowID,
1013
- new Chunk("rejected", null, rowTag, response)
1014
- );
1015
- break;
1016
- case 84:
1017
- response._chunks.set(
1018
- rowID,
1019
- new Chunk("fulfilled", rowTag, null, response)
1020
- );
1021
- break;
1022
- case 68:
1023
- case 87:
1024
- throw Error(
1025
- "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."
1026
- );
1027
- default:
1028
- (rowLength = response._chunks),
1029
- (i = rowLength.get(rowID))
1030
- ? ((rowID = i),
1031
- "pending" === rowID.status &&
1032
- ((rowLength = rowID.value),
1033
- (i = rowID.reason),
1034
- (rowID.status = "resolved_model"),
1035
- (rowID.value = rowTag),
1036
- null !== rowLength &&
1037
- (initializeModelChunk(rowID),
1038
- wakeChunkIfInitialized(rowID, rowLength, i))))
1039
- : rowLength.set(
1040
- rowID,
1041
- new Chunk("resolved_model", rowTag, null, response)
1042
- );
1043
- }
1044
- i = lastIdx;
1045
- 3 === rowState && i++;
1046
- rowLength = rowID = rowTag = rowState = 0;
1047
- buffer.length = 0;
1048
- } 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 {
1049
1537
  chunk = new Uint8Array(chunk.buffer, offset, chunk.byteLength - i);
1050
1538
  buffer.push(chunk);
1051
1539
  rowLength -= chunk.byteLength;