@superdoc/mcp 1.8.0 → 1.9.0-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 +796 -426
  2. package/package.json +4 -4
package/dist/index.js CHANGED
@@ -31620,7 +31620,7 @@ var init_host = __esm(() => {
31620
31620
  });
31621
31621
 
31622
31622
  // ../../packages/sdk/langs/node/src/runtime/sdk-version.generated.ts
31623
- var SDK_VERSION = "2.21.0";
31623
+ var SDK_VERSION = "2.22.0-next.1";
31624
31624
 
31625
31625
  // ../../packages/sdk/langs/node/src/runtime/embedded-platform.ts
31626
31626
  import { accessSync, chmodSync, constants, existsSync, statSync } from "node:fs";
@@ -127344,7 +127344,7 @@ function utf8ByteLength(cp) {
127344
127344
  }
127345
127345
  var NS_W = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", NS_WSTRICT = "http://purl.oclc.org/ooxml/wordprocessingml/main", NS_W14 = "http://schemas.microsoft.com/office/word/2010/wordml", NS_W15 = "http://schemas.microsoft.com/office/word/2012/wordml", NS_MC = "http://schemas.openxmlformats.org/markup-compatibility/2006", NS_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships", NS_RSTRICT = "http://purl.oclc.org/ooxml/officeDocument/relationships", NS_A = "http://schemas.openxmlformats.org/drawingml/2006/main", NS_V = "urn:schemas-microsoft-com:vml", NS_XML = "http://www.w3.org/XML/1998/namespace";
127346
127346
 
