react-server-dom-webpack 19.0.0 → 19.0.2

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.
@@ -91,7 +91,14 @@ function bind() {
91
91
  }
92
92
  return newFn;
93
93
  }
94
- var PROMISE_PROTOTYPE = Promise.prototype,
94
+ var serverReferenceToString = {
95
+ value: function () {
96
+ return "function () { [omitted code] }";
97
+ },
98
+ configurable: !0,
99
+ writable: !0
100
+ },
101
+ PROMISE_PROTOTYPE = Promise.prototype,
95
102
  deepProxyHandlers = {
96
103
  get: function (target, name) {
97
104
  switch (name) {
@@ -844,8 +851,8 @@ function serializeReadableStream(request, task, stream) {
844
851
  emitChunk(request, streamTask, streamTask.model),
845
852
  enqueueFlush(request),
846
853
  reader.read().then(progress, error);
847
- } catch (x$8) {
848
- error(x$8);
854
+ } catch (x$11) {
855
+ error(x$11);
849
856
  }
850
857
  }
851
858
  function error(reason) {
@@ -921,8 +928,8 @@ function serializeAsyncIterable(request, task, iterable, iterator) {
921
928
  emitChunk(request, streamTask, streamTask.model),
922
929
  enqueueFlush(request),
923
930
  iterator.next().then(progress, error);
924
- } catch (x$9) {
925
- error(x$9);
931
+ } catch (x$12) {
932
+ error(x$12);
926
933
  }
927
934
  }
928
935
  function error(reason) {
@@ -1042,11 +1049,11 @@ function renderFunctionComponent(request, task, key, Component, props) {
1042
1049
  Component instanceof ReadableStream)
1043
1050
  )
1044
1051
  ) {
1045
- var iterableChild$10 = Component;
1052
+ var iterableChild$13 = Component;
1046
1053
  Component = {};
1047
1054
  Component =
1048
1055
  ((Component[ASYNC_ITERATOR] = function () {
1049
- return iterableChild$10[ASYNC_ITERATOR]();
1056
+ return iterableChild$13[ASYNC_ITERATOR]();
1050
1057
  }),
1051
1058
  Component);
1052
1059
  }
@@ -1577,7 +1584,7 @@ function renderModelDestructive(
1577
1584
  (task = request.writtenServerReferences),
1578
1585
  (parentPropertyName = task.get(value)),
1579
1586
  void 0 !== parentPropertyName
1580
- ? (request = "$F" + parentPropertyName.toString(16))
1587
+ ? (request = "$h" + parentPropertyName.toString(16))
1581
1588
  : ((parentPropertyName = value.$$bound),
1582
1589
  (parentPropertyName =
1583
1590
  null === parentPropertyName
@@ -1588,7 +1595,7 @@ function renderModelDestructive(
1588
1595
  bound: parentPropertyName
1589
1596
  })),
1590
1597
  task.set(value, request),
1591
- (request = "$F" + request.toString(16))),
1598
+ (request = "$h" + request.toString(16))),
1592
1599
  request
1593
1600
  );
1594
1601
  if (
@@ -1912,7 +1919,7 @@ function abort(request, reason) {
1912
1919
  }
1913
1920
  var abortListeners = request.abortListeners;
1914
1921
  if (0 < abortListeners.size) {
1915
- var error$23 =
1922
+ var error$26 =
1916
1923
  void 0 === reason
1917
1924
  ? Error("The render was aborted by the server without a reason.")
1918
1925
  : "object" === typeof reason &&
@@ -1921,16 +1928,17 @@ function abort(request, reason) {
1921
1928
  ? Error("The render was aborted by the server with a promise.")
1922
1929
  : reason;
1923
1930
  abortListeners.forEach(function (callback) {
1924
- return callback(error$23);
1931
+ return callback(error$26);
1925
1932
  });
1926
1933
  abortListeners.clear();
1927
1934
  }
1928
1935
  null !== request.destination &&
1929
1936
  flushCompletedChunks(request, request.destination);
1930
- } catch (error$24) {
1931
- logRecoverableError(request, error$24, null), fatalError(request, error$24);
1937
+ } catch (error$27) {
1938
+ logRecoverableError(request, error$27, null), fatalError(request, error$27);
1932
1939
  }
1933
1940
  }
