@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
@@ -947,8 +947,8 @@ function serializeReadableStream(request, task, stream) {
947
947
  tryStreamTask(request, streamTask),
948
948
  enqueueFlush(request),
949
949
  reader.read().then(progress, error);
950
- } catch (x$8) {
951
- error(x$8);
950
+ } catch (x$11) {
951
+ error(x$11);
952
952
  }
953
953
  }
954
954
  function error(reason) {
@@ -1032,8 +1032,8 @@ function serializeAsyncIterable(request, task, iterable, iterator) {
1032
1032
  tryStreamTask(request, streamTask),
1033
1033
  enqueueFlush(request),
1034
1034
  iterator.next().then(progress, error);
1035
- } catch (x$9) {
1036
- error(x$9);
1035
+ } catch (x$12) {
1036
+ error(x$12);
1037
1037
  }
1038
1038
  }
1039
1039
  function error(reason) {
@@ -2158,9 +2158,9 @@ function abort(request, reason) {
2158
2158
  onAllReady();
2159
2159
  flushCompletedChunks(request);
2160
2160
  }
2161
- } catch (error$23) {
2162
- logRecoverableError(request, error$23, null),
2163
- fatalError(request, error$23);
2161
+ } catch (error$26) {
2162
+ logRecoverableError(request, error$26, null),
2163
+ fatalError(request, error$26);
2164
2164
  }
2165
2165
  }
