docrev 0.10.2 → 0.11.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 (86) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +2 -0
  3. package/dist/lib/anchor-match.d.ts +3 -1
  4. package/dist/lib/anchor-match.d.ts.map +1 -1
  5. package/dist/lib/anchor-match.js +5 -7
  6. package/dist/lib/anchor-match.js.map +1 -1
  7. package/dist/lib/annotations.d.ts +0 -6
  8. package/dist/lib/annotations.d.ts.map +1 -1
  9. package/dist/lib/annotations.js +26 -8
  10. package/dist/lib/annotations.js.map +1 -1
  11. package/dist/lib/build.d.ts +52 -0
  12. package/dist/lib/build.d.ts.map +1 -1
  13. package/dist/lib/build.js +135 -6
  14. package/dist/lib/build.js.map +1 -1
  15. package/dist/lib/commands/build.d.ts.map +1 -1
  16. package/dist/lib/commands/build.js +39 -12
  17. package/dist/lib/commands/build.js.map +1 -1
  18. package/dist/lib/commands/doi.d.ts.map +1 -1
  19. package/dist/lib/commands/doi.js +14 -2
  20. package/dist/lib/commands/doi.js.map +1 -1
  21. package/dist/lib/commands/sync.d.ts.map +1 -1
  22. package/dist/lib/commands/sync.js +24 -11
  23. package/dist/lib/commands/sync.js.map +1 -1
  24. package/dist/lib/comment-realign.d.ts +12 -21
  25. package/dist/lib/comment-realign.d.ts.map +1 -1
  26. package/dist/lib/comment-realign.js +40 -348
  27. package/dist/lib/comment-realign.js.map +1 -1
  28. package/dist/lib/dependencies.d.ts +10 -0
  29. package/dist/lib/dependencies.d.ts.map +1 -1
  30. package/dist/lib/dependencies.js +41 -9
  31. package/dist/lib/dependencies.js.map +1 -1
  32. package/dist/lib/doi.d.ts.map +1 -1
  33. package/dist/lib/doi.js +68 -80
  34. package/dist/lib/doi.js.map +1 -1
  35. package/dist/lib/errors.d.ts.map +1 -1
  36. package/dist/lib/errors.js +3 -1
  37. package/dist/lib/errors.js.map +1 -1
  38. package/dist/lib/import.d.ts +7 -4
  39. package/dist/lib/import.d.ts.map +1 -1
  40. package/dist/lib/import.js +58 -62
  41. package/dist/lib/import.js.map +1 -1
  42. package/dist/lib/ooxml.d.ts +207 -0
  43. package/dist/lib/ooxml.d.ts.map +1 -0
  44. package/dist/lib/ooxml.js +634 -0
  45. package/dist/lib/ooxml.js.map +1 -0
  46. package/dist/lib/rate-limiter.d.ts +8 -0
  47. package/dist/lib/rate-limiter.d.ts.map +1 -1
  48. package/dist/lib/rate-limiter.js +41 -4
  49. package/dist/lib/rate-limiter.js.map +1 -1
  50. package/dist/lib/trackchanges.d.ts +41 -25
  51. package/dist/lib/trackchanges.d.ts.map +1 -1
  52. package/dist/lib/trackchanges.js +90 -151
  53. package/dist/lib/trackchanges.js.map +1 -1
  54. package/dist/lib/types.d.ts +9 -8
  55. package/dist/lib/types.d.ts.map +1 -1
  56. package/dist/lib/word-extraction.d.ts.map +1 -1
  57. package/dist/lib/word-extraction.js +48 -307
  58. package/dist/lib/word-extraction.js.map +1 -1
  59. package/dist/lib/word.d.ts.map +1 -1
  60. package/dist/lib/word.js +80 -175
  61. package/dist/lib/word.js.map +1 -1
  62. package/dist/lib/wordcomments.d.ts.map +1 -1
  63. package/dist/lib/wordcomments.js +53 -92
  64. package/dist/lib/wordcomments.js.map +1 -1
  65. package/lib/anchor-match.ts +6 -7
  66. package/lib/annotations.ts +28 -8
  67. package/lib/build.ts +196 -6
  68. package/lib/commands/build.ts +42 -12
  69. package/lib/commands/doi.ts +17 -1
  70. package/lib/commands/sync.ts +26 -13
  71. package/lib/comment-realign.ts +46 -464
  72. package/lib/dependencies.ts +43 -9
  73. package/lib/doi.ts +76 -94
  74. package/lib/errors.ts +5 -1
  75. package/lib/import.ts +65 -70
  76. package/lib/ooxml.ts +768 -0
  77. package/lib/rate-limiter.ts +37 -4
  78. package/lib/trackchanges.ts +102 -183
  79. package/lib/types.ts +9 -13
  80. package/lib/word-extraction.ts +49 -330
  81. package/lib/word.ts +86 -203
  82. package/lib/wordcomments.ts +53 -104
  83. package/package.json +137 -137
  84. package/skill/REFERENCE.md +14 -3
  85. package/skill/SKILL.md +12 -5
  86. package/types/index.d.ts +16 -10
