react-server-dom-webpack 19.2.0-canary-edac0dde-20250723 → 19.2.0-canary-19baee81-20250725

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.
@@ -273,6 +273,19 @@
273
273
  var owner = componentStorage.getStore();
274
274
  return owner ? owner : null;
275
275
  }
276
+ function resolvePromiseOrAwaitNode(unresolvedNode, endTime) {
277
+ unresolvedNode.tag = 3 === unresolvedNode.tag ? 1 : 2;
278
+ unresolvedNode.end = endTime;
279
+ return unresolvedNode;
280
+ }
281
+ function getAsyncSequenceFromPromise(promise) {
282
+ try {
283
+ var asyncId = getAsyncId.call(promise);
284
+ } catch (x) {}
285
+ if (void 0 === asyncId) return null;
286
+ promise = pendingOperations.get(asyncId);
287
+ return void 0 === promise ? null : promise;
288
+ }
276
289
  function collectStackTracePrivate(error, structuredStackTrace) {
277
290
  error = [];
278
291
  for (var i = framesToSkip; i < structuredStackTrace.length; i++) {
@@ -346,6 +359,18 @@
346
359
  error += "\n at " + structuredStackTrace[i].toString();
347
360
  return error;
348
361
  }
362
+ function parseStackTracePrivate(error, skipFrames) {
363
+ collectedStackTrace = null;
364
+ framesToSkip = skipFrames;
365
+ skipFrames = Error.prepareStackTrace;
366
+ Error.prepareStackTrace = collectStackTracePrivate;
367
+ try {
368
+ if ("" !== error.stack) return null;
369
+ } finally {
370
+ Error.prepareStackTrace = skipFrames;
371
+ }
372
+ return collectedStackTrace;
373
+ }
349
374
  function parseStackTrace(error, skipFrames) {
350
375
  var existing = stackTraceCache.get(error);
351
376
  if (void 0 !== existing) return existing;
@@ -413,7 +438,8 @@
413
438
  function trackUsedThenable(thenableState, thenable, index) {
414
439
  index = thenableState[index];
415
440
  void 0 === index
416
- ? thenableState.push(thenable)
441
+ ? (thenableState.push(thenable),
442
+ (thenableState._stacks || (thenableState._stacks = [])).push(Error()))
417
443
  : index !== thenable && (thenable.then(noop, noop), (thenable = index));
418
444
  switch (thenable.status) {
419
445
  case "fulfilled":
@@ -690,19 +716,38 @@
690
716
  !filename.includes("node_modules")
691
717
  );
692
718
  }
719
+ function devirtualizeURL(url) {
720
+ if (url.startsWith("about://React/")) {
721
+ var envIdx = url.indexOf("/", 14),
722
+ suffixIdx = url.lastIndexOf("?");
723
+ if (-1 < envIdx && -1 < suffixIdx)
724
+ return decodeURI(url.slice(envIdx + 1, suffixIdx));
725
+ }
726
+ return url;
727
+ }
728
+ function isPromiseCreationInternal(url, functionName) {
729
+ if ("node:internal/async_hooks" === url) return !0;
730
+ if ("" !== url) return !1;
731
+ switch (functionName) {
732
+ case "new Promise":
733
+ case "Function.withResolvers":
734
+ case "Function.reject":
735
+ case "Function.resolve":
736
+ case "Function.all":
737
+ case "Function.allSettled":
738
+ case "Function.race":
739
+ case "Function.try":
740
+ return !0;
741
+ default:
742
+ return !1;
743
+ }
744
+ }
693
745
  function filterStackTrace(request, stack) {
694
746
  request = request.filterStackFrame;
695
747
  for (var filteredStack = [], i = 0; i < stack.length; i++) {
696
748
  var callsite = stack[i],
697
- functionName = callsite[0];
698
- var url = callsite[1];
699
- if (url.startsWith("rsc://React/")) {
700
- var envIdx = url.indexOf("/", 12),
701
- suffixIdx = url.lastIndexOf("?");
702
- -1 < envIdx &&
703
- -1 < suffixIdx &&
704
- (url = decodeURI(url.slice(envIdx + 1, suffixIdx)));
705
- }
749
+ functionName = callsite[0],
750
+ url = devirtualizeURL(callsite[1]);
706
751
  request(url, functionName, callsite[2], callsite[3]) &&
707
752
  ((callsite = callsite.slice(0)),
708
753
  (callsite[1] = url),
@@ -710,6 +755,57 @@
710
755
  }
711
756
  return filteredStack;
712
757
  }
758
+ function hasUnfilteredFrame(request, stack) {
759
+ request = request.filterStackFrame;
760
+ for (var i = 0; i < stack.length; i++) {
761
+ var callsite = stack[i],
762
+ functionName = callsite[0],
763
+ url = devirtualizeURL(callsite[1]),
764
+ lineNumber = callsite[2],
765
+ columnNumber = callsite[3];
766
+ if (
767
+ !callsite[6] &&
768
+ request(url, functionName, lineNumber, columnNumber)
769
+ )
770
+ return !0;
771
+ }
772
+ return !1;
773
+ }
774
+ function isPromiseAwaitInternal(url, functionName) {
775
+ if ("node:internal/async_hooks" === url) return !0;
776
+ if ("" !== url) return !1;
777
+ switch (functionName) {
778
+ case "Promise.then":
779
+ case "Promise.catch":
780
+ case "Promise.finally":
781
+ case "Function.reject":
782
+ case "Function.resolve":
783
+ case "Function.all":
784
+ case "Function.allSettled":
785
+ case "Function.race":
786
+ case "Function.try":
787
+ return !0;
788
+ default:
789
+ return !1;
790
+ }
791
+ }
792
+ function isAwaitInUserspace(request, stack) {
793
+ for (
794
+ var firstFrame = 0;
795
+ stack.length > firstFrame &&
796
+ isPromiseAwaitInternal(stack[firstFrame][1], stack[firstFrame][0]);
797
+
798
+ )
799
+ firstFrame++;
800
+ if (stack.length > firstFrame) {
801
+ request = request.filterStackFrame;
802
+ stack = stack[firstFrame];
803
+ firstFrame = stack[0];
804
+ var url = devirtualizeURL(stack[1]);
805
+ return request(url, firstFrame, stack[2], stack[3]);
806
+ }
807
+ return !1;
808
+ }
713
809
  function patchConsole(consoleInst, methodName) {
714
810
  var descriptor = Object.getOwnPropertyDescriptor(consoleInst, methodName);
715
811
  if (
@@ -722,29 +818,13 @@
722
818
  var wrapperMethod = function () {
723
819
  var request = resolveRequest();
724
820
  if (("assert" !== methodName || !arguments[0]) && null !== request) {
725
- a: {
726
- var error = Error("react-stack-top-frame");
727
- collectedStackTrace = null;
728
- framesToSkip = 1;
729
- var previousPrepare = Error.prepareStackTrace;
730
- Error.prepareStackTrace = collectStackTracePrivate;
731
- try {
732
- if ("" !== error.stack) {
733
- var JSCompiler_inline_result = null;
734
- break a;
735
- }
736
- } finally {
737
- Error.prepareStackTrace = previousPrepare;
738
- }
739
- JSCompiler_inline_result = collectedStackTrace;
740
- }
741
- JSCompiler_inline_result = filterStackTrace(
821
+ var stack = filterStackTrace(
742
822
  request,
743
- JSCompiler_inline_result || []
823
+ parseStackTracePrivate(Error("react-stack-top-frame"), 1) || []
744
824
  );
745
825
  request.pendingDebugChunks++;
746
- error = resolveOwner();
747
- previousPrepare = Array.from(arguments);
826
+ var owner = resolveOwner(),
827
+ args = Array.from(arguments);
748
828
  a: {
749
829
  var env = 0;
750
830
  switch (methodName) {
@@ -757,9 +837,9 @@
757
837
  case "assert":
758
838
  env = 1;
759
839
  }
760
- var format = previousPrepare[env],
761
- style = previousPrepare[env + 1],
762
- badge = previousPrepare[env + 2];
840
+ var format = args[env],
841
+ style = args[env + 1],
842
+ badge = args[env + 2];
763
843
  "string" === typeof format &&
764
844
  format.startsWith("\u001b[0m\u001b[7m%c%s\u001b[0m%c") &&
765
845
  "background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px" ===
@@ -767,33 +847,28 @@
767
847
  "string" === typeof badge
768
848
  ? ((format = format.slice(18)),
769
849
  " " === format[0] && (format = format.slice(1)),
770
- previousPrepare.splice(env, 4, format),
850
+ args.splice(env, 4, format),
771
851
  (env = badge.slice(1, badge.length - 1)))
772
852
  : (env = null);
773
853
  }
774
854
  null === env && (env = (0, request.environmentName)());
775
- null != error && outlineComponentInfo(request, error);
776
- badge = [methodName, JSCompiler_inline_result, error, env];
777
- badge.push.apply(badge, previousPrepare);
778
- previousPrepare = serializeDebugModel(
855
+ null != owner && outlineComponentInfo(request, owner);
856
+ badge = [methodName, stack, owner, env];
857
+ badge.push.apply(badge, args);
858
+ args = serializeDebugModel(
779
859
  request,
780
- (null === request.deferredDebugObjects ? 500 : 10) +
781
- JSCompiler_inline_result.length,
860
+ (null === request.deferredDebugObjects ? 500 : 10) + stack.length,
782
861
  badge
783
862
  );
784
- "[" !== previousPrepare[0] &&
785
- (previousPrepare = serializeDebugModel(
786
- request,
787
- 10 + JSCompiler_inline_result.length,
788
- [
789
- methodName,
790
- JSCompiler_inline_result,
791
- error,
792
- env,
793
- "Unknown Value: React could not send it from the server."
794
- ]
795
- ));
796
- request.completedDebugChunks.push(":W" + previousPrepare + "\n");
863
+ "[" !== args[0] &&
864
+ (args = serializeDebugModel(request, 10 + stack.length, [
865
+ methodName,
866
+ stack,
867
+ owner,
868
+ env,
869
+ "Unknown Value: React could not send it from the server."
870
+ ]));
871
+ request.completedDebugChunks.push(":W" + args + "\n");
797
872
  }
798
873
  return originalMethod.apply(this, arguments);
799
874
  };
@@ -937,8 +1012,21 @@
937
1012
  this.deferredDebugObjects = keepDebugAlive
938
1013
  ? { retained: new Map(), existing: new Map() }
939
1014
  : null;
940
- type = createTask(this, model, null, !1, abortSet, 0, null, null, null);
941
- pingedTasks.push(type);
1015
+ type = this.timeOrigin = performance.now();
1016
+ emitTimeOriginChunk(this, type + performance.timeOrigin);
1017
+ this.abortTime = -0;
1018
+ model = createTask(
1019
+ this,
1020
+ model,
1021
+ null,
1022
+ !1,
1023
+ abortSet,
1024
+ type,
1025
+ null,
1026
+ null,
1027
+ null
1028
+ );
1029
+ pingedTasks.push(model);
942
1030
  }
943
1031
  function createRequest(
944
1032
  model,
@@ -1076,7 +1164,7 @@
1076
1164
  task.keyPath,
1077
1165
  task.implicitSlot,
1078
1166
  request.abortableTasks,
1079
- 0,
1167
+ task.time,
1080
1168
  task.debugOwner,
1081
1169
  task.debugStack,
1082
1170
  task.debugTask
@@ -1084,14 +1172,26 @@
1084
1172
  switch (thenable.status) {
1085
1173
  case "fulfilled":
1086
1174
  return (
1087
- forwardDebugInfoFromThenable(request, newTask, thenable),
1175
+ forwardDebugInfoFromThenable(
1176
+ request,
1177
+ newTask,
1178
+ thenable,
1179
+ null,
1180
+ null
1181
+ ),
1088
1182
  (newTask.model = thenable.value),
1089
1183
  pingTask(request, newTask),
1090
1184
  newTask.id
1091
1185
  );
1092
1186
  case "rejected":
1093
1187
  return (
1094
- forwardDebugInfoFromThenable(request, newTask, thenable),
1188
+ forwardDebugInfoFromThenable(
1189
+ request,
1190
+ newTask,
1191
+ thenable,
1192
+ null,
1193
+ null
1194
+ ),
1095
1195
  erroredTask(request, newTask, thenable.reason),
1096
1196
  newTask.id
1097
1197
  );
@@ -1126,7 +1226,9 @@
1126
1226
  },
1127
1227
  function (reason) {
1128
1228
  0 === newTask.status &&
1129
- (erroredTask(request, newTask, reason), enqueueFlush(request));
1229
+ ((newTask.timed = !0),
1230
+ erroredTask(request, newTask, reason),
1231
+ enqueueFlush(request));
1130
1232
  }
1131
1233
  );
1132
1234
  return newTask.id;
@@ -1190,7 +1292,7 @@
1190
1292
  task.keyPath,
1191
1293
  task.implicitSlot,
1192
1294
  request.abortableTasks,
1193
- 0,
1295
+ task.time,
1194
1296
  task.debugOwner,
1195
1297
  task.debugStack,
1196
1298
  task.debugTask
@@ -1270,7 +1372,7 @@
1270
1372
  task.keyPath,
1271
1373
  task.implicitSlot,
1272
1374
  request.abortableTasks,
1273
- 0,
1375
+ task.time,
1274
1376
  task.debugOwner,
1275
1377
  task.debugStack,
1276
1378
  task.debugTask
@@ -1299,11 +1401,11 @@
1299
1401
  switch (wakeable.status) {
1300
1402
  case "fulfilled":
1301
1403
  return (
1302
- forwardDebugInfoFromThenable(request, task, wakeable),
1404
+ forwardDebugInfoFromThenable(request, task, wakeable, null, null),
1303
1405
  wakeable.value
1304
1406
  );
1305
1407
  case "rejected":
1306
- forwardDebugInfoFromThenable(request, task, wakeable);
1408
+ forwardDebugInfoFromThenable(request, task, wakeable, null, null);
1307
1409
  break;
1308
1410
  default:
1309
1411
  "string" !== typeof wakeable.status &&
@@ -1443,6 +1545,7 @@
1443
1545
  componentDebugInfo.debugStack = task.debugStack;
1444
1546
  componentDebugInfo.debugTask = task.debugTask;
1445
1547
  outlineComponentInfo(request, componentDebugInfo);
1548
+ advanceTaskTime(request, task, performance.now());
1446
1549
  emitDebugChunk(request, componentDebugID, componentDebugInfo);
1447
1550
  task.environmentName = componentEnv;
1448
1551
  2 === validated &&
@@ -1482,14 +1585,17 @@
1482
1585
  validated = thenableState;
1483
1586
  if (null !== validated)
1484
1587
  for (
1485
- prevThenableState = 0;
1486
- prevThenableState < validated.length;
1487
- prevThenableState++
1588
+ prevThenableState = validated._stacks || (validated._stacks = []),
1589
+ componentDebugID = 0;
1590
+ componentDebugID < validated.length;
1591
+ componentDebugID++
1488
1592
  )
1489
1593
  forwardDebugInfoFromThenable(
1490
1594
  request,
1491
1595
  task,
1492
- validated[prevThenableState]
1596
+ validated[componentDebugID],
1597
+ componentDebugInfo,
1598
+ prevThenableState[componentDebugID]
1493
1599
  );
1494
1600
  props = processServerComponentReturnValue(
1495
1601
  request,
@@ -1598,7 +1704,7 @@
1598
1704
  task.keyPath,
1599
1705
  task.implicitSlot,
1600
1706
  request.abortableTasks,
1601
- 0,
1707
+ task.time,
1602
1708
  task.debugOwner,
1603
1709
  task.debugStack,
1604
1710
  task.debugTask
@@ -1613,7 +1719,7 @@
1613
1719
  task.keyPath,
1614
1720
  task.implicitSlot,
1615
1721
  request.abortableTasks,
1616
- 0,
1722
+ task.time,
1617
1723
  task.debugOwner,
1618
1724
  task.debugStack,
1619
1725
  task.debugTask
@@ -1747,7 +1853,154 @@
1747
1853
  task = task.implicitSlot && null !== key ? [request] : request;
1748
1854
  return task;
1749
1855
  }
1856
+ function visitAsyncNode(request, task, node, visited, cutOff) {
1857
+ if (visited.has(node)) return null;
1858
+ visited.add(node);
1859
+ var previousIONode = null;
1860
+ if (
1861
+ null !== node.previous &&
1862
+ node.end > request.timeOrigin &&
1863
+ ((previousIONode = visitAsyncNode(
1864
+ request,
1865
+ task,
1866
+ node.previous,
1867
+ visited,
1868
+ cutOff
1869
+ )),
1870
+ void 0 === previousIONode)
1871
+ )
1872
+ return;
1873
+ switch (node.tag) {
1874
+ case 0:
1875
+ return node;
1876
+ case 3:
1877
+ return previousIONode;
1878
+ case 1:
1879
+ if (node.end <= request.timeOrigin) return previousIONode;
1880
+ var awaited = node.awaited;
1881
+ if (null !== awaited) {
1882
+ cutOff = visitAsyncNode(request, task, awaited, visited, cutOff);
1883
+ if (void 0 === cutOff) break;
1884
+ null !== cutOff
1885
+ ? (previousIONode =
1886
+ 1 === cutOff.tag
1887
+ ? cutOff
1888
+ : null !== node.stack &&
1889
+ hasUnfilteredFrame(request, node.stack)
1890
+ ? node
1891
+ : cutOff)
1892
+ : request.status === ABORTING &&
1893
+ node.start < request.abortTime &&
1894
+ node.end > request.abortTime &&
1895
+ null !== node.stack &&
1896
+ hasUnfilteredFrame(request, node.stack) &&
1897
+ (previousIONode = node);
1898
+ }
1899
+ node = node.promise.deref();
1900
+ void 0 !== node &&
1901
+ ((node = node._debugInfo),
1902
+ null == node ||
1903
+ visited.has(node) ||
1904
+ (visited.add(node), forwardDebugInfo(request, task, node)));
1905
+ return previousIONode;
1906
+ case 4:
1907
+ return previousIONode;
1908
+ case 2:
1909
+ awaited = node.awaited;
1910
+ if (null !== awaited) {
1911
+ var _ioNode = visitAsyncNode(
1912
+ request,
1913
+ task,
1914
+ awaited,
1915
+ visited,
1916
+ cutOff
1917
+ );
1918
+ if (void 0 === _ioNode) break;
1919
+ if (null !== _ioNode) {
1920
+ var startTime = node.start,
1921
+ endTime = node.end;
1922
+ if (endTime <= request.timeOrigin) return null;
1923
+ startTime < cutOff
1924
+ ? ((previousIONode = _ioNode),
1925
+ null !== node.stack &&
1926
+ isAwaitInUserspace(request, node.stack) &&
1927
+ void 0 !==
1928
+ (null === awaited.promise
1929
+ ? void 0
1930
+ : awaited.promise.deref()) &&
1931
+ serializeIONode(request, _ioNode, awaited.promise))
1932
+ : null !== node.stack && isAwaitInUserspace(request, node.stack)
1933
+ ? (request.status === ABORTING &&
1934
+ startTime > request.abortTime) ||
1935
+ (serializeIONode(request, _ioNode, awaited.promise),
1936
+ (cutOff = (0, request.environmentName)()),
1937
+ advanceTaskTime(request, task, startTime),
1938
+ request.pendingChunks++,
1939
+ emitDebugChunk(request, task.id, {
1940
+ awaited: _ioNode,
1941
+ env: cutOff,
1942
+ owner: node.owner,
1943
+ stack:
1944
+ null === node.stack
1945
+ ? null
1946
+ : filterStackTrace(request, node.stack)
1947
+ }),
1948
+ markOperationEndTime(request, task, endTime),
1949
+ request.status === ABORTING && (previousIONode = void 0))
1950
+ : (previousIONode = _ioNode);
1951
+ }
1952
+ }
1953
+ node = node.promise.deref();
1954
+ void 0 !== node &&
1955
+ ((node = node._debugInfo),
1956
+ null == node ||
1957
+ visited.has(node) ||
1958
+ (visited.add(node), forwardDebugInfo(request, task, node)));
1959
+ return previousIONode;
1960
+ default:
1961
+ throw Error("Unknown AsyncSequence tag. This is a bug in React.");
1962
+ }
1963
+ }
1964
+ function emitAsyncSequence(
1965
+ request,
1966
+ task,
1967
+ node,
1968
+ alreadyForwardedDebugInfo,
1969
+ owner,
1970
+ stack
1971
+ ) {
1972
+ var visited = new Set();
1973
+ alreadyForwardedDebugInfo && visited.add(alreadyForwardedDebugInfo);
1974
+ node = visitAsyncNode(request, task, node, visited, task.time);
1975
+ void 0 !== node &&
1976
+ null !== node &&
1977
+ (serializeIONode(request, node, node.promise),
1978
+ request.pendingChunks++,
1979
+ (alreadyForwardedDebugInfo = (0, request.environmentName)()),
1980
+ (alreadyForwardedDebugInfo = {
1981
+ awaited: node,
1982
+ env: alreadyForwardedDebugInfo
1983
+ }),
1984
+ null === owner && null === stack
1985
+ ? (null !== task.debugOwner &&
1986
+ (alreadyForwardedDebugInfo.owner = task.debugOwner),
1987
+ null !== task.debugStack &&
1988
+ (alreadyForwardedDebugInfo.stack = filterStackTrace(
1989
+ request,
1990
+ parseStackTrace(task.debugStack, 1)
1991
+ )))
1992
+ : (null != owner && (alreadyForwardedDebugInfo.owner = owner),
1993
+ null != stack &&
1994
+ (alreadyForwardedDebugInfo.stack = filterStackTrace(
1995
+ request,
1996
+ parseStackTrace(stack, 1)
1997
+ ))),
1998
+ advanceTaskTime(request, task, task.time),
1999
+ emitDebugChunk(request, task.id, alreadyForwardedDebugInfo),
2000
+ markOperationEndTime(request, task, node.end));
2001
+ }
1750
2002
  function pingTask(request, task) {
2003
+ task.timed = !0;
1751
2004
  var pingedTasks = request.pingedTasks;
1752
2005
  pingedTasks.push(task);
1753
2006
  1 === pingedTasks.length &&
@@ -1772,14 +2025,14 @@
1772
2025
  debugTask
1773
2026
  ) {
1774
2027
  request.pendingChunks++;
1775
- lastTimestamp = request.nextChunkId++;
2028
+ var id = request.nextChunkId++;
1776
2029
  "object" !== typeof model ||
1777
2030
  null === model ||
1778
2031
  null !== keyPath ||
1779
2032
  implicitSlot ||
1780
- request.writtenObjects.set(model, serializeByValueID(lastTimestamp));
2033
+ request.writtenObjects.set(model, serializeByValueID(id));
1781
2034
  var task = {
1782
- id: lastTimestamp,
2035
+ id: id,
1783
2036
  status: 0,
1784
2037
  model: model,
1785
2038
  keyPath: keyPath,
@@ -1813,8 +2066,10 @@
1813
2066
  });
1814
2067
  return renderModel(request, task, parent, parentPropertyName, value);
1815
2068
  },
1816
- thenableState: null
2069
+ thenableState: null,
2070
+ timed: !1
1817
2071
  };
2072
+ task.time = lastTimestamp;
1818
2073
  task.environmentName = request.environmentName();
1819
2074
  task.debugOwner = debugOwner;
1820
2075
  task.debugStack = debugStack;
@@ -1933,7 +2188,7 @@
1933
2188
  null,
1934
2189
  !1,
1935
2190
  request.abortableTasks,
1936
- 0,
2191
+ performance.now(),
1937
2192
  null,
1938
2193
  null,
1939
2194
  null
@@ -2070,7 +2325,7 @@
2070
2325
  null,
2071
2326
  !1,
2072
2327
  request.abortableTasks,
2073
- 0,
2328
+ performance.now(),
2074
2329
  null,
2075
2330
  null,
2076
2331
  null
@@ -2115,7 +2370,7 @@
2115
2370
  task.keyPath,
2116
2371
  task.implicitSlot,
2117
2372
  request.abortableTasks,
2118
- 0,
2373
+ task.time,
2119
2374
  task.debugOwner,
2120
2375
  task.debugStack,
2121
2376
  task.debugTask
@@ -2604,6 +2859,105 @@
2604
2859
  request.writtenObjects.set(componentInfo, objectLimit);
2605
2860
  }
2606
2861
  }
2862
+ function emitIOInfoChunk(
2863
+ request,
2864
+ id,
2865
+ name,
2866
+ start,
2867
+ end,
2868
+ value,
2869
+ env,
2870
+ owner,
2871
+ stack
2872
+ ) {
2873
+ var objectLimit = 10;
2874
+ stack && (objectLimit += stack.length);
2875
+ name = {
2876
+ name: name,
2877
+ start: start - request.timeOrigin,
2878
+ end: end - request.timeOrigin
2879
+ };
2880
+ null != env && (name.env = env);
2881
+ null != stack && (name.stack = stack);
2882
+ null != owner && (name.owner = owner);
2883
+ void 0 !== value && (name.value = value);
2884
+ value = serializeDebugModel(request, objectLimit, name);
2885
+ id = id.toString(16) + ":J" + value + "\n";
2886
+ request.completedDebugChunks.push(id);
2887
+ }
2888
+ function serializeIONode(request, ioNode, promiseRef) {
2889
+ var existingRef = request.writtenDebugObjects.get(ioNode);
2890
+ if (void 0 !== existingRef) return existingRef;
2891
+ existingRef = null;
2892
+ var name = "";
2893
+ if (null !== ioNode.stack) {
2894
+ a: {
2895
+ existingRef = ioNode.stack;
2896
+ for (name = 0; name < existingRef.length; name++) {
2897
+ var callsite = existingRef[name];
2898
+ if (!isPromiseCreationInternal(callsite[1], callsite[0])) {
2899
+ name = 0 < name ? existingRef.slice(name) : existingRef;
2900
+ break a;
2901
+ }
2902
+ }
2903
+ name = [];
2904
+ }
2905
+ existingRef = filterStackTrace(request, name);
2906
+ a: {
2907
+ callsite = "";
2908
+ for (
2909
+ var filterStackFrame = request.filterStackFrame, i = 0;
2910
+ i < name.length;
2911
+ i++
2912
+ ) {
2913
+ var callsite$jscomp$0 = name[i],
2914
+ functionName = callsite$jscomp$0[0],
2915
+ url = devirtualizeURL(callsite$jscomp$0[1]);
2916
+ if (
2917
+ filterStackFrame(
2918
+ url,
2919
+ functionName,
2920
+ callsite$jscomp$0[2],
2921
+ callsite$jscomp$0[3]
2922
+ )
2923
+ ) {
2924
+ if ("" === callsite) {
2925
+ name = functionName;
2926
+ break a;
2927
+ }
2928
+ name = callsite;
2929
+ break a;
2930
+ } else callsite = functionName;
2931
+ }
2932
+ name = "";
2933
+ }
2934
+ name.startsWith("Window.")
2935
+ ? (name = name.slice(7))
2936
+ : name.startsWith("<anonymous>.") && (name = name.slice(7));
2937
+ }
2938
+ callsite = ioNode.owner;
2939
+ null != callsite && outlineComponentInfo(request, callsite);
2940
+ filterStackFrame = void 0;
2941
+ null !== promiseRef && (filterStackFrame = promiseRef.deref());
2942
+ promiseRef = (0, request.environmentName)();
2943
+ i = 3 === ioNode.tag ? request.abortTime : ioNode.end;
2944
+ request.pendingDebugChunks++;
2945
+ callsite$jscomp$0 = request.nextChunkId++;
2946
+ emitIOInfoChunk(
2947
+ request,
2948
+ callsite$jscomp$0,
2949
+ name,
2950
+ ioNode.start,
2951
+ i,
2952
+ filterStackFrame,
2953
+ promiseRef,
2954
+ callsite,
2955
+ existingRef
2956
+ );
2957
+ promiseRef = serializeByValueID(callsite$jscomp$0);
2958
+ request.writtenDebugObjects.set(ioNode, promiseRef);
2959
+ return promiseRef;
2960
+ }
2607
2961
  function emitTypedArrayChunk(request, id, tag, typedArray, debug) {
2608
2962
  debug ? request.pendingDebugChunks++ : request.pendingChunks++;
2609
2963
  typedArray = new Uint8Array(
@@ -2986,86 +3340,102 @@
2986
3340
  emitOutlinedDebugModelChunk(request, id, counter, model);
2987
3341
  return id;
2988
3342
  }
2989
- function forwardDebugInfo(request$jscomp$1, task, debugInfo) {
2990
- task = task.id;
2991
- for (var i = 0; i < debugInfo.length; i++) {
3343
+ function emitTimeOriginChunk(request, timeOrigin) {
3344
+ request.pendingDebugChunks++;
3345
+ request.completedDebugChunks.push(":N" + timeOrigin + "\n");
3346
+ }
3347
+ function forwardDebugInfo(request$jscomp$0, task, debugInfo) {
3348
+ for (var id = task.id, i = 0; i < debugInfo.length; i++) {
2992
3349
  var info = debugInfo[i];
2993
- if ("number" !== typeof info.time)
2994
- if ("string" === typeof info.name)
2995
- outlineComponentInfo(request$jscomp$1, info),
2996
- request$jscomp$1.pendingChunks++,
2997
- emitDebugChunk(request$jscomp$1, task, info);
2998
- else if (info.awaited) {
2999
- var ioInfo = info.awaited;
3000
- if (!(ioInfo.end <= request$jscomp$1.timeOrigin)) {
3001
- var request = request$jscomp$1,
3002
- ioInfo$jscomp$0 = ioInfo;
3003
- if (!request.writtenObjects.has(ioInfo$jscomp$0)) {
3004
- request.pendingDebugChunks++;
3005
- var id = request.nextChunkId++,
3006
- owner = ioInfo$jscomp$0.owner;
3007
- null != owner && outlineComponentInfo(request, owner);
3008
- var debugStack =
3009
- null == ioInfo$jscomp$0.stack &&
3010
- null != ioInfo$jscomp$0.debugStack
3011
- ? filterStackTrace(
3012
- request,
3013
- parseStackTrace(ioInfo$jscomp$0.debugStack, 1)
3014
- )
3015
- : ioInfo$jscomp$0.stack;
3016
- var request$jscomp$0 = request,
3017
- id$jscomp$0 = id,
3018
- value = ioInfo$jscomp$0.value,
3019
- env = ioInfo$jscomp$0.env,
3020
- objectLimit = 10;
3021
- debugStack && (objectLimit += debugStack.length);
3022
- var debugIOInfo = {
3023
- name: ioInfo$jscomp$0.name,
3024
- start: ioInfo$jscomp$0.start - request$jscomp$0.timeOrigin,
3025
- end: ioInfo$jscomp$0.end - request$jscomp$0.timeOrigin
3026
- };
3027
- null != env && (debugIOInfo.env = env);
3028
- null != debugStack && (debugIOInfo.stack = debugStack);
3029
- null != owner && (debugIOInfo.owner = owner);
3030
- void 0 !== value && (debugIOInfo.value = value);
3031
- value = serializeDebugModel(
3032
- request$jscomp$0,
3033
- objectLimit,
3034
- debugIOInfo
3035
- );
3036
- id$jscomp$0 = id$jscomp$0.toString(16) + ":J" + value + "\n";
3037
- request$jscomp$0.completedDebugChunks.push(id$jscomp$0);
3038
- request.writtenDebugObjects.set(
3039
- ioInfo$jscomp$0,
3040
- serializeByValueID(id)
3041
- );
3042
- }
3043
- request =
3044
- null == info.stack && null != info.debugStack
3350
+ if ("number" === typeof info.time)
3351
+ markOperationEndTime(request$jscomp$0, task, info.time);
3352
+ else if ("string" === typeof info.name)
3353
+ outlineComponentInfo(request$jscomp$0, info),
3354
+ request$jscomp$0.pendingChunks++,
3355
+ emitDebugChunk(request$jscomp$0, id, info);
3356
+ else if (info.awaited) {
3357
+ var ioInfo = info.awaited;
3358
+ if (!(ioInfo.end <= request$jscomp$0.timeOrigin)) {
3359
+ var request = request$jscomp$0,
3360
+ ioInfo$jscomp$0 = ioInfo;
3361
+ if (!request.writtenObjects.has(ioInfo$jscomp$0)) {
3362
+ request.pendingDebugChunks++;
3363
+ var id$jscomp$0 = request.nextChunkId++,
3364
+ owner = ioInfo$jscomp$0.owner;
3365
+ null != owner && outlineComponentInfo(request, owner);
3366
+ var debugStack =
3367
+ null == ioInfo$jscomp$0.stack &&
3368
+ null != ioInfo$jscomp$0.debugStack
3045
3369
  ? filterStackTrace(
3046
- request$jscomp$1,
3047
- parseStackTrace(info.debugStack, 1)
3370
+ request,
3371
+ parseStackTrace(ioInfo$jscomp$0.debugStack, 1)
3048
3372
  )
3049
- : info.stack;
3050
- ioInfo = { awaited: ioInfo };
3051
- null != info.env && (ioInfo.env = info.env);
3052
- null != info.owner && (ioInfo.owner = info.owner);
3053
- null != request && (ioInfo.stack = request);
3054
- request$jscomp$1.pendingChunks++;
3055
- emitDebugChunk(request$jscomp$1, task, ioInfo);
3373
+ : ioInfo$jscomp$0.stack;
3374
+ emitIOInfoChunk(
3375
+ request,
3376
+ id$jscomp$0,
3377
+ ioInfo$jscomp$0.name,
3378
+ ioInfo$jscomp$0.start,
3379
+ ioInfo$jscomp$0.end,
3380
+ ioInfo$jscomp$0.value,
3381
+ ioInfo$jscomp$0.env,
3382
+ owner,
3383
+ debugStack
3384
+ );
3385
+ request.writtenDebugObjects.set(
3386
+ ioInfo$jscomp$0,
3387
+ serializeByValueID(id$jscomp$0)
3388
+ );
3056
3389
  }
3057
- } else
3058
- request$jscomp$1.pendingChunks++,
3059
- emitDebugChunk(request$jscomp$1, task, info);
3390
+ debugStack =
3391
+ null == info.stack && null != info.debugStack
3392
+ ? filterStackTrace(
3393
+ request$jscomp$0,
3394
+ parseStackTrace(info.debugStack, 1)
3395
+ )
3396
+ : info.stack;
3397
+ ioInfo = { awaited: ioInfo };
3398
+ null != info.env && (ioInfo.env = info.env);
3399
+ null != info.owner && (ioInfo.owner = info.owner);
3400
+ null != debugStack && (ioInfo.stack = debugStack);
3401
+ request$jscomp$0.pendingChunks++;
3402
+ emitDebugChunk(request$jscomp$0, id, ioInfo);
3403
+ }
3404
+ } else
3405
+ request$jscomp$0.pendingChunks++,
3406
+ emitDebugChunk(request$jscomp$0, id, info);
3060
3407
  }
3061
3408
  }
3062
- function forwardDebugInfoFromThenable(request, task, thenable) {
3063
- (thenable = thenable._debugInfo) &&
3064
- forwardDebugInfo(request, task, thenable);
3409
+ function forwardDebugInfoFromThenable(
3410
+ request,
3411
+ task,
3412
+ thenable,
3413
+ owner,
3414
+ stack
3415
+ ) {
3416
+ var debugInfo;
3417
+ (debugInfo = thenable._debugInfo) &&
3418
+ forwardDebugInfo(request, task, debugInfo);
3419
+ thenable = getAsyncSequenceFromPromise(thenable);
3420
+ null !== thenable &&
3421
+ emitAsyncSequence(request, task, thenable, debugInfo, owner, stack);
3065
3422
  }
3066
3423
  function forwardDebugInfoFromCurrentContext(request, task, thenable) {
3067
3424
  (thenable = thenable._debugInfo) &&
3068
3425
  forwardDebugInfo(request, task, thenable);
3426
+ var sequence = pendingOperations.get(async_hooks.executionAsyncId());
3427
+ sequence = void 0 === sequence ? null : sequence;
3428
+ null !== sequence &&
3429
+ emitAsyncSequence(request, task, sequence, thenable, null, null);
3430
+ }
3431
+ function advanceTaskTime(request, task, timestamp) {
3432
+ timestamp > task.time && (task.time = timestamp);
3433
+ task.timed = !0;
3434
+ }
3435
+ function markOperationEndTime(request, task, timestamp) {
3436
+ !(request.status === ABORTING && timestamp > request.abortTime) &&
3437
+ timestamp > task.time &&
3438
+ (task.time = timestamp);
3069
3439
  }
3070
3440
  function emitChunk(request, task, value) {
3071
3441
  var id = task.id;
@@ -3118,6 +3488,7 @@
3118
3488
  request.completedRegularChunks.push(task));
3119
3489
  }
3120
3490
  function erroredTask(request, task, error) {
3491
+ task.timed && markOperationEndTime(request, task, performance.now());
3121
3492
  task.status = 4;
3122
3493
  var digest = logRecoverableError(request, error, task);
3123
3494
  emitErrorChunk(request, task.id, digest, error, !1);
@@ -3147,6 +3518,7 @@
3147
3518
  currentEnv !== task.environmentName &&
3148
3519
  (request.pendingChunks++,
3149
3520
  emitDebugChunk(request, task.id, { env: currentEnv }));
3521
+ task.timed && markOperationEndTime(request, task, performance.now());
3150
3522
  if ("object" === typeof resolvedModel && null !== resolvedModel)
3151
3523
  request.writtenObjects.set(
3152
3524
  resolvedModel,
@@ -3202,6 +3574,7 @@
3202
3574
  }
3203
3575
  }
3204
3576
  function performWork(request) {
3577
+ pendingOperations.delete(async_hooks.executionAsyncId());
3205
3578
  var prevDispatcher = ReactSharedInternalsServer.H;
3206
3579
  ReactSharedInternalsServer.H = HooksDispatcher;
3207
3580
  var prevRequest = currentRequest;
@@ -3226,10 +3599,37 @@
3226
3599
  function finishAbortedTask(task, request, errorId) {
3227
3600
  if (3 === task.status) {
3228
3601
  var model = task.model;
3229
- "object" === typeof model &&
3230
- null !== model &&
3231
- (model = model._debugInfo) &&
3232
- forwardDebugInfo(request, task, model);
3602
+ if ("object" === typeof model && null !== model) {
3603
+ var debugInfo;
3604
+ (debugInfo = model._debugInfo) &&
3605
+ forwardDebugInfo(request, task, debugInfo);
3606
+ var thenable = null;
3607
+ "function" === typeof model.then
3608
+ ? (thenable = model)
3609
+ : model.$$typeof === REACT_LAZY_TYPE &&
3610
+ ((model = model._payload),
3611
+ "function" === typeof model.then && (thenable = model));
3612
+ if (
3613
+ null !== thenable &&
3614
+ ((model = getAsyncSequenceFromPromise(thenable)), null !== model)
3615
+ ) {
3616
+ for (
3617
+ thenable = model;
3618
+ 4 === thenable.tag && null !== thenable.awaited;
3619
+
3620
+ )
3621
+ thenable = thenable.awaited;
3622
+ 3 === thenable.tag
3623
+ ? (serializeIONode(request, thenable, null),
3624
+ request.pendingChunks++,
3625
+ (debugInfo = (0, request.environmentName)()),
3626
+ (debugInfo = { awaited: thenable, env: debugInfo }),
3627
+ advanceTaskTime(request, task, task.time),
3628
+ emitDebugChunk(request, task.id, debugInfo))
3629
+ : emitAsyncSequence(request, task, model, debugInfo, null, null);
3630
+ }
3631
+ }
3632
+ task.timed && markOperationEndTime(request, task, request.abortTime);
3233
3633
  errorId = serializeByValueID(errorId);
3234
3634
  task = encodeReferenceChunk(request, task.id, errorId);
3235
3635
  request.completedErrorChunks.push(task);
@@ -3354,15 +3754,18 @@
3354
3754
  "This render completed successfully. All cacheSignals are now aborted to allow clean up of any unused resources."
3355
3755
  )
3356
3756
  ),
3357
- (request.status = CLOSED),
3358
3757
  null !== request.destination &&
3359
- (request.destination.end(), (request.destination = null)),
3758
+ ((request.status = CLOSED),
3759
+ request.destination.end(),
3760
+ (request.destination = null)),
3360
3761
  null !== request.debugDestination &&
3361
3762
  (request.debugDestination.end(),
3362
3763
  (request.debugDestination = null)))
3363
3764
  : null !== importsChunks &&
3364
3765
  null !== request.destination &&
3365
- (request.destination.end(), (request.destination = null)));
3766
+ ((request.status = CLOSED),
3767
+ request.destination.end(),
3768
+ (request.destination = null)));
3366
3769
  }
3367
3770
  function startWork(request) {
3368
3771
  request.flushScheduled = null !== request.destination;
@@ -3427,6 +3830,7 @@
3427
3830
  if (!(11 < request.status))
3428
3831
  try {
3429
3832
  request.status = ABORTING;
3833
+ request.abortTime = performance.now();
3430
3834
  request.cacheController.abort(reason);
3431
3835
  var abortableTasks = request.abortableTasks;
3432
3836
  if (0 < abortableTasks.size) {
@@ -4648,6 +5052,10 @@
4648
5052
  }
4649
5053
  };
4650
5054
  var currentOwner = null,
5055
+ getAsyncId = async_hooks.AsyncResource.prototype.asyncId,
5056
+ pendingOperations = new Map(),
5057
+ lastRanAwait = null,
5058
+ emptyStack = [],
4651
5059
  framesToSkip = 0,
4652
5060
  collectedStackTrace = null,
4653
5061
  identifierRegExp = /^[a-zA-Z_$][0-9a-zA-Z_$]*$/,
@@ -4848,6 +5256,171 @@
4848
5256
  CLIENT_REFERENCE_TAG = Symbol.for("react.client.reference"),
4849
5257
  hasOwnProperty = Object.prototype.hasOwnProperty,
4850
5258
  doNotLimit = new WeakSet();
5259
+ (function () {
5260
+ async_hooks
5261
+ .createHook({
5262
+ init: function (asyncId, type, triggerAsyncId, resource) {
5263
+ var trigger = pendingOperations.get(triggerAsyncId);
5264
+ if ("PROMISE" === type)
5265
+ if (
5266
+ ((type = async_hooks.executionAsyncId()),
5267
+ type !== triggerAsyncId)
5268
+ ) {
5269
+ if (void 0 === trigger) return;
5270
+ triggerAsyncId = null;
5271
+ if (
5272
+ null === trigger.stack ||
5273
+ (2 !== trigger.tag && 4 !== trigger.tag)
5274
+ ) {
5275
+ resource = new WeakRef(resource);
5276
+ var request = resolveRequest();
5277
+ null !== request &&
5278
+ ((triggerAsyncId = parseStackTracePrivate(Error(), 5)),
5279
+ null === triggerAsyncId ||
5280
+ isAwaitInUserspace(request, triggerAsyncId) ||
5281
+ (triggerAsyncId = null));
5282
+ } else
5283
+ (triggerAsyncId = emptyStack),
5284
+ (resource =
5285
+ void 0 !== resource._debugInfo
5286
+ ? new WeakRef(resource)
5287
+ : trigger.promise);
5288
+ type = pendingOperations.get(type);
5289
+ trigger = {
5290
+ tag: 4,
5291
+ owner: resolveOwner(),
5292
+ stack: triggerAsyncId,
5293
+ start: performance.now(),
5294
+ end: -1.1,
5295
+ promise: resource,
5296
+ awaited: trigger,
5297
+ previous: void 0 === type ? null : type
5298
+ };
5299
+ } else
5300
+ (type = resolveOwner()),
5301
+ (trigger = {
5302
+ tag: 3,
5303
+ owner: type,
5304
+ stack:
5305
+ null === type ? null : parseStackTracePrivate(Error(), 5),
5306
+ start: performance.now(),
5307
+ end: -1.1,
5308
+ promise: new WeakRef(resource),
5309
+ awaited: void 0 === trigger ? null : trigger,
5310
+ previous: null
5311
+ });
5312
+ else if (
5313
+ "Microtask" !== type &&
5314
+ "TickObject" !== type &&
5315
+ "Immediate" !== type
5316
+ )
5317
+ if (void 0 === trigger)
5318
+ (trigger = resolveOwner()),
5319
+ (trigger = {
5320
+ tag: 0,
5321
+ owner: trigger,
5322
+ stack:
5323
+ null === trigger
5324
+ ? parseStackTracePrivate(Error(), 3)
5325
+ : null,
5326
+ start: performance.now(),
5327
+ end: -1.1,
5328
+ promise: null,
5329
+ awaited: null,
5330
+ previous: null
5331
+ });
5332
+ else {
5333
+ if (2 === trigger.tag || 4 === trigger.tag)
5334
+ (resource = resolveOwner()),
5335
+ (trigger = {
5336
+ tag: 0,
5337
+ owner: resource,
5338
+ stack:
5339
+ null === resource
5340
+ ? parseStackTracePrivate(Error(), 3)
5341
+ : null,
5342
+ start: performance.now(),
5343
+ end: -1.1,
5344
+ promise: null,
5345
+ awaited: null,
5346
+ previous: trigger
5347
+ });
5348
+ }
5349
+ else if (void 0 === trigger) return;
5350
+ pendingOperations.set(asyncId, trigger);
5351
+ },
5352
+ before: function (asyncId) {
5353
+ asyncId = pendingOperations.get(asyncId);
5354
+ if (void 0 !== asyncId)
5355
+ switch (asyncId.tag) {
5356
+ case 0:
5357
+ lastRanAwait = null;
5358
+ asyncId.end = performance.now();
5359
+ break;
5360
+ case 4:
5361
+ lastRanAwait = resolvePromiseOrAwaitNode(
5362
+ asyncId,
5363
+ performance.now()
5364
+ );
5365
+ break;
5366
+ case 2:
5367
+ lastRanAwait = asyncId;
5368
+ break;
5369
+ case 3:
5370
+ resolvePromiseOrAwaitNode(
5371
+ asyncId,
5372
+ performance.now()
5373
+ ).previous = lastRanAwait;
5374
+ lastRanAwait = null;
5375
+ break;
5376
+ default:
5377
+ lastRanAwait = null;
5378
+ }
5379
+ },
5380
+ promiseResolve: function (asyncId) {
5381
+ var node = pendingOperations.get(asyncId);
5382
+ if (void 0 !== node) {
5383
+ switch (node.tag) {
5384
+ case 4:
5385
+ case 3:
5386
+ node = resolvePromiseOrAwaitNode(node, performance.now());
5387
+ break;
5388
+ case 2:
5389
+ case 1:
5390
+ break;
5391
+ default:
5392
+ throw Error(
5393
+ "A Promise should never be an IO_NODE. This is a bug in React."
5394
+ );
5395
+ }
5396
+ var currentAsyncId = async_hooks.executionAsyncId();
5397
+ asyncId !== currentAsyncId &&
5398
+ ((asyncId = pendingOperations.get(currentAsyncId)),
5399
+ 1 === node.tag
5400
+ ? (node.awaited = void 0 === asyncId ? null : asyncId)
5401
+ : void 0 !== asyncId &&
5402
+ ((currentAsyncId = {
5403
+ tag: 2,
5404
+ owner: node.owner,
5405
+ stack: node.stack,
5406
+ start: node.start,
5407
+ end: node.end,
5408
+ promise: node.promise,
5409
+ awaited: node.awaited,
5410
+ previous: node.previous
5411
+ }),
5412
+ (node.start = node.end),
5413
+ (node.end = performance.now()),
5414
+ (node.previous = currentAsyncId),
5415
+ (node.awaited = asyncId)));
5416
+ }
5417
+ },
5418
+ destroy: function (asyncId) {
5419
+ pendingOperations.delete(asyncId);
5420
+ }
5421
+ })
5422
+ .enable();
5423
+ })();
4851
5424
  "object" === typeof console &&
4852
5425
  null !== console &&
4853
5426
  (patchConsole(console, "assert"),
@@ -5025,12 +5598,12 @@
5025
5598
  "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."
5026
5599
  );
5027
5600
  pendingFiles++;
5028
- var JSCompiler_object_inline_chunks_227 = [];
5601
+ var JSCompiler_object_inline_chunks_238 = [];
5029
5602
  value.on("data", function (chunk) {
5030
- JSCompiler_object_inline_chunks_227.push(chunk);
5603
+ JSCompiler_object_inline_chunks_238.push(chunk);
5031
5604
  });
5032
5605
  value.on("end", function () {
5033
- var blob = new Blob(JSCompiler_object_inline_chunks_227, {
5606
+ var blob = new Blob(JSCompiler_object_inline_chunks_238, {
5034
5607
  type: mimeType
5035
5608
  });
5036
5609
  response._formData.append(name, blob, filename);