react-server-dom-parcel 19.1.2 → 19.1.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.
@@ -130,7 +130,14 @@ function bind() {
130
130
  }
131
131
  return newFn;
132
132
  }
133
- var previousDispatcher = ReactDOMSharedInternals.d;
133
+ var serverReferenceToString = {
134
+ value: function () {
135
+ return "function () { [omitted code] }";
136
+ },
137
+ configurable: !0,
138
+ writable: !0
139
+ },
140
+ previousDispatcher = ReactDOMSharedInternals.d;
134
141
  ReactDOMSharedInternals.d = {
135
142
  f: previousDispatcher.f,
136
143
  r: previousDispatcher.r,
@@ -1415,7 +1422,7 @@ function renderModelDestructive(
1415
1422
  (task = request.writtenServerReferences),
1416
1423
  (parentPropertyName = task.get(value)),
1417
1424
  void 0 !== parentPropertyName
1418
- ? (request = "$F" + parentPropertyName.toString(16))
1425
+ ? (request = "$h" + parentPropertyName.toString(16))
1419
1426
  : ((parentPropertyName = value.$$bound),
1420
1427
  (parentPropertyName =
1421
1428
  null === parentPropertyName
@@ -1426,7 +1433,7 @@ function renderModelDestructive(
1426
1433
  bound: parentPropertyName
1427
1434
  })),
1428
1435
  task.set(value, request),
1429
- (request = "$F" + request.toString(16))),
1436
+ (request = "$h" + request.toString(16))),
1430
1437
  request
1431
1438
  );
