@modern-js/utils 2.69.1 → 2.69.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 (18) hide show
  1. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js +8 -9
  2. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.production.js +7 -8
  3. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js +6 -7
  4. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.production.js +7 -8
  5. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js +6 -7
  6. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.production.js +7 -8
  7. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js +5 -5
  8. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.production.js +6 -6
  9. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js +430 -197
  10. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js +428 -204
  11. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js +431 -198
  12. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.js +429 -205
  13. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js +474 -227
  14. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.production.js +472 -230
  15. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.development.js +472 -224
  16. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.production.js +470 -227
  17. package/dist/compiled/react-server-dom-webpack/package.json +5 -5
  18. package/package.json +5 -5
@@ -860,8 +860,8 @@ function serializeReadableStream(request, task, stream) {
860
860
  emitChunk(request, streamTask, streamTask.model),
861
861
  enqueueFlush(request),
862
862
  reader.read().then(progress, error);
863
- } catch (x$8) {
864
- error(x$8);
863
+ } catch (x$11) {
864
+ error(x$11);
865
865
  }
866
866
  }
867
867
  function error(reason) {
@@ -937,8 +937,8 @@ function serializeAsyncIterable(request, task, iterable, iterator) {
937
937
  emitChunk(request, streamTask, streamTask.model),
938
938
  enqueueFlush(request),
939
939
  iterator.next().then(progress, error);
940
- } catch (x$9) {
941
- error(x$9);
940
+ } catch (x$12) {
941
+ error(x$12);
942
942
  }
943
943
  }
944
944
  function error(reason) {
@@ -1057,11 +1057,11 @@ function renderFunctionComponent(request, task, key, Component, props) {
1057
1057
  Component instanceof ReadableStream)
1058
1058
  )
1059
1059
  ) {
1060
- var iterableChild$10 = Component;
1060
+ var iterableChild$13 = Component;
1061
1061
  Component = {};
1062
1062
  Component =
1063
1063
  ((Component[ASYNC_ITERATOR] = function () {
1064
- return iterableChild$10[ASYNC_ITERATOR]();
1064
+ return iterableChild$13[ASYNC_ITERATOR]();
1065
1065
  }),
1066
1066
  Component);
1067
1067
  }
@@ -1948,7 +1948,7 @@ function abort(request, reason) {
1948
1948
  }
1949
1949
  var abortListeners = request.abortListeners;
1950
1950
  if (0 < abortListeners.size) {
1951
- var error$23 =
1951
+ var error$26 =
1952
1952
  void 0 === reason
1953
1953
  ? Error("The render was aborted by the server without a reason.")
1954
1954
  : "object" === typeof reason &&
@@ -1957,16 +1957,17 @@ function abort(request, reason) {
1957
1957
  ? Error("The render was aborted by the server with a promise.")
1958
1958
  : reason;
1959
1959
  abortListeners.forEach(function (callback) {
1960
- return callback(error$23);
1960
+ return callback(error$26);
1961
1961
  });
1962
1962
  abortListeners.clear();
1963
1963
  }
1964
1964
  null !== request.destination &&
1965
1965
  flushCompletedChunks(request, request.destination);
1966
- } catch (error$24) {
1967
- logRecoverableError(request, error$24, null), fatalError(request, error$24);
1966
+ } catch (error$27) {
1967
+ logRecoverableError(request, error$27, null), fatalError(request, error$27);
1968
1968
  }
1969
1969
  }
