@vitejs/plugin-rsc 0.5.1 → 0.5.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.
Files changed (76) hide show
  1. package/README.md +37 -6
  2. package/dist/{browser-U86erGOy.js → browser-Dtp2JGlz.js} +2 -2
  3. package/dist/{browser-C8KlM-b7.d.ts → browser-_r3sM3qR.d.ts} +1 -1
  4. package/dist/browser.d.ts +3 -3
  5. package/dist/browser.js +4 -4
  6. package/dist/{chunk-Cdb3zUqJ.js → chunk-ezxmLbPQ.js} +12 -10
  7. package/dist/{cjs-zUv66MZg.js → cjs-D5eQjp5l.js} +2 -2
  8. package/dist/core/browser.d.ts +1 -1
  9. package/dist/core/browser.js +3 -3
  10. package/dist/core/plugin.js +1 -1
  11. package/dist/core/rsc.d.ts +2 -2
  12. package/dist/core/rsc.js +3 -3
  13. package/dist/core/ssr.d.ts +2 -2
  14. package/dist/core/ssr.js +3 -3
  15. package/dist/{encryption-runtime-D5_PLt4C.js → encryption-runtime-BeCv59UO.js} +3 -3
  16. package/dist/index.d.ts +2 -2
  17. package/dist/index.js +8 -8
  18. package/dist/{picocolors-BRKobevN.js → picocolors-AGVbN-ya.js} +3 -3
  19. package/dist/{plugin-fbbM1muv.d.ts → plugin-24ZutaDY.d.ts} +1 -1
  20. package/dist/{plugin-DNwmUjn4.js → plugin-yqduHnqG.js} +37 -19
  21. package/dist/plugin.d.ts +2 -2
  22. package/dist/plugin.js +8 -8
  23. package/dist/plugins/cjs.js +3 -3
  24. package/dist/react/browser.d.ts +3 -3
  25. package/dist/react/browser.js +4 -4
  26. package/dist/react/rsc.d.ts +3 -3
  27. package/dist/react/rsc.js +4 -4
  28. package/dist/react/ssr.d.ts +3 -3
  29. package/dist/react/ssr.js +4 -4
  30. package/dist/{rsc-bL1QvQCm.js → rsc-CvqvlKO2.js} +2 -2
  31. package/dist/{rsc-B_DQ_Sju.js → rsc-DCIXw4uj.js} +2 -2
  32. package/dist/{rsc-OCbFObYE.d.ts → rsc-GHO-HEzG.d.ts} +1 -1
  33. package/dist/{rsc-03j1e3xp.d.ts → rsc-g5utSLBE.d.ts} +3 -3
  34. package/dist/rsc.d.ts +4 -4
  35. package/dist/rsc.js +6 -6
  36. package/dist/{ssr-DzY6rnEv.js → ssr-B-bLmlbm.js} +1 -1
  37. package/dist/{ssr-fBV4xXen.d.ts → ssr-CB7zlVBC.d.ts} +1 -1
  38. package/dist/{ssr-EH7rBPkK.js → ssr-CDPTWY93.js} +2 -2
  39. package/dist/ssr.d.ts +3 -3
  40. package/dist/ssr.js +5 -5
  41. package/dist/transforms/index.d.ts +1 -1
  42. package/dist/transforms/index.js +2 -2
  43. package/dist/{transforms-CSPqW3RX.js → transforms-BcLQCXiC.js} +2 -2
  44. package/dist/utils/encryption-runtime.d.ts +1 -1
  45. package/dist/utils/encryption-runtime.js +6 -6
  46. package/dist/utils/rpc.js +1 -1
  47. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-client.browser.development.js +8 -10
  48. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-client.browser.production.js +7 -8
  49. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-client.edge.development.js +6 -8
  50. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-client.edge.production.js +7 -8
  51. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-client.node.development.js +6 -8
  52. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-client.node.production.js +7 -8
  53. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-client.node.unbundled.development.js +5 -6
  54. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-client.node.unbundled.production.js +6 -6
  55. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.browser.development.js +430 -197
  56. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.browser.production.js +425 -201
  57. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.edge.development.js +438 -204
  58. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.edge.production.js +428 -203
  59. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.node.development.js +475 -228
  60. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.node.production.js +469 -227
  61. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.node.unbundled.development.js +473 -225
  62. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.node.unbundled.production.js +467 -224
  63. package/dist/vendor/react-server-dom/package.json +3 -3
  64. package/package.json +13 -13
  65. /package/dist/{browser-B4C0Zb4m.js → browser-BJvYpz0J.js} +0 -0
  66. /package/dist/{browser-CDBRiZjk.d.ts → browser-nNQlWmRe.d.ts} +0 -0
  67. /package/dist/{dist-CNbFy2EZ.js → dist-BRSdGcl7.js} +0 -0
  68. /package/dist/{encryption-runtime-BDgc4dBr.d.ts → encryption-runtime-C6wgt7G4.d.ts} +0 -0
  69. /package/dist/{encryption-utils-DdqSKS_O.js → encryption-utils-6p8t4Xqm.js} +0 -0
  70. /package/dist/{index-DJ0AhQ9B.d.ts → index-CM9Mmb_C.d.ts} +0 -0
  71. /package/dist/{index-BY8KUQhI.d.ts → index-CvmuS4Ks.d.ts} +0 -0
  72. /package/dist/{plugin-4UFT-s0w.js → plugin-D1MQNdps.js} +0 -0
  73. /package/dist/{rpc-nwJuNojy.js → rpc-DgBxsMKW.js} +0 -0
  74. /package/dist/{shared-DlspEItJ.js → shared-BbMae1Gg.js} +0 -0
  75. /package/dist/{shared-C8PSRwR2.js → shared-DEpnONZf.js} +0 -0
  76. /package/dist/{ssr-Dgbl_mOS.d.ts → ssr-Bnw-VQBr.d.ts} +0 -0
