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.
@@ -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;
@@ -173,115 +270,167 @@ function processReply(
173
270
  null === formData && (formData = new FormData());
174
271
  pendingParts++;
175
272
  var promiseId = nextPartId++;
176
- value.then(
177
- function (partValue) {
178
- try {
179
- var partJSON$25 = JSON.stringify(partValue, resolveToJSON);
180
- partValue = formData;
181
- partValue.append(formFieldPrefix + promiseId, partJSON$25);
182
- pendingParts--;
183
- 0 === pendingParts && resolve(partValue);
184
- } catch (reason) {
185
- reject(reason);
186
- }
187
- },
188
- function (reason) {
273
+ value.then(function (partValue) {
274
+ try {
275
+ var partJSON$28 = serializeModel(partValue, promiseId);
276
+ partValue = formData;
277
+ partValue.append(formFieldPrefix + promiseId, partJSON$28);
278
+ pendingParts--;
279
+ 0 === pendingParts && resolve(partValue);
280
+ } catch (reason) {
189
281
  reject(reason);
190
282
  }
191
- );
283
+ }, reject);
192
284
  return "$@" + promiseId.toString(16);
193
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)));
194
298
  if (isArrayImpl(value)) return value;
195
299
  if (value instanceof FormData) {
196
300
  null === formData && (formData = new FormData());
197
- var data$27 = formData;
198
- resolvedModel = nextPartId++;
199
- var prefix = formFieldPrefix + resolvedModel + "_";
301
+ var data$32 = formData;
302
+ key = nextPartId++;
303
+ var prefix = formFieldPrefix + key + "_";
200
304
  value.forEach(function (originalValue, originalKey) {
201
- data$27.append(prefix + originalKey, originalValue);
305
+ data$32.append(prefix + originalKey, originalValue);
202
306
  });
203
- return "$K" + resolvedModel.toString(16);
307
+ return "$K" + key.toString(16);
204
308
  }
205
309
  if (value instanceof Map)
206
310
  return (
207
- (resolvedModel = JSON.stringify(Array.from(value), resolveToJSON)),
311
+ (key = nextPartId++),
312
+ (parentReference = serializeModel(Array.from(value), key)),
208
313
  null === formData && (formData = new FormData()),
209
- (lazyId = nextPartId++),
210
- formData.append(formFieldPrefix + lazyId, resolvedModel),
211
- "$Q" + lazyId.toString(16)
314
+ formData.append(formFieldPrefix + key, parentReference),
315
+ "$Q" + key.toString(16)
212
316
  );
213
317
  if (value instanceof Set)
214
318
  return (
215
- (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++),
216
329
  null === formData && (formData = new FormData()),
217
- (lazyId = nextPartId++),
218
- formData.append(formFieldPrefix + lazyId, resolvedModel),
219
- "$W" + lazyId.toString(16)
330
+ formData.append(formFieldPrefix + parentReference, key),
331
+ "$A" + parentReference.toString(16)
220
332
  );
221
- 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)
222
349
  return (
223
- (resolvedModel = resolvedModel.call(value)),
224
- resolvedModel === value
225
- ? ((resolvedModel = JSON.stringify(
226
- Array.from(resolvedModel),
227
- 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
228
363
  )),
229
364
  null === formData && (formData = new FormData()),
230
- (lazyId = nextPartId++),
231
- formData.append(formFieldPrefix + lazyId, resolvedModel),
232
- "$i" + lazyId.toString(16))
233
- : Array.from(resolvedModel)
365
+ formData.append(formFieldPrefix + key, parentReference),
366
+ "$i" + key.toString(16))
367
+ : Array.from(parentReference)
234
368
  );
235
- resolvedModel = getPrototypeOf(value);
236
369
  if (
237
- resolvedModel !== ObjectPrototype &&
238
- (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))
239
381
  ) {
240
382
  if (void 0 === temporaryReferences)
241
383
  throw Error(
242
384
  "Only plain objects, and a few built-ins, can be passed to Server Actions. Classes or null prototypes are not supported."
243
385
  );
244
- return (
245
- "$T" +
246
- writeTemporaryReference(temporaryReferences, value).toString(16)
247
- );
386
+ return "$T";
248
387
  }
249
388
  return value;
250
389
  }
251
390
  if ("string" === typeof value) {
252
391
  if ("Z" === value[value.length - 1] && this[key] instanceof Date)
253
392
  return "$D" + value;
254
- resolvedModel = "$" === value[0] ? "$" + value : value;
255
- return resolvedModel;
393
+ key = "$" === value[0] ? "$" + value : value;
394
+ return key;
256
395
  }
