@superdoc/mcp 1.4.0 → 1.4.1-next.1

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 +936 -699
  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";
31333
+ var SDK_VERSION = "2.17.1-next.1";
31334
31334
 
31335
31335
  // ../../packages/sdk/langs/node/src/runtime/embedded-platform.ts
31336
31336
  import { accessSync, chmodSync, constants, existsSync, statSync } from "node:fs";
@@ -122668,7 +122668,7 @@ var init_paragraph_signal_index = __esm(() => {
122668
122668
  RETAINED_PARAGRAPH_SIGNALS = Symbol("retained-paragraph-signals");
122669
122669
  });
122670
122670
 
122671
- // ../../node_modules/.pnpm/xmlchars@2.2.0/node_modules/xmlchars/xml/1.0/ed5.js
122671
+ // ../../../v2/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
- // ../../node_modules/.pnpm/xmlchars@2.2.0/node_modules/xmlchars/xml/1.1/ed2.js
122709
+ // ../../../v2/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
- // ../../node_modules/.pnpm/xmlchars@2.2.0/node_modules/xmlchars/xmlns/1.0/ed3.js
122756
+ // ../../../v2/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
- // ../../node_modules/.pnpm/saxes@6.0.0/node_modules/saxes/saxes.js
122774
+ // ../../../v2/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;
@@ -152134,7 +152134,7 @@ var init_history_text_replay = __esm(() => {
152134
152134
  MAX_HISTORY_OWNER_BYTES = 512 * 1024;
152135
152135
  });
152136
152136
 
152137
- // ../../node_modules/.pnpm/fflate@0.8.2/node_modules/fflate/esm/index.mjs
152137
+ // ../../../v2/node_modules/.pnpm/fflate@0.8.2/node_modules/fflate/esm/index.mjs
152138
152138
  import { createRequire as createRequire3 } from "module";
