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