257
396
  if ("boolean" === typeof value) return value;
258
397
  if ("number" === typeof value) return serializeNumber(value);
259
398
  if ("undefined" === typeof value) return "$undefined";
260
399
  if ("function" === typeof value) {
261
- resolvedModel = knownServerReferences.get(value);
262
- if (void 0 !== resolvedModel)
400
+ parentReference = knownServerReferences.get(value);
401
+ if (void 0 !== parentReference)
263
402
  return (
264
- (resolvedModel = JSON.stringify(resolvedModel, resolveToJSON)),
403
+ (key = JSON.stringify(parentReference, resolveToJSON)),
265
404
  null === formData && (formData = new FormData()),
266
- (lazyId = nextPartId++),
267
- formData.set(formFieldPrefix + lazyId, resolvedModel),
268
- "$F" + lazyId.toString(16)
405
+ (parentReference = nextPartId++),
406
+ formData.set(formFieldPrefix + parentReference, key),
407
+ "$F" + parentReference.toString(16)
269
408
  );
270
- if (void 0 === temporaryReferences)
271
- throw Error(
272
- "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"
273
417
  );
274
- return (
275
- "$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."
276
420
  );
277
421
  }
278
422
  if ("symbol" === typeof value) {
279
- if (void 0 === temporaryReferences)
280
- throw Error(
281
- "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"
282
431
  );
283
- return (
284
- "$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."
285
434
  );
286
435
  }
287
436
  if ("bigint" === typeof value) return "$n" + value.toString(10);
@@ -291,10 +440,21 @@ function processReply(
291
440
  " is not supported as an argument to a Server Function."
292
441
  );
293
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
+ }
294
452
  var nextPartId = 1,
295
453
  pendingParts = 0,
296
- formData = null;
297
- root = JSON.stringify(root, resolveToJSON);
454
+ formData = null,
455
+ writtenObjects = new WeakMap(),
456
+ modelRoot = root;
457
+ root = serializeModel(root, 0);
298
458
  null === formData
299
459
  ? resolve(root)
300
460
  : (formData.set(formFieldPrefix + "0", root),
@@ -495,6 +655,9 @@ function readChunk(chunk) {
495
655
  throw chunk.reason;
496
656
  }
497
657
  }
658
+ function createPendingChunk(response) {
659
+ return new Chunk("pending", null, null, response);
660
+ }
498
661
  function wakeChunk(listeners, value) {
499
662
  for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value);
500
663
  }
@@ -514,13 +677,41 @@ function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) {
514
677
  }
515
678
  }
