docrev 0.8.1 → 0.8.5

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 (306) hide show
  1. package/.claude/settings.local.json +9 -0
  2. package/PLAN-tables-and-postprocess.md +850 -0
  3. package/README.md +33 -0
  4. package/bin/rev.js +12 -131
  5. package/bin/rev.ts +145 -0
  6. package/dist/bin/rev.d.ts +9 -0
  7. package/dist/bin/rev.d.ts.map +1 -0
  8. package/dist/bin/rev.js +118 -0
  9. package/dist/bin/rev.js.map +1 -0
  10. package/dist/lib/annotations.d.ts +91 -0
  11. package/dist/lib/annotations.d.ts.map +1 -0
  12. package/dist/lib/annotations.js +554 -0
  13. package/dist/lib/annotations.js.map +1 -0
  14. package/dist/lib/build.d.ts +171 -0
  15. package/dist/lib/build.d.ts.map +1 -0
  16. package/dist/lib/build.js +755 -0
  17. package/dist/lib/build.js.map +1 -0
  18. package/dist/lib/citations.d.ts +34 -0
  19. package/dist/lib/citations.d.ts.map +1 -0
  20. package/dist/lib/citations.js +140 -0
  21. package/dist/lib/citations.js.map +1 -0
  22. package/dist/lib/commands/build.d.ts +13 -0
  23. package/dist/lib/commands/build.d.ts.map +1 -0
  24. package/dist/lib/commands/build.js +678 -0
  25. package/dist/lib/commands/build.js.map +1 -0
  26. package/dist/lib/commands/citations.d.ts +11 -0
  27. package/dist/lib/commands/citations.d.ts.map +1 -0
  28. package/dist/lib/commands/citations.js +428 -0
  29. package/dist/lib/commands/citations.js.map +1 -0
  30. package/dist/lib/commands/comments.d.ts +11 -0
  31. package/dist/lib/commands/comments.d.ts.map +1 -0
  32. package/dist/lib/commands/comments.js +883 -0
  33. package/dist/lib/commands/comments.js.map +1 -0
  34. package/dist/lib/commands/context.d.ts +35 -0
  35. package/dist/lib/commands/context.d.ts.map +1 -0
  36. package/dist/lib/commands/context.js +59 -0
  37. package/dist/lib/commands/context.js.map +1 -0
  38. package/dist/lib/commands/core.d.ts +11 -0
  39. package/dist/lib/commands/core.d.ts.map +1 -0
  40. package/dist/lib/commands/core.js +246 -0
  41. package/dist/lib/commands/core.js.map +1 -0
  42. package/dist/lib/commands/doi.d.ts +11 -0
  43. package/dist/lib/commands/doi.d.ts.map +1 -0
  44. package/dist/lib/commands/doi.js +373 -0
  45. package/dist/lib/commands/doi.js.map +1 -0
  46. package/dist/lib/commands/history.d.ts +11 -0
  47. package/dist/lib/commands/history.d.ts.map +1 -0
  48. package/dist/lib/commands/history.js +245 -0
  49. package/dist/lib/commands/history.js.map +1 -0
  50. package/dist/lib/commands/index.d.ts +28 -0
  51. package/dist/lib/commands/index.d.ts.map +1 -0
  52. package/dist/lib/commands/index.js +35 -0
  53. package/dist/lib/commands/index.js.map +1 -0
  54. package/dist/lib/commands/init.d.ts +11 -0
  55. package/dist/lib/commands/init.d.ts.map +1 -0
  56. package/dist/lib/commands/init.js +209 -0
  57. package/dist/lib/commands/init.js.map +1 -0
  58. package/dist/lib/commands/response.d.ts +11 -0
  59. package/dist/lib/commands/response.d.ts.map +1 -0
  60. package/dist/lib/commands/response.js +317 -0
  61. package/dist/lib/commands/response.js.map +1 -0
  62. package/dist/lib/commands/sections.d.ts +11 -0
  63. package/dist/lib/commands/sections.d.ts.map +1 -0
  64. package/dist/lib/commands/sections.js +1071 -0
  65. package/dist/lib/commands/sections.js.map +1 -0
  66. package/dist/lib/commands/utilities.d.ts +19 -0
  67. package/dist/lib/commands/utilities.d.ts.map +1 -0
  68. package/dist/lib/commands/utilities.js +2009 -0
  69. package/dist/lib/commands/utilities.js.map +1 -0
  70. package/dist/lib/comment-realign.d.ts +50 -0
  71. package/dist/lib/comment-realign.d.ts.map +1 -0
  72. package/dist/lib/comment-realign.js +372 -0
  73. package/dist/lib/comment-realign.js.map +1 -0
  74. package/dist/lib/config.d.ts +41 -0
  75. package/dist/lib/config.d.ts.map +1 -0
  76. package/dist/lib/config.js +76 -0
  77. package/dist/lib/config.js.map +1 -0
  78. package/dist/lib/crossref.d.ts +108 -0
  79. package/dist/lib/crossref.d.ts.map +1 -0
  80. package/dist/lib/crossref.js +597 -0
  81. package/dist/lib/crossref.js.map +1 -0
  82. package/dist/lib/dependencies.d.ts +30 -0
  83. package/dist/lib/dependencies.d.ts.map +1 -0
  84. package/dist/lib/dependencies.js +95 -0
  85. package/dist/lib/dependencies.js.map +1 -0
  86. package/dist/lib/doi-cache.d.ts +29 -0
  87. package/dist/lib/doi-cache.d.ts.map +1 -0
  88. package/dist/lib/doi-cache.js +104 -0
  89. package/dist/lib/doi-cache.js.map +1 -0
  90. package/dist/lib/doi.d.ts +65 -0
  91. package/dist/lib/doi.d.ts.map +1 -0
  92. package/dist/lib/doi.js +710 -0
  93. package/dist/lib/doi.js.map +1 -0
  94. package/dist/lib/equations.d.ts +61 -0
  95. package/dist/lib/equations.d.ts.map +1 -0
  96. package/dist/lib/equations.js +445 -0
  97. package/dist/lib/equations.js.map +1 -0
  98. package/dist/lib/errors.d.ts +60 -0
  99. package/dist/lib/errors.d.ts.map +1 -0
  100. package/dist/lib/errors.js +303 -0
  101. package/dist/lib/errors.js.map +1 -0
  102. package/dist/lib/format.d.ts +104 -0
  103. package/dist/lib/format.d.ts.map +1 -0
  104. package/dist/lib/format.js +416 -0
  105. package/dist/lib/format.js.map +1 -0
  106. package/dist/lib/git.d.ts +88 -0
  107. package/dist/lib/git.d.ts.map +1 -0
  108. package/dist/lib/git.js +304 -0
  109. package/dist/lib/git.js.map +1 -0
  110. package/dist/lib/grammar.d.ts +62 -0
  111. package/dist/lib/grammar.d.ts.map +1 -0
  112. package/dist/lib/grammar.js +244 -0
  113. package/dist/lib/grammar.js.map +1 -0
  114. package/dist/lib/image-registry.d.ts +68 -0
  115. package/dist/lib/image-registry.d.ts.map +1 -0
  116. package/dist/lib/image-registry.js +112 -0
  117. package/dist/lib/image-registry.js.map +1 -0
  118. package/dist/lib/import.d.ts +184 -0
  119. package/dist/lib/import.d.ts.map +1 -0
  120. package/dist/lib/import.js +1581 -0
  121. package/dist/lib/import.js.map +1 -0
  122. package/dist/lib/journals.d.ts +55 -0
  123. package/dist/lib/journals.d.ts.map +1 -0
  124. package/dist/lib/journals.js +417 -0
  125. package/dist/lib/journals.js.map +1 -0
  126. package/dist/lib/merge.d.ts +138 -0
  127. package/dist/lib/merge.d.ts.map +1 -0
  128. package/dist/lib/merge.js +603 -0
  129. package/dist/lib/merge.js.map +1 -0
  130. package/dist/lib/orcid.d.ts +36 -0
  131. package/dist/lib/orcid.d.ts.map +1 -0
  132. package/dist/lib/orcid.js +117 -0
  133. package/dist/lib/orcid.js.map +1 -0
  134. package/dist/lib/pdf-comments.d.ts +95 -0
  135. package/dist/lib/pdf-comments.d.ts.map +1 -0
  136. package/dist/lib/pdf-comments.js +192 -0
  137. package/dist/lib/pdf-comments.js.map +1 -0
  138. package/dist/lib/pdf-import.d.ts +118 -0
  139. package/dist/lib/pdf-import.d.ts.map +1 -0
  140. package/dist/lib/pdf-import.js +397 -0
  141. package/dist/lib/pdf-import.js.map +1 -0
  142. package/dist/lib/plugins.d.ts +76 -0
  143. package/dist/lib/plugins.d.ts.map +1 -0
  144. package/dist/lib/plugins.js +235 -0
  145. package/dist/lib/plugins.js.map +1 -0
  146. package/dist/lib/postprocess.d.ts +42 -0
  147. package/dist/lib/postprocess.d.ts.map +1 -0
  148. package/dist/lib/postprocess.js +138 -0
  149. package/dist/lib/postprocess.js.map +1 -0
  150. package/dist/lib/pptx-template.d.ts +59 -0
  151. package/dist/lib/pptx-template.d.ts.map +1 -0
  152. package/dist/lib/pptx-template.js +613 -0
  153. package/dist/lib/pptx-template.js.map +1 -0
  154. package/dist/lib/pptx-themes.d.ts +80 -0
  155. package/dist/lib/pptx-themes.d.ts.map +1 -0
  156. package/dist/lib/pptx-themes.js +818 -0
  157. package/dist/lib/pptx-themes.js.map +1 -0
  158. package/dist/lib/protect-restore.d.ts +137 -0
  159. package/dist/lib/protect-restore.d.ts.map +1 -0
  160. package/dist/lib/protect-restore.js +394 -0
  161. package/dist/lib/protect-restore.js.map +1 -0
  162. package/dist/lib/rate-limiter.d.ts +27 -0
  163. package/dist/lib/rate-limiter.d.ts.map +1 -0
  164. package/dist/lib/rate-limiter.js +79 -0
  165. package/dist/lib/rate-limiter.js.map +1 -0
  166. package/dist/lib/response.d.ts +41 -0
  167. package/dist/lib/response.d.ts.map +1 -0
  168. package/dist/lib/response.js +150 -0
  169. package/dist/lib/response.js.map +1 -0
  170. package/dist/lib/review.d.ts +35 -0
  171. package/dist/lib/review.d.ts.map +1 -0
  172. package/dist/lib/review.js +263 -0
  173. package/dist/lib/review.js.map +1 -0
  174. package/dist/lib/schema.d.ts +66 -0
  175. package/dist/lib/schema.d.ts.map +1 -0
  176. package/dist/lib/schema.js +339 -0
  177. package/dist/lib/schema.js.map +1 -0
  178. package/dist/lib/scientific-words.d.ts +6 -0
  179. package/dist/lib/scientific-words.d.ts.map +1 -0
  180. package/dist/lib/scientific-words.js +66 -0
  181. package/dist/lib/scientific-words.js.map +1 -0
  182. package/dist/lib/sections.d.ts +40 -0
  183. package/dist/lib/sections.d.ts.map +1 -0
  184. package/dist/lib/sections.js +288 -0
  185. package/dist/lib/sections.js.map +1 -0
  186. package/dist/lib/slides.d.ts +86 -0
  187. package/dist/lib/slides.d.ts.map +1 -0
  188. package/dist/lib/slides.js +676 -0
  189. package/dist/lib/slides.js.map +1 -0
  190. package/dist/lib/spelling.d.ts +76 -0
  191. package/dist/lib/spelling.d.ts.map +1 -0
  192. package/dist/lib/spelling.js +272 -0
  193. package/dist/lib/spelling.js.map +1 -0
  194. package/dist/lib/templates.d.ts +30 -0
  195. package/dist/lib/templates.d.ts.map +1 -0
  196. package/dist/lib/templates.js +504 -0
  197. package/dist/lib/templates.js.map +1 -0
  198. package/dist/lib/themes.d.ts +85 -0
  199. package/dist/lib/themes.d.ts.map +1 -0
  200. package/dist/lib/themes.js +652 -0
  201. package/dist/lib/themes.js.map +1 -0
  202. package/dist/lib/trackchanges.d.ts +51 -0
  203. package/dist/lib/trackchanges.d.ts.map +1 -0
  204. package/dist/lib/trackchanges.js +202 -0
  205. package/dist/lib/trackchanges.js.map +1 -0
  206. package/dist/lib/tui.d.ts +76 -0
  207. package/dist/lib/tui.d.ts.map +1 -0
  208. package/dist/lib/tui.js +377 -0
  209. package/dist/lib/tui.js.map +1 -0
  210. package/dist/lib/types.d.ts +447 -0
  211. package/dist/lib/types.d.ts.map +1 -0
  212. package/dist/lib/types.js +6 -0
  213. package/dist/lib/types.js.map +1 -0
  214. package/dist/lib/undo.d.ts +57 -0
  215. package/dist/lib/undo.d.ts.map +1 -0
  216. package/dist/lib/undo.js +185 -0
  217. package/dist/lib/undo.js.map +1 -0
  218. package/dist/lib/utils.d.ts +16 -0
  219. package/dist/lib/utils.d.ts.map +1 -0
  220. package/dist/lib/utils.js +40 -0
  221. package/dist/lib/utils.js.map +1 -0
  222. package/dist/lib/variables.d.ts +42 -0
  223. package/dist/lib/variables.d.ts.map +1 -0
  224. package/dist/lib/variables.js +141 -0
  225. package/dist/lib/variables.js.map +1 -0
  226. package/dist/lib/word.d.ts +80 -0
  227. package/dist/lib/word.d.ts.map +1 -0
  228. package/dist/lib/word.js +360 -0
  229. package/dist/lib/word.js.map +1 -0
  230. package/dist/lib/wordcomments.d.ts +51 -0
  231. package/dist/lib/wordcomments.d.ts.map +1 -0
  232. package/dist/lib/wordcomments.js +587 -0
  233. package/dist/lib/wordcomments.js.map +1 -0
  234. package/eslint.config.js +27 -0
  235. package/lib/annotations.ts +622 -0
  236. package/lib/apply-buildup-colors.py +88 -0
  237. package/lib/build.ts +1013 -0
  238. package/lib/{citations.js → citations.ts} +38 -27
  239. package/lib/commands/{build.js → build.ts} +80 -27
  240. package/lib/commands/{citations.js → citations.ts} +36 -18
  241. package/lib/commands/{comments.js → comments.ts} +187 -54
  242. package/lib/commands/{context.js → context.ts} +18 -8
  243. package/lib/commands/{core.js → core.ts} +34 -20
  244. package/lib/commands/{doi.js → doi.ts} +32 -16
  245. package/lib/commands/{history.js → history.ts} +25 -12
  246. package/lib/commands/{index.js → index.ts} +9 -5
  247. package/lib/commands/{init.js → init.ts} +20 -8
  248. package/lib/commands/{response.js → response.ts} +47 -20
  249. package/lib/commands/{sections.js → sections.ts} +273 -68
  250. package/lib/commands/{utilities.js → utilities.ts} +338 -158
  251. package/lib/{comment-realign.js → comment-realign.ts} +117 -45
  252. package/lib/config.ts +84 -0
  253. package/lib/{crossref.js → crossref.ts} +213 -138
  254. package/lib/dependencies.ts +106 -0
  255. package/lib/doi-cache.ts +115 -0
  256. package/lib/{doi.js → doi.ts} +115 -281
  257. package/lib/{equations.js → equations.ts} +60 -64
  258. package/lib/{errors.js → errors.ts} +56 -48
  259. package/lib/{format.js → format.ts} +137 -63
  260. package/lib/{git.js → git.ts} +66 -63
  261. package/lib/{grammar.js → grammar.ts} +45 -32
  262. package/lib/image-registry.ts +180 -0
  263. package/lib/import.ts +2060 -0
  264. package/lib/journals.ts +505 -0
  265. package/lib/{merge.js → merge.ts} +185 -135
  266. package/lib/{orcid.js → orcid.ts} +17 -22
  267. package/lib/{pdf-comments.js → pdf-comments.ts} +76 -18
  268. package/lib/{pdf-import.js → pdf-import.ts} +148 -70
  269. package/lib/{plugins.js → plugins.ts} +82 -39
  270. package/lib/postprocess.ts +188 -0
  271. package/lib/pptx-color-filter.lua +37 -0
  272. package/lib/pptx-template.ts +625 -0
  273. package/lib/pptx-themes/academic.pptx +0 -0
  274. package/lib/pptx-themes/corporate.pptx +0 -0
  275. package/lib/pptx-themes/dark.pptx +0 -0
  276. package/lib/pptx-themes/default.pptx +0 -0
  277. package/lib/pptx-themes/minimal.pptx +0 -0
  278. package/lib/pptx-themes/plant.pptx +0 -0
  279. package/lib/pptx-themes.ts +896 -0
  280. package/lib/protect-restore.ts +516 -0
  281. package/lib/rate-limiter.ts +94 -0
  282. package/lib/{response.js → response.ts} +36 -21
  283. package/lib/{review.js → review.ts} +53 -43
  284. package/lib/{schema.js → schema.ts} +70 -25
  285. package/lib/{sections.js → sections.ts} +71 -76
  286. package/lib/slides.ts +793 -0
  287. package/lib/{spelling.js → spelling.ts} +43 -59
  288. package/lib/{templates.js → templates.ts} +20 -17
  289. package/lib/themes.ts +742 -0
  290. package/lib/{trackchanges.js → trackchanges.ts} +52 -23
  291. package/lib/types.ts +509 -0
  292. package/lib/{undo.js → undo.ts} +75 -52
  293. package/lib/utils.ts +41 -0
  294. package/lib/{variables.js → variables.ts} +60 -54
  295. package/lib/word.ts +428 -0
  296. package/lib/{wordcomments.js → wordcomments.ts} +94 -40
  297. package/package.json +15 -5
  298. package/skill/REFERENCE.md +67 -0
  299. package/tsconfig.json +26 -0
  300. package/lib/annotations.js +0 -414
  301. package/lib/build.js +0 -639
  302. package/lib/config.js +0 -79
  303. package/lib/import.js +0 -1145
  304. package/lib/journals.js +0 -629
  305. package/lib/word.js +0 -225
  306. /package/lib/{scientific-words.js → scientific-words.ts} +0 -0
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Image registry utilities for tracking figures and tables in markdown documents
3
+ *
4
+ * The registry maps figure/table labels and display numbers to source paths,
5
+ * enabling Word import to match rendered figures back to original sources.
6
+ */
7
+ /**
8
+ * Image registry entry
9
+ */
10
+ interface ImageEntry {
11
+ caption: string;
12
+ path: string;
13
+ label: string | null;
14
+ type: 'fig' | 'tbl';
15
+ number?: string;
16
+ }
17
+ /**
18
+ * Image registry
19
+ */
20
+ interface ImageRegistry {
21
+ figures: ImageEntry[];
22
+ byLabel: Map<string, ImageEntry>;
23
+ byNumber: Map<string, ImageEntry>;
24
+ byCaption: Map<string, ImageEntry>;
25
+ }
26
+ /**
27
+ * Crossref registry info
28
+ */
29
+ interface CrossrefInfo {
30
+ num: number;
31
+ isSupp: boolean;
32
+ }
33
+ /**
34
+ * Crossref registry
35
+ */
36
+ interface CrossrefRegistry {
37
+ figures: Map<string, CrossrefInfo>;
38
+ tables: Map<string, CrossrefInfo>;
39
+ }
40
+ /**
41
+ * Saved registry data
42
+ */
43
+ interface RegistryData {
44
+ version: number;
45
+ created: string;
46
+ figures: ImageEntry[];
47
+ }
48
+ /**
49
+ * Pattern to extract markdown images with optional pandoc-crossref anchors
50
+ * Captures: ![caption](path){#fig:label} or ![caption](path)
51
+ * Groups: [1] = caption, [2] = path, [3] = label type (fig/tbl), [4] = label
52
+ */
53
+ export declare const IMAGE_PATTERN: RegExp;
54
+ /**
55
+ * Build image registry from markdown content
56
+ * Maps figure labels and display numbers to source paths
57
+ */
58
+ export declare function buildImageRegistry(content: string, crossrefRegistry?: CrossrefRegistry | null): ImageRegistry;
59
+ /**
60
+ * Write image registry to .rev directory
61
+ */
62
+ export declare function writeImageRegistry(directory: string, registry: ImageRegistry): string;
63
+ /**
64
+ * Read image registry from .rev directory
65
+ */
66
+ export declare function readImageRegistry(directory: string): (ImageRegistry & RegistryData) | null;
67
+ export {};
68
+ //# sourceMappingURL=image-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-registry.d.ts","sourceRoot":"","sources":["../../lib/image-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;GAEG;AACH,UAAU,UAAU;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,KAAK,GAAG,KAAK,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,UAAU,aAAa;IACrB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACjC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,UAAU,gBAAgB;IACxB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,QAAyD,CAAC;AAEpF;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,gBAAgB,GAAE,gBAAgB,GAAG,IAAW,GAC/C,aAAa,CA6Cf;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CAiBrF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,aAAa,GAAG,YAAY,CAAC,GAAG,IAAI,CAqC1F"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Image registry utilities for tracking figures and tables in markdown documents
3
+ *
4
+ * The registry maps figure/table labels and display numbers to source paths,
5
+ * enabling Word import to match rendered figures back to original sources.
6
+ */
7
+ import * as fs from 'fs';
8
+ import * as path from 'path';
9
+ /**
10
+ * Pattern to extract markdown images with optional pandoc-crossref anchors
11
+ * Captures: ![caption](path){#fig:label} or ![caption](path)
12
+ * Groups: [1] = caption, [2] = path, [3] = label type (fig/tbl), [4] = label
13
+ */
14
+ export const IMAGE_PATTERN = /!\[([^\]]*)\]\(([^)]+)\)(?:\{#(fig|tbl):([^}]+)\})?/g;
15
+ /**
16
+ * Build image registry from markdown content
17
+ * Maps figure labels and display numbers to source paths
18
+ */
19
+ export function buildImageRegistry(content, crossrefRegistry = null) {
20
+ const figures = [];
21
+ const byLabel = new Map();
22
+ const byNumber = new Map();
23
+ const byCaption = new Map();
24
+ IMAGE_PATTERN.lastIndex = 0;
25
+ let match;
26
+ while ((match = IMAGE_PATTERN.exec(content)) !== null) {
27
+ const caption = match[1];
28
+ const imagePath = match[2];
29
+ const labelType = match[3]; // 'fig' or 'tbl' or undefined
30
+ const label = match[4]; // label without prefix
31
+ const entry = {
32
+ caption,
33
+ path: imagePath,
34
+ label: label || null,
35
+ type: labelType || 'fig',
36
+ };
37
+ // Add display number if we have a crossref registry
38
+ if (label && crossrefRegistry) {
39
+ const info = crossrefRegistry.figures.get(label) || crossrefRegistry.tables.get(label);
40
+ if (info) {
41
+ entry.number = info.isSupp ? `S${info.num}` : `${info.num}`;
42
+ byNumber.set(`${entry.type}:${entry.number}`, entry);
43
+ }
44
+ }
45
+ figures.push(entry);
46
+ if (label) {
47
+ byLabel.set(`${labelType || 'fig'}:${label}`, entry);
48
+ }
49
+ // Index by first 50 chars of caption for fuzzy matching
50
+ if (caption) {
51
+ const captionKey = caption.slice(0, 50).toLowerCase().trim();
52
+ byCaption.set(captionKey, entry);
53
+ }
54
+ }
55
+ return { figures, byLabel, byNumber, byCaption };
56
+ }
57
+ /**
58
+ * Write image registry to .rev directory
59
+ */
60
+ export function writeImageRegistry(directory, registry) {
61
+ const revDir = path.join(directory, '.rev');
62
+ if (!fs.existsSync(revDir)) {
63
+ fs.mkdirSync(revDir, { recursive: true });
64
+ }
65
+ // Convert Maps to objects for JSON serialization
66
+ const data = {
67
+ version: 1,
68
+ created: new Date().toISOString(),
69
+ figures: registry.figures,
70
+ };
71
+ const registryPath = path.join(revDir, 'image-registry.json');
72
+ fs.writeFileSync(registryPath, JSON.stringify(data, null, 2), 'utf-8');
73
+ return registryPath;
74
+ }
75
+ /**
76
+ * Read image registry from .rev directory
77
+ */
78
+ export function readImageRegistry(directory) {
79
+ const registryPath = path.join(directory, '.rev', 'image-registry.json');
80
+ if (!fs.existsSync(registryPath)) {
81
+ return null;
82
+ }
83
+ try {
84
+ const data = JSON.parse(fs.readFileSync(registryPath, 'utf-8'));
85
+ // Rebuild lookup maps from figures array
86
+ const byLabel = new Map();
87
+ const byNumber = new Map();
88
+ const byCaption = new Map();
89
+ for (const entry of data.figures || []) {
90
+ if (entry.label) {
91
+ byLabel.set(`${entry.type || 'fig'}:${entry.label}`, entry);
92
+ }
93
+ if (entry.number) {
94
+ byNumber.set(`${entry.type || 'fig'}:${entry.number}`, entry);
95
+ }
96
+ if (entry.caption) {
97
+ const captionKey = entry.caption.slice(0, 50).toLowerCase().trim();
98
+ byCaption.set(captionKey, entry);
99
+ }
100
+ }
101
+ return {
102
+ ...data,
103
+ byLabel,
104
+ byNumber,
105
+ byCaption,
106
+ };
107
+ }
108
+ catch (err) {
109
+ return null;
110
+ }
111
+ }
112
+ //# sourceMappingURL=image-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-registry.js","sourceRoot":"","sources":["../../lib/image-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,184 @@
1
+ /**
2
+ * Import functionality - convert Word docs to annotated Markdown
3
+ */
4
+ interface WordComment {
5
+ id: string;
6
+ author: string;
7
+ date: string;
8
+ text: string;
9
+ }
10
+ interface CommentAnchorData {
11
+ anchor: string;
12
+ before: string;
13
+ after: string;
14
+ docPosition: number;
15
+ docLength: number;
16
+ isEmpty: boolean;
17
+ }
18
+ interface CommentAnchorsResult {
19
+ anchors: Map<string, CommentAnchorData>;
20
+ fullDocText: string;
21
+ }
22
+ interface WordTable {
23
+ markdown: string;
24
+ rowCount: number;
25
+ colCount: number;
26
+ }
27
+ interface ExtractFromWordOptions {
28
+ mediaDir?: string;
29
+ skipMediaExtraction?: boolean;
30
+ }
31
+ interface ExtractMessage {
32
+ type: 'info' | 'warning';
33
+ message: string;
34
+ }
35
+ interface ExtractFromWordResult {
36
+ text: string;
37
+ comments: WordComment[];
38
+ anchors: Map<string, CommentAnchorData>;
39
+ messages: ExtractMessage[];
40
+ extractedMedia: string[];
41
+ tables: WordTable[];
42
+ hasTrackChanges: boolean;
43
+ trackChangeStats: {
44
+ insertions: number;
45
+ deletions: number;
46
+ };
47
+ }
48
+ interface InsertCommentsOptions {
49
+ quiet?: boolean;
50
+ sectionBoundary?: {
51
+ start: number;
52
+ end: number;
53
+ } | null;
54
+ }
55
+ interface GenerateSmartDiffOptions {
56
+ wordTables?: WordTable[];
57
+ imageRegistry?: any;
58
+ }
59
+ interface RestoreCrossrefResult {
60
+ text: string;
61
+ restored: number;
62
+ messages: string[];
63
+ restoredLabels: Set<string>;
64
+ }
65
+ interface RestoreImagesResult {
66
+ text: string;
67
+ restored: number;
68
+ messages: string[];
69
+ }
70
+ interface ImportWordWithTrackChangesOptions {
71
+ mediaDir?: string;
72
+ projectDir?: string;
73
+ }
74
+ interface ImportWordWithTrackChangesResult {
75
+ text: string;
76
+ stats: {
77
+ insertions: number;
78
+ deletions: number;
79
+ substitutions: number;
80
+ comments: number;
81
+ total: number;
82
+ hasTrackChanges: boolean;
83
+ trackChangeStats: {
84
+ insertions: number;
85
+ deletions: number;
86
+ };
87
+ };
88
+ extractedMedia: string[];
89
+ comments: WordComment[];
90
+ }
91
+ interface ImportFromWordOptions {
92
+ author?: string;
93
+ sectionContent?: string;
94
+ figuresDir?: string;
95
+ wordTables?: WordTable[];
96
+ }
97
+ interface ImportFromWordResult {
98
+ annotated: string;
99
+ stats: {
100
+ insertions: number;
101
+ deletions: number;
102
+ substitutions: number;
103
+ comments: number;
104
+ total: number;
105
+ };
106
+ extractedMedia: string[];
107
+ }
108
+ interface MovedFile {
109
+ from: string;
110
+ to: string;
111
+ name: string;
112
+ }
113
+ interface MoveExtractedMediaResult {
114
+ moved: MovedFile[];
115
+ errors: string[];
116
+ }
117
+ /**
118
+ * Extract comments directly from Word docx comments.xml
119
+ */
120
+ export declare function extractWordComments(docxPath: string): Promise<WordComment[]>;
121
+ /**
122
+ * Extract comment anchor texts from document.xml with surrounding context
123
+ * Returns map of comment ID -> {anchor, before, after, docPosition, isEmpty} for better matching
124
+ * Also returns fullDocText for section boundary matching
125
+ */
126
+ export declare function extractCommentAnchors(docxPath: string): Promise<CommentAnchorsResult>;
127
+ /**
128
+ * Extract tables directly from Word document XML and convert to markdown pipe tables
129
+ */
130
+ export declare function extractWordTables(docxPath: string): Promise<WordTable[]>;
131
+ /**
132
+ * Extract text from Word document using pandoc with track changes preserved
133
+ */
134
+ export declare function extractFromWord(docxPath: string, options?: ExtractFromWordOptions): Promise<ExtractFromWordResult>;
135
+ /**
136
+ * Insert comments into markdown text based on anchor texts with context
137
+ */
138
+ export declare function insertCommentsIntoMarkdown(markdown: string, comments: WordComment[], anchors: Map<string, CommentAnchorData | string>, options?: InsertCommentsOptions): string;
139
+ /**
140
+ * Generate annotated markdown by diffing original MD against Word text
141
+ */
142
+ export declare function generateAnnotatedDiff(originalMd: string, wordText: string, author?: string): string;
143
+ /**
144
+ * Smart paragraph-level diff that preserves markdown structure
145
+ */
146
+ export declare function generateSmartDiff(originalMd: string, wordText: string, author?: string, options?: GenerateSmartDiffOptions): string;
147
+ /**
148
+ * Clean up redundant adjacent annotations
149
+ */
150
+ export declare function cleanupAnnotations(text: string): string;
151
+ /**
152
+ * Parse visible comment markers from Word text
153
+ */
154
+ export declare function parseVisibleComments(text: string): Array<{
155
+ author: string;
156
+ text: string;
157
+ position: number;
158
+ }>;
159
+ /**
160
+ * Convert visible comments to CriticMarkup format
161
+ */
162
+ export declare function convertVisibleComments(text: string): string;
163
+ /**
164
+ * Restore pandoc-crossref figure/table references from Word-rendered format
165
+ */
166
+ export declare function restoreCrossrefFromWord(text: string, projectDir: string, restoredLabels?: Set<string> | null): RestoreCrossrefResult;
167
+ /**
168
+ * Restore proper markdown image syntax from Word-extracted text using image registry
169
+ */
170
+ export declare function restoreImagesFromRegistry(text: string, projectDir: string, restoredLabels?: Set<string> | null): RestoreImagesResult;
171
+ /**
172
+ * Import Word document with track changes directly as CriticMarkup
173
+ */
174
+ export declare function importWordWithTrackChanges(docxPath: string, options?: ImportWordWithTrackChangesOptions): Promise<ImportWordWithTrackChangesResult>;
175
+ /**
176
+ * Legacy import function: Word doc → annotated MD via diff
177
+ */
178
+ export declare function importFromWord(docxPath: string, originalMdPath: string, options?: ImportFromWordOptions): Promise<ImportFromWordResult>;
179
+ /**
180
+ * Move extracted media files to a figures directory with better names
181
+ */
182
+ export declare function moveExtractedMedia(mediaFiles: string[], figuresDir: string, prefix?: string): MoveExtractedMediaResult;
183
+ export {};
184
+ //# sourceMappingURL=import.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../lib/import.ts"],"names":[],"mappings":"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"}