@superdoc-dev/cli 0.2.0-next.3 → 0.2.0-next.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +332 -304
  2. package/package.json +8 -8
package/dist/index.js CHANGED
@@ -534,19 +534,12 @@ function mutationOperation(options) {
534
534
  function projectFromDefinitions(fn) {
535
535
  return Object.fromEntries(OPERATION_IDS.map((id) => [id, fn(id, OPERATION_DEFINITIONS[id])]));
536
536
  }
537
- var NONE_FAILURES, NONE_THROWS, T_NOT_FOUND, T_NOT_FOUND_COMMAND, T_NOT_FOUND_TRACKED, T_NOT_FOUND_COMMAND_TRACKED, T_PLAN_ENGINE, T_QUERY_MATCH, OPERATION_DEFINITIONS, OPERATION_IDS, SINGLETON_OPERATION_IDS, NAMESPACED_OPERATION_IDS;
537
+ var NONE_FAILURES, NONE_THROWS, T_NOT_FOUND, T_NOT_FOUND_CAPABLE, T_PLAN_ENGINE, T_QUERY_MATCH, OPERATION_DEFINITIONS, OPERATION_IDS, SINGLETON_OPERATION_IDS, NAMESPACED_OPERATION_IDS;
538
538
  var init_operation_definitions = __esm(() => {
539
539
  NONE_FAILURES = [];
540
540
  NONE_THROWS = [];
541
541
  T_NOT_FOUND = ["TARGET_NOT_FOUND"];
542
- T_NOT_FOUND_COMMAND = ["TARGET_NOT_FOUND", "COMMAND_UNAVAILABLE", "CAPABILITY_UNAVAILABLE"];
543
- T_NOT_FOUND_TRACKED = ["TARGET_NOT_FOUND", "TRACK_CHANGE_COMMAND_UNAVAILABLE", "CAPABILITY_UNAVAILABLE"];
544
- T_NOT_FOUND_COMMAND_TRACKED = [
545
- "TARGET_NOT_FOUND",
546
- "COMMAND_UNAVAILABLE",
547
- "TRACK_CHANGE_COMMAND_UNAVAILABLE",
548
- "CAPABILITY_UNAVAILABLE"
549
- ];
542
+ T_NOT_FOUND_CAPABLE = ["TARGET_NOT_FOUND", "CAPABILITY_UNAVAILABLE"];
550
543
  T_PLAN_ENGINE = [
551
544
  "REVISION_MISMATCH",
552
545
  "MATCH_NOT_FOUND",
@@ -569,6 +562,7 @@ var init_operation_definitions = __esm(() => {
569
562
  requiresDocumentContext: true,
570
563
  metadata: readOperation({
571
564
  idempotency: "idempotent",
565
+ throws: ["CAPABILITY_UNAVAILABLE", "INVALID_INPUT"],
572
566
  deterministicTargetResolution: false
573
567
  }),
574
568
  referenceDocPath: "find.mdx",
@@ -621,7 +615,7 @@ var init_operation_definitions = __esm(() => {
621
615
  supportsDryRun: true,
622
616
  supportsTrackedMode: true,
623
617
  possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
624
- throws: [...T_NOT_FOUND_TRACKED, "INVALID_TARGET"]
618
+ throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
625
619
  }),
626
620
  referenceDocPath: "insert.mdx",
627
621
  referenceGroup: "core"
@@ -635,7 +629,7 @@ var init_operation_definitions = __esm(() => {
635
629
  supportsDryRun: true,
636
630
  supportsTrackedMode: true,
637
631
  possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
638
- throws: [...T_NOT_FOUND_TRACKED, "INVALID_TARGET"]
632
+ throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
639
633
  }),
640
634
  referenceDocPath: "replace.mdx",
641
635
  referenceGroup: "core"
@@ -649,7 +643,7 @@ var init_operation_definitions = __esm(() => {
649
643
  supportsDryRun: true,
650
644
  supportsTrackedMode: true,
651
645
  possibleFailureCodes: ["NO_OP"],
652
- throws: [...T_NOT_FOUND_TRACKED, "INVALID_TARGET"]
646
+ throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
653
647
  }),
654
648
  referenceDocPath: "delete.mdx",
655
649
  referenceGroup: "core"
@@ -663,7 +657,7 @@ var init_operation_definitions = __esm(() => {
663
657
  supportsDryRun: true,
664
658
  supportsTrackedMode: true,
665
659
  possibleFailureCodes: ["INVALID_TARGET"],
666
- throws: [...T_NOT_FOUND_COMMAND_TRACKED, "INVALID_TARGET", "INVALID_INPUT"]
660
+ throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET", "INVALID_INPUT"]
667
661
  }),
668
662
  referenceDocPath: "format/apply.mdx",
669
663
  referenceGroup: "format"
@@ -677,7 +671,7 @@ var init_operation_definitions = __esm(() => {
677
671
  supportsDryRun: true,
678
672
  supportsTrackedMode: true,
679
673
  possibleFailureCodes: ["INVALID_TARGET"],
680
- throws: [...T_NOT_FOUND_COMMAND_TRACKED, "INVALID_TARGET", "AMBIGUOUS_TARGET"]
674
+ throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET", "AMBIGUOUS_TARGET"]
681
675
  }),
682
676
  referenceDocPath: "create/paragraph.mdx",
683
677
  referenceGroup: "create"
@@ -691,7 +685,7 @@ var init_operation_definitions = __esm(() => {
691
685
  supportsDryRun: true,
692
686
  supportsTrackedMode: true,
693
687
  possibleFailureCodes: ["INVALID_TARGET"],
694
- throws: [...T_NOT_FOUND_COMMAND_TRACKED, "INVALID_TARGET", "AMBIGUOUS_TARGET"]
688
+ throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET", "AMBIGUOUS_TARGET"]
695
689
  }),
696
690
  referenceDocPath: "create/heading.mdx",
697
691
  referenceGroup: "create"
@@ -702,7 +696,7 @@ var init_operation_definitions = __esm(() => {
702
696
  requiresDocumentContext: true,
703
697
  metadata: readOperation({
704
698
  idempotency: "idempotent",
705
- throws: T_NOT_FOUND
699
+ throws: ["TARGET_NOT_FOUND", "INVALID_TARGET", "INVALID_INPUT"]
706
700
  }),
707
701
  referenceDocPath: "lists/list.mdx",
708
702
  referenceGroup: "lists"
@@ -727,7 +721,7 @@ var init_operation_definitions = __esm(() => {
727
721
  supportsDryRun: true,
728
722
  supportsTrackedMode: true,
729
723
  possibleFailureCodes: ["INVALID_TARGET"],
730
- throws: [...T_NOT_FOUND_COMMAND_TRACKED, "INVALID_TARGET"]
724
+ throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
731
725
  }),
732
726
  referenceDocPath: "lists/insert.mdx",
733
727
  referenceGroup: "lists"
@@ -741,7 +735,7 @@ var init_operation_definitions = __esm(() => {
741
735
  supportsDryRun: true,
742
736
  supportsTrackedMode: false,
743
737
  possibleFailureCodes: ["NO_OP", "INVALID_TARGET"],
744
- throws: [...T_NOT_FOUND_COMMAND_TRACKED, "INVALID_TARGET"]
738
+ throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
745
739
  }),
746
740
  referenceDocPath: "lists/set-type.mdx",
747
741
  referenceGroup: "lists"
@@ -755,7 +749,7 @@ var init_operation_definitions = __esm(() => {
755
749
  supportsDryRun: true,
756
750
  supportsTrackedMode: false,
757
751
  possibleFailureCodes: ["NO_OP", "INVALID_TARGET"],
758
- throws: [...T_NOT_FOUND_COMMAND_TRACKED, "INVALID_TARGET"]
752
+ throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
759
753
  }),
760
754
  referenceDocPath: "lists/indent.mdx",
761
755
  referenceGroup: "lists"
@@ -769,7 +763,7 @@ var init_operation_definitions = __esm(() => {
769
763
  supportsDryRun: true,
770
764
  supportsTrackedMode: false,
771
765
  possibleFailureCodes: ["NO_OP", "INVALID_TARGET"],
772
- throws: [...T_NOT_FOUND_COMMAND_TRACKED, "INVALID_TARGET"]
766
+ throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
773
767
  }),
774
768
  referenceDocPath: "lists/outdent.mdx",
775
769
  referenceGroup: "lists"
@@ -783,7 +777,7 @@ var init_operation_definitions = __esm(() => {
783
777
  supportsDryRun: true,
784
778
  supportsTrackedMode: false,
785
779
  possibleFailureCodes: ["NO_OP", "INVALID_TARGET"],
786
- throws: [...T_NOT_FOUND_COMMAND_TRACKED, "INVALID_TARGET"]
780
+ throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
787
781
  }),
788
782
  referenceDocPath: "lists/restart.mdx",
789
783
  referenceGroup: "lists"
@@ -797,7 +791,7 @@ var init_operation_definitions = __esm(() => {
797
791
  supportsDryRun: true,
798
792
  supportsTrackedMode: false,
799
793
  possibleFailureCodes: ["INVALID_TARGET"],
800
- throws: [...T_NOT_FOUND_COMMAND_TRACKED, "INVALID_TARGET"]
794
+ throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
801
795
  }),
802
796
  referenceDocPath: "lists/exit.mdx",
803
797
  referenceGroup: "lists"
@@ -811,7 +805,7 @@ var init_operation_definitions = __esm(() => {
811
805
  supportsDryRun: false,
812
806
  supportsTrackedMode: false,
813
807
  possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
814
- throws: [...T_NOT_FOUND_COMMAND, "INVALID_TARGET"]
808
+ throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
815
809
  }),
816
810
  referenceDocPath: "comments/create.mdx",
817
811
  referenceGroup: "comments"
@@ -825,7 +819,7 @@ var init_operation_definitions = __esm(() => {
825
819
  supportsDryRun: false,
826
820
  supportsTrackedMode: false,
827
821
  possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
828
- throws: [...T_NOT_FOUND_COMMAND, "INVALID_TARGET", "INVALID_INPUT"]
822
+ throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET", "INVALID_INPUT"]
829
823
  }),
830
824
  referenceDocPath: "comments/patch.mdx",
831
825
  referenceGroup: "comments"
@@ -839,7 +833,7 @@ var init_operation_definitions = __esm(() => {
839
833
  supportsDryRun: false,
840
834
  supportsTrackedMode: false,
841
835
  possibleFailureCodes: ["NO_OP"],
842
- throws: T_NOT_FOUND_COMMAND
836
+ throws: T_NOT_FOUND_CAPABLE
843
837
  }),
844
838
  referenceDocPath: "comments/delete.mdx",
845
839
  referenceGroup: "comments"
@@ -860,7 +854,8 @@ var init_operation_definitions = __esm(() => {
860
854
  description: "List all comment threads in the document.",
861
855
  requiresDocumentContext: true,
862
856
  metadata: readOperation({
863
- idempotency: "idempotent"
857
+ idempotency: "idempotent",
858
+ throws: ["INVALID_INPUT"]
864
859
  }),
865
860
  referenceDocPath: "comments/list.mdx",
866
861
  referenceGroup: "comments"
@@ -870,7 +865,8 @@ var init_operation_definitions = __esm(() => {
870
865
  description: "List all tracked changes in the document.",
871
866
  requiresDocumentContext: true,
872
867
  metadata: readOperation({
873
- idempotency: "idempotent"
868
+ idempotency: "idempotent",
869
+ throws: ["INVALID_INPUT"]
874
870
  }),
875
871
  referenceDocPath: "track-changes/list.mdx",
876
872
  referenceGroup: "trackChanges"
@@ -895,7 +891,7 @@ var init_operation_definitions = __esm(() => {
895
891
  supportsDryRun: false,
896
892
  supportsTrackedMode: false,
897
893
  possibleFailureCodes: ["NO_OP"],
898
- throws: [...T_NOT_FOUND_COMMAND, "INVALID_INPUT", "INVALID_TARGET"]
894
+ throws: [...T_NOT_FOUND_CAPABLE, "INVALID_INPUT", "INVALID_TARGET"]
899
895
  }),
900
896
  referenceDocPath: "track-changes/decide.mdx",
901
897
  referenceGroup: "trackChanges"
@@ -1136,7 +1132,7 @@ function buildInternalContractSchemas() {
1136
1132
  operations
1137
1133
  };
1138
1134
  }
1139
- var nodeTypeValues, blockNodeTypeValues, inlineNodeTypeValues, knownTargetKindValues, SHARED_DEFS, rangeSchema, positionSchema, inlineAnchorSchema, targetKindSchema, textAddressSchema, blockNodeAddressSchema, paragraphAddressSchema, headingAddressSchema, listItemAddressSchema, inlineNodeAddressSchema, nodeAddressSchema, commentAddressSchema, trackedChangeAddressSchema, entityAddressSchema, resolvedHandleSchema, pageInfoSchema, receiptSuccessSchema, textMutationRangeSchema, textMutationResolutionSchema, textMutationSuccessSchema, matchRunSchema, matchBlockSchema, trackChangeRefSchema, createParagraphSuccessSchema, createHeadingSuccessSchema, headingLevelSchema, listsInsertSuccessSchema, listsMutateItemSuccessSchema, listsExitSuccessSchema, nodeSummarySchema, nodeInfoSchema, matchContextSchema, unknownNodeDiagnosticSchema, textSelectorSchema, nodeSelectorSchema, selectorShorthandSchema, selectSchema, findInputSchema, findItemDomainSchema, findOutputSchema, documentInfoCountsSchema, documentInfoOutlineItemSchema, documentInfoCapabilitiesSchema, documentInfoSchema, listKindSchema, listInsertPositionSchema, listItemInfoSchema, listItemDomainItemSchema, listsListResultSchema, commentInfoSchema, commentDomainItemSchema, commentsListResultSchema, trackChangeInfoSchema, trackChangeDomainItemSchema, trackChangesListResultSchema, capabilityReasonCodeSchema, capabilityReasonsSchema, capabilityFlagSchema, operationRuntimeCapabilitySchema, operationCapabilitiesSchema, formatCapabilitiesSchema, capabilitiesOutputSchema, strictEmptyObjectSchema, insertInputSchema, operationSchemas;
1135
+ var nodeTypeValues, blockNodeTypeValues, inlineNodeTypeValues, knownTargetKindValues, SHARED_DEFS, rangeSchema, positionSchema, inlineAnchorSchema, targetKindSchema, textAddressSchema, textTargetSchema, blockNodeAddressSchema, paragraphAddressSchema, headingAddressSchema, listItemAddressSchema, inlineNodeAddressSchema, nodeAddressSchema, commentAddressSchema, trackedChangeAddressSchema, entityAddressSchema, resolvedHandleSchema, pageInfoSchema, receiptSuccessSchema, textMutationRangeSchema, textMutationResolutionSchema, textMutationSuccessSchema, matchRunSchema, matchBlockSchema, trackChangeRefSchema, createParagraphSuccessSchema, createHeadingSuccessSchema, headingLevelSchema, listsInsertSuccessSchema, listsMutateItemSuccessSchema, listsExitSuccessSchema, nodeSummarySchema, nodeInfoSchema, matchContextSchema, unknownNodeDiagnosticSchema, textSelectorSchema, nodeSelectorSchema, selectorShorthandSchema, selectSchema, findInputSchema, findItemDomainSchema, findOutputSchema, documentInfoCountsSchema, documentInfoOutlineItemSchema, documentInfoCapabilitiesSchema, documentInfoSchema, listKindSchema, listInsertPositionSchema, listItemInfoSchema, listItemDomainItemSchema, listsListResultSchema, commentInfoSchema, commentDomainItemSchema, commentsListResultSchema, trackChangeInfoSchema, trackChangeDomainItemSchema, trackChangesListResultSchema, capabilityReasonCodeSchema, capabilityReasonsSchema, capabilityFlagSchema, operationRuntimeCapabilitySchema, operationCapabilitiesSchema, formatCapabilitiesSchema, capabilitiesOutputSchema, strictEmptyObjectSchema, insertInputSchema, operationSchemas;
1140
1136
  var init_schemas = __esm(() => {
1141
1137
  init_command_catalog();
1142
1138
  init_types2();
@@ -1178,6 +1174,14 @@ var init_schemas = __esm(() => {
1178
1174
  blockId: { type: "string" },
1179
1175
  range: ref("Range")
1180
1176
  }, ["kind", "blockId", "range"]),
1177
+ TextSegment: objectSchema({
1178
+ blockId: { type: "string" },
1179
+ range: ref("Range")
1180
+ }, ["blockId", "range"]),
1181
+ TextTarget: objectSchema({
1182
+ kind: { const: "text" },
1183
+ segments: { type: "array", items: ref("TextSegment"), minItems: 1 }
1184
+ }, ["kind", "segments"]),
1181
1185
  BlockNodeAddress: objectSchema({
1182
1186
  kind: { const: "block" },
1183
1187
  nodeType: { enum: [...blockNodeTypeValues] },
@@ -1287,6 +1291,7 @@ var init_schemas = __esm(() => {
1287
1291
  inlineAnchorSchema = ref("InlineAnchor");
1288
1292
  targetKindSchema = ref("TargetKind");
1289
1293
  textAddressSchema = ref("TextAddress");
1294
+ textTargetSchema = ref("TextTarget");
1290
1295
  blockNodeAddressSchema = ref("BlockNodeAddress");
1291
1296
  paragraphAddressSchema = ref("ParagraphAddress");
1292
1297
  headingAddressSchema = ref("HeadingAddress");
@@ -1453,7 +1458,8 @@ var init_schemas = __esm(() => {
1453
1458
  text: { type: "string" },
1454
1459
  isInternal: { type: "boolean" },
1455
1460
  status: { enum: ["open", "resolved"] },
1456
- target: textAddressSchema,
1461
+ target: textTargetSchema,
1462
+ anchoredText: { type: "string" },
1457
1463
  createdTime: { type: "number" },
1458
1464
  creatorName: { type: "string" },
1459
1465
  creatorEmail: { type: "string" }
@@ -1465,7 +1471,8 @@ var init_schemas = __esm(() => {
1465
1471
  text: { type: "string" },
1466
1472
  isInternal: { type: "boolean" },
1467
1473
  status: { enum: ["open", "resolved"] },
1468
- target: textAddressSchema,
1474
+ target: textTargetSchema,
1475
+ anchoredText: { type: "string" },
1469
1476
  createdTime: { type: "number" },
1470
1477
  creatorName: { type: "string" },
1471
1478
  creatorEmail: { type: "string" }
@@ -2297,19 +2304,8 @@ var init_insert = __esm(() => {
2297
2304
 
2298
2305
  // ../../packages/document-api/src/lists/lists.ts
2299
2306
  function validateListTarget(input, operationName) {
2300
- const hasTarget = input.target !== undefined;
2301
- const hasNodeId = input.nodeId !== undefined;
2302
- if (hasTarget && hasNodeId) {
2303
- throw new DocumentApiValidationError("INVALID_TARGET", `Cannot combine target with nodeId on ${operationName} request. Use exactly one locator mode.`, { fields: ["target", "nodeId"] });
2304
- }
2305
- if (!hasTarget && !hasNodeId) {
2306
- throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} requires a target. Provide either target or nodeId.`);
2307
- }
2308
- if (hasNodeId && typeof input.nodeId !== "string") {
2309
- throw new DocumentApiValidationError("INVALID_TARGET", `nodeId must be a string, got ${typeof input.nodeId}.`, {
2310
- field: "nodeId",
2311
- value: input.nodeId
2312
- });
2307
+ if (input.target === undefined) {
2308
+ throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} requires a target.`);
2313
2309
  }
2314
2310
  }
2315
2311
  function executeListsList(adapter, query2) {
@@ -2385,19 +2381,8 @@ function validateCreateLocation(at, operationName) {
2385
2381
  if (at.kind !== "before" && at.kind !== "after")
2386
2382
  return;
2387
2383
  const loc = at;
2388
- const hasTarget = loc.target !== undefined;
2389
- const hasNodeId = loc.nodeId !== undefined;
2390
- if (hasTarget && hasNodeId) {
2391
- throw new DocumentApiValidationError("INVALID_TARGET", `Cannot combine at.target with at.nodeId on ${operationName} request. Use exactly one locator mode.`, { fields: ["at.target", "at.nodeId"] });
2392
- }
2393
- if (!hasTarget && !hasNodeId) {
2394
- throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} with at.kind="${at.kind}" requires either at.target or at.nodeId.`, { fields: ["at.target", "at.nodeId"] });
2395
- }
2396
- if (hasNodeId && typeof loc.nodeId !== "string") {
2397
- throw new DocumentApiValidationError("INVALID_TARGET", `at.nodeId must be a string, got ${typeof loc.nodeId}.`, {
2398
- field: "at.nodeId",
2399
- value: loc.nodeId
2400
- });
2384
+ if (loc.target === undefined) {
2385
+ throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} with at.kind="${at.kind}" requires at.target.`, { fields: ["at.target"] });
2401
2386
  }
2402
2387
  }
2403
2388
  function normalizeParagraphCreateLocation(location2) {
@@ -87184,9 +87169,9 @@ var init_remark_gfm_RDxetNVS_es = __esm(() => {
87184
87169
  emptyOptions4 = {};
87185
87170
  });
87186
87171
 
87187
- // ../../packages/superdoc/dist/chunks/src-eL3w4G7e.es.js
87188
- var exports_src_eL3w4G7e_es = {};
87189
- __export(exports_src_eL3w4G7e_es, {
87172
+ // ../../packages/superdoc/dist/chunks/src-DsAtPNrg.es.js
87173
+ var exports_src_DsAtPNrg_es = {};
87174
+ __export(exports_src_DsAtPNrg_es, {
87190
87175
  zt: () => defineMark,
87191
87176
  z: () => cM,
87192
87177
  yt: () => removeAwarenessStates,
@@ -94202,17 +94187,8 @@ function executeInsert2(adapter, input2, options) {
94202
94187
  }, options);
94203
94188
  }
94204
94189
  function validateListTarget2(input2, operationName) {
94205
- const hasTarget = input2.target !== undefined;
94206
- const hasNodeId = input2.nodeId !== undefined;
94207
- if (hasTarget && hasNodeId)
94208
- throw new DocumentApiValidationError2("INVALID_TARGET", `Cannot combine target with nodeId on ${operationName} request. Use exactly one locator mode.`, { fields: ["target", "nodeId"] });
94209
- if (!hasTarget && !hasNodeId)
94210
- throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} requires a target. Provide either target or nodeId.`);
94211
- if (hasNodeId && typeof input2.nodeId !== "string")
94212
- throw new DocumentApiValidationError2("INVALID_TARGET", `nodeId must be a string, got ${typeof input2.nodeId}.`, {
94213
- field: "nodeId",
94214
- value: input2.nodeId
94215
- });
94190
+ if (input2.target === undefined)
94191
+ throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} requires a target.`);
94216
94192
  }
94217
94193
  function executeListsList2(adapter, query2) {
94218
94194
  return adapter.list(query2);
@@ -94273,18 +94249,8 @@ function executeReplace2(adapter, input2, options) {
94273
94249
  function validateCreateLocation2(at, operationName) {
94274
94250
  if (at.kind !== "before" && at.kind !== "after")
94275
94251
  return;
94276
- const loc = at;
94277
- const hasTarget = loc.target !== undefined;
94278
- const hasNodeId = loc.nodeId !== undefined;
94279
- if (hasTarget && hasNodeId)
94280
- throw new DocumentApiValidationError2("INVALID_TARGET", `Cannot combine at.target with at.nodeId on ${operationName} request. Use exactly one locator mode.`, { fields: ["at.target", "at.nodeId"] });
94281
- if (!hasTarget && !hasNodeId)
94282
- throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} with at.kind="${at.kind}" requires either at.target or at.nodeId.`, { fields: ["at.target", "at.nodeId"] });
94283
- if (hasNodeId && typeof loc.nodeId !== "string")
94284
- throw new DocumentApiValidationError2("INVALID_TARGET", `at.nodeId must be a string, got ${typeof loc.nodeId}.`, {
94285
- field: "at.nodeId",
94286
- value: loc.nodeId
94287
- });
94252
+ if (at.target === undefined)
94253
+ throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} with at.kind="${at.kind}" requires at.target.`, { fields: ["at.target"] });
94288
94254
  }
94289
94255
  function normalizeParagraphCreateLocation2(location$1) {
94290
94256
  return location$1 ?? { kind: "documentEnd" };
@@ -95871,10 +95837,7 @@ function isRefWhere(where) {
95871
95837
  return where.by === "ref";
95872
95838
  }
95873
95839
  function isV3Ref(payload) {
95874
- return "v" in payload && payload.v === 3;
95875
- }
95876
- function isV2Ref(payload) {
95877
- return "v" in payload && payload.v === 2;
95840
+ return typeof payload === "object" && payload !== null && "v" in payload && payload.v === 3;
95878
95841
  }
95879
95842
  function resolveAbsoluteRange(editor, candidate, from$12, to, stepId) {
95880
95843
  const resolved = resolveTextRangeInBlock(candidate.node, candidate.pos, {
@@ -96104,62 +96067,6 @@ function decodeTextRefPayload(encoded, stepId) {
96104
96067
  throw planError("INVALID_INPUT", "invalid text ref encoding", stepId);
96105
96068
  }
96106
96069
  }
96107
- function resolveV1TextRef(editor, index2, step, refData) {
96108
- const currentRevision = getRevision(editor);
96109
- if (refData.rev !== currentRevision)
96110
- throw planError("REVISION_MISMATCH", `text ref was created at revision "${refData.rev}" but document is at "${currentRevision}"`, step.id, {
96111
- refRevision: refData.rev,
96112
- currentRevision
96113
- });
96114
- if (!refData.ranges?.length)
96115
- return [];
96116
- const coalesced = normalizeMatchRanges(step.id, refData.ranges);
96117
- const candidate = index2.candidates.find((c$3) => c$3.nodeId === coalesced.blockId);
96118
- if (!candidate)
96119
- return [];
96120
- const matchText = getBlockText(editor, candidate).slice(coalesced.from, coalesced.to);
96121
- return [buildRangeTarget(editor, step, {
96122
- blockId: coalesced.blockId,
96123
- from: coalesced.from,
96124
- to: coalesced.to,
96125
- text: matchText,
96126
- marks: [],
96127
- blockPos: candidate.pos
96128
- }, candidate)];
96129
- }
96130
- function resolveV2TextRef(editor, index2, step, refData) {
96131
- const currentRevision = getRevision(editor);
96132
- if (refData.rev !== currentRevision)
96133
- throw planError("REVISION_MISMATCH", `text ref was created at revision "${refData.rev}" but document is at "${currentRevision}"`, step.id, {
96134
- refRevision: refData.rev,
96135
- currentRevision
96136
- });
96137
- if (!refData.segments?.length)
96138
- return [];
96139
- const segments = refData.segments.map((s2) => ({
96140
- blockId: s2.blockId,
96141
- from: s2.start,
96142
- to: s2.end
96143
- }));
96144
- if (segments.length === 1) {
96145
- const seg = segments[0];
96146
- const candidate = index2.candidates.find((c$3) => c$3.nodeId === seg.blockId);
96147
- if (!candidate)
96148
- return [];
96149
- const matchText = getBlockText(editor, candidate).slice(seg.from, seg.to);
96150
- const target = buildRangeTarget(editor, step, {
96151
- blockId: seg.blockId,
96152
- from: seg.from,
96153
- to: seg.to,
96154
- text: matchText,
96155
- marks: [],
96156
- blockPos: candidate.pos
96157
- }, candidate);
96158
- target.matchId = refData.matchId;
96159
- return [target];
96160
- }
96161
- return [buildSpanTarget(editor, index2, step, segments, refData.matchId)];
96162
- }
96163
96070
  function resolveV3TextRef(editor, index2, step, refData) {
96164
96071
  const currentRevision = getRevision(editor);
96165
96072
  if (refData.rev !== currentRevision)
@@ -96195,11 +96102,9 @@ function resolveV3TextRef(editor, index2, step, refData) {
96195
96102
  }
96196
96103
  function resolveTextRef(editor, index2, step, ref$2) {
96197
96104
  const payload = decodeTextRefPayload(ref$2.slice(5), step.id);
96198
- if (isV3Ref(payload))
96199
- return resolveV3TextRef(editor, index2, step, payload);
96200
- if (isV2Ref(payload))
96201
- return resolveV2TextRef(editor, index2, step, payload);
96202
- return resolveV1TextRef(editor, index2, step, payload);
96105
+ if (!isV3Ref(payload))
96106
+ throw planError("INVALID_INPUT", "only V3 text refs are supported", step.id);
96107
+ return resolveV3TextRef(editor, index2, step, payload);
96203
96108
  }
96204
96109
  function resolveBlockRef(editor, index2, step, ref$2) {
96205
96110
  const candidate = index2.candidates.find((c$3) => c$3.nodeId === ref$2);
@@ -96222,8 +96127,6 @@ function dispatchRefHandler(editor, index2, step, ref$2) {
96222
96127
  return resolveBlockRef(editor, index2, step, ref$2);
96223
96128
  }
96224
96129
  function resolveRefTargets(editor, index2, step, where) {
96225
- if (where.require !== undefined && where.require !== "exactlyOne")
96226
- throw planError("INVALID_INPUT", `ref-based targeting only accepts require: 'exactlyOne' (received '${where.require}')`, step.id);
96227
96130
  return dispatchRefHandler(editor, index2, step, where.ref);
96228
96131
  }
96229
96132
  function resolveStepTargets(editor, index2, step) {
@@ -97410,6 +97313,7 @@ function toCommentInfo(entry, options = {}) {
97410
97313
  isInternal: typeof entry.isInternal === "boolean" ? entry.isInternal : undefined,
97411
97314
  status,
97412
97315
  target: options.target,
97316
+ anchoredText: options.anchoredText,
97413
97317
  createdTime: typeof entry.createdTime === "number" ? entry.createdTime : undefined,
97414
97318
  creatorName: typeof entry.creatorName === "string" ? entry.creatorName : undefined,
97415
97319
  creatorEmail: typeof entry.creatorEmail === "string" ? entry.creatorEmail : undefined
@@ -97533,7 +97437,74 @@ function resolveCommentIdentity(editor, commentId) {
97533
97437
  anchors
97534
97438
  };
97535
97439
  }
97536
- function mergeAnchorData(infosById, anchors) {
97440
+ function canonicalizeAnchors(sorted) {
97441
+ if (sorted.length === 0)
97442
+ return [];
97443
+ const result = [];
97444
+ let current = {
97445
+ blockId: sorted[0].target.blockId,
97446
+ range: {
97447
+ start: sorted[0].target.range.start,
97448
+ end: sorted[0].target.range.end
97449
+ },
97450
+ pos: sorted[0].pos,
97451
+ end: sorted[0].end
97452
+ };
97453
+ for (let i$1 = 1;i$1 < sorted.length; i$1++) {
97454
+ const anchor = sorted[i$1];
97455
+ const sameBlock = anchor.target.blockId === current.blockId;
97456
+ const overlapsOrAdjacent = anchor.target.range.start <= current.range.end;
97457
+ if (sameBlock && overlapsOrAdjacent) {
97458
+ current.range.end = Math.max(current.range.end, anchor.target.range.end);
97459
+ current.end = Math.max(current.end, anchor.end);
97460
+ } else {
97461
+ result.push(current);
97462
+ current = {
97463
+ blockId: anchor.target.blockId,
97464
+ range: {
97465
+ start: anchor.target.range.start,
97466
+ end: anchor.target.range.end
97467
+ },
97468
+ pos: anchor.pos,
97469
+ end: anchor.end
97470
+ };
97471
+ }
97472
+ }
97473
+ result.push(current);
97474
+ return result;
97475
+ }
97476
+ function extractSegmentText(editor, pos, end$1) {
97477
+ try {
97478
+ const cleaned = editor.state.doc.textBetween(pos, end$1, " ", "").replace(/\ufffc/g, "").trim();
97479
+ return cleaned.length > 0 ? cleaned : undefined;
97480
+ } catch {
97481
+ return;
97482
+ }
97483
+ }
97484
+ function buildAnchoredText(editor, canonical) {
97485
+ const parts = [];
97486
+ for (const anchor of canonical) {
97487
+ const text4 = extractSegmentText(editor, anchor.pos, anchor.end);
97488
+ if (text4)
97489
+ parts.push(text4);
97490
+ }
97491
+ return parts.length > 0 ? normalizeExcerpt(parts.join(" ")) : undefined;
97492
+ }
97493
+ function buildTextTarget(canonical) {
97494
+ if (canonical.length === 0)
97495
+ return;
97496
+ return {
97497
+ kind: "text",
97498
+ segments: canonical.map((a2) => ({
97499
+ blockId: a2.blockId,
97500
+ range: {
97501
+ start: a2.range.start,
97502
+ end: a2.range.end
97503
+ }
97504
+ }))
97505
+ };
97506
+ }
97507
+ function mergeAnchorData(editor, infosById, anchors) {
97537
97508
  const grouped = /* @__PURE__ */ new Map;
97538
97509
  for (const anchor of anchors) {
97539
97510
  const group = grouped.get(anchor.commentId) ?? [];
@@ -97542,28 +97513,34 @@ function mergeAnchorData(infosById, anchors) {
97542
97513
  }
97543
97514
  for (const [commentId, commentAnchors] of grouped.entries()) {
97544
97515
  const sorted = [...commentAnchors].sort((a2, b$1) => a2.pos === b$1.pos ? a2.end - b$1.end : a2.pos - b$1.pos);
97545
- const primary = sorted[0];
97516
+ const firstAnchor = sorted[0];
97546
97517
  const status = sorted.every((anchor) => anchor.status === "resolved") ? "resolved" : "open";
97518
+ const canonical = canonicalizeAnchors(sorted);
97519
+ const target = buildTextTarget(canonical);
97520
+ const anchoredText = buildAnchoredText(editor, canonical);
97547
97521
  const existing = infosById.get(commentId);
97548
97522
  if (existing) {
97549
- if (!existing.target)
97550
- existing.target = primary.target;
97551
- if (!existing.importedId && primary.importedId)
97552
- existing.importedId = primary.importedId;
97553
- if (existing.isInternal == null && primary.isInternal != null)
97554
- existing.isInternal = primary.isInternal;
97523
+ if (!existing.target && target)
97524
+ existing.target = target;
97525
+ if (!existing.importedId && firstAnchor.importedId)
97526
+ existing.importedId = firstAnchor.importedId;
97527
+ if (existing.isInternal == null && firstAnchor.isInternal != null)
97528
+ existing.isInternal = firstAnchor.isInternal;
97555
97529
  if (status === "open")
97556
97530
  existing.status = "open";
97531
+ if (existing.anchoredText == null && anchoredText != null)
97532
+ existing.anchoredText = anchoredText;
97557
97533
  continue;
97558
97534
  }
97559
97535
  infosById.set(commentId, toCommentInfo({
97560
97536
  commentId,
97561
- importedId: primary.importedId,
97562
- isInternal: primary.isInternal,
97537
+ importedId: firstAnchor.importedId,
97538
+ isInternal: firstAnchor.isInternal,
97563
97539
  isDone: status === "resolved"
97564
97540
  }, {
97565
- target: primary.target,
97566
- status
97541
+ target,
97542
+ status,
97543
+ anchoredText
97567
97544
  }));
97568
97545
  }
97569
97546
  }
@@ -97579,15 +97556,33 @@ function buildCommentInfos(editor) {
97579
97556
  commentId
97580
97557
  }));
97581
97558
  }
97582
- mergeAnchorData(infosById, listCommentAnchorsSafe(editor));
97559
+ mergeAnchorData(editor, infosById, listCommentAnchorsSafe(editor));
97560
+ for (const info of infosById.values()) {
97561
+ if (info.target != null && info.anchoredText != null || !info.parentCommentId)
97562
+ continue;
97563
+ const visited = /* @__PURE__ */ new Set;
97564
+ let cursor = info;
97565
+ while (cursor?.parentCommentId && !visited.has(cursor.parentCommentId)) {
97566
+ visited.add(cursor.parentCommentId);
97567
+ const ancestor = infosById.get(cursor.parentCommentId);
97568
+ if (ancestor?.target != null) {
97569
+ if (info.target == null)
97570
+ info.target = ancestor.target;
97571
+ if (info.anchoredText == null && ancestor.anchoredText != null)
97572
+ info.anchoredText = ancestor.anchoredText;
97573
+ break;
97574
+ }
97575
+ cursor = ancestor;
97576
+ }
97577
+ }
97583
97578
  const infos = Array.from(infosById.values());
97584
97579
  infos.sort((left$1, right$1) => {
97585
97580
  const leftCreated = left$1.createdTime ?? 0;
97586
97581
  const rightCreated = right$1.createdTime ?? 0;
97587
97582
  if (leftCreated !== rightCreated)
97588
97583
  return leftCreated - rightCreated;
97589
- const leftStart = left$1.target?.range.start ?? Number.MAX_SAFE_INTEGER;
97590
- const rightStart = right$1.target?.range.start ?? Number.MAX_SAFE_INTEGER;
97584
+ const leftStart = left$1.target?.segments[0]?.range.start ?? Number.MAX_SAFE_INTEGER;
97585
+ const rightStart = right$1.target?.segments[0]?.range.start ?? Number.MAX_SAFE_INTEGER;
97591
97586
  if (leftStart !== rightStart)
97592
97587
  return leftStart - rightStart;
97593
97588
  return left$1.commentId.localeCompare(right$1.commentId);
@@ -97595,7 +97590,7 @@ function buildCommentInfos(editor) {
97595
97590
  return infos;
97596
97591
  }
97597
97592
  function addCommentHandler(editor, input2, options) {
97598
- requireEditorCommand(editor.commands?.addComment, "comments.add (addComment)");
97593
+ requireEditorCommand(editor.commands?.addComment, "comments.create (addComment)");
97599
97594
  if (input2.target.range.start === input2.target.range.end)
97600
97595
  return {
97601
97596
  success: false,
@@ -97626,7 +97621,7 @@ function addCommentHandler(editor, input2, options) {
97626
97621
  };
97627
97622
  const commentId = v4_default();
97628
97623
  if (executeDomainCommand(editor, () => {
97629
- const didInsert = requireEditorCommand(editor.commands?.addComment, "comments.add (addComment)")({
97624
+ const didInsert = requireEditorCommand(editor.commands?.addComment, "comments.create (addComment)")({
97630
97625
  content: input2.text,
97631
97626
  isInternal: false,
97632
97627
  commentId
@@ -97666,7 +97661,7 @@ function addCommentHandler(editor, input2, options) {
97666
97661
  };
97667
97662
  }
97668
97663
  function editCommentHandler(editor, input2, options) {
97669
- const editComment = requireEditorCommand(editor.commands?.editComment, "comments.edit (editComment)");
97664
+ const editComment = requireEditorCommand(editor.commands?.editComment, "comments.patch (editComment)");
97670
97665
  const store = getCommentEntityStore(editor);
97671
97666
  const identity$1 = resolveCommentIdentity(editor, input2.commentId);
97672
97667
  const existing = findCommentEntity(store, identity$1.commentId);
@@ -97705,7 +97700,7 @@ function editCommentHandler(editor, input2, options) {
97705
97700
  };
97706
97701
  }
97707
97702
  function replyToCommentHandler(editor, input2, options) {
97708
- const addCommentReply = requireEditorCommand(editor.commands?.addCommentReply, "comments.reply (addCommentReply)");
97703
+ const addCommentReply = requireEditorCommand(editor.commands?.addCommentReply, "comments.create (addCommentReply)");
97709
97704
  if (!input2.parentCommentId)
97710
97705
  return {
97711
97706
  success: false,
@@ -97755,7 +97750,7 @@ function replyToCommentHandler(editor, input2, options) {
97755
97750
  };
97756
97751
  }
97757
97752
  function moveCommentHandler(editor, input2, options) {
97758
- const moveComment = requireEditorCommand(editor.commands?.moveComment, "comments.move (moveComment)");
97753
+ const moveComment = requireEditorCommand(editor.commands?.moveComment, "comments.patch (moveComment)");
97759
97754
  if (input2.target.range.start === input2.target.range.end)
97760
97755
  return {
97761
97756
  success: false,
@@ -97819,7 +97814,7 @@ function moveCommentHandler(editor, input2, options) {
97819
97814
  };
97820
97815
  }
97821
97816
  function resolveCommentHandler(editor, input2, options) {
97822
- const resolveComment = requireEditorCommand(editor.commands?.resolveComment, "comments.resolve (resolveComment)");
97817
+ const resolveComment = requireEditorCommand(editor.commands?.resolveComment, "comments.patch (resolveComment)");
97823
97818
  const store = getCommentEntityStore(editor);
97824
97819
  const identity$1 = resolveCommentIdentity(editor, input2.commentId);
97825
97820
  const existing = findCommentEntity(store, identity$1.commentId);
@@ -97977,7 +97972,7 @@ function listCommentsHandler(editor, query2) {
97977
97972
  const paged = paginate(filtered, query2?.offset, query2?.limit);
97978
97973
  const items = paged.items.map((comment2) => {
97979
97974
  const handle3 = buildResolvedHandle2(`comment:${comment2.commentId}`, "stable", "comment");
97980
- const { importedId, parentCommentId, text: text4, isInternal, status, target, createdTime, creatorName, creatorEmail, address: address2 } = comment2;
97975
+ const { importedId, parentCommentId, text: text4, isInternal, status, target, anchoredText, createdTime, creatorName, creatorEmail, address: address2 } = comment2;
97981
97976
  return buildDiscoveryItem2(comment2.commentId, handle3, {
97982
97977
  address: address2,
97983
97978
  importedId,
@@ -97986,6 +97981,7 @@ function listCommentsHandler(editor, query2) {
97986
97981
  isInternal,
97987
97982
  status,
97988
97983
  target,
97984
+ anchoredText,
97989
97985
  createdTime,
97990
97986
  creatorName,
97991
97987
  creatorEmail
@@ -134274,7 +134270,7 @@ var Node$13 = class Node$14 {
134274
134270
  console.warn("Failed to initialize developer tools:", error);
134275
134271
  }
134276
134272
  }
134277
- }, BLANK_DOCX_DATA_URI = `data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64,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`, NODE_TYPES2, BLOCK_NODE_TYPES2, INLINE_NODE_TYPES2, MARK_KEYS2, MARK_KEY_SET2, NONE_FAILURES2, NONE_THROWS2, T_NOT_FOUND2, T_NOT_FOUND_COMMAND2, T_NOT_FOUND_TRACKED2, T_NOT_FOUND_COMMAND_TRACKED2, T_PLAN_ENGINE2, T_QUERY_MATCH2, OPERATION_DEFINITIONS2, OPERATION_IDS2, COMMAND_CATALOG2, nodeTypeValues2, blockNodeTypeValues2, inlineNodeTypeValues2, rangeSchema2, textAddressSchema2, blockNodeAddressSchema2, paragraphAddressSchema2, headingAddressSchema2, listItemAddressSchema2, nodeAddressSchema2, commentAddressSchema2, trackedChangeAddressSchema2, resolvedHandleSchema2, pageInfoSchema2, receiptSuccessSchema2, textMutationResolutionSchema2, textMutationSuccessSchema2, matchBlockSchema2, trackChangeRefSchema2, createParagraphSuccessSchema2, createHeadingSuccessSchema2, headingLevelSchema2, listsInsertSuccessSchema2, listsMutateItemSuccessSchema2, listsExitSuccessSchema2, nodeSummarySchema2, nodeInfoSchema2, matchContextSchema2, unknownNodeDiagnosticSchema2, textSelectorSchema2, nodeSelectorSchema2, findItemDomainSchema2, documentInfoCountsSchema2, documentInfoOutlineItemSchema2, documentInfoCapabilitiesSchema2, listKindSchema2, listInsertPositionSchema2, capabilityReasonsSchema2, capabilityFlagSchema2, operationRuntimeCapabilitySchema2, operationCapabilitiesSchema2, formatCapabilitiesSchema2, GROUP_METADATA2, CAPABILITY_REASON_CODES2, DocumentApiValidationError2, CREATE_COMMENT_ALLOWED_KEYS2, PATCH_COMMENT_ALLOWED_KEYS2, STYLE_APPLY_INPUT_ALLOWED_KEYS2, DELETE_INPUT_ALLOWED_KEYS2, INSERT_INPUT_ALLOWED_KEYS2, REPLACE_INPUT_ALLOWED_KEYS2, REQUIRED_COMMANDS, VALID_CAPABILITY_REASON_CODES, STYLE_MARK_SCHEMA_NAMES, SUPPORTED_STEP_OPS, SUPPORTED_NON_UNIFORM_STRATEGIES, SUPPORTED_SET_MARKS, REGEX_MAX_PATTERN_LENGTH = 1024, DocumentApiAdapterError, LINK_MARK_NAME = "link", COMMENT_MARK_NAME, SUPPORTED_INLINE_TYPES, ALIAS_ELIGIBLE_TYPES, cacheByEditor, PlanError, revisionMap, subscribedEditors, registry, CORE_MARK_NAMES, METADATA_MARK_NAMES, SNIPPET_PADDING = 30, DUAL_KIND_TYPES, KNOWN_BLOCK_PM_NODE_TYPES, KNOWN_INLINE_PM_NODE_TYPES, MAX_PATTERN_LENGTH = 1024, REF_HANDLERS, DEFAULT_INLINE_POLICY, OBJECT_REPLACEMENT_CHAR = "", STUB_WHERE, MARK_KEY_TO_SCHEMA_NAME, FALLBACK_STORE_KEY = "__documentApiComments", DERIVED_ID_LENGTH = 24, groupedCache, CSS_NAMED_COLORS, registered = false, empty_exports, init_empty, PIXELS_PER_INCH$1 = 96, MAX_HEIGHT_BUFFER_PX = 50, MAX_WIDTH_BUFFER_PX = 20, Editor, ContextMenuPluginKey, MENU_OFFSET_X = 0, MENU_OFFSET_Y = 28, CONTEXT_MENU_OFFSET_X = 10, CONTEXT_MENU_OFFSET_Y = 10, SLASH_COOLDOWN_MS = 5000, ContextMenu, SearchQuery = class {
134273
+ }, BLANK_DOCX_DATA_URI = `data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64,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`, NODE_TYPES2, BLOCK_NODE_TYPES2, INLINE_NODE_TYPES2, MARK_KEYS2, MARK_KEY_SET2, NONE_FAILURES2, NONE_THROWS2, T_NOT_FOUND2, T_NOT_FOUND_CAPABLE2, T_PLAN_ENGINE2, T_QUERY_MATCH2, OPERATION_DEFINITIONS2, OPERATION_IDS2, COMMAND_CATALOG2, nodeTypeValues2, blockNodeTypeValues2, inlineNodeTypeValues2, rangeSchema2, textAddressSchema2, textTargetSchema2, blockNodeAddressSchema2, paragraphAddressSchema2, headingAddressSchema2, listItemAddressSchema2, nodeAddressSchema2, commentAddressSchema2, trackedChangeAddressSchema2, resolvedHandleSchema2, pageInfoSchema2, receiptSuccessSchema2, textMutationResolutionSchema2, textMutationSuccessSchema2, matchBlockSchema2, trackChangeRefSchema2, createParagraphSuccessSchema2, createHeadingSuccessSchema2, headingLevelSchema2, listsInsertSuccessSchema2, listsMutateItemSuccessSchema2, listsExitSuccessSchema2, nodeSummarySchema2, nodeInfoSchema2, matchContextSchema2, unknownNodeDiagnosticSchema2, textSelectorSchema2, nodeSelectorSchema2, findItemDomainSchema2, documentInfoCountsSchema2, documentInfoOutlineItemSchema2, documentInfoCapabilitiesSchema2, listKindSchema2, listInsertPositionSchema2, capabilityReasonsSchema2, capabilityFlagSchema2, operationRuntimeCapabilitySchema2, operationCapabilitiesSchema2, formatCapabilitiesSchema2, GROUP_METADATA2, CAPABILITY_REASON_CODES2, DocumentApiValidationError2, CREATE_COMMENT_ALLOWED_KEYS2, PATCH_COMMENT_ALLOWED_KEYS2, STYLE_APPLY_INPUT_ALLOWED_KEYS2, DELETE_INPUT_ALLOWED_KEYS2, INSERT_INPUT_ALLOWED_KEYS2, REPLACE_INPUT_ALLOWED_KEYS2, REQUIRED_COMMANDS, VALID_CAPABILITY_REASON_CODES, STYLE_MARK_SCHEMA_NAMES, SUPPORTED_STEP_OPS, SUPPORTED_NON_UNIFORM_STRATEGIES, SUPPORTED_SET_MARKS, REGEX_MAX_PATTERN_LENGTH = 1024, DocumentApiAdapterError, LINK_MARK_NAME = "link", COMMENT_MARK_NAME, SUPPORTED_INLINE_TYPES, ALIAS_ELIGIBLE_TYPES, cacheByEditor, PlanError, revisionMap, subscribedEditors, registry, CORE_MARK_NAMES, METADATA_MARK_NAMES, SNIPPET_PADDING = 30, DUAL_KIND_TYPES, KNOWN_BLOCK_PM_NODE_TYPES, KNOWN_INLINE_PM_NODE_TYPES, MAX_PATTERN_LENGTH = 1024, REF_HANDLERS, DEFAULT_INLINE_POLICY, OBJECT_REPLACEMENT_CHAR = "", STUB_WHERE, MARK_KEY_TO_SCHEMA_NAME, FALLBACK_STORE_KEY = "__documentApiComments", DERIVED_ID_LENGTH = 24, groupedCache, CSS_NAMED_COLORS, registered = false, empty_exports, init_empty, PIXELS_PER_INCH$1 = 96, MAX_HEIGHT_BUFFER_PX = 50, MAX_WIDTH_BUFFER_PX = 20, Editor, ContextMenuPluginKey, MENU_OFFSET_X = 0, MENU_OFFSET_Y = 28, CONTEXT_MENU_OFFSET_X = 10, CONTEXT_MENU_OFFSET_Y = 10, SLASH_COOLDOWN_MS = 5000, ContextMenu, SearchQuery = class {
134278
134274
  constructor(config2) {
134279
134275
  this.search = config2.search;
134280
134276
  this.caseSensitive = !!config2.caseSensitive;
@@ -152345,7 +152341,7 @@ var Node$13 = class Node$14 {
152345
152341
  trackedChanges: context.trackedChanges ?? []
152346
152342
  });
152347
152343
  }, _hoisted_1$6, _hoisted_2$1, _hoisted_3, _hoisted_4, ContextMenu_default, _hoisted_1$5, BasicUpload_default, _hoisted_1$4, MIN_WIDTH = 200, PPI = 96, alignment = "flex-end", Ruler_default, GenericPopover_default, _hoisted_1$3, RESIZE_HANDLE_WIDTH_PX = 9, RESIZE_HANDLE_OFFSET_PX = 4, DRAG_OVERLAY_EXTENSION_PX = 1000, MIN_DRAG_OVERLAY_WIDTH_PX = 2000, THROTTLE_INTERVAL_MS = 16, MIN_RESIZE_DELTA_PX = 1, TableResizeOverlay_default, _hoisted_1$2, OVERLAY_EXPANSION_PX = 2000, RESIZE_HANDLE_SIZE_PX = 12, MOUSE_MOVE_THROTTLE_MS = 16, DIMENSION_CHANGE_THRESHOLD_PX = 1, Z_INDEX_OVERLAY = 10, Z_INDEX_HANDLE = 15, Z_INDEX_GUIDELINE = 20, ImageResizeOverlay_default, LINK_CLICK_DEBOUNCE_MS = 300, CURSOR_UPDATE_TIMEOUT_MS = 10, LinkClickHandler_default, _hoisted_1$1, _hoisted_2, DOCX2 = "application/vnd.openxmlformats-officedocument.wordprocessingml.document", TABLE_RESIZE_HOVER_THRESHOLD = 8, TABLE_RESIZE_THROTTLE_MS = 16, SuperEditor_default, _hoisted_1, SuperInput_default, SlashMenu, Extensions;
152348
- var init_src_eL3w4G7e_es = __esm(() => {
152344
+ var init_src_DsAtPNrg_es = __esm(() => {
152349
152345
  init_rolldown_runtime_B2q5OVn9_es();
152350
152346
  init_SuperConverter_Cf1y7bFA_es();
152351
152347
  init_jszip_ChlR43oI_es();
@@ -160445,22 +160441,7 @@ function print() { __p += __j.call(arguments, '') }
160445
160441
  NONE_FAILURES2 = [];
160446
160442
  NONE_THROWS2 = [];
160447
160443
  T_NOT_FOUND2 = ["TARGET_NOT_FOUND"];
160448
- T_NOT_FOUND_COMMAND2 = [
160449
- "TARGET_NOT_FOUND",
160450
- "COMMAND_UNAVAILABLE",
160451
- "CAPABILITY_UNAVAILABLE"
160452
- ];
160453
- T_NOT_FOUND_TRACKED2 = [
160454
- "TARGET_NOT_FOUND",
160455
- "TRACK_CHANGE_COMMAND_UNAVAILABLE",
160456
- "CAPABILITY_UNAVAILABLE"
160457
- ];
160458
- T_NOT_FOUND_COMMAND_TRACKED2 = [
160459
- "TARGET_NOT_FOUND",
160460
- "COMMAND_UNAVAILABLE",
160461
- "TRACK_CHANGE_COMMAND_UNAVAILABLE",
160462
- "CAPABILITY_UNAVAILABLE"
160463
- ];
160444
+ T_NOT_FOUND_CAPABLE2 = ["TARGET_NOT_FOUND", "CAPABILITY_UNAVAILABLE"];
160464
160445
  T_PLAN_ENGINE2 = [
160465
160446
  "REVISION_MISMATCH",
160466
160447
  "MATCH_NOT_FOUND",
@@ -160488,6 +160469,7 @@ function print() { __p += __j.call(arguments, '') }
160488
160469
  requiresDocumentContext: true,
160489
160470
  metadata: readOperation2({
160490
160471
  idempotency: "idempotent",
160472
+ throws: ["CAPABILITY_UNAVAILABLE", "INVALID_INPUT"],
160491
160473
  deterministicTargetResolution: false
160492
160474
  }),
160493
160475
  referenceDocPath: "find.mdx",
@@ -160540,7 +160522,7 @@ function print() { __p += __j.call(arguments, '') }
160540
160522
  supportsDryRun: true,
160541
160523
  supportsTrackedMode: true,
160542
160524
  possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
160543
- throws: [...T_NOT_FOUND_TRACKED2, "INVALID_TARGET"]
160525
+ throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
160544
160526
  }),
160545
160527
  referenceDocPath: "insert.mdx",
160546
160528
  referenceGroup: "core"
@@ -160554,7 +160536,7 @@ function print() { __p += __j.call(arguments, '') }
160554
160536
  supportsDryRun: true,
160555
160537
  supportsTrackedMode: true,
160556
160538
  possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
160557
- throws: [...T_NOT_FOUND_TRACKED2, "INVALID_TARGET"]
160539
+ throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
160558
160540
  }),
160559
160541
  referenceDocPath: "replace.mdx",
160560
160542
  referenceGroup: "core"
@@ -160568,7 +160550,7 @@ function print() { __p += __j.call(arguments, '') }
160568
160550
  supportsDryRun: true,
160569
160551
  supportsTrackedMode: true,
160570
160552
  possibleFailureCodes: ["NO_OP"],
160571
- throws: [...T_NOT_FOUND_TRACKED2, "INVALID_TARGET"]
160553
+ throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
160572
160554
  }),
160573
160555
  referenceDocPath: "delete.mdx",
160574
160556
  referenceGroup: "core"
@@ -160583,7 +160565,7 @@ function print() { __p += __j.call(arguments, '') }
160583
160565
  supportsTrackedMode: true,
160584
160566
  possibleFailureCodes: ["INVALID_TARGET"],
160585
160567
  throws: [
160586
- ...T_NOT_FOUND_COMMAND_TRACKED2,
160568
+ ...T_NOT_FOUND_CAPABLE2,
160587
160569
  "INVALID_TARGET",
160588
160570
  "INVALID_INPUT"
160589
160571
  ]
@@ -160601,7 +160583,7 @@ function print() { __p += __j.call(arguments, '') }
160601
160583
  supportsTrackedMode: true,
160602
160584
  possibleFailureCodes: ["INVALID_TARGET"],
160603
160585
  throws: [
160604
- ...T_NOT_FOUND_COMMAND_TRACKED2,
160586
+ ...T_NOT_FOUND_CAPABLE2,
160605
160587
  "INVALID_TARGET",
160606
160588
  "AMBIGUOUS_TARGET"
160607
160589
  ]
@@ -160619,7 +160601,7 @@ function print() { __p += __j.call(arguments, '') }
160619
160601
  supportsTrackedMode: true,
160620
160602
  possibleFailureCodes: ["INVALID_TARGET"],
160621
160603
  throws: [
160622
- ...T_NOT_FOUND_COMMAND_TRACKED2,
160604
+ ...T_NOT_FOUND_CAPABLE2,
160623
160605
  "INVALID_TARGET",
160624
160606
  "AMBIGUOUS_TARGET"
160625
160607
  ]
@@ -160633,7 +160615,11 @@ function print() { __p += __j.call(arguments, '') }
160633
160615
  requiresDocumentContext: true,
160634
160616
  metadata: readOperation2({
160635
160617
  idempotency: "idempotent",
160636
- throws: T_NOT_FOUND2
160618
+ throws: [
160619
+ "TARGET_NOT_FOUND",
160620
+ "INVALID_TARGET",
160621
+ "INVALID_INPUT"
160622
+ ]
160637
160623
  }),
160638
160624
  referenceDocPath: "lists/list.mdx",
160639
160625
  referenceGroup: "lists"
@@ -160658,7 +160644,7 @@ function print() { __p += __j.call(arguments, '') }
160658
160644
  supportsDryRun: true,
160659
160645
  supportsTrackedMode: true,
160660
160646
  possibleFailureCodes: ["INVALID_TARGET"],
160661
- throws: [...T_NOT_FOUND_COMMAND_TRACKED2, "INVALID_TARGET"]
160647
+ throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
160662
160648
  }),
160663
160649
  referenceDocPath: "lists/insert.mdx",
160664
160650
  referenceGroup: "lists"
@@ -160672,7 +160658,7 @@ function print() { __p += __j.call(arguments, '') }
160672
160658
  supportsDryRun: true,
160673
160659
  supportsTrackedMode: false,
160674
160660
  possibleFailureCodes: ["NO_OP", "INVALID_TARGET"],
160675
- throws: [...T_NOT_FOUND_COMMAND_TRACKED2, "INVALID_TARGET"]
160661
+ throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
160676
160662
  }),
160677
160663
  referenceDocPath: "lists/set-type.mdx",
160678
160664
  referenceGroup: "lists"
@@ -160686,7 +160672,7 @@ function print() { __p += __j.call(arguments, '') }
160686
160672
  supportsDryRun: true,
160687
160673
  supportsTrackedMode: false,
160688
160674
  possibleFailureCodes: ["NO_OP", "INVALID_TARGET"],
160689
- throws: [...T_NOT_FOUND_COMMAND_TRACKED2, "INVALID_TARGET"]
160675
+ throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
160690
160676
  }),
160691
160677
  referenceDocPath: "lists/indent.mdx",
160692
160678
  referenceGroup: "lists"
@@ -160700,7 +160686,7 @@ function print() { __p += __j.call(arguments, '') }
160700
160686
  supportsDryRun: true,
160701
160687
  supportsTrackedMode: false,
160702
160688
  possibleFailureCodes: ["NO_OP", "INVALID_TARGET"],
160703
- throws: [...T_NOT_FOUND_COMMAND_TRACKED2, "INVALID_TARGET"]
160689
+ throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
160704
160690
  }),
160705
160691
  referenceDocPath: "lists/outdent.mdx",
160706
160692
  referenceGroup: "lists"
@@ -160714,7 +160700,7 @@ function print() { __p += __j.call(arguments, '') }
160714
160700
  supportsDryRun: true,
160715
160701
  supportsTrackedMode: false,
160716
160702
  possibleFailureCodes: ["NO_OP", "INVALID_TARGET"],
160717
- throws: [...T_NOT_FOUND_COMMAND_TRACKED2, "INVALID_TARGET"]
160703
+ throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
160718
160704
  }),
160719
160705
  referenceDocPath: "lists/restart.mdx",
160720
160706
  referenceGroup: "lists"
@@ -160728,7 +160714,7 @@ function print() { __p += __j.call(arguments, '') }
160728
160714
  supportsDryRun: true,
160729
160715
  supportsTrackedMode: false,
160730
160716
  possibleFailureCodes: ["INVALID_TARGET"],
160731
- throws: [...T_NOT_FOUND_COMMAND_TRACKED2, "INVALID_TARGET"]
160717
+ throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
160732
160718
  }),
160733
160719
  referenceDocPath: "lists/exit.mdx",
160734
160720
  referenceGroup: "lists"
@@ -160742,7 +160728,7 @@ function print() { __p += __j.call(arguments, '') }
160742
160728
  supportsDryRun: false,
160743
160729
  supportsTrackedMode: false,
160744
160730
  possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
160745
- throws: [...T_NOT_FOUND_COMMAND2, "INVALID_TARGET"]
160731
+ throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
160746
160732
  }),
160747
160733
  referenceDocPath: "comments/create.mdx",
160748
160734
  referenceGroup: "comments"
@@ -160757,7 +160743,7 @@ function print() { __p += __j.call(arguments, '') }
160757
160743
  supportsTrackedMode: false,
160758
160744
  possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
160759
160745
  throws: [
160760
- ...T_NOT_FOUND_COMMAND2,
160746
+ ...T_NOT_FOUND_CAPABLE2,
160761
160747
  "INVALID_TARGET",
160762
160748
  "INVALID_INPUT"
160763
160749
  ]
@@ -160774,7 +160760,7 @@ function print() { __p += __j.call(arguments, '') }
160774
160760
  supportsDryRun: false,
160775
160761
  supportsTrackedMode: false,
160776
160762
  possibleFailureCodes: ["NO_OP"],
160777
- throws: T_NOT_FOUND_COMMAND2
160763
+ throws: T_NOT_FOUND_CAPABLE2
160778
160764
  }),
160779
160765
  referenceDocPath: "comments/delete.mdx",
160780
160766
  referenceGroup: "comments"
@@ -160794,7 +160780,10 @@ function print() { __p += __j.call(arguments, '') }
160794
160780
  memberPath: "comments.list",
160795
160781
  description: "List all comment threads in the document.",
160796
160782
  requiresDocumentContext: true,
160797
- metadata: readOperation2({ idempotency: "idempotent" }),
160783
+ metadata: readOperation2({
160784
+ idempotency: "idempotent",
160785
+ throws: ["INVALID_INPUT"]
160786
+ }),
160798
160787
  referenceDocPath: "comments/list.mdx",
160799
160788
  referenceGroup: "comments"
160800
160789
  },
@@ -160802,7 +160791,10 @@ function print() { __p += __j.call(arguments, '') }
160802
160791
  memberPath: "trackChanges.list",
160803
160792
  description: "List all tracked changes in the document.",
160804
160793
  requiresDocumentContext: true,
160805
- metadata: readOperation2({ idempotency: "idempotent" }),
160794
+ metadata: readOperation2({
160795
+ idempotency: "idempotent",
160796
+ throws: ["INVALID_INPUT"]
160797
+ }),
160806
160798
  referenceDocPath: "track-changes/list.mdx",
160807
160799
  referenceGroup: "trackChanges"
160808
160800
  },
@@ -160827,7 +160819,7 @@ function print() { __p += __j.call(arguments, '') }
160827
160819
  supportsTrackedMode: false,
160828
160820
  possibleFailureCodes: ["NO_OP"],
160829
160821
  throws: [
160830
- ...T_NOT_FOUND_COMMAND2,
160822
+ ...T_NOT_FOUND_CAPABLE2,
160831
160823
  "INVALID_INPUT",
160832
160824
  "INVALID_TARGET"
160833
160825
  ]
@@ -160914,6 +160906,16 @@ function print() { __p += __j.call(arguments, '') }
160914
160906
  "blockId",
160915
160907
  "range"
160916
160908
  ]), objectSchema2({
160909
+ blockId: { type: "string" },
160910
+ range: ref$1("Range")
160911
+ }, ["blockId", "range"]), objectSchema2({
160912
+ kind: { const: "text" },
160913
+ segments: {
160914
+ type: "array",
160915
+ items: ref$1("TextSegment"),
160916
+ minItems: 1
160917
+ }
160918
+ }, ["kind", "segments"]), objectSchema2({
160917
160919
  kind: { const: "block" },
160918
160920
  nodeType: { enum: [...blockNodeTypeValues2] },
160919
160921
  nodeId: { type: "string" }
@@ -161070,6 +161072,7 @@ function print() { __p += __j.call(arguments, '') }
161070
161072
  ref$1("InlineAnchor");
161071
161073
  ref$1("TargetKind");
161072
161074
  textAddressSchema2 = ref$1("TextAddress");
161075
+ textTargetSchema2 = ref$1("TextTarget");
161073
161076
  blockNodeAddressSchema2 = ref$1("BlockNodeAddress");
161074
161077
  paragraphAddressSchema2 = ref$1("ParagraphAddress");
161075
161078
  headingAddressSchema2 = ref$1("HeadingAddress");
@@ -161272,7 +161275,8 @@ function print() { __p += __j.call(arguments, '') }
161272
161275
  text: { type: "string" },
161273
161276
  isInternal: { type: "boolean" },
161274
161277
  status: { enum: ["open", "resolved"] },
161275
- target: textAddressSchema2,
161278
+ target: textTargetSchema2,
161279
+ anchoredText: { type: "string" },
161276
161280
  createdTime: { type: "number" },
161277
161281
  creatorName: { type: "string" },
161278
161282
  creatorEmail: { type: "string" }
@@ -161288,7 +161292,8 @@ function print() { __p += __j.call(arguments, '') }
161288
161292
  text: { type: "string" },
161289
161293
  isInternal: { type: "boolean" },
161290
161294
  status: { enum: ["open", "resolved"] },
161291
- target: textAddressSchema2,
161295
+ target: textTargetSchema2,
161296
+ anchoredText: { type: "string" },
161292
161297
  createdTime: { type: "number" },
161293
161298
  creatorName: { type: "string" },
161294
161299
  creatorEmail: { type: "string" }
@@ -183817,8 +183822,8 @@ function print() { __p += __j.call(arguments, '') }
183817
183822
  return isObjectLike_default(value) && hasOwnProperty$8.call(value, "callee") && !propertyIsEnumerable$1.call(value, "callee");
183818
183823
  };
183819
183824
  stubFalse_default = stubFalse;
183820
- freeExports$2 = typeof exports_src_eL3w4G7e_es == "object" && exports_src_eL3w4G7e_es && !exports_src_eL3w4G7e_es.nodeType && exports_src_eL3w4G7e_es;
183821
- freeModule$2 = freeExports$2 && typeof module_src_eL3w4G7e_es == "object" && module_src_eL3w4G7e_es && !module_src_eL3w4G7e_es.nodeType && module_src_eL3w4G7e_es;
183825
+ freeExports$2 = typeof exports_src_DsAtPNrg_es == "object" && exports_src_DsAtPNrg_es && !exports_src_DsAtPNrg_es.nodeType && exports_src_DsAtPNrg_es;
183826
+ freeModule$2 = freeExports$2 && typeof module_src_DsAtPNrg_es == "object" && module_src_DsAtPNrg_es && !module_src_DsAtPNrg_es.nodeType && module_src_DsAtPNrg_es;
183822
183827
  Buffer$1 = freeModule$2 && freeModule$2.exports === freeExports$2 ? _root_default.Buffer : undefined;
183823
183828
  isBuffer_default = (Buffer$1 ? Buffer$1.isBuffer : undefined) || stubFalse_default;
183824
183829
  typedArrayTags = {};
@@ -183826,8 +183831,8 @@ function print() { __p += __j.call(arguments, '') }
183826
183831
  typedArrayTags[argsTag$1] = typedArrayTags[arrayTag$1] = typedArrayTags[arrayBufferTag$1] = typedArrayTags[boolTag$1] = typedArrayTags[dataViewTag$2] = typedArrayTags[dateTag$1] = typedArrayTags[errorTag$1] = typedArrayTags[funcTag] = typedArrayTags[mapTag$2] = typedArrayTags[numberTag$1] = typedArrayTags[objectTag$3] = typedArrayTags[regexpTag$1] = typedArrayTags[setTag$2] = typedArrayTags[stringTag$1] = typedArrayTags[weakMapTag$1] = false;
183827
183832
  _baseIsTypedArray_default = baseIsTypedArray;
183828
183833
  _baseUnary_default = baseUnary;
183829
- freeExports$1 = typeof exports_src_eL3w4G7e_es == "object" && exports_src_eL3w4G7e_es && !exports_src_eL3w4G7e_es.nodeType && exports_src_eL3w4G7e_es;
183830
- freeModule$1 = freeExports$1 && typeof module_src_eL3w4G7e_es == "object" && module_src_eL3w4G7e_es && !module_src_eL3w4G7e_es.nodeType && module_src_eL3w4G7e_es;
183834
+ freeExports$1 = typeof exports_src_DsAtPNrg_es == "object" && exports_src_DsAtPNrg_es && !exports_src_DsAtPNrg_es.nodeType && exports_src_DsAtPNrg_es;
183835
+ freeModule$1 = freeExports$1 && typeof module_src_DsAtPNrg_es == "object" && module_src_DsAtPNrg_es && !module_src_DsAtPNrg_es.nodeType && module_src_DsAtPNrg_es;
183831
183836
  freeProcess = freeModule$1 && freeModule$1.exports === freeExports$1 && _freeGlobal_default.process;
183832
183837
  _nodeUtil_default = function() {
183833
183838
  try {
@@ -183932,8 +183937,8 @@ function print() { __p += __j.call(arguments, '') }
183932
183937
  Stack.prototype.has = _stackHas_default;
183933
183938
  Stack.prototype.set = _stackSet_default;
183934
183939
  _Stack_default = Stack;
183935
- freeExports = typeof exports_src_eL3w4G7e_es == "object" && exports_src_eL3w4G7e_es && !exports_src_eL3w4G7e_es.nodeType && exports_src_eL3w4G7e_es;
183936
- freeModule = freeExports && typeof module_src_eL3w4G7e_es == "object" && module_src_eL3w4G7e_es && !module_src_eL3w4G7e_es.nodeType && module_src_eL3w4G7e_es;
183940
+ freeExports = typeof exports_src_DsAtPNrg_es == "object" && exports_src_DsAtPNrg_es && !exports_src_DsAtPNrg_es.nodeType && exports_src_DsAtPNrg_es;
183941
+ freeModule = freeExports && typeof module_src_DsAtPNrg_es == "object" && module_src_DsAtPNrg_es && !module_src_DsAtPNrg_es.nodeType && module_src_DsAtPNrg_es;
183937
183942
  Buffer4 = freeModule && freeModule.exports === freeExports ? _root_default.Buffer : undefined;
183938
183943
  allocUnsafe = Buffer4 ? Buffer4.allocUnsafe : undefined;
183939
183944
  _cloneBuffer_default = cloneBuffer;
@@ -191552,7 +191557,7 @@ var init_zipper_BJHqrQMq_es = __esm(() => {
191552
191557
 
191553
191558
  // ../../packages/superdoc/dist/super-editor.es.js
191554
191559
  var init_super_editor_es = __esm(() => {
191555
- init_src_eL3w4G7e_es();
191560
+ init_src_DsAtPNrg_es();
191556
191561
  init_SuperConverter_Cf1y7bFA_es();
191557
191562
  init_jszip_ChlR43oI_es();
191558
191563
  init_xml_js_DLE8mr0n_es();
@@ -197669,10 +197674,7 @@ function isRefWhere2(where) {
197669
197674
  return where.by === "ref";
197670
197675
  }
197671
197676
  function isV3Ref2(payload) {
197672
- return "v" in payload && payload.v === 3;
197673
- }
197674
- function isV2Ref2(payload) {
197675
- return "v" in payload && payload.v === 2;
197677
+ return typeof payload === "object" && payload !== null && "v" in payload && payload.v === 3;
197676
197678
  }
197677
197679
  function resolveAbsoluteRange2(editor, candidate, from3, to, stepId) {
197678
197680
  const resolved = resolveTextRangeInBlock2(candidate.node, candidate.pos, { start: from3, end: to });
@@ -197895,58 +197897,6 @@ function decodeTextRefPayload2(encoded, stepId) {
197895
197897
  throw planError2("INVALID_INPUT", "invalid text ref encoding", stepId);
197896
197898
  }
197897
197899
  }
197898
- function resolveV1TextRef2(editor, index2, step, refData) {
197899
- const currentRevision = getRevision2(editor);
197900
- if (refData.rev !== currentRevision) {
197901
- throw planError2("REVISION_MISMATCH", `text ref was created at revision "${refData.rev}" but document is at "${currentRevision}"`, step.id, { refRevision: refData.rev, currentRevision });
197902
- }
197903
- if (!refData.ranges?.length)
197904
- return [];
197905
- const coalesced = normalizeMatchRanges2(step.id, refData.ranges);
197906
- const candidate = index2.candidates.find((c2) => c2.nodeId === coalesced.blockId);
197907
- if (!candidate)
197908
- return [];
197909
- const blockText = getBlockText2(editor, candidate);
197910
- const matchText = blockText.slice(coalesced.from, coalesced.to);
197911
- const addr = {
197912
- blockId: coalesced.blockId,
197913
- from: coalesced.from,
197914
- to: coalesced.to,
197915
- text: matchText,
197916
- marks: [],
197917
- blockPos: candidate.pos
197918
- };
197919
- return [buildRangeTarget2(editor, step, addr, candidate)];
197920
- }
197921
- function resolveV2TextRef2(editor, index2, step, refData) {
197922
- const currentRevision = getRevision2(editor);
197923
- if (refData.rev !== currentRevision) {
197924
- throw planError2("REVISION_MISMATCH", `text ref was created at revision "${refData.rev}" but document is at "${currentRevision}"`, step.id, { refRevision: refData.rev, currentRevision });
197925
- }
197926
- if (!refData.segments?.length)
197927
- return [];
197928
- const segments = refData.segments.map((s2) => ({ blockId: s2.blockId, from: s2.start, to: s2.end }));
197929
- if (segments.length === 1) {
197930
- const seg = segments[0];
197931
- const candidate = index2.candidates.find((c2) => c2.nodeId === seg.blockId);
197932
- if (!candidate)
197933
- return [];
197934
- const blockText = getBlockText2(editor, candidate);
197935
- const matchText = blockText.slice(seg.from, seg.to);
197936
- const addr = {
197937
- blockId: seg.blockId,
197938
- from: seg.from,
197939
- to: seg.to,
197940
- text: matchText,
197941
- marks: [],
197942
- blockPos: candidate.pos
197943
- };
197944
- const target = buildRangeTarget2(editor, step, addr, candidate);
197945
- target.matchId = refData.matchId;
197946
- return [target];
197947
- }
197948
- return [buildSpanTarget2(editor, index2, step, segments, refData.matchId)];
197949
- }
197950
197900
  function resolveV3TextRef2(editor, index2, step, refData) {
197951
197901
  const currentRevision = getRevision2(editor);
197952
197902
  if (refData.rev !== currentRevision) {
@@ -197979,13 +197929,10 @@ function resolveV3TextRef2(editor, index2, step, refData) {
197979
197929
  function resolveTextRef2(editor, index2, step, ref3) {
197980
197930
  const encoded = ref3.slice(5);
197981
197931
  const payload = decodeTextRefPayload2(encoded, step.id);
197982
- if (isV3Ref2(payload)) {
197983
- return resolveV3TextRef2(editor, index2, step, payload);
197984
- }
197985
- if (isV2Ref2(payload)) {
197986
- return resolveV2TextRef2(editor, index2, step, payload);
197932
+ if (!isV3Ref2(payload)) {
197933
+ throw planError2("INVALID_INPUT", "only V3 text refs are supported", step.id);
197987
197934
  }
197988
- return resolveV1TextRef2(editor, index2, step, payload);
197935
+ return resolveV3TextRef2(editor, index2, step, payload);
197989
197936
  }
197990
197937
  function resolveBlockRef2(editor, index2, step, ref3) {
197991
197938
  const candidate = index2.candidates.find((c2) => c2.nodeId === ref3);
@@ -198011,9 +197958,6 @@ function dispatchRefHandler2(editor, index2, step, ref3) {
198011
197958
  return resolveBlockRef2(editor, index2, step, ref3);
198012
197959
  }
198013
197960
  function resolveRefTargets2(editor, index2, step, where) {
198014
- if (where.require !== undefined && where.require !== "exactlyOne") {
198015
- throw planError2("INVALID_INPUT", `ref-based targeting only accepts require: 'exactlyOne' (received '${where.require}')`, step.id);
198016
- }
198017
197961
  return dispatchRefHandler2(editor, index2, step, where.ref);
198018
197962
  }
198019
197963
  function resolveStepTargets2(editor, index2, step) {
@@ -199223,6 +199167,7 @@ function toCommentInfo2(entry, options = {}) {
199223
199167
  isInternal: typeof entry.isInternal === "boolean" ? entry.isInternal : undefined,
199224
199168
  status,
199225
199169
  target: options.target,
199170
+ anchoredText: options.anchoredText,
199226
199171
  createdTime: typeof entry.createdTime === "number" ? entry.createdTime : undefined,
199227
199172
  creatorName: typeof entry.creatorName === "string" ? entry.creatorName : undefined,
199228
199173
  creatorEmail: typeof entry.creatorEmail === "string" ? entry.creatorEmail : undefined
@@ -199359,7 +199304,64 @@ function resolveCommentIdentity2(editor, commentId) {
199359
199304
  anchors
199360
199305
  };
199361
199306
  }
199362
- function mergeAnchorData2(infosById, anchors) {
199307
+ function canonicalizeAnchors2(sorted) {
199308
+ if (sorted.length === 0)
199309
+ return [];
199310
+ const result = [];
199311
+ let current = {
199312
+ blockId: sorted[0].target.blockId,
199313
+ range: { start: sorted[0].target.range.start, end: sorted[0].target.range.end },
199314
+ pos: sorted[0].pos,
199315
+ end: sorted[0].end
199316
+ };
199317
+ for (let i4 = 1;i4 < sorted.length; i4++) {
199318
+ const anchor = sorted[i4];
199319
+ const sameBlock = anchor.target.blockId === current.blockId;
199320
+ const overlapsOrAdjacent = anchor.target.range.start <= current.range.end;
199321
+ if (sameBlock && overlapsOrAdjacent) {
199322
+ current.range.end = Math.max(current.range.end, anchor.target.range.end);
199323
+ current.end = Math.max(current.end, anchor.end);
199324
+ } else {
199325
+ result.push(current);
199326
+ current = {
199327
+ blockId: anchor.target.blockId,
199328
+ range: { start: anchor.target.range.start, end: anchor.target.range.end },
199329
+ pos: anchor.pos,
199330
+ end: anchor.end
199331
+ };
199332
+ }
199333
+ }
199334
+ result.push(current);
199335
+ return result;
199336
+ }
199337
+ function extractSegmentText2(editor, pos, end) {
199338
+ try {
199339
+ const raw = editor.state.doc.textBetween(pos, end, " ", "");
199340
+ const cleaned = raw.replace(/\ufffc/g, "").trim();
199341
+ return cleaned.length > 0 ? cleaned : undefined;
199342
+ } catch {
199343
+ return;
199344
+ }
199345
+ }
199346
+ function buildAnchoredText2(editor, canonical) {
199347
+ const parts = [];
199348
+ for (const anchor of canonical) {
199349
+ const text4 = extractSegmentText2(editor, anchor.pos, anchor.end);
199350
+ if (text4)
199351
+ parts.push(text4);
199352
+ }
199353
+ return parts.length > 0 ? normalizeExcerpt2(parts.join(" ")) : undefined;
199354
+ }
199355
+ function buildTextTarget2(canonical) {
199356
+ if (canonical.length === 0)
199357
+ return;
199358
+ const segments = canonical.map((a2) => ({
199359
+ blockId: a2.blockId,
199360
+ range: { start: a2.range.start, end: a2.range.end }
199361
+ }));
199362
+ return { kind: "text", segments };
199363
+ }
199364
+ function mergeAnchorData2(editor, infosById, anchors) {
199363
199365
  const grouped = new Map;
199364
199366
  for (const anchor of anchors) {
199365
199367
  const group = grouped.get(anchor.commentId) ?? [];
@@ -199368,28 +199370,34 @@ function mergeAnchorData2(infosById, anchors) {
199368
199370
  }
199369
199371
  for (const [commentId, commentAnchors] of grouped.entries()) {
199370
199372
  const sorted = [...commentAnchors].sort((a2, b3) => a2.pos === b3.pos ? a2.end - b3.end : a2.pos - b3.pos);
199371
- const primary = sorted[0];
199373
+ const firstAnchor = sorted[0];
199372
199374
  const status = sorted.every((anchor) => anchor.status === "resolved") ? "resolved" : "open";
199375
+ const canonical = canonicalizeAnchors2(sorted);
199376
+ const target = buildTextTarget2(canonical);
199377
+ const anchoredText = buildAnchoredText2(editor, canonical);
199373
199378
  const existing = infosById.get(commentId);
199374
199379
  if (existing) {
199375
- if (!existing.target)
199376
- existing.target = primary.target;
199377
- if (!existing.importedId && primary.importedId)
199378
- existing.importedId = primary.importedId;
199379
- if (existing.isInternal == null && primary.isInternal != null)
199380
- existing.isInternal = primary.isInternal;
199380
+ if (!existing.target && target)
199381
+ existing.target = target;
199382
+ if (!existing.importedId && firstAnchor.importedId)
199383
+ existing.importedId = firstAnchor.importedId;
199384
+ if (existing.isInternal == null && firstAnchor.isInternal != null)
199385
+ existing.isInternal = firstAnchor.isInternal;
199381
199386
  if (status === "open")
199382
199387
  existing.status = "open";
199388
+ if (existing.anchoredText == null && anchoredText != null)
199389
+ existing.anchoredText = anchoredText;
199383
199390
  continue;
199384
199391
  }
199385
199392
  infosById.set(commentId, toCommentInfo2({
199386
199393
  commentId,
199387
- importedId: primary.importedId,
199388
- isInternal: primary.isInternal,
199394
+ importedId: firstAnchor.importedId,
199395
+ isInternal: firstAnchor.isInternal,
199389
199396
  isDone: status === "resolved"
199390
199397
  }, {
199391
- target: primary.target,
199392
- status
199398
+ target,
199399
+ status,
199400
+ anchoredText
199393
199401
  }));
199394
199402
  }
199395
199403
  }
@@ -199402,15 +199410,33 @@ function buildCommentInfos2(editor) {
199402
199410
  continue;
199403
199411
  infosById.set(commentId, toCommentInfo2({ ...entry, commentId }));
199404
199412
  }
199405
- mergeAnchorData2(infosById, listCommentAnchorsSafe2(editor));
199413
+ mergeAnchorData2(editor, infosById, listCommentAnchorsSafe2(editor));
199414
+ for (const info of infosById.values()) {
199415
+ if (info.target != null && info.anchoredText != null || !info.parentCommentId)
199416
+ continue;
199417
+ const visited = new Set;
199418
+ let cursor = info;
199419
+ while (cursor?.parentCommentId && !visited.has(cursor.parentCommentId)) {
199420
+ visited.add(cursor.parentCommentId);
199421
+ const ancestor = infosById.get(cursor.parentCommentId);
199422
+ if (ancestor?.target != null) {
199423
+ if (info.target == null)
199424
+ info.target = ancestor.target;
199425
+ if (info.anchoredText == null && ancestor.anchoredText != null)
199426
+ info.anchoredText = ancestor.anchoredText;
199427
+ break;
199428
+ }
199429
+ cursor = ancestor;
199430
+ }
199431
+ }
199406
199432
  const infos = Array.from(infosById.values());
199407
199433
  infos.sort((left2, right2) => {
199408
199434
  const leftCreated = left2.createdTime ?? 0;
199409
199435
  const rightCreated = right2.createdTime ?? 0;
199410
199436
  if (leftCreated !== rightCreated)
199411
199437
  return leftCreated - rightCreated;
199412
- const leftStart = left2.target?.range.start ?? Number.MAX_SAFE_INTEGER;
199413
- const rightStart = right2.target?.range.start ?? Number.MAX_SAFE_INTEGER;
199438
+ const leftStart = left2.target?.segments[0]?.range.start ?? Number.MAX_SAFE_INTEGER;
199439
+ const rightStart = right2.target?.segments[0]?.range.start ?? Number.MAX_SAFE_INTEGER;
199414
199440
  if (leftStart !== rightStart)
199415
199441
  return leftStart - rightStart;
199416
199442
  return left2.commentId.localeCompare(right2.commentId);
@@ -199418,7 +199444,7 @@ function buildCommentInfos2(editor) {
199418
199444
  return infos;
199419
199445
  }
199420
199446
  function addCommentHandler2(editor, input2, options) {
199421
- requireEditorCommand2(editor.commands?.addComment, "comments.add (addComment)");
199447
+ requireEditorCommand2(editor.commands?.addComment, "comments.create (addComment)");
199422
199448
  if (input2.target.range.start === input2.target.range.end) {
199423
199449
  return {
199424
199450
  success: false,
@@ -199455,7 +199481,7 @@ function addCommentHandler2(editor, input2, options) {
199455
199481
  }
199456
199482
  const commentId = v42();
199457
199483
  const receipt2 = executeDomainCommand2(editor, () => {
199458
- const addComment = requireEditorCommand2(editor.commands?.addComment, "comments.add (addComment)");
199484
+ const addComment = requireEditorCommand2(editor.commands?.addComment, "comments.create (addComment)");
199459
199485
  const didInsert = addComment({ content: input2.text, isInternal: false, commentId }) === true;
199460
199486
  if (didInsert) {
199461
199487
  clearIndexCache2(editor);
@@ -199488,7 +199514,7 @@ function addCommentHandler2(editor, input2, options) {
199488
199514
  return { success: true, inserted: [toCommentAddress2(commentId)] };
199489
199515
  }
199490
199516
  function editCommentHandler2(editor, input2, options) {
199491
- const editComment = requireEditorCommand2(editor.commands?.editComment, "comments.edit (editComment)");
199517
+ const editComment = requireEditorCommand2(editor.commands?.editComment, "comments.patch (editComment)");
199492
199518
  const store = getCommentEntityStore2(editor);
199493
199519
  const identity2 = resolveCommentIdentity2(editor, input2.commentId);
199494
199520
  const existing = findCommentEntity2(store, identity2.commentId);
@@ -199523,7 +199549,7 @@ function editCommentHandler2(editor, input2, options) {
199523
199549
  return { success: true, updated: [toCommentAddress2(identity2.commentId)] };
199524
199550
  }
199525
199551
  function replyToCommentHandler2(editor, input2, options) {
199526
- const addCommentReply = requireEditorCommand2(editor.commands?.addCommentReply, "comments.reply (addCommentReply)");
199552
+ const addCommentReply = requireEditorCommand2(editor.commands?.addCommentReply, "comments.create (addCommentReply)");
199527
199553
  if (!input2.parentCommentId) {
199528
199554
  return {
199529
199555
  success: false,
@@ -199571,7 +199597,7 @@ function replyToCommentHandler2(editor, input2, options) {
199571
199597
  return { success: true, inserted: [toCommentAddress2(replyId)] };
199572
199598
  }
199573
199599
  function moveCommentHandler2(editor, input2, options) {
199574
- const moveComment = requireEditorCommand2(editor.commands?.moveComment, "comments.move (moveComment)");
199600
+ const moveComment = requireEditorCommand2(editor.commands?.moveComment, "comments.patch (moveComment)");
199575
199601
  if (input2.target.range.start === input2.target.range.end) {
199576
199602
  return {
199577
199603
  success: false,
@@ -199621,7 +199647,7 @@ function moveCommentHandler2(editor, input2, options) {
199621
199647
  return { success: true, updated: [toCommentAddress2(identity2.commentId)] };
199622
199648
  }
199623
199649
  function resolveCommentHandler2(editor, input2, options) {
199624
- const resolveComment = requireEditorCommand2(editor.commands?.resolveComment, "comments.resolve (resolveComment)");
199650
+ const resolveComment = requireEditorCommand2(editor.commands?.resolveComment, "comments.patch (resolveComment)");
199625
199651
  const store = getCommentEntityStore2(editor);
199626
199652
  const identity2 = resolveCommentIdentity2(editor, input2.commentId);
199627
199653
  const existing = findCommentEntity2(store, identity2.commentId);
@@ -199788,6 +199814,7 @@ function listCommentsHandler2(editor, query2) {
199788
199814
  isInternal,
199789
199815
  status,
199790
199816
  target,
199817
+ anchoredText,
199791
199818
  createdTime,
199792
199819
  creatorName,
199793
199820
  creatorEmail,
@@ -199801,6 +199828,7 @@ function listCommentsHandler2(editor, query2) {
199801
199828
  isInternal,
199802
199829
  status,
199803
199830
  target,
199831
+ anchoredText,
199804
199832
  createdTime,
199805
199833
  creatorName,
199806
199834
  creatorEmail