react-dom 19.1.0 → 19.2.4

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.
@@ -55,7 +55,6 @@ var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
55
55
  REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
56
56
  REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
57
57
  REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
58
- REACT_PROVIDER_TYPE = Symbol.for("react.provider"),
59
58
  REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
60
59
  REACT_CONTEXT_TYPE = Symbol.for("react.context"),
61
60
  REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
@@ -68,8 +67,15 @@ var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
68
67
  REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"),
69
68
  REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"),
70
69
  REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"),
71
- MAYBE_ITERATOR_SYMBOL = Symbol.iterator,
72
- isArrayImpl = Array.isArray;
70
+ MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
71
+ function getIteratorFn(maybeIterable) {
72
+ if (null === maybeIterable || "object" !== typeof maybeIterable) return null;
73
+ maybeIterable =
74
+ (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
75
+ maybeIterable["@@iterator"];
76
+ return "function" === typeof maybeIterable ? maybeIterable : null;
77
+ }
78
+ var isArrayImpl = Array.isArray;
73
79
  function murmurhash3_32_gc(key, seed) {
74
80
  var remainder = key.length & 3;
75
81
  var bytes = key.length - remainder;
@@ -191,6 +197,9 @@ function stringToChunk(content) {
191
197
  function stringToPrecomputedChunk(content) {
192
198
  return textEncoder.encode(content);
193
199
  }
200
+ function byteLengthOfChunk(chunk) {
201
+ return chunk.byteLength;
202
+ }
194
203
  function closeWithError(destination, error) {
195
204
  "function" === typeof destination.error
196
205
  ? destination.error(error)
@@ -370,16 +379,18 @@ ReactDOMSharedInternals.d = {
370
379
  S: preinitStyle,
371
380
  M: preinitModuleScript
372
381
  };
373
- var PRELOAD_NO_CREDS = [];
382
+ var PRELOAD_NO_CREDS = [],
383
+ currentlyFlushingRenderState = null;
374
384
  stringToPrecomputedChunk('"></template>');
375
- var startInlineScript = stringToPrecomputedChunk("<script>"),
385
+ var startInlineScript = stringToPrecomputedChunk("<script"),
376
386
  endInlineScript = stringToPrecomputedChunk("\x3c/script>"),
377
387
  startScriptSrc = stringToPrecomputedChunk('<script src="'),
378
388
  startModuleSrc = stringToPrecomputedChunk('<script type="module" src="'),
379
- scriptNonce = stringToPrecomputedChunk('" nonce="'),
380
- scriptIntegirty = stringToPrecomputedChunk('" integrity="'),
381
- scriptCrossOrigin = stringToPrecomputedChunk('" crossorigin="'),
382
- endAsyncScript = stringToPrecomputedChunk('" async="">\x3c/script>'),
389
+ scriptNonce = stringToPrecomputedChunk(' nonce="'),
390
+ scriptIntegirty = stringToPrecomputedChunk(' integrity="'),
391
+ scriptCrossOrigin = stringToPrecomputedChunk(' crossorigin="'),
392
+ endAsyncScript = stringToPrecomputedChunk(' async="">\x3c/script>'),
393
+ startInlineStyle = stringToPrecomputedChunk("<style"),
383
394
  scriptRegex = /(<\/|<)(s)(cript)/gi;
384
395
  function scriptReplacer(match, prefix, s, suffix) {
385
396
  return "" + prefix + ("s" === s ? "\\u0073" : "\\u0053") + suffix;
@@ -396,25 +407,38 @@ function createRenderState(
396
407
  onHeaders,
397
408
  maxHeadersLength
398
409
  ) {
410
+ externalRuntimeConfig =
411
+ "string" === typeof nonce ? nonce : nonce && nonce.script;
399
412
  var inlineScriptWithNonce =
400
- void 0 === nonce
413
+ void 0 === externalRuntimeConfig
401
414
  ? startInlineScript
402
415
  : stringToPrecomputedChunk(
403
- '<script nonce="' + escapeTextForBrowser(nonce) + '">'
416
+ '<script nonce="' +
417
+ escapeTextForBrowser(externalRuntimeConfig) +
418
+ '"'
419
+ ),
420
+ nonceStyle = "string" === typeof nonce ? void 0 : nonce && nonce.style,
421
+ inlineStyleWithNonce =
422
+ void 0 === nonceStyle
423
+ ? startInlineStyle
424
+ : stringToPrecomputedChunk(
425
+ '<style nonce="' + escapeTextForBrowser(nonceStyle) + '"'
404
426
  ),
405
- idPrefix = resumableState.idPrefix;
406
- externalRuntimeConfig = [];
407
- var bootstrapScriptContent = resumableState.bootstrapScriptContent,
427
+ idPrefix = resumableState.idPrefix,
428
+ bootstrapChunks = [],
429
+ bootstrapScriptContent = resumableState.bootstrapScriptContent,
408
430
  bootstrapScripts = resumableState.bootstrapScripts,
409
431
  bootstrapModules = resumableState.bootstrapModules;
410
432
  void 0 !== bootstrapScriptContent &&
411
- externalRuntimeConfig.push(
412
- inlineScriptWithNonce,
433
+ (bootstrapChunks.push(inlineScriptWithNonce),
434
+ pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
435
+ bootstrapChunks.push(
436
+ endOfStartTag,
413
437
  stringToChunk(
414
438
  ("" + bootstrapScriptContent).replace(scriptRegex, scriptReplacer)
415
439
  ),
416
440
  endInlineScript
417
- );
441
+ ));
418
442
  bootstrapScriptContent = [];
419
443
  void 0 !== importMap &&
420
444
  (bootstrapScriptContent.push(importMapScriptStart),
@@ -438,9 +462,10 @@ function createRenderState(
438
462
  segmentPrefix: stringToPrecomputedChunk(idPrefix + "S:"),
439
463
  boundaryPrefix: stringToPrecomputedChunk(idPrefix + "B:"),
440
464
  startInlineScript: inlineScriptWithNonce,
465
+ startInlineStyle: inlineStyleWithNonce,
441
466
  preamble: createPreambleState(),
442
467
  externalRuntimeScript: null,
443
- bootstrapChunks: externalRuntimeConfig,
468
+ bootstrapChunks: bootstrapChunks,
444
469
  importMapChunks: bootstrapScriptContent,
445
470
  onHeaders: onHeaders,
446
471
  headers: importMap,
@@ -467,115 +492,119 @@ function createRenderState(
467
492
  scripts: new Map(),
468
493
  moduleScripts: new Map()
469
494
  },
470
- nonce: nonce,
495
+ nonce: { script: externalRuntimeConfig, style: nonceStyle },
471
496
  hoistableState: null,
472
497
  stylesToHoist: !1
473
498
  };
474
499
  if (void 0 !== bootstrapScripts)
475
- for (importMap = 0; importMap < bootstrapScripts.length; importMap++) {
476
- var scriptConfig = bootstrapScripts[importMap];
477
- idPrefix = inlineScriptWithNonce = void 0;
478
- bootstrapScriptContent = {
479
- rel: "preload",
480
- as: "script",
481
- fetchPriority: "low",
482
- nonce: nonce
483
- };
484
- "string" === typeof scriptConfig
485
- ? (bootstrapScriptContent.href = maxHeadersLength = scriptConfig)
486
- : ((bootstrapScriptContent.href = maxHeadersLength = scriptConfig.src),
487
- (bootstrapScriptContent.integrity = idPrefix =
488
- "string" === typeof scriptConfig.integrity
489
- ? scriptConfig.integrity
490
- : void 0),
491
- (bootstrapScriptContent.crossOrigin = inlineScriptWithNonce =
492
- "string" === typeof scriptConfig || null == scriptConfig.crossOrigin
493
- ? void 0
494
- : "use-credentials" === scriptConfig.crossOrigin
495
- ? "use-credentials"
496
- : ""));
497
- scriptConfig = resumableState;
498
- var href = maxHeadersLength;
499
- scriptConfig.scriptResources[href] = null;
500
- scriptConfig.moduleScriptResources[href] = null;
501
- scriptConfig = [];
502
- pushLinkImpl(scriptConfig, bootstrapScriptContent);
503
- onHeaders.bootstrapScripts.add(scriptConfig);
504
- externalRuntimeConfig.push(
505
- startScriptSrc,
506
- stringToChunk(escapeTextForBrowser(maxHeadersLength))
507
- );
508
- nonce &&
509
- externalRuntimeConfig.push(
510
- scriptNonce,
511
- stringToChunk(escapeTextForBrowser(nonce))
512
- );
513
- "string" === typeof idPrefix &&
514
- externalRuntimeConfig.push(
515
- scriptIntegirty,
516
- stringToChunk(escapeTextForBrowser(idPrefix))
517
- );
518
- "string" === typeof inlineScriptWithNonce &&
519
- externalRuntimeConfig.push(
520
- scriptCrossOrigin,
521
- stringToChunk(escapeTextForBrowser(inlineScriptWithNonce))
522
- );
523
- externalRuntimeConfig.push(endAsyncScript);
524
- }
500
+ for (importMap = 0; importMap < bootstrapScripts.length; importMap++)
501
+ (idPrefix = bootstrapScripts[importMap]),
502
+ (nonceStyle = inlineScriptWithNonce = void 0),
503
+ (inlineStyleWithNonce = {
504
+ rel: "preload",
505
+ as: "script",
506
+ fetchPriority: "low",
507
+ nonce: nonce
508
+ }),
509
+ "string" === typeof idPrefix
510
+ ? (inlineStyleWithNonce.href = maxHeadersLength = idPrefix)
511
+ : ((inlineStyleWithNonce.href = maxHeadersLength = idPrefix.src),
512
+ (inlineStyleWithNonce.integrity = nonceStyle =
513
+ "string" === typeof idPrefix.integrity
514
+ ? idPrefix.integrity
515
+ : void 0),
516
+ (inlineStyleWithNonce.crossOrigin = inlineScriptWithNonce =
517
+ "string" === typeof idPrefix || null == idPrefix.crossOrigin
518
+ ? void 0
519
+ : "use-credentials" === idPrefix.crossOrigin
520
+ ? "use-credentials"
521
+ : "")),
522
+ (idPrefix = resumableState),
523
+ (bootstrapScriptContent = maxHeadersLength),
524
+ (idPrefix.scriptResources[bootstrapScriptContent] = null),
525
+ (idPrefix.moduleScriptResources[bootstrapScriptContent] = null),
526
+ (idPrefix = []),
527
+ pushLinkImpl(idPrefix, inlineStyleWithNonce),
528
+ onHeaders.bootstrapScripts.add(idPrefix),
529
+ bootstrapChunks.push(
530
+ startScriptSrc,
531
+ stringToChunk(escapeTextForBrowser(maxHeadersLength)),
532
+ attributeEnd
533
+ ),
534
+ externalRuntimeConfig &&
535
+ bootstrapChunks.push(
536
+ scriptNonce,
537
+ stringToChunk(escapeTextForBrowser(externalRuntimeConfig)),
538
+ attributeEnd
539
+ ),
540
+ "string" === typeof nonceStyle &&
541
+ bootstrapChunks.push(
542
+ scriptIntegirty,
543
+ stringToChunk(escapeTextForBrowser(nonceStyle)),
544
+ attributeEnd
545
+ ),
546
+ "string" === typeof inlineScriptWithNonce &&
547
+ bootstrapChunks.push(
548
+ scriptCrossOrigin,
549
+ stringToChunk(escapeTextForBrowser(inlineScriptWithNonce)),
550
+ attributeEnd
551
+ ),
552
+ pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
553
+ bootstrapChunks.push(endAsyncScript);
525
554
  if (void 0 !== bootstrapModules)
526
- for (
527
- bootstrapScripts = 0;
528
- bootstrapScripts < bootstrapModules.length;
529
- bootstrapScripts++
530
- )
531
- (bootstrapScriptContent = bootstrapModules[bootstrapScripts]),
532
- (inlineScriptWithNonce = maxHeadersLength = void 0),
533
- (idPrefix = {
555
+ for (nonce = 0; nonce < bootstrapModules.length; nonce++)
556
+ (nonceStyle = bootstrapModules[nonce]),
557
+ (maxHeadersLength = importMap = void 0),
558
+ (inlineScriptWithNonce = {
534
559
  rel: "modulepreload",
535
560
  fetchPriority: "low",
536
- nonce: nonce
561
+ nonce: externalRuntimeConfig
537
562
  }),
538
- "string" === typeof bootstrapScriptContent
539
- ? (idPrefix.href = importMap = bootstrapScriptContent)
540
- : ((idPrefix.href = importMap = bootstrapScriptContent.src),
541
- (idPrefix.integrity = inlineScriptWithNonce =
542
- "string" === typeof bootstrapScriptContent.integrity
543
- ? bootstrapScriptContent.integrity
563
+ "string" === typeof nonceStyle
564
+ ? (inlineScriptWithNonce.href = bootstrapScripts = nonceStyle)
565
+ : ((inlineScriptWithNonce.href = bootstrapScripts = nonceStyle.src),
566
+ (inlineScriptWithNonce.integrity = maxHeadersLength =
567
+ "string" === typeof nonceStyle.integrity
568
+ ? nonceStyle.integrity
544
569
  : void 0),
545
- (idPrefix.crossOrigin = maxHeadersLength =
546
- "string" === typeof bootstrapScriptContent ||
547
- null == bootstrapScriptContent.crossOrigin
570
+ (inlineScriptWithNonce.crossOrigin = importMap =
571
+ "string" === typeof nonceStyle || null == nonceStyle.crossOrigin
548
572
  ? void 0
549
- : "use-credentials" === bootstrapScriptContent.crossOrigin
573
+ : "use-credentials" === nonceStyle.crossOrigin
550
574
  ? "use-credentials"
551
575
  : "")),
552
- (bootstrapScriptContent = resumableState),
553
- (scriptConfig = importMap),
554
- (bootstrapScriptContent.scriptResources[scriptConfig] = null),
555
- (bootstrapScriptContent.moduleScriptResources[scriptConfig] = null),
556
- (bootstrapScriptContent = []),
557
- pushLinkImpl(bootstrapScriptContent, idPrefix),
558
- onHeaders.bootstrapScripts.add(bootstrapScriptContent),
559
- externalRuntimeConfig.push(
576
+ (nonceStyle = resumableState),
577
+ (inlineStyleWithNonce = bootstrapScripts),
578
+ (nonceStyle.scriptResources[inlineStyleWithNonce] = null),
579
+ (nonceStyle.moduleScriptResources[inlineStyleWithNonce] = null),
580
+ (nonceStyle = []),
581
+ pushLinkImpl(nonceStyle, inlineScriptWithNonce),
582
+ onHeaders.bootstrapScripts.add(nonceStyle),
583
+ bootstrapChunks.push(
560
584
  startModuleSrc,
561
- stringToChunk(escapeTextForBrowser(importMap))
585
+ stringToChunk(escapeTextForBrowser(bootstrapScripts)),
586
+ attributeEnd
562
587
  ),
563
- nonce &&
564
- externalRuntimeConfig.push(
588
+ externalRuntimeConfig &&
589
+ bootstrapChunks.push(
565
590
  scriptNonce,
566
- stringToChunk(escapeTextForBrowser(nonce))
591
+ stringToChunk(escapeTextForBrowser(externalRuntimeConfig)),
592
+ attributeEnd
567
593
  ),
568
- "string" === typeof inlineScriptWithNonce &&
569
- externalRuntimeConfig.push(
594
+ "string" === typeof maxHeadersLength &&
595
+ bootstrapChunks.push(
570
596
  scriptIntegirty,
571
- stringToChunk(escapeTextForBrowser(inlineScriptWithNonce))
597
+ stringToChunk(escapeTextForBrowser(maxHeadersLength)),
598
+ attributeEnd
572
599
  ),
573
- "string" === typeof maxHeadersLength &&
574
- externalRuntimeConfig.push(
600
+ "string" === typeof importMap &&
601
+ bootstrapChunks.push(
575
602
  scriptCrossOrigin,
576
- stringToChunk(escapeTextForBrowser(maxHeadersLength))
603
+ stringToChunk(escapeTextForBrowser(importMap)),
604
+ attributeEnd
577
605
  ),
578
- externalRuntimeConfig.push(endAsyncScript);
606
+ pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
607
+ bootstrapChunks.push(endAsyncScript);
579
608
  return onHeaders;
580
609
  }
581
610
  function createResumableState(
@@ -606,18 +635,19 @@ function createResumableState(
606
635
  };
607
636
  }
608
637
  function createPreambleState() {
609
- return {
610
- htmlChunks: null,
611
- headChunks: null,
612
- bodyChunks: null,
613
- contribution: 0
614
- };
638
+ return { htmlChunks: null, headChunks: null, bodyChunks: null };
615
639
  }
616
- function createFormatContext(insertionMode, selectedValue, tagScope) {
640
+ function createFormatContext(
641
+ insertionMode,
642
+ selectedValue,
643
+ tagScope,
644
+ viewTransition
645
+ ) {
617
646
  return {
618
647
  insertionMode: insertionMode,
619
648
  selectedValue: selectedValue,
620
- tagScope: tagScope
649
+ tagScope: tagScope,
650
+ viewTransition: viewTransition
621
651
  };
622
652
  }
623
653
  function createRootFormatContext(namespaceURI) {
@@ -628,48 +658,93 @@ function createRootFormatContext(namespaceURI) {
628
658
  ? 5
629
659
  : 0,
630
660
  null,
631
- 0
661
+ 0,
662
+ null
632
663
  );
633
664
  }
634
665
  function getChildFormatContext(parentContext, type, props) {
666
+ var subtreeScope = parentContext.tagScope & -25;
635
667
  switch (type) {
636
668
  case "noscript":
637
- return createFormatContext(2, null, parentContext.tagScope | 1);
669
+ return createFormatContext(2, null, subtreeScope | 1, null);
638
670
  case "select":
639
671
  return createFormatContext(
640
672
  2,
641
673
  null != props.value ? props.value : props.defaultValue,
642
- parentContext.tagScope
674
+ subtreeScope,
675
+ null
643
676
  );
644
677
  case "svg":
645
- return createFormatContext(4, null, parentContext.tagScope);
678
+ return createFormatContext(4, null, subtreeScope, null);
646
679
  case "picture":
647
- return createFormatContext(2, null, parentContext.tagScope | 2);
680
+ return createFormatContext(2, null, subtreeScope | 2, null);
648
681
  case "math":
649
- return createFormatContext(5, null, parentContext.tagScope);
682
+ return createFormatContext(5, null, subtreeScope, null);
650
683
  case "foreignObject":
651
- return createFormatContext(2, null, parentContext.tagScope);
684
+ return createFormatContext(2, null, subtreeScope, null);
652
685
  case "table":
653
- return createFormatContext(6, null, parentContext.tagScope);
686
+ return createFormatContext(6, null, subtreeScope, null);
654
687
  case "thead":
655
688
  case "tbody":
656
689
  case "tfoot":
657
- return createFormatContext(7, null, parentContext.tagScope);
690
+ return createFormatContext(7, null, subtreeScope, null);
658
691
  case "colgroup":
659
- return createFormatContext(9, null, parentContext.tagScope);
692
+ return createFormatContext(9, null, subtreeScope, null);
660
693
  case "tr":
661
- return createFormatContext(8, null, parentContext.tagScope);
694
+ return createFormatContext(8, null, subtreeScope, null);
662
695
  case "head":
663
696
  if (2 > parentContext.insertionMode)
664
- return createFormatContext(3, null, parentContext.tagScope);
697
+ return createFormatContext(3, null, subtreeScope, null);
665
698
  break;
666
699
  case "html":
667
700
  if (0 === parentContext.insertionMode)
668
- return createFormatContext(1, null, parentContext.tagScope);
701
+ return createFormatContext(1, null, subtreeScope, null);
669
702
  }
670
703
  return 6 <= parentContext.insertionMode || 2 > parentContext.insertionMode
671
- ? createFormatContext(2, null, parentContext.tagScope)
672
- : parentContext;
704
+ ? createFormatContext(2, null, subtreeScope, null)
705
+ : parentContext.tagScope !== subtreeScope
706
+ ? createFormatContext(
707
+ parentContext.insertionMode,
708
+ parentContext.selectedValue,
709
+ subtreeScope,
710
+ null
711
+ )
712
+ : parentContext;
713
+ }
714
+ function getSuspenseViewTransition(parentViewTransition) {
715
+ return null === parentViewTransition
716
+ ? null
717
+ : {
718
+ update: parentViewTransition.update,
719
+ enter: "none",
720
+ exit: "none",
721
+ share: parentViewTransition.update,
722
+ name: parentViewTransition.autoName,
723
+ autoName: parentViewTransition.autoName,
724
+ nameIdx: 0
725
+ };
726
+ }
727
+ function getSuspenseFallbackFormatContext(resumableState, parentContext) {
728
+ parentContext.tagScope & 32 && (resumableState.instructions |= 128);
729
+ return createFormatContext(
730
+ parentContext.insertionMode,
731
+ parentContext.selectedValue,
732
+ parentContext.tagScope | 12,
733
+ getSuspenseViewTransition(parentContext.viewTransition)
734
+ );
735
+ }
736
+ function getSuspenseContentFormatContext(resumableState, parentContext) {
737
+ resumableState = getSuspenseViewTransition(parentContext.viewTransition);
738
+ var subtreeScope = parentContext.tagScope | 16;
739
+ null !== resumableState &&
740
+ "none" !== resumableState.share &&
741
+ (subtreeScope |= 64);
742
+ return createFormatContext(
743
+ parentContext.insertionMode,
744
+ parentContext.selectedValue,
745
+ subtreeScope,
746
+ resumableState
747
+ );
673
748
  }
674
749
  var textSeparator = stringToPrecomputedChunk("\x3c!-- --\x3e");
675
750
  function pushTextInstance(target, text, renderState, textEmbedded) {
@@ -1067,13 +1142,25 @@ var selectedMarkerAttribute = stringToPrecomputedChunk(' selected=""'),
1067
1142
  'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});'
1068
1143
  );
1069
1144
  function injectFormReplayingRuntime(resumableState, renderState) {
1070
- 0 === (resumableState.instructions & 16) &&
1071
- ((resumableState.instructions |= 16),
1072
- renderState.bootstrapChunks.unshift(
1073
- renderState.startInlineScript,
1074
- formReplayingRuntimeScript,
1075
- endInlineScript
1076
- ));
1145
+ if (0 === (resumableState.instructions & 16)) {
1146
+ resumableState.instructions |= 16;
1147
+ var preamble = renderState.preamble,
1148
+ bootstrapChunks = renderState.bootstrapChunks;
1149
+ (preamble.htmlChunks || preamble.headChunks) && 0 === bootstrapChunks.length
1150
+ ? (bootstrapChunks.push(renderState.startInlineScript),
1151
+ pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
1152
+ bootstrapChunks.push(
1153
+ endOfStartTag,
1154
+ formReplayingRuntimeScript,
1155
+ endInlineScript
1156
+ ))
1157
+ : bootstrapChunks.unshift(
1158
+ renderState.startInlineScript,
1159
+ endOfStartTag,
1160
+ formReplayingRuntimeScript,
1161
+ endInlineScript
1162
+ );
1163
+ }
1077
1164
  }
1078
1165
  var formStateMarkerIsMatching = stringToPrecomputedChunk("\x3c!--F!--\x3e"),
1079
1166
  formStateMarkerIsNotMatching = stringToPrecomputedChunk("\x3c!--F--\x3e");
@@ -1150,6 +1237,10 @@ function pushTitleImpl(target, props) {
1150
1237
  target.push(endChunkForTag("title"));
1151
1238
  return null;
1152
1239
  }
1240
+ var headPreambleContributionChunk =
1241
+ stringToPrecomputedChunk("\x3c!--head--\x3e"),
1242
+ bodyPreambleContributionChunk = stringToPrecomputedChunk("\x3c!--body--\x3e"),
1243
+ htmlPreambleContributionChunk = stringToPrecomputedChunk("\x3c!--html--\x3e");
1153
1244
  function pushScriptImpl(target, props) {
1154
1245
  target.push(startChunkForTag("script"));
1155
1246
  var children = null,
@@ -1250,8 +1341,7 @@ function pushStartInstance(
1250
1341
  preambleState,
1251
1342
  hoistableState,
1252
1343
  formatContext,
1253
- textEmbedded,
1254
- isFallback
1344
+ textEmbedded
1255
1345
  ) {
1256
1346
  switch (type) {
1257
1347
  case "div":
@@ -1725,9 +1815,11 @@ function pushStartInstance(
1725
1815
  } else JSCompiler_inline_result$jscomp$2 = children$jscomp$5;
1726
1816
  return JSCompiler_inline_result$jscomp$2;
1727
1817
  case "title":
1818
+ var noscriptTagInScope = formatContext.tagScope & 1,
1819
+ isFallback = formatContext.tagScope & 4;
1728
1820
  if (
1729
1821
  4 === formatContext.insertionMode ||
1730
- formatContext.tagScope & 1 ||
1822
+ noscriptTagInScope ||
1731
1823
  null != props.itemProp
1732
1824
  )
1733
1825
  var JSCompiler_inline_result$jscomp$3 = pushTitleImpl(
@@ -1741,12 +1833,14 @@ function pushStartInstance(
1741
1833
  (JSCompiler_inline_result$jscomp$3 = void 0));
1742
1834
  return JSCompiler_inline_result$jscomp$3;
1743
1835
  case "link":
1744
- var rel = props.rel,
1836
+ var noscriptTagInScope$jscomp$0 = formatContext.tagScope & 1,
1837
+ isFallback$jscomp$0 = formatContext.tagScope & 4,
1838
+ rel = props.rel,
1745
1839
  href = props.href,
1746
1840
  precedence = props.precedence;
1747
1841
  if (
1748
1842
  4 === formatContext.insertionMode ||
1749
- formatContext.tagScope & 1 ||
1843
+ noscriptTagInScope$jscomp$0 ||
1750
1844
  null != props.itemProp ||
1751
1845
  "string" !== typeof rel ||
1752
1846
  "string" !== typeof href ||
@@ -1813,12 +1907,13 @@ function pushStartInstance(
1813
1907
  props
1814
1908
  ))
1815
1909
  : (textEmbedded && target$jscomp$0.push(textSeparator),
1816
- (JSCompiler_inline_result$jscomp$4 = isFallback
1910
+ (JSCompiler_inline_result$jscomp$4 = isFallback$jscomp$0
1817
1911
  ? null
1818
1912
  : pushLinkImpl(renderState.hoistableChunks, props)));
1819
1913
  return JSCompiler_inline_result$jscomp$4;
1820
1914
  case "script":
1821
- var asyncProp = props.async;
1915
+ var noscriptTagInScope$jscomp$1 = formatContext.tagScope & 1,
1916
+ asyncProp = props.async;
1822
1917
  if (
1823
1918
  "string" !== typeof props.src ||
1824
1919
  !props.src ||
@@ -1828,7 +1923,7 @@ function pushStartInstance(
1828
1923
  props.onLoad ||
1829
1924
  props.onError ||
1830
1925
  4 === formatContext.insertionMode ||
1831
- formatContext.tagScope & 1 ||
1926
+ noscriptTagInScope$jscomp$1 ||
1832
1927
  null != props.itemProp
1833
1928
  )
1834
1929
  var JSCompiler_inline_result$jscomp$5 = pushScriptImpl(
@@ -1865,11 +1960,13 @@ function pushStartInstance(
1865
1960
  }
1866
1961
  return JSCompiler_inline_result$jscomp$5;
1867
1962
  case "style":
1868
- var precedence$jscomp$0 = props.precedence,
1869
- href$jscomp$0 = props.href;
1963
+ var noscriptTagInScope$jscomp$2 = formatContext.tagScope & 1,
1964
+ precedence$jscomp$0 = props.precedence,
1965
+ href$jscomp$0 = props.href,
1966
+ nonce = props.nonce;
1870
1967
  if (
1871
1968
  4 === formatContext.insertionMode ||
1872
- formatContext.tagScope & 1 ||
1969
+ noscriptTagInScope$jscomp$2 ||
1873
1970
  null != props.itemProp ||
1874
1971
  "string" !== typeof precedence$jscomp$0 ||
1875
1972
  "string" !== typeof href$jscomp$0 ||
@@ -1923,50 +2020,53 @@ function pushStartInstance(
1923
2020
  : void 0)
1924
2021
  ) {
1925
2022
  resumableState.styleResources[href$jscomp$0] = null;
1926
- styleQueue$jscomp$0
1927
- ? styleQueue$jscomp$0.hrefs.push(
1928
- stringToChunk(escapeTextForBrowser(href$jscomp$0))
1929
- )
1930
- : ((styleQueue$jscomp$0 = {
1931
- precedence: stringToChunk(
1932
- escapeTextForBrowser(precedence$jscomp$0)
1933
- ),
1934
- rules: [],
1935
- hrefs: [stringToChunk(escapeTextForBrowser(href$jscomp$0))],
1936
- sheets: new Map()
1937
- }),
1938
- renderState.styles.set(precedence$jscomp$0, styleQueue$jscomp$0));
1939
- var target = styleQueue$jscomp$0.rules,
1940
- children$jscomp$7 = null,
1941
- innerHTML$jscomp$6 = null,
1942
- propKey$jscomp$9;
1943
- for (propKey$jscomp$9 in props)
1944
- if (hasOwnProperty.call(props, propKey$jscomp$9)) {
1945
- var propValue$jscomp$9 = props[propKey$jscomp$9];
1946
- if (null != propValue$jscomp$9)
1947
- switch (propKey$jscomp$9) {
1948
- case "children":
1949
- children$jscomp$7 = propValue$jscomp$9;
1950
- break;
1951
- case "dangerouslySetInnerHTML":
1952
- innerHTML$jscomp$6 = propValue$jscomp$9;
1953
- }
1954
- }
1955
- var child$jscomp$0 = Array.isArray(children$jscomp$7)
1956
- ? 2 > children$jscomp$7.length
1957
- ? children$jscomp$7[0]
1958
- : null
1959
- : children$jscomp$7;
1960
- "function" !== typeof child$jscomp$0 &&
1961
- "symbol" !== typeof child$jscomp$0 &&
1962
- null !== child$jscomp$0 &&
1963
- void 0 !== child$jscomp$0 &&
1964
- target.push(
1965
- stringToChunk(
1966
- ("" + child$jscomp$0).replace(styleRegex, styleReplacer)
1967
- )
2023
+ styleQueue$jscomp$0 ||
2024
+ ((styleQueue$jscomp$0 = {
2025
+ precedence: stringToChunk(
2026
+ escapeTextForBrowser(precedence$jscomp$0)
2027
+ ),
2028
+ rules: [],
2029
+ hrefs: [],
2030
+ sheets: new Map()
2031
+ }),
2032
+ renderState.styles.set(precedence$jscomp$0, styleQueue$jscomp$0));
2033
+ var nonceStyle = renderState.nonce.style;
2034
+ if (!nonceStyle || nonceStyle === nonce) {
2035
+ styleQueue$jscomp$0.hrefs.push(
2036
+ stringToChunk(escapeTextForBrowser(href$jscomp$0))
1968
2037
  );
1969
- pushInnerHTML(target, innerHTML$jscomp$6, children$jscomp$7);
2038
+ var target = styleQueue$jscomp$0.rules,
2039
+ children$jscomp$7 = null,
2040
+ innerHTML$jscomp$6 = null,
2041
+ propKey$jscomp$9;
2042
+ for (propKey$jscomp$9 in props)
2043
+ if (hasOwnProperty.call(props, propKey$jscomp$9)) {
2044
+ var propValue$jscomp$9 = props[propKey$jscomp$9];
2045
+ if (null != propValue$jscomp$9)
2046
+ switch (propKey$jscomp$9) {
2047
+ case "children":
2048
+ children$jscomp$7 = propValue$jscomp$9;
2049
+ break;
2050
+ case "dangerouslySetInnerHTML":
2051
+ innerHTML$jscomp$6 = propValue$jscomp$9;
2052
+ }
2053
+ }
2054
+ var child$jscomp$0 = Array.isArray(children$jscomp$7)
2055
+ ? 2 > children$jscomp$7.length
2056
+ ? children$jscomp$7[0]
2057
+ : null
2058
+ : children$jscomp$7;
2059
+ "function" !== typeof child$jscomp$0 &&
2060
+ "symbol" !== typeof child$jscomp$0 &&
2061
+ null !== child$jscomp$0 &&
2062
+ void 0 !== child$jscomp$0 &&
2063
+ target.push(
2064
+ stringToChunk(
2065
+ ("" + child$jscomp$0).replace(styleRegex, styleReplacer)
2066
+ )
2067
+ );
2068
+ pushInnerHTML(target, innerHTML$jscomp$6, children$jscomp$7);
2069
+ }
1970
2070
  }
1971
2071
  styleQueue$jscomp$0 &&
1972
2072
  hoistableState &&
@@ -1976,9 +2076,11 @@ function pushStartInstance(
1976
2076
  }
1977
2077
  return JSCompiler_inline_result$jscomp$6;
1978
2078
  case "meta":
2079
+ var noscriptTagInScope$jscomp$3 = formatContext.tagScope & 1,
2080
+ isFallback$jscomp$1 = formatContext.tagScope & 4;
1979
2081
  if (
1980
2082
  4 === formatContext.insertionMode ||
1981
- formatContext.tagScope & 1 ||
2083
+ noscriptTagInScope$jscomp$3 ||
1982
2084
  null != props.itemProp
1983
2085
  )
1984
2086
  var JSCompiler_inline_result$jscomp$7 = pushSelfClosing(
@@ -1988,7 +2090,7 @@ function pushStartInstance(
1988
2090
  );
1989
2091
  else
1990
2092
  textEmbedded && target$jscomp$0.push(textSeparator),
1991
- (JSCompiler_inline_result$jscomp$7 = isFallback
2093
+ (JSCompiler_inline_result$jscomp$7 = isFallback$jscomp$1
1992
2094
  ? null
1993
2095
  : "string" === typeof props.charSet
1994
2096
  ? pushSelfClosing(renderState.charsetChunks, props, "meta")
@@ -2041,17 +2143,18 @@ function pushStartInstance(
2041
2143
  target$jscomp$0.push(leadingNewline);
2042
2144
  return children$jscomp$8;
2043
2145
  case "img":
2044
- var src = props.src,
2146
+ var pictureOrNoScriptTagInScope = formatContext.tagScope & 3,
2147
+ src = props.src,
2045
2148
  srcSet = props.srcSet;
2046
2149
  if (
2047
2150
  !(
2048
2151
  "lazy" === props.loading ||
2049
2152
  (!src && !srcSet) ||
2050
2153
  ("string" !== typeof src && null != src) ||
2051
- ("string" !== typeof srcSet && null != srcSet)
2154
+ ("string" !== typeof srcSet && null != srcSet) ||
2155
+ "low" === props.fetchPriority ||
2156
+ pictureOrNoScriptTagInScope
2052
2157
  ) &&
2053
- "low" !== props.fetchPriority &&
2054
- !1 === !!(formatContext.tagScope & 3) &&
2055
2158
  ("string" !== typeof src ||
2056
2159
  ":" !== src[4] ||
2057
2160
  ("d" !== src[0] && "D" !== src[0]) ||
@@ -2065,6 +2168,9 @@ function pushStartInstance(
2065
2168
  ("t" !== srcSet[2] && "T" !== srcSet[2]) ||
2066
2169
  ("a" !== srcSet[3] && "A" !== srcSet[3]))
2067
2170
  ) {
2171
+ null !== hoistableState &&
2172
+ formatContext.tagScope & 64 &&
2173
+ (hoistableState.suspenseyImages = !0);
2068
2174
  var sizes = "string" === typeof props.sizes ? props.sizes : void 0,
2069
2175
  key$jscomp$0 = srcSet ? srcSet + "\n" + (sizes || "") : src,
2070
2176
  promotablePreloads = renderState.preloads.images,
@@ -2155,6 +2261,8 @@ function pushStartInstance(
2155
2261
  var preamble = preambleState || renderState.preamble;
2156
2262
  if (preamble.headChunks)
2157
2263
  throw Error(formatProdErrorMessage(545, "`<head>`"));
2264
+ null !== preambleState &&
2265
+ target$jscomp$0.push(headPreambleContributionChunk);
2158
2266
  preamble.headChunks = [];
2159
2267
  var JSCompiler_inline_result$jscomp$9 = pushStartSingletonElement(
2160
2268
  preamble.headChunks,
@@ -2173,6 +2281,8 @@ function pushStartInstance(
2173
2281
  var preamble$jscomp$0 = preambleState || renderState.preamble;
2174
2282
  if (preamble$jscomp$0.bodyChunks)
2175
2283
  throw Error(formatProdErrorMessage(545, "`<body>`"));
2284
+ null !== preambleState &&
2285
+ target$jscomp$0.push(bodyPreambleContributionChunk);
2176
2286
  preamble$jscomp$0.bodyChunks = [];
2177
2287
  var JSCompiler_inline_result$jscomp$10 = pushStartSingletonElement(
2178
2288
  preamble$jscomp$0.bodyChunks,
@@ -2191,6 +2301,8 @@ function pushStartInstance(
2191
2301
  var preamble$jscomp$1 = preambleState || renderState.preamble;
2192
2302
  if (preamble$jscomp$1.htmlChunks)
2193
2303
  throw Error(formatProdErrorMessage(545, "`<html>`"));
2304
+ null !== preambleState &&
2305
+ target$jscomp$0.push(htmlPreambleContributionChunk);
2194
2306
  preamble$jscomp$1.htmlChunks = [doctypeChunk];
2195
2307
  var JSCompiler_inline_result$jscomp$11 = pushStartSingletonElement(
2196
2308
  preamble$jscomp$1.htmlChunks,
@@ -2270,16 +2382,13 @@ function hoistPreambleState(renderState, preambleState) {
2270
2382
  renderState = renderState.preamble;
2271
2383
  null === renderState.htmlChunks &&
2272
2384
  preambleState.htmlChunks &&
2273
- ((renderState.htmlChunks = preambleState.htmlChunks),
2274
- (preambleState.contribution |= 1));
2385
+ (renderState.htmlChunks = preambleState.htmlChunks);
2275
2386
  null === renderState.headChunks &&
2276
2387
  preambleState.headChunks &&
2277
- ((renderState.headChunks = preambleState.headChunks),
2278
- (preambleState.contribution |= 4));
2388
+ (renderState.headChunks = preambleState.headChunks);
2279
2389
  null === renderState.bodyChunks &&
2280
2390
  preambleState.bodyChunks &&
2281
- ((renderState.bodyChunks = preambleState.bodyChunks),
2282
- (preambleState.contribution |= 2));
2391
+ (renderState.bodyChunks = preambleState.bodyChunks);
2283
2392
  }
2284
2393
  function writeBootstrap(destination, renderState) {
2285
2394
  renderState = renderState.bootstrapChunks;
@@ -2291,8 +2400,13 @@ function writeBootstrap(destination, renderState) {
2291
2400
  writeChunkAndReturn(destination, i))
2292
2401
  : !0;
2293
2402
  }
2294
- var placeholder1 = stringToPrecomputedChunk('<template id="'),
2403
+ var shellTimeRuntimeScript = stringToPrecomputedChunk(
2404
+ "requestAnimationFrame(function(){$RT=performance.now()});"
2405
+ ),
2406
+ placeholder1 = stringToPrecomputedChunk('<template id="'),
2295
2407
  placeholder2 = stringToPrecomputedChunk('"></template>'),
2408
+ startActivityBoundary = stringToPrecomputedChunk("\x3c!--&--\x3e"),
2409
+ endActivityBoundary = stringToPrecomputedChunk("\x3c!--/&--\x3e"),
2296
2410
  startCompletedSuspenseBoundary = stringToPrecomputedChunk("\x3c!--$--\x3e"),
2297
2411
  startPendingSuspenseBoundary1 = stringToPrecomputedChunk(
2298
2412
  '\x3c!--$?--\x3e<template id="'
@@ -2318,16 +2432,6 @@ function writeStartPendingSuspenseBoundary(destination, renderState, id) {
2318
2432
  writeChunk(destination, stringToChunk(id.toString(16)));
2319
2433
  return writeChunkAndReturn(destination, startPendingSuspenseBoundary2);
2320
2434
  }
2321
- var boundaryPreambleContributionChunkStart =
2322
- stringToPrecomputedChunk("\x3c!--"),
2323
- boundaryPreambleContributionChunkEnd = stringToPrecomputedChunk("--\x3e");
2324
- function writePreambleContribution(destination, preambleState) {
2325
- preambleState = preambleState.contribution;
2326
- 0 !== preambleState &&
2327
- (writeChunk(destination, boundaryPreambleContributionChunkStart),
2328
- writeChunk(destination, stringToChunk("" + preambleState)),
2329
- writeChunk(destination, boundaryPreambleContributionChunkEnd));
2330
- }
2331
2435
  var startSegmentHTML = stringToPrecomputedChunk('<div hidden id="'),
2332
2436
  startSegmentHTML2 = stringToPrecomputedChunk('">'),
2333
2437
  endSegmentHTML = stringToPrecomputedChunk("</div>"),
@@ -2444,15 +2548,15 @@ var completeSegmentScript1Full = stringToPrecomputedChunk(
2444
2548
  completeSegmentScriptEnd = stringToPrecomputedChunk('")\x3c/script>');
2445
2549
  stringToPrecomputedChunk('<template data-rsi="" data-sid="');
2446
2550
  stringToPrecomputedChunk('" data-pid="');
2447
- var completeBoundaryScript1Full = stringToPrecomputedChunk(
2448
- '$RC=function(b,c,e){c=document.getElementById(c);c.parentNode.removeChild(c);var a=document.getElementById(b);if(a){b=a.previousSibling;if(e)b.data="$!",a.setAttribute("data-dgst",e);else{e=b.parentNode;a=b.nextSibling;var f=0;do{if(a&&8===a.nodeType){var d=a.data;if("/$"===d)if(0===f)break;else f--;else"$"!==d&&"$?"!==d&&"$!"!==d||f++}d=a.nextSibling;e.removeChild(a);a=d}while(a);for(;c.firstChild;)e.insertBefore(c.firstChild,a);b.data="$"}b._reactRetry&&b._reactRetry()}};$RC("'
2449
- ),
2450
- completeBoundaryScript1Partial = stringToPrecomputedChunk('$RC("'),
2451
- completeBoundaryWithStylesScript1FullBoth = stringToPrecomputedChunk(
2452
- '$RC=function(b,c,e){c=document.getElementById(c);c.parentNode.removeChild(c);var a=document.getElementById(b);if(a){b=a.previousSibling;if(e)b.data="$!",a.setAttribute("data-dgst",e);else{e=b.parentNode;a=b.nextSibling;var f=0;do{if(a&&8===a.nodeType){var d=a.data;if("/$"===d)if(0===f)break;else f--;else"$"!==d&&"$?"!==d&&"$!"!==d||f++}d=a.nextSibling;e.removeChild(a);a=d}while(a);for(;c.firstChild;)e.insertBefore(c.firstChild,a);b.data="$"}b._reactRetry&&b._reactRetry()}};$RM=new Map;\n$RR=function(t,u,y){function v(n){this._p=null;n()}for(var w=$RC,p=$RM,q=new Map,r=document,g,b,h=r.querySelectorAll("link[data-precedence],style[data-precedence]"),x=[],k=0;b=h[k++];)"not all"===b.getAttribute("media")?x.push(b):("LINK"===b.tagName&&p.set(b.getAttribute("href"),b),q.set(b.dataset.precedence,g=b));b=0;h=[];var l,a;for(k=!0;;){if(k){var e=y[b++];if(!e){k=!1;b=0;continue}var c=!1,m=0;var d=e[m++];if(a=p.get(d)){var f=a._p;c=!0}else{a=r.createElement("link");a.href=\nd;a.rel="stylesheet";for(a.dataset.precedence=l=e[m++];f=e[m++];)a.setAttribute(f,e[m++]);f=a._p=new Promise(function(n,z){a.onload=v.bind(a,n);a.onerror=v.bind(a,z)});p.set(d,a)}d=a.getAttribute("media");!f||d&&!matchMedia(d).matches||h.push(f);if(c)continue}else{a=x[b++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=q.get(l)||g;c===g&&(g=a);q.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=r.head,c.insertBefore(a,c.firstChild))}Promise.all(h).then(w.bind(null,\nt,u,""),w.bind(null,t,u,"Resource failed to load"))};$RR("'
2453
- ),
2551
+ var completeBoundaryScriptFunctionOnly = stringToPrecomputedChunk(
2552
+ '$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};\n$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};'
2553
+ );
2554
+ stringToChunk(
2555
+ '$RV=function(A,g){function k(a,b){var e=a.getAttribute(b);e&&(b=a.style,l.push(a,b.viewTransitionName,b.viewTransitionClass),"auto"!==e&&(b.viewTransitionClass=e),(a=a.getAttribute("vt-name"))||(a="_T_"+K++ +"_"),b.viewTransitionName=a,B=!0)}var B=!1,K=0,l=[];try{var f=document.__reactViewTransition;if(f){f.finished.finally($RV.bind(null,g));return}var m=new Map;for(f=1;f<g.length;f+=2)for(var h=g[f].querySelectorAll("[vt-share]"),d=0;d<h.length;d++){var c=h[d];m.set(c.getAttribute("vt-name"),c)}var u=[];for(h=0;h<g.length;h+=2){var C=g[h],x=C.parentNode;if(x){var v=x.getBoundingClientRect();if(v.left||v.top||v.width||v.height){c=C;for(f=0;c;){if(8===c.nodeType){var r=c.data;if("/$"===r)if(0===f)break;else f--;else"$"!==r&&"$?"!==r&&"$~"!==r&&"$!"!==r||f++}else if(1===c.nodeType){d=c;var D=d.getAttribute("vt-name"),y=m.get(D);k(d,y?"vt-share":"vt-exit");y&&(k(y,"vt-share"),m.set(D,null));var E=d.querySelectorAll("[vt-share]");for(d=0;d<E.length;d++){var F=E[d],G=F.getAttribute("vt-name"),\nH=m.get(G);H&&(k(F,"vt-share"),k(H,"vt-share"),m.set(G,null))}}c=c.nextSibling}for(var I=g[h+1],t=I.firstElementChild;t;)null!==m.get(t.getAttribute("vt-name"))&&k(t,"vt-enter"),t=t.nextElementSibling;c=x;do for(var n=c.firstElementChild;n;){var J=n.getAttribute("vt-update");J&&"none"!==J&&!l.includes(n)&&k(n,"vt-update");n=n.nextElementSibling}while((c=c.parentNode)&&1===c.nodeType&&"none"!==c.getAttribute("vt-update"));u.push.apply(u,I.querySelectorAll(\'img[src]:not([loading="lazy"])\'))}}}if(B){var z=\ndocument.__reactViewTransition=document.startViewTransition({update:function(){A(g);for(var a=[document.documentElement.clientHeight,document.fonts.ready],b={},e=0;e<u.length;b={g:b.g},e++)if(b.g=u[e],!b.g.complete){var p=b.g.getBoundingClientRect();0<p.bottom&&0<p.right&&p.top<window.innerHeight&&p.left<window.innerWidth&&(p=new Promise(function(w){return function(q){w.g.addEventListener("load",q);w.g.addEventListener("error",q)}}(b)),a.push(p))}return Promise.race([Promise.all(a),new Promise(function(w){var q=\nperformance.now();setTimeout(w,2300>q&&2E3<q?2300-q:500)})])},types:[]});z.ready.finally(function(){for(var a=l.length-3;0<=a;a-=3){var b=l[a],e=b.style;e.viewTransitionName=l[a+1];e.viewTransitionClass=l[a+1];""===b.getAttribute("style")&&b.removeAttribute("style")}});z.finished.finally(function(){document.__reactViewTransition===z&&(document.__reactViewTransition=null)});$RB=[];return}}catch(a){}A(g)}.bind(null,$RV);'
2556
+ );
2557
+ var completeBoundaryScript1Partial = stringToPrecomputedChunk('$RC("'),
2454
2558
  completeBoundaryWithStylesScript1FullPartial = stringToPrecomputedChunk(
2455
- '$RM=new Map;\n$RR=function(t,u,y){function v(n){this._p=null;n()}for(var w=$RC,p=$RM,q=new Map,r=document,g,b,h=r.querySelectorAll("link[data-precedence],style[data-precedence]"),x=[],k=0;b=h[k++];)"not all"===b.getAttribute("media")?x.push(b):("LINK"===b.tagName&&p.set(b.getAttribute("href"),b),q.set(b.dataset.precedence,g=b));b=0;h=[];var l,a;for(k=!0;;){if(k){var e=y[b++];if(!e){k=!1;b=0;continue}var c=!1,m=0;var d=e[m++];if(a=p.get(d)){var f=a._p;c=!0}else{a=r.createElement("link");a.href=\nd;a.rel="stylesheet";for(a.dataset.precedence=l=e[m++];f=e[m++];)a.setAttribute(f,e[m++]);f=a._p=new Promise(function(n,z){a.onload=v.bind(a,n);a.onerror=v.bind(a,z)});p.set(d,a)}d=a.getAttribute("media");!f||d&&!matchMedia(d).matches||h.push(f);if(c)continue}else{a=x[b++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=q.get(l)||g;c===g&&(g=a);q.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=r.head,c.insertBefore(a,c.firstChild))}Promise.all(h).then(w.bind(null,\nt,u,""),w.bind(null,t,u,"Resource failed to load"))};$RR("'
2559
+ '$RM=new Map;$RR=function(n,w,p){function u(q){this._p=null;q()}for(var r=new Map,t=document,h,b,e=t.querySelectorAll("link[data-precedence],style[data-precedence]"),v=[],k=0;b=e[k++];)"not all"===b.getAttribute("media")?v.push(b):("LINK"===b.tagName&&$RM.set(b.getAttribute("href"),b),r.set(b.dataset.precedence,h=b));e=0;b=[];var l,a;for(k=!0;;){if(k){var f=p[e++];if(!f){k=!1;e=0;continue}var c=!1,m=0;var d=f[m++];if(a=$RM.get(d)){var g=a._p;c=!0}else{a=t.createElement("link");a.href=d;a.rel=\n"stylesheet";for(a.dataset.precedence=l=f[m++];g=f[m++];)a.setAttribute(g,f[m++]);g=a._p=new Promise(function(q,x){a.onload=u.bind(a,q);a.onerror=u.bind(a,x)});$RM.set(d,a)}d=a.getAttribute("media");!g||d&&!matchMedia(d).matches||b.push(g);if(c)continue}else{a=v[e++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=r.get(l)||h;c===h&&(h=a);r.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=t.head,c.insertBefore(a,c.firstChild))}if(p=document.getElementById(n))p.previousSibling.data=\n"$~";Promise.all(b).then($RC.bind(null,n,w),$RX.bind(null,n,"CSS failed to load"))};$RR("'
2456
2560
  ),
2457
2561
  completeBoundaryWithStylesScript1Partial = stringToPrecomputedChunk('$RR("'),
2458
2562
  completeBoundaryScript2 = stringToPrecomputedChunk('","'),
@@ -2463,7 +2567,10 @@ stringToPrecomputedChunk('<template data-rci="" data-bid="');
2463
2567
  stringToPrecomputedChunk('<template data-rri="" data-bid="');
2464
2568
  stringToPrecomputedChunk('" data-sid="');
2465
2569
  stringToPrecomputedChunk('" data-sty="');
2466
- var clientRenderScript1Full = stringToPrecomputedChunk(
2570
+ var clientRenderScriptFunctionOnly = stringToPrecomputedChunk(
2571
+ '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};'
2572
+ ),
2573
+ clientRenderScript1Full = stringToPrecomputedChunk(
2467
2574
  '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};;$RX("'
2468
2575
  ),
2469
2576
  clientRenderScript1Partial = stringToPrecomputedChunk('$RX("'),
@@ -2520,7 +2627,7 @@ function escapeJSObjectForInstructionScripts(input) {
2520
2627
  );
2521
2628
  }
2522
2629
  var lateStyleTagResourceOpen1 = stringToPrecomputedChunk(
2523
- '<style media="not all" data-precedence="'
2630
+ ' media="not all" data-precedence="'
2524
2631
  ),
2525
2632
  lateStyleTagResourceOpen2 = stringToPrecomputedChunk('" data-href="'),
2526
2633
  lateStyleTagResourceOpen3 = stringToPrecomputedChunk('">'),
@@ -2532,6 +2639,7 @@ function flushStyleTagsLateForBoundary(styleQueue) {
2532
2639
  hrefs = styleQueue.hrefs,
2533
2640
  i = 0;
2534
2641
  if (hrefs.length) {
2642
+ writeChunk(this, currentlyFlushingRenderState.startInlineStyle);
2535
2643
  writeChunk(this, lateStyleTagResourceOpen1);
2536
2644
  writeChunk(this, styleQueue.precedence);
2537
2645
  for (writeChunk(this, lateStyleTagResourceOpen2); i < hrefs.length - 1; i++)
@@ -2556,7 +2664,9 @@ function hasStylesToHoist(stylesheet) {
2556
2664
  function writeHoistablesForBoundary(destination, hoistableState, renderState) {
2557
2665
  currentlyRenderingBoundaryHasStylesToHoist = !1;
2558
2666
  destinationHasCapacity = !0;
2667
+ currentlyFlushingRenderState = renderState;
2559
2668
  hoistableState.styles.forEach(flushStyleTagsLateForBoundary, destination);
2669
+ currentlyFlushingRenderState = null;
2560
2670
  hoistableState.stylesheets.forEach(hasStylesToHoist);
2561
2671
  currentlyRenderingBoundaryHasStylesToHoist &&
2562
2672
  (renderState.stylesToHoist = !0);
@@ -2574,9 +2684,7 @@ function flushStyleInPreamble(stylesheet) {
2574
2684
  stylesheetFlushingQueue.length = 0;
2575
2685
  stylesheet.state = 2;
2576
2686
  }
2577
- var styleTagResourceOpen1 = stringToPrecomputedChunk(
2578
- '<style data-precedence="'
2579
- ),
2687
+ var styleTagResourceOpen1 = stringToPrecomputedChunk(' data-precedence="'),
2580
2688
  styleTagResourceOpen2 = stringToPrecomputedChunk('" data-href="'),
2581
2689
  spaceSeparator = stringToPrecomputedChunk(" "),
2582
2690
  styleTagResourceOpen3 = stringToPrecomputedChunk('">'),
@@ -2588,6 +2696,7 @@ function flushStylesInPreamble(styleQueue) {
2588
2696
  var rules = styleQueue.rules,
2589
2697
  hrefs = styleQueue.hrefs;
2590
2698
  if (!hasStylesheets || hrefs.length) {
2699
+ writeChunk(this, currentlyFlushingRenderState.startInlineStyle);
2591
2700
  writeChunk(this, styleTagResourceOpen1);
2592
2701
  writeChunk(this, styleQueue.precedence);
2593
2702
  styleQueue = 0;
@@ -2636,6 +2745,18 @@ function preloadLateStyles(styleQueue) {
2636
2745
  styleQueue.sheets.forEach(preloadLateStyle, this);
2637
2746
  styleQueue.sheets.clear();
2638
2747
  }
2748
+ stringToPrecomputedChunk('<link rel="expect" href="#');
2749
+ stringToPrecomputedChunk('" blocking="render"/>');
2750
+ var completedShellIdAttributeStart = stringToPrecomputedChunk(' id="');
2751
+ function pushCompletedShellIdAttribute(target, resumableState) {
2752
+ 0 === (resumableState.instructions & 32) &&
2753
+ ((resumableState.instructions |= 32),
2754
+ target.push(
2755
+ completedShellIdAttributeStart,
2756
+ stringToChunk(escapeTextForBrowser("_" + resumableState.idPrefix + "R_")),
2757
+ attributeEnd
2758
+ ));
2759
+ }
2639
2760
  var arrayFirstOpenBracket = stringToPrecomputedChunk("["),
2640
2761
  arraySubsequentOpenBracket = stringToPrecomputedChunk(",["),
2641
2762
  arrayInterstitial = stringToPrecomputedChunk(","),
@@ -2748,7 +2869,7 @@ function writeStyleResourceAttributeInJS(destination, name, value) {
2748
2869
  );
2749
2870
  }
2750
2871
  function createHoistableState() {
2751
- return { styles: new Set(), stylesheets: new Set() };
2872
+ return { styles: new Set(), stylesheets: new Set(), suspenseyImages: !1 };
2752
2873
  }
2753
2874
  function prefetchDNS(href) {
2754
2875
  var request = currentRequest ? currentRequest : null;
@@ -3153,6 +3274,14 @@ function hoistStyleQueueDependency(styleQueue) {
3153
3274
  function hoistStylesheetDependency(stylesheet) {
3154
3275
  this.stylesheets.add(stylesheet);
3155
3276
  }
3277
+ function hoistHoistables(parentState, childState) {
3278
+ childState.styles.forEach(hoistStyleQueueDependency, parentState);
3279
+ childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
3280
+ childState.suspenseyImages && (parentState.suspenseyImages = !0);
3281
+ }
3282
+ function hasSuspenseyContent(hoistableState) {
3283
+ return 0 < hoistableState.stylesheets.size || hoistableState.suspenseyImages;
3284
+ }
3156
3285
  var bind = Function.prototype.bind,
3157
3286
  REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference");
3158
3287
  function getComponentNameFromType(type) {
@@ -3181,7 +3310,7 @@ function getComponentNameFromType(type) {
3181
3310
  case REACT_PORTAL_TYPE:
3182
3311
  return "Portal";
3183
3312
  case REACT_CONTEXT_TYPE:
3184
- return (type.displayName || "Context") + ".Provider";
3313
+ return type.displayName || "Context";
3185
3314
  case REACT_CONSUMER_TYPE:
3186
3315
  return (type._context.displayName || "Context") + ".Consumer";
3187
3316
  case REACT_FORWARD_REF_TYPE:
@@ -3311,13 +3440,13 @@ function clz32Fallback(x) {
3311
3440
  x >>>= 0;
3312
3441
  return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;
3313
3442
  }
3443
+ function noop() {}
3314
3444
  var SuspenseException = Error(formatProdErrorMessage(460));
3315
- function noop$2() {}
3316
3445
  function trackUsedThenable(thenableState, thenable, index) {
3317
3446
  index = thenableState[index];
3318
3447
  void 0 === index
3319
3448
  ? thenableState.push(thenable)
3320
- : index !== thenable && (thenable.then(noop$2, noop$2), (thenable = index));
3449
+ : index !== thenable && (thenable.then(noop, noop), (thenable = index));
3321
3450
  switch (thenable.status) {
3322
3451
  case "fulfilled":
3323
3452
  return thenable.value;
@@ -3325,7 +3454,7 @@ function trackUsedThenable(thenableState, thenable, index) {
3325
3454
  throw thenable.reason;
3326
3455
  default:
3327
3456
  "string" === typeof thenable.status
3328
- ? thenable.then(noop$2, noop$2)
3457
+ ? thenable.then(noop, noop)
3329
3458
  : ((thenableState = thenable),
3330
3459
  (thenableState.status = "pending"),
3331
3460
  thenableState.then(
@@ -3496,6 +3625,9 @@ function dispatchAction(componentIdentity, queue, action) {
3496
3625
  queue.next = componentIdentity;
3497
3626
  }
3498
3627
  }
3628
+ function throwOnUseEffectEventCall() {
3629
+ throw Error(formatProdErrorMessage(440));
3630
+ }
3499
3631
  function unsupportedStartTransition() {
3500
3632
  throw Error(formatProdErrorMessage(394));
3501
3633
  }
@@ -3573,7 +3705,6 @@ function unwrapThenable(thenable) {
3573
3705
  function unsupportedRefresh() {
3574
3706
  throw Error(formatProdErrorMessage(393));
3575
3707
  }
3576
- function noop$1() {}
3577
3708
  var HooksDispatcher = {
3578
3709
  readContext: function (context) {
3579
3710
  return context._currentValue;
@@ -3603,16 +3734,16 @@ var HooksDispatcher = {
3603
3734
  useState: function (initialState) {
3604
3735
  return useReducer(basicStateReducer, initialState);
3605
3736
  },
3606
- useInsertionEffect: noop$1,
3607
- useLayoutEffect: noop$1,
3737
+ useInsertionEffect: noop,
3738
+ useLayoutEffect: noop,
3608
3739
  useCallback: function (callback, deps) {
3609
3740
  return useMemo(function () {
3610
3741
  return callback;
3611
3742
  }, deps);
3612
3743
  },
3613
- useImperativeHandle: noop$1,
3614
- useEffect: noop$1,
3615
- useDebugValue: noop$1,
3744
+ useImperativeHandle: noop,
3745
+ useEffect: noop,
3746
+ useDebugValue: noop,
3616
3747
  useDeferredValue: function (value, initialValue) {
3617
3748
  resolveCurrentlyRenderingComponent();
3618
3749
  return void 0 !== initialValue ? initialValue : value;
@@ -3634,9 +3765,9 @@ var HooksDispatcher = {
3634
3765
  if (null === resumableState) throw Error(formatProdErrorMessage(404));
3635
3766
  overflow = localIdCounter++;
3636
3767
  JSCompiler_inline_result =
3637
- "\u00ab" + resumableState.idPrefix + "R" + JSCompiler_inline_result;
3768
+ "_" + resumableState.idPrefix + "R_" + JSCompiler_inline_result;
3638
3769
  0 < overflow && (JSCompiler_inline_result += "H" + overflow.toString(32));
3639
- return JSCompiler_inline_result + "\u00bb";
3770
+ return JSCompiler_inline_result + "_";
3640
3771
  },
3641
3772
  useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {
3642
3773
  if (void 0 === getServerSnapshot)
@@ -3660,12 +3791,18 @@ var HooksDispatcher = {
3660
3791
  },
3661
3792
  useCacheRefresh: function () {
3662
3793
  return unsupportedRefresh;
3794
+ },
3795
+ useEffectEvent: function () {
3796
+ return throwOnUseEffectEventCall;
3663
3797
  }
3664
3798
  },
3665
3799
  currentResumableState = null,
3666
3800
  DefaultAsyncDispatcher = {
3667
3801
  getCacheForType: function () {
3668
3802
  throw Error(formatProdErrorMessage(248));
3803
+ },
3804
+ cacheSignal: function () {
3805
+ throw Error(formatProdErrorMessage(248));
3669
3806
  }
3670
3807
  },
3671
3808
  prefix,
@@ -3843,13 +3980,37 @@ function describeComponentStackByType(type) {
3843
3980
  }
3844
3981
  return describeComponentStackByType(type);
3845
3982
  }
3846
- if ("string" === typeof type.name)
3847
- return (
3848
- (payload = type.env),
3849
- describeBuiltInComponentFrame(
3850
- type.name + (payload ? " [" + payload + "]" : "")
3851
- )
3852
- );
3983
+ if ("string" === typeof type.name) {
3984
+ a: {
3985
+ payload = type.name;
3986
+ lazyComponent = type.env;
3987
+ var location = type.debugLocation;
3988
+ if (
3989
+ null != location &&
3990
+ ((type = Error.prepareStackTrace),
3991
+ (Error.prepareStackTrace = void 0),
3992
+ (location = location.stack),
3993
+ (Error.prepareStackTrace = type),
3994
+ location.startsWith("Error: react-stack-top-frame\n") &&
3995
+ (location = location.slice(29)),
3996
+ (type = location.indexOf("\n")),
3997
+ -1 !== type && (location = location.slice(type + 1)),
3998
+ (type = location.indexOf("react_stack_bottom_frame")),
3999
+ -1 !== type && (type = location.lastIndexOf("\n", type)),
4000
+ (type = -1 !== type ? (location = location.slice(0, type)) : ""),
4001
+ (location = type.lastIndexOf("\n")),
4002
+ (type = -1 === location ? type : type.slice(location + 1)),
4003
+ -1 !== type.indexOf(payload))
4004
+ ) {
4005
+ payload = "\n" + type;
4006
+ break a;
4007
+ }
4008
+ payload = describeBuiltInComponentFrame(
4009
+ payload + (lazyComponent ? " [" + lazyComponent + "]" : "")
4010
+ );
4011
+ }
4012
+ return payload;
4013
+ }
3853
4014
  }
3854
4015
  switch (type) {
3855
4016
  case REACT_SUSPENSE_LIST_TYPE:
@@ -3859,6 +4020,12 @@ function describeComponentStackByType(type) {
3859
4020
  }
3860
4021
  return "";
3861
4022
  }
4023
+ function isEligibleForOutlining(request, boundary) {
4024
+ return (
4025
+ (500 < boundary.byteSize || hasSuspenseyContent(boundary.contentState)) &&
4026
+ null === boundary.contentPreamble
4027
+ );
4028
+ }
3862
4029
  function defaultErrorHandler(error) {
3863
4030
  if (
3864
4031
  "object" === typeof error &&
@@ -3879,7 +4046,7 @@ function defaultErrorHandler(error) {
3879
4046
  : error.splice(
3880
4047
  0,
3881
4048
  0,
3882
- "%c%s%c ",
4049
+ "%c%s%c",
3883
4050
  "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",
3884
4051
  " " + JSCompiler_inline_result + " ",
3885
4052
  ""
@@ -3890,7 +4057,6 @@ function defaultErrorHandler(error) {
3890
4057
  } else console.error(error);
3891
4058
  return null;
3892
4059
  }
3893
- function noop() {}
3894
4060
  function RequestInstance(
3895
4061
  resumableState,
3896
4062
  renderState,
@@ -3916,6 +4082,7 @@ function RequestInstance(
3916
4082
  this.fatalError = null;
3917
4083
  this.pendingRootTasks = this.allPendingTasks = this.nextSegmentId = 0;
3918
4084
  this.completedPreambleSegments = this.completedRootSegment = null;
4085
+ this.byteSize = 0;
3919
4086
  this.abortableTasks = abortSet;
3920
4087
  this.pingedTasks = [];
3921
4088
  this.clientRenderedBoundaries = [];
@@ -3981,7 +4148,7 @@ function createRequest(
3981
4148
  null,
3982
4149
  emptyTreeContext,
3983
4150
  null,
3984
- !1
4151
+ null
3985
4152
  );
3986
4153
  pushComponentStack(children);
3987
4154
  resumableState.pingedTasks.push(children);
@@ -4021,6 +4188,116 @@ function createPrerenderRequest(
4021
4188
  };
4022
4189
  return children;
4023
4190
  }
4191
+ function resumeRequest(
4192
+ children,
4193
+ postponedState,
4194
+ renderState,
4195
+ onError,
4196
+ onAllReady,
4197
+ onShellReady,
4198
+ onShellError,
4199
+ onFatalError,
4200
+ onPostpone
4201
+ ) {
4202
+ renderState = new RequestInstance(
4203
+ postponedState.resumableState,
4204
+ renderState,
4205
+ postponedState.rootFormatContext,
4206
+ postponedState.progressiveChunkSize,
4207
+ onError,
4208
+ onAllReady,
4209
+ onShellReady,
4210
+ onShellError,
4211
+ onFatalError,
4212
+ onPostpone,
4213
+ null
4214
+ );
4215
+ renderState.nextSegmentId = postponedState.nextSegmentId;
4216
+ if ("number" === typeof postponedState.replaySlots)
4217
+ return (
4218
+ (onError = createPendingSegment(
4219
+ renderState,
4220
+ 0,
4221
+ null,
4222
+ postponedState.rootFormatContext,
4223
+ !1,
4224
+ !1
4225
+ )),
4226
+ (onError.parentFlushed = !0),
4227
+ (children = createRenderTask(
4228
+ renderState,
4229
+ null,
4230
+ children,
4231
+ -1,
4232
+ null,
4233
+ onError,
4234
+ null,
4235
+ null,
4236
+ renderState.abortableTasks,
4237
+ null,
4238
+ postponedState.rootFormatContext,
4239
+ null,
4240
+ emptyTreeContext,
4241
+ null,
4242
+ null
4243
+ )),
4244
+ pushComponentStack(children),
4245
+ renderState.pingedTasks.push(children),
4246
+ renderState
4247
+ );
4248
+ children = createReplayTask(
4249
+ renderState,
4250
+ null,
4251
+ {
4252
+ nodes: postponedState.replayNodes,
4253
+ slots: postponedState.replaySlots,
4254
+ pendingTasks: 0
4255
+ },
4256
+ children,
4257
+ -1,
4258
+ null,
4259
+ null,
4260
+ renderState.abortableTasks,
4261
+ null,
4262
+ postponedState.rootFormatContext,
4263
+ null,
4264
+ emptyTreeContext,
4265
+ null,
4266
+ null
4267
+ );
4268
+ pushComponentStack(children);
4269
+ renderState.pingedTasks.push(children);
4270
+ return renderState;
4271
+ }
4272
+ function resumeAndPrerenderRequest(
4273
+ children,
4274
+ postponedState,
4275
+ renderState,
4276
+ onError,
4277
+ onAllReady,
4278
+ onShellReady,
4279
+ onShellError,
4280
+ onFatalError,
4281
+ onPostpone
4282
+ ) {
4283
+ children = resumeRequest(
4284
+ children,
4285
+ postponedState,
4286
+ renderState,
4287
+ onError,
4288
+ onAllReady,
4289
+ onShellReady,
4290
+ onShellError,
4291
+ onFatalError,
4292
+ onPostpone
4293
+ );
4294
+ children.trackedPostpones = {
4295
+ workingMap: new Map(),
4296
+ rootNodes: [],
4297
+ rootSlots: null
4298
+ };
4299
+ return children;
4300
+ }
4024
4301
  var currentRequest = null;
4025
4302
  function pingTask(request, task) {
4026
4303
  request.pingedTasks.push(task);
@@ -4036,15 +4313,17 @@ function pingTask(request, task) {
4036
4313
  }
4037
4314
  function createSuspenseBoundary(
4038
4315
  request,
4316
+ row,
4039
4317
  fallbackAbortableTasks,
4040
4318
  contentPreamble,
4041
4319
  fallbackPreamble
4042
4320
  ) {
4043
- return {
4321
+ fallbackAbortableTasks = {
4044
4322
  status: 0,
4045
4323
  rootSegmentID: -1,
4046
4324
  parentFlushed: !1,
4047
4325
  pendingTasks: 0,
4326
+ row: row,
4048
4327
  completedSegments: [],
4049
4328
  byteSize: 0,
4050
4329
  fallbackAbortableTasks: fallbackAbortableTasks,
@@ -4056,6 +4335,17 @@ function createSuspenseBoundary(
4056
4335
  trackedContentKeyPath: null,
4057
4336
  trackedFallbackNode: null
4058
4337
  };
4338
+ null !== row &&
4339
+ (row.pendingTasks++,
4340
+ (contentPreamble = row.boundaries),
4341
+ null !== contentPreamble &&
4342
+ (request.allPendingTasks++,
4343
+ fallbackAbortableTasks.pendingTasks++,
4344
+ contentPreamble.push(fallbackAbortableTasks)),
4345
+ (request = row.inheritedHoistables),
4346
+ null !== request &&
4347
+ hoistHoistables(fallbackAbortableTasks.contentState, request));
4348
+ return fallbackAbortableTasks;
4059
4349
  }
4060
4350
  function createRenderTask(
4061
4351
  request,
@@ -4071,13 +4361,14 @@ function createRenderTask(
4071
4361
  formatContext,
4072
4362
  context,
4073
4363
  treeContext,
4074
- componentStack,
4075
- isFallback
4364
+ row,
4365
+ componentStack
4076
4366
  ) {
4077
4367
  request.allPendingTasks++;
4078
4368
  null === blockedBoundary
4079
4369
  ? request.pendingRootTasks++
4080
4370
  : blockedBoundary.pendingTasks++;
4371
+ null !== row && row.pendingTasks++;
4081
4372
  var task = {
4082
4373
  replay: null,
4083
4374
  node: node,
@@ -4094,9 +4385,9 @@ function createRenderTask(
4094
4385
  formatContext: formatContext,
4095
4386
  context: context,
4096
4387
  treeContext: treeContext,
4388
+ row: row,
4097
4389
  componentStack: componentStack,
4098
- thenableState: thenableState,
4099
- isFallback: isFallback
4390
+ thenableState: thenableState
4100
4391
  };
4101
4392
  abortSet.add(task);
4102
4393
  return task;
@@ -4114,13 +4405,14 @@ function createReplayTask(
4114
4405
  formatContext,
4115
4406
  context,
4116
4407
  treeContext,
4117
- componentStack,
4118
- isFallback
4408
+ row,
4409
+ componentStack
4119
4410
  ) {
4120
4411
  request.allPendingTasks++;
4121
4412
  null === blockedBoundary
4122
4413
  ? request.pendingRootTasks++
4123
4414
  : blockedBoundary.pendingTasks++;
4415
+ null !== row && row.pendingTasks++;
4124
4416
  replay.pendingTasks++;
4125
4417
  var task = {
4126
4418
  replay: replay,
@@ -4138,9 +4430,9 @@ function createReplayTask(
4138
4430
  formatContext: formatContext,
4139
4431
  context: context,
4140
4432
  treeContext: treeContext,
4433
+ row: row,
4141
4434
  componentStack: componentStack,
4142
- thenableState: thenableState,
4143
- isFallback: isFallback
4435
+ thenableState: thenableState
4144
4436
  };
4145
4437
  abortSet.add(task);
4146
4438
  return task;
@@ -4175,6 +4467,13 @@ function pushComponentStack(task) {
4175
4467
  task.componentStack = { parent: task.componentStack, type: node.type };
4176
4468
  }
4177
4469
  }
4470
+ function replaceSuspenseComponentStackWithSuspenseFallbackStack(
4471
+ componentStack
4472
+ ) {
4473
+ return null === componentStack
4474
+ ? null
4475
+ : { parent: componentStack.parent, type: "Suspense Fallback" };
4476
+ }
4178
4477
  function getThrownInfo(node$jscomp$0) {
4179
4478
  var errorInfo = {};
4180
4479
  node$jscomp$0 &&
@@ -4216,6 +4515,170 @@ function fatalError(request, error) {
4216
4515
  ? ((request.status = 14), closeWithError(request.destination, error))
4217
4516
  : ((request.status = 13), (request.fatalError = error));
4218
4517
  }
4518
+ function finishSuspenseListRow(request, row) {
4519
+ unblockSuspenseListRow(request, row.next, row.hoistables);
4520
+ }
4521
+ function unblockSuspenseListRow(request, unblockedRow, inheritedHoistables) {
4522
+ for (; null !== unblockedRow; ) {
4523
+ null !== inheritedHoistables &&
4524
+ (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
4525
+ (unblockedRow.inheritedHoistables = inheritedHoistables));
4526
+ var unblockedBoundaries = unblockedRow.boundaries;
4527
+ if (null !== unblockedBoundaries) {
4528
+ unblockedRow.boundaries = null;
4529
+ for (var i = 0; i < unblockedBoundaries.length; i++) {
4530
+ var unblockedBoundary = unblockedBoundaries[i];
4531
+ null !== inheritedHoistables &&
4532
+ hoistHoistables(unblockedBoundary.contentState, inheritedHoistables);
4533
+ finishedTask(request, unblockedBoundary, null, null);
4534
+ }
4535
+ }
4536
+ unblockedRow.pendingTasks--;
4537
+ if (0 < unblockedRow.pendingTasks) break;
4538
+ inheritedHoistables = unblockedRow.hoistables;
4539
+ unblockedRow = unblockedRow.next;
4540
+ }
4541
+ }
4542
+ function tryToResolveTogetherRow(request, togetherRow) {
4543
+ var boundaries = togetherRow.boundaries;
4544
+ if (null !== boundaries && togetherRow.pendingTasks === boundaries.length) {
4545
+ for (var allCompleteAndInlinable = !0, i = 0; i < boundaries.length; i++) {
4546
+ var rowBoundary = boundaries[i];
4547
+ if (
4548
+ 1 !== rowBoundary.pendingTasks ||
4549
+ rowBoundary.parentFlushed ||
4550
+ isEligibleForOutlining(request, rowBoundary)
4551
+ ) {
4552
+ allCompleteAndInlinable = !1;
4553
+ break;
4554
+ }
4555
+ }
4556
+ allCompleteAndInlinable &&
4557
+ unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
4558
+ }
4559
+ }
4560
+ function createSuspenseListRow(previousRow) {
4561
+ var newRow = {
4562
+ pendingTasks: 1,
4563
+ boundaries: null,
4564
+ hoistables: createHoistableState(),
4565
+ inheritedHoistables: null,
4566
+ together: !1,
4567
+ next: null
4568
+ };
4569
+ null !== previousRow &&
4570
+ 0 < previousRow.pendingTasks &&
4571
+ (newRow.pendingTasks++,
4572
+ (newRow.boundaries = []),
4573
+ (previousRow.next = newRow));
4574
+ return newRow;
4575
+ }
4576
+ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
4577
+ var prevKeyPath = task.keyPath,
4578
+ prevTreeContext = task.treeContext,
4579
+ prevRow = task.row;
4580
+ task.keyPath = keyPath;
4581
+ keyPath = rows.length;
4582
+ var previousSuspenseListRow = null;
4583
+ if (null !== task.replay) {
4584
+ var resumeSlots = task.replay.slots;
4585
+ if (null !== resumeSlots && "object" === typeof resumeSlots)
4586
+ for (var n = 0; n < keyPath; n++) {
4587
+ var i =
4588
+ "backwards" !== revealOrder &&
4589
+ "unstable_legacy-backwards" !== revealOrder
4590
+ ? n
4591
+ : keyPath - 1 - n,
4592
+ node = rows[i];
4593
+ task.row = previousSuspenseListRow = createSuspenseListRow(
4594
+ previousSuspenseListRow
4595
+ );
4596
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
4597
+ var resumeSegmentID = resumeSlots[i];
4598
+ "number" === typeof resumeSegmentID
4599
+ ? (resumeNode(request, task, resumeSegmentID, node, i),
4600
+ delete resumeSlots[i])
4601
+ : renderNode(request, task, node, i);
4602
+ 0 === --previousSuspenseListRow.pendingTasks &&
4603
+ finishSuspenseListRow(request, previousSuspenseListRow);
4604
+ }
4605
+ else
4606
+ for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
4607
+ (n =
4608
+ "backwards" !== revealOrder &&
4609
+ "unstable_legacy-backwards" !== revealOrder
4610
+ ? resumeSlots
4611
+ : keyPath - 1 - resumeSlots),
4612
+ (i = rows[n]),
4613
+ (task.row = previousSuspenseListRow =
4614
+ createSuspenseListRow(previousSuspenseListRow)),
4615
+ (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
4616
+ renderNode(request, task, i, n),
4617
+ 0 === --previousSuspenseListRow.pendingTasks &&
4618
+ finishSuspenseListRow(request, previousSuspenseListRow);
4619
+ } else if (
4620
+ "backwards" !== revealOrder &&
4621
+ "unstable_legacy-backwards" !== revealOrder
4622
+ )
4623
+ for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
4624
+ (resumeSlots = rows[revealOrder]),
4625
+ (task.row = previousSuspenseListRow =
4626
+ createSuspenseListRow(previousSuspenseListRow)),
4627
+ (task.treeContext = pushTreeContext(
4628
+ prevTreeContext,
4629
+ keyPath,
4630
+ revealOrder
4631
+ )),
4632
+ renderNode(request, task, resumeSlots, revealOrder),
4633
+ 0 === --previousSuspenseListRow.pendingTasks &&
4634
+ finishSuspenseListRow(request, previousSuspenseListRow);
4635
+ else {
4636
+ revealOrder = task.blockedSegment;
4637
+ resumeSlots = revealOrder.children.length;
4638
+ n = revealOrder.chunks.length;
4639
+ for (i = keyPath - 1; 0 <= i; i--) {
4640
+ node = rows[i];
4641
+ task.row = previousSuspenseListRow = createSuspenseListRow(
4642
+ previousSuspenseListRow
4643
+ );
4644
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
4645
+ resumeSegmentID = createPendingSegment(
4646
+ request,
4647
+ n,
4648
+ null,
4649
+ task.formatContext,
4650
+ 0 === i ? revealOrder.lastPushedText : !0,
4651
+ !0
4652
+ );
4653
+ revealOrder.children.splice(resumeSlots, 0, resumeSegmentID);
4654
+ task.blockedSegment = resumeSegmentID;
4655
+ try {
4656
+ renderNode(request, task, node, i),
4657
+ resumeSegmentID.lastPushedText &&
4658
+ resumeSegmentID.textEmbedded &&
4659
+ resumeSegmentID.chunks.push(textSeparator),
4660
+ (resumeSegmentID.status = 1),
4661
+ finishedSegment(request, task.blockedBoundary, resumeSegmentID),
4662
+ 0 === --previousSuspenseListRow.pendingTasks &&
4663
+ finishSuspenseListRow(request, previousSuspenseListRow);
4664
+ } catch (thrownValue) {
4665
+ throw (
4666
+ ((resumeSegmentID.status = 12 === request.status ? 3 : 4),
4667
+ thrownValue)
4668
+ );
4669
+ }
4670
+ }
4671
+ task.blockedSegment = revealOrder;
4672
+ revealOrder.lastPushedText = !1;
4673
+ }
4674
+ null !== prevRow &&
4675
+ null !== previousSuspenseListRow &&
4676
+ 0 < previousSuspenseListRow.pendingTasks &&
4677
+ (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
4678
+ task.treeContext = prevTreeContext;
4679
+ task.row = prevRow;
4680
+ task.keyPath = prevKeyPath;
4681
+ }
4219
4682
  function renderWithHooks(request, task, keyPath, Component, props, secondArg) {
4220
4683
  var prevThenableState = task.thenableState;
4221
4684
  task.thenableState = null;
@@ -4283,9 +4746,9 @@ function renderElement(request, task, keyPath, type, props, ref) {
4283
4746
  var defaultProps = type.defaultProps;
4284
4747
  if (defaultProps) {
4285
4748
  newProps === props && (newProps = assign({}, newProps, props));
4286
- for (var propName$33 in defaultProps)
4287
- void 0 === newProps[propName$33] &&
4288
- (newProps[propName$33] = defaultProps[propName$33]);
4749
+ for (var propName$44 in defaultProps)
4750
+ void 0 === newProps[propName$44] &&
4751
+ (newProps[propName$44] = defaultProps[propName$44]);
4289
4752
  }
4290
4753
  props = newProps;
4291
4754
  newProps = emptyContextObject;
@@ -4345,16 +4808,16 @@ function renderElement(request, task, keyPath, type, props, ref) {
4345
4808
  defaultProps = ref ? type[0] : newProps.state;
4346
4809
  initialState = !0;
4347
4810
  for (ref = ref ? 1 : 0; ref < type.length; ref++)
4348
- (propName$33 = type[ref]),
4349
- (propName$33 =
4350
- "function" === typeof propName$33
4351
- ? propName$33.call(newProps, defaultProps, props, void 0)
4352
- : propName$33),
4353
- null != propName$33 &&
4811
+ (propName$44 = type[ref]),
4812
+ (propName$44 =
4813
+ "function" === typeof propName$44
4814
+ ? propName$44.call(newProps, defaultProps, props, void 0)
4815
+ : propName$44),
4816
+ null != propName$44 &&
4354
4817
  (initialState
4355
4818
  ? ((initialState = !1),
4356
- (defaultProps = assign({}, defaultProps, propName$33)))
4357
- : assign(defaultProps, propName$33));
4819
+ (defaultProps = assign({}, defaultProps, propName$44)))
4820
+ : assign(defaultProps, propName$44));
4358
4821
  newProps.state = defaultProps;
4359
4822
  }
4360
4823
  else defaultProps.queue = null;
@@ -4388,7 +4851,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4388
4851
  (task.formatContext = defaultProps),
4389
4852
  (task.keyPath = initialState);
4390
4853
  else {
4391
- ref = pushStartInstance(
4854
+ initialState = pushStartInstance(
4392
4855
  newProps.chunks,
4393
4856
  type,
4394
4857
  props,
@@ -4397,47 +4860,41 @@ function renderElement(request, task, keyPath, type, props, ref) {
4397
4860
  task.blockedPreamble,
4398
4861
  task.hoistableState,
4399
4862
  task.formatContext,
4400
- newProps.lastPushedText,
4401
- task.isFallback
4863
+ newProps.lastPushedText
4402
4864
  );
4403
4865
  newProps.lastPushedText = !1;
4404
4866
  defaultProps = task.formatContext;
4405
- initialState = task.keyPath;
4867
+ ref = task.keyPath;
4406
4868
  task.keyPath = keyPath;
4407
- 3 ===
4408
- (task.formatContext = getChildFormatContext(defaultProps, type, props))
4409
- .insertionMode
4410
- ? ((keyPath = createPendingSegment(
4411
- request,
4412
- 0,
4413
- null,
4414
- task.formatContext,
4415
- !1,
4416
- !1
4417
- )),
4418
- newProps.preambleChildren.push(keyPath),
4419
- (keyPath = createRenderTask(
4420
- request,
4421
- null,
4422
- ref,
4423
- -1,
4424
- task.blockedBoundary,
4425
- keyPath,
4426
- task.blockedPreamble,
4427
- task.hoistableState,
4428
- request.abortableTasks,
4429
- task.keyPath,
4430
- task.formatContext,
4431
- task.context,
4432
- task.treeContext,
4433
- task.componentStack,
4434
- task.isFallback
4435
- )),
4436
- pushComponentStack(keyPath),
4437
- request.pingedTasks.push(keyPath))
4438
- : renderNode(request, task, ref, -1);
4869
+ if (
4870
+ 3 ===
4871
+ (task.formatContext = getChildFormatContext(defaultProps, type, props))
4872
+ .insertionMode
4873
+ ) {
4874
+ keyPath = createPendingSegment(
4875
+ request,
4876
+ 0,
4877
+ null,
4878
+ task.formatContext,
4879
+ !1,
4880
+ !1
4881
+ );
4882
+ newProps.preambleChildren.push(keyPath);
4883
+ task.blockedSegment = keyPath;
4884
+ try {
4885
+ (keyPath.status = 6),
4886
+ renderNode(request, task, initialState, -1),
4887
+ keyPath.lastPushedText &&
4888
+ keyPath.textEmbedded &&
4889
+ keyPath.chunks.push(textSeparator),
4890
+ (keyPath.status = 1),
4891
+ finishedSegment(request, task.blockedBoundary, keyPath);
4892
+ } finally {
4893
+ task.blockedSegment = newProps;
4894
+ }
4895
+ } else renderNode(request, task, initialState, -1);
4439
4896
  task.formatContext = defaultProps;
4440
- task.keyPath = initialState;
4897
+ task.keyPath = ref;
4441
4898
  a: {
4442
4899
  task = newProps.chunks;
4443
4900
  request = request.resumableState;
@@ -4492,17 +4949,67 @@ function renderElement(request, task, keyPath, type, props, ref) {
4492
4949
  task.keyPath = type;
4493
4950
  return;
4494
4951
  case REACT_ACTIVITY_TYPE:
4495
- "hidden" !== props.mode &&
4496
- ((type = task.keyPath),
4497
- (task.keyPath = keyPath),
4498
- renderNodeDestructive(request, task, props.children, -1),
4499
- (task.keyPath = type));
4952
+ type = task.blockedSegment;
4953
+ null === type
4954
+ ? "hidden" !== props.mode &&
4955
+ ((type = task.keyPath),
4956
+ (task.keyPath = keyPath),
4957
+ renderNode(request, task, props.children, -1),
4958
+ (task.keyPath = type))
4959
+ : "hidden" !== props.mode &&
4960
+ (type.chunks.push(startActivityBoundary),
4961
+ (type.lastPushedText = !1),
4962
+ (newProps = task.keyPath),
4963
+ (task.keyPath = keyPath),
4964
+ renderNode(request, task, props.children, -1),
4965
+ (task.keyPath = newProps),
4966
+ type.chunks.push(endActivityBoundary),
4967
+ (type.lastPushedText = !1));
4500
4968
  return;
4501
4969
  case REACT_SUSPENSE_LIST_TYPE:
4502
- type = task.keyPath;
4503
- task.keyPath = keyPath;
4504
- renderNodeDestructive(request, task, props.children, -1);
4505
- task.keyPath = type;
4970
+ a: {
4971
+ type = props.children;
4972
+ props = props.revealOrder;
4973
+ if (
4974
+ "forwards" === props ||
4975
+ "backwards" === props ||
4976
+ "unstable_legacy-backwards" === props
4977
+ ) {
4978
+ if (isArrayImpl(type)) {
4979
+ renderSuspenseListRows(request, task, keyPath, type, props);
4980
+ break a;
4981
+ }
4982
+ if ((newProps = getIteratorFn(type)))
4983
+ if ((newProps = newProps.call(type))) {
4984
+ defaultProps = newProps.next();
4985
+ if (!defaultProps.done) {
4986
+ do defaultProps = newProps.next();
4987
+ while (!defaultProps.done);
4988
+ renderSuspenseListRows(request, task, keyPath, type, props);
4989
+ }
4990
+ break a;
4991
+ }
4992
+ }
4993
+ "together" === props
4994
+ ? ((props = task.keyPath),
4995
+ (newProps = task.row),
4996
+ (defaultProps = task.row = createSuspenseListRow(null)),
4997
+ (defaultProps.boundaries = []),
4998
+ (defaultProps.together = !0),
4999
+ (task.keyPath = keyPath),
5000
+ renderNodeDestructive(request, task, type, -1),
5001
+ 0 === --defaultProps.pendingTasks &&
5002
+ finishSuspenseListRow(request, defaultProps),
5003
+ (task.keyPath = props),
5004
+ (task.row = newProps),
5005
+ null !== newProps &&
5006
+ 0 < defaultProps.pendingTasks &&
5007
+ (newProps.pendingTasks++, (defaultProps.next = newProps)))
5008
+ : ((props = task.keyPath),
5009
+ (task.keyPath = keyPath),
5010
+ renderNodeDestructive(request, task, type, -1),
5011
+ (task.keyPath = props));
5012
+ }
4506
5013
  return;
4507
5014
  case REACT_VIEW_TRANSITION_TYPE:
4508
5015
  case REACT_SCOPE_TYPE:
@@ -4510,43 +5017,61 @@ function renderElement(request, task, keyPath, type, props, ref) {
4510
5017
  case REACT_SUSPENSE_TYPE:
4511
5018
  a: if (null !== task.replay) {
4512
5019
  type = task.keyPath;
5020
+ newProps = task.formatContext;
5021
+ defaultProps = task.row;
4513
5022
  task.keyPath = keyPath;
5023
+ task.formatContext = getSuspenseContentFormatContext(
5024
+ request.resumableState,
5025
+ newProps
5026
+ );
5027
+ task.row = null;
4514
5028
  keyPath = props.children;
4515
5029
  try {
4516
5030
  renderNode(request, task, keyPath, -1);
4517
5031
  } finally {
4518
- task.keyPath = type;
5032
+ (task.keyPath = type),
5033
+ (task.formatContext = newProps),
5034
+ (task.row = defaultProps);
4519
5035
  }
4520
5036
  } else {
4521
5037
  type = task.keyPath;
4522
- var parentBoundary = task.blockedBoundary;
4523
- ref = task.blockedPreamble;
4524
- var parentHoistableState = task.hoistableState;
4525
- propName$33 = task.blockedSegment;
4526
- propName = props.fallback;
5038
+ ref = task.formatContext;
5039
+ var prevRow = task.row;
5040
+ propName$44 = task.blockedBoundary;
5041
+ propName = task.blockedPreamble;
5042
+ var parentHoistableState = task.hoistableState,
5043
+ parentSegment = task.blockedSegment,
5044
+ fallback = props.fallback;
4527
5045
  props = props.children;
4528
5046
  var fallbackAbortSet = new Set();
4529
5047
  var newBoundary =
4530
5048
  2 > task.formatContext.insertionMode
4531
5049
  ? createSuspenseBoundary(
4532
5050
  request,
5051
+ task.row,
4533
5052
  fallbackAbortSet,
4534
5053
  createPreambleState(),
4535
5054
  createPreambleState()
4536
5055
  )
4537
- : createSuspenseBoundary(request, fallbackAbortSet, null, null);
5056
+ : createSuspenseBoundary(
5057
+ request,
5058
+ task.row,
5059
+ fallbackAbortSet,
5060
+ null,
5061
+ null
5062
+ );
4538
5063
  null !== request.trackedPostpones &&
4539
5064
  (newBoundary.trackedContentKeyPath = keyPath);
4540
5065
  var boundarySegment = createPendingSegment(
4541
5066
  request,
4542
- propName$33.chunks.length,
5067
+ parentSegment.chunks.length,
4543
5068
  newBoundary,
4544
5069
  task.formatContext,
4545
5070
  !1,
4546
5071
  !1
4547
5072
  );
4548
- propName$33.children.push(boundarySegment);
4549
- propName$33.lastPushedText = !1;
5073
+ parentSegment.children.push(boundarySegment);
5074
+ parentSegment.lastPushedText = !1;
4550
5075
  var contentRootSegment = createPendingSegment(
4551
5076
  request,
4552
5077
  0,
@@ -4557,29 +5082,38 @@ function renderElement(request, task, keyPath, type, props, ref) {
4557
5082
  );
4558
5083
  contentRootSegment.parentFlushed = !0;
4559
5084
  if (null !== request.trackedPostpones) {
4560
- newProps = [keyPath[0], "Suspense Fallback", keyPath[2]];
4561
- defaultProps = [newProps[1], newProps[2], [], null];
4562
- request.trackedPostpones.workingMap.set(newProps, defaultProps);
4563
- newBoundary.trackedFallbackNode = defaultProps;
5085
+ newProps = task.componentStack;
5086
+ defaultProps = [keyPath[0], "Suspense Fallback", keyPath[2]];
5087
+ initialState = [defaultProps[1], defaultProps[2], [], null];
5088
+ request.trackedPostpones.workingMap.set(defaultProps, initialState);
5089
+ newBoundary.trackedFallbackNode = initialState;
4564
5090
  task.blockedSegment = boundarySegment;
4565
5091
  task.blockedPreamble = newBoundary.fallbackPreamble;
4566
- task.keyPath = newProps;
5092
+ task.keyPath = defaultProps;
5093
+ task.formatContext = getSuspenseFallbackFormatContext(
5094
+ request.resumableState,
5095
+ ref
5096
+ );
5097
+ task.componentStack =
5098
+ replaceSuspenseComponentStackWithSuspenseFallbackStack(newProps);
4567
5099
  boundarySegment.status = 6;
4568
5100
  try {
4569
- renderNode(request, task, propName, -1),
5101
+ renderNode(request, task, fallback, -1),
4570
5102
  boundarySegment.lastPushedText &&
4571
5103
  boundarySegment.textEmbedded &&
4572
5104
  boundarySegment.chunks.push(textSeparator),
4573
- (boundarySegment.status = 1);
5105
+ (boundarySegment.status = 1),
5106
+ finishedSegment(request, propName$44, boundarySegment);
4574
5107
  } catch (thrownValue) {
4575
5108
  throw (
4576
5109
  ((boundarySegment.status = 12 === request.status ? 3 : 4),
4577
5110
  thrownValue)
4578
5111
  );
4579
5112
  } finally {
4580
- (task.blockedSegment = propName$33),
4581
- (task.blockedPreamble = ref),
4582
- (task.keyPath = type);
5113
+ (task.blockedSegment = parentSegment),
5114
+ (task.blockedPreamble = propName),
5115
+ (task.keyPath = type),
5116
+ (task.formatContext = ref);
4583
5117
  }
4584
5118
  task = createRenderTask(
4585
5119
  request,
@@ -4592,11 +5126,14 @@ function renderElement(request, task, keyPath, type, props, ref) {
4592
5126
  newBoundary.contentState,
4593
5127
  task.abortSet,
4594
5128
  keyPath,
4595
- task.formatContext,
5129
+ getSuspenseContentFormatContext(
5130
+ request.resumableState,
5131
+ task.formatContext
5132
+ ),
4596
5133
  task.context,
4597
5134
  task.treeContext,
4598
- task.componentStack,
4599
- task.isFallback
5135
+ null,
5136
+ newProps
4600
5137
  );
4601
5138
  pushComponentStack(task);
4602
5139
  request.pingedTasks.push(task);
@@ -4606,6 +5143,11 @@ function renderElement(request, task, keyPath, type, props, ref) {
4606
5143
  task.hoistableState = newBoundary.contentState;
4607
5144
  task.blockedSegment = contentRootSegment;
4608
5145
  task.keyPath = keyPath;
5146
+ task.formatContext = getSuspenseContentFormatContext(
5147
+ request.resumableState,
5148
+ ref
5149
+ );
5150
+ task.row = null;
4609
5151
  contentRootSegment.status = 6;
4610
5152
  try {
4611
5153
  if (
@@ -4614,22 +5156,33 @@ function renderElement(request, task, keyPath, type, props, ref) {
4614
5156
  contentRootSegment.textEmbedded &&
4615
5157
  contentRootSegment.chunks.push(textSeparator),
4616
5158
  (contentRootSegment.status = 1),
5159
+ finishedSegment(request, newBoundary, contentRootSegment),
4617
5160
  queueCompletedSegment(newBoundary, contentRootSegment),
4618
5161
  0 === newBoundary.pendingTasks && 0 === newBoundary.status)
4619
5162
  ) {
4620
- newBoundary.status = 1;
4621
- 0 === request.pendingRootTasks &&
4622
- task.blockedPreamble &&
4623
- preparePreamble(request);
4624
- break a;
4625
- }
4626
- } catch (thrownValue$28) {
5163
+ if (
5164
+ ((newBoundary.status = 1),
5165
+ !isEligibleForOutlining(request, newBoundary))
5166
+ ) {
5167
+ null !== prevRow &&
5168
+ 0 === --prevRow.pendingTasks &&
5169
+ finishSuspenseListRow(request, prevRow);
5170
+ 0 === request.pendingRootTasks &&
5171
+ task.blockedPreamble &&
5172
+ preparePreamble(request);
5173
+ break a;
5174
+ }
5175
+ } else
5176
+ null !== prevRow &&
5177
+ prevRow.together &&
5178
+ tryToResolveTogetherRow(request, prevRow);
5179
+ } catch (thrownValue$31) {
4627
5180
  (newBoundary.status = 4),
4628
5181
  12 === request.status
4629
5182
  ? ((contentRootSegment.status = 3),
4630
5183
  (newProps = request.fatalError))
4631
5184
  : ((contentRootSegment.status = 4),
4632
- (newProps = thrownValue$28)),
5185
+ (newProps = thrownValue$31)),
4633
5186
  (defaultProps = getThrownInfo(task.componentStack)),
4634
5187
  (initialState = logRecoverableError(
4635
5188
  request,
@@ -4639,28 +5192,35 @@ function renderElement(request, task, keyPath, type, props, ref) {
4639
5192
  (newBoundary.errorDigest = initialState),
4640
5193
  untrackBoundary(request, newBoundary);
4641
5194
  } finally {
4642
- (task.blockedBoundary = parentBoundary),
4643
- (task.blockedPreamble = ref),
5195
+ (task.blockedBoundary = propName$44),
5196
+ (task.blockedPreamble = propName),
4644
5197
  (task.hoistableState = parentHoistableState),
4645
- (task.blockedSegment = propName$33),
4646
- (task.keyPath = type);
5198
+ (task.blockedSegment = parentSegment),
5199
+ (task.keyPath = type),
5200
+ (task.formatContext = ref),
5201
+ (task.row = prevRow);
4647
5202
  }
4648
5203
  task = createRenderTask(
4649
5204
  request,
4650
5205
  null,
4651
- propName,
5206
+ fallback,
4652
5207
  -1,
4653
- parentBoundary,
5208
+ propName$44,
4654
5209
  boundarySegment,
4655
5210
  newBoundary.fallbackPreamble,
4656
5211
  newBoundary.fallbackState,
4657
5212
  fallbackAbortSet,
4658
5213
  [keyPath[0], "Suspense Fallback", keyPath[2]],
4659
- task.formatContext,
5214
+ getSuspenseFallbackFormatContext(
5215
+ request.resumableState,
5216
+ task.formatContext
5217
+ ),
4660
5218
  task.context,
4661
5219
  task.treeContext,
4662
- task.componentStack,
4663
- !0
5220
+ task.row,
5221
+ replaceSuspenseComponentStackWithSuspenseFallbackStack(
5222
+ task.componentStack
5223
+ )
4664
5224
  );
4665
5225
  pushComponentStack(task);
4666
5226
  request.pingedTasks.push(task);
@@ -4672,9 +5232,9 @@ function renderElement(request, task, keyPath, type, props, ref) {
4672
5232
  switch (type.$$typeof) {
4673
5233
  case REACT_FORWARD_REF_TYPE:
4674
5234
  if ("ref" in props)
4675
- for (newBoundary in ((newProps = {}), props))
4676
- "ref" !== newBoundary &&
4677
- (newProps[newBoundary] = props[newBoundary]);
5235
+ for (parentSegment in ((newProps = {}), props))
5236
+ "ref" !== parentSegment &&
5237
+ (newProps[parentSegment] = props[parentSegment]);
4678
5238
  else newProps = props;
4679
5239
  type = renderWithHooks(
4680
5240
  request,
@@ -4697,7 +5257,6 @@ function renderElement(request, task, keyPath, type, props, ref) {
4697
5257
  case REACT_MEMO_TYPE:
4698
5258
  renderElement(request, task, keyPath, type.type, props, ref);
4699
5259
  return;
4700
- case REACT_PROVIDER_TYPE:
4701
5260
  case REACT_CONTEXT_TYPE:
4702
5261
  defaultProps = props.children;
4703
5262
  newProps = task.keyPath;
@@ -4760,6 +5319,7 @@ function resumeNode(request, task, segmentId, node, childIndex) {
4760
5319
  (task.blockedSegment = resumedSegment),
4761
5320
  renderNode(request, task, node, childIndex),
4762
5321
  (resumedSegment.status = 1),
5322
+ finishedSegment(request, blockedBoundary, resumedSegment),
4763
5323
  null === blockedBoundary
4764
5324
  ? (request.completedRootSegment = resumedSegment)
4765
5325
  : (queueCompletedSegment(blockedBoundary, resumedSegment),
@@ -4831,17 +5391,20 @@ function retryNode(request, task) {
4831
5391
  "function" === typeof x.then)
4832
5392
  )
4833
5393
  throw (
4834
- (task.node === keyOrIndex && (task.replay = replay),
5394
+ (task.node === keyOrIndex
5395
+ ? (task.replay = replay)
5396
+ : childIndex.splice(node, 1),
4835
5397
  x)
4836
5398
  );
4837
5399
  task.replay.pendingTasks--;
4838
5400
  props = getThrownInfo(task.componentStack);
4839
- key = task.blockedBoundary;
5401
+ key = request;
5402
+ request = task.blockedBoundary;
4840
5403
  type = x;
4841
- props = logRecoverableError(request, type, props);
5404
+ props = logRecoverableError(key, type, props);
4842
5405
  abortRemainingReplayNodes(
4843
- request,
4844
5406
  key,
5407
+ request,
4845
5408
  childNodes,
4846
5409
  name,
4847
5410
  type,
@@ -4868,6 +5431,8 @@ function retryNode(request, task) {
4868
5431
  node$jscomp$0 =
4869
5432
  null === node$jscomp$0[4] ? null : node$jscomp$0[4][3];
4870
5433
  var prevKeyPath = task.keyPath,
5434
+ prevContext = task.formatContext,
5435
+ prevRow = task.row,
4871
5436
  previousReplaySet = task.replay,
4872
5437
  parentBoundary = task.blockedBoundary,
4873
5438
  parentHoistableState = task.hoistableState,
@@ -4878,12 +5443,14 @@ function retryNode(request, task) {
4878
5443
  2 > task.formatContext.insertionMode
4879
5444
  ? createSuspenseBoundary(
4880
5445
  request,
5446
+ task.row,
4881
5447
  fallbackAbortSet,
4882
5448
  createPreambleState(),
4883
5449
  createPreambleState()
4884
5450
  )
4885
5451
  : createSuspenseBoundary(
4886
5452
  request,
5453
+ task.row,
4887
5454
  fallbackAbortSet,
4888
5455
  null,
4889
5456
  null
@@ -4893,6 +5460,11 @@ function retryNode(request, task) {
4893
5460
  task.blockedBoundary = props;
4894
5461
  task.hoistableState = props.contentState;
4895
5462
  task.keyPath = key;
5463
+ task.formatContext = getSuspenseContentFormatContext(
5464
+ request.resumableState,
5465
+ prevContext
5466
+ );
5467
+ task.row = null;
4896
5468
  task.replay = {
4897
5469
  nodes: ref,
4898
5470
  slots: name,
@@ -4926,9 +5498,11 @@ function retryNode(request, task) {
4926
5498
  (task.blockedBoundary = parentBoundary),
4927
5499
  (task.hoistableState = parentHoistableState),
4928
5500
  (task.replay = previousReplaySet),
4929
- (task.keyPath = prevKeyPath);
5501
+ (task.keyPath = prevKeyPath),
5502
+ (task.formatContext = prevContext),
5503
+ (task.row = prevRow);
4930
5504
  }
4931
- task = createReplayTask(
5505
+ childNodes = createReplayTask(
4932
5506
  request,
4933
5507
  null,
4934
5508
  {
@@ -4942,14 +5516,19 @@ function retryNode(request, task) {
4942
5516
  props.fallbackState,
4943
5517
  fallbackAbortSet,
4944
5518
  [key[0], "Suspense Fallback", key[2]],
4945
- task.formatContext,
5519
+ getSuspenseFallbackFormatContext(
5520
+ request.resumableState,
5521
+ task.formatContext
5522
+ ),
4946
5523
  task.context,
4947
5524
  task.treeContext,
4948
- task.componentStack,
4949
- !0
5525
+ task.row,
5526
+ replaceSuspenseComponentStackWithSuspenseFallbackStack(
5527
+ task.componentStack
5528
+ )
4950
5529
  );
4951
- pushComponentStack(task);
4952
- request.pingedTasks.push(task);
5530
+ pushComponentStack(childNodes);
5531
+ request.pingedTasks.push(childNodes);
4953
5532
  }
4954
5533
  }
4955
5534
  childIndex.splice(node, 1);
@@ -4972,22 +5551,17 @@ function retryNode(request, task) {
4972
5551
  renderChildrenArray(request, task, node, childIndex);
4973
5552
  return;
4974
5553
  }
4975
- null === node || "object" !== typeof node
4976
- ? (childNodes = null)
4977
- : ((childNodes =
4978
- (MAYBE_ITERATOR_SYMBOL && node[MAYBE_ITERATOR_SYMBOL]) ||
4979
- node["@@iterator"]),
4980
- (childNodes = "function" === typeof childNodes ? childNodes : null));
4981
- if (childNodes && (childNodes = childNodes.call(node))) {
4982
- node = childNodes.next();
4983
- if (!node.done) {
4984
- props = [];
4985
- do props.push(node.value), (node = childNodes.next());
4986
- while (!node.done);
4987
- renderChildrenArray(request, task, props, childIndex);
5554
+ if ((childNodes = getIteratorFn(node)))
5555
+ if ((childNodes = childNodes.call(node))) {
5556
+ node = childNodes.next();
5557
+ if (!node.done) {
5558
+ props = [];
5559
+ do props.push(node.value), (node = childNodes.next());
5560
+ while (!node.done);
5561
+ renderChildrenArray(request, task, props, childIndex);
5562
+ }
5563
+ return;
4988
5564
  }
4989
- return;
4990
- }
4991
5565
  if ("function" === typeof node.then)
4992
5566
  return (
4993
5567
  (task.thenableState = null),
@@ -5106,6 +5680,98 @@ function renderChildrenArray(request, task, children, childIndex) {
5106
5680
  task.treeContext = replay;
5107
5681
  task.keyPath = prevKeyPath;
5108
5682
  }
5683
+ function trackPostponedBoundary(request, trackedPostpones, boundary) {
5684
+ boundary.status = 5;
5685
+ boundary.rootSegmentID = request.nextSegmentId++;
5686
+ request = boundary.trackedContentKeyPath;
5687
+ if (null === request) throw Error(formatProdErrorMessage(486));
5688
+ var fallbackReplayNode = boundary.trackedFallbackNode,
5689
+ children = [],
5690
+ boundaryNode = trackedPostpones.workingMap.get(request);
5691
+ if (void 0 === boundaryNode)
5692
+ return (
5693
+ (boundary = [
5694
+ request[1],
5695
+ request[2],
5696
+ children,
5697
+ null,
5698
+ fallbackReplayNode,
5699
+ boundary.rootSegmentID
5700
+ ]),
5701
+ trackedPostpones.workingMap.set(request, boundary),
5702
+ addToReplayParent(boundary, request[0], trackedPostpones),
5703
+ boundary
5704
+ );
5705
+ boundaryNode[4] = fallbackReplayNode;
5706
+ boundaryNode[5] = boundary.rootSegmentID;
5707
+ return boundaryNode;
5708
+ }
5709
+ function trackPostpone(request, trackedPostpones, task, segment) {
5710
+ segment.status = 5;
5711
+ var keyPath = task.keyPath,
5712
+ boundary = task.blockedBoundary;
5713
+ if (null === boundary)
5714
+ (segment.id = request.nextSegmentId++),
5715
+ (trackedPostpones.rootSlots = segment.id),
5716
+ null !== request.completedRootSegment &&
5717
+ (request.completedRootSegment.status = 5);
5718
+ else {
5719
+ if (null !== boundary && 0 === boundary.status) {
5720
+ var boundaryNode = trackPostponedBoundary(
5721
+ request,
5722
+ trackedPostpones,
5723
+ boundary
5724
+ );
5725
+ if (
5726
+ boundary.trackedContentKeyPath === keyPath &&
5727
+ -1 === task.childIndex
5728
+ ) {
5729
+ -1 === segment.id &&
5730
+ (segment.id = segment.parentFlushed
5731
+ ? boundary.rootSegmentID
5732
+ : request.nextSegmentId++);
5733
+ boundaryNode[3] = segment.id;
5734
+ return;
5735
+ }
5736
+ }
5737
+ -1 === segment.id &&
5738
+ (segment.id =
5739
+ segment.parentFlushed && null !== boundary
5740
+ ? boundary.rootSegmentID
5741
+ : request.nextSegmentId++);
5742
+ if (-1 === task.childIndex)
5743
+ null === keyPath
5744
+ ? (trackedPostpones.rootSlots = segment.id)
5745
+ : ((task = trackedPostpones.workingMap.get(keyPath)),
5746
+ void 0 === task
5747
+ ? ((task = [keyPath[1], keyPath[2], [], segment.id]),
5748
+ addToReplayParent(task, keyPath[0], trackedPostpones))
5749
+ : (task[3] = segment.id));
5750
+ else {
5751
+ if (null === keyPath)
5752
+ if (((request = trackedPostpones.rootSlots), null === request))
5753
+ request = trackedPostpones.rootSlots = {};
5754
+ else {
5755
+ if ("number" === typeof request)
5756
+ throw Error(formatProdErrorMessage(491));
5757
+ }
5758
+ else if (
5759
+ ((boundary = trackedPostpones.workingMap),
5760
+ (boundaryNode = boundary.get(keyPath)),
5761
+ void 0 === boundaryNode)
5762
+ )
5763
+ (request = {}),
5764
+ (boundaryNode = [keyPath[1], keyPath[2], [], request]),
5765
+ boundary.set(keyPath, boundaryNode),
5766
+ addToReplayParent(boundaryNode, keyPath[0], trackedPostpones);
5767
+ else if (((request = boundaryNode[3]), null === request))
5768
+ request = boundaryNode[3] = {};
5769
+ else if ("number" === typeof request)
5770
+ throw Error(formatProdErrorMessage(491));
5771
+ request[task.childIndex] = segment.id;
5772
+ }
5773
+ }
5774
+ }
5109
5775
  function untrackBoundary(request, boundary) {
5110
5776
  request = request.trackedPostpones;
5111
5777
  null !== request &&
@@ -5129,8 +5795,8 @@ function spawnNewSuspendedReplayTask(request, task, thenableState) {
5129
5795
  task.formatContext,
5130
5796
  task.context,
5131
5797
  task.treeContext,
5132
- task.componentStack,
5133
- task.isFallback
5798
+ task.row,
5799
+ task.componentStack
5134
5800
  );
5135
5801
  }
5136
5802
  function spawnNewSuspendedRenderTask(request, task, thenableState) {
@@ -5159,8 +5825,8 @@ function spawnNewSuspendedRenderTask(request, task, thenableState) {
5159
5825
  task.formatContext,
5160
5826
  task.context,
5161
5827
  task.treeContext,
5162
- task.componentStack,
5163
- task.isFallback
5828
+ task.row,
5829
+ task.componentStack
5164
5830
  );
5165
5831
  }
5166
5832
  function renderNode(request, task, node, childIndex) {
@@ -5170,7 +5836,8 @@ function renderNode(request, task, node, childIndex) {
5170
5836
  previousTreeContext = task.treeContext,
5171
5837
  previousComponentStack = task.componentStack,
5172
5838
  segment = task.blockedSegment;
5173
- if (null === segment)
5839
+ if (null === segment) {
5840
+ segment = task.replay;
5174
5841
  try {
5175
5842
  return renderNodeDestructive(request, task, node, childIndex);
5176
5843
  } catch (thrownValue) {
@@ -5180,10 +5847,13 @@ function renderNode(request, task, node, childIndex) {
5180
5847
  thrownValue === SuspenseException
5181
5848
  ? getSuspendedThenable()
5182
5849
  : thrownValue),
5183
- "object" === typeof node && null !== node)
5850
+ 12 !== request.status && "object" === typeof node && null !== node)
5184
5851
  ) {
5185
5852
  if ("function" === typeof node.then) {
5186
- childIndex = getThenableStateAfterSuspending();
5853
+ childIndex =
5854
+ thrownValue === SuspenseException
5855
+ ? getThenableStateAfterSuspending()
5856
+ : null;
5187
5857
  request = spawnNewSuspendedReplayTask(request, task, childIndex).ping;
5188
5858
  node.then(request, request);
5189
5859
  task.formatContext = previousFormatContext;
@@ -5191,11 +5861,15 @@ function renderNode(request, task, node, childIndex) {
5191
5861
  task.keyPath = previousKeyPath;
5192
5862
  task.treeContext = previousTreeContext;
5193
5863
  task.componentStack = previousComponentStack;
5864
+ task.replay = segment;
5194
5865
  switchContext(previousContext);
5195
5866
  return;
5196
5867
  }
5197
5868
  if ("Maximum call stack size exceeded" === node.message) {
5198
- node = getThenableStateAfterSuspending();
5869
+ node =
5870
+ thrownValue === SuspenseException
5871
+ ? getThenableStateAfterSuspending()
5872
+ : null;
5199
5873
  node = spawnNewSuspendedReplayTask(request, task, node);
5200
5874
  request.pingedTasks.push(node);
5201
5875
  task.formatContext = previousFormatContext;
@@ -5203,31 +5877,36 @@ function renderNode(request, task, node, childIndex) {
5203
5877
  task.keyPath = previousKeyPath;
5204
5878
  task.treeContext = previousTreeContext;
5205
5879
  task.componentStack = previousComponentStack;
5880
+ task.replay = segment;
5206
5881
  switchContext(previousContext);
5207
5882
  return;
5208
5883
  }
5209
5884
  }
5210
5885
  }
5211
- else {
5886
+ } else {
5212
5887
  var childrenLength = segment.children.length,
5213
5888
  chunkLength = segment.chunks.length;
5214
5889
  try {
5215
5890
  return renderNodeDestructive(request, task, node, childIndex);
5216
- } catch (thrownValue$48) {
5891
+ } catch (thrownValue$63) {
5217
5892
  if (
5218
5893
  (resetHooksState(),
5219
5894
  (segment.children.length = childrenLength),
5220
5895
  (segment.chunks.length = chunkLength),
5221
5896
  (node =
5222
- thrownValue$48 === SuspenseException
5897
+ thrownValue$63 === SuspenseException
5223
5898
  ? getSuspendedThenable()
5224
- : thrownValue$48),
5225
- "object" === typeof node && null !== node)
5899
+ : thrownValue$63),
5900
+ 12 !== request.status && "object" === typeof node && null !== node)
5226
5901
  ) {
5227
5902
  if ("function" === typeof node.then) {
5228
- childIndex = getThenableStateAfterSuspending();
5229
- request = spawnNewSuspendedRenderTask(request, task, childIndex).ping;
5230
- node.then(request, request);
5903
+ segment = node;
5904
+ node =
5905
+ thrownValue$63 === SuspenseException
5906
+ ? getThenableStateAfterSuspending()
5907
+ : null;
5908
+ request = spawnNewSuspendedRenderTask(request, task, node).ping;
5909
+ segment.then(request, request);
5231
5910
  task.formatContext = previousFormatContext;
5232
5911
  task.context = previousContext;
5233
5912
  task.keyPath = previousKeyPath;
@@ -5237,9 +5916,12 @@ function renderNode(request, task, node, childIndex) {
5237
5916
  return;
5238
5917
  }
5239
5918
  if ("Maximum call stack size exceeded" === node.message) {
5240
- node = getThenableStateAfterSuspending();
5241
- node = spawnNewSuspendedRenderTask(request, task, node);
5242
- request.pingedTasks.push(node);
5919
+ segment =
5920
+ thrownValue$63 === SuspenseException
5921
+ ? getThenableStateAfterSuspending()
5922
+ : null;
5923
+ segment = spawnNewSuspendedRenderTask(request, task, segment);
5924
+ request.pingedTasks.push(segment);
5243
5925
  task.formatContext = previousFormatContext;
5244
5926
  task.context = previousContext;
5245
5927
  task.keyPath = previousKeyPath;
@@ -5259,9 +5941,10 @@ function renderNode(request, task, node, childIndex) {
5259
5941
  throw node;
5260
5942
  }
5261
5943
  function abortTaskSoft(task) {
5262
- var boundary = task.blockedBoundary;
5263
- task = task.blockedSegment;
5264
- null !== task && ((task.status = 3), finishedTask(this, boundary, task));
5944
+ var boundary = task.blockedBoundary,
5945
+ segment = task.blockedSegment;
5946
+ null !== segment &&
5947
+ ((segment.status = 3), finishedTask(this, boundary, task.row, segment));
5265
5948
  }
5266
5949
  function abortRemainingReplayNodes(
5267
5950
  request$jscomp$0,
@@ -5288,6 +5971,7 @@ function abortRemainingReplayNodes(
5288
5971
  errorDigest = errorDigest$jscomp$0,
5289
5972
  resumedBoundary = createSuspenseBoundary(
5290
5973
  request,
5974
+ null,
5291
5975
  new Set(),
5292
5976
  null,
5293
5977
  null
@@ -5318,44 +6002,69 @@ function abortTask(task, request, error) {
5318
6002
  if (6 === segment.status) return;
5319
6003
  segment.status = 3;
5320
6004
  }
5321
- segment = getThrownInfo(task.componentStack);
6005
+ var errorInfo = getThrownInfo(task.componentStack);
5322
6006
  if (null === boundary) {
5323
6007
  if (13 !== request.status && 14 !== request.status) {
5324
6008
  boundary = task.replay;
5325
6009
  if (null === boundary) {
5326
- logRecoverableError(request, error, segment);
5327
- fatalError(request, error);
6010
+ null !== request.trackedPostpones && null !== segment
6011
+ ? ((boundary = request.trackedPostpones),
6012
+ logRecoverableError(request, error, errorInfo),
6013
+ trackPostpone(request, boundary, task, segment),
6014
+ finishedTask(request, null, task.row, segment))
6015
+ : (logRecoverableError(request, error, errorInfo),
6016
+ fatalError(request, error));
5328
6017
  return;
5329
6018
  }
5330
6019
  boundary.pendingTasks--;
5331
6020
  0 === boundary.pendingTasks &&
5332
6021
  0 < boundary.nodes.length &&
5333
- ((task = logRecoverableError(request, error, segment)),
6022
+ ((segment = logRecoverableError(request, error, errorInfo)),
5334
6023
  abortRemainingReplayNodes(
5335
6024
  request,
5336
6025
  null,
5337
6026
  boundary.nodes,
5338
6027
  boundary.slots,
5339
6028
  error,
5340
- task
6029
+ segment
5341
6030
  ));
5342
6031
  request.pendingRootTasks--;
5343
6032
  0 === request.pendingRootTasks && completeShell(request);
5344
6033
  }
5345
- } else
5346
- boundary.pendingTasks--,
5347
- 4 !== boundary.status &&
5348
- ((boundary.status = 4),
5349
- (task = logRecoverableError(request, error, segment)),
5350
- (boundary.status = 4),
5351
- (boundary.errorDigest = task),
5352
- untrackBoundary(request, boundary),
5353
- boundary.parentFlushed &&
5354
- request.clientRenderedBoundaries.push(boundary)),
5355
- boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
5356
- return abortTask(fallbackTask, request, error);
5357
- }),
5358
- boundary.fallbackAbortableTasks.clear();
6034
+ } else {
6035
+ var trackedPostpones$64 = request.trackedPostpones;
6036
+ if (4 !== boundary.status) {
6037
+ if (null !== trackedPostpones$64 && null !== segment)
6038
+ return (
6039
+ logRecoverableError(request, error, errorInfo),
6040
+ trackPostpone(request, trackedPostpones$64, task, segment),
6041
+ boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
6042
+ return abortTask(fallbackTask, request, error);
6043
+ }),
6044
+ boundary.fallbackAbortableTasks.clear(),
6045
+ finishedTask(request, boundary, task.row, segment)
6046
+ );
6047
+ boundary.status = 4;
6048
+ segment = logRecoverableError(request, error, errorInfo);
6049
+ boundary.status = 4;
6050
+ boundary.errorDigest = segment;
6051
+ untrackBoundary(request, boundary);
6052
+ boundary.parentFlushed && request.clientRenderedBoundaries.push(boundary);
6053
+ }
6054
+ boundary.pendingTasks--;
6055
+ segment = boundary.row;
6056
+ null !== segment &&
6057
+ 0 === --segment.pendingTasks &&
6058
+ finishSuspenseListRow(request, segment);
6059
+ boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
6060
+ return abortTask(fallbackTask, request, error);
6061
+ });
6062
+ boundary.fallbackAbortableTasks.clear();
6063
+ }
6064
+ task = task.row;
6065
+ null !== task &&
6066
+ 0 === --task.pendingTasks &&
6067
+ finishSuspenseListRow(request, task);
5359
6068
  request.allPendingTasks--;
5360
6069
  0 === request.allPendingTasks && completeAll(request);
5361
6070
  }
@@ -5449,10 +6158,28 @@ function queueCompletedSegment(boundary, segment) {
5449
6158
  var childSegment = segment.children[0];
5450
6159
  childSegment.id = segment.id;
5451
6160
  childSegment.parentFlushed = !0;
5452
- 1 === childSegment.status && queueCompletedSegment(boundary, childSegment);
6161
+ (1 !== childSegment.status &&
6162
+ 3 !== childSegment.status &&
6163
+ 4 !== childSegment.status) ||
6164
+ queueCompletedSegment(boundary, childSegment);
5453
6165
  } else boundary.completedSegments.push(segment);
5454
6166
  }
5455
- function finishedTask(request, boundary, segment) {
6167
+ function finishedSegment(request, boundary, segment) {
6168
+ if (null !== byteLengthOfChunk) {
6169
+ segment = segment.chunks;
6170
+ for (var segmentByteSize = 0, i = 0; i < segment.length; i++)
6171
+ segmentByteSize += segment[i].byteLength;
6172
+ null === boundary
6173
+ ? (request.byteSize += segmentByteSize)
6174
+ : (boundary.byteSize += segmentByteSize);
6175
+ }
6176
+ }
6177
+ function finishedTask(request, boundary, row, segment) {
6178
+ null !== row &&
6179
+ (0 === --row.pendingTasks
6180
+ ? finishSuspenseListRow(request, row)
6181
+ : row.together && tryToResolveTogetherRow(request, row));
6182
+ request.allPendingTasks--;
5456
6183
  if (null === boundary) {
5457
6184
  if (null !== segment && segment.parentFlushed) {
5458
6185
  if (null !== request.completedRootSegment)
@@ -5461,32 +6188,68 @@ function finishedTask(request, boundary, segment) {
5461
6188
  }
5462
6189
  request.pendingRootTasks--;
5463
6190
  0 === request.pendingRootTasks && completeShell(request);
5464
- } else
5465
- boundary.pendingTasks--,
5466
- 4 !== boundary.status &&
5467
- (0 === boundary.pendingTasks
5468
- ? (0 === boundary.status && (boundary.status = 1),
5469
- null !== segment &&
5470
- segment.parentFlushed &&
5471
- 1 === segment.status &&
5472
- queueCompletedSegment(boundary, segment),
5473
- boundary.parentFlushed &&
5474
- request.completedBoundaries.push(boundary),
5475
- 1 === boundary.status &&
5476
- (boundary.fallbackAbortableTasks.forEach(abortTaskSoft, request),
5477
- boundary.fallbackAbortableTasks.clear(),
5478
- 0 === request.pendingRootTasks &&
5479
- null === request.trackedPostpones &&
5480
- null !== boundary.contentPreamble &&
5481
- preparePreamble(request)))
5482
- : null !== segment &&
5483
- segment.parentFlushed &&
5484
- 1 === segment.status &&
5485
- (queueCompletedSegment(boundary, segment),
5486
- 1 === boundary.completedSegments.length &&
5487
- boundary.parentFlushed &&
5488
- request.partialBoundaries.push(boundary)));
5489
- request.allPendingTasks--;
6191
+ } else if ((boundary.pendingTasks--, 4 !== boundary.status))
6192
+ if (0 === boundary.pendingTasks)
6193
+ if (
6194
+ (0 === boundary.status && (boundary.status = 1),
6195
+ null !== segment &&
6196
+ segment.parentFlushed &&
6197
+ (1 === segment.status || 3 === segment.status) &&
6198
+ queueCompletedSegment(boundary, segment),
6199
+ boundary.parentFlushed && request.completedBoundaries.push(boundary),
6200
+ 1 === boundary.status)
6201
+ )
6202
+ (row = boundary.row),
6203
+ null !== row &&
6204
+ hoistHoistables(row.hoistables, boundary.contentState),
6205
+ isEligibleForOutlining(request, boundary) ||
6206
+ (boundary.fallbackAbortableTasks.forEach(abortTaskSoft, request),
6207
+ boundary.fallbackAbortableTasks.clear(),
6208
+ null !== row &&
6209
+ 0 === --row.pendingTasks &&
6210
+ finishSuspenseListRow(request, row)),
6211
+ 0 === request.pendingRootTasks &&
6212
+ null === request.trackedPostpones &&
6213
+ null !== boundary.contentPreamble &&
6214
+ preparePreamble(request);
6215
+ else {
6216
+ if (
6217
+ 5 === boundary.status &&
6218
+ ((boundary = boundary.row), null !== boundary)
6219
+ ) {
6220
+ if (null !== request.trackedPostpones) {
6221
+ row = request.trackedPostpones;
6222
+ var postponedRow = boundary.next;
6223
+ if (
6224
+ null !== postponedRow &&
6225
+ ((segment = postponedRow.boundaries), null !== segment)
6226
+ )
6227
+ for (
6228
+ postponedRow.boundaries = null, postponedRow = 0;
6229
+ postponedRow < segment.length;
6230
+ postponedRow++
6231
+ ) {
6232
+ var postponedBoundary = segment[postponedRow];
6233
+ trackPostponedBoundary(request, row, postponedBoundary);
6234
+ finishedTask(request, postponedBoundary, null, null);
6235
+ }
6236
+ }
6237
+ 0 === --boundary.pendingTasks &&
6238
+ finishSuspenseListRow(request, boundary);
6239
+ }
6240
+ }
6241
+ else
6242
+ null === segment ||
6243
+ !segment.parentFlushed ||
6244
+ (1 !== segment.status && 3 !== segment.status) ||
6245
+ (queueCompletedSegment(boundary, segment),
6246
+ 1 === boundary.completedSegments.length &&
6247
+ boundary.parentFlushed &&
6248
+ request.partialBoundaries.push(boundary)),
6249
+ (boundary = boundary.row),
6250
+ null !== boundary &&
6251
+ boundary.together &&
6252
+ tryToResolveTogetherRow(request, boundary);
5490
6253
  0 === request.allPendingTasks && completeAll(request);
5491
6254
  }
5492
6255
  function performWork(request$jscomp$2) {
@@ -5528,7 +6291,12 @@ function performWork(request$jscomp$2) {
5528
6291
  throw Error(formatProdErrorMessage(488));
5529
6292
  task.replay.pendingTasks--;
5530
6293
  task.abortSet.delete(task);
5531
- finishedTask(request$jscomp$0, task.blockedBoundary, null);
6294
+ finishedTask(
6295
+ request$jscomp$0,
6296
+ task.blockedBoundary,
6297
+ task.row,
6298
+ null
6299
+ );
5532
6300
  } catch (thrownValue) {
5533
6301
  resetHooksState();
5534
6302
  var x =
@@ -5542,7 +6310,10 @@ function performWork(request$jscomp$2) {
5542
6310
  ) {
5543
6311
  var ping = task.ping;
5544
6312
  x.then(ping, ping);
5545
- task.thenableState = getThenableStateAfterSuspending();
6313
+ task.thenableState =
6314
+ thrownValue === SuspenseException
6315
+ ? getThenableStateAfterSuspending()
6316
+ : null;
5546
6317
  } else {
5547
6318
  task.replay.pendingTasks--;
5548
6319
  task.abortSet.delete(task);
@@ -5595,7 +6366,13 @@ function performWork(request$jscomp$2) {
5595
6366
  request$jscomp$1.chunks.push(textSeparator),
5596
6367
  task.abortSet.delete(task),
5597
6368
  (request$jscomp$1.status = 1),
5598
- finishedTask(request, task.blockedBoundary, request$jscomp$1);
6369
+ finishedSegment(request, task.blockedBoundary, request$jscomp$1),
6370
+ finishedTask(
6371
+ request,
6372
+ task.blockedBoundary,
6373
+ task.row,
6374
+ request$jscomp$1
6375
+ );
5599
6376
  } catch (thrownValue) {
5600
6377
  resetHooksState();
5601
6378
  request$jscomp$1.children.length = childrenLength;
@@ -5606,39 +6383,64 @@ function performWork(request$jscomp$2) {
5606
6383
  : 12 === request.status
5607
6384
  ? request.fatalError
5608
6385
  : thrownValue;
5609
- if (
6386
+ if (12 === request.status && null !== request.trackedPostpones) {
6387
+ var trackedPostpones = request.trackedPostpones,
6388
+ thrownInfo = getThrownInfo(task.componentStack);
6389
+ task.abortSet.delete(task);
6390
+ logRecoverableError(request, x$jscomp$0, thrownInfo);
6391
+ trackPostpone(request, trackedPostpones, task, request$jscomp$1);
6392
+ finishedTask(
6393
+ request,
6394
+ task.blockedBoundary,
6395
+ task.row,
6396
+ request$jscomp$1
6397
+ );
6398
+ } else if (
5610
6399
  "object" === typeof x$jscomp$0 &&
5611
6400
  null !== x$jscomp$0 &&
5612
6401
  "function" === typeof x$jscomp$0.then
5613
6402
  ) {
5614
6403
  request$jscomp$1.status = 0;
5615
- task.thenableState = getThenableStateAfterSuspending();
6404
+ task.thenableState =
6405
+ thrownValue === SuspenseException
6406
+ ? getThenableStateAfterSuspending()
6407
+ : null;
5616
6408
  var ping$jscomp$0 = task.ping;
5617
6409
  x$jscomp$0.then(ping$jscomp$0, ping$jscomp$0);
5618
6410
  } else {
5619
6411
  var errorInfo$jscomp$0 = getThrownInfo(task.componentStack);
5620
6412
  task.abortSet.delete(task);
5621
6413
  request$jscomp$1.status = 4;
5622
- var boundary$jscomp$0 = task.blockedBoundary;
6414
+ var boundary$jscomp$0 = task.blockedBoundary,
6415
+ row = task.row;
6416
+ null !== row &&
6417
+ 0 === --row.pendingTasks &&
6418
+ finishSuspenseListRow(request, row);
6419
+ request.allPendingTasks--;
5623
6420
  request$jscomp$0 = logRecoverableError(
5624
6421
  request,
5625
6422
  x$jscomp$0,
5626
6423
  errorInfo$jscomp$0
5627
6424
  );
5628
- null === boundary$jscomp$0
5629
- ? fatalError(request, x$jscomp$0)
5630
- : (boundary$jscomp$0.pendingTasks--,
5631
- 4 !== boundary$jscomp$0.status &&
5632
- ((boundary$jscomp$0.status = 4),
5633
- (boundary$jscomp$0.errorDigest = request$jscomp$0),
5634
- untrackBoundary(request, boundary$jscomp$0),
5635
- boundary$jscomp$0.parentFlushed &&
5636
- request.clientRenderedBoundaries.push(boundary$jscomp$0),
5637
- 0 === request.pendingRootTasks &&
5638
- null === request.trackedPostpones &&
5639
- null !== boundary$jscomp$0.contentPreamble &&
5640
- preparePreamble(request)));
5641
- request.allPendingTasks--;
6425
+ if (null === boundary$jscomp$0) fatalError(request, x$jscomp$0);
6426
+ else if (
6427
+ (boundary$jscomp$0.pendingTasks--,
6428
+ 4 !== boundary$jscomp$0.status)
6429
+ ) {
6430
+ boundary$jscomp$0.status = 4;
6431
+ boundary$jscomp$0.errorDigest = request$jscomp$0;
6432
+ untrackBoundary(request, boundary$jscomp$0);
6433
+ var boundaryRow = boundary$jscomp$0.row;
6434
+ null !== boundaryRow &&
6435
+ 0 === --boundaryRow.pendingTasks &&
6436
+ finishSuspenseListRow(request, boundaryRow);
6437
+ boundary$jscomp$0.parentFlushed &&
6438
+ request.clientRenderedBoundaries.push(boundary$jscomp$0);
6439
+ 0 === request.pendingRootTasks &&
6440
+ null === request.trackedPostpones &&
6441
+ null !== boundary$jscomp$0.contentPreamble &&
6442
+ preparePreamble(request);
6443
+ }
5642
6444
  0 === request.allPendingTasks && completeAll(request);
5643
6445
  }
5644
6446
  } finally {
@@ -5694,6 +6496,7 @@ function preparePreambleFromSegment(
5694
6496
  switch (boundary.status) {
5695
6497
  case 1:
5696
6498
  hoistPreambleState(request.renderState, preamble);
6499
+ request.byteSize += boundary.byteSize;
5697
6500
  segment = boundary.completedSegments[0];
5698
6501
  if (!segment) throw Error(formatProdErrorMessage(391));
5699
6502
  return preparePreambleFromSubtree(
@@ -5723,17 +6526,16 @@ function preparePreamble(request) {
5723
6526
  null === request.completedPreambleSegments
5724
6527
  ) {
5725
6528
  var collectedPreambleSegments = [],
6529
+ originalRequestByteSize = request.byteSize,
5726
6530
  hasPendingPreambles = preparePreambleFromSegment(
5727
6531
  request,
5728
6532
  request.completedRootSegment,
5729
6533
  collectedPreambleSegments
5730
6534
  ),
5731
6535
  preamble = request.renderState.preamble;
5732
- if (
5733
- !1 === hasPendingPreambles ||
5734
- (preamble.headChunks && preamble.bodyChunks)
5735
- )
5736
- request.completedPreambleSegments = collectedPreambleSegments;
6536
+ !1 === hasPendingPreambles || (preamble.headChunks && preamble.bodyChunks)
6537
+ ? (request.completedPreambleSegments = collectedPreambleSegments)
6538
+ : (request.byteSize = originalRequestByteSize);
5737
6539
  }
5738
6540
  }
5739
6541
  function flushSubtree(request, destination, segment, hoistableState) {
@@ -5769,36 +6571,37 @@ function flushSubtree(request, destination, segment, hoistableState) {
5769
6571
  chunkIdx < chunks.length &&
5770
6572
  (r = writeChunkAndReturn(destination, chunks[chunkIdx]));
5771
6573
  return r;
6574
+ case 3:
6575
+ return !0;
5772
6576
  default:
5773
6577
  throw Error(formatProdErrorMessage(390));
5774
6578
  }
5775
6579
  }
6580
+ var flushedByteSize = 0;
5776
6581
  function flushSegment(request, destination, segment, hoistableState) {
5777
6582
  var boundary = segment.boundary;
5778
6583
  if (null === boundary)
5779
6584
  return flushSubtree(request, destination, segment, hoistableState);
5780
6585
  boundary.parentFlushed = !0;
5781
6586
  if (4 === boundary.status) {
5782
- var errorDigest = boundary.errorDigest;
6587
+ var row = boundary.row;
6588
+ null !== row &&
6589
+ 0 === --row.pendingTasks &&
6590
+ finishSuspenseListRow(request, row);
6591
+ boundary = boundary.errorDigest;
5783
6592
  writeChunkAndReturn(destination, startClientRenderedSuspenseBoundary);
5784
6593
  writeChunk(destination, clientRenderedSuspenseBoundaryError1);
5785
- errorDigest &&
6594
+ boundary &&
5786
6595
  (writeChunk(destination, clientRenderedSuspenseBoundaryError1A),
5787
- writeChunk(destination, stringToChunk(escapeTextForBrowser(errorDigest))),
6596
+ writeChunk(destination, stringToChunk(escapeTextForBrowser(boundary))),
5788
6597
  writeChunk(
5789
6598
  destination,
5790
6599
  clientRenderedSuspenseBoundaryErrorAttrInterstitial
5791
6600
  ));
5792
6601
  writeChunkAndReturn(destination, clientRenderedSuspenseBoundaryError2);
5793
6602
  flushSubtree(request, destination, segment, hoistableState);
5794
- (request = boundary.fallbackPreamble) &&
5795
- writePreambleContribution(destination, request);
5796
- return writeChunkAndReturn(destination, endSuspenseBoundary);
5797
- }
5798
- if (1 !== boundary.status)
5799
- return (
5800
- 0 === boundary.status &&
5801
- (boundary.rootSegmentID = request.nextSegmentId++),
6603
+ } else if (1 !== boundary.status)
6604
+ 0 === boundary.status && (boundary.rootSegmentID = request.nextSegmentId++),
5802
6605
  0 < boundary.completedSegments.length &&
5803
6606
  request.partialBoundaries.push(boundary),
5804
6607
  writeStartPendingSuspenseBoundary(
@@ -5806,38 +6609,35 @@ function flushSegment(request, destination, segment, hoistableState) {
5806
6609
  request.renderState,
5807
6610
  boundary.rootSegmentID
5808
6611
  ),
5809
- hoistableState &&
5810
- ((boundary = boundary.fallbackState),
5811
- boundary.styles.forEach(hoistStyleQueueDependency, hoistableState),
5812
- boundary.stylesheets.forEach(
5813
- hoistStylesheetDependency,
5814
- hoistableState
5815
- )),
5816
- flushSubtree(request, destination, segment, hoistableState),
5817
- writeChunkAndReturn(destination, endSuspenseBoundary)
5818
- );
5819
- if (boundary.byteSize > request.progressiveChunkSize)
5820
- return (
5821
- (boundary.rootSegmentID = request.nextSegmentId++),
6612
+ hoistableState && hoistHoistables(hoistableState, boundary.fallbackState),
6613
+ flushSubtree(request, destination, segment, hoistableState);
6614
+ else if (
6615
+ !flushingPartialBoundaries &&
6616
+ isEligibleForOutlining(request, boundary) &&
6617
+ (flushedByteSize + boundary.byteSize > request.progressiveChunkSize ||
6618
+ hasSuspenseyContent(boundary.contentState))
6619
+ )
6620
+ (boundary.rootSegmentID = request.nextSegmentId++),
5822
6621
  request.completedBoundaries.push(boundary),
5823
6622
  writeStartPendingSuspenseBoundary(
5824
6623
  destination,
5825
6624
  request.renderState,
5826
6625
  boundary.rootSegmentID
5827
6626
  ),
5828
- flushSubtree(request, destination, segment, hoistableState),
5829
- writeChunkAndReturn(destination, endSuspenseBoundary)
5830
- );
5831
- hoistableState &&
5832
- ((segment = boundary.contentState),
5833
- segment.styles.forEach(hoistStyleQueueDependency, hoistableState),
5834
- segment.stylesheets.forEach(hoistStylesheetDependency, hoistableState));
5835
- writeChunkAndReturn(destination, startCompletedSuspenseBoundary);
5836
- segment = boundary.completedSegments;
5837
- if (1 !== segment.length) throw Error(formatProdErrorMessage(391));
5838
- flushSegment(request, destination, segment[0], hoistableState);
5839
- (request = boundary.contentPreamble) &&
5840
- writePreambleContribution(destination, request);
6627
+ flushSubtree(request, destination, segment, hoistableState);
6628
+ else {
6629
+ flushedByteSize += boundary.byteSize;
6630
+ hoistableState && hoistHoistables(hoistableState, boundary.contentState);
6631
+ segment = boundary.row;
6632
+ null !== segment &&
6633
+ isEligibleForOutlining(request, boundary) &&
6634
+ 0 === --segment.pendingTasks &&
6635
+ finishSuspenseListRow(request, segment);
6636
+ writeChunkAndReturn(destination, startCompletedSuspenseBoundary);
6637
+ segment = boundary.completedSegments;
6638
+ if (1 !== segment.length) throw Error(formatProdErrorMessage(391));
6639
+ flushSegment(request, destination, segment[0], hoistableState);
6640
+ }
5841
6641
  return writeChunkAndReturn(destination, endSuspenseBoundary);
5842
6642
  }
5843
6643
  function flushSegmentContainer(request, destination, segment, hoistableState) {
@@ -5851,6 +6651,7 @@ function flushSegmentContainer(request, destination, segment, hoistableState) {
5851
6651
  return writeEndSegment(destination, segment.parentFormatContext);
5852
6652
  }
5853
6653
  function flushCompletedBoundary(request, destination, boundary) {
6654
+ flushedByteSize = boundary.byteSize;
5854
6655
  for (
5855
6656
  var completedSegments = boundary.completedSegments, i = 0;
5856
6657
  i < completedSegments.length;
@@ -5863,6 +6664,11 @@ function flushCompletedBoundary(request, destination, boundary) {
5863
6664
  completedSegments[i]
5864
6665
  );
5865
6666
  completedSegments.length = 0;
6667
+ completedSegments = boundary.row;
6668
+ null !== completedSegments &&
6669
+ isEligibleForOutlining(request, boundary) &&
6670
+ 0 === --completedSegments.pendingTasks &&
6671
+ finishSuspenseListRow(request, completedSegments);
5866
6672
  writeHoistablesForBoundary(
5867
6673
  destination,
5868
6674
  boundary.contentState,
@@ -5875,18 +6681,22 @@ function flushCompletedBoundary(request, destination, boundary) {
5875
6681
  var requiresStyleInsertion = request.stylesToHoist;
5876
6682
  request.stylesToHoist = !1;
5877
6683
  writeChunk(destination, request.startInlineScript);
6684
+ writeChunk(destination, endOfStartTag);
5878
6685
  requiresStyleInsertion
5879
- ? 0 === (completedSegments.instructions & 2)
5880
- ? ((completedSegments.instructions |= 10),
5881
- writeChunk(destination, completeBoundaryWithStylesScript1FullBoth))
5882
- : 0 === (completedSegments.instructions & 8)
6686
+ ? (0 === (completedSegments.instructions & 4) &&
6687
+ ((completedSegments.instructions |= 4),
6688
+ writeChunk(destination, clientRenderScriptFunctionOnly)),
6689
+ 0 === (completedSegments.instructions & 2) &&
6690
+ ((completedSegments.instructions |= 2),
6691
+ writeChunk(destination, completeBoundaryScriptFunctionOnly)),
6692
+ 0 === (completedSegments.instructions & 8)
5883
6693
  ? ((completedSegments.instructions |= 8),
5884
6694
  writeChunk(destination, completeBoundaryWithStylesScript1FullPartial))
5885
- : writeChunk(destination, completeBoundaryWithStylesScript1Partial)
5886
- : 0 === (completedSegments.instructions & 2)
5887
- ? ((completedSegments.instructions |= 2),
5888
- writeChunk(destination, completeBoundaryScript1Full))
5889
- : writeChunk(destination, completeBoundaryScript1Partial);
6695
+ : writeChunk(destination, completeBoundaryWithStylesScript1Partial))
6696
+ : (0 === (completedSegments.instructions & 2) &&
6697
+ ((completedSegments.instructions |= 2),
6698
+ writeChunk(destination, completeBoundaryScriptFunctionOnly)),
6699
+ writeChunk(destination, completeBoundaryScript1Partial));
5890
6700
  completedSegments = stringToChunk(i.toString(16));
5891
6701
  writeChunk(destination, request.boundaryPrefix);
5892
6702
  writeChunk(destination, completedSegments);
@@ -5920,6 +6730,7 @@ function flushPartiallyCompletedSegment(
5920
6730
  boundary = request.resumableState;
5921
6731
  request = request.renderState;
5922
6732
  writeChunk(destination, request.startInlineScript);
6733
+ writeChunk(destination, endOfStartTag);
5923
6734
  0 === (boundary.instructions & 1)
5924
6735
  ? ((boundary.instructions |= 1),
5925
6736
  writeChunk(destination, completeSegmentScript1Full))
@@ -5933,6 +6744,7 @@ function flushPartiallyCompletedSegment(
5933
6744
  destination = writeChunkAndReturn(destination, completeSegmentScriptEnd);
5934
6745
  return destination;
5935
6746
  }
6747
+ var flushingPartialBoundaries = !1;
5936
6748
  function flushCompletedQueues(request, destination) {
5937
6749
  currentView = new Uint8Array(2048);
5938
6750
  writtenBytes = 0;
@@ -5944,7 +6756,9 @@ function flushCompletedQueues(request, destination) {
5944
6756
  if (5 === completedRootSegment.status) return;
5945
6757
  var completedPreambleSegments = request.completedPreambleSegments;
5946
6758
  if (null === completedPreambleSegments) return;
5947
- var renderState = request.renderState,
6759
+ flushedByteSize = request.byteSize;
6760
+ var resumableState = request.resumableState,
6761
+ renderState = request.renderState,
5948
6762
  preamble = renderState.preamble,
5949
6763
  htmlChunks = preamble.htmlChunks,
5950
6764
  headChunks = preamble.headChunks,
@@ -5975,7 +6789,9 @@ function flushCompletedQueues(request, destination) {
5975
6789
  renderState.fontPreloads.clear();
5976
6790
  renderState.highImagePreloads.forEach(flushResource, destination);
5977
6791
  renderState.highImagePreloads.clear();
6792
+ currentlyFlushingRenderState = renderState;
5978
6793
  renderState.styles.forEach(flushStylesInPreamble, destination);
6794
+ currentlyFlushingRenderState = null;
5979
6795
  var importMapChunks = renderState.importMapChunks;
5980
6796
  for (i$jscomp$0 = 0; i$jscomp$0 < importMapChunks.length; i$jscomp$0++)
5981
6797
  writeChunk(destination, importMapChunks[i$jscomp$0]);
@@ -5985,17 +6801,18 @@ function flushCompletedQueues(request, destination) {
5985
6801
  renderState.scripts.clear();
5986
6802
  renderState.bulkPreloads.forEach(flushResource, destination);
5987
6803
  renderState.bulkPreloads.clear();
6804
+ htmlChunks || headChunks || (resumableState.instructions |= 32);
5988
6805
  var hoistableChunks = renderState.hoistableChunks;
5989
6806
  for (i$jscomp$0 = 0; i$jscomp$0 < hoistableChunks.length; i$jscomp$0++)
5990
6807
  writeChunk(destination, hoistableChunks[i$jscomp$0]);
5991
6808
  for (
5992
- renderState = hoistableChunks.length = 0;
5993
- renderState < completedPreambleSegments.length;
5994
- renderState++
6809
+ resumableState = hoistableChunks.length = 0;
6810
+ resumableState < completedPreambleSegments.length;
6811
+ resumableState++
5995
6812
  ) {
5996
- var segments = completedPreambleSegments[renderState];
5997
- for (preamble = 0; preamble < segments.length; preamble++)
5998
- flushSegment(request, destination, segments[preamble], null);
6813
+ var segments = completedPreambleSegments[resumableState];
6814
+ for (renderState = 0; renderState < segments.length; renderState++)
6815
+ flushSegment(request, destination, segments[renderState], null);
5999
6816
  }
6000
6817
  var preamble$jscomp$0 = request.renderState.preamble,
6001
6818
  headChunks$jscomp$0 = preamble$jscomp$0.headChunks;
@@ -6011,11 +6828,39 @@ function flushCompletedQueues(request, destination) {
6011
6828
  writeChunk(destination, bodyChunks[completedPreambleSegments]);
6012
6829
  flushSegment(request, destination, completedRootSegment, null);
6013
6830
  request.completedRootSegment = null;
6014
- writeBootstrap(destination, request.renderState);
6831
+ var renderState$jscomp$0 = request.renderState;
6832
+ if (
6833
+ 0 !== request.allPendingTasks ||
6834
+ 0 !== request.clientRenderedBoundaries.length ||
6835
+ 0 !== request.completedBoundaries.length ||
6836
+ (null !== request.trackedPostpones &&
6837
+ (0 !== request.trackedPostpones.rootNodes.length ||
6838
+ null !== request.trackedPostpones.rootSlots))
6839
+ ) {
6840
+ var resumableState$jscomp$0 = request.resumableState;
6841
+ if (0 === (resumableState$jscomp$0.instructions & 64)) {
6842
+ resumableState$jscomp$0.instructions |= 64;
6843
+ writeChunk(destination, renderState$jscomp$0.startInlineScript);
6844
+ if (0 === (resumableState$jscomp$0.instructions & 32)) {
6845
+ resumableState$jscomp$0.instructions |= 32;
6846
+ var shellId = "_" + resumableState$jscomp$0.idPrefix + "R_";
6847
+ writeChunk(destination, completedShellIdAttributeStart);
6848
+ writeChunk(
6849
+ destination,
6850
+ stringToChunk(escapeTextForBrowser(shellId))
6851
+ );
6852
+ writeChunk(destination, attributeEnd);
6853
+ }
6854
+ writeChunk(destination, endOfStartTag);
6855
+ writeChunk(destination, shellTimeRuntimeScript);
6856
+ writeChunkAndReturn(destination, endInlineScript);
6857
+ }
6858
+ }
6859
+ writeBootstrap(destination, renderState$jscomp$0);
6015
6860
  }
6016
- var renderState$jscomp$0 = request.renderState;
6861
+ var renderState$jscomp$1 = request.renderState;
6017
6862
  completedRootSegment = 0;
6018
- var viewportChunks$jscomp$0 = renderState$jscomp$0.viewportChunks;
6863
+ var viewportChunks$jscomp$0 = renderState$jscomp$1.viewportChunks;
6019
6864
  for (
6020
6865
  completedRootSegment = 0;
6021
6866
  completedRootSegment < viewportChunks$jscomp$0.length;
@@ -6023,21 +6868,21 @@ function flushCompletedQueues(request, destination) {
6023
6868
  )
6024
6869
  writeChunk(destination, viewportChunks$jscomp$0[completedRootSegment]);
6025
6870
  viewportChunks$jscomp$0.length = 0;
6026
- renderState$jscomp$0.preconnects.forEach(flushResource, destination);
6027
- renderState$jscomp$0.preconnects.clear();
6028
- renderState$jscomp$0.fontPreloads.forEach(flushResource, destination);
6029
- renderState$jscomp$0.fontPreloads.clear();
6030
- renderState$jscomp$0.highImagePreloads.forEach(
6871
+ renderState$jscomp$1.preconnects.forEach(flushResource, destination);
6872
+ renderState$jscomp$1.preconnects.clear();
6873
+ renderState$jscomp$1.fontPreloads.forEach(flushResource, destination);
6874
+ renderState$jscomp$1.fontPreloads.clear();
6875
+ renderState$jscomp$1.highImagePreloads.forEach(
6031
6876
  flushResource,
6032
6877
  destination
6033
6878
  );
6034
- renderState$jscomp$0.highImagePreloads.clear();
6035
- renderState$jscomp$0.styles.forEach(preloadLateStyles, destination);
6036
- renderState$jscomp$0.scripts.forEach(flushResource, destination);
6037
- renderState$jscomp$0.scripts.clear();
6038
- renderState$jscomp$0.bulkPreloads.forEach(flushResource, destination);
6039
- renderState$jscomp$0.bulkPreloads.clear();
6040
- var hoistableChunks$jscomp$0 = renderState$jscomp$0.hoistableChunks;
6879
+ renderState$jscomp$1.highImagePreloads.clear();
6880
+ renderState$jscomp$1.styles.forEach(preloadLateStyles, destination);
6881
+ renderState$jscomp$1.scripts.forEach(flushResource, destination);
6882
+ renderState$jscomp$1.scripts.clear();
6883
+ renderState$jscomp$1.bulkPreloads.forEach(flushResource, destination);
6884
+ renderState$jscomp$1.bulkPreloads.clear();
6885
+ var hoistableChunks$jscomp$0 = renderState$jscomp$1.hoistableChunks;
6041
6886
  for (
6042
6887
  completedRootSegment = 0;
6043
6888
  completedRootSegment < hoistableChunks$jscomp$0.length;
@@ -6048,35 +6893,36 @@ function flushCompletedQueues(request, destination) {
6048
6893
  var clientRenderedBoundaries = request.clientRenderedBoundaries;
6049
6894
  for (i = 0; i < clientRenderedBoundaries.length; i++) {
6050
6895
  var boundary = clientRenderedBoundaries[i];
6051
- renderState$jscomp$0 = destination;
6052
- var resumableState = request.resumableState,
6053
- renderState$jscomp$1 = request.renderState,
6896
+ renderState$jscomp$1 = destination;
6897
+ var resumableState$jscomp$1 = request.resumableState,
6898
+ renderState$jscomp$2 = request.renderState,
6054
6899
  id = boundary.rootSegmentID,
6055
6900
  errorDigest = boundary.errorDigest;
6056
6901
  writeChunk(
6057
- renderState$jscomp$0,
6058
- renderState$jscomp$1.startInlineScript
6902
+ renderState$jscomp$1,
6903
+ renderState$jscomp$2.startInlineScript
6059
6904
  );
6060
- 0 === (resumableState.instructions & 4)
6061
- ? ((resumableState.instructions |= 4),
6062
- writeChunk(renderState$jscomp$0, clientRenderScript1Full))
6063
- : writeChunk(renderState$jscomp$0, clientRenderScript1Partial);
6064
- writeChunk(renderState$jscomp$0, renderState$jscomp$1.boundaryPrefix);
6065
- writeChunk(renderState$jscomp$0, stringToChunk(id.toString(16)));
6066
- writeChunk(renderState$jscomp$0, clientRenderScript1A);
6905
+ writeChunk(renderState$jscomp$1, endOfStartTag);
6906
+ 0 === (resumableState$jscomp$1.instructions & 4)
6907
+ ? ((resumableState$jscomp$1.instructions |= 4),
6908
+ writeChunk(renderState$jscomp$1, clientRenderScript1Full))
6909
+ : writeChunk(renderState$jscomp$1, clientRenderScript1Partial);
6910
+ writeChunk(renderState$jscomp$1, renderState$jscomp$2.boundaryPrefix);
6911
+ writeChunk(renderState$jscomp$1, stringToChunk(id.toString(16)));
6912
+ writeChunk(renderState$jscomp$1, clientRenderScript1A);
6067
6913
  errorDigest &&
6068
6914
  (writeChunk(
6069
- renderState$jscomp$0,
6915
+ renderState$jscomp$1,
6070
6916
  clientRenderErrorScriptArgInterstitial
6071
6917
  ),
6072
6918
  writeChunk(
6073
- renderState$jscomp$0,
6919
+ renderState$jscomp$1,
6074
6920
  stringToChunk(
6075
6921
  escapeJSStringsForInstructionScripts(errorDigest || "")
6076
6922
  )
6077
6923
  ));
6078
6924
  var JSCompiler_inline_result = writeChunkAndReturn(
6079
- renderState$jscomp$0,
6925
+ renderState$jscomp$1,
6080
6926
  clientRenderScriptEnd
6081
6927
  );
6082
6928
  if (!JSCompiler_inline_result) {
@@ -6101,13 +6947,15 @@ function flushCompletedQueues(request, destination) {
6101
6947
  completeWriting(destination);
6102
6948
  currentView = new Uint8Array(2048);
6103
6949
  writtenBytes = 0;
6950
+ flushingPartialBoundaries = !0;
6104
6951
  var partialBoundaries = request.partialBoundaries;
6105
6952
  for (i = 0; i < partialBoundaries.length; i++) {
6106
- var boundary$51 = partialBoundaries[i];
6953
+ var boundary$70 = partialBoundaries[i];
6107
6954
  a: {
6108
6955
  clientRenderedBoundaries = request;
6109
6956
  boundary = destination;
6110
- var completedSegments = boundary$51.completedSegments;
6957
+ flushedByteSize = boundary$70.byteSize;
6958
+ var completedSegments = boundary$70.completedSegments;
6111
6959
  for (
6112
6960
  JSCompiler_inline_result = 0;
6113
6961
  JSCompiler_inline_result < completedSegments.length;
@@ -6117,7 +6965,7 @@ function flushCompletedQueues(request, destination) {
6117
6965
  !flushPartiallyCompletedSegment(
6118
6966
  clientRenderedBoundaries,
6119
6967
  boundary,
6120
- boundary$51,
6968
+ boundary$70,
6121
6969
  completedSegments[JSCompiler_inline_result]
6122
6970
  )
6123
6971
  ) {
@@ -6127,9 +6975,20 @@ function flushCompletedQueues(request, destination) {
6127
6975
  break a;
6128
6976
  }
6129
6977
  completedSegments.splice(0, JSCompiler_inline_result);
6978
+ var row = boundary$70.row;
6979
+ null !== row &&
6980
+ row.together &&
6981
+ 1 === boundary$70.pendingTasks &&
6982
+ (1 === row.pendingTasks
6983
+ ? unblockSuspenseListRow(
6984
+ clientRenderedBoundaries,
6985
+ row,
6986
+ row.hoistables
6987
+ )
6988
+ : row.pendingTasks--);
6130
6989
  JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
6131
6990
  boundary,
6132
- boundary$51.contentState,
6991
+ boundary$70.contentState,
6133
6992
  clientRenderedBoundaries.renderState
6134
6993
  );
6135
6994
  }
@@ -6141,6 +7000,7 @@ function flushCompletedQueues(request, destination) {
6141
7000
  }
6142
7001
  }
6143
7002
  partialBoundaries.splice(0, i);
7003
+ flushingPartialBoundaries = !1;
6144
7004
  var largeBoundaries = request.completedBoundaries;
6145
7005
  for (i = 0; i < largeBoundaries.length; i++)
6146
7006
  if (!flushCompletedBoundary(request, destination, largeBoundaries[i])) {
@@ -6152,19 +7012,19 @@ function flushCompletedQueues(request, destination) {
6152
7012
  largeBoundaries.splice(0, i);
6153
7013
  }
6154
7014
  } finally {
6155
- 0 === request.allPendingTasks &&
6156
- 0 === request.pingedTasks.length &&
6157
- 0 === request.clientRenderedBoundaries.length &&
6158
- 0 === request.completedBoundaries.length
6159
- ? ((request.flushScheduled = !1),
6160
- (i = request.resumableState),
6161
- i.hasBody && writeChunk(destination, endChunkForTag("body")),
6162
- i.hasHtml && writeChunk(destination, endChunkForTag("html")),
6163
- completeWriting(destination),
6164
- (request.status = 14),
6165
- destination.close(),
6166
- (request.destination = null))
6167
- : completeWriting(destination);
7015
+ (flushingPartialBoundaries = !1),
7016
+ 0 === request.allPendingTasks &&
7017
+ 0 === request.clientRenderedBoundaries.length &&
7018
+ 0 === request.completedBoundaries.length
7019
+ ? ((request.flushScheduled = !1),
7020
+ (i = request.resumableState),
7021
+ i.hasBody && writeChunk(destination, endChunkForTag("body")),
7022
+ i.hasHtml && writeChunk(destination, endChunkForTag("html")),
7023
+ completeWriting(destination),
7024
+ (request.status = 14),
7025
+ destination.close(),
7026
+ (request.destination = null))
7027
+ : completeWriting(destination);
6168
7028
  }
6169
7029
  }
6170
7030
  function startWork(request) {
@@ -6223,18 +7083,76 @@ function abort(request, reason) {
6223
7083
  }
6224
7084
  null !== request.destination &&
6225
7085
  flushCompletedQueues(request, request.destination);
6226
- } catch (error$53) {
6227
- logRecoverableError(request, error$53, {}), fatalError(request, error$53);
7086
+ } catch (error$72) {
7087
+ logRecoverableError(request, error$72, {}), fatalError(request, error$72);
7088
+ }
7089
+ }
7090
+ function addToReplayParent(node, parentKeyPath, trackedPostpones) {
7091
+ if (null === parentKeyPath) trackedPostpones.rootNodes.push(node);
7092
+ else {
7093
+ var workingMap = trackedPostpones.workingMap,
7094
+ parentNode = workingMap.get(parentKeyPath);
7095
+ void 0 === parentNode &&
7096
+ ((parentNode = [parentKeyPath[1], parentKeyPath[2], [], null]),
7097
+ workingMap.set(parentKeyPath, parentNode),
7098
+ addToReplayParent(parentNode, parentKeyPath[0], trackedPostpones));
7099
+ parentNode[2].push(node);
7100
+ }
7101
+ }
7102
+ function getPostponedState(request) {
7103
+ var trackedPostpones = request.trackedPostpones;
7104
+ if (
7105
+ null === trackedPostpones ||
7106
+ (0 === trackedPostpones.rootNodes.length &&
7107
+ null === trackedPostpones.rootSlots)
7108
+ )
7109
+ return (request.trackedPostpones = null);
7110
+ if (
7111
+ null === request.completedRootSegment ||
7112
+ (5 !== request.completedRootSegment.status &&
7113
+ null !== request.completedPreambleSegments)
7114
+ ) {
7115
+ var nextSegmentId = request.nextSegmentId;
7116
+ var replaySlots = trackedPostpones.rootSlots;
7117
+ var resumableState = request.resumableState;
7118
+ resumableState.bootstrapScriptContent = void 0;
7119
+ resumableState.bootstrapScripts = void 0;
7120
+ resumableState.bootstrapModules = void 0;
7121
+ } else {
7122
+ nextSegmentId = 0;
7123
+ replaySlots = -1;
7124
+ resumableState = request.resumableState;
7125
+ var renderState = request.renderState;
7126
+ resumableState.nextFormID = 0;
7127
+ resumableState.hasBody = !1;
7128
+ resumableState.hasHtml = !1;
7129
+ resumableState.unknownResources = { font: renderState.resets.font };
7130
+ resumableState.dnsResources = renderState.resets.dns;
7131
+ resumableState.connectResources = renderState.resets.connect;
7132
+ resumableState.imageResources = renderState.resets.image;
7133
+ resumableState.styleResources = renderState.resets.style;
7134
+ resumableState.scriptResources = {};
7135
+ resumableState.moduleUnknownResources = {};
7136
+ resumableState.moduleScriptResources = {};
7137
+ resumableState.instructions = 0;
6228
7138
  }
7139
+ return {
7140
+ nextSegmentId: nextSegmentId,
7141
+ rootFormatContext: request.rootFormatContext,
7142
+ progressiveChunkSize: request.progressiveChunkSize,
7143
+ resumableState: request.resumableState,
7144
+ replayNodes: trackedPostpones.rootNodes,
7145
+ replaySlots: replaySlots
7146
+ };
6229
7147
  }
6230
7148
  function ensureCorrectIsomorphicReactVersion() {
6231
7149
  var isomorphicReactPackageVersion = React.version;
6232
- if ("19.1.0" !== isomorphicReactPackageVersion)
7150
+ if ("19.2.4" !== isomorphicReactPackageVersion)
6233
7151
  throw Error(
6234
7152
  formatProdErrorMessage(
6235
7153
  527,
6236
7154
  isomorphicReactPackageVersion,
6237
- "19.1.0"
7155
+ "19.2.4"
6238
7156
  )
6239
7157
  );
6240
7158
  }
@@ -6270,22 +7188,21 @@ exports.prerender = function (children, options) {
6270
7188
  options ? options.progressiveChunkSize : void 0,
6271
7189
  options ? options.onError : void 0,
6272
7190
  function () {
6273
- var result = {
6274
- prelude: new ReadableStream(
6275
- {
6276
- type: "bytes",
6277
- pull: function (controller) {
6278
- startFlowing(request, controller);
6279
- },
6280
- cancel: function (reason) {
6281
- request.destination = null;
6282
- abort(request, reason);
6283
- }
7191
+ var stream = new ReadableStream(
7192
+ {
7193
+ type: "bytes",
7194
+ pull: function (controller) {
7195
+ startFlowing(request, controller);
6284
7196
  },
6285
- { highWaterMark: 0 }
6286
- )
6287
- };
6288
- resolve(result);
7197
+ cancel: function (reason) {
7198
+ request.destination = null;
7199
+ abort(request, reason);
7200
+ }
7201
+ },
7202
+ { highWaterMark: 0 }
7203
+ );
7204
+ stream = { postponed: getPostponedState(request), prelude: stream };
7205
+ resolve(stream);
6289
7206
  },
6290
7207
  void 0,
6291
7208
  void 0,
@@ -6381,4 +7298,113 @@ exports.renderToReadableStream = function (children, options) {
6381
7298
  startWork(request);
6382
7299
  });
6383
7300
  };
6384
- exports.version = "19.1.0";
7301
+ exports.resume = function (children, postponedState, options) {
7302
+ return new Promise(function (resolve, reject) {
7303
+ var onFatalError,
7304
+ onAllReady,
7305
+ allReady = new Promise(function (res, rej) {
7306
+ onAllReady = res;
7307
+ onFatalError = rej;
7308
+ }),
7309
+ request = resumeRequest(
7310
+ children,
7311
+ postponedState,
7312
+ createRenderState(
7313
+ postponedState.resumableState,
7314
+ options ? options.nonce : void 0,
7315
+ void 0,
7316
+ void 0,
7317
+ void 0,
7318
+ void 0
7319
+ ),
7320
+ options ? options.onError : void 0,
7321
+ onAllReady,
7322
+ function () {
7323
+ var stream = new ReadableStream(
7324
+ {
7325
+ type: "bytes",
7326
+ pull: function (controller) {
7327
+ startFlowing(request, controller);
7328
+ },
7329
+ cancel: function (reason) {
7330
+ request.destination = null;
7331
+ abort(request, reason);
7332
+ }
7333
+ },
7334
+ { highWaterMark: 0 }
7335
+ );
7336
+ stream.allReady = allReady;
7337
+ resolve(stream);
7338
+ },
7339
+ function (error) {
7340
+ allReady.catch(function () {});
7341
+ reject(error);
7342
+ },
7343
+ onFatalError,
7344
+ options ? options.onPostpone : void 0
7345
+ );
7346
+ if (options && options.signal) {
7347
+ var signal = options.signal;
7348
+ if (signal.aborted) abort(request, signal.reason);
7349
+ else {
7350
+ var listener = function () {
7351
+ abort(request, signal.reason);
7352
+ signal.removeEventListener("abort", listener);
7353
+ };
7354
+ signal.addEventListener("abort", listener);
7355
+ }
7356
+ }
7357
+ startWork(request);
7358
+ });
7359
+ };
7360
+ exports.resumeAndPrerender = function (children, postponedState, options) {
7361
+ return new Promise(function (resolve, reject) {
7362
+ var request = resumeAndPrerenderRequest(
7363
+ children,
7364
+ postponedState,
7365
+ createRenderState(
7366
+ postponedState.resumableState,
7367
+ void 0,
7368
+ void 0,
7369
+ void 0,
7370
+ void 0,
7371
+ void 0
7372
+ ),
7373
+ options ? options.onError : void 0,
7374
+ function () {
7375
+ var stream = new ReadableStream(
7376
+ {
7377
+ type: "bytes",
7378
+ pull: function (controller) {
7379
+ startFlowing(request, controller);
7380
+ },
7381
+ cancel: function (reason) {
7382
+ request.destination = null;
7383
+ abort(request, reason);
7384
+ }
7385
+ },
7386
+ { highWaterMark: 0 }
7387
+ );
7388
+ stream = { postponed: getPostponedState(request), prelude: stream };
7389
+ resolve(stream);
7390
+ },
7391
+ void 0,
7392
+ void 0,
7393
+ reject,
7394
+ options ? options.onPostpone : void 0
7395
+ );
7396
+ if (options && options.signal) {
7397
+ var signal = options.signal;
7398
+ if (signal.aborted) abort(request, signal.reason);
7399
+ else {
7400
+ var listener = function () {
7401
+ abort(request, signal.reason);
7402
+ signal.removeEventListener("abort", listener);
7403
+ };
7404
+ signal.addEventListener("abort", listener);
7405
+ }
7406
+ }
7407
+ startWork(request);
7408
+ });
7409
+ };
7410
+ exports.version = "19.2.4";