1941
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
1934
1942
  function resolveServerReference(bundlerConfig, id) {
1935
1943
  var name = "",
1936
1944
  resolvedModuleData = bundlerConfig[id];
@@ -1998,60 +2006,113 @@ function requireModule(metadata) {
1998
2006
  if ("fulfilled" === moduleExports.status)
1999
2007
  moduleExports = moduleExports.value;
2000
2008
  else throw moduleExports.reason;
2001
- return "*" === metadata[2]
2002
- ? moduleExports
2003
- : "" === metadata[2]
2004
- ? moduleExports.__esModule
2005
- ? moduleExports.default
2006
- : moduleExports
2007
- : moduleExports[metadata[2]];
2008
- }
2009
- var hasOwnProperty = Object.prototype.hasOwnProperty;
2010
- function Chunk(status, value, reason, response) {
2009
+ if ("*" === metadata[2]) return moduleExports;
2010
+ if ("" === metadata[2])
2011
+ return moduleExports.__esModule ? moduleExports.default : moduleExports;
2012
+ if (hasOwnProperty.call(moduleExports, metadata[2]))
2013
+ return moduleExports[metadata[2]];
2014
+ }
2015
+ var RESPONSE_SYMBOL = Symbol();
2016
+ function ReactPromise(status, value, reason) {
2011
2017
  this.status = status;
2012
2018
  this.value = value;
2013
2019
  this.reason = reason;
2014
- this._response = response;
2015
2020
  }
2016
- Chunk.prototype = Object.create(Promise.prototype);
2017
- Chunk.prototype.then = function (resolve, reject) {
2021
+ ReactPromise.prototype = Object.create(Promise.prototype);
2022
+ ReactPromise.prototype.then = function (resolve, reject) {
2018
2023
  switch (this.status) {
2019
2024
  case "resolved_model":
2020
2025
  initializeModelChunk(this);
2021
2026
  }
2022
2027
  switch (this.status) {
2023
2028
  case "fulfilled":
2024
- resolve(this.value);
2029
+ if ("function" === typeof resolve) {
2030
+ for (
2031
+ var inspectedValue = this.value;
2032
+ inspectedValue instanceof ReactPromise;
2033
+
2034
+ ) {
2035
+ if (inspectedValue === this) {
2036
+ "function" === typeof reject &&
2037
+ reject(Error("Cannot have cyclic thenables."));
2038
+ return;
2039
+ }
2040
+ if ("fulfilled" === inspectedValue.status)
2041
+ inspectedValue = inspectedValue.value;
2042
+ else break;
2043
+ }
2044
+ resolve(this.value);
2045
+ }
2025
2046
  break;
2026
2047
  case "pending":
2027
2048
  case "blocked":
2028
- case "cyclic":
2029
- resolve &&
2049
+ "function" === typeof resolve &&
2030
2050
  (null === this.value && (this.value = []), this.value.push(resolve));
2031
- reject &&
2051
+ "function" === typeof reject &&
2032
2052
  (null === this.reason && (this.reason = []), this.reason.push(reject));
2033
2053
  break;
2034
2054
  default:
2035
- reject(this.reason);
2055
+ "function" === typeof reject && reject(this.reason);
2036
2056
  }
2037
2057
  };
2038
- function createPendingChunk(response) {
2039
- return new Chunk("pending", null, null, response);
2058
+ function wakeChunk(response, listeners, value) {
2059
+ for (var i = 0; i < listeners.length; i++) {
2060
+ var listener = listeners[i];
2061
+ "function" === typeof listener
2062
+ ? listener(value)
2063
+ : fulfillReference(response, listener, value);
2064
+ }
2065
+ }
2066
+ function rejectChunk(response, listeners, error) {
2067
+ for (var i = 0; i < listeners.length; i++) {
2068
+ var listener = listeners[i];
2069
+ "function" === typeof listener
2070
+ ? listener(error)
2071
+ : rejectReference(response, listener.handler, error);
2072
+ }
2040
2073
  }
2041
- function wakeChunk(listeners, value) {
2042
- for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value);
2074
+ function resolveBlockedCycle(resolvedChunk, reference) {
2075
+ var referencedChunk = reference.handler.chunk;
2076
+ if (null === referencedChunk) return null;
2077
+ if (referencedChunk === resolvedChunk) return reference.handler;
2078
+ reference = referencedChunk.value;
2079
+ if (null !== reference)
2080
+ for (
2081
+ referencedChunk = 0;
2082
+ referencedChunk < reference.length;
2083
+ referencedChunk++
2084
+ ) {
2085
+ var listener = reference[referencedChunk];
2086
+ if (
2087
+ "function" !== typeof listener &&
2088
+ ((listener = resolveBlockedCycle(resolvedChunk, listener)),
2089
+ null !== listener)
2090
+ )
2091
+ return listener;
2092
+ }
2093
+ return null;
2043
2094
  }
2044
- function triggerErrorOnChunk(chunk, error) {
2095
+ function triggerErrorOnChunk(response, chunk, error) {
2045
2096
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
2046
2097
  chunk.reason.error(error);
2047
2098
  else {
2048
2099
  var listeners = chunk.reason;
2049
2100
  chunk.status = "rejected";
2050
2101
  chunk.reason = error;
2051
- null !== listeners && wakeChunk(listeners, error);
2102
+ null !== listeners && rejectChunk(response, listeners, error);
2052
2103
  }
2053
2104
  }
2054
- function resolveModelChunk(chunk, value, id) {
2105
+ function createResolvedModelChunk(response, value, id) {
2106
+ var $jscomp$compprop2 = {};
2107
+ return new ReactPromise(
2108
+ "resolved_model",
2109
+ value,
2110
+ (($jscomp$compprop2.id = id),
2111
+ ($jscomp$compprop2[RESPONSE_SYMBOL] = response),
2112
+ $jscomp$compprop2)
2113
+ );
2114
+ }
2115
+ function resolveModelChunk(response, chunk, value, id) {
2055
2116
  if ("pending" !== chunk.status)
2056
2117
  (chunk = chunk.reason),
2057
2118
  "C" === value[0]
@@ -2062,77 +2123,130 @@ function resolveModelChunk(chunk, value, id) {
2062
2123
  rejectListeners = chunk.reason;
2063
2124
  chunk.status = "resolved_model";
2064
2125
  chunk.value = value;
2065
- chunk.reason = id;
2126
+ value = {};
2127
+ chunk.reason =
2128
+ ((value.id = id), (value[RESPONSE_SYMBOL] = response), value);
2066
2129
  if (null !== resolveListeners)
2067
- switch ((initializeModelChunk(chunk), chunk.status)) {
2130
+ a: switch ((initializeModelChunk(chunk), chunk.status)) {
2068
2131
  case "fulfilled":
2069
- wakeChunk(resolveListeners, chunk.value);
2132
+ wakeChunk(response, resolveListeners, chunk.value);
2070
2133
  break;
2071
- case "pending":
2072
2134
  case "blocked":
2073
- case "cyclic":
2135
+ for (value = 0; value < resolveListeners.length; value++)
2136
+ if (((id = resolveListeners[value]), "function" !== typeof id)) {
2137
+ var cyclicHandler = resolveBlockedCycle(chunk, id);
2138
+ if (null !== cyclicHandler)
2139
+ switch (
2140
+ (fulfillReference(response, id, cyclicHandler.value),
2141
+ resolveListeners.splice(value, 1),
2142
+ value--,
2143
+ null !== rejectListeners &&
2144
+ ((id = rejectListeners.indexOf(id)),
2145
+ -1 !== id && rejectListeners.splice(id, 1)),
2146
+ chunk.status)
2147
+ ) {
2148
+ case "fulfilled":
2149
+ wakeChunk(response, resolveListeners, chunk.value);
2150
+ break a;
2151
+ case "rejected":
2152
+ null !== rejectListeners &&
2153
+ rejectChunk(response, rejectListeners, chunk.reason);
2154
+ break a;
2155
+ }
2156
+ }
2157
+ case "pending":
2074
2158
  if (chunk.value)
2075
- for (value = 0; value < resolveListeners.length; value++)
2076
- chunk.value.push(resolveListeners[value]);
2159
+ for (response = 0; response < resolveListeners.length; response++)
2160
+ chunk.value.push(resolveListeners[response]);
2077
2161
  else chunk.value = resolveListeners;
2078
2162
  if (chunk.reason) {
2079
2163
  if (rejectListeners)
2080
- for (value = 0; value < rejectListeners.length; value++)
2081
- chunk.reason.push(rejectListeners[value]);
2164
+ for (
2165
+ resolveListeners = 0;
2166
+ resolveListeners < rejectListeners.length;
2167
+ resolveListeners++
2168
+ )
2169
+ chunk.reason.push(rejectListeners[resolveListeners]);
2082
2170
  } else chunk.reason = rejectListeners;
2083
2171
  break;
2084
2172
  case "rejected":
2085
- rejectListeners && wakeChunk(rejectListeners, chunk.reason);
2173
+ rejectListeners && wakeChunk(response, rejectListeners, chunk.reason);
2086
2174
  }
2087
2175
  }
2088
2176
  }
2089
2177
  function createResolvedIteratorResultChunk(response, value, done) {
2090
- return new Chunk(
2178
+ var $jscomp$compprop4 = {};
2179
+ return new ReactPromise(
2091
2180
  "resolved_model",
2092
2181
  (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}",
2093
- -1,
2094
- response
2182
+ (($jscomp$compprop4.id = -1),
2183
+ ($jscomp$compprop4[RESPONSE_SYMBOL] = response),
2184
+ $jscomp$compprop4)
2095
2185
  );
2096
2186
  }
2097
- function resolveIteratorResultChunk(chunk, value, done) {
2187
+ function resolveIteratorResultChunk(response, chunk, value, done) {
2098
2188
  resolveModelChunk(
2189
+ response,
2099
2190
  chunk,
2100
2191
  (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}",
2101
2192
  -1
2102
2193
  );
2103
2194
  }
2104
- function loadServerReference$1(
2105
- response,
2106
- id,
2107
- bound,
2108
- parentChunk,
2109
- parentObject,
2110
- key
2111
- ) {
2195
+ function loadServerReference$1(response, metaData, parentObject, key) {
2196
+ var id = metaData.id;
2197
+ if ("string" !== typeof id || "then" === key) return null;
2112
2198
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2113
- id = preloadModule(serverReference);
2114
- if (bound)
2115
- bound = Promise.all([bound, id]).then(function (_ref) {
2116
- _ref = _ref[0];
2117
- var fn = requireModule(serverReference);
2118
- return fn.bind.apply(fn, [null].concat(_ref));
2119
- });
2120
- else if (id)
2121
- bound = Promise.resolve(id).then(function () {
2122
- return requireModule(serverReference);
2123
- });
2199
+ id = metaData.bound;
2200
+ var promise = preloadModule(serverReference);
2201
+ if (promise)
2202
+ id instanceof ReactPromise && (promise = Promise.all([promise, id]));
2203
+ else if (id instanceof ReactPromise) promise = Promise.resolve(id);
2124
2204
  else return requireModule(serverReference);
2125
- bound.then(
2126
- createModelResolver(
2127
- parentChunk,
2128
- parentObject,
2129
- key,
2130
- !1,
2131
- response,
2132
- createModel,
2133
- []
2134
- ),
2135
- createModelReject(parentChunk)
2205
+ if (initializingHandler) {
2206
+ var handler = initializingHandler;
2207
+ handler.deps++;
2208
+ } else
2209
+ handler = initializingHandler = {
2210
+ chunk: null,
2211
+ value: null,
2212
+ reason: null,
2213
+ deps: 1,
2214
+ errored: !1
2215
+ };
2216
+ promise.then(
2217
+ function () {
2218
+ var resolvedValue = requireModule(serverReference);
2219
+ if (metaData.bound) {
2220
+ var promiseValue = metaData.bound.value;
2221
+ promiseValue = Array.isArray(promiseValue) ? promiseValue.slice(0) : [];
2222
+ promiseValue.unshift(null);
2223
+ resolvedValue = resolvedValue.bind.apply(resolvedValue, promiseValue);
2224
+ }
2225
+ parentObject[key] = resolvedValue;
2226
+ "" === key && null === handler.value && (handler.value = resolvedValue);
2227
+ handler.deps--;
2228
+ 0 === handler.deps &&
2229
+ ((resolvedValue = handler.chunk),
2230
+ null !== resolvedValue &&
2231
+ "blocked" === resolvedValue.status &&
2232
+ ((promiseValue = resolvedValue.value),
2233
+ (resolvedValue.status = "fulfilled"),
2234
+ (resolvedValue.value = handler.value),
2235
+ (resolvedValue.reason = null),
2236
+ null !== promiseValue &&
2237
+ wakeChunk(response, promiseValue, handler.value)));
2238
+ },
2239
+ function (error) {
2240
+ if (!handler.errored) {
2241
+ handler.errored = !0;
2242
+ handler.value = null;
2243
+ handler.reason = error;
2244
+ var chunk = handler.chunk;
2245
+ null !== chunk &&
2246
+ "blocked" === chunk.status &&
2247
+ triggerErrorOnChunk(response, chunk, error);
2248
+ }
2249
+ }
2136
2250
  );
2137
2251
  return null;
2138
2252
  }
@@ -2162,51 +2276,68 @@ function reviveModel(response, parentObj, parentKey, value, reference) {
2162
2276
  ? reference + ":" + i
2163
2277
  : void 0),
2164
2278
  (parentObj = reviveModel(response, value, i, value[i], parentObj)),
2165
- void 0 !== parentObj ? (value[i] = parentObj) : delete value[i]);
2279
+ void 0 !== parentObj || "__proto__" === i
2280
+ ? (value[i] = parentObj)
2281
+ : delete value[i]);
2166
2282
  return value;
2167
2283
  }
2168
- var initializingChunk = null,
2169
- initializingChunkBlockedModel = null;
2284
+ var initializingHandler = null;
2170
2285
  function initializeModelChunk(chunk) {
2171
- var prevChunk = initializingChunk,
2172
- prevBlocked = initializingChunkBlockedModel;
2173
- initializingChunk = chunk;
2174
- initializingChunkBlockedModel = null;
2175
- var rootReference = -1 === chunk.reason ? void 0 : chunk.reason.toString(16),
2176
- resolvedModel = chunk.value;
2177
- chunk.status = "cyclic";
2286
+ var prevHandler = initializingHandler;
2287
+ initializingHandler = null;
2288
+ var _chunk$reason = chunk.reason,
2289
+ response = _chunk$reason[RESPONSE_SYMBOL];
2290
+ _chunk$reason = _chunk$reason.id;
2291
+ _chunk$reason = -1 === _chunk$reason ? void 0 : _chunk$reason.toString(16);
2292
+ var resolvedModel = chunk.value;
2293
+ chunk.status = "blocked";
2178
2294
  chunk.value = null;
2179
2295
  chunk.reason = null;
2180
2296
  try {
2181
2297
  var rawModel = JSON.parse(resolvedModel),
2182
2298
  value = reviveModel(
2183
- chunk._response,
2299
+ response,
2184
2300
  { "": rawModel },
2185
2301
  "",
2186
2302
  rawModel,
2187
- rootReference
2188
- );
2189
- if (
2190
- null !== initializingChunkBlockedModel &&
2191
- 0 < initializingChunkBlockedModel.deps
2192
- )
2193
- (initializingChunkBlockedModel.value = value), (chunk.status = "blocked");
2194
- else {
2195
- var resolveListeners = chunk.value;
2196
- chunk.status = "fulfilled";
2197
- chunk.value = value;
2198
- null !== resolveListeners && wakeChunk(resolveListeners, value);
2303
+ _chunk$reason
2304
+ ),
2305
+ resolveListeners = chunk.value;
2306
+ if (null !== resolveListeners)
2307
+ for (
2308
+ chunk.value = null, chunk.reason = null, rawModel = 0;
2309
+ rawModel < resolveListeners.length;
2310
+ rawModel++
2311
+ ) {
2312
+ var listener = resolveListeners[rawModel];
2313
+ "function" === typeof listener
2314
+ ? listener(value)
2315
+ : fulfillReference(response, listener, value);
2316
+ }
2317
+ if (null !== initializingHandler) {
2318
+ if (initializingHandler.errored) throw initializingHandler.reason;
2319
+ if (0 < initializingHandler.deps) {
2320
+ initializingHandler.value = value;
2321
+ initializingHandler.chunk = chunk;
2322
+ return;
2323
+ }
2199
2324
  }
2325
+ chunk.status = "fulfilled";
2326
+ chunk.value = value;
2327
+ chunk.reason = null;
2200
2328
  } catch (error) {
2201
2329
  (chunk.status = "rejected"), (chunk.reason = error);
2202
2330
  } finally {
2203
- (initializingChunk = prevChunk),
2204
- (initializingChunkBlockedModel = prevBlocked);
2331
+ initializingHandler = prevHandler;
2205
2332
  }
2206
2333
  }
2207
2334
  function reportGlobalError(response, error) {
2208
2335
  response._chunks.forEach(function (chunk) {
2209
- "pending" === chunk.status && triggerErrorOnChunk(chunk, error);
2336
+ "pending" === chunk.status
2337
+ ? triggerErrorOnChunk(response, chunk, error)
2338
+ : "fulfilled" === chunk.status &&
2339
+ null !== chunk.reason &&
2340
+ chunk.reason.error(error);
2210
2341
  });
2211
2342
  }
2212
2343
  function getChunk(response, id) {
@@ -2215,46 +2346,56 @@ function getChunk(response, id) {
2215
2346
  chunk ||
2216
2347
  ((chunk = response._formData.get(response._prefix + id)),
2217
2348
  (chunk =
2218
- null != chunk
2219
- ? new Chunk("resolved_model", chunk, id, response)
2220
- : createPendingChunk(response)),
2349
+ "string" === typeof chunk
2350
+ ? createResolvedModelChunk(response, chunk, id)
2351
+ : new ReactPromise("pending", null, null)),
2221
2352
  chunks.set(id, chunk));
2222
2353
  return chunk;
2223
2354
  }
2224
- function createModelResolver(
2225
- chunk,
2226
- parentObject,
2227
- key,
2228
- cyclic,
2229
- response,
2230
- map,
2231
- path
2232
- ) {
2233
- if (initializingChunkBlockedModel) {
2234
- var blocked = initializingChunkBlockedModel;
2235
- cyclic || blocked.deps++;
2236
- } else
2237
- blocked = initializingChunkBlockedModel = {
2238
- deps: cyclic ? 0 : 1,
2239
- value: null
2240
- };
2241
- return function (value) {
2242
- for (var i = 1; i < path.length; i++) value = value[path[i]];
2243
- parentObject[key] = map(response, value);
2244
- "" === key && null === blocked.value && (blocked.value = parentObject[key]);
2245
- blocked.deps--;
2246
- 0 === blocked.deps &&
2247
- "blocked" === chunk.status &&
2248
- ((value = chunk.value),
2249
- (chunk.status = "fulfilled"),
2250
- (chunk.value = blocked.value),
2251
- null !== value && wakeChunk(value, blocked.value));
2252
- };
2253
- }
2254
- function createModelReject(chunk) {
2255
- return function (error) {
2256
- return triggerErrorOnChunk(chunk, error);
2257
- };
2355
+ function fulfillReference(response, reference, value) {
2356
+ var handler = reference.handler,
2357
+ parentObject = reference.parentObject,
2358
+ key = reference.key,
2359
+ map = reference.map,
2360
+ path = reference.path;
2361
+ try {
2362
+ for (var i = 1; i < path.length; i++) {
2363
+ var name = path[i];
2364
+ if (
2365
+ "object" !== typeof value ||
2366
+ !hasOwnProperty.call(value, name) ||
2367
+ value instanceof Promise
2368
+ )
2369
+ throw Error("Invalid reference.");
2370
+ value = value[name];
2371
+ }
2372
+ var mappedValue = map(response, value, parentObject, key);
2373
+ parentObject[key] = mappedValue;
2374
+ "" === key && null === handler.value && (handler.value = mappedValue);
2375
+ } catch (error) {
2376
+ rejectReference(response, reference.handler, error);
2377
+ return;
2378
+ }
2379
+ handler.deps--;
2380
+ 0 === handler.deps &&
2381
+ ((reference = handler.chunk),
2382
+ null !== reference &&
2383
+ "blocked" === reference.status &&
2384
+ ((value = reference.value),
2385
+ (reference.status = "fulfilled"),
2386
+ (reference.value = handler.value),
2387
+ (reference.reason = handler.reason),
2388
+ null !== value && wakeChunk(response, value, handler.value)));
2389
+ }
2390
+ function rejectReference(response, handler, error) {
2391
+ handler.errored ||
2392
+ ((handler.errored = !0),
2393
+ (handler.value = null),
2394
+ (handler.reason = error),
2395
+ (handler = handler.chunk),
2396
+ null !== handler &&
2397
+ "blocked" === handler.status &&
2398
+ triggerErrorOnChunk(response, handler, error));
2258
2399
  }
2259
2400
  function getOutlinedModel(response, reference, parentObject, key, map) {
2260
2401
  reference = reference.split(":");
@@ -2266,29 +2407,55 @@ function getOutlinedModel(response, reference, parentObject, key, map) {
2266
2407
  }
2267
2408
  switch (id.status) {
2268
2409
  case "fulfilled":
2269
- parentObject = id.value;
2270
- for (key = 1; key < reference.length; key++)
2271
- parentObject = parentObject[reference[key]];
2272
- return map(response, parentObject);
2410
+ id = id.value;
2411
+ for (var i = 1; i < reference.length; i++) {
2412
+ var name = reference[i];
2413
+ if (
2414
+ "object" !== typeof id ||
2415
+ !hasOwnProperty.call(id, name) ||
2416
+ id instanceof Promise
2417
+ )
2418
+ throw Error("Invalid reference.");
2419
+ id = id[name];
2420
+ }
2421
+ return map(response, id, parentObject, key);
2273
2422
  case "pending":
2274
2423
  case "blocked":
2275
- case "cyclic":
2276
- var parentChunk = initializingChunk;
2277
- id.then(
2278
- createModelResolver(
2279
- parentChunk,
2280
- parentObject,
2281
- key,
2282
- "cyclic" === id.status,
2283
- response,
2284
- map,
2285
- reference
2286
- ),
2287
- createModelReject(parentChunk)
2424
+ return (
2425
+ initializingHandler
2426
+ ? ((response = initializingHandler), response.deps++)
2427
+ : (response = initializingHandler =
2428
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 }),
2429
+ (parentObject = {
2430
+ handler: response,
2431
+ parentObject: parentObject,
2432
+ key: key,
2433
+ map: map,
2434
+ path: reference
2435
+ }),
2436
+ null === id.value
2437
+ ? (id.value = [parentObject])
2438
+ : id.value.push(parentObject),
2439
+ null === id.reason
2440
+ ? (id.reason = [parentObject])
2441
+ : id.reason.push(parentObject),
2442
+ null
2288
2443
  );
2289
- return null;
2290
2444
  default:
2291
- throw id.reason;
2445
+ return (
2446
+ initializingHandler
2447
+ ? ((initializingHandler.errored = !0),
2448
+ (initializingHandler.value = null),
2449
+ (initializingHandler.reason = id.reason))
2450
+ : (initializingHandler = {
2451
+ chunk: null,
2452
+ value: null,
2453
+ reason: id.reason,
2454
+ deps: 0,
2455
+ errored: !0
2456
+ }),
2457
+ null
2458
+ );
2292
2459
  }
2293
2460
  }
2294
2461
  function createMap(response, model) {
@@ -2300,8 +2467,8 @@ function createSet(response, model) {
2300
2467
  function extractIterator(response, model) {
2301
2468
  return model[Symbol.iterator]();
2302
2469
  }
2303
- function createModel(response, model) {
2304
- return model;
2470
+ function createModel(response, model, parentObject, key) {
2471
+ return "then" === key && "function" === typeof model ? null : model;
2305
2472
  }
2306
2473
  function parseTypedArray(
2307
2474
  response,
@@ -2312,42 +2479,72 @@ function parseTypedArray(
2312
2479
  parentKey
2313
2480
  ) {
2314
2481
  reference = parseInt(reference.slice(2), 16);
2315
- reference = response._formData.get(response._prefix + reference);
2316
- reference =
2317
- constructor === ArrayBuffer
2318
- ? reference.arrayBuffer()
2319
- : reference.arrayBuffer().then(function (buffer) {
2320
- return new constructor(buffer);
2321
- });
2322
- bytesPerElement = initializingChunk;
2482
+ bytesPerElement = response._prefix + reference;
2483
+ if (response._chunks.has(reference))
2484
+ throw Error("Already initialized typed array.");
2485
+ reference = response._formData.get(bytesPerElement).arrayBuffer();
2486
+ if (initializingHandler) {
2487
+ var handler = initializingHandler;
2488
+ handler.deps++;
2489
+ } else
2490
+ handler = initializingHandler = {
2491
+ chunk: null,
2492
+ value: null,
2493
+ reason: null,
2494
+ deps: 1,
2495
+ errored: !1
2496
+ };
2323
2497
  reference.then(
2324
- createModelResolver(
2325
- bytesPerElement,
2326
- parentObject,
2327
- parentKey,
2328
- !1,
2329
- response,
2330
- createModel,
2331
- []
2332
- ),
2333
- createModelReject(bytesPerElement)
2498
+ function (buffer) {
2499
+ buffer = constructor === ArrayBuffer ? buffer : new constructor(buffer);
2500
+ parentObject[parentKey] = buffer;
2501
+ "" === parentKey && null === handler.value && (handler.value = buffer);
2502
+ handler.deps--;
2503
+ if (
2504
+ 0 === handler.deps &&
2505
+ ((buffer = handler.chunk),
2506
+ null !== buffer && "blocked" === buffer.status)
2507
+ ) {
2508
+ var resolveListeners = buffer.value;
2509
+ buffer.status = "fulfilled";
2510
+ buffer.value = handler.value;
2511
+ buffer.reason = null;
2512
+ null !== resolveListeners &&
2513
+ wakeChunk(response, resolveListeners, handler.value);
2514
+ }
2515
+ },
2516
+ function (error) {
2517
+ if (!handler.errored) {
2518
+ handler.errored = !0;
2519
+ handler.value = null;
2520
+ handler.reason = error;
2521
+ var chunk = handler.chunk;
2522
+ null !== chunk &&
2523
+ "blocked" === chunk.status &&
2524
+ triggerErrorOnChunk(response, chunk, error);
2525
+ }
2526
+ }
2334
2527
  );
2335
2528
  return null;
2336
2529
  }
2337
2530
  function resolveStream(response, id, stream, controller) {
2338
2531
  var chunks = response._chunks;
2339
- stream = new Chunk("fulfilled", stream, controller, response);
2532
+ stream = new ReactPromise("fulfilled", stream, controller);
2340
2533
  chunks.set(id, stream);
2341
2534
  response = response._formData.getAll(response._prefix + id);
2342
2535
  for (id = 0; id < response.length; id++)
2343
2536
  (chunks = response[id]),
2344
- "C" === chunks[0]
2345
- ? controller.close("C" === chunks ? '"$undefined"' : chunks.slice(1))
2346
- : controller.enqueueModel(chunks);
2537
+ "string" === typeof chunks &&
2538
+ ("C" === chunks[0]
2539
+ ? controller.close("C" === chunks ? '"$undefined"' : chunks.slice(1))
2540
+ : controller.enqueueModel(chunks));
2347
2541
  }
2348
2542
  function parseReadableStream(response, reference, type) {
2349
2543
  reference = parseInt(reference.slice(2), 16);
2350
- var controller = null;
2544
+ if (response._chunks.has(reference))
2545
+ throw Error("Already initialized stream.");
2546
+ var controller = null,
2547
+ closed = !1;
2351
2548
  type = new ReadableStream({
2352
2549
  type: type,
2353
2550
  start: function (c) {
@@ -2358,7 +2555,7 @@ function parseReadableStream(response, reference, type) {
2358
2555
  resolveStream(response, reference, type, {
2359
2556
  enqueueModel: function (json) {
2360
2557
  if (null === previousBlockedChunk) {
2361
- var chunk = new Chunk("resolved_model", json, -1, response);
2558
+ var chunk = createResolvedModelChunk(response, json, -1);
2362
2559
  initializeModelChunk(chunk);
2363
2560
  "fulfilled" === chunk.status
2364
2561
  ? controller.enqueue(chunk.value)
@@ -2373,8 +2570,8 @@ function parseReadableStream(response, reference, type) {
2373
2570
  (previousBlockedChunk = chunk));
2374
2571
  } else {
2375
2572
  chunk = previousBlockedChunk;
2376
- var chunk$27 = createPendingChunk(response);
2377
- chunk$27.then(
2573
+ var chunk$31 = new ReactPromise("pending", null, null);
2574
+ chunk$31.then(
2378
2575
  function (v) {
2379
2576
  return controller.enqueue(v);
2380
2577
  },
@@ -2382,32 +2579,35 @@ function parseReadableStream(response, reference, type) {
2382
2579
  return controller.error(e);
2383
2580
  }
2384
2581
  );
2385
- previousBlockedChunk = chunk$27;
2582
+ previousBlockedChunk = chunk$31;
2386
2583
  chunk.then(function () {
2387
- previousBlockedChunk === chunk$27 && (previousBlockedChunk = null);
2388
- resolveModelChunk(chunk$27, json, -1);
2584
+ previousBlockedChunk === chunk$31 && (previousBlockedChunk = null);
2585
+ resolveModelChunk(response, chunk$31, json, -1);
2389
2586
  });
2390
2587
  }
2391
2588
  },
2392
2589
  close: function () {
2393
- if (null === previousBlockedChunk) controller.close();
2394
- else {
2395
- var blockedChunk = previousBlockedChunk;
2396
- previousBlockedChunk = null;
2397
- blockedChunk.then(function () {
2398
- return controller.close();
2399
- });
2400
- }
2590
+ if (!closed)
2591
+ if (((closed = !0), null === previousBlockedChunk)) controller.close();
2592
+ else {
2593
+ var blockedChunk = previousBlockedChunk;
2594
+ previousBlockedChunk = null;
2595
+ blockedChunk.then(function () {
2596
+ return controller.close();
2597
+ });
2598
+ }
2401
2599
  },
2402
2600
  error: function (error) {
2403
- if (null === previousBlockedChunk) controller.error(error);
2404
- else {
2405
- var blockedChunk = previousBlockedChunk;
2406
- previousBlockedChunk = null;
2407
- blockedChunk.then(function () {
2408
- return controller.error(error);
2409
- });
2410
- }
2601
+ if (!closed)
2602
+ if (((closed = !0), null === previousBlockedChunk))
2603
+ controller.error(error);
2604
+ else {
2605
+ var blockedChunk = previousBlockedChunk;
2606
+ previousBlockedChunk = null;
2607
+ blockedChunk.then(function () {
2608
+ return controller.error(error);
2609
+ });
2610
+ }
2411
2611
  }
2412
2612
  });
2413
2613
  return type;
@@ -2422,12 +2622,14 @@ function createIterator(next) {
2422
2622
  }
2423
2623
  function parseAsyncIterable(response, reference, iterator) {
2424
2624
  reference = parseInt(reference.slice(2), 16);
2625
+ if (response._chunks.has(reference))
2626
+ throw Error("Already initialized stream.");
2425
2627
  var buffer = [],
2426
2628
  closed = !1,
2427
2629
  nextWriteIndex = 0,
2428
- $jscomp$compprop2 = {};
2429
- $jscomp$compprop2 =
2430
- (($jscomp$compprop2[ASYNC_ITERATOR] = function () {
2630
+ $jscomp$compprop5 = {};
2631
+ $jscomp$compprop5 =
2632
+ (($jscomp$compprop5[ASYNC_ITERATOR] = function () {
2431
2633
  var nextReadIndex = 0;
2432
2634
  return createIterator(function (arg) {
2433
2635
  if (void 0 !== arg)
@@ -2436,19 +2638,18 @@ function parseAsyncIterable(response, reference, iterator) {
2436
2638
  );
2437
2639
  if (nextReadIndex === buffer.length) {
2438
2640
  if (closed)
2439
- return new Chunk(
2641
+ return new ReactPromise(
2440
2642
  "fulfilled",
2441
2643
  { done: !0, value: void 0 },
2442
- null,
2443
- response
2644
+ null
2444
2645
  );
2445
- buffer[nextReadIndex] = createPendingChunk(response);
2646
+ buffer[nextReadIndex] = new ReactPromise("pending", null, null);
2446
2647
  }
2447
2648
  return buffer[nextReadIndex++];
2448
2649
  });
2449
2650
  }),
2450
- $jscomp$compprop2);
2451
- iterator = iterator ? $jscomp$compprop2[ASYNC_ITERATOR]() : $jscomp$compprop2;
2651
+ $jscomp$compprop5);
2652
+ iterator = iterator ? $jscomp$compprop5[ASYNC_ITERATOR]() : $jscomp$compprop5;
2452
2653
  resolveStream(response, reference, iterator, {
2453
2654
  enqueueModel: function (value) {
2454
2655
  nextWriteIndex === buffer.length
@@ -2457,34 +2658,55 @@ function parseAsyncIterable(response, reference, iterator) {
2457
2658
  value,
2458
2659
  !1
2459
2660
  ))
2460
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !1);
2661
+ : resolveIteratorResultChunk(
2662
+ response,
2663
+ buffer[nextWriteIndex],
2664
+ value,
2665
+ !1
2666
+ );
2461
2667
  nextWriteIndex++;
2462
2668
  },
2463
2669
  close: function (value) {
2464
- closed = !0;
2465
- nextWriteIndex === buffer.length
2466
- ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
2670
+ if (!closed)
2671
+ for (
2672
+ closed = !0,
2673
+ nextWriteIndex === buffer.length
2674
+ ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
2675
+ response,
2676
+ value,
2677
+ !0
2678
+ ))
2679
+ : resolveIteratorResultChunk(
2680
+ response,
2681
+ buffer[nextWriteIndex],
2682
+ value,
2683
+ !0
2684
+ ),
2685
+ nextWriteIndex++;
2686
+ nextWriteIndex < buffer.length;
2687
+
2688
+ )
2689
+ resolveIteratorResultChunk(
2467
2690
  response,
2468
- value,
2691
+ buffer[nextWriteIndex++],
2692
+ '"$undefined"',
2469
2693
  !0
2470
- ))
2471
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !0);
2472
- for (nextWriteIndex++; nextWriteIndex < buffer.length; )
2473
- resolveIteratorResultChunk(
2474
- buffer[nextWriteIndex++],
2475
- '"$undefined"',
2476
- !0
2477
- );
2694
+ );
2478
2695
  },
2479
2696
  error: function (error) {
2480
- closed = !0;
2481
- for (
2482
- nextWriteIndex === buffer.length &&
2483
- (buffer[nextWriteIndex] = createPendingChunk(response));
2484
- nextWriteIndex < buffer.length;
2697
+ if (!closed)
2698
+ for (
2699
+ closed = !0,
2700
+ nextWriteIndex === buffer.length &&
2701
+ (buffer[nextWriteIndex] = new ReactPromise(
2702
+ "pending",
2703
+ null,
2704
+ null
2705
+ ));
2706
+ nextWriteIndex < buffer.length;
2485
2707
 
2486
- )
2487
- triggerErrorOnChunk(buffer[nextWriteIndex++], error);
2708
+ )
2709
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
2488
2710
  }
2489
2711
  });
2490
2712
  return iterator;
@@ -2496,18 +2718,10 @@ function parseModelString(response, obj, key, value, reference) {
2496
2718
  return value.slice(1);
2497
2719
  case "@":
2498
2720
  return (obj = parseInt(value.slice(2), 16)), getChunk(response, obj);
2499
- case "F":
2721
+ case "h":
2500
2722
  return (
2501
2723
  (value = value.slice(2)),
2502
- (value = getOutlinedModel(response, value, obj, key, createModel)),
2503
- loadServerReference$1(
2504
- response,
2505
- value.id,
2506
- value.bound,
2507
- initializingChunk,
2508
- obj,
2509
- key
2510
- )
2724
+ getOutlinedModel(response, value, obj, key, loadServerReference$1)
2511
2725
  );
2512
2726
  case "T":
2513
2727
  if (void 0 === reference || void 0 === response._temporaryReferences)
@@ -2722,7 +2936,8 @@ exports.registerServerReference = function (reference, id, exportName) {
2722
2936
  configurable: !0
2723
2937
  },
2724
2938
  $$bound: { value: null, configurable: !0 },
2725
- bind: { value: bind, configurable: !0 }
2939
+ bind: { value: bind, configurable: !0 },
2940
+ toString: serverReferenceToString
2726
2941
  });
2727
2942
  };
2728
2943
  exports.renderToReadableStream = function (model, webpackMap, options) {