@@ -13,7 +13,7 @@ import { promisify } from 'util';
13
13
  import { extractFromWord, } from './word-extraction.js';
14
14
  import { generateSmartDiff, cleanupAnnotations, fixCitationAnnotations, } from './diff-engine.js';
15
15
  import { restoreCrossrefFromWord, restoreImagesFromRegistry, convertVisibleComments, } from './restore-references.js';
16
- import { findAnchorInText, findAllOccurrences } from './anchor-match.js';
16
+ import { findAnchorInText } from './anchor-match.js';
17
17
  /**
18
18
  * Pick the best position from candidate `occurrences` given the
19
19
  * surrounding `before` / `after` context from the docx, while
@@ -22,7 +22,7 @@ import { findAnchorInText, findAllOccurrences } from './anchor-match.js';
22
22
  *
23
23
  * Returns the chosen position, or -1 if every candidate is already used.
24
24
  */
25
- function pickBestOccurrence(occurrences, result, before, after, anchorLen, usedPositions) {
25
+ function pickBestOccurrence(occurrences, result, before, after, anchorLen, usedPositions, nearPos) {
26
26
  if (occurrences.length === 0)
27
27
  return -1;
28
28
  if (occurrences.length === 1) {
@@ -32,6 +32,11 @@ function pickBestOccurrence(occurrences, result, before, after, anchorLen, usedP
32
32
  if (bestIdx < 0)
33
33
  return -1;
34
34
  let bestScore = -1;
35
+ // Tie-break by context score first; when scores tie, prefer the occurrence
36
+ // nearest `nearPos` (a section-position estimate) if given, else the
37
+ // leftmost. The estimate only orders equally-scored candidates — it is never
38
+ // the returned position.
39
+ const closer = (pos, incumbent) => nearPos === undefined ? pos < incumbent : Math.abs(pos - nearPos) < Math.abs(incumbent - nearPos);
35
40
  for (const pos of occurrences) {
36
41
  if (usedPositions.has(pos))
37
42
  continue;
@@ -58,7 +63,7 @@ function pickBestOccurrence(occurrences, result, before, after, anchorLen, usedP
58
63
  if (contextAfter.includes(afterLower.slice(0, 30)))
59
64
  score += 5;
60
65
  }
61
- if (score > bestScore || (score === bestScore && pos < bestIdx)) {
66
+ if (score > bestScore || (score === bestScore && closer(pos, bestIdx))) {
62
67
  bestScore = score;
63
68
  bestIdx = pos;
64
69
  }
@@ -70,6 +75,16 @@ export { extractFromWord, extractWordComments, extractCommentAnchors, extractHea
70
75
  export { generateSmartDiff, generateAnnotatedDiff, cleanupAnnotations, fixCitationAnnotations, } from './diff-engine.js';
71
76
  export { restoreCrossrefFromWord, restoreImagesFromRegistry, parseVisibleComments, convertVisibleComments, } from './restore-references.js';
72
77
  const execAsync = promisify(exec);
78
+ /**
79
+ * Whether a resolved placement landed on matched anchor/context text (high) or
80
+ * on an approximate position the user should review (low). Low-confidence
81
+ * strategies place the comment without matching the anchor word itself.
82
+ */
83
+ function placementConfidence(strategy) {
84
+ if (!strategy)
85
+ return 'high';
86
+ return /proportional|position-only|context/.test(strategy) ? 'low' : 'high';
87
+ }
73
88
  // ============================================
74
89
  // Functions
75
90
  // ============================================
@@ -149,6 +164,7 @@ export function insertCommentsIntoMarkdown(markdown, comments, anchors, options
149
164
  let result = markdown;
150
165
  let unmatchedCount = 0;
151
166
  let placedCount = 0;
167
+ let lowConfidenceCount = 0;
152
168
  const duplicateWarnings = [];
153
169
  const usedPositions = new Set(); // For tie-breaking: track used positions
154
170
  // Resolve threading: replies share their parent's anchor in Word, so they
@@ -198,23 +214,18 @@ export function insertCommentsIntoMarkdown(markdown, comments, anchors, options
198
214
  const after = typeof anchorData === 'object' ? anchorData.after : '';
199
215
  const isEmpty = typeof anchorData === 'object' && anchorData.isEmpty;
200
216
  const docPosition = typeof anchorData === 'object' ? anchorData.docPosition : undefined;
201
- // Position-based insertion (most reliable)
217
+ // Section-scoped insertion. The comment is known to belong to this
218
+ // section (the caller already filtered by docPosition); place it by
219
+ // matching its anchor text within the section, never by mapping a length
220
+ // ratio across the docx and markdown coordinate systems. The section
221
+ // estimate only seeds duplicate tie-breaking and the final fallback.
202
222
  if (sectionBoundary && docPosition !== undefined) {
203
223
  const sectionLength = sectionBoundary.end - sectionBoundary.start;
204
224
  if (sectionLength > 0) {
205
- let relativePos;
206
- if (docPosition < sectionBoundary.start) {
207
- relativePos = 0;
208
- }
209
- else {
210
- relativePos = docPosition - sectionBoundary.start;
211
- }
225
+ const relativePos = docPosition < sectionBoundary.start ? 0 : docPosition - sectionBoundary.start;
212
226
  const proportion = Math.min(relativePos / sectionLength, 1.0);
213
- const markdownPos = Math.floor(proportion * result.length);
214
- // For empty anchors, before/after context is the only signal that
215
- // pinpoints the original split — without it, proportional placement
216
- // can land mid-word or split unrelated phrases. Try context match
217
- // first; only fall through to proportional when context is gone.
227
+ const estimatedPos = Math.floor(proportion * result.length);
228
+ // Empty anchor: before/after context is the only text signal.
218
229
  if ((!anchor || isEmpty) && (before || after)) {
219
230
  const ctx = findAnchorInText('', result, before, after);
220
231
  if (ctx.occurrences.length > 0) {
@@ -222,56 +233,31 @@ export function insertCommentsIntoMarkdown(markdown, comments, anchors, options
222
233
  return { ...c, pos, anchorText: null, isEmpty: true, strategy: `ctx:${ctx.strategy}` };
223
234
  }
224
235
  }
225
- let insertPos = markdownPos;
226
- // Look for nearby word boundary
227
- const searchWindow = result.slice(Math.max(0, markdownPos - 25), Math.min(result.length, markdownPos + 25));
228
- const spaceIdx = searchWindow.indexOf(' ', 25);
229
- if (spaceIdx !== -1 && spaceIdx < 50) {
230
- insertPos = Math.max(0, markdownPos - 25) + spaceIdx;
231
- }
232
- // If we have anchor text, try to find it near this position.
233
- // Collect ALL occurrences in the local window, then disambiguate
234
- // via before/after context + usedPositions — otherwise two
235
- // comments sharing the same anchor word would both collide at
236
- // the leftmost match. The context-scoring helper handles the
237
- // "repeated formulaic prose" case using docx-side context, which
238
- // is a stronger signal than raw distance to the proportional
239
- // insertPos (insertPos is itself an approximation).
236
+ // Non-empty anchor: locate it anywhere in the section text. Duplicates
237
+ // are disambiguated by before/after context and, only as a tie-break,
238
+ // by proximity to the section estimate.
240
239
  if (anchor && !isEmpty) {
241
- const searchStart = Math.max(0, insertPos - 200);
242
- const searchEnd = Math.min(result.length, insertPos + 200);
243
- const localSearch = result.slice(searchStart, searchEnd).toLowerCase();
244
- const anchorLower = anchor.toLowerCase();
245
- const localHits = findAllOccurrences(localSearch, anchorLower).map(i => searchStart + i);
246
- if (localHits.length > 0) {
247
- const chosen = pickBestOccurrence(localHits, result, before, after, anchor.length, usedPositions);
248
- if (chosen >= 0) {
249
- if (localHits.length > 1) {
250
- duplicateWarnings.push(`"${anchor.slice(0, 40)}${anchor.length > 40 ? '...' : ''}" appears ${localHits.length} times in section window`);
251
- }
252
- usedPositions.add(chosen);
253
- return { ...c, pos: chosen, anchorText: anchor, anchorEnd: chosen + anchor.length, strategy: 'position+text' };
240
+ const { occurrences, matchedAnchor, strategy } = findAnchorInText(anchor, result, before, after);
241
+ if (occurrences.length > 0) {
242
+ const anchorLen = matchedAnchor ? matchedAnchor.length : 0;
243
+ const chosen = pickBestOccurrence(occurrences, result, before, after, anchorLen, usedPositions, estimatedPos);
244
+ const finalIdx = chosen >= 0 ? chosen : occurrences[0];
245
+ if (occurrences.length > 1 && matchedAnchor) {
246
+ duplicateWarnings.push(`"${matchedAnchor.slice(0, 40)}${matchedAnchor.length > 40 ? '...' : ''}" appears ${occurrences.length} times in section`);
254
247
  }
255
- }
256
- // Try first few words
257
- const words = anchor.split(/\s+/).slice(0, 4).join(' ').toLowerCase();
258
- if (words.length >= 10) {
259
- const partialHits = findAllOccurrences(localSearch, words).map(i => searchStart + i);
260
- if (partialHits.length > 0) {
261
- const chosen = pickBestOccurrence(partialHits, result, before, after, words.length, usedPositions);
262
- if (chosen >= 0) {
263
- usedPositions.add(chosen);
264
- return { ...c, pos: chosen, anchorText: words, anchorEnd: chosen + words.length, strategy: 'position+partial' };
265
- }
248
+ usedPositions.add(finalIdx);
249
+ if (matchedAnchor) {
250
+ return { ...c, pos: finalIdx, anchorText: matchedAnchor, anchorEnd: finalIdx + anchorLen, strategy: `section:${strategy}` };
266
251
  }
252
+ return { ...c, pos: finalIdx, anchorText: null, strategy: `section:${strategy}` };
267
253
  }
268
254
  }
269
- // A docPosition at the very start of a section maps to markdownPos=0,
270
- // which sits before the file's `# Heading` line and gets rendered in
271
- // the previous section. Push past the heading line so the comment
272
- // stays inside the section it was authored in.
273
- insertPos = pushPastSectionHeading(result, insertPos);
274
- return { ...c, pos: insertPos, anchorText: null, strategy: 'position-only' };
255
+ // Anchor text and context are both gone from the section. The docx
256
+ // marker's offset is the only remaining signal: map it proportionally
257
+ // and snap to a word boundary. This is an approximate placement, not a
258
+ // match flagged low-confidence so the summary surfaces it.
259
+ const insertPos = pushPastSectionHeading(result, snapToWordBoundary(result, estimatedPos));
260
+ return { ...c, pos: insertPos, anchorText: null, strategy: 'proportional-fallback' };
275
261
  }
276
262
  }
277
263
  // Handle empty anchors
@@ -410,10 +396,17 @@ export function insertCommentsIntoMarkdown(markdown, comments, anchors, options
410
396
  else {
411
397
  result = result.slice(0, c.pos) + combined + result.slice(c.pos);
412
398
  }
413
- placedCount += 1 + replies.length;
399
+ // Replies inherit the root's confidence — they ride the same position.
400
+ if (placementConfidence(c.strategy) === 'low') {
401
+ lowConfidenceCount += 1 + replies.length;
402
+ }
403
+ else {
404
+ placedCount += 1 + replies.length;
405
+ }
414
406
  }
415
407
  if (outStats) {
416
408
  outStats.placed = placedCount;
409
+ outStats.lowConfidence = lowConfidenceCount;
417
410
  outStats.deduped = dedupedCount;
418
411
  outStats.unmatched = unmatchedCount;
419
412
  }
@@ -422,6 +415,9 @@ export function insertCommentsIntoMarkdown(markdown, comments, anchors, options
422
415
  if (unmatchedCount > 0) {
423
416
  console.warn(`Warning: ${unmatchedCount} comment(s) could not be matched to anchor text`);
424
417
  }
418
+ if (lowConfidenceCount > 0) {
419
+ console.warn(`Note: ${lowConfidenceCount} comment(s) placed approximately — run \`rev verify-anchors\` to review`);
420
+ }
425
421
  if (dedupedCount > 0) {
426
422
  console.warn(`Note: ${dedupedCount} comment(s) already present at anchor — skipped to avoid duplication`);
427
423
  }
@@ -1 +1 @@
1
- {"version":3,"file":"import.js","sourceRoot":"","sources":["../../lib/import.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"import.js","sourceRoot":"","sources":["../../lib/import.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,207 @@
1
+ /**
2
+ * Parser-backed OOXML layer.
3
+ *
4
+ * A `.docx` is a zip of XML parts. Reading those parts with regexes breaks on
5
+ * the variability real Word emits: marker elements carry attributes beyond
6
+ * `w:id`, anchor text spans many runs, the WordprocessingML namespace can be
7
+ * bound to a prefix other than `w`, runs are separated by `<w:tab/>`/`<w:br/>`,
8
+ * and prose lives in parts other than `document.xml` (footnotes, endnotes,
9
+ * headers, footers).
10
+ *
11
+ * This module tokenizes the XML structurally and walks it once into an ordered
12
+ * flow of paragraphs, runs, text, track-change spans, and comment-range
13
+ * markers. Every reader (text extraction, comment anchors, headings) and the
14
+ * comment injector derive from that single walk — there is no second engine to
15
+ * drift from.
16
+ */
17
+ import AdmZip from 'adm-zip';
18
+ export declare const WML_NS = "http://schemas.openxmlformats.org/wordprocessingml/2006/main";
19
+ /** Open a `.docx` package. Throws a clear error if it is not a valid zip. */
20
+ export declare function openDocx(docxPath: string): AdmZip;
21
+ /** Read a single part as UTF-8 text, or `null` when the part is absent. */
22
+ export declare function readPartText(zip: AdmZip, partName: string): string | null;
23
+ /**
24
+ * The WordprocessingML parts that carry running prose, in reading order:
25
+ * the main story first, then footnotes, endnotes, headers, and footers.
26
+ * A reader that opens only `document.xml` loses everything else.
27
+ */
28
+ export declare function listProseParts(zip: AdmZip): string[];
29
+ /** Decode the XML entities that appear in `.docx` text and attribute values. */
30
+ export declare function decodeXmlEntities(text: string): string;
31
+ /** Encode text for placement inside an XML element (`<w:t>`). */
32
+ export declare function encodeXmlText(text: string): string;
33
+ /** Encode text for placement inside a double-quoted XML attribute value. */
34
+ export declare function encodeXmlAttr(text: string): string;
35
+ export interface XmlAttr {
36
+ /** Qualified name as written, e.g. `w:id`. */
37
+ name: string;
38
+ prefix: string;
39
+ local: string;
40
+ /** Entity-decoded value. */
41
+ value: string;
42
+ }
43
+ export type XmlTokenKind = 'open' | 'close' | 'selfclose' | 'text' | 'comment' | 'cdata' | 'decl' | 'pi';
44
+ export interface XmlToken {
45
+ kind: XmlTokenKind;
46
+ /** Byte offset of `<` (or text start) in the source. */
47
+ start: number;
48
+ /** Byte offset just past `>` (or text end) in the source. */
49
+ end: number;
50
+ /** Exact source slice [start, end). */
51
+ raw: string;
52
+ name?: string;
53
+ prefix?: string;
54
+ local?: string;
55
+ attrs?: XmlAttr[];
56
+ /** Entity-decoded text, for `text` and `cdata` tokens. */
57
+ text?: string;
58
+ }
59
+ /**
60
+ * Tokenize an XML string into an ordered, offset-tagged token stream.
61
+ * Quote-aware so a raw `>` inside an attribute value does not end a tag early.
62
+ */
63
+ export declare function tokenizeXml(xml: string): XmlToken[];
64
+ export interface NsContext {
65
+ uriForPrefix(prefix: string): string | undefined;
66
+ /** True when an element token lives in the WordprocessingML namespace. */
67
+ isWml(token: XmlToken): boolean;
68
+ /** Value of the WML-namespaced attribute with the given local name, if present. */
69
+ wmlAttr(token: XmlToken, local: string): string | undefined;
70
+ }
71
+ /**
72
+ * Build a namespace context from a token stream. Declarations are read from
73
+ * every element (the root carries them in practice), so the WML namespace is
74
+ * matched by URI rather than by assuming the `w` prefix.
75
+ */
76
+ export declare function resolveNamespaces(tokens: XmlToken[]): NsContext;
77
+ export type FlowItem = {
78
+ kind: 'text';
79
+ text: string;
80
+ } | {
81
+ kind: 'paraStart';
82
+ style: string | null;
83
+ level: number;
84
+ xmlStart: number;
85
+ } | {
86
+ kind: 'paraEnd';
87
+ } | {
88
+ kind: 'runStart';
89
+ xmlStart: number;
90
+ xmlContentStart: number;
91
+ } | {
92
+ kind: 'runEnd';
93
+ xmlEnd: number;
94
+ } | {
95
+ kind: 'commentStart';
96
+ id: string;
97
+ xmlStart: number;
98
+ xmlEnd: number;
99
+ } | {
100
+ kind: 'commentEnd';
101
+ id: string;
102
+ xmlStart: number;
103
+ xmlEnd: number;
104
+ } | {
105
+ kind: 'commentRef';
106
+ id: string;
107
+ } | {
108
+ kind: 'insStart';
109
+ } | {
110
+ kind: 'insEnd';
111
+ } | {
112
+ kind: 'delStart';
113
+ } | {
114
+ kind: 'delEnd';
115
+ };
116
+ /**
117
+ * Walk a part's XML once into an ordered flow. Text-bearing items appear in
118
+ * document order interleaved with paragraph, run, track-change, and
119
+ * comment-range boundaries, each tagged with the source offsets a later
120
+ * injection step needs.
121
+ */
122
+ export declare function walkBody(xml: string, ns?: NsContext): FlowItem[];
123
+ export interface CommentRange {
124
+ id: string;
125
+ /** Concatenated anchor text between the range markers. */
126
+ anchor: string;
127
+ /** Start offset of the anchor in `text`. */
128
+ start: number;
129
+ /** End offset of the anchor in `text`. */
130
+ end: number;
131
+ /** True when the range encloses no text (a zero-width / point anchor). */
132
+ isEmpty: boolean;
133
+ }
134
+ export interface DocTextModel {
135
+ /** Plain text: runs concatenated, paragraphs joined with nothing between. */
136
+ text: string;
137
+ /** Comment ranges with offsets into `text`. */
138
+ comments: CommentRange[];
139
+ /** Heading paragraphs with their offset into `text`. */
140
+ headings: Array<{
141
+ style: string;
142
+ level: number;
143
+ text: string;
144
+ position: number;
145
+ }>;
146
+ }
147
+ /**
148
+ * Build the plain-text model used for comment-anchor matching. Runs are
149
+ * concatenated and paragraphs are joined with no separator, matching the
150
+ * coordinate system the placement engine expects, but namespace-aware and
151
+ * robust to marker-attribute variation and multi-run anchors.
152
+ */
153
+ export declare function buildDocTextModel(xml: string): DocTextModel;
154
+ export interface TextRunSlot {
155
+ /** Source offset of the enclosing run's `<w:r>`. */
156
+ runOpenStart: number;
157
+ /** Source offset just past the enclosing run's `</w:r>`. */
158
+ runCloseEnd: number;
159
+ /** Raw `<w:rPr>...</w:rPr>` of the enclosing run, or '' when it has none. */
160
+ rPr: string;
161
+ /** Raw opening `<w:t ...>` tag of this text element. */
162
+ tOpenTag: string;
163
+ /** Source offset just past `<w:t ...>`. */
164
+ contentStart: number;
165
+ /** Source offset of `</w:t>`. */
166
+ contentEnd: number;
167
+ /** Raw (still XML-encoded) text between the `<w:t>` tags. */
168
+ content: string;
169
+ }
170
+ /**
171
+ * Index every `<w:t>` text element with its enclosing run's exact boundaries
172
+ * and run properties, derived from the token nesting rather than by scanning
173
+ * backwards for the nearest `<w:r`. This locates the correct run even when the
174
+ * text sits inside a hyperlink, a field, or an `mc:AlternateContent` block, and
175
+ * naturally ignores marker-like text that lives in attributes (it is not inside
176
+ * a `<w:t>`).
177
+ */
178
+ export declare function indexTextRuns(xml: string): TextRunSlot[];
179
+ export interface ExtractedComment {
180
+ id: string;
181
+ author: string;
182
+ /** Full ISO date string as written, or '' when absent. */
183
+ date: string;
184
+ text: string;
185
+ /** Parent comment id for a reply, resolved from commentsExtended.xml. */
186
+ parentId?: string;
187
+ }
188
+ /**
189
+ * Extract comment bodies from `word/comments.xml` and reply threading from
190
+ * `word/commentsExtended.xml`. Structural elements are matched by local name
191
+ * in the WordprocessingML namespace, so a document that binds WML to a prefix
192
+ * other than `w` still yields its comments.
193
+ */
194
+ export declare function extractComments(zip: AdmZip): ExtractedComment[];
195
+ /** Parts that can carry comment ranges, in reading order. */
196
+ export declare const COMMENT_PARTS: string[];
197
+ /**
198
+ * Comment ranges across every part that can hold them — not just
199
+ * `document.xml`, so a comment anchored in a footnote or endnote is found
200
+ * rather than silently lost. Positions are offsets into the concatenated
201
+ * `fullDocText`.
202
+ */
203
+ export declare function buildCommentAnchorModel(zip: AdmZip): {
204
+ fullDocText: string;
205
+ comments: CommentRange[];
206
+ };
207
+ //# sourceMappingURL=ooxml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ooxml.d.ts","sourceRoot":"","sources":["../../lib/ooxml.ts"],"names":[],"mappings":"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"}