react-server-dom-webpack 19.0.1 → 19.0.3

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.
@@ -117,7 +117,14 @@ function bind() {
117
117
  }
118
118
  return newFn;
119
119
  }
120
- var PROMISE_PROTOTYPE = Promise.prototype,
120
+ var serverReferenceToString = {
121
+ value: function () {
122
+ return "function () { [omitted code] }";
123
+ },
124
+ configurable: !0,
125
+ writable: !0
126
+ },
127
+ PROMISE_PROTOTYPE = Promise.prototype,
121
128
  deepProxyHandlers = {
122
129
  get: function (target, name) {
123
130
  switch (name) {
@@ -1590,7 +1597,7 @@ function renderModelDestructive(
1590
1597
  (task = request.writtenServerReferences),
1591
1598
  (parentPropertyName = task.get(value)),
1592
1599
  void 0 !== parentPropertyName
1593
- ? (request = "$F" + parentPropertyName.toString(16))
1600
+ ? (request = "$h" + parentPropertyName.toString(16))
1594
1601
  : ((parentPropertyName = value.$$bound),
1595
1602
  (parentPropertyName =
1596
1603
  null === parentPropertyName
@@ -1601,7 +1608,7 @@ function renderModelDestructive(
1601
1608
  bound: parentPropertyName
1602
1609
  })),
1603
1610
  task.set(value, request),
1604
- (request = "$F" + request.toString(16))),
1611
+ (request = "$h" + request.toString(16))),
1605
1612
  request
1606
1613
  );
1607
1614
  if (
@@ -2055,7 +2062,24 @@ ReactPromise.prototype.then = function (resolve, reject) {
2055
2062
  }
2056
2063
  switch (this.status) {
2057
2064
  case "fulfilled":
2058
- "function" === typeof resolve && resolve(this.value);
2065
+ if ("function" === typeof resolve) {
2066
+ for (
2067
+ var inspectedValue = this.value, cycleProtection = 0;
2068
+ inspectedValue instanceof ReactPromise;
2069
+
2070
+ ) {
2071
+ cycleProtection++;
2072
+ if (inspectedValue === this || 1e3 < cycleProtection) {
2073
+ "function" === typeof reject &&
2074
+ reject(Error("Cannot have cyclic thenables."));
2075
+ return;
2076
+ }
2077
+ if ("fulfilled" === inspectedValue.status)
2078
+ inspectedValue = inspectedValue.value;
2079
+ else break;
2080
+ }
2081
+ resolve(this.value);
2082
+ }
2059
2083
  break;
2060
2084
  case "pending":
2061
2085
  case "blocked":
@@ -2207,7 +2231,7 @@ function resolveIteratorResultChunk(response, chunk, value, done) {
2207
2231
  }
2208
2232
  function loadServerReference$1(response, metaData, parentObject, key) {
2209
2233
  var id = metaData.id;
2210
- if ("string" !== typeof id) return null;
2234
+ if ("string" !== typeof id || "then" === key) return null;
2211
2235
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2212
2236
  id = metaData.bound;
2213
2237
  var promise = preloadModule(serverReference);
@@ -2245,6 +2269,7 @@ function loadServerReference$1(response, metaData, parentObject, key) {
2245
2269
  ((promiseValue = resolvedValue.value),
2246
2270
  (resolvedValue.status = "fulfilled"),
2247
2271
  (resolvedValue.value = handler.value),
2272
+ (resolvedValue.reason = null),
2248
2273
  null !== promiseValue &&
2249
2274
  wakeChunk(response, promiseValue, handler.value)));
2250
2275
  },
@@ -2336,6 +2361,7 @@ function initializeModelChunk(chunk) {
2336
2361
  }
2337
2362
  chunk.status = "fulfilled";
2338
2363
  chunk.value = value;
2364
+ chunk.reason = null;
2339
2365
  } catch (error) {
2340
2366
  (chunk.status = "rejected"), (chunk.reason = error);
2341
2367
  } finally {
@@ -2344,7 +2370,11 @@ function initializeModelChunk(chunk) {
2344
2370
  }
2345
2371
  function reportGlobalError(response, error) {
2346
2372
  response._chunks.forEach(function (chunk) {
2347
- "pending" === chunk.status && triggerErrorOnChunk(response, chunk, error);
2373
+ "pending" === chunk.status
2374
+ ? triggerErrorOnChunk(response, chunk, error)
2375
+ : "fulfilled" === chunk.status &&
2376
+ null !== chunk.reason &&
2377
+ chunk.reason.error(error);
2348
2378
  });
2349
2379
  }
2350
2380
  function getChunk(response, id) {
@@ -2360,58 +2390,39 @@ function getChunk(response, id) {
2360
2390
  return chunk;
2361
2391
  }
2362
2392
  function fulfillReference(response, reference, value) {
2363
- for (
2364
- var handler = reference.handler,
2365
- parentObject = reference.parentObject,
2366
- key = reference.key,
2367
- map = reference.map,
2368
- path = reference.path,
2369
- i = 1;
2370
- i < path.length;
2371
- i++
2372
- ) {
2373
- for (; value instanceof ReactPromise; ) {
2374
- switch (value.status) {
2375
- case "resolved_model":
2376
- initializeModelChunk(value);
2377
- }
2378
- switch (value.status) {
2379
- case "fulfilled":
2380
- value = value.value;
2381
- continue;
2382
- case "blocked":
2383
- case "pending":
2384
- path.splice(0, i - 1);
2385
- null === value.value
2386
- ? (value.value = [reference])
2387
- : value.value.push(reference);
2388
- null === value.reason
2389
- ? (value.reason = [reference])
2390
- : value.reason.push(reference);
2391
- return;
2392
- default:
2393
- rejectReference(response, reference.handler, value.reason);
2394
- return;
2395
- }
2393
+ var handler = reference.handler,
2394
+ parentObject = reference.parentObject,
2395
+ key = reference.key,
2396
+ map = reference.map,
2397
+ path = reference.path;
2398
+ try {
2399
+ for (var i = 1; i < path.length; i++) {
2400
+ var name = path[i];
2401
+ if (
2402
+ "object" !== typeof value ||
2403
+ !hasOwnProperty.call(value, name) ||
2404
+ value instanceof Promise
2405
+ )
2406
+ throw Error("Invalid reference.");
2407
+ value = value[name];
2396
2408
  }
2397
- var name = path[i];
2398
- "object" === typeof value &&
2399
- hasOwnProperty.call(value, name) &&
2400
- (value = value[name]);
2409
+ var mappedValue = map(response, value, parentObject, key);
2410
+ parentObject[key] = mappedValue;
2411
+ "" === key && null === handler.value && (handler.value = mappedValue);
2412
+ } catch (error) {
2413
+ rejectReference(response, reference.handler, error);
2414
+ return;
2401
2415
  }
2402
- reference = map(response, value, parentObject, key);
2403
- parentObject[key] = reference;
2404
- "" === key && null === handler.value && (handler.value = reference);
2405
2416
  handler.deps--;
2406
2417
  0 === handler.deps &&
2407
- ((parentObject = handler.chunk),
2408
- null !== parentObject &&
2409
- "blocked" === parentObject.status &&
2410
- ((key = parentObject.value),
2411
- (parentObject.status = "fulfilled"),
2412
- (parentObject.value = handler.value),
2413
- (parentObject.reason = handler.reason),
2414
- null !== key && wakeChunk(response, key, handler.value)));
2418
+ ((reference = handler.chunk),
2419
+ null !== reference &&
2420
+ "blocked" === reference.status &&
2421
+ ((value = reference.value),
2422
+ (reference.status = "fulfilled"),
2423
+ (reference.value = handler.value),
2424
+ (reference.reason = handler.reason),
2425
+ null !== value && wakeChunk(response, value, handler.value)));
2415
2426
  }
2416
2427
  function rejectReference(response, handler, error) {
2417
2428
  handler.errored ||
@@ -2423,33 +2434,6 @@ function rejectReference(response, handler, error) {
2423
2434
  "blocked" === handler.status &&
2424
2435
  triggerErrorOnChunk(response, handler, error));
2425
2436
  }
2426
- function waitForReference(
2427
- referencedChunk,
2428
- parentObject,
2429
- key,
2430
- response,
2431
- map,
2432
- path
2433
- ) {
2434
- initializingHandler
2435
- ? ((response = initializingHandler), response.deps++)
2436
- : (response = initializingHandler =
2437
- { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
2438
- parentObject = {
2439
- handler: response,
2440
- parentObject: parentObject,
2441
- key: key,
2442
- map: map,
2443
- path: path
2444
- };
2445
- null === referencedChunk.value
2446
- ? (referencedChunk.value = [parentObject])
2447
- : referencedChunk.value.push(parentObject);
2448
- null === referencedChunk.reason
2449
- ? (referencedChunk.reason = [parentObject])
2450
- : referencedChunk.reason.push(parentObject);
2451
- return null;
2452
- }
2453
2437
  function getOutlinedModel(response, reference, parentObject, key, map) {
2454
2438
  reference = reference.split(":");
2455
2439
  var id = parseInt(reference[0], 16);
@@ -2460,53 +2444,40 @@ function getOutlinedModel(response, reference, parentObject, key, map) {
2460
2444
  }
2461
2445
  switch (id.status) {
2462
2446
  case "fulfilled":
2463
- var value = id.value;
2464
- for (id = 1; id < reference.length; id++) {
2465
- for (; value instanceof ReactPromise; ) {
2466
- switch (value.status) {
2467
- case "resolved_model":
2468
- initializeModelChunk(value);
2469
- }
2470
- switch (value.status) {
2471
- case "fulfilled":
2472
- value = value.value;
2473
- break;
2474
- case "blocked":
2475
- case "pending":
2476
- return waitForReference(
2477
- value,
2478
- parentObject,
2479
- key,
2480
- response,
2481
- map,
2482
- reference.slice(id - 1)
2483
- );
2484
- default:
2485
- return (
2486
- initializingHandler
2487
- ? ((initializingHandler.errored = !0),
2488
- (initializingHandler.value = null),
2489
- (initializingHandler.reason = value.reason))
2490
- : (initializingHandler = {
2491
- chunk: null,
2492
- value: null,
2493
- reason: value.reason,
2494
- deps: 0,
2495
- errored: !0
2496
- }),
2497
- null
2498
- );
2499
- }
2500
- }
2501
- var name = reference[id];
2502
- "object" === typeof value &&
2503
- hasOwnProperty.call(value, name) &&
2504
- (value = value[name]);
2447
+ id = id.value;
2448
+ for (var i = 1; i < reference.length; i++) {
2449
+ var name = reference[i];
2450
+ if (
2451
+ "object" !== typeof id ||
2452
+ !hasOwnProperty.call(id, name) ||
2453
+ id instanceof Promise
2454
+ )
2455
+ throw Error("Invalid reference.");
2456
+ id = id[name];
2505
2457
  }
2506
- return map(response, value, parentObject, key);
2458
+ return map(response, id, parentObject, key);
2507
2459
  case "pending":
2508
2460
  case "blocked":
2509
- return waitForReference(id, parentObject, key, response, map, reference);
2461
+ return (
2462
+ initializingHandler
2463
+ ? ((response = initializingHandler), response.deps++)
2464
+ : (response = initializingHandler =
2465
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 }),
2466
+ (parentObject = {
2467
+ handler: response,
2468
+ parentObject: parentObject,
2469
+ key: key,
2470
+ map: map,
2471
+ path: reference
2472
+ }),
2473
+ null === id.value
2474
+ ? (id.value = [parentObject])
2475
+ : id.value.push(parentObject),
2476
+ null === id.reason
2477
+ ? (id.reason = [parentObject])
2478
+ : id.reason.push(parentObject),
2479
+ null
2480
+ );
2510
2481
  default:
2511
2482
  return (
2512
2483
  initializingHandler
@@ -2533,8 +2504,8 @@ function createSet(response, model) {
2533
2504
  function extractIterator(response, model) {
2534
2505
  return model[Symbol.iterator]();
2535
2506
  }
2536
- function createModel(response, model) {
2537
- return model;
2507
+ function createModel(response, model, parentObject, key) {
2508
+ return "then" === key && "function" === typeof model ? null : model;
2538
2509
  }
2539
2510
  function parseTypedArray(
2540
2511
  response,
@@ -2545,9 +2516,10 @@ function parseTypedArray(
2545
2516
  parentKey
2546
2517
  ) {
2547
2518
  reference = parseInt(reference.slice(2), 16);
2548
- reference = response._formData
2549
- .get(response._prefix + reference)
2550
- .arrayBuffer();
2519
+ bytesPerElement = response._prefix + reference;
2520
+ if (response._chunks.has(reference))
2521
+ throw Error("Already initialized typed array.");
2522
+ reference = response._formData.get(bytesPerElement).arrayBuffer();
2551
2523
  if (initializingHandler) {
2552
2524
  var handler = initializingHandler;
2553
2525
  handler.deps++;
@@ -2573,6 +2545,7 @@ function parseTypedArray(
2573
2545
  var resolveListeners = buffer.value;
2574
2546
  buffer.status = "fulfilled";
2575
2547
  buffer.value = handler.value;
2548
+ buffer.reason = null;
2576
2549
  null !== resolveListeners &&
2577
2550
  wakeChunk(response, resolveListeners, handler.value);
2578
2551
  }
@@ -2605,7 +2578,10 @@ function resolveStream(response, id, stream, controller) {
2605
2578
  }
2606
2579
  function parseReadableStream(response, reference, type) {
2607
2580
  reference = parseInt(reference.slice(2), 16);
2608
- var controller = null;
2581
+ if (response._chunks.has(reference))
2582
+ throw Error("Already initialized stream.");
2583
+ var controller = null,
2584
+ closed = !1;
2609
2585
  type = new ReadableStream({
2610
2586
  type: type,
2611
2587
  start: function (c) {
@@ -2648,24 +2624,27 @@ function parseReadableStream(response, reference, type) {
2648
2624
  }
2649
2625
  },
2650
2626
  close: function () {
2651
- if (null === previousBlockedChunk) controller.close();
2652
- else {
2653
- var blockedChunk = previousBlockedChunk;
2654
- previousBlockedChunk = null;
2655
- blockedChunk.then(function () {
2656
- return controller.close();
2657
- });
2658
- }
2627
+ if (!closed)
2628
+ if (((closed = !0), null === previousBlockedChunk)) controller.close();
2629
+ else {
2630
+ var blockedChunk = previousBlockedChunk;
2631
+ previousBlockedChunk = null;
2632
+ blockedChunk.then(function () {
2633
+ return controller.close();
2634
+ });
2635
+ }
2659
2636
  },
2660
2637
  error: function (error) {
2661
- if (null === previousBlockedChunk) controller.error(error);
2662
- else {
2663
- var blockedChunk = previousBlockedChunk;
2664
- previousBlockedChunk = null;
2665
- blockedChunk.then(function () {
2666
- return controller.error(error);
2667
- });
2668
- }
2638
+ if (!closed)
2639
+ if (((closed = !0), null === previousBlockedChunk))
2640
+ controller.error(error);
2641
+ else {
2642
+ var blockedChunk = previousBlockedChunk;
2643
+ previousBlockedChunk = null;
2644
+ blockedChunk.then(function () {
2645
+ return controller.error(error);
2646
+ });
2647
+ }
2669
2648
  }
2670
2649
  });
2671
2650
  return type;
@@ -2680,6 +2659,8 @@ function createIterator(next) {
2680
2659
  }
2681
2660
  function parseAsyncIterable(response, reference, iterator) {
2682
2661
  reference = parseInt(reference.slice(2), 16);
2662
+ if (response._chunks.has(reference))
2663
+ throw Error("Already initialized stream.");
2683
2664
  var buffer = [],
2684
2665
  closed = !1,
2685
2666
  nextWriteIndex = 0,
@@ -2723,36 +2704,46 @@ function parseAsyncIterable(response, reference, iterator) {
2723
2704
  nextWriteIndex++;
2724
2705
  },
2725
2706
  close: function (value) {
2726
- closed = !0;
2727
- nextWriteIndex === buffer.length
2728
- ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
2729
- response,
2730
- value,
2731
- !0
2732
- ))
2733
- : resolveIteratorResultChunk(
2707
+ if (!closed)
2708
+ for (
2709
+ closed = !0,
2710
+ nextWriteIndex === buffer.length
2711
+ ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
2712
+ response,
2713
+ value,
2714
+ !0
2715
+ ))
2716
+ : resolveIteratorResultChunk(
2717
+ response,
2718
+ buffer[nextWriteIndex],
2719
+ value,
2720
+ !0
2721
+ ),
2722
+ nextWriteIndex++;
2723
+ nextWriteIndex < buffer.length;
2724
+
2725
+ )
2726
+ resolveIteratorResultChunk(
2734
2727
  response,
2735
- buffer[nextWriteIndex],
2736
- value,
2728
+ buffer[nextWriteIndex++],
2729
+ '"$undefined"',
2737
2730
  !0
2738
2731
  );
2739
- for (nextWriteIndex++; nextWriteIndex < buffer.length; )
2740
- resolveIteratorResultChunk(
2741
- response,
2742
- buffer[nextWriteIndex++],
2743
- '"$undefined"',
2744
- !0
2745
- );
2746
2732
  },
2747
2733
  error: function (error) {
2748
- closed = !0;
2749
- for (
2750
- nextWriteIndex === buffer.length &&
2751
- (buffer[nextWriteIndex] = new ReactPromise("pending", null, null));
2752
- nextWriteIndex < buffer.length;
2734
+ if (!closed)
2735
+ for (
2736
+ closed = !0,
2737
+ nextWriteIndex === buffer.length &&
2738
+ (buffer[nextWriteIndex] = new ReactPromise(
2739
+ "pending",
2740
+ null,
2741
+ null
2742
+ ));
2743
+ nextWriteIndex < buffer.length;
2753
2744
 
2754
- )
2755
- triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
2745
+ )
2746
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
2756
2747
  }
2757
2748
  });
2758
2749
  return iterator;
@@ -2764,7 +2755,7 @@ function parseModelString(response, obj, key, value, reference) {
2764
2755
  return value.slice(1);
2765
2756
  case "@":
2766
2757
  return (obj = parseInt(value.slice(2), 16)), getChunk(response, obj);
2767
- case "F":
2758
+ case "h":
2768
2759
  return (
2769
2760
  (value = value.slice(2)),
2770
2761
  getOutlinedModel(response, value, obj, key, loadServerReference$1)
@@ -3012,13 +3003,13 @@ exports.decodeReplyFromBusboy = function (busboyStream, webpackMap, options) {
3012
3003
  );
3013
3004
  else {
3014
3005
  pendingFiles++;
3015
- var JSCompiler_object_inline_chunks_223 = [];
3006
+ var JSCompiler_object_inline_chunks_233 = [];
3016
3007
  value.on("data", function (chunk) {
3017
- JSCompiler_object_inline_chunks_223.push(chunk);
3008
+ JSCompiler_object_inline_chunks_233.push(chunk);
3018
3009
  });
3019
3010
  value.on("end", function () {
3020
3011
  try {
3021
- var blob = new Blob(JSCompiler_object_inline_chunks_223, {
3012
+ var blob = new Blob(JSCompiler_object_inline_chunks_233, {
3022
3013
  type: mimeType
3023
3014
  });
3024
3015
  response._formData.append(name, blob, filename);
@@ -3065,7 +3056,8 @@ exports.registerServerReference = function (reference, id, exportName) {
3065
3056
  configurable: !0
3066
3057
  },
3067
3058
  $$bound: { value: null, configurable: !0 },
3068
- bind: { value: bind, configurable: !0 }
3059
+ bind: { value: bind, configurable: !0 },
3060
+ toString: serverReferenceToString
3069
3061
  });
3070
3062
  };
3071
3063
  exports.renderToPipeableStream = function (model, webpackMap, options) {