127347
- // ../../node_modules/.pnpm/xmlchars@2.2.0/node_modules/xmlchars/xml/1.0/ed5.js
127347
+ // ../../../v2/node_modules/.pnpm/xmlchars@2.2.0/node_modules/xmlchars/xml/1.0/ed5.js
127348
127348
  var require_ed5 = __commonJS((exports) => {
127349
127349
  Object.defineProperty(exports, "__esModule", { value: true });
127350
127350
  exports.CHAR = `
@@ -127382,7 +127382,7 @@ var require_ed5 = __commonJS((exports) => {
127382
127382
  exports.isNameChar = isNameChar;
127383
127383
  });
127384
127384
 
127385
- // ../../node_modules/.pnpm/xmlchars@2.2.0/node_modules/xmlchars/xml/1.1/ed2.js
127385
+ // ../../../v2/node_modules/.pnpm/xmlchars@2.2.0/node_modules/xmlchars/xml/1.1/ed2.js
127386
127386
  var require_ed2 = __commonJS((exports) => {
127387
127387
  Object.defineProperty(exports, "__esModule", { value: true });
127388
127388
  exports.CHAR = "\x01-퟿-�\uD800\uDC00-\uDBFF\uDFFF";
@@ -127429,7 +127429,7 @@ var require_ed2 = __commonJS((exports) => {
127429
127429
  exports.isNameChar = isNameChar;
127430
127430
  });
127431
127431
 
127432
- // ../../node_modules/.pnpm/xmlchars@2.2.0/node_modules/xmlchars/xmlns/1.0/ed3.js
127432
+ // ../../../v2/node_modules/.pnpm/xmlchars@2.2.0/node_modules/xmlchars/xmlns/1.0/ed3.js
127433
127433
  var require_ed3 = __commonJS((exports) => {
127434
127434
  Object.defineProperty(exports, "__esModule", { value: true });
127435
127435
  exports.NC_NAME_START_CHAR = "A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�\uD800\uDC00-\uDB7F\uDFFF";
@@ -127447,7 +127447,7 @@ var require_ed3 = __commonJS((exports) => {
127447
127447
  exports.isNCNameChar = isNCNameChar;
127448
127448
  });
127449
127449
 
127450
- // ../../node_modules/.pnpm/saxes@6.0.0/node_modules/saxes/saxes.js
127450
+ // ../../../v2/node_modules/.pnpm/saxes@6.0.0/node_modules/saxes/saxes.js
127451
127451
  var require_saxes = __commonJS((exports) => {
127452
127452
  Object.defineProperty(exports, "__esModule", { value: true });
127453
127453
  exports.SaxesParser = exports.EVENTS = undefined;
@@ -129568,6 +129568,34 @@ var init_xml_text = __esm(() => {
129568
129568
  ENTITY_RE = /&(lt|gt|amp|quot|apos|#\d+|#x[0-9a-fA-F]+);/g;
129569
129569
  });
129570
129570
 
129571
+ // ../../../v2/editor-core/dist/document/internal/tracked-change-email.js
129572
+ function serializeTrackedChangeEmail(email3, wordPrefix, protectedXml = "") {
129573
+ if (!email3)
129574
+ return "";
129575
+ const referenced = new Set(decodeXmlText(protectedXml).match(new RegExp(RAW_XML_NCNAME_PATTERN, "gu")));
129576
+ referenced.add(wordPrefix);
129577
+ const availablePrefix = (base2) => {
129578
+ let prefix = base2;
129579
+ for (let suffix = 1;referenced.has(prefix); suffix += 1)
129580
+ prefix = `${base2}${suffix}`;
129581
+ referenced.add(prefix);
129582
+ return prefix;
129583
+ };
129584
+ const vendor = availablePrefix("sdtr");
129585
+ const mc = availablePrefix("sdmc");
129586
+ return ` xmlns:${vendor}="${TRACKED_CHANGE_NAMESPACE}" xmlns:${mc}="${NS_MC}" ${mc}:Ignorable="${vendor}" ${vendor}:authorEmail="${escapeXmlAttribute(email3)}"`;
129587
+ }
129588
+ function readRawTrackedChangeEmail(rawTagOrAttrs, namespaceBindings) {
129589
+ if (!namespaceBindings)
129590
+ return null;
129591
+ return readXmlAttributeValueByNamespace(rawTagOrAttrs, namespaceBindings, TRACKED_CHANGE_NAMESPACE, "authorEmail") ?? readXmlAttributeValueByNamespace(rawTagOrAttrs, namespaceBindings, NS_W, "authorEmail") ?? readXmlAttributeValueByNamespace(rawTagOrAttrs, namespaceBindings, NS_W, "email");
129592
+ }
129593
+ var TRACKED_CHANGE_NAMESPACE = "urn:superdoc:tracked-change:1";
129594
+ var init_tracked_change_email = __esm(() => {
129595
+ init_xml_sax();
129596
+ init_xml_text();
129597
+ });
129598
+
129571
129599
  // ../../../v2/editor-core/dist/document/internal/sdt-content-editability.js
129572
129600
  function isSdtContentEditable(sdtXml) {
129573
129601
  const contentMatch = /<(?:[\w.-]+:)?sdtContent\b/iu.exec(sdtXml);
@@ -130270,13 +130298,14 @@ function buildTrackedWrapper(source, node2, ctx) {
130270
130298
  namespaceBindings
130271
130299
  };
130272
130300
  const children = node2.selfClosing ? [] : processInlineItems(source, scanChildElements(source, node2.openEnd, node2.closeStart), childCtx);
130301
+ const rawEmail = readRawTrackedChangeEmail(node2.openTag, namespaceBindings);
130273
130302
  return {
130274
130303
  kind: "tracked",
130275
130304
  trackedKind,
130276
130305
  removesVisible,
130277
130306
  author: readAttrByNamespace(node2.openTag, namespaceBindings, NS_W, "author"),
130278
130307
  initials: readAttrByNamespace(node2.openTag, namespaceBindings, NS_W, "initials"),
130279
- email: readAttrByNamespace(node2.openTag, namespaceBindings, NS_W, "authorEmail") ?? readAttrByNamespace(node2.openTag, namespaceBindings, NS_W, "email"),
130308
+ email: rawEmail == null ? null : decodeXmlText(rawEmail),
130280
130309
  date: readAttrByNamespace(node2.openTag, namespaceBindings, NS_W, "date"),
130281
130310
  revisionId: readAttrByNamespace(node2.openTag, namespaceBindings, NS_W, "id"),
130282
130311
  rsid: readAttrByNamespace(node2.openTag, namespaceBindings, NS_W, "rsidR") ?? readAttrByNamespace(node2.openTag, namespaceBindings, NS_W, "rsidDel"),
@@ -130751,6 +130780,7 @@ function codePointCharWidth(value, charOffset) {
130751
130780
  var editGradeInlineModelBuildCount = 0, denseUtf8CharIndexBuildCount = 0;
130752
130781
  var init_paragraph_inline_model = __esm(() => {
130753
130782
  init_xml_sax();
130783
+ init_tracked_change_email();
130754
130784
  init_xml_text();
130755
130785
  init_symbol_character();
130756
130786
  });
@@ -142412,19 +142442,25 @@ function validateRevisionReplayNamespaces(xml) {
142412
142442
  const carrier = tag.uri === W_NS && (tag.local === "ins" || tag.local === "del");
142413
142443
  const attributes = Object.values(tag.attributes);
142414
142444
  const group = attributes.filter((attribute) => attribute.uri === REWRITE_NS && attribute.local === "id");
142445
+ const email3 = attributes.filter((attribute) => attribute.uri === TRACKED_CHANGE_NS && attribute.local === "authorEmail");
142446
+ const compatiblePrefixes = [...group, ...email3].map((attribute) => attribute.prefix);
142447
+ const ignorable = attributes.find((attribute) => attribute.uri === MC_NS && attribute.local === "Ignorable")?.value.trim().split(/\s+/) ?? [];
142415
142448
  for (const attribute of attributes) {
142416
142449
  if (attribute.uri === W_NS || attribute.uri === "http://www.w3.org/XML/1998/namespace")
142417
142450
  continue;
142418
142451
  if (attribute.uri === "http://www.w3.org/2000/xmlns/") {
142419
- if (attribute.value === W_NS || carrier && (attribute.value === REWRITE_NS || attribute.value === MC_NS))
142452
+ if (attribute.value === W_NS || carrier && (attribute.value === REWRITE_NS || attribute.value === MC_NS || attribute.value === TRACKED_CHANGE_NS))
142420
142453
  continue;
142421
142454
  } else if (carrier && attribute.uri === REWRITE_NS) {
142422
142455
  if (attribute.local === "id" && /^[\w.:-]{1,200}$/.test(attribute.value))
142423
142456
  continue;
142424
142457
  if (attribute.local === "display" && attribute.value === "children" && group.length === 1)
142425
142458
  continue;
142459
+ } else if (carrier && attribute.uri === TRACKED_CHANGE_NS && attribute.local === "authorEmail") {
142460
+ if (ignorable.includes(attribute.prefix))
142461
+ continue;
142426
142462
  } else if (carrier && attribute.uri === MC_NS && attribute.local === "Ignorable") {
142427
- if (group.length === 1 && attribute.value === group[0].prefix)
142463
+ if (compatiblePrefixes.length > 0 && ignorable.every((prefix) => compatiblePrefixes.includes(prefix)) && compatiblePrefixes.every((prefix) => ignorable.includes(prefix)))
142428
142464
  continue;
142429
142465
  }
142430
142466
  valid = false;
@@ -142851,7 +142887,7 @@ function validateCompareReplayPayload(payload, options = {}) {
142851
142887
  }
142852
142888
  return { ok: true };
142853
142889
  }
142854
- var import_saxes4, UNSUPPORTED_XML, RELATIONSHIP_REFERENCE, W_NS = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", REWRITE_NS = "urn:superdoc:tracked-rewrite:1", MC_NS = "http://schemas.openxmlformats.org/markup-compatibility/2006", PROOFING_BOUNDARY_TYPES, TRANSPARENT_MARKER_TAG_RE, DIRECT_RUN_PROPERTY_ELEMENTS;
142890
+ var import_saxes4, UNSUPPORTED_XML, RELATIONSHIP_REFERENCE, W_NS = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", REWRITE_NS = "urn:superdoc:tracked-rewrite:1", TRACKED_CHANGE_NS = "urn:superdoc:tracked-change:1", MC_NS = "http://schemas.openxmlformats.org/markup-compatibility/2006", PROOFING_BOUNDARY_TYPES, TRANSPARENT_MARKER_TAG_RE, DIRECT_RUN_PROPERTY_ELEMENTS;
142855
142891
  var init_replayability = __esm(() => {
142856
142892
  init_note_xml_validation();
142857
142893
  init_inline_control_removal();
@@ -157165,7 +157201,7 @@ function scanFragments(xml, partUri, storyId, sourceByteBase = 0, initialNamespa
157165
157201
  const wId = readNamespacedAttr(attrs, namespaceBindings, "id") ?? "";
157166
157202
  const sourceAuthor = readNamespacedAttr(attrs, namespaceBindings, "author") ?? "";
157167
157203
  const sourceInitials = readNamespacedAttr(attrs, namespaceBindings, "initials");
157168
- const sourceAuthorEmail = readNamespacedAttr(attrs, namespaceBindings, "authorEmail") ?? readNamespacedAttr(attrs, namespaceBindings, "email");
157204
+ const sourceAuthorEmail = readRawTrackedChangeEmail(attrs, namespaceBindings);
157169
157205
  const sourceDate = readNamespacedAttr(attrs, namespaceBindings, "date") ?? "";
157170
157206
  const structuralIdentity = rawStructuralRevisionIdentity({
157171
157207
  wId,
@@ -157376,7 +157412,7 @@ function scanFragments(xml, partUri, storyId, sourceByteBase = 0, initialNamespa
157376
157412
  const wId = readNamespacedAttr(wrapperAttrs, namespaceBindings, "id") ?? "";
157377
157413
  const sourceAuthor = readNamespacedAttr(wrapperAttrs, namespaceBindings, "author") ?? "";
157378
157414
  const sourceInitials = readNamespacedAttr(wrapperAttrs, namespaceBindings, "initials");
157379
- const sourceAuthorEmail = readNamespacedAttr(wrapperAttrs, namespaceBindings, "authorEmail") ?? readNamespacedAttr(wrapperAttrs, namespaceBindings, "email");
157415
+ const sourceAuthorEmail = readRawTrackedChangeEmail(wrapperAttrs, namespaceBindings);
157380
157416
  const sourceDate = readNamespacedAttr(wrapperAttrs, namespaceBindings, "date") ?? "";
157381
157417
  const { author, initials, authorEmail, date: date6 } = semanticTrackedChangeMetadata({
157382
157418
  author: sourceAuthor,
@@ -157487,7 +157523,7 @@ function scanFragments(xml, partUri, storyId, sourceByteBase = 0, initialNamespa
157487
157523
  if (structuralKind) {
157488
157524
  const sourceAuthor2 = readNamespacedAttr(attrs, namespaceBindings, "author") ?? "";
157489
157525
  const sourceInitials2 = readNamespacedAttr(attrs, namespaceBindings, "initials");
157490
- const sourceAuthorEmail2 = readNamespacedAttr(attrs, namespaceBindings, "authorEmail") ?? readNamespacedAttr(attrs, namespaceBindings, "email");
157526
+ const sourceAuthorEmail2 = readRawTrackedChangeEmail(attrs, namespaceBindings);
157491
157527
  const sourceDate2 = readNamespacedAttr(attrs, namespaceBindings, "date") ?? "";
157492
157528
  const wId2 = readNamespacedAttr(attrs, namespaceBindings, "id") ?? "";
157493
157529
  const structuralIdentity = rawStructuralRevisionIdentity({
@@ -157548,7 +157584,7 @@ function scanFragments(xml, partUri, storyId, sourceByteBase = 0, initialNamespa
157548
157584
  }
157549
157585
  const sourceAuthor = readNamespacedAttr(attrs, namespaceBindings, "author") ?? "";
157550
157586
  const sourceInitials = readNamespacedAttr(attrs, namespaceBindings, "initials");
157551
- const sourceAuthorEmail = readNamespacedAttr(attrs, namespaceBindings, "authorEmail") ?? readNamespacedAttr(attrs, namespaceBindings, "email");
157587
+ const sourceAuthorEmail = readRawTrackedChangeEmail(attrs, namespaceBindings);
157552
157588
  const sourceDate = readNamespacedAttr(attrs, namespaceBindings, "date") ?? "";
157553
157589
  const { author, initials, authorEmail, date: date6 } = semanticTrackedChangeMetadata({
157554
157590
  author: sourceAuthor,
@@ -157625,7 +157661,7 @@ function scanFragments(xml, partUri, storyId, sourceByteBase = 0, initialNamespa
157625
157661
  const nestedWId = readNamespacedAttr(nestedAttrs, nestedNamespaceBindings, "id") ?? "";
157626
157662
  const nestedSourceAuthor = readNamespacedAttr(nestedAttrs, nestedNamespaceBindings, "author") ?? "";
157627
157663
  const nestedSourceInitials = readNamespacedAttr(nestedAttrs, nestedNamespaceBindings, "initials");
157628
- const nestedSourceAuthorEmail = readNamespacedAttr(nestedAttrs, nestedNamespaceBindings, "authorEmail") ?? readNamespacedAttr(nestedAttrs, nestedNamespaceBindings, "email");
157664
+ const nestedSourceAuthorEmail = readRawTrackedChangeEmail(nestedAttrs, nestedNamespaceBindings);
157629
157665
  const nestedSourceDate = readNamespacedAttr(nestedAttrs, nestedNamespaceBindings, "date") ?? "";
157630
157666
  const { author: nestedAuthor, initials: nestedInitials, authorEmail: nestedAuthorEmail, date: nestedDate } = semanticTrackedChangeMetadata({
157631
157667
  author: nestedSourceAuthor,
@@ -158429,6 +158465,7 @@ var init_catalog3 = __esm(() => {
158429
158465
  init_wml_paragraph_spans();
158430
158466
  init_xml_sax();
158431
158467
  init_lazy_indexes();
158468
+ init_tracked_change_email();
158432
158469
  TD14 = new TextDecoder;
158433
158470
  TE6 = new TextEncoder;
158434
158471
  TRACKED_CHANGE_CATALOG_TAG = Symbol.for("@superdoc/v2/tracked-change-rsid-catalog");
@@ -163274,7 +163311,7 @@ function compilePlainOnlyTrackedDeletion(input, touched) {
163274
163311
  email: input.currentAuthor.email ?? undefined,
163275
163312
  date: input.txTimestamp,
163276
163313
  rsidDel: input.rsid
163277
- }, namespace.prefix);
163314
+ }, namespace.prefix, input.paragraphXml);
163278
163315
  const delRun = renderDelRun(removedText, first.runOpen, first.runClose, first.rPr);
163279
163316
  const delXml = `<${namespace.prefix}:del${namespace.declaration}${attrs}>${delRun}</${namespace.prefix}:del>`;
163280
163317
  const xml = input.paragraphXml.slice(0, first.byteStart) + headXml + delXml + tailXml + input.paragraphXml.slice(last.byteEnd);
@@ -163290,7 +163327,7 @@ function buildInsWrapperXml(params) {
163290
163327
  email: params.author.email ?? undefined,
163291
163328
  date: params.date,
163292
163329
  rsidR: params.rsidR
163293
- }, namespace.prefix);
163330
+ }, namespace.prefix, namespace.declaration + inner);
163294
163331
  const openTag = params.openTag ? rewriteTrackedWrapperOpenTag(params.openTag, params.nsPrefix, params.namespaceBindings, {
163295
163332
  id: params.wId,
163296
163333
  author: params.author.name,
@@ -163298,7 +163335,7 @@ function buildInsWrapperXml(params) {
163298
163335
  authorEmail: params.author.email,
163299
163336
  date: params.date,
163300
163337
  rsidR: params.rsidR || null
163301
- }) : `<${namespace.prefix}:ins${namespace.declaration}${attrs}>`;
163338
+ }, inner) : `<${namespace.prefix}:ins${namespace.declaration}${attrs}>`;
163302
163339
  return `${openTag}${inner}${trackedWrapperCloseTag(openTag, namespace.prefix, "ins")}`;
163303
163340
  }
163304
163341
  function buildDelWrapperXml(params) {
@@ -163311,7 +163348,7 @@ function buildDelWrapperXml(params) {
163311
163348
  email: params.author.email ?? undefined,
163312
163349
  date: params.date,
163313
163350
  rsidDel: params.rsidDel
163314
- }, namespace.prefix);
163351
+ }, namespace.prefix, namespace.declaration + inner);
163315
163352
  const openTag = params.openTag ? rewriteTrackedWrapperOpenTag(params.openTag, params.nsPrefix, params.namespaceBindings, {
163316
163353
  id: params.wId,
163317
163354
  author: params.author.name,
@@ -163319,7 +163356,7 @@ function buildDelWrapperXml(params) {
163319
163356
  authorEmail: params.author.email,
163320
163357
  date: params.date,
163321
163358
  rsidDel: params.rsidDel || null
163322
- }) : `<${namespace.prefix}:del${namespace.declaration}${attrs}>`;
163359
+ }, inner) : `<${namespace.prefix}:del${namespace.declaration}${attrs}>`;
163323
163360
  const closeTag = trackedWrapperCloseTag(openTag, namespace.prefix, "del");
163324
163361
  return `${openTag}${inner}${closeTag}`;
163325
163362
  }
@@ -163333,18 +163370,22 @@ function trackedWrapperCloseTag(openTag, fallbackPrefix, localName2) {
163333
163370
  const qname = sourceQName && sourceLocalName === localName2 ? sourceQName : fallbackQName;
163334
163371
  return `</${qname}>`;
163335
163372
  }
163336
- function rewriteTrackedWrapperOpenTag(openTag, nsPrefix, namespaceBindings, modeledAttributes) {
163373
+ function rewriteTrackedWrapperOpenTag(openTag, nsPrefix, namespaceBindings, modeledAttributes, protectedXml) {
163374
+ const attributes = [...scanRawXmlAttributes(openTag)];
163375
+ const emailCarrier = attributes.find((attribute2) => attribute2.prefix && attribute2.localName === "authorEmail" && namespaceBindings?.get(attribute2.prefix) === TRACKED_CHANGE_NAMESPACE) ?? attributes.find((attribute2) => attribute2.prefix && attribute2.localName === "authorEmail" && namespaceBindings?.get(attribute2.prefix) === NS_W3) ?? attributes.find((attribute2) => attribute2.prefix && attribute2.localName === "email" && namespaceBindings?.get(attribute2.prefix) === NS_W3);
163337
163376
  const handled = new Set;
163338
163377
  let sourceOffset = 0;
163339
163378
  let rewritten = "";
163340
- for (const attribute2 of scanRawXmlAttributes(openTag)) {
163379
+ for (const attribute2 of attributes) {
163341
163380
  rewritten += openTag.slice(sourceOffset, attribute2.sourceStart);
163342
- const modeled = Object.prototype.hasOwnProperty.call(modeledAttributes, attribute2.localName) && namespaceBindings?.get(attribute2.prefix) === NS_W3;
163381
+ const attributeNamespace = attribute2.prefix ? namespaceBindings?.get(attribute2.prefix) : undefined;
163382
+ const localName2 = attribute2 === emailCarrier ? "authorEmail" : attribute2.localName;
163383
+ const modeled = Object.prototype.hasOwnProperty.call(modeledAttributes, localName2) && (attribute2 === emailCarrier || attributeNamespace === NS_W3 && localName2 !== "authorEmail");
163343
163384
  if (!modeled) {
163344
163385
  rewritten += openTag.slice(attribute2.sourceStart, attribute2.sourceEnd);
163345
- } else if (!handled.has(attribute2.localName)) {
163346
- handled.add(attribute2.localName);
163347
- const value = modeledAttributes[attribute2.localName];
163386
+ } else if (!handled.has(localName2)) {
163387
+ handled.add(localName2);
163388
+ const value = modeledAttributes[localName2];
163348
163389
  if (value != null) {
163349
163390
  rewritten += decodeXmlText(attribute2.value) === value ? openTag.slice(attribute2.sourceStart, attribute2.sourceEnd) : openTag.slice(attribute2.sourceStart, attribute2.valueStart) + escapeXmlAttribute(value) + openTag.slice(attribute2.valueEnd, attribute2.sourceEnd);
163350
163391
  }
@@ -163356,7 +163397,8 @@ function rewriteTrackedWrapperOpenTag(openTag, nsPrefix, namespaceBindings, mode
163356
163397
  if (value != null && !handled.has(localName2)) {
163357
163398
  const closingLength = rewritten.endsWith("/>") ? 2 : 1;
163358
163399
  const insertionPoint = rewritten.length - closingLength;
163359
- rewritten = `${rewritten.slice(0, insertionPoint)} ${nsPrefix}:${localName2}="${escapeXmlAttribute(value)}"${rewritten.slice(insertionPoint)}`;
163400
+ const addition = localName2 === "authorEmail" ? serializeTrackedChangeEmail(value, nsPrefix, rewritten + protectedXml) : ` ${nsPrefix}:${localName2}="${escapeXmlAttribute(value)}"`;
163401
+ rewritten = `${rewritten.slice(0, insertionPoint)}${addition}${rewritten.slice(insertionPoint)}`;
163360
163402
  }
163361
163403
  }
163362
163404
  return rewritten;
@@ -163370,15 +163412,14 @@ function buildDelWrapperAroundRuns(params) {
163370
163412
  email: params.author.email ?? undefined,
163371
163413
  date: params.date,
163372
163414
  rsidDel: params.rsidDel
163373
- }, namespace.prefix);
163415
+ }, namespace.prefix, namespace.declaration + params.runsXml);
163374
163416
  return `<${namespace.prefix}:del${namespace.declaration}${attrs}>${params.runsXml}</${namespace.prefix}:del>`;
163375
163417
  }
163376
- function buildAttrChain(params, prefix) {
163418
+ function buildAttrChain(params, prefix, protectedXml) {
163377
163419
  let out = ` ${prefix}:id="${escapeXmlAttribute(params.id)}" ${prefix}:author="${escapeXmlAttribute(params.author)}"`;
163378
163420
  if (params.initials && params.initials.length > 0)
163379
163421
  out += ` ${prefix}:initials="${escapeXmlAttribute(params.initials)}"`;
163380
- if (params.email && params.email.length > 0)
163381
- out += ` ${prefix}:authorEmail="${escapeXmlAttribute(params.email)}"`;
163422
+ out += serializeTrackedChangeEmail(params.email, prefix, protectedXml);
163382
163423
  out += ` ${prefix}:date="${escapeXmlAttribute(params.date)}"`;
163383
163424
  if (params.rsidR)
163384
163425
  out += ` ${prefix}:rsidR="${escapeXmlAttribute(params.rsidR)}"`;
@@ -163893,6 +163934,7 @@ function selectionStraddlesMarker(rangeStart, rangeEnd, markerAt) {
163893
163934
  }
163894
163935
  var NS_W3 = "http://schemas.openxmlformats.org/wordprocessingml/2006/main";
163895
163936
  var init_overlap_edit_compiler = __esm(() => {
163937
+ init_tracked_change_email();
163896
163938
  init_word_text_payload();
163897
163939
  init_xml_text();
163898
163940
  init_xml_sax();
@@ -164182,6 +164224,36 @@ function parseHyperlinkFieldInstruction(instruction) {
164182
164224
  return null;
164183
164225
  return parsed;
164184
164226
  }
164227
+ function parseBookmarkReferenceFieldInstruction(instruction) {
164228
+ const tokens = tokenizeFieldInstruction(instruction);
164229
+ const keyword = tokens?.[0]?.value.toUpperCase();
164230
+ if (!tokens || keyword !== "REF" && keyword !== "PAGEREF")
164231
+ return null;
164232
+ let bookmark = null;
164233
+ let hyperlink = false;
164234
+ for (let index = 1;index < tokens.length; index += 1) {
164235
+ const token = tokens[index];
164236
+ if (!isSwitchToken(token)) {
164237
+ if (bookmark == null && token.value.length > 0)
164238
+ bookmark = token.value;
164239
+ continue;
164240
+ }
164241
+ const flag = token.value.slice(1).toLowerCase();
164242
+ if (flag === "h") {
164243
+ hyperlink = true;
164244
+ continue;
164245
+ }
164246
+ if (flag === "*" || flag === "#" || flag === "@" || keyword === "REF" && flag === "d") {
164247
+ const value = tokens[index + 1];
164248
+ if (value == null || isSwitchToken(value))
164249
+ return null;
164250
+ index += 1;
164251
+ }
164252
+ }
164253
+ if (bookmark == null)
164254
+ return null;
164255
+ return { kind: keyword === "REF" ? "ref" : "pageRef", bookmark, hyperlink };
164256
+ }
164185
164257
  function buildHyperlinkFieldInstruction(input) {
164186
164258
  const href = normalizeOptionalValue(input.href);
164187
164259
  const anchor = normalizeOptionalValue(input.anchor);
@@ -164942,16 +165014,16 @@ function xmlQName(prefix, localName2) {
164942
165014
  }
164943
165015
  function wrapTrackedInsertion(inner, stamp) {
164944
165016
  const id = stamp.allocateWId();
164945
- return renderTrackedChangeOpen("ins", id, stamp, true) + inner + "</w:ins>";
165017
+ return renderTrackedChangeOpen("ins", id, stamp, true, "w", false, inner) + inner + "</w:ins>";
164946
165018
  }
164947
165019
  function renderTrackedChangeMarker(kind, id, stamp, includeRsid, wordPrefix = "w", declareWordPrefix = false) {
164948
165020
  return renderTrackedChangeOpen(kind, id, stamp, includeRsid, wordPrefix, declareWordPrefix).replace(/>$/, "/>");
164949
165021
  }
164950
- function renderTrackedChangeOpen(kind, id, stamp, includeRsid, wordPrefix = "w", declareWordPrefix = false) {
165022
+ function renderTrackedChangeOpen(kind, id, stamp, includeRsid, wordPrefix = "w", declareWordPrefix = false, protectedXml = "") {
164951
165023
  const attr2 = (name) => xmlQName(wordPrefix, name);
164952
165024
  const namespace = declareWordPrefix ? ` xmlns:${wordPrefix}="${WORDPROCESSINGML_NAMESPACE3}"` : "";
164953
165025
  const initials = stamp.author.initials ? ` ${attr2("initials")}="${escapeXmlAttribute(stamp.author.initials)}"` : "";
164954
- const email3 = stamp.author.email ? ` ${attr2("authorEmail")}="${escapeXmlAttribute(stamp.author.email)}"` : "";
165026
+ const email3 = serializeTrackedChangeEmail(stamp.author.email, wordPrefix, protectedXml);
164955
165027
  const rsid = includeRsid ? ` ${attr2(kind === "del" ? "rsidDel" : "rsidR")}="${escapeXmlAttribute(stamp.rsid)}"` : "";
164956
165028
  return `<${xmlQName(wordPrefix, kind)}${namespace} ${attr2("id")}="${id}" ${attr2("author")}="${escapeXmlAttribute(stamp.author.name)}"${initials}${email3}` + ` ${attr2("date")}="${escapeXmlAttribute(stamp.date)}"${rsid}>`;
164957
165029
  }
@@ -165010,6 +165082,7 @@ function collidesWithExistingParaId(state, candidate) {
165010
165082
  }
165011
165083
  var WORDPROCESSINGML_NAMESPACE3 = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", PASTE_TABLE_DEFAULT_CONTENT_WIDTH_TWIPS = 9360, PASTE_TABLE_GRID_TWIPS, DEFAULT_PAGE_MARGIN_TWIPS = 1440, VML_NAMESPACE = "urn:schemas-microsoft-com:vml", OFFICE_NAMESPACE = "urn:schemas-microsoft-com:office:office";
165012
165084
  var init_paragraph_contribution = __esm(() => {
165085
+ init_tracked_change_email();
165013
165086
  init_xml_sax();
165014
165087
  init_xml_text();
165015
165088
  init_paragraph_para_id_attrs();
@@ -168749,6 +168822,19 @@ var init_text_edit_validation_state = __esm(() => {
168749
168822
  init_catalog3();
168750
168823
  });
168751
168824
 
168825
+ // ../../../v2/editor-core/dist/document/internal/xml-ignorable.js
168826
+ function appendXmlIgnorablePrefix(openTag, namespaceBindings, prefix, mcPrefix) {
168827
+ for (const attribute2 of scanRawXmlAttributes(openTag)) {
168828
+ if (attribute2.localName === "Ignorable" && attribute2.prefix && namespaceBindings[attribute2.prefix] === NS_MC) {
168829
+ return openTag.slice(0, attribute2.valueEnd) + ` ${prefix}` + openTag.slice(attribute2.valueEnd);
168830
+ }
168831
+ }
168832
+ return openTag.slice(0, -1) + ` xmlns:${mcPrefix}="${NS_MC}" ${mcPrefix}:Ignorable="${prefix}">`;
168833
+ }
168834
+ var init_xml_ignorable = __esm(() => {
168835
+ init_xml_sax();
168836
+ });
168837
+
168752
168838
  // ../../../v2/editor-core/dist/document/transactions/tracked-changes/cell-split-paragraph-ownership.js
168753
168839
  function collectCellSplitOwnedParagraphs(input) {
168754
168840
  const identity = input.fragments[0];
@@ -174272,7 +174358,7 @@ function stampComparisonHunkOrigins(xml, originsByRsid, source) {
174272
174358
  const parsed = walkXmlElements(xml, {
174273
174359
  fragment: true,
174274
174360
  additionalNamespaces: xmlFragmentAdditionalNamespaces(xml, new Map, { w: NS_W }),
174275
- onOpenTag: ({ tag, end, namespaceBindings }) => {
174361
+ onOpenTag: ({ tag, start, end, namespaceBindings }) => {
174276
174362
  if (tag.namespaceUri !== NS_W || tag.isSelfClosing || tag.localName !== "ins" && tag.localName !== "del")
174277
174363
  return;
174278
174364
  const rsid = tag.attributes.find((attribute2) => attribute2.namespaceUri === NS_W && attribute2.localName === (tag.localName === "ins" ? "rsidR" : "rsidDel"))?.value;
@@ -174287,9 +174373,11 @@ function stampComparisonHunkOrigins(xml, originsByRsid, source) {
174287
174373
  };
174288
174374
  const prefix = availablePrefix("sdReview");
174289
174375
  const mc = availablePrefix("sdReviewMc");
174376
+ const openTag = appendXmlIgnorablePrefix(xml.slice(start, end), namespaceBindings, prefix, mc);
174290
174377
  replacements.push({
174291
- at: end - 1,
174292
- text: ` xmlns:${prefix}="${COMPARISON_HUNK_NAMESPACE}" xmlns:${mc}="${MC_NAMESPACE}" ${mc}:Ignorable="${prefix}" ${prefix}:originId="${id}" ${prefix}:originKind="comparison-hunk"`
174378
+ start,
174379
+ end,
174380
+ text: openTag.slice(0, -1) + ` xmlns:${prefix}="${COMPARISON_HUNK_NAMESPACE}" ${prefix}:originId="${id}" ${prefix}:originKind="comparison-hunk">`
174293
174381
  });
174294
174382
  }
174295
174383
  });
@@ -174298,8 +174386,8 @@ function stampComparisonHunkOrigins(xml, originsByRsid, source) {
174298
174386
  let cursor = 0;
174299
174387
  const chunks = [];
174300
174388
  for (const replacement of replacements) {
174301
- chunks.push(xml.slice(cursor, replacement.at), replacement.text);
174302
- cursor = replacement.at;
174389
+ chunks.push(xml.slice(cursor, replacement.start), replacement.text);
174390
+ cursor = replacement.end;
174303
174391
  }
174304
174392
  chunks.push(xml.slice(cursor));
174305
174393
  return chunks.join("");
@@ -174420,9 +174508,10 @@ function projectComparisonHunkReviewGroup(entry, logical) {
174420
174508
  })
174421
174509
  };
174422
174510
  }
174423
- var COMPARISON_HUNK_NAMESPACE = "urn:superdoc:tracked-review:1", MC_NAMESPACE = "http://schemas.openxmlformats.org/markup-compatibility/2006";
174511
+ var COMPARISON_HUNK_NAMESPACE = "urn:superdoc:tracked-review:1";
174424
174512
  var init_comparison_hunk_groups = __esm(() => {
174425
174513
  init_xml_sax();
174514
+ init_xml_ignorable();
174426
174515
  init_logical_catalog();
174427
174516
  });
174428
174517
 
@@ -179841,7 +179930,7 @@ function stampRewriteGroups(xml, groupsByRsid, source) {
179841
179930
  const parsed = walkXmlElements(xml, {
179842
179931
  fragment: true,
179843
179932
  additionalNamespaces: xmlFragmentAdditionalNamespaces(xml, new Map, { w: NS_W }),
179844
- onOpenTag: ({ tag, end, namespaceBindings }) => {
179933
+ onOpenTag: ({ tag, start, end, namespaceBindings }) => {
179845
179934
  if (tag.namespaceUri !== NS_W || tag.isSelfClosing || tag.localName !== "ins" && tag.localName !== "del")
179846
179935
  return;
179847
179936
  const rsid = tag.attributes.find((attribute2) => attribute2.namespaceUri === NS_W && attribute2.localName === (tag.localName === "ins" ? "rsidR" : "rsidDel"))?.value;
@@ -179856,9 +179945,11 @@ function stampRewriteGroups(xml, groupsByRsid, source) {
179856
179945
  };
179857
179946
  const prefix = availablePrefix("sdRewrite");
179858
179947
  const mc = availablePrefix("sdRewriteMc");
179948
+ const openTag = appendXmlIgnorablePrefix(xml.slice(start, end), namespaceBindings, prefix, mc);
179859
179949
  replacements.push({
179860
- at: end - 1,
179861
- text: ` xmlns:${prefix}="${REWRITE_NAMESPACE}" xmlns:${mc}="${MC_NAMESPACE2}" ${mc}:Ignorable="${prefix}" ${prefix}:id="${id}"${independentOrigins.has(id) ? ` ${prefix}:display="children"` : ""}`
179950
+ start,
179951
+ end,
179952
+ text: openTag.slice(0, -1) + ` xmlns:${prefix}="${REWRITE_NAMESPACE}" ${prefix}:id="${id}"${independentOrigins.has(id) ? ` ${prefix}:display="children"` : ""}>`
179862
179953
  });
179863
179954
  }
179864
179955
  });
@@ -179867,8 +179958,8 @@ function stampRewriteGroups(xml, groupsByRsid, source) {
179867
179958
  let cursor = 0;
179868
179959
  const chunks = [];
179869
179960
  for (const replacement of replacements) {
179870
- chunks.push(xml.slice(cursor, replacement.at), replacement.text);
179871
- cursor = replacement.at;
179961
+ chunks.push(xml.slice(cursor, replacement.start), replacement.text);
179962
+ cursor = replacement.end;
179872
179963
  }
179873
179964
  chunks.push(xml.slice(cursor));
179874
179965
  return chunks.join("");
@@ -180014,9 +180105,10 @@ function isVisibleLogicalTrackedChange(entry) {
180014
180105
  function reviewGroupDisplayParentId(entry) {
180015
180106
  return entry.reviewGroup?.role === "child" && entry.reviewGroup.display !== "children" ? entry.reviewGroup.parentId : null;
180016
180107
  }
180017
- var REWRITE_NAMESPACE = "urn:superdoc:tracked-rewrite:1", MC_NAMESPACE2 = "http://schemas.openxmlformats.org/markup-compatibility/2006";
180108
+ var REWRITE_NAMESPACE = "urn:superdoc:tracked-rewrite:1";
180018
180109
  var init_rewrite_groups = __esm(() => {
180019
180110
  init_xml_sax();
180111
+ init_xml_ignorable();
180020
180112
  init_catalog3();
180021
180113
  init_logical_catalog();
180022
180114
  });
@@ -195363,7 +195455,7 @@ function rewriteCollapsedTrackedInsertAtNoteBoundary(context, offset, stamp) {
195363
195455
  const runPropertiesXml = site.styleCarrier?.runPropertiesXml ?? paragraphMarkRunProperties;
195364
195456
  const inner = renderTextRun(stamp.newText, runOpen, runClose, runPropertiesXml);
195365
195457
  const namespace = wordRevisionNamespace(runOpen, inner);
195366
- const wrapperOpenXml = buildInsOpenTag({ ...stamp, rsid: stamp.insRsid }, namespace);
195458
+ const wrapperOpenXml = buildInsOpenTag({ ...stamp, rsid: stamp.insRsid }, namespace, inner);
195367
195459
  const wrapperCloseXml = `</${namespace.prefix}:ins>`;
195368
195460
  const insertionXml = wrapperOpenXml + inner + wrapperCloseXml;
195369
195461
  const insertionBytes = TE15.encode(insertionXml);
@@ -197918,7 +198010,7 @@ function resolveControlOnlyTrackedWrapperDeletion(paragraphXml, startOffset, end
197918
198010
  const closeTag = `</${openTagMatch[1]}:ins>`;
197919
198011
  const controlRunXml = insXml.slice(openTagMatch[0].length, insXml.length - closeTag.length);
197920
198012
  const namespace = wordReplacementRevisionNamespace(openTagMatch[0], controlRunXml);
197921
- const delXml = buildDelOpenTag(stamp, namespace) + controlRunXml + `</${namespace.prefix}:del>`;
198013
+ const delXml = buildDelOpenTag(stamp, namespace, controlRunXml) + controlRunXml + `</${namespace.prefix}:del>`;
197922
198014
  return {
197923
198015
  xml: paragraphXml.slice(0, insAbsStart) + delXml + paragraphXml.slice(insAbsEnd)
197924
198016
  };
@@ -198147,11 +198239,11 @@ function buildInsWrapper(text, runOpen, runClose, rPr, stamp) {
198147
198239
  }
198148
198240
  function buildInsertedContentWrapper(inner, reference, stamp) {
198149
198241
  const namespace = wordRevisionNamespace(reference, inner);
198150
- return buildInsOpenTag(stamp, namespace) + inner + `</${namespace.prefix}:ins>`;
198242
+ return buildInsOpenTag(stamp, namespace, inner) + inner + `</${namespace.prefix}:ins>`;
198151
198243
  }
198152
- function buildInsOpenTag(stamp, namespace) {
198244
+ function buildInsOpenTag(stamp, namespace, protectedXml) {
198153
198245
  const ns = namespace.prefix;
198154
- return `<${ns}:ins${namespace.declaration} ${ns}:id="${stamp.wId}" ${ns}:author="${escapeXmlAttribute(stamp.author.name)}"` + `${stamp.author.initials ? ` ${ns}:initials="${escapeXmlAttribute(stamp.author.initials)}"` : ""}` + `${stamp.author.email ? ` ${ns}:authorEmail="${escapeXmlAttribute(stamp.author.email)}"` : ""}` + ` ${ns}:date="${escapeXmlAttribute(stamp.date)}" ${ns}:rsidR="${escapeXmlAttribute(stamp.rsid)}">`;
198246
+ return `<${ns}:ins${namespace.declaration} ${ns}:id="${stamp.wId}" ${ns}:author="${escapeXmlAttribute(stamp.author.name)}"` + `${stamp.author.initials ? ` ${ns}:initials="${escapeXmlAttribute(stamp.author.initials)}"` : ""}` + serializeTrackedChangeEmail(stamp.author.email, ns, namespace.declaration + protectedXml) + ` ${ns}:date="${escapeXmlAttribute(stamp.date)}" ${ns}:rsidR="${escapeXmlAttribute(stamp.rsid)}">`;
198155
198247
  }
198156
198248
  function buildDelWrapperFromRunSpan(span, stamp) {
198157
198249
  const inner = buildDeletedRunXmlFromRunSpan(span);
@@ -198161,7 +198253,7 @@ function buildDelWrapperFromRunSpan(span, stamp) {
198161
198253
  }
198162
198254
  function buildDeletedContentWrapper(inner, reference, stamp) {
198163
198255
  const namespace = wordRevisionNamespace(reference, inner);
198164
- return buildDelOpenTag(stamp, namespace) + inner + `</${namespace.prefix}:del>`;
198256
+ return buildDelOpenTag(stamp, namespace, inner) + inner + `</${namespace.prefix}:del>`;
198165
198257
  }
198166
198258
  function buildDeletedRunXmlFromRunSpan(span) {
198167
198259
  let inner = "";
@@ -198191,9 +198283,9 @@ function serializeDeletedTextRun(carrier) {
198191
198283
  const textName = wordTextName(carrier.runOpen, "delText");
198192
198284
  return `${carrier.runOpen}${carrier.rPr}<${textName}${preserve}>${escapeXmlText(carrier.text)}</${textName}>${carrier.runClose}`;
198193
198285
  }
198194
- function buildDelOpenTag(stamp, namespace) {
198286
+ function buildDelOpenTag(stamp, namespace, protectedXml) {
198195
198287
  const ns = namespace.prefix;
198196
- return `<${ns}:del${namespace.declaration} ${ns}:id="${stamp.wId}" ${ns}:author="${escapeXmlAttribute(stamp.author.name)}"` + `${stamp.author.initials ? ` ${ns}:initials="${escapeXmlAttribute(stamp.author.initials)}"` : ""}` + `${stamp.author.email ? ` ${ns}:authorEmail="${escapeXmlAttribute(stamp.author.email)}"` : ""}` + ` ${ns}:date="${escapeXmlAttribute(stamp.date)}" ${ns}:rsidDel="${escapeXmlAttribute(stamp.rsid)}">`;
198288
+ return `<${ns}:del${namespace.declaration} ${ns}:id="${stamp.wId}" ${ns}:author="${escapeXmlAttribute(stamp.author.name)}"` + `${stamp.author.initials ? ` ${ns}:initials="${escapeXmlAttribute(stamp.author.initials)}"` : ""}` + serializeTrackedChangeEmail(stamp.author.email, ns, namespace.declaration + protectedXml) + ` ${ns}:date="${escapeXmlAttribute(stamp.date)}" ${ns}:rsidDel="${escapeXmlAttribute(stamp.rsid)}">`;
198197
198289
  }
198198
198290
  function decodeXmlText4(escaped) {
198199
198291
  return escaped.replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, '"').replace(/&apos;/g, "'").replace(/&amp;/g, "&");
@@ -198256,6 +198348,7 @@ var init_compile_edit_text = __esm(() => {
198256
198348
  init_content_locked_block_sdt();
198257
198349
  init_toc_entry_style();
198258
198350
  init_word_text_names();
198351
+ init_tracked_change_email();
198259
198352
  init_xml_namespace_scope();
198260
198353
  init_compile_edit_text_inline_plan();
198261
198354
  init_prepared_mutation();
@@ -198308,7 +198401,7 @@ function prepareTrackedInlineXmlReplacement(input) {
198308
198401
  return "";
198309
198402
  const id = stamp.allocateWId();
198310
198403
  wordIds.push(String(id));
198311
- return `${renderTrackedChangeOpen(kind, id, stamp, false, wordPrefix, !existingWordPrefix)}${xml}</${wordPrefix}:${kind}>`;
198404
+ return `${renderTrackedChangeOpen(kind, id, stamp, false, wordPrefix, !existingWordPrefix, xml)}${xml}</${wordPrefix}:${kind}>`;
198312
198405
  };
198313
198406
  return {
198314
198407
  xml: wrap(deletedXml, "del") + wrap(input.afterXml, "ins", input.emitEmptyInsertion === true),
@@ -198940,7 +199033,7 @@ function renderNoteParagraphXml(input) {
198940
199033
  }
198941
199034
  function wrapNoteTrackedInsertion(inner, stamp) {
198942
199035
  const id = stamp.allocateWId();
198943
- return `${renderTrackedChangeOpen("ins", id, stamp, true)}${inner}</w:ins>`;
199036
+ return `${renderTrackedChangeOpen("ins", id, stamp, true, "w", false, inner)}${inner}</w:ins>`;
198944
199037
  }
198945
199038
  function noteBodyRuns(paragraph) {
198946
199039
  if (!paragraph.inlines)
@@ -210486,7 +210579,7 @@ function renderNewParagraph(input) {
210486
210579
  return `<w:p${nsDecl} w14:paraId="${escapeXmlAttribute(input.paraId)}">${pPr}${runs}</w:p>`;
210487
210580
  }
210488
210581
  const trackedPPr = renderTrackedParagraphMarkProperties(pPr, input.tracked);
210489
- const trackedRuns = runs ? renderTrackedChangeOpen("ins", input.tracked.allocateWId(), input.tracked, false) + runs + "</w:ins>" : "";
210582
+ const trackedRuns = runs ? renderTrackedChangeOpen("ins", input.tracked.allocateWId(), input.tracked, false, "w", false, runs) + runs + "</w:ins>" : "";
210490
210583
  return `<w:p${nsDecl} w14:paraId="${escapeXmlAttribute(input.paraId)}" ` + `w:rsidR="${escapeXmlAttribute(input.tracked.rsid)}">${trackedPPr}${trackedRuns}</w:p>`;
210491
210584
  }
210492
210585
  function liveParagraphPropertiesEnd(pPrXml) {
@@ -210542,7 +210635,7 @@ function injectParagraphMarkTrackedMarker(paraXml, kind, stamp, collectCreatedRe
210542
210635
  }
210543
210636
  function buildParagraphMarkTrackedMarker(prefix, kind, stamp) {
210544
210637
  const initials = stamp.author.initials ? ` ${prefix}:initials="${escapeXmlAttribute(stamp.author.initials)}"` : "";
210545
- const authorEmail = stamp.author.email ? ` ${prefix}:authorEmail="${escapeXmlAttribute(stamp.author.email)}"` : "";
210638
+ const authorEmail = serializeTrackedChangeEmail(stamp.author.email, prefix);
210546
210639
  return `<${prefix}:${kind} ${prefix}:id="${stamp.wId}" ${prefix}:author="${escapeXmlAttribute(stamp.author.name)}"${initials}${authorEmail}` + ` ${prefix}:date="${escapeXmlAttribute(stamp.date)}"/>`;
210547
210640
  }
210548
210641
  function pickParagraphTrackedStamp(input, explicitRsid) {
@@ -210633,7 +210726,7 @@ function isOwnInsertedParagraphMark(paragraphXml, author, inheritedNamespaces) {
210633
210726
  const read = (name) => decodeXmlText(readXmlAttributeValueByNamespace(marker, scope, NS_W, name) ?? "");
210634
210727
  return classifyInsertionAuthoringOwnership(buildReviewIdentity(author), buildReviewIdentity({
210635
210728
  name: read("author"),
210636
- email: read("authorEmail"),
210729
+ email: decodeXmlText(readRawTrackedChangeEmail(marker, scope) ?? ""),
210637
210730
  initials: read("initials")
210638
210731
  })) === "same-user";
210639
210732
  }
@@ -211301,6 +211394,7 @@ function collectPerPartRevisions4(state, partUris) {
211301
211394
  }
211302
211395
  var TD45, TE22, COMMENTS_PART_URI2 = "/word/comments.xml", COMMENTS_EXTENDED_PART_URI2 = "/word/commentsExtended.xml", COMMENTS_IDS_PART_URI2 = "/word/commentsIds.xml", TOC_ENTRY_STYLE_RE2, isTocEntryParagraph = (xml) => TOC_ENTRY_STYLE_RE2.test(xml), RANGE_COLLAPSE_STRUCTURAL_FALLBACK_TAG, RANGE_COLLAPSE_TRACKED_RELATIONSHIP_TAG;
211303
211396
  var init_compile_paragraph_ops = __esm(() => {
211397
+ init_tracked_change_email();
211304
211398
  init_sd_document_state();
211305
211399
  init_text_offset_mapping();
211306
211400
  init_paragraph_inline_model();
@@ -214833,11 +214927,7 @@ function renderTrackedTableMarker(kind, id, stamp, owner) {
214833
214927
  const sourcePrefix = owner.tag.prefix;
214834
214928
  const boundPrefix = sourcePrefix && owner.namespaceBindings[sourcePrefix] === NS_W ? sourcePrefix : Object.entries(owner.namespaceBindings).find(([prefix2, namespace]) => prefix2 && namespace === NS_W)?.[0];
214835
214929
  const prefix = boundPrefix ?? "w";
214836
- let marker = renderTrackedChangeMarker(kind, id, stamp, false).replace(/^<w:/, `<${prefix}:`).replace(/ w:([A-Za-z_][\w.-]*)=/g, ` ${prefix}:$1=`);
214837
- if (!boundPrefix) {
214838
- marker = marker.replace(/^<([^\s/>]+)/, `<$1 xmlns:${prefix}="${NS_W}"`);
214839
- }
214840
- return marker;
214930
+ return renderTrackedChangeMarker(kind, id, stamp, false, prefix, !boundPrefix);
214841
214931
  }
214842
214932
  function xmlOffsetsForBytePositions(bytes, positions) {
214843
214933
  const sorted = [...new Set(positions)].sort((left, right) => left - right);
@@ -218572,7 +218662,7 @@ var init_history_part_rewrite = __esm(() => {
218572
218662
  init_part_payload();
218573
218663
  });
218574
218664
 
218575
- // ../../node_modules/.pnpm/fflate@0.8.2/node_modules/fflate/esm/index.mjs
218665
+ // ../../../v2/node_modules/.pnpm/fflate@0.8.2/node_modules/fflate/esm/index.mjs
218576
218666
  import { createRequire as createRequire3 } from "module";
218577
218667
  function deflateSync(data, opts) {
218578
218668
  return dopt(data, opts || {}, 0, 0);
@@ -241900,7 +241990,7 @@ function finishMoveDestinationParagraph(paragraphXml, input) {
241900
241990
  }
241901
241991
  function decorateWholeParagraphMoveSide(paragraphXml, kind, stamp) {
241902
241992
  const wId = kind === "moveFrom" ? stamp.paragraphFromWId : stamp.paragraphToWId;
241903
- const marker = `<w:${kind} w:id="${wId}" w:author="${escapeXmlAttribute(stamp.author.name)}"` + `${stamp.author.initials ? ` w:initials="${escapeXmlAttribute(stamp.author.initials)}"` : ""}` + `${stamp.author.email ? ` w:authorEmail="${escapeXmlAttribute(stamp.author.email)}"` : ""}` + ` w:date="${escapeXmlAttribute(stamp.date)}"/>`;
241993
+ const marker = `<w:${kind} w:id="${wId}" w:author="${escapeXmlAttribute(stamp.author.name)}"` + `${stamp.author.initials ? ` w:initials="${escapeXmlAttribute(stamp.author.initials)}"` : ""}` + serializeTrackedChangeEmail(stamp.author.email, "w") + ` w:date="${escapeXmlAttribute(stamp.date)}"/>`;
241904
241994
  const withParagraphProperty = injectParagraphMarkMove(paragraphXml, marker);
241905
241995
  const rangeStart = kind === "moveFrom" ? renderMoveFromRangeStart(stamp) : "";
241906
241996
  const rangeEnd = kind === "moveFrom" ? renderMoveFromRangeEnd(stamp) : renderMoveToRangeEnd(stamp);
@@ -242124,7 +242214,7 @@ function moveSpacingRsid(wId) {
242124
242214
  }
242125
242215
  function renderTrackedSpacingInsertion(wId, input) {
242126
242216
  const { author, date: date6 } = input.stamp;
242127
- return `<w:ins w:id="${wId}" w:author="${escapeXmlAttribute(author.name)}"` + `${author.initials ? ` w:initials="${escapeXmlAttribute(author.initials)}"` : ""}` + `${author.email ? ` w:authorEmail="${escapeXmlAttribute(author.email)}"` : ""}` + ` w:date="${escapeXmlAttribute(date6)}" w:rsidR="${escapeXmlAttribute(input.rsid)}">` + '<w:r><w:t xml:space="preserve"> </w:t></w:r></w:ins>';
242217
+ return `<w:ins w:id="${wId}" w:author="${escapeXmlAttribute(author.name)}"` + `${author.initials ? ` w:initials="${escapeXmlAttribute(author.initials)}"` : ""}` + serializeTrackedChangeEmail(author.email, "w") + ` w:date="${escapeXmlAttribute(date6)}" w:rsidR="${escapeXmlAttribute(input.rsid)}">` + '<w:r><w:t xml:space="preserve"> </w:t></w:r></w:ins>';
242128
242218
  }
242129
242219
  function documentDisablesMoveTracking(state) {
242130
242220
  const bytes = state.packageBytes.get(SETTINGS_PART_URI);
@@ -242162,6 +242252,7 @@ function rejected14(txId, reason) {
242162
242252
  }
242163
242253
  var TD68, TE34, SETTINGS_PART_URI = "/word/settings.xml";
242164
242254
  var init_compile_tracked_text_move = __esm(() => {
242255
+ init_tracked_change_email();
242165
242256
  init_sd_document_state();
242166
242257
  init_paragraph_inline_model();
242167
242258
  init_xml_text();
@@ -246126,12 +246217,24 @@ function canonicalizeWordprocessingReplayXml(xml) {
246126
246217
  if (invalidDeclaration)
246127
246218
  return null;
246128
246219
  }
246129
- if (/\s+xmlns(?::[A-Za-z_][\w.-]*)?\s*=/.test(normalized))
246130
- return null;
246220
+ const metadataNamespaces = new Map;
246221
+ for (const declaration of normalized.matchAll(/\s+xmlns(?::([A-Za-z_][\w.-]*))?\s*=\s*(["'])([^"']*)\2/g)) {
246222
+ const prefix = declaration[1];
246223
+ const uri = declaration[3];
246224
+ if (!prefix || uri !== TRACKED_CHANGE_NAMESPACE && uri !== NS_MC || metadataNamespaces.has(prefix) && metadataNamespaces.get(prefix) !== uri)
246225
+ return null;
246226
+ metadataNamespaces.set(prefix, uri);
246227
+ }
246131
246228
  const prefixedAttribute = /\s+([A-Za-z_][\w.-]*):([A-Za-z_][\w.-]*)\s*=/g;
246132
246229
  for (let match = prefixedAttribute.exec(normalized);match; match = prefixedAttribute.exec(normalized)) {
246133
- if (match[1] !== sourcePrefix && match[1] !== "xml")
246134
- return null;
246230
+ if (match[1] === sourcePrefix || match[1] === "xml")
246231
+ continue;
246232
+ if (match[1] === "xmlns" && metadataNamespaces.has(match[2]))
246233
+ continue;
246234
+ const uri = metadataNamespaces.get(match[1]);
246235
+ if (uri === TRACKED_CHANGE_NAMESPACE && match[2] === "authorEmail" || uri === NS_MC && match[2] === "Ignorable")
246236
+ continue;
246237
+ return null;
246135
246238
  }
246136
246239
  normalized = normalized.replace(elementName, (_match, firstName, localName2) => {
246137
246240
  return `${_match.startsWith("</") ? "</" : "<"}w:${localName2 ?? firstName}`;
@@ -251475,6 +251578,7 @@ var init_compile_compare_apply = __esm(() => {
251475
251578
  init_tracked_terminal_paragraph_delete();
251476
251579
  init_patch_substrate();
251477
251580
  init_xml_sax();
251581
+ init_tracked_change_email();
251478
251582
  init_content_types();
251479
251583
  init_revision_wid_allocator();
251480
251584
  init_block_deletion_text();
@@ -254148,7 +254252,7 @@ function runHyperlinkWrapCommit(input) {
254148
254252
  const resultRunsXml = isolated.value.selectedRuns.map((run) => renderSimpleTextRunSlice(run, {
254149
254253
  rPrXml: ensureHyperlinkRunStyle(run, characterStyleId)
254150
254254
  })).join("");
254151
- const replacementXml = isolated.value.beforeRunXml + buildDelOpenTag2(deletionStamp) + deletionRunsXml + "</w:del>" + buildTrackedHyperlinkFieldXml({
254255
+ const replacementXml = isolated.value.beforeRunXml + buildDelOpenTag2(deletionStamp, deletionRunsXml) + deletionRunsXml + "</w:del>" + buildTrackedHyperlinkFieldXml({
254152
254256
  target: op.target,
254153
254257
  metadata: op.metadata,
254154
254258
  resultRunsXml,
@@ -254696,7 +254800,8 @@ function buildHyperlinkRunXml(input) {
254696
254800
  return `<w:hyperlink${attrSegment}>` + runXml + `</w:hyperlink>`;
254697
254801
  }
254698
254802
  function buildTrackedHyperlinkFieldXml(input) {
254699
- return buildInsOpenTag2(input.stamp) + buildHyperlinkFieldRunsXml(input) + "</w:ins>";
254803
+ const inner = buildHyperlinkFieldRunsXml(input);
254804
+ return buildInsOpenTag2(input.stamp, inner) + inner + "</w:ins>";
254700
254805
  }
254701
254806
  function buildHyperlinkFieldRunsXml(input) {
254702
254807
  const instruction = buildHyperlinkFieldInstruction({
@@ -254711,11 +254816,11 @@ function buildHyperlinkFieldRunsXml(input) {
254711
254816
  function buildDefaultHyperlinkResultRunXml(text, characterStyleId) {
254712
254817
  return `<w:r><w:rPr><w:rStyle w:val="${escapeAttr7(characterStyleId)}"/></w:rPr><w:t xml:space="preserve">${escapeText(text)}</w:t></w:r>`;
254713
254818
  }
254714
- function buildInsOpenTag2(stamp) {
254715
- return `<w:ins w:id="${stamp.wId}" w:author="${escapeXmlAttribute(stamp.author.name)}"` + `${stamp.author.initials ? ` w:initials="${escapeXmlAttribute(stamp.author.initials)}"` : ""}` + `${stamp.author.email ? ` w:authorEmail="${escapeXmlAttribute(stamp.author.email)}"` : ""}` + ` w:date="${escapeXmlAttribute(stamp.date)}" w:rsidR="${escapeXmlAttribute(stamp.rsid)}">`;
254819
+ function buildInsOpenTag2(stamp, protectedXml) {
254820
+ return `<w:ins w:id="${stamp.wId}" w:author="${escapeXmlAttribute(stamp.author.name)}"` + `${stamp.author.initials ? ` w:initials="${escapeXmlAttribute(stamp.author.initials)}"` : ""}` + serializeTrackedChangeEmail(stamp.author.email, "w", protectedXml) + ` w:date="${escapeXmlAttribute(stamp.date)}" w:rsidR="${escapeXmlAttribute(stamp.rsid)}">`;
254716
254821
  }
254717
- function buildDelOpenTag2(stamp) {
254718
- return `<w:del w:id="${stamp.wId}" w:author="${escapeXmlAttribute(stamp.author.name)}"` + `${stamp.author.initials ? ` w:initials="${escapeXmlAttribute(stamp.author.initials)}"` : ""}` + `${stamp.author.email ? ` w:authorEmail="${escapeXmlAttribute(stamp.author.email)}"` : ""}` + ` w:date="${escapeXmlAttribute(stamp.date)}" w:rsidDel="${escapeXmlAttribute(stamp.rsid)}">`;
254822
+ function buildDelOpenTag2(stamp, protectedXml) {
254823
+ return `<w:del w:id="${stamp.wId}" w:author="${escapeXmlAttribute(stamp.author.name)}"` + `${stamp.author.initials ? ` w:initials="${escapeXmlAttribute(stamp.author.initials)}"` : ""}` + serializeTrackedChangeEmail(stamp.author.email, "w", protectedXml) + ` w:date="${escapeXmlAttribute(stamp.date)}" w:rsidDel="${escapeXmlAttribute(stamp.rsid)}">`;
254719
254824
  }
254720
254825
  function ensureHyperlinkRunStyle(run, characterStyleId) {
254721
254826
  const escapedStyleId = escapeAttr7(characterStyleId);
@@ -254894,6 +254999,7 @@ function compilerHyperlinkCarrier(partUri, startByte, xml, field) {
254894
254999
  }
254895
255000
  var TD74, TE41, HYPERLINK_REL_TYPE2 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink", RELS_CONTENT_TYPE4 = "application/vnd.openxmlformats-package.relationships+xml";
254896
255001
  var init_compile_hyperlink_ops = __esm(() => {
255002
+ init_tracked_change_email();
254897
255003
  init_sd_document_state();
254898
255004
  init_xml_text();
254899
255005
  init_commit_prepared_mutation();
@@ -291018,7 +291124,7 @@ function isFloatingDrawing(piece) {
291018
291124
  additionalNamespaces: xmlFragmentAdditionalNamespaces(piece.rawXml, piece.namespaceBindings, {
291019
291125
  w: WORD_NAMESPACE4,
291020
291126
  wp: WORD_DRAWING_NAMESPACE,
291021
- mc: MC_NAMESPACE3
291127
+ mc: MC_NAMESPACE
291022
291128
  })
291023
291129
  });
291024
291130
  if (errors4.length > 0)
@@ -291041,7 +291147,7 @@ function isFloatingDrawing(piece) {
291041
291147
  const drawingIsFloating = (drawing) => children2(drawing).some((child) => child.tag.namespaceUri === WORD_DRAWING_NAMESPACE && child.tag.localName === "anchor");
291042
291148
  if (root.tag.namespaceUri === WORD_NAMESPACE4 && root.tag.localName === "drawing")
291043
291149
  return drawingIsFloating(root);
291044
- if (root.tag.namespaceUri !== MC_NAMESPACE3 || root.tag.localName !== "AlternateContent")
291150
+ if (root.tag.namespaceUri !== MC_NAMESPACE || root.tag.localName !== "AlternateContent")
291045
291151
  return false;
291046
291152
  const renderBindings = {
291047
291153
  a: "http://schemas.openxmlformats.org/drawingml/2006/main",
@@ -291056,14 +291162,14 @@ function isFloatingDrawing(piece) {
291056
291162
  }
291057
291163
  const branches = children2(root);
291058
291164
  const selected = branches.find((branch) => {
291059
- if (branch.tag.namespaceUri !== MC_NAMESPACE3 || branch.tag.localName !== "Choice")
291165
+ if (branch.tag.namespaceUri !== MC_NAMESPACE || branch.tag.localName !== "Choice")
291060
291166
  return false;
291061
291167
  const required2 = (branch.tag.attributesByName.Requires?.value ?? "").trim().split(/\s+/).filter(Boolean);
291062
291168
  return required2.length > 0 && required2.every((prefix) => SUPPORTED_DRAWING_REQUIRES.has(renderBindings[prefix] ?? ""));
291063
- }) ?? branches.find((branch) => branch.tag.namespaceUri === MC_NAMESPACE3 && branch.tag.localName === "Fallback");
291169
+ }) ?? branches.find((branch) => branch.tag.namespaceUri === MC_NAMESPACE && branch.tag.localName === "Fallback");
291064
291170
  return selected !== undefined && children2(selected).some((child) => child.tag.namespaceUri === WORD_NAMESPACE4 && child.tag.localName === "drawing" && drawingIsFloating(child));
291065
291171
  }
291066
- var WORD_NAMESPACE4 = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", WORD_DRAWING_NAMESPACE = "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", MC_NAMESPACE3 = "http://schemas.openxmlformats.org/markup-compatibility/2006", SUPPORTED_DRAWING_REQUIRES;
291172
+ var WORD_NAMESPACE4 = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", WORD_DRAWING_NAMESPACE = "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", MC_NAMESPACE = "http://schemas.openxmlformats.org/markup-compatibility/2006", SUPPORTED_DRAWING_REQUIRES;
291067
291173
  var init_painted_offsets = __esm(() => {
291068
291174
  init_sd_document_session_internal();
291069
291175
  SUPPORTED_DRAWING_REQUIRES = new Set([
@@ -292257,7 +292363,7 @@ var init_word_bibliography = __esm(() => {
292257
292363
  ];
292258
292364
  });
292259
292365
 
292260
- // ../../packages/layout-engine/style-engine/src/cascade.ts
292366
+ // ../../../v2/node_modules/.pnpm/@superdoc+style-engine@file+..+public+packages+layout-engine+style-engine/node_modules/@superdoc/style-engine/src/cascade.ts
292261
292367
  function combineProperties(propertiesArray, options = {}) {
292262
292368
  const { fullOverrideProps = [], specialHandling = {} } = options;
292263
292369
  if (!propertiesArray || propertiesArray.length === 0) {
@@ -292357,14 +292463,14 @@ var init_cascade = __esm(() => {
292357
292463
  ];
292358
292464
  });
292359
292465
 
292360
- // ../../packages/layout-engine/style-engine/src/index.ts
292466
+ // ../../../v2/node_modules/.pnpm/@superdoc+style-engine@file+..+public+packages+layout-engine+style-engine/node_modules/@superdoc/style-engine/src/index.ts
292361
292467
  var sdtMetadataCache;
292362
292468
  var init_src4 = __esm(() => {
292363
292469
  init_cascade();
292364
292470
  sdtMetadataCache = new Map;
292365
292471
  });
292366
292472
 
292367
- // ../../packages/layout-engine/style-engine/src/ooxml/table-style-selection.ts
292473
+ // ../../../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
292368
292474
  function isKnownTableStyleId(styleId, translatedLinkedStyles) {
292369
292475
  if (!styleId || !translatedLinkedStyles?.styles)
292370
292476
  return false;
@@ -292419,7 +292525,7 @@ var init_table_style_selection = __esm(() => {
292419
292525
  };
292420
292526
  });
292421
292527
 
292422
- // ../../packages/layout-engine/style-engine/src/ooxml/index.ts
292528
+ // ../../../v2/node_modules/.pnpm/@superdoc+style-engine@file+..+public+packages+layout-engine+style-engine/node_modules/@superdoc/style-engine/src/ooxml/index.ts
292423
292529
  function resolveRunProperties(params, inlineRpr, resolvedPpr, tableInfo = null, isListNumber = false, numberingDefinedInline = false) {
292424
292530
  if (!params.translatedLinkedStyles?.styles) {
292425
292531
  return inlineRpr ?? {};
@@ -293002,7 +293108,7 @@ var init_default_floors = __esm(() => {
293002
293108
  };
293003
293109
  });
293004
293110
 
293005
- // ../../node_modules/.pnpm/sax@1.6.0/node_modules/sax/lib/sax.js
293111
+ // ../../../v2/node_modules/.pnpm/sax@1.6.0/node_modules/sax/lib/sax.js
293006
293112
  var require_sax = __commonJS((exports) => {
293007
293113
  (function(sax) {
293008
293114
  sax.parser = function(strict, opt) {
@@ -294536,7 +294642,7 @@ Char: ` + parser.c;
294536
294642
  })(typeof exports === "undefined" ? exports.sax = {} : exports);