1970
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
1970
1971
  function resolveServerReference(bundlerConfig, id) {
1971
1972
  var idx = id.lastIndexOf("#");
1972
1973
  bundlerConfig = id.slice(0, idx);
@@ -2002,58 +2003,96 @@ function requireModule(metadata) {
2002
2003
  var moduleExports = asyncModuleCache.get(metadata.specifier);
2003
2004
  if ("fulfilled" === moduleExports.status) moduleExports = moduleExports.value;
2004
2005
  else throw moduleExports.reason;
2005
- return "*" === metadata.name
2006
- ? moduleExports
2007
- : "" === metadata.name
2008
- ? moduleExports.default
2009
- : moduleExports[metadata.name];
2006
+ if ("*" === metadata.name) return moduleExports;
2007
+ if ("" === metadata.name) return moduleExports.default;
2008
+ if (hasOwnProperty.call(moduleExports, metadata.name))
2009
+ return moduleExports[metadata.name];
2010
2010
  }
2011
- var hasOwnProperty = Object.prototype.hasOwnProperty;
2012
- function Chunk(status, value, reason, response) {
2011
+ var RESPONSE_SYMBOL = Symbol();
2012
+ function ReactPromise(status, value, reason) {
2013
2013
  this.status = status;
2014
2014
  this.value = value;
2015
2015
  this.reason = reason;
2016
- this._response = response;
2017
2016
  }
2018
- Chunk.prototype = Object.create(Promise.prototype);
2019
- Chunk.prototype.then = function (resolve, reject) {
2017
+ ReactPromise.prototype = Object.create(Promise.prototype);
2018
+ ReactPromise.prototype.then = function (resolve, reject) {
2020
2019
  switch (this.status) {
2021
2020
  case "resolved_model":
2022
2021
  initializeModelChunk(this);
2023
2022
  }
2024
2023
  switch (this.status) {
2025
2024
  case "fulfilled":
2026
- resolve(this.value);
2025
+ "function" === typeof resolve && resolve(this.value);
2027
2026
  break;
2028
2027
  case "pending":
2029
2028
  case "blocked":
2030
- case "cyclic":
2031
- resolve &&
2029
+ "function" === typeof resolve &&
2032
2030
  (null === this.value && (this.value = []), this.value.push(resolve));
2033
- reject &&
2031
+ "function" === typeof reject &&
2034
2032
  (null === this.reason && (this.reason = []), this.reason.push(reject));
2035
2033
  break;
2036
2034
  default:
2037
- reject(this.reason);
2035
+ "function" === typeof reject && reject(this.reason);
2038
2036
  }
2039
2037
  };
2040
- function createPendingChunk(response) {
2041
- return new Chunk("pending", null, null, response);
2038
+ function wakeChunk(response, listeners, value) {
2039
+ for (var i = 0; i < listeners.length; i++) {
2040
+ var listener = listeners[i];
2041
+ "function" === typeof listener
2042
+ ? listener(value)
2043
+ : fulfillReference(response, listener, value);
2044
+ }
2042
2045
  }
2043
- function wakeChunk(listeners, value) {
2044
- for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value);
2046
+ function rejectChunk(response, listeners, error) {
2047
+ for (var i = 0; i < listeners.length; i++) {
2048
+ var listener = listeners[i];
2049
+ "function" === typeof listener
2050
+ ? listener(error)
2051
+ : rejectReference(response, listener.handler, error);
2052
+ }
2045
2053
  }
2046
- function triggerErrorOnChunk(chunk, error) {
2054
+ function resolveBlockedCycle(resolvedChunk, reference) {
2055
+ var referencedChunk = reference.handler.chunk;
2056
+ if (null === referencedChunk) return null;
2057
+ if (referencedChunk === resolvedChunk) return reference.handler;
2058
+ reference = referencedChunk.value;
2059
+ if (null !== reference)
2060
+ for (
2061
+ referencedChunk = 0;
2062
+ referencedChunk < reference.length;
2063
+ referencedChunk++
2064
+ ) {
2065
+ var listener = reference[referencedChunk];
2066
+ if (
2067
+ "function" !== typeof listener &&
2068
+ ((listener = resolveBlockedCycle(resolvedChunk, listener)),
2069
+ null !== listener)
2070
+ )
2071
+ return listener;
2072
+ }
2073
+ return null;
2074
+ }
2075
+ function triggerErrorOnChunk(response, chunk, error) {
2047
2076
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
2048
2077
  chunk.reason.error(error);
2049
2078
  else {
2050
2079
  var listeners = chunk.reason;
2051
2080
  chunk.status = "rejected";
2052
2081
  chunk.reason = error;
2053
- null !== listeners && wakeChunk(listeners, error);
2082
+ null !== listeners && rejectChunk(response, listeners, error);
2054
2083
  }
2055
2084
  }
2056
- function resolveModelChunk(chunk, value, id) {
2085
+ function createResolvedModelChunk(response, value, id) {
2086
+ var $jscomp$compprop2 = {};
2087
+ return new ReactPromise(
2088
+ "resolved_model",
2089
+ value,
2090
+ (($jscomp$compprop2.id = id),
2091
+ ($jscomp$compprop2[RESPONSE_SYMBOL] = response),
2092
+ $jscomp$compprop2)
2093
+ );
2094
+ }
2095
+ function resolveModelChunk(response, chunk, value, id) {
2057
2096
  if ("pending" !== chunk.status)
2058
2097
  (chunk = chunk.reason),
2059
2098
  "C" === value[0]
@@ -2064,77 +2103,129 @@ function resolveModelChunk(chunk, value, id) {
2064
2103
  rejectListeners = chunk.reason;
2065
2104
  chunk.status = "resolved_model";
2066
2105
  chunk.value = value;
2067
- chunk.reason = id;
2106
+ value = {};
2107
+ chunk.reason =
2108
+ ((value.id = id), (value[RESPONSE_SYMBOL] = response), value);
2068
2109
  if (null !== resolveListeners)
2069
- switch ((initializeModelChunk(chunk), chunk.status)) {
2110
+ a: switch ((initializeModelChunk(chunk), chunk.status)) {
2070
2111
  case "fulfilled":
2071
- wakeChunk(resolveListeners, chunk.value);
2112
+ wakeChunk(response, resolveListeners, chunk.value);
2072
2113
  break;
2073
- case "pending":
2074
2114
  case "blocked":
2075
- case "cyclic":
2115
+ for (value = 0; value < resolveListeners.length; value++)
2116
+ if (((id = resolveListeners[value]), "function" !== typeof id)) {
2117
+ var cyclicHandler = resolveBlockedCycle(chunk, id);
2118
+ if (null !== cyclicHandler)
2119
+ switch (
2120
+ (fulfillReference(response, id, cyclicHandler.value),
2121
+ resolveListeners.splice(value, 1),
2122
+ value--,
2123
+ null !== rejectListeners &&
2124
+ ((id = rejectListeners.indexOf(id)),
2125
+ -1 !== id && rejectListeners.splice(id, 1)),
2126
+ chunk.status)
2127
+ ) {
2128
+ case "fulfilled":
2129
+ wakeChunk(response, resolveListeners, chunk.value);
2130
+ break a;
2131
+ case "rejected":
2132
+ null !== rejectListeners &&
2133
+ rejectChunk(response, rejectListeners, chunk.reason);
2134
+ break a;
2135
+ }
2136
+ }
2137
+ case "pending":
2076
2138
  if (chunk.value)
2077
- for (value = 0; value < resolveListeners.length; value++)
2078
- chunk.value.push(resolveListeners[value]);
2139
+ for (response = 0; response < resolveListeners.length; response++)
2140
+ chunk.value.push(resolveListeners[response]);
2079
2141
  else chunk.value = resolveListeners;
2080
2142
  if (chunk.reason) {
2081
2143
  if (rejectListeners)
2082
- for (value = 0; value < rejectListeners.length; value++)
2083
- chunk.reason.push(rejectListeners[value]);
2144
+ for (
2145
+ resolveListeners = 0;
2146
+ resolveListeners < rejectListeners.length;
2147
+ resolveListeners++
2148
+ )
2149
+ chunk.reason.push(rejectListeners[resolveListeners]);
2084
2150
  } else chunk.reason = rejectListeners;
2085
2151
  break;
2086
2152
  case "rejected":
2087
- rejectListeners && wakeChunk(rejectListeners, chunk.reason);
2153
+ rejectListeners && wakeChunk(response, rejectListeners, chunk.reason);
2088
2154
  }
2089
2155
  }
2090
2156
  }
2091
2157
  function createResolvedIteratorResultChunk(response, value, done) {
2092
- return new Chunk(
2158
+ var $jscomp$compprop4 = {};
2159
+ return new ReactPromise(
2093
2160
  "resolved_model",
2094
2161
  (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}",
2095
- -1,
2096
- response
2162
+ (($jscomp$compprop4.id = -1),
2163
+ ($jscomp$compprop4[RESPONSE_SYMBOL] = response),
2164
+ $jscomp$compprop4)
2097
2165
  );
2098
2166
  }
2099
- function resolveIteratorResultChunk(chunk, value, done) {
2167
+ function resolveIteratorResultChunk(response, chunk, value, done) {
2100
2168
  resolveModelChunk(
2169
+ response,
2101
2170
  chunk,
2102
2171
  (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}",
2103
2172
  -1
2104
2173
  );
2105
2174
  }
2106
- function loadServerReference$1(
2107
- response,
2108
- id,
2109
- bound,
2110
- parentChunk,
2111
- parentObject,
2112
- key
2113
- ) {
2175
+ function loadServerReference$1(response, metaData, parentObject, key) {
2176
+ var id = metaData.id;
2177
+ if ("string" !== typeof id) return null;
2114
2178
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2115
- id = preloadModule(serverReference);
2116
- if (bound)
2117
- bound = Promise.all([bound, id]).then(function (_ref) {
2118
- _ref = _ref[0];
2119
- var fn = requireModule(serverReference);
2120
- return fn.bind.apply(fn, [null].concat(_ref));
2121
- });
2122
- else if (id)
2123
- bound = Promise.resolve(id).then(function () {
2124
- return requireModule(serverReference);
2125
- });
2179
+ id = metaData.bound;
2180
+ var promise = preloadModule(serverReference);
2181
+ if (promise)
2182
+ id instanceof ReactPromise && (promise = Promise.all([promise, id]));
2183
+ else if (id instanceof ReactPromise) promise = Promise.resolve(id);
2126
2184
  else return requireModule(serverReference);
2127
- bound.then(
2128
- createModelResolver(
2129
- parentChunk,
2130
- parentObject,
2131
- key,
2132
- !1,
2133
- response,
2134
- createModel,
2135
- []
2136
- ),
2137
- createModelReject(parentChunk)
2185
+ if (initializingHandler) {
2186
+ var handler = initializingHandler;
2187
+ handler.deps++;
2188
+ } else
2189
+ handler = initializingHandler = {
2190
+ chunk: null,
2191
+ value: null,
2192
+ reason: null,
2193
+ deps: 1,
2194
+ errored: !1
2195
+ };
2196
+ promise.then(
2197
+ function () {
2198
+ var resolvedValue = requireModule(serverReference);
2199
+ if (metaData.bound) {
2200
+ var promiseValue = metaData.bound.value;
2201
+ promiseValue = Array.isArray(promiseValue) ? promiseValue.slice(0) : [];
2202
+ promiseValue.unshift(null);
2203
+ resolvedValue = resolvedValue.bind.apply(resolvedValue, promiseValue);
2204
+ }
2205
+ parentObject[key] = resolvedValue;
2206
+ "" === key && null === handler.value && (handler.value = resolvedValue);
2207
+ handler.deps--;
2208
+ 0 === handler.deps &&
2209
+ ((resolvedValue = handler.chunk),
2210
+ null !== resolvedValue &&
2211
+ "blocked" === resolvedValue.status &&
2212
+ ((promiseValue = resolvedValue.value),
2213
+ (resolvedValue.status = "fulfilled"),
2214
+ (resolvedValue.value = handler.value),
2215
+ null !== promiseValue &&
2216
+ wakeChunk(response, promiseValue, handler.value)));
2217
+ },
2218
+ function (error) {
2219
+ if (!handler.errored) {
2220
+ handler.errored = !0;
2221
+ handler.value = null;
2222
+ handler.reason = error;
2223
+ var chunk = handler.chunk;
2224
+ null !== chunk &&
2225
+ "blocked" === chunk.status &&
2226
+ triggerErrorOnChunk(response, chunk, error);
2227
+ }
2228
+ }
2138
2229
  );
2139
2230
  return null;
2140
2231
  }
@@ -2164,51 +2255,63 @@ function reviveModel(response, parentObj, parentKey, value, reference) {
2164
2255
  ? reference + ":" + i
2165
2256
  : void 0),
2166
2257
  (parentObj = reviveModel(response, value, i, value[i], parentObj)),
2167
- void 0 !== parentObj ? (value[i] = parentObj) : delete value[i]);
2258
+ void 0 !== parentObj || "__proto__" === i
2259
+ ? (value[i] = parentObj)
2260
+ : delete value[i]);
2168
2261
  return value;
2169
2262
  }
2170
- var initializingChunk = null,
2171
- initializingChunkBlockedModel = null;
2263
+ var initializingHandler = null;
2172
2264
  function initializeModelChunk(chunk) {
2173
- var prevChunk = initializingChunk,
2174
- prevBlocked = initializingChunkBlockedModel;
2175
- initializingChunk = chunk;
2176
- initializingChunkBlockedModel = null;
2177
- var rootReference = -1 === chunk.reason ? void 0 : chunk.reason.toString(16),
2178
- resolvedModel = chunk.value;
2179
- chunk.status = "cyclic";
2265
+ var prevHandler = initializingHandler;
2266
+ initializingHandler = null;
2267
+ var _chunk$reason = chunk.reason,
2268
+ response = _chunk$reason[RESPONSE_SYMBOL];
2269
+ _chunk$reason = _chunk$reason.id;
2270
+ _chunk$reason = -1 === _chunk$reason ? void 0 : _chunk$reason.toString(16);
2271
+ var resolvedModel = chunk.value;
2272
+ chunk.status = "blocked";
2180
2273
  chunk.value = null;
2181
2274
  chunk.reason = null;
2182
2275
  try {
2183
2276
  var rawModel = JSON.parse(resolvedModel),
2184
2277
  value = reviveModel(
2185
- chunk._response,
2278
+ response,
2186
2279
  { "": rawModel },
2187
2280
  "",
2188
2281
  rawModel,
2189
- rootReference
2190
- );
2191
- if (
2192
- null !== initializingChunkBlockedModel &&
2193
- 0 < initializingChunkBlockedModel.deps
2194
- )
2195
- (initializingChunkBlockedModel.value = value), (chunk.status = "blocked");
2196
- else {
2197
- var resolveListeners = chunk.value;
2198
- chunk.status = "fulfilled";
2199
- chunk.value = value;
2200
- null !== resolveListeners && wakeChunk(resolveListeners, value);
2282
+ _chunk$reason
2283
+ ),
2284
+ resolveListeners = chunk.value;
2285
+ if (null !== resolveListeners)
2286
+ for (
2287
+ chunk.value = null, chunk.reason = null, rawModel = 0;
2288
+ rawModel < resolveListeners.length;
2289
+ rawModel++
2290
+ ) {
2291
+ var listener = resolveListeners[rawModel];
2292
+ "function" === typeof listener
2293
+ ? listener(value)
2294
+ : fulfillReference(response, listener, value);
2295
+ }
2296
+ if (null !== initializingHandler) {
2297
+ if (initializingHandler.errored) throw initializingHandler.reason;
2298
+ if (0 < initializingHandler.deps) {
2299
+ initializingHandler.value = value;
2300
+ initializingHandler.chunk = chunk;
2301
+ return;
2302
+ }
2201
2303
  }
2304
+ chunk.status = "fulfilled";
2305
+ chunk.value = value;
2202
2306
  } catch (error) {
2203
2307
  (chunk.status = "rejected"), (chunk.reason = error);
2204
2308
  } finally {
2205
- (initializingChunk = prevChunk),
2206
- (initializingChunkBlockedModel = prevBlocked);
2309
+ initializingHandler = prevHandler;
2207
2310
  }
2208
2311
  }
2209
2312
  function reportGlobalError(response, error) {
2210
2313
  response._chunks.forEach(function (chunk) {
2211
- "pending" === chunk.status && triggerErrorOnChunk(chunk, error);
2314
+ "pending" === chunk.status && triggerErrorOnChunk(response, chunk, error);
2212
2315
  });
2213
2316
  }
2214
2317
  function getChunk(response, id) {
@@ -2217,46 +2320,102 @@ function getChunk(response, id) {
2217
2320
  chunk ||
2218
2321
  ((chunk = response._formData.get(response._prefix + id)),
2219
2322
  (chunk =
2220
- null != chunk
2221
- ? new Chunk("resolved_model", chunk, id, response)
2222
- : createPendingChunk(response)),
2323
+ "string" === typeof chunk
2324
+ ? createResolvedModelChunk(response, chunk, id)
2325
+ : new ReactPromise("pending", null, null)),
2223
2326
  chunks.set(id, chunk));
2224
2327
  return chunk;
2225
2328
  }
2226
- function createModelResolver(
2227
- chunk,
2329
+ function fulfillReference(response, reference, value) {
2330
+ for (
2331
+ var handler = reference.handler,
2332
+ parentObject = reference.parentObject,
2333
+ key = reference.key,
2334
+ map = reference.map,
2335
+ path = reference.path,
2336
+ i = 1;
2337
+ i < path.length;
2338
+ i++
2339
+ ) {
2340
+ for (; value instanceof ReactPromise; ) {
2341
+ switch (value.status) {
2342
+ case "resolved_model":
2343
+ initializeModelChunk(value);
2344
+ }
2345
+ switch (value.status) {
2346
+ case "fulfilled":
2347
+ value = value.value;
2348
+ continue;
2349
+ case "blocked":
2350
+ case "pending":
2351
+ path.splice(0, i - 1);
2352
+ null === value.value
2353
+ ? (value.value = [reference])
2354
+ : value.value.push(reference);
2355
+ null === value.reason
2356
+ ? (value.reason = [reference])
2357
+ : value.reason.push(reference);
2358
+ return;
2359
+ default:
2360
+ rejectReference(response, reference.handler, value.reason);
2361
+ return;
2362
+ }
2363
+ }
2364
+ var name = path[i];
2365
+ "object" === typeof value &&
2366
+ hasOwnProperty.call(value, name) &&
2367
+ (value = value[name]);
2368
+ }
2369
+ reference = map(response, value, parentObject, key);
2370
+ parentObject[key] = reference;
2371
+ "" === key && null === handler.value && (handler.value = reference);
2372
+ handler.deps--;
2373
+ 0 === handler.deps &&
2374
+ ((parentObject = handler.chunk),
2375
+ null !== parentObject &&
2376
+ "blocked" === parentObject.status &&
2377
+ ((key = parentObject.value),
2378
+ (parentObject.status = "fulfilled"),
2379
+ (parentObject.value = handler.value),
2380
+ (parentObject.reason = handler.reason),
2381
+ null !== key && wakeChunk(response, key, handler.value)));
2382
+ }
2383
+ function rejectReference(response, handler, error) {
2384
+ handler.errored ||
2385
+ ((handler.errored = !0),
2386
+ (handler.value = null),
2387
+ (handler.reason = error),
2388
+ (handler = handler.chunk),
2389
+ null !== handler &&
2390
+ "blocked" === handler.status &&
2391
+ triggerErrorOnChunk(response, handler, error));
2392
+ }
2393
+ function waitForReference(
2394
+ referencedChunk,
2228
2395
  parentObject,
2229
2396
  key,
2230
- cyclic,
2231
2397
  response,
2232
2398
  map,
2233
2399
  path
2234
2400
  ) {
2235
- if (initializingChunkBlockedModel) {
2236
- var blocked = initializingChunkBlockedModel;
2237
- cyclic || blocked.deps++;
2238
- } else
2239
- blocked = initializingChunkBlockedModel = {
2240
- deps: cyclic ? 0 : 1,
2241
- value: null
2242
- };
2243
- return function (value) {
2244
- for (var i = 1; i < path.length; i++) value = value[path[i]];
2245
- parentObject[key] = map(response, value);
2246
- "" === key && null === blocked.value && (blocked.value = parentObject[key]);
2247
- blocked.deps--;
2248
- 0 === blocked.deps &&
2249
- "blocked" === chunk.status &&
2250
- ((value = chunk.value),
2251
- (chunk.status = "fulfilled"),
2252
- (chunk.value = blocked.value),
2253
- null !== value && wakeChunk(value, blocked.value));
2254
- };
2255
- }
2256
- function createModelReject(chunk) {
2257
- return function (error) {
2258
- return triggerErrorOnChunk(chunk, error);
2401
+ initializingHandler
2402
+ ? ((response = initializingHandler), response.deps++)
2403
+ : (response = initializingHandler =
2404
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
2405
+ parentObject = {
2406
+ handler: response,
2407
+ parentObject: parentObject,
2408
+ key: key,
2409
+ map: map,
2410
+ path: path
2259
2411
  };
2412
+ null === referencedChunk.value
2413
+ ? (referencedChunk.value = [parentObject])
2414
+ : referencedChunk.value.push(parentObject);
2415
+ null === referencedChunk.reason
2416
+ ? (referencedChunk.reason = [parentObject])
2417
+ : referencedChunk.reason.push(parentObject);
2418
+ return null;
2260
2419
  }
2261
2420
  function getOutlinedModel(response, reference, parentObject, key, map) {
2262
2421
  reference = reference.split(":");
@@ -2268,29 +2427,68 @@ function getOutlinedModel(response, reference, parentObject, key, map) {
2268
2427
  }
2269
2428
  switch (id.status) {
2270
2429
  case "fulfilled":
2271
- parentObject = id.value;
2272
- for (key = 1; key < reference.length; key++)
2273
- parentObject = parentObject[reference[key]];
2274
- return map(response, parentObject);
2430
+ var value = id.value;
2431
+ for (id = 1; id < reference.length; id++) {
2432
+ for (; value instanceof ReactPromise; ) {
2433
+ switch (value.status) {
2434
+ case "resolved_model":
2435
+ initializeModelChunk(value);
2436
+ }
2437
+ switch (value.status) {
2438
+ case "fulfilled":
2439
+ value = value.value;
2440
+ break;
2441
+ case "blocked":
2442
+ case "pending":
2443
+ return waitForReference(
2444
+ value,
2445
+ parentObject,
2446
+ key,
2447
+ response,
2448
+ map,
2449
+ reference.slice(id - 1)
2450
+ );
2451
+ default:
2452
+ return (
2453
+ initializingHandler
2454
+ ? ((initializingHandler.errored = !0),
2455
+ (initializingHandler.value = null),
2456
+ (initializingHandler.reason = value.reason))
2457
+ : (initializingHandler = {
2458
+ chunk: null,
2459
+ value: null,
2460
+ reason: value.reason,
2461
+ deps: 0,
2462
+ errored: !0
2463
+ }),
2464
+ null
2465
+ );
2466
+ }
2467
+ }
2468
+ var name = reference[id];
2469
+ "object" === typeof value &&
2470
+ hasOwnProperty.call(value, name) &&
2471
+ (value = value[name]);
2472
+ }
2473
+ return map(response, value, parentObject, key);
2275
2474
  case "pending":
2276
2475
  case "blocked":
2277
- case "cyclic":
2278
- var parentChunk = initializingChunk;
2279
- id.then(
2280
- createModelResolver(
2281
- parentChunk,
2282
- parentObject,
2283
- key,
2284
- "cyclic" === id.status,
2285
- response,
2286
- map,
2287
- reference
2288
- ),
2289
- createModelReject(parentChunk)
2290
- );
2291
- return null;
2476
+ return waitForReference(id, parentObject, key, response, map, reference);
2292
2477
  default:
2293
- throw id.reason;
2478
+ return (
2479
+ initializingHandler
2480
+ ? ((initializingHandler.errored = !0),
2481
+ (initializingHandler.value = null),
2482
+ (initializingHandler.reason = id.reason))
2483
+ : (initializingHandler = {
2484
+ chunk: null,
2485
+ value: null,
2486
+ reason: id.reason,
2487
+ deps: 0,
2488
+ errored: !0
2489
+ }),
2490
+ null
2491
+ );
2294
2492
  }
2295
2493
  }
2296
2494
  function createMap(response, model) {
@@ -2314,38 +2512,63 @@ function parseTypedArray(
2314
2512
  parentKey
2315
2513
  ) {
2316
2514
  reference = parseInt(reference.slice(2), 16);
2317
- reference = response._formData.get(response._prefix + reference);
2318
- reference =
2319
- constructor === ArrayBuffer
2320
- ? reference.arrayBuffer()
2321
- : reference.arrayBuffer().then(function (buffer) {
2322
- return new constructor(buffer);
2323
- });
2324
- bytesPerElement = initializingChunk;
2515
+ reference = response._formData
2516
+ .get(response._prefix + reference)
2517
+ .arrayBuffer();
2518
+ if (initializingHandler) {
2519
+ var handler = initializingHandler;
2520
+ handler.deps++;
2521
+ } else
2522
+ handler = initializingHandler = {
2523
+ chunk: null,
2524
+ value: null,
2525
+ reason: null,
2526
+ deps: 1,
2527
+ errored: !1
2528
+ };
2325
2529
  reference.then(
2326
- createModelResolver(
2327
- bytesPerElement,
2328
- parentObject,
2329
- parentKey,
2330
- !1,
2331
- response,
2332
- createModel,
2333
- []
2334
- ),
2335
- createModelReject(bytesPerElement)
2530
+ function (buffer) {
2531
+ buffer = constructor === ArrayBuffer ? buffer : new constructor(buffer);
2532
+ parentObject[parentKey] = buffer;
2533
+ "" === parentKey && null === handler.value && (handler.value = buffer);
2534
+ handler.deps--;
2535
+ if (
2536
+ 0 === handler.deps &&
2537
+ ((buffer = handler.chunk),
2538
+ null !== buffer && "blocked" === buffer.status)
2539
+ ) {
2540
+ var resolveListeners = buffer.value;
2541
+ buffer.status = "fulfilled";
2542
+ buffer.value = handler.value;
2543
+ null !== resolveListeners &&
2544
+ wakeChunk(response, resolveListeners, handler.value);
2545
+ }
2546
+ },
2547
+ function (error) {
2548
+ if (!handler.errored) {
2549
+ handler.errored = !0;
2550
+ handler.value = null;
2551
+ handler.reason = error;
2552
+ var chunk = handler.chunk;
2553
+ null !== chunk &&
2554
+ "blocked" === chunk.status &&
2555
+ triggerErrorOnChunk(response, chunk, error);
2556
+ }
2557
+ }
2336
2558
  );
2337
2559
  return null;
2338
2560
  }
2339
2561
  function resolveStream(response, id, stream, controller) {
2340
2562
  var chunks = response._chunks;
2341
- stream = new Chunk("fulfilled", stream, controller, response);
2563
+ stream = new ReactPromise("fulfilled", stream, controller);
2342
2564
  chunks.set(id, stream);
2343
2565
  response = response._formData.getAll(response._prefix + id);
2344
2566
  for (id = 0; id < response.length; id++)
2345
2567
  (chunks = response[id]),
2346
- "C" === chunks[0]
2347
- ? controller.close("C" === chunks ? '"$undefined"' : chunks.slice(1))
2348
- : controller.enqueueModel(chunks);
2568
+ "string" === typeof chunks &&
2569
+ ("C" === chunks[0]
2570
+ ? controller.close("C" === chunks ? '"$undefined"' : chunks.slice(1))
2571
+ : controller.enqueueModel(chunks));
2349
2572
  }
2350
2573
  function parseReadableStream(response, reference, type) {
2351
2574
  reference = parseInt(reference.slice(2), 16);
@@ -2360,7 +2583,7 @@ function parseReadableStream(response, reference, type) {
2360
2583
  resolveStream(response, reference, type, {
2361
2584
  enqueueModel: function (json) {
2362
2585
  if (null === previousBlockedChunk) {
2363
- var chunk = new Chunk("resolved_model", json, -1, response);
2586
+ var chunk = createResolvedModelChunk(response, json, -1);
2364
2587
  initializeModelChunk(chunk);
2365
2588
  "fulfilled" === chunk.status
2366
2589
  ? controller.enqueue(chunk.value)
@@ -2375,8 +2598,8 @@ function parseReadableStream(response, reference, type) {
2375
2598
  (previousBlockedChunk = chunk));
2376
2599
  } else {
2377
2600
  chunk = previousBlockedChunk;
2378
- var chunk$27 = createPendingChunk(response);
2379
- chunk$27.then(
2601
+ var chunk$31 = new ReactPromise("pending", null, null);
2602
+ chunk$31.then(
2380
2603
  function (v) {
2381
2604
  return controller.enqueue(v);
2382
2605
  },
@@ -2384,10 +2607,10 @@ function parseReadableStream(response, reference, type) {
2384
2607
  return controller.error(e);
2385
2608
  }
2386
2609
  );
2387
- previousBlockedChunk = chunk$27;
2610
+ previousBlockedChunk = chunk$31;
2388
2611
  chunk.then(function () {
2389
- previousBlockedChunk === chunk$27 && (previousBlockedChunk = null);
2390
- resolveModelChunk(chunk$27, json, -1);
2612
+ previousBlockedChunk === chunk$31 && (previousBlockedChunk = null);
2613
+ resolveModelChunk(response, chunk$31, json, -1);
2391
2614
  });
2392
2615
  }
2393
2616
  },
@@ -2427,9 +2650,9 @@ function parseAsyncIterable(response, reference, iterator) {
2427
2650
  var buffer = [],
2428
2651
  closed = !1,
2429
2652
  nextWriteIndex = 0,
2430
- $jscomp$compprop2 = {};
2431
- $jscomp$compprop2 =
2432
- (($jscomp$compprop2[ASYNC_ITERATOR] = function () {
2653
+ $jscomp$compprop5 = {};
2654
+ $jscomp$compprop5 =
2655
+ (($jscomp$compprop5[ASYNC_ITERATOR] = function () {
2433
2656
  var nextReadIndex = 0;
2434
2657
  return createIterator(function (arg) {
2435
2658
  if (void 0 !== arg)
@@ -2438,19 +2661,18 @@ function parseAsyncIterable(response, reference, iterator) {
2438
2661
  );
2439
2662
  if (nextReadIndex === buffer.length) {
2440
2663
  if (closed)
2441
- return new Chunk(
2664
+ return new ReactPromise(
2442
2665
  "fulfilled",
2443
2666
  { done: !0, value: void 0 },
2444
- null,
2445
- response
2667
+ null
2446
2668
  );
2447
- buffer[nextReadIndex] = createPendingChunk(response);
2669
+ buffer[nextReadIndex] = new ReactPromise("pending", null, null);
2448
2670
  }
2449
2671
  return buffer[nextReadIndex++];
2450
2672
  });
2451
2673
  }),
2452
- $jscomp$compprop2);
2453
- iterator = iterator ? $jscomp$compprop2[ASYNC_ITERATOR]() : $jscomp$compprop2;
2674
+ $jscomp$compprop5);
2675
+ iterator = iterator ? $jscomp$compprop5[ASYNC_ITERATOR]() : $jscomp$compprop5;
2454
2676
  resolveStream(response, reference, iterator, {
2455
2677
  enqueueModel: function (value) {
2456
2678
  nextWriteIndex === buffer.length
@@ -2459,7 +2681,12 @@ function parseAsyncIterable(response, reference, iterator) {
2459
2681
  value,
2460
2682
  !1
2461
2683
  ))
2462
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !1);
2684
+ : resolveIteratorResultChunk(
2685
+ response,
2686
+ buffer[nextWriteIndex],
2687
+ value,
2688
+ !1
2689
+ );
2463
2690
  nextWriteIndex++;
2464
2691
  },
2465
2692
  close: function (value) {
@@ -2470,9 +2697,15 @@ function parseAsyncIterable(response, reference, iterator) {
2470
2697
  value,
2471
2698
  !0
2472
2699
  ))
2473
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !0);
2700
+ : resolveIteratorResultChunk(
2701
+ response,
2702
+ buffer[nextWriteIndex],
2703
+ value,
2704
+ !0
2705
+ );
2474
2706
  for (nextWriteIndex++; nextWriteIndex < buffer.length; )
2475
2707
  resolveIteratorResultChunk(
2708
+ response,
2476
2709
  buffer[nextWriteIndex++],
2477
2710
  '"$undefined"',
2478
2711
  !0
@@ -2482,11 +2715,11 @@ function parseAsyncIterable(response, reference, iterator) {
2482
2715
  closed = !0;
2483
2716
  for (
2484
2717
  nextWriteIndex === buffer.length &&
2485
- (buffer[nextWriteIndex] = createPendingChunk(response));
2718
+ (buffer[nextWriteIndex] = new ReactPromise("pending", null, null));
2486
2719
  nextWriteIndex < buffer.length;
2487
2720
 
2488
2721
  )
2489
- triggerErrorOnChunk(buffer[nextWriteIndex++], error);
2722
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
2490
2723
  }
2491
2724
  });
2492
2725
  return iterator;
@@ -2501,15 +2734,7 @@ function parseModelString(response, obj, key, value, reference) {
2501
2734
  case "F":
2502
2735
  return (
2503
2736
  (value = value.slice(2)),
2504
- (value = getOutlinedModel(response, value, obj, key, createModel)),
2505
- loadServerReference$1(
2506
- response,
2507
- value.id,
2508
- value.bound,
2509
- initializingChunk,
2510
- obj,
2511
- key
2512
- )
2737
+ getOutlinedModel(response, value, obj, key, loadServerReference$1)
2513
2738
  );
2514
2739
  case "T":
2515
2740
  if (void 0 === reference || void 0 === response._temporaryReferences)
@@ -2622,10 +2847,12 @@ function createResponse(bundlerConfig, formFieldPrefix, temporaryReferences) {
2622
2847
  function resolveField(response, key, value) {
2623
2848
  response._formData.append(key, value);
2624
2849
  var prefix = response._prefix;
2625
- key.startsWith(prefix) &&
2626
- ((response = response._chunks),
2627
- (key = +key.slice(prefix.length)),
2628
- (prefix = response.get(key)) && resolveModelChunk(prefix, value, key));
2850
+ if (key.startsWith(prefix)) {
2851
+ var chunks = response._chunks;
2852
+ key = +key.slice(prefix.length);
2853
+ (chunks = chunks.get(key)) &&
2854
+ resolveModelChunk(response, chunks, value, key);
2855
+ }
2629
2856
  }
2630
2857
  function close(response) {
2631
2858
  reportGlobalError(response, Error("Connection closed."));
@@ -2733,34 +2960,50 @@ exports.decodeReplyFromBusboy = function (busboyStream, webpackMap, options) {
2733
2960
  pendingFiles = 0,
2734
2961
  queuedFields = [];
2735
2962
  busboyStream.on("field", function (name, value) {
2736
- 0 < pendingFiles
2737
- ? queuedFields.push(name, value)
2738
- : resolveField(response, name, value);
2963
+ if (0 < pendingFiles) queuedFields.push(name, value);
2964
+ else
2965
+ try {
2966
+ resolveField(response, name, value);
2967
+ } catch (error) {
2968
+ busboyStream.destroy(error);
2969
+ }
2739
2970
  });
2740
2971
  busboyStream.on("file", function (name, value, _ref) {
2741
2972
  var filename = _ref.filename,
2742
2973
  mimeType = _ref.mimeType;
2743
2974
  if ("base64" === _ref.encoding.toLowerCase())
2744
- throw Error(
2745
- "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."
2975
+ busboyStream.destroy(
2976
+ Error(
2977
+ "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."
2978
+ )
2746
2979
  );
2747
- pendingFiles++;
2748
- var JSCompiler_object_inline_chunks_216 = [];
2749
- value.on("data", function (chunk) {
2750
- JSCompiler_object_inline_chunks_216.push(chunk);
2751
- });
2752
- value.on("end", function () {
2753
- var blob = new Blob(JSCompiler_object_inline_chunks_216, {
2754
- type: mimeType
2980
+ else {
2981
+ pendingFiles++;
2982
+ var JSCompiler_object_inline_chunks_223 = [];
2983
+ value.on("data", function (chunk) {
2984
+ JSCompiler_object_inline_chunks_223.push(chunk);
2755
2985
  });
2756
- response._formData.append(name, blob, filename);
2757
- pendingFiles--;
2758
- if (0 === pendingFiles) {
2759
- for (blob = 0; blob < queuedFields.length; blob += 2)
2760
- resolveField(response, queuedFields[blob], queuedFields[blob + 1]);
2761
- queuedFields.length = 0;
2762
- }
2763
- });
2986
+ value.on("end", function () {
2987
+ try {
2988
+ var blob = new Blob(JSCompiler_object_inline_chunks_223, {
2989
+ type: mimeType
2990
+ });
2991
+ response._formData.append(name, blob, filename);
2992
+ pendingFiles--;
2993
+ if (0 === pendingFiles) {
2994
+ for (blob = 0; blob < queuedFields.length; blob += 2)
2995
+ resolveField(
2996
+ response,
2997
+ queuedFields[blob],
2998
+ queuedFields[blob + 1]
2999
+ );
3000
+ queuedFields.length = 0;
3001
+ }
3002
+ } catch (error) {
3003
+ busboyStream.destroy(error);
3004
+ }
3005
+ });
3006
+ }
2764
3007
  });
2765
3008
  busboyStream.on("finish", function () {
2766
3009
  close(response);