516
679
  function triggerErrorOnChunk(chunk, error) {
517
- if ("pending" === chunk.status || "blocked" === chunk.status) {
680
+ if ("pending" !== chunk.status && "blocked" !== chunk.status)
681
+ chunk.reason.error(error);
682
+ else {
518
683
  var listeners = chunk.reason;
519
684
  chunk.status = "rejected";
520
685
  chunk.reason = error;
521
686
  null !== listeners && wakeChunk(listeners, error);
522
687
  }
523
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
+ }
524
715
  function resolveModuleChunk(chunk, value) {
525
716
  if ("pending" === chunk.status || "blocked" === chunk.status) {
526
717
  var resolveListeners = chunk.value,
@@ -592,12 +783,18 @@ function reportGlobalError(response, error) {
592
783
  function getChunk(response, id) {
593
784
  var chunks = response._chunks,
594
785
  chunk = chunks.get(id);
595
- chunk ||
596
- ((chunk = new Chunk("pending", null, null, response)),
597
- chunks.set(id, chunk));
786
+ chunk || ((chunk = createPendingChunk(response)), chunks.set(id, chunk));
598
787
  return chunk;
599
788
  }
600
- 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
+ ) {
601
798
  if (initializingChunkBlockedModel) {
602
799
  var blocked = initializingChunkBlockedModel;
603
800
  cyclic || blocked.deps++;
@@ -607,6 +804,7 @@ function createModelResolver(chunk, parentObject, key, cyclic, response, map) {
607
804
  value: null
608
805
  };
609
806
  return function (value) {
807
+ for (var i = 1; i < path.length; i++) value = value[path[i]];
610
808
  parentObject[key] = map(response, value);
611
809
  "" === key && null === blocked.value && (blocked.value = parentObject[key]);
612
810
  blocked.deps--;
@@ -639,7 +837,9 @@ function createServerReferenceProxy(response, metaData) {
639
837
  registerServerReference(proxy, metaData, response._encodeFormAction);
640
838
  return proxy;
641
839
  }
642
- 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);
643
843
  id = getChunk(response, id);
644
844
  switch (id.status) {
645
845
  case "resolved_model":
@@ -650,7 +850,10 @@ function getOutlinedModel(response, id, parentObject, key, map) {
650
850
  }
651
851
  switch (id.status) {
652
852
  case "fulfilled":
653
- 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);
654
857
  case "pending":
655
858
  case "blocked":
656
859
  case "cyclic":
@@ -662,7 +865,8 @@ function getOutlinedModel(response, id, parentObject, key, map) {
662
865
  key,
663
866
  "cyclic" === id.status,
664
867
  response,
665
- map
868
+ map,
869
+ reference
666
870
  ),
667
871
  createModelReject(parentChunk)
668
872
  );
@@ -677,6 +881,9 @@ function createMap(response, model) {
677
881
  function createSet(response, model) {
678
882
  return new Set(model);
679
883
  }
884
+ function createBlob(response, model) {
885
+ return new Blob(model.slice(1), { type: model[0] });
886
+ }
680
887
  function createFormData(response, model) {
681
888
  response = new FormData();
682
889
  for (var i = 0; i < model.length; i++)
@@ -709,7 +916,7 @@ function parseModelString(response, parentObject, key, value) {
709
916
  return Symbol.for(value.slice(2));
710
917
  case "F":
711
918
  return (
712
- (value = parseInt(value.slice(2), 16)),
919
+ (value = value.slice(2)),
713
920
  getOutlinedModel(
714
921
  response,
715
922
  value,
@@ -719,37 +926,36 @@ function parseModelString(response, parentObject, key, value) {
719
926
  )
720
927
  );
721
928
  case "T":
722
- parentObject = parseInt(value.slice(2), 16);
929
+ parentObject = "$" + value.slice(2);
723
930
  response = response._tempRefs;
724
931
  if (null == response)
725
932
  throw Error(
726
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."
727
934
  );
728
- if (0 > parentObject || parentObject >= response.length)
729
- throw Error(
730
- "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."
731
- );
732
- return response[parentObject];
935
+ return response.get(parentObject);
733
936
  case "Q":
734
937
  return (
735
- (value = parseInt(value.slice(2), 16)),
938
+ (value = value.slice(2)),
736
939
  getOutlinedModel(response, value, parentObject, key, createMap)
737
940
  );
738
941
  case "W":
739
942
  return (
740
- (value = parseInt(value.slice(2), 16)),
943
+ (value = value.slice(2)),
741
944
  getOutlinedModel(response, value, parentObject, key, createSet)
742
945
  );
743
946
  case "B":
744
- return;
947
+ return (
948
+ (value = value.slice(2)),
949
+ getOutlinedModel(response, value, parentObject, key, createBlob)
950
+ );
745
951
  case "K":
746
952
  return (
747
- (value = parseInt(value.slice(2), 16)),
953
+ (value = value.slice(2)),
748
954
  getOutlinedModel(response, value, parentObject, key, createFormData)
749
955
  );
750
956
  case "i":
751
957
  return (
752
- (value = parseInt(value.slice(2), 16)),
958
+ (value = value.slice(2)),
753
959
  getOutlinedModel(response, value, parentObject, key, extractIterator)
754
960
  );
755
961
  case "I":
@@ -766,7 +972,7 @@ function parseModelString(response, parentObject, key, value) {
766
972
  return BigInt(value.slice(2));
767
973
  default:
768
974
  return (
769
- (value = parseInt(value.slice(1), 16)),
975
+ (value = value.slice(1)),
770
976
  getOutlinedModel(response, value, parentObject, key, createModel)
771
977
  );
772
978
  }
@@ -806,6 +1012,13 @@ function createResponse(
806
1012
  bundlerConfig._fromJSON = createFromJSONCallback(bundlerConfig);
807
1013
  return bundlerConfig;
808
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
+ }
809
1022
  function resolveModule(response, id, model) {
810
1023
  var chunks = response._chunks,
811
1024
  chunk = chunks.get(id);
@@ -839,6 +1052,367 @@ function resolveModule(response, id, model) {
839
1052
  new Chunk("resolved_module", clientReference, null, response)
840
1053
  );
841
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
+ }
842
1416
  function createFromJSONCallback(response) {
843
1417
  return function (key, value) {
844
1418
  return "string" === typeof value
@@ -895,7 +1469,20 @@ exports.createFromNodeStream = function (stream, ssrManifest, options) {
895
1469
  continue;
896
1470
  case 1:
897
1471
  rowState = chunk[i];
898
- 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
899
1486
  ? ((rowTag = rowState), (rowState = 2), i++)
900
1487
  : (64 < rowState && 91 > rowState) ||
901
1488
  114 === rowState ||
@@ -918,113 +1505,14 @@ exports.createFromNodeStream = function (stream, ssrManifest, options) {
918
1505
  (lastIdx = i + rowLength), lastIdx > chunk.length && (lastIdx = -1);
919
1506
  }
920
1507
  var offset = chunk.byteOffset + i;
921
- if (-1 < lastIdx) {
922
- rowLength = new Uint8Array(chunk.buffer, offset, lastIdx - i);
923
- i = rowTag;
924
- offset = response._stringDecoder;
925
- rowTag = "";
926
- for (var i$jscomp$0 = 0; i$jscomp$0 < buffer.length; i$jscomp$0++)
927
- rowTag += offset.decode(buffer[i$jscomp$0], decoderOptions);
928
- rowTag += offset.decode(rowLength);
929
- switch (i) {
930
- case 73:
931
- resolveModule(response, rowID, rowTag);
932
- break;
933
- case 72:
934
- rowID = rowTag[0];
935
- rowTag = rowTag.slice(1);
936
- rowTag = JSON.parse(rowTag, response._fromJSON);
937
- rowLength = ReactDOMSharedInternals.d;
938
- switch (rowID) {
939
- case "D":
940
- rowLength.D(rowTag);
941
- break;
942
- case "C":
943
- "string" === typeof rowTag
944
- ? rowLength.C(rowTag)
945
- : rowLength.C(rowTag[0], rowTag[1]);
946
- break;
947
- case "L":
948
- rowID = rowTag[0];
949
- i = rowTag[1];
950
- 3 === rowTag.length
951
- ? rowLength.L(rowID, i, rowTag[2])
952
- : rowLength.L(rowID, i);
953
- break;
954
- case "m":
955
- "string" === typeof rowTag
956
- ? rowLength.m(rowTag)
957
- : rowLength.m(rowTag[0], rowTag[1]);
958
- break;
959
- case "X":
960
- "string" === typeof rowTag
961
- ? rowLength.X(rowTag)
962
- : rowLength.X(rowTag[0], rowTag[1]);
963
- break;
964
- case "S":
965
- "string" === typeof rowTag
966
- ? rowLength.S(rowTag)
967
- : rowLength.S(
968
- rowTag[0],
969
- 0 === rowTag[1] ? void 0 : rowTag[1],
970
- 3 === rowTag.length ? rowTag[2] : void 0
971
- );
972
- break;
973
- case "M":
974
- "string" === typeof rowTag
975
- ? rowLength.M(rowTag)
976
- : rowLength.M(rowTag[0], rowTag[1]);
977
- }
978
- break;
979
- case 69:
980
- rowTag = JSON.parse(rowTag);
981
- rowLength = rowTag.digest;
982
- rowTag = Error(
983
- "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."
984
- );
985
- rowTag.stack = "Error: " + rowTag.message;
986
- rowTag.digest = rowLength;
987
- rowLength = response._chunks;
988
- (i = rowLength.get(rowID))
989
- ? triggerErrorOnChunk(i, rowTag)
990
- : rowLength.set(
991
- rowID,
992
- new Chunk("rejected", null, rowTag, response)
993
- );
994
- break;
995
- case 84:
996
- response._chunks.set(
997
- rowID,
998
- new Chunk("fulfilled", rowTag, null, response)
999
- );
1000
- break;
1001
- case 68:
1002
- case 87:
1003
- throw Error(
1004
- "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."
1005
- );
1006
- default:
1007
- (rowLength = response._chunks),
1008
- (i = rowLength.get(rowID))
1009
- ? ((rowID = i),
1010
- "pending" === rowID.status &&
1011
- ((rowLength = rowID.value),
1012
- (i = rowID.reason),
1013
- (rowID.status = "resolved_model"),
1014
- (rowID.value = rowTag),
1015
- null !== rowLength &&
1016
- (initializeModelChunk(rowID),
1017
- wakeChunkIfInitialized(rowID, rowLength, i))))
1018
- : rowLength.set(
1019
- rowID,
1020
- new Chunk("resolved_model", rowTag, null, response)
1021
- );
1022
- }
1023
- i = lastIdx;
1024
- 3 === rowState && i++;
1025
- rowLength = rowID = rowTag = rowState = 0;
1026
- buffer.length = 0;
1027
- } 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 {
1028
1516
  chunk = new Uint8Array(chunk.buffer, offset, chunk.byteLength - i);
1029
1517
  buffer.push(chunk);
1030
1518
  rowLength -= chunk.byteLength;