@fiduswriter/document 0.1.0-alpha.4 → 0.1.0-alpha.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 (550) hide show
  1. package/dist/bibliography/common.d.ts +9 -91
  2. package/dist/bibliography/common.d.ts.map +1 -1
  3. package/dist/bibliography/common.js +3 -2
  4. package/dist/bibliography/common.js.map +1 -1
  5. package/dist/bibliography/csl_bib.d.ts +1 -1
  6. package/dist/bibliography/csl_bib.d.ts.map +1 -1
  7. package/dist/bibliography/csl_bib.js +7 -7
  8. package/dist/bibliography/csl_bib.js.map +1 -1
  9. package/dist/citations/citeproc_sys.d.ts +9 -10
  10. package/dist/citations/citeproc_sys.d.ts.map +1 -1
  11. package/dist/citations/citeproc_sys.js +6 -1
  12. package/dist/citations/citeproc_sys.js.map +1 -1
  13. package/dist/citations/format.d.ts +33 -16
  14. package/dist/citations/format.d.ts.map +1 -1
  15. package/dist/citations/format.js +29 -4
  16. package/dist/citations/format.js.map +1 -1
  17. package/dist/editor/e2ee/encryptor.d.ts +35 -35
  18. package/dist/editor/e2ee/encryptor.d.ts.map +1 -1
  19. package/dist/editor/e2ee/encryptor.js +31 -31
  20. package/dist/editor/e2ee/encryptor.js.map +1 -1
  21. package/dist/exporter/docx/citations.d.ts +27 -17
  22. package/dist/exporter/docx/citations.d.ts.map +1 -1
  23. package/dist/exporter/docx/citations.js +24 -7
  24. package/dist/exporter/docx/citations.js.map +1 -1
  25. package/dist/exporter/docx/comments.d.ts +15 -11
  26. package/dist/exporter/docx/comments.d.ts.map +1 -1
  27. package/dist/exporter/docx/comments.js +47 -14
  28. package/dist/exporter/docx/comments.js.map +1 -1
  29. package/dist/exporter/docx/footnotes.d.ts +36 -31
  30. package/dist/exporter/docx/footnotes.d.ts.map +1 -1
  31. package/dist/exporter/docx/footnotes.js +46 -12
  32. package/dist/exporter/docx/footnotes.js.map +1 -1
  33. package/dist/exporter/docx/images.d.ts +23 -12
  34. package/dist/exporter/docx/images.d.ts.map +1 -1
  35. package/dist/exporter/docx/images.js +35 -20
  36. package/dist/exporter/docx/images.js.map +1 -1
  37. package/dist/exporter/docx/index.d.ts +11 -17
  38. package/dist/exporter/docx/index.d.ts.map +1 -1
  39. package/dist/exporter/docx/index.js +15 -7
  40. package/dist/exporter/docx/index.js.map +1 -1
  41. package/dist/exporter/docx/lists.d.ts +27 -22
  42. package/dist/exporter/docx/lists.d.ts.map +1 -1
  43. package/dist/exporter/docx/lists.js +77 -30
  44. package/dist/exporter/docx/lists.js.map +1 -1
  45. package/dist/exporter/docx/math.d.ts +9 -9
  46. package/dist/exporter/docx/math.d.ts.map +1 -1
  47. package/dist/exporter/docx/math.js +22 -5
  48. package/dist/exporter/docx/math.js.map +1 -1
  49. package/dist/exporter/docx/metadata.d.ts +12 -9
  50. package/dist/exporter/docx/metadata.d.ts.map +1 -1
  51. package/dist/exporter/docx/metadata.js +59 -26
  52. package/dist/exporter/docx/metadata.js.map +1 -1
  53. package/dist/exporter/docx/rels.d.ts +14 -12
  54. package/dist/exporter/docx/rels.d.ts.map +1 -1
  55. package/dist/exporter/docx/rels.js +37 -22
  56. package/dist/exporter/docx/rels.js.map +1 -1
  57. package/dist/exporter/docx/render.d.ts +17 -15
  58. package/dist/exporter/docx/render.d.ts.map +1 -1
  59. package/dist/exporter/docx/render.js +37 -31
  60. package/dist/exporter/docx/render.js.map +1 -1
  61. package/dist/exporter/docx/richtext.d.ts +8 -8
  62. package/dist/exporter/docx/richtext.d.ts.map +1 -1
  63. package/dist/exporter/docx/richtext.js +61 -43
  64. package/dist/exporter/docx/richtext.js.map +1 -1
  65. package/dist/exporter/docx/tables.d.ts +11 -9
  66. package/dist/exporter/docx/tables.d.ts.map +1 -1
  67. package/dist/exporter/docx/tables.js +16 -10
  68. package/dist/exporter/docx/tables.js.map +1 -1
  69. package/dist/exporter/docx/tools.d.ts +3 -2
  70. package/dist/exporter/docx/tools.d.ts.map +1 -1
  71. package/dist/exporter/docx/tools.js +3 -3
  72. package/dist/exporter/docx/tools.js.map +1 -1
  73. package/dist/exporter/epub/index.d.ts +11 -3
  74. package/dist/exporter/epub/index.d.ts.map +1 -1
  75. package/dist/exporter/epub/index.js +10 -3
  76. package/dist/exporter/epub/index.js.map +1 -1
  77. package/dist/exporter/epub/templates.d.ts +62 -31
  78. package/dist/exporter/epub/templates.d.ts.map +1 -1
  79. package/dist/exporter/epub/templates.js +1 -1
  80. package/dist/exporter/epub/templates.js.map +1 -1
  81. package/dist/exporter/epub/tools.d.ts +12 -4
  82. package/dist/exporter/epub/tools.d.ts.map +1 -1
  83. package/dist/exporter/epub/tools.js +14 -13
  84. package/dist/exporter/epub/tools.js.map +1 -1
  85. package/dist/exporter/html/citations.d.ts +17 -15
  86. package/dist/exporter/html/citations.d.ts.map +1 -1
  87. package/dist/exporter/html/citations.js +37 -18
  88. package/dist/exporter/html/citations.js.map +1 -1
  89. package/dist/exporter/html/convert.d.ts +20 -70
  90. package/dist/exporter/html/convert.d.ts.map +1 -1
  91. package/dist/exporter/html/convert.js +74 -42
  92. package/dist/exporter/html/convert.js.map +1 -1
  93. package/dist/exporter/html/index.d.ts +55 -52
  94. package/dist/exporter/html/index.d.ts.map +1 -1
  95. package/dist/exporter/html/index.js +23 -3
  96. package/dist/exporter/html/index.js.map +1 -1
  97. package/dist/exporter/html/templates.d.ts +23 -9
  98. package/dist/exporter/html/templates.d.ts.map +1 -1
  99. package/dist/exporter/html/templates.js +1 -1
  100. package/dist/exporter/html/templates.js.map +1 -1
  101. package/dist/exporter/html/tools.d.ts +1 -1
  102. package/dist/exporter/html/tools.d.ts.map +1 -1
  103. package/dist/exporter/html/tools.js +2 -2
  104. package/dist/exporter/html/tools.js.map +1 -1
  105. package/dist/exporter/jats/bibliography.d.ts +2 -1
  106. package/dist/exporter/jats/bibliography.d.ts.map +1 -1
  107. package/dist/exporter/jats/bibliography.js +57 -52
  108. package/dist/exporter/jats/bibliography.js.map +1 -1
  109. package/dist/exporter/jats/citations.d.ts +13 -11
  110. package/dist/exporter/jats/citations.d.ts.map +1 -1
  111. package/dist/exporter/jats/citations.js +28 -6
  112. package/dist/exporter/jats/citations.js.map +1 -1
  113. package/dist/exporter/jats/convert.d.ts +24 -28
  114. package/dist/exporter/jats/convert.d.ts.map +1 -1
  115. package/dist/exporter/jats/convert.js +53 -36
  116. package/dist/exporter/jats/convert.js.map +1 -1
  117. package/dist/exporter/jats/index.d.ts +21 -15
  118. package/dist/exporter/jats/index.d.ts.map +1 -1
  119. package/dist/exporter/jats/index.js +21 -5
  120. package/dist/exporter/jats/index.js.map +1 -1
  121. package/dist/exporter/jats/templates.d.ts +17 -15
  122. package/dist/exporter/jats/templates.d.ts.map +1 -1
  123. package/dist/exporter/jats/templates.js.map +1 -1
  124. package/dist/exporter/jats/text.d.ts +3 -2
  125. package/dist/exporter/jats/text.d.ts.map +1 -1
  126. package/dist/exporter/jats/text.js +4 -4
  127. package/dist/exporter/jats/text.js.map +1 -1
  128. package/dist/exporter/latex/convert.d.ts +12 -15
  129. package/dist/exporter/latex/convert.d.ts.map +1 -1
  130. package/dist/exporter/latex/convert.js +70 -54
  131. package/dist/exporter/latex/convert.js.map +1 -1
  132. package/dist/exporter/latex/escape_latex.d.ts +1 -1
  133. package/dist/exporter/latex/escape_latex.d.ts.map +1 -1
  134. package/dist/exporter/latex/escape_latex.js +1 -1
  135. package/dist/exporter/latex/escape_latex.js.map +1 -1
  136. package/dist/exporter/latex/index.d.ts +20 -19
  137. package/dist/exporter/latex/index.d.ts.map +1 -1
  138. package/dist/exporter/latex/index.js +15 -5
  139. package/dist/exporter/latex/index.js.map +1 -1
  140. package/dist/exporter/latex/readme.d.ts +1 -1
  141. package/dist/exporter/latex/readme.d.ts.map +1 -1
  142. package/dist/exporter/latex/readme.js +2 -2
  143. package/dist/exporter/latex/readme.js.map +1 -1
  144. package/dist/exporter/native/copy.d.ts +30 -0
  145. package/dist/exporter/native/copy.d.ts.map +1 -0
  146. package/dist/exporter/native/copy.js +151 -0
  147. package/dist/exporter/native/copy.js.map +1 -0
  148. package/dist/exporter/native/file.d.ts +12 -0
  149. package/dist/exporter/native/file.d.ts.map +1 -0
  150. package/dist/exporter/native/file.js +38 -0
  151. package/dist/exporter/native/file.js.map +1 -0
  152. package/dist/exporter/native/index.d.ts +5 -0
  153. package/dist/exporter/native/index.d.ts.map +1 -0
  154. package/dist/exporter/native/index.js +5 -0
  155. package/dist/exporter/native/index.js.map +1 -0
  156. package/dist/exporter/native/revision.d.ts +18 -0
  157. package/dist/exporter/native/revision.d.ts.map +1 -0
  158. package/dist/exporter/native/revision.js +39 -0
  159. package/dist/exporter/native/revision.js.map +1 -0
  160. package/dist/exporter/native/shrink.d.ts +29 -14
  161. package/dist/exporter/native/shrink.d.ts.map +1 -1
  162. package/dist/exporter/native/shrink.js +27 -18
  163. package/dist/exporter/native/shrink.js.map +1 -1
  164. package/dist/exporter/native/zip.d.ts +25 -0
  165. package/dist/exporter/native/zip.d.ts.map +1 -0
  166. package/dist/exporter/native/zip.js +56 -0
  167. package/dist/exporter/native/zip.js.map +1 -0
  168. package/dist/exporter/odt/citations.d.ts +18 -15
  169. package/dist/exporter/odt/citations.d.ts.map +1 -1
  170. package/dist/exporter/odt/citations.js +21 -4
  171. package/dist/exporter/odt/citations.js.map +1 -1
  172. package/dist/exporter/odt/footnotes.d.ts +25 -19
  173. package/dist/exporter/odt/footnotes.d.ts.map +1 -1
  174. package/dist/exporter/odt/footnotes.js +23 -6
  175. package/dist/exporter/odt/footnotes.js.map +1 -1
  176. package/dist/exporter/odt/images.d.ts +23 -11
  177. package/dist/exporter/odt/images.d.ts.map +1 -1
  178. package/dist/exporter/odt/images.js +34 -26
  179. package/dist/exporter/odt/images.js.map +1 -1
  180. package/dist/exporter/odt/index.d.ts +12 -18
  181. package/dist/exporter/odt/index.d.ts.map +1 -1
  182. package/dist/exporter/odt/index.js +16 -7
  183. package/dist/exporter/odt/index.js.map +1 -1
  184. package/dist/exporter/odt/math.d.ts +10 -8
  185. package/dist/exporter/odt/math.d.ts.map +1 -1
  186. package/dist/exporter/odt/math.js +27 -4
  187. package/dist/exporter/odt/math.js.map +1 -1
  188. package/dist/exporter/odt/metadata.d.ts +13 -9
  189. package/dist/exporter/odt/metadata.d.ts.map +1 -1
  190. package/dist/exporter/odt/metadata.js +36 -15
  191. package/dist/exporter/odt/metadata.js.map +1 -1
  192. package/dist/exporter/odt/render.d.ts +17 -15
  193. package/dist/exporter/odt/render.d.ts.map +1 -1
  194. package/dist/exporter/odt/render.js +25 -18
  195. package/dist/exporter/odt/render.js.map +1 -1
  196. package/dist/exporter/odt/richtext.d.ts +9 -9
  197. package/dist/exporter/odt/richtext.d.ts.map +1 -1
  198. package/dist/exporter/odt/richtext.js +55 -40
  199. package/dist/exporter/odt/richtext.js.map +1 -1
  200. package/dist/exporter/odt/styles.d.ts +29 -21
  201. package/dist/exporter/odt/styles.d.ts.map +1 -1
  202. package/dist/exporter/odt/styles.js +44 -22
  203. package/dist/exporter/odt/styles.js.map +1 -1
  204. package/dist/exporter/odt/track.d.ts +14 -7
  205. package/dist/exporter/odt/track.d.ts.map +1 -1
  206. package/dist/exporter/odt/track.js +7 -0
  207. package/dist/exporter/odt/track.js.map +1 -1
  208. package/dist/exporter/pandoc/citations.d.ts +20 -14
  209. package/dist/exporter/pandoc/citations.d.ts.map +1 -1
  210. package/dist/exporter/pandoc/citations.js +18 -4
  211. package/dist/exporter/pandoc/citations.js.map +1 -1
  212. package/dist/exporter/pandoc/convert.d.ts +10 -29
  213. package/dist/exporter/pandoc/convert.d.ts.map +1 -1
  214. package/dist/exporter/pandoc/convert.js +45 -40
  215. package/dist/exporter/pandoc/convert.js.map +1 -1
  216. package/dist/exporter/pandoc/index.d.ts +20 -33
  217. package/dist/exporter/pandoc/index.d.ts.map +1 -1
  218. package/dist/exporter/pandoc/index.js +20 -8
  219. package/dist/exporter/pandoc/index.js.map +1 -1
  220. package/dist/exporter/pandoc/readme.d.ts +1 -1
  221. package/dist/exporter/pandoc/readme.d.ts.map +1 -1
  222. package/dist/exporter/pandoc/readme.js +0 -1
  223. package/dist/exporter/pandoc/readme.js.map +1 -1
  224. package/dist/exporter/pandoc/tools.d.ts +21 -5
  225. package/dist/exporter/pandoc/tools.d.ts.map +1 -1
  226. package/dist/exporter/pandoc/tools.js +2 -2
  227. package/dist/exporter/pandoc/tools.js.map +1 -1
  228. package/dist/exporter/print/index.d.ts +18 -7
  229. package/dist/exporter/print/index.d.ts.map +1 -1
  230. package/dist/exporter/print/index.js +12 -10
  231. package/dist/exporter/print/index.js.map +1 -1
  232. package/dist/exporter/tools/doc_content.d.ts +5 -6
  233. package/dist/exporter/tools/doc_content.d.ts.map +1 -1
  234. package/dist/exporter/tools/doc_content.js +17 -16
  235. package/dist/exporter/tools/doc_content.js.map +1 -1
  236. package/dist/exporter/tools/svg.d.ts +7 -1
  237. package/dist/exporter/tools/svg.d.ts.map +1 -1
  238. package/dist/exporter/tools/svg.js.map +1 -1
  239. package/dist/exporter/tools/xml.d.ts +39 -38
  240. package/dist/exporter/tools/xml.d.ts.map +1 -1
  241. package/dist/exporter/tools/xml.js +82 -55
  242. package/dist/exporter/tools/xml.js.map +1 -1
  243. package/dist/exporter/tools/xml_zip.d.ts +15 -14
  244. package/dist/exporter/tools/xml_zip.d.ts.map +1 -1
  245. package/dist/exporter/tools/xml_zip.js +8 -2
  246. package/dist/exporter/tools/xml_zip.js.map +1 -1
  247. package/dist/exporter/tools/zip.d.ts +28 -14
  248. package/dist/exporter/tools/zip.d.ts.map +1 -1
  249. package/dist/exporter/tools/zip.js +13 -6
  250. package/dist/exporter/tools/zip.js.map +1 -1
  251. package/dist/exporter/tools/zotero_csl.d.ts +19 -6
  252. package/dist/exporter/tools/zotero_csl.d.ts.map +1 -1
  253. package/dist/exporter/tools/zotero_csl.js +9 -9
  254. package/dist/exporter/tools/zotero_csl.js.map +1 -1
  255. package/dist/importer/citations.d.ts +25 -22
  256. package/dist/importer/citations.d.ts.map +1 -1
  257. package/dist/importer/citations.js +1 -49
  258. package/dist/importer/citations.js.map +1 -1
  259. package/dist/importer/docx/citations.d.ts +8 -30
  260. package/dist/importer/docx/citations.d.ts.map +1 -1
  261. package/dist/importer/docx/citations.js +1 -26
  262. package/dist/importer/docx/citations.js.map +1 -1
  263. package/dist/importer/docx/convert.d.ts +38 -116
  264. package/dist/importer/docx/convert.d.ts.map +1 -1
  265. package/dist/importer/docx/convert.js +99 -82
  266. package/dist/importer/docx/convert.js.map +1 -1
  267. package/dist/importer/docx/helpers.d.ts +1 -1
  268. package/dist/importer/docx/helpers.d.ts.map +1 -1
  269. package/dist/importer/docx/helpers.js +1 -1
  270. package/dist/importer/docx/helpers.js.map +1 -1
  271. package/dist/importer/docx/index.d.ts +27 -0
  272. package/dist/importer/docx/index.d.ts.map +1 -0
  273. package/dist/importer/docx/index.js +77 -0
  274. package/dist/importer/docx/index.js.map +1 -0
  275. package/dist/importer/docx/omml2mathml.d.ts +2 -3
  276. package/dist/importer/docx/omml2mathml.d.ts.map +1 -1
  277. package/dist/importer/docx/omml2mathml.js +23 -116
  278. package/dist/importer/docx/omml2mathml.js.map +1 -1
  279. package/dist/importer/docx/parse.d.ts +22 -131
  280. package/dist/importer/docx/parse.d.ts.map +1 -1
  281. package/dist/importer/docx/parse.js +73 -55
  282. package/dist/importer/docx/parse.js.map +1 -1
  283. package/dist/importer/native/extract_template.d.ts +6 -0
  284. package/dist/importer/native/extract_template.d.ts.map +1 -0
  285. package/dist/importer/native/extract_template.js +80 -0
  286. package/dist/importer/native/extract_template.js.map +1 -0
  287. package/dist/importer/native/file.d.ts +37 -0
  288. package/dist/importer/native/file.d.ts.map +1 -0
  289. package/dist/importer/native/file.js +162 -0
  290. package/dist/importer/native/file.js.map +1 -0
  291. package/dist/importer/native/get_images.d.ts +18 -8
  292. package/dist/importer/native/get_images.d.ts.map +1 -1
  293. package/dist/importer/native/get_images.js +39 -45
  294. package/dist/importer/native/get_images.js.map +1 -1
  295. package/dist/importer/native/importer.d.ts +41 -0
  296. package/dist/importer/native/importer.d.ts.map +1 -0
  297. package/dist/importer/native/importer.js +170 -0
  298. package/dist/importer/native/importer.js.map +1 -0
  299. package/dist/importer/native/index.d.ts +7 -0
  300. package/dist/importer/native/index.d.ts.map +1 -0
  301. package/dist/importer/native/index.js +7 -0
  302. package/dist/importer/native/index.js.map +1 -0
  303. package/dist/importer/native/update.d.ts +5 -4
  304. package/dist/importer/native/update.d.ts.map +1 -1
  305. package/dist/importer/native/update.js +4 -3
  306. package/dist/importer/native/update.js.map +1 -1
  307. package/dist/importer/native/update_template.d.ts +12 -0
  308. package/dist/importer/native/update_template.d.ts.map +1 -0
  309. package/dist/importer/native/update_template.js +19 -0
  310. package/dist/importer/native/update_template.js.map +1 -0
  311. package/dist/importer/odt/citations.d.ts +7 -27
  312. package/dist/importer/odt/citations.d.ts.map +1 -1
  313. package/dist/importer/odt/citations.js +0 -22
  314. package/dist/importer/odt/citations.js.map +1 -1
  315. package/dist/importer/odt/convert.d.ts +53 -237
  316. package/dist/importer/odt/convert.d.ts.map +1 -1
  317. package/dist/importer/odt/convert.js +162 -138
  318. package/dist/importer/odt/convert.js.map +1 -1
  319. package/dist/importer/odt/index.d.ts +30 -0
  320. package/dist/importer/odt/index.d.ts.map +1 -0
  321. package/dist/importer/odt/index.js +124 -0
  322. package/dist/importer/odt/index.js.map +1 -0
  323. package/dist/importer/pandoc/convert.d.ts +25 -77
  324. package/dist/importer/pandoc/convert.d.ts.map +1 -1
  325. package/dist/importer/pandoc/convert.js +65 -52
  326. package/dist/importer/pandoc/convert.js.map +1 -1
  327. package/dist/importer/pandoc/helpers.d.ts +4 -3
  328. package/dist/importer/pandoc/helpers.d.ts.map +1 -1
  329. package/dist/importer/pandoc/helpers.js +24 -26
  330. package/dist/importer/pandoc/helpers.js.map +1 -1
  331. package/dist/importer/pandoc/index.d.ts +31 -0
  332. package/dist/importer/pandoc/index.d.ts.map +1 -0
  333. package/dist/importer/pandoc/index.js +114 -0
  334. package/dist/importer/pandoc/index.js.map +1 -0
  335. package/dist/importer/registry.d.ts +21 -0
  336. package/dist/importer/registry.d.ts.map +1 -0
  337. package/dist/importer/registry.js +41 -0
  338. package/dist/importer/registry.js.map +1 -0
  339. package/dist/importer/zip_analyzer.d.ts +27 -21
  340. package/dist/importer/zip_analyzer.d.ts.map +1 -1
  341. package/dist/importer/zip_analyzer.js +10 -5
  342. package/dist/importer/zip_analyzer.js.map +1 -1
  343. package/dist/mathlive/opf_includes.d.ts +1 -1
  344. package/dist/mathlive/opf_includes.d.ts.map +1 -1
  345. package/dist/mathlive/opf_includes.js.map +1 -1
  346. package/dist/schema/common/annotate.d.ts +37 -49
  347. package/dist/schema/common/annotate.d.ts.map +1 -1
  348. package/dist/schema/common/annotate.js +2 -2
  349. package/dist/schema/common/annotate.js.map +1 -1
  350. package/dist/schema/common/base.d.ts +63 -81
  351. package/dist/schema/common/base.d.ts.map +1 -1
  352. package/dist/schema/common/base.js.map +1 -1
  353. package/dist/schema/common/citation.d.ts +23 -22
  354. package/dist/schema/common/citation.d.ts.map +1 -1
  355. package/dist/schema/common/citation.js +4 -5
  356. package/dist/schema/common/citation.js.map +1 -1
  357. package/dist/schema/common/equation.d.ts +13 -14
  358. package/dist/schema/common/equation.d.ts.map +1 -1
  359. package/dist/schema/common/equation.js +1 -1
  360. package/dist/schema/common/equation.js.map +1 -1
  361. package/dist/schema/common/figure.d.ts +72 -93
  362. package/dist/schema/common/figure.d.ts.map +1 -1
  363. package/dist/schema/common/figure.js +11 -9
  364. package/dist/schema/common/figure.js.map +1 -1
  365. package/dist/schema/common/heading.d.ts +8 -32
  366. package/dist/schema/common/heading.d.ts.map +1 -1
  367. package/dist/schema/common/heading.js +2 -2
  368. package/dist/schema/common/heading.js.map +1 -1
  369. package/dist/schema/common/index.d.ts +2 -2
  370. package/dist/schema/common/index.d.ts.map +1 -1
  371. package/dist/schema/common/index.js.map +1 -1
  372. package/dist/schema/common/list.d.ts +52 -72
  373. package/dist/schema/common/list.d.ts.map +1 -1
  374. package/dist/schema/common/list.js +3 -3
  375. package/dist/schema/common/list.js.map +1 -1
  376. package/dist/schema/common/reference.d.ts +51 -59
  377. package/dist/schema/common/reference.d.ts.map +1 -1
  378. package/dist/schema/common/reference.js +5 -5
  379. package/dist/schema/common/reference.js.map +1 -1
  380. package/dist/schema/common/table.d.ts +59 -75
  381. package/dist/schema/common/table.d.ts.map +1 -1
  382. package/dist/schema/common/table.js +3 -2
  383. package/dist/schema/common/table.js.map +1 -1
  384. package/dist/schema/common/track.d.ts +83 -97
  385. package/dist/schema/common/track.d.ts.map +1 -1
  386. package/dist/schema/common/track.js +18 -17
  387. package/dist/schema/common/track.js.map +1 -1
  388. package/dist/schema/convert.d.ts +2 -2
  389. package/dist/schema/convert.d.ts.map +1 -1
  390. package/dist/schema/convert.js +2 -2
  391. package/dist/schema/convert.js.map +1 -1
  392. package/dist/schema/document/content.d.ts +95 -122
  393. package/dist/schema/document/content.d.ts.map +1 -1
  394. package/dist/schema/document/content.js +9 -9
  395. package/dist/schema/document/content.js.map +1 -1
  396. package/dist/schema/document/index.d.ts +173 -257
  397. package/dist/schema/document/index.d.ts.map +1 -1
  398. package/dist/schema/document/index.js.map +1 -1
  399. package/dist/schema/document/structure.d.ts +149 -258
  400. package/dist/schema/document/structure.d.ts.map +1 -1
  401. package/dist/schema/document/structure.js +2 -2
  402. package/dist/schema/document/structure.js.map +1 -1
  403. package/dist/schema/export.d.ts +4 -877
  404. package/dist/schema/export.d.ts.map +1 -1
  405. package/dist/schema/export.js +1 -0
  406. package/dist/schema/export.js.map +1 -1
  407. package/dist/schema/footnotes.d.ts +110 -155
  408. package/dist/schema/footnotes.d.ts.map +1 -1
  409. package/dist/schema/footnotes.js +4 -2
  410. package/dist/schema/footnotes.js.map +1 -1
  411. package/dist/schema/footnotes_convert.d.ts +3 -3
  412. package/dist/schema/footnotes_convert.d.ts.map +1 -1
  413. package/dist/schema/footnotes_convert.js +10 -6
  414. package/dist/schema/footnotes_convert.js.map +1 -1
  415. package/dist/schema/i18n.d.ts +3 -534
  416. package/dist/schema/i18n.d.ts.map +1 -1
  417. package/dist/schema/i18n.js +1 -0
  418. package/dist/schema/i18n.js.map +1 -1
  419. package/dist/schema/index.d.ts +1 -1
  420. package/dist/schema/index.d.ts.map +1 -1
  421. package/dist/schema/index.js.map +1 -1
  422. package/dist/schema/mini_json.d.ts +3 -4
  423. package/dist/schema/mini_json.d.ts.map +1 -1
  424. package/dist/schema/mini_json.js +2 -0
  425. package/dist/schema/mini_json.js.map +1 -1
  426. package/dist/schema/text.d.ts +2 -1
  427. package/dist/schema/text.d.ts.map +1 -1
  428. package/dist/schema/text.js +1 -1
  429. package/dist/schema/text.js.map +1 -1
  430. package/dist/types.d.ts +167 -8
  431. package/dist/types.d.ts.map +1 -1
  432. package/package.json +4 -1
  433. package/src/bibliography/{common.js → common.ts} +15 -12
  434. package/src/bibliography/{csl_bib.js → csl_bib.ts} +16 -15
  435. package/src/citations/{citeproc_sys.js → citeproc_sys.ts} +26 -6
  436. package/src/citations/{format.js → format.ts} +80 -24
  437. package/src/editor/e2ee/{encryptor.js → encryptor.ts} +76 -44
  438. package/src/exporter/docx/{citations.js → citations.ts} +51 -23
  439. package/src/exporter/docx/{comments.js → comments.ts} +69 -26
  440. package/src/exporter/docx/{footnotes.js → footnotes.ts} +81 -42
  441. package/src/exporter/docx/images.ts +128 -0
  442. package/src/exporter/docx/{index.js → index.ts} +48 -25
  443. package/src/exporter/docx/{lists.js → lists.ts} +89 -46
  444. package/src/exporter/docx/{math.js → math.ts} +29 -9
  445. package/src/exporter/docx/{metadata.js → metadata.ts} +78 -42
  446. package/src/exporter/docx/{rels.js → rels.ts} +71 -50
  447. package/src/exporter/docx/{render.js → render.ts} +124 -87
  448. package/src/exporter/docx/{richtext.js → richtext.ts} +107 -84
  449. package/src/exporter/docx/{tables.js → tables.ts} +33 -23
  450. package/src/exporter/docx/{tools.js → tools.ts} +4 -3
  451. package/src/exporter/epub/{index.js → index.ts} +44 -15
  452. package/src/exporter/epub/{templates.js → templates.ts} +71 -7
  453. package/src/exporter/epub/{tools.js → tools.ts} +31 -25
  454. package/src/exporter/html/{citations.js → citations.ts} +79 -31
  455. package/src/exporter/html/{convert.js → convert.ts} +118 -71
  456. package/src/exporter/html/{index.js → index.ts} +63 -29
  457. package/src/exporter/html/{templates.js → templates.ts} +22 -2
  458. package/src/exporter/html/{tools.js → tools.ts} +9 -6
  459. package/src/exporter/jats/bibliography.ts +199 -0
  460. package/src/exporter/jats/{citations.js → citations.ts} +56 -20
  461. package/src/exporter/jats/{convert.js → convert.ts} +72 -53
  462. package/src/exporter/jats/index.ts +132 -0
  463. package/src/exporter/jats/{templates.js → templates.ts} +19 -3
  464. package/src/exporter/jats/{text.js → text.ts} +8 -6
  465. package/src/exporter/latex/{convert.js → convert.ts} +160 -125
  466. package/src/exporter/latex/{escape_latex.js → escape_latex.ts} +1 -1
  467. package/src/exporter/latex/{index.js → index.ts} +27 -12
  468. package/src/exporter/latex/{readme.js → readme.ts} +2 -2
  469. package/src/exporter/native/copy.ts +231 -0
  470. package/src/exporter/native/file.ts +65 -0
  471. package/src/exporter/native/index.ts +4 -0
  472. package/src/exporter/native/revision.ts +76 -0
  473. package/src/exporter/native/{shrink.js → shrink.ts} +64 -29
  474. package/src/exporter/native/zip.ts +85 -0
  475. package/src/exporter/odt/{citations.js → citations.ts} +35 -15
  476. package/src/exporter/odt/{footnotes.js → footnotes.ts} +53 -30
  477. package/src/exporter/odt/images.ts +135 -0
  478. package/src/exporter/odt/{index.js → index.ts} +49 -27
  479. package/src/exporter/odt/{math.js → math.ts} +38 -9
  480. package/src/exporter/odt/{metadata.js → metadata.ts} +54 -29
  481. package/src/exporter/odt/{render.js → render.ts} +89 -60
  482. package/src/exporter/odt/{richtext.js → richtext.ts} +102 -72
  483. package/src/exporter/odt/{styles.js → styles.ts} +98 -66
  484. package/src/exporter/odt/{track.js → track.ts} +22 -6
  485. package/src/exporter/pandoc/{citations.js → citations.ts} +31 -15
  486. package/src/exporter/pandoc/{convert.js → convert.ts} +98 -79
  487. package/src/exporter/pandoc/{index.js → index.ts} +36 -13
  488. package/src/exporter/pandoc/{readme.js → readme.ts} +0 -1
  489. package/src/exporter/pandoc/{tools.js → tools.ts} +28 -5
  490. package/src/exporter/print/{index.js → index.ts} +38 -19
  491. package/src/exporter/tools/{doc_content.js → doc_content.ts} +34 -24
  492. package/src/exporter/tools/{svg.js → svg.ts} +9 -3
  493. package/src/exporter/tools/{xml.js → xml.ts} +187 -138
  494. package/src/exporter/tools/{xml_zip.js → xml_zip.ts} +19 -11
  495. package/src/exporter/tools/{zip.js → zip.ts} +35 -11
  496. package/src/exporter/tools/{zotero_csl.js → zotero_csl.ts} +35 -18
  497. package/src/global.d.ts +2 -0
  498. package/src/importer/citations.ts +116 -0
  499. package/src/importer/docx/{citations.js → citations.ts} +22 -37
  500. package/src/importer/docx/{convert.js → convert.ts} +176 -141
  501. package/src/importer/docx/{helpers.js → helpers.ts} +1 -1
  502. package/src/importer/docx/index.ts +124 -0
  503. package/src/importer/docx/{omml2mathml.js → omml2mathml.ts} +154 -176
  504. package/src/importer/docx/{parse.js → parse.ts} +103 -81
  505. package/src/importer/native/extract_template.ts +83 -0
  506. package/src/importer/native/file.ts +282 -0
  507. package/src/importer/native/get_images.ts +82 -0
  508. package/src/importer/native/importer.ts +244 -0
  509. package/src/importer/native/index.ts +6 -0
  510. package/src/importer/native/{update.js → update.ts} +13 -5
  511. package/src/importer/native/update_template.ts +32 -0
  512. package/src/importer/odt/{citations.js → citations.ts} +17 -29
  513. package/src/importer/odt/{convert.js → convert.ts} +261 -237
  514. package/src/importer/odt/index.ts +202 -0
  515. package/src/importer/pandoc/{convert.js → convert.ts} +116 -94
  516. package/src/importer/pandoc/{helpers.js → helpers.ts} +24 -12
  517. package/src/importer/pandoc/index.ts +171 -0
  518. package/src/importer/registry.ts +69 -0
  519. package/src/importer/{zip_analyzer.js → zip_analyzer.ts} +44 -18
  520. package/src/mathlive/{opf_includes.js → opf_includes.ts} +1 -1
  521. package/src/modules.d.ts +40 -0
  522. package/src/schema/common/{annotate.js → annotate.ts} +10 -8
  523. package/src/schema/common/{base.js → base.ts} +12 -10
  524. package/src/schema/common/{citation.js → citation.ts} +17 -8
  525. package/src/schema/common/{equation.js → equation.ts} +6 -4
  526. package/src/schema/common/{figure.js → figure.ts} +43 -23
  527. package/src/schema/common/{heading.js → heading.ts} +7 -5
  528. package/src/schema/common/{list.js → list.ts} +15 -13
  529. package/src/schema/common/{reference.js → reference.ts} +14 -12
  530. package/src/schema/common/{table.js → table.ts} +16 -14
  531. package/src/schema/common/{track.js → track.ts} +42 -31
  532. package/src/schema/{convert.js → convert.ts} +6 -2
  533. package/src/schema/document/{content.js → content.ts} +22 -20
  534. package/src/schema/document/{structure.js → structure.ts} +15 -9
  535. package/src/schema/{export.js → export.ts} +4 -2
  536. package/src/schema/{footnotes.js → footnotes.ts} +11 -8
  537. package/src/schema/{footnotes_convert.js → footnotes_convert.ts} +11 -8
  538. package/src/schema/{i18n.js → i18n.ts} +7 -1
  539. package/src/schema/{mini_json.js → mini_json.ts} +11 -12
  540. package/src/schema/{text.js → text.ts} +6 -2
  541. package/src/types.ts +185 -7
  542. package/src/exporter/docx/images.js +0 -101
  543. package/src/exporter/jats/bibliography.js +0 -183
  544. package/src/exporter/jats/index.js +0 -92
  545. package/src/exporter/odt/images.js +0 -115
  546. package/src/importer/citations.js +0 -129
  547. package/src/importer/native/get_images.js +0 -76
  548. /package/src/schema/common/{index.js → index.ts} +0 -0
  549. /package/src/schema/document/{index.js → index.ts} +0 -0
  550. /package/src/schema/{index.js → index.ts} +0 -0
