@superdoc/mcp 1.4.0-next.9 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +1008 -369
  2. package/package.json +4 -4
package/dist/index.js CHANGED
@@ -31330,7 +31330,7 @@ var init_host = __esm(() => {
31330
31330
  });
31331
31331
 
31332
31332
  // ../../packages/sdk/langs/node/src/runtime/sdk-version.generated.ts
31333
- var SDK_VERSION = "2.17.0-next.9";
31333
+ var SDK_VERSION = "2.17.0";
31334
31334
 
31335
31335
  // ../../packages/sdk/langs/node/src/runtime/embedded-platform.ts
31336
31336
  import { accessSync, chmodSync, constants, existsSync, statSync } from "node:fs";
@@ -96825,7 +96825,7 @@ Complete new body.`,
96825
96825
  find: {
96826
96826
  memberPath: "find",
96827
96827
  description: "Search the document for text or node matches using SDM/1 selectors. Returns discovery-grade results: for mutation targeting, use query.match instead.",
96828
- expectedResult: "Returns an SDFindResult envelope ({ total, limit, offset, items }). Each item is an SDNodeResult ({ node, address }).",
96828
+ expectedResult: "Returns an SDFindResult envelope ({ total, limit, offset, items }). Each item is an SDNodeResult ({ node, address }). Text hits contain only the matched text; use getNode or getNodeById for the full containing node. Node selectors return full node projections.",
96829
96829
  requiresDocumentContext: true,
96830
96830
  metadata: readOperation({
96831
96831
  idempotency: "idempotent",
@@ -122668,7 +122668,7 @@ var init_paragraph_signal_index = __esm(() => {
122668
122668
  RETAINED_PARAGRAPH_SIGNALS = Symbol("retained-paragraph-signals");
122669
122669
  });
122670
122670
 
122671
- // ../../../v2/node_modules/.pnpm/xmlchars@2.2.0/node_modules/xmlchars/xml/1.0/ed5.js
122671
+ // ../../node_modules/.pnpm/xmlchars@2.2.0/node_modules/xmlchars/xml/1.0/ed5.js
122672
122672
  var require_ed5 = __commonJS((exports) => {
122673
122673
  Object.defineProperty(exports, "__esModule", { value: true });
122674
122674
  exports.CHAR = `
@@ -122706,7 +122706,7 @@ var require_ed5 = __commonJS((exports) => {
122706
122706
  exports.isNameChar = isNameChar;
122707
122707
  });
122708
122708
 