@@ -969,8 +969,8 @@ function serializeReadableStream(request, task, stream) {
969
969
  tryStreamTask(request, streamTask),
970
970
  enqueueFlush(request),
971
971
  reader.read().then(progress, error);
972
- } catch (x$8) {
973
- error(x$8);
972
+ } catch (x$11) {
973
+ error(x$11);
974
974
  }
975
975
  }
976
976
  function error(reason) {
@@ -1054,8 +1054,8 @@ function serializeAsyncIterable(request, task, iterable, iterator) {
1054
1054
  tryStreamTask(request, streamTask),
1055
1055
  enqueueFlush(request),
1056
1056
  iterator.next().then(progress, error);
1057
- } catch (x$9) {
1058
- error(x$9);
1057
+ } catch (x$12) {
1058
+ error(x$12);
1059
1059
  }
1060
1060
  }
1061
1061
  function error(reason) {
@@ -2192,9 +2192,9 @@ function abort(request, reason) {
2192
2192
  onAllReady();
2193
2193
  flushCompletedChunks(request);
2194
2194
  }
2195
- } catch (error$23) {
2196
- logRecoverableError(request, error$23, null),
2197
- fatalError(request, error$23);
2195
+ } catch (error$26) {
2196
+ logRecoverableError(request, error$26, null),
2197
+ fatalError(request, error$26);
2198
2198
  }
2199
2199
  }
