react-server-dom-webpack 19.0.1 → 19.0.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.
@@ -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 (
@@ -2022,7 +2029,23 @@ ReactPromise.prototype.then = function (resolve, reject) {
2022
2029
  }
2023
2030
  switch (this.status) {
2024
2031
  case "fulfilled":
2025
- "function" === typeof resolve && resolve(this.value);
2032
+ if ("function" === typeof resolve) {
2033
+ for (
2034
+ var inspectedValue = this.value;
2035
+ inspectedValue instanceof ReactPromise;
2036
+
2037
+ ) {
2038
+ if (inspectedValue === this) {
2039
+ "function" === typeof reject &&
2040
+ reject(Error("Cannot have cyclic thenables."));
2041
+ return;
2042
+ }
2043
+ if ("fulfilled" === inspectedValue.status)
2044
+ inspectedValue = inspectedValue.value;
2045
+ else break;
2046
+ }
2047
+ resolve(this.value);
2048
+ }
2026
2049
  break;
2027
2050
  case "pending":
2028
2051
  case "blocked":
@@ -2174,7 +2197,7 @@ function resolveIteratorResultChunk(response, chunk, value, done) {
2174
2197
  }
2175
2198
  function loadServerReference$1(response, metaData, parentObject, key) {
2176
2199
  var id = metaData.id;
2177
- if ("string" !== typeof id) return null;
2200
+ if ("string" !== typeof id || "then" === key) return null;
2178
2201
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2179
2202
  id = metaData.bound;
2180
2203
  var promise = preloadModule(serverReference);
@@ -2212,6 +2235,7 @@ function loadServerReference$1(response, metaData, parentObject, key) {
2212
2235
  ((promiseValue = resolvedValue.value),
2213
2236
  (resolvedValue.status = "fulfilled"),
2214
2237
  (resolvedValue.value = handler.value),
2238
+ (resolvedValue.reason = null),
2215
2239
  null !== promiseValue &&
2216
2240
  wakeChunk(response, promiseValue, handler.value)));
2217
2241
  },
@@ -2303,6 +2327,7 @@ function initializeModelChunk(chunk) {
2303
2327
  }
2304
2328
  chunk.status = "fulfilled";
2305
2329
  chunk.value = value;
2330
+ chunk.reason = null;
2306
2331
  } catch (error) {
2307
2332
  (chunk.status = "rejected"), (chunk.reason = error);
2308
2333
  } finally {
@@ -2311,7 +2336,11 @@ function initializeModelChunk(chunk) {
2311
2336
  }
2312
2337
  function reportGlobalError(response, error) {
2313
2338
  response._chunks.forEach(function (chunk) {
2314
- "pending" === chunk.status && triggerErrorOnChunk(response, chunk, error);
2339
+ "pending" === chunk.status
2340
+ ? triggerErrorOnChunk(response, chunk, error)
2341
+ : "fulfilled" === chunk.status &&
2342
+ null !== chunk.reason &&
2343
+ chunk.reason.error(error);
2315
2344
  });
2316
2345
  }
2317
2346
  function getChunk(response, id) {
@@ -2327,58 +2356,39 @@ function getChunk(response, id) {
2327
2356
  return chunk;
2328
2357
  }
2329
2358
  function fulfillReference(response, reference, value) {
2330
- for (
2331
- var handler = reference.handler,
2332
- parentObject = reference.parentObject,
2333
- key = reference.key,
2334
- map = reference.map,
2335
- path = reference.path,
2336
- i = 1;
2337
- i < path.length;
2338
- i++
2339
- ) {
2340
- for (; value instanceof ReactPromise; ) {
2341
- switch (value.status) {
2342
- case "resolved_model":
2343
- initializeModelChunk(value);
2344
- }
2345
- switch (value.status) {
2346
- case "fulfilled":
2347
- value = value.value;
2348
- continue;
2349
- case "blocked":
2350
- case "pending":
2351
- path.splice(0, i - 1);
2352
- null === value.value
2353
- ? (value.value = [reference])
2354
- : value.value.push(reference);
2355
- null === value.reason
2356
- ? (value.reason = [reference])
2357
- : value.reason.push(reference);
2358
- return;
2359
- default:
2360
- rejectReference(response, reference.handler, value.reason);
2361
- return;
2362
- }
2359
+ var handler = reference.handler,
2360
+ parentObject = reference.parentObject,
2361
+ key = reference.key,
2362
+ map = reference.map,
2363
+ path = reference.path;
2364
+ try {
2365
+ for (var i = 1; i < path.length; i++) {
2366
+ var name = path[i];
2367
+ if (
2368
+ "object" !== typeof value ||
2369
+ !hasOwnProperty.call(value, name) ||
2370
+ value instanceof Promise
2371
+ )
2372
+ throw Error("Invalid reference.");
2373
+ value = value[name];
2363
2374
  }
2364
- var name = path[i];
2365
- "object" === typeof value &&
2366
- hasOwnProperty.call(value, name) &&
2367
- (value = value[name]);
2375
+ var mappedValue = map(response, value, parentObject, key);
2376
+ parentObject[key] = mappedValue;
2377
+ "" === key && null === handler.value && (handler.value = mappedValue);
2378
+ } catch (error) {
2379
+ rejectReference(response, reference.handler, error);
2380
+ return;
2368
2381
  }
2369
- reference = map(response, value, parentObject, key);
2370
- parentObject[key] = reference;
2371
- "" === key && null === handler.value && (handler.value = reference);
2372
2382
  handler.deps--;
2373
2383
  0 === handler.deps &&
2374
- ((parentObject = handler.chunk),
2375
- null !== parentObject &&
2376
- "blocked" === parentObject.status &&
2377
- ((key = parentObject.value),
2378
- (parentObject.status = "fulfilled"),
2379
- (parentObject.value = handler.value),
2380
- (parentObject.reason = handler.reason),
2381
- null !== key && wakeChunk(response, key, handler.value)));
2384
+ ((reference = handler.chunk),
2385
+ null !== reference &&
2386
+ "blocked" === reference.status &&
2387
+ ((value = reference.value),
2388
+ (reference.status = "fulfilled"),
2389
+ (reference.value = handler.value),
2390
+ (reference.reason = handler.reason),
2391
+ null !== value && wakeChunk(response, value, handler.value)));
2382
2392
  }
2383
2393
  function rejectReference(response, handler, error) {
2384
2394
  handler.errored ||
@@ -2390,33 +2400,6 @@ function rejectReference(response, handler, error) {
2390
2400
  "blocked" === handler.status &&
2391
2401
  triggerErrorOnChunk(response, handler, error));
2392
2402
  }
2393
- function waitForReference(
2394
- referencedChunk,
2395
- parentObject,
2396
- key,
2397
- response,
2398
- map,
2399
- path
2400
- ) {
2401
- initializingHandler
2402
- ? ((response = initializingHandler), response.deps++)
2403
- : (response = initializingHandler =
2404
- { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
2405
- parentObject = {
2406
- handler: response,
2407
- parentObject: parentObject,
2408
- key: key,
2409
- map: map,
2410
- path: path
2411
- };
2412
- null === referencedChunk.value
2413
- ? (referencedChunk.value = [parentObject])
2414
- : referencedChunk.value.push(parentObject);
2415
- null === referencedChunk.reason
2416
- ? (referencedChunk.reason = [parentObject])
2417
- : referencedChunk.reason.push(parentObject);
2418
- return null;
2419
- }
2420
2403
  function getOutlinedModel(response, reference, parentObject, key, map) {
2421
2404
  reference = reference.split(":");
2422
2405
  var id = parseInt(reference[0], 16);
@@ -2427,53 +2410,40 @@ function getOutlinedModel(response, reference, parentObject, key, map) {
2427
2410
  }
2428
2411
  switch (id.status) {
2429
2412
  case "fulfilled":
2430
- var value = id.value;
2431
- for (id = 1; id < reference.length; id++) {
2432
- for (; value instanceof ReactPromise; ) {
2433
- switch (value.status) {
2434
- case "resolved_model":
2435
- initializeModelChunk(value);
2436
- }
2437
- switch (value.status) {
2438
- case "fulfilled":
2439
- value = value.value;
2440
- break;
2441
- case "blocked":
2442
- case "pending":
2443
- return waitForReference(
2444
- value,
2445
- parentObject,
2446
- key,
2447
- response,
2448
- map,
2449
- reference.slice(id - 1)
2450
- );
2451
- default:
2452
- return (
2453
- initializingHandler
2454
- ? ((initializingHandler.errored = !0),
2455
- (initializingHandler.value = null),
2456
- (initializingHandler.reason = value.reason))
2457
- : (initializingHandler = {
2458
- chunk: null,
2459
- value: null,
2460
- reason: value.reason,
2461
- deps: 0,
2462
- errored: !0
2463
- }),
2464
- null
2465
- );
2466
- }
2467
- }
2468
- var name = reference[id];
2469
- "object" === typeof value &&
2470
- hasOwnProperty.call(value, name) &&
2471
- (value = value[name]);
2413
+ id = id.value;
2414
+ for (var i = 1; i < reference.length; i++) {
2415
+ var name = reference[i];
2416
+ if (
2417
+ "object" !== typeof id ||
2418
+ !hasOwnProperty.call(id, name) ||
2419
+ id instanceof Promise
2420
+ )
2421
+ throw Error("Invalid reference.");
2422
+ id = id[name];
2472
2423
  }
2473
- return map(response, value, parentObject, key);
2424
+ return map(response, id, parentObject, key);
2474
2425
  case "pending":
2475
2426
  case "blocked":
2476
- return waitForReference(id, parentObject, key, response, map, reference);
2427
+ return (
2428
+ initializingHandler
2429
+ ? ((response = initializingHandler), response.deps++)
2430
+ : (response = initializingHandler =
2431
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 }),
2432
+ (parentObject = {
2433
+ handler: response,
2434
+ parentObject: parentObject,
2435
+ key: key,
2436
+ map: map,
2437
+ path: reference
2438
+ }),
2439
+ null === id.value
2440
+ ? (id.value = [parentObject])
2441
+ : id.value.push(parentObject),
2442
+ null === id.reason
2443
+ ? (id.reason = [parentObject])
2444
+ : id.reason.push(parentObject),
2445
+ null
2446
+ );
2477
2447
  default:
2478
2448
  return (
2479
2449
  initializingHandler
@@ -2500,8 +2470,8 @@ function createSet(response, model) {
2500
2470
  function extractIterator(response, model) {
2501
2471
  return model[Symbol.iterator]();
2502
2472
  }
2503
- function createModel(response, model) {
2504
- return model;
2473
+ function createModel(response, model, parentObject, key) {
2474
+ return "then" === key && "function" === typeof model ? null : model;
2505
2475
  }
2506
2476
  function parseTypedArray(
2507
2477
  response,
@@ -2512,9 +2482,10 @@ function parseTypedArray(
2512
2482
  parentKey
2513
2483
  ) {
2514
2484
  reference = parseInt(reference.slice(2), 16);
2515
- reference = response._formData
2516
- .get(response._prefix + reference)
2517
- .arrayBuffer();
2485
+ bytesPerElement = response._prefix + reference;
2486
+ if (response._chunks.has(reference))
2487
+ throw Error("Already initialized typed array.");
2488
+ reference = response._formData.get(bytesPerElement).arrayBuffer();
2518
2489
  if (initializingHandler) {
2519
2490
  var handler = initializingHandler;
2520
2491
  handler.deps++;
@@ -2540,6 +2511,7 @@ function parseTypedArray(
2540
2511
  var resolveListeners = buffer.value;
2541
2512
  buffer.status = "fulfilled";
2542
2513
  buffer.value = handler.value;
2514
+ buffer.reason = null;
2543
2515
  null !== resolveListeners &&
2544
2516
  wakeChunk(response, resolveListeners, handler.value);
2545
2517
  }
@@ -2572,7 +2544,10 @@ function resolveStream(response, id, stream, controller) {
2572
2544
  }
2573
2545
  function parseReadableStream(response, reference, type) {
2574
2546
  reference = parseInt(reference.slice(2), 16);
2575
- var controller = null;
2547
+ if (response._chunks.has(reference))
2548
+ throw Error("Already initialized stream.");
2549
+ var controller = null,
2550
+ closed = !1;
2576
2551
  type = new ReadableStream({
2577
2552
  type: type,
2578
2553
  start: function (c) {
@@ -2615,24 +2590,27 @@ function parseReadableStream(response, reference, type) {
2615
2590
  }
2616
2591
  },
2617
2592
  close: function () {
2618
- if (null === previousBlockedChunk) controller.close();
2619
- else {
2620
- var blockedChunk = previousBlockedChunk;
2621
- previousBlockedChunk = null;
2622
- blockedChunk.then(function () {
2623
- return controller.close();
2624
- });
2625
- }
2593
+ if (!closed)
2594
+ if (((closed = !0), null === previousBlockedChunk)) controller.close();
2595
+ else {
2596
+ var blockedChunk = previousBlockedChunk;
2597
+ previousBlockedChunk = null;
2598
+ blockedChunk.then(function () {
2599
+ return controller.close();
2600
+ });
2601
+ }
2626
2602
  },
2627
2603
  error: function (error) {
2628
- if (null === previousBlockedChunk) controller.error(error);
2629
- else {
2630
- var blockedChunk = previousBlockedChunk;
2631
- previousBlockedChunk = null;
2632
- blockedChunk.then(function () {
2633
- return controller.error(error);
2634
- });
2635
- }
2604
+ if (!closed)
2605
+ if (((closed = !0), null === previousBlockedChunk))
2606
+ controller.error(error);
2607
+ else {
2608
+ var blockedChunk = previousBlockedChunk;
2609
+ previousBlockedChunk = null;
2610
+ blockedChunk.then(function () {
2611
+ return controller.error(error);
2612
+ });
2613
+ }
2636
2614
  }
2637
2615
  });
2638
2616
  return type;
@@ -2647,6 +2625,8 @@ function createIterator(next) {
2647
2625
  }
2648
2626
  function parseAsyncIterable(response, reference, iterator) {
2649
2627
  reference = parseInt(reference.slice(2), 16);
2628
+ if (response._chunks.has(reference))
2629
+ throw Error("Already initialized stream.");
2650
2630
  var buffer = [],
2651
2631
  closed = !1,
2652
2632
  nextWriteIndex = 0,
@@ -2690,36 +2670,46 @@ function parseAsyncIterable(response, reference, iterator) {
2690
2670
  nextWriteIndex++;
2691
2671
  },
2692
2672
  close: function (value) {
2693
- closed = !0;
2694
- nextWriteIndex === buffer.length
2695
- ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
2696
- response,
2697
- value,
2698
- !0
2699
- ))
2700
- : resolveIteratorResultChunk(
2673
+ if (!closed)
2674
+ for (
2675
+ closed = !0,
2676
+ nextWriteIndex === buffer.length
2677
+ ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
2678
+ response,
2679
+ value,
2680
+ !0
2681
+ ))
2682
+ : resolveIteratorResultChunk(
2683
+ response,
2684
+ buffer[nextWriteIndex],
2685
+ value,
2686
+ !0
2687
+ ),
2688
+ nextWriteIndex++;
2689
+ nextWriteIndex < buffer.length;
2690
+
2691
+ )
2692
+ resolveIteratorResultChunk(
2701
2693
  response,
2702
- buffer[nextWriteIndex],
2703
- value,
2694
+ buffer[nextWriteIndex++],
2695
+ '"$undefined"',
2704
2696
  !0
2705
2697
  );
2706
- for (nextWriteIndex++; nextWriteIndex < buffer.length; )
2707
- resolveIteratorResultChunk(
2708
- response,
2709
- buffer[nextWriteIndex++],
2710
- '"$undefined"',
2711
- !0
2712
- );
2713
2698
  },
2714
2699
  error: function (error) {
2715
- closed = !0;
2716
- for (
2717
- nextWriteIndex === buffer.length &&
2718
- (buffer[nextWriteIndex] = new ReactPromise("pending", null, null));
2719
- nextWriteIndex < buffer.length;
2700
+ if (!closed)
2701
+ for (
2702
+ closed = !0,
2703
+ nextWriteIndex === buffer.length &&
2704
+ (buffer[nextWriteIndex] = new ReactPromise(
2705
+ "pending",
2706
+ null,
2707
+ null
2708
+ ));
2709
+ nextWriteIndex < buffer.length;
2720
2710
 
2721
- )
2722
- triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
2711
+ )
2712
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
2723
2713
  }
2724
2714
  });
2725
2715
  return iterator;
@@ -2731,7 +2721,7 @@ function parseModelString(response, obj, key, value, reference) {
2731
2721
  return value.slice(1);
2732
2722
  case "@":
2733
2723
  return (obj = parseInt(value.slice(2), 16)), getChunk(response, obj);
2734
- case "F":
2724
+ case "h":
2735
2725
  return (
2736
2726
  (value = value.slice(2)),
2737
2727
  getOutlinedModel(response, value, obj, key, loadServerReference$1)
@@ -2979,13 +2969,13 @@ exports.decodeReplyFromBusboy = function (busboyStream, webpackMap, options) {
2979
2969
  );
2980
2970
  else {
2981
2971
  pendingFiles++;
2982
- var JSCompiler_object_inline_chunks_223 = [];
2972
+ var JSCompiler_object_inline_chunks_233 = [];
2983
2973
  value.on("data", function (chunk) {
2984
- JSCompiler_object_inline_chunks_223.push(chunk);
2974
+ JSCompiler_object_inline_chunks_233.push(chunk);
2985
2975
  });
2986
2976
  value.on("end", function () {
2987
2977
  try {
2988
- var blob = new Blob(JSCompiler_object_inline_chunks_223, {
2978
+ var blob = new Blob(JSCompiler_object_inline_chunks_233, {
2989
2979
  type: mimeType
2990
2980
  });
2991
2981
  response._formData.append(name, blob, filename);
@@ -3032,7 +3022,8 @@ exports.registerServerReference = function (reference, id, exportName) {
3032
3022
  configurable: !0
3033
3023
  },
3034
3024
  $$bound: { value: null, configurable: !0 },
3035
- bind: { value: bind, configurable: !0 }
3025
+ bind: { value: bind, configurable: !0 },
3026
+ toString: serverReferenceToString
3036
3027
  });
3037
3028
  };
3038
3029
  exports.renderToPipeableStream = function (model, webpackMap, options) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-server-dom-webpack",
3
3
  "description": "React Server Components bindings for DOM using Webpack. This is intended to be integrated into meta-frameworks. It is not intended to be imported directly.",
4
- "version": "19.0.1",
4
+ "version": "19.0.2",
5
5
  "keywords": [
6
6
  "react"
7
7
  ],
@@ -99,8 +99,8 @@
99
99
  "node": ">=0.10.0"
100
100
  },
101
101
  "peerDependencies": {
102
- "react": "^19.0.1",
103
- "react-dom": "^19.0.1",
102
+ "react": "^19.0.2",
103
+ "react-dom": "^19.0.2",
104
104
  "webpack": "^5.59.0"
105
105
  },
106
106
  "dependencies": {