152139
152139
  function deflateSync(data, opts) {
152140
152140
  return dopt(data, opts || {}, 0, 0);
@@ -168740,6 +168740,30 @@ function createStructuralLookupContext() {
168740
168740
  rememberCachedXmlLookup(directChildrenByXml, xml, ranges);
168741
168741
  return ranges;
168742
168742
  },
168743
+ getDirectChildrenAtRange(xml, start, end) {
168744
+ assertActive();
168745
+ const index = context.getElementRangeIndex(xml);
168746
+ const container = index.entries[firstEntryStartingAtOrAfter(index, start)];
168747
+ if (!container || container.start !== start || container.end !== end)
168748
+ return [];
168749
+ index.directChildrenByParent ?? (index.directChildrenByParent = new Map);
168750
+ const cached2 = index.directChildrenByParent.get(container);
168751
+ if (cached2)
168752
+ return cached2;
168753
+ if (!index.childrenByParent) {
168754
+ index.childrenByParent = new Map;
168755
+ for (const entry of index.entries) {
168756
+ if (!entry.parent)
168757
+ continue;
168758
+ const children = index.childrenByParent.get(entry.parent) ?? [];
168759
+ children.push(entry);
168760
+ index.childrenByParent.set(entry.parent, children);
168761
+ }
168762
+ }
168763
+ const ranges = (index.childrenByParent.get(container) ?? []).map(({ start: start2, end: end2, localName: localName2, namespaceUri }) => ({ start: start2, end: end2, localName: localName2, namespaceUri }));
168764
+ index.directChildrenByParent.set(container, ranges);
168765
+ return ranges;
168766
+ },
168743
168767
  dispose() {
168744
168768
  elementRangeIndexByXml.clear();
168745
168769
  directChildrenByXml.clear();
@@ -170210,8 +170234,8 @@ function uniqueStructuralFragments(fragments) {
170210
170234
  function classifyFullParagraphInsertion(lookupContext, partXml, paragraphStart, paragraphEnd, paragraphXml) {
170211
170235
  const parent = findImmediateParentElementAtPosition(partXml, paragraphStart, lookupContext);
170212
170236
  if (parent) {
170213
- const children = findDirectChildren(partXml.slice(parent.start, parent.end), undefined, lookupContext);
170214
- const paragraphIndex = children.findIndex((child) => parent.start + child.start === paragraphStart && parent.start + child.end === paragraphEnd);
170237
+ const children = lookupContext.getDirectChildrenAtRange(partXml, parent.start, parent.end);
170238
+ const paragraphIndex = children.findIndex((child) => child.start === paragraphStart && child.end === paragraphEnd);
170215
170239
  if (paragraphIndex > 0 && paragraphIndex < children.length - 1 && children[paragraphIndex - 1]?.localName === "tbl" && children[paragraphIndex + 1]?.localName === "tbl")
170216
170240
  return { subtype: "table-split", targetKind: "table" };
170217
170241
  }
@@ -177120,12 +177144,7 @@ function isTableSplitParagraph(lookupContext, fragment3, partXml) {
177120
177144
  const parent = findImmediateParentElementAtPosition(partXml, fragment3.byteStart, lookupContext);
177121
177145
  if (!parent)
177122
177146
  return false;
177123
- const parentXml = partXml.slice(parent.start, parent.end);
177124
- const children = findDirectChildren(parentXml, undefined, lookupContext).map((child) => ({
177125
- ...child,
177126
- start: child.start + parent.start,
177127
- end: child.end + parent.start
177128
- }));
177147
+ const children = lookupContext.getDirectChildrenAtRange(partXml, parent.start, parent.end);
177129
177148
  const wrapperIndex = children.findIndex((child) => child.start === fragment3.byteStart && child.end === fragment3.byteEnd);
177130
177149
  if (wrapperIndex <= 0 || wrapperIndex >= children.length - 1)
177131
177150
  return false;
@@ -177168,12 +177187,7 @@ function isTableSplitTextInsertion(lookupContext, fragment3, partXml) {
177168
177187
  const parent = findImmediateParentElementAtPosition(partXml, paragraph.start, lookupContext);
177169
177188
  if (!parent)
177170
177189
  return false;
177171
- const parentXml = partXml.slice(parent.start, parent.end);
177172
- const children = findDirectChildren(parentXml, undefined, lookupContext).map((child) => ({
177173
- ...child,
177174
- start: child.start + parent.start,
177175
- end: child.end + parent.start
177176
- }));
177190
+ const children = lookupContext.getDirectChildrenAtRange(partXml, parent.start, parent.end);
177177
177191
  const paragraphIndex = children.findIndex((child) => child.localName === "p" && child.start === paragraph.start && child.end === paragraph.end);
177178
177192
  if (paragraphIndex <= 0 || paragraphIndex >= children.length - 1)
177179
177193
  return false;
@@ -207410,8 +207424,50 @@ var init_hyperlink_catalog = __esm(() => {
207410
207424
  STATE_CACHE = new WeakMap;
207411
207425
  });
207412
207426
 
207427
+ // ../../../v2/editor-core/dist/document/transactions/tracked-changes/decision-xml-analysis.js
207428
+ function createDecisionXmlAnalysis() {
207429
+ const owners = new Map;
207430
+ let disposed = false;
207431
+ const read = (partUri, xml, slot) => {
207432
+ if (disposed)
207433
+ throw new Error("Decision XML analysis is disposed.");
207434
+ let owner = owners.get(partUri);
207435
+ if (!owner) {
207436
+ owner = {};
207437
+ owners.set(partUri, owner);
207438
+ }
207439
+ const same = owner[slot];
207440
+ if (same?.xml === xml)
207441
+ return same.elements;
207442
+ const other = owner[slot === "original" ? "current" : "original"];
207443
+ const snapshot2 = other?.xml === xml ? other : { xml, elements: collectXmlElementRanges(xml) };
207444
+ owner[slot] = snapshot2;
207445
+ return snapshot2.elements;
207446
+ };
207447
+ return {
207448
+ original: (partUri, xml) => read(partUri, xml, "original"),
207449
+ current: (partUri, xml) => read(partUri, xml, "current"),
207450
+ dispose() {
207451
+ owners.clear();
207452
+ disposed = true;
207453
+ }
207454
+ };
207455
+ }
207456
+ var init_decision_xml_analysis = __esm(() => {
207457
+ init_xml_sax();
207458
+ });
207459
+
207413
207460
  // ../../../v2/editor-core/dist/document/transactions/image-review-resources.js
207414
207461
  function applyImageReviewResourceCleanup(input) {
207462
+ const xmlAnalysis = input.xmlAnalysis ?? createDecisionXmlAnalysis();
207463
+ try {
207464
+ return applyImageReviewResourceCleanupWithAnalysis(input, xmlAnalysis);
207465
+ } finally {
207466
+ if (!input.xmlAnalysis)
207467
+ xmlAnalysis.dispose();
207468
+ }
207469
+ }
207470
+ function applyImageReviewResourceCleanupWithAnalysis(input, xmlAnalysis) {
207415
207471
  const fail4 = { ok: false, reason: "patch-precondition-failed" };
207416
207472
  const removedMedia = new Set;
207417
207473
  const acceptedMedia = new Set;
@@ -207426,7 +207482,8 @@ function applyImageReviewResourceCleanup(input) {
207426
207482
  const beforeXml = TD47.decode(beforeBytes);
207427
207483
  if (!beforeXml.includes("drawing") || !/<(?:[\w.-]+:)?(?:blip|hlinkClick|hlinkHover)\b/.test(beforeXml))
207428
207484
  continue;
207429
- const before = imageRelationshipUses(beforeXml);
207485
+ const beforeParsed = xmlAnalysis.original(partUri, beforeXml);
207486
+ const before = imageRelationshipUses(beforeParsed);
207430
207487
  if (!before)
207431
207488
  return fail4;
207432
207489
  if (before.length === 0)
@@ -207434,7 +207491,7 @@ function applyImageReviewResourceCleanup(input) {
207434
207491
  let afterXml = currentXml2(input, partUri);
207435
207492
  if (afterXml === null)
207436
207493
  return fail4;
207437
- let afterUses = allRelationshipUses(afterXml);
207494
+ let afterUses = allRelationshipUses(xmlAnalysis.current(partUri, afterXml));
207438
207495
  if (!afterUses)
207439
207496
  return fail4;
207440
207497
  const relsUri = relsPartUriForStory(partUri);
@@ -207448,14 +207505,14 @@ function applyImageReviewResourceCleanup(input) {
207448
207505
  return fail4;
207449
207506
  const byId = new Map(relationships.value.map((relationship) => [relationship.id, relationship]));
207450
207507
  if (input.decision === "accept") {
207451
- const allBeforeUses = allRelationshipUses(beforeXml);
207452
- const beforeRanges = collectXmlElementRanges(beforeXml).ranges;
207508
+ const allBeforeUses = allRelationshipUses(beforeParsed);
207509
+ const beforeInsertions = wordWrapperRanges(beforeParsed.ranges, new Set(["ins"]));
207453
207510
  for (const use of before) {
207454
207511
  const relationship = byId.get(use.id);
207455
207512
  if (!isImageEmbed(use) || !isEmbeddedImage(relationship))
207456
207513
  continue;
207457
207514
  const owners = allBeforeUses.filter((owner) => owner.id === use.id);
207458
- if (!owners.every((owner) => isInsideWordWrapper(owner.range, beforeRanges, new Set(["ins"]))))
207515
+ if (!owners.every((owner) => isInsideRange(owner.range, beforeInsertions)))
207459
207516
  continue;
207460
207517
  const mediaUri = resolveInternalRelationshipTarget(relsUri, relationship.target);
207461
207518
  if (mediaUri)
@@ -207484,7 +207541,7 @@ function applyImageReviewResourceCleanup(input) {
207484
207541
  return fail4;
207485
207542
  relsXml = nextRels;
207486
207543
  afterXml = rewriteUse(afterXml, newUses[0], oldId);
207487
- afterUses = allRelationshipUses(afterXml);
207544
+ afterUses = allRelationshipUses(xmlAnalysis.current(partUri, afterXml));
207488
207545
  if (!afterUses)
207489
207546
  return fail4;
207490
207547
  stageXml2(input, partUri, afterXml);
@@ -207556,11 +207613,11 @@ function applyImageReviewResourceCleanup(input) {
207556
207613
  stageXml2(input, CONTENT_TYPES, contentTypesXml);
207557
207614
  }
207558
207615
  }
207559
- if (acceptedMedia.size > 0 && !promoteAcceptedMediaContentTypes(input, acceptedMedia))
207616
+ if (acceptedMedia.size > 0 && !promoteAcceptedMediaContentTypes(input, acceptedMedia, xmlAnalysis))
207560
207617
  return fail4;
207561
207618
  return { ok: true, drawingsChanged };
207562
207619
  }
207563
- function promoteAcceptedMediaContentTypes(input, candidates) {
207620
+ function promoteAcceptedMediaContentTypes(input, candidates, xmlAnalysis) {
207564
207621
  const owners = new Map;
207565
207622
  const partUris = new Set([...input.state.parts.keys(), ...Object.keys(input.perPart)]);
207566
207623
  for (const uri of partUris) {
@@ -207600,14 +207657,15 @@ function promoteAcceptedMediaContentTypes(input, candidates) {
207600
207657
  const ownerXml = currentXml2(input, owner.partUri);
207601
207658
  if (ownerXml === null)
207602
207659
  return false;
207603
- const uses = allRelationshipUses(ownerXml);
207660
+ const parsed = xmlAnalysis.current(owner.partUri, ownerXml);
207661
+ const uses = allRelationshipUses(parsed);
207604
207662
  if (!uses)
207605
207663
  return false;
207606
207664
  const matching = uses.filter((use) => use.id === owner.id);
207607
207665
  if (matching.length !== 1 || !isImageEmbed(matching[0]))
207608
207666
  continue;
207609
- const ranges = collectXmlElementRanges(ownerXml).ranges;
207610
- if (isInsideWordWrapper(matching[0].range, ranges, new Set(["ins", "del", "moveFrom", "moveTo"])))
207667
+ const wrappers = wordWrapperRanges(parsed.ranges, new Set(["ins", "del", "moveFrom", "moveTo"]));
207668
+ if (isInsideRange(matching[0].range, wrappers))
207611
207669
  continue;
207612
207670
  const extension = mediaUri.slice(mediaUri.lastIndexOf(".") + 1).toLowerCase();
207613
207671
  const existingDefault = registry2.defaults.get(extension);
@@ -207629,8 +207687,11 @@ function promoteAcceptedMediaContentTypes(input, candidates) {
207629
207687
  function isImageEmbed(use) {
207630
207688
  return DRAWING_NAMESPACES.has(use.range.tag.namespaceUri) && use.range.tag.localName === "blip" && use.attributeName.split(":").at(-1) === "embed";
207631
207689
  }
207632
- function isInsideWordWrapper(range, ranges, names) {
207633
- return ranges.some((owner) => WORD_NAMESPACES.has(owner.tag.namespaceUri) && names.has(owner.tag.localName) && owner.start <= range.start && owner.end >= range.end);
207690
+ function wordWrapperRanges(ranges, names) {
207691
+ return ranges.filter((owner) => WORD_NAMESPACES.has(owner.tag.namespaceUri) && names.has(owner.tag.localName));
207692
+ }
207693
+ function isInsideRange(range, owners) {
207694
+ return owners.some((owner) => owner.start <= range.start && owner.end >= range.end);
207634
207695
  }
207635
207696
  function isImageOrHyperlink(type) {
207636
207697
  return [...RELATIONSHIP_NAMESPACES].some((namespace) => type === `${namespace}/image` || type === `${namespace}/hyperlink`);
@@ -207638,18 +207699,17 @@ function isImageOrHyperlink(type) {
207638
207699
  function isEmbeddedImage(relationship) {
207639
207700
  return !!relationship && relationship.targetMode !== "External" && [...RELATIONSHIP_NAMESPACES].some((namespace) => relationship.type === `${namespace}/image`);
207640
207701
  }
207641
- function allRelationshipUses(xml) {
207642
- const parsed = collectXmlElementRanges(xml);
207702
+ function allRelationshipUses(parsed) {
207643
207703
  if (parsed.errors.length > 0)
207644
207704
  return null;
207645
207705
  return parsed.ranges.flatMap((range) => range.tag.attributes.flatMap((attribute) => RELATIONSHIP_NAMESPACES.has(attribute.namespaceUri) ? [{ id: attribute.value, range, attributeName: attribute.name }] : []));
207646
207706
  }
207647
- function imageRelationshipUses(xml) {
207648
- const uses = allRelationshipUses(xml);
207707
+ function imageRelationshipUses(parsed) {
207708
+ const uses = allRelationshipUses(parsed);
207649
207709
  if (!uses)
207650
207710
  return null;
207651
- const ranges = collectXmlElementRanges(xml).ranges;
207652
- return uses.filter(({ range }) => DRAWING_NAMESPACES.has(range.tag.namespaceUri) && ["blip", "hlinkClick", "hlinkHover"].includes(range.tag.localName) && ranges.some((owner) => WORD_NAMESPACES.has(owner.tag.namespaceUri) && owner.tag.localName === "drawing" && owner.start <= range.start && owner.end >= range.end));
207711
+ const drawings = wordWrapperRanges(parsed.ranges, new Set(["drawing"]));
207712
+ return uses.filter(({ range }) => DRAWING_NAMESPACES.has(range.tag.namespaceUri) && ["blip", "hlinkClick", "hlinkHover"].includes(range.tag.localName) && isInsideRange(range, drawings));
207653
207713
  }
207654
207714
  function imageEmbedIdsInRange(uses, start, end) {
207655
207715
  return new Set(uses.filter((use) => use.range.tag.localName === "blip" && use.attributeName.split(":").at(-1) === "embed" && use.range.start >= start && use.range.end <= end).map((use) => use.id));
@@ -207710,6 +207770,7 @@ var init_image_review_resources = __esm(() => {
207710
207770
  init_hyperlink_catalog();
207711
207771
  init_patch_substrate();
207712
207772
  init_package_graph();
207773
+ init_decision_xml_analysis();
207713
207774
  TD47 = new TextDecoder;
207714
207775
  TE22 = new TextEncoder;
207715
207776
  WORD_NAMESPACES = new Set([
@@ -208016,9 +208077,16 @@ function noteFamilyProfiles(state) {
208016
208077
  });
208017
208078
  }
208018
208079
  function runTrackedChangeDecideCommit(input, lookupContext) {
208019
- return withStructuralLookupContext(lookupContext, (lookupContext2) => runTrackedChangeDecideCommitWithLookupContext(lookupContext2, input));
208080
+ return withStructuralLookupContext(lookupContext, (lookupContext2) => {
208081
+ const xmlAnalysis = createDecisionXmlAnalysis();
208082
+ try {
208083
+ return runTrackedChangeDecideCommitWithLookupContext(lookupContext2, input, xmlAnalysis);
208084
+ } finally {
208085
+ xmlAnalysis.dispose();
208086
+ }
208087
+ });
208020
208088
  }
208021
- function runTrackedChangeDecideCommitWithLookupContext(lookupContext, input) {
208089
+ function runTrackedChangeDecideCommitWithLookupContext(lookupContext, input, xmlAnalysis) {
208022
208090
  const { state, txId, op } = input;
208023
208091
  const sessionHyperlinkReview = createSessionHyperlinkReviewTracker(state);
208024
208092
  if (input.options.expectedPackageRevision && input.options.expectedPackageRevision !== state.packageRevision) {
@@ -209453,6 +209521,7 @@ function runTrackedChangeDecideCommitWithLookupContext(lookupContext, input) {
209453
209521
  if (!wholeNoteCleanup.ok)
209454
209522
  return rejected7(txId, wholeNoteCleanup.reason);
209455
209523
  const noteCleanup = applyOrphanNoteStoryCleanup({
209524
+ xmlAnalysis,
209456
209525
  state,
209457
209526
  perPart,
209458
209527
  preconditions,
@@ -209476,6 +209545,7 @@ function runTrackedChangeDecideCommitWithLookupContext(lookupContext, input) {
209476
209545
  preconditions,
209477
209546
  patchMaps,
209478
209547
  decision: op.decision,
209548
+ xmlAnalysis,
209479
209549
  logicalChanges: preDecideLogicalCatalog.byId.values()
209480
209550
  });
209481
209551
  if (!imageCleanup.ok)
@@ -210614,6 +210684,8 @@ function applyCommentCascade(args) {
210614
210684
  function collectTrackedWholeNoteStoryLifecycleRemovals(state, perPart, fragmentsByPart, decision) {
210615
210685
  const removals = new Map;
210616
210686
  for (const [partUri, fragments] of fragmentsByPart) {
210687
+ if (partUri !== NOTE_FAMILY_PROFILE.footnotes.partUri && partUri !== NOTE_FAMILY_PROFILE.endnotes.partUri)
210688
+ continue;
210617
210689
  const bytes = state.packageBytes.get(partUri);
210618
210690
  if (!bytes || fragments.length === 0)
210619
210691
  continue;
@@ -210875,8 +210947,8 @@ function applyOrphanNoteStoryCleanup(args) {
210875
210947
  return { ok: true };
210876
210948
  const originalDocumentXml = TD48.decode(originalDocumentBytes);
210877
210949
  for (const profile of noteFamilyProfiles(args.state)) {
210878
- const currentIds = noteReferenceIds(documentXml, profile.referenceLocal);
210879
- const originalIds = noteReferenceIds(originalDocumentXml, profile.referenceLocal);
210950
+ const currentIds = noteReferenceIds(args.xmlAnalysis?.current(DOCUMENT_PART_URI, documentXml) ?? collectXmlElementRanges(documentXml), profile.referenceLocal);
210951
+ const originalIds = noteReferenceIds(args.xmlAnalysis?.original(DOCUMENT_PART_URI, originalDocumentXml) ?? collectXmlElementRanges(originalDocumentXml), profile.referenceLocal);
210880
210952
  const removedIds = [...originalIds].filter((id) => !currentIds.has(id));
210881
210953
  if (removedIds.length === 0)
210882
210954
  continue;
@@ -211007,9 +211079,8 @@ function collectRemovedNoteDefinitionTrackedChangeRefs(args, partUri, entryLocal
211007
211079
  const isRemoved = (start, end) => removedRanges.some((range) => start >= range.openEnd && end <= range.closeStart);
211008
211080
  collectRemovedNoteTrackedChangeRefs(args, partUri, isRemoved);
211009
211081
  }
211010
- function noteReferenceIds(xml, local) {
211082
+ function noteReferenceIds(parsed, local) {
211011
211083
  const ids = new Set;
211012
- const parsed = collectXmlElementRanges(xml);
211013
211084
  if (parsed.errors.length > 0)
211014
211085
  return ids;
211015
211086
  for (const range of parsed.ranges) {
@@ -212069,7 +212140,7 @@ function rebaseInsertedParagraphAfterFieldEdits(fragment3, edits) {
212069
212140
  return { ...fragment3, enclosingElementEnd: paragraphEnd };
212070
212141
  }
212071
212142
  function buildIndexedStructuralReanchorPlan(lookupContext, workingXml, groups) {
212072
- if (groups.length < 2 || groups.some((group) => group.fragments.length !== 1 || group.fragments.some((fragment3) => !INDEXABLE_STRUCTURAL_KINDS.has(fragment3.structuralKind) || !isSelfClosingStructuralFragment(fragment3) && fragment3.structuralKind !== "field-insertion" && fragment3.structuralKind !== "field-deletion"))) {
212143
+ if (groups.length === 0 || groups.some((group) => group.fragments.length !== 1 || group.fragments.some((fragment3) => !INDEXABLE_STRUCTURAL_KINDS.has(fragment3.structuralKind) || !isSelfClosingStructuralFragment(fragment3) && fragment3.structuralKind !== "field-insertion" && fragment3.structuralKind !== "field-deletion"))) {
212073
212144
  return null;
212074
212145
  }
212075
212146
  const reanchorStart = performance.now();
@@ -212724,6 +212795,7 @@ var init_compile_tracked_change_decide = __esm(() => {
212724
212795
  init_comment_tracked_change_metadata();
212725
212796
  init_bibliography_review_resources();
212726
212797
  init_image_review_resources();
212798
+ init_decision_xml_analysis();
212727
212799
  init_compound_move_paragraph();
212728
212800
  init_prepared_mutation();
212729
212801
  init_patch_substrate();
@@ -277834,7 +277906,7 @@ var init_word_bibliography = __esm(() => {
277834
277906
  ];
277835
277907
  });
277836
277908
 
277837
- // ../../packages/layout-engine/style-engine/src/cascade.ts
277909
+ // ../../../v2/node_modules/.pnpm/@superdoc+style-engine@file+..+public+packages+layout-engine+style-engine/node_modules/@superdoc/style-engine/src/cascade.ts
277838
277910
  function combineProperties(propertiesArray, options = {}) {
277839
277911
  const { fullOverrideProps = [], specialHandling = {} } = options;
277840
277912
  if (!propertiesArray || propertiesArray.length === 0) {
@@ -277934,14 +278006,14 @@ var init_cascade = __esm(() => {
277934
278006
  ];
277935
278007
  });
277936
278008
 
277937
- // ../../packages/layout-engine/style-engine/src/index.ts
278009
+ // ../../../v2/node_modules/.pnpm/@superdoc+style-engine@file+..+public+packages+layout-engine+style-engine/node_modules/@superdoc/style-engine/src/index.ts
277938
278010
  var sdtMetadataCache;
277939
278011
  var init_src4 = __esm(() => {
277940
278012
  init_cascade();
277941
278013
  sdtMetadataCache = new Map;
277942
278014
  });
277943
278015
 
277944
- // ../../packages/layout-engine/style-engine/src/ooxml/table-style-selection.ts
278016
+ // ../../../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
277945
278017
  function isKnownTableStyleId(styleId, translatedLinkedStyles) {
277946
278018
  if (!styleId || !translatedLinkedStyles?.styles)
277947
278019
  return false;
@@ -277996,7 +278068,7 @@ var init_table_style_selection = __esm(() => {
277996
278068
  };
277997
278069
  });
277998
278070
 
277999
- // ../../packages/layout-engine/style-engine/src/ooxml/index.ts
278071
+ // ../../../v2/node_modules/.pnpm/@superdoc+style-engine@file+..+public+packages+layout-engine+style-engine/node_modules/@superdoc/style-engine/src/ooxml/index.ts
278000
278072
  function resolveRunProperties(params, inlineRpr, resolvedPpr, tableInfo = null, isListNumber = false, numberingDefinedInline = false) {
278001
278073
  if (!params.translatedLinkedStyles?.styles) {
278002
278074
  return inlineRpr ?? {};
@@ -278579,7 +278651,7 @@ var init_default_floors = __esm(() => {
278579
278651
  };
278580
278652
  });
278581
278653
 
278582
- // ../../node_modules/.pnpm/sax@1.6.0/node_modules/sax/lib/sax.js
278654
+ // ../../../v2/node_modules/.pnpm/sax@1.6.0/node_modules/sax/lib/sax.js
278583
278655
  var require_sax = __commonJS((exports) => {
278584
278656
  (function(sax) {
278585
278657
  sax.parser = function(strict, opt) {
@@ -280113,7 +280185,7 @@ Char: ` + parser.c;
280113
280185
  })(typeof exports === "undefined" ? exports.sax = {} : exports);
280114
280186
  });
280115
280187
 
280116
- // ../../node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/array-helper.js
280188
+ // ../../../v2/node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/array-helper.js
280117
280189
  var require_array_helper = __commonJS((exports, module) => {
280118
280190
  module.exports = {
280119
280191
  isArray: function(value) {
@@ -280125,7 +280197,7 @@ var require_array_helper = __commonJS((exports, module) => {
280125
280197
  };
280126
280198
  });
280127
280199
 
280128
- // ../../node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/options-helper.js
280200
+ // ../../../v2/node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/options-helper.js
280129
280201
  var require_options_helper = __commonJS((exports, module) => {
280130
280202
  var isArray = require_array_helper().isArray;
280131
280203
  module.exports = {
@@ -280164,7 +280236,7 @@ var require_options_helper = __commonJS((exports, module) => {
280164
280236
  };
280165
280237
  });
280166
280238
 
280167
- // ../../node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/xml2js.js
280239
+ // ../../../v2/node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/xml2js.js
280168
280240
  var require_xml2js = __commonJS((exports, module) => {
280169
280241
  var sax = require_sax();
280170
280242
  var expat = { on: function() {}, parse: function() {} };
@@ -280502,7 +280574,7 @@ var require_xml2js = __commonJS((exports, module) => {
280502
280574
  };
280503
280575
  });
280504
280576
 
280505
- // ../../node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/xml2json.js
280577
+ // ../../../v2/node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/xml2json.js
280506
280578
  var require_xml2json = __commonJS((exports, module) => {
280507
280579
  var helper = require_options_helper();
280508
280580
  var xml2js = require_xml2js();
@@ -280527,7 +280599,7 @@ var require_xml2json = __commonJS((exports, module) => {
280527
280599
  };
280528
280600
  });
280529
280601
 
280530
- // ../../node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/js2xml.js
280602
+ // ../../../v2/node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/js2xml.js
280531
280603
  var require_js2xml = __commonJS((exports, module) => {
280532
280604
  var helper = require_options_helper();
280533
280605
  var isArray = require_array_helper().isArray;
@@ -280859,7 +280931,7 @@ var require_js2xml = __commonJS((exports, module) => {
280859
280931
  };
280860
280932
  });
280861
280933
 
280862
- // ../../node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/json2xml.js
280934
+ // ../../../v2/node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/json2xml.js
280863
280935
  var require_json2xml = __commonJS((exports, module) => {
280864
280936
  var js2xml = require_js2xml();
280865
280937
  module.exports = function(json2, options) {
@@ -280880,7 +280952,7 @@ var require_json2xml = __commonJS((exports, module) => {
280880
280952
  };
280881
280953
  });
280882
280954
 
280883
- // ../../node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/index.js
280955
+ // ../../../v2/node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/index.js
280884
280956
  var require_lib = __commonJS((exports, module) => {
280885
280957
  var xml2js = require_xml2js();
280886
280958
  var xml2json = require_xml2json();
@@ -280894,7 +280966,7 @@ var require_lib = __commonJS((exports, module) => {
280894
280966
  };
280895
280967
  });
280896
280968
 
280897
- // ../../packages/layout-engine/style-engine/src/ooxml/word-style-model/parse-xml.ts
280969
+ // ../../../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
280898
280970
  function bytesToString(input) {
280899
280971
  if (typeof input === "string")
280900
280972
  return input;
@@ -280961,7 +281033,7 @@ var init_parse_xml = __esm(() => {
280961
281033
  ST_OFF = new Set(["0", "false", "off"]);
280962
281034
  });
280963
281035
 
280964
- // ../../packages/layout-engine/style-engine/src/ooxml/word-style-model/parse-theme.ts
281036
+ // ../../../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
280965
281037
  function parseColorPalette(theme) {
280966
281038
  if (!theme)
280967
281039
  return;
@@ -283528,7 +283600,7 @@ var init_word_style_model = __esm(() => {
283528
283600
  init_project_style_catalogue();
283529
283601
  });
283530
283602
 
283531
- // ../../packages/layout-engine/style-engine/src/normalize/units.ts
283603
+ // ../../../v2/node_modules/.pnpm/@superdoc+style-engine@file+..+public+packages+layout-engine+style-engine/node_modules/@superdoc/style-engine/src/normalize/units.ts
283532
283604
  function twipsToPx(value) {
283533
283605
  return value * PX_PER_TWIP;
283534
283606
  }
@@ -283542,7 +283614,7 @@ var init_units = __esm(() => {
283542
283614
  PX_PER_EIGHTH_POINT = PX_PER_POINT / 8;
283543
283615
  });
283544
283616
 
283545
- // ../../packages/layout-engine/style-engine/src/normalize/colors.ts
283617
+ // ../../../v2/node_modules/.pnpm/@superdoc+style-engine@file+..+public+packages+layout-engine+style-engine/node_modules/@superdoc/style-engine/src/normalize/colors.ts
283546
283618
  function normalizeHexColor(value) {
283547
283619
  if (value == null)
283548
283620
  return;
@@ -283619,12 +283691,12 @@ var init_colors = __esm(() => {
283619
283691
  };
283620
283692
  });
283621
283693
 
283622
- // ../../packages/layout-engine/style-engine/src/normalize/paragraph-attrs.ts
283694
+ // ../../../v2/node_modules/.pnpm/@superdoc+style-engine@file+..+public+packages+layout-engine+style-engine/node_modules/@superdoc/style-engine/src/normalize/paragraph-attrs.ts
283623
283695
  var init_paragraph_attrs = __esm(() => {
283624
283696
  init_units();
283625
283697
  init_colors();
283626
283698
  });
283627
- // ../../packages/layout-engine/contracts/src/header-footer-resolution.ts
283699
+ // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/header-footer-resolution.ts
283628
283700
  function createResolutionCache() {
283629
283701
  const createVariantCache = () => ({ values: new Map, sectionIndices: [] });
283630
283702
  const createKindCache = () => ({
@@ -283802,12 +283874,12 @@ var HEADER_FOOTER_VARIANTS3;
283802
283874
  var init_header_footer_resolution = __esm(() => {
283803
283875
  HEADER_FOOTER_VARIANTS3 = ["default", "first", "even", "odd"];
283804
283876
  });
283805
- // ../../packages/layout-engine/contracts/src/justify-utils.ts
283877
+ // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/justify-utils.ts
283806
283878
  var SPACE_CHARS;
283807
283879
  var init_justify_utils = __esm(() => {
283808
283880
  SPACE_CHARS = new Set([" ", " "]);
283809
283881
  });
283810
- // ../../packages/layout-engine/contracts/src/vertical-text.ts
283882
+ // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/vertical-text.ts
283811
283883
  function normalizeBaselineShift(baselineShift) {
283812
283884
  if (!Number.isFinite(baselineShift)) {
283813
283885
  return;
@@ -283816,14 +283888,14 @@ function normalizeBaselineShift(baselineShift) {
283816
283888
  return Math.abs(normalizedShift) <= BASELINE_SHIFT_EPSILON ? undefined : normalizedShift;
283817
283889
  }
283818
283890
  var BASELINE_SHIFT_EPSILON = 0.000001;
283819
- // ../../packages/layout-engine/contracts/src/pm-range.ts
283891
+ // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/pm-range.ts
283820
283892
  var init_pm_range = () => {};
283821
- // ../../packages/layout-engine/contracts/src/graphic-placement.ts
283893
+ // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/graphic-placement.ts
283822
283894
  var init_graphic_placement = () => {};
283823
- // ../../packages/layout-engine/contracts/src/author-colors.ts
283895
+ // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/author-colors.ts
283824
283896
  var init_author_colors = () => {};
283825
283897
 
283826
- // ../../packages/layout-engine/contracts/src/semantic-colors.ts
283898
+ // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/semantic-colors.ts
283827
283899
  var TRACKED_CHANGE_CONFIGURABLE_SEMANTIC_COLOR_KEYS, CONFIGURABLE_SEMANTIC_COLOR_KEY_SET, TRACKED_CHANGE_AFFECTED_RANGE_KEYS;
283828
283900
  var init_semantic_colors = __esm(() => {
283829
283901
  init_author_colors();
@@ -283849,20 +283921,20 @@ var init_semantic_colors = __esm(() => {
283849
283921
  ]);
283850
283922
  });
283851
283923
 
283852
- // ../../packages/layout-engine/contracts/src/sdt-container.ts
283924
+ // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/sdt-container.ts
283853
283925
  var idlessSdtContainerKeys;
283854
283926
  var init_sdt_container = __esm(() => {
283855
283927
  idlessSdtContainerKeys = new WeakMap;
283856
283928
  });
283857
- // ../../packages/layout-engine/contracts/src/page-number-formatting.ts
283929
+ // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/page-number-formatting.ts
283858
283930
  var init_page_number_formatting = () => {};
283859
283931
 
283860
- // ../../packages/layout-engine/contracts/src/page-ref-anchor.ts
283932
+ // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/page-ref-anchor.ts
283861
283933
  var init_page_ref_anchor = __esm(() => {
283862
283934
  init_pm_range();
283863
283935
  });
283864
283936
 
283865
- // ../../packages/layout-engine/contracts/src/drawing-taxonomy.ts
283937
+ // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/drawing-taxonomy.ts
283866
283938
  var DRAWING_DIAGNOSTIC_CODES, DRAWING_DIAGNOSTIC_CODE_ALIASES, DRAWING_SUPPORT_TAXONOMY, DRAWING_FAMILIES;
283867
283939
  var init_drawing_taxonomy = __esm(() => {
283868
283940
  DRAWING_DIAGNOSTIC_CODES = {
@@ -284091,7 +284163,7 @@ var init_drawing_taxonomy = __esm(() => {
284091
284163
  };
284092
284164
  DRAWING_FAMILIES = Object.keys(DRAWING_SUPPORT_TAXONOMY);
284093
284165
  });
284094
- // ../../packages/layout-engine/contracts/src/incremental-dependency.ts
284166
+ // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/incremental-dependency.ts
284095
284167
  var PAGE_CHECKPOINT_DEPENDENCY_CLASSES, INCREMENTAL_DEPENDENCY_CERTIFICATE_CLASSES, DRAWING_KINDS, CERTIFICATE_CLASSES;
284096
284168
  var init_incremental_dependency = __esm(() => {
284097
284169
  PAGE_CHECKPOINT_DEPENDENCY_CLASSES = Object.freeze([
@@ -284121,10 +284193,10 @@ var init_incremental_dependency = __esm(() => {
284121
284193
  DRAWING_KINDS = new Set(["image", "vectorShape", "textboxShape", "shapeGroup", "chart"]);
284122
284194
  CERTIFICATE_CLASSES = new Set(INCREMENTAL_DEPENDENCY_CERTIFICATE_CLASSES);
284123
284195
  });
284124
- // ../../packages/layout-engine/contracts/src/engines/index.ts
284196
+ // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/engines/index.ts
284125
284197
  var init_engines = () => {};
284126
284198
 
284127
- // ../../packages/layout-engine/contracts/src/index.ts
284199
+ // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/index.ts
284128
284200
  var SHAPE_TEXT_BASELINE_WARP_PRESETS, SHAPE_TEXT_SINGLE_BAND_ENVELOPE_WARP_PRESETS;
284129
284201
  var init_src5 = __esm(() => {
284130
284202
  init_header_footer_resolution();
@@ -284147,7 +284219,7 @@ var init_src5 = __esm(() => {
284147
284219
  SHAPE_TEXT_SINGLE_BAND_ENVELOPE_WARP_PRESETS = new Set(["textButton"]);
284148
284220
  });
284149
284221
 
284150
- // ../../shared/font-utils/index.js
284222
+ // ../../../v2/node_modules/.pnpm/@superdoc+font-utils@file+..+public+shared+font-utils/node_modules/@superdoc/font-utils/index.js
284151
284223
  function mapWordFamilyFallback(wordFamily) {
284152
284224
  if (!wordFamily)
284153
284225
  return DEFAULT_GENERIC_FALLBACK;
@@ -284241,7 +284313,7 @@ var init_font_utils = __esm(() => {
284241
284313
  ]);
284242
284314
  });
284243
284315
 
284244
- // ../../packages/layout-engine/style-engine/src/normalize/run-attrs.ts
284316
+ // ../../../v2/node_modules/.pnpm/@superdoc+style-engine@file+..+public+packages+layout-engine+style-engine/node_modules/@superdoc/style-engine/src/normalize/run-attrs.ts
284245
284317
  function normalizeRunAttrsFromOoxml(props, context = {}) {
284246
284318
  const out = {};
284247
284319
  if (!props)
@@ -284508,7 +284580,7 @@ var init_run_attrs = __esm(() => {
284508
284580
  };
284509
284581
  });
284510
284582
 
284511
- // ../../packages/layout-engine/style-engine/src/normalize/index.ts
284583
+ // ../../../v2/node_modules/.pnpm/@superdoc+style-engine@file+..+public+packages+layout-engine+style-engine/node_modules/@superdoc/style-engine/src/normalize/index.ts
284512
284584
  var init_normalize = __esm(() => {
284513
284585
  init_paragraph_attrs();
284514
284586
  init_run_attrs();
@@ -301363,14 +301435,14 @@ var init_formatting = __esm(() => {
301363
301435
  ];
301364
301436
  PROJECTION_FONT_TABLE_PART_INDEX = STYLE_SIDECAR_PART_URIS.length;
301365
301437
  });
301366
- // ../../packages/word-layout/src/unit-conversions.ts
301438
+ // ../../../v2/node_modules/.pnpm/@superdoc+word-layout@file+..+public+packages+word-layout/node_modules/@superdoc/word-layout/src/unit-conversions.ts
301367
301439
  var TWIPS_PER_INCH = 1440, PIXELS_PER_INCH = 96, TWIPS_PER_POINT2 = 20, POINTS_PER_TWIP, TWIPS_PER_PIXEL, PIXELS_PER_TWIP;
301368
301440
  var init_unit_conversions = __esm(() => {
301369
301441
  POINTS_PER_TWIP = 1 / TWIPS_PER_POINT2;
301370
301442
  TWIPS_PER_PIXEL = Math.round(TWIPS_PER_INCH / PIXELS_PER_INCH);
301371
301443
  PIXELS_PER_TWIP = 1 / TWIPS_PER_PIXEL;
301372
301444
  });
301373
- // ../../packages/word-layout/src/numbering-manager.ts
301445
+ // ../../../v2/node_modules/.pnpm/@superdoc+word-layout@file+..+public+packages+word-layout/node_modules/@superdoc/word-layout/src/numbering-manager.ts
301374
301446
  function persistentTrieHash(key2) {
301375
301447
  let hash2 = 2166136261;
301376
301448
  for (let index = 0;index < key2.length; index += 1) {
@@ -301998,7 +302070,7 @@ var init_numbering_manager = __esm(() => {
301998
302070
  });
301999
302071
  });
302000
302072
 
302001
- // ../../shared/common/list-numbering/index.ts
302073
+ // ../../../v2/node_modules/.pnpm/@superdoc+common@file+..+public+shared+common/node_modules/@superdoc/common/list-numbering/index.ts
302002
302074
  var handleDecimal = (path6, lvlText) => generateNumbering(path6, lvlText, numberToStringFormatter), handleRoman = (path6, lvlText) => generateNumbering(path6, lvlText, intToRoman), handleLowerRoman = (path6, lvlText) => {
302003
302075
  const result = handleRoman(path6, lvlText);
302004
302076
  return result ? result.toLowerCase() : null;
@@ -302300,7 +302372,7 @@ var init_list_numbering = __esm(() => {
302300
302372
  normalizeChars = new Set(["", "", "○", "o", "■", "□"]);
302301
302373
  });
302302
302374
 
302303
- // ../../packages/word-layout/src/list-marker.ts
302375
+ // ../../../v2/node_modules/.pnpm/@superdoc+word-layout@file+..+public+packages+word-layout/node_modules/@superdoc/word-layout/src/list-marker.ts
302304
302376
  function computeWordListMarker(input) {
302305
302377
  const { definition, manager, paragraphOrdinal } = input;
302306
302378
  if (definition.ancestorStartSettings) {
@@ -302377,7 +302449,7 @@ var init_list_marker = __esm(() => {
302377
302449
  init_list_numbering();
302378
302450
  });
302379
302451
 
302380
- // ../../packages/word-layout/src/review-aware-numbering.ts
302452
+ // ../../../v2/node_modules/.pnpm/@superdoc+word-layout@file+..+public+packages+word-layout/node_modules/@superdoc/word-layout/src/review-aware-numbering.ts
302381
302453
  function createReviewAwareWordNumberingSequence(options = {}) {
302382
302454
  const stateMode = options.stateMode ?? "snapshot";
302383
302455
  let live = createManager(stateMode);
@@ -302474,7 +302546,7 @@ var init_review_aware_numbering = __esm(() => {
302474
302546
  init_numbering_manager();
302475
302547
  });
302476
302548
 
302477
- // ../../packages/word-layout/src/index.ts
302549
+ // ../../../v2/node_modules/.pnpm/@superdoc+word-layout@file+..+public+packages+word-layout/node_modules/@superdoc/word-layout/src/index.ts
302478
302550
  var init_src7 = __esm(() => {
302479
302551
  init_unit_conversions();
302480
302552
  init_unit_conversions();
@@ -305097,7 +305169,7 @@ function readRunOpenTagAndProperties(xml, runStart) {
305097
305169
  return { runOpenTag, runProperties: propertiesMatch ? propertiesMatch[1] : "" };
305098
305170
  }
305099
305171
 
305100
- // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/unicode.js
305172
+ // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/unicode.js
305101
305173
  function isSurrogate(cp) {
305102
305174
  return cp >= 55296 && cp <= 57343;
305103
305175
  }
@@ -305189,7 +305261,7 @@ var init_unicode = __esm(() => {
305189
305261
  };
305190
305262
  });
305191
305263
 
305192
- // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/error-codes.js
305264
+ // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/error-codes.js
305193
305265
  var ERR;
305194
305266
  var init_error_codes = __esm(() => {
305195
305267
  (function(ERR2) {
@@ -305256,7 +305328,7 @@ var init_error_codes = __esm(() => {
305256
305328
  })(ERR || (ERR = {}));
305257
305329
  });
305258
305330
 
305259
- // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/tokenizer/preprocessor.js
305331
+ // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/tokenizer/preprocessor.js
305260
305332
  class Preprocessor {
305261
305333
  constructor(handler) {
305262
305334
  this.handler = handler;
@@ -305429,7 +305501,7 @@ var init_preprocessor = __esm(() => {
305429
305501
  DEFAULT_BUFFER_WATERLINE = 1 << 16;
305430
305502
  });
305431
305503
 
305432
- // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/token.js
305504
+ // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/token.js
305433
305505
  function getTokenAttr(token, attrName) {
305434
305506
  for (let i2 = token.attrs.length - 1;i2 >= 0; i2--) {
305435
305507
  if (token.attrs[i2].name === attrName) {
@@ -305453,7 +305525,7 @@ var init_token = __esm(() => {
305453
305525
  })(TokenType || (TokenType = {}));
305454
305526
  });
305455
305527
 
305456
- // ../../node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/decode-codepoint.js
305528
+ // ../../../v2/node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/decode-codepoint.js
305457
305529
  function replaceCodePoint(codePoint) {
305458
305530
  if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) {
305459
305531
  return 65533;
@@ -305494,7 +305566,7 @@ var init_decode_codepoint = __esm(() => {
305494
305566
  ]);
305495
305567
  });
305496
305568
 
305497
- // ../../node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/internal/decode-shared.js
305569
+ // ../../../v2/node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/internal/decode-shared.js
305498
305570
  function decodeBase64(input) {
305499
305571
  const binary = atob(input);
305500
305572
  const evenLength = binary.length & ~1;
@@ -305507,13 +305579,13 @@ function decodeBase64(input) {
305507
305579
  return out;
305508
305580
  }
305509
305581
 
305510
- // ../../node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/generated/decode-data-html.js
305582
+ // ../../../v2/node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/generated/decode-data-html.js
305511
305583
  var htmlDecodeTree;
305512
305584
  var init_decode_data_html = __esm(() => {
305513
305585
  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");
305514
305586
  });
305515
305587
 
305516
- // ../../node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/internal/bin-trie-flags.js
305588
+ // ../../../v2/node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/internal/bin-trie-flags.js
305517
305589
  var BinTrieFlags;
305518
305590
  var init_bin_trie_flags = __esm(() => {
305519
305591
  (function(BinTrieFlags2) {
@@ -305524,7 +305596,7 @@ var init_bin_trie_flags = __esm(() => {
305524
305596
  })(BinTrieFlags || (BinTrieFlags = {}));
305525
305597
  });
305526
305598
 
305527
- // ../../node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/decode.js
305599
+ // ../../../v2/node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/decode.js
305528
305600
  function isNumber(code) {
305529
305601
  return code >= CharCodes.ZERO && code <= CharCodes.NINE;
305530
305602
  }
@@ -305806,7 +305878,7 @@ var init_decode = __esm(() => {
305806
305878
  })(DecodingMode || (DecodingMode = {}));
305807
305879
  });
305808
305880
 
305809
- // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/html.js
305881
+ // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/html.js
305810
305882
  function getTagID(tagName) {
305811
305883
  var _a3;
305812
305884
  return (_a3 = TAG_NAME_TO_ID.get(tagName)) !== null && _a3 !== undefined ? _a3 : TAG_ID.UNKNOWN;
@@ -306315,7 +306387,7 @@ var init_html = __esm(() => {
306315
306387
  ]);
306316
306388
  });
306317
306389
 
306318
- // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/tokenizer/index.js
306390
+ // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/tokenizer/index.js
306319
306391
  function isAsciiDigit(cp) {
306320
306392
  return cp >= CODE_POINTS.DIGIT_0 && cp <= CODE_POINTS.DIGIT_9;
306321
306393
  }
@@ -308772,7 +308844,7 @@ var init_tokenizer = __esm(() => {
308772
308844
  };
308773
308845
  });
308774
308846
 
308775
- // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/parser/open-element-stack.js
308847
+ // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/parser/open-element-stack.js
308776
308848
  class OpenElementStack {
308777
308849
  get currentTmplContentOrNode() {
308778
308850
  return this._isInTemplate() ? this.treeAdapter.getTemplateContent(this.current) : this.current;
@@ -309087,7 +309159,7 @@ var init_open_element_stack = __esm(() => {
309087
309159
  TABLE_CELLS = new Set([TAG_ID.TD, TAG_ID.TH]);
309088
309160
  });
309089
309161
 
309090
- // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/parser/formatting-element-list.js
309162
+ // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/parser/formatting-element-list.js
309091
309163
  class FormattingElementList {
309092
309164
  constructor(treeAdapter) {
309093
309165
  this.treeAdapter = treeAdapter;
@@ -309183,7 +309255,7 @@ var init_formatting_element_list = __esm(() => {
309183
309255
  MARKER = { type: EntryType.Marker };
309184
309256
  });
309185
309257
 
309186
- // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/tree-adapters/default.js
309258
+ // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/tree-adapters/default.js
309187
309259
  var defaultTreeAdapter;
309188
309260
  var init_default2 = __esm(() => {
309189
309261
  init_html();
@@ -309353,7 +309425,7 @@ var init_default2 = __esm(() => {
309353
309425
  };
309354
309426
  });
309355
309427
 
309356
- // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/doctype.js
309428
+ // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/doctype.js
309357
309429
  function hasPrefix(publicId, prefixes) {
309358
309430
  return prefixes.some((prefix) => publicId.startsWith(prefix));
309359
309431
  }
@@ -309463,7 +309535,7 @@ var init_doctype = __esm(() => {
309463
309535
  ];
309464
309536
  });
309465
309537
 
309466
- // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/foreign-content.js
309538
+ // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/foreign-content.js
309467
309539
  function causesExit(startTagToken) {
309468
309540
  const tn = startTagToken.tagID;
309469
309541
  const isFontWithAttrs = tn === TAG_ID.FONT && startTagToken.attrs.some(({ name }) => name === ATTRS2.COLOR || name === ATTRS2.SIZE || name === ATTRS2.FACE);
@@ -309685,7 +309757,7 @@ var init_foreign_content = __esm(() => {
309685
309757
  ]);
309686
309758
  });
309687
309759
 
309688
- // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/parser/index.js
309760
+ // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/parser/index.js
309689
309761
  class Parser {
309690
309762
  constructor(options, document3, fragmentContext = null, scriptHandler = null) {
309691
309763
  this.fragmentContext = fragmentContext;
@@ -312642,7 +312714,7 @@ var init_parser = __esm(() => {
312642
312714
  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]);
312643
312715
  });
312644
312716
 
312645
- // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/serializer/index.js
312717
+ // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/serializer/index.js
312646
312718
  var VOID_ELEMENTS;
312647
312719
  var init_serializer = __esm(() => {
312648
312720
  init_html();
@@ -312669,7 +312741,7 @@ var init_serializer = __esm(() => {
312669
312741
  ]);
312670
312742
  });
312671
312743
 
312672
- // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/index.js
312744
+ // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/index.js
312673
312745
  function parseFragment(fragmentContext, html, options) {
312674
312746
  if (typeof fragmentContext === "string") {
312675
312747
  options = html;
@@ -315125,10 +315197,10 @@ var init_html2 = __esm(() => {
315125
315197
  init_converter();
315126
315198
  });
315127
315199
 
315128
- // ../../node_modules/.pnpm/dequal@2.0.3/node_modules/dequal/dist/index.mjs
315200
+ // ../../../v2/node_modules/.pnpm/dequal@2.0.3/node_modules/dequal/dist/index.mjs
315129
315201
  var init_dist4 = () => {};
315130
315202
 
315131
- // ../../node_modules/.pnpm/devlop@1.1.0/node_modules/devlop/lib/development.js
315203
+ // ../../../v2/node_modules/.pnpm/devlop@1.1.0/node_modules/devlop/lib/development.js
315132
315204
  function ok2(value2, message) {
315133
315205
  assert2(Boolean(value2), false, true, "ok", "Expected value to be truthy", message);
315134
315206
  }
@@ -315157,7 +315229,7 @@ var init_development = __esm(() => {
315157
315229
  };
315158
315230
  });
315159
315231
 
315160
- // ../../node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/lib/index.js
315232
+ // ../../../v2/node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/lib/index.js
315161
315233
  function toString(value2, options) {
315162
315234
  const settings = options || emptyOptions;
315163
315235
  const includeImageAlt = typeof settings.includeImageAlt === "boolean" ? settings.includeImageAlt : true;
@@ -315197,12 +315269,12 @@ var init_lib = __esm(() => {
315197
315269
  emptyOptions = {};
315198
315270
  });
315199
315271
 
315200
- // ../../node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/index.js
315272
+ // ../../../v2/node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/index.js
315201
315273
  var init_mdast_util_to_string = __esm(() => {
315202
315274
  init_lib();
315203
315275
  });
315204
315276
 
315205
- // ../../node_modules/.pnpm/character-entities@2.0.2/node_modules/character-entities/index.js
315277
+ // ../../../v2/node_modules/.pnpm/character-entities@2.0.2/node_modules/character-entities/index.js
315206
315278
  var characterEntities;
315207
315279
  var init_character_entities = __esm(() => {
315208
315280
  characterEntities = {
@@ -317335,7 +317407,7 @@ var init_character_entities = __esm(() => {
317335
317407
  };
317336
317408
  });
317337
317409
 
317338
- // ../../node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/index.js
317410
+ // ../../../v2/node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/index.js
317339
317411
  function decodeNamedCharacterReference(value2) {
317340
317412
  return own.call(characterEntities, value2) ? characterEntities[value2] : false;
317341
317413
  }
@@ -317345,7 +317417,7 @@ var init_decode_named_character_reference = __esm(() => {
317345
317417
  own = {}.hasOwnProperty;
317346
317418
  });
317347
317419
 
317348
- // ../../node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/codes.js
317420
+ // ../../../v2/node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/codes.js
317349
317421
  var codes;
317350
317422
  var init_codes = __esm(() => {
317351
317423
  codes = {
@@ -317488,7 +317560,7 @@ var init_codes = __esm(() => {
317488
317560
  };
317489
317561
  });
317490
317562
 
317491
- // ../../node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/constants.js
317563
+ // ../../../v2/node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/constants.js
317492
317564
  var constants2;
317493
317565
  var init_constants = __esm(() => {
317494
317566
  constants2 = {
@@ -317529,7 +317601,7 @@ var init_constants = __esm(() => {
317529
317601
  };
317530
317602
  });
317531
317603
 
317532
- // ../../node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/types.js
317604
+ // ../../../v2/node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/types.js
317533
317605
  var types9;
317534
317606
  var init_types9 = __esm(() => {
317535
317607
  types9 = {
@@ -317639,7 +317711,7 @@ var init_types9 = __esm(() => {
317639
317711
  };
317640
317712
  });
317641
317713
 
317642
- // ../../node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/values.js
317714
+ // ../../../v2/node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/values.js
317643
317715
  var values;
317644
317716
  var init_values = __esm(() => {
317645
317717
  values = {
@@ -317746,7 +317818,7 @@ var init_values = __esm(() => {
317746
317818
  };
317747
317819
  });
317748
317820
 
317749
- // ../../node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/default.js
317821
+ // ../../../v2/node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/default.js
317750
317822
  var init_default3 = __esm(() => {
317751
317823
  init_codes();
317752
317824
  init_constants();
@@ -317754,7 +317826,7 @@ var init_default3 = __esm(() => {
317754
317826
  init_values();
317755
317827
  });
317756
317828
 
317757
- // ../../node_modules/.pnpm/micromark-util-chunked@2.0.1/node_modules/micromark-util-chunked/dev/index.js
317829
+ // ../../../v2/node_modules/.pnpm/micromark-util-chunked@2.0.1/node_modules/micromark-util-chunked/dev/index.js
317758
317830
  function splice(list, start, remove, items) {
317759
317831
  const end = list.length;
317760
317832
  let chunkStart = 0;
@@ -317792,7 +317864,7 @@ var init_dev = __esm(() => {
317792
317864
  init_default3();
317793
317865
  });
317794
317866
 
317795
- // ../../node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-combine-extensions/index.js
317867
+ // ../../../v2/node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-combine-extensions/index.js
317796
317868
  function combineExtensions(extensions) {
317797
317869
  const all2 = {};
317798
317870
  let index = -1;
@@ -317832,7 +317904,7 @@ var init_micromark_util_combine_extensions = __esm(() => {
317832
317904
  hasOwnProperty = {}.hasOwnProperty;
317833
317905
  });
317834
317906
 
317835
- // ../../node_modules/.pnpm/micromark-util-decode-numeric-character-reference@2.0.2/node_modules/micromark-util-decode-numeric-character-reference/dev/index.js
317907
+ // ../../../v2/node_modules/.pnpm/micromark-util-decode-numeric-character-reference@2.0.2/node_modules/micromark-util-decode-numeric-character-reference/dev/index.js
317836
317908
  function decodeNumericCharacterReference(value2, base3) {
317837
317909
  const code = Number.parseInt(value2, base3);
317838
317910
  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) {
@@ -317844,7 +317916,7 @@ var init_dev2 = __esm(() => {
317844
317916
  init_default3();
317845
317917
  });
317846
317918
 
317847
- // ../../node_modules/.pnpm/micromark-util-normalize-identifier@2.0.1/node_modules/micromark-util-normalize-identifier/dev/index.js
317919
+ // ../../../v2/node_modules/.pnpm/micromark-util-normalize-identifier@2.0.1/node_modules/micromark-util-normalize-identifier/dev/index.js
317848
317920
  function normalizeIdentifier(value2) {
317849
317921
  return value2.replace(/[\t\n\r ]+/g, values.space).replace(/^ | $/g, "").toLowerCase().toUpperCase();
317850
317922
  }
@@ -317852,7 +317924,7 @@ var init_dev3 = __esm(() => {
317852
317924
  init_default3();
317853
317925
  });
317854
317926
 
317855
- // ../../node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/dev/index.js
317927
+ // ../../../v2/node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/dev/index.js
317856
317928
  function asciiControl(code) {
317857
317929
  return code !== null && (code < codes.space || code === codes.del);
317858
317930
  }
@@ -317884,7 +317956,7 @@ var init_dev4 = __esm(() => {
317884
317956
  unicodeWhitespace = regexCheck(/\s/);
317885
317957
  });
317886
317958
 
317887
- // ../../node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-factory-space/dev/index.js
317959
+ // ../../../v2/node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-factory-space/dev/index.js
317888
317960
  function factorySpace(effects2, ok3, type, max2) {
317889
317961
  const limit = max2 ? max2 - 1 : Number.POSITIVE_INFINITY;
317890
317962
  let size = 0;
@@ -317909,7 +317981,7 @@ var init_dev5 = __esm(() => {
317909
317981
  init_dev4();
317910
317982
  });
317911
317983
 
317912
- // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/lib/initialize/content.js
317984
+ // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/lib/initialize/content.js
317913
317985
  function initializeContent(effects2) {
317914
317986
  const contentStart = effects2.attempt(this.parser.constructs.contentInitial, afterContentStartConstruct, paragraphInitial);
317915
317987
  let previous;
@@ -317966,7 +318038,7 @@ var init_content = __esm(() => {
317966
318038
  content = { tokenize: initializeContent };
317967
318039
  });
317968
318040
 
317969
- // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/lib/initialize/document.js
318041
+ // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/lib/initialize/document.js
317970
318042
  function initializeDocument(effects2) {
317971
318043
  const self = this;
317972
318044
  const stack = [];
@@ -318158,7 +318230,7 @@ var init_document2 = __esm(() => {
318158
318230
  containerConstruct = { tokenize: tokenizeContainer };
318159
318231
  });
318160
318232
 
318161
- // ../../node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-classify-character/dev/index.js
318233
+ // ../../../v2/node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-classify-character/dev/index.js
318162
318234
  function classifyCharacter(code) {
318163
318235
  if (code === codes.eof || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {
318164
318236
  return constants2.characterGroupWhitespace;
@@ -318172,7 +318244,7 @@ var init_dev6 = __esm(() => {
318172
318244
  init_default3();
318173
318245
  });
318174
318246
 
318175
- // ../../node_modules/.pnpm/micromark-util-resolve-all@2.0.1/node_modules/micromark-util-resolve-all/index.js
318247
+ // ../../../v2/node_modules/.pnpm/micromark-util-resolve-all@2.0.1/node_modules/micromark-util-resolve-all/index.js
318176
318248
  function resolveAll(constructs2, events, context) {
318177
318249
  const called = [];
318178
318250
  let index = -1;
@@ -318186,7 +318258,7 @@ function resolveAll(constructs2, events, context) {
318186
318258
  return events;
318187
318259
  }
318188
318260
 
318189
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/attention.js
318261
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/attention.js
318190
318262
  function resolveAllAttention(events, context) {
318191
318263
  let index = -1;
318192
318264
  let open;
@@ -318322,7 +318394,7 @@ var init_attention = __esm(() => {
318322
318394
  };
318323
318395
  });
318324
318396
 
318325
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/autolink.js
318397
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/autolink.js
318326
318398
  function tokenizeAutolink(effects2, ok3, nok) {
318327
318399
  let size = 0;
318328
318400
  return start;
@@ -318427,7 +318499,7 @@ var init_autolink = __esm(() => {
318427
318499
  autolink = { name: "autolink", tokenize: tokenizeAutolink };
318428
318500
  });
318429
318501
 
318430
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/blank-line.js
318502
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/blank-line.js
318431
318503
  function tokenizeBlankLine(effects2, ok3, nok) {
318432
318504
  return start;
318433
318505
  function start(code) {
@@ -318445,7 +318517,7 @@ var init_blank_line = __esm(() => {
318445
318517
  blankLine = { partial: true, tokenize: tokenizeBlankLine };
318446
318518
  });
318447
318519
 
318448
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/block-quote.js
318520
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/block-quote.js
318449
318521
  function tokenizeBlockQuoteStart(effects2, ok3, nok) {
318450
318522
  const self = this;
318451
318523
  return start;
@@ -318508,7 +318580,7 @@ var init_block_quote = __esm(() => {
318508
318580
  };
318509
318581
  });
318510
318582
 
318511
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/character-escape.js
318583
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/character-escape.js
318512
318584
  function tokenizeCharacterEscape(effects2, ok3, nok) {
318513
318585
  return start;
318514
318586
  function start(code) {
@@ -318541,7 +318613,7 @@ var init_character_escape = __esm(() => {
318541
318613
  };
318542
318614
  });
318543
318615
 
318544
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/character-reference.js
318616
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/character-reference.js
318545
318617
  function tokenizeCharacterReference(effects2, ok3, nok) {
318546
318618
  const self = this;
318547
318619
  let size = 0;
@@ -318614,7 +318686,7 @@ var init_character_reference = __esm(() => {
318614
318686
  };
318615
318687
  });
318616
318688
 
318617
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/code-fenced.js
318689
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/code-fenced.js
318618
318690
  function tokenizeCodeFenced(effects2, ok3, nok) {
318619
318691
  const self = this;
318620
318692
  const closeStart = { partial: true, tokenize: tokenizeCloseStart };
@@ -318803,7 +318875,7 @@ var init_code_fenced = __esm(() => {
318803
318875
  };
318804
318876
  });
318805
318877
 
318806
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/code-indented.js
318878
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/code-indented.js
318807
318879
  function tokenizeCodeIndented(effects2, ok3, nok) {
318808
318880
  const self = this;
318809
318881
  return start;
@@ -318872,7 +318944,7 @@ var init_code_indented = __esm(() => {
318872
318944
  furtherStart = { partial: true, tokenize: tokenizeFurtherStart };
318873
318945
  });
318874
318946
 
318875
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/code-text.js
318947
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/code-text.js
318876
318948
  function resolveCodeText(events) {
318877
318949
  let tailExitIndex = events.length - 4;
318878
318950
  let headEnterIndex = 3;
@@ -318995,7 +319067,7 @@ var init_code_text = __esm(() => {
318995
319067
  };
318996
319068
  });
318997
319069
 
318998
- // ../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/dev/lib/splice-buffer.js
319070
+ // ../../../v2/node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/dev/lib/splice-buffer.js
318999
319071
  class SpliceBuffer {
319000
319072
  constructor(initial) {
319001
319073
  this.left = initial ? [...initial] : [];
@@ -319081,7 +319153,7 @@ var init_splice_buffer = __esm(() => {
319081
319153
  init_default3();
319082
319154
  });
319083
319155
 
319084
- // ../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/dev/index.js
319156
+ // ../../../v2/node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/dev/index.js
319085
319157
  function subtokenize(eventsArray) {
319086
319158
  const jumps = {};
319087
319159
  let index = -1;
@@ -319240,7 +319312,7 @@ var init_dev7 = __esm(() => {
319240
319312
  init_splice_buffer();
319241
319313
  });
319242
319314
 
319243
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/content.js
319315
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/content.js
319244
319316
  function resolveContent(events) {
319245
319317
  subtokenize(events);
319246
319318
  return events;
@@ -319318,7 +319390,7 @@ var init_content2 = __esm(() => {
319318
319390
  continuationConstruct = { partial: true, tokenize: tokenizeContinuation };
319319
319391
  });
319320
319392
 
319321
- // ../../node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-factory-destination/dev/index.js
319393
+ // ../../../v2/node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-factory-destination/dev/index.js
319322
319394
  function factoryDestination(effects2, ok3, nok, type, literalType2, literalMarkerType, rawType, stringType2, max2) {
319323
319395
  const limit = max2 || Number.POSITIVE_INFINITY;
319324
319396
  let balance = 0;
@@ -319410,7 +319482,7 @@ var init_dev8 = __esm(() => {
319410
319482
  init_default3();
319411
319483
  });
319412
319484
 
319413
- // ../../node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-factory-label/dev/index.js
319485
+ // ../../../v2/node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-factory-label/dev/index.js
319414
319486
  function factoryLabel(effects2, ok3, nok, type, markerType, stringType2) {
319415
319487
  const self = this;
319416
319488
  let size = 0;
@@ -319471,7 +319543,7 @@ var init_dev9 = __esm(() => {
319471
319543
  init_default3();
319472
319544
  });
319473
319545
 
319474
- // ../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-title/dev/index.js
319546
+ // ../../../v2/node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-title/dev/index.js
319475
319547
  function factoryTitle(effects2, ok3, nok, type, markerType, stringType2) {
319476
319548
  let marker;
319477
319549
  return start;
@@ -319536,7 +319608,7 @@ var init_dev10 = __esm(() => {
319536
319608
  init_default3();
319537
319609
  });
319538
319610
 
319539
- // ../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-whitespace/dev/index.js
319611
+ // ../../../v2/node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-whitespace/dev/index.js
319540
319612
  function factoryWhitespace(effects2, ok3) {
319541
319613
  let seen;
319542
319614
  return start;
@@ -319560,7 +319632,7 @@ var init_dev11 = __esm(() => {
319560
319632
  init_default3();
319561
319633
  });
319562
319634
 
319563
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/definition.js
319635
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/definition.js
319564
319636
  function tokenizeDefinition(effects2, ok3, nok) {
319565
319637
  const self = this;
319566
319638
  let identifier;
@@ -319634,7 +319706,7 @@ var init_definition = __esm(() => {
319634
319706
  titleBefore = { partial: true, tokenize: tokenizeTitleBefore };
319635
319707
  });
319636
319708
 
319637
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.js
319709
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.js
319638
319710
  function tokenizeHardBreakEscape(effects2, ok3, nok) {
319639
319711
  return start;
319640
319712
  function start(code) {
@@ -319662,7 +319734,7 @@ var init_hard_break_escape = __esm(() => {
319662
319734
  };
319663
319735
  });
319664
319736
 
319665
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/heading-atx.js
319737
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/heading-atx.js
319666
319738
  function resolveHeadingAtx(events, context) {
319667
319739
  let contentEnd = events.length - 2;
319668
319740
  let contentStart = 3;
@@ -319767,7 +319839,7 @@ var init_heading_atx = __esm(() => {
319767
319839
  };
319768
319840
  });
319769
319841
 
319770
- // ../../node_modules/.pnpm/micromark-util-html-tag-name@2.0.1/node_modules/micromark-util-html-tag-name/index.js
319842
+ // ../../../v2/node_modules/.pnpm/micromark-util-html-tag-name@2.0.1/node_modules/micromark-util-html-tag-name/index.js
319771
319843
  var htmlBlockNames, htmlRawNames;
319772
319844
  var init_micromark_util_html_tag_name = __esm(() => {
319773
319845
  htmlBlockNames = [
@@ -319837,7 +319909,7 @@ var init_micromark_util_html_tag_name = __esm(() => {
319837
319909
  htmlRawNames = ["pre", "script", "style", "textarea"];
319838
319910
  });
319839
319911
 
319840
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/html-flow.js
319912
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/html-flow.js
319841
319913
  function resolveToHtmlFlow(events) {
319842
319914
  let index = events.length;
319843
319915
  while (index--) {
@@ -320227,7 +320299,7 @@ var init_html_flow = __esm(() => {
320227
320299
  };
320228
320300
  });
320229
320301
 
320230
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/html-text.js
320302
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/html-text.js
320231
320303
  function tokenizeHtmlText(effects2, ok3, nok) {
320232
320304
  const self = this;
320233
320305
  let marker;
@@ -320541,7 +320613,7 @@ var init_html_text = __esm(() => {
320541
320613
  htmlText = { name: "htmlText", tokenize: tokenizeHtmlText };
320542
320614
  });
320543
320615
 
320544
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/label-end.js
320616
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/label-end.js
320545
320617
  function resolveAllLabelEnd(events) {
320546
320618
  let index = -1;
320547
320619
  const newEvents = [];
@@ -320773,7 +320845,7 @@ var init_label_end = __esm(() => {
320773
320845
  referenceCollapsedConstruct = { tokenize: tokenizeReferenceCollapsed };
320774
320846
  });
320775
320847
 
320776
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/label-start-image.js
320848
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/label-start-image.js
320777
320849
  function tokenizeLabelStartImage(effects2, ok3, nok) {
320778
320850
  const self = this;
320779
320851
  return start;
@@ -320811,7 +320883,7 @@ var init_label_start_image = __esm(() => {
320811
320883
  };
320812
320884
  });
320813
320885
 
320814
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/label-start-link.js
320886
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/label-start-link.js
320815
320887
  function tokenizeLabelStartLink(effects2, ok3, nok) {
320816
320888
  const self = this;
320817
320889
  return start;
@@ -320840,7 +320912,7 @@ var init_label_start_link = __esm(() => {
320840
320912
  };
320841
320913
  });
320842
320914
 
320843
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/line-ending.js
320915
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/line-ending.js
320844
320916
  function tokenizeLineEnding(effects2, ok3) {
320845
320917
  return start;
320846
320918
  function start(code) {
@@ -320860,7 +320932,7 @@ var init_line_ending = __esm(() => {
320860
320932
  lineEnding = { name: "lineEnding", tokenize: tokenizeLineEnding };
320861
320933
  });
320862
320934
 
320863
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/thematic-break.js
320935
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/thematic-break.js
320864
320936
  function tokenizeThematicBreak(effects2, ok3, nok) {
320865
320937
  let size = 0;
320866
320938
  let marker;
@@ -320907,7 +320979,7 @@ var init_thematic_break = __esm(() => {
320907
320979
  };
320908
320980
  });
320909
320981
 
320910
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/list.js
320982
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/list.js
320911
320983
  function tokenizeListStart(effects2, ok3, nok) {
320912
320984
  const self = this;
320913
320985
  const tail = self.events[self.events.length - 1];
@@ -321052,7 +321124,7 @@ var init_list = __esm(() => {
321052
321124
  indentConstruct = { partial: true, tokenize: tokenizeIndent };
321053
321125
  });
321054
321126
 
321055
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/setext-underline.js
321127
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/setext-underline.js
321056
321128
  function resolveToSetextUnderline(events, context) {
321057
321129
  let index = events.length;
321058
321130
  let content3;
@@ -321150,7 +321222,7 @@ var init_setext_underline = __esm(() => {
321150
321222
  };
321151
321223
  });
321152
321224
 
321153
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/index.js
321225
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/index.js
321154
321226
  var init_dev12 = __esm(() => {
321155
321227
  init_attention();
321156
321228
  init_autolink();
@@ -321176,7 +321248,7 @@ var init_dev12 = __esm(() => {
321176
321248
  init_thematic_break();
321177
321249
  });
321178
321250
 
321179
- // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/lib/initialize/flow.js
321251
+ // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/lib/initialize/flow.js
321180
321252
  function initializeFlow(effects2) {
321181
321253
  const self = this;
321182
321254
  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)));
@@ -321216,7 +321288,7 @@ var init_flow = __esm(() => {
321216
321288
  flow = { tokenize: initializeFlow };
321217
321289
  });
321218
321290
 
321219
- // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/lib/initialize/text.js
321291
+ // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/lib/initialize/text.js
321220
321292
  function initializeFactory(field) {
321221
321293
  return {
321222
321294
  resolveAll: createResolver(field === "text" ? resolveAllLineSuffixes : undefined),
@@ -321355,7 +321427,7 @@ var init_text = __esm(() => {
321355
321427
  text = initializeFactory("text");
321356
321428
  });
321357
321429
 
321358
- // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/lib/constructs.js
321430
+ // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/lib/constructs.js
321359
321431
  var exports_constructs = {};
321360
321432
  __export(exports_constructs, {
321361
321433
  text: () => text2,
@@ -321430,7 +321502,7 @@ var init_constructs = __esm(() => {
321430
321502
  disable = { null: [] };
321431
321503
  });
321432
321504
 
321433
- // ../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js
321505
+ // ../../../v2/node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js
321434
321506
  var require_ms = __commonJS((exports, module) => {
321435
321507
  var s = 1000;
321436
321508
  var m = s * 60;
@@ -321540,7 +321612,7 @@ var require_ms = __commonJS((exports, module) => {
321540
321612
  }
321541
321613
  });
321542
321614
 
321543
- // ../../node_modules/.pnpm/debug@4.4.3_supports-color@5.5.0/node_modules/debug/src/common.js
321615
+ // ../../../v2/node_modules/.pnpm/debug@4.4.3_supports-color@7.2.0/node_modules/debug/src/common.js
321544
321616
  var require_common = __commonJS((exports, module) => {
321545
321617
  function setup(env) {
321546
321618
  createDebug.debug = createDebug;
@@ -321715,7 +321787,7 @@ var require_common = __commonJS((exports, module) => {
321715
321787
  module.exports = setup;
321716
321788
  });
321717
321789
 
321718
- // ../../node_modules/.pnpm/debug@4.4.3_supports-color@5.5.0/node_modules/debug/src/browser.js
321790
+ // ../../../v2/node_modules/.pnpm/debug@4.4.3_supports-color@7.2.0/node_modules/debug/src/browser.js
321719
321791
  var require_browser = __commonJS((exports, module) => {
321720
321792
  exports.formatArgs = formatArgs;
321721
321793
  exports.save = save;
@@ -321875,30 +321947,36 @@ var require_browser = __commonJS((exports, module) => {
321875
321947
  };
321876
321948
  });
321877
321949
 
321878
- // ../../node_modules/.pnpm/has-flag@3.0.0/node_modules/has-flag/index.js
321950
+ // ../../../v2/node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js
321879
321951
  var require_has_flag = __commonJS((exports, module) => {
321880
- module.exports = (flag, argv) => {
321881
- argv = argv || process.argv;
321952
+ module.exports = (flag, argv = process.argv) => {
321882
321953
  const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
321883
- const pos = argv.indexOf(prefix + flag);
321884
- const terminatorPos = argv.indexOf("--");
321885
- return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);
321954
+ const position = argv.indexOf(prefix + flag);
321955
+ const terminatorPosition = argv.indexOf("--");
321956
+ return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
321886
321957
  };
321887
321958
  });
321888
321959
 
321889
- // ../../node_modules/.pnpm/supports-color@5.5.0/node_modules/supports-color/index.js
321960
+ // ../../../v2/node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js
321890
321961
  var require_supports_color = __commonJS((exports, module) => {
321891
321962
  var os = __require("os");
321963
+ var tty = __require("tty");
321892
321964
  var hasFlag = require_has_flag();
321893
- var env = process.env;
321965
+ var { env } = process;
321894
321966
  var forceColor;
321895
- if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false")) {
321896
- forceColor = false;
321967
+ if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) {
321968
+ forceColor = 0;
321897
321969
  } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) {
321898
- forceColor = true;
321970
+ forceColor = 1;
321899
321971
  }
321900
321972
  if ("FORCE_COLOR" in env) {
321901
- forceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0;
321973
+ if (env.FORCE_COLOR === "true") {
321974
+ forceColor = 1;
321975
+ } else if (env.FORCE_COLOR === "false") {
321976
+ forceColor = 0;
321977
+ } else {
321978
+ forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);
321979
+ }
321902
321980
  }
321903
321981
  function translateLevel(level) {
321904
321982
  if (level === 0) {
@@ -321911,8 +321989,8 @@ var require_supports_color = __commonJS((exports, module) => {
321911
321989
  has16m: level >= 3
321912
321990
  };
321913
321991
  }
321914
- function supportsColor(stream) {
321915
- if (forceColor === false) {
321992
+ function supportsColor(haveStream, streamIsTTY) {
321993
+ if (forceColor === 0) {
321916
321994
  return 0;
321917
321995
  }
321918
321996
  if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) {
@@ -321921,19 +321999,22 @@ var require_supports_color = __commonJS((exports, module) => {
321921
321999
  if (hasFlag("color=256")) {
321922
322000
  return 2;
321923
322001
  }
321924
- if (stream && !stream.isTTY && forceColor !== true) {
322002
+ if (haveStream && !streamIsTTY && forceColor === undefined) {
321925
322003
  return 0;
321926
322004
  }
321927
- const min = forceColor ? 1 : 0;
322005
+ const min = forceColor || 0;
322006
+ if (env.TERM === "dumb") {
322007
+ return min;
322008
+ }
321928
322009
  if (process.platform === "win32") {
321929
322010
  const osRelease = os.release().split(".");
321930
- if (Number(process.versions.node.split(".")[0]) >= 8 && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
322011
+ if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
321931
322012
  return Number(osRelease[2]) >= 14931 ? 3 : 2;
321932
322013
  }
321933
322014
  return 1;
321934
322015
  }
321935
322016
  if ("CI" in env) {
321936
- if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI"].some((sign) => (sign in env)) || env.CI_NAME === "codeship") {
322017
+ if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "GITHUB_ACTIONS", "BUILDKITE"].some((sign) => (sign in env)) || env.CI_NAME === "codeship") {
321937
322018
  return 1;
321938
322019
  }
321939
322020
  return min;
@@ -321962,23 +322043,20 @@ var require_supports_color = __commonJS((exports, module) => {
321962
322043
  if ("COLORTERM" in env) {
321963
322044
  return 1;
321964
322045
  }
321965
- if (env.TERM === "dumb") {
321966
- return min;
321967
- }
321968
322046
  return min;
321969
322047
  }
321970
322048
  function getSupportLevel(stream) {
321971
- const level = supportsColor(stream);
322049
+ const level = supportsColor(stream, stream && stream.isTTY);
321972
322050
  return translateLevel(level);
321973
322051
  }
321974
322052
  module.exports = {
321975
322053
  supportsColor: getSupportLevel,
321976
- stdout: getSupportLevel(process.stdout),
321977
- stderr: getSupportLevel(process.stderr)
322054
+ stdout: translateLevel(supportsColor(true, tty.isatty(1))),
322055
+ stderr: translateLevel(supportsColor(true, tty.isatty(2)))
321978
322056
  };
321979
322057
  });
321980
322058
 
321981
- // ../../node_modules/.pnpm/debug@4.4.3_supports-color@5.5.0/node_modules/debug/src/node.js
322059
+ // ../../../v2/node_modules/.pnpm/debug@4.4.3_supports-color@7.2.0/node_modules/debug/src/node.js
321982
322060
  var require_node = __commonJS((exports, module) => {
321983
322061
  var tty = __require("tty");
321984
322062
  var util3 = __require("util");
@@ -322149,7 +322227,7 @@ var require_node = __commonJS((exports, module) => {
322149
322227
  };
322150
322228
  });
322151
322229
 
322152
- // ../../node_modules/.pnpm/debug@4.4.3_supports-color@5.5.0/node_modules/debug/src/index.js
322230
+ // ../../../v2/node_modules/.pnpm/debug@4.4.3_supports-color@7.2.0/node_modules/debug/src/index.js
322153
322231
  var require_src = __commonJS((exports, module) => {
322154
322232
  if (typeof process === "undefined" || process.type === "renderer" || false || process.__nwjs) {
322155
322233
  module.exports = require_browser();
@@ -322158,7 +322236,7 @@ var require_src = __commonJS((exports, module) => {
322158
322236
  }
322159
322237
  });
322160
322238
 
322161
- // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/lib/create-tokenizer.js
322239
+ // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/lib/create-tokenizer.js
322162
322240
  function createTokenizer(parser, initialize, from) {
322163
322241
  let point = {
322164
322242
  _bufferIndex: -1,
@@ -322481,7 +322559,7 @@ var init_create_tokenizer = __esm(() => {
322481
322559
  debug = import_debug.default("micromark");
322482
322560
  });
322483
322561
 
322484
- // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/lib/parse.js
322562
+ // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/lib/parse.js
322485
322563
  function parse6(options) {
322486
322564
  const settings = options || {};
322487
322565
  const constructs2 = combineExtensions([exports_constructs, ...settings.extensions || []]);
@@ -322513,7 +322591,7 @@ var init_parse4 = __esm(() => {
322513
322591
  init_create_tokenizer();
322514
322592
  });
322515
322593
 
322516
- // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/lib/postprocess.js
322594
+ // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/lib/postprocess.js
322517
322595
  function postprocess(events) {
322518
322596
  while (!subtokenize(events)) {}
322519
322597
  return events;
@@ -322522,7 +322600,7 @@ var init_postprocess = __esm(() => {
322522
322600
  init_dev7();
322523
322601
  });
322524
322602
 
322525
- // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/lib/preprocess.js
322603
+ // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/lib/preprocess.js
322526
322604
  function preprocess2() {
322527
322605
  let column = 1;
322528
322606
  let buffer = "";
@@ -322608,14 +322686,14 @@ var init_preprocess = __esm(() => {
322608
322686
  search = /[\0\t\n\r]/g;
322609
322687
  });
322610
322688
 
322611
- // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/index.js
322689
+ // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/index.js
322612
322690
  var init_dev13 = __esm(() => {
322613
322691
  init_parse4();
322614
322692
  init_postprocess();
322615
322693
  init_preprocess();
322616
322694
  });
322617
322695
 
322618
- // ../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/dev/index.js
322696
+ // ../../../v2/node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/dev/index.js
322619
322697
  function decodeString(value2) {
322620
322698
  return value2.replace(characterEscapeOrReference, decode4);
322621
322699
  }
@@ -322639,7 +322717,7 @@ var init_dev14 = __esm(() => {
322639
322717
  characterEscapeOrReference = /\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;
322640
322718
  });
322641
322719
 
322642
- // ../../node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/lib/index.js
322720
+ // ../../../v2/node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/lib/index.js
322643
322721
  function stringifyPosition(value2) {
322644
322722
  if (!value2 || typeof value2 !== "object") {
322645
322723
  return "";
@@ -322665,10 +322743,10 @@ function index(value2) {
322665
322743
  return value2 && typeof value2 === "number" ? value2 : 1;
322666
322744
  }
322667
322745
 
322668
- // ../../node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/index.js
322746
+ // ../../../v2/node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/index.js
322669
322747
  var init_unist_util_stringify_position = () => {};
322670
322748
 
322671
- // ../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/dev/lib/index.js
322749
+ // ../../../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
322672
322750
  function fromMarkdown(value2, encoding, options) {
322673
322751
  if (encoding && typeof encoding === "object") {
322674
322752
  options = encoding;
@@ -323383,12 +323461,12 @@ var init_lib2 = __esm(() => {
323383
323461
  own2 = {}.hasOwnProperty;
323384
323462
  });
323385
323463
 
323386
- // ../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/dev/index.js
323464
+ // ../../../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
323387
323465
  var init_dev15 = __esm(() => {
323388
323466
  init_lib2();
323389
323467
  });
323390
323468
 
323391
- // ../../node_modules/.pnpm/ccount@2.0.1/node_modules/ccount/index.js
323469
+ // ../../../v2/node_modules/.pnpm/ccount@2.0.1/node_modules/ccount/index.js
323392
323470
  function ccount(value2, character) {
323393
323471
  const source = String(value2);
323394
323472
  if (typeof character !== "string") {
@@ -323403,7 +323481,7 @@ function ccount(value2, character) {
323403
323481
  return count;
323404
323482
  }
323405
323483
 
323406
- // ../../node_modules/.pnpm/escape-string-regexp@5.0.0/node_modules/escape-string-regexp/index.js
323484
+ // ../../../v2/node_modules/.pnpm/escape-string-regexp@5.0.0/node_modules/escape-string-regexp/index.js
323407
323485
  function escapeStringRegexp(string7) {
323408
323486
  if (typeof string7 !== "string") {
323409
323487
  throw new TypeError("Expected a string");
@@ -323411,7 +323489,7 @@ function escapeStringRegexp(string7) {
323411
323489
  return string7.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
323412
323490
  }
323413
323491
 
323414
- // ../../node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/lib/index.js
323492
+ // ../../../v2/node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/lib/index.js
323415
323493
  function anyFactory(tests) {
323416
323494
  const checks4 = [];
323417
323495
  let index2 = -1;
@@ -323475,15 +323553,15 @@ var convert = function(test) {
323475
323553
  throw new Error("Expected function, string, or object as test");
323476
323554
  };
323477
323555
 
323478
- // ../../node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/index.js
323556
+ // ../../../v2/node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/index.js
323479
323557
  var init_unist_util_is = () => {};
323480
323558
 
323481
- // ../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/color.node.js
323559
+ // ../../../v2/node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/color.node.js
323482
323560
  function color(d) {
323483
323561
  return "\x1B[33m" + d + "\x1B[39m";
323484
323562
  }
323485
323563
 
323486
- // ../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/index.js
323564
+ // ../../../v2/node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/index.js
323487
323565
  function visitParents(tree, test, visitor, reverse) {
323488
323566
  let check2;
323489
323567
  if (typeof test === "function" && typeof visitor !== "function") {
@@ -323549,12 +323627,12 @@ var init_lib3 = __esm(() => {
323549
323627
  empty2 = [];
323550
323628
  });
323551
323629
 
323552
- // ../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/index.js
323630
+ // ../../../v2/node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/index.js
323553
323631
  var init_unist_util_visit_parents = __esm(() => {
323554
323632
  init_lib3();
323555
323633
  });
323556
323634
 
323557
- // ../../node_modules/.pnpm/mdast-util-find-and-replace@3.0.2/node_modules/mdast-util-find-and-replace/lib/index.js
323635
+ // ../../../v2/node_modules/.pnpm/mdast-util-find-and-replace@3.0.2/node_modules/mdast-util-find-and-replace/lib/index.js
323558
323636
  function findAndReplace(tree, list2, options) {
323559
323637
  const settings = options || {};
323560
323638
  const ignored = convert(settings.ignore || []);
@@ -323659,12 +323737,12 @@ var init_lib4 = __esm(() => {
323659
323737
  init_unist_util_is();
323660
323738
  });
323661
323739
 
323662
- // ../../node_modules/.pnpm/mdast-util-find-and-replace@3.0.2/node_modules/mdast-util-find-and-replace/index.js
323740
+ // ../../../v2/node_modules/.pnpm/mdast-util-find-and-replace@3.0.2/node_modules/mdast-util-find-and-replace/index.js
323663
323741
  var init_mdast_util_find_and_replace = __esm(() => {
323664
323742
  init_lib4();
323665
323743
  });
323666
323744
 
323667
- // ../../node_modules/.pnpm/mdast-util-gfm-autolink-literal@2.0.1/node_modules/mdast-util-gfm-autolink-literal/lib/index.js
323745
+ // ../../../v2/node_modules/.pnpm/mdast-util-gfm-autolink-literal@2.0.1/node_modules/mdast-util-gfm-autolink-literal/lib/index.js
323668
323746
  function gfmAutolinkLiteralFromMarkdown() {
323669
323747
  return {
323670
323748
  transforms: [transformGfmAutolinkLiterals],
@@ -323782,12 +323860,12 @@ var init_lib5 = __esm(() => {
323782
323860
  init_mdast_util_find_and_replace();
323783
323861
  });
323784
323862
 
323785
- // ../../node_modules/.pnpm/mdast-util-gfm-autolink-literal@2.0.1/node_modules/mdast-util-gfm-autolink-literal/index.js
323863
+ // ../../../v2/node_modules/.pnpm/mdast-util-gfm-autolink-literal@2.0.1/node_modules/mdast-util-gfm-autolink-literal/index.js
323786
323864
  var init_mdast_util_gfm_autolink_literal = __esm(() => {
323787
323865
  init_lib5();
323788
323866
  });
323789
323867
 
323790
- // ../../node_modules/.pnpm/mdast-util-gfm-footnote@2.1.0/node_modules/mdast-util-gfm-footnote/lib/index.js
323868
+ // ../../../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
323791
323869
  function enterFootnoteCallString() {
323792
323870
  this.buffer();
323793
323871
  }
@@ -323856,12 +323934,12 @@ var init_lib6 = __esm(() => {
323856
323934
  footnoteReference.peek = footnoteReferencePeek;
323857
323935
  });
323858
323936
 
323859
- // ../../node_modules/.pnpm/mdast-util-gfm-footnote@2.1.0/node_modules/mdast-util-gfm-footnote/index.js
323937
+ // ../../../v2/node_modules/.pnpm/mdast-util-gfm-footnote@2.1.0_supports-color@7.2.0/node_modules/mdast-util-gfm-footnote/index.js
323860
323938
  var init_mdast_util_gfm_footnote = __esm(() => {
323861
323939
  init_lib6();
323862
323940
  });
323863
323941
 
323864
- // ../../node_modules/.pnpm/mdast-util-gfm-strikethrough@2.0.0/node_modules/mdast-util-gfm-strikethrough/lib/index.js
323942
+ // ../../../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
323865
323943
  function gfmStrikethroughFromMarkdown() {
323866
323944
  return {
323867
323945
  canContainEols: ["delete"],
@@ -323895,12 +323973,12 @@ var init_lib7 = __esm(() => {
323895
323973
  handleDelete.peek = peekDelete;
323896
323974
  });
323897
323975
 
323898
- // ../../node_modules/.pnpm/mdast-util-gfm-strikethrough@2.0.0/node_modules/mdast-util-gfm-strikethrough/index.js
323976
+ // ../../../v2/node_modules/.pnpm/mdast-util-gfm-strikethrough@2.0.0_supports-color@7.2.0/node_modules/mdast-util-gfm-strikethrough/index.js
323899
323977
  var init_mdast_util_gfm_strikethrough = __esm(() => {
323900
323978
  init_lib7();
323901
323979
  });
323902
323980
 
323903
- // ../../node_modules/.pnpm/mdast-util-gfm-table@2.0.0/node_modules/mdast-util-gfm-table/lib/index.js
323981
+ // ../../../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
323904
323982
  function gfmTableFromMarkdown() {
323905
323983
  return {
323906
323984
  enter: {
@@ -323960,12 +324038,12 @@ var init_lib8 = __esm(() => {
323960
324038
  init_development();
323961
324039
  });
323962
324040
 
323963
- // ../../node_modules/.pnpm/mdast-util-gfm-table@2.0.0/node_modules/mdast-util-gfm-table/index.js
324041
+ // ../../../v2/node_modules/.pnpm/mdast-util-gfm-table@2.0.0_supports-color@7.2.0/node_modules/mdast-util-gfm-table/index.js
323964
324042
  var init_mdast_util_gfm_table = __esm(() => {
323965
324043
  init_lib8();
323966
324044
  });
323967
324045
 
323968
- // ../../node_modules/.pnpm/mdast-util-gfm-task-list-item@2.0.0/node_modules/mdast-util-gfm-task-list-item/lib/index.js
324046
+ // ../../../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
323969
324047
  function gfmTaskListItemFromMarkdown() {
323970
324048
  return {
323971
324049
  exit: {
@@ -324015,12 +324093,12 @@ var init_lib9 = __esm(() => {
324015
324093
  init_development();
324016
324094
  });
324017
324095
 
324018
- // ../../node_modules/.pnpm/mdast-util-gfm-task-list-item@2.0.0/node_modules/mdast-util-gfm-task-list-item/index.js
324096
+ // ../../../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
324019
324097
  var init_mdast_util_gfm_task_list_item = __esm(() => {
324020
324098
  init_lib9();
324021
324099
  });
324022
324100
 
324023
- // ../../node_modules/.pnpm/mdast-util-gfm@3.1.0/node_modules/mdast-util-gfm/lib/index.js
324101
+ // ../../../v2/node_modules/.pnpm/mdast-util-gfm@3.1.0_supports-color@7.2.0/node_modules/mdast-util-gfm/lib/index.js
324024
324102
  function gfmFromMarkdown() {
324025
324103
  return [
324026
324104
  gfmAutolinkLiteralFromMarkdown(),
@@ -324038,12 +324116,12 @@ var init_lib10 = __esm(() => {
324038
324116
  init_mdast_util_gfm_task_list_item();
324039
324117
  });
324040
324118
 
324041
- // ../../node_modules/.pnpm/mdast-util-gfm@3.1.0/node_modules/mdast-util-gfm/index.js
324119
+ // ../../../v2/node_modules/.pnpm/mdast-util-gfm@3.1.0_supports-color@7.2.0/node_modules/mdast-util-gfm/index.js
324042
324120
  var init_mdast_util_gfm = __esm(() => {
324043
324121
  init_lib10();
324044
324122
  });
324045
324123
 
324046
- // ../../node_modules/.pnpm/micromark-extension-gfm-autolink-literal@2.1.0/node_modules/micromark-extension-gfm-autolink-literal/dev/lib/syntax.js
324124
+ // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-autolink-literal@2.1.0/node_modules/micromark-extension-gfm-autolink-literal/dev/lib/syntax.js
324047
324125
  function gfmAutolinkLiteral() {
324048
324126
  return { text: text3 };
324049
324127
  }
@@ -324374,12 +324452,12 @@ var init_syntax = __esm(() => {
324374
324452
  text3[codes.lowercaseW] = [emailAutolink, wwwAutolink];
324375
324453
  });
324376
324454
 
324377
- // ../../node_modules/.pnpm/micromark-extension-gfm-autolink-literal@2.1.0/node_modules/micromark-extension-gfm-autolink-literal/dev/index.js
324455
+ // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-autolink-literal@2.1.0/node_modules/micromark-extension-gfm-autolink-literal/dev/index.js
324378
324456
  var init_dev16 = __esm(() => {
324379
324457
  init_syntax();
324380
324458
  });
324381
324459
 
324382
- // ../../node_modules/.pnpm/micromark-extension-gfm-footnote@2.1.0/node_modules/micromark-extension-gfm-footnote/dev/lib/syntax.js
324460
+ // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-footnote@2.1.0/node_modules/micromark-extension-gfm-footnote/dev/lib/syntax.js
324383
324461
  function gfmFootnote() {
324384
324462
  return {
324385
324463
  document: {
@@ -324643,12 +324721,12 @@ var init_syntax2 = __esm(() => {
324643
324721
  indent = { tokenize: tokenizeIndent2, partial: true };
324644
324722
  });
324645
324723
 
324646
- // ../../node_modules/.pnpm/micromark-extension-gfm-footnote@2.1.0/node_modules/micromark-extension-gfm-footnote/dev/index.js
324724
+ // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-footnote@2.1.0/node_modules/micromark-extension-gfm-footnote/dev/index.js
324647
324725
  var init_dev17 = __esm(() => {
324648
324726
  init_syntax2();
324649
324727
  });
324650
324728
 
324651
- // ../../node_modules/.pnpm/micromark-extension-gfm-strikethrough@2.1.0/node_modules/micromark-extension-gfm-strikethrough/dev/lib/syntax.js
324729
+ // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-strikethrough@2.1.0/node_modules/micromark-extension-gfm-strikethrough/dev/lib/syntax.js
324652
324730
  function gfmStrikethrough(options) {
324653
324731
  const options_ = options || {};
324654
324732
  let single = options_.singleTilde;
@@ -324754,12 +324832,12 @@ var init_syntax3 = __esm(() => {
324754
324832
  init_default3();
324755
324833
  });
324756
324834
 
324757
- // ../../node_modules/.pnpm/micromark-extension-gfm-strikethrough@2.1.0/node_modules/micromark-extension-gfm-strikethrough/dev/index.js
324835
+ // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-strikethrough@2.1.0/node_modules/micromark-extension-gfm-strikethrough/dev/index.js
324758
324836
  var init_dev18 = __esm(() => {
324759
324837
  init_syntax3();
324760
324838
  });
324761
324839
 
324762
- // ../../node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/dev/lib/edit-map.js
324840
+ // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/dev/lib/edit-map.js
324763
324841
  class EditMap {
324764
324842
  constructor() {
324765
324843
  this.map = [];
@@ -324809,7 +324887,7 @@ function addImplementation(editMap, at, remove, add) {
324809
324887
  editMap.map.push([at, remove, add]);
324810
324888
  }
324811
324889
 
324812
- // ../../node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/dev/lib/infer.js
324890
+ // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/dev/lib/infer.js
324813
324891
  function gfmTableAlign(events, index2) {
324814
324892
  ok2(events[index2][1].type === "table", "expected table");
324815
324893
  let inDelimiterRow = false;
@@ -324840,7 +324918,7 @@ var init_infer = __esm(() => {
324840
324918
  init_development();
324841
324919
  });
324842
324920
 
324843
- // ../../node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/dev/lib/syntax.js
324921
+ // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/dev/lib/syntax.js
324844
324922
  function gfmTable() {
324845
324923
  return {
324846
324924
  flow: {
@@ -325232,12 +325310,12 @@ var init_syntax4 = __esm(() => {
325232
325310
  init_infer();
325233
325311
  });
325234
325312
 
325235
- // ../../node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/dev/index.js
325313
+ // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/dev/index.js
325236
325314
  var init_dev19 = __esm(() => {
325237
325315
  init_syntax4();
325238
325316
  });
325239
325317
 
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
325318
+ // ../../../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
325241
325319
  function gfmTaskListItem() {
325242
325320
  return {
325243
325321
  text: { [codes.leftSquareBracket]: tasklistCheck }
@@ -325307,12 +325385,12 @@ var init_syntax5 = __esm(() => {
325307
325385
  tasklistCheck = { name: "tasklistCheck", tokenize: tokenizeTasklistCheck };
325308
325386
  });
325309
325387
 
325310
- // ../../node_modules/.pnpm/micromark-extension-gfm-task-list-item@2.1.0/node_modules/micromark-extension-gfm-task-list-item/dev/index.js
325388
+ // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-task-list-item@2.1.0/node_modules/micromark-extension-gfm-task-list-item/dev/index.js
325311
325389
  var init_dev20 = __esm(() => {
325312
325390
  init_syntax5();
325313
325391
  });
325314
325392
 
325315
- // ../../node_modules/.pnpm/micromark-extension-gfm@3.0.0/node_modules/micromark-extension-gfm/index.js
325393
+ // ../../../v2/node_modules/.pnpm/micromark-extension-gfm@3.0.0/node_modules/micromark-extension-gfm/index.js
325316
325394
  function gfm(options) {
325317
325395
  return combineExtensions([
325318
325396
  gfmAutolinkLiteral(),
@@ -326374,6 +326452,528 @@ var init_tracked_structural_wrapper = __esm(() => {
326374
326452
  init_common();
326375
326453
  });
326376
326454
 
326455
+ // ../../../v2/document-api-v2-adapter/dist/permission-ranges/adapter.js
326456
+ class V2PermissionRangesAdapter {
326457
+ constructor(context) {
326458
+ this.context = context;
326459
+ }
326460
+ list(input) {
326461
+ const ranges = listPermissionRanges(this.context).map(stripInternal2);
326462
+ const page = pageSlice(ranges, input);
326463
+ return buildDiscoveryResult({
326464
+ evaluatedRevision: this.context.currentPublicRevision(),
326465
+ total: ranges.length,
326466
+ items: page.items.map((range) => buildDiscoveryItem(range.id, buildResolvedHandle(`permissionRange:${range.id}`, "stable", "ext:permissionRange"), range)),
326467
+ page: { offset: page.offset, limit: page.limit, returned: page.items.length }
326468
+ });
326469
+ }
326470
+ get(input) {
326471
+ const range = listPermissionRanges(this.context).find((entry) => entry.id === input.id);
326472
+ if (!range)
326473
+ throw operationError("TARGET_NOT_FOUND", `permission range ${input.id} not found.`);
326474
+ return stripInternal2(range);
326475
+ }
326476
+ create(input, options) {
326477
+ const mutationGuard = guardDirectOnlyMutation(this.context, input, options);
326478
+ if (mutationGuard)
326479
+ return mutationGuard;
326480
+ const wholeControl = resolveWholeControlPermissionTarget(this.context, input.target);
326481
+ if (wholeControl) {
326482
+ const xml2 = this.readDocumentXml();
326483
+ const id2 = input.id ?? allocateRangeId(listPermissionRanges(this.context));
326484
+ if (listPermissionRanges(this.context).some((range) => range.id === id2)) {
326485
+ throw operationError("INVALID_INPUT", "permission range id already exists.");
326486
+ }
326487
+ const rangeXml = buildPermStart(id2, input.principal) + xml2.slice(wholeControl.start, wholeControl.end) + buildPermEnd(id2);
326488
+ const nextXml2 = replaceRange2(xml2, wholeControl.start, wholeControl.end, rangeXml);
326489
+ if (dryRunRequested(input, options)) {
326490
+ const positions = positionsForMarkerEnvelope(nextXml2, wholeControl.start, wholeControl.start + rangeXml.length - buildPermEnd(id2).length);
326491
+ return { success: true, range: { id: id2, principal: input.principal, kind: positions.start.blockId === positions.end.blockId ? "inline" : "block", ...positions } };
326492
+ }
326493
+ const committed2 = commitWholePartUpdates(this.context, "permission-range-create", { [DOCUMENT_PART_URI5]: encodeXml(nextXml2) }, { expectedRevision: expectedRevisionFrom(input, options) });
326494
+ if (!committed2.ok)
326495
+ return { success: false, failure: { code: committed2.code, message: committed2.message } };
326496
+ return { success: true, range: this.get({ id: id2 }) };
326497
+ }
326498
+ const resolved = resolveBodySelectionTarget(this.context, input.target);
326499
+ if ("error" in resolved)
326500
+ throw operationError(resolved.error, resolved.message);
326501
+ if (resolved.startBlockId !== resolved.endBlockId) {
326502
+ throw operationError("INVALID_TARGET", "permissionRanges.create requires a same-paragraph text selection.");
326503
+ }
326504
+ const xml = this.readDocumentXml();
326505
+ const id = input.id ?? allocateRangeId(listPermissionRanges(this.context));
326506
+ const para = findParagraphById2(xml, resolved.startBlockId);
326507
+ if (!para)
326508
+ throw operationError("TARGET_NOT_FOUND", `paragraph ${resolved.startBlockId} not found.`);
326509
+ if (dryRunRequested(input, options)) {
326510
+ return {
326511
+ success: true,
326512
+ range: {
326513
+ id,
326514
+ principal: input.principal,
326515
+ kind: "inline",
326516
+ start: { blockId: resolved.startBlockId, offset: resolved.startOffset },
326517
+ end: { blockId: resolved.endBlockId, offset: resolved.endOffset }
326518
+ }
326519
+ };
326520
+ }
326521
+ const wrapped = wrapTextRangeWithPermissionMarkers(para.xml, resolved.startOffset, resolved.endOffset, id, input.principal);
326522
+ const nextXml = replaceRange2(xml, para.start, para.end, wrapped);
326523
+ const committed = commitWholePartUpdates(this.context, "permission-range-create", { [DOCUMENT_PART_URI5]: encodeXml(nextXml) }, { expectedRevision: expectedRevisionFrom(input, options) });
326524
+ if (!committed.ok)
326525
+ return { success: false, failure: { code: committed.code, message: committed.message } };
326526
+ return { success: true, range: this.get({ id }) };
326527
+ }
326528
+ remove(input, options) {
326529
+ const mutationGuard = guardDirectOnlyMutation(this.context, input, options);
326530
+ if (mutationGuard)
326531
+ return mutationGuard;
326532
+ const range = listPermissionRanges(this.context).find((entry) => entry.id === input.id);
326533
+ if (!range)
326534
+ throw operationError("TARGET_NOT_FOUND", `permission range ${input.id} not found.`);
326535
+ if (dryRunRequested(input, options))
326536
+ return { success: true, id: input.id };
326537
+ let xml = this.readDocumentXml();
326538
+ xml = removeMarkerAt(xml, range.endTagStart, range.endTagEnd);
326539
+ xml = removeMarkerAt(xml, range.startTagStart, range.startTagEnd);
326540
+ const committed = commitWholePartUpdates(this.context, "permission-range-remove", { [DOCUMENT_PART_URI5]: encodeXml(xml) }, { expectedRevision: expectedRevisionFrom(input, options) });
326541
+ if (!committed.ok)
326542
+ return { success: false, failure: { code: committed.code, message: committed.message } };
326543
+ return { success: true, id: input.id };
326544
+ }
326545
+ updatePrincipal(input, options) {
326546
+ const mutationGuard = guardDirectOnlyMutation(this.context, input, options);
326547
+ if (mutationGuard)
326548
+ return mutationGuard;
326549
+ const range = listPermissionRanges(this.context).find((entry) => entry.id === input.id);
326550
+ if (!range)
326551
+ throw operationError("TARGET_NOT_FOUND", `permission range ${input.id} not found.`);
326552
+ if (dryRunRequested(input, options))
326553
+ return { success: true, range: stripInternal2(range) };
326554
+ const xml = this.readDocumentXml();
326555
+ const marker = xml.slice(range.startTagStart, range.startTagEnd);
326556
+ const nextMarker = buildPermStart(input.id, input.principal);
326557
+ const nextXml = xml.replace(marker, nextMarker);
326558
+ const committed = commitWholePartUpdates(this.context, "permission-range-update", { [DOCUMENT_PART_URI5]: encodeXml(nextXml) }, { expectedRevision: expectedRevisionFrom(input, options) });
326559
+ if (!committed.ok)
326560
+ return { success: false, failure: { code: committed.code, message: committed.message } };
326561
+ return { success: true, range: this.get({ id: input.id }) };
326562
+ }
326563
+ readDocumentXml() {
326564
+ const xml = readPartXml(this.context, DOCUMENT_PART_URI5);
326565
+ if (!xml)
326566
+ throw operationError("PRECONDITION_FAILED", "document.xml bytes are unavailable.");
326567
+ return xml;
326568
+ }
326569
+ }
326570
+ function listPermissionRanges(context) {
326571
+ const xml = readPartXml(context, DOCUMENT_PART_URI5);
326572
+ if (!xml)
326573
+ return [];
326574
+ const starts = new Map;
326575
+ const startRe = /<w:permStart\b[^>]*\/>/g;
326576
+ for (let match = startRe.exec(xml);match; match = startRe.exec(xml)) {
326577
+ const id = attrValue(match[0], "id");
326578
+ if (id)
326579
+ starts.set(id, { start: match.index, end: startRe.lastIndex, tag: match[0] });
326580
+ }
326581
+ const out = [];
326582
+ const endRe = /<w:permEnd\b[^>]*\/>/g;
326583
+ for (let match = endRe.exec(xml);match; match = endRe.exec(xml)) {
326584
+ const id = attrValue(match[0], "id");
326585
+ if (!id)
326586
+ continue;
326587
+ const start = starts.get(id);
326588
+ if (!start)
326589
+ continue;
326590
+ const positions = positionsForMarkerEnvelope(xml, start.start, match.index);
326591
+ const startPos = positions.start;
326592
+ const endPos = positions.end;
326593
+ out.push({
326594
+ id,
326595
+ principal: principalFromPermStart(start.tag),
326596
+ kind: startPos.blockId === endPos.blockId ? "inline" : "block",
326597
+ start: startPos,
326598
+ end: endPos,
326599
+ startTagStart: start.start,
326600
+ startTagEnd: start.end,
326601
+ endTagStart: match.index,
326602
+ endTagEnd: endRe.lastIndex
326603
+ });
326604
+ }
326605
+ return out.sort((a, b) => a.startTagStart - b.startTagStart);
326606
+ }
326607
+ function findContentControlXmlRange(xml, id) {
326608
+ const parsed = collectXmlElementRanges(xml);
326609
+ if (parsed.errors.length)
326610
+ return null;
326611
+ const matches = parsed.ranges.filter((range) => range.tag.localName === "sdt" && range.tag.namespaceUri === "http://schemas.openxmlformats.org/wordprocessingml/2006/main" && attrValue(/^\s*<w:sdtPr\b[^>]*>[\s\S]*?<\/w:sdtPr>/.exec(xml.slice(range.openEnd, range.closeStart))?.[0]?.match(/<w:id\b[^>]*\/>/)?.[0] ?? "", "val") === id);
326612
+ return matches.length === 1 ? { start: matches[0].start, end: matches[0].end } : null;
326613
+ }
326614
+ function resolveWholeControlPermissionTarget(context, target) {
326615
+ const { start, end } = target;
326616
+ if (start.kind !== "nodeEdge" && end.kind !== "nodeEdge")
326617
+ return null;
326618
+ if (start.kind !== "nodeEdge" || end.kind !== "nodeEdge" || start.edge !== "before" || end.edge !== "after" || start.node.nodeType !== "sdt" || end.node.nodeType !== "sdt" || start.node.nodeId !== end.node.nodeId) {
326619
+ throw operationError("INVALID_TARGET", "permissionRanges.create requires before/after edges of one content control.");
326620
+ }
326621
+ for (const locator of [target.story, start.node.story, end.node.story]) {
326622
+ const story = context.resolveFullStoryLocator(locator);
326623
+ if ("error" in story || story.partUri !== DOCUMENT_PART_URI5) {
326624
+ throw operationError("INVALID_TARGET", "whole-control permission ranges require one body content control.");
326625
+ }
326626
+ }
326627
+ const control2 = findContentControlXmlRange(readPartXml(context, DOCUMENT_PART_URI5) ?? "", start.node.nodeId);
326628
+ if (!control2)
326629
+ throw operationError("TARGET_NOT_FOUND", "permission-range content control was not found unambiguously.");
326630
+ return control2;
326631
+ }
326632
+ function positionsForMarkerEnvelope(xml, start, end) {
326633
+ const startPos = positionForXmlIndex(xml, start);
326634
+ const endPos = positionForXmlIndex(xml, end);
326635
+ if (startPos.blockId !== "unknown" && endPos.blockId !== "unknown")
326636
+ return { start: startPos, end: endPos };
326637
+ const paragraphs = collectXmlElementRanges(xml).ranges.filter((range) => range.tag.localName === "p" && range.start > start && range.end <= end);
326638
+ if (!paragraphs.length)
326639
+ return { start: startPos, end: endPos };
326640
+ const first = paragraphs[0];
326641
+ const last = paragraphs[paragraphs.length - 1];
326642
+ return {
326643
+ start: { blockId: attrValue(xml.slice(first.start, first.openEnd), "paraId") ?? "unknown", offset: 0 },
326644
+ end: { blockId: attrValue(xml.slice(last.start, last.openEnd), "paraId") ?? "unknown", offset: extractVisibleTextFromXml(xml.slice(last.start, last.end)).length }
326645
+ };
326646
+ }
326647
+ function stripInternal2(range) {
326648
+ return {
326649
+ id: range.id,
326650
+ principal: range.principal,
326651
+ kind: range.kind,
326652
+ start: range.start,
326653
+ end: range.end
326654
+ };
326655
+ }
326656
+ function principalFromPermStart(tag) {
326657
+ const attrs = readAttrs(tag);
326658
+ const group = attrs["w:edGrp"] ?? attrs.edGrp;
326659
+ if (group === "everyone")
326660
+ return { kind: "everyone" };
326661
+ const editor = attrs["w:ed"] ?? attrs.ed;
326662
+ return { kind: "editor", id: editor ?? group ?? "unknown" };
326663
+ }
326664
+ function buildPermStart(id, principal) {
326665
+ const principalAttr = principal.kind === "everyone" ? ' w:edGrp="everyone"' : ` w:ed="${xmlEscapeAttr(principal.id)}"`;
326666
+ return `<w:permStart w:id="${xmlEscapeAttr(id)}"${principalAttr}/>`;
326667
+ }
326668
+ function buildPermEnd(id) {
326669
+ return `<w:permEnd w:id="${xmlEscapeAttr(id)}"/>`;
326670
+ }
326671
+ function wrapTextRangeWithPermissionMarkers(paragraphXml, start, end, id, principal) {
326672
+ return replaceTextRangeInParagraph(paragraphXml, start, end, (selected) => [
326673
+ `<w:r>${buildPermStart(id, principal)}</w:r>`,
326674
+ `<w:r><w:t>${xmlEscapeText(selected)}</w:t></w:r>`,
326675
+ `<w:r>${buildPermEnd(id)}</w:r>`
326676
+ ].join(""));
326677
+ }
326678
+ function positionForXmlIndex(documentXml, index2) {
326679
+ const para = findParagraphContaining2(documentXml, index2);
326680
+ if (!para)
326681
+ return { blockId: "unknown", offset: 0 };
326682
+ return { blockId: attrValue(para.openTag, "paraId") ?? "unknown", offset: extractText2(para.xml.slice(0, index2 - para.start)).length };
326683
+ }
326684
+ function findParagraphContaining2(documentXml, index2) {
326685
+ const paraRe = /<w:p\b[^>]*>[\s\S]*?<\/w:p>/g;
326686
+ for (let match = paraRe.exec(documentXml);match; match = paraRe.exec(documentXml)) {
326687
+ if (match.index <= index2 && paraRe.lastIndex >= index2) {
326688
+ return { start: match.index, end: paraRe.lastIndex, xml: match[0], openTag: /^<w:p\b[^>]*>/.exec(match[0])?.[0] ?? "" };
326689
+ }
326690
+ }
326691
+ return null;
326692
+ }
326693
+ function findParagraphById2(documentXml, blockId) {
326694
+ const paraRe = /<w:p\b[^>]*>[\s\S]*?<\/w:p>/g;
326695
+ for (let match = paraRe.exec(documentXml);match; match = paraRe.exec(documentXml)) {
326696
+ if (match[0].includes(`w14:paraId="${blockId}"`))
326697
+ return { start: match.index, end: paraRe.lastIndex, xml: match[0] };
326698
+ }
326699
+ return null;
326700
+ }
326701
+ function replaceTextRangeInParagraph(paragraphXml, start, end, replacement) {
326702
+ const textRe = /<w:t\b[^>]*>([\s\S]*?)<\/w:t>/g;
326703
+ let offset = 0;
326704
+ for (let match = textRe.exec(paragraphXml);match; match = textRe.exec(paragraphXml)) {
326705
+ const text4 = decodeXmlEntities(match[1]);
326706
+ const nextOffset = offset + text4.length;
326707
+ if (start >= offset && end <= nextOffset) {
326708
+ const localStart = start - offset;
326709
+ const localEnd = end - offset;
326710
+ const before = text4.slice(0, localStart);
326711
+ const selected = text4.slice(localStart, localEnd);
326712
+ const after = text4.slice(localEnd);
326713
+ const runStart = findEnclosingRunStart(paragraphXml, match.index);
326714
+ const runEnd = paragraphXml.indexOf("</w:r>", textRe.lastIndex) + "</w:r>".length;
326715
+ const { runOpenTag, runProperties } = readRunOpenTagAndProperties(paragraphXml, runStart);
326716
+ const mkRun = (segment) => `${runOpenTag}${runProperties}<w:t xml:space="preserve">${xmlEscapeText(segment)}</w:t></w:r>`;
326717
+ return [
326718
+ paragraphXml.slice(0, runStart),
326719
+ before ? mkRun(before) : "",
326720
+ replacement(selected),
326721
+ after ? mkRun(after) : "",
326722
+ paragraphXml.slice(runEnd)
326723
+ ].join("");
326724
+ }
326725
+ offset = nextOffset;
326726
+ }
326727
+ throw operationError("TARGET_NOT_FOUND", "text range not found in paragraph.");
326728
+ }
326729
+ function removeMarkerAt(xml, start, end) {
326730
+ const runStart = findEnclosingRunStart(xml, start);
326731
+ const runEnd = xml.indexOf("</w:r>", end);
326732
+ if (runStart >= 0 && runEnd >= end) {
326733
+ const runXml = xml.slice(runStart, runEnd + "</w:r>".length);
326734
+ if (/^<w:r\b[^>]*>\s*<w:perm(?:Start|End)\b[^>]*\/>\s*<\/w:r>$/.test(runXml)) {
326735
+ return replaceRange2(xml, runStart, runEnd + "</w:r>".length, "");
326736
+ }
326737
+ }
326738
+ return replaceRange2(xml, start, end, "");
326739
+ }
326740
+ function replaceRange2(xml, start, end, replacement) {
326741
+ return `${xml.slice(0, start)}${replacement}${xml.slice(end)}`;
326742
+ }
326743
+ function extractText2(xml) {
326744
+ let out = "";
326745
+ const re = /<w:t\b[^>]*>([\s\S]*?)<\/w:t>/g;
326746
+ for (let match = re.exec(xml);match; match = re.exec(xml))
326747
+ out += decodeXmlEntities(match[1]);
326748
+ return out;
326749
+ }
326750
+ function allocateRangeId(existing) {
326751
+ const max2 = existing.reduce((acc, range) => Math.max(acc, Number(range.id) || 0), 1000);
326752
+ return String(max2 + 1 + Math.floor(Math.random() * 1000));
326753
+ }
326754
+ var init_adapter6 = __esm(() => {
326755
+ init_src3();
326756
+ init_sd_document_session_internal();
326757
+ init_visible_text();
326758
+ init_shared();
326759
+ init_xml();
326760
+ });
326761
+
326762
+ // ../../../v2/document-api-v2-adapter/dist/protection/adapter.js
326763
+ class V2ProtectionAdapter {
326764
+ constructor(context) {
326765
+ this.context = context;
326766
+ }
326767
+ get(_input) {
326768
+ return projectProtectionStateFromSettings(readPartXml(this.context, SETTINGS_PART_URI3));
326769
+ }
326770
+ setEditingRestriction(input, options) {
326771
+ const mutationGuard = guardDirectOnlyMutation(this.context, input, options);
326772
+ if (mutationGuard)
326773
+ return mutationGuard;
326774
+ const currentXml3 = readPartXml(this.context, SETTINGS_PART_URI3);
326775
+ const nextXml = setDocumentProtectionXml(currentXml3, {
326776
+ mode: input.mode,
326777
+ enforced: true,
326778
+ formattingRestricted: Boolean(input.formattingRestricted)
326779
+ });
326780
+ if (dryRunRequested(input, options)) {
326781
+ return { success: true, state: projectProtectionStateFromSettings(nextXml) };
326782
+ }
326783
+ if (nextXml === currentXml3) {
326784
+ const expectedRevision = expectedRevisionFrom(input, options);
326785
+ const failure4 = this.context.validateMutation({ expectedRevision: expectedRevision === undefined ? undefined : String(expectedRevision) });
326786
+ if (failure4)
326787
+ return { success: false, failure: failure4 };
326788
+ return { success: true, state: projectProtectionStateFromSettings(nextXml), changed: false };
326789
+ }
326790
+ const committed = commitWholePartUpdates(this.context, "protection-set", { [SETTINGS_PART_URI3]: encodeXml(nextXml) }, { expectedRevision: expectedRevisionFrom(input, options) });
326791
+ if (!committed.ok)
326792
+ return { success: false, failure: { code: committed.code, message: committed.message } };
326793
+ return { success: true, state: projectProtectionStateFromSettings(nextXml) };
326794
+ }
326795
+ clearEditingRestriction(input, options) {
326796
+ const mutationGuard = guardDirectOnlyMutation(this.context, input, options);
326797
+ if (mutationGuard)
326798
+ return mutationGuard;
326799
+ const currentXml3 = readPartXml(this.context, SETTINGS_PART_URI3);
326800
+ const nextXml = clearDocumentProtectionXml(currentXml3);
326801
+ if (dryRunRequested(input ?? {}, options)) {
326802
+ return { success: true, state: projectProtectionStateFromSettings(nextXml) };
326803
+ }
326804
+ if (nextXml === currentXml3) {
326805
+ const expectedRevision = expectedRevisionFrom(input, options);
326806
+ const failure4 = this.context.validateMutation({ expectedRevision: expectedRevision === undefined ? undefined : String(expectedRevision) });
326807
+ if (failure4)
326808
+ return { success: false, failure: failure4 };
326809
+ return { success: true, state: projectProtectionStateFromSettings(nextXml), changed: false };
326810
+ }
326811
+ const committed = commitWholePartUpdates(this.context, "protection-clear", { [SETTINGS_PART_URI3]: encodeXml(nextXml) }, { expectedRevision: expectedRevisionFrom(input, options) });
326812
+ if (!committed.ok)
326813
+ return { success: false, failure: { code: committed.code, message: committed.message } };
326814
+ return { success: true, state: projectProtectionStateFromSettings(nextXml) };
326815
+ }
326816
+ }
326817
+ function projectProtectionStateFromSettings(settingsXml) {
326818
+ const documentProtection = settingsXml ? matchElement(settingsXml, "w:documentProtection") : null;
326819
+ const writeProtection = settingsXml ? matchElement(settingsXml, "w:writeProtection") : null;
326820
+ const readOnlyRecommended = settingsXml ? /<w:readOnlyRecommended\b/.test(settingsXml) : false;
326821
+ return {
326822
+ editingRestriction: projectEditingRestriction(documentProtection ? readAttrs(documentProtection) : null),
326823
+ writeProtection: projectWriteProtection(writeProtection ? readAttrs(writeProtection) : null),
326824
+ readOnlyRecommended
326825
+ };
326826
+ }
326827
+ function projectEditingRestriction(raw) {
326828
+ if (!raw) {
326829
+ return { ...DEFAULT_PROTECTION_STATE.editingRestriction };
326830
+ }
326831
+ const editRaw = pickAttr(raw, "edit");
326832
+ const mode = VALID_EDIT_MODES.has(editRaw) ? editRaw : "none";
326833
+ const enforced = parseBoolAttr(pickAttr(raw, "enforcement"));
326834
+ const formattingRestricted = parseBoolAttr(pickAttr(raw, "formatting"));
326835
+ const passwordProtected = hasPasswordMetadata(raw);
326836
+ return {
326837
+ mode,
326838
+ enforced,
326839
+ runtimeEnforced: enforced && mode === "readOnly",
326840
+ passwordProtected,
326841
+ formattingRestricted
326842
+ };
326843
+ }
326844
+ function projectWriteProtection(raw) {
326845
+ if (!raw) {
326846
+ return { ...DEFAULT_PROTECTION_STATE.writeProtection };
326847
+ }
326848
+ return {
326849
+ enabled: true,
326850
+ passwordProtected: hasPasswordMetadata(raw)
326851
+ };
326852
+ }
326853
+ function pickAttr(raw, localName2) {
326854
+ const wKey = `w:${localName2}`;
326855
+ if (Object.prototype.hasOwnProperty.call(raw, wKey))
326856
+ return raw[wKey];
326857
+ if (Object.prototype.hasOwnProperty.call(raw, localName2))
326858
+ return raw[localName2];
326859
+ return null;
326860
+ }
326861
+ function parseBoolAttr(value2) {
326862
+ if (value2 == null)
326863
+ return false;
326864
+ return value2 === "1" || value2 === "true" || value2 === "on";
326865
+ }
326866
+ function hasPasswordMetadata(raw) {
326867
+ for (const key2 of Object.keys(raw)) {
326868
+ if (PASSWORD_VERIFIER_ATTRS.has(key2)) {
326869
+ const value2 = raw[key2];
326870
+ if (value2 && value2.length > 0)
326871
+ return true;
326872
+ }
326873
+ }
326874
+ return false;
326875
+ }
326876
+ function setDocumentProtectionXml(settingsXml, input) {
326877
+ const xml = settingsXml ?? emptySettingsXml();
326878
+ const existing = matchElement(xml, "w:documentProtection");
326879
+ const attrs = existing ? readAttrs(existing) : {};
326880
+ attrs["w:edit"] = input.mode;
326881
+ attrs["w:enforcement"] = input.enforced ? "1" : "0";
326882
+ attrs["w:formatting"] = input.formattingRestricted ? "1" : "0";
326883
+ const element = buildDocumentProtectionElement(attrs);
326884
+ if (existing)
326885
+ return xml.replace(existing, element);
326886
+ return xml.replace(/<\/w:settings>\s*$/, `${element}</w:settings>`);
326887
+ }
326888
+ function clearDocumentProtectionXml(settingsXml) {
326889
+ const xml = settingsXml ?? emptySettingsXml();
326890
+ const existing = matchElement(xml, "w:documentProtection");
326891
+ const attrs = existing ? readAttrs(existing) : { "w:edit": "readOnly" };
326892
+ attrs["w:enforcement"] = "0";
326893
+ const element = buildDocumentProtectionElement(attrs);
326894
+ if (existing)
326895
+ return xml.replace(existing, element);
326896
+ return xml.replace(/<\/w:settings>\s*$/, `${element}</w:settings>`);
326897
+ }
326898
+ function buildDocumentProtectionElement(attrs) {
326899
+ const attrXml = Object.entries(attrs).map(([key2, value2]) => ` ${key2}="${xmlEscapeAttr(value2)}"`).join("");
326900
+ return `<w:documentProtection${attrXml}/>`;
326901
+ }
326902
+ function matchElement(xml, name) {
326903
+ const escaped = name.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
326904
+ return new RegExp(`<${escaped}\\b[^>]*(?:/>|>[\\s\\S]*?</${escaped}>)`).exec(xml)?.[0] ?? null;
326905
+ }
326906
+ function emptySettingsXml() {
326907
+ return [
326908
+ '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>',
326909
+ '<w:settings xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"',
326910
+ ' xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"',
326911
+ ' xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006">',
326912
+ "</w:settings>"
326913
+ ].join("");
326914
+ }
326915
+ var PASSWORD_VERIFIER_ATTRS, VALID_EDIT_MODES;
326916
+ var init_adapter7 = __esm(() => {
326917
+ init_src3();
326918
+ init_shared();
326919
+ init_xml();
326920
+ PASSWORD_VERIFIER_ATTRS = new Set([
326921
+ "w:cryptProviderType",
326922
+ "w:cryptAlgorithmClass",
326923
+ "w:cryptAlgorithmType",
326924
+ "w:cryptAlgorithmSid",
326925
+ "w:cryptSpinCount",
326926
+ "w:hash",
326927
+ "w:salt",
326928
+ "w:algorithmName",
326929
+ "w:hashValue",
326930
+ "w:saltValue",
326931
+ "w:spinCount"
326932
+ ]);
326933
+ VALID_EDIT_MODES = new Set([
326934
+ "none",
326935
+ "readOnly",
326936
+ "comments",
326937
+ "trackedChanges",
326938
+ "forms"
326939
+ ]);
326940
+ });
326941
+
326942
+ // ../../../v2/document-api-v2-adapter/dist/protection/mutation-guard.js
326943
+ function documentProtectionAllowsXmlRange(context, partUri, start, end) {
326944
+ if (!new V2ProtectionAdapter(context).get().editingRestriction.runtimeEnforced)
326945
+ return true;
326946
+ if (partUri !== DOCUMENT_PART_URI5 || start < 0 || end < start)
326947
+ return false;
326948
+ return listPermissionRanges(context).some((range) => range.principal.kind === "everyone" && range.startTagEnd <= start && end <= range.endTagStart);
326949
+ }
326950
+ function requireDocumentProtectionXmlRange(context, partUri, start, end) {
326951
+ if (!documentProtectionAllowsXmlRange(context, partUri, start, end)) {
326952
+ throw operationError("PERMISSION_DENIED", DOCUMENT_PROTECTION_MESSAGE);
326953
+ }
326954
+ }
326955
+ function documentProtectionAllowsXmlRewrite(context, partUri, before, after) {
326956
+ if (!new V2ProtectionAdapter(context).get().editingRestriction.runtimeEnforced || before === after)
326957
+ return true;
326958
+ let start = 0;
326959
+ while (start < before.length && start < after.length && before[start] === after[start])
326960
+ start++;
326961
+ let end = before.length;
326962
+ let afterEnd = after.length;
326963
+ while (end > start && afterEnd > start && before[end - 1] === after[afterEnd - 1]) {
326964
+ end--;
326965
+ afterEnd--;
326966
+ }
326967
+ return documentProtectionAllowsXmlRange(context, partUri, start, end);
326968
+ }
326969
+ var DOCUMENT_PROTECTION_MESSAGE = "document protection permits edits only within an everyone permission range.";
326970
+ var init_mutation_guard = __esm(() => {
326971
+ init_shared();
326972
+ init_adapter6();
326973
+ init_xml();
326974
+ init_adapter7();
326975
+ });
326976
+
326377
326977
  // ../../../v2/editor-core/dist/review-read-model.js
326378
326978
  var init_review_read_model = __esm(() => {
326379
326979
  init_rewrite_groups();
@@ -327304,428 +327904,6 @@ var init_raw_block_ref = __esm(() => {
327304
327904
  init_story_surface();
327305
327905
  });
327306
327906
 
327307
- // ../../../v2/document-api-v2-adapter/dist/permission-ranges/adapter.js
327308
- class V2PermissionRangesAdapter {
327309
- constructor(context) {
327310
- this.context = context;
327311
- }
327312
- list(input) {
327313
- const ranges = listPermissionRanges(this.context).map(stripInternal2);
327314
- const page = pageSlice(ranges, input);
327315
- return buildDiscoveryResult({
327316
- evaluatedRevision: this.context.currentPublicRevision(),
327317
- total: ranges.length,
327318
- items: page.items.map((range) => buildDiscoveryItem(range.id, buildResolvedHandle(`permissionRange:${range.id}`, "stable", "ext:permissionRange"), range)),
327319
- page: { offset: page.offset, limit: page.limit, returned: page.items.length }
327320
- });
327321
- }
327322
- get(input) {
327323
- const range = listPermissionRanges(this.context).find((entry) => entry.id === input.id);
327324
- if (!range)
327325
- throw operationError("TARGET_NOT_FOUND", `permission range ${input.id} not found.`);
327326
- return stripInternal2(range);
327327
- }
327328
- create(input, options) {
327329
- const mutationGuard = guardDirectOnlyMutation(this.context, input, options);
327330
- if (mutationGuard)
327331
- return mutationGuard;
327332
- const resolved = resolveBodySelectionTarget(this.context, input.target);
327333
- if ("error" in resolved)
327334
- throw operationError(resolved.error, resolved.message);
327335
- if (resolved.startBlockId !== resolved.endBlockId) {
327336
- throw operationError("INVALID_TARGET", "permissionRanges.create requires a same-paragraph text selection.");
327337
- }
327338
- const xml = this.readDocumentXml();
327339
- const id = input.id ?? allocateRangeId(listPermissionRanges(this.context));
327340
- const para = findParagraphById2(xml, resolved.startBlockId);
327341
- if (!para)
327342
- throw operationError("TARGET_NOT_FOUND", `paragraph ${resolved.startBlockId} not found.`);
327343
- if (dryRunRequested(input, options)) {
327344
- return {
327345
- success: true,
327346
- range: {
327347
- id,
327348
- principal: input.principal,
327349
- kind: "inline",
327350
- start: { blockId: resolved.startBlockId, offset: resolved.startOffset },
327351
- end: { blockId: resolved.endBlockId, offset: resolved.endOffset }
327352
- }
327353
- };
327354
- }
327355
- const wrapped = wrapTextRangeWithPermissionMarkers(para.xml, resolved.startOffset, resolved.endOffset, id, input.principal);
327356
- const nextXml = replaceRange2(xml, para.start, para.end, wrapped);
327357
- const committed = commitWholePartUpdates(this.context, "permission-range-create", { [DOCUMENT_PART_URI5]: encodeXml(nextXml) }, { expectedRevision: expectedRevisionFrom(input, options) });
327358
- if (!committed.ok)
327359
- return { success: false, failure: { code: committed.code, message: committed.message } };
327360
- return { success: true, range: this.get({ id }) };
327361
- }
327362
- remove(input, options) {
327363
- const mutationGuard = guardDirectOnlyMutation(this.context, input, options);
327364
- if (mutationGuard)
327365
- return mutationGuard;
327366
- const range = listPermissionRanges(this.context).find((entry) => entry.id === input.id);
327367
- if (!range)
327368
- throw operationError("TARGET_NOT_FOUND", `permission range ${input.id} not found.`);
327369
- if (dryRunRequested(input, options))
327370
- return { success: true, id: input.id };
327371
- let xml = this.readDocumentXml();
327372
- xml = removeMarkerAt(xml, range.endTagStart, range.endTagEnd);
327373
- xml = removeMarkerAt(xml, range.startTagStart, range.startTagEnd);
327374
- const committed = commitWholePartUpdates(this.context, "permission-range-remove", { [DOCUMENT_PART_URI5]: encodeXml(xml) }, { expectedRevision: expectedRevisionFrom(input, options) });
327375
- if (!committed.ok)
327376
- return { success: false, failure: { code: committed.code, message: committed.message } };
327377
- return { success: true, id: input.id };
327378
- }
327379
- updatePrincipal(input, options) {
327380
- const mutationGuard = guardDirectOnlyMutation(this.context, input, options);
327381
- if (mutationGuard)
327382
- return mutationGuard;
327383
- const range = listPermissionRanges(this.context).find((entry) => entry.id === input.id);
327384
- if (!range)
327385
- throw operationError("TARGET_NOT_FOUND", `permission range ${input.id} not found.`);
327386
- if (dryRunRequested(input, options))
327387
- return { success: true, range: stripInternal2(range) };
327388
- const xml = this.readDocumentXml();
327389
- const marker = xml.slice(range.startTagStart, range.startTagEnd);
327390
- const nextMarker = buildPermStart(input.id, input.principal);
327391
- const nextXml = xml.replace(marker, nextMarker);
327392
- const committed = commitWholePartUpdates(this.context, "permission-range-update", { [DOCUMENT_PART_URI5]: encodeXml(nextXml) }, { expectedRevision: expectedRevisionFrom(input, options) });
327393
- if (!committed.ok)
327394
- return { success: false, failure: { code: committed.code, message: committed.message } };
327395
- return { success: true, range: this.get({ id: input.id }) };
327396
- }
327397
- readDocumentXml() {
327398
- const xml = readPartXml(this.context, DOCUMENT_PART_URI5);
327399
- if (!xml)
327400
- throw operationError("PRECONDITION_FAILED", "document.xml bytes are unavailable.");
327401
- return xml;
327402
- }
327403
- }
327404
- function listPermissionRanges(context) {
327405
- const xml = readPartXml(context, DOCUMENT_PART_URI5);
327406
- if (!xml)
327407
- return [];
327408
- const starts = new Map;
327409
- const startRe = /<w:permStart\b[^>]*\/>/g;
327410
- for (let match = startRe.exec(xml);match; match = startRe.exec(xml)) {
327411
- const id = attrValue(match[0], "id");
327412
- if (id)
327413
- starts.set(id, { start: match.index, end: startRe.lastIndex, tag: match[0] });
327414
- }
327415
- const out = [];
327416
- const endRe = /<w:permEnd\b[^>]*\/>/g;
327417
- for (let match = endRe.exec(xml);match; match = endRe.exec(xml)) {
327418
- const id = attrValue(match[0], "id");
327419
- if (!id)
327420
- continue;
327421
- const start = starts.get(id);
327422
- if (!start)
327423
- continue;
327424
- const startPos = positionForXmlIndex(xml, start.start);
327425
- const endPos = positionForXmlIndex(xml, match.index);
327426
- out.push({
327427
- id,
327428
- principal: principalFromPermStart(start.tag),
327429
- kind: startPos.blockId === endPos.blockId ? "inline" : "block",
327430
- start: startPos,
327431
- end: endPos,
327432
- startTagStart: start.start,
327433
- startTagEnd: start.end,
327434
- endTagStart: match.index,
327435
- endTagEnd: endRe.lastIndex
327436
- });
327437
- }
327438
- return out.sort((a, b) => a.startTagStart - b.startTagStart);
327439
- }
327440
- function stripInternal2(range) {
327441
- return {
327442
- id: range.id,
327443
- principal: range.principal,
327444
- kind: range.kind,
327445
- start: range.start,
327446
- end: range.end
327447
- };
327448
- }
327449
- function principalFromPermStart(tag) {
327450
- const attrs = readAttrs(tag);
327451
- const group = attrs["w:edGrp"] ?? attrs.edGrp;
327452
- if (group === "everyone")
327453
- return { kind: "everyone" };
327454
- const editor = attrs["w:ed"] ?? attrs.ed;
327455
- return { kind: "editor", id: editor ?? group ?? "unknown" };
327456
- }
327457
- function buildPermStart(id, principal) {
327458
- const principalAttr = principal.kind === "everyone" ? ' w:edGrp="everyone"' : ` w:ed="${xmlEscapeAttr(principal.id)}"`;
327459
- return `<w:permStart w:id="${xmlEscapeAttr(id)}"${principalAttr}/>`;
327460
- }
327461
- function buildPermEnd(id) {
327462
- return `<w:permEnd w:id="${xmlEscapeAttr(id)}"/>`;
327463
- }
327464
- function wrapTextRangeWithPermissionMarkers(paragraphXml, start, end, id, principal) {
327465
- return replaceTextRangeInParagraph(paragraphXml, start, end, (selected) => [
327466
- `<w:r>${buildPermStart(id, principal)}</w:r>`,
327467
- `<w:r><w:t>${xmlEscapeText(selected)}</w:t></w:r>`,
327468
- `<w:r>${buildPermEnd(id)}</w:r>`
327469
- ].join(""));
327470
- }
327471
- function positionForXmlIndex(documentXml, index2) {
327472
- const para = findParagraphContaining2(documentXml, index2);
327473
- if (!para)
327474
- return { blockId: "unknown", offset: 0 };
327475
- return { blockId: attrValue(para.openTag, "paraId") ?? "unknown", offset: extractText2(para.xml.slice(0, index2 - para.start)).length };
327476
- }
327477
- function findParagraphContaining2(documentXml, index2) {
327478
- const paraRe = /<w:p\b[^>]*>[\s\S]*?<\/w:p>/g;
327479
- for (let match = paraRe.exec(documentXml);match; match = paraRe.exec(documentXml)) {
327480
- if (match.index <= index2 && paraRe.lastIndex >= index2) {
327481
- return { start: match.index, end: paraRe.lastIndex, xml: match[0], openTag: /^<w:p\b[^>]*>/.exec(match[0])?.[0] ?? "" };
327482
- }
327483
- }
327484
- return null;
327485
- }
327486
- function findParagraphById2(documentXml, blockId) {
327487
- const paraRe = /<w:p\b[^>]*>[\s\S]*?<\/w:p>/g;
327488
- for (let match = paraRe.exec(documentXml);match; match = paraRe.exec(documentXml)) {
327489
- if (match[0].includes(`w14:paraId="${blockId}"`))
327490
- return { start: match.index, end: paraRe.lastIndex, xml: match[0] };
327491
- }
327492
- return null;
327493
- }
327494
- function replaceTextRangeInParagraph(paragraphXml, start, end, replacement) {
327495
- const textRe = /<w:t\b[^>]*>([\s\S]*?)<\/w:t>/g;
327496
- let offset = 0;
327497
- for (let match = textRe.exec(paragraphXml);match; match = textRe.exec(paragraphXml)) {
327498
- const text4 = decodeXmlEntities(match[1]);
327499
- const nextOffset = offset + text4.length;
327500
- if (start >= offset && end <= nextOffset) {
327501
- const localStart = start - offset;
327502
- const localEnd = end - offset;
327503
- const before = text4.slice(0, localStart);
327504
- const selected = text4.slice(localStart, localEnd);
327505
- const after = text4.slice(localEnd);
327506
- const runStart = findEnclosingRunStart(paragraphXml, match.index);
327507
- const runEnd = paragraphXml.indexOf("</w:r>", textRe.lastIndex) + "</w:r>".length;
327508
- const { runOpenTag, runProperties } = readRunOpenTagAndProperties(paragraphXml, runStart);
327509
- const mkRun = (segment) => `${runOpenTag}${runProperties}<w:t xml:space="preserve">${xmlEscapeText(segment)}</w:t></w:r>`;
327510
- return [
327511
- paragraphXml.slice(0, runStart),
327512
- before ? mkRun(before) : "",
327513
- replacement(selected),
327514
- after ? mkRun(after) : "",
327515
- paragraphXml.slice(runEnd)
327516
- ].join("");
327517
- }
327518
- offset = nextOffset;
327519
- }
327520
- throw operationError("TARGET_NOT_FOUND", "text range not found in paragraph.");
327521
- }
327522
- function removeMarkerAt(xml, start, end) {
327523
- const runStart = findEnclosingRunStart(xml, start);
327524
- const runEnd = xml.indexOf("</w:r>", end);
327525
- if (runStart >= 0 && runEnd >= end)
327526
- return replaceRange2(xml, runStart, runEnd + "</w:r>".length, "");
327527
- return replaceRange2(xml, start, end, "");
327528
- }
327529
- function replaceRange2(xml, start, end, replacement) {
327530
- return `${xml.slice(0, start)}${replacement}${xml.slice(end)}`;
327531
- }
327532
- function extractText2(xml) {
327533
- let out = "";
327534
- const re = /<w:t\b[^>]*>([\s\S]*?)<\/w:t>/g;
327535
- for (let match = re.exec(xml);match; match = re.exec(xml))
327536
- out += decodeXmlEntities(match[1]);
327537
- return out;
327538
- }
327539
- function allocateRangeId(existing) {
327540
- const max2 = existing.reduce((acc, range) => Math.max(acc, Number(range.id) || 0), 1000);
327541
- return String(max2 + 1 + Math.floor(Math.random() * 1000));
327542
- }
327543
- var init_adapter6 = __esm(() => {
327544
- init_src3();
327545
- init_shared();
327546
- init_xml();
327547
- });
327548
-
327549
- // ../../../v2/document-api-v2-adapter/dist/protection/adapter.js
327550
- class V2ProtectionAdapter {
327551
- constructor(context) {
327552
- this.context = context;
327553
- }
327554
- get(_input) {
327555
- return projectProtectionStateFromSettings(readPartXml(this.context, SETTINGS_PART_URI3));
327556
- }
327557
- setEditingRestriction(input, options) {
327558
- const mutationGuard = guardDirectOnlyMutation(this.context, input, options);
327559
- if (mutationGuard)
327560
- return mutationGuard;
327561
- const currentXml3 = readPartXml(this.context, SETTINGS_PART_URI3);
327562
- const nextXml = setDocumentProtectionXml(currentXml3, {
327563
- mode: input.mode,
327564
- enforced: true,
327565
- formattingRestricted: Boolean(input.formattingRestricted)
327566
- });
327567
- if (dryRunRequested(input, options)) {
327568
- return { success: true, state: projectProtectionStateFromSettings(nextXml) };
327569
- }
327570
- if (nextXml === currentXml3) {
327571
- const expectedRevision = expectedRevisionFrom(input, options);
327572
- const failure5 = this.context.validateMutation({ expectedRevision: expectedRevision === undefined ? undefined : String(expectedRevision) });
327573
- if (failure5)
327574
- return { success: false, failure: failure5 };
327575
- return { success: true, state: projectProtectionStateFromSettings(nextXml), changed: false };
327576
- }
327577
- const committed = commitWholePartUpdates(this.context, "protection-set", { [SETTINGS_PART_URI3]: encodeXml(nextXml) }, { expectedRevision: expectedRevisionFrom(input, options) });
327578
- if (!committed.ok)
327579
- return { success: false, failure: { code: committed.code, message: committed.message } };
327580
- return { success: true, state: projectProtectionStateFromSettings(nextXml) };
327581
- }
327582
- clearEditingRestriction(input, options) {
327583
- const mutationGuard = guardDirectOnlyMutation(this.context, input, options);
327584
- if (mutationGuard)
327585
- return mutationGuard;
327586
- const currentXml3 = readPartXml(this.context, SETTINGS_PART_URI3);
327587
- const nextXml = clearDocumentProtectionXml(currentXml3);
327588
- if (dryRunRequested(input ?? {}, options)) {
327589
- return { success: true, state: projectProtectionStateFromSettings(nextXml) };
327590
- }
327591
- if (nextXml === currentXml3) {
327592
- const expectedRevision = expectedRevisionFrom(input, options);
327593
- const failure5 = this.context.validateMutation({ expectedRevision: expectedRevision === undefined ? undefined : String(expectedRevision) });
327594
- if (failure5)
327595
- return { success: false, failure: failure5 };
327596
- return { success: true, state: projectProtectionStateFromSettings(nextXml), changed: false };
327597
- }
327598
- const committed = commitWholePartUpdates(this.context, "protection-clear", { [SETTINGS_PART_URI3]: encodeXml(nextXml) }, { expectedRevision: expectedRevisionFrom(input, options) });
327599
- if (!committed.ok)
327600
- return { success: false, failure: { code: committed.code, message: committed.message } };
327601
- return { success: true, state: projectProtectionStateFromSettings(nextXml) };
327602
- }
327603
- }
327604
- function projectProtectionStateFromSettings(settingsXml) {
327605
- const documentProtection = settingsXml ? matchElement(settingsXml, "w:documentProtection") : null;
327606
- const writeProtection = settingsXml ? matchElement(settingsXml, "w:writeProtection") : null;
327607
- const readOnlyRecommended = settingsXml ? /<w:readOnlyRecommended\b/.test(settingsXml) : false;
327608
- return {
327609
- editingRestriction: projectEditingRestriction(documentProtection ? readAttrs(documentProtection) : null),
327610
- writeProtection: projectWriteProtection(writeProtection ? readAttrs(writeProtection) : null),
327611
- readOnlyRecommended
327612
- };
327613
- }
327614
- function projectEditingRestriction(raw) {
327615
- if (!raw) {
327616
- return { ...DEFAULT_PROTECTION_STATE.editingRestriction };
327617
- }
327618
- const editRaw = pickAttr(raw, "edit");
327619
- const mode = VALID_EDIT_MODES.has(editRaw) ? editRaw : "none";
327620
- const enforced = parseBoolAttr(pickAttr(raw, "enforcement"));
327621
- const formattingRestricted = parseBoolAttr(pickAttr(raw, "formatting"));
327622
- const passwordProtected = hasPasswordMetadata(raw);
327623
- return {
327624
- mode,
327625
- enforced,
327626
- runtimeEnforced: enforced && mode === "readOnly",
327627
- passwordProtected,
327628
- formattingRestricted
327629
- };
327630
- }
327631
- function projectWriteProtection(raw) {
327632
- if (!raw) {
327633
- return { ...DEFAULT_PROTECTION_STATE.writeProtection };
327634
- }
327635
- return {
327636
- enabled: true,
327637
- passwordProtected: hasPasswordMetadata(raw)
327638
- };
327639
- }
327640
- function pickAttr(raw, localName2) {
327641
- const wKey = `w:${localName2}`;
327642
- if (Object.prototype.hasOwnProperty.call(raw, wKey))
327643
- return raw[wKey];
327644
- if (Object.prototype.hasOwnProperty.call(raw, localName2))
327645
- return raw[localName2];
327646
- return null;
327647
- }
327648
- function parseBoolAttr(value2) {
327649
- if (value2 == null)
327650
- return false;
327651
- return value2 === "1" || value2 === "true" || value2 === "on";
327652
- }
327653
- function hasPasswordMetadata(raw) {
327654
- for (const key2 of Object.keys(raw)) {
327655
- if (PASSWORD_VERIFIER_ATTRS.has(key2)) {
327656
- const value2 = raw[key2];
327657
- if (value2 && value2.length > 0)
327658
- return true;
327659
- }
327660
- }
327661
- return false;
327662
- }
327663
- function setDocumentProtectionXml(settingsXml, input) {
327664
- const xml = settingsXml ?? emptySettingsXml();
327665
- const existing = matchElement(xml, "w:documentProtection");
327666
- const attrs = existing ? readAttrs(existing) : {};
327667
- attrs["w:edit"] = input.mode;
327668
- attrs["w:enforcement"] = input.enforced ? "1" : "0";
327669
- attrs["w:formatting"] = input.formattingRestricted ? "1" : "0";
327670
- const element = buildDocumentProtectionElement(attrs);
327671
- if (existing)
327672
- return xml.replace(existing, element);
327673
- return xml.replace(/<\/w:settings>\s*$/, `${element}</w:settings>`);
327674
- }
327675
- function clearDocumentProtectionXml(settingsXml) {
327676
- const xml = settingsXml ?? emptySettingsXml();
327677
- const existing = matchElement(xml, "w:documentProtection");
327678
- const attrs = existing ? readAttrs(existing) : { "w:edit": "readOnly" };
327679
- attrs["w:enforcement"] = "0";
327680
- const element = buildDocumentProtectionElement(attrs);
327681
- if (existing)
327682
- return xml.replace(existing, element);
327683
- return xml.replace(/<\/w:settings>\s*$/, `${element}</w:settings>`);
327684
- }
327685
- function buildDocumentProtectionElement(attrs) {
327686
- const attrXml = Object.entries(attrs).map(([key2, value2]) => ` ${key2}="${xmlEscapeAttr(value2)}"`).join("");
327687
- return `<w:documentProtection${attrXml}/>`;
327688
- }
327689
- function matchElement(xml, name) {
327690
- const escaped = name.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
327691
- return new RegExp(`<${escaped}\\b[^>]*(?:/>|>[\\s\\S]*?</${escaped}>)`).exec(xml)?.[0] ?? null;
327692
- }
327693
- function emptySettingsXml() {
327694
- return [
327695
- '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>',
327696
- '<w:settings xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"',
327697
- ' xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"',
327698
- ' xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006">',
327699
- "</w:settings>"
327700
- ].join("");
327701
- }
327702
- var PASSWORD_VERIFIER_ATTRS, VALID_EDIT_MODES;
327703
- var init_adapter7 = __esm(() => {
327704
- init_src3();
327705
- init_shared();
327706
- init_xml();
327707
- PASSWORD_VERIFIER_ATTRS = new Set([
327708
- "w:cryptProviderType",
327709
- "w:cryptAlgorithmClass",
327710
- "w:cryptAlgorithmType",
327711
- "w:cryptAlgorithmSid",
327712
- "w:cryptSpinCount",
327713
- "w:hash",
327714
- "w:salt",
327715
- "w:algorithmName",
327716
- "w:hashValue",
327717
- "w:saltValue",
327718
- "w:spinCount"
327719
- ]);
327720
- VALID_EDIT_MODES = new Set([
327721
- "none",
327722
- "readOnly",
327723
- "comments",
327724
- "trackedChanges",
327725
- "forms"
327726
- ]);
327727
- });
327728
-
327729
327907
  // ../../../v2/document-api-v2-adapter/dist/selection-mutation/replacement-span.js
327730
327908
  function uniqueTokenAnchors(before, after) {
327731
327909
  const uniquePositions = (tokens) => {
@@ -334095,6 +334273,22 @@ class V2ContentControlsAdapter {
334095
334273
  throw error48;
334096
334274
  return { success: false, failure: { code: error48.code, message: error48.message } };
334097
334275
  }
334276
+ if (input.at) {
334277
+ const blocks = resolveWholeBlockSelection(part.xml, part.paragraphs, input.at);
334278
+ if (blocks.kind === "ok") {
334279
+ requireDocumentProtectionXmlRange(this.context, part.partUri, blocks.start, blocks.end);
334280
+ } else if (input.at.start.kind === "text" && input.at.end.kind === "text") {
334281
+ const startBlockId = input.at.start.blockId;
334282
+ const endBlockId = input.at.end.blockId;
334283
+ const first = part.paragraphs.find((p) => p.blockId === startBlockId);
334284
+ const last = part.paragraphs.find((p) => p.blockId === endBlockId);
334285
+ requireDocumentProtectionXmlRange(this.context, part.partUri, first?.start ?? -1, last?.end ?? -1);
334286
+ } else {
334287
+ requireDocumentProtectionXmlRange(this.context, part.partUri, -1, -1);
334288
+ }
334289
+ } else {
334290
+ requireDocumentProtectionXmlRange(this.context, part.partUri, -1, -1);
334291
+ }
334098
334292
  const trackedSecondaryStory = part.story && options?.changeMode === "tracked";
334099
334293
  if (trackedSecondaryStory && !supportsTrackedSecondaryStoryCreate(input)) {
334100
334294
  return { success: false, failure: { code: "CAPABILITY_UNAVAILABLE", message: "Tracked header/footer content-control creation requires an inline text control with plain-text content at a collapsed visible-text selection." } };
@@ -334708,6 +334902,7 @@ class V2ContentControlsAdapter {
334708
334902
  return { success: false, failure: freshness };
334709
334903
  const loaded = this.load();
334710
334904
  const control2 = options?.changeMode === "tracked" ? this.requireBodyControl(input.target, loaded) : this.requireControl(input.target, loaded);
334905
+ this.requireProtectedControl(control2, loaded);
334711
334906
  guardContentUnlocked(control2);
334712
334907
  const part = loaded.parts.find((candidate2) => candidate2.storyId === control2.storyId);
334713
334908
  if (controlPlacement(part.xml, control2) !== control2.info.kind) {
@@ -334859,6 +335054,7 @@ class V2ContentControlsAdapter {
334859
335054
  if (control2.info.controlType !== "text") {
334860
335055
  throw operationError("TYPE_MISMATCH", `contentControls.text.setValue requires control type text, but found "${control2.info.controlType}".`);
334861
335056
  }
335057
+ this.requireProtectedControl(control2, loaded);
334862
335058
  guardContentUnlocked(control2);
334863
335059
  const value2 = input.value ?? "";
334864
335060
  if (value2 === (control2.info.text ?? "")) {
@@ -334890,6 +335086,7 @@ class V2ContentControlsAdapter {
334890
335086
  if (control2.info.controlType !== "date") {
334891
335087
  throw operationError("TYPE_MISMATCH", `contentControls.date.setValue requires control type date, but found "${control2.info.controlType}".`);
334892
335088
  }
335089
+ this.requireProtectedControl(control2, loaded);
334893
335090
  guardSdtWrapperUnlocked(control2);
334894
335091
  if (dryRunRequested(input, options))
334895
335092
  return { success: true, contentControl: control2.target };
@@ -335107,6 +335304,7 @@ class V2ContentControlsAdapter {
335107
335304
  const storyAware = prefix === "content-control-pr" || prefix === "content-control-unwrap";
335108
335305
  const control2 = tracked || !storyAware ? this.requireBodyControl(target, loaded) : this.requireControl(target, loaded);
335109
335306
  const part = loaded.parts.find((candidate2) => candidate2.storyId === control2.storyId);
335307
+ this.requireProtectedControl(control2, loaded);
335110
335308
  validate?.(control2, loaded);
335111
335309
  if (tracked) {
335112
335310
  this.validateTrackedControlMutation(input, options);
@@ -335272,6 +335470,10 @@ class V2ContentControlsAdapter {
335272
335470
  guardContentUnlocked(control2);
335273
335471
  });
335274
335472
  }
335473
+ requireProtectedControl(control2, loaded) {
335474
+ const part = loaded.parts.find((candidate2) => candidate2.storyId === control2.storyId);
335475
+ requireDocumentProtectionXmlRange(this.context, part.partUri, control2.start, control2.end);
335476
+ }
335275
335477
  requireControl(target, loaded = this.load()) {
335276
335478
  const story = this.context.resolveFullStoryLocator(target.story);
335277
335479
  if ("error" in story) {
@@ -335389,6 +335591,9 @@ class V2ContentControlsAdapter {
335389
335591
  }
335390
335592
  }
335391
335593
  commitTrackedMoveDocument(input) {
335594
+ if (!documentProtectionAllowsXmlRewrite(this.context, DOCUMENT_PART_URI5, readPartXml(this.context, DOCUMENT_PART_URI5) ?? "", input.nextXml)) {
335595
+ return { success: false, failure: { code: "PERMISSION_DENIED", message: DOCUMENT_PROTECTION_MESSAGE } };
335596
+ }
335392
335597
  const expectedRevision = expectedRevisionFrom(input.input, input.options);
335393
335598
  if (expectedRevision !== undefined) {
335394
335599
  const begun = this.context.beginMutation({ expectedRevision: String(expectedRevision) });
@@ -335423,6 +335628,10 @@ class V2ContentControlsAdapter {
335423
335628
  const current = readPartBytes2(this.context, partUri);
335424
335629
  if (!current)
335425
335630
  return { success: false, failure: { code: "PRECONDITION_FAILED", message: "document.xml bytes are unavailable." } };
335631
+ const before = readPartXml(this.context, partUri) ?? "";
335632
+ if (!documentProtectionAllowsXmlRewrite(this.context, partUri, before, nextXml)) {
335633
+ return { success: false, failure: { code: "PERMISSION_DENIED", message: DOCUMENT_PROTECTION_MESSAGE } };
335634
+ }
335426
335635
  if (commitOptions.storySurface?.contentControlRewrite && this.context.isCollaborativeSession()) {
335427
335636
  const existingIds = new Set(this.load().parts.flatMap((part) => Array.from(part.xml.matchAll(/\bw14:paraId="([^"]+)"/g), (match) => match[1])));
335428
335637
  const newIds = [...new Set(Array.from(nextXml.matchAll(/\bw14:paraId="([^"]+)"/g), (match) => match[1]))].filter((id) => !existingIds.has(id));
@@ -337512,6 +337721,7 @@ var init_adapter10 = __esm(() => {
337512
337721
  init_tracked_pr_change();
337513
337722
  init_inline();
337514
337723
  init_tracked_structural_wrapper();
337724
+ init_mutation_guard();
337515
337725
  init_adapter9();
337516
337726
  init_rich_fragment_apply();
337517
337727
  init_receipt_entities();
@@ -354569,6 +354779,30 @@ class V2ImagesAdapter {
354569
354779
  const blocked = guardCanonicalMutation(this.context, options, "create.image");
354570
354780
  if (blocked)
354571
354781
  return blocked;
354782
+ if (new V2ProtectionAdapter(this.context).get().editingRestriction.runtimeEnforced) {
354783
+ const at = input.at;
354784
+ const locator = (at && "target" in at ? at.target.story : undefined) ?? input.in ?? { kind: "story", storyType: "body" };
354785
+ const story = this.context.resolveFullStoryLocator(locator);
354786
+ let allowed = false;
354787
+ if (!("error" in story) && story.partUri === "/word/document.xml") {
354788
+ const xml = readPartXml(this.context, story.partUri) ?? "";
354789
+ if (at?.kind === "inContentControl") {
354790
+ const range = findContentControlXmlRange(xml, at.target.nodeId);
354791
+ allowed = !!range && documentProtectionAllowsXmlRange(this.context, story.partUri, range.start, range.end);
354792
+ } else if (at?.kind === "inParagraph") {
354793
+ const paragraph4 = readBodyParagraphByBlockId(this.context, at.target.nodeId);
354794
+ if (paragraph4) {
354795
+ const bytes = getSDDocumentSessionInternalPartBytes(this.context.session, story.partUri);
354796
+ const decoder8 = new TextDecoder;
354797
+ const start = decoder8.decode(bytes.subarray(0, paragraph4.byteStart)).length;
354798
+ const end = decoder8.decode(bytes.subarray(0, paragraph4.byteEnd)).length;
354799
+ allowed = documentProtectionAllowsXmlRange(this.context, story.partUri, start, end);
354800
+ }
354801
+ }
354802
+ }
354803
+ if (!allowed)
354804
+ return createImageFailure("PERMISSION_DENIED", DOCUMENT_PROTECTION_MESSAGE);
354805
+ }
354572
354806
  const invalidAlias = validateHeaderFooterStoryAlias(this.context, input);
354573
354807
  if (invalidAlias)
354574
354808
  return invalidAlias;
@@ -358510,6 +358744,9 @@ function escapeRegExp17(value2) {
358510
358744
  }
358511
358745
  var IMAGE_HYPERLINK_REL_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink", EMU_PER_PX5 = 9525, CROP_SCALE2 = 1000, DEFAULT_FLOATING_RELATIVE_HEIGHT = 251659264, DECORATIVE_EXT_URI = "{C183D7F6-B498-43B3-948B-1728B52AA6E4}", DECORATIVE_NAMESPACE = "http://schemas.microsoft.com/office/drawing/2017/decorative", DRAWING_NAMESPACE = "http://schemas.openxmlformats.org/drawingml/2006/main", RELATIONSHIP_NAMESPACE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships", CONVERTED_INLINE_ANCHORS, DEFAULT_PAGE_WIDTH_TWIPS2 = 12240, DEFAULT_PAGE_MARGIN_TWIPS2 = 1440, TWIPS_PER_PX = 15;
358512
358746
  var init_adapter19 = __esm(() => {
358747
+ init_mutation_guard();
358748
+ init_adapter6();
358749
+ init_adapter7();
358513
358750
  init_pending_image_insertion();
358514
358751
  init_src3();
358515
358752
  init_sd_document_session_internal();
@@ -397375,7 +397612,7 @@ var init_capability_matrix = __esm(() => {
397375
397612
  });
397376
397613
  });
397377
397614
 
397378
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/map.js
397615
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/map.js
397379
397616
  var create = () => new Map, copy = (m) => {
397380
397617
  const r = create();
397381
397618
  m.forEach((v, k) => {
@@ -397397,10 +397634,10 @@ var create = () => new Map, copy = (m) => {
397397
397634
  return false;
397398
397635
  };
397399
397636
 
397400
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/set.js
397637
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/set.js
397401
397638
  var create2 = () => new Set;
397402
397639
 
397403
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/array.js
397640
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/array.js
397404
397641
  var last = (arr) => arr[arr.length - 1], appendTo = (dest, src) => {
397405
397642
  for (let i2 = 0;i2 < src.length; i2++) {
397406
397643
  dest.push(src[i2]);
@@ -397418,7 +397655,7 @@ var init_array2 = __esm(() => {
397418
397655
  isArray = Array.isArray;
397419
397656
  });
397420
397657
 
397421
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/observable.js
397658
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/observable.js
397422
397659
  class ObservableV2 {
397423
397660
  constructor() {
397424
397661
  this._observers = create();
@@ -397485,7 +397722,7 @@ var init_observable = __esm(() => {
397485
397722
  init_array2();
397486
397723
  });
397487
397724
 
397488
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/math.js
397725
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/math.js
397489
397726
  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;
397490
397727
  var init_math = __esm(() => {
397491
397728
  floor = Math.floor;
@@ -397493,7 +397730,7 @@ var init_math = __esm(() => {
397493
397730
  pow = Math.pow;
397494
397731
  });
397495
397732
 
397496
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/binary.js
397733
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/binary.js
397497
397734
  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;
397498
397735
  var init_binary = __esm(() => {
397499
397736
  BIT18 = 1 << 17;
@@ -397527,7 +397764,7 @@ var init_binary = __esm(() => {
397527
397764
  BITS30 = BIT31 - 1;
397528
397765
  });
397529
397766
 
397530
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/number.js
397767
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/number.js
397531
397768
  var MAX_SAFE_INTEGER, MIN_SAFE_INTEGER, LOWEST_INT32, isInteger2;
397532
397769
  var init_number2 = __esm(() => {
397533
397770
  init_math();
@@ -397537,7 +397774,7 @@ var init_number2 = __esm(() => {
397537
397774
  isInteger2 = Number.isInteger || ((num) => typeof num === "number" && isFinite(num) && floor(num) === num);
397538
397775
  });
397539
397776
 
397540
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/string.js
397777
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/string.js
397541
397778
  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) => {
397542
397779
  const encodedString = unescape(encodeURIComponent(str));
397543
397780
  const len = encodedString.length;
@@ -397561,7 +397798,7 @@ var init_string2 = __esm(() => {
397561
397798
  }
397562
397799
  });
397563
397800
 
397564
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/encoding.js
397801
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/encoding.js
397565
397802
  class Encoder {
397566
397803
  constructor() {
397567
397804
  this.cpos = 0;
@@ -397827,14 +398064,14 @@ var init_encoding = __esm(() => {
397827
398064
  };
397828
398065
  });
397829
398066
 
397830
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/error.js
398067
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/error.js
397831
398068
  var create3 = (s) => new Error(s), methodUnimplemented = () => {
397832
398069
  throw create3("Method unimplemented");
397833
398070
  }, unexpectedCase = () => {
397834
398071
  throw create3("Unexpected case");
397835
398072
  };
397836
398073
 
397837
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/decoding.js
398074
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/decoding.js
397838
398075
  class Decoder {
397839
398076
  constructor(uint8Array) {
397840
398077
  this.arr = uint8Array;
@@ -398025,7 +398262,7 @@ var init_decoding = __esm(() => {
398025
398262
  };
398026
398263
  });
398027
398264
 
398028
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/webcrypto.node.js
398265
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/webcrypto.node.js
398029
398266
  import { webcrypto } from "node:crypto";
398030
398267
  var subtle, getRandomValues;
398031
398268
  var init_webcrypto_node = __esm(() => {
@@ -398033,29 +398270,29 @@ var init_webcrypto_node = __esm(() => {
398033
398270
  getRandomValues = webcrypto.getRandomValues.bind(webcrypto);
398034
398271
  });
398035
398272
 
398036
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/random.js
398273
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/random.js
398037
398274
  var uint322 = () => getRandomValues(new Uint32Array(1))[0], uuidv4Template, uuidv42 = () => uuidv4Template.replace(/[018]/g, (c) => (c ^ uint322() & 15 >> c / 4).toString(16));
398038
398275
  var init_random = __esm(() => {
398039
398276
  init_webcrypto_node();
398040
398277
  uuidv4Template = [1e7] + -1000 + -4000 + -8000 + -100000000000;
398041
398278
  });
398042
398279
 
398043
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/time.js
398280
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/time.js
398044
398281
  var getUnixTime;
398045
398282
  var init_time = __esm(() => {
398046
398283
  getUnixTime = Date.now;
398047
398284
  });
398048
398285
 
398049
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/promise.js
398286
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/promise.js
398050
398287
  var create4 = (f) => new Promise(f), all2;
398051
398288
  var init_promise2 = __esm(() => {
398052
398289
  all2 = Promise.all.bind(Promise);
398053
398290
  });
398054
398291
 
398055
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/conditions.js
398292
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/conditions.js
398056
398293
  var undefinedToNull = (v) => v === undefined ? null : v;
398057
398294
 
398058
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/storage.js
398295
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/storage.js
398059
398296
  class VarStoragePolyfill {
398060
398297
  constructor() {
398061
398298
  this.map = new Map;
@@ -398079,13 +398316,13 @@ var init_storage = __esm(() => {
398079
398316
  varStorage = _localStorage;
398080
398317
  });
398081
398318
 
398082
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/trait/equality.js
398319
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/trait/equality.js
398083
398320
  var EqualityTraitSymbol, equals = (a, b) => a === b || !!a?.[EqualityTraitSymbol]?.(b) || false;
398084
398321
  var init_equality = __esm(() => {
398085
398322
  EqualityTraitSymbol = Symbol("Equality");
398086
398323
  });
398087
398324
 
398088
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/object.js
398325
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/object.js
398089
398326
  var assign, keys, forEach = (obj, f) => {
398090
398327
  for (const key2 in obj) {
398091
398328
  f(obj[key2], key2);
@@ -398124,7 +398361,7 @@ var init_object2 = __esm(() => {
398124
398361
  freeze = Object.freeze;
398125
398362
  });
398126
398363
 
398127
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/function.js
398364
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/function.js
398128
398365
  var callAll = (fs, args, i2 = 0) => {
398129
398366
  try {
398130
398367
  for (;i2 < fs.length; i2++) {
@@ -398213,7 +398450,7 @@ var init_function = __esm(() => {
398213
398450
  init_equality();
398214
398451
  });
398215
398452
 
398216
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/environment.js
398453
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/environment.js
398217
398454
  var isNode, isBrowser, isMac, params, args, computeParams = () => {
398218
398455
  if (params === undefined) {
398219
398456
  if (isNode) {
@@ -398267,7 +398504,7 @@ var init_environment = __esm(() => {
398267
398504
  supportsColor = forceColor || !hasParam2("--no-colors") && !hasConf("no-color") && (!isNode || process.stdout.isTTY) && (!isNode || hasParam2("--color") || getVariable("COLORTERM") !== null || (getVariable("TERM") || "").includes("color"));
398268
398505
  });
398269
398506
 
398270
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/buffer.js
398507
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/buffer.js
398271
398508
  var createUint8ArrayFromLen = (len) => new Uint8Array(len), createUint8ArrayViewFromArrayBuffer = (buffer, byteOffset, length2) => new Uint8Array(buffer, byteOffset, length2), createUint8ArrayFromArrayBuffer = (buffer) => new Uint8Array(buffer), toBase64Browser = (bytes) => {
398272
398509
  let s = "";
398273
398510
  for (let i2 = 0;i2 < bytes.byteLength; i2++) {
@@ -398296,13 +398533,13 @@ var init_buffer = __esm(() => {
398296
398533
  fromBase64 = isBrowser ? fromBase64Browser : fromBase64Node;
398297
398534
  });
398298
398535
 
398299
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/symbol.js
398536
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/symbol.js
398300
398537
  var create5;
398301
398538
  var init_symbol = __esm(() => {
398302
398539
  create5 = Symbol;
398303
398540
  });
398304
398541
 
398305
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/logging.common.js
398542
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/logging.common.js
398306
398543
  var BOLD, UNBOLD, BLUE, GREY, GREEN, RED, PURPLE, ORANGE, UNCOLOR, computeNoColorLoggingArgs = (args2) => {
398307
398544
  if (args2.length === 1 && args2[0]?.constructor === Function) {
398308
398545
  args2 = args2[0]();
@@ -398346,7 +398583,7 @@ var init_logging_common = __esm(() => {
398346
398583
  lastLoggingTime = getUnixTime();
398347
398584
  });
398348
398585
 
398349
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/logging.node.js
398586
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/logging.node.js
398350
398587
  var _nodeStyleMap, computeNodeLoggingArgs = (args2) => {
398351
398588
  if (args2.length === 1 && args2[0]?.constructor === Function) {
398352
398589
  args2 = args2[0]();
@@ -398403,7 +398640,7 @@ var init_logging_node = __esm(() => {
398403
398640
  computeLoggingArgs = supportsColor ? computeNodeLoggingArgs : computeNoColorLoggingArgs;
398404
398641
  });
398405
398642
 
398406
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/iterator.js
398643
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/iterator.js
398407
398644
  var createIterator = (next) => ({
398408
398645
  [Symbol.iterator]() {
398409
398646
  return this;
@@ -398420,7 +398657,7 @@ var createIterator = (next) => ({
398420
398657
  return { done, value: done ? undefined : fmap(value2) };
398421
398658
  });
398422
398659
 
398423
- // ../../node_modules/.pnpm/yjs@13.6.31/node_modules/yjs/dist/yjs.mjs
398660
+ // ../../../v2/node_modules/.pnpm/yjs@13.6.31/node_modules/yjs/dist/yjs.mjs
398424
398661
  class DeleteItem {
398425
398662
  constructor(clock, len) {
398426
398663
  this.clock = clock;
@@ -403163,7 +403400,7 @@ var init_yjs = __esm(() => {
403163
403400
  glo[importIdentifier] = true;
403164
403401
  });
403165
403402
 
403166
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/broadcastchannel.js
403403
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/broadcastchannel.js
403167
403404
  class LocalStoragePolyfill {
403168
403405
  constructor(room) {
403169
403406
  this.room = room;
@@ -403209,7 +403446,7 @@ var init_broadcastchannel = __esm(() => {
403209
403446
  BC = typeof BroadcastChannel === "undefined" ? LocalStoragePolyfill : BroadcastChannel;
403210
403447
  });
403211
403448
 
403212
- // ../../node_modules/.pnpm/y-protocols@1.0.7_yjs@13.6.31/node_modules/y-protocols/sync.js
403449
+ // ../../../v2/node_modules/.pnpm/y-protocols@1.0.7_yjs@13.6.31/node_modules/y-protocols/sync.js
403213
403450
  var messageYjsSyncStep1 = 0, messageYjsSyncStep2 = 1, messageYjsUpdate = 2, writeSyncStep1 = (encoder2, doc2) => {
403214
403451
  writeVarUint(encoder2, messageYjsSyncStep1);
403215
403452
  const sv = encodeStateVector(doc2);
@@ -403252,7 +403489,7 @@ var init_sync = __esm(() => {
403252
403489
  readUpdate = readSyncStep2;
403253
403490
  });
403254
403491
 
403255
- // ../../node_modules/.pnpm/y-protocols@1.0.7_yjs@13.6.31/node_modules/y-protocols/auth.js
403492
+ // ../../../v2/node_modules/.pnpm/y-protocols@1.0.7_yjs@13.6.31/node_modules/y-protocols/auth.js
403256
403493
  var messagePermissionDenied = 0, readAuthMessage = (decoder9, y, permissionDeniedHandler) => {
403257
403494
  switch (readVarUint(decoder9)) {
403258
403495
  case messagePermissionDenied:
@@ -403263,7 +403500,7 @@ var init_auth = __esm(() => {
403263
403500
  init_decoding();
403264
403501
  });
403265
403502
 
403266
- // ../../node_modules/.pnpm/y-protocols@1.0.7_yjs@13.6.31/node_modules/y-protocols/awareness.js
403503
+ // ../../../v2/node_modules/.pnpm/y-protocols@1.0.7_yjs@13.6.31/node_modules/y-protocols/awareness.js
403267
403504
  var outdatedTimeout = 30000, Awareness, removeAwarenessStates = (awareness, clients, origin) => {
403268
403505
  const removed = [];
403269
403506
  for (let i2 = 0;i2 < clients.length; i2++) {
@@ -403446,13 +403683,13 @@ var init_awareness = __esm(() => {
403446
403683
  };
403447
403684
  });
403448
403685
 
403449
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/url.js
403686
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/url.js
403450
403687
  var encodeQueryParams = (params2) => map3(params2, (val, key2) => `${encodeURIComponent(key2)}=${encodeURIComponent(val)}`).join("&");
403451
403688
  var init_url = __esm(() => {
403452
403689
  init_object2();
403453
403690
  });
403454
403691
 
403455
- // ../../node_modules/.pnpm/y-websocket@3.0.0_yjs@13.6.31/node_modules/y-websocket/src/y-websocket.js
403692
+ // ../../../v2/node_modules/.pnpm/y-websocket@3.0.0_yjs@13.6.31/node_modules/y-websocket/src/y-websocket.js
403456
403693
  var messageSync = 0, messageQueryAwareness = 3, messageAwareness = 1, messageAuth = 2, messageHandlers, messageReconnectTimeout = 30000, permissionDeniedHandler = (provider, reason) => console.warn(`Permission denied to access ${provider.url}.
403457
403694
  ${reason}`), readMessage = (provider, buf, emitSynced) => {
403458
403695
  const decoder9 = createDecoder(buf);
@@ -404245,7 +404482,7 @@ var init_y_websocket_single_doc = __esm(() => {
404245
404482
  init_runtime4();
404246
404483
  });
404247
404484
 
404248
- // ../../node_modules/.pnpm/@hocuspocus+common@2.15.3/node_modules/@hocuspocus/common/dist/hocuspocus-common.esm.js
404485
+ // ../../../v2/node_modules/.pnpm/@hocuspocus+common@2.15.3/node_modules/@hocuspocus/common/dist/hocuspocus-common.esm.js
404249
404486
  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) => {
404250
404487
  const encodedString = unescape(encodeURIComponent(str));
404251
404488
  const len = encodedString.length;
@@ -404404,7 +404641,7 @@ var init_hocuspocus_common_esm = __esm(() => {
404404
404641
  })(WsReadyStates || (WsReadyStates = {}));
404405
404642
  });
404406
404643
 
404407
- // ../../node_modules/.pnpm/@lifeomic+attempt@3.1.0/node_modules/@lifeomic/attempt/dist/src/index.js
404644
+ // ../../../v2/node_modules/.pnpm/@lifeomic+attempt@3.1.0/node_modules/@lifeomic/attempt/dist/src/index.js
404408
404645
  var require_src2 = __commonJS((exports) => {
404409
404646
  Object.defineProperty(exports, "__esModule", { value: true });
404410
404647
  exports.retry = exports.defaultCalculateDelay = exports.sleep = undefined;
@@ -404549,7 +404786,7 @@ var require_src2 = __commonJS((exports) => {
404549
404786
  exports.retry = retry;
404550
404787
  });
404551
404788
 
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
404789
+ // ../../../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
404553
404790
  class VarStoragePolyfill2 {
404554
404791
  constructor() {
404555
404792
  this.map = new Map;
@@ -406299,7 +406536,7 @@ var init_hocuspocus_single_doc = __esm(() => {
406299
406536
  init_runtime4();
406300
406537
  });
406301
406538
 
406302
- // ../../node_modules/.pnpm/@liveblocks+core@3.15.5_@types+json-schema@7.0.15/node_modules/@liveblocks/core/dist/index.js
406539
+ // ../../../v2/node_modules/.pnpm/@liveblocks+core@3.15.5_@types+json-schema@7.0.15/node_modules/@liveblocks/core/dist/index.js
406303
406540
  function error48(msg) {
406304
406541
  if (false) {} else {
406305
406542
  throw new Error(msg);
@@ -415271,7 +415508,7 @@ var init_dist6 = __esm(() => {
415271
415508
  detectDupes(PKG_NAME, PKG_VERSION, PKG_FORMAT);
415272
415509
  });
415273
415510
 
415274
- // ../../node_modules/.pnpm/@liveblocks+client@3.15.5_@types+json-schema@7.0.15/node_modules/@liveblocks/client/dist/index.js
415511
+ // ../../../v2/node_modules/.pnpm/@liveblocks+client@3.15.5_@types+json-schema@7.0.15/node_modules/@liveblocks/client/dist/index.js
415275
415512
  var PKG_NAME2 = "@liveblocks/client", PKG_VERSION2 = "3.15.5", PKG_FORMAT2 = "esm";
415276
415513
  var init_dist7 = __esm(() => {
415277
415514
  init_dist6();
@@ -415279,7 +415516,7 @@ var init_dist7 = __esm(() => {
415279
415516
  detectDupes(PKG_NAME2, PKG_VERSION2, PKG_FORMAT2);
415280
415517
  });
415281
415518
 
415282
- // ../../node_modules/.pnpm/js-base64@3.7.8/node_modules/js-base64/base64.mjs
415519
+ // ../../../v2/node_modules/.pnpm/js-base64@3.7.8/node_modules/js-base64/base64.mjs
415283
415520
  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) => {
415284
415521
  let u32, c0, c1, c2, asc = "";
415285
415522
  const pad = bin.length % 3;
@@ -415423,7 +415660,7 @@ var init_base64 = __esm(() => {
415423
415660
  };
415424
415661
  });
415425
415662
 
415426
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/indexeddb.js
415663
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/indexeddb.js
415427
415664
  var rtop = (request) => create4((resolve, reject2) => {
415428
415665
  request.onerror = (event) => reject2(new Error(event.target.error));
415429
415666
  request.onsuccess = (event) => resolve(event.target.result);
@@ -415461,7 +415698,7 @@ var init_indexeddb = __esm(() => {
415461
415698
  init_promise2();
415462
415699
  });
415463
415700
 
415464
- // ../../node_modules/.pnpm/y-indexeddb@9.0.12_yjs@13.6.31/node_modules/y-indexeddb/src/y-indexeddb.js
415701
+ // ../../../v2/node_modules/.pnpm/y-indexeddb@9.0.12_yjs@13.6.31/node_modules/y-indexeddb/src/y-indexeddb.js
415465
415702
  var customStoreName = "custom", updatesStoreName = "updates", PREFERRED_TRIM_SIZE = 500, fetchUpdates = (idbPersistence, beforeApplyUpdatesCallback = () => {}, afterApplyUpdatesCallback = () => {}) => {
415466
415703
  const [updatesStore] = transact2(idbPersistence.db, [updatesStoreName]);
415467
415704
  return getAll(updatesStore, createIDBKeyRangeLowerBound(idbPersistence._dbref, false)).then((updates) => {
@@ -415573,7 +415810,7 @@ var init_y_indexeddb = __esm(() => {
415573
415810
  };
415574
415811
  });
415575
415812
 
415576
- // ../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/utils.js
415813
+ // ../../../v2/node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/utils.js
415577
415814
  function isBytes(a) {
415578
415815
  return a instanceof Uint8Array || ArrayBuffer.isView(a) && a.constructor.name === "Uint8Array";
415579
415816
  }
@@ -415633,7 +415870,7 @@ var init_utils = __esm(() => {
415633
415870
  /*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
415634
415871
  });
415635
415872
 
415636
- // ../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/_md.js
415873
+ // ../../../v2/node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/_md.js
415637
415874
  function setBigUint64(view, byteOffset, value2, isLE) {
415638
415875
  if (typeof view.setBigUint64 === "function")
415639
415876
  return view.setBigUint64(byteOffset, value2, isLE);
@@ -415757,7 +415994,7 @@ var init__md = __esm(() => {
415757
415994
  ]);
415758
415995
  });
415759
415996
 
415760
- // ../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/sha2.js
415997
+ // ../../../v2/node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/sha2.js
415761
415998
  var SHA256_K, SHA256_W, SHA256, sha256;
415762
415999
  var init_sha2 = __esm(() => {
415763
416000
  init__md();
@@ -415901,7 +416138,7 @@ var init_sha2 = __esm(() => {
415901
416138
  sha256 = /* @__PURE__ */ createHasher(() => new SHA256);
415902
416139
  });
415903
416140
 
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
416141
+ // ../../../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
415905
416142
  var PKG_NAME3 = "@liveblocks/yjs", PKG_VERSION3 = "3.15.5", PKG_FORMAT3 = "esm", create9 = () => /* @__PURE__ */ new Map, setIfUndefined3 = (map5, key2, createT) => {
415906
416143
  let set3 = map5.get(key2);
415907
416144
  if (set3 === undefined) {