react-server-dom-parcel 19.2.1 → 19.2.2

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.
@@ -120,7 +120,14 @@ function bind() {
120
120
  }
121
121
  return newFn;
122
122
  }
123
- var previousDispatcher = ReactDOMSharedInternals.d;
123
+ var serverReferenceToString = {
124
+ value: function () {
125
+ return "function () { [omitted code] }";
126
+ },
127
+ configurable: !0,
128
+ writable: !0
129
+ },
130
+ previousDispatcher = ReactDOMSharedInternals.d;
124
131
  ReactDOMSharedInternals.d = {
125
132
  f: previousDispatcher.f,
126
133
  r: previousDispatcher.r,
@@ -1592,7 +1599,7 @@ function renderModelDestructive(
1592
1599
  (task = request.writtenServerReferences),
1593
1600
  (parentPropertyName = task.get(value)),
1594
1601
  void 0 !== parentPropertyName
1595
- ? (request = "$F" + parentPropertyName.toString(16))
1602
+ ? (request = "$h" + parentPropertyName.toString(16))
1596
1603
  : ((parentPropertyName = value.$$bound),
1597
1604
  (parentPropertyName =
1598
1605
  null === parentPropertyName
@@ -1604,7 +1611,7 @@ function renderModelDestructive(
1604
1611
  0
1605
1612
  )),
1606
1613
  task.set(value, request),
1607
- (request = "$F" + request.toString(16))),
1614
+ (request = "$h" + request.toString(16))),
1608
1615
  request
1609
1616
  );