294537
294643
  });
294538
294644
 
294539
- // ../../node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/array-helper.js
294645
+ // ../../../v2/node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/array-helper.js
294540
294646
  var require_array_helper = __commonJS((exports, module) => {
294541
294647
  module.exports = {
294542
294648
  isArray: function(value) {
@@ -294548,7 +294654,7 @@ var require_array_helper = __commonJS((exports, module) => {
294548
294654
  };
294549
294655
  });
294550
294656
 
294551
- // ../../node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/options-helper.js
294657
+ // ../../../v2/node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/options-helper.js
294552
294658
  var require_options_helper = __commonJS((exports, module) => {
294553
294659
  var isArray = require_array_helper().isArray;
294554
294660
  module.exports = {
@@ -294587,7 +294693,7 @@ var require_options_helper = __commonJS((exports, module) => {
294587
294693
  };
294588
294694
  });
294589
294695
 
294590
- // ../../node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/xml2js.js
294696
+ // ../../../v2/node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/xml2js.js
294591
294697
  var require_xml2js = __commonJS((exports, module) => {
294592
294698
  var sax = require_sax();
294593
294699
  var expat = { on: function() {}, parse: function() {} };
@@ -294925,7 +295031,7 @@ var require_xml2js = __commonJS((exports, module) => {
294925
295031
  };
294926
295032
  });
294927
295033
 
294928
- // ../../node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/xml2json.js
295034
+ // ../../../v2/node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/xml2json.js
294929
295035
  var require_xml2json = __commonJS((exports, module) => {
294930
295036
  var helper = require_options_helper();
294931
295037
  var xml2js = require_xml2js();
@@ -294950,7 +295056,7 @@ var require_xml2json = __commonJS((exports, module) => {
294950
295056
  };
294951
295057
  });
294952
295058
 
294953
- // ../../node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/js2xml.js
295059
+ // ../../../v2/node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/js2xml.js
294954
295060
  var require_js2xml = __commonJS((exports, module) => {
294955
295061
  var helper = require_options_helper();
294956
295062
  var isArray = require_array_helper().isArray;
@@ -295282,7 +295388,7 @@ var require_js2xml = __commonJS((exports, module) => {
295282
295388
  };
295283
295389
  });
295284
295390
 
295285
- // ../../node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/json2xml.js
295391
+ // ../../../v2/node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/json2xml.js
295286
295392
  var require_json2xml = __commonJS((exports, module) => {
295287
295393
  var js2xml = require_js2xml();
295288
295394
  module.exports = function(json2, options) {
@@ -295303,7 +295409,7 @@ var require_json2xml = __commonJS((exports, module) => {
295303
295409
  };
295304
295410
  });
295305
295411
 
295306
- // ../../node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/index.js
295412
+ // ../../../v2/node_modules/.pnpm/xml-js@1.6.11/node_modules/xml-js/lib/index.js
295307
295413
  var require_lib = __commonJS((exports, module) => {
295308
295414
  var xml2js = require_xml2js();
295309
295415
  var xml2json = require_xml2json();
@@ -295317,7 +295423,7 @@ var require_lib = __commonJS((exports, module) => {
295317
295423
  };
295318
295424
  });
295319
295425
 
295320
- // ../../packages/layout-engine/style-engine/src/ooxml/word-style-model/parse-xml.ts
295426
+ // ../../../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
295321
295427
  function bytesToString(input) {
295322
295428
  if (typeof input === "string")
295323
295429
  return input;
@@ -295384,7 +295490,7 @@ var init_parse_xml = __esm(() => {
295384
295490
  ST_OFF = new Set(["0", "false", "off"]);
295385
295491
  });
295386
295492
 
295387
- // ../../packages/layout-engine/style-engine/src/ooxml/word-style-model/parse-theme.ts
295493
+ // ../../../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
295388
295494
  function parseColorPalette(theme) {
295389
295495
  if (!theme)
295390
295496
  return;
@@ -298004,7 +298110,7 @@ var init_word_style_model = __esm(() => {
298004
298110
  init_project_style_catalogue();
298005
298111
  });
298006
298112
 
298007
- // ../../packages/layout-engine/style-engine/src/normalize/units.ts
298113
+ // ../../../v2/node_modules/.pnpm/@superdoc+style-engine@file+..+public+packages+layout-engine+style-engine/node_modules/@superdoc/style-engine/src/normalize/units.ts
298008
298114
  function twipsToPx(value) {
298009
298115
  return value * PX_PER_TWIP;
298010
298116
  }
@@ -298018,7 +298124,7 @@ var init_units = __esm(() => {
298018
298124
  PX_PER_EIGHTH_POINT = PX_PER_POINT / 8;
298019
298125
  });
298020
298126
 
298021
- // ../../packages/layout-engine/style-engine/src/normalize/colors.ts
298127
+ // ../../../v2/node_modules/.pnpm/@superdoc+style-engine@file+..+public+packages+layout-engine+style-engine/node_modules/@superdoc/style-engine/src/normalize/colors.ts
298022
298128
  function normalizeHexColor(value) {
298023
298129
  if (value == null)
298024
298130
  return;
@@ -298095,12 +298201,12 @@ var init_colors = __esm(() => {
298095
298201
  };
298096
298202
  });
298097
298203
 
298098
- // ../../packages/layout-engine/style-engine/src/normalize/paragraph-attrs.ts
298204
+ // ../../../v2/node_modules/.pnpm/@superdoc+style-engine@file+..+public+packages+layout-engine+style-engine/node_modules/@superdoc/style-engine/src/normalize/paragraph-attrs.ts
298099
298205
  var init_paragraph_attrs = __esm(() => {
298100
298206
  init_units();
298101
298207
  init_colors();
298102
298208
  });
298103
- // ../../packages/layout-engine/contracts/src/header-footer-resolution.ts
298209
+ // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/header-footer-resolution.ts
298104
298210
  function createResolutionCache() {
298105
298211
  const createVariantCache = () => ({ values: new Map, sectionIndices: [] });
298106
298212
  const createKindCache = () => ({
@@ -298278,12 +298384,12 @@ var HEADER_FOOTER_VARIANTS3;
298278
298384
  var init_header_footer_resolution = __esm(() => {
298279
298385
  HEADER_FOOTER_VARIANTS3 = ["default", "first", "even", "odd"];
298280
298386
  });
298281
- // ../../packages/layout-engine/contracts/src/justify-utils.ts
298387
+ // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/justify-utils.ts
298282
298388
  var SPACE_CHARS;
298283
298389
  var init_justify_utils = __esm(() => {
298284
298390
  SPACE_CHARS = new Set([" ", " "]);
298285
298391
  });
298286
- // ../../packages/layout-engine/contracts/src/vertical-text.ts
298392
+ // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/vertical-text.ts
298287
298393
  function normalizeBaselineShift(baselineShift) {
298288
298394
  if (!Number.isFinite(baselineShift)) {
298289
298395
  return;
@@ -298292,14 +298398,14 @@ function normalizeBaselineShift(baselineShift) {
298292
298398
  return Math.abs(normalizedShift) <= BASELINE_SHIFT_EPSILON ? undefined : normalizedShift;
298293
298399
  }
298294
298400
  var BASELINE_SHIFT_EPSILON = 0.000001;
298295
- // ../../packages/layout-engine/contracts/src/pm-range.ts
298401
+ // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/pm-range.ts
298296
298402
  var init_pm_range = () => {};
298297
- // ../../packages/layout-engine/contracts/src/graphic-placement.ts
298403
+ // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/graphic-placement.ts
298298
298404
  var init_graphic_placement = () => {};
298299
- // ../../packages/layout-engine/contracts/src/author-colors.ts
298405
+ // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/author-colors.ts
298300
298406
  var init_author_colors = () => {};
298301
298407
 
298302
- // ../../packages/layout-engine/contracts/src/semantic-colors.ts
298408
+ // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/semantic-colors.ts
298303
298409
  var TRACKED_CHANGE_CONFIGURABLE_SEMANTIC_COLOR_KEYS, CONFIGURABLE_SEMANTIC_COLOR_KEY_SET, TRACKED_CHANGE_AFFECTED_RANGE_KEYS;
298304
298410
  var init_semantic_colors = __esm(() => {
298305
298411
  init_author_colors();
@@ -298325,20 +298431,20 @@ var init_semantic_colors = __esm(() => {
298325
298431
  ]);
298326
298432
  });
298327
298433
 
298328
- // ../../packages/layout-engine/contracts/src/sdt-container.ts
298434
+ // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/sdt-container.ts
298329
298435
  var idlessSdtContainerKeys;
298330
298436
  var init_sdt_container = __esm(() => {
298331
298437
  idlessSdtContainerKeys = new WeakMap;
298332
298438
  });
298333
- // ../../packages/layout-engine/contracts/src/page-number-formatting.ts
298439
+ // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/page-number-formatting.ts
298334
298440
  var init_page_number_formatting = () => {};
298335
298441
 
298336
- // ../../packages/layout-engine/contracts/src/page-ref-anchor.ts
298442
+ // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/page-ref-anchor.ts
298337
298443
  var init_page_ref_anchor = __esm(() => {
298338
298444
  init_pm_range();
298339
298445
  });
298340
298446
 
298341
- // ../../packages/layout-engine/contracts/src/drawing-taxonomy.ts
298447
+ // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/drawing-taxonomy.ts
298342
298448
  var DRAWING_DIAGNOSTIC_CODES, DRAWING_DIAGNOSTIC_CODE_ALIASES, DRAWING_SUPPORT_TAXONOMY, DRAWING_FAMILIES;
298343
298449
  var init_drawing_taxonomy = __esm(() => {
298344
298450
  DRAWING_DIAGNOSTIC_CODES = {
@@ -298567,7 +298673,7 @@ var init_drawing_taxonomy = __esm(() => {
298567
298673
  };
298568
298674
  DRAWING_FAMILIES = Object.keys(DRAWING_SUPPORT_TAXONOMY);
298569
298675
  });
298570
- // ../../packages/layout-engine/contracts/src/incremental-dependency.ts
298676
+ // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/incremental-dependency.ts
298571
298677
  var PAGE_CHECKPOINT_DEPENDENCY_CLASSES, INCREMENTAL_DEPENDENCY_CERTIFICATE_CLASSES, DRAWING_KINDS, CERTIFICATE_CLASSES;
298572
298678
  var init_incremental_dependency = __esm(() => {
298573
298679
  PAGE_CHECKPOINT_DEPENDENCY_CLASSES = Object.freeze([
@@ -298597,10 +298703,10 @@ var init_incremental_dependency = __esm(() => {
298597
298703
  DRAWING_KINDS = new Set(["image", "vectorShape", "textboxShape", "shapeGroup", "chart"]);
298598
298704
  CERTIFICATE_CLASSES = new Set(INCREMENTAL_DEPENDENCY_CERTIFICATE_CLASSES);
298599
298705
  });
298600
- // ../../packages/layout-engine/contracts/src/engines/index.ts
298706
+ // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/engines/index.ts
298601
298707
  var init_engines = () => {};
298602
298708
 
298603
- // ../../packages/layout-engine/contracts/src/index.ts
298709
+ // ../../../v2/node_modules/.pnpm/@superdoc+contracts@file+..+public+packages+layout-engine+contracts/node_modules/@superdoc/contracts/src/index.ts
298604
298710
  var SHAPE_TEXT_BASELINE_WARP_PRESETS, SHAPE_TEXT_SINGLE_BAND_ENVELOPE_WARP_PRESETS;
298605
298711
  var init_src5 = __esm(() => {
298606
298712
  init_header_footer_resolution();
@@ -298623,7 +298729,7 @@ var init_src5 = __esm(() => {
298623
298729
  SHAPE_TEXT_SINGLE_BAND_ENVELOPE_WARP_PRESETS = new Set(["textButton"]);
298624
298730
  });
298625
298731
 
298626
- // ../../shared/font-utils/index.js
298732
+ // ../../../v2/node_modules/.pnpm/@superdoc+font-utils@file+..+public+shared+font-utils/node_modules/@superdoc/font-utils/index.js
298627
298733
  function mapWordFamilyFallback(wordFamily) {
298628
298734
  if (!wordFamily)
298629
298735
  return DEFAULT_GENERIC_FALLBACK;
@@ -298772,7 +298878,7 @@ var init_font_utils = __esm(() => {
298772
298878
  ]);
298773
298879
  });
298774
298880
 
298775
- // ../../packages/layout-engine/style-engine/src/normalize/run-attrs.ts
298881
+ // ../../../v2/node_modules/.pnpm/@superdoc+style-engine@file+..+public+packages+layout-engine+style-engine/node_modules/@superdoc/style-engine/src/normalize/run-attrs.ts
298776
298882
  function normalizeRunAttrsFromOoxml(props, context = {}) {
298777
298883
  const out = {};
298778
298884
  if (!props)
@@ -299050,7 +299156,7 @@ var init_run_attrs = __esm(() => {
299050
299156
  };
299051
299157
  });
299052
299158
 
299053
- // ../../packages/layout-engine/style-engine/src/normalize/index.ts
299159
+ // ../../../v2/node_modules/.pnpm/@superdoc+style-engine@file+..+public+packages+layout-engine+style-engine/node_modules/@superdoc/style-engine/src/normalize/index.ts
299054
299160
  var init_normalize = __esm(() => {
299055
299161
  init_paragraph_attrs();
299056
299162
  init_run_attrs();
@@ -301993,9 +302099,9 @@ function replaceRangeInParagraphXml(input) {
301993
302099
  const beforeText = run.text.slice(0, sliceStart);
301994
302100
  const afterText = run.text.slice(sliceEnd);
301995
302101
  if (beforeText.length > 0)
301996
- beforeSegment.push(renderRun(run.kind, run.prefix, beforeText, run.rPr, run.leafXml));
302102
+ beforeSegment.push(renderRun(run.kind, run.prefix, beforeText, run.rPr, run.leafXml, run.open));
301997
302103
  if (afterText.length > 0)
301998
- afterSegment.push(renderRun(run.kind, run.prefix, afterText, run.rPr, run.leafXml));
302104
+ afterSegment.push(renderRun(run.kind, run.prefix, afterText, run.rPr, run.leafXml, run.open));
301999
302105
  segmentCursor = run.xmlEnd;
302000
302106
  }
302001
302107
  let xml = input.paragraphXml.slice(0, firstRun.xmlStart) + beforeSegment.join("") + input.replacementXml + afterSegment.join("") + input.paragraphXml.slice(lastRun.xmlEnd);
@@ -311408,7 +311514,7 @@ var init_live_selection = __esm(() => {
311408
311514
  ACTIVE_MARK_ORDER = ["bold", "italic", "underline", "strikethrough"];
311409
311515
  });
311410
311516
 
311411
- // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/unicode.js
311517
+ // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/unicode.js
311412
311518
  function isSurrogate(cp) {
311413
311519
  return cp >= 55296 && cp <= 57343;
311414
311520
  }
@@ -311500,7 +311606,7 @@ var init_unicode = __esm(() => {
311500
311606
  };
311501
311607
  });
311502
311608
 
311503
- // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/error-codes.js
311609
+ // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/error-codes.js
311504
311610
  var ERR;
311505
311611
  var init_error_codes = __esm(() => {
311506
311612
  (function(ERR2) {
@@ -311567,7 +311673,7 @@ var init_error_codes = __esm(() => {
311567
311673
  })(ERR || (ERR = {}));
311568
311674
  });
311569
311675
 
311570
- // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/tokenizer/preprocessor.js
311676
+ // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/tokenizer/preprocessor.js
311571
311677
  class Preprocessor {
311572
311678
  constructor(handler) {
311573
311679
  this.handler = handler;
@@ -311740,7 +311846,7 @@ var init_preprocessor = __esm(() => {
311740
311846
  DEFAULT_BUFFER_WATERLINE = 1 << 16;
311741
311847
  });
311742
311848
 
311743
- // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/token.js
311849
+ // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/token.js
311744
311850
  function getTokenAttr(token, attrName) {
311745
311851
  for (let i2 = token.attrs.length - 1;i2 >= 0; i2--) {
311746
311852
  if (token.attrs[i2].name === attrName) {
@@ -311764,7 +311870,7 @@ var init_token = __esm(() => {
311764
311870
  })(TokenType || (TokenType = {}));
311765
311871
  });
311766
311872
 
311767
- // ../../node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/decode-codepoint.js
311873
+ // ../../../v2/node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/decode-codepoint.js
311768
311874
  function replaceCodePoint(codePoint) {
311769
311875
  if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) {
311770
311876
  return 65533;
@@ -311805,7 +311911,7 @@ var init_decode_codepoint = __esm(() => {
311805
311911
  ]);
311806
311912
  });
311807
311913
 
311808
- // ../../node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/internal/decode-shared.js
311914
+ // ../../../v2/node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/internal/decode-shared.js
311809
311915
  function decodeBase642(input) {
311810
311916
  const binary = atob(input);
311811
311917
  const evenLength = binary.length & ~1;
@@ -311818,13 +311924,13 @@ function decodeBase642(input) {
311818
311924
  return out;
311819
311925
  }
311820
311926
 
311821
- // ../../node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/generated/decode-data-html.js
311927
+ // ../../../v2/node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/generated/decode-data-html.js
311822
311928
  var htmlDecodeTree;
311823
311929
  var init_decode_data_html = __esm(() => {
311824
311930
  htmlDecodeTree = /* @__PURE__ */ decodeBase642("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");
311825
311931
  });
311826
311932
 
311827
- // ../../node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/internal/bin-trie-flags.js
311933
+ // ../../../v2/node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/internal/bin-trie-flags.js
311828
311934
  var BinTrieFlags;
311829
311935
  var init_bin_trie_flags = __esm(() => {
311830
311936
  (function(BinTrieFlags2) {
@@ -311835,7 +311941,7 @@ var init_bin_trie_flags = __esm(() => {
311835
311941
  })(BinTrieFlags || (BinTrieFlags = {}));
311836
311942
  });
311837
311943
 
311838
- // ../../node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/decode.js
311944
+ // ../../../v2/node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/decode.js
311839
311945
  function isNumber(code) {
311840
311946
  return code >= CharCodes.ZERO && code <= CharCodes.NINE;
311841
311947
  }
@@ -312117,7 +312223,7 @@ var init_decode = __esm(() => {
312117
312223
  })(DecodingMode || (DecodingMode = {}));
312118
312224
  });
312119
312225
 
312120
- // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/html.js
312226
+ // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/html.js
312121
312227
  function getTagID(tagName) {
312122
312228
  var _a3;
312123
312229
  return (_a3 = TAG_NAME_TO_ID.get(tagName)) !== null && _a3 !== undefined ? _a3 : TAG_ID.UNKNOWN;
@@ -312626,7 +312732,7 @@ var init_html = __esm(() => {
312626
312732
  ]);
312627
312733
  });
312628
312734
 
312629
- // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/tokenizer/index.js
312735
+ // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/tokenizer/index.js
312630
312736
  function isAsciiDigit(cp) {
312631
312737
  return cp >= CODE_POINTS.DIGIT_0 && cp <= CODE_POINTS.DIGIT_9;
312632
312738
  }
@@ -315083,7 +315189,7 @@ var init_tokenizer = __esm(() => {
315083
315189
  };
315084
315190
  });
315085
315191
 
315086
- // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/parser/open-element-stack.js
315192
+ // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/parser/open-element-stack.js
315087
315193
  class OpenElementStack {
315088
315194
  get currentTmplContentOrNode() {
315089
315195
  return this._isInTemplate() ? this.treeAdapter.getTemplateContent(this.current) : this.current;
@@ -315398,7 +315504,7 @@ var init_open_element_stack = __esm(() => {
315398
315504
  TABLE_CELLS = new Set([TAG_ID.TD, TAG_ID.TH]);
315399
315505
  });
315400
315506
 
315401
- // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/parser/formatting-element-list.js
315507
+ // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/parser/formatting-element-list.js
315402
315508
  class FormattingElementList {
315403
315509
  constructor(treeAdapter) {
315404
315510
  this.treeAdapter = treeAdapter;
@@ -315494,7 +315600,7 @@ var init_formatting_element_list = __esm(() => {
315494
315600
  MARKER = { type: EntryType.Marker };
315495
315601
  });
315496
315602
 
315497
- // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/tree-adapters/default.js
315603
+ // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/tree-adapters/default.js
315498
315604
  var defaultTreeAdapter;
315499
315605
  var init_default2 = __esm(() => {
315500
315606
  init_html();
@@ -315664,7 +315770,7 @@ var init_default2 = __esm(() => {
315664
315770
  };
315665
315771
  });
315666
315772
 
315667
- // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/doctype.js
315773
+ // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/doctype.js
315668
315774
  function hasPrefix(publicId, prefixes) {
315669
315775
  return prefixes.some((prefix) => publicId.startsWith(prefix));
315670
315776
  }
@@ -315774,7 +315880,7 @@ var init_doctype = __esm(() => {
315774
315880
  ];
315775
315881
  });
315776
315882
 
315777
- // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/foreign-content.js
315883
+ // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/common/foreign-content.js
315778
315884
  function causesExit(startTagToken) {
315779
315885
  const tn = startTagToken.tagID;
315780
315886
  const isFontWithAttrs = tn === TAG_ID.FONT && startTagToken.attrs.some(({ name }) => name === ATTRS2.COLOR || name === ATTRS2.SIZE || name === ATTRS2.FACE);
@@ -315996,7 +316102,7 @@ var init_foreign_content = __esm(() => {
315996
316102
  ]);
315997
316103
  });
315998
316104
 
315999
- // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/parser/index.js
316105
+ // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/parser/index.js
316000
316106
  class Parser {
316001
316107
  constructor(options, document3, fragmentContext = null, scriptHandler = null) {
316002
316108
  this.fragmentContext = fragmentContext;
@@ -318953,7 +319059,7 @@ var init_parser = __esm(() => {
318953
319059
  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]);
318954
319060
  });
318955
319061
 
318956
- // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/serializer/index.js
319062
+ // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/serializer/index.js
318957
319063
  var VOID_ELEMENTS;
318958
319064
  var init_serializer = __esm(() => {
318959
319065
  init_html();
@@ -318980,7 +319086,7 @@ var init_serializer = __esm(() => {
318980
319086
  ]);
318981
319087
  });
318982
319088
 
318983
- // ../../node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/index.js
319089
+ // ../../../v2/node_modules/.pnpm/parse5@8.0.1/node_modules/parse5/dist/index.js
318984
319090
  function parseFragment(fragmentContext, html, options) {
318985
319091
  if (typeof fragmentContext === "string") {
318986
319092
  options = html;
@@ -322015,10 +322121,10 @@ var init_html2 = __esm(() => {
322015
322121
  init_converter();
322016
322122
  });
322017
322123
 
322018
- // ../../node_modules/.pnpm/dequal@2.0.3/node_modules/dequal/dist/index.mjs
322124
+ // ../../../v2/node_modules/.pnpm/dequal@2.0.3/node_modules/dequal/dist/index.mjs
322019
322125
  var init_dist4 = () => {};
322020
322126
 
322021
- // ../../node_modules/.pnpm/devlop@1.1.0/node_modules/devlop/lib/development.js
322127
+ // ../../../v2/node_modules/.pnpm/devlop@1.1.0/node_modules/devlop/lib/development.js
322022
322128
  function ok2(value2, message) {
322023
322129
  assert2(Boolean(value2), false, true, "ok", "Expected value to be truthy", message);
322024
322130
  }
@@ -322047,7 +322153,7 @@ var init_development = __esm(() => {
322047
322153
  };
322048
322154
  });
322049
322155
 
322050
- // ../../node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/lib/index.js
322156
+ // ../../../v2/node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/lib/index.js
322051
322157
  function toString(value2, options) {
322052
322158
  const settings = options || emptyOptions;
322053
322159
  const includeImageAlt = typeof settings.includeImageAlt === "boolean" ? settings.includeImageAlt : true;
@@ -322087,12 +322193,12 @@ var init_lib = __esm(() => {
322087
322193
  emptyOptions = {};
322088
322194
  });
322089
322195
 
322090
- // ../../node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/index.js
322196
+ // ../../../v2/node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/index.js
322091
322197
  var init_mdast_util_to_string = __esm(() => {
322092
322198
  init_lib();
322093
322199
  });
322094
322200
 
322095
- // ../../node_modules/.pnpm/character-entities@2.0.2/node_modules/character-entities/index.js
322201
+ // ../../../v2/node_modules/.pnpm/character-entities@2.0.2/node_modules/character-entities/index.js
322096
322202
  var characterEntities;
322097
322203
  var init_character_entities = __esm(() => {
322098
322204
  characterEntities = {
@@ -324225,7 +324331,7 @@ var init_character_entities = __esm(() => {
324225
324331
  };
324226
324332
  });
324227
324333
 
324228
- // ../../node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/index.js
324334
+ // ../../../v2/node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/index.js
324229
324335
  function decodeNamedCharacterReference(value2) {
324230
324336
  return own.call(characterEntities, value2) ? characterEntities[value2] : false;
324231
324337
  }
@@ -324235,7 +324341,7 @@ var init_decode_named_character_reference = __esm(() => {
324235
324341
  own = {}.hasOwnProperty;
324236
324342
  });
324237
324343
 
324238
- // ../../node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/codes.js
324344
+ // ../../../v2/node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/codes.js
324239
324345
  var codes;
324240
324346
  var init_codes = __esm(() => {
324241
324347
  codes = {
@@ -324378,7 +324484,7 @@ var init_codes = __esm(() => {
324378
324484
  };
324379
324485
  });
324380
324486
 
324381
- // ../../node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/constants.js
324487
+ // ../../../v2/node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/constants.js
324382
324488
  var constants2;
324383
324489
  var init_constants = __esm(() => {
324384
324490
  constants2 = {
@@ -324419,7 +324525,7 @@ var init_constants = __esm(() => {
324419
324525
  };
324420
324526
  });
324421
324527
 
324422
- // ../../node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/types.js
324528
+ // ../../../v2/node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/types.js
324423
324529
  var types8;
324424
324530
  var init_types9 = __esm(() => {
324425
324531
  types8 = {
@@ -324529,7 +324635,7 @@ var init_types9 = __esm(() => {
324529
324635
  };
324530
324636
  });
324531
324637
 
324532
- // ../../node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/values.js
324638
+ // ../../../v2/node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/values.js
324533
324639
  var values;
324534
324640
  var init_values = __esm(() => {
324535
324641
  values = {
@@ -324636,7 +324742,7 @@ var init_values = __esm(() => {
324636
324742
  };
324637
324743
  });
324638
324744
 
324639
- // ../../node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/default.js
324745
+ // ../../../v2/node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/default.js
324640
324746
  var init_default3 = __esm(() => {
324641
324747
  init_codes();
324642
324748
  init_constants();
@@ -324644,7 +324750,7 @@ var init_default3 = __esm(() => {
324644
324750
  init_values();
324645
324751
  });
324646
324752
 
324647
- // ../../node_modules/.pnpm/micromark-util-chunked@2.0.1/node_modules/micromark-util-chunked/dev/index.js
324753
+ // ../../../v2/node_modules/.pnpm/micromark-util-chunked@2.0.1/node_modules/micromark-util-chunked/dev/index.js
324648
324754
  function splice(list, start, remove, items) {
324649
324755
  const end = list.length;
324650
324756
  let chunkStart = 0;
@@ -324682,7 +324788,7 @@ var init_dev = __esm(() => {
324682
324788
  init_default3();
324683
324789
  });
324684
324790
 
324685
- // ../../node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-combine-extensions/index.js
324791
+ // ../../../v2/node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-combine-extensions/index.js
324686
324792
  function combineExtensions(extensions) {
324687
324793
  const all2 = {};
324688
324794
  let index = -1;
@@ -324722,7 +324828,7 @@ var init_micromark_util_combine_extensions = __esm(() => {
324722
324828
  hasOwnProperty = {}.hasOwnProperty;
324723
324829
  });
324724
324830
 
324725
- // ../../node_modules/.pnpm/micromark-util-decode-numeric-character-reference@2.0.2/node_modules/micromark-util-decode-numeric-character-reference/dev/index.js
324831
+ // ../../../v2/node_modules/.pnpm/micromark-util-decode-numeric-character-reference@2.0.2/node_modules/micromark-util-decode-numeric-character-reference/dev/index.js
324726
324832
  function decodeNumericCharacterReference(value2, base3) {
324727
324833
  const code = Number.parseInt(value2, base3);
324728
324834
  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) {
@@ -324734,7 +324840,7 @@ var init_dev2 = __esm(() => {
324734
324840
  init_default3();
324735
324841
  });
324736
324842
 
324737
- // ../../node_modules/.pnpm/micromark-util-normalize-identifier@2.0.1/node_modules/micromark-util-normalize-identifier/dev/index.js
324843
+ // ../../../v2/node_modules/.pnpm/micromark-util-normalize-identifier@2.0.1/node_modules/micromark-util-normalize-identifier/dev/index.js
324738
324844
  function normalizeIdentifier(value2) {
324739
324845
  return value2.replace(/[\t\n\r ]+/g, values.space).replace(/^ | $/g, "").toLowerCase().toUpperCase();
324740
324846
  }
@@ -324742,7 +324848,7 @@ var init_dev3 = __esm(() => {
324742
324848
  init_default3();
324743
324849
  });
324744
324850
 
324745
- // ../../node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/dev/index.js
324851
+ // ../../../v2/node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/dev/index.js
324746
324852
  function asciiControl(code) {
324747
324853
  return code !== null && (code < codes.space || code === codes.del);
324748
324854
  }
@@ -324774,7 +324880,7 @@ var init_dev4 = __esm(() => {
324774
324880
  unicodeWhitespace = regexCheck(/\s/);
324775
324881
  });
324776
324882
 
324777
- // ../../node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-factory-space/dev/index.js
324883
+ // ../../../v2/node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-factory-space/dev/index.js
324778
324884
  function factorySpace(effects2, ok3, type, max2) {
324779
324885
  const limit = max2 ? max2 - 1 : Number.POSITIVE_INFINITY;
324780
324886
  let size = 0;
@@ -324799,7 +324905,7 @@ var init_dev5 = __esm(() => {
324799
324905
  init_dev4();
324800
324906
  });
324801
324907
 
324802
- // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/lib/initialize/content.js
324908
+ // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/lib/initialize/content.js
324803
324909
  function initializeContent(effects2) {
324804
324910
  const contentStart = effects2.attempt(this.parser.constructs.contentInitial, afterContentStartConstruct, paragraphInitial);
324805
324911
  let previous;
@@ -324856,7 +324962,7 @@ var init_content = __esm(() => {
324856
324962
  content = { tokenize: initializeContent };
324857
324963
  });
324858
324964
 
324859
- // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/lib/initialize/document.js
324965
+ // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/lib/initialize/document.js
324860
324966
  function initializeDocument(effects2) {
324861
324967
  const self = this;
324862
324968
  const stack = [];
@@ -325048,7 +325154,7 @@ var init_document2 = __esm(() => {
325048
325154
  containerConstruct = { tokenize: tokenizeContainer };
325049
325155
  });
325050
325156
 
325051
- // ../../node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-classify-character/dev/index.js
325157
+ // ../../../v2/node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-classify-character/dev/index.js
325052
325158
  function classifyCharacter(code) {
325053
325159
  if (code === codes.eof || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {
325054
325160
  return constants2.characterGroupWhitespace;
@@ -325062,7 +325168,7 @@ var init_dev6 = __esm(() => {
325062
325168
  init_default3();
325063
325169
  });
325064
325170
 
325065
- // ../../node_modules/.pnpm/micromark-util-resolve-all@2.0.1/node_modules/micromark-util-resolve-all/index.js
325171
+ // ../../../v2/node_modules/.pnpm/micromark-util-resolve-all@2.0.1/node_modules/micromark-util-resolve-all/index.js
325066
325172
  function resolveAll(constructs2, events, context) {
325067
325173
  const called = [];
325068
325174
  let index = -1;
@@ -325076,7 +325182,7 @@ function resolveAll(constructs2, events, context) {
325076
325182
  return events;
325077
325183
  }
325078
325184
 
325079
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/attention.js
325185
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/attention.js
325080
325186
  function resolveAllAttention(events, context) {
325081
325187
  let index = -1;
325082
325188
  let open2;
@@ -325212,7 +325318,7 @@ var init_attention = __esm(() => {
325212
325318
  };
325213
325319
  });
325214
325320
 
325215
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/autolink.js
325321
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/autolink.js
325216
325322
  function tokenizeAutolink(effects2, ok3, nok) {
325217
325323
  let size = 0;
325218
325324
  return start;
@@ -325317,7 +325423,7 @@ var init_autolink = __esm(() => {
325317
325423
  autolink = { name: "autolink", tokenize: tokenizeAutolink };
325318
325424
  });
325319
325425
 
325320
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/blank-line.js
325426
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/blank-line.js
325321
325427
  function tokenizeBlankLine(effects2, ok3, nok) {
325322
325428
  return start;
325323
325429
  function start(code) {
@@ -325335,7 +325441,7 @@ var init_blank_line = __esm(() => {
325335
325441
  blankLine = { partial: true, tokenize: tokenizeBlankLine };
325336
325442
  });
325337
325443
 
325338
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/block-quote.js
325444
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/block-quote.js
325339
325445
  function tokenizeBlockQuoteStart(effects2, ok3, nok) {
325340
325446
  const self = this;
325341
325447
  return start;
@@ -325398,7 +325504,7 @@ var init_block_quote = __esm(() => {
325398
325504
  };
325399
325505
  });
325400
325506
 
325401
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/character-escape.js
325507
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/character-escape.js
325402
325508
  function tokenizeCharacterEscape(effects2, ok3, nok) {
325403
325509
  return start;
325404
325510
  function start(code) {
@@ -325431,7 +325537,7 @@ var init_character_escape = __esm(() => {
325431
325537
  };
325432
325538
  });
325433
325539
 
325434
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/character-reference.js
325540
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/character-reference.js
325435
325541
  function tokenizeCharacterReference(effects2, ok3, nok) {
325436
325542
  const self = this;
325437
325543
  let size = 0;
@@ -325504,7 +325610,7 @@ var init_character_reference = __esm(() => {
325504
325610
  };
325505
325611
  });
325506
325612
 
325507
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/code-fenced.js
325613
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/code-fenced.js
325508
325614
  function tokenizeCodeFenced(effects2, ok3, nok) {
325509
325615
  const self = this;
325510
325616
  const closeStart = { partial: true, tokenize: tokenizeCloseStart };
@@ -325693,7 +325799,7 @@ var init_code_fenced = __esm(() => {
325693
325799
  };
325694
325800
  });
325695
325801
 
325696
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/code-indented.js
325802
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/code-indented.js
325697
325803
  function tokenizeCodeIndented(effects2, ok3, nok) {
325698
325804
  const self = this;
325699
325805
  return start;
@@ -325762,7 +325868,7 @@ var init_code_indented = __esm(() => {
325762
325868
  furtherStart = { partial: true, tokenize: tokenizeFurtherStart };
325763
325869
  });
325764
325870
 
325765
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/code-text.js
325871
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/code-text.js
325766
325872
  function resolveCodeText(events) {
325767
325873
  let tailExitIndex = events.length - 4;
325768
325874
  let headEnterIndex = 3;
@@ -325885,7 +325991,7 @@ var init_code_text = __esm(() => {
325885
325991
  };
325886
325992
  });
325887
325993
 
325888
- // ../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/dev/lib/splice-buffer.js
325994
+ // ../../../v2/node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/dev/lib/splice-buffer.js
325889
325995
  class SpliceBuffer {
325890
325996
  constructor(initial) {
325891
325997
  this.left = initial ? [...initial] : [];
@@ -325971,7 +326077,7 @@ var init_splice_buffer = __esm(() => {
325971
326077
  init_default3();
325972
326078
  });
325973
326079
 
325974
- // ../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/dev/index.js
326080
+ // ../../../v2/node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/dev/index.js
325975
326081
  function subtokenize(eventsArray) {
325976
326082
  const jumps = {};
325977
326083
  let index = -1;
@@ -326130,7 +326236,7 @@ var init_dev7 = __esm(() => {
326130
326236
  init_splice_buffer();
326131
326237
  });
326132
326238
 
326133
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/content.js
326239
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/content.js
326134
326240
  function resolveContent(events) {
326135
326241
  subtokenize(events);
326136
326242
  return events;
@@ -326208,7 +326314,7 @@ var init_content2 = __esm(() => {
326208
326314
  continuationConstruct = { partial: true, tokenize: tokenizeContinuation };
326209
326315
  });
326210
326316
 
326211
- // ../../node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-factory-destination/dev/index.js
326317
+ // ../../../v2/node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-factory-destination/dev/index.js
326212
326318
  function factoryDestination(effects2, ok3, nok, type, literalType2, literalMarkerType, rawType, stringType2, max2) {
326213
326319
  const limit = max2 || Number.POSITIVE_INFINITY;
326214
326320
  let balance = 0;
@@ -326300,7 +326406,7 @@ var init_dev8 = __esm(() => {
326300
326406
  init_default3();
326301
326407
  });
326302
326408
 
326303
- // ../../node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-factory-label/dev/index.js
326409
+ // ../../../v2/node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-factory-label/dev/index.js
326304
326410
  function factoryLabel(effects2, ok3, nok, type, markerType, stringType2) {
326305
326411
  const self = this;
326306
326412
  let size = 0;
@@ -326361,7 +326467,7 @@ var init_dev9 = __esm(() => {
326361
326467
  init_default3();
326362
326468
  });
326363
326469
 
326364
- // ../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-title/dev/index.js
326470
+ // ../../../v2/node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-title/dev/index.js
326365
326471
  function factoryTitle(effects2, ok3, nok, type, markerType, stringType2) {
326366
326472
  let marker;
326367
326473
  return start;
@@ -326426,7 +326532,7 @@ var init_dev10 = __esm(() => {
326426
326532
  init_default3();
326427
326533
  });
326428
326534
 
326429
- // ../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-whitespace/dev/index.js
326535
+ // ../../../v2/node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-whitespace/dev/index.js
326430
326536
  function factoryWhitespace(effects2, ok3) {
326431
326537
  let seen;
326432
326538
  return start;
@@ -326450,7 +326556,7 @@ var init_dev11 = __esm(() => {
326450
326556
  init_default3();
326451
326557
  });
326452
326558
 
326453
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/definition.js
326559
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/definition.js
326454
326560
  function tokenizeDefinition(effects2, ok3, nok) {
326455
326561
  const self = this;
326456
326562
  let identifier;
@@ -326524,7 +326630,7 @@ var init_definition = __esm(() => {
326524
326630
  titleBefore = { partial: true, tokenize: tokenizeTitleBefore };
326525
326631
  });
326526
326632
 
326527
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.js
326633
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.js
326528
326634
  function tokenizeHardBreakEscape(effects2, ok3, nok) {
326529
326635
  return start;
326530
326636
  function start(code) {
@@ -326552,7 +326658,7 @@ var init_hard_break_escape = __esm(() => {
326552
326658
  };
326553
326659
  });
326554
326660
 
326555
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/heading-atx.js
326661
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/heading-atx.js
326556
326662
  function resolveHeadingAtx(events, context) {
326557
326663
  let contentEnd = events.length - 2;
326558
326664
  let contentStart = 3;
@@ -326657,7 +326763,7 @@ var init_heading_atx = __esm(() => {
326657
326763
  };
326658
326764
  });
326659
326765
 
326660
- // ../../node_modules/.pnpm/micromark-util-html-tag-name@2.0.1/node_modules/micromark-util-html-tag-name/index.js
326766
+ // ../../../v2/node_modules/.pnpm/micromark-util-html-tag-name@2.0.1/node_modules/micromark-util-html-tag-name/index.js
326661
326767
  var htmlBlockNames, htmlRawNames;
326662
326768
  var init_micromark_util_html_tag_name = __esm(() => {
326663
326769
  htmlBlockNames = [
@@ -326727,7 +326833,7 @@ var init_micromark_util_html_tag_name = __esm(() => {
326727
326833
  htmlRawNames = ["pre", "script", "style", "textarea"];
326728
326834
  });
326729
326835
 
326730
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/html-flow.js
326836
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/html-flow.js
326731
326837
  function resolveToHtmlFlow(events) {
326732
326838
  let index = events.length;
326733
326839
  while (index--) {
@@ -327117,7 +327223,7 @@ var init_html_flow = __esm(() => {
327117
327223
  };
327118
327224
  });
327119
327225
 
327120
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/html-text.js
327226
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/html-text.js
327121
327227
  function tokenizeHtmlText(effects2, ok3, nok) {
327122
327228
  const self = this;
327123
327229
  let marker;
@@ -327431,7 +327537,7 @@ var init_html_text = __esm(() => {
327431
327537
  htmlText = { name: "htmlText", tokenize: tokenizeHtmlText };
327432
327538
  });
327433
327539
 
327434
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/label-end.js
327540
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/label-end.js
327435
327541
  function resolveAllLabelEnd(events) {
327436
327542
  let index = -1;
327437
327543
  const newEvents = [];
@@ -327663,7 +327769,7 @@ var init_label_end = __esm(() => {
327663
327769
  referenceCollapsedConstruct = { tokenize: tokenizeReferenceCollapsed };
327664
327770
  });
327665
327771
 
327666
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/label-start-image.js
327772
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/label-start-image.js
327667
327773
  function tokenizeLabelStartImage(effects2, ok3, nok) {
327668
327774
  const self = this;
327669
327775
  return start;
@@ -327701,7 +327807,7 @@ var init_label_start_image = __esm(() => {
327701
327807
  };
327702
327808
  });
327703
327809
 
327704
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/label-start-link.js
327810
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/label-start-link.js
327705
327811
  function tokenizeLabelStartLink(effects2, ok3, nok) {
327706
327812
  const self = this;
327707
327813
  return start;
@@ -327730,7 +327836,7 @@ var init_label_start_link = __esm(() => {
327730
327836
  };
327731
327837
  });
327732
327838
 
327733
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/line-ending.js
327839
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/line-ending.js
327734
327840
  function tokenizeLineEnding(effects2, ok3) {
327735
327841
  return start;
327736
327842
  function start(code) {
@@ -327750,7 +327856,7 @@ var init_line_ending = __esm(() => {
327750
327856
  lineEnding = { name: "lineEnding", tokenize: tokenizeLineEnding };
327751
327857
  });
327752
327858
 
327753
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/thematic-break.js
327859
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/thematic-break.js
327754
327860
  function tokenizeThematicBreak(effects2, ok3, nok) {
327755
327861
  let size = 0;
327756
327862
  let marker;
@@ -327797,7 +327903,7 @@ var init_thematic_break = __esm(() => {
327797
327903
  };
327798
327904
  });
327799
327905
 
327800
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/list.js
327906
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/list.js
327801
327907
  function tokenizeListStart(effects2, ok3, nok) {
327802
327908
  const self = this;
327803
327909
  const tail = self.events[self.events.length - 1];
@@ -327942,7 +328048,7 @@ var init_list = __esm(() => {
327942
328048
  indentConstruct = { partial: true, tokenize: tokenizeIndent };
327943
328049
  });
327944
328050
 
327945
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/setext-underline.js
328051
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/lib/setext-underline.js
327946
328052
  function resolveToSetextUnderline(events, context) {
327947
328053
  let index = events.length;
327948
328054
  let content3;
@@ -328040,7 +328146,7 @@ var init_setext_underline = __esm(() => {
328040
328146
  };
328041
328147
  });
328042
328148
 
328043
- // ../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/index.js
328149
+ // ../../../v2/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/dev/index.js
328044
328150
  var init_dev12 = __esm(() => {
328045
328151
  init_attention();
328046
328152
  init_autolink();
@@ -328066,7 +328172,7 @@ var init_dev12 = __esm(() => {
328066
328172
  init_thematic_break();
328067
328173
  });
328068
328174
 
328069
- // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/lib/initialize/flow.js
328175
+ // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/lib/initialize/flow.js
328070
328176
  function initializeFlow(effects2) {
328071
328177
  const self = this;
328072
328178
  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)), types8.linePrefix)));
@@ -328106,7 +328212,7 @@ var init_flow = __esm(() => {
328106
328212
  flow = { tokenize: initializeFlow };
328107
328213
  });
328108
328214
 
328109
- // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/lib/initialize/text.js
328215
+ // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/lib/initialize/text.js
328110
328216
  function initializeFactory(field) {
328111
328217
  return {
328112
328218
  resolveAll: createResolver(field === "text" ? resolveAllLineSuffixes : undefined),
@@ -328245,7 +328351,7 @@ var init_text = __esm(() => {
328245
328351
  text = initializeFactory("text");
328246
328352
  });
328247
328353
 
328248
- // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/lib/constructs.js
328354
+ // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/lib/constructs.js
328249
328355
  var exports_constructs = {};
328250
328356
  __export(exports_constructs, {
328251
328357
  text: () => text2,
@@ -328320,7 +328426,7 @@ var init_constructs = __esm(() => {
328320
328426
  disable = { null: [] };
328321
328427
  });
328322
328428
 
328323
- // ../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js
328429
+ // ../../../v2/node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js
328324
328430
  var require_ms = __commonJS((exports, module) => {
328325
328431
  var s = 1000;
328326
328432
  var m = s * 60;
@@ -328430,7 +328536,7 @@ var require_ms = __commonJS((exports, module) => {
328430
328536
  }
328431
328537
  });
328432
328538
 
328433
- // ../../node_modules/.pnpm/debug@4.4.3_supports-color@5.5.0/node_modules/debug/src/common.js
328539
+ // ../../../v2/node_modules/.pnpm/debug@4.4.3_supports-color@7.2.0/node_modules/debug/src/common.js
328434
328540
  var require_common = __commonJS((exports, module) => {
328435
328541
  function setup(env) {
328436
328542
  createDebug.debug = createDebug;
@@ -328605,7 +328711,7 @@ var require_common = __commonJS((exports, module) => {
328605
328711
  module.exports = setup;
328606
328712
  });
328607
328713
 
328608
- // ../../node_modules/.pnpm/debug@4.4.3_supports-color@5.5.0/node_modules/debug/src/browser.js
328714
+ // ../../../v2/node_modules/.pnpm/debug@4.4.3_supports-color@7.2.0/node_modules/debug/src/browser.js
328609
328715
  var require_browser = __commonJS((exports, module) => {
328610
328716
  exports.formatArgs = formatArgs;
328611
328717
  exports.save = save;
@@ -328765,30 +328871,36 @@ var require_browser = __commonJS((exports, module) => {
328765
328871
  };
328766
328872
  });
328767
328873
 
328768
- // ../../node_modules/.pnpm/has-flag@3.0.0/node_modules/has-flag/index.js
328874
+ // ../../../v2/node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js
328769
328875
  var require_has_flag = __commonJS((exports, module) => {
328770
- module.exports = (flag, argv) => {
328771
- argv = argv || process.argv;
328876
+ module.exports = (flag, argv = process.argv) => {
328772
328877
  const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
328773
- const pos = argv.indexOf(prefix + flag);
328774
- const terminatorPos = argv.indexOf("--");
328775
- return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);
328878
+ const position = argv.indexOf(prefix + flag);
328879
+ const terminatorPosition = argv.indexOf("--");
328880
+ return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
328776
328881
  };
328777
328882
  });
328778
328883
 
328779
- // ../../node_modules/.pnpm/supports-color@5.5.0/node_modules/supports-color/index.js
328884
+ // ../../../v2/node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js
328780
328885
  var require_supports_color = __commonJS((exports, module) => {
328781
328886
  var os = __require("os");
328887
+ var tty = __require("tty");
328782
328888
  var hasFlag = require_has_flag();
328783
- var env = process.env;
328889
+ var { env } = process;
328784
328890
  var forceColor;
328785
- if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false")) {
328786
- forceColor = false;
328891
+ if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) {
328892
+ forceColor = 0;
328787
328893
  } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) {
328788
- forceColor = true;
328894
+ forceColor = 1;
328789
328895
  }
328790
328896
  if ("FORCE_COLOR" in env) {
328791
- forceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0;
328897
+ if (env.FORCE_COLOR === "true") {
328898
+ forceColor = 1;
328899
+ } else if (env.FORCE_COLOR === "false") {
328900
+ forceColor = 0;
328901
+ } else {
328902
+ forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);
328903
+ }
328792
328904
  }
328793
328905
  function translateLevel(level) {
328794
328906
  if (level === 0) {
@@ -328801,8 +328913,8 @@ var require_supports_color = __commonJS((exports, module) => {
328801
328913
  has16m: level >= 3
328802
328914
  };
328803
328915
  }
328804
- function supportsColor(stream) {
328805
- if (forceColor === false) {
328916
+ function supportsColor(haveStream, streamIsTTY) {
328917
+ if (forceColor === 0) {
328806
328918
  return 0;
328807
328919
  }
328808
328920
  if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) {
@@ -328811,19 +328923,22 @@ var require_supports_color = __commonJS((exports, module) => {
328811
328923
  if (hasFlag("color=256")) {
328812
328924
  return 2;
328813
328925
  }
328814
- if (stream && !stream.isTTY && forceColor !== true) {
328926
+ if (haveStream && !streamIsTTY && forceColor === undefined) {
328815
328927
  return 0;
328816
328928
  }
328817
- const min = forceColor ? 1 : 0;
328929
+ const min = forceColor || 0;
328930
+ if (env.TERM === "dumb") {
328931
+ return min;
328932
+ }
328818
328933
  if (process.platform === "win32") {
328819
328934
  const osRelease = os.release().split(".");
328820
- if (Number(process.versions.node.split(".")[0]) >= 8 && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
328935
+ if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
328821
328936
  return Number(osRelease[2]) >= 14931 ? 3 : 2;
328822
328937
  }
328823
328938
  return 1;
328824
328939
  }
328825
328940
  if ("CI" in env) {
328826
- if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI"].some((sign) => (sign in env)) || env.CI_NAME === "codeship") {
328941
+ if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "GITHUB_ACTIONS", "BUILDKITE"].some((sign) => (sign in env)) || env.CI_NAME === "codeship") {
328827
328942
  return 1;
328828
328943
  }
328829
328944
  return min;
@@ -328852,23 +328967,20 @@ var require_supports_color = __commonJS((exports, module) => {
328852
328967
  if ("COLORTERM" in env) {
328853
328968
  return 1;
328854
328969
  }
328855
- if (env.TERM === "dumb") {
328856
- return min;
328857
- }
328858
328970
  return min;
328859
328971
  }
328860
328972
  function getSupportLevel(stream) {
328861
- const level = supportsColor(stream);
328973
+ const level = supportsColor(stream, stream && stream.isTTY);
328862
328974
  return translateLevel(level);
328863
328975
  }
328864
328976
  module.exports = {
328865
328977
  supportsColor: getSupportLevel,
328866
- stdout: getSupportLevel(process.stdout),
328867
- stderr: getSupportLevel(process.stderr)
328978
+ stdout: translateLevel(supportsColor(true, tty.isatty(1))),
328979
+ stderr: translateLevel(supportsColor(true, tty.isatty(2)))
328868
328980
  };
328869
328981
  });
328870
328982
 
328871
- // ../../node_modules/.pnpm/debug@4.4.3_supports-color@5.5.0/node_modules/debug/src/node.js
328983
+ // ../../../v2/node_modules/.pnpm/debug@4.4.3_supports-color@7.2.0/node_modules/debug/src/node.js
328872
328984
  var require_node = __commonJS((exports, module) => {
328873
328985
  var tty = __require("tty");
328874
328986
  var util3 = __require("util");
@@ -329039,7 +329151,7 @@ var require_node = __commonJS((exports, module) => {
329039
329151
  };
329040
329152
  });
329041
329153
 
329042
- // ../../node_modules/.pnpm/debug@4.4.3_supports-color@5.5.0/node_modules/debug/src/index.js
329154
+ // ../../../v2/node_modules/.pnpm/debug@4.4.3_supports-color@7.2.0/node_modules/debug/src/index.js
329043
329155
  var require_src = __commonJS((exports, module) => {
329044
329156
  if (typeof process === "undefined" || process.type === "renderer" || false || process.__nwjs) {
329045
329157
  module.exports = require_browser();
@@ -329048,7 +329160,7 @@ var require_src = __commonJS((exports, module) => {
329048
329160
  }
329049
329161
  });
329050
329162
 
329051
- // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/lib/create-tokenizer.js
329163
+ // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/lib/create-tokenizer.js
329052
329164
  function createTokenizer(parser, initialize, from) {
329053
329165
  let point = {
329054
329166
  _bufferIndex: -1,
@@ -329371,7 +329483,7 @@ var init_create_tokenizer = __esm(() => {
329371
329483
  debug = import_debug.default("micromark");
329372
329484
  });
329373
329485
 
329374
- // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/lib/parse.js
329486
+ // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/lib/parse.js
329375
329487
  function parse6(options) {
329376
329488
  const settings = options || {};
329377
329489
  const constructs2 = combineExtensions([exports_constructs, ...settings.extensions || []]);
@@ -329403,7 +329515,7 @@ var init_parse4 = __esm(() => {
329403
329515
  init_create_tokenizer();
329404
329516
  });
329405
329517
 
329406
- // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/lib/postprocess.js
329518
+ // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/lib/postprocess.js
329407
329519
  function postprocess(events) {
329408
329520
  while (!subtokenize(events)) {}
329409
329521
  return events;
@@ -329412,7 +329524,7 @@ var init_postprocess = __esm(() => {
329412
329524
  init_dev7();
329413
329525
  });
329414
329526
 
329415
- // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/lib/preprocess.js
329527
+ // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/lib/preprocess.js
329416
329528
  function preprocess2() {
329417
329529
  let column = 1;
329418
329530
  let buffer = "";
@@ -329498,14 +329610,14 @@ var init_preprocess = __esm(() => {
329498
329610
  search = /[\0\t\n\r]/g;
329499
329611
  });
329500
329612
 
329501
- // ../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/dev/index.js
329613
+ // ../../../v2/node_modules/.pnpm/micromark@4.0.2_supports-color@7.2.0/node_modules/micromark/dev/index.js
329502
329614
  var init_dev13 = __esm(() => {
329503
329615
  init_parse4();
329504
329616
  init_postprocess();
329505
329617
  init_preprocess();
329506
329618
  });
329507
329619
 
329508
- // ../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/dev/index.js
329620
+ // ../../../v2/node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/dev/index.js
329509
329621
  function decodeString(value2) {
329510
329622
  return value2.replace(characterEscapeOrReference, decode4);
329511
329623
  }
@@ -329529,7 +329641,7 @@ var init_dev14 = __esm(() => {
329529
329641
  characterEscapeOrReference = /\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;
329530
329642
  });
329531
329643
 
329532
- // ../../node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/lib/index.js
329644
+ // ../../../v2/node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/lib/index.js
329533
329645
  function stringifyPosition(value2) {
329534
329646
  if (!value2 || typeof value2 !== "object") {
329535
329647
  return "";
@@ -329555,10 +329667,10 @@ function index(value2) {
329555
329667
  return value2 && typeof value2 === "number" ? value2 : 1;
329556
329668
  }
329557
329669
 
329558
- // ../../node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/index.js
329670
+ // ../../../v2/node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/index.js
329559
329671
  var init_unist_util_stringify_position = () => {};
329560
329672
 
329561
- // ../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/dev/lib/index.js
329673
+ // ../../../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
329562
329674
  function fromMarkdown(value2, encoding, options) {
329563
329675
  if (encoding && typeof encoding === "object") {
329564
329676
  options = encoding;
@@ -330273,12 +330385,12 @@ var init_lib2 = __esm(() => {
330273
330385
  own2 = {}.hasOwnProperty;
330274
330386
  });
330275
330387
 
330276
- // ../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/dev/index.js
330388
+ // ../../../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
330277
330389
  var init_dev15 = __esm(() => {
330278
330390
  init_lib2();
330279
330391
  });
330280
330392
 
330281
- // ../../node_modules/.pnpm/ccount@2.0.1/node_modules/ccount/index.js
330393
+ // ../../../v2/node_modules/.pnpm/ccount@2.0.1/node_modules/ccount/index.js
330282
330394
  function ccount(value2, character) {
330283
330395
  const source = String(value2);
330284
330396
  if (typeof character !== "string") {
@@ -330293,7 +330405,7 @@ function ccount(value2, character) {
330293
330405
  return count;
330294
330406
  }
330295
330407
 
330296
- // ../../node_modules/.pnpm/escape-string-regexp@5.0.0/node_modules/escape-string-regexp/index.js
330408
+ // ../../../v2/node_modules/.pnpm/escape-string-regexp@5.0.0/node_modules/escape-string-regexp/index.js
330297
330409
  function escapeStringRegexp(string7) {
330298
330410
  if (typeof string7 !== "string") {
330299
330411
  throw new TypeError("Expected a string");
@@ -330301,7 +330413,7 @@ function escapeStringRegexp(string7) {
330301
330413
  return string7.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
330302
330414
  }
330303
330415
 
330304
- // ../../node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/lib/index.js
330416
+ // ../../../v2/node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/lib/index.js
330305
330417
  function anyFactory(tests) {
330306
330418
  const checks4 = [];
330307
330419
  let index2 = -1;
@@ -330365,15 +330477,15 @@ var convert = function(test) {
330365
330477
  throw new Error("Expected function, string, or object as test");
330366
330478
  };
330367
330479
 
330368
- // ../../node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/index.js
330480
+ // ../../../v2/node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/index.js
330369
330481
  var init_unist_util_is = () => {};
330370
330482
 
330371
- // ../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/color.node.js
330483
+ // ../../../v2/node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/color.node.js
330372
330484
  function color(d) {
330373
330485
  return "\x1B[33m" + d + "\x1B[39m";
330374
330486
  }
330375
330487
 
330376
- // ../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/index.js
330488
+ // ../../../v2/node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/index.js
330377
330489
  function visitParents(tree, test, visitor, reverse) {
330378
330490
  let check2;
330379
330491
  if (typeof test === "function" && typeof visitor !== "function") {
@@ -330439,12 +330551,12 @@ var init_lib3 = __esm(() => {
330439
330551
  empty2 = [];
330440
330552
  });
330441
330553
 
330442
- // ../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/index.js
330554
+ // ../../../v2/node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/index.js
330443
330555
  var init_unist_util_visit_parents = __esm(() => {
330444
330556
  init_lib3();
330445
330557
  });
330446
330558
 
330447
- // ../../node_modules/.pnpm/mdast-util-find-and-replace@3.0.2/node_modules/mdast-util-find-and-replace/lib/index.js
330559
+ // ../../../v2/node_modules/.pnpm/mdast-util-find-and-replace@3.0.2/node_modules/mdast-util-find-and-replace/lib/index.js
330448
330560
  function findAndReplace(tree, list2, options) {
330449
330561
  const settings = options || {};
330450
330562
  const ignored = convert(settings.ignore || []);
@@ -330549,12 +330661,12 @@ var init_lib4 = __esm(() => {
330549
330661
  init_unist_util_is();
330550
330662
  });
330551
330663
 
330552
- // ../../node_modules/.pnpm/mdast-util-find-and-replace@3.0.2/node_modules/mdast-util-find-and-replace/index.js
330664
+ // ../../../v2/node_modules/.pnpm/mdast-util-find-and-replace@3.0.2/node_modules/mdast-util-find-and-replace/index.js
330553
330665
  var init_mdast_util_find_and_replace = __esm(() => {
330554
330666
  init_lib4();
330555
330667
  });
330556
330668
 
330557
- // ../../node_modules/.pnpm/mdast-util-gfm-autolink-literal@2.0.1/node_modules/mdast-util-gfm-autolink-literal/lib/index.js
330669
+ // ../../../v2/node_modules/.pnpm/mdast-util-gfm-autolink-literal@2.0.1/node_modules/mdast-util-gfm-autolink-literal/lib/index.js
330558
330670
  function gfmAutolinkLiteralFromMarkdown() {
330559
330671
  return {
330560
330672
  transforms: [transformGfmAutolinkLiterals],
@@ -330672,12 +330784,12 @@ var init_lib5 = __esm(() => {
330672
330784
  init_mdast_util_find_and_replace();
330673
330785
  });
330674
330786
 
330675
- // ../../node_modules/.pnpm/mdast-util-gfm-autolink-literal@2.0.1/node_modules/mdast-util-gfm-autolink-literal/index.js
330787
+ // ../../../v2/node_modules/.pnpm/mdast-util-gfm-autolink-literal@2.0.1/node_modules/mdast-util-gfm-autolink-literal/index.js
330676
330788
  var init_mdast_util_gfm_autolink_literal = __esm(() => {
330677
330789
  init_lib5();
330678
330790
  });
330679
330791
 
330680
- // ../../node_modules/.pnpm/mdast-util-gfm-footnote@2.1.0/node_modules/mdast-util-gfm-footnote/lib/index.js
330792
+ // ../../../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
330681
330793
  function enterFootnoteCallString() {
330682
330794
  this.buffer();
330683
330795
  }
@@ -330746,12 +330858,12 @@ var init_lib6 = __esm(() => {
330746
330858
  footnoteReference.peek = footnoteReferencePeek;
330747
330859
  });
330748
330860
 
330749
- // ../../node_modules/.pnpm/mdast-util-gfm-footnote@2.1.0/node_modules/mdast-util-gfm-footnote/index.js
330861
+ // ../../../v2/node_modules/.pnpm/mdast-util-gfm-footnote@2.1.0_supports-color@7.2.0/node_modules/mdast-util-gfm-footnote/index.js
330750
330862
  var init_mdast_util_gfm_footnote = __esm(() => {
330751
330863
  init_lib6();
330752
330864
  });
330753
330865
 
330754
- // ../../node_modules/.pnpm/mdast-util-gfm-strikethrough@2.0.0/node_modules/mdast-util-gfm-strikethrough/lib/index.js
330866
+ // ../../../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
330755
330867
  function gfmStrikethroughFromMarkdown() {
330756
330868
  return {
330757
330869
  canContainEols: ["delete"],
@@ -330785,12 +330897,12 @@ var init_lib7 = __esm(() => {
330785
330897
  handleDelete.peek = peekDelete;
330786
330898
  });
330787
330899
 
330788
- // ../../node_modules/.pnpm/mdast-util-gfm-strikethrough@2.0.0/node_modules/mdast-util-gfm-strikethrough/index.js
330900
+ // ../../../v2/node_modules/.pnpm/mdast-util-gfm-strikethrough@2.0.0_supports-color@7.2.0/node_modules/mdast-util-gfm-strikethrough/index.js
330789
330901
  var init_mdast_util_gfm_strikethrough = __esm(() => {
330790
330902
  init_lib7();
330791
330903
  });
330792
330904
 
330793
- // ../../node_modules/.pnpm/mdast-util-gfm-table@2.0.0/node_modules/mdast-util-gfm-table/lib/index.js
330905
+ // ../../../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
330794
330906
  function gfmTableFromMarkdown() {
330795
330907
  return {
330796
330908
  enter: {
@@ -330850,12 +330962,12 @@ var init_lib8 = __esm(() => {
330850
330962
  init_development();
330851
330963
  });
330852
330964
 
330853
- // ../../node_modules/.pnpm/mdast-util-gfm-table@2.0.0/node_modules/mdast-util-gfm-table/index.js
330965
+ // ../../../v2/node_modules/.pnpm/mdast-util-gfm-table@2.0.0_supports-color@7.2.0/node_modules/mdast-util-gfm-table/index.js
330854
330966
  var init_mdast_util_gfm_table = __esm(() => {
330855
330967
  init_lib8();
330856
330968
  });
330857
330969
 
330858
- // ../../node_modules/.pnpm/mdast-util-gfm-task-list-item@2.0.0/node_modules/mdast-util-gfm-task-list-item/lib/index.js
330970
+ // ../../../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
330859
330971
  function gfmTaskListItemFromMarkdown() {
330860
330972
  return {
330861
330973
  exit: {
@@ -330905,12 +331017,12 @@ var init_lib9 = __esm(() => {
330905
331017
  init_development();
330906
331018
  });
330907
331019
 
330908
- // ../../node_modules/.pnpm/mdast-util-gfm-task-list-item@2.0.0/node_modules/mdast-util-gfm-task-list-item/index.js
331020
+ // ../../../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
330909
331021
  var init_mdast_util_gfm_task_list_item = __esm(() => {
330910
331022
  init_lib9();
330911
331023
  });
330912
331024
 
330913
- // ../../node_modules/.pnpm/mdast-util-gfm@3.1.0/node_modules/mdast-util-gfm/lib/index.js
331025
+ // ../../../v2/node_modules/.pnpm/mdast-util-gfm@3.1.0_supports-color@7.2.0/node_modules/mdast-util-gfm/lib/index.js
330914
331026
  function gfmFromMarkdown() {
330915
331027
  return [
330916
331028
  gfmAutolinkLiteralFromMarkdown(),
@@ -330928,12 +331040,12 @@ var init_lib10 = __esm(() => {
330928
331040
  init_mdast_util_gfm_task_list_item();
330929
331041
  });
330930
331042
 
330931
- // ../../node_modules/.pnpm/mdast-util-gfm@3.1.0/node_modules/mdast-util-gfm/index.js
331043
+ // ../../../v2/node_modules/.pnpm/mdast-util-gfm@3.1.0_supports-color@7.2.0/node_modules/mdast-util-gfm/index.js
330932
331044
  var init_mdast_util_gfm = __esm(() => {
330933
331045
  init_lib10();
330934
331046
  });
330935
331047
 
330936
- // ../../node_modules/.pnpm/micromark-extension-gfm-autolink-literal@2.1.0/node_modules/micromark-extension-gfm-autolink-literal/dev/lib/syntax.js
331048
+ // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-autolink-literal@2.1.0/node_modules/micromark-extension-gfm-autolink-literal/dev/lib/syntax.js
330937
331049
  function gfmAutolinkLiteral() {
330938
331050
  return { text: text3 };
330939
331051
  }
@@ -331264,12 +331376,12 @@ var init_syntax = __esm(() => {
331264
331376
  text3[codes.lowercaseW] = [emailAutolink, wwwAutolink];
331265
331377
  });
331266
331378
 
331267
- // ../../node_modules/.pnpm/micromark-extension-gfm-autolink-literal@2.1.0/node_modules/micromark-extension-gfm-autolink-literal/dev/index.js
331379
+ // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-autolink-literal@2.1.0/node_modules/micromark-extension-gfm-autolink-literal/dev/index.js
331268
331380
  var init_dev16 = __esm(() => {
331269
331381
  init_syntax();
331270
331382
  });
331271
331383
 
331272
- // ../../node_modules/.pnpm/micromark-extension-gfm-footnote@2.1.0/node_modules/micromark-extension-gfm-footnote/dev/lib/syntax.js
331384
+ // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-footnote@2.1.0/node_modules/micromark-extension-gfm-footnote/dev/lib/syntax.js
331273
331385
  function gfmFootnote() {
331274
331386
  return {
331275
331387
  document: {
@@ -331533,12 +331645,12 @@ var init_syntax2 = __esm(() => {
331533
331645
  indent = { tokenize: tokenizeIndent2, partial: true };
331534
331646
  });
331535
331647
 
331536
- // ../../node_modules/.pnpm/micromark-extension-gfm-footnote@2.1.0/node_modules/micromark-extension-gfm-footnote/dev/index.js
331648
+ // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-footnote@2.1.0/node_modules/micromark-extension-gfm-footnote/dev/index.js
331537
331649
  var init_dev17 = __esm(() => {
331538
331650
  init_syntax2();
331539
331651
  });
331540
331652
 
331541
- // ../../node_modules/.pnpm/micromark-extension-gfm-strikethrough@2.1.0/node_modules/micromark-extension-gfm-strikethrough/dev/lib/syntax.js
331653
+ // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-strikethrough@2.1.0/node_modules/micromark-extension-gfm-strikethrough/dev/lib/syntax.js
331542
331654
  function gfmStrikethrough(options) {
331543
331655
  const options_ = options || {};
331544
331656
  let single = options_.singleTilde;
@@ -331644,12 +331756,12 @@ var init_syntax3 = __esm(() => {
331644
331756
  init_default3();
331645
331757
  });
331646
331758
 
331647
- // ../../node_modules/.pnpm/micromark-extension-gfm-strikethrough@2.1.0/node_modules/micromark-extension-gfm-strikethrough/dev/index.js
331759
+ // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-strikethrough@2.1.0/node_modules/micromark-extension-gfm-strikethrough/dev/index.js
331648
331760
  var init_dev18 = __esm(() => {
331649
331761
  init_syntax3();
331650
331762
  });
331651
331763
 
331652
- // ../../node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/dev/lib/edit-map.js
331764
+ // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/dev/lib/edit-map.js
331653
331765
  class EditMap {
331654
331766
  constructor() {
331655
331767
  this.map = [];
@@ -331699,7 +331811,7 @@ function addImplementation(editMap, at, remove, add) {
331699
331811
  editMap.map.push([at, remove, add]);
331700
331812
  }
331701
331813
 
331702
- // ../../node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/dev/lib/infer.js
331814
+ // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/dev/lib/infer.js
331703
331815
  function gfmTableAlign(events, index2) {
331704
331816
  ok2(events[index2][1].type === "table", "expected table");
331705
331817
  let inDelimiterRow = false;
@@ -331730,7 +331842,7 @@ var init_infer = __esm(() => {
331730
331842
  init_development();
331731
331843
  });
331732
331844
 
331733
- // ../../node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/dev/lib/syntax.js
331845
+ // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/dev/lib/syntax.js
331734
331846
  function gfmTable() {
331735
331847
  return {
331736
331848
  flow: {
@@ -332122,12 +332234,12 @@ var init_syntax4 = __esm(() => {
332122
332234
  init_infer();
332123
332235
  });
332124
332236
 
332125
- // ../../node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/dev/index.js
332237
+ // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/dev/index.js
332126
332238
  var init_dev19 = __esm(() => {
332127
332239
  init_syntax4();
332128
332240
  });
332129
332241
 
332130
- // ../../node_modules/.pnpm/micromark-extension-gfm-task-list-item@2.1.0/node_modules/micromark-extension-gfm-task-list-item/dev/lib/syntax.js
332242
+ // ../../../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
332131
332243
  function gfmTaskListItem() {
332132
332244
  return {
332133
332245
  text: { [codes.leftSquareBracket]: tasklistCheck }
@@ -332197,12 +332309,12 @@ var init_syntax5 = __esm(() => {
332197
332309
  tasklistCheck = { name: "tasklistCheck", tokenize: tokenizeTasklistCheck };
332198
332310
  });
332199
332311
 
332200
- // ../../node_modules/.pnpm/micromark-extension-gfm-task-list-item@2.1.0/node_modules/micromark-extension-gfm-task-list-item/dev/index.js
332312
+ // ../../../v2/node_modules/.pnpm/micromark-extension-gfm-task-list-item@2.1.0/node_modules/micromark-extension-gfm-task-list-item/dev/index.js
332201
332313
  var init_dev20 = __esm(() => {
332202
332314
  init_syntax5();
332203
332315
  });
332204
332316
 
332205
- // ../../node_modules/.pnpm/micromark-extension-gfm@3.0.0/node_modules/micromark-extension-gfm/index.js
332317
+ // ../../../v2/node_modules/.pnpm/micromark-extension-gfm@3.0.0/node_modules/micromark-extension-gfm/index.js
332206
332318
  function gfm(options) {
332207
332319
  return combineExtensions([
332208
332320
  gfmAutolinkLiteral(),
@@ -351658,14 +351770,14 @@ var init_formatting = __esm(() => {
351658
351770
  ];
351659
351771
  PROJECTION_FONT_TABLE_PART_INDEX = STYLE_SIDECAR_PART_URIS.length;
351660
351772
  });
351661
- // ../../packages/word-layout/src/unit-conversions.ts
351773
+ // ../../../v2/node_modules/.pnpm/@superdoc+word-layout@file+..+public+packages+word-layout/node_modules/@superdoc/word-layout/src/unit-conversions.ts
351662
351774
  var TWIPS_PER_INCH = 1440, PIXELS_PER_INCH = 96, TWIPS_PER_POINT2 = 20, POINTS_PER_TWIP, TWIPS_PER_PIXEL, PIXELS_PER_TWIP;
351663
351775
  var init_unit_conversions = __esm(() => {
351664
351776
  POINTS_PER_TWIP = 1 / TWIPS_PER_POINT2;
351665
351777
  TWIPS_PER_PIXEL = Math.round(TWIPS_PER_INCH / PIXELS_PER_INCH);
351666
351778
  PIXELS_PER_TWIP = 1 / TWIPS_PER_PIXEL;
351667
351779
  });
351668
- // ../../packages/word-layout/src/numbering-manager.ts
351780
+ // ../../../v2/node_modules/.pnpm/@superdoc+word-layout@file+..+public+packages+word-layout/node_modules/@superdoc/word-layout/src/numbering-manager.ts
351669
351781
  function persistentTrieHash(key2) {
351670
351782
  let hash2 = 2166136261;
351671
351783
  for (let index2 = 0;index2 < key2.length; index2 += 1) {
@@ -352293,7 +352405,7 @@ var init_numbering_manager = __esm(() => {
352293
352405
  });
352294
352406
  });
352295
352407
 
352296
- // ../../shared/common/list-numbering/index.ts
352408
+ // ../../../v2/node_modules/.pnpm/@superdoc+common@file+..+public+shared+common/node_modules/@superdoc/common/list-numbering/index.ts
352297
352409
  var handleDecimal = (path7, lvlText) => generateNumbering(path7, lvlText, numberToStringFormatter), handleRoman = (path7, lvlText) => generateNumbering(path7, lvlText, intToRoman), handleLowerRoman = (path7, lvlText) => {
352298
352410
  const result = handleRoman(path7, lvlText);
352299
352411
  return result ? result.toLowerCase() : null;
@@ -352595,7 +352707,7 @@ var init_list_numbering = __esm(() => {
352595
352707
  normalizeChars = new Set(["", "", "○", "o", "■", "□"]);
352596
352708
  });
352597
352709
 
352598
- // ../../packages/word-layout/src/list-marker.ts
352710
+ // ../../../v2/node_modules/.pnpm/@superdoc+word-layout@file+..+public+packages+word-layout/node_modules/@superdoc/word-layout/src/list-marker.ts
352599
352711
  function computeWordListMarker(input) {
352600
352712
  const { definition: definition2, manager, paragraphOrdinal } = input;
352601
352713
  if (definition2.ancestorStartSettings) {
@@ -352672,7 +352784,7 @@ var init_list_marker = __esm(() => {
352672
352784
  init_list_numbering();
352673
352785
  });
352674
352786
 
352675
- // ../../packages/word-layout/src/review-aware-numbering.ts
352787
+ // ../../../v2/node_modules/.pnpm/@superdoc+word-layout@file+..+public+packages+word-layout/node_modules/@superdoc/word-layout/src/review-aware-numbering.ts
352676
352788
  function createReviewAwareWordNumberingSequence(options = {}) {
352677
352789
  const stateMode = options.stateMode ?? "snapshot";
352678
352790
  let live = createManager(stateMode);
@@ -352769,7 +352881,7 @@ var init_review_aware_numbering = __esm(() => {
352769
352881
  init_numbering_manager();
352770
352882
  });
352771
352883
 
352772
- // ../../packages/word-layout/src/index.ts
352884
+ // ../../../v2/node_modules/.pnpm/@superdoc+word-layout@file+..+public+packages+word-layout/node_modules/@superdoc/word-layout/src/index.ts
352773
352885
  var init_src7 = __esm(() => {
352774
352886
  init_unit_conversions();
352775
352887
  init_unit_conversions();
@@ -355460,31 +355572,42 @@ function wrapTextSelectionInParagraphXml(input) {
355460
355572
  const original = wrapRangeWithMarkupInParagraphXml(input);
355461
355573
  if (original.ok)
355462
355574
  return original;
355575
+ const normalized = normalizeSelectedRuns(input, true);
355576
+ return normalized === null ? original : wrapRangeWithMarkupInParagraphXml({ ...input, paragraphXml: normalized });
355577
+ }
355578
+ function normalizeTextOnlySelectionRuns(input) {
355579
+ return normalizeSelectedRuns(input, false);
355580
+ }
355581
+ function normalizeSelectedRuns(input, allowSeparators) {
355582
+ const model = parseParagraphInlineMap(input.paragraphXml);
355583
+ if (!Number.isInteger(input.rangeStart) || !Number.isInteger(input.rangeEnd) || input.rangeStart < 0 || input.rangeEnd < input.rangeStart || input.rangeEnd > model.visibleLength)
355584
+ return null;
355585
+ const collapsed = input.rangeStart === input.rangeEnd;
355463
355586
  const selectedRuns = new Map;
355464
- for (const piece of parseParagraphInlineMap(input.paragraphXml).leaves()) {
355465
- if (piece.visibleEnd <= input.rangeStart || piece.visibleStart >= input.rangeEnd)
355587
+ for (const piece of model.leaves()) {
355588
+ if (collapsed ? piece.visibleEnd < input.rangeStart || piece.visibleStart > input.rangeStart : piece.visibleEnd <= input.rangeStart || piece.visibleStart >= input.rangeEnd)
355466
355589
  continue;
355467
355590
  if (piece.kind !== "text" || piece.textRole !== "visible" || piece.containerStack.length)
355468
- return original;
355591
+ return null;
355469
355592
  selectedRuns.set(piece.runCharStart, piece);
355470
355593
  }
355471
355594
  if (!selectedRuns.size)
355472
- return original;
355595
+ return null;
355473
355596
  let normalized = input.paragraphXml;
355474
355597
  let changed = false;
355475
355598
  for (const piece of [...selectedRuns.values()].sort((a, b) => b.runCharStart - a.runCharStart)) {
355476
355599
  const source = input.paragraphXml.slice(piece.runCharStart, piece.runCharEnd);
355477
- const split = splitSharedTextRun(source);
355600
+ const split = splitSharedTextRun(source, allowSeparators);
355478
355601
  if (split === null)
355479
- return original;
355602
+ return null;
355480
355603
  if (split === source)
355481
355604
  continue;
355482
355605
  normalized = normalized.slice(0, piece.runCharStart) + split + normalized.slice(piece.runCharEnd);
355483
355606
  changed = true;
355484
355607
  }
355485
- return changed ? wrapRangeWithMarkupInParagraphXml({ ...input, paragraphXml: normalized }) : original;
355608
+ return changed ? normalized : null;
355486
355609
  }
355487
- function splitSharedTextRun(source) {
355610
+ function splitSharedTextRun(source, allowSeparators) {
355488
355611
  const parsed = collectXmlElementRanges(source, {
355489
355612
  fragment: true,
355490
355613
  additionalNamespaces: xmlFragmentAdditionalNamespaces(source, new Map, { w: W12 })
@@ -355518,7 +355641,7 @@ function splitSharedTextRun(source) {
355518
355641
  properties = raw;
355519
355642
  continue;
355520
355643
  }
355521
- if (!["t", "br", "cr", "tab"].includes(child.tag.localName))
355644
+ if (!(allowSeparators ? ["t", "br", "cr", "tab"] : ["t"]).includes(child.tag.localName))
355522
355645
  return null;
355523
355646
  if (child.tag.localName === "t") {
355524
355647
  if (child.tag.isSelfClosing || parsed.ranges.some((range) => range.start >= child.openEnd && range.end <= child.closeStart))
@@ -360884,7 +361007,16 @@ function wrapSelectionInXml(context, documentXml, target, sdtXml, kind, replacem
360884
361007
  };
360885
361008
  }
360886
361009
  const insertXml = replaceSdtContentInTemplate(sdtXml, buildReplacementContentXml2(hasReplacementContent ? replacementContent : ""));
360887
- const spliced = spliceXmlAtVisibleOffset(para.xml, target.start.offset, insertXml);
361010
+ let spliced = spliceXmlAtVisibleOffset(para.xml, target.start.offset, insertXml);
361011
+ if (spliced.kind === "shared-run") {
361012
+ const normalized = normalizeTextOnlySelectionRuns({
361013
+ paragraphXml: para.xml,
361014
+ rangeStart: target.start.offset,
361015
+ rangeEnd: target.end.offset
361016
+ });
361017
+ if (normalized !== null)
361018
+ spliced = spliceXmlAtVisibleOffset(normalized, target.start.offset, insertXml);
361019
+ }
360888
361020
  if (spliced.kind === "ok") {
360889
361021
  return { ok: true, xml: replaceRange3(documentXml, para.start, para.end, spliced.xml) };
360890
361022
  }
@@ -360926,12 +361058,18 @@ function wrapSelectionInXml(context, documentXml, target, sdtXml, kind, replacem
360926
361058
  return { ok: false, failure: { code: "CAPABILITY_UNAVAILABLE", message: "Content-control selection spans unsupported inline structures." } };
360927
361059
  }
360928
361060
  if (kind === "inline" && hasReplacementContent) {
360929
- const replaced = replaceRangeInParagraphXml({
361061
+ const replacement = {
360930
361062
  paragraphXml: para.xml,
360931
361063
  rangeStart: target.start.offset,
360932
361064
  rangeEnd: target.end.offset,
360933
361065
  replacementXml: replaceSdtContentInTemplate(sdtXml, buildReplacementContentXml2(replacementContent))
360934
- });
361066
+ };
361067
+ let replaced = replaceRangeInParagraphXml(replacement);
361068
+ if (!replaced.ok) {
361069
+ const normalized = normalizeTextOnlySelectionRuns(replacement);
361070
+ if (normalized !== null)
361071
+ replaced = replaceRangeInParagraphXml({ ...replacement, paragraphXml: normalized });
361072
+ }
360935
361073
  if (replaced.ok) {
360936
361074
  return { ok: true, xml: replaceRange3(documentXml, para.start, para.end, replaced.xml) };
360937
361075
  }
@@ -361185,8 +361323,10 @@ function splitTextRunAtVisibleOffset(paragraphXml, piece, localOffset, insertXml
361185
361323
  const before = piece.decodedText.slice(0, localOffset);
361186
361324
  const after = piece.decodedText.slice(localOffset);
361187
361325
  const rPr = piece.runProperties ?? "";
361188
- const space = piece.xmlSpace === "preserve" ? ' xml:space="preserve"' : "";
361189
- const mkRun = (text4) => `${piece.runOpenTag}${rPr}<w:t${space}>${xmlEscapeText(text4)}</w:t>${piece.runCloseTag}`;
361326
+ const mkRun = (text4) => {
361327
+ const space = piece.xmlSpace === "preserve" || /^\s|\s$/.test(text4) ? ' xml:space="preserve"' : "";
361328
+ return `${piece.runOpenTag}${rPr}<w:t${space}>${xmlEscapeText(text4)}</w:t>${piece.runCloseTag}`;
361329
+ };
361190
361330
  const beforeRun = before ? mkRun(before) : "";
361191
361331
  const afterRun = after ? mkRun(after) : "";
361192
361332
  return `${paragraphXml.slice(0, piece.runCharStart)}${beforeRun}${insertXml}${afterRun}${paragraphXml.slice(piece.runCharEnd)}`;
@@ -381577,47 +381717,76 @@ function buildProjectionHyperlinkIndex(context, storyId, supplied) {
381577
381717
  const catalog = supplied ? null : readHyperlinkCatalogForSession(context.session, storyId);
381578
381718
  const fieldCatalog = supplied ? null : readFieldCatalogForSession(context.session, storyId);
381579
381719
  const hyperlinks = [...supplied?.hyperlinks ?? catalog?.hyperlinks ?? []].sort((left, right) => left.byteStart - right.byteStart || left.byteEnd - right.byteEnd);
381580
- const fields = (supplied?.fields ?? fieldCatalog?.fields ?? []).filter((field) => field.classification === "hyperlink").sort((left, right) => left.resultByteStart - right.resultByteStart || left.resultByteEnd - right.resultByteEnd);
381720
+ const fields = (supplied?.fields ?? fieldCatalog?.fields ?? []).filter((field) => field.classification === "hyperlink" || field.classification === "ref" || field.classification === "pageRef").sort((left, right) => left.resultByteStart - right.resultByteStart || left.resultByteEnd - right.resultByteEnd);
381581
381721
  const hyperlinkRanges = new ContainingRangeIndex(hyperlinks, (candidate2) => candidate2.byteStart, (candidate2) => candidate2.byteEnd);
381582
- const fieldRanges = new ContainingRangeIndex(fields, (candidate2) => candidate2.resultByteStart, (candidate2) => candidate2.resultByteEnd);
381722
+ const fieldRanges = new ContainingRangeIndex(fields.filter((field) => resolveFieldLink(field) != null), (candidate2) => candidate2.resultByteStart, (candidate2) => candidate2.resultByteEnd);
381723
+ const linkFieldRanges = new ContainingRangeIndex(fields.filter((field) => field.classification === "hyperlink" || resolveFieldLink(field)?.link != null), (candidate2) => candidate2.resultByteStart, (candidate2) => candidate2.resultByteEnd);
381583
381724
  return {
381584
381725
  catalog,
381585
381726
  fieldCatalog,
381586
381727
  resolve(byteStart, byteEnd) {
381587
381728
  const field = fieldRanges.find(byteStart, byteEnd);
381588
- if (field) {
381589
- if (!field.complete)
381590
- return { descriptor: field, link: null, reason: "unsupported-shape" };
381591
- const instruction = parseHyperlinkFieldInstruction(field.instructionText);
381592
- if (!instruction)
381593
- return { descriptor: field, link: null, reason: "unsupported-shape" };
381594
- const target2 = instruction.href?.trim();
381595
- if (target2) {
381596
- return isSafeExternalTarget(target2) ? { descriptor: field, link: { kind: "external", target: target2 } } : { descriptor: field, link: null, reason: "unsafe-target" };
381597
- }
381598
- const anchor = instruction.anchor?.trim();
381599
- return anchor ? { descriptor: field, link: null, reason: "unsupported-shape" } : { descriptor: field, link: null, reason: "missing-target" };
381600
- }
381729
+ const fieldLink = field ? resolveFieldLink(field) : null;
381601
381730
  const descriptor = hyperlinkRanges.find(byteStart, byteEnd);
381602
- if (!descriptor)
381603
- return null;
381604
- if (descriptor.containsNestedHyperlink || descriptor.containsFieldCode) {
381605
- return { descriptor, link: null, reason: "unsupported-shape" };
381606
- }
381607
- if (descriptor.targetKind === "anchor") {
381608
- const target2 = descriptor.anchor?.trim();
381609
- return target2 ? { descriptor, link: null, reason: "unsupported-shape" } : { descriptor, link: null, reason: "missing-target" };
381731
+ if (fieldLink && (fieldLink.link || field?.classification === "hyperlink")) {
381732
+ const enclosingLink2 = descriptor ? resolveElementLink(descriptor).link : null;
381733
+ if (fieldLink.link?.fieldReference && fieldLink.link.kind === "anchor" && enclosingLink2?.kind === "anchor" && enclosingLink2.target.toLowerCase() === fieldLink.link.target.toLowerCase()) {
381734
+ return { ...fieldLink, link: { kind: "anchor", target: fieldLink.link.target } };
381735
+ }
381736
+ return fieldLink;
381610
381737
  }
381611
- const target = descriptor.externalTarget?.trim();
381612
- if (!target)
381613
- return { descriptor, link: null, reason: "missing-target" };
381614
- if (!isSafeExternalTarget(target)) {
381615
- return { descriptor, link: null, reason: "unsafe-target" };
381738
+ const enclosingField = linkFieldRanges.find(byteStart, byteEnd);
381739
+ const enclosingLink = enclosingField ? resolveFieldLink(enclosingField) : descriptor ? resolveElementLink(descriptor) : null;
381740
+ if (!fieldLink)
381741
+ return enclosingLink;
381742
+ if (enclosingLink?.link) {
381743
+ return { ...fieldLink, link: { ...enclosingLink.link, fieldReference: true } };
381616
381744
  }
381617
- return { descriptor, link: { kind: "external", target } };
381745
+ return fieldLink;
381618
381746
  }
381619
381747
  };
381620
381748
  }
381749
+ function resolveElementLink(descriptor) {
381750
+ if (descriptor.containsNestedHyperlink) {
381751
+ return { descriptor, link: null, reason: "unsupported-shape" };
381752
+ }
381753
+ if (descriptor.targetKind === "anchor") {
381754
+ const target2 = descriptor.anchor?.trim();
381755
+ return target2 ? { descriptor, link: { kind: "anchor", target: target2 } } : { descriptor, link: null, reason: "missing-target" };
381756
+ }
381757
+ if (descriptor.containsFieldCode) {
381758
+ return { descriptor, link: null, reason: "unsupported-shape" };
381759
+ }
381760
+ const target = descriptor.externalTarget?.trim();
381761
+ if (!target)
381762
+ return { descriptor, link: null, reason: "missing-target" };
381763
+ if (!isSafeExternalTarget(target)) {
381764
+ return { descriptor, link: null, reason: "unsafe-target" };
381765
+ }
381766
+ return { descriptor, link: { kind: "external", target } };
381767
+ }
381768
+ function resolveFieldLink(field) {
381769
+ if (field.classification !== "hyperlink") {
381770
+ if (!field.complete)
381771
+ return { descriptor: field, link: null, reason: "unsupported-shape" };
381772
+ const reference = parseBookmarkReferenceFieldInstruction(field.instructionText);
381773
+ if (!reference)
381774
+ return { descriptor: field, link: null, reason: "unsupported-shape" };
381775
+ const bookmark = reference.hyperlink ? reference.bookmark.trim() : "";
381776
+ return bookmark ? { descriptor: field, link: { kind: "anchor", target: bookmark, fieldReference: true } } : null;
381777
+ }
381778
+ if (!field.complete)
381779
+ return { descriptor: field, link: null, reason: "unsupported-shape" };
381780
+ const instruction = parseHyperlinkFieldInstruction(field.instructionText);
381781
+ if (!instruction)
381782
+ return { descriptor: field, link: null, reason: "unsupported-shape" };
381783
+ const target = instruction.href?.trim();
381784
+ if (target) {
381785
+ return isSafeExternalTarget(target) ? { descriptor: field, link: { kind: "external", target } } : { descriptor: field, link: null, reason: "unsafe-target" };
381786
+ }
381787
+ const anchor = instruction.anchor?.trim();
381788
+ return anchor ? { descriptor: field, link: { kind: "anchor", target: anchor } } : { descriptor: field, link: null, reason: "missing-target" };
381789
+ }
381621
381790
 
381622
381791
  class ContainingRangeIndex {
381623
381792
  constructor(values2, rangeStart, rangeEnd) {
@@ -381723,6 +381892,118 @@ var init_images2 = __esm(() => {
381723
381892
  init_sd_document_session_internal();
381724
381893
  });
381725
381894
 
381895
+ // ../../../v2/document-api-v2-adapter/dist/content-projection/internal-links.js
381896
+ function* resolveProjectionInternalLinkSteps(blocks, diagnostics, story) {
381897
+ const destinations = new Map;
381898
+ let hasAnchorLinks = false;
381899
+ for (const block of walkBlocks(blocks)) {
381900
+ if (!("inlines" in block))
381901
+ continue;
381902
+ for (const bookmark of block.bookmarks ?? []) {
381903
+ const key2 = bookmarkKey(bookmark.name);
381904
+ if (!destinations.has(key2))
381905
+ destinations.set(key2, bookmark);
381906
+ }
381907
+ hasAnchorLinks || (hasAnchorLinks = block.inlines.some((inline) => inline.link?.kind === "anchor"));
381908
+ yield;
381909
+ }
381910
+ if (!hasAnchorLinks)
381911
+ return blocks;
381912
+ const anchorIds = new Map;
381913
+ const usedIds = new Set;
381914
+ for (const block of walkBlocks(blocks)) {
381915
+ if (!("inlines" in block))
381916
+ continue;
381917
+ for (const inline of block.inlines) {
381918
+ if (inline.link?.kind !== "anchor")
381919
+ continue;
381920
+ const destination = destinations.get(bookmarkKey(inline.link.target));
381921
+ if (!destination || anchorIds.has(destination))
381922
+ continue;
381923
+ anchorIds.set(destination, uniqueAnchorId(destination.name, usedIds));
381924
+ }
381925
+ yield;
381926
+ }
381927
+ const rewriteBlock = (block) => {
381928
+ if (block.kind === "table") {
381929
+ return { ...block, rows: block.rows.map(rewriteRow) };
381930
+ }
381931
+ if (!("inlines" in block))
381932
+ return block;
381933
+ const bookmarks = block.bookmarks?.map((bookmark) => {
381934
+ const anchorId = anchorIds.get(bookmark);
381935
+ return anchorId ? { ...bookmark, anchorId } : bookmark;
381936
+ });
381937
+ return {
381938
+ ...block,
381939
+ ...bookmarks ? { bookmarks } : {},
381940
+ inlines: block.inlines.map((inline) => rewriteInline2(inline, block))
381941
+ };
381942
+ };
381943
+ const rewriteRow = (row) => ({
381944
+ ...row,
381945
+ cells: row.cells.map(rewriteCell)
381946
+ });
381947
+ const rewriteCell = (cell) => ({
381948
+ ...cell,
381949
+ blocks: cell.blocks.map(rewriteBlock)
381950
+ });
381951
+ const rewriteInline2 = (inline, owner) => {
381952
+ if (inline.link?.kind !== "anchor")
381953
+ return inline;
381954
+ const destination = destinations.get(bookmarkKey(inline.link.target));
381955
+ const anchorId = destination && anchorIds.get(destination);
381956
+ if (anchorId)
381957
+ return { ...inline, link: { ...inline.link, target: anchorId } };
381958
+ const { link: _dropped, ...rest } = inline;
381959
+ const ownerId = owner.identity.identity === "public" ? owner.identity.blockId : undefined;
381960
+ diagnostics.push(projectionDiagnostic({
381961
+ code: "projection-downgraded-construct",
381962
+ severity: "warning",
381963
+ message: "Internal link text was preserved because its bookmark is not in this output.",
381964
+ construct: "hyperlink",
381965
+ disposition: "downgraded",
381966
+ lossy: true,
381967
+ story,
381968
+ blockId: inline.source?.blockId ?? ownerId,
381969
+ range: inline.source && { start: inline.source.start, end: inline.source.end },
381970
+ changeIds: inline.changeIds,
381971
+ commentIds: inline.commentIds
381972
+ }));
381973
+ return inline.link.fieldReference ? rest : { ...rest, linkUnavailable: true };
381974
+ };
381975
+ const out = [];
381976
+ for (const block of blocks) {
381977
+ out.push(rewriteBlock(block));
381978
+ yield;
381979
+ }
381980
+ return out;
381981
+ }
381982
+ function* walkBlocks(blocks) {
381983
+ for (const block of blocks) {
381984
+ yield block;
381985
+ if (block.kind !== "table")
381986
+ continue;
381987
+ for (const row of block.rows) {
381988
+ for (const cell of row.cells)
381989
+ yield* walkBlocks(cell.blocks);
381990
+ }
381991
+ }
381992
+ }
381993
+ function bookmarkKey(name) {
381994
+ return name.toLowerCase();
381995
+ }
381996
+ function uniqueAnchorId(name, used) {
381997
+ const base3 = `${ANCHOR_ID_PREFIX}${name.replace(/[^A-Za-z0-9_-]/g, "-")}`;
381998
+ let id = base3;
381999
+ for (let suffix = 2;used.has(id.toLowerCase()); suffix += 1)
382000
+ id = `${base3}-${suffix}`;
382001
+ used.add(id.toLowerCase());
382002
+ return id;
382003
+ }
382004
+ var ANCHOR_ID_PREFIX = "sd-bookmark-";
382005
+ var init_internal_links = () => {};
382006
+
381726
382007
  // ../../../v2/document-api-v2-adapter/dist/content-projection/scope.js
381727
382008
  function normalizeProjectionScope(input) {
381728
382009
  const scope = input.scope;
@@ -381814,9 +382095,10 @@ function applyProjectionScope(blocks, plan, paragraphOrder, sourceBlockIds = new
381814
382095
  if (rangeCutsTableBoundary(blocks, selectedIds)) {
381815
382096
  throw new DocumentApiValidationError2("CAPABILITY_UNAVAILABLE", "Projection range cannot slice a table structural boundary.");
381816
382097
  }
382098
+ const ranges = sourceRangesForSelection(selectedIds, range);
381817
382099
  const out = [];
381818
382100
  for (const block of blocks) {
381819
- const clipped = clipBlock(block, selectedIds, range, startId, endId);
382101
+ const clipped = clipBlock(block, ranges);
381820
382102
  if (clipped)
381821
382103
  out.push(clipped);
381822
382104
  }
@@ -381862,9 +382144,10 @@ async function applyProjectionScopeCooperatively(blocks, plan, paragraphOrder, s
381862
382144
  if (await rangeCutsTableBoundaryCooperatively(blocks, selectedIds, sliceGate)) {
381863
382145
  throw new DocumentApiValidationError2("CAPABILITY_UNAVAILABLE", "Projection range cannot slice a table structural boundary.");
381864
382146
  }
382147
+ const ranges = sourceRangesForSelection(selectedIds, range);
381865
382148
  const out = [];
381866
382149
  for (const block of blocks) {
381867
- const clipped = await clipBlockCooperatively(block, selectedIds, range, startId, endId, sliceGate);
382150
+ const clipped = await clipBlockCooperatively(block, ranges, sliceGate);
381868
382151
  if (clipped)
381869
382152
  out.push(clipped);
381870
382153
  await sliceGate();
@@ -381897,15 +382180,14 @@ async function selectBlockCooperatively(blocks, id, sliceGate) {
381897
382180
  }
381898
382181
  return null;
381899
382182
  }
381900
- async function clipBlockCooperatively(block, selectedIds, range, startId, endId, sliceGate) {
382183
+ async function clipBlockCooperatively(block, ranges, sliceGate) {
381901
382184
  const id = publicId(block);
381902
382185
  if (block.kind === "table") {
381903
382186
  let containsSelectedParagraph = false;
381904
382187
  for (const row of block.rows) {
381905
382188
  for (const cell of row.cells) {
381906
382189
  for (const child of cell.blocks) {
381907
- const childId = publicId(child);
381908
- if (childId != null && selectedIds.has(childId))
382190
+ if (sourceParagraphIds(child).some((id2) => ranges.has(id2)))
381909
382191
  containsSelectedParagraph = true;
381910
382192
  await sliceGate();
381911
382193
  }
@@ -381919,7 +382201,7 @@ async function clipBlockCooperatively(block, selectedIds, range, startId, endId,
381919
382201
  for (const cell of row.cells) {
381920
382202
  const children2 = [];
381921
382203
  for (const child of cell.blocks) {
381922
- const clipped = await clipBlockCooperatively(child, selectedIds, range, startId, endId, sliceGate);
382204
+ const clipped = await clipBlockCooperatively(child, ranges, sliceGate);
381923
382205
  if (clipped)
381924
382206
  children2.push(clipped);
381925
382207
  else if (child.identity.identity === "unavailable")
@@ -381933,20 +382215,26 @@ async function clipBlockCooperatively(block, selectedIds, range, startId, endId,
381933
382215
  }
381934
382216
  return { ...block, rows };
381935
382217
  }
381936
- if (!id || !selectedIds.has(id) || !("inlines" in block))
382218
+ if (!("inlines" in block) || !sourceParagraphIds(block).some((sourceId) => ranges.has(sourceId))) {
381937
382219
  return null;
381938
- let start = 0;
381939
- let end = Number.MAX_SAFE_INTEGER;
381940
- if (id === startId && range.start.kind === "text")
381941
- start = range.start.offset;
381942
- if (id === endId && range.end.kind === "text")
381943
- end = range.end.offset;
382220
+ }
381944
382221
  return {
381945
- ...block,
381946
- inlines: await clipInlinesCooperatively(block.inlines, start, end, sliceGate)
382222
+ ...withClippedBookmarks(block, ranges, id),
382223
+ inlines: await clipInlinesCooperatively(block.inlines, ranges, sliceGate)
381947
382224
  };
381948
382225
  }
381949
- async function clipInlinesCooperatively(inlines, start, end, sliceGate) {
382226
+ function withClippedBookmarks(block, ranges, blockId) {
382227
+ if (!block.bookmarks)
382228
+ return block;
382229
+ const { bookmarks, ...rest } = block;
382230
+ const kept = bookmarks.filter((bookmark) => {
382231
+ const sourceId = bookmark.blockId ?? blockId;
382232
+ const range = sourceId ? ranges.get(sourceId) : undefined;
382233
+ return range != null && range.start <= bookmark.offset && bookmark.offset < range.end;
382234
+ });
382235
+ return kept.length > 0 ? { ...rest, bookmarks: kept } : rest;
382236
+ }
382237
+ async function clipInlinesCooperatively(inlines, ranges, sliceGate) {
381950
382238
  const out = [];
381951
382239
  for (const inline of inlines) {
381952
382240
  const source = inline.source;
@@ -381954,6 +382242,12 @@ async function clipInlinesCooperatively(inlines, start, end, sliceGate) {
381954
382242
  await sliceGate();
381955
382243
  continue;
381956
382244
  }
382245
+ const range = ranges.get(source.blockId);
382246
+ if (!range) {
382247
+ await sliceGate();
382248
+ continue;
382249
+ }
382250
+ const { start, end } = range;
381957
382251
  if (source.start === source.end) {
381958
382252
  if (start <= source.start && source.start <= end) {
381959
382253
  throw new DocumentApiValidationError2("CAPABILITY_UNAVAILABLE", "Projection range cannot cross an atomic inline object.");
@@ -381991,10 +382285,10 @@ async function rangeCutsTableBoundaryCooperatively(blocks, selectedIds, sliceGat
381991
382285
  for (const row of block.rows) {
381992
382286
  for (const cell of row.cells) {
381993
382287
  for (const child of cell.blocks) {
381994
- const id = publicId(child);
381995
- if (id != null) {
382288
+ const ids = sourceParagraphIds(child);
382289
+ if (ids.length > 0) {
381996
382290
  paragraphCount += 1;
381997
- if (selectedIds.has(id))
382291
+ if (ids.some((id) => selectedIds.has(id)))
381998
382292
  selectedCount += 1;
381999
382293
  }
382000
382294
  await sliceGate();
@@ -382051,13 +382345,10 @@ function selectBlock(blocks, id) {
382051
382345
  }
382052
382346
  return null;
382053
382347
  }
382054
- function clipBlock(block, selectedIds, range, startId, endId) {
382348
+ function clipBlock(block, ranges) {
382055
382349
  const id = publicId(block);
382056
382350
  if (block.kind === "table") {
382057
- const containsSelectedParagraph = block.rows.some((row) => row.cells.some((cell) => cell.blocks.some((child) => {
382058
- const childId = publicId(child);
382059
- return childId != null && selectedIds.has(childId);
382060
- })));
382351
+ const containsSelectedParagraph = block.rows.some((row) => row.cells.some((cell) => cell.blocks.some((child) => sourceParagraphIds(child).some((id2) => ranges.has(id2)))));
382061
382352
  if (!containsSelectedParagraph)
382062
382353
  return null;
382063
382354
  return {
@@ -382067,29 +382358,31 @@ function clipBlock(block, selectedIds, range, startId, endId) {
382067
382358
  cells: row.cells.map((cell) => ({
382068
382359
  ...cell,
382069
382360
  blocks: cell.blocks.flatMap((child) => {
382070
- const clipped = clipBlock(child, selectedIds, range, startId, endId);
382361
+ const clipped = clipBlock(child, ranges);
382071
382362
  return clipped ? [clipped] : child.identity.identity === "unavailable" ? [child] : [];
382072
382363
  })
382073
382364
  }))
382074
382365
  }))
382075
382366
  };
382076
382367
  }
382077
- if (!id || !selectedIds.has(id) || !("inlines" in block))
382368
+ if (!("inlines" in block) || !sourceParagraphIds(block).some((sourceId) => ranges.has(sourceId))) {
382078
382369
  return null;
382079
- let start = 0;
382080
- let end = Number.MAX_SAFE_INTEGER;
382081
- if (id === startId && range.start.kind === "text")
382082
- start = range.start.offset;
382083
- if (id === endId && range.end.kind === "text")
382084
- end = range.end.offset;
382085
- return { ...block, inlines: clipInlines(block.inlines, start, end) };
382086
- }
382087
- function clipInlines(inlines, start, end) {
382370
+ }
382371
+ return {
382372
+ ...withClippedBookmarks(block, ranges, id),
382373
+ inlines: clipInlines(block.inlines, ranges)
382374
+ };
382375
+ }
382376
+ function clipInlines(inlines, ranges) {
382088
382377
  const out = [];
382089
382378
  for (const inline of inlines) {
382090
382379
  const source = inline.source;
382091
382380
  if (!source)
382092
382381
  continue;
382382
+ const range = ranges.get(source.blockId);
382383
+ if (!range)
382384
+ continue;
382385
+ const { start, end } = range;
382093
382386
  if (source.start === source.end) {
382094
382387
  if (start <= source.start && source.start <= end) {
382095
382388
  throw new DocumentApiValidationError2("CAPABILITY_UNAVAILABLE", "Projection range cannot cross an atomic inline object.");
@@ -382121,13 +382414,25 @@ function rangeCutsTableBoundary(blocks, selectedIds) {
382121
382414
  for (const block of blocks) {
382122
382415
  if (block.kind !== "table")
382123
382416
  continue;
382124
- const paragraphIds = block.rows.flatMap((row) => row.cells.flatMap((cell) => cell.blocks.map(publicId).filter((id) => id != null)));
382125
- const selectedCount = paragraphIds.filter((id) => selectedIds.has(id)).length;
382126
- if (selectedCount > 0 && selectedCount < paragraphIds.length)
382417
+ const paragraphs = block.rows.flatMap((row) => row.cells.flatMap((cell) => cell.blocks.map(sourceParagraphIds).filter((ids) => ids.length > 0)));
382418
+ const selectedCount = paragraphs.filter((ids) => ids.some((id) => selectedIds.has(id))).length;
382419
+ if (selectedCount > 0 && selectedCount < paragraphs.length)
382127
382420
  return true;
382128
382421
  }
382129
382422
  return false;
382130
382423
  }
382424
+ function sourceRangesForSelection(selectedIds, range) {
382425
+ return new Map([...selectedIds].map((id) => [id, {
382426
+ start: range.start.kind === "text" && range.start.blockId === id ? range.start.offset : 0,
382427
+ end: range.end.kind === "text" && range.end.blockId === id ? range.end.offset : Number.MAX_SAFE_INTEGER
382428
+ }]));
382429
+ }
382430
+ function sourceParagraphIds(block) {
382431
+ if ("inlines" in block && block.sourceBlockIds)
382432
+ return block.sourceBlockIds;
382433
+ const id = publicId(block);
382434
+ return id ? [id] : [];
382435
+ }
382131
382436
  function publicId(block) {
382132
382437
  return block.identity.identity === "public" ? block.identity.blockId : null;
382133
382438
  }
@@ -382151,7 +382456,8 @@ function createParagraphInlineMapTokenSource() {
382151
382456
  try {
382152
382457
  const model = parseParagraphInlineMap(input.paragraphXml);
382153
382458
  const tokens = [];
382154
- collectTokens(model.pieces, input, [], [], tokens);
382459
+ const bookmarks = [];
382460
+ collectTokens(model.pieces, input, [], [], tokens, bookmarks);
382155
382461
  const upstream = new Map;
382156
382462
  const downstream = new Map;
382157
382463
  for (const offset of input.visibleOffsets ?? []) {
@@ -382163,6 +382469,7 @@ function createParagraphInlineMapTokenSource() {
382163
382469
  }
382164
382470
  return {
382165
382471
  tokens,
382472
+ bookmarks,
382166
382473
  trackedLength: model.trackedLength,
382167
382474
  visibleOffsetsInTrackedSpace: { upstream, downstream }
382168
382475
  };
@@ -382212,10 +382519,10 @@ function collectLeaves2(pieces, out) {
382212
382519
  }
382213
382520
  }
382214
382521
  }
382215
- function collectTokens(pieces, input, containers, trackedWrappers, out) {
382522
+ function collectTokens(pieces, input, containers, trackedWrappers, out, bookmarks) {
382216
382523
  for (const piece of pieces) {
382217
382524
  if (piece.kind === "tracked") {
382218
- collectTokens(piece.children, input, containers, [...trackedWrappers, piece.trackedKind], out);
382525
+ collectTokens(piece.children, input, containers, [...trackedWrappers, piece.trackedKind], out, bookmarks);
382219
382526
  continue;
382220
382527
  }
382221
382528
  if (piece.kind === "container") {
@@ -382233,7 +382540,13 @@ function collectTokens(pieces, input, containers, trackedWrappers, out) {
382233
382540
  trackedWrappers
382234
382541
  });
382235
382542
  } else {
382236
- collectTokens(piece.children, input, nextContainers, trackedWrappers, out);
382543
+ collectTokens(piece.children, input, nextContainers, trackedWrappers, out, bookmarks);
382544
+ }
382545
+ continue;
382546
+ }
382547
+ if (piece.kind === "marker") {
382548
+ if (piece.markerKind === "bookmarkStart" && piece.name) {
382549
+ bookmarks.push({ name: piece.name, offset: piece.trackedStart, trackedWrappers });
382237
382550
  }
382238
382551
  continue;
382239
382552
  }
@@ -382510,6 +382823,7 @@ function visitProjectionParagraph(state, paragraph4) {
382510
382823
  tableInfo,
382511
382824
  diagnostics
382512
382825
  }));
382826
+ const bookmarks = standaloneHorizontalRule ? [] : tokenRead.bookmarks.filter((bookmark) => trackedWrappersAreEmitted(bookmark.trackedWrappers, reviewMode)).map((bookmark) => ({ name: bookmark.name, offset: bookmark.offset }));
382513
382827
  const blockDiagnostics = [];
382514
382828
  if (marker?.status === "unresolved") {
382515
382829
  blockDiagnostics.push(projectionDiagnostic({
@@ -382550,6 +382864,7 @@ function visitProjectionParagraph(state, paragraph4) {
382550
382864
  ...membership.changeSide ? { changeSide: membership.changeSide } : paragraphFormattingFacts.length > 0 && reviewMode === "redline" ? { changeSide: "formatting" } : {},
382551
382865
  ...presentation.headingLevel > 0 ? { headingLevel: presentation.headingLevel } : {},
382552
382866
  ...marker ? { marker } : {},
382867
+ ...bookmarks.length > 0 ? { bookmarks } : {},
382553
382868
  inlines: coalesceProjectionInlines(inlines),
382554
382869
  diagnostics: blockDiagnostics
382555
382870
  });
@@ -382600,7 +382915,14 @@ async function finishProjectionBuildCooperatively(state, sliceGate) {
382600
382915
  trackedLengths
382601
382916
  }, sliceGate);
382602
382917
  const sourceBlockIds = await projectionSourceBlockIdsCooperatively(paragraphOrder, tables2, sliceGate);
382603
- const blocks = await applyProjectionScopeCooperatively(wholeStoryBlocks, scopePlan, paragraphOrder, sourceBlockIds, sliceGate);
382918
+ const scopedBlocks = await applyProjectionScopeCooperatively(wholeStoryBlocks, scopePlan, paragraphOrder, sourceBlockIds, sliceGate);
382919
+ const linkSteps = resolveProjectionInternalLinkSteps(scopedBlocks, diagnostics, storyLocator);
382920
+ let linkStep = linkSteps.next();
382921
+ while (!linkStep.done) {
382922
+ await sliceGate();
382923
+ linkStep = linkSteps.next();
382924
+ }
382925
+ const blocks = linkStep.value;
382604
382926
  const staleReason = projectionStateStaleReason(state);
382605
382927
  if (staleReason) {
382606
382928
  return staleProjectionResult(packageRevision, currentPackageRevision(context), staleReason);
@@ -382701,8 +383023,9 @@ function* finishProjectionBuildSteps(state) {
382701
383023
  ]))
382702
383024
  });
382703
383025
  yield;
382704
- const blocks = applyProjectionScope(wholeStoryBlocks, scopePlan, paragraphOrder, projectionSourceBlockIds(paragraphOrder, tables2));
383026
+ const scopedBlocks = applyProjectionScope(wholeStoryBlocks, scopePlan, paragraphOrder, projectionSourceBlockIds(paragraphOrder, tables2));
382705
383027
  yield;
383028
+ const blocks = yield* resolveProjectionInternalLinkSteps(scopedBlocks, diagnostics, storyLocator);
382706
383029
  const staleReason = projectionStateStaleReason(state);
382707
383030
  if (staleReason)
382708
383031
  return staleProjectionResult(packageRevision, currentPackageRevision(context), staleReason);
@@ -383386,6 +383709,16 @@ async function createProjectionUtf8OffsetIndexCooperatively(xml, sliceGate) {
383386
383709
  function projectionKnownFragmentNamespaces(inheritedNamespaceBindings) {
383387
383710
  return { ...PROJECTION_FRAGMENT_NAMESPACES, ...inheritedNamespaceBindings };
383388
383711
  }
383712
+ function projectionLinkFieldClassification(instructionText) {
383713
+ const keyword = /^(HYPERLINK|REF|PAGEREF)(?:\s|$)/iu.exec(instructionText)?.[1]?.toUpperCase();
383714
+ if (keyword === "HYPERLINK")
383715
+ return "hyperlink";
383716
+ if (keyword === "REF")
383717
+ return "ref";
383718
+ if (keyword === "PAGEREF")
383719
+ return "pageRef";
383720
+ return null;
383721
+ }
383389
383722
 
383390
383723
  class SourceComplexFieldAccumulator {
383391
383724
  constructor(storyId) {
@@ -383437,7 +383770,7 @@ class SourceComplexFieldAccumulator {
383437
383770
  if (event.tag.isSelfClosing)
383438
383771
  return;
383439
383772
  const instructionText = event.tag.attributes.find((attribute2) => attribute2.namespaceUri === PROJECTION_WML_NAMESPACE && attribute2.localName === "instr")?.value.trim() ?? "";
383440
- if (!allowNewTopLevelFields || !/^HYPERLINK(?:\s|$)/iu.test(instructionText)) {
383773
+ if (!allowNewTopLevelFields || projectionLinkFieldClassification(instructionText) == null) {
383441
383774
  this.simpleStack.push(null);
383442
383775
  return;
383443
383776
  }
@@ -383510,7 +383843,7 @@ class SourceComplexFieldAccumulator {
383510
383843
  resultByteEnd,
383511
383844
  instructionText: frame.instructionText,
383512
383845
  resultText: "",
383513
- classification: "hyperlink",
383846
+ classification: projectionLinkFieldClassification(frame.instructionText),
383514
383847
  complete: true
383515
383848
  });
383516
383849
  return;
@@ -383541,7 +383874,8 @@ class SourceComplexFieldAccumulator {
383541
383874
  }
383542
383875
  publish(frame, resultByteEnd, fieldByteEnd, complete) {
383543
383876
  const instructionText = frame.instructionFragments.join("").trim();
383544
- if (!/^HYPERLINK(?:\s|$)/iu.test(instructionText))
383877
+ const classification = projectionLinkFieldClassification(instructionText);
383878
+ if (classification == null)
383545
383879
  return;
383546
383880
  const fieldNodeId = frame.paraId ? `fld:${frame.paraId}:complex:${frame.beginByteStart}` : `fld:${frame.beginByteStart}:complex:source`;
383547
383881
  this.fields.push({
@@ -383556,7 +383890,7 @@ class SourceComplexFieldAccumulator {
383556
383890
  resultByteEnd,
383557
383891
  instructionText,
383558
383892
  resultText: "",
383559
- classification: "hyperlink",
383893
+ classification,
383560
383894
  complete
383561
383895
  });
383562
383896
  }
@@ -383958,7 +384292,7 @@ function projectToken(input) {
383958
384292
  input.diagnostics.push(projectionDiagnostic({
383959
384293
  code: "projection-downgraded-construct",
383960
384294
  severity: "warning",
383961
- message: "Hyperlink text was preserved without an unsafe or unresolved target.",
384295
+ message: hyperlink.link ? "An unsupported reference field was preserved using its enclosing hyperlink." : "Hyperlink text was preserved without an unsafe or unresolved target.",
383962
384296
  construct: "hyperlink",
383963
384297
  disposition: "downgraded",
383964
384298
  lossy: true,
@@ -383995,11 +384329,12 @@ function projectToken(input) {
383995
384329
  if (!input.diagnostics.some((candidate2) => candidate2.code === diagnostic2.code && candidate2.source.blockId === diagnostic2.source.blockId && candidate2.source.range?.start === diagnostic2.source.range?.start && candidate2.source.range?.end === diagnostic2.source.range?.end))
383996
384330
  input.diagnostics.push(diagnostic2);
383997
384331
  }
384332
+ const referenceField = hyperlink && "classification" in hyperlink.descriptor && (hyperlink.descriptor.classification === "ref" || hyperlink.descriptor.classification === "pageRef");
383998
384333
  const base3 = {
383999
384334
  ...source ? { source } : {},
384000
384335
  marks: formatting.marks,
384001
384336
  ...hyperlink?.link ? { link: hyperlink.link } : {},
384002
- ...hyperlink?.reason ? { linkUnavailable: true } : {},
384337
+ ...hyperlink?.reason && !referenceField ? { linkUnavailable: true } : {},
384003
384338
  changeIds,
384004
384339
  commentIds,
384005
384340
  ...changeSideForTrackedWrappers(token.trackedWrappers) ? { changeSide: changeSideForTrackedWrappers(token.trackedWrappers) } : formattingFacts.length > 0 ? { changeSide: "formatting" } : {}
@@ -384115,6 +384450,7 @@ function applyParagraphBoundaryMerges(source, merges, diagnostics, story) {
384115
384450
  ...survivorWithoutParent,
384116
384451
  identity: survivor.identity,
384117
384452
  ...survivor.parentBlockId ? { parentBlockId: survivor.parentBlockId } : {},
384453
+ ...mergedParagraphSources(first, second),
384118
384454
  inlines: coalesceProjectionInlines([...first.inlines, ...second.inlines]),
384119
384455
  changeIds: uniqueSorted2([...first.changeIds, ...second.changeIds, merge2.reviewOwnerId]),
384120
384456
  commentIds: uniqueSorted2([...first.commentIds, ...second.commentIds]),
@@ -384123,6 +384459,18 @@ function applyParagraphBoundaryMerges(source, merges, diagnostics, story) {
384123
384459
  }
384124
384460
  return blocks;
384125
384461
  }
384462
+ function mergedParagraphSources(first, second) {
384463
+ const sourceBlockIds = [];
384464
+ const bookmarks = [];
384465
+ for (const block of [first, second]) {
384466
+ const blockId = block.identity.identity === "public" ? block.identity.blockId : undefined;
384467
+ sourceBlockIds.push(...block.sourceBlockIds ?? (blockId ? [blockId] : []));
384468
+ for (const bookmark of block.bookmarks ?? []) {
384469
+ bookmarks.push({ ...bookmark, ...blockId ? { blockId: bookmark.blockId ?? blockId } : {} });
384470
+ }
384471
+ }
384472
+ return { sourceBlockIds, ...bookmarks.length > 0 ? { bookmarks } : {} };
384473
+ }
384126
384474
  async function applyParagraphBoundaryMergesCooperatively(source, merges, diagnostics, story, sliceGate) {
384127
384475
  const blocks = new Map;
384128
384476
  for (const [blockId, block] of source) {
@@ -384166,6 +384514,7 @@ async function applyParagraphBoundaryMergesCooperatively(source, merges, diagnos
384166
384514
  ...survivorWithoutParent,
384167
384515
  identity: survivor.identity,
384168
384516
  ...survivor.parentBlockId ? { parentBlockId: survivor.parentBlockId } : {},
384517
+ ...mergedParagraphSources(first, second),
384169
384518
  inlines,
384170
384519
  changeIds,
384171
384520
  commentIds,
@@ -385087,6 +385436,7 @@ var init_build = __esm(() => {
385087
385436
  init_formatting();
385088
385437
  init_hyperlinks2();
385089
385438
  init_images2();
385439
+ init_internal_links();
385090
385440
  init_numbering2();
385091
385441
  init_review();
385092
385442
  init_scope();
@@ -385764,6 +386114,7 @@ function* writeBlockSteps(emitter, block, reviewMode, inlineTabText) {
385764
386114
  emitter.write(`<hr${flowChangeAttributes(block, reviewMode)}>`);
385765
386115
  } else if (block.kind === "codeBlock") {
385766
386116
  emitter.write(`<pre${flowChangeAttributes(block, reviewMode)}><code>`);
386117
+ writeBookmarkTargets(emitter, block);
385767
386118
  yield* writeInlineSteps(emitter, block.inlines, block, reviewMode, true, inlineTabText);
385768
386119
  emitter.write("</code></pre>");
385769
386120
  } else if (block.kind === "placeholder") {
@@ -385779,6 +386130,7 @@ function* writeBlockSteps(emitter, block, reviewMode, inlineTabText) {
385779
386130
  } else {
385780
386131
  const element = paragraphElement(block);
385781
386132
  emitter.write(`<${element.tag}${element.attributes}${flowChangeAttributes(block, reviewMode)}>`);
386133
+ writeBookmarkTargets(emitter, block);
385782
386134
  yield* writeInlineSteps(emitter, block.inlines, block, reviewMode, false, inlineTabText);
385783
386135
  emitter.write(`</${element.tag}>`);
385784
386136
  }
@@ -385819,6 +386171,7 @@ function* writeListSteps(emitter, blocks, reviewMode, inlineTabText) {
385819
386171
  const current = stack[stack.length - 1];
385820
386172
  const emission = emitter.beginBlock(block);
385821
386173
  emitter.write(`<li style="list-style-type:none"${structuralChangeAttributes(block, reviewMode)}>`);
386174
+ writeBookmarkTargets(emitter, block);
385822
386175
  writeListLabel(emitter, block, marker);
385823
386176
  yield* writeInlineSteps(emitter, block.inlines, block, reviewMode, false, inlineTabText);
385824
386177
  current.item = { emission, block };
@@ -385914,11 +386267,9 @@ function* writeInlineSteps(emitter, inlines, owner, reviewMode, suppressCodeMark
385914
386267
  const inline = inlines[index2];
385915
386268
  const changeStart = emitter.offset;
385916
386269
  const wrappers = openInlineChangeWrappers(emitter, inline, reviewMode);
385917
- const supportedLink = inline.link?.kind === "external" ? inline.link : undefined;
385918
- const linkUnavailable = inline.linkUnavailable === true || inline.link?.kind === "anchor";
385919
- if (supportedLink) {
385920
- emitter.write(`<a href="${escapeHtmlAttribute2(supportedLink.target)}">`);
385921
- }
386270
+ const linkUnavailable = inline.linkUnavailable === true;
386271
+ if (inline.link)
386272
+ emitter.write(`<a href="${escapeHtmlAttribute2(linkHref(inline.link))}">`);
385922
386273
  const marks = openMarks(emitter, inline, suppressCodeMark);
385923
386274
  if (inline.kind === "text") {
385924
386275
  yield* writeEscapedSourceTextSteps(emitter, inline.text, inline);
@@ -385964,14 +386315,14 @@ function* writeInlineSteps(emitter, inlines, owner, reviewMode, suppressCodeMark
385964
386315
  emitter.write("</span>");
385965
386316
  }
385966
386317
  closeMarks(emitter, marks);
385967
- if (supportedLink)
386318
+ if (inline.link)
385968
386319
  emitter.write("</a>");
385969
386320
  closeChangeWrappers(emitter, wrappers);
385970
386321
  if (wrappers.length > 0) {
385971
386322
  emitter.markChangeCarrier(inline.changeIds, changeStart, emitter.offset);
385972
386323
  }
385973
386324
  const next = inlines[index2 + 1];
385974
- const nextLinkUnavailable = next?.linkUnavailable === true || next?.link?.kind === "anchor";
386325
+ const nextLinkUnavailable = next?.linkUnavailable === true;
385975
386326
  if (linkUnavailable && !nextLinkUnavailable) {
385976
386327
  emitter.write('<span data-superdoc-placeholder="hyperlink-unresolved">');
385977
386328
  emitter.writeSyntheticText({
@@ -386122,6 +386473,16 @@ function paragraphElement(block) {
386122
386473
  }
386123
386474
  return { tag: "p", attributes: "" };
386124
386475
  }
386476
+ function linkHref(link) {
386477
+ return link.kind === "anchor" ? `#${link.target}` : link.target;
386478
+ }
386479
+ function writeBookmarkTargets(emitter, block) {
386480
+ for (const bookmark of block.bookmarks ?? []) {
386481
+ if (!bookmark.anchorId)
386482
+ continue;
386483
+ emitter.write(`<a id="${escapeHtmlAttribute2(bookmark.anchorId)}"></a>`);
386484
+ }
386485
+ }
386125
386486
  function listTag(marker) {
386126
386487
  return marker.kind === "unordered" ? "ul" : "ol";
386127
386488
  }
@@ -386369,7 +386730,7 @@ function requiresRawHtmlBlock(block, reviewMode) {
386369
386730
  return true;
386370
386731
  if (reviewMode === "redline" && block.changeSide != null)
386371
386732
  return true;
386372
- if (block.kind === "codeBlock" && block.inlines.some((inline) => codeBlockInlineRequiresRawHtml(inline, reviewMode))) {
386733
+ if (block.kind === "codeBlock" && (block.inlines.some((inline) => codeBlockInlineRequiresRawHtml(inline, reviewMode)) || block.bookmarks?.some((bookmark) => bookmark.anchorId != null))) {
386373
386734
  return true;
386374
386735
  }
386375
386736
  if (block.kind === "table")
@@ -386585,13 +386946,15 @@ function* writeNativeTableRowSteps(context, row) {
386585
386946
  context.emitter.endBlock(emission);
386586
386947
  }
386587
386948
  function* writeMarkdownInlineSteps(context, inlines, owner, suppressCodeMark) {
386949
+ if ("inlines" in owner)
386950
+ writeBookmarkTargets(context.emitter, owner);
386588
386951
  for (let index2 = 0;index2 < inlines.length; index2 += 1) {
386589
386952
  const inline = inlines[index2];
386590
386953
  const changeStart = context.emitter.offset;
386591
386954
  const changeTags = openInlineChangeWrappers2(context, inline);
386592
- const supportedLink = inline.link?.kind === "external" ? inline.link : undefined;
386593
- const linkUnavailable = inline.linkUnavailable === true || inline.link?.kind === "anchor";
386594
- if (supportedLink)
386955
+ const link = inline.link;
386956
+ const linkUnavailable = inline.linkUnavailable === true;
386957
+ if (link)
386595
386958
  context.emitter.write("[");
386596
386959
  const htmlFallbacks = markHtmlFallbacks(inlines, index2);
386597
386960
  const codeMark = yield* resolveCodeMarkSteps(inline, suppressCodeMark, htmlFallbacks.code);
@@ -386636,15 +386999,14 @@ function* writeMarkdownInlineSteps(context, inlines, owner, suppressCodeMark) {
386636
386999
  context.emitter.write("</span>");
386637
387000
  }
386638
387001
  closeMarkdownMarks(context.emitter, marks);
386639
- if (supportedLink) {
386640
- context.emitter.write(`](${escapeMarkdownLinkDestination(supportedLink.target)})`);
386641
- }
387002
+ if (link)
387003
+ context.emitter.write(`](${escapeMarkdownLinkDestination(linkHref(link))})`);
386642
387004
  closeInlineChangeWrappers(context.emitter, changeTags);
386643
387005
  if (changeTags.length > 0) {
386644
387006
  context.emitter.markChangeCarrier(inline.changeIds, changeStart, context.emitter.offset);
386645
387007
  }
386646
387008
  const next = inlines[index2 + 1];
386647
- const nextLinkUnavailable = next?.linkUnavailable === true || next?.link?.kind === "anchor";
387009
+ const nextLinkUnavailable = next?.linkUnavailable === true;
386648
387010
  if (linkUnavailable && !nextLinkUnavailable) {
386649
387011
  context.emitter.write('<span data-superdoc-placeholder="hyperlink-unresolved">');
386650
387012
  context.emitter.writeSyntheticText({
@@ -420054,7 +420416,7 @@ var init_capability_matrix = __esm(() => {
420054
420416
  });
420055
420417
  });
420056
420418
 
420057
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/map.js
420419
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/map.js
420058
420420
  var create = () => new Map, copy = (m) => {
420059
420421
  const r = create();
420060
420422
  m.forEach((v, k) => {
@@ -420076,10 +420438,10 @@ var create = () => new Map, copy = (m) => {
420076
420438
  return false;
420077
420439
  };
420078
420440
 
420079
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/set.js
420441
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/set.js
420080
420442
  var create2 = () => new Set;
420081
420443
 
420082
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/array.js
420444
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/array.js
420083
420445
  var last = (arr) => arr[arr.length - 1], appendTo = (dest, src) => {
420084
420446
  for (let i2 = 0;i2 < src.length; i2++) {
420085
420447
  dest.push(src[i2]);
@@ -420097,7 +420459,7 @@ var init_array2 = __esm(() => {
420097
420459
  isArray = Array.isArray;
420098
420460
  });
420099
420461
 
420100
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/observable.js
420462
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/observable.js
420101
420463
  class ObservableV2 {
420102
420464
  constructor() {
420103
420465
  this._observers = create();
@@ -420164,7 +420526,7 @@ var init_observable = __esm(() => {
420164
420526
  init_array2();
420165
420527
  });
420166
420528
 
420167
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/math.js
420529
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/math.js
420168
420530
  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;
420169
420531
  var init_math = __esm(() => {
420170
420532
  floor = Math.floor;
@@ -420172,7 +420534,7 @@ var init_math = __esm(() => {
420172
420534
  pow = Math.pow;
420173
420535
  });
420174
420536
 
420175
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/binary.js
420537
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/binary.js
420176
420538
  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;
420177
420539
  var init_binary = __esm(() => {
420178
420540
  BIT18 = 1 << 17;
@@ -420206,7 +420568,7 @@ var init_binary = __esm(() => {
420206
420568
  BITS30 = BIT31 - 1;
420207
420569
  });
420208
420570
 
420209
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/number.js
420571
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/number.js
420210
420572
  var MAX_SAFE_INTEGER, MIN_SAFE_INTEGER, LOWEST_INT32, isInteger2;
420211
420573
  var init_number2 = __esm(() => {
420212
420574
  init_math();
@@ -420216,7 +420578,7 @@ var init_number2 = __esm(() => {
420216
420578
  isInteger2 = Number.isInteger || ((num) => typeof num === "number" && isFinite(num) && floor(num) === num);
420217
420579
  });
420218
420580
 
420219
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/string.js
420581
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/string.js
420220
420582
  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) => {
420221
420583
  const encodedString = unescape(encodeURIComponent(str));
420222
420584
  const len = encodedString.length;
@@ -420240,7 +420602,7 @@ var init_string2 = __esm(() => {
420240
420602
  }
420241
420603
  });
420242
420604
 
420243
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/encoding.js
420605
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/encoding.js
420244
420606
  class Encoder {
420245
420607
  constructor() {
420246
420608
  this.cpos = 0;
@@ -420506,14 +420868,14 @@ var init_encoding = __esm(() => {
420506
420868
  };
420507
420869
  });
420508
420870
 
420509
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/error.js
420871
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/error.js
420510
420872
  var create3 = (s) => new Error(s), methodUnimplemented = () => {
420511
420873
  throw create3("Method unimplemented");
420512
420874
  }, unexpectedCase = () => {
420513
420875
  throw create3("Unexpected case");
420514
420876
  };
420515
420877
 
420516
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/decoding.js
420878
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/decoding.js
420517
420879
  class Decoder {
420518
420880
  constructor(uint8Array) {
420519
420881
  this.arr = uint8Array;
@@ -420704,7 +421066,7 @@ var init_decoding = __esm(() => {
420704
421066
  };
420705
421067
  });
420706
421068
 
420707
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/webcrypto.node.js
421069
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/webcrypto.node.js
420708
421070
  import { webcrypto } from "node:crypto";
420709
421071
  var subtle, getRandomValues;
420710
421072
  var init_webcrypto_node = __esm(() => {
@@ -420712,29 +421074,29 @@ var init_webcrypto_node = __esm(() => {
420712
421074
  getRandomValues = webcrypto.getRandomValues.bind(webcrypto);
420713
421075
  });
420714
421076
 
420715
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/random.js
421077
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/random.js
420716
421078
  var uint322 = () => getRandomValues(new Uint32Array(1))[0], uuidv4Template, uuidv42 = () => uuidv4Template.replace(/[018]/g, (c) => (c ^ uint322() & 15 >> c / 4).toString(16));
420717
421079
  var init_random = __esm(() => {
420718
421080
  init_webcrypto_node();
420719
421081
  uuidv4Template = [1e7] + -1000 + -4000 + -8000 + -100000000000;
420720
421082
  });
420721
421083
 
420722
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/time.js
421084
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/time.js
420723
421085
  var getUnixTime;
420724
421086
  var init_time = __esm(() => {
420725
421087
  getUnixTime = Date.now;
420726
421088
  });
420727
421089
 
420728
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/promise.js
421090
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/promise.js
420729
421091
  var create4 = (f) => new Promise(f), all2;
420730
421092
  var init_promise2 = __esm(() => {
420731
421093
  all2 = Promise.all.bind(Promise);
420732
421094
  });
420733
421095
 
420734
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/conditions.js
421096
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/conditions.js
420735
421097
  var undefinedToNull = (v) => v === undefined ? null : v;
420736
421098
 
420737
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/storage.js
421099
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/storage.js
420738
421100
  class VarStoragePolyfill {
420739
421101
  constructor() {
420740
421102
  this.map = new Map;
@@ -420758,13 +421120,13 @@ var init_storage = __esm(() => {
420758
421120
  varStorage = _localStorage;
420759
421121
  });
420760
421122
 
420761
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/trait/equality.js
421123
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/trait/equality.js
420762
421124
  var EqualityTraitSymbol, equals = (a, b) => a === b || !!a?.[EqualityTraitSymbol]?.(b) || false;
420763
421125
  var init_equality = __esm(() => {
420764
421126
  EqualityTraitSymbol = Symbol("Equality");
420765
421127
  });
420766
421128
 
420767
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/object.js
421129
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/object.js
420768
421130
  var assign, keys, forEach = (obj, f) => {
420769
421131
  for (const key2 in obj) {
420770
421132
  f(obj[key2], key2);
@@ -420803,7 +421165,7 @@ var init_object2 = __esm(() => {
420803
421165
  freeze = Object.freeze;
420804
421166
  });
420805
421167
 
420806
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/function.js
421168
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/function.js
420807
421169
  var callAll = (fs, args, i2 = 0) => {
420808
421170
  try {
420809
421171
  for (;i2 < fs.length; i2++) {
@@ -420892,7 +421254,7 @@ var init_function = __esm(() => {
420892
421254
  init_equality();
420893
421255
  });
420894
421256
 
420895
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/environment.js
421257
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/environment.js
420896
421258
  var isNode, isBrowser, isMac, params, args, computeParams = () => {
420897
421259
  if (params === undefined) {
420898
421260
  if (isNode) {
@@ -420946,7 +421308,7 @@ var init_environment = __esm(() => {
420946
421308
  supportsColor = forceColor || !hasParam2("--no-colors") && !hasConf("no-color") && (!isNode || process.stdout.isTTY) && (!isNode || hasParam2("--color") || getVariable("COLORTERM") !== null || (getVariable("TERM") || "").includes("color"));
420947
421309
  });
420948
421310
 
420949
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/buffer.js
421311
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/buffer.js
420950
421312
  var createUint8ArrayFromLen = (len) => new Uint8Array(len), createUint8ArrayViewFromArrayBuffer = (buffer, byteOffset, length2) => new Uint8Array(buffer, byteOffset, length2), createUint8ArrayFromArrayBuffer = (buffer) => new Uint8Array(buffer), toBase64Browser = (bytes) => {
420951
421313
  let s = "";
420952
421314
  for (let i2 = 0;i2 < bytes.byteLength; i2++) {
@@ -420975,13 +421337,13 @@ var init_buffer = __esm(() => {
420975
421337
  fromBase64 = isBrowser ? fromBase64Browser : fromBase64Node;
420976
421338
  });
420977
421339
 
420978
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/symbol.js
421340
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/symbol.js
420979
421341
  var create5;
420980
421342
  var init_symbol = __esm(() => {
420981
421343
  create5 = Symbol;
420982
421344
  });
420983
421345
 
420984
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/logging.common.js
421346
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/logging.common.js
420985
421347
  var BOLD, UNBOLD, BLUE, GREY, GREEN, RED, PURPLE, ORANGE, UNCOLOR, computeNoColorLoggingArgs = (args2) => {
420986
421348
  if (args2.length === 1 && args2[0]?.constructor === Function) {
420987
421349
  args2 = args2[0]();
@@ -421025,7 +421387,7 @@ var init_logging_common = __esm(() => {
421025
421387
  lastLoggingTime = getUnixTime();
421026
421388
  });
421027
421389
 
421028
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/logging.node.js
421390
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/logging.node.js
421029
421391
  var _nodeStyleMap, computeNodeLoggingArgs = (args2) => {
421030
421392
  if (args2.length === 1 && args2[0]?.constructor === Function) {
421031
421393
  args2 = args2[0]();
@@ -421082,7 +421444,7 @@ var init_logging_node = __esm(() => {
421082
421444
  computeLoggingArgs = supportsColor ? computeNodeLoggingArgs : computeNoColorLoggingArgs;
421083
421445
  });
421084
421446
 
421085
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/iterator.js
421447
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/iterator.js
421086
421448
  var createIterator = (next) => ({
421087
421449
  [Symbol.iterator]() {
421088
421450
  return this;
@@ -421099,7 +421461,7 @@ var createIterator = (next) => ({
421099
421461
  return { done, value: done ? undefined : fmap(value2) };
421100
421462
  });
421101
421463
 
421102
- // ../../node_modules/.pnpm/yjs@13.6.31/node_modules/yjs/dist/yjs.mjs
421464
+ // ../../../v2/node_modules/.pnpm/yjs@13.6.31/node_modules/yjs/dist/yjs.mjs
421103
421465
  class DeleteItem {
421104
421466
  constructor(clock, len) {
421105
421467
  this.clock = clock;
@@ -425842,7 +426204,7 @@ var init_yjs = __esm(() => {
425842
426204
  glo[importIdentifier] = true;
425843
426205
  });
425844
426206
 
425845
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/broadcastchannel.js
426207
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/broadcastchannel.js
425846
426208
  class LocalStoragePolyfill {
425847
426209
  constructor(room) {
425848
426210
  this.room = room;
@@ -425888,7 +426250,7 @@ var init_broadcastchannel = __esm(() => {
425888
426250
  BC = typeof BroadcastChannel === "undefined" ? LocalStoragePolyfill : BroadcastChannel;
425889
426251
  });
425890
426252
 
425891
- // ../../node_modules/.pnpm/y-protocols@1.0.7_yjs@13.6.31/node_modules/y-protocols/sync.js
426253
+ // ../../../v2/node_modules/.pnpm/y-protocols@1.0.7_yjs@13.6.31/node_modules/y-protocols/sync.js
425892
426254
  var messageYjsSyncStep1 = 0, messageYjsSyncStep2 = 1, messageYjsUpdate = 2, writeSyncStep1 = (encoder3, doc2) => {
425893
426255
  writeVarUint(encoder3, messageYjsSyncStep1);
425894
426256
  const sv = encodeStateVector(doc2);
@@ -425931,7 +426293,7 @@ var init_sync = __esm(() => {
425931
426293
  readUpdate = readSyncStep2;
425932
426294
  });
425933
426295
 
425934
- // ../../node_modules/.pnpm/y-protocols@1.0.7_yjs@13.6.31/node_modules/y-protocols/auth.js
426296
+ // ../../../v2/node_modules/.pnpm/y-protocols@1.0.7_yjs@13.6.31/node_modules/y-protocols/auth.js
425935
426297
  var messagePermissionDenied = 0, readAuthMessage = (decoder10, y, permissionDeniedHandler) => {
425936
426298
  switch (readVarUint(decoder10)) {
425937
426299
  case messagePermissionDenied:
@@ -425942,7 +426304,7 @@ var init_auth = __esm(() => {
425942
426304
  init_decoding();
425943
426305
  });
425944
426306
 
425945
- // ../../node_modules/.pnpm/y-protocols@1.0.7_yjs@13.6.31/node_modules/y-protocols/awareness.js
426307
+ // ../../../v2/node_modules/.pnpm/y-protocols@1.0.7_yjs@13.6.31/node_modules/y-protocols/awareness.js
425946
426308
  var outdatedTimeout = 30000, Awareness, removeAwarenessStates = (awareness, clients, origin) => {
425947
426309
  const removed = [];
425948
426310
  for (let i2 = 0;i2 < clients.length; i2++) {
@@ -426125,13 +426487,13 @@ var init_awareness = __esm(() => {
426125
426487
  };
426126
426488
  });
426127
426489
 
426128
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/url.js
426490
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/url.js
426129
426491
  var encodeQueryParams = (params2) => map3(params2, (val, key2) => `${encodeURIComponent(key2)}=${encodeURIComponent(val)}`).join("&");
426130
426492
  var init_url = __esm(() => {
426131
426493
  init_object2();
426132
426494
  });
426133
426495
 
426134
- // ../../node_modules/.pnpm/y-websocket@3.0.0_yjs@13.6.31/node_modules/y-websocket/src/y-websocket.js
426496
+ // ../../../v2/node_modules/.pnpm/y-websocket@3.0.0_yjs@13.6.31/node_modules/y-websocket/src/y-websocket.js
426135
426497
  var messageSync = 0, messageQueryAwareness = 3, messageAwareness = 1, messageAuth = 2, messageHandlers, messageReconnectTimeout = 30000, permissionDeniedHandler = (provider, reason) => console.warn(`Permission denied to access ${provider.url}.
426136
426498
  ${reason}`), readMessage = (provider, buf, emitSynced) => {
426137
426499
  const decoder10 = createDecoder(buf);
@@ -426924,7 +427286,7 @@ var init_y_websocket_single_doc = __esm(() => {
426924
427286
  init_runtime4();
426925
427287
  });
426926
427288
 
426927
- // ../../node_modules/.pnpm/@hocuspocus+common@2.15.3/node_modules/@hocuspocus/common/dist/hocuspocus-common.esm.js
427289
+ // ../../../v2/node_modules/.pnpm/@hocuspocus+common@2.15.3/node_modules/@hocuspocus/common/dist/hocuspocus-common.esm.js
426928
427290
  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) => {
426929
427291
  const encodedString = unescape(encodeURIComponent(str));
426930
427292
  const len = encodedString.length;
@@ -427083,7 +427445,7 @@ var init_hocuspocus_common_esm = __esm(() => {
427083
427445
  })(WsReadyStates || (WsReadyStates = {}));
427084
427446
  });
427085
427447
 
427086
- // ../../node_modules/.pnpm/@lifeomic+attempt@3.1.0/node_modules/@lifeomic/attempt/dist/src/index.js
427448
+ // ../../../v2/node_modules/.pnpm/@lifeomic+attempt@3.1.0/node_modules/@lifeomic/attempt/dist/src/index.js
427087
427449
  var require_src2 = __commonJS((exports) => {
427088
427450
  Object.defineProperty(exports, "__esModule", { value: true });
427089
427451
  exports.retry = exports.defaultCalculateDelay = exports.sleep = undefined;
@@ -427228,7 +427590,7 @@ var require_src2 = __commonJS((exports) => {
427228
427590
  exports.retry = retry;
427229
427591
  });
427230
427592
 
427231
- // ../../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
427593
+ // ../../../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
427232
427594
  class VarStoragePolyfill2 {
427233
427595
  constructor() {
427234
427596
  this.map = new Map;
@@ -429011,7 +429373,7 @@ var init_hocuspocus_single_doc = __esm(() => {
429011
429373
  };
429012
429374
  });
429013
429375
 
429014
- // ../../node_modules/.pnpm/@liveblocks+core@3.15.5_@types+json-schema@7.0.15/node_modules/@liveblocks/core/dist/index.js
429376
+ // ../../../v2/node_modules/.pnpm/@liveblocks+core@3.15.5_@types+json-schema@7.0.15/node_modules/@liveblocks/core/dist/index.js
429015
429377
  function error48(msg) {
429016
429378
  if (false) {} else {
429017
429379
  throw new Error(msg);
@@ -437983,7 +438345,7 @@ var init_dist6 = __esm(() => {
437983
438345
  detectDupes(PKG_NAME, PKG_VERSION, PKG_FORMAT);
437984
438346
  });
437985
438347
 
437986
- // ../../node_modules/.pnpm/@liveblocks+client@3.15.5_@types+json-schema@7.0.15/node_modules/@liveblocks/client/dist/index.js
438348
+ // ../../../v2/node_modules/.pnpm/@liveblocks+client@3.15.5_@types+json-schema@7.0.15/node_modules/@liveblocks/client/dist/index.js
437987
438349
  var PKG_NAME2 = "@liveblocks/client", PKG_VERSION2 = "3.15.5", PKG_FORMAT2 = "esm";
437988
438350
  var init_dist7 = __esm(() => {
437989
438351
  init_dist6();
@@ -437991,7 +438353,7 @@ var init_dist7 = __esm(() => {
437991
438353
  detectDupes(PKG_NAME2, PKG_VERSION2, PKG_FORMAT2);
437992
438354
  });
437993
438355
 
437994
- // ../../node_modules/.pnpm/js-base64@3.7.8/node_modules/js-base64/base64.mjs
438356
+ // ../../../v2/node_modules/.pnpm/js-base64@3.7.8/node_modules/js-base64/base64.mjs
437995
438357
  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) => {
437996
438358
  let u32, c0, c1, c2, asc = "";
437997
438359
  const pad = bin.length % 3;
@@ -438135,7 +438497,7 @@ var init_base64 = __esm(() => {
438135
438497
  };
438136
438498
  });
438137
438499
 
438138
- // ../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/indexeddb.js
438500
+ // ../../../v2/node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/indexeddb.js
438139
438501
  var rtop = (request) => create4((resolve2, reject2) => {
438140
438502
  request.onerror = (event) => reject2(new Error(event.target.error));
438141
438503
  request.onsuccess = (event) => resolve2(event.target.result);
@@ -438173,7 +438535,7 @@ var init_indexeddb = __esm(() => {
438173
438535
  init_promise2();
438174
438536
  });
438175
438537
 
438176
- // ../../node_modules/.pnpm/y-indexeddb@9.0.12_yjs@13.6.31/node_modules/y-indexeddb/src/y-indexeddb.js
438538
+ // ../../../v2/node_modules/.pnpm/y-indexeddb@9.0.12_yjs@13.6.31/node_modules/y-indexeddb/src/y-indexeddb.js
438177
438539
  var customStoreName = "custom", updatesStoreName = "updates", PREFERRED_TRIM_SIZE = 500, fetchUpdates = (idbPersistence, beforeApplyUpdatesCallback = () => {}, afterApplyUpdatesCallback = () => {}) => {
438178
438540
  const [updatesStore] = transact2(idbPersistence.db, [updatesStoreName]);
438179
438541
  return getAll(updatesStore, createIDBKeyRangeLowerBound(idbPersistence._dbref, false)).then((updates) => {
@@ -438285,7 +438647,7 @@ var init_y_indexeddb = __esm(() => {
438285
438647
  };
438286
438648
  });
438287
438649
 
438288
- // ../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/utils.js
438650
+ // ../../../v2/node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/utils.js
438289
438651
  function isBytes(a) {
438290
438652
  return a instanceof Uint8Array || ArrayBuffer.isView(a) && a.constructor.name === "Uint8Array";
438291
438653
  }
@@ -438345,7 +438707,7 @@ var init_utils = __esm(() => {
438345
438707
  /*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
438346
438708
  });
438347
438709
 
438348
- // ../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/_md.js
438710
+ // ../../../v2/node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/_md.js
438349
438711
  function setBigUint64(view, byteOffset, value2, isLE) {
438350
438712
  if (typeof view.setBigUint64 === "function")
438351
438713
  return view.setBigUint64(byteOffset, value2, isLE);
@@ -438469,7 +438831,7 @@ var init__md = __esm(() => {
438469
438831
  ]);
438470
438832
  });
438471
438833
 
438472
- // ../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/sha2.js
438834
+ // ../../../v2/node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/sha2.js
438473
438835
  var SHA256_K, SHA256_W, SHA256, sha256;
438474
438836
  var init_sha2 = __esm(() => {
438475
438837
  init__md();
@@ -438613,7 +438975,7 @@ var init_sha2 = __esm(() => {
438613
438975
  sha256 = /* @__PURE__ */ createHasher(() => new SHA256);
438614
438976
  });
438615
438977
 
438616
- // ../../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
438978
+ // ../../../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
438617
438979
  var PKG_NAME3 = "@liveblocks/yjs", PKG_VERSION3 = "3.15.5", PKG_FORMAT3 = "esm", create9 = () => /* @__PURE__ */ new Map, setIfUndefined3 = (map5, key2, createT) => {
438618
438980
  let set3 = map5.get(key2);
438619
438981
  if (set3 === undefined) {
@@ -457384,14 +457746,22 @@ function collectPackageParts(registry3, options) {
457384
457746
  for (const handle of registry3.listPackageParts()) {
457385
457747
  if (shardKindOf(handle) !== PACKAGE_PART_KIND.settings)
457386
457748
  continue;
457387
- const settings = readSettings(shardReadTarget(handle));
457388
457749
  const partUri = ownerPartUri(handle) || "/word/settings.xml";
457389
- const bootstrap = handle.bootstrap;
457390
- const pairedPartKeys = pairedPartKeysOf(handle);
457391
- const useBootstrapSourceXml = options.initialProjection && !options.explicitDirtyAll && !options.explicitDirtyShardIds.has(handle.shardId) && typeof bootstrap?.sourceXml === "string" && bootstrap.sourceXml.length > 0;
457392
457750
  if (seenPartUris.has(partUri))
457393
457751
  continue;
457394
457752
  seenPartUris.add(partUri);
457753
+ const previous3 = previousByUri.get(partUri);
457754
+ if (previous3 && !options.explicitDirtyAll && !options.explicitDirtyShardIds.has(handle.shardId)) {
457755
+ out.push(previous3);
457756
+ const previousWebSettings = previousByUri.get("/word/webSettings.xml");
457757
+ if (previousWebSettings)
457758
+ out.push(previousWebSettings);
457759
+ continue;
457760
+ }
457761
+ const settings = readSettings(shardReadTarget(handle));
457762
+ const bootstrap = handle.bootstrap;
457763
+ const pairedPartKeys = pairedPartKeysOf(handle);
457764
+ const useBootstrapSourceXml = options.initialProjection && !options.explicitDirtyAll && !options.explicitDirtyShardIds.has(handle.shardId) && typeof bootstrap?.sourceXml === "string" && bootstrap.sourceXml.length > 0;
457395
457765
  out.push({
457396
457766
  partUri,
457397
457767
  contentType: "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml",