@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) {
@@ -2232,57 +2232,96 @@ function requireModule(metadata) {
2232
2232
  var moduleExports = asyncModuleCache.get(metadata.specifier);
2233
2233
  if ("fulfilled" === moduleExports.status) moduleExports = moduleExports.value;
2234
2234
  else throw moduleExports.reason;
2235
- return "*" === metadata.name
2236
- ? moduleExports
2237
- : "" === metadata.name
2238
- ? moduleExports.default
2239
- : moduleExports[metadata.name];
2235
+ if ("*" === metadata.name) return moduleExports;
2236
+ if ("" === metadata.name) return moduleExports.default;
2237
+ if (hasOwnProperty.call(moduleExports, metadata.name))
2238
+ return moduleExports[metadata.name];
2240
2239
  }
2241
- function Chunk(status, value, reason, response) {
2240
+ var RESPONSE_SYMBOL = Symbol();
2241
+ function ReactPromise(status, value, reason) {
2242
2242
  this.status = status;
2243
2243
  this.value = value;
2244
2244
  this.reason = reason;
2245
- this._response = response;
2246
2245
  }
2247
- Chunk.prototype = Object.create(Promise.prototype);
2248
- Chunk.prototype.then = function (resolve, reject) {
2246
+ ReactPromise.prototype = Object.create(Promise.prototype);
2247
+ ReactPromise.prototype.then = function (resolve, reject) {
2249
2248
  switch (this.status) {
2250
2249
  case "resolved_model":
2251
2250
  initializeModelChunk(this);
2252
2251
  }
2253
2252
  switch (this.status) {
2254
2253
  case "fulfilled":
2255
- resolve(this.value);
2254
+ "function" === typeof resolve && resolve(this.value);
2256
2255
  break;
2257
2256
  case "pending":
2258
2257
  case "blocked":
2259
- case "cyclic":
2260
- resolve &&
2258
+ "function" === typeof resolve &&
2261
2259
  (null === this.value && (this.value = []), this.value.push(resolve));
2262
- reject &&
2260
+ "function" === typeof reject &&
2263
2261
  (null === this.reason && (this.reason = []), this.reason.push(reject));
2264
2262
  break;
2265
2263
  default:
2266
- reject(this.reason);
2264
+ "function" === typeof reject && reject(this.reason);
2267
2265
  }
2268
2266
  };
2269
- function createPendingChunk(response) {
2270
- return new Chunk("pending", null, null, response);
2267
+ function wakeChunk(response, listeners, value) {
2268
+ for (var i = 0; i < listeners.length; i++) {
2269
+ var listener = listeners[i];
2270
+ "function" === typeof listener
2271
+ ? listener(value)
2272
+ : fulfillReference(response, listener, value);
2273
+ }
2271
2274
  }
2272
- function wakeChunk(listeners, value) {
2273
- for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value);
2275
+ function rejectChunk(response, listeners, error) {
2276
+ for (var i = 0; i < listeners.length; i++) {
2277
+ var listener = listeners[i];
2278
+ "function" === typeof listener
2279
+ ? listener(error)
2280
+ : rejectReference(response, listener.handler, error);
2281
+ }
2274
2282
  }
2275
- function triggerErrorOnChunk(chunk, error) {
2283
+ function resolveBlockedCycle(resolvedChunk, reference) {
2284
+ var referencedChunk = reference.handler.chunk;
2285
+ if (null === referencedChunk) return null;
2286
+ if (referencedChunk === resolvedChunk) return reference.handler;
2287
+ reference = referencedChunk.value;
2288
+ if (null !== reference)
2289
+ for (
2290
+ referencedChunk = 0;
2291
+ referencedChunk < reference.length;
2292
+ referencedChunk++
2293
+ ) {
2294
+ var listener = reference[referencedChunk];
2295
+ if (
2296
+ "function" !== typeof listener &&
2297
+ ((listener = resolveBlockedCycle(resolvedChunk, listener)),
2298
+ null !== listener)
2299
+ )
2300
+ return listener;
2301
+ }
2302
+ return null;
2303
+ }
2304
+ function triggerErrorOnChunk(response, chunk, error) {
2276
2305
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
2277
2306
  chunk.reason.error(error);
2278
2307
  else {
2279
2308
  var listeners = chunk.reason;
2280
2309
  chunk.status = "rejected";
2281
2310
  chunk.reason = error;
2282
- null !== listeners && wakeChunk(listeners, error);
2311
+ null !== listeners && rejectChunk(response, listeners, error);
2283
2312
  }
2284
2313
  }
2285
- function resolveModelChunk(chunk, value, id) {
2314
+ function createResolvedModelChunk(response, value, id) {
2315
+ var $jscomp$compprop2 = {};
2316
+ return new ReactPromise(
2317
+ "resolved_model",
2318
+ value,
2319
+ (($jscomp$compprop2.id = id),
2320
+ ($jscomp$compprop2[RESPONSE_SYMBOL] = response),
2321
+ $jscomp$compprop2)
2322
+ );
2323
+ }
2324
+ function resolveModelChunk(response, chunk, value, id) {
2286
2325
  if ("pending" !== chunk.status)
2287
2326
  (chunk = chunk.reason),
2288
2327
  "C" === value[0]
@@ -2293,77 +2332,129 @@ function resolveModelChunk(chunk, value, id) {
2293
2332
  rejectListeners = chunk.reason;
2294
2333
  chunk.status = "resolved_model";
2295
2334
  chunk.value = value;
2296
- chunk.reason = id;
2335
+ value = {};
2336
+ chunk.reason =
2337
+ ((value.id = id), (value[RESPONSE_SYMBOL] = response), value);
2297
2338
  if (null !== resolveListeners)
2298
- switch ((initializeModelChunk(chunk), chunk.status)) {
2339
+ a: switch ((initializeModelChunk(chunk), chunk.status)) {
2299
2340
  case "fulfilled":
2300
- wakeChunk(resolveListeners, chunk.value);
2341
+ wakeChunk(response, resolveListeners, chunk.value);
2301
2342
  break;
2302
- case "pending":
2303
2343
  case "blocked":
2304
- case "cyclic":
2344
+ for (value = 0; value < resolveListeners.length; value++)
2345
+ if (((id = resolveListeners[value]), "function" !== typeof id)) {
2346
+ var cyclicHandler = resolveBlockedCycle(chunk, id);
2347
+ if (null !== cyclicHandler)
2348
+ switch (
2349
+ (fulfillReference(response, id, cyclicHandler.value),
2350
+ resolveListeners.splice(value, 1),
2351
+ value--,
2352
+ null !== rejectListeners &&
2353
+ ((id = rejectListeners.indexOf(id)),
2354
+ -1 !== id && rejectListeners.splice(id, 1)),
2355
+ chunk.status)
2356
+ ) {
2357
+ case "fulfilled":
2358
+ wakeChunk(response, resolveListeners, chunk.value);
2359
+ break a;
2360
+ case "rejected":
2361
+ null !== rejectListeners &&
2362
+ rejectChunk(response, rejectListeners, chunk.reason);
2363
+ break a;
2364
+ }
2365
+ }
2366
+ case "pending":
2305
2367
  if (chunk.value)
2306
- for (value = 0; value < resolveListeners.length; value++)
2307
- chunk.value.push(resolveListeners[value]);
2368
+ for (response = 0; response < resolveListeners.length; response++)
2369
+ chunk.value.push(resolveListeners[response]);
2308
2370
  else chunk.value = resolveListeners;
2309
2371
  if (chunk.reason) {
2310
2372
  if (rejectListeners)
2311
- for (value = 0; value < rejectListeners.length; value++)
2312
- chunk.reason.push(rejectListeners[value]);
2373
+ for (
2374
+ resolveListeners = 0;
2375
+ resolveListeners < rejectListeners.length;
2376
+ resolveListeners++
2377
+ )
2378
+ chunk.reason.push(rejectListeners[resolveListeners]);
2313
2379
  } else chunk.reason = rejectListeners;
2314
2380
  break;
2315
2381
  case "rejected":
2316
- rejectListeners && wakeChunk(rejectListeners, chunk.reason);
2382
+ rejectListeners && wakeChunk(response, rejectListeners, chunk.reason);
2317
2383
  }
2318
2384
  }
2319
2385
  }
2320
2386
  function createResolvedIteratorResultChunk(response, value, done) {
2321
- return new Chunk(
2387
+ var $jscomp$compprop4 = {};
2388
+ return new ReactPromise(
2322
2389
  "resolved_model",
2323
2390
  (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}",
2324
- -1,
2325
- response
2391
+ (($jscomp$compprop4.id = -1),
2392
+ ($jscomp$compprop4[RESPONSE_SYMBOL] = response),
2393
+ $jscomp$compprop4)
2326
2394
  );
2327
2395
  }
2328
- function resolveIteratorResultChunk(chunk, value, done) {
2396
+ function resolveIteratorResultChunk(response, chunk, value, done) {
2329
2397
  resolveModelChunk(
2398
+ response,
2330
2399
  chunk,
2331
2400
  (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}",
2332
2401
  -1
2333
2402
  );
2334
2403
  }
2335
- function loadServerReference$1(
2336
- response,
2337
- id,
2338
- bound,
2339
- parentChunk,
2340
- parentObject,
2341
- key
2342
- ) {
2404
+ function loadServerReference$1(response, metaData, parentObject, key) {
2405
+ var id = metaData.id;
2406
+ if ("string" !== typeof id) return null;
2343
2407
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2344
- id = preloadModule(serverReference);
2345
- if (bound)
2346
- bound = Promise.all([bound, id]).then(function (_ref) {
2347
- _ref = _ref[0];
2348
- var fn = requireModule(serverReference);
2349
- return fn.bind.apply(fn, [null].concat(_ref));
2350
- });
2351
- else if (id)
2352
- bound = Promise.resolve(id).then(function () {
2353
- return requireModule(serverReference);
2354
- });
2408
+ id = metaData.bound;
2409
+ var promise = preloadModule(serverReference);
2410
+ if (promise)
2411
+ id instanceof ReactPromise && (promise = Promise.all([promise, id]));
2412
+ else if (id instanceof ReactPromise) promise = Promise.resolve(id);
2355
2413
  else return requireModule(serverReference);
2356
- bound.then(
2357
- createModelResolver(
2358
- parentChunk,
2359
- parentObject,
2360
- key,
2361
- !1,
2362
- response,
2363
- createModel,
2364
- []
2365
- ),
2366
- createModelReject(parentChunk)
2414
+ if (initializingHandler) {
2415
+ var handler = initializingHandler;
2416
+ handler.deps++;
2417
+ } else
2418
+ handler = initializingHandler = {
2419
+ chunk: null,
2420
+ value: null,
2421
+ reason: null,
2422
+ deps: 1,
2423
+ errored: !1
2424
+ };
2425
+ promise.then(
2426
+ function () {
2427
+ var resolvedValue = requireModule(serverReference);
2428
+ if (metaData.bound) {
2429
+ var promiseValue = metaData.bound.value;
2430
+ promiseValue = Array.isArray(promiseValue) ? promiseValue.slice(0) : [];
2431
+ promiseValue.unshift(null);
2432
+ resolvedValue = resolvedValue.bind.apply(resolvedValue, promiseValue);
2433
+ }
2434
+ parentObject[key] = resolvedValue;
2435
+ "" === key && null === handler.value && (handler.value = resolvedValue);
2436
+ handler.deps--;
2437
+ 0 === handler.deps &&
2438
+ ((resolvedValue = handler.chunk),
2439
+ null !== resolvedValue &&
2440
+ "blocked" === resolvedValue.status &&
2441
+ ((promiseValue = resolvedValue.value),
2442
+ (resolvedValue.status = "fulfilled"),
2443
+ (resolvedValue.value = handler.value),
2444
+ null !== promiseValue &&
2445
+ wakeChunk(response, promiseValue, handler.value)));
2446
+ },
2447
+ function (error) {
2448
+ if (!handler.errored) {
2449
+ handler.errored = !0;
2450
+ handler.value = null;
2451
+ handler.reason = error;
2452
+ var chunk = handler.chunk;
2453
+ null !== chunk &&
2454
+ "blocked" === chunk.status &&
2455
+ triggerErrorOnChunk(response, chunk, error);
2456
+ }
2457
+ }
2367
2458
  );
2368
2459
  return null;
2369
2460
  }
@@ -2393,53 +2484,65 @@ function reviveModel(response, parentObj, parentKey, value, reference) {
2393
2484
  ? reference + ":" + i
2394
2485
  : void 0),
2395
2486
  (parentObj = reviveModel(response, value, i, value[i], parentObj)),
2396
- void 0 !== parentObj ? (value[i] = parentObj) : delete value[i]);
2487
+ void 0 !== parentObj || "__proto__" === i
2488
+ ? (value[i] = parentObj)
2489
+ : delete value[i]);
2397
2490
  return value;
2398
2491
  }
2399
- var initializingChunk = null,
2400
- initializingChunkBlockedModel = null;
2492
+ var initializingHandler = null;
2401
2493
  function initializeModelChunk(chunk) {
2402
- var prevChunk = initializingChunk,
2403
- prevBlocked = initializingChunkBlockedModel;
2404
- initializingChunk = chunk;
2405
- initializingChunkBlockedModel = null;
2406
- var rootReference = -1 === chunk.reason ? void 0 : chunk.reason.toString(16),
2407
- resolvedModel = chunk.value;
2408
- chunk.status = "cyclic";
2494
+ var prevHandler = initializingHandler;
2495
+ initializingHandler = null;
2496
+ var _chunk$reason = chunk.reason,
2497
+ response = _chunk$reason[RESPONSE_SYMBOL];
2498
+ _chunk$reason = _chunk$reason.id;
2499
+ _chunk$reason = -1 === _chunk$reason ? void 0 : _chunk$reason.toString(16);
2500
+ var resolvedModel = chunk.value;
2501
+ chunk.status = "blocked";
2409
2502
  chunk.value = null;
2410
2503
  chunk.reason = null;
2411
2504
  try {
2412
2505
  var rawModel = JSON.parse(resolvedModel),
2413
2506
  value = reviveModel(
2414
- chunk._response,
2507
+ response,
2415
2508
  { "": rawModel },
2416
2509
  "",
2417
2510
  rawModel,
2418
- rootReference
2419
- );
2420
- if (
2421
- null !== initializingChunkBlockedModel &&
2422
- 0 < initializingChunkBlockedModel.deps
2423
- )
2424
- (initializingChunkBlockedModel.value = value), (chunk.status = "blocked");
2425
- else {
2426
- var resolveListeners = chunk.value;
2427
- chunk.status = "fulfilled";
2428
- chunk.value = value;
2429
- null !== resolveListeners && wakeChunk(resolveListeners, value);
2511
+ _chunk$reason
2512
+ ),
2513
+ resolveListeners = chunk.value;
2514
+ if (null !== resolveListeners)
2515
+ for (
2516
+ chunk.value = null, chunk.reason = null, rawModel = 0;
2517
+ rawModel < resolveListeners.length;
2518
+ rawModel++
2519
+ ) {
2520
+ var listener = resolveListeners[rawModel];
2521
+ "function" === typeof listener
2522
+ ? listener(value)
2523
+ : fulfillReference(response, listener, value);
2524
+ }
2525
+ if (null !== initializingHandler) {
2526
+ if (initializingHandler.errored) throw initializingHandler.reason;
2527
+ if (0 < initializingHandler.deps) {
2528
+ initializingHandler.value = value;
2529
+ initializingHandler.chunk = chunk;
2530
+ return;
2531
+ }
2430
2532
  }
2533
+ chunk.status = "fulfilled";
2534
+ chunk.value = value;
2431
2535
  } catch (error) {
2432
2536
  (chunk.status = "rejected"), (chunk.reason = error);
2433
2537
  } finally {
2434
- (initializingChunk = prevChunk),
2435
- (initializingChunkBlockedModel = prevBlocked);
2538
+ initializingHandler = prevHandler;
2436
2539
  }
2437
2540
  }
2438
2541
  function reportGlobalError(response, error) {
2439
2542
  response._closed = !0;
2440
2543
  response._closedReason = error;
2441
2544
  response._chunks.forEach(function (chunk) {
2442
- "pending" === chunk.status && triggerErrorOnChunk(chunk, error);
2545
+ "pending" === chunk.status && triggerErrorOnChunk(response, chunk, error);
2443
2546
  });
2444
2547
  }
2445
2548
  function getChunk(response, id) {
@@ -2448,48 +2551,104 @@ function getChunk(response, id) {
2448
2551
  chunk ||
2449
2552
  ((chunk = response._formData.get(response._prefix + id)),
2450
2553
  (chunk =
2451
- null != chunk
2452
- ? new Chunk("resolved_model", chunk, id, response)
2554
+ "string" === typeof chunk
2555
+ ? createResolvedModelChunk(response, chunk, id)
2453
2556
  : response._closed
2454
- ? new Chunk("rejected", null, response._closedReason, response)
2455
- : createPendingChunk(response)),
2557
+ ? new ReactPromise("rejected", null, response._closedReason)
2558
+ : new ReactPromise("pending", null, null)),
2456
2559
  chunks.set(id, chunk));
2457
2560
  return chunk;
2458
2561
  }
2459
- function createModelResolver(
2460
- chunk,
2562
+ function fulfillReference(response, reference, value) {
2563
+ for (
2564
+ var handler = reference.handler,
2565
+ parentObject = reference.parentObject,
2566
+ key = reference.key,
2567
+ map = reference.map,
2568
+ path = reference.path,
2569
+ i = 1;
2570
+ i < path.length;
2571
+ i++
2572
+ ) {
2573
+ for (; value instanceof ReactPromise; ) {
2574
+ switch (value.status) {
2575
+ case "resolved_model":
2576
+ initializeModelChunk(value);
2577
+ }
2578
+ switch (value.status) {
2579
+ case "fulfilled":
2580
+ value = value.value;
2581
+ continue;
2582
+ case "blocked":
2583
+ case "pending":
2584
+ path.splice(0, i - 1);
2585
+ null === value.value
2586
+ ? (value.value = [reference])
2587
+ : value.value.push(reference);
2588
+ null === value.reason
2589
+ ? (value.reason = [reference])
2590
+ : value.reason.push(reference);
2591
+ return;
2592
+ default:
2593
+ rejectReference(response, reference.handler, value.reason);
2594
+ return;
2595
+ }
2596
+ }
2597
+ var name = path[i];
2598
+ "object" === typeof value &&
2599
+ hasOwnProperty.call(value, name) &&
2600
+ (value = value[name]);
2601
+ }
2602
+ reference = map(response, value, parentObject, key);
2603
+ parentObject[key] = reference;
2604
+ "" === key && null === handler.value && (handler.value = reference);
2605
+ handler.deps--;
2606
+ 0 === handler.deps &&
2607
+ ((parentObject = handler.chunk),
2608
+ null !== parentObject &&
2609
+ "blocked" === parentObject.status &&
2610
+ ((key = parentObject.value),
2611
+ (parentObject.status = "fulfilled"),
2612
+ (parentObject.value = handler.value),
2613
+ (parentObject.reason = handler.reason),
2614
+ null !== key && wakeChunk(response, key, handler.value)));
2615
+ }
2616
+ function rejectReference(response, handler, error) {
2617
+ handler.errored ||
2618
+ ((handler.errored = !0),
2619
+ (handler.value = null),
2620
+ (handler.reason = error),
2621
+ (handler = handler.chunk),
2622
+ null !== handler &&
2623
+ "blocked" === handler.status &&
2624
+ triggerErrorOnChunk(response, handler, error));
2625
+ }
2626
+ function waitForReference(
2627
+ referencedChunk,
2461
2628
  parentObject,
2462
2629
  key,
2463
- cyclic,
2464
2630
  response,
2465
2631
  map,
2466
2632
  path
2467
2633
  ) {
2468
- if (initializingChunkBlockedModel) {
2469
- var blocked = initializingChunkBlockedModel;
2470
- cyclic || blocked.deps++;
2471
- } else
2472
- blocked = initializingChunkBlockedModel = {
2473
- deps: cyclic ? 0 : 1,
2474
- value: null
2475
- };
2476
- return function (value) {
2477
- for (var i = 1; i < path.length; i++) value = value[path[i]];
2478
- parentObject[key] = map(response, value);
2479
- "" === key && null === blocked.value && (blocked.value = parentObject[key]);
2480
- blocked.deps--;
2481
- 0 === blocked.deps &&
2482
- "blocked" === chunk.status &&
2483
- ((value = chunk.value),
2484
- (chunk.status = "fulfilled"),
2485
- (chunk.value = blocked.value),
2486
- null !== value && wakeChunk(value, blocked.value));
2487
- };
2488
- }
2489
- function createModelReject(chunk) {
2490
- return function (error) {
2491
- return triggerErrorOnChunk(chunk, error);
2634
+ initializingHandler
2635
+ ? ((response = initializingHandler), response.deps++)
2636
+ : (response = initializingHandler =
2637
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
2638
+ parentObject = {
2639
+ handler: response,
2640
+ parentObject: parentObject,
2641
+ key: key,
2642
+ map: map,
2643
+ path: path
2492
2644
  };
2645
+ null === referencedChunk.value
2646
+ ? (referencedChunk.value = [parentObject])
2647
+ : referencedChunk.value.push(parentObject);
2648
+ null === referencedChunk.reason
2649
+ ? (referencedChunk.reason = [parentObject])
2650
+ : referencedChunk.reason.push(parentObject);
2651
+ return null;
2493
2652
  }
2494
2653
  function getOutlinedModel(response, reference, parentObject, key, map) {
2495
2654
  reference = reference.split(":");
@@ -2501,29 +2660,68 @@ function getOutlinedModel(response, reference, parentObject, key, map) {
2501
2660
  }
2502
2661
  switch (id.status) {
2503
2662
  case "fulfilled":
2504
- parentObject = id.value;
2505
- for (key = 1; key < reference.length; key++)
2506
- parentObject = parentObject[reference[key]];
2507
- return map(response, parentObject);
2663
+ var value = id.value;
2664
+ for (id = 1; id < reference.length; id++) {
2665
+ for (; value instanceof ReactPromise; ) {
2666
+ switch (value.status) {
2667
+ case "resolved_model":
2668
+ initializeModelChunk(value);
2669
+ }
2670
+ switch (value.status) {
2671
+ case "fulfilled":
2672
+ value = value.value;
2673
+ break;
2674
+ case "blocked":
2675
+ case "pending":
2676
+ return waitForReference(
2677
+ value,
2678
+ parentObject,
2679
+ key,
2680
+ response,
2681
+ map,
2682
+ reference.slice(id - 1)
2683
+ );
2684
+ default:
2685
+ return (
2686
+ initializingHandler
2687
+ ? ((initializingHandler.errored = !0),
2688
+ (initializingHandler.value = null),
2689
+ (initializingHandler.reason = value.reason))
2690
+ : (initializingHandler = {
2691
+ chunk: null,
2692
+ value: null,
2693
+ reason: value.reason,
2694
+ deps: 0,
2695
+ errored: !0
2696
+ }),
2697
+ null
2698
+ );
2699
+ }
2700
+ }
2701
+ var name = reference[id];
2702
+ "object" === typeof value &&
2703
+ hasOwnProperty.call(value, name) &&
2704
+ (value = value[name]);
2705
+ }
2706
+ return map(response, value, parentObject, key);
2508
2707
  case "pending":
2509
2708
  case "blocked":
2510
- case "cyclic":
2511
- var parentChunk = initializingChunk;
2512
- id.then(
2513
- createModelResolver(
2514
- parentChunk,
2515
- parentObject,
2516
- key,
2517
- "cyclic" === id.status,
2518
- response,
2519
- map,
2520
- reference
2521
- ),
2522
- createModelReject(parentChunk)
2523
- );
2524
- return null;
2709
+ return waitForReference(id, parentObject, key, response, map, reference);
2525
2710
  default:
2526
- throw id.reason;
2711
+ return (
2712
+ initializingHandler
2713
+ ? ((initializingHandler.errored = !0),
2714
+ (initializingHandler.value = null),
2715
+ (initializingHandler.reason = id.reason))
2716
+ : (initializingHandler = {
2717
+ chunk: null,
2718
+ value: null,
2719
+ reason: id.reason,
2720
+ deps: 0,
2721
+ errored: !0
2722
+ }),
2723
+ null
2724
+ );
2527
2725
  }
2528
2726
  }
2529
2727
  function createMap(response, model) {
@@ -2547,38 +2745,63 @@ function parseTypedArray(
2547
2745
  parentKey
2548
2746
  ) {
2549
2747
  reference = parseInt(reference.slice(2), 16);
2550
- reference = response._formData.get(response._prefix + reference);
2551
- reference =
2552
- constructor === ArrayBuffer
2553
- ? reference.arrayBuffer()
2554
- : reference.arrayBuffer().then(function (buffer) {
2555
- return new constructor(buffer);
2556
- });
2557
- bytesPerElement = initializingChunk;
2748
+ reference = response._formData
2749
+ .get(response._prefix + reference)
2750
+ .arrayBuffer();
2751
+ if (initializingHandler) {
2752
+ var handler = initializingHandler;
2753
+ handler.deps++;
2754
+ } else
2755
+ handler = initializingHandler = {
2756
+ chunk: null,
2757
+ value: null,
2758
+ reason: null,
2759
+ deps: 1,
2760
+ errored: !1
2761
+ };
2558
2762
  reference.then(
2559
- createModelResolver(
2560
- bytesPerElement,
2561
- parentObject,
2562
- parentKey,
2563
- !1,
2564
- response,
2565
- createModel,
2566
- []
2567
- ),
2568
- createModelReject(bytesPerElement)
2763
+ function (buffer) {
2764
+ buffer = constructor === ArrayBuffer ? buffer : new constructor(buffer);
2765
+ parentObject[parentKey] = buffer;
2766
+ "" === parentKey && null === handler.value && (handler.value = buffer);
2767
+ handler.deps--;
2768
+ if (
2769
+ 0 === handler.deps &&
2770
+ ((buffer = handler.chunk),
2771
+ null !== buffer && "blocked" === buffer.status)
2772
+ ) {
2773
+ var resolveListeners = buffer.value;
2774
+ buffer.status = "fulfilled";
2775
+ buffer.value = handler.value;
2776
+ null !== resolveListeners &&
2777
+ wakeChunk(response, resolveListeners, handler.value);
2778
+ }
2779
+ },
2780
+ function (error) {
2781
+ if (!handler.errored) {
2782
+ handler.errored = !0;
2783
+ handler.value = null;
2784
+ handler.reason = error;
2785
+ var chunk = handler.chunk;
2786
+ null !== chunk &&
2787
+ "blocked" === chunk.status &&
2788
+ triggerErrorOnChunk(response, chunk, error);
2789
+ }
2790
+ }
2569
2791
  );
2570
2792
  return null;
2571
2793
  }
2572
2794
  function resolveStream(response, id, stream, controller) {
2573
2795
  var chunks = response._chunks;
2574
- stream = new Chunk("fulfilled", stream, controller, response);
2796
+ stream = new ReactPromise("fulfilled", stream, controller);
2575
2797
  chunks.set(id, stream);
2576
2798
  response = response._formData.getAll(response._prefix + id);
2577
2799
  for (id = 0; id < response.length; id++)
2578
2800
  (chunks = response[id]),
2579
- "C" === chunks[0]
2580
- ? controller.close("C" === chunks ? '"$undefined"' : chunks.slice(1))
2581
- : controller.enqueueModel(chunks);
2801
+ "string" === typeof chunks &&
2802
+ ("C" === chunks[0]
2803
+ ? controller.close("C" === chunks ? '"$undefined"' : chunks.slice(1))
2804
+ : controller.enqueueModel(chunks));
2582
2805
  }
2583
2806
  function parseReadableStream(response, reference, type) {
2584
2807
  reference = parseInt(reference.slice(2), 16);
@@ -2593,7 +2816,7 @@ function parseReadableStream(response, reference, type) {
2593
2816
  resolveStream(response, reference, type, {
2594
2817
  enqueueModel: function (json) {
2595
2818
  if (null === previousBlockedChunk) {
2596
- var chunk = new Chunk("resolved_model", json, -1, response);
2819
+ var chunk = createResolvedModelChunk(response, json, -1);
2597
2820
  initializeModelChunk(chunk);
2598
2821
  "fulfilled" === chunk.status
2599
2822
  ? controller.enqueue(chunk.value)
@@ -2608,8 +2831,8 @@ function parseReadableStream(response, reference, type) {
2608
2831
  (previousBlockedChunk = chunk));
2609
2832
  } else {
2610
2833
  chunk = previousBlockedChunk;
2611
- var chunk$26 = createPendingChunk(response);
2612
- chunk$26.then(
2834
+ var chunk$30 = new ReactPromise("pending", null, null);
2835
+ chunk$30.then(
2613
2836
  function (v) {
2614
2837
  return controller.enqueue(v);
2615
2838
  },
@@ -2617,10 +2840,10 @@ function parseReadableStream(response, reference, type) {
2617
2840
  return controller.error(e);
2618
2841
  }
2619
2842
  );
2620
- previousBlockedChunk = chunk$26;
2843
+ previousBlockedChunk = chunk$30;
2621
2844
  chunk.then(function () {
2622
- previousBlockedChunk === chunk$26 && (previousBlockedChunk = null);
2623
- resolveModelChunk(chunk$26, json, -1);
2845
+ previousBlockedChunk === chunk$30 && (previousBlockedChunk = null);
2846
+ resolveModelChunk(response, chunk$30, json, -1);
2624
2847
  });
2625
2848
  }
2626
2849
  },
@@ -2660,9 +2883,9 @@ function parseAsyncIterable(response, reference, iterator) {
2660
2883
  var buffer = [],
2661
2884
  closed = !1,
2662
2885
  nextWriteIndex = 0,
2663
- $jscomp$compprop2 = {};
2664
- $jscomp$compprop2 =
2665
- (($jscomp$compprop2[ASYNC_ITERATOR] = function () {
2886
+ $jscomp$compprop5 = {};
2887
+ $jscomp$compprop5 =
2888
+ (($jscomp$compprop5[ASYNC_ITERATOR] = function () {
2666
2889
  var nextReadIndex = 0;
2667
2890
  return createIterator(function (arg) {
2668
2891
  if (void 0 !== arg)
@@ -2671,19 +2894,18 @@ function parseAsyncIterable(response, reference, iterator) {
2671
2894
  );
2672
2895
  if (nextReadIndex === buffer.length) {
2673
2896
  if (closed)
2674
- return new Chunk(
2897
+ return new ReactPromise(
2675
2898
  "fulfilled",
2676
2899
  { done: !0, value: void 0 },
2677
- null,
2678
- response
2900
+ null
2679
2901
  );
2680
- buffer[nextReadIndex] = createPendingChunk(response);
2902
+ buffer[nextReadIndex] = new ReactPromise("pending", null, null);
2681
2903
  }
2682
2904
  return buffer[nextReadIndex++];
2683
2905
  });
2684
2906
  }),
2685
- $jscomp$compprop2);
2686
- iterator = iterator ? $jscomp$compprop2[ASYNC_ITERATOR]() : $jscomp$compprop2;
2907
+ $jscomp$compprop5);
2908
+ iterator = iterator ? $jscomp$compprop5[ASYNC_ITERATOR]() : $jscomp$compprop5;
2687
2909
  resolveStream(response, reference, iterator, {
2688
2910
  enqueueModel: function (value) {
2689
2911
  nextWriteIndex === buffer.length
@@ -2692,7 +2914,12 @@ function parseAsyncIterable(response, reference, iterator) {
2692
2914
  value,
2693
2915
  !1
2694
2916
  ))
2695
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !1);
2917
+ : resolveIteratorResultChunk(
2918
+ response,
2919
+ buffer[nextWriteIndex],
2920
+ value,
2921
+ !1
2922
+ );
2696
2923
  nextWriteIndex++;
2697
2924
  },
2698
2925
  close: function (value) {
@@ -2703,9 +2930,15 @@ function parseAsyncIterable(response, reference, iterator) {
2703
2930
  value,
2704
2931
  !0
2705
2932
  ))
2706
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !0);
2933
+ : resolveIteratorResultChunk(
2934
+ response,
2935
+ buffer[nextWriteIndex],
2936
+ value,
2937
+ !0
2938
+ );
2707
2939
  for (nextWriteIndex++; nextWriteIndex < buffer.length; )
2708
2940
  resolveIteratorResultChunk(
2941
+ response,
2709
2942
  buffer[nextWriteIndex++],
2710
2943
  '"$undefined"',
2711
2944
  !0
@@ -2715,11 +2948,11 @@ function parseAsyncIterable(response, reference, iterator) {
2715
2948
  closed = !0;
2716
2949
  for (
2717
2950
  nextWriteIndex === buffer.length &&
2718
- (buffer[nextWriteIndex] = createPendingChunk(response));
2951
+ (buffer[nextWriteIndex] = new ReactPromise("pending", null, null));
2719
2952
  nextWriteIndex < buffer.length;
2720
2953
 
2721
2954
  )
2722
- triggerErrorOnChunk(buffer[nextWriteIndex++], error);
2955
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
2723
2956
  }
2724
2957
  });
2725
2958
  return iterator;
@@ -2734,15 +2967,7 @@ function parseModelString(response, obj, key, value, reference) {
2734
2967
  case "F":
2735
2968
  return (
2736
2969
  (value = value.slice(2)),
2737
- (value = getOutlinedModel(response, value, obj, key, createModel)),
2738
- loadServerReference$1(
2739
- response,
2740
- value.id,
2741
- value.bound,
2742
- initializingChunk,
2743
- obj,
2744
- key
2745
- )
2970
+ getOutlinedModel(response, value, obj, key, loadServerReference$1)
2746
2971
  );
2747
2972
  case "T":
2748
2973
  if (void 0 === reference || void 0 === response._temporaryReferences)
@@ -2857,10 +3082,12 @@ function createResponse(bundlerConfig, formFieldPrefix, temporaryReferences) {
2857
3082
  function resolveField(response, key, value) {
2858
3083
  response._formData.append(key, value);
2859
3084
  var prefix = response._prefix;
2860
- key.startsWith(prefix) &&
2861
- ((response = response._chunks),
2862
- (key = +key.slice(prefix.length)),
2863
- (prefix = response.get(key)) && resolveModelChunk(prefix, value, key));
3085
+ if (key.startsWith(prefix)) {
3086
+ var chunks = response._chunks;
3087
+ key = +key.slice(prefix.length);
3088
+ (chunks = chunks.get(key)) &&
3089
+ resolveModelChunk(response, chunks, value, key);
3090
+ }
2864
3091
  }
2865
3092
  function close(response) {
2866
3093
  reportGlobalError(response, Error("Connection closed."));
@@ -3029,34 +3256,50 @@ exports.decodeReplyFromBusboy = function (busboyStream, webpackMap, options) {
3029
3256
  pendingFiles = 0,
3030
3257
  queuedFields = [];
3031
3258
  busboyStream.on("field", function (name, value) {
3032
- 0 < pendingFiles
3033
- ? queuedFields.push(name, value)
3034
- : resolveField(response, name, value);
3259
+ if (0 < pendingFiles) queuedFields.push(name, value);
3260
+ else
3261
+ try {
3262
+ resolveField(response, name, value);
3263
+ } catch (error) {
3264
+ busboyStream.destroy(error);
3265
+ }
3035
3266
  });
3036
3267
  busboyStream.on("file", function (name, value, _ref2) {
3037
3268
  var filename = _ref2.filename,
3038
3269
  mimeType = _ref2.mimeType;
3039
3270
  if ("base64" === _ref2.encoding.toLowerCase())
3040
- throw Error(
3041
- "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."
3271
+ busboyStream.destroy(
3272
+ Error(
3273
+ "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."
3274
+ )
3042
3275
  );
3043
- pendingFiles++;
3044
- var JSCompiler_object_inline_chunks_274 = [];
3045
- value.on("data", function (chunk) {
3046
- JSCompiler_object_inline_chunks_274.push(chunk);
3047
- });
3048
- value.on("end", function () {
3049
- var blob = new Blob(JSCompiler_object_inline_chunks_274, {
3050
- type: mimeType
3276
+ else {
3277
+ pendingFiles++;
3278
+ var JSCompiler_object_inline_chunks_281 = [];
3279
+ value.on("data", function (chunk) {
3280
+ JSCompiler_object_inline_chunks_281.push(chunk);
3051
3281
  });
3052
- response._formData.append(name, blob, filename);
3053
- pendingFiles--;
3054
- if (0 === pendingFiles) {
3055
- for (blob = 0; blob < queuedFields.length; blob += 2)
3056
- resolveField(response, queuedFields[blob], queuedFields[blob + 1]);
3057
- queuedFields.length = 0;
3058
- }
3059
- });
3282
+ value.on("end", function () {
3283
+ try {
3284
+ var blob = new Blob(JSCompiler_object_inline_chunks_281, {
3285
+ type: mimeType
3286
+ });
3287
+ response._formData.append(name, blob, filename);
3288
+ pendingFiles--;
3289
+ if (0 === pendingFiles) {
3290
+ for (blob = 0; blob < queuedFields.length; blob += 2)
3291
+ resolveField(
3292
+ response,
3293
+ queuedFields[blob],
3294
+ queuedFields[blob + 1]
3295
+ );
3296
+ queuedFields.length = 0;
3297
+ }
3298
+ } catch (error) {
3299
+ busboyStream.destroy(error);
3300
+ }
3301
+ });
3302
+ }
3060
3303
  });
3061
3304
  busboyStream.on("finish", function () {
3062
3305
  close(response);