1610
1617
  if (
@@ -2037,7 +2044,23 @@ ReactPromise.prototype.then = function (resolve, reject) {
2037
2044
  }
2038
2045
  switch (this.status) {
2039
2046
  case "fulfilled":
2040
- "function" === typeof resolve && resolve(this.value);
2047
+ if ("function" === typeof resolve) {
2048
+ for (
2049
+ var inspectedValue = this.value;
2050
+ inspectedValue instanceof ReactPromise;
2051
+
2052
+ ) {
2053
+ if (inspectedValue === this) {
2054
+ "function" === typeof reject &&
2055
+ reject(Error("Cannot have cyclic thenables."));
2056
+ return;
2057
+ }
2058
+ if ("fulfilled" === inspectedValue.status)
2059
+ inspectedValue = inspectedValue.value;
2060
+ else break;
2061
+ }
2062
+ resolve(this.value);
2063
+ }
2041
2064
  break;
2042
2065
  case "pending":
2043
2066
  case "blocked":
@@ -2189,7 +2212,7 @@ function resolveIteratorResultChunk(response, chunk, value, done) {
2189
2212
  }
2190
2213
  function loadServerReference$1(response, metaData, parentObject, key) {
2191
2214
  var id = metaData.id;
2192
- if ("string" !== typeof id) return null;
2215
+ if ("string" !== typeof id || "then" === key) return null;
2193
2216
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2194
2217
  id = metaData.bound;
2195
2218
  var promise = preloadModule$1(serverReference);
@@ -2227,6 +2250,7 @@ function loadServerReference$1(response, metaData, parentObject, key) {
2227
2250
  ((promiseValue = resolvedValue.value),
2228
2251
  (resolvedValue.status = "fulfilled"),
2229
2252
  (resolvedValue.value = handler.value),
2253
+ (resolvedValue.reason = null),
2230
2254
  null !== promiseValue &&
2231
2255
  wakeChunk(response, promiseValue, handler.value)));
2232
2256
  },
@@ -2318,6 +2342,7 @@ function initializeModelChunk(chunk) {
2318
2342
  }
2319
2343
  chunk.status = "fulfilled";
2320
2344
  chunk.value = value;
2345
+ chunk.reason = null;
2321
2346
  } catch (error) {
2322
2347
  (chunk.status = "rejected"), (chunk.reason = error);
2323
2348
  } finally {
@@ -2328,7 +2353,11 @@ function reportGlobalError(response, error) {
2328
2353
  response._closed = !0;
2329
2354
  response._closedReason = error;
2330
2355
  response._chunks.forEach(function (chunk) {
2331
- "pending" === chunk.status && triggerErrorOnChunk(response, chunk, error);
2356
+ "pending" === chunk.status
2357
+ ? triggerErrorOnChunk(response, chunk, error)
2358
+ : "fulfilled" === chunk.status &&
2359
+ null !== chunk.reason &&
2360
+ chunk.reason.error(error);
2332
2361
  });
2333
2362
  }
2334
2363
  function getChunk(response, id) {
@@ -2346,58 +2375,39 @@ function getChunk(response, id) {
2346
2375
  return chunk;
2347
2376
  }
2348
2377
  function fulfillReference(response, reference, value) {
2349
- for (
2350
- var handler = reference.handler,
2351
- parentObject = reference.parentObject,
2352
- key = reference.key,
2353
- map = reference.map,
2354
- path = reference.path,
2355
- i = 1;
2356
- i < path.length;
2357
- i++
2358
- ) {
2359
- for (; value instanceof ReactPromise; ) {
2360
- switch (value.status) {
2361
- case "resolved_model":
2362
- initializeModelChunk(value);
2363
- }
2364
- switch (value.status) {
2365
- case "fulfilled":
2366
- value = value.value;
2367
- continue;
2368
- case "blocked":
2369
- case "pending":
2370
- path.splice(0, i - 1);
2371
- null === value.value
2372
- ? (value.value = [reference])
2373
- : value.value.push(reference);
2374
- null === value.reason
2375
- ? (value.reason = [reference])
2376
- : value.reason.push(reference);
2377
- return;
2378
- default:
2379
- rejectReference(response, reference.handler, value.reason);
2380
- return;
2381
- }
2378
+ var handler = reference.handler,
2379
+ parentObject = reference.parentObject,
2380
+ key = reference.key,
2381
+ map = reference.map,
2382
+ path = reference.path;
2383
+ try {
2384
+ for (var i = 1; i < path.length; i++) {
2385
+ var name = path[i];
2386
+ if (
2387
+ "object" !== typeof value ||
2388
+ !hasOwnProperty.call(value, name) ||
2389
+ value instanceof Promise
2390
+ )
2391
+ throw Error("Invalid reference.");
2392
+ value = value[name];
2382
2393
  }
2383
- var name = path[i];
2384
- "object" === typeof value &&
2385
- hasOwnProperty.call(value, name) &&
2386
- (value = value[name]);
2394
+ var mappedValue = map(response, value, parentObject, key);
2395
+ parentObject[key] = mappedValue;
2396
+ "" === key && null === handler.value && (handler.value = mappedValue);
2397
+ } catch (error) {
2398
+ rejectReference(response, reference.handler, error);
2399
+ return;
2387
2400
  }
2388
- reference = map(response, value, parentObject, key);
2389
- parentObject[key] = reference;
2390
- "" === key && null === handler.value && (handler.value = reference);
2391
2401
  handler.deps--;
2392
2402
  0 === handler.deps &&
2393
- ((parentObject = handler.chunk),
2394
- null !== parentObject &&
2395
- "blocked" === parentObject.status &&
2396
- ((key = parentObject.value),
2397
- (parentObject.status = "fulfilled"),
2398
- (parentObject.value = handler.value),
2399
- (parentObject.reason = handler.reason),
2400
- null !== key && wakeChunk(response, key, handler.value)));
2403
+ ((reference = handler.chunk),
2404
+ null !== reference &&
2405
+ "blocked" === reference.status &&
2406
+ ((value = reference.value),
2407
+ (reference.status = "fulfilled"),
2408
+ (reference.value = handler.value),
2409
+ (reference.reason = handler.reason),
2410
+ null !== value && wakeChunk(response, value, handler.value)));
2401
2411
  }
2402
2412
  function rejectReference(response, handler, error) {
2403
2413
  handler.errored ||
@@ -2409,33 +2419,6 @@ function rejectReference(response, handler, error) {
2409
2419
  "blocked" === handler.status &&
2410
2420
  triggerErrorOnChunk(response, handler, error));
2411
2421
  }
2412
- function waitForReference(
2413
- referencedChunk,
2414
- parentObject,
2415
- key,
2416
- response,
2417
- map,
2418
- path
2419
- ) {
2420
- initializingHandler
2421
- ? ((response = initializingHandler), response.deps++)
2422
- : (response = initializingHandler =
2423
- { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
2424
- parentObject = {
2425
- handler: response,
2426
- parentObject: parentObject,
2427
- key: key,
2428
- map: map,
2429
- path: path
2430
- };
2431
- null === referencedChunk.value
2432
- ? (referencedChunk.value = [parentObject])
2433
- : referencedChunk.value.push(parentObject);
2434
- null === referencedChunk.reason
2435
- ? (referencedChunk.reason = [parentObject])
2436
- : referencedChunk.reason.push(parentObject);
2437
- return null;
2438
- }
2439
2422
  function getOutlinedModel(response, reference, parentObject, key, map) {
2440
2423
  reference = reference.split(":");
2441
2424
  var id = parseInt(reference[0], 16);
@@ -2446,53 +2429,40 @@ function getOutlinedModel(response, reference, parentObject, key, map) {
2446
2429
  }
2447
2430
  switch (id.status) {
2448
2431
  case "fulfilled":
2449
- var value = id.value;
2450
- for (id = 1; id < reference.length; id++) {
2451
- for (; value instanceof ReactPromise; ) {
2452
- switch (value.status) {
2453
- case "resolved_model":
2454
- initializeModelChunk(value);
2455
- }
2456
- switch (value.status) {
2457
- case "fulfilled":
2458
- value = value.value;
2459
- break;
2460
- case "blocked":
2461
- case "pending":
2462
- return waitForReference(
2463
- value,
2464
- parentObject,
2465
- key,
2466
- response,
2467
- map,
2468
- reference.slice(id - 1)
2469
- );
2470
- default:
2471
- return (
2472
- initializingHandler
2473
- ? ((initializingHandler.errored = !0),
2474
- (initializingHandler.value = null),
2475
- (initializingHandler.reason = value.reason))
2476
- : (initializingHandler = {
2477
- chunk: null,
2478
- value: null,
2479
- reason: value.reason,
2480
- deps: 0,
2481
- errored: !0
2482
- }),
2483
- null
2484
- );
2485
- }
2486
- }
2487
- var name = reference[id];
2488
- "object" === typeof value &&
2489
- hasOwnProperty.call(value, name) &&
2490
- (value = value[name]);
2432
+ id = id.value;
2433
+ for (var i = 1; i < reference.length; i++) {
2434
+ var name = reference[i];
2435
+ if (
2436
+ "object" !== typeof id ||
2437
+ !hasOwnProperty.call(id, name) ||
2438
+ id instanceof Promise
2439
+ )
2440
+ throw Error("Invalid reference.");
2441
+ id = id[name];
2491
2442
  }
2492
- return map(response, value, parentObject, key);
2443
+ return map(response, id, parentObject, key);
2493
2444
  case "pending":
2494
2445
  case "blocked":
2495
- return waitForReference(id, parentObject, key, response, map, reference);
2446
+ return (
2447
+ initializingHandler
2448
+ ? ((response = initializingHandler), response.deps++)
2449
+ : (response = initializingHandler =
2450
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 }),
2451
+ (parentObject = {
2452
+ handler: response,
2453
+ parentObject: parentObject,
2454
+ key: key,
2455
+ map: map,
2456
+ path: reference
2457
+ }),
2458
+ null === id.value
2459
+ ? (id.value = [parentObject])
2460
+ : id.value.push(parentObject),
2461
+ null === id.reason
2462
+ ? (id.reason = [parentObject])
2463
+ : id.reason.push(parentObject),
2464
+ null
2465
+ );
2496
2466
  default:
2497
2467
  return (
2498
2468
  initializingHandler
@@ -2519,8 +2489,8 @@ function createSet(response, model) {
2519
2489
  function extractIterator(response, model) {
2520
2490
  return model[Symbol.iterator]();
2521
2491
  }
2522
- function createModel(response, model) {
2523
- return model;
2492
+ function createModel(response, model, parentObject, key) {
2493
+ return "then" === key && "function" === typeof model ? null : model;
2524
2494
  }
2525
2495
  function parseTypedArray(
2526
2496
  response,
@@ -2531,9 +2501,10 @@ function parseTypedArray(
2531
2501
  parentKey
2532
2502
  ) {
2533
2503
  reference = parseInt(reference.slice(2), 16);
2534
- reference = response._formData
2535
- .get(response._prefix + reference)
2536
- .arrayBuffer();
2504
+ bytesPerElement = response._prefix + reference;
2505
+ if (response._chunks.has(reference))
2506
+ throw Error("Already initialized typed array.");
2507
+ reference = response._formData.get(bytesPerElement).arrayBuffer();
2537
2508
  if (initializingHandler) {
2538
2509
  var handler = initializingHandler;
2539
2510
  handler.deps++;
@@ -2559,6 +2530,7 @@ function parseTypedArray(
2559
2530
  var resolveListeners = buffer.value;
2560
2531
  buffer.status = "fulfilled";
2561
2532
  buffer.value = handler.value;
2533
+ buffer.reason = null;
2562
2534
  null !== resolveListeners &&
2563
2535
  wakeChunk(response, resolveListeners, handler.value);
2564
2536
  }
@@ -2591,7 +2563,10 @@ function resolveStream(response, id, stream, controller) {
2591
2563
  }
2592
2564
  function parseReadableStream(response, reference, type) {
2593
2565
  reference = parseInt(reference.slice(2), 16);
2594
- var controller = null;
2566
+ if (response._chunks.has(reference))
2567
+ throw Error("Already initialized stream.");
2568
+ var controller = null,
2569
+ closed = !1;
2595
2570
  type = new ReadableStream({
2596
2571
  type: type,
2597
2572
  start: function (c) {
@@ -2634,24 +2609,27 @@ function parseReadableStream(response, reference, type) {
2634
2609
  }
2635
2610
  },
2636
2611
  close: function () {
2637
- if (null === previousBlockedChunk) controller.close();
2638
- else {
2639
- var blockedChunk = previousBlockedChunk;
2640
- previousBlockedChunk = null;
2641
- blockedChunk.then(function () {
2642
- return controller.close();
2643
- });
2644
- }
2612
+ if (!closed)
2613
+ if (((closed = !0), null === previousBlockedChunk)) controller.close();
2614
+ else {
2615
+ var blockedChunk = previousBlockedChunk;
2616
+ previousBlockedChunk = null;
2617
+ blockedChunk.then(function () {
2618
+ return controller.close();
2619
+ });
2620
+ }
2645
2621
  },
2646
2622
  error: function (error) {
2647
- if (null === previousBlockedChunk) controller.error(error);
2648
- else {
2649
- var blockedChunk = previousBlockedChunk;
2650
- previousBlockedChunk = null;
2651
- blockedChunk.then(function () {
2652
- return controller.error(error);
2653
- });
2654
- }
2623
+ if (!closed)
2624
+ if (((closed = !0), null === previousBlockedChunk))
2625
+ controller.error(error);
2626
+ else {
2627
+ var blockedChunk = previousBlockedChunk;
2628
+ previousBlockedChunk = null;
2629
+ blockedChunk.then(function () {
2630
+ return controller.error(error);
2631
+ });
2632
+ }
2655
2633
  }
2656
2634
  });
2657
2635
  return type;
@@ -2666,6 +2644,8 @@ function createIterator(next) {
2666
2644
  }
2667
2645
  function parseAsyncIterable(response, reference, iterator) {
2668
2646
  reference = parseInt(reference.slice(2), 16);
2647
+ if (response._chunks.has(reference))
2648
+ throw Error("Already initialized stream.");
2669
2649
  var buffer = [],
2670
2650
  closed = !1,
2671
2651
  nextWriteIndex = 0,
@@ -2709,36 +2689,46 @@ function parseAsyncIterable(response, reference, iterator) {
2709
2689
  nextWriteIndex++;
2710
2690
  },
2711
2691
  close: function (value) {
2712
- closed = !0;
2713
- nextWriteIndex === buffer.length
2714
- ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
2715
- response,
2716
- value,
2717
- !0
2718
- ))
2719
- : resolveIteratorResultChunk(
2692
+ if (!closed)
2693
+ for (
2694
+ closed = !0,
2695
+ nextWriteIndex === buffer.length
2696
+ ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
2697
+ response,
2698
+ value,
2699
+ !0
2700
+ ))
2701
+ : resolveIteratorResultChunk(
2702
+ response,
2703
+ buffer[nextWriteIndex],
2704
+ value,
2705
+ !0
2706
+ ),
2707
+ nextWriteIndex++;
2708
+ nextWriteIndex < buffer.length;
2709
+
2710
+ )
2711
+ resolveIteratorResultChunk(
2720
2712
  response,
2721
- buffer[nextWriteIndex],
2722
- value,
2713
+ buffer[nextWriteIndex++],
2714
+ '"$undefined"',
2723
2715
  !0
2724
2716
  );
2725
- for (nextWriteIndex++; nextWriteIndex < buffer.length; )
2726
- resolveIteratorResultChunk(
2727
- response,
2728
- buffer[nextWriteIndex++],
2729
- '"$undefined"',
2730
- !0
2731
- );
2732
2717
  },
2733
2718
  error: function (error) {
2734
- closed = !0;
2735
- for (
2736
- nextWriteIndex === buffer.length &&
2737
- (buffer[nextWriteIndex] = new ReactPromise("pending", null, null));
2738
- nextWriteIndex < buffer.length;
2719
+ if (!closed)
2720
+ for (
2721
+ closed = !0,
2722
+ nextWriteIndex === buffer.length &&
2723
+ (buffer[nextWriteIndex] = new ReactPromise(
2724
+ "pending",
2725
+ null,
2726
+ null
2727
+ ));
2728
+ nextWriteIndex < buffer.length;
2739
2729
 
2740
- )
2741
- triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
2730
+ )
2731
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
2742
2732
  }
2743
2733
  });
2744
2734
  return iterator;
@@ -2750,7 +2740,7 @@ function parseModelString(response, obj, key, value, reference) {
2750
2740
  return value.slice(1);
2751
2741
  case "@":
2752
2742
  return (obj = parseInt(value.slice(2), 16)), getChunk(response, obj);
2753
- case "F":
2743
+ case "h":
2754
2744
  return (
2755
2745
  (value = value.slice(2)),
2756
2746
  getOutlinedModel(response, value, obj, key, loadServerReference$1)
@@ -3026,7 +3016,8 @@ exports.registerServerReference = function (reference, id, exportName) {
3026
3016
  $$typeof: { value: SERVER_REFERENCE_TAG },
3027
3017
  $$id: { value: id + "#" + exportName, configurable: !0 },
3028
3018
  $$bound: { value: null, configurable: !0 },
3029
- bind: { value: bind, configurable: !0 }
3019
+ bind: { value: bind, configurable: !0 },
3020
+ toString: serverReferenceToString
3030
3021
  });
3031
3022
  };
3032
3023
  exports.renderToReadableStream = function (model, options) {