@@ -1,5 +1,6 @@
1
1
  import {MathMLToLaTeX} from "mathml-to-latex"
2
2
  import {xmlDOM} from "../../exporter/tools/xml.js"
3
+ import type {XMLElement} from "../../exporter/tools/xml.js"
3
4
  import {
4
5
  randomCommentId,
5
6
  randomFigureId,
@@ -16,9 +17,36 @@ import {
16
17
  import {normalizeText} from "./helpers.js"
17
18
  import {omml2mathml} from "./omml2mathml.js"
18
19
  import {DocxParser} from "./parse.js"
20
+ import {gettext} from "fwtoolkit"
21
+ import type {BibDB, FidusDoc, FidusNode, ImageDBEntry} from "../../types.js"
22
+
23
+ function attr(node: unknown, name: string): string {
24
+ if (node && typeof node === "object" && "getAttribute" in node) {
25
+ return String((node as XMLElement).getAttribute(name) || "")
26
+ }
27
+ return ""
28
+ }
19
29
 
20
30
  export class DocxConvert {
21
- constructor(zip, importId, template, bibliography) {
31
+ zip: any
32
+ importId: string
33
+ template: {content: FidusDoc}
34
+ bibliography: Record<string, any>
35
+ images: Record<number, ImageDBEntry>
36
+ parser: DocxParser
37
+ tracks: Record<string, any>
38
+ currentTracks: any[]
39
+ currentFields: any[]
40
+ currentCommentIds: string[]
41
+ sourcesXml: string | null
42
+ referenceTargets: Record<string, {id: string; type: string; text?: string}>
43
+
44
+ constructor(
45
+ zip: any,
46
+ importId: string,
47
+ template: {content: FidusDoc},
48
+ bibliography: Record<string, any>
49
+ ) {
22
50
  this.zip = zip
23
51
  this.importId = importId
24
52
  this.template = template
@@ -30,16 +58,21 @@ export class DocxConvert {
30
58
  this.currentFields = []
31
59
  this.currentCommentIds = []
32
60
  this.sourcesXml = null
61
+ this.referenceTargets = {}
33
62
  }
34
63
 
35
- async init() {
64
+ async init(): Promise<{
65
+ content: FidusDoc
66
+ settings: Record<string, any>
67
+ comments: Record<string, any>
68
+ }> {
36
69
  await this.parser.init()
37
70
  // Load Word-native bibliography sources if present.
38
71
  // This file is required by DocxCitationsParser for CITATION field codes.
39
72
  this.sourcesXml =
40
73
  (await this.zip.file("customXml/item1.xml")?.async("string")) ??
41
74
  null
42
- const body = this.parser.document.query("w:body")
75
+ const body = this.parser.document!.query("w:body")
43
76
  if (!body) {
44
77
  return {
45
78
  content: {
@@ -55,7 +88,7 @@ export class DocxConvert {
55
88
  }
56
89
  }
57
90
  // Find all reference targets in the document for cross-references
58
- this.referenceTargets = this.findReferenceTargets(this.parser.document)
91
+ this.referenceTargets = this.findReferenceTargets(this.parser.document!)
59
92
 
60
93
  const convertedContent = this.convertDocument(body)
61
94
  // Convert document
@@ -63,18 +96,18 @@ export class DocxConvert {
63
96
  content: convertedContent,
64
97
  settings: {
65
98
  import_id: this.importId,
66
- tracked: this.hasTrackedChanges(this.parser.document),
67
- language: this.detectLanguage(this.parser.document)
99
+ tracked: this.hasTrackedChanges(this.parser.document!),
100
+ language: this.detectLanguage(this.parser.document!)
68
101
  },
69
102
  comments: this.parser.comments
70
103
  }
71
104
  }
72
105
 
73
- convertDocument(body) {
106
+ convertDocument(body: any): FidusDoc {
74
107
  const templateParts = this.template.content.content.slice()
75
108
  templateParts.shift() // Remove first element
76
109
 
77
- const document = {
110
+ const document: any = {
78
111
  type: "doc",
79
112
  attrs: {
80
113
  import_id: this.importId
@@ -89,23 +122,23 @@ export class DocxConvert {
89
122
  {type: "text", text: gettext("Untitled")}
90
123
  ]
91
124
  })
92
- title.containerNodes.forEach(node => {
125
+ title.containerNodes.forEach((node: any) => {
93
126
  node.parentElement.removeChild(node)
94
127
  })
95
128
  document.attrs.title =
96
- title.content.map(node => node.textContent).join("") ||
129
+ title.content.map((node: any) => node.textContent).join("") ||
97
130
  gettext("Untitled")
98
131
  // Extract metadata sections
99
132
  const metadata = this.extractMetadata(body)
100
- metadata.forEach(({type, content}) => {
133
+ metadata.forEach(({type, content}: any) => {
101
134
  const templatePart = templateParts.find(
102
- part => part.attrs.metadata === type
135
+ (part: any) => part.attrs.metadata === type
103
136
  )
104
- const attrs = {}
105
- if (templatePart.attrs.hidden) {
106
- attrs.hidden = false
107
- }
137
+ const attrs: Record<string, any> = {}
108
138
  if (templatePart) {
139
+ if (templatePart.attrs?.hidden) {
140
+ attrs.hidden = false
141
+ }
109
142
  document.content.push({
110
143
  type: templatePart.type,
111
144
  attrs: {
@@ -115,7 +148,7 @@ export class DocxConvert {
115
148
  content: content.content
116
149
  })
117
150
  // Remove paragraphs from content so they are not added to body
118
- content.containerNodes.forEach(node => {
151
+ content.containerNodes.forEach((node: any) => {
119
152
  node.parentElement?.removeChild(node)
120
153
  })
121
154
  }
@@ -123,7 +156,7 @@ export class DocxConvert {
123
156
  // Extract main content sections
124
157
  const sections = this.groupContentIntoSections(body)
125
158
  // Map sections to template parts
126
- sections.forEach(section => {
159
+ sections.forEach((section: any) => {
127
160
  const templatePart = this.findMatchingTemplatePart(
128
161
  section.title,
129
162
  templateParts
@@ -149,40 +182,38 @@ export class DocxConvert {
149
182
  // Add remaining content to body section
150
183
  const unassignedContent = sections
151
184
  .filter(
152
- section =>
185
+ (section: any) =>
153
186
  !this.findMatchingTemplatePart(section.title, templateParts)
154
187
  )
155
- .flatMap(section => section.content)
188
+ .flatMap((section: any) => section.content)
156
189
 
157
190
  if (unassignedContent.length) {
158
191
  const bodyTemplatePart = templateParts.find(
159
- part => !part.attrs.metadata && part.type === "richtext_part"
192
+ (part: any) => !part.attrs.metadata && part.type === "richtext_part"
160
193
  )
161
194
 
162
195
  document.content.push({
163
196
  type: "richtext_part",
164
197
  attrs: {
165
- title: bodyTemplatePart
166
- ? bodyTemplatePart.attrs.title
167
- : "Body",
168
- id: bodyTemplatePart ? bodyTemplatePart.attrs.id : "body",
198
+ title: bodyTemplatePart?.attrs?.title || "Body",
199
+ id: bodyTemplatePart?.attrs?.id || "body",
169
200
  marks: ["strong", "em", "link"]
170
201
  },
171
202
  content: unassignedContent
172
203
  })
173
204
  }
174
205
 
175
- return document
206
+ return document as FidusDoc
176
207
  }
177
208
 
178
- extractMetadata(body) {
179
- const metadata = []
209
+ extractMetadata(body: any) {
210
+ const metadata: any[] = []
180
211
 
181
212
  // Try structured contributor data from custom properties first
182
213
  const contributorsByRole = this.extractContributorsFromCustomProps()
183
214
  if (Object.keys(contributorsByRole).length) {
184
215
  Object.entries(contributorsByRole).forEach(
185
- ([role, contributors]) => {
216
+ ([role, contributors]: any) => {
186
217
  metadata.push({
187
218
  type: role,
188
219
  content: {content: contributors, containerNodes: []}
@@ -226,10 +257,10 @@ export class DocxConvert {
226
257
  }
227
258
 
228
259
  const properties = this.parser.customDoc.queryAll("property")
229
- const contributors = []
260
+ const contributors: any[] = []
230
261
 
231
- properties.forEach(prop => {
232
- const name = prop.getAttribute("name")
262
+ properties.forEach((prop: any) => {
263
+ const name = attr(prop, "name")
233
264
  if (!name || !name.startsWith("fidus_contributor_")) {
234
265
  return
235
266
  }
@@ -272,8 +303,8 @@ export class DocxConvert {
272
303
  }
273
304
  })
274
305
 
275
- const byRole = {}
276
- contributors.forEach(contributor => {
306
+ const byRole: Record<string, any> = {}
307
+ contributors.forEach((contributor: any) => {
277
308
  if (!contributor) {
278
309
  return
279
310
  }
@@ -287,15 +318,15 @@ export class DocxConvert {
287
318
  return byRole
288
319
  }
289
320
 
290
- extractAuthors(body) {
291
- const authors = []
321
+ extractAuthors(body: any) {
322
+ const authors: any[] = []
292
323
 
293
324
  // Try to find author information in metadata
294
325
  const authorNodes = body
295
326
  .queryAll("w:pStyle", {"w:val": "Author"})
296
- .map(pStyle => pStyle.closest("w:p"))
297
- .filter(p => p)
298
- authorNodes.forEach(authorNode => {
327
+ .map((pStyle: any) => pStyle.closest("w:p"))
328
+ .filter((p: any) => p)
329
+ authorNodes.forEach((authorNode: any) => {
299
330
  const authorText = this.getTextContent(authorNode)
300
331
  const [firstname = "", lastname = ""] = authorText.split(" ", 2)
301
332
  authors.push({
@@ -315,7 +346,7 @@ export class DocxConvert {
315
346
  }
316
347
  }
317
348
  // Also check Creator in document properties
318
- const creator = this.parser.coreDoc.query("dc:creator")?.textContent
349
+ const creator = this.parser.coreDoc?.query("dc:creator")?.textContent
319
350
 
320
351
  if (creator) {
321
352
  const [firstname = "", lastname = ""] = creator.split(" ", 2)
@@ -338,15 +369,15 @@ export class DocxConvert {
338
369
  return {content: [], containerNodes: []}
339
370
  }
340
371
 
341
- extractAbstract(body) {
372
+ extractAbstract(body: any) {
342
373
  // Look for section with Abstract style or heading
343
374
  const abstractNodes = body
344
375
  .queryAll("w:pStyle", {"w:val": "Abstract"})
345
- .map(pStyle => pStyle.closest("w:p"))
346
- .filter(p => p)
376
+ .map((pStyle: any) => pStyle.closest("w:p"))
377
+ .filter((p: any) => p)
347
378
  if (abstractNodes.length) {
348
379
  return {
349
- content: abstractNodes.map(abstractNode =>
380
+ content: abstractNodes.map((abstractNode: any) =>
350
381
  this.convertBlock(abstractNode)
351
382
  ),
352
383
  containerNodes: abstractNodes
@@ -355,7 +386,7 @@ export class DocxConvert {
355
386
  const extractedPart = this.extractPartOnTitle(body, ["Abstract"])
356
387
  if (extractedPart.content.length) {
357
388
  return {
358
- content: extractedPart.content.map(abstractNode =>
389
+ content: extractedPart.content.map((abstractNode: any) =>
359
390
  this.convertBlock(abstractNode)
360
391
  ),
361
392
  containerNodes: extractedPart.content.concat([
@@ -366,13 +397,13 @@ export class DocxConvert {
366
397
  return {content: [], containerNodes: []}
367
398
  }
368
399
 
369
- extractKeywords(body) {
370
- let extraNodes = []
400
+ extractKeywords(body: any) {
401
+ let extraNodes: any[] = []
371
402
  // Look for keywords section or metadata
372
403
  let keywordNodes = body
373
404
  .queryAll("w:pStyle", {"w:val": "Keywords"})
374
- .map(pStyle => pStyle.closest("w:p"))
375
- .filter(p => p)
405
+ .map((pStyle: any) => pStyle.closest("w:p"))
406
+ .filter((p: any) => p)
376
407
 
377
408
  if (!keywordNodes.length) {
378
409
  // If no keywords section is found, look for a title called "Keywords"
@@ -391,11 +422,11 @@ export class DocxConvert {
391
422
  if (keywordNodes) {
392
423
  return {
393
424
  content: keywordNodes
394
- .map(keywordsNode => this.getTextContent(keywordsNode))
395
- .flatMap(str => str.split(/[,;|:]+/)) // Split on multiple separators
396
- .map(keyword => keyword.trim()) // Trim whitespace
397
- .filter(keyword => keyword.length > 0)
398
- .map(keyword => ({
425
+ .map((keywordsNode: any) => this.getTextContent(keywordsNode))
426
+ .flatMap((str: any) => str.split(/[,;|:]+/)) // Split on multiple separators
427
+ .map((keyword: any) => keyword.trim()) // Trim whitespace
428
+ .filter((keyword: any) => keyword.length > 0)
429
+ .map((keyword: any) => ({
399
430
  type: "tag",
400
431
  attrs: {
401
432
  tag: keyword
@@ -408,7 +439,7 @@ export class DocxConvert {
408
439
  return {content: [], containerNodes: []}
409
440
  }
410
441
 
411
- extractPartOnTitle(body, titleWords, maxPars = false) {
442
+ extractPartOnTitle(body: any, titleWords: any, maxPars: any = false) {
412
443
  // Fall back to heading starting with TITLEWORD in text
413
444
  if (typeof titleWords === "string") {
414
445
  titleWords = [titleWords]
@@ -427,12 +458,12 @@ export class DocxConvert {
427
458
  "Heading9"
428
459
  ]
429
460
  })
430
- .map(pStyle => pStyle.closest("w:p"))
431
- .filter(p => p)
432
- const header = headingPars.find(p =>
461
+ .map((pStyle: any) => pStyle.closest("w:p"))
462
+ .filter((p: any) => p)
463
+ const header = headingPars.find((p: any) =>
433
464
  titleWords.includes(this.getTextContent(p).trim())
434
465
  )
435
- const content = []
466
+ const content: any[] = []
436
467
  if (header && header.nextSibling) {
437
468
  //const content = []
438
469
  //const containerNodes = [sectionHeader]
@@ -456,16 +487,16 @@ export class DocxConvert {
456
487
  return {header, content}
457
488
  }
458
489
 
459
- groupContentIntoSections(body) {
460
- const sections = []
461
- let currentSection = {
490
+ groupContentIntoSections(body: any) {
491
+ const sections: any[] = []
492
+ let currentSection: Record<string, any> = {
462
493
  title: null,
463
494
  content: []
464
495
  }
465
496
 
466
- const skippedBlocks = []
497
+ const skippedBlocks: any[] = []
467
498
 
468
- body.children.forEach(node => {
499
+ body.children.forEach((node: any) => {
469
500
  if (skippedBlocks.includes(node)) {
470
501
  return
471
502
  }
@@ -498,7 +529,7 @@ export class DocxConvert {
498
529
  return sections
499
530
  }
500
531
 
501
- getSectionTitle(node, style) {
532
+ getSectionTitle(node: any, style: any) {
502
533
  if (!node || !style) {
503
534
  return null
504
535
  }
@@ -519,14 +550,14 @@ export class DocxConvert {
519
550
  return null
520
551
  }
521
552
 
522
- findMatchingTemplatePart(sectionTitle, templateParts) {
553
+ findMatchingTemplatePart(sectionTitle: any, templateParts: any) {
523
554
  if (!sectionTitle) {
524
555
  return null
525
556
  }
526
557
 
527
558
  // Try exact match first
528
559
  let matchingPart = templateParts.find(
529
- part =>
560
+ (part: any) =>
530
561
  part.type === "richtext_part" &&
531
562
  !part.attrs.metadata &&
532
563
  part.attrs.title.toLowerCase() === sectionTitle.toLowerCase()
@@ -535,7 +566,7 @@ export class DocxConvert {
535
566
  if (!matchingPart) {
536
567
  // Try fuzzy matching
537
568
  matchingPart = templateParts.find(
538
- part =>
569
+ (part: any) =>
539
570
  part.type === "richtext_part" &&
540
571
  !part.attrs.metadata &&
541
572
  this.isSimilarTitle(part.attrs.title, sectionTitle)
@@ -545,7 +576,7 @@ export class DocxConvert {
545
576
  return matchingPart
546
577
  }
547
578
 
548
- isSimilarTitle(title1, title2) {
579
+ isSimilarTitle(title1: any, title2: any) {
549
580
  const normalized1 = normalizeText(title1)
550
581
  const normalized2 = normalizeText(title2)
551
582
 
@@ -555,19 +586,19 @@ export class DocxConvert {
555
586
  )
556
587
  }
557
588
 
558
- getTextContent(node) {
589
+ getTextContent(node: any) {
559
590
  return node
560
591
  .queryAll("w:t")
561
- .map(t => t.textContent)
592
+ .map((t: any) => t.textContent)
562
593
  .join("")
563
594
  }
564
595
 
565
- extractTitle(body) {
596
+ extractTitle(body: any) {
566
597
  // First try to find paragraph with Title style
567
598
  const titlePars = body
568
599
  .queryAll("w:pStyle", {"w:val": "Title"})
569
- .map(pStyle => pStyle.closest("w:p"))
570
- .filter(p => p)
600
+ .map((pStyle: any) => pStyle.closest("w:p"))
601
+ .filter((p: any) => p)
571
602
 
572
603
  if (titlePars.length) {
573
604
  return {
@@ -591,8 +622,8 @@ export class DocxConvert {
591
622
  "Heading9"
592
623
  ]
593
624
  })
594
- .map(pStyle => pStyle.closest("w:p"))
595
- .filter(p => p)
625
+ .map((pStyle: any) => pStyle.closest("w:p"))
626
+ .filter((p: any) => p)
596
627
  if (headingPars.length) {
597
628
  return {
598
629
  content: this.convertInline(headingPars[0]),
@@ -611,7 +642,7 @@ export class DocxConvert {
611
642
  }
612
643
  }
613
644
 
614
- inBibliography(node) {
645
+ inBibliography(node: any) {
615
646
  // Check if we currently are in a field.
616
647
  const currentField = this.currentFields[this.currentFields.length - 1]
617
648
 
@@ -631,7 +662,7 @@ export class DocxConvert {
631
662
  return false
632
663
  }
633
664
 
634
- convertBlock(node, skippedBlocks = []) {
665
+ convertBlock(node: any, skippedBlocks: any = []) {
635
666
  if (node.tagName !== "w:p") {
636
667
  return null
637
668
  }
@@ -675,7 +706,7 @@ export class DocxConvert {
675
706
  return this.wrapTrackChanges(node, converted)
676
707
  }
677
708
 
678
- wrapTrackChanges(node, content) {
709
+ wrapTrackChanges(node: any, content: any) {
679
710
  if (!content || !node.previousSibling) {
680
711
  return content
681
712
  }
@@ -690,30 +721,30 @@ export class DocxConvert {
690
721
  }
691
722
  }
692
723
 
693
- getTracksFromNode(node) {
724
+ getTracksFromNode(node: any) {
694
725
  const deletion = node.query("w:pPr")?.query("w:del")
695
726
  const insertion = node.query("w:pPr")?.query("w:ins")
696
727
 
697
- const tracks = []
728
+ const tracks: any[] = []
698
729
 
699
730
  if (insertion) {
700
- const date = new Date(insertion.getAttribute("w:date"))
731
+ const date = new Date(attr(insertion, "w:date"))
701
732
  const date10 = Math.floor(date.getTime() / 60000) * 10
702
733
  tracks.push({
703
734
  type: "insertion",
704
735
  user: 0, // Default user ID
705
- username: insertion.getAttribute("w:author"),
736
+ username: attr(insertion, "w:author"),
706
737
  date: date10
707
738
  })
708
739
  }
709
740
 
710
741
  if (deletion) {
711
- const date = new Date(deletion.getAttribute("w:date"))
742
+ const date = new Date(attr(deletion, "w:date"))
712
743
  const date10 = Math.floor(date.getTime() / 60000) * 10
713
744
  tracks.push({
714
745
  type: "deletion",
715
746
  user: 0, // Default user ID
716
- username: deletion.getAttribute("w:author"),
747
+ username: attr(deletion, "w:author"),
717
748
  date: date10
718
749
  })
719
750
  }
@@ -725,15 +756,15 @@ export class DocxConvert {
725
756
  return tracks
726
757
  }
727
758
 
728
- getParaStyle(node) {
759
+ getParaStyle(node: any) {
729
760
  const pStyle = node.query("w:pStyle")
730
- const styleId = pStyle?.getAttribute("w:val")
761
+ const styleId = attr(pStyle, "w:val")
731
762
  const style = this.parser.styles[styleId] || {}
732
763
 
733
764
  const numPr = node.query("w:numPr")
734
- const numId = numPr?.query("w:numId")?.getAttribute("w:val")
765
+ const numId = attr(numPr?.query("w:numId"), "w:val")
735
766
  const ilvl = parseInt(
736
- numPr?.query("w:ilvl")?.getAttribute("w:val") || "0"
767
+ attr(numPr?.query("w:ilvl"), "w:val") || "0"
737
768
  )
738
769
 
739
770
  return {
@@ -748,9 +779,9 @@ export class DocxConvert {
748
779
  }
749
780
  }
750
781
 
751
- convertParagraph(node) {
782
+ convertParagraph(node: any) {
752
783
  const pStyle = node.query("w:pStyle")
753
- const styleId = pStyle?.getAttribute("w:val")
784
+ const styleId = attr(pStyle, "w:val")
754
785
 
755
786
  // Check if this is a code block (Code style or inherited from one)
756
787
  if (
@@ -776,7 +807,7 @@ export class DocxConvert {
776
807
  }
777
808
  }
778
809
 
779
- convertHeading(node, style) {
810
+ convertHeading(node: any, style: any) {
780
811
  return {
781
812
  type: `heading${style.level}`,
782
813
  attrs: {
@@ -787,7 +818,7 @@ export class DocxConvert {
787
818
  }
788
819
  }
789
820
 
790
- convertListItem(node, style) {
821
+ convertListItem(node: any, style: any) {
791
822
  const numbering = style.numbering
792
823
  const level = numbering.definition?.levels[numbering.level]
793
824
 
@@ -807,7 +838,7 @@ export class DocxConvert {
807
838
  }
808
839
  }
809
840
 
810
- convertFigure(node, captionNode = null) {
841
+ convertFigure(node: any, captionNode: any = null) {
811
842
  let captionBlock, captionOrder
812
843
  if (captionNode) {
813
844
  captionBlock = this.convertParagraph(captionNode)
@@ -824,7 +855,7 @@ export class DocxConvert {
824
855
  return null
825
856
  }
826
857
 
827
- const rId = blip.getAttribute("r:embed")
858
+ const rId = attr(blip, "r:embed")
828
859
  const rel = this.parser.relationships[rId]
829
860
  if (!rel) {
830
861
  return null
@@ -840,8 +871,8 @@ export class DocxConvert {
840
871
  // <a:ext cx="5753598" cy="4463556" />
841
872
  //
842
873
  const size = drawing.query("a:ext")
843
- const width = parseInt(size.getAttribute("cx") || 0) / 9525 // In EMUs
844
- const height = parseInt(size.getAttribute("cy") || 0) / 9525 // In EMUs
874
+ const width = parseInt(attr(size, "cx") || "0") / 9525 // In EMUs
875
+ const height = parseInt(attr(size, "cy") || "0") / 9525 // In EMUs
845
876
 
846
877
  const imageId = Math.floor(Math.random() * 1000000)
847
878
  this.images[imageId] = {
@@ -861,14 +892,14 @@ export class DocxConvert {
861
892
  height
862
893
  }
863
894
 
864
- const image = {
895
+ const image: Record<string, any> = {
865
896
  type: "image",
866
897
  attrs: {
867
898
  image: imageId
868
899
  }
869
900
  }
870
901
 
871
- const caption = {
902
+ const caption: Record<string, any> = {
872
903
  type: "figure_caption",
873
904
  content: captionBlock?.content || []
874
905
  }
@@ -888,11 +919,11 @@ export class DocxConvert {
888
919
  }
889
920
  }
890
921
 
891
- convertInline(node) {
892
- const content = []
922
+ convertInline(node: any) {
923
+ const content: any[] = []
893
924
 
894
925
  // We'll process all inline nodes in document order
895
- node.children.forEach(child => {
926
+ node.children.forEach((child: any) => {
896
927
  let contentReceiver = content
897
928
  const currentField =
898
929
  this.currentFields[this.currentFields.length - 1]
@@ -915,7 +946,7 @@ export class DocxConvert {
915
946
  if (fieldChar) {
916
947
  let currentField
917
948
  let rendercurrentField = false
918
- const type = fieldChar.getAttribute("w:fldCharType")
949
+ const type = attr(fieldChar, "w:fldCharType")
919
950
  if (type === "begin") {
920
951
  currentField = {
921
952
  status: "instruction",
@@ -949,7 +980,7 @@ export class DocxConvert {
949
980
  }
950
981
 
951
982
  if (rendercurrentField && currentField) {
952
- this.renderField(currentField).forEach(node =>
983
+ this.renderField(currentField).forEach((node: any) =>
953
984
  contentReceiver.push(node)
954
985
  )
955
986
  }
@@ -959,7 +990,7 @@ export class DocxConvert {
959
990
  // Process footnote references
960
991
  const footnoteRef = child.query("w:footnoteReference")
961
992
  if (footnoteRef) {
962
- const footnoteId = footnoteRef.getAttribute("w:id")
993
+ const footnoteId = attr(footnoteRef, "w:id")
963
994
  if (this.parser.footnotes[footnoteId]) {
964
995
  contentReceiver.push(this.convertFootnote(footnoteId))
965
996
  }
@@ -969,7 +1000,7 @@ export class DocxConvert {
969
1000
  // Process endnote references
970
1001
  const endnoteRef = child.query("w:endnoteReference")
971
1002
  if (endnoteRef) {
972
- const endnoteId = endnoteRef.getAttribute("w:id")
1003
+ const endnoteId = attr(endnoteRef, "w:id")
973
1004
  if (this.parser.endnotes[endnoteId]) {
974
1005
  contentReceiver.push(
975
1006
  this.convertFootnote(endnoteId, true)
@@ -1003,13 +1034,13 @@ export class DocxConvert {
1003
1034
  marks: this.getCurrentMarks(formatting, insertion, deletion)
1004
1035
  })
1005
1036
  } else if (child.tagName === "w:commentRangeStart") {
1006
- const commentId = child.getAttribute("w:id")
1037
+ const commentId = attr(child, "w:id")
1007
1038
  if (commentId && this.parser.comments[commentId]) {
1008
1039
  this.currentCommentIds.push(commentId)
1009
1040
  }
1010
1041
  return
1011
1042
  } else if (child.tagName === "w:commentRangeEnd") {
1012
- const commentId = child.getAttribute("w:id")
1043
+ const commentId = attr(child, "w:id")
1013
1044
  if (commentId) {
1014
1045
  const index = this.currentCommentIds.indexOf(commentId)
1015
1046
  if (index !== -1) {
@@ -1025,8 +1056,8 @@ export class DocxConvert {
1025
1056
  return
1026
1057
  } else if (child.tagName === "w:hyperlink") {
1027
1058
  // Process hyperlink
1028
- const rId = child.getAttribute("r:id")
1029
- const anchor = child.getAttribute("w:anchor")
1059
+ const rId = attr(child, "r:id")
1060
+ const anchor = attr(child, "w:anchor")
1030
1061
  const relationship = rId ? this.parser.relationships[rId] : null
1031
1062
  const href =
1032
1063
  relationship?.target || (anchor ? `#${anchor}` : null)
@@ -1034,7 +1065,7 @@ export class DocxConvert {
1034
1065
  if (href) {
1035
1066
  const runs = child.queryAll("w:r")
1036
1067
  const text = runs
1037
- .map(run => run.query("w:t")?.textContent || "")
1068
+ .map((run: any) => run.query("w:t")?.textContent || "")
1038
1069
  .join("")
1039
1070
 
1040
1071
  if (text) {
@@ -1103,13 +1134,13 @@ export class DocxConvert {
1103
1134
  }
1104
1135
 
1105
1136
  // Method to help process cross-references in documents
1106
- findReferenceTargets(document) {
1107
- const targets = {}
1137
+ findReferenceTargets(document: any) {
1138
+ const targets: Record<string, any> = {}
1108
1139
 
1109
1140
  // Find bookmarks
1110
- document.queryAll("w:bookmarkStart").forEach(bookmark => {
1111
- const id = bookmark.getAttribute("w:id")
1112
- const name = bookmark.getAttribute("w:name")
1141
+ document.queryAll("w:bookmarkStart").forEach((bookmark: any) => {
1142
+ const id = attr(bookmark, "w:id")
1143
+ const name = attr(bookmark, "w:name")
1113
1144
  if (id && name) {
1114
1145
  targets[name] = {
1115
1146
  id: name,
@@ -1119,8 +1150,8 @@ export class DocxConvert {
1119
1150
  })
1120
1151
 
1121
1152
  // Find headings (with styles like Heading1, Heading2, etc.)
1122
- document.queryAll("w:pStyle").forEach(pStyle => {
1123
- const val = pStyle.getAttribute("w:val")
1153
+ document.queryAll("w:pStyle").forEach((pStyle: any) => {
1154
+ const val = attr(pStyle, "w:val")
1124
1155
  if (val && val.match(/^Heading\d+$/)) {
1125
1156
  const paragraph = pStyle.closest("w:p")
1126
1157
  if (paragraph) {
@@ -1144,18 +1175,18 @@ export class DocxConvert {
1144
1175
  return targets
1145
1176
  }
1146
1177
 
1147
- convertFootnote(id, isEndnote = false) {
1178
+ convertFootnote(id: any, isEndnote: any = false) {
1148
1179
  const footnoteContent = isEndnote
1149
1180
  ? this.parser.endnotes[id].content
1150
1181
  : this.parser.footnotes[id].content
1151
1182
 
1152
1183
  // Convert the footnote content to our document model
1153
- const content = []
1154
- footnoteContent.forEach(block => {
1184
+ const content: any[] = []
1185
+ footnoteContent.forEach((block: any) => {
1155
1186
  if (block.type === "paragraph") {
1156
1187
  content.push({
1157
1188
  type: "paragraph",
1158
- content: block.content.map(node => {
1189
+ content: block.content.map((node: any) => {
1159
1190
  if (node.type === "text") {
1160
1191
  return {
1161
1192
  type: "text",
@@ -1177,7 +1208,7 @@ export class DocxConvert {
1177
1208
  }
1178
1209
  }
1179
1210
 
1180
- convertEquation(oMathNode) {
1211
+ convertEquation(oMathNode: any) {
1181
1212
  // Extract OMML content and convert to MathML
1182
1213
  const mmlNode = omml2mathml(oMathNode)
1183
1214
  const latex = MathMLToLaTeX.convert(mmlNode.outerXML)
@@ -1189,7 +1220,7 @@ export class DocxConvert {
1189
1220
  }
1190
1221
  }
1191
1222
 
1192
- simplifiedOmmlToLatex(omml) {
1223
+ simplifiedOmmlToLatex(omml: any) {
1193
1224
  // This is a very basic conversion - in a real implementation you would
1194
1225
  // use a library like MathML-to-LaTeX or implement a more complete converter
1195
1226
 
@@ -1239,7 +1270,7 @@ export class DocxConvert {
1239
1270
  return textContent || "x^2" // Default fallback
1240
1271
  }
1241
1272
 
1242
- renderField(field) {
1273
+ renderField(field: any) {
1243
1274
  const instr = field.instructions.trim()
1244
1275
 
1245
1276
  // Handle REF fields (cross-references)
@@ -1249,7 +1280,7 @@ export class DocxConvert {
1249
1280
  if (parts.length > 0) {
1250
1281
  const target = parts[0]
1251
1282
  const text = field.display.reduce(
1252
- (accumulator, currentValue) => {
1283
+ (accumulator: any, currentValue: any) => {
1253
1284
  if (currentValue.type === "text") {
1254
1285
  return accumulator + currentValue.text
1255
1286
  }
@@ -1267,7 +1298,7 @@ export class DocxConvert {
1267
1298
  const seqMatch = instr.match(/^SEQ\s+(\S+)/)
1268
1299
  if (seqMatch) {
1269
1300
  const _seqName = seqMatch[1]
1270
- const text = field.display.reduce((acc, curr) => {
1301
+ const text = field.display.reduce((acc: any, curr: any) => {
1271
1302
  if (curr.type === "text") {
1272
1303
  return acc + curr.text
1273
1304
  }
@@ -1305,7 +1336,7 @@ export class DocxConvert {
1305
1336
  }
1306
1337
  }
1307
1338
 
1308
- convertCrossReference(targetId, displayText) {
1339
+ convertCrossReference(targetId: any, displayText: any) {
1309
1340
  // Look up the target in our reference targets
1310
1341
  const target = this.referenceTargets[targetId]
1311
1342
 
@@ -1330,8 +1361,8 @@ export class DocxConvert {
1330
1361
  }
1331
1362
  }
1332
1363
 
1333
- createMarksFromFormatting(formatting, insertion = null, deletion = null) {
1334
- const marks = []
1364
+ createMarksFromFormatting(formatting: any, insertion: any = null, deletion: any = null) {
1365
+ const marks: any[] = []
1335
1366
  if (formatting.bold) {
1336
1367
  marks.push({type: "strong"})
1337
1368
  }
@@ -1350,7 +1381,7 @@ export class DocxConvert {
1350
1381
  }
1351
1382
  // Handle inline code (monospace fonts)
1352
1383
  if (formatting.fontFamily) {
1353
- const monospacePatterns = [
1384
+ const monospacePatterns: any[] = [
1354
1385
  /^courier/i,
1355
1386
  /^consolas/i,
1356
1387
  /^monaco/i,
@@ -1364,7 +1395,7 @@ export class DocxConvert {
1364
1395
  /^ubuntu mono/i,
1365
1396
  /^droid sans mono/i
1366
1397
  ]
1367
- const isMonospace = monospacePatterns.some(pattern =>
1398
+ const isMonospace = monospacePatterns.some((pattern: any) =>
1368
1399
  pattern.test(formatting.fontFamily)
1369
1400
  )
1370
1401
  if (isMonospace) {
@@ -1372,26 +1403,26 @@ export class DocxConvert {
1372
1403
  }
1373
1404
  }
1374
1405
  if (insertion) {
1375
- const date = new Date(insertion.getAttribute("w:date"))
1406
+ const date = new Date(attr(insertion, "w:date"))
1376
1407
  const date10 = Math.floor(date.getTime() / 600000) * 10
1377
1408
  marks.push({
1378
1409
  type: "insertion",
1379
1410
  attrs: {
1380
1411
  user: 0,
1381
- username: insertion.getAttribute("w:author"),
1412
+ username: attr(insertion, "w:author"),
1382
1413
  date: date10,
1383
1414
  approved: false
1384
1415
  }
1385
1416
  })
1386
1417
  }
1387
1418
  if (deletion) {
1388
- const date = new Date(deletion.getAttribute("w:date"))
1419
+ const date = new Date(attr(deletion, "w:date"))
1389
1420
  const date10 = Math.floor(date.getTime() / 600000) * 10
1390
1421
  marks.push({
1391
1422
  type: "deletion",
1392
1423
  attrs: {
1393
1424
  user: 0,
1394
- username: deletion.getAttribute("w:author"),
1425
+ username: attr(deletion, "w:author"),
1395
1426
  date: date10
1396
1427
  }
1397
1428
  })
@@ -1399,14 +1430,18 @@ export class DocxConvert {
1399
1430
  return marks
1400
1431
  }
1401
1432
 
1402
- getCurrentMarks(formatting, insertion, deletion) {
1433
+ getCurrentMarks(
1434
+ formatting: any,
1435
+ insertion: any = null,
1436
+ deletion: any = null
1437
+ ): any[] {
1403
1438
  const marks = this.createMarksFromFormatting(
1404
1439
  formatting,
1405
1440
  insertion,
1406
1441
  deletion
1407
1442
  )
1408
1443
  // Add comment marks for any active comment IDs
1409
- this.currentCommentIds.forEach(commentId => {
1444
+ this.currentCommentIds.forEach((commentId: any) => {
1410
1445
  marks.push({
1411
1446
  type: "comment",
1412
1447
  attrs: {
@@ -1417,11 +1452,11 @@ export class DocxConvert {
1417
1452
  return marks
1418
1453
  }
1419
1454
 
1420
- hasTrackedChanges(doc) {
1455
+ hasTrackedChanges(doc: any) {
1421
1456
  return Boolean(doc.query("w:ins") || doc.query("w:del"))
1422
1457
  }
1423
1458
 
1424
- detectLanguage(doc) {
1425
- return doc.query("w:lang")?.getAttribute("w:val") || "en-US"
1459
+ detectLanguage(doc: any) {
1460
+ return attr(doc.query("w:lang"), "w:val") || "en-US"
1426
1461
  }
1427
1462
  }