2200
2200
  function resolveServerReference(bundlerConfig, id) {
@@ -2264,59 +2264,97 @@ function requireModule(metadata) {
2264
2264
  if ("fulfilled" === moduleExports.status)
2265
2265
  moduleExports = moduleExports.value;
2266
2266
  else throw moduleExports.reason;
2267
- return "*" === metadata[2]
2268
- ? moduleExports
2269
- : "" === metadata[2]
2270
- ? moduleExports.__esModule
2271
- ? moduleExports.default
2272
- : moduleExports
2273
- : moduleExports[metadata[2]];
2274
- }
2275
- function Chunk(status, value, reason, response) {
2267
+ if ("*" === metadata[2]) return moduleExports;
2268
+ if ("" === metadata[2])
2269
+ return moduleExports.__esModule ? moduleExports.default : moduleExports;
2270
+ if (hasOwnProperty.call(moduleExports, metadata[2]))
2271
+ return moduleExports[metadata[2]];
2272
+ }
2273
+ var RESPONSE_SYMBOL = Symbol();
2274
+ function ReactPromise(status, value, reason) {
2276
2275
  this.status = status;
2277
2276
  this.value = value;
2278
2277
  this.reason = reason;
2279
- this._response = response;
2280
2278
  }
2281
- Chunk.prototype = Object.create(Promise.prototype);
2282
- Chunk.prototype.then = function (resolve, reject) {
2279
+ ReactPromise.prototype = Object.create(Promise.prototype);
2280
+ ReactPromise.prototype.then = function (resolve, reject) {
2283
2281
  switch (this.status) {
2284
2282
  case "resolved_model":
2285
2283
  initializeModelChunk(this);
2286
2284
  }
2287
2285
  switch (this.status) {
2288
2286
  case "fulfilled":
2289
- resolve(this.value);
2287
+ "function" === typeof resolve && resolve(this.value);
2290
2288
  break;
2291
2289
  case "pending":
2292
2290
  case "blocked":
2293
- case "cyclic":
2294
- resolve &&
2291
+ "function" === typeof resolve &&
2295
2292
  (null === this.value && (this.value = []), this.value.push(resolve));
2296
- reject &&
2293
+ "function" === typeof reject &&
2297
2294
  (null === this.reason && (this.reason = []), this.reason.push(reject));
2298
2295
  break;
2299
2296
  default:
2300
- reject(this.reason);
2297
+ "function" === typeof reject && reject(this.reason);
2301
2298
  }
2302
2299
  };
2303
- function createPendingChunk(response) {
2304
- return new Chunk("pending", null, null, response);
2300
+ function wakeChunk(response, listeners, value) {
2301
+ for (var i = 0; i < listeners.length; i++) {
2302
+ var listener = listeners[i];
2303
+ "function" === typeof listener
2304
+ ? listener(value)
2305
+ : fulfillReference(response, listener, value);
2306
+ }
2305
2307
  }
2306
- function wakeChunk(listeners, value) {
2307
- for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value);
2308
+ function rejectChunk(response, listeners, error) {
2309
+ for (var i = 0; i < listeners.length; i++) {
2310
+ var listener = listeners[i];
2311
+ "function" === typeof listener
2312
+ ? listener(error)
2313
+ : rejectReference(response, listener.handler, error);
2314
+ }
2308
2315
  }
2309
- function triggerErrorOnChunk(chunk, error) {
2316
+ function resolveBlockedCycle(resolvedChunk, reference) {
2317
+ var referencedChunk = reference.handler.chunk;
2318
+ if (null === referencedChunk) return null;
2319
+ if (referencedChunk === resolvedChunk) return reference.handler;
2320
+ reference = referencedChunk.value;
2321
+ if (null !== reference)
2322
+ for (
2323
+ referencedChunk = 0;
2324
+ referencedChunk < reference.length;
2325
+ referencedChunk++
2326
+ ) {
2327
+ var listener = reference[referencedChunk];
2328
+ if (
2329
+ "function" !== typeof listener &&
2330
+ ((listener = resolveBlockedCycle(resolvedChunk, listener)),
2331
+ null !== listener)
2332
+ )
2333
+ return listener;
2334
+ }
2335
+ return null;
2336
+ }
2337
+ function triggerErrorOnChunk(response, chunk, error) {
2310
2338
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
2311
2339
  chunk.reason.error(error);
2312
2340
  else {
2313
2341
  var listeners = chunk.reason;
2314
2342
  chunk.status = "rejected";
2315
2343
  chunk.reason = error;
2316
- null !== listeners && wakeChunk(listeners, error);
2344
+ null !== listeners && rejectChunk(response, listeners, error);
2317
2345
  }
2318
2346
  }
2319
- function resolveModelChunk(chunk, value, id) {
2347
+ function createResolvedModelChunk(response, value, id) {
2348
+ var $jscomp$compprop2 = {};
2349
+ return new ReactPromise(
2350
+ "resolved_model",
2351
+ value,
2352
+ (($jscomp$compprop2.id = id),
2353
+ ($jscomp$compprop2[RESPONSE_SYMBOL] = response),
2354
+ $jscomp$compprop2)
2355
+ );
2356
+ }
2357
+ function resolveModelChunk(response, chunk, value, id) {
2320
2358
  if ("pending" !== chunk.status)
2321
2359
  (chunk = chunk.reason),
2322
2360
  "C" === value[0]
@@ -2327,77 +2365,129 @@ function resolveModelChunk(chunk, value, id) {
2327
2365
  rejectListeners = chunk.reason;
2328
2366
  chunk.status = "resolved_model";
2329
2367
  chunk.value = value;
2330
- chunk.reason = id;
2368
+ value = {};
2369
+ chunk.reason =
2370
+ ((value.id = id), (value[RESPONSE_SYMBOL] = response), value);
2331
2371
  if (null !== resolveListeners)
2332
- switch ((initializeModelChunk(chunk), chunk.status)) {
2372
+ a: switch ((initializeModelChunk(chunk), chunk.status)) {
2333
2373
  case "fulfilled":
2334
- wakeChunk(resolveListeners, chunk.value);
2374
+ wakeChunk(response, resolveListeners, chunk.value);
2335
2375
  break;
2336
- case "pending":
2337
2376
  case "blocked":
2338
- case "cyclic":
2377
+ for (value = 0; value < resolveListeners.length; value++)
2378
+ if (((id = resolveListeners[value]), "function" !== typeof id)) {
2379
+ var cyclicHandler = resolveBlockedCycle(chunk, id);
2380
+ if (null !== cyclicHandler)
2381
+ switch (
2382
+ (fulfillReference(response, id, cyclicHandler.value),
2383
+ resolveListeners.splice(value, 1),
2384
+ value--,
2385
+ null !== rejectListeners &&
2386
+ ((id = rejectListeners.indexOf(id)),
2387
+ -1 !== id && rejectListeners.splice(id, 1)),
2388
+ chunk.status)
2389
+ ) {
2390
+ case "fulfilled":
2391
+ wakeChunk(response, resolveListeners, chunk.value);
2392
+ break a;
2393
+ case "rejected":
2394
+ null !== rejectListeners &&
2395
+ rejectChunk(response, rejectListeners, chunk.reason);
2396
+ break a;
2397
+ }
2398
+ }
2399
+ case "pending":
2339
2400
  if (chunk.value)
2340
- for (value = 0; value < resolveListeners.length; value++)
2341
- chunk.value.push(resolveListeners[value]);
2401
+ for (response = 0; response < resolveListeners.length; response++)
2402
+ chunk.value.push(resolveListeners[response]);
2342
2403
  else chunk.value = resolveListeners;
2343
2404
  if (chunk.reason) {
2344
2405
  if (rejectListeners)
2345
- for (value = 0; value < rejectListeners.length; value++)
2346
- chunk.reason.push(rejectListeners[value]);
2406
+ for (
2407
+ resolveListeners = 0;
2408
+ resolveListeners < rejectListeners.length;
2409
+ resolveListeners++
2410
+ )
2411
+ chunk.reason.push(rejectListeners[resolveListeners]);
2347
2412
  } else chunk.reason = rejectListeners;
2348
2413
  break;
2349
2414
  case "rejected":
2350
- rejectListeners && wakeChunk(rejectListeners, chunk.reason);
2415
+ rejectListeners && wakeChunk(response, rejectListeners, chunk.reason);
2351
2416
  }
2352
2417
  }
2353
2418
  }
2354
2419
  function createResolvedIteratorResultChunk(response, value, done) {
2355
- return new Chunk(
2420
+ var $jscomp$compprop4 = {};
2421
+ return new ReactPromise(
2356
2422
  "resolved_model",
2357
2423
  (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}",
2358
- -1,
2359
- response
2424
+ (($jscomp$compprop4.id = -1),
2425
+ ($jscomp$compprop4[RESPONSE_SYMBOL] = response),
2426
+ $jscomp$compprop4)
2360
2427
  );
2361
2428
  }
2362
- function resolveIteratorResultChunk(chunk, value, done) {
2429
+ function resolveIteratorResultChunk(response, chunk, value, done) {
2363
2430
  resolveModelChunk(
2431
+ response,
2364
2432
  chunk,
2365
2433
  (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}",
2366
2434
  -1
2367
2435
  );
2368
2436
  }
2369
- function loadServerReference$1(
2370
- response,
2371
- id,
2372
- bound,
2373
- parentChunk,
2374
- parentObject,
2375
- key
2376
- ) {
2437
+ function loadServerReference$1(response, metaData, parentObject, key) {
2438
+ var id = metaData.id;
2439
+ if ("string" !== typeof id) return null;
2377
2440
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2378
- id = preloadModule(serverReference);
2379
- if (bound)
2380
- bound = Promise.all([bound, id]).then(function (_ref) {
2381
- _ref = _ref[0];
2382
- var fn = requireModule(serverReference);
2383
- return fn.bind.apply(fn, [null].concat(_ref));
2384
- });
2385
- else if (id)
2386
- bound = Promise.resolve(id).then(function () {
2387
- return requireModule(serverReference);
2388
- });
2441
+ id = metaData.bound;
2442
+ var promise = preloadModule(serverReference);
2443
+ if (promise)
2444
+ id instanceof ReactPromise && (promise = Promise.all([promise, id]));
2445
+ else if (id instanceof ReactPromise) promise = Promise.resolve(id);
2389
2446
  else return requireModule(serverReference);
2390
- bound.then(
2391
- createModelResolver(
2392
- parentChunk,
2393
- parentObject,
2394
- key,
2395
- !1,
2396
- response,
2397
- createModel,
2398
- []
2399
- ),
2400
- createModelReject(parentChunk)
2447
+ if (initializingHandler) {
2448
+ var handler = initializingHandler;
2449
+ handler.deps++;
2450
+ } else
2451
+ handler = initializingHandler = {
2452
+ chunk: null,
2453
+ value: null,
2454
+ reason: null,
2455
+ deps: 1,
2456
+ errored: !1
2457
+ };
2458
+ promise.then(
2459
+ function () {
2460
+ var resolvedValue = requireModule(serverReference);
2461
+ if (metaData.bound) {
2462
+ var promiseValue = metaData.bound.value;
2463
+ promiseValue = Array.isArray(promiseValue) ? promiseValue.slice(0) : [];
2464
+ promiseValue.unshift(null);
2465
+ resolvedValue = resolvedValue.bind.apply(resolvedValue, promiseValue);
2466
+ }
2467
+ parentObject[key] = resolvedValue;
2468
+ "" === key && null === handler.value && (handler.value = resolvedValue);
2469
+ handler.deps--;
2470
+ 0 === handler.deps &&
2471
+ ((resolvedValue = handler.chunk),
2472
+ null !== resolvedValue &&
2473
+ "blocked" === resolvedValue.status &&
2474
+ ((promiseValue = resolvedValue.value),
2475
+ (resolvedValue.status = "fulfilled"),
2476
+ (resolvedValue.value = handler.value),
2477
+ null !== promiseValue &&
2478
+ wakeChunk(response, promiseValue, handler.value)));
2479
+ },
2480
+ function (error) {
2481
+ if (!handler.errored) {
2482
+ handler.errored = !0;
2483
+ handler.value = null;
2484
+ handler.reason = error;
2485
+ var chunk = handler.chunk;
2486
+ null !== chunk &&
2487
+ "blocked" === chunk.status &&
2488
+ triggerErrorOnChunk(response, chunk, error);
2489
+ }
2490
+ }
2401
2491
  );
2402
2492
  return null;
2403
2493
  }
@@ -2427,53 +2517,65 @@ function reviveModel(response, parentObj, parentKey, value, reference) {
2427
2517
  ? reference + ":" + i
2428
2518
  : void 0),
2429
2519
  (parentObj = reviveModel(response, value, i, value[i], parentObj)),
2430
- void 0 !== parentObj ? (value[i] = parentObj) : delete value[i]);
2520
+ void 0 !== parentObj || "__proto__" === i
2521
+ ? (value[i] = parentObj)
2522
+ : delete value[i]);
2431
2523
  return value;
2432
2524
  }
2433
- var initializingChunk = null,
2434
- initializingChunkBlockedModel = null;
2525
+ var initializingHandler = null;
2435
2526
  function initializeModelChunk(chunk) {
2436
- var prevChunk = initializingChunk,
2437
- prevBlocked = initializingChunkBlockedModel;
2438
- initializingChunk = chunk;
2439
- initializingChunkBlockedModel = null;
2440
- var rootReference = -1 === chunk.reason ? void 0 : chunk.reason.toString(16),
2441
- resolvedModel = chunk.value;
2442
- chunk.status = "cyclic";
2527
+ var prevHandler = initializingHandler;
2528
+ initializingHandler = null;
2529
+ var _chunk$reason = chunk.reason,
2530
+ response = _chunk$reason[RESPONSE_SYMBOL];
2531
+ _chunk$reason = _chunk$reason.id;
2532
+ _chunk$reason = -1 === _chunk$reason ? void 0 : _chunk$reason.toString(16);
2533
+ var resolvedModel = chunk.value;
2534
+ chunk.status = "blocked";
2443
2535
  chunk.value = null;
2444
2536
  chunk.reason = null;
2445
2537
  try {
2446
2538
  var rawModel = JSON.parse(resolvedModel),
2447
2539
  value = reviveModel(
2448
- chunk._response,
2540
+ response,
2449
2541
  { "": rawModel },
2450
2542
  "",
2451
2543
  rawModel,
2452
- rootReference
2453
- );
2454
- if (
2455
- null !== initializingChunkBlockedModel &&
2456
- 0 < initializingChunkBlockedModel.deps
2457
- )
2458
- (initializingChunkBlockedModel.value = value), (chunk.status = "blocked");
2459
- else {
2460
- var resolveListeners = chunk.value;
2461
- chunk.status = "fulfilled";
2462
- chunk.value = value;
2463
- null !== resolveListeners && wakeChunk(resolveListeners, value);
2544
+ _chunk$reason
2545
+ ),
2546
+ resolveListeners = chunk.value;
2547
+ if (null !== resolveListeners)
2548
+ for (
2549
+ chunk.value = null, chunk.reason = null, rawModel = 0;
2550
+ rawModel < resolveListeners.length;
2551
+ rawModel++
2552
+ ) {
2553
+ var listener = resolveListeners[rawModel];
2554
+ "function" === typeof listener
2555
+ ? listener(value)
2556
+ : fulfillReference(response, listener, value);
2557
+ }
2558
+ if (null !== initializingHandler) {
2559
+ if (initializingHandler.errored) throw initializingHandler.reason;
2560
+ if (0 < initializingHandler.deps) {
2561
+ initializingHandler.value = value;
2562
+ initializingHandler.chunk = chunk;
2563
+ return;
2564
+ }
2464
2565
  }
2566
+ chunk.status = "fulfilled";
2567
+ chunk.value = value;
2465
2568
  } catch (error) {
2466
2569
  (chunk.status = "rejected"), (chunk.reason = error);
2467
2570
  } finally {
2468
- (initializingChunk = prevChunk),
2469
- (initializingChunkBlockedModel = prevBlocked);
2571
+ initializingHandler = prevHandler;
2470
2572
  }
2471
2573
  }
2472
2574
  function reportGlobalError(response, error) {
2473
2575
  response._closed = !0;
2474
2576
  response._closedReason = error;
2475
2577
  response._chunks.forEach(function (chunk) {
2476
- "pending" === chunk.status && triggerErrorOnChunk(chunk, error);
2578
+ "pending" === chunk.status && triggerErrorOnChunk(response, chunk, error);
2477
2579
  });
2478
2580
  }
2479
2581
  function getChunk(response, id) {
@@ -2482,48 +2584,104 @@ function getChunk(response, id) {
2482
2584
  chunk ||
2483
2585
  ((chunk = response._formData.get(response._prefix + id)),
2484
2586
  (chunk =
2485
- null != chunk
2486
- ? new Chunk("resolved_model", chunk, id, response)
2587
+ "string" === typeof chunk
2588
+ ? createResolvedModelChunk(response, chunk, id)
2487
2589
  : response._closed
2488
- ? new Chunk("rejected", null, response._closedReason, response)
2489
- : createPendingChunk(response)),
2590
+ ? new ReactPromise("rejected", null, response._closedReason)
2591
+ : new ReactPromise("pending", null, null)),
2490
2592
  chunks.set(id, chunk));
2491
2593
  return chunk;
2492
2594
  }
2493
- function createModelResolver(
2494
- chunk,
2595
+ function fulfillReference(response, reference, value) {
2596
+ for (
2597
+ var handler = reference.handler,
2598
+ parentObject = reference.parentObject,
2599
+ key = reference.key,
2600
+ map = reference.map,
2601
+ path = reference.path,
2602
+ i = 1;
2603
+ i < path.length;
2604
+ i++
2605
+ ) {
2606
+ for (; value instanceof ReactPromise; ) {
2607
+ switch (value.status) {
2608
+ case "resolved_model":
2609
+ initializeModelChunk(value);
2610
+ }
2611
+ switch (value.status) {
2612
+ case "fulfilled":
2613
+ value = value.value;
2614
+ continue;
2615
+ case "blocked":
2616
+ case "pending":
2617
+ path.splice(0, i - 1);
2618
+ null === value.value
2619
+ ? (value.value = [reference])
2620
+ : value.value.push(reference);
2621
+ null === value.reason
2622
+ ? (value.reason = [reference])
2623
+ : value.reason.push(reference);
2624
+ return;
2625
+ default:
2626
+ rejectReference(response, reference.handler, value.reason);
2627
+ return;
2628
+ }
2629
+ }
2630
+ var name = path[i];
2631
+ "object" === typeof value &&
2632
+ hasOwnProperty.call(value, name) &&
2633
+ (value = value[name]);
2634
+ }
2635
+ reference = map(response, value, parentObject, key);
2636
+ parentObject[key] = reference;
2637
+ "" === key && null === handler.value && (handler.value = reference);
2638
+ handler.deps--;
2639
+ 0 === handler.deps &&
2640
+ ((parentObject = handler.chunk),
2641
+ null !== parentObject &&
2642
+ "blocked" === parentObject.status &&
2643
+ ((key = parentObject.value),
2644
+ (parentObject.status = "fulfilled"),
2645
+ (parentObject.value = handler.value),
2646
+ (parentObject.reason = handler.reason),
2647
+ null !== key && wakeChunk(response, key, handler.value)));
2648
+ }
2649
+ function rejectReference(response, handler, error) {
2650
+ handler.errored ||
2651
+ ((handler.errored = !0),
2652
+ (handler.value = null),
2653
+ (handler.reason = error),
2654
+ (handler = handler.chunk),
2655
+ null !== handler &&
2656
+ "blocked" === handler.status &&
2657
+ triggerErrorOnChunk(response, handler, error));
2658
+ }
2659
+ function waitForReference(
2660
+ referencedChunk,
2495
2661
  parentObject,
2496
2662
  key,
2497
- cyclic,
2498
2663
  response,
2499
2664
  map,
2500
2665
  path
2501
2666
  ) {
2502
- if (initializingChunkBlockedModel) {
2503
- var blocked = initializingChunkBlockedModel;
2504
- cyclic || blocked.deps++;
2505
- } else
2506
- blocked = initializingChunkBlockedModel = {
2507
- deps: cyclic ? 0 : 1,
2508
- value: null
2509
- };
2510
- return function (value) {
2511
- for (var i = 1; i < path.length; i++) value = value[path[i]];
2512
- parentObject[key] = map(response, value);
2513
- "" === key && null === blocked.value && (blocked.value = parentObject[key]);
2514
- blocked.deps--;
2515
- 0 === blocked.deps &&
2516
- "blocked" === chunk.status &&
2517
- ((value = chunk.value),
2518
- (chunk.status = "fulfilled"),
2519
- (chunk.value = blocked.value),
2520
- null !== value && wakeChunk(value, blocked.value));
2521
- };
2522
- }
2523
- function createModelReject(chunk) {
2524
- return function (error) {
2525
- return triggerErrorOnChunk(chunk, error);
2667
+ initializingHandler
2668
+ ? ((response = initializingHandler), response.deps++)
2669
+ : (response = initializingHandler =
2670
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
2671
+ parentObject = {
2672
+ handler: response,
2673
+ parentObject: parentObject,
2674
+ key: key,
2675
+ map: map,
2676
+ path: path
2526
2677
  };
2678
+ null === referencedChunk.value
2679
+ ? (referencedChunk.value = [parentObject])
2680
+ : referencedChunk.value.push(parentObject);
2681
+ null === referencedChunk.reason
2682
+ ? (referencedChunk.reason = [parentObject])
2683
+ : referencedChunk.reason.push(parentObject);
2684
+ return null;
2527
2685
  }
2528
2686
  function getOutlinedModel(response, reference, parentObject, key, map) {
2529
2687
  reference = reference.split(":");
@@ -2535,29 +2693,68 @@ function getOutlinedModel(response, reference, parentObject, key, map) {
2535
2693
  }
2536
2694
  switch (id.status) {
2537
2695
  case "fulfilled":
2538
- parentObject = id.value;
2539
- for (key = 1; key < reference.length; key++)
2540
- parentObject = parentObject[reference[key]];
2541
- return map(response, parentObject);
2696
+ var value = id.value;
2697
+ for (id = 1; id < reference.length; id++) {
2698
+ for (; value instanceof ReactPromise; ) {
2699
+ switch (value.status) {
2700
+ case "resolved_model":
2701
+ initializeModelChunk(value);
2702
+ }
2703
+ switch (value.status) {
2704
+ case "fulfilled":
2705
+ value = value.value;
2706
+ break;
2707
+ case "blocked":
2708
+ case "pending":
2709
+ return waitForReference(
2710
+ value,
2711
+ parentObject,
2712
+ key,
2713
+ response,
2714
+ map,
2715
+ reference.slice(id - 1)
2716
+ );
2717
+ default:
2718
+ return (
2719
+ initializingHandler
2720
+ ? ((initializingHandler.errored = !0),
2721
+ (initializingHandler.value = null),
2722
+ (initializingHandler.reason = value.reason))
2723
+ : (initializingHandler = {
2724
+ chunk: null,
2725
+ value: null,
2726
+ reason: value.reason,
2727
+ deps: 0,
2728
+ errored: !0
2729
+ }),
2730
+ null
2731
+ );
2732
+ }
2733
+ }
2734
+ var name = reference[id];
2735
+ "object" === typeof value &&
2736
+ hasOwnProperty.call(value, name) &&
2737
+ (value = value[name]);
2738
+ }
2739
+ return map(response, value, parentObject, key);
2542
2740
  case "pending":
2543
2741
  case "blocked":
2544
- case "cyclic":
2545
- var parentChunk = initializingChunk;
2546
- id.then(
2547
- createModelResolver(
2548
- parentChunk,
2549
- parentObject,
2550
- key,
2551
- "cyclic" === id.status,
2552
- response,
2553
- map,
2554
- reference
2555
- ),
2556
- createModelReject(parentChunk)
2557
- );
2558
- return null;
2742
+ return waitForReference(id, parentObject, key, response, map, reference);
2559
2743
  default:
2560
- throw id.reason;
2744
+ return (
2745
+ initializingHandler
2746
+ ? ((initializingHandler.errored = !0),
2747
+ (initializingHandler.value = null),
2748
+ (initializingHandler.reason = id.reason))
2749
+ : (initializingHandler = {
2750
+ chunk: null,
2751
+ value: null,
2752
+ reason: id.reason,
2753
+ deps: 0,
2754
+ errored: !0
2755
+ }),
2756
+ null
2757
+ );
2561
2758
  }
2562
2759
  }
2563
2760
  function createMap(response, model) {
@@ -2581,38 +2778,63 @@ function parseTypedArray(
2581
2778
  parentKey
2582
2779
  ) {
2583
2780
  reference = parseInt(reference.slice(2), 16);
2584
- reference = response._formData.get(response._prefix + reference);
2585
- reference =
2586
- constructor === ArrayBuffer
2587
- ? reference.arrayBuffer()
2588
- : reference.arrayBuffer().then(function (buffer) {
2589
- return new constructor(buffer);
2590
- });
2591
- bytesPerElement = initializingChunk;
2781
+ reference = response._formData
2782
+ .get(response._prefix + reference)
2783
+ .arrayBuffer();
2784
+ if (initializingHandler) {
2785
+ var handler = initializingHandler;
2786
+ handler.deps++;
2787
+ } else
2788
+ handler = initializingHandler = {
2789
+ chunk: null,
2790
+ value: null,
2791
+ reason: null,
2792
+ deps: 1,
2793
+ errored: !1
2794
+ };
2592
2795
  reference.then(
2593
- createModelResolver(
2594
- bytesPerElement,
2595
- parentObject,
2596
- parentKey,
2597
- !1,
2598
- response,
2599
- createModel,
2600
- []
2601
- ),
2602
- createModelReject(bytesPerElement)
2796
+ function (buffer) {
2797
+ buffer = constructor === ArrayBuffer ? buffer : new constructor(buffer);
2798
+ parentObject[parentKey] = buffer;
2799
+ "" === parentKey && null === handler.value && (handler.value = buffer);
2800
+ handler.deps--;
2801
+ if (
2802
+ 0 === handler.deps &&
2803
+ ((buffer = handler.chunk),
2804
+ null !== buffer && "blocked" === buffer.status)
2805
+ ) {
2806
+ var resolveListeners = buffer.value;
2807
+ buffer.status = "fulfilled";
2808
+ buffer.value = handler.value;
2809
+ null !== resolveListeners &&
2810
+ wakeChunk(response, resolveListeners, handler.value);
2811
+ }
2812
+ },
2813
+ function (error) {
2814
+ if (!handler.errored) {
2815
+ handler.errored = !0;
2816
+ handler.value = null;
2817
+ handler.reason = error;
2818
+ var chunk = handler.chunk;
2819
+ null !== chunk &&
2820
+ "blocked" === chunk.status &&
2821
+ triggerErrorOnChunk(response, chunk, error);
2822
+ }
2823
+ }
2603
2824
  );
2604
2825
  return null;
2605
2826
  }
2606
2827
  function resolveStream(response, id, stream, controller) {
2607
2828
  var chunks = response._chunks;
2608
- stream = new Chunk("fulfilled", stream, controller, response);
2829
+ stream = new ReactPromise("fulfilled", stream, controller);
2609
2830
  chunks.set(id, stream);
2610
2831
  response = response._formData.getAll(response._prefix + id);
2611
2832
  for (id = 0; id < response.length; id++)
2612
2833
  (chunks = response[id]),
2613
- "C" === chunks[0]
2614
- ? controller.close("C" === chunks ? '"$undefined"' : chunks.slice(1))
2615
- : controller.enqueueModel(chunks);
2834
+ "string" === typeof chunks &&
2835
+ ("C" === chunks[0]
2836
+ ? controller.close("C" === chunks ? '"$undefined"' : chunks.slice(1))
2837
+ : controller.enqueueModel(chunks));
2616
2838
  }
2617
2839
  function parseReadableStream(response, reference, type) {
2618
2840
  reference = parseInt(reference.slice(2), 16);
@@ -2627,7 +2849,7 @@ function parseReadableStream(response, reference, type) {
2627
2849
  resolveStream(response, reference, type, {
2628
2850
  enqueueModel: function (json) {
2629
2851
  if (null === previousBlockedChunk) {
2630
- var chunk = new Chunk("resolved_model", json, -1, response);
2852
+ var chunk = createResolvedModelChunk(response, json, -1);
2631
2853
  initializeModelChunk(chunk);
2632
2854
  "fulfilled" === chunk.status
2633
2855
  ? controller.enqueue(chunk.value)
@@ -2642,8 +2864,8 @@ function parseReadableStream(response, reference, type) {
2642
2864
  (previousBlockedChunk = chunk));
2643
2865
  } else {
2644
2866
  chunk = previousBlockedChunk;
2645
- var chunk$26 = createPendingChunk(response);
2646
- chunk$26.then(
2867
+ var chunk$30 = new ReactPromise("pending", null, null);
2868
+ chunk$30.then(
2647
2869
  function (v) {
2648
2870
  return controller.enqueue(v);
2649
2871
  },
@@ -2651,10 +2873,10 @@ function parseReadableStream(response, reference, type) {
2651
2873
  return controller.error(e);
2652
2874
  }
2653
2875
  );
2654
- previousBlockedChunk = chunk$26;
2876
+ previousBlockedChunk = chunk$30;
2655
2877
  chunk.then(function () {
2656
- previousBlockedChunk === chunk$26 && (previousBlockedChunk = null);
2657
- resolveModelChunk(chunk$26, json, -1);
2878
+ previousBlockedChunk === chunk$30 && (previousBlockedChunk = null);
2879
+ resolveModelChunk(response, chunk$30, json, -1);
2658
2880
  });
2659
2881
  }
2660
2882
  },
@@ -2694,9 +2916,9 @@ function parseAsyncIterable(response, reference, iterator) {
2694
2916
  var buffer = [],
2695
2917
  closed = !1,
2696
2918
  nextWriteIndex = 0,
2697
- $jscomp$compprop2 = {};
2698
- $jscomp$compprop2 =
2699
- (($jscomp$compprop2[ASYNC_ITERATOR] = function () {
2919
+ $jscomp$compprop5 = {};
2920
+ $jscomp$compprop5 =
2921
+ (($jscomp$compprop5[ASYNC_ITERATOR] = function () {
2700
2922
  var nextReadIndex = 0;
2701
2923
  return createIterator(function (arg) {
2702
2924
  if (void 0 !== arg)
@@ -2705,19 +2927,18 @@ function parseAsyncIterable(response, reference, iterator) {
2705
2927
  );
2706
2928
  if (nextReadIndex === buffer.length) {
2707
2929
  if (closed)
2708
- return new Chunk(
2930
+ return new ReactPromise(
2709
2931
  "fulfilled",
2710
2932
  { done: !0, value: void 0 },
2711
- null,
2712
- response
2933
+ null
2713
2934
  );
2714
- buffer[nextReadIndex] = createPendingChunk(response);
2935
+ buffer[nextReadIndex] = new ReactPromise("pending", null, null);
2715
2936
  }
2716
2937
  return buffer[nextReadIndex++];
2717
2938
  });
2718
2939
  }),
2719
- $jscomp$compprop2);
2720
- iterator = iterator ? $jscomp$compprop2[ASYNC_ITERATOR]() : $jscomp$compprop2;
2940
+ $jscomp$compprop5);
2941
+ iterator = iterator ? $jscomp$compprop5[ASYNC_ITERATOR]() : $jscomp$compprop5;
2721
2942
  resolveStream(response, reference, iterator, {
2722
2943
  enqueueModel: function (value) {
2723
2944
  nextWriteIndex === buffer.length
@@ -2726,7 +2947,12 @@ function parseAsyncIterable(response, reference, iterator) {
2726
2947
  value,
2727
2948
  !1
2728
2949
  ))
2729
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !1);
2950
+ : resolveIteratorResultChunk(
2951
+ response,
2952
+ buffer[nextWriteIndex],
2953
+ value,
2954
+ !1
2955
+ );
2730
2956
  nextWriteIndex++;
2731
2957
  },
2732
2958
  close: function (value) {
@@ -2737,9 +2963,15 @@ function parseAsyncIterable(response, reference, iterator) {
2737
2963
  value,
2738
2964
  !0
2739
2965
  ))
2740
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !0);
2966
+ : resolveIteratorResultChunk(
2967
+ response,
2968
+ buffer[nextWriteIndex],
2969
+ value,
2970
+ !0
2971
+ );
2741
2972
  for (nextWriteIndex++; nextWriteIndex < buffer.length; )
2742
2973
  resolveIteratorResultChunk(
2974
+ response,
2743
2975
  buffer[nextWriteIndex++],
2744
2976
  '"$undefined"',
2745
2977
  !0
@@ -2749,11 +2981,11 @@ function parseAsyncIterable(response, reference, iterator) {
2749
2981
  closed = !0;
2750
2982
  for (
2751
2983
  nextWriteIndex === buffer.length &&
2752
- (buffer[nextWriteIndex] = createPendingChunk(response));
2984
+ (buffer[nextWriteIndex] = new ReactPromise("pending", null, null));
2753
2985
  nextWriteIndex < buffer.length;
2754
2986
 
2755
2987
  )
2756
- triggerErrorOnChunk(buffer[nextWriteIndex++], error);
2988
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
2757
2989
  }
2758
2990
  });
2759
2991
  return iterator;
@@ -2768,15 +3000,7 @@ function parseModelString(response, obj, key, value, reference) {
2768
3000
  case "F":
2769
3001
  return (
2770
3002
  (value = value.slice(2)),
2771
- (value = getOutlinedModel(response, value, obj, key, createModel)),
2772
- loadServerReference$1(
2773
- response,
2774
- value.id,
2775
- value.bound,
2776
- initializingChunk,
2777
- obj,
2778
- key
2779
- )
3003
+ getOutlinedModel(response, value, obj, key, loadServerReference$1)
2780
3004
  );
2781
3005
  case "T":
2782
3006
  if (void 0 === reference || void 0 === response._temporaryReferences)
@@ -2891,10 +3115,12 @@ function createResponse(bundlerConfig, formFieldPrefix, temporaryReferences) {
2891
3115
  function resolveField(response, key, value) {
2892
3116
  response._formData.append(key, value);
2893
3117
  var prefix = response._prefix;
2894
- key.startsWith(prefix) &&
2895
- ((response = response._chunks),
2896
- (key = +key.slice(prefix.length)),
2897
- (prefix = response.get(key)) && resolveModelChunk(prefix, value, key));
3118
+ if (key.startsWith(prefix)) {
3119
+ var chunks = response._chunks;
3120
+ key = +key.slice(prefix.length);
3121
+ (chunks = chunks.get(key)) &&
3122
+ resolveModelChunk(response, chunks, value, key);
3123
+ }
2898
3124
  }
2899
3125
  function close(response) {
2900
3126
  reportGlobalError(response, Error("Connection closed."));
@@ -3063,34 +3289,50 @@ exports.decodeReplyFromBusboy = function (busboyStream, webpackMap, options) {
3063
3289
  pendingFiles = 0,
3064
3290
  queuedFields = [];
3065
3291
  busboyStream.on("field", function (name, value) {
3066
- 0 < pendingFiles
3067
- ? queuedFields.push(name, value)
3068
- : resolveField(response, name, value);
3292
+ if (0 < pendingFiles) queuedFields.push(name, value);
3293
+ else
3294
+ try {
3295
+ resolveField(response, name, value);
3296
+ } catch (error) {
3297
+ busboyStream.destroy(error);
3298
+ }
3069
3299
  });
3070
3300
  busboyStream.on("file", function (name, value, _ref2) {
3071
3301
  var filename = _ref2.filename,
3072
3302
  mimeType = _ref2.mimeType;
3073
3303
  if ("base64" === _ref2.encoding.toLowerCase())
3074
- throw Error(
3075
- "React doesn't accept base64 encoded file uploads because we don't expect form data passed from a browser to ever encode data that way. If that's the wrong assumption, we can easily fix it."
3304
+ busboyStream.destroy(
3305
+ Error(
3306
+ "React doesn't accept base64 encoded file uploads because we don't expect form data passed from a browser to ever encode data that way. If that's the wrong assumption, we can easily fix it."
3307
+ )
3076
3308
  );
3077
- pendingFiles++;
3078
- var JSCompiler_object_inline_chunks_274 = [];
3079
- value.on("data", function (chunk) {
3080
- JSCompiler_object_inline_chunks_274.push(chunk);
3081
- });
3082
- value.on("end", function () {
3083
- var blob = new Blob(JSCompiler_object_inline_chunks_274, {
3084
- type: mimeType
3309
+ else {
3310
+ pendingFiles++;
3311
+ var JSCompiler_object_inline_chunks_281 = [];
3312
+ value.on("data", function (chunk) {
3313
+ JSCompiler_object_inline_chunks_281.push(chunk);
3085
3314
  });
3086
- response._formData.append(name, blob, filename);
3087
- pendingFiles--;
3088
- if (0 === pendingFiles) {
3089
- for (blob = 0; blob < queuedFields.length; blob += 2)
3090
- resolveField(response, queuedFields[blob], queuedFields[blob + 1]);
3091
- queuedFields.length = 0;
3092
- }
3093
- });
3315
+ value.on("end", function () {
3316
+ try {
3317
+ var blob = new Blob(JSCompiler_object_inline_chunks_281, {
3318
+ type: mimeType
3319
+ });
3320
+ response._formData.append(name, blob, filename);
3321
+ pendingFiles--;
3322
+ if (0 === pendingFiles) {
3323
+ for (blob = 0; blob < queuedFields.length; blob += 2)
3324
+ resolveField(
3325
+ response,
3326
+ queuedFields[blob],
3327
+ queuedFields[blob + 1]
3328
+ );
3329
+ queuedFields.length = 0;
3330
+ }
3331
+ } catch (error) {
3332
+ busboyStream.destroy(error);
3333
+ }
3334
+ });
3335
+ }
3094
3336
  });
3095
3337
  busboyStream.on("finish", function () {
3096
3338
  close(response);