122709
- // ../../../v2/node_modules/.pnpm/xmlchars@2.2.0/node_modules/xmlchars/xml/1.1/ed2.js
122709
+ // ../../node_modules/.pnpm/xmlchars@2.2.0/node_modules/xmlchars/xml/1.1/ed2.js
122710
122710
  var require_ed2 = __commonJS((exports) => {
122711
122711
  Object.defineProperty(exports, "__esModule", { value: true });
122712
122712
  exports.CHAR = "\x01-퟿-�\uD800\uDC00-\uDBFF\uDFFF";
@@ -122753,7 +122753,7 @@ var require_ed2 = __commonJS((exports) => {
122753
122753
  exports.isNameChar = isNameChar;
122754
122754
  });
122755
122755
 
122756
- // ../../../v2/node_modules/.pnpm/xmlchars@2.2.0/node_modules/xmlchars/xmlns/1.0/ed3.js
122756
+ // ../../node_modules/.pnpm/xmlchars@2.2.0/node_modules/xmlchars/xmlns/1.0/ed3.js
122757
122757
  var require_ed3 = __commonJS((exports) => {
122758
122758
  Object.defineProperty(exports, "__esModule", { value: true });
122759
122759
  exports.NC_NAME_START_CHAR = "A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�\uD800\uDC00-\uDB7F\uDFFF";
@@ -122771,7 +122771,7 @@ var require_ed3 = __commonJS((exports) => {
122771
122771
  exports.isNCNameChar = isNCNameChar;
122772
122772
  });
122773
122773
 
122774
- // ../../../v2/node_modules/.pnpm/saxes@6.0.0/node_modules/saxes/saxes.js
122774
+ // ../../node_modules/.pnpm/saxes@6.0.0/node_modules/saxes/saxes.js
122775
122775
  var require_saxes = __commonJS((exports) => {
122776
122776
  Object.defineProperty(exports, "__esModule", { value: true });
122777
122777
  exports.SaxesParser = exports.EVENTS = undefined;
@@ -150436,6 +150436,15 @@ function rebuildMutationSnapshot(snapshot2, state, signalsRevision, touchedStory
150436
150436
  function rebuildMutationSnapshotCanonical(snapshot2, state, signalsRevision, touchedStoryIds, lanesToRebuild, touchedParagraphIndexes, noteAnchorRefsByStory, localizedParagraphSignalsAlreadyRefreshed, sectionMutationPatches, sectionCoordinateSplicesByStory) {
150437
150437
  const shouldRebuildNoteAnchorRefs = lanesToRebuild.has("noteAnchorRefs");
150438
150438
  const shouldRebuildParagraphIndex = lanesToRebuild.has("paragraphIndex");
150439
+ const fullPartNoteAnchorRefsByStory = new Map;
150440
+ const readFullPartNoteAnchorRefs = (storyId, partUri) => {
150441
+ const donor = projectNoteAnchorRefsFromSamePartDonor(state, storyId, partUri, fullPartNoteAnchorRefsByStory);
150442
+ if (donor != null)
150443
+ return donor;
150444
+ const refs = scanNoteAnchorRefs(state, storyId, partUri);
150445
+ fullPartNoteAnchorRefsByStory.set(storyId, refs);
150446
+ return refs;
150447
+ };
150439
150448
  const paragraphSignalsWereComplete = snapshot2.completeness.paragraphIndex === "complete";
150440
150449
  const mayPromoteMainParagraphSignals = lanesToRebuild.has("sections");
150441
150450
  const paragraphSignalsAreComplete = paragraphSignalsWereComplete || shouldRebuildParagraphIndex && mayPromoteMainParagraphSignals;
@@ -150479,7 +150488,7 @@ function rebuildMutationSnapshotCanonical(snapshot2, state, signalsRevision, tou
150479
150488
  manualPageBreaks: rebaseDisjointStorySourceSignals(story.manualPageBreaks, story, storyRevision, partRevision, coordinateSplice),
150480
150489
  headings: rebaseDisjointStorySourceSignals(story.headings, story, storyRevision, partRevision, coordinateSplice),
150481
150490
  drawings: rebaseDisjointStorySourceSignals(story.drawings, story, storyRevision, partRevision, coordinateSplice),
150482
- noteAnchorRefs: shouldRebuildNoteAnchorRefs ? noteAnchorRefsByStory?.get(story.storyId) ?? scanNoteAnchorRefs(state, story.storyId, ownerPartId) : story.noteAnchorRefs,
150491
+ noteAnchorRefs: shouldRebuildNoteAnchorRefs ? noteAnchorRefsByStory?.get(story.storyId) ?? readFullPartNoteAnchorRefs(story.storyId, ownerPartId) : story.noteAnchorRefs,
150483
150492
  paragraphIndex: paragraphSignals,
150484
150493
  completeness
150485
150494
  };
@@ -150492,7 +150501,7 @@ function rebuildMutationSnapshotCanonical(snapshot2, state, signalsRevision, tou
150492
150501
  for (const storyId of touchedStoryIds) {
150493
150502
  if (seenStoryIds.has(storyId))
150494
150503
  continue;
150495
- const added = buildTouchedStorySignals(state, storyId, signalsRevision, lanesToRebuild, touchedParagraphIndexes, noteAnchorRefsByStory);
150504
+ const added = buildTouchedStorySignals(state, storyId, signalsRevision, lanesToRebuild, touchedParagraphIndexes, noteAnchorRefsByStory, readFullPartNoteAnchorRefs);
150496
150505
  if (added) {
150497
150506
  stories.push(added);
150498
150507
  seenStoryIds.add(storyId);
@@ -150806,7 +150815,7 @@ function finalSectionSemanticsAreUnchanged(section, candidate) {
150806
150815
  headerFooterRefs: section.headerFooterRefs
150807
150816
  }) === fingerprint(candidate);
150808
150817
  }
150809
- function buildTouchedStorySignals(state, storyId, signalsRevision, lanesToRebuild, touchedParagraphIndexes, noteAnchorRefsByStory) {
150818
+ function buildTouchedStorySignals(state, storyId, signalsRevision, lanesToRebuild, touchedParagraphIndexes, noteAnchorRefsByStory, readFullPartNoteAnchorRefs = (storyId2, partUri) => scanNoteAnchorRefs(state, storyId2, partUri)) {
150810
150819
  const story = state.stories.get(storyId);
150811
150820
  if (!story)
150812
150821
  return null;
@@ -150828,7 +150837,7 @@ function buildTouchedStorySignals(state, storyId, signalsRevision, lanesToRebuil
150828
150837
  manualPageBreaks: [],
150829
150838
  headings: [],
150830
150839
  drawings: [],
150831
- noteAnchorRefs: shouldRebuildNoteAnchorRefs ? noteAnchorRefsByStory?.get(storyId) ?? projectNoteAnchorRefsFromSamePartDonor(state, storyId, partUri, noteAnchorRefsByStory) ?? scanNoteAnchorRefs(state, storyId, partUri) : [],
150840
+ noteAnchorRefs: shouldRebuildNoteAnchorRefs ? noteAnchorRefsByStory?.get(storyId) ?? projectNoteAnchorRefsFromSamePartDonor(state, storyId, partUri, noteAnchorRefsByStory) ?? readFullPartNoteAnchorRefs(storyId, partUri) : [],
150832
150841
  paragraphIndex,
150833
150842
  completeness: {
150834
150843
  sections: "not-applicable",
@@ -152125,7 +152134,7 @@ var init_history_text_replay = __esm(() => {
152125
152134
  MAX_HISTORY_OWNER_BYTES = 512 * 1024;
152126
152135
  });
152127
152136
 
152128
- // ../../../v2/node_modules/.pnpm/fflate@0.8.2/node_modules/fflate/esm/index.mjs
152137
+ // ../../node_modules/.pnpm/fflate@0.8.2/node_modules/fflate/esm/index.mjs
152129
152138
  import { createRequire as createRequire3 } from "module";
152130
152139
  function deflateSync(data, opts) {
152131
152140
  return dopt(data, opts || {}, 0, 0);
@@ -173897,6 +173906,56 @@ function buildIsolatedTrackedRunFormattingLogicalIdWithLookupContext(lookupConte
173897
173906
  return null;
173898
173907
  return entry.id;
173899
173908
  }
173909
+ function buildIsolatedTrackedParagraphSplitLogicalId(input) {
173910
+ return withStructuralLookupContext(undefined, (lookupContext) => {
173911
+ const xml = `<w:body>${input.xml}</w:body>`;
173912
+ const raw = buildTrackedChangeCatalogFromPartXml({
173913
+ xml,
173914
+ partUri: input.partUri,
173915
+ storyId: input.storyId,
173916
+ namespaceBindings: { w: NS_W }
173917
+ });
173918
+ const structural = [...raw.structuralByKey.values()].flat();
173919
+ const mark = structural[0];
173920
+ if (structural.length !== 1 || !mark || mark.structuralKind !== "paragraph-mark-insertion" || mark.wId !== input.wordId || mark.fullParagraphInsertion === true || raw.formattingByKey.size !== 0 || raw.unsupportedByStory.size !== 0)
173921
+ return null;
173922
+ const logical = buildLogicalCatalogWithLookupContext(lookupContext, raw, input.replacementMode, new Map([[input.partUri, xml]]));
173923
+ const id = logical.structuralKeyToLogicalId.get(mark.entityKey);
173924
+ const entry = id ? logical.byId.get(id) : undefined;
173925
+ return entry?.type === "structural" && entry.subtype === "paragraph-mark-insertion" && entry.storyId === input.storyId && entry.reviewGroup == null && entry.subsumption == null ? entry.id : null;
173926
+ });
173927
+ }
173928
+ function buildBoundedTrackedParagraphRangeReceiptProjection(input) {
173929
+ return withStructuralLookupContext(undefined, (lookupContext) => {
173930
+ const xml = `<w:body>${input.xml}</w:body>`;
173931
+ const namespaceBindings = xmlFragmentAdditionalNamespaces(xml, new Map(Object.entries(input.namespaceBindings ?? {})), { w: NS_W, w14: NS_W14 });
173932
+ const parsed = collectXmlElementRanges(xml, { additionalNamespaces: namespaceBindings });
173933
+ if (parsed.errors.length || parsed.ranges.some((range) => range.tag.namespaceUri !== NS_W || /^(?:move|sectPr|sdt)/.test(range.tag.localName)))
173934
+ return null;
173935
+ const paragraphs = parsed.ranges.filter((range) => range.tag.localName === "p");
173936
+ if (paragraphs.length !== 2 || paragraphs.some((range) => !readXmlAttribute(range.tag, NS_W14, "paraId")?.value))
173937
+ return null;
173938
+ const raw = buildTrackedChangeCatalogFromPartXml({ xml, partUri: input.partUri, storyId: input.storyId, namespaceBindings });
173939
+ const structural = [...raw.structuralByKey.values()].flat();
173940
+ const mark = structural[0];
173941
+ if (structural.length !== 1 || !mark || mark.structuralKind !== "paragraph-mark-insertion" || mark.fullParagraphInsertion === true || raw.formattingByKey.size || raw.unsupportedByStory.size)
173942
+ return null;
173943
+ const logical = buildLogicalCatalogWithLookupContext(lookupContext, raw, input.replacementMode, new Map([[input.partUri, xml]]));
173944
+ const id = input.wordId === mark.wId ? logical.structuralKeyToLogicalId.get(mark.entityKey) : input.rsids?.length ? logical.rsidToLogicalId.get(input.rsids[0]) : undefined;
173945
+ const entry = id ? logical.byId.get(id) : undefined;
173946
+ if (!entry || entry.type !== "insertion" || entry.subtype !== "text-insertion" || entry.reviewGroup?.kind !== "word-inserted-paragraph-range" || entry.reviewGroup.role !== "parent" || entry.subsumption || entry.overlap || entry.movePair || entry.structuralFragments.length !== 1 || input.rsids?.some((rsid) => logical.rsidToLogicalId.get(rsid) !== id))
173947
+ return null;
173948
+ const carriers = [...entry.fragments, ...entry.structuralFragments];
173949
+ if (carriers.some((carrier) => !/^\d+$/.test(carrier.wId ?? "") || !input.authoredWordIds.has(Number(carrier.wId)) || carrier.customAttributes?.length))
173950
+ return null;
173951
+ if (parsed.ranges.some((range) => /^comment/.test(range.tag.localName) && range.start < entry.documentOrderEnd && range.end > entry.documentOrderStart))
173952
+ return null;
173953
+ const ordinary = parsed.ranges.filter((range) => range.tag.localName === "t" && range.closeStart > range.openEnd && parsed.ranges.every((parent) => !(parent.start < range.start && parent.end > range.end && /^(?:ins|del|pPr)$/.test(parent.tag.localName))));
173954
+ if (!ordinary.some((range) => range.end <= entry.documentOrderStart) || !ordinary.some((range) => range.start >= entry.documentOrderEnd))
173955
+ return null;
173956
+ return { id: entry.id, childIds: entry.reviewGroup.ownedChildIds };
173957
+ });
173958
+ }
173900
173959
  function buildIsolatedTrackedParagraphInsertionProjection(input, lookupContext) {
173901
173960
  return withStructuralLookupContext(lookupContext, (lookupContext2) => buildIsolatedTrackedParagraphInsertionProjectionWithLookupContext(lookupContext2, input));
173902
173961
  }
@@ -178329,6 +178388,7 @@ function buildSDRenderCommitEnvelope(state, prepared, result, context = {}, opti
178329
178388
  if (trackedTextResolution != null && !trackedTextResolutionProved) {
178330
178389
  return broad("tracked-annotation-unproved");
178331
178390
  }
178391
+ const exhaustedInsertionProved = proveExhaustedTrackedInsertionForRender(prepared, context.originParagraphXml, postParagraphXml);
178332
178392
  const trackedDecisionInvalidatedChangeIds = trackedDecisionRefDelta?.kind === "invalidated" ? trackedDecisionRefDelta.changeIds : trackedTextResolutionProved ? trackedTextResolution.changeIds : null;
178333
178393
  const ownerByteDelta = postBytes.byteLength - (op.on.paragraphByteEnd - op.on.paragraphByteStart);
178334
178394
  const currentOwnerByteStart = ownerByteRange.byteStart;
@@ -178358,7 +178418,8 @@ function buildSDRenderCommitEnvelope(state, prepared, result, context = {}, opti
178358
178418
  const sliceDependencyReason = source.sourceKind === "textboxAtomReplacement" ? classifyTextboxAtomSliceDependency(prepared, postParagraphXml, context.originParagraphXml, trackedAnnotations) : trackedDecisionRefDelta ? classifyTrackedDecisionSliceDependency(postParagraphXml, context.originParagraphXml, trackedDecisionRefDelta.kind) : classifyUnprovedSliceDependency(postParagraphXml, trackedAnnotations, context.originParagraphXml, {
178359
178419
  allowTrackedWrapperDelta: source.sourceKind === "trackedChangeDecide",
178360
178420
  trackedCarrierRefinementProved,
178361
- trackedTextResolutionProved
178421
+ trackedTextResolutionProved,
178422
+ exhaustedInsertionProved
178362
178423
  });
178363
178424
  let derivedInvalidations = null;
178364
178425
  if (sliceDependencyReason) {
@@ -178378,7 +178439,8 @@ function buildSDRenderCommitEnvelope(state, prepared, result, context = {}, opti
178378
178439
  if (derivedInvalidations == null)
178379
178440
  return broad(sliceDependencyReason);
178380
178441
  }
178381
- const section = captureGoverningSectionDependency(state, op.on.storyId, bodyChild.bodyChildOrdinal);
178442
+ const directTextSourceEffect = source.sourceKind === "editText" && directEffectInput?.changeMode === "direct" ? classifyDirectVisibleTextLeafEffect(directEffectInput) : null;
178443
+ const section = captureGoverningSectionDependency(state, op.on.storyId, bodyChild.bodyChildOrdinal, directTextSourceEffect?.kind === "proved" ? "direct-visible-text" : undefined);
178382
178444
  if (!section) {
178383
178445
  const continuedTrackedInsertionChangeId = directEffectInput?.changeMode === "tracked" && trackedAnnotations?.length === 0 ? captureContinuedTrackedInsertionChangeId(prepared, directEffectInput, context.originParagraphXml, postParagraphXml, op.on.storyId) : null;
178384
178446
  const localizedBodyTextEffect = directEffectInput ? directEffectInput.changeMode === "direct" ? classifyDirectVisibleTextLeafEffect(directEffectInput) : directEffectInput.startOffset === directEffectInput.endOffset && directEffectInput.newText.length > 0 && (trackedAnnotations?.length === 1 && trackedAnnotations[0]?.kind === "insert" || continuedTrackedInsertionChangeId != null) ? classifyVisibleTextMutationEffect(directEffectInput) : null : null;
@@ -180491,6 +180553,77 @@ function captureContinuedTrackedInsertionChangeId(prepared, input, originParagra
180491
180553
  const expectedVisibleText = origin.visibleText.slice(0, localOffset) + input.newText + origin.visibleText.slice(localOffset);
180492
180554
  return post.visibleText === expectedVisibleText ? changeId : null;
180493
180555
  }
180556
+ function proveExhaustedTrackedInsertionForRender(prepared, originXml, postXml) {
180557
+ const proof = prepared.backendExtensions.storySurface?.trackedTextRefinement;
180558
+ const source = prepared.source;
180559
+ if (!proof?.removesInsertion || originXml == null || source.kind !== "editText" || source.changeMode !== "tracked" || source.newText !== "" || proof.insertedText !== "" || proof.blockId !== source.on.startBlockId || proof.sourceRange.coordinateSpace !== (source.on.coordinateSpace ?? "visible") || proof.sourceRange.startOffset !== source.on.startOffset || proof.sourceRange.endOffset !== source.on.endOffset || proof.liveTextRange.endOffset <= proof.liveTextRange.startOffset)
180560
+ return false;
180561
+ const parsed = collectXmlElementRanges(originXml, {
180562
+ fragment: true,
180563
+ additionalNamespaces: xmlFragmentAdditionalNamespaces(originXml, new Map, { w: NS_W })
180564
+ });
180565
+ if (parsed.errors.length)
180566
+ return false;
180567
+ const paragraph = parseParagraphInlineMap(originXml);
180568
+ const candidates = parsed.ranges.filter((range) => {
180569
+ if (range.tag.namespaceUri !== NS_W || range.tag.localName !== "ins")
180570
+ return false;
180571
+ const rsid = readXmlAttributeValueByLocalName(originXml.slice(range.start, range.openEnd), "rsidR");
180572
+ if (rsid?.toUpperCase() !== proof.insertionRsid.toUpperCase())
180573
+ return false;
180574
+ const pieces = paragraph.leaves().filter((piece) => piece.charStart >= range.openEnd && piece.charEnd <= range.closeStart && piece.visibleEnd > piece.visibleStart);
180575
+ return pieces.length > 0 && Math.min(...pieces.map((piece) => piece.visibleStart)) === proof.liveTextRange.startOffset && Math.max(...pieces.map((piece) => piece.visibleEnd)) === proof.liveTextRange.endOffset;
180576
+ });
180577
+ if (candidates.length !== 1)
180578
+ return false;
180579
+ const carrier = candidates[0];
180580
+ const properties = new Set([
180581
+ "rStyle",
180582
+ "rFonts",
180583
+ "b",
180584
+ "bCs",
180585
+ "i",
180586
+ "iCs",
180587
+ "caps",
180588
+ "smallCaps",
180589
+ "strike",
180590
+ "dstrike",
180591
+ "outline",
180592
+ "shadow",
180593
+ "emboss",
180594
+ "imprint",
180595
+ "noProof",
180596
+ "snapToGrid",
180597
+ "vanish",
180598
+ "webHidden",
180599
+ "color",
180600
+ "spacing",
180601
+ "w",
180602
+ "kern",
180603
+ "position",
180604
+ "sz",
180605
+ "szCs",
180606
+ "highlight",
180607
+ "u",
180608
+ "effect",
180609
+ "bdr",
180610
+ "shd",
180611
+ "fitText",
180612
+ "vertAlign",
180613
+ "rtl",
180614
+ "cs",
180615
+ "em",
180616
+ "lang",
180617
+ "eastAsianLayout",
180618
+ "specVanish",
180619
+ "oMath"
180620
+ ]);
180621
+ const descendants = parsed.ranges.filter((range) => range.start >= carrier.start && range.end <= carrier.end);
180622
+ const runProperties = descendants.filter((range) => range.tag.namespaceUri === NS_W && range.tag.localName === "rPr");
180623
+ if (descendants.some((range) => range !== carrier && (range.tag.namespaceUri !== NS_W || !(["r", "rPr", "t"].includes(range.tag.localName) || properties.has(range.tag.localName) && runProperties.some((parent) => range.start >= parent.openEnd && range.end <= parent.closeStart)))))
180624
+ return false;
180625
+ return originXml.slice(0, carrier.start) + originXml.slice(carrier.end) === postXml;
180626
+ }
180494
180627
  function trackedCarrierKeys(xml) {
180495
180628
  const keys = [];
180496
180629
  TRACKED_WRAPPER_TOKEN_RE.lastIndex = 0;
@@ -180748,7 +180881,7 @@ function classifyDeferrableSliceDependency(reason, xml, originXml, auxiliaryStor
180748
180881
  function classifyUnprovedSliceDependency(xml, trackedAnnotations, originXml, options = {}) {
180749
180882
  if (originXml == null)
180750
180883
  return "origin-slice-unavailable";
180751
- if (!options.trackedCarrierRefinementProved && !options.trackedTextResolutionProved && (TRACKED_WRAPPER_RE.test(xml) || TRACKED_WRAPPER_RE.test(originXml))) {
180884
+ if (!options.trackedCarrierRefinementProved && !options.trackedTextResolutionProved && !options.exhaustedInsertionProved && (TRACKED_WRAPPER_RE.test(xml) || TRACKED_WRAPPER_RE.test(originXml))) {
180752
180885
  if (!options.allowTrackedWrapperDelta || TRACKED_WRAPPER_RE.test(xml)) {
180753
180886
  if (trackedAnnotations == null)
180754
180887
  return "tracked-annotation-unproved";
@@ -180976,7 +181109,7 @@ function relationshipsPartUriFor(partUri) {
180976
181109
  const name = partUri.slice(slash + 1);
180977
181110
  return `${directory}/_rels/${name}.rels`;
180978
181111
  }
180979
- function captureGoverningSectionDependency(state, storyId, bodyChildOrdinal) {
181112
+ function captureGoverningSectionDependency(state, storyId, bodyChildOrdinal, sourceEdit) {
180980
181113
  const story = state.sourceSignals.snapshot?.stories.find((candidate2) => candidate2.storyId === storyId);
180981
181114
  if (story?.completeness.sections === "complete") {
180982
181115
  if (story.sections.length === 0) {
@@ -180994,7 +181127,7 @@ function captureGoverningSectionDependency(state, storyId, bodyChildOrdinal) {
180994
181127
  };
180995
181128
  }
180996
181129
  const section = findGoverningSection(story.sections, bodyChildOrdinal);
180997
- if (!section || story.sections.length === 1 && section.kind === "final-body-sectPr" && section.storyRevision !== story.storyRevision || !isNarrowSectionSupported(section, story))
181130
+ if (!section || story.sections.length === 1 && section.kind === "final-body-sectPr" && section.storyRevision !== story.storyRevision || !isNarrowSectionSupported(section, story, sourceEdit))
180998
181131
  return null;
180999
181132
  const startBodyChildOrdinal = section.appliesTo.startBodyChildOrdinal;
181000
181133
  const endBodyChildOrdinalExclusive = section.appliesTo.endBodyChildOrdinalExclusive;
@@ -181018,14 +181151,15 @@ function captureGoverningSectionDependency(state, storyId, bodyChildOrdinal) {
181018
181151
  function toggleEffectivelyOn(toggle) {
181019
181152
  return toggle.present && toggle.explicitValue !== false;
181020
181153
  }
181021
- function isNarrowSectionSupported(section, story) {
181154
+ function isNarrowSectionSupported(section, story, sourceEdit) {
181022
181155
  const pageSetup = section.pageSetup;
181156
+ const localTextSourceProved = sourceEdit === "direct-visible-text";
181023
181157
  const columnsAreEffectivelySingle = section.columns == null || (section.columns.count == null || section.columns.count === 1) && section.columns.columns.length <= 1 && section.columns.separator !== true;
181024
181158
  const columnsAreProvedNonBalanceable = section.columns != null && sectionColumnsProveBalancingInert(section.columns);
181025
181159
  const sectionType = pageSetup.type.value;
181026
181160
  const carrierMatches = section.kind === "final-body-sectPr" ? section.carrier.carrierKind === "final-body-sectPr" : section.carrier.carrierKind === "paragraph";
181027
181161
  const endnotePropertiesAreInactive = section.noteProperties.endnotePr == null || story.completeness.noteAnchorRefs === "complete" && story.noteAnchorRefs.every((reference) => reference.kind !== "endnote");
181028
- return carrierMatches && section.carrier.trackedChangeState === "none" && section.changeTracking.state === "unchanged" && section.mceAlternatives.length === 0 && (columnsAreEffectivelySingle || columnsAreProvedNonBalanceable) && section.noteProperties.footnotePr == null && endnotePropertiesAreInactive && section.lineNumbering == null && pageSetup.pageBorders == null && !toggleEffectivelyOn(pageSetup.bidi) && !toggleEffectivelyOn(pageSetup.rtlGutter) && !toggleEffectivelyOn(pageSetup.formProtection) && !pageSetup.textDirection.present && sectionType !== "evenPage" && sectionType !== "oddPage" && sectionType !== "nextColumn" && section.headerFooterRefs.every((ref3) => ref3.targetStatus === "resolved");
181162
+ return carrierMatches && section.carrier.trackedChangeState === "none" && section.changeTracking.state === "unchanged" && section.mceAlternatives.length === 0 && (localTextSourceProved || columnsAreEffectivelySingle || columnsAreProvedNonBalanceable) && (localTextSourceProved || section.noteProperties.footnotePr == null) && endnotePropertiesAreInactive && section.lineNumbering == null && pageSetup.pageBorders == null && (localTextSourceProved || !toggleEffectivelyOn(pageSetup.bidi)) && !toggleEffectivelyOn(pageSetup.rtlGutter) && !toggleEffectivelyOn(pageSetup.formProtection) && !pageSetup.textDirection.present && sectionType !== "evenPage" && sectionType !== "oddPage" && sectionType !== "nextColumn" && section.headerFooterRefs.every((ref3) => ref3.targetStatus === "resolved");
181029
181163
  }
181030
181164
  function sectionColumnsProveBalancingInert(columns) {
181031
181165
  const count = columns.count;
@@ -190533,9 +190667,11 @@ function buildCommentAnchorIndex(state, previousStoryScans, catalogOverride) {
190533
190667
  const bytes = state.packageBytes.get(story.partUri);
190534
190668
  if (!bytes)
190535
190669
  continue;
190536
- const previous = previousStoryScans.find((candidate2) => candidate2.bytes === bytes && sameStoryEnumeration(candidate2.story, story));
190537
- const storyHits = previous?.hits ?? scanStoryForAnchors(TD34.decode(bytes), story);
190538
- storyScans.push({ story: { ...story }, bytes, hits: storyHits });
190670
+ const previous = previousStoryScans.find((candidate2) => sameStoryEnumeration(candidate2.story, story));
190671
+ const xml = previous?.bytes === bytes ? previous.xml : TD34.decode(bytes);
190672
+ const scanned = previous?.bytes === bytes ? previous : scanStoryForAnchors(xml, story, previous);
190673
+ const storyHits = scanned.hits;
190674
+ storyScans.push({ story: { ...story }, bytes, xml, hits: storyHits, paragraphs: scanned.paragraphs });
190539
190675
  for (const hit of storyHits) {
190540
190676
  const list = hitsBySource.get(hit.sourceWId) ?? [];
190541
190677
  list.push(hit);
@@ -190597,7 +190733,7 @@ function enumerateStoryParts(state) {
190597
190733
  }
190598
190734
  return out;
190599
190735
  }
190600
- function scanStoryForAnchors(xml, story) {
190736
+ function scanStoryForAnchors(xml, story, previous) {
190601
190737
  const markers = [];
190602
190738
  const markerRe = /<[\w.-]+:(commentRangeStart|commentRangeEnd|commentReference)\s[^>]*?\bw:id="([^"]+)"[^>]*\/>/g;
190603
190739
  for (let m = markerRe.exec(xml);m; m = markerRe.exec(xml)) {
@@ -190611,8 +190747,8 @@ function scanStoryForAnchors(xml, story) {
190611
190747
  });
190612
190748
  }
190613
190749
  if (markers.length === 0)
190614
- return [];
190615
- const paragraphs = collectParagraphContexts(xml);
190750
+ return { hits: [], paragraphs: null };
190751
+ const paragraphs = rebaseTextOnlyParagraphContexts(xml, previous) ?? collectParagraphContexts(xml);
190616
190752
  const trackedWrapperCoverage = buildTrackedWrapperCoverage(xml);
190617
190753
  const byId = new Map;
190618
190754
  for (const mk of markers) {
@@ -190631,7 +190767,7 @@ function scanStoryForAnchors(xml, story) {
190631
190767
  const start = starts[i2];
190632
190768
  const end = ends[i2];
190633
190769
  const trackedChangeWrapper = findEnclosingTrackedWrapperKind(trackedWrapperCoverage, start.charStart, end.charEnd);
190634
- const rangeSegments = buildAnchorRangeSegments(xml, paragraphs, start, end);
190770
+ const rangeSegments = buildAnchorRangeSegments(xml, paragraphs ?? [], start, end);
190635
190771
  for (const segment of rangeSegments) {
190636
190772
  if (trackedChangeWrapper)
190637
190773
  segment.trackedChangeWrapper = trackedChangeWrapper;
@@ -190651,7 +190787,7 @@ function scanStoryForAnchors(xml, story) {
190651
190787
  hasRangeEnd: ends.length > 0
190652
190788
  });
190653
190789
  }
190654
- return out;
190790
+ return { hits: out, paragraphs };
190655
190791
  }
190656
190792
  function extractVisibleText2(xmlFragment) {
190657
190793
  let out = "";
@@ -190661,10 +190797,62 @@ function extractVisibleText2(xmlFragment) {
190661
190797
  }
190662
190798
  return out;
190663
190799
  }
190800
+ function rebaseTextOnlyParagraphContexts(xml, previous) {
190801
+ if (!previous?.paragraphs)
190802
+ return null;
190803
+ const prior = previous.xml;
190804
+ if (prior.includes("<!DOCTYPE"))
190805
+ return null;
190806
+ let start = 0;
190807
+ const commonLength = Math.min(prior.length, xml.length);
190808
+ const comparisonChunk = 4096;
190809
+ while (start + comparisonChunk <= commonLength && prior.slice(start, start + comparisonChunk) === xml.slice(start, start + comparisonChunk)) {
190810
+ start += comparisonChunk;
190811
+ }
190812
+ while (start < commonLength && prior.charCodeAt(start) === xml.charCodeAt(start))
190813
+ start += 1;
190814
+ if (start === prior.length && start === xml.length)
190815
+ return previous.paragraphs;
190816
+ let oldEnd = prior.length;
190817
+ let newEnd = xml.length;
190818
+ while (oldEnd - comparisonChunk >= start && newEnd - comparisonChunk >= start && prior.slice(oldEnd - comparisonChunk, oldEnd) === xml.slice(newEnd - comparisonChunk, newEnd)) {
190819
+ oldEnd -= comparisonChunk;
190820
+ newEnd -= comparisonChunk;
190821
+ }
190822
+ while (oldEnd > start && newEnd > start && prior.charCodeAt(oldEnd - 1) === xml.charCodeAt(newEnd - 1)) {
190823
+ oldEnd -= 1;
190824
+ newEnd -= 1;
190825
+ }
190826
+ if (/[<>]/.test(prior.slice(start, oldEnd)) || /[<>]/.test(xml.slice(start, newEnd)))
190827
+ return null;
190828
+ const nodeStart = prior.lastIndexOf("<", start - 1);
190829
+ if (nodeStart < 0)
190830
+ return null;
190831
+ for (const [open, close] of [["<!--", "-->"], ["<![CDATA[", "]]>"], ["<?", "?>"]]) {
190832
+ if (prior.lastIndexOf(open, nodeStart) > prior.lastIndexOf(close, nodeStart))
190833
+ return null;
190834
+ }
190835
+ const node2 = readXmlNodeAt(prior, nodeStart);
190836
+ if (!node2 || node2.kind !== "element" || node2.selfClosing || node2.openEnd > start || node2.closeStart < oldEnd) {
190837
+ return null;
190838
+ }
190839
+ const delta = xml.length - prior.length;
190840
+ const textEnd = prior.indexOf("<", node2.openEnd);
190841
+ if (textEnd < oldEnd || parseXmlForError(`<text>${xml.slice(node2.openEnd, textEnd + delta)}</text>`, { namespaceAware: false }) !== null)
190842
+ return null;
190843
+ const shift = (position) => position > start ? position + delta : position;
190844
+ return previous.paragraphs.map((paragraph) => ({
190845
+ paraId: paragraph.paraId,
190846
+ openStart: shift(paragraph.openStart),
190847
+ openEnd: shift(paragraph.openEnd),
190848
+ closeStart: shift(paragraph.closeStart),
190849
+ closeEnd: shift(paragraph.closeEnd)
190850
+ }));
190851
+ }
190664
190852
  function collectParagraphContexts(xml) {
190665
190853
  const scan = scanWmlParagraphSpans(xml);
190666
190854
  if (!scan.ok)
190667
- return [];
190855
+ return null;
190668
190856
  return scan.paragraphs.map((paragraph) => ({
190669
190857
  paraId: paragraph.paraId,
190670
190858
  openStart: paragraph.openStart,
@@ -190713,6 +190901,7 @@ var TD34, COMMENT_ANCHOR_INDEX_KEY = "__comment-anchor-index", ANCHOR_TAG;
190713
190901
  var init_comment_anchor_index = __esm(() => {
190714
190902
  init_lazy_indexes();
190715
190903
  init_wml_paragraph_spans();
190904
+ init_xml_sax();
190716
190905
  init_comments_catalog();
190717
190906
  init_tracked_wrapper_coverage();
190718
190907
  TD34 = new TextDecoder;
@@ -192629,7 +192818,8 @@ function compileParsedOverlapEdit(input, tokens, descendedEditableContainers) {
192629
192818
  }
192630
192819
  const paragraphContainsMoveWrapper = tokens.some((token) => token.kind === "unsupported" && token.foreignTrackedWrapper !== true && (token.trackedKind === "moveFrom" || token.trackedKind === "moveTo"));
192631
192820
  const trackedPlainCaret = (input.coordinateSpace ?? "visible") === "tracked" && tokenOwningCollapsedCaret(input, tokens)?.kind === "plain";
192632
- if ((paragraphContainsMoveWrapper || trackedPlainCaret) && input.rangeStart === input.rangeEnd && input.newText.length > 0) {
192821
+ const deletedBreakBoundary = input.collapsedInlineAffinity != null && tokens.some((token) => token.kind === "unsupported" && token.deletedManualBreak === true && token.visibleStart === input.rangeStart && token.visibleEnd === input.rangeStart);
192822
+ if ((paragraphContainsMoveWrapper || trackedPlainCaret || deletedBreakBoundary) && input.rangeStart === input.rangeEnd && input.newText.length > 0) {
192633
192823
  const defersExplicitUpstreamMoveBoundary = input.changeMode === "direct" && input.collapsedInlineAffinity === "upstream" && !tokens.some((token) => token.kind === "plain" && token.visibleEnd === input.rangeStart) && tokens.some((token) => token.kind === "unsupported" && token.foreignTrackedWrapper !== true && token.trackedKind === "moveFrom" && token.visibleStart === input.rangeStart && token.visibleEnd === input.rangeStart);
192634
192824
  if (defersExplicitUpstreamMoveBoundary) {
192635
192825
  return {
@@ -192638,7 +192828,8 @@ function compileParsedOverlapEdit(input, tokens, descendedEditableContainers) {
192638
192828
  detail: "overlap compiler: upstream move boundary is owned by the direct inline planner."
192639
192829
  };
192640
192830
  }
192641
- return compilePlainOnlyCollapsedInsertion(input, tokens, touched);
192831
+ const insertion = compilePlainOnlyCollapsedInsertion(input, tokens, touched);
192832
+ return deletedBreakBoundary && insertion.ok ? { ...insertion, requiresCollaborationSessionSync: true } : insertion;
192642
192833
  }
192643
192834
  return { ok: false, reason: "invalid-range", detail: "overlap compiler: no tracked wrappers touched." };
192644
192835
  }
@@ -194850,6 +195041,17 @@ function trackedToken(piece, spanStart, spanEnd, allowComplexDeletions, allowStr
194850
195041
  })).sort((a, b) => a.localOffset - b.localOffset);
194851
195042
  }
194852
195043
  const commentedBoundary = piece.trackedKind === "ins" && !nestedDeletions ? readCommentedInsertionBoundary(piece) : null;
195044
+ const onlyChild = piece.children.length === 1 ? piece.children[0] : undefined;
195045
+ if (piece.trackedKind === "del" && onlyChild?.kind === "control" && (onlyChild.control === "br" || onlyChild.control === "cr")) {
195046
+ const attrs = onlyChild.rawXml.replace(/^<[^\s/>]+/, "").replace(/\/?>$/, "");
195047
+ const breakType = decodeNamespacedAttr(attrs, piece.namespaceBindings, "type");
195048
+ if (breakType == null || breakType === "textWrapping") {
195049
+ return {
195050
+ ...unsupported2("text-payload-unsupported-control-char", "overlap compiler: deleted manual break"),
195051
+ deletedManualBreak: true
195052
+ };
195053
+ }
195054
+ }
194853
195055
  if (allowComplexDeletions && piece.trackedKind === "del") {
194854
195056
  const unsupportedChild = piece.children.find((child) => child.kind !== "text" && !(child.kind === "marker" && isCommentMarker2(child.markerKind)) && !(allowStructuralDeletionPassThrough && isSupportedStructuralDeletionChild(child)));
194855
195057
  if (unsupportedChild) {
@@ -195262,10 +195464,15 @@ function projectTrackedChangesForExport(state, options) {
195262
195464
  const partXmlByUri = readWordXmlParts(state, options.baseOverrides);
195263
195465
  const rawCatalog = readTrackedChangeCatalogForExport(state, options.excludedPartUris, options.baseOverrides);
195264
195466
  const sessionProvenance = collectSessionTrackedChangeProvenance(state);
195265
- const warnings = buildTrackedChangesExportWarnings(rawCatalog, partXmlByUri, options.replacementMode, options.mode === "review-preserving" ? sessionProvenance : null);
195467
+ const logicalProvenance = options.mode === "review-preserving" ? sessionProvenance : null;
195468
+ const logicalCatalog = buildLogicalCatalog(rawCatalog, options.replacementMode, partXmlByUri, undefined, {
195469
+ sessionCreatedTrackedChangeRsids: logicalProvenance?.rsids,
195470
+ sessionCreatedTrackedChangeWIds: collectOwnedSessionTrackedChangeWIds(logicalProvenance)
195471
+ });
195472
+ const warnings = buildTrackedChangesExportWarnings(logicalCatalog, partXmlByUri, logicalProvenance);
195266
195473
  const overrides = new Map;
195267
195474
  if (options.mode === "review-preserving") {
195268
- const projected = projectReviewPreservingTrackedChanges(rawCatalog, partXmlByUri, options.replacementMode, sessionProvenance);
195475
+ const projected = projectReviewPreservingTrackedChanges(logicalCatalog, partXmlByUri, sessionProvenance);
195269
195476
  for (const [partUri, xml] of projected) {
195270
195477
  const original = partXmlByUri.get(partUri);
195271
195478
  if (original !== undefined && xml !== original) {
@@ -195302,11 +195509,7 @@ function isWordXmlPart(partUri) {
195302
195509
  const normalized = partUri.startsWith("/") ? partUri.slice(1) : partUri;
195303
195510
  return normalized.startsWith("word/") && normalized.endsWith(".xml") && !normalized.includes("/_rels/");
195304
195511
  }
195305
- function buildTrackedChangesExportWarnings(rawCatalog, partXmlByUri, replacementMode, sessionProvenance) {
195306
- const logicalCatalog = buildLogicalCatalog(rawCatalog, replacementMode, partXmlByUri, undefined, {
195307
- sessionCreatedTrackedChangeRsids: sessionProvenance?.rsids,
195308
- sessionCreatedTrackedChangeWIds: collectOwnedSessionTrackedChangeWIds(sessionProvenance)
195309
- });
195512
+ function buildTrackedChangesExportWarnings(logicalCatalog, partXmlByUri, sessionProvenance) {
195310
195513
  const warnings = [];
195311
195514
  const seenCodes = new Set;
195312
195515
  const orderedChanges = [...logicalCatalog.byId.values()].sort((left, right) => left.partUri.localeCompare(right.partUri) || left.documentOrderStart - right.documentOrderStart || left.id.localeCompare(right.id));
@@ -195360,11 +195563,7 @@ function isDeleteInsertMoveApproximation(change) {
195360
195563
  const structuralApproximation = change.structuralFragments.length === 2 && change.structuralFragments.some((fragment3) => fragment3.sourceWrapperKind === "del") && change.structuralFragments.some((fragment3) => fragment3.sourceWrapperKind === "ins");
195361
195564
  return textApproximation || structuralApproximation;
195362
195565
  }
195363
- function projectReviewPreservingTrackedChanges(rawCatalog, partXmlByUri, replacementMode, sessionProvenance) {
195364
- const logicalCatalog = buildLogicalCatalog(rawCatalog, replacementMode, partXmlByUri, undefined, {
195365
- sessionCreatedTrackedChangeRsids: sessionProvenance.rsids,
195366
- sessionCreatedTrackedChangeWIds: collectOwnedSessionTrackedChangeWIds(sessionProvenance)
195367
- });
195566
+ function projectReviewPreservingTrackedChanges(logicalCatalog, partXmlByUri, sessionProvenance) {
195368
195567
  const replacementsByPart = new Map;
195369
195568
  const allocateMoveStamp = createExportMoveStampAllocator(partXmlByUri);
195370
195569
  const orderedChanges = [...logicalCatalog.byId.values()].sort((left, right) => left.partUri.localeCompare(right.partUri) || left.documentOrderStart - right.documentOrderStart || left.id.localeCompare(right.id));
@@ -197332,10 +197531,13 @@ function commitDirect(input, view) {
197332
197531
  const patchMaps = {
197333
197532
  [op.on.partUri]: { partUri: op.on.partUri, ranges: [] }
197334
197533
  };
197534
+ let noteOwnerXml;
197335
197535
  const noteSidecar = appendRemovedNoteSidecarPatches({
197336
197536
  state,
197337
197537
  ownerPartUri: op.on.partUri,
197338
- ownerXml: TD40.decode(bytes),
197538
+ get ownerXml() {
197539
+ return noteOwnerXml ?? (noteOwnerXml = TD40.decode(bytes));
197540
+ },
197339
197541
  beforeWindowXml: TD40.decode(bytes.subarray(window2.byteStart, window2.byteEnd)),
197340
197542
  afterWindowXml: TD40.decode(localized.bytes),
197341
197543
  perPart,
@@ -199688,8 +199890,13 @@ function paragraphWindowFromResolvedRange(bytes, op, searchRange) {
199688
199890
  const scanEnd = searchRange?.[1] ?? bytes.length;
199689
199891
  if (scanEnd <= start)
199690
199892
  return null;
199691
- const paragraphXmlAndTail = TD40.decode(bytes.subarray(start, scanEnd));
199692
- const paragraph = readXmlNodeAt(paragraphXmlAndTail, 0);
199893
+ const boundedEnd = Math.min(hintedEnd, scanEnd);
199894
+ let paragraphXmlAndTail = TD40.decode(bytes.subarray(start, boundedEnd));
199895
+ let paragraph = readXmlNodeAt(paragraphXmlAndTail, 0);
199896
+ if (!paragraph && boundedEnd < scanEnd) {
199897
+ paragraphXmlAndTail = TD40.decode(bytes.subarray(start, scanEnd));
199898
+ paragraph = readXmlNodeAt(paragraphXmlAndTail, 0);
199899
+ }
199693
199900
  if (!paragraph || paragraph.kind !== "element" || xmlLocalName(paragraph.qname) !== "p")
199694
199901
  return null;
199695
199902
  const actualEnd = start + TE16.encode(paragraphXmlAndTail.slice(0, paragraph.end)).length;
@@ -214039,8 +214246,63 @@ function validateWholeFieldRangeSelection(input) {
214039
214246
  }
214040
214247
  return { ok: true };
214041
214248
  }
214249
+ function hasFieldCandidates(xml) {
214250
+ return xml.includes("fldSimple") || xml.includes("fldChar") || xml.includes("instrText");
214251
+ }
214252
+ function hasFieldByteCandidates(bytes) {
214253
+ return FIELD_CANDIDATE_SEARCHES.some(({ token, anchorOffset }) => {
214254
+ const anchor = token[anchorOffset];
214255
+ for (let at = bytes.indexOf(anchor);at >= 0; at = bytes.indexOf(anchor, at + 1)) {
214256
+ const start = at - anchorOffset;
214257
+ if (start < 0 || start + token.length > bytes.length)
214258
+ continue;
214259
+ let offset = 0;
214260
+ while (offset < token.length && bytes[start + offset] === token[offset])
214261
+ offset += 1;
214262
+ if (offset === token.length)
214263
+ return true;
214264
+ }
214265
+ return false;
214266
+ });
214267
+ }
214268
+ function emptyFieldCatalog(storyId, partUri, sourceCodeUnits) {
214269
+ let measuredUnits = typeof sourceCodeUnits === "number" ? sourceCodeUnits : undefined;
214270
+ const units = () => measuredUnits ?? (measuredUnits = typeof sourceCodeUnits === "number" ? sourceCodeUnits : sourceCodeUnits());
214271
+ return {
214272
+ storyId,
214273
+ partUri,
214274
+ fields: [],
214275
+ byFieldId: new Map,
214276
+ unmatchedComplexFieldMarkerByteOffsets: [],
214277
+ utf8OffsetIndex: {
214278
+ representation: "not-needed",
214279
+ get sourceCodeUnits() {
214280
+ return units();
214281
+ },
214282
+ checkpointStride: UTF8_OFFSET_CHECKPOINT_STRIDE,
214283
+ checkpointCount: 0,
214284
+ storageBytes: 0,
214285
+ get denseEquivalentStorageBytes() {
214286
+ return (units() + 1) * Uint32Array.BYTES_PER_ELEMENT;
214287
+ }
214288
+ },
214289
+ ownerResolution: { mode: "not-needed", packedLookupCount: 0, packedFallbackCount: 0, packedRejectionReason: null }
214290
+ };
214291
+ }
214292
+ async function screenFieldCandidatesCooperatively(xml, checkpoint) {
214293
+ const stride = 512 * 1024;
214294
+ for (let start = 0;start < xml.length; start += stride) {
214295
+ if (hasFieldCandidates(xml.slice(start, start + stride + 8)))
214296
+ return true;
214297
+ if (start + stride < xml.length && !await checkpoint())
214298
+ return null;
214299
+ }
214300
+ return false;
214301
+ }
214042
214302
  function buildFieldCatalog(input) {
214043
214303
  const xml = input.sharedXml ?? TD50.decode(input.bytes);
214304
+ if (!hasFieldCandidates(xml))
214305
+ return emptyFieldCatalog(input.storyId, input.partUri, xml.length);
214044
214306
  return buildFieldCatalogFromXml(input, xml, buildSparseFieldUtf8OffsetIndex(xml));
214045
214307
  }
214046
214308
  function buildFieldCatalogFromXml(input, xml, utf8Offsets) {
@@ -214419,7 +214681,6 @@ async function buildSparseUtf8OffsetIndexCooperatively(xml, checkpoint) {
214419
214681
  let byteOffset = 0;
214420
214682
  let checkpointIndex = 0;
214421
214683
  let nextCheckpoint = 0;
214422
- let sliceStart = performance.now();
214423
214684
  while (codeUnitIndex < xml.length) {
214424
214685
  const sliceEnd = Math.min(xml.length, codeUnitIndex + 512 * 1024);
214425
214686
  while (codeUnitIndex < sliceEnd) {
@@ -214442,11 +214703,8 @@ async function buildSparseUtf8OffsetIndexCooperatively(xml, checkpoint) {
214442
214703
  codeUnitIndex += 1;
214443
214704
  }
214444
214705
  }
214445
- if (performance.now() - sliceStart >= 8) {
214446
- if (!await checkpoint())
214447
- return null;
214448
- sliceStart = performance.now();
214449
- }
214706
+ if (codeUnitIndex < xml.length && !await checkpoint())
214707
+ return null;
214450
214708
  }
214451
214709
  if (codeUnitIndex === nextCheckpoint)
214452
214710
  checkpointOffsets[checkpointIndex] = byteOffset;
@@ -214532,18 +214790,28 @@ function getOrBuildFieldCatalogForStory(state, storyId) {
214532
214790
  if (existing && existing.partBytes === bytes) {
214533
214791
  return existing.catalog;
214534
214792
  }
214793
+ if (!hasFieldByteCandidates(bytes)) {
214794
+ const catalog2 = emptyFieldCatalog(storyId, partUri, () => TD50.decode(bytes).length);
214795
+ perStory.set(storyId, { catalog: catalog2, partBytes: bytes });
214796
+ return catalog2;
214797
+ }
214535
214798
  const shared = peekPartWmlScanFacts(state, partUri);
214536
214799
  const xml = shared?.bytes === bytes ? shared.xml : DECODED_PART_IN_FLIGHT.get(bytes)?.xml ?? TD50.decode(bytes);
214800
+ if (!hasFieldCandidates(xml)) {
214801
+ const catalog2 = emptyFieldCatalog(storyId, partUri, xml.length);
214802
+ perStory.set(storyId, { catalog: catalog2, partBytes: bytes });
214803
+ return catalog2;
214804
+ }
214537
214805
  const utf8Offsets = buildSparseFieldUtf8OffsetIndex(xml);
214538
214806
  const ownerDiagnostics = { rejectionReason: null };
214539
- const paragraphOwnerResolver = createPackedFieldParagraphOwnerResolver({
214807
+ const paragraphOwnerResolver = hasFieldCandidates(xml) ? createPackedFieldParagraphOwnerResolver({
214540
214808
  state,
214541
214809
  partUri,
214542
214810
  bytes,
214543
214811
  xml,
214544
214812
  utf8Offsets,
214545
214813
  diagnostics: ownerDiagnostics
214546
- });
214814
+ }) : null;
214547
214815
  const catalog = buildFieldCatalogFromXml({
214548
214816
  bytes,
214549
214817
  storyId,
@@ -214625,11 +214893,24 @@ async function buildFieldCatalogForStoryCooperatively(input) {
214625
214893
  try {
214626
214894
  if (!await checkpoint())
214627
214895
  return syncWinner;
214896
+ const fieldCandidates = await screenFieldCandidatesCooperatively(decoded.xml, checkpoint);
214897
+ if (fieldCandidates == null)
214898
+ return syncWinner;
214899
+ if (!fieldCandidates) {
214900
+ if (!inputsAreCurrent())
214901
+ return null;
214902
+ const winner2 = currentCatalog();
214903
+ if (winner2)
214904
+ return winner2;
214905
+ const catalog2 = emptyFieldCatalog(input.storyId, input.partUri, decoded.xml.length);
214906
+ input.perStory.set(input.storyId, { catalog: catalog2, partBytes: input.bytes });
214907
+ return catalog2;
214908
+ }
214628
214909
  const utf8Offsets = await buildSparseUtf8OffsetIndexCooperatively(decoded.xml, checkpoint);
214629
214910
  if (!utf8Offsets)
214630
214911
  return syncWinner;
214631
214912
  const ownerDiagnostics = { rejectionReason: null };
214632
- const paragraphOwnerResolver = await createPackedFieldParagraphOwnerResolverCooperatively({
214913
+ const paragraphOwnerResolver = fieldCandidates ? await createPackedFieldParagraphOwnerResolverCooperatively({
214633
214914
  state: input.state,
214634
214915
  partUri: input.partUri,
214635
214916
  bytes: input.bytes,
@@ -214637,13 +214918,13 @@ async function buildFieldCatalogForStoryCooperatively(input) {
214637
214918
  utf8Offsets,
214638
214919
  checkpoint,
214639
214920
  diagnostics: ownerDiagnostics
214640
- });
214921
+ }) : null;
214641
214922
  if (syncWinner)
214642
214923
  return syncWinner;
214643
214924
  if (!inputsAreCurrent())
214644
214925
  return null;
214645
214926
  let sharedParagraphScan;
214646
- if (!paragraphOwnerResolver) {
214927
+ if (fieldCandidates && !paragraphOwnerResolver) {
214647
214928
  const aborted2 = Symbol("field-catalog-cooperative-aborted");
214648
214929
  try {
214649
214930
  const shared = await getOrScanPartWmlSpansCooperatively(input.state, input.partUri, async () => {
@@ -214697,7 +214978,7 @@ function listFieldCatalogsForState(state) {
214697
214978
  }
214698
214979
  return out;
214699
214980
  }
214700
- var TD50, UTF8_OFFSET_CHECKPOINT_STRIDE = 256, STATE_CACHE2, STATE_IN_FLIGHT, DECODED_PART_IN_FLIGHT;
214981
+ var TD50, UTF8_OFFSET_CHECKPOINT_STRIDE = 256, FIELD_CANDIDATE_BYTES, FIELD_CANDIDATE_SEARCHES, STATE_CACHE2, STATE_IN_FLIGHT, DECODED_PART_IN_FLIGHT;
214701
214982
  var init_field_catalog = __esm(() => {
214702
214983
  init_sd_document_state();
214703
214984
  init_xml_text();
@@ -214706,6 +214987,11 @@ var init_field_catalog = __esm(() => {
214706
214987
  init_part_wml_scan_cache();
214707
214988
  init_field_paragraph_owner();
214708
214989
  TD50 = new TextDecoder;
214990
+ FIELD_CANDIDATE_BYTES = [["fldSimple", 3], ["fldChar", 3], ["instrText", 7]];
214991
+ FIELD_CANDIDATE_SEARCHES = FIELD_CANDIDATE_BYTES.map(([token, anchorOffset]) => ({
214992
+ token: new TextEncoder().encode(token),
214993
+ anchorOffset
214994
+ }));
214709
214995
  STATE_CACHE2 = new WeakMap;
214710
214996
  STATE_IN_FLIGHT = new WeakMap;
214711
214997
  DECODED_PART_IN_FLIGHT = new WeakMap;
@@ -217790,7 +218076,15 @@ function enclosingWholeParagraphRevisions(state, entry) {
217790
218076
  if (bodyChild?.localName === "p" && bodyChild.byteStart === entry.byteStart && bodyChild.byteEnd === entry.byteEnd) {
217791
218077
  return [];
217792
218078
  }
217793
- const fragments = accessTrackedChangeCatalog(state).value.structuralByPart.get(entry.partUri) ?? [];
218079
+ const bytes = state.packageBytes.get(entry.partUri);
218080
+ const catalog = bodyChild && bytes && bodyChild.byteStart <= entry.byteStart && bodyChild.byteEnd >= entry.byteEnd ? buildTrackedChangeCatalogFromPartXml({
218081
+ xml: TD53.decode(bytes.subarray(bodyChild.byteStart, bodyChild.byteEnd)),
218082
+ partUri: entry.partUri,
218083
+ storyId: entry.storyId,
218084
+ sourceByteBase: bodyChild.byteStart,
218085
+ namespaceBindings: namespaceBindingsAtPosition(bytes, bodyChild.byteStart)
218086
+ }) : accessTrackedChangeCatalog(state).value;
218087
+ const fragments = catalog.structuralByPart.get(entry.partUri) ?? [];
217794
218088
  return fragments.flatMap((fragment3) => {
217795
218089
  if (fragment3.storyId !== entry.storyId || fragment3.structuralKind !== "paragraph-insertion" && fragment3.structuralKind !== "paragraph-deletion" || fragment3.sourceByteStart == null || fragment3.sourceByteEnd == null || fragment3.sourceByteStart > entry.byteStart || fragment3.sourceByteEnd < entry.byteEnd) {
217796
218090
  return [];
@@ -245613,6 +245907,116 @@ var init_review_projection_overlay = __esm(() => {
245613
245907
  });
245614
245908
 
245615
245909
  // ../../../v2/editor-core/dist/document/internal/top-level-table-topology.js
245910
+ function hasOpaqueMarkup(bytes) {
245911
+ const cached2 = OPAQUE_MARKUP_BY_BYTES.get(bytes);
245912
+ if (cached2 != null)
245913
+ return cached2;
245914
+ let opaque = false;
245915
+ for (let at = bytes.indexOf(60);at >= 0; at = bytes.indexOf(60, at + 1)) {
245916
+ if (bytes[at + 1] === 33) {
245917
+ opaque = true;
245918
+ break;
245919
+ }
245920
+ if (bytes[at + 1] !== 63)
245921
+ continue;
245922
+ const declarationStart = at === 0 || at === 3 && bytes[0] === 239 && bytes[1] === 187 && bytes[2] === 191;
245923
+ if (!declarationStart || bytes[at + 2] !== 120 || bytes[at + 3] !== 109 || bytes[at + 4] !== 108 || ![9, 10, 13, 32].includes(bytes[at + 5])) {
245924
+ opaque = true;
245925
+ break;
245926
+ }
245927
+ }
245928
+ OPAQUE_MARKUP_BY_BYTES.set(bytes, opaque);
245929
+ return opaque;
245930
+ }
245931
+ function rememberTopology(state, partUri, bytes, topology) {
245932
+ TOPOLOGY_BY_SOURCE_BYTES.set(bytes, topology);
245933
+ const SourceReference = globalThis.WeakRef;
245934
+ if (!SourceReference)
245935
+ return;
245936
+ let entries = LAST_TOPOLOGY_BY_STATE.get(state);
245937
+ if (!entries)
245938
+ LAST_TOPOLOGY_BY_STATE.set(state, entries = new Map);
245939
+ entries.set(partUri, { source: new SourceReference(bytes), topology });
245940
+ }
245941
+ function cachedTopology(state, partUri, bytes) {
245942
+ const current = TOPOLOGY_BY_SOURCE_BYTES.get(bytes);
245943
+ if (current) {
245944
+ rememberTopology(state, partUri, bytes, current);
245945
+ return current;
245946
+ }
245947
+ const previous = LAST_TOPOLOGY_BY_STATE.get(state)?.get(partUri);
245948
+ const before = previous?.source.deref();
245949
+ if (!previous || !before || hasOpaqueMarkup(before))
245950
+ return null;
245951
+ const topology = previous.topology;
245952
+ const stableIds = (ids) => ids.every((id) => /^(?:tbl|tr|tc):[0-9a-f]{8}$/i.test(id));
245953
+ if (!stableIds(topology.tableNodeIds) || topology.tableReadFacts && (!stableIds(topology.tableReadFacts.rowNodeIds) || !stableIds(topology.tableReadFacts.cellNodeIds)))
245954
+ return null;
245955
+ const oldView = new DataView(before.buffer, before.byteOffset, before.byteLength);
245956
+ const newView = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
245957
+ const commonLength = Math.min(before.length, bytes.length);
245958
+ let start = 0;
245959
+ while (start + 4 <= commonLength && oldView.getUint32(start) === newView.getUint32(start))
245960
+ start += 4;
245961
+ while (start < before.length && start < bytes.length && before[start] === bytes[start])
245962
+ start += 1;
245963
+ let end = before.length;
245964
+ let nextEnd = bytes.length;
245965
+ while (end - start >= 4 && nextEnd - start >= 4 && oldView.getUint32(end - 4) === newView.getUint32(nextEnd - 4)) {
245966
+ end -= 4;
245967
+ nextEnd -= 4;
245968
+ }
245969
+ while (end > start && nextEnd > start && before[end - 1] === bytes[nextEnd - 1]) {
245970
+ end -= 1;
245971
+ nextEnd -= 1;
245972
+ }
245973
+ let preceding = start - 1;
245974
+ while (preceding >= 0 && before[preceding] !== 60)
245975
+ preceding -= 1;
245976
+ if (preceding < 0)
245977
+ return null;
245978
+ let quote = 0;
245979
+ let closed = false;
245980
+ for (let at = preceding + 1;at < start; at += 1) {
245981
+ const value = before[at];
245982
+ if (quote) {
245983
+ if (value === quote)
245984
+ quote = 0;
245985
+ } else if (value === 34 || value === 39)
245986
+ quote = value;
245987
+ else if (value === 62) {
245988
+ closed = true;
245989
+ break;
245990
+ }
245991
+ }
245992
+ if (!closed)
245993
+ return null;
245994
+ for (let index = start;index < end; index += 1)
245995
+ if (before[index] === 60 || before[index] === 62)
245996
+ return null;
245997
+ for (let index = start;index < nextEnd; index += 1)
245998
+ if (bytes[index] === 60 || bytes[index] === 62)
245999
+ return null;
246000
+ for (let index = 0;index < topology.tableByteStarts.length; index += 1) {
246001
+ if (start < topology.tableByteEnds[index] && end > topology.tableByteStarts[index])
246002
+ return null;
246003
+ if (start === end && start >= topology.tableByteStarts[index] && start <= topology.tableByteEnds[index])
246004
+ return null;
246005
+ }
246006
+ const delta = bytes.length - before.length;
246007
+ const shift = (values) => values.map((value) => value >= end ? value + delta : value);
246008
+ const rebased = {
246009
+ ...topology,
246010
+ tableByteStarts: shift(topology.tableByteStarts),
246011
+ tableByteEnds: shift(topology.tableByteEnds),
246012
+ cellByteStarts: shift(topology.cellByteStarts),
246013
+ cellBodyByteStarts: shift(topology.cellBodyByteStarts),
246014
+ cellBodyByteEnds: shift(topology.cellBodyByteEnds),
246015
+ telemetry: { ...topology.telemetry, sourceBytesScanned: bytes.length }
246016
+ };
246017
+ rememberTopology(state, partUri, bytes, rebased);
246018
+ return rebased;
246019
+ }
245616
246020
  function buildTopLevelTableTopology(bytes) {
245617
246021
  const scanner = scanTopLevelTableTopology(bytes);
245618
246022
  let step2 = scanner.next();
@@ -245633,15 +246037,15 @@ function getOrBuildTopLevelTableTopologyForStory(state, storyId) {
245633
246037
  const resolved = resolveInputs(state, storyId);
245634
246038
  if (!resolved)
245635
246039
  return null;
245636
- const { bytes } = resolved;
246040
+ const { partUri, bytes } = resolved;
245637
246041
  const nested = nestedStoryTopologyShape(state, storyId, bytes);
245638
246042
  if (nested === "table-free")
245639
246043
  return emptyStoryTopology();
245640
- const current = TOPOLOGY_BY_SOURCE_BYTES.get(bytes);
246044
+ const current = cachedTopology(state, partUri, bytes);
245641
246045
  if (current)
245642
246046
  return nested === "has-tables" ? withoutReadFacts(current) : current;
245643
246047
  const topology = buildTopLevelTableTopology(bytes);
245644
- TOPOLOGY_BY_SOURCE_BYTES.set(bytes, topology);
246048
+ rememberTopology(state, partUri, bytes, topology);
245645
246049
  return nested === "has-tables" ? withoutReadFacts(topology) : topology;
245646
246050
  }
245647
246051
  async function getOrBuildTopLevelTableTopologyForStoryCooperatively(state, storyId, yieldPoint) {
@@ -245652,13 +246056,13 @@ async function getOrBuildTopLevelTableTopologyForStoryCooperatively(state, story
245652
246056
  const nested = nestedStoryTopologyShape(state, storyId, bytes);
245653
246057
  if (nested === "table-free")
245654
246058
  return emptyStoryTopology();
245655
- const current = TOPOLOGY_BY_SOURCE_BYTES.get(bytes);
246059
+ const current = cachedTopology(state, partUri, bytes);
245656
246060
  if (current)
245657
246061
  return nested === "has-tables" ? withoutReadFacts(current) : current;
245658
246062
  const topology = await buildTopLevelTableTopologyCooperatively(bytes, yieldPoint);
245659
246063
  if (state.packageBytes.get(partUri) !== bytes)
245660
246064
  return null;
245661
- TOPOLOGY_BY_SOURCE_BYTES.set(bytes, topology);
246065
+ rememberTopology(state, partUri, bytes, topology);
245662
246066
  return nested === "has-tables" ? withoutReadFacts(topology) : topology;
245663
246067
  }
245664
246068
  function emptyStoryTopology() {
@@ -246372,12 +246776,14 @@ function sameName(bytes, start, end, otherStart, otherEnd) {
246372
246776
  }
246373
246777
  return true;
246374
246778
  }
246375
- var TD70, TOPOLOGY_BY_SOURCE_BYTES, YIELD_BYTE_INTERVAL, TABLE_MARKUP_RE, NESTED_SHAPE_BY_SOURCE_BYTES, WITHOUT_READ_FACTS, emptyTopology = null, LocalName, UNPROVED_TABLE_ELEMENT_NAMES;
246779
+ var TD70, TOPOLOGY_BY_SOURCE_BYTES, LAST_TOPOLOGY_BY_STATE, YIELD_BYTE_INTERVAL, OPAQUE_MARKUP_BY_BYTES, TABLE_MARKUP_RE, NESTED_SHAPE_BY_SOURCE_BYTES, WITHOUT_READ_FACTS, emptyTopology = null, LocalName, UNPROVED_TABLE_ELEMENT_NAMES;
246376
246780
  var init_top_level_table_topology = __esm(() => {
246377
246781
  init_sd_document_state();
246378
246782
  TD70 = new TextDecoder;
246379
246783
  TOPOLOGY_BY_SOURCE_BYTES = new WeakMap;
246784
+ LAST_TOPOLOGY_BY_STATE = new WeakMap;
246380
246785
  YIELD_BYTE_INTERVAL = 1 << 20;
246786
+ OPAQUE_MARKUP_BY_BYTES = new WeakMap;
246381
246787
  TABLE_MARKUP_RE = /<\/?(?:[\w.-]+:)?tbl[\s/>]/;
246382
246788
  NESTED_SHAPE_BY_SOURCE_BYTES = new WeakMap;
246383
246789
  WITHOUT_READ_FACTS = new WeakMap;
@@ -252387,6 +252793,19 @@ function allocateSDDocumentSessionInternalRevisionWIds(session, input) {
252387
252793
  const base2 = reserveRevisionWIdBlock(internal.state, count);
252388
252794
  return Array.from({ length: count }, (_unused, index) => base2 + index);
252389
252795
  }
252796
+ function getSDDocumentSessionInternalRevisionWIdReservations(session) {
252797
+ const internal = INTERNALS.get(session);
252798
+ if (!internal)
252799
+ throw new Error("internal: unknown SDDocumentSession instance");
252800
+ const reservations = internal.state.idReservations.revisionWIds;
252801
+ return {
252802
+ seeded: reservations.seeded,
252803
+ max: reservations.max,
252804
+ issued: new Set(reservations.issued),
252805
+ replayOwners: new Map(Array.from(reservations.replayOwners, ([id, owners]) => [id, new Set(owners)])),
252806
+ conflictedReserved: new Set(reservations.conflictedReserved)
252807
+ };
252808
+ }
252390
252809
  function applySDDocumentSessionInternalPatchGroup(session, input) {
252391
252810
  const internal = INTERNALS.get(session);
252392
252811
  if (!internal)
@@ -257638,7 +258057,7 @@ Complete new body.`,
257638
258057
  find: {
257639
258058
  memberPath: "find",
257640
258059
  description: "Search the document for text or node matches using SDM/1 selectors. Returns discovery-grade results: for mutation targeting, use query.match instead.",
257641
- expectedResult: "Returns an SDFindResult envelope ({ total, limit, offset, items }). Each item is an SDNodeResult ({ node, address }).",
258060
+ expectedResult: "Returns an SDFindResult envelope ({ total, limit, offset, items }). Each item is an SDNodeResult ({ node, address }). Text hits contain only the matched text; use getNode or getNodeById for the full containing node. Node selectors return full node projections.",
257642
258061
  requiresDocumentContext: true,
257643
258062
  metadata: readOperation2({
257644
258063
  idempotency: "idempotent",
@@ -277415,7 +277834,7 @@ var init_word_bibliography = __esm(() => {
277415
277834
  ];
277416
277835
  });
277417
277836
 
277418
- // ../../../v2/node_modules/.pnpm/@superdoc+style-engine@file+..+public+packages+layout-engine+style-engine/node_modules/@superdoc/style-engine/src/cascade.ts
277837
+ // ../../packages/layout-engine/style-engine/src/cascade.ts
277419
277838
  function combineProperties(propertiesArray, options = {}) {
277420
277839
  const { fullOverrideProps = [], specialHandling = {} } = options;
277421
277840
  if (!propertiesArray || propertiesArray.length === 0) {
@@ -277515,14 +277934,14 @@ var init_cascade = __esm(() => {
277515
277934
  ];
277516
277935
  });
277517
277936
 
277518
- // ../../../v2/node_modules/.pnpm/@superdoc+style-engine@file+..+public+packages+layout-engine+style-engine/node_modules/@superdoc/style-engine/src/index.ts
277937
+ // ../../packages/layout-engine/style-engine/src/index.ts
277519
277938
  var sdtMetadataCache;
277520
277939
  var init_src4 = __esm(() => {
277521
277940
  init_cascade();
277522
277941
  sdtMetadataCache = new Map;
277523
277942
  });
277524
277943
 
277525
- // ../../../v2/node_modules/.pnpm/@superdoc+style-engine@file+..+public+packages+layout-engine+style-engine/node_modules/@superdoc/style-engine/src/ooxml/table-style-selection.ts
277944
+ // ../../packages/layout-engine/style-engine/src/ooxml/table-style-selection.ts
277526
277945
  function isKnownTableStyleId(styleId, translatedLinkedStyles) {
277527
277946
  if (!styleId || !translatedLinkedStyles?.styles)
277528
277947
  return false;
@@ -277577,7 +277996,7 @@ var init_table_style_selection = __esm(() => {
277577
277996
  };
277578
277997
  });
277579
277998
 
277580
- // ../../../v2/node_modules/.pnpm/@superdoc+style-engine@file+..+public+packages+layout-engine+style-engine/node_modules/@superdoc/style-engine/src/ooxml/index.ts
277999
+ // ../../packages/layout-engine/style-engine/src/ooxml/index.ts
277581
278000
  function resolveRunProperties(params, inlineRpr, resolvedPpr, tableInfo = null, isListNumber = false, numberingDefinedInline = false) {
277582
278001
  if (!params.translatedLinkedStyles?.styles) {
277583
278002
  return inlineRpr ?? {};
@@ -278160,7 +278579,7 @@ var init_default_floors = __esm(() => {
278160
278579
  };
278161
278580
  });
278162
278581
 
278163
- // ../../../v2/node_modules/.pnpm/sax@1.6.0/node_modules/sax/lib/sax.js
278582
+ // ../../node_modules/.pnpm/sax@1.6.0/node_modules/sax/lib/sax.js
278164
278583
  var require_sax = __commonJS((exports) => {
278165
278584
  (function(sax) {
278166
278585
  sax.parser = function(strict, opt) {
@@ -279694,7 +280113,7 @@ Char: ` + parser.c;
279694
280113
  })(typeof exports === "undefined" ? exports.sax = {} : exports);
279695
280114
  });
279696
280115
 
279697
- // ../../../v2/node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/array-helper.js
280116
+ // ../../node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/array-helper.js
279698
280117
  var require_array_helper = __commonJS((exports, module) => {
279699
280118
  module.exports = {
279700
280119
  isArray: function(value) {
@@ -279706,7 +280125,7 @@ var require_array_helper = __commonJS((exports, module) => {
279706
280125
  };
279707
280126
  });
279708
280127
 
279709
- // ../../../v2/node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/options-helper.js
280128
+ // ../../node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/options-helper.js
279710
280129
  var require_options_helper = __commonJS((exports, module) => {
279711
280130
  var isArray = require_array_helper().isArray;
279712
280131
  module.exports = {
@@ -279745,7 +280164,7 @@ var require_options_helper = __commonJS((exports, module) => {
279745
280164
  };
279746
280165
  });
279747
280166
 
279748
- // ../../../v2/node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/xml2js.js
280167
+ // ../../node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/xml2js.js
279749
280168
  var require_xml2js = __commonJS((exports, module) => {
279750
280169
  var sax = require_sax();
279751
280170
  var expat = { on: function() {}, parse: function() {} };
@@ -280083,7 +280502,7 @@ var require_xml2js = __commonJS((exports, module) => {
280083
280502
  };
280084
280503
  });
280085
280504
 
280086
- // ../../../v2/node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/xml2json.js
280505
+ // ../../node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/xml2json.js
280087
280506
  var require_xml2json = __commonJS((exports, module) => {
280088
280507
  var helper = require_options_helper();
280089
280508
  var xml2js = require_xml2js();
@@ -280108,7 +280527,7 @@ var require_xml2json = __commonJS((exports, module) => {
280108
280527
  };
280109
280528
  });
280110
280529
 
280111
- // ../../../v2/node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/js2xml.js
280530
+ // ../../node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/js2xml.js
280112
280531
  var require_js2xml = __commonJS((exports, module) => {
280113
280532
  var helper = require_options_helper();
280114
280533
  var isArray = require_array_helper().isArray;
@@ -280440,7 +280859,7 @@ var require_js2xml = __commonJS((exports, module) => {
280440
280859
  };
280441
280860
  });
280442
280861
 
280443
- // ../../../v2/node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/json2xml.js
280862
+ // ../../node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/json2xml.js
280444
280863
  var require_json2xml = __commonJS((exports, module) => {
280445
280864
  var js2xml = require_js2xml();
280446
280865
  module.exports = function(json2, options) {
@@ -280461,7 +280880,7 @@ var require_json2xml = __commonJS((exports, module) => {
280461
280880
  };
280462
280881
  });
280463
280882
 
280464
- // ../../../v2/node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/index.js
280883
+ // ../../node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/index.js
280465
280884
  var require_lib = __commonJS((exports, module) => {
280466
280885
  var xml2js = require_xml2js();
280467
280886
  var xml2json = require_xml2json();
@@ -280475,7 +280894,7 @@ var require_lib = __commonJS((exports, module) => {
280475
280894
  };
280476
280895
  });
280477
280896
 
280478
- // ../../../v2/node_modules/.pnpm/@superdoc+style-engine@file+..+public+packages+layout-engine+style-engine/node_modules/@superdoc/style-engine/src/ooxml/word-style-model/parse-xml.ts
280897
+ // ../../packages/layout-engine/style-engine/src/ooxml/word-style-model/parse-xml.ts
280479
280898
  function bytesToString(input) {
280480
280899
  if (typeof input === "string")
280481
280900
  return input;
@@ -280542,7 +280961,7 @@ var init_parse_xml = __esm(() => {
280542
280961
  ST_OFF = new Set(["0", "false", "off"]);
280543
280962
  });
280544
280963
 
280545
- // ../../../v2/node_modules/.pnpm/@superdoc+style-engine@file+..+public+packages+layout-engine+style-engine/node_modules/@superdoc/style-engine/src/ooxml/word-style-model/parse-theme.ts
280964
+ // ../../packages/layout-engine/style-engine/src/ooxml/word-style-model/parse-theme.ts
280546
280965
  function parseColorPalette(theme) {
280547
280966
  if (!theme)
280548
280967
  return;
@@ -283109,7 +283528,7 @@ var init_word_style_model = __esm(() => {
283109
283528
  init_project_style_catalogue();
283110
283529
  });
283111
283530
 
283112
- // ../../../v2/node_modules/.pnpm/@superdoc+style-engine@file+..+public+packages+layout-engine+style-engine/node_modules/@superdoc/style-engine/src/normalize/units.ts
283531
+ // ../../packages/layout-engine/style-engine/src/normalize/units.ts
283113
283532
  function twipsToPx(value) {
283114
283533
  return value * PX_PER_TWIP;
283115
283534
  }
@@ -283123,7 +283542,7 @@ var init_units = __esm(() => {
283123
283542
  PX_PER_EIGHTH_POINT = PX_PER_POINT / 8;
283124
283543
  });
283125
283544
 
283126
- // ../../../v2/node_modules/.pnpm/@superdoc+style-engine@file+..+public+packages+layout-engine+style-engine/node_modules/@superdoc/style-engine/src/normalize/colors.ts
283545
+ // ../../packages/layout-engine/style-engine/src/normalize/colors.ts
283127
283546
  function normalizeHexColor(value) {
283128
283547
  if (value == null)
283129
283548
  return;
@@ -283200,12 +283619,12 @@ var init_colors = __esm(() => {
283200
283619
  };
283201
283620
  });
283202
283621
 
283203
- // ../../../v2/node_modules/.pnpm/@superdoc+style-engine@file+..+public+packages+layout-engine+style-engine/node_modules/@superdoc/style-engine/src/normalize/paragraph-attrs.ts
283622
+ // ../../packages/layout-engine/style-engine/src/normalize/paragraph-attrs.ts
283204
283623
  var init_paragraph_attrs = __esm(() => {
283205
283624
  init_units();
283206
283625
  init_colors();
283207
283626
  });
283208
- // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/header-footer-resolution.ts
283627
+ // ../../packages/layout-engine/contracts/src/header-footer-resolution.ts
283209
283628
  function createResolutionCache() {
283210
283629
  const createVariantCache = () => ({ values: new Map, sectionIndices: [] });
283211
283630
  const createKindCache = () => ({
@@ -283383,12 +283802,12 @@ var HEADER_FOOTER_VARIANTS3;
283383
283802
  var init_header_footer_resolution = __esm(() => {
283384
283803
  HEADER_FOOTER_VARIANTS3 = ["default", "first", "even", "odd"];
283385
283804
  });
283386
- // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/justify-utils.ts
283805
+ // ../../packages/layout-engine/contracts/src/justify-utils.ts
283387
283806
  var SPACE_CHARS;
283388
283807
  var init_justify_utils = __esm(() => {
283389
283808
  SPACE_CHARS = new Set([" ", " "]);
283390
283809
  });
283391
- // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/vertical-text.ts
283810
+ // ../../packages/layout-engine/contracts/src/vertical-text.ts
283392
283811
  function normalizeBaselineShift(baselineShift) {
283393
283812
  if (!Number.isFinite(baselineShift)) {
283394
283813
  return;
@@ -283397,14 +283816,14 @@ function normalizeBaselineShift(baselineShift) {
283397
283816
  return Math.abs(normalizedShift) <= BASELINE_SHIFT_EPSILON ? undefined : normalizedShift;
283398
283817
  }
283399
283818
  var BASELINE_SHIFT_EPSILON = 0.000001;
283400
- // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/pm-range.ts
283819
+ // ../../packages/layout-engine/contracts/src/pm-range.ts
283401
283820
  var init_pm_range = () => {};
283402
- // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/graphic-placement.ts
283821
+ // ../../packages/layout-engine/contracts/src/graphic-placement.ts
283403
283822
  var init_graphic_placement = () => {};
283404
- // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/author-colors.ts
283823
+ // ../../packages/layout-engine/contracts/src/author-colors.ts
283405
283824
  var init_author_colors = () => {};
283406
283825
 
283407
- // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/semantic-colors.ts
283826
+ // ../../packages/layout-engine/contracts/src/semantic-colors.ts
283408
283827
  var TRACKED_CHANGE_CONFIGURABLE_SEMANTIC_COLOR_KEYS, CONFIGURABLE_SEMANTIC_COLOR_KEY_SET, TRACKED_CHANGE_AFFECTED_RANGE_KEYS;
283409
283828
  var init_semantic_colors = __esm(() => {
283410
283829
  init_author_colors();
@@ -283430,20 +283849,20 @@ var init_semantic_colors = __esm(() => {
283430
283849
  ]);
283431
283850
  });
283432
283851
 
283433
- // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/sdt-container.ts
283852
+ // ../../packages/layout-engine/contracts/src/sdt-container.ts
283434
283853
  var idlessSdtContainerKeys;
283435
283854
  var init_sdt_container = __esm(() => {
283436
283855
  idlessSdtContainerKeys = new WeakMap;
283437
283856
  });
283438
- // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/page-number-formatting.ts
283857
+ // ../../packages/layout-engine/contracts/src/page-number-formatting.ts
283439
283858
  var init_page_number_formatting = () => {};
283440
283859
 
283441
- // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/page-ref-anchor.ts
283860
+ // ../../packages/layout-engine/contracts/src/page-ref-anchor.ts
283442
283861
  var init_page_ref_anchor = __esm(() => {
283443
283862
  init_pm_range();
283444
283863
  });
283445
283864
 
283446
- // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/drawing-taxonomy.ts
283865
+ // ../../packages/layout-engine/contracts/src/drawing-taxonomy.ts
283447
283866
  var DRAWING_DIAGNOSTIC_CODES, DRAWING_DIAGNOSTIC_CODE_ALIASES, DRAWING_SUPPORT_TAXONOMY, DRAWING_FAMILIES;
283448
283867
  var init_drawing_taxonomy = __esm(() => {
283449
283868
  DRAWING_DIAGNOSTIC_CODES = {
@@ -283672,7 +284091,7 @@ var init_drawing_taxonomy = __esm(() => {
283672
284091
  };
283673
284092
  DRAWING_FAMILIES = Object.keys(DRAWING_SUPPORT_TAXONOMY);
283674
284093
  });
283675
- // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/incremental-dependency.ts
284094
+ // ../../packages/layout-engine/contracts/src/incremental-dependency.ts
283676
284095
  var PAGE_CHECKPOINT_DEPENDENCY_CLASSES, INCREMENTAL_DEPENDENCY_CERTIFICATE_CLASSES, DRAWING_KINDS, CERTIFICATE_CLASSES;
283677
284096
  var init_incremental_dependency = __esm(() => {
283678
284097
  PAGE_CHECKPOINT_DEPENDENCY_CLASSES = Object.freeze([
@@ -283702,10 +284121,10 @@ var init_incremental_dependency = __esm(() => {
283702
284121
  DRAWING_KINDS = new Set(["image", "vectorShape", "textboxShape", "shapeGroup", "chart"]);
283703
284122
  CERTIFICATE_CLASSES = new Set(INCREMENTAL_DEPENDENCY_CERTIFICATE_CLASSES);
283704
284123
  });
283705
- // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/engines/index.ts
284124
+ // ../../packages/layout-engine/contracts/src/engines/index.ts
283706
284125
  var init_engines = () => {};
283707
284126
 
283708
- // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/index.ts
284127
+ // ../../packages/layout-engine/contracts/src/index.ts
283709
284128
  var SHAPE_TEXT_BASELINE_WARP_PRESETS, SHAPE_TEXT_SINGLE_BAND_ENVELOPE_WARP_PRESETS;
283710
284129
  var init_src5 = __esm(() => {
283711
284130
  init_header_footer_resolution();
@@ -283728,7 +284147,7 @@ var init_src5 = __esm(() => {
283728
284147
  SHAPE_TEXT_SINGLE_BAND_ENVELOPE_WARP_PRESETS = new Set(["textButton"]);
283729
284148
  });
283730
284149
 
283731
- // ../../../v2/node_modules/.pnpm/@superdoc+font-utils@file+..+public+shared+font-utils/node_modules/@superdoc/font-utils/index.js
284150
+ // ../../shared/font-utils/index.js
283732
284151
  function mapWordFamilyFallback(wordFamily) {
283733
284152
  if (!wordFamily)
283734
284153
  return DEFAULT_GENERIC_FALLBACK;
@@ -283822,7 +284241,7 @@ var init_font_utils = __esm(() => {
283822
284241
  ]);
283823
284242
  });
283824
284243
 
283825
- // ../../../v2/node_modules/.pnpm/@superdoc+style-engine@file+..+public+packages+layout-engine+style-engine/node_modules/@superdoc/style-engine/src/normalize/run-attrs.ts
284244
+ // ../../packages/layout-engine/style-engine/src/normalize/run-attrs.ts
283826
284245
  function normalizeRunAttrsFromOoxml(props, context = {}) {
283827
284246
  const out = {};
283828
284247
  if (!props)
@@ -284089,7 +284508,7 @@ var init_run_attrs = __esm(() => {
284089
284508
  };
284090
284509
  });
284091
284510
 
284092
- // ../../../v2/node_modules/.pnpm/@superdoc+style-engine@file+..+public+packages+layout-engine+style-engine/node_modules/@superdoc/style-engine/src/normalize/index.ts
284511
+ // ../../packages/layout-engine/style-engine/src/normalize/index.ts
284093
284512
  var init_normalize = __esm(() => {
284094
284513
  init_paragraph_attrs();
284095
284514
  init_run_attrs();
@@ -295031,6 +295450,47 @@ var init_logical_view_cache = __esm(() => {
295031
295450
  });
295032
295451
 
295033
295452
  // ../../../v2/document-api-v2-adapter/dist/tracked-changes/receipt-entities.js
295453
+ function projectFreshTrackedParagraphSplitEntityId(context, txId, headBlockId, tailBlockId, refs) {
295454
+ const tracked = refs.filter((ref6) => ref6.kind === "trackedChange");
295455
+ if (tracked.length !== 1)
295456
+ return null;
295457
+ const ref5 = tracked[0];
295458
+ const history = getSDDocumentSessionInternalHistoryEntry(context.session, txId);
295459
+ if (history?.forwardPatchGroup.source.kind !== "paragraphSplit")
295460
+ return null;
295461
+ if (history.forwardPatchGroup.source.offset === 0)
295462
+ return null;
295463
+ const index = getSDDocumentSessionInternalStoryParagraphIndex(context.session, ref5.storyId);
295464
+ const head = index?.byParaId(headBlockId);
295465
+ const tail = index?.byParaId(tailBlockId);
295466
+ if (!head || !tail || index?.duplicateParaIds.has(headBlockId) || index?.duplicateParaIds.has(tailBlockId) || head.directBodyChildOrdinal == null || tail.directBodyChildOrdinal !== head.directBodyChildOrdinal + 1 || head.partUri !== tail.partUri || head.storyId !== tail.storyId || head.storyId !== ref5.storyId)
295467
+ return null;
295468
+ const part = history.forwardPatchGroup.perPart[head.partUri];
295469
+ const patch = part?.kind === "modify" && part.patches.length === 1 ? part.patches[0] : null;
295470
+ const bytes = getSDDocumentSessionInternalPartBytes(context.session, head.partUri);
295471
+ if (!bytes || patch?.kind !== "replaceBytes" || patch.startByte !== head.byteStart)
295472
+ return null;
295473
+ const committed = bytes.subarray(head.byteStart, tail.byteEnd);
295474
+ if (committed.length !== patch.bytes.length || !committed.every((byte, offset) => byte === patch.bytes[offset]))
295475
+ return null;
295476
+ const input = {
295477
+ xml: receiptDecoder.decode(committed),
295478
+ partUri: head.partUri,
295479
+ storyId: head.storyId,
295480
+ wordId: ref5.entityId,
295481
+ replacementMode: resolveReplacementMode(context.trackedChangesReplacementMode)
295482
+ };
295483
+ const standalone = buildIsolatedTrackedParagraphSplitLogicalId(input);
295484
+ if (standalone)
295485
+ return standalone;
295486
+ const reservations = getSDDocumentSessionInternalRevisionWIdReservations(context.session);
295487
+ const authoredWordIds = new Set([...reservations.issued].filter((id) => !reservations.conflictedReserved.has(id) && !reservations.replayOwners.has(id)));
295488
+ return buildBoundedTrackedParagraphRangeReceiptProjection({
295489
+ ...input,
295490
+ authoredWordIds,
295491
+ namespaceBindings: getSDDocumentSessionInternalMainStoryRootNamespaceBindings(context.session) ?? undefined
295492
+ })?.id ?? null;
295493
+ }
295034
295494
  function projectTrackedStructuralEntityIds(context, rawEntityIds) {
295035
295495
  if (rawEntityIds.length === 0)
295036
295496
  return [];
@@ -295652,7 +296112,7 @@ function buildTableCellRangeFromMatches(matches) {
295652
296112
  end: { rowIndex: maxRow, columnIndex: maxColumn }
295653
296113
  };
295654
296114
  }
295655
- function selectionIsStructurallyOutsideTables(blockIds, index, session) {
296115
+ function selectionIsStructurallyOutsideTables(blockIds, index, session, maxScanBytes = Number.POSITIVE_INFINITY) {
295656
296116
  if (blockIds.length === 0)
295657
296117
  return false;
295658
296118
  const entries = [];
@@ -295665,10 +296125,12 @@ function selectionIsStructurallyOutsideTables(blockIds, index, session) {
295665
296125
  const partUri = entries[0].partUri;
295666
296126
  if (entries.some((entry) => entry.partUri !== partUri))
295667
296127
  return false;
296128
+ const scanEnd = Math.max(...entries.map((entry) => entry.byteEnd));
296129
+ if (scanEnd > maxScanBytes)
296130
+ return false;
295668
296131
  const bytes = getSDDocumentSessionInternalPartBytes(session, partUri);
295669
296132
  if (!bytes)
295670
296133
  return false;
295671
- const scanEnd = Math.max(...entries.map((entry) => entry.byteEnd));
295672
296134
  const contexts = buildStructuralBoundaryMap(bytes.subarray(0, scanEnd)).contexts;
295673
296135
  return entries.every((entry) => {
295674
296136
  const structural = contexts[entry.ordinal];
@@ -295818,6 +296280,9 @@ class V2TablesAdapter {
295818
296280
  const index = story.storyKind === "main" ? getSDDocumentSessionInternalParagraphIndex(session) : getSDDocumentSessionInternalStoryParagraphIndex(session, story.storyId);
295819
296281
  if (!index)
295820
296282
  return EMPTY_TABLE_CONTEXT_AT_SELECTION;
296283
+ if (!input.selectionTextBounds && story.storyKind === "main" && selectionIsStructurallyOutsideTables(input.blockIds, index, session, 128 * 1024)) {
296284
+ return EMPTY_TABLE_CONTEXT_AT_SELECTION;
296285
+ }
295821
296286
  if (!input.selectionTextBounds && (story.storyKind === "main" || story.storyKind === "header" || story.storyKind === "footer")) {
295822
296287
  const proved = readTableContextFromTopology(readTopLevelTableTopologyForSession(session, story.storyId), index, input.blockIds);
295823
296288
  if (proved)
@@ -300898,14 +301363,14 @@ var init_formatting = __esm(() => {
300898
301363
  ];
300899
301364
  PROJECTION_FONT_TABLE_PART_INDEX = STYLE_SIDECAR_PART_URIS.length;
300900
301365
  });
300901
- // ../../../v2/node_modules/.pnpm/@superdoc+word-layout@file+..+public+packages+word-layout/node_modules/@superdoc/word-layout/src/unit-conversions.ts
301366
+ // ../../packages/word-layout/src/unit-conversions.ts
300902
301367
  var TWIPS_PER_INCH = 1440, PIXELS_PER_INCH = 96, TWIPS_PER_POINT2 = 20, POINTS_PER_TWIP, TWIPS_PER_PIXEL, PIXELS_PER_TWIP;
300903
301368
  var init_unit_conversions = __esm(() => {
300904
301369
  POINTS_PER_TWIP = 1 / TWIPS_PER_POINT2;
300905
301370
  TWIPS_PER_PIXEL = Math.round(TWIPS_PER_INCH / PIXELS_PER_INCH);
300906
301371
  PIXELS_PER_TWIP = 1 / TWIPS_PER_PIXEL;
300907
301372
  });
300908
- // ../../../v2/node_modules/.pnpm/@superdoc+word-layout@file+..+public+packages+word-layout/node_modules/@superdoc/word-layout/src/numbering-manager.ts
301373
+ // ../../packages/word-layout/src/numbering-manager.ts
300909
301374
  function persistentTrieHash(key2) {
300910
301375
  let hash2 = 2166136261;
300911
301376
  for (let index = 0;index < key2.length; index += 1) {
@@ -301533,7 +301998,7 @@ var init_numbering_manager = __esm(() => {
301533
301998
  });
301534
301999
  });
301535
302000
 
301536
- // ../../../v2/node_modules/.pnpm/@superdoc+common@file+..+public+shared+common/node_modules/@superdoc/common/list-numbering/index.ts
302001
+ // ../../shared/common/list-numbering/index.ts
301537
302002
  var handleDecimal = (path6, lvlText) => generateNumbering(path6, lvlText, numberToStringFormatter), handleRoman = (path6, lvlText) => generateNumbering(path6, lvlText, intToRoman), handleLowerRoman = (path6, lvlText) => {
301538
302003
  const result = handleRoman(path6, lvlText);
301539
302004
  return result ? result.toLowerCase() : null;
@@ -301835,7 +302300,7 @@ var init_list_numbering = __esm(() => {
301835
302300
  normalizeChars = new Set(["", "", "○", "o", "■", "□"]);
301836
302301
  });
301837
302302
 
301838
- // ../../../v2/node_modules/.pnpm/@superdoc+word-layout@file+..+public+packages+word-layout/node_modules/@superdoc/word-layout/src/list-marker.ts
302303
+ // ../../packages/word-layout/src/list-marker.ts
301839
302304
  function computeWordListMarker(input) {
301840
302305
  const { definition, manager, paragraphOrdinal } = input;
301841
302306
  if (definition.ancestorStartSettings) {
@@ -301912,7 +302377,7 @@ var init_list_marker = __esm(() => {
301912
302377
  init_list_numbering();
301913
302378
  });
301914
302379
 
301915
- // ../../../v2/node_modules/.pnpm/@superdoc+word-layout@file+..+public+packages+word-layout/node_modules/@superdoc/word-layout/src/review-aware-numbering.ts
302380
+ // ../../packages/word-layout/src/review-aware-numbering.ts
301916
302381
  function createReviewAwareWordNumberingSequence(options = {}) {
301917
302382
  const stateMode = options.stateMode ?? "snapshot";
301918
302383
  let live = createManager(stateMode);
@@ -302009,7 +302474,7 @@ var init_review_aware_numbering = __esm(() => {
302009
302474
  init_numbering_manager();
302010
302475
  });
302011
302476
 
302012
- // ../../../v2/node_modules/.pnpm/@superdoc+word-layout@file+..+public+packages+word-layout/node_modules/@superdoc/word-layout/src/index.ts
302477
+ // ../../packages/word-layout/src/index.ts
302013
302478
  var init_src7 = __esm(() => {
302014
302479
  init_unit_conversions();
302015
302480
  init_unit_conversions();
@@ -302702,6 +303167,21 @@ var init_numbering_stories = __esm(() => {
302702
303167
  function isParagraphNodeType(nodeType) {
302703
303168
  return PARAGRAPH_TYPES.has(nodeType);
302704
303169
  }
303170
+ function blockNumberingCache(context, storyId, index) {
303171
+ if (getSDDocumentSessionInternalSourceCompletePosture(context.session) !== "source-complete")
303172
+ return null;
303173
+ const revision = String(getSDDocumentSessionInternalPackageRevision(context.session));
303174
+ const reviewRevision = JSON.stringify(getSDDocumentSessionInternalReviewProjectionRevision(context.session));
303175
+ const styleModel = projectionStyleModel(context);
303176
+ const mutationSerial = context.currentMutationSerial();
303177
+ const key2 = context.session;
303178
+ const existing = BLOCK_NUMBERING_CACHE.get(key2);
303179
+ if (existing?.revision === revision && existing.reviewRevision === reviewRevision && existing.styleModel === styleModel && existing.mutationSerial === mutationSerial && existing.storyId === storyId && existing.paragraphIndex === index)
303180
+ return existing;
303181
+ const cached2 = { revision, reviewRevision, styleModel, mutationSerial, storyId, paragraphIndex: index, modes: new Map };
303182
+ BLOCK_NUMBERING_CACHE.set(key2, cached2);
303183
+ return cached2;
303184
+ }
302705
303185
  function blocksListQueryKey(input) {
302706
303186
  const nodeTypes = input?.nodeTypes && input.nodeTypes.length > 0 ? input.nodeTypes : null;
302707
303187
  const limit = input?.limit != null && input.limit > 0 ? input.limit : null;
@@ -302724,6 +303204,10 @@ function captureParagraphIndexMaterialization(index) {
302724
303204
  };
302725
303205
  }
302726
303206
  function buildReviewAwareBlockNumbering(context, storyId, index, storyByteRange, reviewMode) {
303207
+ const cache = storyByteRange ? null : blockNumberingCache(context, storyId, index);
303208
+ const cached2 = cache?.modes.get(reviewMode);
303209
+ if (cached2)
303210
+ return cached2;
302727
303211
  const stories = blockNumberingStories(context, storyId, index);
302728
303212
  const tableContexts = new Map;
302729
303213
  for (const story of stories) {
@@ -302748,12 +303232,19 @@ function buildReviewAwareBlockNumbering(context, storyId, index, storyByteRange,
302748
303232
  rawXml: readParagraphXml(context, partUriBytes, entry)
302749
303233
  }, tableContext.resolver?.resolve(entry), source.storyId);
302750
303234
  }
302751
- return projector.result();
303235
+ const result = projector.result();
303236
+ cache?.modes.set(reviewMode, result);
303237
+ return result;
302752
303238
  }
302753
303239
  async function buildReviewAwareBlockNumberingCooperatively(context, storyId, index, reviewMode, yieldPoint, inputsAreCurrent) {
303240
+ const cache = blockNumberingCache(context, storyId, index);
303241
+ const cached2 = cache?.modes.get(reviewMode);
303242
+ if (cached2 && inputsAreCurrent())
303243
+ return cached2;
302754
303244
  const stories = blockNumberingStories(context, storyId, index);
302755
303245
  const sources = stories.map((story) => paragraphIndexEntrySource(story.index));
302756
- const current = () => inputsAreCurrent() && sources.every((source) => source.isCurrent());
303246
+ const reviewRevision = JSON.stringify(getSDDocumentSessionInternalReviewProjectionRevision(context.session));
303247
+ const current = () => inputsAreCurrent() && JSON.stringify(getSDDocumentSessionInternalReviewProjectionRevision(context.session)) === reviewRevision && sources.every((source) => source.isCurrent());
302757
303248
  const gate = createCooperativeSliceGate(yieldPoint);
302758
303249
  const tableContexts = new Map;
302759
303250
  for (const story of stories) {
@@ -302778,7 +303269,13 @@ async function buildReviewAwareBlockNumberingCooperatively(context, storyId, ind
302778
303269
  if (!current())
302779
303270
  return null;
302780
303271
  }
302781
- return current() ? projector.result() : null;
303272
+ if (!current())
303273
+ return null;
303274
+ const result = projector.result();
303275
+ if (cache && blockNumberingCache(context, storyId, index) !== cache)
303276
+ return null;
303277
+ cache?.modes.set(reviewMode, result);
303278
+ return result;
302782
303279
  }
302783
303280
  function readBlockNumberingTableContext(context, storyId, index) {
302784
303281
  const model = projectionStyleModel(context);
@@ -303375,7 +303872,13 @@ class V2BlocksAdapter {
303375
303872
  if (!tailParaId) {
303376
303873
  return failure3("INTERNAL_ERROR", "paragraph split did not return a created paragraph id.");
303377
303874
  }
303378
- const trackedChangeRefs = readTrackedChangeRefs(this.context, receipt3.createdRefs ?? [], resolved.story);
303875
+ const localSplitId = projectFreshTrackedParagraphSplitEntityId(this.context, receipt3.txId, input.target.nodeId, tailParaId, receipt3.createdRefs ?? []);
303876
+ const trackedChangeRefs = localSplitId ? [{
303877
+ kind: "entity",
303878
+ entityType: "trackedChange",
303879
+ entityId: localSplitId,
303880
+ ...resolved.story ? { story: resolved.story } : {}
303881
+ }] : readTrackedChangeRefs(this.context, receipt3.createdRefs ?? [], resolved.story);
303379
303882
  return attachStructuralCommitDiagnostics({
303380
303883
  success: true,
303381
303884
  inserted: {
@@ -304548,7 +305051,7 @@ function readTailParaId(provisionalToFinal, createdRefs) {
304548
305051
  }
304549
305052
  return null;
304550
305053
  }
304551
- var TD87, PARAGRAPH_TYPES, TOP_LEVEL_LIST_ROWS_CACHE;
305054
+ var TD87, PARAGRAPH_TYPES, TOP_LEVEL_LIST_ROWS_CACHE, BLOCK_NUMBERING_CACHE;
304552
305055
  var init_adapter5 = __esm(() => {
304553
305056
  init_sd_document_session_internal();
304554
305057
  init_adapter3();
@@ -304572,6 +305075,7 @@ var init_adapter5 = __esm(() => {
304572
305075
  TD87 = new TextDecoder;
304573
305076
  PARAGRAPH_TYPES = new Set(["paragraph", "heading", "listItem"]);
304574
305077
  TOP_LEVEL_LIST_ROWS_CACHE = new WeakMap;
305078
+ BLOCK_NUMBERING_CACHE = new WeakMap;
304575
305079
  });
304576
305080
 
304577
305081
  // ../../../v2/document-api-v2-adapter/dist/paragraph-run-boundary.js
@@ -304593,7 +305097,7 @@ function readRunOpenTagAndProperties(xml, runStart) {
304593
305097
  return { runOpenTag, runProperties: propertiesMatch ? propertiesMatch[1] : "" };
304594
305098
  }
304595
305099
 
304596
- // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/unicode.js
305100
+ // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/unicode.js
304597
305101
  function isSurrogate(cp) {
304598
305102
  return cp >= 55296 && cp <= 57343;
304599
305103
  }
@@ -304685,7 +305189,7 @@ var init_unicode = __esm(() => {
304685
305189
  };
304686
305190
  });
304687
305191
 
304688
- // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/error-codes.js
305192
+ // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/error-codes.js
304689
305193
  var ERR;
304690
305194
  var init_error_codes = __esm(() => {
304691
305195
  (function(ERR2) {
@@ -304752,7 +305256,7 @@ var init_error_codes = __esm(() => {
304752
305256
  })(ERR || (ERR = {}));
304753
305257
  });
304754
305258
 
304755
- // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/tokenizer/preprocessor.js
305259
+ // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/tokenizer/preprocessor.js
304756
305260
  class Preprocessor {
304757
305261
  constructor(handler) {
304758
305262
  this.handler = handler;
@@ -304925,7 +305429,7 @@ var init_preprocessor = __esm(() => {
304925
305429
  DEFAULT_BUFFER_WATERLINE = 1 << 16;
304926
305430
  });
304927
305431
 
304928
- // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/token.js
305432
+ // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/token.js
304929
305433
  function getTokenAttr(token, attrName) {
304930
305434
  for (let i2 = token.attrs.length - 1;i2 >= 0; i2--) {
304931
305435
  if (token.attrs[i2].name === attrName) {
@@ -304949,7 +305453,7 @@ var init_token = __esm(() => {
304949
305453
  })(TokenType || (TokenType = {}));
304950
305454
  });
304951
305455
 
304952
- // ../../../v2/node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/decode-codepoint.js
305456
+ // ../../node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/decode-codepoint.js
304953
305457
  function replaceCodePoint(codePoint) {
304954
305458
  if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) {
304955
305459
  return 65533;
@@ -304990,7 +305494,7 @@ var init_decode_codepoint = __esm(() => {
304990
305494
  ]);
304991
305495
  });
304992
305496
 
304993
- // ../../../v2/node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/internal/decode-shared.js
305497
+ // ../../node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/internal/decode-shared.js
304994
305498
  function decodeBase64(input) {
304995
305499
  const binary = atob(input);
304996
305500
  const evenLength = binary.length & ~1;
@@ -305003,13 +305507,13 @@ function decodeBase64(input) {
305003
305507
  return out;
305004
305508
  }
305005
305509
 
305006
- // ../../../v2/node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/generated/decode-data-html.js
305510
+ // ../../node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/generated/decode-data-html.js
305007
305511
  var htmlDecodeTree;
305008
305512
  var init_decode_data_html = __esm(() => {
305009
305513
  htmlDecodeTree = /* @__PURE__ */ decodeBase64("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IA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YwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWls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ZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg");
305010
305514
  });
305011
305515
 
305012
- // ../../../v2/node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/internal/bin-trie-flags.js
305516
+ // ../../node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/internal/bin-trie-flags.js
305013
305517
  var BinTrieFlags;
305014
305518
  var init_bin_trie_flags = __esm(() => {
305015
305519
  (function(BinTrieFlags2) {
@@ -305020,7 +305524,7 @@ var init_bin_trie_flags = __esm(() => {
305020
305524
  })(BinTrieFlags || (BinTrieFlags = {}));
305021
305525
  });
305022
305526
 
305023
- // ../../../v2/node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/decode.js
305527
+ // ../../node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/decode.js
305024
305528
  function isNumber(code) {
305025
305529
  return code >= CharCodes.ZERO && code <= CharCodes.NINE;
305026
305530
  }
@@ -305302,7 +305806,7 @@ var init_decode = __esm(() => {
305302
305806
  })(DecodingMode || (DecodingMode = {}));
305303
305807
  });
305304
305808
 
305305
- // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/html.js
305809
+ // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/html.js
305306
305810
  function getTagID(tagName) {
305307
305811
  var _a3;
305308
305812
  return (_a3 = TAG_NAME_TO_ID.get(tagName)) !== null && _a3 !== undefined ? _a3 : TAG_ID.UNKNOWN;
@@ -305811,7 +306315,7 @@ var init_html = __esm(() => {
305811
306315
  ]);
305812
306316
  });
305813
306317
 
305814
- // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/tokenizer/index.js
306318
+ // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/tokenizer/index.js
305815
306319
  function isAsciiDigit(cp) {
305816
306320
  return cp >= CODE_POINTS.DIGIT_0 && cp <= CODE_POINTS.DIGIT_9;
305817
306321
  }
@@ -308268,7 +308772,7 @@ var init_tokenizer = __esm(() => {
308268
308772
  };
308269
308773
  });
308270
308774
 
308271
- // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/parser/open-element-stack.js
308775
+ // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/parser/open-element-stack.js
308272
308776
  class OpenElementStack {
308273
308777
  get currentTmplContentOrNode() {
308274
308778
  return this._isInTemplate() ? this.treeAdapter.getTemplateContent(this.current) : this.current;
@@ -308583,7 +309087,7 @@ var init_open_element_stack = __esm(() => {
308583
309087
  TABLE_CELLS = new Set([TAG_ID.TD, TAG_ID.TH]);
308584
309088
  });
308585
309089
 
308586
- // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/parser/formatting-element-list.js
309090
+ // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/parser/formatting-element-list.js
308587
309091
  class FormattingElementList {
308588
309092
  constructor(treeAdapter) {
308589
309093
  this.treeAdapter = treeAdapter;
@@ -308679,7 +309183,7 @@ var init_formatting_element_list = __esm(() => {
308679
309183
  MARKER = { type: EntryType.Marker };
308680
309184
  });
308681
309185
 
308682
- // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/tree-adapters/default.js
309186
+ // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/tree-adapters/default.js
308683
309187
  var defaultTreeAdapter;
308684
309188
  var init_default2 = __esm(() => {
308685
309189
  init_html();
@@ -308849,7 +309353,7 @@ var init_default2 = __esm(() => {
308849
309353
  };
308850
309354
  });
308851
309355
 
308852
- // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/doctype.js
309356
+ // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/doctype.js
308853
309357
  function hasPrefix(publicId, prefixes) {
308854
309358
  return prefixes.some((prefix) => publicId.startsWith(prefix));
308855
309359
  }
@@ -308959,7 +309463,7 @@ var init_doctype = __esm(() => {
308959
309463
  ];
308960
309464
  });
308961
309465
 
308962
- // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/foreign-content.js
309466
+ // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/foreign-content.js
308963
309467
  function causesExit(startTagToken) {
308964
309468
  const tn = startTagToken.tagID;
308965
309469
  const isFontWithAttrs = tn === TAG_ID.FONT && startTagToken.attrs.some(({ name }) => name === ATTRS2.COLOR || name === ATTRS2.SIZE || name === ATTRS2.FACE);
@@ -309181,7 +309685,7 @@ var init_foreign_content = __esm(() => {
309181
309685
  ]);
309182
309686
  });
309183
309687
 
309184
- // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/parser/index.js
309688
+ // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/parser/index.js
309185
309689
  class Parser {
309186
309690
  constructor(options, document3, fragmentContext = null, scriptHandler = null) {
309187
309691
  this.fragmentContext = fragmentContext;
@@ -312138,7 +312642,7 @@ var init_parser = __esm(() => {
312138
312642
  TABLE_VOID_ELEMENTS = new Set([TAG_ID.CAPTION, TAG_ID.COL, TAG_ID.COLGROUP, TAG_ID.TBODY, TAG_ID.TD, TAG_ID.TFOOT, TAG_ID.TH, TAG_ID.THEAD, TAG_ID.TR]);
312139
312643
  });
312140
312644
 
312141
- // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/serializer/index.js
312645
+ // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/serializer/index.js
312142
312646
  var VOID_ELEMENTS;
312143
312647
  var init_serializer = __esm(() => {
312144
312648
  init_html();
@@ -312165,7 +312669,7 @@ var init_serializer = __esm(() => {
312165
312669
  ]);
312166
312670
  });
312167
312671
 
312168
- // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/index.js
312672
+ // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/index.js
312169
312673
  function parseFragment(fragmentContext, html, options) {
312170
312674
  if (typeof fragmentContext === "string") {
312171
312675
  options = html;
@@ -314621,10 +315125,10 @@ var init_html2 = __esm(() => {
314621
315125
  init_converter();
314622
315126
  });
314623
315127
 
314624
- // ../../../v2/node_modules/.pnpm/dequal@2.0.3/node_modules/dequal/dist/index.mjs
315128
+ // ../../node_modules/.pnpm/dequal@2.0.3/node_modules/dequal/dist/index.mjs
314625
315129
  var init_dist4 = () => {};
314626
315130
 
314627
- // ../../../v2/node_modules/.pnpm/devlop@1.1.0/node_modules/devlop/lib/development.js
315131
+ // ../../node_modules/.pnpm/devlop@1.1.0/node_modules/devlop/lib/development.js
314628
315132
  function ok2(value2, message) {
314629
315133
  assert2(Boolean(value2), false, true, "ok", "Expected value to be truthy", message);
314630
315134
  }
@@ -314653,7 +315157,7 @@ var init_development = __esm(() => {
314653
315157
  };
314654
315158
  });
314655
315159
 
314656
- // ../../../v2/node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/lib/index.js
315160
+ // ../../node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/lib/index.js
314657
315161
  function toString(value2, options) {
314658
315162
  const settings = options || emptyOptions;
314659
315163
  const includeImageAlt = typeof settings.includeImageAlt === "boolean" ? settings.includeImageAlt : true;
@@ -314693,12 +315197,12 @@ var init_lib = __esm(() => {
314693
315197
  emptyOptions = {};
314694
315198
  });
314695
315199
 
314696
- // ../../../v2/node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/index.js
315200
+ // ../../node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/index.js
314697
315201
  var init_mdast_util_to_string = __esm(() => {
314698
315202
  init_lib();
314699
315203
  });
314700
315204
 
314701
- // ../../../v2/node_modules/.pnpm/character-entities@2.0.2/node_modules/character-entities/index.js
315205
+ // ../../node_modules/.pnpm/character-entities@2.0.2/node_modules/character-entities/index.js
314702
315206
  var characterEntities;
314703
315207
  var init_character_entities = __esm(() => {
314704
315208
  characterEntities = {
@@ -316831,7 +317335,7 @@ var init_character_entities = __esm(() => {
316831
317335
  };
316832
317336
  });
316833
317337
 
316834
- // ../../../v2/node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/index.js
317338
+ // ../../node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/index.js
316835
317339
  function decodeNamedCharacterReference(value2) {
316836
317340
  return own.call(characterEntities, value2) ? characterEntities[value2] : false;
316837
317341
  }
@@ -316841,7 +317345,7 @@ var init_decode_named_character_reference = __esm(() => {
316841
317345
  own = {}.hasOwnProperty;
316842
317346
  });
316843
317347
 
316844
- // ../../../v2/node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/codes.js
317348
+ // ../../node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/codes.js
316845
317349
  var codes;
316846
317350
  var init_codes = __esm(() => {
316847
317351
  codes = {
@@ -316984,7 +317488,7 @@ var init_codes = __esm(() => {
316984
317488
  };
316985
317489
  });
316986
317490
 
316987
- // ../../../v2/node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/constants.js
317491
+ // ../../node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/constants.js
316988
317492
  var constants2;
316989
317493
  var init_constants = __esm(() => {
316990
317494
  constants2 = {
@@ -317025,7 +317529,7 @@ var init_constants = __esm(() => {
317025
317529
  };
317026
317530
  });
317027
317531
 
317028
- // ../../../v2/node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/types.js
317532
+ // ../../node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/types.js
317029
317533
  var types9;
317030
317534
  var init_types9 = __esm(() => {
317031
317535
  types9 = {
@@ -317135,7 +317639,7 @@ var init_types9 = __esm(() => {
317135
317639
  };
317136
317640
  });
317137
317641
 
317138
- // ../../../v2/node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/values.js
317642
+ // ../../node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/values.js
317139
317643
  var values;
317140
317644
  var init_values = __esm(() => {
317141
317645
  values = {
@@ -317242,7 +317746,7 @@ var init_values = __esm(() => {
317242
317746
  };
317243
317747
  });
317244
317748
 
317245
- // ../../../v2/node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/default.js
317749
+ // ../../node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/default.js
317246
317750
  var init_default3 = __esm(() => {
317247
317751
  init_codes();
317248
317752
  init_constants();
@@ -317250,7 +317754,7 @@ var init_default3 = __esm(() => {
317250
317754
  init_values();
317251
317755
  });
317252
317756
 
317253
- // ../../../v2/node_modules/.pnpm/micromark-util-chunked@2.0.1/node_modules/micromark-util-chunked/dev/index.js
317757
+ // ../../node_modules/.pnpm/micromark-util-chunked@2.0.1/node_modules/micromark-util-chunked/dev/index.js
317254
317758
  function splice(list, start, remove, items) {
317255
317759
  const end = list.length;
317256
317760
  let chunkStart = 0;
@@ -317288,7 +317792,7 @@ var init_dev = __esm(() => {
317288
317792
  init_default3();
317289
317793
  });
317290
317794
 
317291
- // ../../../v2/node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-combine-extensions/index.js
317795
+ // ../../node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-combine-extensions/index.js
317292
317796
  function combineExtensions(extensions) {
317293
317797
  const all2 = {};
317294
317798
  let index = -1;
@@ -317328,7 +317832,7 @@ var init_micromark_util_combine_extensions = __esm(() => {
317328
317832
  hasOwnProperty = {}.hasOwnProperty;
317329
317833
  });
317330
317834
 
317331
- // ../../../v2/node_modules/.pnpm/micromark-util-decode-numeric-character-reference@2.0.2/node_modules/micromark-util-decode-numeric-character-reference/dev/index.js
317835
+ // ../../node_modules/.pnpm/micromark-util-decode-numeric-character-reference@2.0.2/node_modules/micromark-util-decode-numeric-character-reference/dev/index.js
317332
317836
  function decodeNumericCharacterReference(value2, base3) {
317333
317837
  const code = Number.parseInt(value2, base3);
317334
317838
  if (code < codes.ht || code === codes.vt || code > codes.cr && code < codes.space || code > codes.tilde && code < 160 || code > 55295 && code < 57344 || code > 64975 && code < 65008 || (code & 65535) === 65535 || (code & 65535) === 65534 || code > 1114111) {
@@ -317340,7 +317844,7 @@ var init_dev2 = __esm(() => {
317340
317844
  init_default3();
317341
317845
  });
317342
317846
 
317343
- // ../../../v2/node_modules/.pnpm/micromark-util-normalize-identifier@2.0.1/node_modules/micromark-util-normalize-identifier/dev/index.js
317847
+ // ../../node_modules/.pnpm/micromark-util-normalize-identifier@2.0.1/node_modules/micromark-util-normalize-identifier/dev/index.js
317344
317848
  function normalizeIdentifier(value2) {
317345
317849
  return value2.replace(/[\t\n\r ]+/g, values.space).replace(/^ | $/g, "").toLowerCase().toUpperCase();
317346
317850
  }
@@ -317348,7 +317852,7 @@ var init_dev3 = __esm(() => {
317348
317852
  init_default3();
317349
317853
  });
317350
317854
 
317351
- // ../../../v2/node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/dev/index.js
317855
+ // ../../node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/dev/index.js
317352
317856
  function asciiControl(code) {
317353
317857
  return code !== null && (code < codes.space || code === codes.del);
317354
317858
  }
@@ -317380,7 +317884,7 @@ var init_dev4 = __esm(() => {
317380
317884
  unicodeWhitespace = regexCheck(/\s/);
317381
317885
  });
317382
317886
 
317383
- // ../../../v2/node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-factory-space/dev/index.js
317887
+ // ../../node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-factory-space/dev/index.js
317384
317888
  function factorySpace(effects2, ok3, type, max2) {
317385
317889
  const limit = max2 ? max2 - 1 : Number.POSITIVE_INFINITY;
317386
317890
  let size = 0;
@@ -317405,7 +317909,7 @@ var init_dev5 = __esm(() => {
317405
317909
  init_dev4();
317406
317910
  });
317407
317911
 
317408
- // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/lib/initialize/content.js
317912
+ // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/lib/initialize/content.js
317409
317913
  function initializeContent(effects2) {
317410
317914
  const contentStart = effects2.attempt(this.parser.constructs.contentInitial, afterContentStartConstruct, paragraphInitial);
317411
317915
  let previous;
@@ -317462,7 +317966,7 @@ var init_content = __esm(() => {
317462
317966
  content = { tokenize: initializeContent };
317463
317967
  });
317464
317968
 
317465
- // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/lib/initialize/document.js
317969
+ // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/lib/initialize/document.js
317466
317970
  function initializeDocument(effects2) {
317467
317971
  const self = this;
317468
317972
  const stack = [];
@@ -317654,7 +318158,7 @@ var init_document2 = __esm(() => {
317654
318158
  containerConstruct = { tokenize: tokenizeContainer };
317655
318159
  });
317656
318160
 
317657
- // ../../../v2/node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-classify-character/dev/index.js
318161
+ // ../../node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-classify-character/dev/index.js
317658
318162
  function classifyCharacter(code) {
317659
318163
  if (code === codes.eof || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {
317660
318164
  return constants2.characterGroupWhitespace;
@@ -317668,7 +318172,7 @@ var init_dev6 = __esm(() => {
317668
318172
  init_default3();
317669
318173
  });
317670
318174
 
317671
- // ../../../v2/node_modules/.pnpm/micromark-util-resolve-all@2.0.1/node_modules/micromark-util-resolve-all/index.js
318175
+ // ../../node_modules/.pnpm/micromark-util-resolve-all@2.0.1/node_modules/micromark-util-resolve-all/index.js
317672
318176
  function resolveAll(constructs2, events, context) {
317673
318177
  const called = [];
317674
318178
  let index = -1;
@@ -317682,7 +318186,7 @@ function resolveAll(constructs2, events, context) {
317682
318186
  return events;
317683
318187
  }
317684
318188
 
317685
- // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/attention.js
318189
+ // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/attention.js
317686
318190
  function resolveAllAttention(events, context) {
317687
318191
  let index = -1;
317688
318192
  let open;
@@ -317818,7 +318322,7 @@ var init_attention = __esm(() => {
317818
318322
  };
317819
318323
  });
317820
318324
 
317821
- // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/autolink.js
318325
+ // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/autolink.js
317822
318326
  function tokenizeAutolink(effects2, ok3, nok) {
317823
318327
  let size = 0;
317824
318328
  return start;
@@ -317923,7 +318427,7 @@ var init_autolink = __esm(() => {
317923
318427
  autolink = { name: "autolink", tokenize: tokenizeAutolink };
317924
318428
  });
317925
318429
 
317926
- // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/blank-line.js
318430
+ // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/blank-line.js
317927
318431
  function tokenizeBlankLine(effects2, ok3, nok) {
317928
318432
  return start;
317929
318433
  function start(code) {
@@ -317941,7 +318445,7 @@ var init_blank_line = __esm(() => {
317941
318445
  blankLine = { partial: true, tokenize: tokenizeBlankLine };
317942
318446
  });
317943
318447
 
317944
- // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/block-quote.js
318448
+ // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/block-quote.js
317945
318449
  function tokenizeBlockQuoteStart(effects2, ok3, nok) {
317946
318450
  const self = this;
317947
318451
  return start;
@@ -318004,7 +318508,7 @@ var init_block_quote = __esm(() => {
318004
318508
  };
318005
318509
  });
318006
318510
 
318007
- // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/character-escape.js
318511
+ // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/character-escape.js
318008
318512
  function tokenizeCharacterEscape(effects2, ok3, nok) {
318009
318513
  return start;
318010
318514
  function start(code) {
@@ -318037,7 +318541,7 @@ var init_character_escape = __esm(() => {
318037
318541
  };
318038
318542
  });
318039
318543
 
318040
- // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/character-reference.js
318544
+ // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/character-reference.js
318041
318545
  function tokenizeCharacterReference(effects2, ok3, nok) {
318042
318546
  const self = this;
318043
318547
  let size = 0;
@@ -318110,7 +318614,7 @@ var init_character_reference = __esm(() => {
318110
318614
  };
318111
318615
  });
318112
318616
 
318113
- // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/code-fenced.js
318617
+ // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/code-fenced.js
318114
318618
  function tokenizeCodeFenced(effects2, ok3, nok) {
318115
318619
  const self = this;
318116
318620
  const closeStart = { partial: true, tokenize: tokenizeCloseStart };
@@ -318299,7 +318803,7 @@ var init_code_fenced = __esm(() => {
318299
318803
  };
318300
318804
  });
318301
318805
 
318302
- // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/code-indented.js
318806
+ // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/code-indented.js
318303
318807
  function tokenizeCodeIndented(effects2, ok3, nok) {
318304
318808
  const self = this;
318305
318809
  return start;
@@ -318368,7 +318872,7 @@ var init_code_indented = __esm(() => {
318368
318872
  furtherStart = { partial: true, tokenize: tokenizeFurtherStart };
318369
318873
  });
318370
318874
 
318371
- // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/code-text.js
318875
+ // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/code-text.js
318372
318876
  function resolveCodeText(events) {
318373
318877
  let tailExitIndex = events.length - 4;
318374
318878
  let headEnterIndex = 3;
@@ -318491,7 +318995,7 @@ var init_code_text = __esm(() => {
318491
318995
  };
318492
318996
  });
318493
318997
 
318494
- // ../../../v2/node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/dev/lib/splice-buffer.js
318998
+ // ../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/dev/lib/splice-buffer.js
318495
318999
  class SpliceBuffer {
318496
319000
  constructor(initial) {
318497
319001
  this.left = initial ? [...initial] : [];
@@ -318577,7 +319081,7 @@ var init_splice_buffer = __esm(() => {
318577
319081
  init_default3();
318578
319082
  });
318579
319083
 
318580
- // ../../../v2/node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/dev/index.js
319084
+ // ../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/dev/index.js
318581
319085
  function subtokenize(eventsArray) {
318582
319086
  const jumps = {};
318583
319087
  let index = -1;
@@ -318736,7 +319240,7 @@ var init_dev7 = __esm(() => {
318736
319240
  init_splice_buffer();
318737
319241
  });
318738
319242
 
318739
- // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/content.js
319243
+ // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/content.js
318740
319244
  function resolveContent(events) {
318741
319245
  subtokenize(events);
318742
319246
  return events;
@@ -318814,7 +319318,7 @@ var init_content2 = __esm(() => {
318814
319318
  continuationConstruct = { partial: true, tokenize: tokenizeContinuation };
318815
319319
  });
318816
319320
 
318817
- // ../../../v2/node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-factory-destination/dev/index.js
319321
+ // ../../node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-factory-destination/dev/index.js
318818
319322
  function factoryDestination(effects2, ok3, nok, type, literalType2, literalMarkerType, rawType, stringType2, max2) {
318819
319323
  const limit = max2 || Number.POSITIVE_INFINITY;
318820
319324
  let balance = 0;
@@ -318906,7 +319410,7 @@ var init_dev8 = __esm(() => {
318906
319410
  init_default3();
318907
319411
  });
318908
319412
 
318909
- // ../../../v2/node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-factory-label/dev/index.js
319413
+ // ../../node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-factory-label/dev/index.js
318910
319414
  function factoryLabel(effects2, ok3, nok, type, markerType, stringType2) {
318911
319415
  const self = this;
318912
319416
  let size = 0;
@@ -318967,7 +319471,7 @@ var init_dev9 = __esm(() => {
318967
319471
  init_default3();
318968
319472
  });
318969
319473
 
318970
- // ../../../v2/node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-title/dev/index.js
319474
+ // ../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-title/dev/index.js
318971
319475
  function factoryTitle(effects2, ok3, nok, type, markerType, stringType2) {
318972
319476
  let marker;
318973
319477
  return start;
@@ -319032,7 +319536,7 @@ var init_dev10 = __esm(() => {
319032
319536
  init_default3();
319033
319537
  });
319034
319538
 
319035
- // ../../../v2/node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-whitespace/dev/index.js
319539
+ // ../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-whitespace/dev/index.js
319036
319540
  function factoryWhitespace(effects2, ok3) {
319037
319541
  let seen;
319038
319542
  return start;
@@ -319056,7 +319560,7 @@ var init_dev11 = __esm(() => {
319056
319560
  init_default3();
319057
319561
  });
319058
319562
 
319059
- // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/definition.js
319563
+ // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/definition.js
319060
319564
  function tokenizeDefinition(effects2, ok3, nok) {
319061
319565
  const self = this;
319062
319566
  let identifier;
@@ -319130,7 +319634,7 @@ var init_definition = __esm(() => {
319130
319634
  titleBefore = { partial: true, tokenize: tokenizeTitleBefore };
319131
319635
  });
319132
319636
 
319133
- // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.js
319637
+ // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.js
319134
319638
  function tokenizeHardBreakEscape(effects2, ok3, nok) {
319135
319639
  return start;
319136
319640
  function start(code) {
@@ -319158,7 +319662,7 @@ var init_hard_break_escape = __esm(() => {
319158
319662
  };
319159
319663
  });
319160
319664
 
319161
- // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/heading-atx.js
319665
+ // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/heading-atx.js
319162
319666
  function resolveHeadingAtx(events, context) {
319163
319667
  let contentEnd = events.length - 2;
319164
319668
  let contentStart = 3;
@@ -319263,7 +319767,7 @@ var init_heading_atx = __esm(() => {
319263
319767
  };
319264
319768
  });
319265
319769
 
319266
- // ../../../v2/node_modules/.pnpm/micromark-util-html-tag-name@2.0.1/node_modules/micromark-util-html-tag-name/index.js
319770
+ // ../../node_modules/.pnpm/micromark-util-html-tag-name@2.0.1/node_modules/micromark-util-html-tag-name/index.js
319267
319771
  var htmlBlockNames, htmlRawNames;
319268
319772
  var init_micromark_util_html_tag_name = __esm(() => {
319269
319773
  htmlBlockNames = [
@@ -319333,7 +319837,7 @@ var init_micromark_util_html_tag_name = __esm(() => {
319333
319837
  htmlRawNames = ["pre", "script", "style", "textarea"];
319334
319838
  });
319335
319839
 
319336
- // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/html-flow.js
319840
+ // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/html-flow.js
319337
319841
  function resolveToHtmlFlow(events) {
319338
319842
  let index = events.length;
319339
319843
  while (index--) {
@@ -319723,7 +320227,7 @@ var init_html_flow = __esm(() => {
319723
320227
  };
319724
320228
  });
319725
320229
 
319726
- // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/html-text.js
320230
+ // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/html-text.js
319727
320231
  function tokenizeHtmlText(effects2, ok3, nok) {
319728
320232
  const self = this;
319729
320233
  let marker;
@@ -320037,7 +320541,7 @@ var init_html_text = __esm(() => {
320037
320541
  htmlText = { name: "htmlText", tokenize: tokenizeHtmlText };
320038
320542
  });
320039
320543
 
320040
- // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/label-end.js
320544
+ // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/label-end.js
320041
320545
  function resolveAllLabelEnd(events) {
320042
320546
  let index = -1;
320043
320547
  const newEvents = [];
@@ -320269,7 +320773,7 @@ var init_label_end = __esm(() => {
320269
320773
  referenceCollapsedConstruct = { tokenize: tokenizeReferenceCollapsed };
320270
320774
  });
320271
320775
 
320272
- // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/label-start-image.js
320776
+ // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/label-start-image.js
320273
320777
  function tokenizeLabelStartImage(effects2, ok3, nok) {
320274
320778
  const self = this;
320275
320779
  return start;
@@ -320307,7 +320811,7 @@ var init_label_start_image = __esm(() => {
320307
320811
  };
320308
320812
  });
320309
320813
 
320310
- // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/label-start-link.js
320814
+ // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/label-start-link.js
320311
320815
  function tokenizeLabelStartLink(effects2, ok3, nok) {
320312
320816
  const self = this;
320313
320817
  return start;
@@ -320336,7 +320840,7 @@ var init_label_start_link = __esm(() => {
320336
320840
  };
320337
320841
  });
320338
320842
 
320339
- // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/line-ending.js
320843
+ // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/line-ending.js
320340
320844
  function tokenizeLineEnding(effects2, ok3) {
320341
320845
  return start;
320342
320846
  function start(code) {
@@ -320356,7 +320860,7 @@ var init_line_ending = __esm(() => {
320356
320860
  lineEnding = { name: "lineEnding", tokenize: tokenizeLineEnding };
320357
320861
  });
320358
320862
 
320359
- // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/thematic-break.js
320863
+ // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/thematic-break.js
320360
320864
  function tokenizeThematicBreak(effects2, ok3, nok) {
320361
320865
  let size = 0;
320362
320866
  let marker;
@@ -320403,7 +320907,7 @@ var init_thematic_break = __esm(() => {
320403
320907
  };
320404
320908
  });
320405
320909
 
320406
- // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/list.js
320910
+ // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/list.js
320407
320911
  function tokenizeListStart(effects2, ok3, nok) {
320408
320912
  const self = this;
320409
320913
  const tail = self.events[self.events.length - 1];
@@ -320548,7 +321052,7 @@ var init_list = __esm(() => {
320548
321052
  indentConstruct = { partial: true, tokenize: tokenizeIndent };
320549
321053
  });
320550
321054
 
320551
- // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/setext-underline.js
321055
+ // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/setext-underline.js
320552
321056
  function resolveToSetextUnderline(events, context) {
320553
321057
  let index = events.length;
320554
321058
  let content3;
@@ -320646,7 +321150,7 @@ var init_setext_underline = __esm(() => {
320646
321150
  };
320647
321151
  });
320648
321152
 
320649
- // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/index.js
321153
+ // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/index.js
320650
321154
  var init_dev12 = __esm(() => {
320651
321155
  init_attention();
320652
321156
  init_autolink();
@@ -320672,7 +321176,7 @@ var init_dev12 = __esm(() => {
320672
321176
  init_thematic_break();
320673
321177
  });
320674
321178
 
320675
- // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/lib/initialize/flow.js
321179
+ // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/lib/initialize/flow.js
320676
321180
  function initializeFlow(effects2) {
320677
321181
  const self = this;
320678
321182
  const initial = effects2.attempt(blankLine, atBlankEnding, effects2.attempt(this.parser.constructs.flowInitial, afterConstruct, factorySpace(effects2, effects2.attempt(this.parser.constructs.flow, afterConstruct, effects2.attempt(content2, afterConstruct)), types9.linePrefix)));
@@ -320712,7 +321216,7 @@ var init_flow = __esm(() => {
320712
321216
  flow = { tokenize: initializeFlow };
320713
321217
  });
320714
321218
 
320715
- // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/lib/initialize/text.js
321219
+ // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/lib/initialize/text.js
320716
321220
  function initializeFactory(field) {
320717
321221
  return {
320718
321222
  resolveAll: createResolver(field === "text" ? resolveAllLineSuffixes : undefined),
@@ -320851,7 +321355,7 @@ var init_text = __esm(() => {
320851
321355
  text = initializeFactory("text");
320852
321356
  });
320853
321357
 
320854
- // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/lib/constructs.js
321358
+ // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/lib/constructs.js
320855
321359
  var exports_constructs = {};
320856
321360
  __export(exports_constructs, {
320857
321361
  text: () => text2,
@@ -320926,7 +321430,7 @@ var init_constructs = __esm(() => {
320926
321430
  disable = { null: [] };
320927
321431
  });
320928
321432
 
320929
- // ../../../v2/node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js
321433
+ // ../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js
320930
321434
  var require_ms = __commonJS((exports, module) => {
320931
321435
  var s = 1000;
320932
321436
  var m = s * 60;
@@ -321036,7 +321540,7 @@ var require_ms = __commonJS((exports, module) => {
321036
321540
  }
321037
321541
  });
321038
321542
 
321039
- // ../../../v2/node_modules/.pnpm/debug@4.4.3_supports-color@7.2.0/node_modules/debug/src/common.js
321543
+ // ../../node_modules/.pnpm/debug@4.4.3_supports-color@5.5.0/node_modules/debug/src/common.js
321040
321544
  var require_common = __commonJS((exports, module) => {
321041
321545
  function setup(env) {
321042
321546
  createDebug.debug = createDebug;
@@ -321211,7 +321715,7 @@ var require_common = __commonJS((exports, module) => {
321211
321715
  module.exports = setup;
321212
321716
  });
321213
321717
 
321214
- // ../../../v2/node_modules/.pnpm/debug@4.4.3_supports-color@7.2.0/node_modules/debug/src/browser.js
321718
+ // ../../node_modules/.pnpm/debug@4.4.3_supports-color@5.5.0/node_modules/debug/src/browser.js
321215
321719
  var require_browser = __commonJS((exports, module) => {
321216
321720
  exports.formatArgs = formatArgs;
321217
321721
  exports.save = save;
@@ -321371,36 +321875,30 @@ var require_browser = __commonJS((exports, module) => {
321371
321875
  };
321372
321876
  });
321373
321877
 
321374
- // ../../../v2/node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js
321878
+ // ../../node_modules/.pnpm/has-flag@3.0.0/node_modules/has-flag/index.js
321375
321879
  var require_has_flag = __commonJS((exports, module) => {
321376
- module.exports = (flag, argv = process.argv) => {
321880
+ module.exports = (flag, argv) => {
321881
+ argv = argv || process.argv;
321377
321882
  const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
321378
- const position = argv.indexOf(prefix + flag);
321379
- const terminatorPosition = argv.indexOf("--");
321380
- return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
321883
+ const pos = argv.indexOf(prefix + flag);
321884
+ const terminatorPos = argv.indexOf("--");
321885
+ return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);
321381
321886
  };
321382
321887
  });
321383
321888
 
321384
- // ../../../v2/node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js
321889
+ // ../../node_modules/.pnpm/supports-color@5.5.0/node_modules/supports-color/index.js
321385
321890
  var require_supports_color = __commonJS((exports, module) => {
321386
321891
  var os = __require("os");
321387
- var tty = __require("tty");
321388
321892
  var hasFlag = require_has_flag();
321389
- var { env } = process;
321893
+ var env = process.env;
321390
321894
  var forceColor;
321391
- if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) {
321392
- forceColor = 0;
321895
+ if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false")) {
321896
+ forceColor = false;
321393
321897
  } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) {
321394
- forceColor = 1;
321898
+ forceColor = true;
321395
321899
  }
321396
321900
  if ("FORCE_COLOR" in env) {
321397
- if (env.FORCE_COLOR === "true") {
321398
- forceColor = 1;
321399
- } else if (env.FORCE_COLOR === "false") {
321400
- forceColor = 0;
321401
- } else {
321402
- forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);
321403
- }
321901
+ forceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0;
321404
321902
  }
321405
321903
  function translateLevel(level) {
321406
321904
  if (level === 0) {
@@ -321413,8 +321911,8 @@ var require_supports_color = __commonJS((exports, module) => {
321413
321911
  has16m: level >= 3
321414
321912
  };
321415
321913
  }
321416
- function supportsColor(haveStream, streamIsTTY) {
321417
- if (forceColor === 0) {
321914
+ function supportsColor(stream) {
321915
+ if (forceColor === false) {
321418
321916
  return 0;
321419
321917
  }
321420
321918
  if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) {
@@ -321423,22 +321921,19 @@ var require_supports_color = __commonJS((exports, module) => {
321423
321921
  if (hasFlag("color=256")) {
321424
321922
  return 2;
321425
321923
  }
321426
- if (haveStream && !streamIsTTY && forceColor === undefined) {
321924
+ if (stream && !stream.isTTY && forceColor !== true) {
321427
321925
  return 0;
321428
321926
  }
321429
- const min = forceColor || 0;
321430
- if (env.TERM === "dumb") {
321431
- return min;
321432
- }
321927
+ const min = forceColor ? 1 : 0;
321433
321928
  if (process.platform === "win32") {
321434
321929
  const osRelease = os.release().split(".");
321435
- if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
321930
+ if (Number(process.versions.node.split(".")[0]) >= 8 && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
321436
321931
  return Number(osRelease[2]) >= 14931 ? 3 : 2;
321437
321932
  }
321438
321933
  return 1;
321439
321934
  }
321440
321935
  if ("CI" in env) {
321441
- if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "GITHUB_ACTIONS", "BUILDKITE"].some((sign) => (sign in env)) || env.CI_NAME === "codeship") {
321936
+ if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI"].some((sign) => (sign in env)) || env.CI_NAME === "codeship") {
321442
321937
  return 1;
321443
321938
  }
321444
321939
  return min;
@@ -321467,20 +321962,23 @@ var require_supports_color = __commonJS((exports, module) => {
321467
321962
  if ("COLORTERM" in env) {
321468
321963
  return 1;
321469
321964
  }
321965
+ if (env.TERM === "dumb") {
321966
+ return min;
321967
+ }
321470
321968
  return min;
321471
321969
  }
321472
321970
  function getSupportLevel(stream) {
321473
- const level = supportsColor(stream, stream && stream.isTTY);
321971
+ const level = supportsColor(stream);
321474
321972
  return translateLevel(level);
321475
321973
  }
321476
321974
  module.exports = {
321477
321975
  supportsColor: getSupportLevel,
321478
- stdout: translateLevel(supportsColor(true, tty.isatty(1))),
321479
- stderr: translateLevel(supportsColor(true, tty.isatty(2)))
321976
+ stdout: getSupportLevel(process.stdout),
321977
+ stderr: getSupportLevel(process.stderr)
321480
321978
  };
321481
321979
  });
321482
321980
 
321483
- // ../../../v2/node_modules/.pnpm/debug@4.4.3_supports-color@7.2.0/node_modules/debug/src/node.js
321981
+ // ../../node_modules/.pnpm/debug@4.4.3_supports-color@5.5.0/node_modules/debug/src/node.js
321484
321982
  var require_node = __commonJS((exports, module) => {
321485
321983
  var tty = __require("tty");
321486
321984
  var util3 = __require("util");
@@ -321651,7 +322149,7 @@ var require_node = __commonJS((exports, module) => {
321651
322149
  };
321652
322150
  });
321653
322151
 
321654
- // ../../../v2/node_modules/.pnpm/debug@4.4.3_supports-color@7.2.0/node_modules/debug/src/index.js
322152
+ // ../../node_modules/.pnpm/debug@4.4.3_supports-color@5.5.0/node_modules/debug/src/index.js
321655
322153
  var require_src = __commonJS((exports, module) => {
321656
322154
  if (typeof process === "undefined" || process.type === "renderer" || false || process.__nwjs) {
321657
322155
  module.exports = require_browser();
@@ -321660,7 +322158,7 @@ var require_src = __commonJS((exports, module) => {
321660
322158
  }
321661
322159
  });
321662
322160
 
321663
- // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/lib/create-tokenizer.js
322161
+ // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/lib/create-tokenizer.js
321664
322162
  function createTokenizer(parser, initialize, from) {
321665
322163
  let point = {
321666
322164
  _bufferIndex: -1,
@@ -321983,7 +322481,7 @@ var init_create_tokenizer = __esm(() => {
321983
322481
  debug = import_debug.default("micromark");
321984
322482
  });
321985
322483
 
321986
- // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/lib/parse.js
322484
+ // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/lib/parse.js
321987
322485
  function parse6(options) {
321988
322486
  const settings = options || {};
321989
322487
  const constructs2 = combineExtensions([exports_constructs, ...settings.extensions || []]);
@@ -322015,7 +322513,7 @@ var init_parse4 = __esm(() => {
322015
322513
  init_create_tokenizer();
322016
322514
  });
322017
322515
 
322018
- // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/lib/postprocess.js
322516
+ // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/lib/postprocess.js
322019
322517
  function postprocess(events) {
322020
322518
  while (!subtokenize(events)) {}
322021
322519
  return events;
@@ -322024,7 +322522,7 @@ var init_postprocess = __esm(() => {
322024
322522
  init_dev7();
322025
322523
  });
322026
322524
 
322027
- // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/lib/preprocess.js
322525
+ // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/lib/preprocess.js
322028
322526
  function preprocess2() {
322029
322527
  let column = 1;
322030
322528
  let buffer = "";
@@ -322110,14 +322608,14 @@ var init_preprocess = __esm(() => {
322110
322608
  search = /[\0\t\n\r]/g;
322111
322609
  });
322112
322610
 
322113
- // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/index.js
322611
+ // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/index.js
322114
322612
  var init_dev13 = __esm(() => {
322115
322613
  init_parse4();
322116
322614
  init_postprocess();
322117
322615
  init_preprocess();
322118
322616
  });
322119
322617
 
322120
- // ../../../v2/node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/dev/index.js
322618
+ // ../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/dev/index.js
322121
322619
  function decodeString(value2) {
322122
322620
  return value2.replace(characterEscapeOrReference, decode4);
322123
322621
  }
@@ -322141,7 +322639,7 @@ var init_dev14 = __esm(() => {
322141
322639
  characterEscapeOrReference = /\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;
322142
322640
  });
322143
322641
 
322144
- // ../../../v2/node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/lib/index.js
322642
+ // ../../node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/lib/index.js
322145
322643
  function stringifyPosition(value2) {
322146
322644
  if (!value2 || typeof value2 !== "object") {
322147
322645
  return "";
@@ -322167,10 +322665,10 @@ function index(value2) {
322167
322665
  return value2 && typeof value2 === "number" ? value2 : 1;
322168
322666
  }
322169
322667
 
322170
- // ../../../v2/node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/index.js
322668
+ // ../../node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/index.js
322171
322669
  var init_unist_util_stringify_position = () => {};
322172
322670
 
322173
- // ../../../v2/node_modules/.pnpm/mdast-util-from-markdown@2.0.3_supports-color@7.2.0/node_modules/mdast-util-from-markdown/dev/lib/index.js
322671
+ // ../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/dev/lib/index.js
322174
322672
  function fromMarkdown(value2, encoding, options) {
322175
322673
  if (encoding && typeof encoding === "object") {
322176
322674
  options = encoding;
@@ -322885,12 +323383,12 @@ var init_lib2 = __esm(() => {
322885
323383
  own2 = {}.hasOwnProperty;
322886
323384
  });
322887
323385
 
322888
- // ../../../v2/node_modules/.pnpm/mdast-util-from-markdown@2.0.3_supports-color@7.2.0/node_modules/mdast-util-from-markdown/dev/index.js
323386
+ // ../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/dev/index.js
322889
323387
  var init_dev15 = __esm(() => {
322890
323388
  init_lib2();
322891
323389
  });
322892
323390
 
322893
- // ../../../v2/node_modules/.pnpm/ccount@2.0.1/node_modules/ccount/index.js
323391
+ // ../../node_modules/.pnpm/ccount@2.0.1/node_modules/ccount/index.js
322894
323392
  function ccount(value2, character) {
322895
323393
  const source = String(value2);
322896
323394
  if (typeof character !== "string") {
@@ -322905,7 +323403,7 @@ function ccount(value2, character) {
322905
323403
  return count;
322906
323404
  }
322907
323405
 
322908
- // ../../../v2/node_modules/.pnpm/escape-string-regexp@5.0.0/node_modules/escape-string-regexp/index.js
323406
+ // ../../node_modules/.pnpm/escape-string-regexp@5.0.0/node_modules/escape-string-regexp/index.js
322909
323407
  function escapeStringRegexp(string7) {
322910
323408
  if (typeof string7 !== "string") {
322911
323409
  throw new TypeError("Expected a string");
@@ -322913,7 +323411,7 @@ function escapeStringRegexp(string7) {
322913
323411
  return string7.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
322914
323412
  }
322915
323413
 
322916
- // ../../../v2/node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/lib/index.js
323414
+ // ../../node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/lib/index.js
322917
323415
  function anyFactory(tests) {
322918
323416
  const checks4 = [];
322919
323417
  let index2 = -1;
@@ -322977,15 +323475,15 @@ var convert = function(test) {
322977
323475
  throw new Error("Expected function, string, or object as test");
322978
323476
  };
322979
323477
 
322980
- // ../../../v2/node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/index.js
323478
+ // ../../node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/index.js
322981
323479
  var init_unist_util_is = () => {};
322982
323480
 
322983
- // ../../../v2/node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/color.node.js
323481
+ // ../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/color.node.js
322984
323482
  function color(d) {
322985
323483
  return "\x1B[33m" + d + "\x1B[39m";
322986
323484
  }
322987
323485
 
322988
- // ../../../v2/node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/index.js
323486
+ // ../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/index.js
322989
323487
  function visitParents(tree, test, visitor, reverse) {
322990
323488
  let check2;
322991
323489
  if (typeof test === "function" && typeof visitor !== "function") {
@@ -323051,12 +323549,12 @@ var init_lib3 = __esm(() => {
323051
323549
  empty2 = [];
323052
323550
  });
323053
323551
 
323054
- // ../../../v2/node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/index.js
323552
+ // ../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/index.js
323055
323553
  var init_unist_util_visit_parents = __esm(() => {
323056
323554
  init_lib3();
323057
323555
  });
323058
323556
 
323059
- // ../../../v2/node_modules/.pnpm/mdast-util-find-and-replace@3.0.2/node_modules/mdast-util-find-and-replace/lib/index.js
323557
+ // ../../node_modules/.pnpm/mdast-util-find-and-replace@3.0.2/node_modules/mdast-util-find-and-replace/lib/index.js
323060
323558
  function findAndReplace(tree, list2, options) {
323061
323559
  const settings = options || {};
323062
323560
  const ignored = convert(settings.ignore || []);
@@ -323161,12 +323659,12 @@ var init_lib4 = __esm(() => {
323161
323659
  init_unist_util_is();
323162
323660
  });
323163
323661
 
323164
- // ../../../v2/node_modules/.pnpm/mdast-util-find-and-replace@3.0.2/node_modules/mdast-util-find-and-replace/index.js
323662
+ // ../../node_modules/.pnpm/mdast-util-find-and-replace@3.0.2/node_modules/mdast-util-find-and-replace/index.js
323165
323663
  var init_mdast_util_find_and_replace = __esm(() => {
323166
323664
  init_lib4();
323167
323665
  });
323168
323666
 
323169
- // ../../../v2/node_modules/.pnpm/mdast-util-gfm-autolink-literal@2.0.1/node_modules/mdast-util-gfm-autolink-literal/lib/index.js
323667
+ // ../../node_modules/.pnpm/mdast-util-gfm-autolink-literal@2.0.1/node_modules/mdast-util-gfm-autolink-literal/lib/index.js
323170
323668
  function gfmAutolinkLiteralFromMarkdown() {
323171
323669
  return {
323172
323670
  transforms: [transformGfmAutolinkLiterals],
@@ -323284,12 +323782,12 @@ var init_lib5 = __esm(() => {
323284
323782
  init_mdast_util_find_and_replace();
323285
323783
  });
323286
323784
 
323287
- // ../../../v2/node_modules/.pnpm/mdast-util-gfm-autolink-literal@2.0.1/node_modules/mdast-util-gfm-autolink-literal/index.js
323785
+ // ../../node_modules/.pnpm/mdast-util-gfm-autolink-literal@2.0.1/node_modules/mdast-util-gfm-autolink-literal/index.js
323288
323786
  var init_mdast_util_gfm_autolink_literal = __esm(() => {
323289
323787
  init_lib5();
323290
323788
  });
323291
323789
 
323292
- // ../../../v2/node_modules/.pnpm/mdast-util-gfm-footnote@2.1.0_supports-color@7.2.0/node_modules/mdast-util-gfm-footnote/lib/index.js
323790
+ // ../../node_modules/.pnpm/mdast-util-gfm-footnote@2.1.0/node_modules/mdast-util-gfm-footnote/lib/index.js
323293
323791
  function enterFootnoteCallString() {
323294
323792
  this.buffer();
323295
323793
  }
@@ -323358,12 +323856,12 @@ var init_lib6 = __esm(() => {
323358
323856
  footnoteReference.peek = footnoteReferencePeek;
323359
323857
  });
323360
323858
 
323361
- // ../../../v2/node_modules/.pnpm/mdast-util-gfm-footnote@2.1.0_supports-color@7.2.0/node_modules/mdast-util-gfm-footnote/index.js
323859
+ // ../../node_modules/.pnpm/mdast-util-gfm-footnote@2.1.0/node_modules/mdast-util-gfm-footnote/index.js
323362
323860
  var init_mdast_util_gfm_footnote = __esm(() => {
323363
323861
  init_lib6();
323364
323862
  });
323365
323863
 
323366
- // ../../../v2/node_modules/.pnpm/mdast-util-gfm-strikethrough@2.0.0_supports-color@7.2.0/node_modules/mdast-util-gfm-strikethrough/lib/index.js
323864
+ // ../../node_modules/.pnpm/mdast-util-gfm-strikethrough@2.0.0/node_modules/mdast-util-gfm-strikethrough/lib/index.js
323367
323865
  function gfmStrikethroughFromMarkdown() {
323368
323866
  return {
323369
323867
  canContainEols: ["delete"],
@@ -323397,12 +323895,12 @@ var init_lib7 = __esm(() => {
323397
323895
  handleDelete.peek = peekDelete;
323398
323896
  });
323399
323897
 
323400
- // ../../../v2/node_modules/.pnpm/mdast-util-gfm-strikethrough@2.0.0_supports-color@7.2.0/node_modules/mdast-util-gfm-strikethrough/index.js
323898
+ // ../../node_modules/.pnpm/mdast-util-gfm-strikethrough@2.0.0/node_modules/mdast-util-gfm-strikethrough/index.js
323401
323899
  var init_mdast_util_gfm_strikethrough = __esm(() => {
323402
323900
  init_lib7();
323403
323901
  });
323404
323902
 
323405
- // ../../../v2/node_modules/.pnpm/mdast-util-gfm-table@2.0.0_supports-color@7.2.0/node_modules/mdast-util-gfm-table/lib/index.js
323903
+ // ../../node_modules/.pnpm/mdast-util-gfm-table@2.0.0/node_modules/mdast-util-gfm-table/lib/index.js
323406
323904
  function gfmTableFromMarkdown() {
323407
323905
  return {
323408
323906
  enter: {
@@ -323462,12 +323960,12 @@ var init_lib8 = __esm(() => {
323462
323960
  init_development();
323463
323961
  });
323464
323962
 
323465
- // ../../../v2/node_modules/.pnpm/mdast-util-gfm-table@2.0.0_supports-color@7.2.0/node_modules/mdast-util-gfm-table/index.js
323963
+ // ../../node_modules/.pnpm/mdast-util-gfm-table@2.0.0/node_modules/mdast-util-gfm-table/index.js
323466
323964
  var init_mdast_util_gfm_table = __esm(() => {
323467
323965
  init_lib8();
323468
323966
  });
323469
323967
 
323470
- // ../../../v2/node_modules/.pnpm/mdast-util-gfm-task-list-item@2.0.0_supports-color@7.2.0/node_modules/mdast-util-gfm-task-list-item/lib/index.js
323968
+ // ../../node_modules/.pnpm/mdast-util-gfm-task-list-item@2.0.0/node_modules/mdast-util-gfm-task-list-item/lib/index.js
323471
323969
  function gfmTaskListItemFromMarkdown() {
323472
323970
  return {
323473
323971
  exit: {
@@ -323517,12 +324015,12 @@ var init_lib9 = __esm(() => {
323517
324015
  init_development();
323518
324016
  });
323519
324017
 
323520
- // ../../../v2/node_modules/.pnpm/mdast-util-gfm-task-list-item@2.0.0_supports-color@7.2.0/node_modules/mdast-util-gfm-task-list-item/index.js
324018
+ // ../../node_modules/.pnpm/mdast-util-gfm-task-list-item@2.0.0/node_modules/mdast-util-gfm-task-list-item/index.js
323521
324019
  var init_mdast_util_gfm_task_list_item = __esm(() => {
323522
324020
  init_lib9();
323523
324021
  });
323524
324022
 
323525
- // ../../../v2/node_modules/.pnpm/mdast-util-gfm@3.1.0_supports-color@7.2.0/node_modules/mdast-util-gfm/lib/index.js
324023
+ // ../../node_modules/.pnpm/mdast-util-gfm@3.1.0/node_modules/mdast-util-gfm/lib/index.js
323526
324024
  function gfmFromMarkdown() {
323527
324025
  return [
323528
324026
  gfmAutolinkLiteralFromMarkdown(),
@@ -323540,12 +324038,12 @@ var init_lib10 = __esm(() => {
323540
324038
  init_mdast_util_gfm_task_list_item();
323541
324039
  });
323542
324040
 
323543
- // ../../../v2/node_modules/.pnpm/mdast-util-gfm@3.1.0_supports-color@7.2.0/node_modules/mdast-util-gfm/index.js
324041
+ // ../../node_modules/.pnpm/mdast-util-gfm@3.1.0/node_modules/mdast-util-gfm/index.js
323544
324042
  var init_mdast_util_gfm = __esm(() => {
323545
324043
  init_lib10();
323546
324044
  });
323547
324045
 
323548
- // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-autolink-literal@2.1.0/node_modules/micromark-extension-gfm-autolink-literal/dev/lib/syntax.js
324046
+ // ../../node_modules/.pnpm/micromark-extension-gfm-autolink-literal@2.1.0/node_modules/micromark-extension-gfm-autolink-literal/dev/lib/syntax.js
323549
324047
  function gfmAutolinkLiteral() {
323550
324048
  return { text: text3 };
323551
324049
  }
@@ -323876,12 +324374,12 @@ var init_syntax = __esm(() => {
323876
324374
  text3[codes.lowercaseW] = [emailAutolink, wwwAutolink];
323877
324375
  });
323878
324376
 
323879
- // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-autolink-literal@2.1.0/node_modules/micromark-extension-gfm-autolink-literal/dev/index.js
324377
+ // ../../node_modules/.pnpm/micromark-extension-gfm-autolink-literal@2.1.0/node_modules/micromark-extension-gfm-autolink-literal/dev/index.js
323880
324378
  var init_dev16 = __esm(() => {
323881
324379
  init_syntax();
323882
324380
  });
323883
324381
 
323884
- // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-footnote@2.1.0/node_modules/micromark-extension-gfm-footnote/dev/lib/syntax.js
324382
+ // ../../node_modules/.pnpm/micromark-extension-gfm-footnote@2.1.0/node_modules/micromark-extension-gfm-footnote/dev/lib/syntax.js
323885
324383
  function gfmFootnote() {
323886
324384
  return {
323887
324385
  document: {
@@ -324145,12 +324643,12 @@ var init_syntax2 = __esm(() => {
324145
324643
  indent = { tokenize: tokenizeIndent2, partial: true };
324146
324644
  });
324147
324645
 
324148
- // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-footnote@2.1.0/node_modules/micromark-extension-gfm-footnote/dev/index.js
324646
+ // ../../node_modules/.pnpm/micromark-extension-gfm-footnote@2.1.0/node_modules/micromark-extension-gfm-footnote/dev/index.js
324149
324647
  var init_dev17 = __esm(() => {
324150
324648
  init_syntax2();
324151
324649
  });
324152
324650
 
324153
- // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-strikethrough@2.1.0/node_modules/micromark-extension-gfm-strikethrough/dev/lib/syntax.js
324651
+ // ../../node_modules/.pnpm/micromark-extension-gfm-strikethrough@2.1.0/node_modules/micromark-extension-gfm-strikethrough/dev/lib/syntax.js
324154
324652
  function gfmStrikethrough(options) {
324155
324653
  const options_ = options || {};
324156
324654
  let single = options_.singleTilde;
@@ -324256,12 +324754,12 @@ var init_syntax3 = __esm(() => {
324256
324754
  init_default3();
324257
324755
  });
324258
324756
 
324259
- // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-strikethrough@2.1.0/node_modules/micromark-extension-gfm-strikethrough/dev/index.js
324757
+ // ../../node_modules/.pnpm/micromark-extension-gfm-strikethrough@2.1.0/node_modules/micromark-extension-gfm-strikethrough/dev/index.js
324260
324758
  var init_dev18 = __esm(() => {
324261
324759
  init_syntax3();
324262
324760
  });
324263
324761
 
324264
- // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/dev/lib/edit-map.js
324762
+ // ../../node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/dev/lib/edit-map.js
324265
324763
  class EditMap {
324266
324764
  constructor() {
324267
324765
  this.map = [];
@@ -324311,7 +324809,7 @@ function addImplementation(editMap, at, remove, add) {
324311
324809
  editMap.map.push([at, remove, add]);
324312
324810
  }
324313
324811
 
324314
- // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/dev/lib/infer.js
324812
+ // ../../node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/dev/lib/infer.js
324315
324813
  function gfmTableAlign(events, index2) {
324316
324814
  ok2(events[index2][1].type === "table", "expected table");
324317
324815
  let inDelimiterRow = false;
@@ -324342,7 +324840,7 @@ var init_infer = __esm(() => {
324342
324840
  init_development();
324343
324841
  });
324344
324842
 
324345
- // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/dev/lib/syntax.js
324843
+ // ../../node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/dev/lib/syntax.js
324346
324844
  function gfmTable() {
324347
324845
  return {
324348
324846
  flow: {
@@ -324734,12 +325232,12 @@ var init_syntax4 = __esm(() => {
324734
325232
  init_infer();
324735
325233
  });
324736
325234
 
324737
- // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/dev/index.js
325235
+ // ../../node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/dev/index.js
324738
325236
  var init_dev19 = __esm(() => {
324739
325237
  init_syntax4();
324740
325238
  });
324741
325239
 
324742
- // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-task-list-item@2.1.0/node_modules/micromark-extension-gfm-task-list-item/dev/lib/syntax.js
325240
+ // ../../node_modules/.pnpm/micromark-extension-gfm-task-list-item@2.1.0/node_modules/micromark-extension-gfm-task-list-item/dev/lib/syntax.js
324743
325241
  function gfmTaskListItem() {
324744
325242
  return {
324745
325243
  text: { [codes.leftSquareBracket]: tasklistCheck }
@@ -324809,12 +325307,12 @@ var init_syntax5 = __esm(() => {
324809
325307
  tasklistCheck = { name: "tasklistCheck", tokenize: tokenizeTasklistCheck };
324810
325308
  });
324811
325309
 
324812
- // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-task-list-item@2.1.0/node_modules/micromark-extension-gfm-task-list-item/dev/index.js
325310
+ // ../../node_modules/.pnpm/micromark-extension-gfm-task-list-item@2.1.0/node_modules/micromark-extension-gfm-task-list-item/dev/index.js
324813
325311
  var init_dev20 = __esm(() => {
324814
325312
  init_syntax5();
324815
325313
  });
324816
325314
 
324817
- // ../../../v2/node_modules/.pnpm/micromark-extension-gfm@3.0.0/node_modules/micromark-extension-gfm/index.js
325315
+ // ../../node_modules/.pnpm/micromark-extension-gfm@3.0.0/node_modules/micromark-extension-gfm/index.js
324818
325316
  function gfm(options) {
324819
325317
  return combineExtensions([
324820
325318
  gfmAutolinkLiteral(),
@@ -326004,6 +326502,47 @@ function hasLocalTrackedTextEntries(context, logicalIds) {
326004
326502
  const cache = currentCache(context);
326005
326503
  return logicalIds.every((id) => cache.byLogicalId.has(id));
326006
326504
  }
326505
+ function tryProjectLocalTrackedParagraphRangeReceiptIds(context, refs, blockId) {
326506
+ const tracked = refs.filter((ref5) => ref5.kind === "trackedChange");
326507
+ const rsids = [...new Set(tracked.map((ref5) => ref5.entityId))];
326508
+ if (!rsids.length || rsids.length > 2)
326509
+ return null;
326510
+ const index2 = getSDDocumentSessionInternalParagraphIndex(context.session);
326511
+ const paragraph3 = index2?.byParaId(blockId);
326512
+ if (!index2 || !paragraph3 || paragraph3.directBodyChildOrdinal == null || index2.duplicateParaIds.has(blockId) || tracked.some((ref5) => ref5.storyId !== paragraph3.storyId))
326513
+ return null;
326514
+ const bytes = getSDDocumentSessionInternalPartBytes(context.session, paragraph3.partUri);
326515
+ if (!bytes)
326516
+ return null;
326517
+ const reservations = getSDDocumentSessionInternalRevisionWIdReservations(context.session);
326518
+ const authoredWordIds = new Set([...reservations.issued].filter((id) => !reservations.conflictedReserved.has(id) && !reservations.replayOwners.has(id)));
326519
+ for (const delta of [-1, 1]) {
326520
+ const adjacent = index2.entries[paragraph3.ordinal + delta];
326521
+ if (!adjacent || adjacent.partUri !== paragraph3.partUri || adjacent.storyId !== paragraph3.storyId || adjacent.directBodyChildOrdinal !== paragraph3.directBodyChildOrdinal + delta || index2.duplicateParaIds.has(adjacent.blockId))
326522
+ continue;
326523
+ const head = delta < 0 ? adjacent : paragraph3;
326524
+ const tail = delta < 0 ? paragraph3 : adjacent;
326525
+ const projection = buildBoundedTrackedParagraphRangeReceiptProjection({
326526
+ xml: TD88.decode(bytes.subarray(head.byteStart, tail.byteEnd)),
326527
+ partUri: paragraph3.partUri,
326528
+ storyId: paragraph3.storyId,
326529
+ rsids,
326530
+ authoredWordIds,
326531
+ replacementMode: resolveReplacementMode(context.trackedChangesReplacementMode),
326532
+ namespaceBindings: getSDDocumentSessionInternalMainStoryRootNamespaceBindings(context.session) ?? undefined
326533
+ });
326534
+ if (!projection)
326535
+ continue;
326536
+ const cache = currentCache(context);
326537
+ (cache.receiptGroups ?? (cache.receiptGroups = new Map)).set(projection.id, projection.childIds);
326538
+ return new Map(rsids.map((rsid) => [rsid, projection.id]));
326539
+ }
326540
+ return null;
326541
+ }
326542
+ function readLocalTrackedParagraphRangeReceiptGroups(context, ids) {
326543
+ const groups = currentCache(context).receiptGroups;
326544
+ return ids.length && groups && ids.every((id) => groups.has(id)) ? new Map(ids.map((id) => [id, groups.get(id)])) : null;
326545
+ }
326007
326546
  var cacheBySession, TD88;
326008
326547
  var init_local_text_projection = __esm(() => {
326009
326548
  init_sd_document_session_internal();
@@ -329920,12 +330459,14 @@ class V2SelectionMutationAdapter {
329920
330459
  recordCommittedTxIdForHistory(this.context, receipt3.txId);
329921
330460
  const textRangeShifts = projectTextRangeShifts(receipt3.textRangeShifts ?? [], this.context.session, effectiveStory);
329922
330461
  const affectedStories = projectAffectedStories(receipt3.storiesChanged ?? [], this.context.session, receipt3.partsChanged, effectiveStory);
330462
+ const inserted = projectTrackedTextEntities(this.context, receipt3.createdRefs ?? [], resolved.startBlockId);
329923
330463
  return {
329924
330464
  success: true,
329925
330465
  affectedStories,
329926
330466
  textRangeShifts,
329927
330467
  txId: receipt3.txId,
329928
- resolution
330468
+ resolution,
330469
+ ...inserted ? { inserted } : {}
329929
330470
  };
329930
330471
  }
329931
330472
  executeFormat(request, options, offsetSpace) {
@@ -330832,6 +331373,10 @@ function projectTrackedTextEntities(context, refs, localBlockId, refinement, pri
330832
331373
  return [...new Set(logicalIds)].map((entityId) => ({ kind: "entity", entityType: "trackedChange", entityId }));
330833
331374
  }
330834
331375
  }
331376
+ const groupIds = localBlockId ? tryProjectLocalTrackedParagraphRangeReceiptIds(context, refs, localBlockId) : null;
331377
+ if (groupIds && revisionIds.every((id) => groupIds.has(id))) {
331378
+ return [...new Set(revisionIds.map((id) => groupIds.get(id)))].map((entityId) => ({ kind: "entity", entityType: "trackedChange", entityId }));
331379
+ }
330835
331380
  if (diagnostics)
330836
331381
  diagnostics.globalCatalogFallbacks += 1;
330837
331382
  const { logical } = buildCachedTrackedChangeLogicalView(context);
@@ -330860,6 +331405,14 @@ function projectTrackedTextReviewGroupRemappings(context, inserted) {
330860
331405
  return;
330861
331406
  if (hasLocalTrackedTextEntries(context, inserted.map((entity) => entity.entityId)))
330862
331407
  return;
331408
+ const localGroups = readLocalTrackedParagraphRangeReceiptGroups(context, inserted.map((entity) => entity.entityId));
331409
+ if (localGroups) {
331410
+ const remapped2 = [...localGroups].flatMap(([parentId, childIds]) => childIds.filter((childId) => childId !== parentId).map((childId) => ({
331411
+ from: { kind: "entity", entityType: "trackedChange", entityId: childId },
331412
+ to: { kind: "entity", entityType: "trackedChange", entityId: parentId }
331413
+ })));
331414
+ return remapped2.length ? remapped2 : undefined;
331415
+ }
330863
331416
  const { logical } = buildCachedTrackedChangeLogicalView(context);
330864
331417
  const remapped = [];
330865
331418
  const seen = new Set;
@@ -333529,6 +334082,7 @@ class V2ContentControlsAdapter {
333529
334082
  }
333530
334083
  }
333531
334084
  create(input, options) {
334085
+ requireAuthorableControlType(input.controlType);
333532
334086
  const freshness = this.context.getReadFreshnessFailure("create.contentControl");
333533
334087
  if (freshness)
333534
334088
  return { success: false, failure: freshness };
@@ -334142,6 +334696,7 @@ class V2ContentControlsAdapter {
334142
334696
  return this.mutatePr(input, options, (pr) => setLockMode(pr, input.lockMode));
334143
334697
  }
334144
334698
  setType(input, options) {
334699
+ requireAuthorableControlType(input.controlType);
334145
334700
  return this.mutatePr(input, options, (pr) => setControlType(pr, input.controlType));
334146
334701
  }
334147
334702
  getContent(input) {
@@ -335111,26 +335666,33 @@ function inferKind(sdtXml, contentXml) {
335111
335666
  return /<w:r\b/.test(before) ? "inline" : "block";
335112
335667
  }
335113
335668
  function inferControlType(prXml) {
335114
- if (/<w14:checkbox\b/.test(prXml))
335669
+ if (findDirectRawProperty(prXml, "w14:checkbox"))
335115
335670
  return "checkbox";
335116
- if (/<w:comboBox\b/.test(prXml))
335671
+ if (findDirectRawProperty(prXml, "w:comboBox"))
335117
335672
  return "comboBox";
335118
- if (/<w:dropDownList\b/.test(prXml))
335673
+ if (findDirectRawProperty(prXml, "w:dropDownList"))
335119
335674
  return "dropDownList";
335120
- if (/<w:date\b/.test(prXml))
335675
+ if (findDirectRawProperty(prXml, "w:date"))
335121
335676
  return "date";
335122
- if (/<w15:repeatingSectionItem\b/.test(prXml))
335677
+ if (findDirectRawProperty(prXml, "w15:repeatingSectionItem"))
335123
335678
  return "repeatingSectionItem";
335124
- if (/<w15:repeatingSection\b/.test(prXml))
335679
+ if (findDirectRawProperty(prXml, "w15:repeatingSection"))
335125
335680
  return "repeatingSection";
335126
- if (/<w:group\b/.test(prXml))
335681
+ if (findDirectRawProperty(prXml, "w:group"))
335127
335682
  return "group";
335128
- if (/<w:text\b/.test(prXml))
335683
+ if (findDirectRawProperty(prXml, "w:text"))
335129
335684
  return "text";
335130
- if (/<w:richText\b/.test(prXml))
335685
+ if (findDirectRawProperty(prXml, "w:richText"))
335131
335686
  return "richText";
335687
+ if (UNMODELED_TYPE_TAGS.some((name) => findDirectRawProperty(prXml, name)))
335688
+ return "unknown";
335132
335689
  return "richText";
335133
335690
  }
335691
+ function requireAuthorableControlType(type) {
335692
+ if (type === "unknown") {
335693
+ throw operationError("INVALID_INPUT", "unknown is a read classification, not an authorable content-control type.");
335694
+ }
335695
+ }
335134
335696
  function readProperties2(prXml, controlType) {
335135
335697
  const properties = {};
335136
335698
  const alias = matchElement2(prXml, "w:alias");
@@ -335166,7 +335728,8 @@ function readProperties2(prXml, controlType) {
335166
335728
  return properties;
335167
335729
  }
335168
335730
  function readDateProperties(prXml) {
335169
- const date6 = matchElement2(prXml, "w:date") ?? "";
335731
+ const current = findDirectRawProperty(prXml, "w:date");
335732
+ const date6 = current ? prXml.slice(current.start, current.end) : "";
335170
335733
  return {
335171
335734
  ...attrValue(date6, "fullDate") ? { dateFormat: undefined, fullDate: attrValue(date6, "fullDate") } : {},
335172
335735
  ...attrValue(matchElement2(date6, "w:dateFormat") ?? "", "val") ? { dateFormat: attrValue(matchElement2(date6, "w:dateFormat") ?? "", "val") } : {},
@@ -336358,15 +336921,21 @@ function setLockMode(prXml, lockMode) {
336358
336921
  }
336359
336922
  function setControlType(prXml, type) {
336360
336923
  let next = prXml;
336361
- for (const name of TYPE_TAGS)
336362
- next = removeElement(next, name);
336924
+ for (const name of TYPE_TAGS) {
336925
+ let current = findDirectRawProperty(next, name);
336926
+ while (current) {
336927
+ next = next.slice(0, current.start) + next.slice(current.end);
336928
+ current = findDirectRawProperty(next, name);
336929
+ }
336930
+ }
336363
336931
  if (type === "repeatingSectionItem")
336364
336932
  next = setAttr(next, "xmlns:w15", "http://schemas.microsoft.com/office/word/2012/wordml");
336365
336933
  return next.replace(/<\/w:sdtPr>$/, `${typeElement(type)}</w:sdtPr>`);
336366
336934
  }
336367
336935
  function updateDateElement(prXml, input) {
336368
336936
  const next = setControlType(prXml, "date");
336369
- let date6 = matchElement2(next, "w:date") ?? "<w:date/>";
336937
+ const current = findDirectRawProperty(next, "w:date");
336938
+ let date6 = next.slice(current.start, current.end);
336370
336939
  if (date6.endsWith("/>"))
336371
336940
  date6 = date6.replace(/\/>$/, "></w:date>");
336372
336941
  if ("fullDate" in input) {
@@ -336383,14 +336952,15 @@ function updateDateElement(prXml, input) {
336383
336952
  date6 = upsertChildElement(date6, childName, { "w:val": input[key2] ?? "" });
336384
336953
  }
336385
336954
  }
336386
- return next.replace(matchElement2(next, "w:date") ?? "<w:date/>", date6);
336955
+ return next.slice(0, current.start) + date6 + next.slice(current.end);
336387
336956
  }
336388
336957
  function updateExistingDateFullDate(prXml, fullDate) {
336389
- const existing = matchElement2(prXml, "w:date");
336390
- if (!existing)
336958
+ const current = findDirectRawProperty(prXml, "w:date");
336959
+ if (!current)
336391
336960
  return prXml;
336961
+ const existing = prXml.slice(current.start, current.end);
336392
336962
  const updated = fullDate === null ? existing.replace(/\s+w:fullDate="[^"]*"/, "") : setAttr(existing, "w:fullDate", fullDate);
336393
- return prXml.replace(existing, updated);
336963
+ return prXml.slice(0, current.start) + updated + prXml.slice(current.end);
336394
336964
  }
336395
336965
  function upsertCheckbox(prXml, input) {
336396
336966
  const props = readCheckboxProperties(prXml);
@@ -336929,7 +337499,7 @@ function replaceTextRangeInParagraph2(paragraphXml, start, end, replacement) {
336929
337499
  }
336930
337500
  return paragraphXml;
336931
337501
  }
336932
- var DEFAULT_CHECKED, DEFAULT_UNCHECKED, SECONDARY_STORY_MUTATION_MESSAGE = "Content control mutations outside the document body are not supported by this adapter.", TYPE_TAGS, COOPERATIVE_PARSE_SLICE_PARAGRAPHS = 128, COOPERATIVE_PARSE_SLICE_CONTROLS = 16, RAW_ATTRIBUTE_PATTERN, COPIED_PROPERTY_REVISIONS;
337502
+ var DEFAULT_CHECKED, DEFAULT_UNCHECKED, SECONDARY_STORY_MUTATION_MESSAGE = "Content control mutations outside the document body are not supported by this adapter.", UNMODELED_TYPE_TAGS, TYPE_TAGS, COOPERATIVE_PARSE_SLICE_PARAGRAPHS = 128, COOPERATIVE_PARSE_SLICE_CONTROLS = 16, RAW_ATTRIBUTE_PATTERN, COPIED_PROPERTY_REVISIONS;
336933
337503
  var init_adapter10 = __esm(() => {
336934
337504
  init_sd_document_session_internal();
336935
337505
  init_src6();
@@ -336954,6 +337524,14 @@ var init_adapter10 = __esm(() => {
336954
337524
  init_tracked_move();
336955
337525
  DEFAULT_CHECKED = { font: "MS Gothic", char: "2612" };
336956
337526
  DEFAULT_UNCHECKED = { font: "MS Gothic", char: "2610" };
337527
+ UNMODELED_TYPE_TAGS = [
337528
+ "w:picture",
337529
+ "w:equation",
337530
+ "w:citation",
337531
+ "w:bibliography",
337532
+ "w:docPartList",
337533
+ "w:docPartObj"
337534
+ ];
336957
337535
  TYPE_TAGS = [
336958
337536
  "w:text",
336959
337537
  "w:richText",
@@ -336963,7 +337541,8 @@ var init_adapter10 = __esm(() => {
336963
337541
  "w:group",
336964
337542
  "w14:checkbox",
336965
337543
  "w15:repeatingSection",
336966
- "w15:repeatingSectionItem"
337544
+ "w15:repeatingSectionItem",
337545
+ ...UNMODELED_TYPE_TAGS
336967
337546
  ];
336968
337547
  RAW_ATTRIBUTE_PATTERN = /(?:^|[ \t\r\n]+)([\w.-]+:[\w.-]+|[\w.-]+)[ \t\r\n]*=[ \t\r\n]*(["'])([\s\S]*?)\2/g;
336969
337548
  COPIED_PROPERTY_REVISIONS = new Set([
@@ -379632,7 +380211,7 @@ function readParagraphMatchNode(input) {
379632
380211
  };
379633
380212
  return {
379634
380213
  address: address3,
379635
- node: buildParagraphNode(paragraph4),
380214
+ node: buildParagraphNode(paragraph4, input.matchedText),
379636
380215
  byteRange: [paragraph4.byteStart, paragraph4.byteEnd]
379637
380216
  };
379638
380217
  }
@@ -379778,8 +380357,8 @@ function collectTableCellNodes(context, resolved, story) {
379778
380357
  }
379779
380358
  return items;
379780
380359
  }
379781
- function buildParagraphNode(paragraph4) {
379782
- const inlines = paragraph4.text.length > 0 ? [{ kind: "run", run: { text: paragraph4.text } }] : [];
380360
+ function buildParagraphNode(paragraph4, text4 = paragraph4.text) {
380361
+ const inlines = text4.length > 0 ? [{ kind: "run", run: { text: text4 } }] : [];
379783
380362
  if (paragraph4.headingLevel > 0) {
379784
380363
  return {
379785
380364
  id: paragraph4.blockId,
@@ -382780,11 +383359,11 @@ class V2FindAdapter {
382780
383359
  total: page.total,
382781
383360
  limit,
382782
383361
  offset,
382783
- items: page.hits.map(({ scope, hit, packageRevision, partRevision, storyRevision, coordinateSpace, paragraphText: paragraphText3 }) => buildSDNodeResult(this.context, scope, hit, packageRevision, partRevision, storyRevision, coordinateSpace, paragraphText3))
383362
+ items: page.hits.map(({ scope, hit, packageRevision, partRevision, storyRevision, coordinateSpace }) => buildSDNodeResult(this.context, scope, hit, packageRevision, partRevision, storyRevision, coordinateSpace))
382784
383363
  };
382785
383364
  }
382786
383365
  }
382787
- function buildSDNodeResult(context, scope, hit, rev2, partRev, storyRev, coordinateSpace, paragraphText3) {
383366
+ function buildSDNodeResult(context, scope, hit, rev2, partRev, storyRev, coordinateSpace) {
382788
383367
  const story = projectScopeToStoryLocator(scope);
382789
383368
  const descriptor = storySurfaceFromSearchScope(scope);
382790
383369
  const ref5 = encodeV2SearchRef({
@@ -382808,7 +383387,8 @@ function buildSDNodeResult(context, scope, hit, rev2, partRev, storyRev, coordin
382808
383387
  context,
382809
383388
  storyId: descriptor.storyId,
382810
383389
  blockId: hit.blockId,
382811
- story: story.storyType !== "body" ? story : undefined
383390
+ story: story.storyType !== "body" ? story : undefined,
383391
+ matchedText: hit.matchText
382812
383392
  });
382813
383393
  return {
382814
383394
  address: paragraphNode?.address ?? {
@@ -382817,21 +383397,14 @@ function buildSDNodeResult(context, scope, hit, rev2, partRev, storyRev, coordin
382817
383397
  nodeId: hit.blockId,
382818
383398
  ...story.storyType !== "body" ? { story } : {}
382819
383399
  },
382820
- node: coordinateSpace === "tracked" ? buildTextOnlyNode(paragraphText3 ?? hit.matchText, paragraphNode?.node) : paragraphNode?.node ?? buildTextOnlyNode(hit.matchText),
383400
+ node: paragraphNode?.node ?? buildTextOnlyNode(hit.matchText),
382821
383401
  context: {
382822
383402
  ancestors: [{ id: ref5, kind: "v2-search-ref" }]
382823
383403
  }
382824
383404
  };
382825
383405
  }
382826
- function buildTextOnlyNode(text4, source) {
382827
- const inlines = [{ kind: "run", run: { text: text4 } }];
382828
- if (source?.kind === "heading") {
382829
- return { ...source, heading: { ...source.heading, inlines } };
382830
- }
382831
- if (source?.kind === "paragraph") {
382832
- return { ...source, paragraph: { ...source.paragraph, inlines } };
382833
- }
382834
- return { kind: "paragraph", paragraph: { inlines } };
383406
+ function buildTextOnlyNode(text4) {
383407
+ return { kind: "paragraph", paragraph: { inlines: [{ kind: "run", run: { text: text4 } }] } };
382835
383408
  }
382836
383409
  function clampLimit2(limit) {
382837
383410
  if (limit == null)
@@ -389138,7 +389711,7 @@ function serializeSelectionRange(context, target, includeHtml, options) {
389138
389711
  const listLevel = numbering ? Number.parseInt(numbering.ilvl, 10) : undefined;
389139
389712
  const blockSdts = blockSdtPath.map((ordinal) => {
389140
389713
  const wrapper = blockSdtWrappers.get(ordinal);
389141
- if (!wrapper || !fullyCovered || !wrapper.supported || index2.entries.some((candidate2) => boundaryMap.byBlockId(candidate2.blockId)?.blockSdtPath.includes(ordinal) && ((boundaryMap.byBlockId(candidate2.blockId)?.tableCellPath.length ?? 0) > 1 || candidate2.ordinal < startEntry.ordinal || candidate2.ordinal > endEntry.ordinal || candidate2.ordinal === startEntry.ordinal && startPoint.offset !== 0 || candidate2.ordinal === endEntry.ordinal && endPoint.offset !== parseParagraphInlineMap(SERIALIZE_TD.decode(bytes.subarray(endEntry.byteStart, endEntry.byteEnd))).visibleLength)))
389714
+ if (!wrapper || !fullyCovered || !wrapper.supported || index2.entries.some((candidate2) => boundaryMap.byBlockId(candidate2.blockId)?.blockSdtPath.includes(ordinal) && ((boundaryMap.byBlockId(candidate2.blockId)?.tableCellPath.length ?? 0) > 1 || candidate2.ordinal < startEntry.ordinal || candidate2.ordinal > endEntry.ordinal || candidate2.ordinal === startEntry.ordinal && startPoint.offset !== 0 || candidate2.ordinal === endEntry.ordinal && endPoint.offset !== (options?.offsetSpace === "selection" ? paragraphPaintedLength(SERIALIZE_TD.decode(bytes.subarray(endEntry.byteStart, endEntry.byteEnd))) : parseParagraphInlineMap(SERIALIZE_TD.decode(bytes.subarray(endEntry.byteStart, endEntry.byteEnd))).visibleLength))))
389142
389715
  return null;
389143
389716
  return wrapper.properties;
389144
389717
  });
@@ -389182,10 +389755,22 @@ function serializeSelectionRange(context, target, includeHtml, options) {
389182
389755
  const anySoftBreak = blocks.some((block) => block.softBreaks);
389183
389756
  const items = [{ type: "text/plain", kind: "string", data: plainText }];
389184
389757
  if (includeHtml) {
389758
+ const assets = new Map([...rich.assetsByPartUri.values()].map(({ wire }) => [wire.id, wire]));
389759
+ let expandedImageBytes = 0;
389760
+ const admitPart = (part) => {
389761
+ if (part.kind === "image") {
389762
+ expandedImageBytes += (assets.get(part.image.assetId)?.data.length ?? 0) + 4096;
389763
+ return expandedImageBytes <= MAX_V22_PAYLOAD_BYTES2;
389764
+ }
389765
+ return part.kind !== "sdt" && part.kind !== "hyperlink" || part.parts.every(admitPart);
389766
+ };
389767
+ const admitted = grouped.every((entry) => entry.kind === "paragraph" ? entry.block.parts.every(admitPart) : entry.rows.every((row) => row.cells.every((cell) => cell.blocks.every((block) => block.parts.every(admitPart)))));
389768
+ if (!admitted)
389769
+ return { ok: false, code: "INVALID_PAYLOAD", message: "clipboard-html-image-payload-too-large" };
389185
389770
  items.push({
389186
389771
  type: "text/html",
389187
389772
  kind: "string",
389188
- data: buildHtmlFlavor(grouped)
389773
+ data: buildHtmlFlavor(grouped, assets)
389189
389774
  });
389190
389775
  }
389191
389776
  let plan;
@@ -390302,23 +390887,32 @@ function buildPlainFlavor(grouped) {
390302
390887
  }).join(`
390303
390888
  `);
390304
390889
  }
390305
- function blockInlineHtml(block) {
390306
- return block.parts.map(renderHtmlPart).join("");
390890
+ function paragraphPaintedLength(xml) {
390891
+ const map3 = parseParagraphInlineMap(xml);
390892
+ return map3.visibleLength + map3.leaves().filter(isVisibleZeroWidthObjectPiece).length;
390307
390893
  }
390308
- function renderHtmlPart(part) {
390894
+ function blockInlineHtml(block, assets) {
390895
+ return block.parts.map((part) => renderHtmlPart(part, assets)).join("");
390896
+ }
390897
+ function renderHtmlPart(part, assets) {
390309
390898
  if (part.kind === "break")
390310
390899
  return "<br/>";
390311
390900
  if (part.kind === "run")
390312
390901
  return renderHtmlRun(part.run);
390313
- if (part.kind === "image")
390314
- return "";
390902
+ if (part.kind === "image") {
390903
+ const asset = assets.get(part.image.assetId);
390904
+ if (!asset)
390905
+ return "";
390906
+ const { widthPx, heightPx, alt, title: title2 } = part.image;
390907
+ return `<img src="data:${asset.mimeType};base64,${asset.data}" width="${widthPx}" height="${heightPx}"` + (alt ? ` alt="${escapeHtmlAttribute3(alt)}"` : "") + (title2 ? ` title="${escapeHtmlAttribute3(title2)}"` : "") + "/>";
390908
+ }
390315
390909
  if (part.kind === "sdt")
390316
- return part.parts.map(renderHtmlPart).join("");
390910
+ return part.parts.map((child) => renderHtmlPart(child, assets)).join("");
390317
390911
  const href = part.target.kind === "external" ? part.target.url : `#${part.target.anchor}`;
390318
390912
  const title = part.tooltip ? ` title="${escapeHtmlAttribute3(part.tooltip)}"` : "";
390319
- return `<a href="${escapeHtmlAttribute3(href)}"${title}>${part.parts.map(renderHtmlPart).join("")}</a>`;
390913
+ return `<a href="${escapeHtmlAttribute3(href)}"${title}>${part.parts.map((child) => renderHtmlPart(child, assets)).join("")}</a>`;
390320
390914
  }
390321
- function buildHtmlFlavor(grouped) {
390915
+ function buildHtmlFlavor(grouped, assets) {
390322
390916
  const out = [];
390323
390917
  let openList2 = null;
390324
390918
  const closeList = () => {
@@ -390330,11 +390924,11 @@ function buildHtmlFlavor(grouped) {
390330
390924
  for (const entry of grouped) {
390331
390925
  if (entry.kind === "table") {
390332
390926
  closeList();
390333
- out.push(`<table${entry.cellSpacingPt !== undefined ? ` style="border-spacing: ${entry.cellSpacingPt}pt"` : ""}>${entry.rows.map((row) => `<tr>${row.cells.map((cell) => `<td${tableCellHtmlStyle(cell)}>${cell.blocks.map((block2) => block2.headingLevel ? `<h${block2.headingLevel}>${blockInlineHtml(block2)}</h${block2.headingLevel}>` : `<p>${blockInlineHtml(block2)}</p>`).join("")}</td>`).join("")}</tr>`).join("")}</table>`);
390927
+ out.push(`<table${entry.cellSpacingPt !== undefined ? ` style="border-spacing: ${entry.cellSpacingPt}pt"` : ""}>${entry.rows.map((row) => `<tr>${row.cells.map((cell) => `<td${tableCellHtmlStyle(cell)}>${cell.blocks.map((block2) => block2.headingLevel ? `<h${block2.headingLevel}>${blockInlineHtml(block2, assets)}</h${block2.headingLevel}>` : `<p>${blockInlineHtml(block2, assets)}</p>`).join("")}</td>`).join("")}</tr>`).join("")}</table>`);
390334
390928
  continue;
390335
390929
  }
390336
390930
  const block = entry.block;
390337
- const inline = blockInlineHtml(block);
390931
+ const inline = blockInlineHtml(block, assets);
390338
390932
  if (block.listKind) {
390339
390933
  const tag = block.listKind === "bullet" ? "ul" : "ol";
390340
390934
  if (openList2 !== tag) {
@@ -390546,7 +391140,7 @@ class V2ClipboardAdapter {
390546
391140
  });
390547
391141
  if (!serialized2.ok)
390548
391142
  throw new DocumentApiValidationError2(serialized2.code, serialized2.message);
390549
- return serialized2.result;
391143
+ return attachMutationPublicRevision(serialized2.result, this.context.currentPublicRevision());
390550
391144
  }
390551
391145
  if (target.kind === "documentEnd") {
390552
391146
  throw new DocumentApiValidationError2("INVALID_TARGET", "clipboard.serializeSelection does not support documentEnd targets.");
@@ -390576,7 +391170,7 @@ class V2ClipboardAdapter {
390576
391170
  });
390577
391171
  if (!serialized.ok)
390578
391172
  throw new DocumentApiValidationError2(serialized.code, serialized.message);
390579
- return serialized.result;
391173
+ return attachMutationPublicRevision(serialized.result, this.context.currentPublicRevision());
390580
391174
  }
390581
391175
  }
390582
391176
  function pointStoryLocator(target) {
@@ -390995,6 +391589,7 @@ var init_adapter37 = __esm(() => {
390995
391589
  init_note_story();
390996
391590
  init_selection_target();
390997
391591
  init_document_reader();
391592
+ init_mutation_public_revision();
390998
391593
  init_adapter();
390999
391594
  init_stories();
391000
391595
  init_text_range_shifts();
@@ -396780,7 +397375,7 @@ var init_capability_matrix = __esm(() => {
396780
397375
  });
396781
397376
  });
396782
397377
 
396783
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/map.js
397378
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/map.js
396784
397379
  var create = () => new Map, copy = (m) => {
396785
397380
  const r = create();
396786
397381
  m.forEach((v, k) => {
@@ -396802,10 +397397,10 @@ var create = () => new Map, copy = (m) => {
396802
397397
  return false;
396803
397398
  };
396804
397399
 
396805
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/set.js
397400
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/set.js
396806
397401
  var create2 = () => new Set;
396807
397402
 
396808
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/array.js
397403
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/array.js
396809
397404
  var last = (arr) => arr[arr.length - 1], appendTo = (dest, src) => {
396810
397405
  for (let i2 = 0;i2 < src.length; i2++) {
396811
397406
  dest.push(src[i2]);
@@ -396823,7 +397418,7 @@ var init_array2 = __esm(() => {
396823
397418
  isArray = Array.isArray;
396824
397419
  });
396825
397420
 
396826
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/observable.js
397421
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/observable.js
396827
397422
  class ObservableV2 {
396828
397423
  constructor() {
396829
397424
  this._observers = create();
@@ -396890,7 +397485,7 @@ var init_observable = __esm(() => {
396890
397485
  init_array2();
396891
397486
  });
396892
397487
 
396893
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/math.js
397488
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/math.js
396894
397489
  var floor, abs, min = (a, b) => a < b ? a : b, max2 = (a, b) => a > b ? a : b, pow, isNegativeZero = (n) => n !== 0 ? n < 0 : 1 / n < 0;
396895
397490
  var init_math = __esm(() => {
396896
397491
  floor = Math.floor;
@@ -396898,7 +397493,7 @@ var init_math = __esm(() => {
396898
397493
  pow = Math.pow;
396899
397494
  });
396900
397495
 
396901
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/binary.js
397496
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/binary.js
396902
397497
  var BIT1 = 1, BIT2 = 2, BIT3 = 4, BIT4 = 8, BIT6 = 32, BIT7 = 64, BIT8 = 128, BIT18, BIT19, BIT20, BIT21, BIT22, BIT23, BIT24, BIT25, BIT26, BIT27, BIT28, BIT29, BIT30, BIT31, BIT32, BITS5 = 31, BITS6 = 63, BITS7 = 127, BITS17, BITS18, BITS19, BITS20, BITS21, BITS22, BITS23, BITS24, BITS25, BITS26, BITS27, BITS28, BITS29, BITS30, BITS31 = 2147483647;
396903
397498
  var init_binary = __esm(() => {
396904
397499
  BIT18 = 1 << 17;
@@ -396932,7 +397527,7 @@ var init_binary = __esm(() => {
396932
397527
  BITS30 = BIT31 - 1;
396933
397528
  });
396934
397529
 
396935
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/number.js
397530
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/number.js
396936
397531
  var MAX_SAFE_INTEGER, MIN_SAFE_INTEGER, LOWEST_INT32, isInteger2;
396937
397532
  var init_number2 = __esm(() => {
396938
397533
  init_math();
@@ -396942,7 +397537,7 @@ var init_number2 = __esm(() => {
396942
397537
  isInteger2 = Number.isInteger || ((num) => typeof num === "number" && isFinite(num) && floor(num) === num);
396943
397538
  });
396944
397539
 
396945
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/string.js
397540
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/string.js
396946
397541
  var fromCharCode, fromCodePoint, MAX_UTF16_CHARACTER, toLowerCase = (s) => s.toLowerCase(), trimLeftRegex, trimLeft = (s) => s.replace(trimLeftRegex, ""), fromCamelCaseRegex, fromCamelCase = (s, separator) => trimLeft(s.replace(fromCamelCaseRegex, (match) => `${separator}${toLowerCase(match)}`)), _encodeUtf8Polyfill = (str) => {
396947
397542
  const encodedString = unescape(encodeURIComponent(str));
396948
397543
  const len = encodedString.length;
@@ -396966,7 +397561,7 @@ var init_string2 = __esm(() => {
396966
397561
  }
396967
397562
  });
396968
397563
 
396969
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/encoding.js
397564
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/encoding.js
396970
397565
  class Encoder {
396971
397566
  constructor() {
396972
397567
  this.cpos = 0;
@@ -397232,14 +397827,14 @@ var init_encoding = __esm(() => {
397232
397827
  };
397233
397828
  });
397234
397829
 
397235
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/error.js
397830
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/error.js
397236
397831
  var create3 = (s) => new Error(s), methodUnimplemented = () => {
397237
397832
  throw create3("Method unimplemented");
397238
397833
  }, unexpectedCase = () => {
397239
397834
  throw create3("Unexpected case");
397240
397835
  };
397241
397836
 
397242
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/decoding.js
397837
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/decoding.js
397243
397838
  class Decoder {
397244
397839
  constructor(uint8Array) {
397245
397840
  this.arr = uint8Array;
@@ -397430,7 +398025,7 @@ var init_decoding = __esm(() => {
397430
398025
  };
397431
398026
  });
397432
398027
 
397433
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/webcrypto.node.js
398028
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/webcrypto.node.js
397434
398029
  import { webcrypto } from "node:crypto";
397435
398030
  var subtle, getRandomValues;
397436
398031
  var init_webcrypto_node = __esm(() => {
@@ -397438,29 +398033,29 @@ var init_webcrypto_node = __esm(() => {
397438
398033
  getRandomValues = webcrypto.getRandomValues.bind(webcrypto);
397439
398034
  });
397440
398035
 
397441
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/random.js
398036
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/random.js
397442
398037
  var uint322 = () => getRandomValues(new Uint32Array(1))[0], uuidv4Template, uuidv42 = () => uuidv4Template.replace(/[018]/g, (c) => (c ^ uint322() & 15 >> c / 4).toString(16));
397443
398038
  var init_random = __esm(() => {
397444
398039
  init_webcrypto_node();
397445
398040
  uuidv4Template = [1e7] + -1000 + -4000 + -8000 + -100000000000;
397446
398041
  });
397447
398042
 
397448
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/time.js
398043
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/time.js
397449
398044
  var getUnixTime;
397450
398045
  var init_time = __esm(() => {
397451
398046
  getUnixTime = Date.now;
397452
398047
  });
397453
398048
 
397454
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/promise.js
398049
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/promise.js
397455
398050
  var create4 = (f) => new Promise(f), all2;
397456
398051
  var init_promise2 = __esm(() => {
397457
398052
  all2 = Promise.all.bind(Promise);
397458
398053
  });
397459
398054
 
397460
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/conditions.js
398055
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/conditions.js
397461
398056
  var undefinedToNull = (v) => v === undefined ? null : v;
397462
398057
 
397463
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/storage.js
398058
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/storage.js
397464
398059
  class VarStoragePolyfill {
397465
398060
  constructor() {
397466
398061
  this.map = new Map;
@@ -397484,13 +398079,13 @@ var init_storage = __esm(() => {
397484
398079
  varStorage = _localStorage;
397485
398080
  });
397486
398081
 
397487
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/trait/equality.js
398082
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/trait/equality.js
397488
398083
  var EqualityTraitSymbol, equals = (a, b) => a === b || !!a?.[EqualityTraitSymbol]?.(b) || false;
397489
398084
  var init_equality = __esm(() => {
397490
398085
  EqualityTraitSymbol = Symbol("Equality");
397491
398086
  });
397492
398087
 
397493
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/object.js
398088
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/object.js
397494
398089
  var assign, keys, forEach = (obj, f) => {
397495
398090
  for (const key2 in obj) {
397496
398091
  f(obj[key2], key2);
@@ -397529,7 +398124,7 @@ var init_object2 = __esm(() => {
397529
398124
  freeze = Object.freeze;
397530
398125
  });
397531
398126
 
397532
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/function.js
398127
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/function.js
397533
398128
  var callAll = (fs, args, i2 = 0) => {
397534
398129
  try {
397535
398130
  for (;i2 < fs.length; i2++) {
@@ -397618,7 +398213,7 @@ var init_function = __esm(() => {
397618
398213
  init_equality();
397619
398214
  });
397620
398215
 
397621
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/environment.js
398216
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/environment.js
397622
398217
  var isNode, isBrowser, isMac, params, args, computeParams = () => {
397623
398218
  if (params === undefined) {
397624
398219
  if (isNode) {
@@ -397672,7 +398267,7 @@ var init_environment = __esm(() => {
397672
398267
  supportsColor = forceColor || !hasParam2("--no-colors") && !hasConf("no-color") && (!isNode || process.stdout.isTTY) && (!isNode || hasParam2("--color") || getVariable("COLORTERM") !== null || (getVariable("TERM") || "").includes("color"));
397673
398268
  });
397674
398269
 
397675
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/buffer.js
398270
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/buffer.js
397676
398271
  var createUint8ArrayFromLen = (len) => new Uint8Array(len), createUint8ArrayViewFromArrayBuffer = (buffer, byteOffset, length2) => new Uint8Array(buffer, byteOffset, length2), createUint8ArrayFromArrayBuffer = (buffer) => new Uint8Array(buffer), toBase64Browser = (bytes) => {
397677
398272
  let s = "";
397678
398273
  for (let i2 = 0;i2 < bytes.byteLength; i2++) {
@@ -397701,13 +398296,13 @@ var init_buffer = __esm(() => {
397701
398296
  fromBase64 = isBrowser ? fromBase64Browser : fromBase64Node;
397702
398297
  });
397703
398298
 
397704
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/symbol.js
398299
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/symbol.js
397705
398300
  var create5;
397706
398301
  var init_symbol = __esm(() => {
397707
398302
  create5 = Symbol;
397708
398303
  });
397709
398304
 
397710
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/logging.common.js
398305
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/logging.common.js
397711
398306
  var BOLD, UNBOLD, BLUE, GREY, GREEN, RED, PURPLE, ORANGE, UNCOLOR, computeNoColorLoggingArgs = (args2) => {
397712
398307
  if (args2.length === 1 && args2[0]?.constructor === Function) {
397713
398308
  args2 = args2[0]();
@@ -397751,7 +398346,7 @@ var init_logging_common = __esm(() => {
397751
398346
  lastLoggingTime = getUnixTime();
397752
398347
  });
397753
398348
 
397754
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/logging.node.js
398349
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/logging.node.js
397755
398350
  var _nodeStyleMap, computeNodeLoggingArgs = (args2) => {
397756
398351
  if (args2.length === 1 && args2[0]?.constructor === Function) {
397757
398352
  args2 = args2[0]();
@@ -397808,7 +398403,7 @@ var init_logging_node = __esm(() => {
397808
398403
  computeLoggingArgs = supportsColor ? computeNodeLoggingArgs : computeNoColorLoggingArgs;
397809
398404
  });
397810
398405
 
397811
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/iterator.js
398406
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/iterator.js
397812
398407
  var createIterator = (next) => ({
397813
398408
  [Symbol.iterator]() {
397814
398409
  return this;
@@ -397825,7 +398420,7 @@ var createIterator = (next) => ({
397825
398420
  return { done, value: done ? undefined : fmap(value2) };
397826
398421
  });
397827
398422
 
397828
- // ../../../v2/node_modules/.pnpm/yjs@13.6.31/node_modules/yjs/dist/yjs.mjs
398423
+ // ../../node_modules/.pnpm/yjs@13.6.31/node_modules/yjs/dist/yjs.mjs
397829
398424
  class DeleteItem {
397830
398425
  constructor(clock, len) {
397831
398426
  this.clock = clock;
@@ -402568,7 +403163,7 @@ var init_yjs = __esm(() => {
402568
403163
  glo[importIdentifier] = true;
402569
403164
  });
402570
403165
 
402571
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/broadcastchannel.js
403166
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/broadcastchannel.js
402572
403167
  class LocalStoragePolyfill {
402573
403168
  constructor(room) {
402574
403169
  this.room = room;
@@ -402614,7 +403209,7 @@ var init_broadcastchannel = __esm(() => {
402614
403209
  BC = typeof BroadcastChannel === "undefined" ? LocalStoragePolyfill : BroadcastChannel;
402615
403210
  });
402616
403211
 
402617
- // ../../../v2/node_modules/.pnpm/y-protocols@1.0.7_yjs@13.6.31/node_modules/y-protocols/sync.js
403212
+ // ../../node_modules/.pnpm/y-protocols@1.0.7_yjs@13.6.31/node_modules/y-protocols/sync.js
402618
403213
  var messageYjsSyncStep1 = 0, messageYjsSyncStep2 = 1, messageYjsUpdate = 2, writeSyncStep1 = (encoder2, doc2) => {
402619
403214
  writeVarUint(encoder2, messageYjsSyncStep1);
402620
403215
  const sv = encodeStateVector(doc2);
@@ -402657,7 +403252,7 @@ var init_sync = __esm(() => {
402657
403252
  readUpdate = readSyncStep2;
402658
403253
  });
402659
403254
 
402660
- // ../../../v2/node_modules/.pnpm/y-protocols@1.0.7_yjs@13.6.31/node_modules/y-protocols/auth.js
403255
+ // ../../node_modules/.pnpm/y-protocols@1.0.7_yjs@13.6.31/node_modules/y-protocols/auth.js
402661
403256
  var messagePermissionDenied = 0, readAuthMessage = (decoder9, y, permissionDeniedHandler) => {
402662
403257
  switch (readVarUint(decoder9)) {
402663
403258
  case messagePermissionDenied:
@@ -402668,7 +403263,7 @@ var init_auth = __esm(() => {
402668
403263
  init_decoding();
402669
403264
  });
402670
403265
 
402671
- // ../../../v2/node_modules/.pnpm/y-protocols@1.0.7_yjs@13.6.31/node_modules/y-protocols/awareness.js
403266
+ // ../../node_modules/.pnpm/y-protocols@1.0.7_yjs@13.6.31/node_modules/y-protocols/awareness.js
402672
403267
  var outdatedTimeout = 30000, Awareness, removeAwarenessStates = (awareness, clients, origin) => {
402673
403268
  const removed = [];
402674
403269
  for (let i2 = 0;i2 < clients.length; i2++) {
@@ -402851,13 +403446,13 @@ var init_awareness = __esm(() => {
402851
403446
  };
402852
403447
  });
402853
403448
 
402854
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/url.js
403449
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/url.js
402855
403450
  var encodeQueryParams = (params2) => map3(params2, (val, key2) => `${encodeURIComponent(key2)}=${encodeURIComponent(val)}`).join("&");
402856
403451
  var init_url = __esm(() => {
402857
403452
  init_object2();
402858
403453
  });
402859
403454
 
402860
- // ../../../v2/node_modules/.pnpm/y-websocket@3.0.0_yjs@13.6.31/node_modules/y-websocket/src/y-websocket.js
403455
+ // ../../node_modules/.pnpm/y-websocket@3.0.0_yjs@13.6.31/node_modules/y-websocket/src/y-websocket.js
402861
403456
  var messageSync = 0, messageQueryAwareness = 3, messageAwareness = 1, messageAuth = 2, messageHandlers, messageReconnectTimeout = 30000, permissionDeniedHandler = (provider, reason) => console.warn(`Permission denied to access ${provider.url}.
402862
403457
  ${reason}`), readMessage = (provider, buf, emitSynced) => {
402863
403458
  const decoder9 = createDecoder(buf);
@@ -403650,7 +404245,7 @@ var init_y_websocket_single_doc = __esm(() => {
403650
404245
  init_runtime4();
403651
404246
  });
403652
404247
 
403653
- // ../../../v2/node_modules/.pnpm/@hocuspocus+common@2.15.3/node_modules/@hocuspocus/common/dist/hocuspocus-common.esm.js
404248
+ // ../../node_modules/.pnpm/@hocuspocus+common@2.15.3/node_modules/@hocuspocus/common/dist/hocuspocus-common.esm.js
403654
404249
  var floor2, min2 = (a, b) => a < b ? a : b, max3 = (a, b) => a > b ? a : b, BIT82 = 128, BITS72 = 127, MAX_SAFE_INTEGER2, _encodeUtf8Polyfill2 = (str) => {
403655
404250
  const encodedString = unescape(encodeURIComponent(str));
403656
404251
  const len = encodedString.length;
@@ -403809,7 +404404,7 @@ var init_hocuspocus_common_esm = __esm(() => {
403809
404404
  })(WsReadyStates || (WsReadyStates = {}));
403810
404405
  });
403811
404406
 
403812
- // ../../../v2/node_modules/.pnpm/@lifeomic+attempt@3.1.0/node_modules/@lifeomic/attempt/dist/src/index.js
404407
+ // ../../node_modules/.pnpm/@lifeomic+attempt@3.1.0/node_modules/@lifeomic/attempt/dist/src/index.js
403813
404408
  var require_src2 = __commonJS((exports) => {
403814
404409
  Object.defineProperty(exports, "__esModule", { value: true });
403815
404410
  exports.retry = exports.defaultCalculateDelay = exports.sleep = undefined;
@@ -403954,7 +404549,7 @@ var require_src2 = __commonJS((exports) => {
403954
404549
  exports.retry = retry;
403955
404550
  });
403956
404551
 
403957
- // ../../../v2/node_modules/.pnpm/@hocuspocus+provider@2.15.3_y-protocols@1.0.7_yjs@13.6.31__yjs@13.6.31/node_modules/@hocuspocus/provider/dist/hocuspocus-provider.esm.js
404552
+ // ../../node_modules/.pnpm/@hocuspocus+provider@2.15.3_y-protocols@1.0.7_yjs@13.6.31__yjs@13.6.31/node_modules/@hocuspocus/provider/dist/hocuspocus-provider.esm.js
403958
404553
  class VarStoragePolyfill2 {
403959
404554
  constructor() {
403960
404555
  this.map = new Map;
@@ -405704,7 +406299,7 @@ var init_hocuspocus_single_doc = __esm(() => {
405704
406299
  init_runtime4();
405705
406300
  });
405706
406301
 
405707
- // ../../../v2/node_modules/.pnpm/@liveblocks+core@3.15.5_@types+json-schema@7.0.15/node_modules/@liveblocks/core/dist/index.js
406302
+ // ../../node_modules/.pnpm/@liveblocks+core@3.15.5_@types+json-schema@7.0.15/node_modules/@liveblocks/core/dist/index.js
405708
406303
  function error48(msg) {
405709
406304
  if (false) {} else {
405710
406305
  throw new Error(msg);
@@ -414676,7 +415271,7 @@ var init_dist6 = __esm(() => {
414676
415271
  detectDupes(PKG_NAME, PKG_VERSION, PKG_FORMAT);
414677
415272
  });
414678
415273
 
414679
- // ../../../v2/node_modules/.pnpm/@liveblocks+client@3.15.5_@types+json-schema@7.0.15/node_modules/@liveblocks/client/dist/index.js
415274
+ // ../../node_modules/.pnpm/@liveblocks+client@3.15.5_@types+json-schema@7.0.15/node_modules/@liveblocks/client/dist/index.js
414680
415275
  var PKG_NAME2 = "@liveblocks/client", PKG_VERSION2 = "3.15.5", PKG_FORMAT2 = "esm";
414681
415276
  var init_dist7 = __esm(() => {
414682
415277
  init_dist6();
@@ -414684,7 +415279,7 @@ var init_dist7 = __esm(() => {
414684
415279
  detectDupes(PKG_NAME2, PKG_VERSION2, PKG_FORMAT2);
414685
415280
  });
414686
415281
 
414687
- // ../../../v2/node_modules/.pnpm/js-base64@3.7.8/node_modules/js-base64/base64.mjs
415282
+ // ../../node_modules/.pnpm/js-base64@3.7.8/node_modules/js-base64/base64.mjs
414688
415283
  var version2 = "3.7.8", VERSION2, _hasBuffer, _TD, _TE, b64ch = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", b64chs, b64tab, b64re, _fromCC, _U8Afrom, _mkUriSafe = (src) => src.replace(/=/g, "").replace(/[+\/]/g, (m0) => m0 == "+" ? "-" : "_"), _tidyB64 = (s) => s.replace(/[^A-Za-z0-9\+\/]/g, ""), btoaPolyfill = (bin) => {
414689
415284
  let u32, c0, c1, c2, asc = "";
414690
415285
  const pad = bin.length % 3;
@@ -414828,7 +415423,7 @@ var init_base64 = __esm(() => {
414828
415423
  };
414829
415424
  });
414830
415425
 
414831
- // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/indexeddb.js
415426
+ // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/indexeddb.js
414832
415427
  var rtop = (request) => create4((resolve, reject2) => {
414833
415428
  request.onerror = (event) => reject2(new Error(event.target.error));
414834
415429
  request.onsuccess = (event) => resolve(event.target.result);
@@ -414866,7 +415461,7 @@ var init_indexeddb = __esm(() => {
414866
415461
  init_promise2();
414867
415462
  });
414868
415463
 
414869
- // ../../../v2/node_modules/.pnpm/y-indexeddb@9.0.12_yjs@13.6.31/node_modules/y-indexeddb/src/y-indexeddb.js
415464
+ // ../../node_modules/.pnpm/y-indexeddb@9.0.12_yjs@13.6.31/node_modules/y-indexeddb/src/y-indexeddb.js
414870
415465
  var customStoreName = "custom", updatesStoreName = "updates", PREFERRED_TRIM_SIZE = 500, fetchUpdates = (idbPersistence, beforeApplyUpdatesCallback = () => {}, afterApplyUpdatesCallback = () => {}) => {
414871
415466
  const [updatesStore] = transact2(idbPersistence.db, [updatesStoreName]);
414872
415467
  return getAll(updatesStore, createIDBKeyRangeLowerBound(idbPersistence._dbref, false)).then((updates) => {
@@ -414978,7 +415573,7 @@ var init_y_indexeddb = __esm(() => {
414978
415573
  };
414979
415574
  });
414980
415575
 
414981
- // ../../../v2/node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/utils.js
415576
+ // ../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/utils.js
414982
415577
  function isBytes(a) {
414983
415578
  return a instanceof Uint8Array || ArrayBuffer.isView(a) && a.constructor.name === "Uint8Array";
414984
415579
  }
@@ -415038,7 +415633,7 @@ var init_utils = __esm(() => {
415038
415633
  /*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
415039
415634
  });
415040
415635
 
415041
- // ../../../v2/node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/_md.js
415636
+ // ../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/_md.js
415042
415637
  function setBigUint64(view, byteOffset, value2, isLE) {
415043
415638
  if (typeof view.setBigUint64 === "function")
415044
415639
  return view.setBigUint64(byteOffset, value2, isLE);
@@ -415162,7 +415757,7 @@ var init__md = __esm(() => {
415162
415757
  ]);
415163
415758
  });
415164
415759
 
415165
- // ../../../v2/node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/sha2.js
415760
+ // ../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/sha2.js
415166
415761
  var SHA256_K, SHA256_W, SHA256, sha256;
415167
415762
  var init_sha2 = __esm(() => {
415168
415763
  init__md();
@@ -415306,7 +415901,7 @@ var init_sha2 = __esm(() => {
415306
415901
  sha256 = /* @__PURE__ */ createHasher(() => new SHA256);
415307
415902
  });
415308
415903
 
415309
- // ../../../v2/node_modules/.pnpm/@liveblocks+yjs@3.15.5_@types+json-schema@7.0.15_yjs@13.6.31/node_modules/@liveblocks/yjs/dist/index.js
415904
+ // ../../node_modules/.pnpm/@liveblocks+yjs@3.15.5_@types+json-schema@7.0.15_yjs@13.6.31/node_modules/@liveblocks/yjs/dist/index.js
415310
415905
  var PKG_NAME3 = "@liveblocks/yjs", PKG_VERSION3 = "3.15.5", PKG_FORMAT3 = "esm", create9 = () => /* @__PURE__ */ new Map, setIfUndefined3 = (map5, key2, createT) => {
415311
415906
  let set3 = map5.get(key2);
415312
415907
  if (set3 === undefined) {
@@ -429640,7 +430235,6 @@ function materializeProjection(input) {
429640
430235
  previousByPartUri.set(story.partUri, story);
429641
430236
  }
429642
430237
  }
429643
- const blockOnlyByShard = new Map;
429644
430238
  const dirtyStoryShardIds = new Set;
429645
430239
  const explicitDirtyStoryShardIds = new Set;
429646
430240
  const dirtyStoryBlocks = new Map;
@@ -429682,16 +430276,8 @@ function materializeProjection(input) {
429682
430276
  const set3 = dirtyStoryBlocks.get(record4.shardId) ?? new Set;
429683
430277
  set3.add(record4.blockId);
429684
430278
  dirtyStoryBlocks.set(record4.shardId, set3);
429685
- if (record4.kind === PROJECTION_DIRTY_KIND.storyText) {
429686
- const blockSet = blockOnlyByShard.get(record4.shardId) ?? new Set;
429687
- blockSet.add(record4.blockId);
429688
- blockOnlyByShard.set(record4.shardId, blockSet);
429689
- } else {
429690
- blockOnlyByShard.delete(record4.shardId);
429691
- }
429692
430279
  } else {
429693
430280
  wholeStoryDirtyShardIds.add(record4.shardId);
429694
- blockOnlyByShard.delete(record4.shardId);
429695
430281
  }
429696
430282
  } else {
429697
430283
  for (const handle of input.shardRegistry.listStories()) {
@@ -429834,7 +430420,8 @@ function materializeProjection(input) {
429834
430420
  blockHints.add(blockId);
429835
430421
  }
429836
430422
  if (blockHints && blockHints.size > 0 && previous3) {
429837
- const currentSnapshot = structuralSnapshot ?? readStorySnapshot(readTarget);
430423
+ const textLocalSnapshot = !structuralSnapshot && tableReplacements.length === 0 ? readTextLocalStorySnapshot({ previous: previous3, target: readTarget, shardId: handle.shardId, dirty: input.dirty }) : null;
430424
+ const currentSnapshot = structuralSnapshot ?? textLocalSnapshot?.snapshot ?? readStorySnapshot(readTarget);
429838
430425
  let placements2;
429839
430426
  const currentBlockIds = currentSnapshot.blocks.map((block) => block.blockId);
429840
430427
  if (wholeStoryDirtyShardIds.has(handle.shardId)) {
@@ -429986,6 +430573,7 @@ function materializeProjection(input) {
429986
430573
  }) ?? blockPatchedStory;
429987
430574
  const projected = replaceProjectedTrailingXml(projectedWithTables, trailingXml, bootstrap);
429988
430575
  stories.push(projected);
430576
+ rememberTextLocalStorySnapshot(projected, readTarget, currentSnapshot, textLocalSnapshot);
429989
430577
  blockDigestIndex(projected.blockDigests);
429990
430578
  storiesRebuilt += 1;
429991
430579
  } else if (tableReplacements.length > 0) {
@@ -430006,6 +430594,7 @@ function materializeProjection(input) {
430006
430594
  storiesRebuilt += 1;
430007
430595
  } else {
430008
430596
  stories.push(previous3);
430597
+ rememberTextLocalStorySnapshot(previous3, readTarget, currentSnapshot, textLocalSnapshot);
430009
430598
  }
430010
430599
  continue;
430011
430600
  }
@@ -430142,6 +430731,55 @@ function materializeProjection(input) {
430142
430731
  };
430143
430732
  return { record: withDigest, storiesRebuilt, fullStoryRebuilds, fullPackageRebuild };
430144
430733
  }
430734
+ function readTextLocalStorySnapshot(input) {
430735
+ const cached2 = TEXT_LOCAL_STORY_SNAPSHOTS.get(input.previous);
430736
+ if (!cached2 || input.previous.tableStructuralOverlays?.length || input.dirty.length === 0)
430737
+ return null;
430738
+ if (input.dirty.some((reason) => reason.kind !== PROJECTION_DIRTY_KIND.storyText || reason.shardId !== input.shardId || !reason.blockId || reason.source === "bootstrap"))
430739
+ return null;
430740
+ const scope = resolveStoryShardScope(input.target);
430741
+ if (scope.blocks !== cached2.blocks || hasContentControlGroups(scope))
430742
+ return null;
430743
+ const entries2 = listOrderedBlocks(scope);
430744
+ if (entries2.length !== cached2.snapshot.blocks.length || entries2.length !== scope.blocks.length)
430745
+ return null;
430746
+ const changed = new Set(input.dirty.map((reason) => reason.blockId));
430747
+ for (const [index2, entry] of entries2.entries()) {
430748
+ if (entry.block !== cached2.carriers[index2] || entry.blockId !== cached2.snapshot.blocks[index2].blockId || entry.block.get(BLOCK_KEY.mergedIntoBlockId))
430749
+ return null;
430750
+ changed.delete(entry.blockId);
430751
+ }
430752
+ if (changed.size > 0)
430753
+ return null;
430754
+ const dirtyIds = new Set(input.dirty.map((reason) => reason.blockId));
430755
+ return {
430756
+ blocks: scope.blocks,
430757
+ carriers: cached2.carriers,
430758
+ snapshot: {
430759
+ meta: readMeta(scope),
430760
+ blocks: entries2.map((entry, index2) => dirtyIds.has(entry.blockId) ? snapshotBlock(entry.block) : cached2.snapshot.blocks[index2])
430761
+ }
430762
+ };
430763
+ }
430764
+ function rememberTextLocalStorySnapshot(story, target, snapshot3, validated) {
430765
+ if (story.tableStructuralOverlays?.length || snapshot3.blocks.some((block) => block.mergedIntoBlockId || block.mergedTailBlockIds.length > 0))
430766
+ return;
430767
+ if (validated && validated.snapshot === snapshot3 && story.blockDigests.length === snapshot3.blocks.length && story.blockDigests.every((entry, index2) => entry.blockId === snapshot3.blocks[index2].blockId)) {
430768
+ TEXT_LOCAL_STORY_SNAPSHOTS.set(story, validated);
430769
+ return;
430770
+ }
430771
+ const scope = resolveStoryShardScope(target);
430772
+ if (hasContentControlGroups(scope))
430773
+ return;
430774
+ const entries2 = listOrderedBlocks(scope);
430775
+ if (entries2.length !== snapshot3.blocks.length || entries2.length !== scope.blocks.length || entries2.length !== story.blockDigests.length || entries2.some((entry, index2) => entry.blockId !== snapshot3.blocks[index2].blockId || entry.blockId !== story.blockDigests[index2].blockId))
430776
+ return;
430777
+ TEXT_LOCAL_STORY_SNAPSHOTS.set(story, {
430778
+ blocks: scope.blocks,
430779
+ carriers: entries2.map((entry) => entry.block),
430780
+ snapshot: snapshot3
430781
+ });
430782
+ }
430145
430783
  function byPartUri(a, b) {
430146
430784
  if (a.partUri < b.partUri)
430147
430785
  return -1;
@@ -433393,7 +434031,7 @@ function canonicalStoryDigestInputs(stories) {
433393
434031
  tableStructuralOverlays: [...story.tableStructuralOverlays ?? []].sort((left, right) => left.tableNodeId < right.tableNodeId ? -1 : left.tableNodeId > right.tableNodeId ? 1 : 0)
433394
434032
  }));
433395
434033
  }
433396
- var WORD_ML_NS2 = 'xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"', WORD_ML_2010_NS = 'xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml"', STORY_ROOT_NS, TEXT_DECODER7, STORY_BLOCK_INDEX_CACHE, SYNTHETIC_PARAGRAPH_BLOCK_ID_PREFIX4 = "__sd:paragraph:", UTF8_ENCODER3, SOURCE_XML_BYTE_ALIGNED_CACHE, XML_EMISSION_CONTEXTS, CONTENT_CONTROL_TOPOLOGIES, PROJECTED_NAMESPACE_CONTEXTS, PARAGRAPH_PROPERTY_ORDER, RUN_PROPERTY_CONTENT_LOCAL_NAMES;
434034
+ var WORD_ML_NS2 = 'xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"', WORD_ML_2010_NS = 'xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml"', STORY_ROOT_NS, TEXT_DECODER7, STORY_BLOCK_INDEX_CACHE, SYNTHETIC_PARAGRAPH_BLOCK_ID_PREFIX4 = "__sd:paragraph:", UTF8_ENCODER3, SOURCE_XML_BYTE_ALIGNED_CACHE, XML_EMISSION_CONTEXTS, CONTENT_CONTROL_TOPOLOGIES, PROJECTED_NAMESPACE_CONTEXTS, TEXT_LOCAL_STORY_SNAPSHOTS, PARAGRAPH_PROPERTY_ORDER, RUN_PROPERTY_CONTENT_LOCAL_NAMES;
433397
434035
  var init_materialize = __esm(() => {
433398
434036
  init_package_part();
433399
434037
  init_anchors();
@@ -433421,6 +434059,7 @@ var init_materialize = __esm(() => {
433421
434059
  XML_EMISSION_CONTEXTS = new WeakMap;
433422
434060
  CONTENT_CONTROL_TOPOLOGIES = new WeakMap;
433423
434061
  PROJECTED_NAMESPACE_CONTEXTS = new WeakMap;
434062
+ TEXT_LOCAL_STORY_SNAPSHOTS = new WeakMap;
433424
434063
  PARAGRAPH_PROPERTY_ORDER = new Map([
433425
434064
  "pStyle",
433426
434065
  "keepNext",