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.
@@ -101,7 +101,14 @@ function bind() {
101
101
  }
102
102
  return newFn;
103
103
  }
104
- var PROMISE_PROTOTYPE = Promise.prototype,
104
+ var serverReferenceToString = {
105
+ value: function () {
106
+ return "function () { [omitted code] }";
107
+ },
108
+ configurable: !0,
109
+ writable: !0
110
+ },
111
+ PROMISE_PROTOTYPE = Promise.prototype,
105
112
  deepProxyHandlers = {
106
113
  get: function (target, name) {
107
114
  switch (name) {
@@ -1572,7 +1579,7 @@ function renderModelDestructive(
1572
1579
  (task = request.writtenServerReferences),
1573
1580
  (parentPropertyName = task.get(value)),
1574
1581
  void 0 !== parentPropertyName
1575
- ? (request = "$F" + parentPropertyName.toString(16))
1582
+ ? (request = "$h" + parentPropertyName.toString(16))
1576
1583
  : ((parentPropertyName = value.$$bound),
1577
1584
  (parentPropertyName =
1578
1585
  null === parentPropertyName
@@ -1583,7 +1590,7 @@ function renderModelDestructive(
1583
1590
  bound: parentPropertyName
1584
1591
  })),
1585
1592
  task.set(value, request),
1586
- (request = "$F" + request.toString(16))),
1593
+ (request = "$h" + request.toString(16))),
1587
1594
  request
1588
1595
  );
1589
1596
  if (
@@ -2017,7 +2024,24 @@ ReactPromise.prototype.then = function (resolve, reject) {
2017
2024
  }
2018
2025
  switch (this.status) {
2019
2026
  case "fulfilled":
2020
- "function" === typeof resolve && resolve(this.value);
2027
+ if ("function" === typeof resolve) {
2028
+ for (
2029
+ var inspectedValue = this.value, cycleProtection = 0;
2030
+ inspectedValue instanceof ReactPromise;
2031
+
2032
+ ) {
2033
+ cycleProtection++;
2034
+ if (inspectedValue === this || 1e3 < cycleProtection) {
2035
+ "function" === typeof reject &&
2036
+ reject(Error("Cannot have cyclic thenables."));
2037
+ return;
2038
+ }
2039
+ if ("fulfilled" === inspectedValue.status)
2040
+ inspectedValue = inspectedValue.value;
2041
+ else break;
2042
+ }
2043
+ resolve(this.value);
2044
+ }
2021
2045
  break;
2022
2046
  case "pending":
2023
2047
  case "blocked":
@@ -2169,7 +2193,7 @@ function resolveIteratorResultChunk(response, chunk, value, done) {
2169
2193
  }
2170
2194
  function loadServerReference$1(response, metaData, parentObject, key) {
2171
2195
  var id = metaData.id;
2172
- if ("string" !== typeof id) return null;
2196
+ if ("string" !== typeof id || "then" === key) return null;
2173
2197
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2174
2198
  id = metaData.bound;
2175
2199
  var promise = preloadModule(serverReference);
@@ -2207,6 +2231,7 @@ function loadServerReference$1(response, metaData, parentObject, key) {
2207
2231
  ((promiseValue = resolvedValue.value),
2208
2232
  (resolvedValue.status = "fulfilled"),
2209
2233
  (resolvedValue.value = handler.value),
2234
+ (resolvedValue.reason = null),
2210
2235
  null !== promiseValue &&
2211
2236
  wakeChunk(response, promiseValue, handler.value)));
2212
2237
  },
@@ -2298,6 +2323,7 @@ function initializeModelChunk(chunk) {
2298
2323
  }
2299
2324
  chunk.status = "fulfilled";
2300
2325
  chunk.value = value;
2326
+ chunk.reason = null;
2301
2327
  } catch (error) {
2302
2328
  (chunk.status = "rejected"), (chunk.reason = error);
2303
2329
  } finally {
@@ -2306,7 +2332,11 @@ function initializeModelChunk(chunk) {
2306
2332
  }
2307
2333
  function reportGlobalError(response, error) {
2308
2334
  response._chunks.forEach(function (chunk) {
2309
- "pending" === chunk.status && triggerErrorOnChunk(response, chunk, error);
2335
+ "pending" === chunk.status
2336
+ ? triggerErrorOnChunk(response, chunk, error)
2337
+ : "fulfilled" === chunk.status &&
2338
+ null !== chunk.reason &&
2339
+ chunk.reason.error(error);
2310
2340
  });
2311
2341
  }
2312
2342
  function getChunk(response, id) {
@@ -2322,58 +2352,39 @@ function getChunk(response, id) {
2322
2352
  return chunk;
2323
2353
  }
2324
2354
  function fulfillReference(response, reference, value) {
2325
- for (
2326
- var handler = reference.handler,
2327
- parentObject = reference.parentObject,
2328
- key = reference.key,
2329
- map = reference.map,
2330
- path = reference.path,
2331
- i = 1;
2332
- i < path.length;
2333
- i++
2334
- ) {
2335
- for (; value instanceof ReactPromise; ) {
2336
- switch (value.status) {
2337
- case "resolved_model":
2338
- initializeModelChunk(value);
2339
- }
2340
- switch (value.status) {
2341
- case "fulfilled":
2342
- value = value.value;
2343
- continue;
2344
- case "blocked":
2345
- case "pending":
2346
- path.splice(0, i - 1);
2347
- null === value.value
2348
- ? (value.value = [reference])
2349
- : value.value.push(reference);
2350
- null === value.reason
2351
- ? (value.reason = [reference])
2352
- : value.reason.push(reference);
2353
- return;
2354
- default:
2355
- rejectReference(response, reference.handler, value.reason);
2356
- return;
2357
- }
2355
+ var handler = reference.handler,
2356
+ parentObject = reference.parentObject,
2357
+ key = reference.key,
2358
+ map = reference.map,
2359
+ path = reference.path;
2360
+ try {
2361
+ for (var i = 1; i < path.length; i++) {
2362
+ var name = path[i];
2363
+ if (
2364
+ "object" !== typeof value ||
2365
+ !hasOwnProperty.call(value, name) ||
2366
+ value instanceof Promise
2367
+ )
2368
+ throw Error("Invalid reference.");
2369
+ value = value[name];
2358
2370
  }
2359
- var name = path[i];
2360
- "object" === typeof value &&
2361
- hasOwnProperty.call(value, name) &&
2362
- (value = value[name]);
2371
+ var mappedValue = map(response, value, parentObject, key);
2372
+ parentObject[key] = mappedValue;
2373
+ "" === key && null === handler.value && (handler.value = mappedValue);
2374
+ } catch (error) {
2375
+ rejectReference(response, reference.handler, error);
2376
+ return;
2363
2377
  }
2364
- reference = map(response, value, parentObject, key);
2365
- parentObject[key] = reference;
2366
- "" === key && null === handler.value && (handler.value = reference);
2367
2378
  handler.deps--;
2368
2379
  0 === handler.deps &&
2369
- ((parentObject = handler.chunk),
2370
- null !== parentObject &&
2371
- "blocked" === parentObject.status &&
2372
- ((key = parentObject.value),
2373
- (parentObject.status = "fulfilled"),
2374
- (parentObject.value = handler.value),
2375
- (parentObject.reason = handler.reason),
2376
- null !== key && wakeChunk(response, key, handler.value)));
2380
+ ((reference = handler.chunk),
2381
+ null !== reference &&
2382
+ "blocked" === reference.status &&
2383
+ ((value = reference.value),
2384
+ (reference.status = "fulfilled"),
2385
+ (reference.value = handler.value),
2386
+ (reference.reason = handler.reason),
2387
+ null !== value && wakeChunk(response, value, handler.value)));
2377
2388
  }
2378
2389
  function rejectReference(response, handler, error) {
2379
2390
  handler.errored ||
@@ -2385,33 +2396,6 @@ function rejectReference(response, handler, error) {
2385
2396
  "blocked" === handler.status &&
2386
2397
  triggerErrorOnChunk(response, handler, error));
2387
2398
  }
2388
- function waitForReference(
2389
- referencedChunk,
2390
- parentObject,
2391
- key,
2392
- response,
2393
- map,
2394
- path
2395
- ) {
2396
- initializingHandler
2397
- ? ((response = initializingHandler), response.deps++)
2398
- : (response = initializingHandler =
2399
- { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
2400
- parentObject = {
2401
- handler: response,
2402
- parentObject: parentObject,
2403
- key: key,
2404
- map: map,
2405
- path: path
2406
- };
2407
- null === referencedChunk.value
2408
- ? (referencedChunk.value = [parentObject])
2409
- : referencedChunk.value.push(parentObject);
2410
- null === referencedChunk.reason
2411
- ? (referencedChunk.reason = [parentObject])
2412
- : referencedChunk.reason.push(parentObject);
2413
- return null;
2414
- }
2415
2399
  function getOutlinedModel(response, reference, parentObject, key, map) {
2416
2400
  reference = reference.split(":");
2417
2401
  var id = parseInt(reference[0], 16);
@@ -2422,53 +2406,40 @@ function getOutlinedModel(response, reference, parentObject, key, map) {
2422
2406
  }
2423
2407
  switch (id.status) {
2424
2408
  case "fulfilled":
2425
- var value = id.value;
2426
- for (id = 1; id < reference.length; id++) {
2427
- for (; value instanceof ReactPromise; ) {
2428
- switch (value.status) {
2429
- case "resolved_model":
2430
- initializeModelChunk(value);
2431
- }
2432
- switch (value.status) {
2433
- case "fulfilled":
2434
- value = value.value;
2435
- break;
2436
- case "blocked":
2437
- case "pending":
2438
- return waitForReference(
2439
- value,
2440
- parentObject,
2441
- key,
2442
- response,
2443
- map,
2444
- reference.slice(id - 1)
2445
- );
2446
- default:
2447
- return (
2448
- initializingHandler
2449
- ? ((initializingHandler.errored = !0),
2450
- (initializingHandler.value = null),
2451
- (initializingHandler.reason = value.reason))
2452
- : (initializingHandler = {
2453
- chunk: null,
2454
- value: null,
2455
- reason: value.reason,
2456
- deps: 0,
2457
- errored: !0
2458
- }),
2459
- null
2460
- );
2461
- }
2462
- }
2463
- var name = reference[id];
2464
- "object" === typeof value &&
2465
- hasOwnProperty.call(value, name) &&
2466
- (value = value[name]);
2409
+ id = id.value;
2410
+ for (var i = 1; i < reference.length; i++) {
2411
+ var name = reference[i];
2412
+ if (
2413
+ "object" !== typeof id ||
2414
+ !hasOwnProperty.call(id, name) ||
2415
+ id instanceof Promise
2416
+ )
2417
+ throw Error("Invalid reference.");
2418
+ id = id[name];
2467
2419
  }
2468
- return map(response, value, parentObject, key);
2420
+ return map(response, id, parentObject, key);
2469
2421
  case "pending":
2470
2422
  case "blocked":
2471
- return waitForReference(id, parentObject, key, response, map, reference);
2423
+ return (
2424
+ initializingHandler
2425
+ ? ((response = initializingHandler), response.deps++)
2426
+ : (response = initializingHandler =
2427
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 }),
2428
+ (parentObject = {
2429
+ handler: response,
2430
+ parentObject: parentObject,
2431
+ key: key,
2432
+ map: map,
2433
+ path: reference
2434
+ }),
2435
+ null === id.value
2436
+ ? (id.value = [parentObject])
2437
+ : id.value.push(parentObject),
2438
+ null === id.reason
2439
+ ? (id.reason = [parentObject])
2440
+ : id.reason.push(parentObject),
2441
+ null
2442
+ );
2472
2443
  default:
2473
2444
  return (
2474
2445
  initializingHandler
@@ -2495,8 +2466,8 @@ function createSet(response, model) {
2495
2466
  function extractIterator(response, model) {
2496
2467
  return model[Symbol.iterator]();
2497
2468
  }
2498
- function createModel(response, model) {
2499
- return model;
2469
+ function createModel(response, model, parentObject, key) {
2470
+ return "then" === key && "function" === typeof model ? null : model;
2500
2471
  }
2501
2472
  function parseTypedArray(
2502
2473
  response,
@@ -2507,9 +2478,10 @@ function parseTypedArray(
2507
2478
  parentKey
2508
2479
  ) {
2509
2480
  reference = parseInt(reference.slice(2), 16);
2510
- reference = response._formData
2511
- .get(response._prefix + reference)
2512
- .arrayBuffer();
2481
+ bytesPerElement = response._prefix + reference;
2482
+ if (response._chunks.has(reference))
2483
+ throw Error("Already initialized typed array.");
2484
+ reference = response._formData.get(bytesPerElement).arrayBuffer();
2513
2485
  if (initializingHandler) {
2514
2486
  var handler = initializingHandler;
2515
2487
  handler.deps++;
@@ -2535,6 +2507,7 @@ function parseTypedArray(
2535
2507
  var resolveListeners = buffer.value;
2536
2508
  buffer.status = "fulfilled";
2537
2509
  buffer.value = handler.value;
2510
+ buffer.reason = null;
2538
2511
  null !== resolveListeners &&
2539
2512
  wakeChunk(response, resolveListeners, handler.value);
2540
2513
  }
@@ -2567,7 +2540,10 @@ function resolveStream(response, id, stream, controller) {
2567
2540
  }
2568
2541
  function parseReadableStream(response, reference, type) {
2569
2542
  reference = parseInt(reference.slice(2), 16);
2570
- var controller = null;
2543
+ if (response._chunks.has(reference))
2544
+ throw Error("Already initialized stream.");
2545
+ var controller = null,
2546
+ closed = !1;
2571
2547
  type = new ReadableStream({
2572
2548
  type: type,
2573
2549
  start: function (c) {
@@ -2610,24 +2586,27 @@ function parseReadableStream(response, reference, type) {
2610
2586
  }
2611
2587
  },
2612
2588
  close: function () {
2613
- if (null === previousBlockedChunk) controller.close();
2614
- else {
2615
- var blockedChunk = previousBlockedChunk;
2616
- previousBlockedChunk = null;
2617
- blockedChunk.then(function () {
2618
- return controller.close();
2619
- });
2620
- }
2589
+ if (!closed)
2590
+ if (((closed = !0), null === previousBlockedChunk)) controller.close();
2591
+ else {
2592
+ var blockedChunk = previousBlockedChunk;
2593
+ previousBlockedChunk = null;
2594
+ blockedChunk.then(function () {
2595
+ return controller.close();
2596
+ });
2597
+ }
2621
2598
  },
2622
2599
  error: function (error) {
2623
- if (null === previousBlockedChunk) controller.error(error);
2624
- else {
2625
- var blockedChunk = previousBlockedChunk;
2626
- previousBlockedChunk = null;
2627
- blockedChunk.then(function () {
2628
- return controller.error(error);
2629
- });
2630
- }
2600
+ if (!closed)
2601
+ if (((closed = !0), null === previousBlockedChunk))
2602
+ controller.error(error);
2603
+ else {
2604
+ var blockedChunk = previousBlockedChunk;
2605
+ previousBlockedChunk = null;
2606
+ blockedChunk.then(function () {
2607
+ return controller.error(error);
2608
+ });
2609
+ }
2631
2610
  }
2632
2611
  });
2633
2612
  return type;
@@ -2642,6 +2621,8 @@ function createIterator(next) {
2642
2621
  }
2643
2622
  function parseAsyncIterable(response, reference, iterator) {
2644
2623
  reference = parseInt(reference.slice(2), 16);
2624
+ if (response._chunks.has(reference))
2625
+ throw Error("Already initialized stream.");
2645
2626
  var buffer = [],
2646
2627
  closed = !1,
2647
2628
  nextWriteIndex = 0,
@@ -2685,36 +2666,46 @@ function parseAsyncIterable(response, reference, iterator) {
2685
2666
  nextWriteIndex++;
2686
2667
  },
2687
2668
  close: function (value) {
2688
- closed = !0;
2689
- nextWriteIndex === buffer.length
2690
- ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
2669
+ if (!closed)
2670
+ for (
2671
+ closed = !0,
2672
+ nextWriteIndex === buffer.length
2673
+ ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
2674
+ response,
2675
+ value,
2676
+ !0
2677
+ ))
2678
+ : resolveIteratorResultChunk(
2679
+ response,
2680
+ buffer[nextWriteIndex],
2681
+ value,
2682
+ !0
2683
+ ),
2684
+ nextWriteIndex++;
2685
+ nextWriteIndex < buffer.length;
2686
+
2687
+ )
2688
+ resolveIteratorResultChunk(
2691
2689
  response,
2692
- value,
2693
- !0
2694
- ))
2695
- : resolveIteratorResultChunk(
2696
- response,
2697
- buffer[nextWriteIndex],
2698
- value,
2690
+ buffer[nextWriteIndex++],
2691
+ '"$undefined"',
2699
2692
  !0
2700
2693
  );
2701
- for (nextWriteIndex++; nextWriteIndex < buffer.length; )
2702
- resolveIteratorResultChunk(
2703
- response,
2704
- buffer[nextWriteIndex++],
2705
- '"$undefined"',
2706
- !0
2707
- );
2708
2694
  },
2709
2695
  error: function (error) {
2710
- closed = !0;
2711
- for (
2712
- nextWriteIndex === buffer.length &&
2713
- (buffer[nextWriteIndex] = new ReactPromise("pending", null, null));
2714
- nextWriteIndex < buffer.length;
2696
+ if (!closed)
2697
+ for (
2698
+ closed = !0,
2699
+ nextWriteIndex === buffer.length &&
2700
+ (buffer[nextWriteIndex] = new ReactPromise(
2701
+ "pending",
2702
+ null,
2703
+ null
2704
+ ));
2705
+ nextWriteIndex < buffer.length;
2715
2706
 
2716
- )
2717
- triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
2707
+ )
2708
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
2718
2709
  }
2719
2710
  });
2720
2711
  return iterator;
@@ -2726,7 +2717,7 @@ function parseModelString(response, obj, key, value, reference) {
2726
2717
  return value.slice(1);
2727
2718
  case "@":
2728
2719
  return (obj = parseInt(value.slice(2), 16)), getChunk(response, obj);
2729
- case "F":
2720
+ case "h":
2730
2721
  return (
2731
2722
  (value = value.slice(2)),
2732
2723
  getOutlinedModel(response, value, obj, key, loadServerReference$1)
@@ -2944,7 +2935,8 @@ exports.registerServerReference = function (reference, id, exportName) {
2944
2935
  configurable: !0
2945
2936
  },
2946
2937
  $$bound: { value: null, configurable: !0 },
2947
- bind: { value: bind, configurable: !0 }
2938
+ bind: { value: bind, configurable: !0 },
2939
+ toString: serverReferenceToString
2948
2940
  });
2949
2941
  };
2950
2942
  exports.renderToReadableStream = function (model, webpackMap, options) {