1432
1439
  if (
@@ -1796,7 +1803,23 @@ ReactPromise.prototype.then = function (resolve, reject) {
1796
1803
  }
1797
1804
  switch (this.status) {
1798
1805
  case "fulfilled":
1799
- "function" === typeof resolve && resolve(this.value);
1806
+ if ("function" === typeof resolve) {
1807
+ for (
1808
+ var inspectedValue = this.value;
1809
+ inspectedValue instanceof ReactPromise;
1810
+
1811
+ ) {
1812
+ if (inspectedValue === this) {
1813
+ "function" === typeof reject &&
1814
+ reject(Error("Cannot have cyclic thenables."));
1815
+ return;
1816
+ }
1817
+ if ("fulfilled" === inspectedValue.status)
1818
+ inspectedValue = inspectedValue.value;
1819
+ else break;
1820
+ }
1821
+ resolve(this.value);
1822
+ }
1800
1823
  break;
1801
1824
  case "pending":
1802
1825
  case "blocked":
@@ -1948,7 +1971,7 @@ function resolveIteratorResultChunk(response, chunk, value, done) {
1948
1971
  }
1949
1972
  function loadServerReference$1(response, metaData, parentObject, key) {
1950
1973
  var id = metaData.id;
1951
- if ("string" !== typeof id) return null;
1974
+ if ("string" !== typeof id || "then" === key) return null;
1952
1975
  var serverReference = resolveServerReference(response._bundlerConfig, id);
1953
1976
  id = metaData.bound;
1954
1977
  var promise = preloadModule$1(serverReference);
@@ -1986,6 +2009,7 @@ function loadServerReference$1(response, metaData, parentObject, key) {
1986
2009
  ((promiseValue = resolvedValue.value),
1987
2010
  (resolvedValue.status = "fulfilled"),
1988
2011
  (resolvedValue.value = handler.value),
2012
+ (resolvedValue.reason = null),
1989
2013
  null !== promiseValue &&
1990
2014
  wakeChunk(response, promiseValue, handler.value)));
1991
2015
  },
@@ -2077,6 +2101,7 @@ function initializeModelChunk(chunk) {
2077
2101
  }
2078
2102
  chunk.status = "fulfilled";
2079
2103
  chunk.value = value;
2104
+ chunk.reason = null;
2080
2105
  } catch (error) {
2081
2106
  (chunk.status = "rejected"), (chunk.reason = error);
2082
2107
  } finally {
@@ -2087,7 +2112,11 @@ function reportGlobalError(response, error) {
2087
2112
  response._closed = !0;
2088
2113
  response._closedReason = error;
2089
2114
  response._chunks.forEach(function (chunk) {
2090
- "pending" === chunk.status && triggerErrorOnChunk(response, chunk, error);
2115
+ "pending" === chunk.status
2116
+ ? triggerErrorOnChunk(response, chunk, error)
2117
+ : "fulfilled" === chunk.status &&
2118
+ null !== chunk.reason &&
2119
+ chunk.reason.error(error);
2091
2120
  });
2092
2121
  }
2093
2122
  function getChunk(response, id) {
@@ -2105,58 +2134,39 @@ function getChunk(response, id) {
2105
2134
  return chunk;
2106
2135
  }
2107
2136
  function fulfillReference(response, reference, value) {
2108
- for (
2109
- var handler = reference.handler,
2110
- parentObject = reference.parentObject,
2111
- key = reference.key,
2112
- map = reference.map,
2113
- path = reference.path,
2114
- i = 1;
2115
- i < path.length;
2116
- i++
2117
- ) {
2118
- for (; value instanceof ReactPromise; ) {
2119
- switch (value.status) {
2120
- case "resolved_model":
2121
- initializeModelChunk(value);
2122
- }
2123
- switch (value.status) {
2124
- case "fulfilled":
2125
- value = value.value;
2126
- continue;
2127
- case "blocked":
2128
- case "pending":
2129
- path.splice(0, i - 1);
2130
- null === value.value
2131
- ? (value.value = [reference])
2132
- : value.value.push(reference);
2133
- null === value.reason
2134
- ? (value.reason = [reference])
2135
- : value.reason.push(reference);
2136
- return;
2137
- default:
2138
- rejectReference(response, reference.handler, value.reason);
2139
- return;
2140
- }
2137
+ var handler = reference.handler,
2138
+ parentObject = reference.parentObject,
2139
+ key = reference.key,
2140
+ map = reference.map,
2141
+ path = reference.path;
2142
+ try {
2143
+ for (var i = 1; i < path.length; i++) {
2144
+ var name = path[i];
2145
+ if (
2146
+ "object" !== typeof value ||
2147
+ !hasOwnProperty.call(value, name) ||
2148
+ value instanceof Promise
2149
+ )
2150
+ throw Error("Invalid reference.");
2151
+ value = value[name];
2141
2152
  }
2142
- var name = path[i];
2143
- "object" === typeof value &&
2144
- hasOwnProperty.call(value, name) &&
2145
- (value = value[name]);
2153
+ var mappedValue = map(response, value, parentObject, key);
2154
+ parentObject[key] = mappedValue;
2155
+ "" === key && null === handler.value && (handler.value = mappedValue);
2156
+ } catch (error) {
2157
+ rejectReference(response, reference.handler, error);
2158
+ return;
2146
2159
  }
2147
- reference = map(response, value, parentObject, key);
2148
- parentObject[key] = reference;
2149
- "" === key && null === handler.value && (handler.value = reference);
2150
2160
  handler.deps--;
2151
2161
  0 === handler.deps &&
2152
- ((parentObject = handler.chunk),
2153
- null !== parentObject &&
2154
- "blocked" === parentObject.status &&
2155
- ((key = parentObject.value),
2156
- (parentObject.status = "fulfilled"),
2157
- (parentObject.value = handler.value),
2158
- (parentObject.reason = handler.reason),
2159
- null !== key && wakeChunk(response, key, handler.value)));
2162
+ ((reference = handler.chunk),
2163
+ null !== reference &&
2164
+ "blocked" === reference.status &&
2165
+ ((value = reference.value),
2166
+ (reference.status = "fulfilled"),
2167
+ (reference.value = handler.value),
2168
+ (reference.reason = handler.reason),
2169
+ null !== value && wakeChunk(response, value, handler.value)));
2160
2170
  }
2161
2171
  function rejectReference(response, handler, error) {
2162
2172
  handler.errored ||
@@ -2168,33 +2178,6 @@ function rejectReference(response, handler, error) {
2168
2178
  "blocked" === handler.status &&
2169
2179
  triggerErrorOnChunk(response, handler, error));
2170
2180
  }
2171
- function waitForReference(
2172
- referencedChunk,
2173
- parentObject,
2174
- key,
2175
- response,
2176
- map,
2177
- path
2178
- ) {
2179
- initializingHandler
2180
- ? ((response = initializingHandler), response.deps++)
2181
- : (response = initializingHandler =
2182
- { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
2183
- parentObject = {
2184
- handler: response,
2185
- parentObject: parentObject,
2186
- key: key,
2187
- map: map,
2188
- path: path
2189
- };
2190
- null === referencedChunk.value
2191
- ? (referencedChunk.value = [parentObject])
2192
- : referencedChunk.value.push(parentObject);
2193
- null === referencedChunk.reason
2194
- ? (referencedChunk.reason = [parentObject])
2195
- : referencedChunk.reason.push(parentObject);
2196
- return null;
2197
- }
2198
2181
  function getOutlinedModel(response, reference, parentObject, key, map) {
2199
2182
  reference = reference.split(":");
2200
2183
  var id = parseInt(reference[0], 16);
@@ -2205,53 +2188,40 @@ function getOutlinedModel(response, reference, parentObject, key, map) {
2205
2188
  }
2206
2189
  switch (id.status) {
2207
2190
  case "fulfilled":
2208
- var value = id.value;
2209
- for (id = 1; id < reference.length; id++) {
2210
- for (; value instanceof ReactPromise; ) {
2211
- switch (value.status) {
2212
- case "resolved_model":
2213
- initializeModelChunk(value);
2214
- }
2215
- switch (value.status) {
2216
- case "fulfilled":
2217
- value = value.value;
2218
- break;
2219
- case "blocked":
2220
- case "pending":
2221
- return waitForReference(
2222
- value,
2223
- parentObject,
2224
- key,
2225
- response,
2226
- map,
2227
- reference.slice(id - 1)
2228
- );
2229
- default:
2230
- return (
2231
- initializingHandler
2232
- ? ((initializingHandler.errored = !0),
2233
- (initializingHandler.value = null),
2234
- (initializingHandler.reason = value.reason))
2235
- : (initializingHandler = {
2236
- chunk: null,
2237
- value: null,
2238
- reason: value.reason,
2239
- deps: 0,
2240
- errored: !0
2241
- }),
2242
- null
2243
- );
2244
- }
2245
- }
2246
- var name = reference[id];
2247
- "object" === typeof value &&
2248
- hasOwnProperty.call(value, name) &&
2249
- (value = value[name]);
2191
+ id = id.value;
2192
+ for (var i = 1; i < reference.length; i++) {
2193
+ var name = reference[i];
2194
+ if (
2195
+ "object" !== typeof id ||
2196
+ !hasOwnProperty.call(id, name) ||
2197
+ id instanceof Promise
2198
+ )
2199
+ throw Error("Invalid reference.");
2200
+ id = id[name];
2250
2201
  }
2251
- return map(response, value, parentObject, key);
2202
+ return map(response, id, parentObject, key);
2252
2203
  case "pending":
2253
2204
  case "blocked":
2254
- return waitForReference(id, parentObject, key, response, map, reference);
2205
+ return (
2206
+ initializingHandler
2207
+ ? ((response = initializingHandler), response.deps++)
2208
+ : (response = initializingHandler =
2209
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 }),
2210
+ (parentObject = {
2211
+ handler: response,
2212
+ parentObject: parentObject,
2213
+ key: key,
2214
+ map: map,
2215
+ path: reference
2216
+ }),
2217
+ null === id.value
2218
+ ? (id.value = [parentObject])
2219
+ : id.value.push(parentObject),
2220
+ null === id.reason
2221
+ ? (id.reason = [parentObject])
2222
+ : id.reason.push(parentObject),
2223
+ null
2224
+ );
2255
2225
  default:
2256
2226
  return (
2257
2227
  initializingHandler
@@ -2278,8 +2248,8 @@ function createSet(response, model) {
2278
2248
  function extractIterator(response, model) {
2279
2249
  return model[Symbol.iterator]();
2280
2250
  }
2281
- function createModel(response, model) {
2282
- return model;
2251
+ function createModel(response, model, parentObject, key) {
2252
+ return "then" === key && "function" === typeof model ? null : model;
2283
2253
  }
2284
2254
  function parseTypedArray(
2285
2255
  response,
@@ -2290,9 +2260,10 @@ function parseTypedArray(
2290
2260
  parentKey
2291
2261
  ) {
2292
2262
  reference = parseInt(reference.slice(2), 16);
2293
- reference = response._formData
2294
- .get(response._prefix + reference)
2295
- .arrayBuffer();
2263
+ bytesPerElement = response._prefix + reference;
2264
+ if (response._chunks.has(reference))
2265
+ throw Error("Already initialized typed array.");
2266
+ reference = response._formData.get(bytesPerElement).arrayBuffer();
2296
2267
  if (initializingHandler) {
2297
2268
  var handler = initializingHandler;
2298
2269
  handler.deps++;
@@ -2318,6 +2289,7 @@ function parseTypedArray(
2318
2289
  var resolveListeners = buffer.value;
2319
2290
  buffer.status = "fulfilled";
2320
2291
  buffer.value = handler.value;
2292
+ buffer.reason = null;
2321
2293
  null !== resolveListeners &&
2322
2294
  wakeChunk(response, resolveListeners, handler.value);
2323
2295
  }
@@ -2350,7 +2322,10 @@ function resolveStream(response, id, stream, controller) {
2350
2322
  }
2351
2323
  function parseReadableStream(response, reference, type) {
2352
2324
  reference = parseInt(reference.slice(2), 16);
2353
- var controller = null;
2325
+ if (response._chunks.has(reference))
2326
+ throw Error("Already initialized stream.");
2327
+ var controller = null,
2328
+ closed = !1;
2354
2329
  type = new ReadableStream({
2355
2330
  type: type,
2356
2331
  start: function (c) {
@@ -2393,24 +2368,27 @@ function parseReadableStream(response, reference, type) {
2393
2368
  }
2394
2369
  },
2395
2370
  close: function () {
2396
- if (null === previousBlockedChunk) controller.close();
2397
- else {
2398
- var blockedChunk = previousBlockedChunk;
2399
- previousBlockedChunk = null;
2400
- blockedChunk.then(function () {
2401
- return controller.close();
2402
- });
2403
- }
2371
+ if (!closed)
2372
+ if (((closed = !0), null === previousBlockedChunk)) controller.close();
2373
+ else {
2374
+ var blockedChunk = previousBlockedChunk;
2375
+ previousBlockedChunk = null;
2376
+ blockedChunk.then(function () {
2377
+ return controller.close();
2378
+ });
2379
+ }
2404
2380
  },
2405
2381
  error: function (error) {
2406
- if (null === previousBlockedChunk) controller.error(error);
2407
- else {
2408
- var blockedChunk = previousBlockedChunk;
2409
- previousBlockedChunk = null;
2410
- blockedChunk.then(function () {
2411
- return controller.error(error);
2412
- });
2413
- }
2382
+ if (!closed)
2383
+ if (((closed = !0), null === previousBlockedChunk))
2384
+ controller.error(error);
2385
+ else {
2386
+ var blockedChunk = previousBlockedChunk;
2387
+ previousBlockedChunk = null;
2388
+ blockedChunk.then(function () {
2389
+ return controller.error(error);
2390
+ });
2391
+ }
2414
2392
  }
2415
2393
  });
2416
2394
  return type;
@@ -2425,6 +2403,8 @@ function createIterator(next) {
2425
2403
  }
2426
2404
  function parseAsyncIterable(response, reference, iterator) {
2427
2405
  reference = parseInt(reference.slice(2), 16);
2406
+ if (response._chunks.has(reference))
2407
+ throw Error("Already initialized stream.");
2428
2408
  var buffer = [],
2429
2409
  closed = !1,
2430
2410
  nextWriteIndex = 0,
@@ -2468,36 +2448,46 @@ function parseAsyncIterable(response, reference, iterator) {
2468
2448
  nextWriteIndex++;
2469
2449
  },
2470
2450
  close: function (value) {
2471
- closed = !0;
2472
- nextWriteIndex === buffer.length
2473
- ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
2451
+ if (!closed)
2452
+ for (
2453
+ closed = !0,
2454
+ nextWriteIndex === buffer.length
2455
+ ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
2456
+ response,
2457
+ value,
2458
+ !0
2459
+ ))
2460
+ : resolveIteratorResultChunk(
2461
+ response,
2462
+ buffer[nextWriteIndex],
2463
+ value,
2464
+ !0
2465
+ ),
2466
+ nextWriteIndex++;
2467
+ nextWriteIndex < buffer.length;
2468
+
2469
+ )
2470
+ resolveIteratorResultChunk(
2474
2471
  response,
2475
- value,
2476
- !0
2477
- ))
2478
- : resolveIteratorResultChunk(
2479
- response,
2480
- buffer[nextWriteIndex],
2481
- value,
2472
+ buffer[nextWriteIndex++],
2473
+ '"$undefined"',
2482
2474
  !0
2483
2475
  );
2484
- for (nextWriteIndex++; nextWriteIndex < buffer.length; )
2485
- resolveIteratorResultChunk(
2486
- response,
2487
- buffer[nextWriteIndex++],
2488
- '"$undefined"',
2489
- !0
2490
- );
2491
2476
  },
2492
2477
  error: function (error) {
2493
- closed = !0;
2494
- for (
2495
- nextWriteIndex === buffer.length &&
2496
- (buffer[nextWriteIndex] = new ReactPromise("pending", null, null));
2497
- nextWriteIndex < buffer.length;
2478
+ if (!closed)
2479
+ for (
2480
+ closed = !0,
2481
+ nextWriteIndex === buffer.length &&
2482
+ (buffer[nextWriteIndex] = new ReactPromise(
2483
+ "pending",
2484
+ null,
2485
+ null
2486
+ ));
2487
+ nextWriteIndex < buffer.length;
2498
2488
 
2499
- )
2500
- triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
2489
+ )
2490
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
2501
2491
  }
2502
2492
  });
2503
2493
  return iterator;
@@ -2509,7 +2499,7 @@ function parseModelString(response, obj, key, value, reference) {
2509
2499
  return value.slice(1);
2510
2500
  case "@":
2511
2501
  return (obj = parseInt(value.slice(2), 16)), getChunk(response, obj);
2512
- case "F":
2502
+ case "h":
2513
2503
  return (
2514
2504
  (value = value.slice(2)),
2515
2505
  getOutlinedModel(response, value, obj, key, loadServerReference$1)
@@ -2777,7 +2767,8 @@ exports.registerServerReference = function (reference, id, exportName) {
2777
2767
  $$typeof: { value: SERVER_REFERENCE_TAG },
2778
2768
  $$id: { value: id + "#" + exportName, configurable: !0 },
2779
2769
  $$bound: { value: null, configurable: !0 },
2780
- bind: { value: bind, configurable: !0 }
2770
+ bind: { value: bind, configurable: !0 },
2771
+ toString: serverReferenceToString
2781
2772
  });
2782
2773
  };
2783
2774
  exports.renderToReadableStream = function (model, options) {