2166
2166
  function resolveServerReference(bundlerConfig, id) {
@@ -2231,13 +2231,11 @@ function requireModule(metadata) {
2231
2231
  if ("fulfilled" === moduleExports.status)
2232
2232
  moduleExports = moduleExports.value;
2233
2233
  else throw moduleExports.reason;
2234
- return "*" === metadata[2]
2235
- ? moduleExports
2236
- : "" === metadata[2]
2237
- ? moduleExports.__esModule
2238
- ? moduleExports.default
2239
- : moduleExports
2240
- : moduleExports[metadata[2]];
2234
+ if ("*" === metadata[2]) return moduleExports;
2235
+ if ("" === metadata[2])
2236
+ return moduleExports.__esModule ? moduleExports.default : moduleExports;
2237
+ if (hasOwnProperty.call(moduleExports, metadata[2]))
2238
+ return moduleExports[metadata[2]];
2241
2239
  }
2242
2240
  var chunkMap = new Map(),
2243
2241
  webpackGetChunkFilename = __webpack_require__.u;
@@ -2247,51 +2245,91 @@ __webpack_require__.u = function (chunkId) {
2247
2245
  ? flightChunk
2248
2246
  : webpackGetChunkFilename(chunkId);
2249
2247
  };
2250
- function Chunk(status, value, reason, response) {
2248
+ var RESPONSE_SYMBOL = Symbol();
2249
+ function ReactPromise(status, value, reason) {
2251
2250
  this.status = status;
2252
2251
  this.value = value;
2253
2252
  this.reason = reason;
2254
- this._response = response;
2255
2253
  }
2256
- Chunk.prototype = Object.create(Promise.prototype);
2257
- Chunk.prototype.then = function (resolve, reject) {
2254
+ ReactPromise.prototype = Object.create(Promise.prototype);
2255
+ ReactPromise.prototype.then = function (resolve, reject) {
2258
2256
  switch (this.status) {
2259
2257
  case "resolved_model":
2260
2258
  initializeModelChunk(this);
2261
2259
  }
2262
2260
  switch (this.status) {
2263
2261
  case "fulfilled":
2264
- resolve(this.value);
2262
+ "function" === typeof resolve && resolve(this.value);
2265
2263
  break;
2266
2264
  case "pending":
2267
2265
  case "blocked":
2268
- case "cyclic":
2269
- resolve &&
2266
+ "function" === typeof resolve &&
2270
2267
  (null === this.value && (this.value = []), this.value.push(resolve));
2271
- reject &&
2268
+ "function" === typeof reject &&
2272
2269
  (null === this.reason && (this.reason = []), this.reason.push(reject));
2273
2270
  break;
2274
2271
  default:
2275
- reject(this.reason);
2272
+ "function" === typeof reject && reject(this.reason);
2276
2273
  }
2277
2274
  };
2278
- function createPendingChunk(response) {
2279
- return new Chunk("pending", null, null, response);
2275
+ function wakeChunk(response, listeners, value) {
2276
+ for (var i = 0; i < listeners.length; i++) {
2277
+ var listener = listeners[i];
2278
+ "function" === typeof listener
2279
+ ? listener(value)
2280
+ : fulfillReference(response, listener, value);
2281
+ }
2280
2282
  }
2281
- function wakeChunk(listeners, value) {
2282
- for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value);
2283
+ function rejectChunk(response, listeners, error) {
2284
+ for (var i = 0; i < listeners.length; i++) {
2285
+ var listener = listeners[i];
2286
+ "function" === typeof listener
2287
+ ? listener(error)
2288
+ : rejectReference(response, listener.handler, error);
2289
+ }
2283
2290
  }
2284
- function triggerErrorOnChunk(chunk, error) {
2291
+ function resolveBlockedCycle(resolvedChunk, reference) {
2292
+ var referencedChunk = reference.handler.chunk;
2293
+ if (null === referencedChunk) return null;
2294
+ if (referencedChunk === resolvedChunk) return reference.handler;
2295
+ reference = referencedChunk.value;
2296
+ if (null !== reference)
2297
+ for (
2298
+ referencedChunk = 0;
2299
+ referencedChunk < reference.length;
2300
+ referencedChunk++
2301
+ ) {
2302
+ var listener = reference[referencedChunk];
2303
+ if (
2304
+ "function" !== typeof listener &&
2305
+ ((listener = resolveBlockedCycle(resolvedChunk, listener)),
2306
+ null !== listener)
2307
+ )
2308
+ return listener;
2309
+ }
2310
+ return null;
2311
+ }
2312
+ function triggerErrorOnChunk(response, chunk, error) {
2285
2313
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
2286
2314
  chunk.reason.error(error);
2287
2315
  else {
2288
2316
  var listeners = chunk.reason;
2289
2317
  chunk.status = "rejected";
2290
2318
  chunk.reason = error;
2291
- null !== listeners && wakeChunk(listeners, error);
2319
+ null !== listeners && rejectChunk(response, listeners, error);
2292
2320
  }
2293
2321
  }
2294
- function resolveModelChunk(chunk, value, id) {
2322
+ function createResolvedModelChunk(response, value, id) {
2323
+ var $jscomp$compprop2 = {};
2324
+ return new ReactPromise(
2325
+ "resolved_model",
2326
+ value,
2327
+ (($jscomp$compprop2.id = id),
2328
+ ($jscomp$compprop2[RESPONSE_SYMBOL] = response),
2329
+ $jscomp$compprop2)
2330
+ );
2331
+ }
2332
+ function resolveModelChunk(response, chunk, value, id) {
2295
2333
  if ("pending" !== chunk.status)
2296
2334
  (chunk = chunk.reason),
2297
2335
  "C" === value[0]
@@ -2302,77 +2340,129 @@ function resolveModelChunk(chunk, value, id) {
2302
2340
  rejectListeners = chunk.reason;
2303
2341
  chunk.status = "resolved_model";
2304
2342
  chunk.value = value;
2305
- chunk.reason = id;
2343
+ value = {};
2344
+ chunk.reason =
2345
+ ((value.id = id), (value[RESPONSE_SYMBOL] = response), value);
2306
2346
  if (null !== resolveListeners)
2307
- switch ((initializeModelChunk(chunk), chunk.status)) {
2347
+ a: switch ((initializeModelChunk(chunk), chunk.status)) {
2308
2348
  case "fulfilled":
2309
- wakeChunk(resolveListeners, chunk.value);
2349
+ wakeChunk(response, resolveListeners, chunk.value);
2310
2350
  break;
2311
- case "pending":
2312
2351
  case "blocked":
2313
- case "cyclic":
2352
+ for (value = 0; value < resolveListeners.length; value++)
2353
+ if (((id = resolveListeners[value]), "function" !== typeof id)) {
2354
+ var cyclicHandler = resolveBlockedCycle(chunk, id);
2355
+ if (null !== cyclicHandler)
2356
+ switch (
2357
+ (fulfillReference(response, id, cyclicHandler.value),
2358
+ resolveListeners.splice(value, 1),
2359
+ value--,
2360
+ null !== rejectListeners &&
2361
+ ((id = rejectListeners.indexOf(id)),
2362
+ -1 !== id && rejectListeners.splice(id, 1)),
2363
+ chunk.status)
2364
+ ) {
2365
+ case "fulfilled":
2366
+ wakeChunk(response, resolveListeners, chunk.value);
2367
+ break a;
2368
+ case "rejected":
2369
+ null !== rejectListeners &&
2370
+ rejectChunk(response, rejectListeners, chunk.reason);
2371
+ break a;
2372
+ }
2373
+ }
2374
+ case "pending":
2314
2375
  if (chunk.value)
2315
- for (value = 0; value < resolveListeners.length; value++)
2316
- chunk.value.push(resolveListeners[value]);
2376
+ for (response = 0; response < resolveListeners.length; response++)
2377
+ chunk.value.push(resolveListeners[response]);
2317
2378
  else chunk.value = resolveListeners;
2318
2379
  if (chunk.reason) {
2319
2380
  if (rejectListeners)
2320
- for (value = 0; value < rejectListeners.length; value++)
2321
- chunk.reason.push(rejectListeners[value]);
2381
+ for (
2382
+ resolveListeners = 0;
2383
+ resolveListeners < rejectListeners.length;
2384
+ resolveListeners++
2385
+ )
2386
+ chunk.reason.push(rejectListeners[resolveListeners]);
2322
2387
  } else chunk.reason = rejectListeners;
2323
2388
  break;
2324
2389
  case "rejected":
2325
- rejectListeners && wakeChunk(rejectListeners, chunk.reason);
2390
+ rejectListeners && wakeChunk(response, rejectListeners, chunk.reason);
2326
2391
  }
2327
2392
  }
2328
2393
  }
2329
2394
  function createResolvedIteratorResultChunk(response, value, done) {
2330
- return new Chunk(
2395
+ var $jscomp$compprop4 = {};
2396
+ return new ReactPromise(
2331
2397
  "resolved_model",
2332
2398
  (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}",
2333
- -1,
2334
- response
2399
+ (($jscomp$compprop4.id = -1),
2400
+ ($jscomp$compprop4[RESPONSE_SYMBOL] = response),
2401
+ $jscomp$compprop4)
2335
2402
  );
2336
2403
  }
2337
- function resolveIteratorResultChunk(chunk, value, done) {
2404
+ function resolveIteratorResultChunk(response, chunk, value, done) {
2338
2405
  resolveModelChunk(
2406
+ response,
2339
2407
  chunk,
2340
2408
  (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}",
2341
2409
  -1
2342
2410
  );
2343
2411
  }
2344
- function loadServerReference$1(
2345
- response,
2346
- id,
2347
- bound,
2348
- parentChunk,
2349
- parentObject,
2350
- key
2351
- ) {
2412
+ function loadServerReference$1(response, metaData, parentObject, key) {
2413
+ var id = metaData.id;
2414
+ if ("string" !== typeof id) return null;
2352
2415
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2353
- id = preloadModule(serverReference);
2354
- if (bound)
2355
- bound = Promise.all([bound, id]).then(function (_ref) {
2356
- _ref = _ref[0];
2357
- var fn = requireModule(serverReference);
2358
- return fn.bind.apply(fn, [null].concat(_ref));
2359
- });
2360
- else if (id)
2361
- bound = Promise.resolve(id).then(function () {
2362
- return requireModule(serverReference);
2363
- });
2416
+ id = metaData.bound;
2417
+ var promise = preloadModule(serverReference);
2418
+ if (promise)
2419
+ id instanceof ReactPromise && (promise = Promise.all([promise, id]));
2420
+ else if (id instanceof ReactPromise) promise = Promise.resolve(id);
2364
2421
  else return requireModule(serverReference);
2365
- bound.then(
2366
- createModelResolver(
2367
- parentChunk,
2368
- parentObject,
2369
- key,
2370
- !1,
2371
- response,
2372
- createModel,
2373
- []
2374
- ),
2375
- createModelReject(parentChunk)
2422
+ if (initializingHandler) {
2423
+ var handler = initializingHandler;
2424
+ handler.deps++;
2425
+ } else
2426
+ handler = initializingHandler = {
2427
+ chunk: null,
2428
+ value: null,
2429
+ reason: null,
2430
+ deps: 1,
2431
+ errored: !1
2432
+ };
2433
+ promise.then(
2434
+ function () {
2435
+ var resolvedValue = requireModule(serverReference);
2436
+ if (metaData.bound) {
2437
+ var promiseValue = metaData.bound.value;
2438
+ promiseValue = Array.isArray(promiseValue) ? promiseValue.slice(0) : [];
2439
+ promiseValue.unshift(null);
2440
+ resolvedValue = resolvedValue.bind.apply(resolvedValue, promiseValue);
2441
+ }
2442
+ parentObject[key] = resolvedValue;
2443
+ "" === key && null === handler.value && (handler.value = resolvedValue);
2444
+ handler.deps--;
2445
+ 0 === handler.deps &&
2446
+ ((resolvedValue = handler.chunk),
2447
+ null !== resolvedValue &&
2448
+ "blocked" === resolvedValue.status &&
2449
+ ((promiseValue = resolvedValue.value),
2450
+ (resolvedValue.status = "fulfilled"),
2451
+ (resolvedValue.value = handler.value),
2452
+ null !== promiseValue &&
2453
+ wakeChunk(response, promiseValue, handler.value)));
2454
+ },
2455
+ function (error) {
2456
+ if (!handler.errored) {
2457
+ handler.errored = !0;
2458
+ handler.value = null;
2459
+ handler.reason = error;
2460
+ var chunk = handler.chunk;
2461
+ null !== chunk &&
2462
+ "blocked" === chunk.status &&
2463
+ triggerErrorOnChunk(response, chunk, error);
2464
+ }
2465
+ }
2376
2466
  );
2377
2467
  return null;
2378
2468
  }
@@ -2402,53 +2492,65 @@ function reviveModel(response, parentObj, parentKey, value, reference) {
2402
2492
  ? reference + ":" + i
2403
2493
  : void 0),
2404
2494
  (parentObj = reviveModel(response, value, i, value[i], parentObj)),
2405
- void 0 !== parentObj ? (value[i] = parentObj) : delete value[i]);
2495
+ void 0 !== parentObj || "__proto__" === i
2496
+ ? (value[i] = parentObj)
2497
+ : delete value[i]);
2406
2498
  return value;
2407
2499
  }
2408
- var initializingChunk = null,
2409
- initializingChunkBlockedModel = null;
2500
+ var initializingHandler = null;
2410
2501
  function initializeModelChunk(chunk) {
2411
- var prevChunk = initializingChunk,
2412
- prevBlocked = initializingChunkBlockedModel;
2413
- initializingChunk = chunk;
2414
- initializingChunkBlockedModel = null;
2415
- var rootReference = -1 === chunk.reason ? void 0 : chunk.reason.toString(16),
2416
- resolvedModel = chunk.value;
2417
- chunk.status = "cyclic";
2502
+ var prevHandler = initializingHandler;
2503
+ initializingHandler = null;
2504
+ var _chunk$reason = chunk.reason,
2505
+ response = _chunk$reason[RESPONSE_SYMBOL];
2506
+ _chunk$reason = _chunk$reason.id;
2507
+ _chunk$reason = -1 === _chunk$reason ? void 0 : _chunk$reason.toString(16);
2508
+ var resolvedModel = chunk.value;
2509
+ chunk.status = "blocked";
2418
2510
  chunk.value = null;
2419
2511
  chunk.reason = null;
2420
2512
  try {
2421
2513
  var rawModel = JSON.parse(resolvedModel),
2422
2514
  value = reviveModel(
2423
- chunk._response,
2515
+ response,
2424
2516
  { "": rawModel },
2425
2517
  "",
2426
2518
  rawModel,
2427
- rootReference
2428
- );
2429
- if (
2430
- null !== initializingChunkBlockedModel &&
2431
- 0 < initializingChunkBlockedModel.deps
2432
- )
2433
- (initializingChunkBlockedModel.value = value), (chunk.status = "blocked");
2434
- else {
2435
- var resolveListeners = chunk.value;
2436
- chunk.status = "fulfilled";
2437
- chunk.value = value;
2438
- null !== resolveListeners && wakeChunk(resolveListeners, value);
2519
+ _chunk$reason
2520
+ ),
2521
+ resolveListeners = chunk.value;
2522
+ if (null !== resolveListeners)
2523
+ for (
2524
+ chunk.value = null, chunk.reason = null, rawModel = 0;
2525
+ rawModel < resolveListeners.length;
2526
+ rawModel++
2527
+ ) {
2528
+ var listener = resolveListeners[rawModel];
2529
+ "function" === typeof listener
2530
+ ? listener(value)
2531
+ : fulfillReference(response, listener, value);
2532
+ }
2533
+ if (null !== initializingHandler) {
2534
+ if (initializingHandler.errored) throw initializingHandler.reason;
2535
+ if (0 < initializingHandler.deps) {
2536
+ initializingHandler.value = value;
2537
+ initializingHandler.chunk = chunk;
2538
+ return;
2539
+ }
2439
2540
  }
2541
+ chunk.status = "fulfilled";
2542
+ chunk.value = value;
2440
2543
  } catch (error) {
2441
2544
  (chunk.status = "rejected"), (chunk.reason = error);
2442
2545
  } finally {
2443
- (initializingChunk = prevChunk),
2444
- (initializingChunkBlockedModel = prevBlocked);
2546
+ initializingHandler = prevHandler;
2445
2547
  }
2446
2548
  }
2447
2549
  function reportGlobalError(response, error) {
2448
2550
  response._closed = !0;
2449
2551
  response._closedReason = error;
2450
2552
  response._chunks.forEach(function (chunk) {
2451
- "pending" === chunk.status && triggerErrorOnChunk(chunk, error);
2553
+ "pending" === chunk.status && triggerErrorOnChunk(response, chunk, error);
2452
2554
  });
2453
2555
  }
2454
2556
  function getChunk(response, id) {
@@ -2457,48 +2559,104 @@ function getChunk(response, id) {
2457
2559
  chunk ||
2458
2560
  ((chunk = response._formData.get(response._prefix + id)),
2459
2561
  (chunk =
2460
- null != chunk
2461
- ? new Chunk("resolved_model", chunk, id, response)
2562
+ "string" === typeof chunk
2563
+ ? createResolvedModelChunk(response, chunk, id)
2462
2564
  : response._closed
2463
- ? new Chunk("rejected", null, response._closedReason, response)
2464
- : createPendingChunk(response)),
2565
+ ? new ReactPromise("rejected", null, response._closedReason)
2566
+ : new ReactPromise("pending", null, null)),
2465
2567
  chunks.set(id, chunk));
2466
2568
  return chunk;
2467
2569
  }
2468
- function createModelResolver(
2469
- chunk,
2570
+ function fulfillReference(response, reference, value) {
2571
+ for (
2572
+ var handler = reference.handler,
2573
+ parentObject = reference.parentObject,
2574
+ key = reference.key,
2575
+ map = reference.map,
2576
+ path = reference.path,
2577
+ i = 1;
2578
+ i < path.length;
2579
+ i++
2580
+ ) {
2581
+ for (; value instanceof ReactPromise; ) {
2582
+ switch (value.status) {
2583
+ case "resolved_model":
2584
+ initializeModelChunk(value);
2585
+ }
2586
+ switch (value.status) {
2587
+ case "fulfilled":
2588
+ value = value.value;
2589
+ continue;
2590
+ case "blocked":
2591
+ case "pending":
2592
+ path.splice(0, i - 1);
2593
+ null === value.value
2594
+ ? (value.value = [reference])
2595
+ : value.value.push(reference);
2596
+ null === value.reason
2597
+ ? (value.reason = [reference])
2598
+ : value.reason.push(reference);
2599
+ return;
2600
+ default:
2601
+ rejectReference(response, reference.handler, value.reason);
2602
+ return;
2603
+ }
2604
+ }
2605
+ var name = path[i];
2606
+ "object" === typeof value &&
2607
+ hasOwnProperty.call(value, name) &&
2608
+ (value = value[name]);
2609
+ }
2610
+ reference = map(response, value, parentObject, key);
2611
+ parentObject[key] = reference;
2612
+ "" === key && null === handler.value && (handler.value = reference);
2613
+ handler.deps--;
2614
+ 0 === handler.deps &&
2615
+ ((parentObject = handler.chunk),
2616
+ null !== parentObject &&
2617
+ "blocked" === parentObject.status &&
2618
+ ((key = parentObject.value),
2619
+ (parentObject.status = "fulfilled"),
2620
+ (parentObject.value = handler.value),
2621
+ (parentObject.reason = handler.reason),
2622
+ null !== key && wakeChunk(response, key, handler.value)));
2623
+ }
2624
+ function rejectReference(response, handler, error) {
2625
+ handler.errored ||
2626
+ ((handler.errored = !0),
2627
+ (handler.value = null),
2628
+ (handler.reason = error),
2629
+ (handler = handler.chunk),
2630
+ null !== handler &&
2631
+ "blocked" === handler.status &&
2632
+ triggerErrorOnChunk(response, handler, error));
2633
+ }
2634
+ function waitForReference(
2635
+ referencedChunk,
2470
2636
  parentObject,
2471
2637
  key,
2472
- cyclic,
2473
2638
  response,
2474
2639
  map,
2475
2640
  path
2476
2641
  ) {
2477
- if (initializingChunkBlockedModel) {
2478
- var blocked = initializingChunkBlockedModel;
2479
- cyclic || blocked.deps++;
2480
- } else
2481
- blocked = initializingChunkBlockedModel = {
2482
- deps: cyclic ? 0 : 1,
2483
- value: null
2484
- };
2485
- return function (value) {
2486
- for (var i = 1; i < path.length; i++) value = value[path[i]];
2487
- parentObject[key] = map(response, value);
2488
- "" === key && null === blocked.value && (blocked.value = parentObject[key]);
2489
- blocked.deps--;
2490
- 0 === blocked.deps &&
2491
- "blocked" === chunk.status &&
2492
- ((value = chunk.value),
2493
- (chunk.status = "fulfilled"),
2494
- (chunk.value = blocked.value),
2495
- null !== value && wakeChunk(value, blocked.value));
2496
- };
2497
- }
2498
- function createModelReject(chunk) {
2499
- return function (error) {
2500
- return triggerErrorOnChunk(chunk, error);
2642
+ initializingHandler
2643
+ ? ((response = initializingHandler), response.deps++)
2644
+ : (response = initializingHandler =
2645
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
2646
+ parentObject = {
2647
+ handler: response,
2648
+ parentObject: parentObject,
2649
+ key: key,
2650
+ map: map,
2651
+ path: path
2501
2652
  };
2653
+ null === referencedChunk.value
2654
+ ? (referencedChunk.value = [parentObject])
2655
+ : referencedChunk.value.push(parentObject);
2656
+ null === referencedChunk.reason
2657
+ ? (referencedChunk.reason = [parentObject])
2658
+ : referencedChunk.reason.push(parentObject);
2659
+ return null;
2502
2660
  }
2503
2661
  function getOutlinedModel(response, reference, parentObject, key, map) {
2504
2662
  reference = reference.split(":");
@@ -2510,29 +2668,68 @@ function getOutlinedModel(response, reference, parentObject, key, map) {
2510
2668
  }
2511
2669
  switch (id.status) {
2512
2670
  case "fulfilled":
2513
- parentObject = id.value;
2514
- for (key = 1; key < reference.length; key++)
2515
- parentObject = parentObject[reference[key]];
2516
- return map(response, parentObject);
2671
+ var value = id.value;
2672
+ for (id = 1; id < reference.length; id++) {
2673
+ for (; value instanceof ReactPromise; ) {
2674
+ switch (value.status) {
2675
+ case "resolved_model":
2676
+ initializeModelChunk(value);
2677
+ }
2678
+ switch (value.status) {
2679
+ case "fulfilled":
2680
+ value = value.value;
2681
+ break;
2682
+ case "blocked":
2683
+ case "pending":
2684
+ return waitForReference(
2685
+ value,
2686
+ parentObject,
2687
+ key,
2688
+ response,
2689
+ map,
2690
+ reference.slice(id - 1)
2691
+ );
2692
+ default:
2693
+ return (
2694
+ initializingHandler
2695
+ ? ((initializingHandler.errored = !0),
2696
+ (initializingHandler.value = null),
2697
+ (initializingHandler.reason = value.reason))
2698
+ : (initializingHandler = {
2699
+ chunk: null,
2700
+ value: null,
2701
+ reason: value.reason,
2702
+ deps: 0,
2703
+ errored: !0
2704
+ }),
2705
+ null
2706
+ );
2707
+ }
2708
+ }
2709
+ var name = reference[id];
2710
+ "object" === typeof value &&
2711
+ hasOwnProperty.call(value, name) &&
2712
+ (value = value[name]);
2713
+ }
2714
+ return map(response, value, parentObject, key);
2517
2715
  case "pending":
2518
2716
  case "blocked":
2519
- case "cyclic":
2520
- var parentChunk = initializingChunk;
2521
- id.then(
2522
- createModelResolver(
2523
- parentChunk,
2524
- parentObject,
2525
- key,
2526
- "cyclic" === id.status,
2527
- response,
2528
- map,
2529
- reference
2530
- ),
2531
- createModelReject(parentChunk)
2532
- );
2533
- return null;
2717
+ return waitForReference(id, parentObject, key, response, map, reference);
2534
2718
  default:
2535
- throw id.reason;
2719
+ return (
2720
+ initializingHandler
2721
+ ? ((initializingHandler.errored = !0),
2722
+ (initializingHandler.value = null),
2723
+ (initializingHandler.reason = id.reason))
2724
+ : (initializingHandler = {
2725
+ chunk: null,
2726
+ value: null,
2727
+ reason: id.reason,
2728
+ deps: 0,
2729
+ errored: !0
2730
+ }),
2731
+ null
2732
+ );
2536
2733
  }
2537
2734
  }
2538
2735
  function createMap(response, model) {
@@ -2556,38 +2753,63 @@ function parseTypedArray(
2556
2753
  parentKey
2557
2754
  ) {
2558
2755
  reference = parseInt(reference.slice(2), 16);
2559
- reference = response._formData.get(response._prefix + reference);
2560
- reference =
2561
- constructor === ArrayBuffer
2562
- ? reference.arrayBuffer()
2563
- : reference.arrayBuffer().then(function (buffer) {
2564
- return new constructor(buffer);
2565
- });
2566
- bytesPerElement = initializingChunk;
2756
+ reference = response._formData
2757
+ .get(response._prefix + reference)
2758
+ .arrayBuffer();
2759
+ if (initializingHandler) {
2760
+ var handler = initializingHandler;
2761
+ handler.deps++;
2762
+ } else
2763
+ handler = initializingHandler = {
2764
+ chunk: null,
2765
+ value: null,
2766
+ reason: null,
2767
+ deps: 1,
2768
+ errored: !1
2769
+ };
2567
2770
  reference.then(
2568
- createModelResolver(
2569
- bytesPerElement,
2570
- parentObject,
2571
- parentKey,
2572
- !1,
2573
- response,
2574
- createModel,
2575
- []
2576
- ),
2577
- createModelReject(bytesPerElement)
2771
+ function (buffer) {
2772
+ buffer = constructor === ArrayBuffer ? buffer : new constructor(buffer);
2773
+ parentObject[parentKey] = buffer;
2774
+ "" === parentKey && null === handler.value && (handler.value = buffer);
2775
+ handler.deps--;
2776
+ if (
2777
+ 0 === handler.deps &&
2778
+ ((buffer = handler.chunk),
2779
+ null !== buffer && "blocked" === buffer.status)
2780
+ ) {
2781
+ var resolveListeners = buffer.value;
2782
+ buffer.status = "fulfilled";
2783
+ buffer.value = handler.value;
2784
+ null !== resolveListeners &&
2785
+ wakeChunk(response, resolveListeners, handler.value);
2786
+ }
2787
+ },
2788
+ function (error) {
2789
+ if (!handler.errored) {
2790
+ handler.errored = !0;
2791
+ handler.value = null;
2792
+ handler.reason = error;
2793
+ var chunk = handler.chunk;
2794
+ null !== chunk &&
2795
+ "blocked" === chunk.status &&
2796
+ triggerErrorOnChunk(response, chunk, error);
2797
+ }
2798
+ }
2578
2799
  );
2579
2800
  return null;
2580
2801
  }
2581
2802
  function resolveStream(response, id, stream, controller) {
2582
2803
  var chunks = response._chunks;
2583
- stream = new Chunk("fulfilled", stream, controller, response);
2804
+ stream = new ReactPromise("fulfilled", stream, controller);
2584
2805
  chunks.set(id, stream);
2585
2806
  response = response._formData.getAll(response._prefix + id);
2586
2807
  for (id = 0; id < response.length; id++)
2587
2808
  (chunks = response[id]),
2588
- "C" === chunks[0]
2589
- ? controller.close("C" === chunks ? '"$undefined"' : chunks.slice(1))
2590
- : controller.enqueueModel(chunks);
2809
+ "string" === typeof chunks &&
2810
+ ("C" === chunks[0]
2811
+ ? controller.close("C" === chunks ? '"$undefined"' : chunks.slice(1))
2812
+ : controller.enqueueModel(chunks));
2591
2813
  }
2592
2814
  function parseReadableStream(response, reference, type) {
2593
2815
  reference = parseInt(reference.slice(2), 16);
@@ -2602,7 +2824,7 @@ function parseReadableStream(response, reference, type) {
2602
2824
  resolveStream(response, reference, type, {
2603
2825
  enqueueModel: function (json) {
2604
2826
  if (null === previousBlockedChunk) {
2605
- var chunk = new Chunk("resolved_model", json, -1, response);
2827
+ var chunk = createResolvedModelChunk(response, json, -1);
2606
2828
  initializeModelChunk(chunk);
2607
2829
  "fulfilled" === chunk.status
2608
2830
  ? controller.enqueue(chunk.value)
@@ -2617,8 +2839,8 @@ function parseReadableStream(response, reference, type) {
2617
2839
  (previousBlockedChunk = chunk));
2618
2840
  } else {
2619
2841
  chunk = previousBlockedChunk;
2620
- var chunk$26 = createPendingChunk(response);
2621
- chunk$26.then(
2842
+ var chunk$30 = new ReactPromise("pending", null, null);
2843
+ chunk$30.then(
2622
2844
  function (v) {
2623
2845
  return controller.enqueue(v);
2624
2846
  },
@@ -2626,10 +2848,10 @@ function parseReadableStream(response, reference, type) {
2626
2848
  return controller.error(e);
2627
2849
  }
2628
2850
  );
2629
- previousBlockedChunk = chunk$26;
2851
+ previousBlockedChunk = chunk$30;
2630
2852
  chunk.then(function () {
2631
- previousBlockedChunk === chunk$26 && (previousBlockedChunk = null);
2632
- resolveModelChunk(chunk$26, json, -1);
2853
+ previousBlockedChunk === chunk$30 && (previousBlockedChunk = null);
2854
+ resolveModelChunk(response, chunk$30, json, -1);
2633
2855
  });
2634
2856
  }
2635
2857
  },
@@ -2669,9 +2891,9 @@ function parseAsyncIterable(response, reference, iterator) {
2669
2891
  var buffer = [],
2670
2892
  closed = !1,
2671
2893
  nextWriteIndex = 0,
2672
- $jscomp$compprop2 = {};
2673
- $jscomp$compprop2 =
2674
- (($jscomp$compprop2[ASYNC_ITERATOR] = function () {
2894
+ $jscomp$compprop5 = {};
2895
+ $jscomp$compprop5 =
2896
+ (($jscomp$compprop5[ASYNC_ITERATOR] = function () {
2675
2897
  var nextReadIndex = 0;
2676
2898
  return createIterator(function (arg) {
2677
2899
  if (void 0 !== arg)
@@ -2680,19 +2902,18 @@ function parseAsyncIterable(response, reference, iterator) {
2680
2902
  );
2681
2903
  if (nextReadIndex === buffer.length) {
2682
2904
  if (closed)
2683
- return new Chunk(
2905
+ return new ReactPromise(
2684
2906
  "fulfilled",
2685
2907
  { done: !0, value: void 0 },
2686
- null,
2687
- response
2908
+ null
2688
2909
  );
2689
- buffer[nextReadIndex] = createPendingChunk(response);
2910
+ buffer[nextReadIndex] = new ReactPromise("pending", null, null);
2690
2911
  }
2691
2912
  return buffer[nextReadIndex++];
2692
2913
  });
2693
2914
  }),
2694
- $jscomp$compprop2);
2695
- iterator = iterator ? $jscomp$compprop2[ASYNC_ITERATOR]() : $jscomp$compprop2;
2915
+ $jscomp$compprop5);
2916
+ iterator = iterator ? $jscomp$compprop5[ASYNC_ITERATOR]() : $jscomp$compprop5;
2696
2917
  resolveStream(response, reference, iterator, {
2697
2918
  enqueueModel: function (value) {
2698
2919
  nextWriteIndex === buffer.length
@@ -2701,7 +2922,12 @@ function parseAsyncIterable(response, reference, iterator) {
2701
2922
  value,
2702
2923
  !1
2703
2924
  ))
2704
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !1);
2925
+ : resolveIteratorResultChunk(
2926
+ response,
2927
+ buffer[nextWriteIndex],
2928
+ value,
2929
+ !1
2930
+ );
2705
2931
  nextWriteIndex++;
2706
2932
  },
2707
2933
  close: function (value) {
@@ -2712,9 +2938,15 @@ function parseAsyncIterable(response, reference, iterator) {
2712
2938
  value,
2713
2939
  !0
2714
2940
  ))
2715
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !0);
2941
+ : resolveIteratorResultChunk(
2942
+ response,
2943
+ buffer[nextWriteIndex],
2944
+ value,
2945
+ !0
2946
+ );
2716
2947
  for (nextWriteIndex++; nextWriteIndex < buffer.length; )
2717
2948
  resolveIteratorResultChunk(
2949
+ response,
2718
2950
  buffer[nextWriteIndex++],
2719
2951
  '"$undefined"',
2720
2952
  !0
@@ -2724,11 +2956,11 @@ function parseAsyncIterable(response, reference, iterator) {
2724
2956
  closed = !0;
2725
2957
  for (
2726
2958
  nextWriteIndex === buffer.length &&
2727
- (buffer[nextWriteIndex] = createPendingChunk(response));
2959
+ (buffer[nextWriteIndex] = new ReactPromise("pending", null, null));
2728
2960
  nextWriteIndex < buffer.length;
2729
2961
 
2730
2962
  )
2731
- triggerErrorOnChunk(buffer[nextWriteIndex++], error);
2963
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
2732
2964
  }
2733
2965
  });
2734
2966
  return iterator;
@@ -2743,15 +2975,7 @@ function parseModelString(response, obj, key, value, reference) {
2743
2975
  case "F":
2744
2976
  return (
2745
2977
  (value = value.slice(2)),
2746
- (value = getOutlinedModel(response, value, obj, key, createModel)),
2747
- loadServerReference$1(
2748
- response,
2749
- value.id,
2750
- value.bound,
2751
- initializingChunk,
2752
- obj,
2753
- key
2754
- )
2978
+ getOutlinedModel(response, value, obj, key, loadServerReference$1)
2755
2979
  );
2756
2980
  case "T":
2757
2981
  if (void 0 === reference || void 0 === response._temporaryReferences)