@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,15 +1,25 @@
1
1
  import {escapeText} from "fwtoolkit"
2
2
 
3
+ import type {CSL, CSLStyle, ExportMetadata} from "../../types.js"
4
+ import type {XMLElement} from "../tools/xml.js"
5
+ import type {XmlZip} from "../tools/xml_zip.js"
6
+
3
7
  export class DOCXExporterMetadata {
4
- constructor(xml, metadata, csl = null) {
8
+ xml: XmlZip
9
+ metadata: ExportMetadata
10
+ csl: CSL | null
11
+ coreXML: XMLElement | null
12
+ customXML: XMLElement | null
13
+
14
+ constructor(xml: XmlZip, metadata: ExportMetadata, csl: CSL | null = null) {
5
15
  this.xml = xml
6
16
  this.metadata = metadata
7
17
  this.csl = csl
8
- this.coreXML = false
9
- this.customXML = false
18
+ this.coreXML = null
19
+ this.customXML = null
10
20
  }
11
21
 
12
- init() {
22
+ init(): Promise<void> {
13
23
  return this.xml.getXml("docProps/core.xml").then(coreXML => {
14
24
  this.coreXML = coreXML
15
25
  this.addMetadata()
@@ -17,8 +27,8 @@ export class DOCXExporterMetadata {
17
27
  })
18
28
  }
19
29
 
20
- async hasBibliography() {
21
- if (!this.csl || !this.metadata.citationStyle) {
30
+ async hasBibliography(): Promise<string> {
31
+ if (!this.csl || !this.metadata.citationStyle || !this.csl.getStyle) {
22
32
  return "0"
23
33
  }
24
34
  try {
@@ -33,20 +43,28 @@ export class DOCXExporterMetadata {
33
43
  }
34
44
  }
35
45
 
36
- addMetadata() {
46
+ addMetadata(): void {
47
+ if (!this.coreXML) {
48
+ return
49
+ }
37
50
  const corePropertiesEl = this.coreXML.query("cp:coreProperties")
51
+ if (!corePropertiesEl) {
52
+ return
53
+ }
38
54
 
39
55
  // Title
40
- let titleEl = this.coreXML.query("dc:title")
56
+ let titleEl: XMLElement | null = this.coreXML.query("dc:title") ?? null
41
57
  if (!titleEl) {
42
58
  corePropertiesEl.appendXML("<dc:title></dc:title>")
43
59
  titleEl = corePropertiesEl.lastElementChild
44
60
  }
45
- titleEl.innerXML = escapeText(this.metadata.title)
61
+ if (titleEl) {
62
+ titleEl.innerXML = escapeText(this.metadata.title)
63
+ }
46
64
  // Authors
47
65
 
48
66
  const authors = this.metadata.authors.map(author => {
49
- const nameParts = []
67
+ const nameParts: string[] = []
50
68
  if (author.firstname) {
51
69
  nameParts.push(author.firstname)
52
70
  }
@@ -61,55 +79,65 @@ export class DOCXExporterMetadata {
61
79
  })
62
80
  const lastAuthor = authors.length
63
81
  ? escapeText(authors[0])
64
- : gettext("Unknown")
82
+ : "Unknown"
65
83
  const allAuthors = authors.length
66
84
  ? escapeText(authors.join(";"))
67
- : gettext("Unknown")
68
- let allAuthorsEl = this.coreXML.query("dc:creator")
85
+ : "Unknown"
86
+ let allAuthorsEl: XMLElement | null = this.coreXML.query("dc:creator") ?? null
69
87
 
70
88
  if (!allAuthorsEl) {
71
89
  corePropertiesEl.appendXML("<dc:creator></dc:creator>")
72
90
  allAuthorsEl = corePropertiesEl.lastElementChild
73
91
  }
74
- allAuthorsEl.innerXML = allAuthors
75
- let lastAuthorEl = this.coreXML.query("dc:lastModifiedBy")
92
+ if (allAuthorsEl) {
93
+ allAuthorsEl.innerXML = allAuthors
94
+ }
95
+ let lastAuthorEl: XMLElement | null = this.coreXML.query("dc:lastModifiedBy") ?? null
76
96
  if (!lastAuthorEl) {
77
97
  corePropertiesEl.appendXML(
78
98
  "<dc:lastModifiedBy></dc:lastModifiedBy>"
79
99
  )
80
100
  lastAuthorEl = corePropertiesEl.lastElementChild
81
101
  }
82
- lastAuthorEl.innerXML = lastAuthor
102
+ if (lastAuthorEl) {
103
+ lastAuthorEl.innerXML = lastAuthor
104
+ }
83
105
  // Keywords
84
106
  if (this.metadata.keywords.length) {
85
107
  // It is not really clear how keywords should be separated in DOCX files,
86
108
  // so we use ", ".
87
109
  const keywordsString = escapeText(this.metadata.keywords.join(", "))
88
110
 
89
- let keywordsEl = this.coreXML.query("cp:keywords")
111
+ let keywordsEl: XMLElement | null = this.coreXML.query("cp:keywords") ?? null
90
112
  if (!keywordsEl) {
91
113
  corePropertiesEl.appendXML("<cp:keywords></cp:keywords>")
92
114
  keywordsEl = corePropertiesEl.lastElementChild
93
115
  }
94
- keywordsEl.innerXML = keywordsString
116
+ if (keywordsEl) {
117
+ keywordsEl.innerXML = keywordsString
118
+ }
95
119
  }
96
120
 
97
121
  // time
98
122
  const date = new Date()
99
123
  const dateString = date.toISOString().split(".")[0] + "Z"
100
124
  const createdEl = this.coreXML.query("dcterms:created")
101
- createdEl.innerXML = dateString
102
- let modifiedEl = this.coreXML.query("dcterms:modified")
125
+ if (createdEl) {
126
+ createdEl.innerXML = dateString
127
+ }
128
+ let modifiedEl: XMLElement | null = this.coreXML.query("dcterms:modified") ?? null
103
129
  if (!modifiedEl) {
104
130
  corePropertiesEl.appendXML(
105
131
  '<dcterms:modified xsi:type="dcterms:W3CDTF"></dcterms:modified>'
106
132
  )
107
133
  modifiedEl = corePropertiesEl.lastElementChild
108
134
  }
109
- modifiedEl.innerXML = dateString
135
+ if (modifiedEl) {
136
+ modifiedEl.innerXML = dateString
137
+ }
110
138
  }
111
139
 
112
- async addCustomProperties() {
140
+ async addCustomProperties(): Promise<void> {
113
141
  // Create or update docProps/custom.xml with citation style information
114
142
  const customXmlContent = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
115
143
  <Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/custom-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes">
@@ -117,31 +145,35 @@ export class DOCXExporterMetadata {
117
145
 
118
146
  const customXML = await this.xml.getXml(
119
147
  "docProps/custom.xml",
120
- Promise.resolve(customXmlContent)
148
+ customXmlContent
121
149
  )
122
150
  this.customXML = customXML
123
151
 
124
152
  // Add citation style property
125
153
  if (this.metadata.citationStyle) {
126
154
  const propertiesEl = this.customXML.query("Properties")
155
+ if (!propertiesEl) {
156
+ return Promise.resolve()
157
+ }
127
158
 
128
159
  // Remove any existing ZOTERO_PREF_ properties
129
160
  const existingZoteroProps = this.customXML
130
161
  .queryAll("property")
131
162
  .filter(
132
- prop =>
133
- prop.getAttribute("name") &&
134
- prop.getAttribute("name").startsWith("ZOTERO_PREF_")
163
+ prop => {
164
+ const name = String(prop.getAttribute("name"))
165
+ return name && name.startsWith("ZOTERO_PREF_")
166
+ }
135
167
  )
136
168
  existingZoteroProps.forEach(prop =>
137
- prop.parentElement.removeChild(prop)
169
+ prop.parentElement!.removeChild(prop)
138
170
  )
139
171
 
140
172
  // Find the highest pid to determine the next one
141
173
  const existingProperties = this.customXML.queryAll("property")
142
174
  let maxPid = 0
143
175
  existingProperties.forEach(prop => {
144
- const pid = parseInt(prop.getAttribute("pid"))
176
+ const pid = parseInt(String(prop.getAttribute("pid")))
145
177
  if (pid > maxPid) {
146
178
  maxPid = pid
147
179
  }
@@ -156,7 +188,7 @@ export class DOCXExporterMetadata {
156
188
 
157
189
  // Split content into chunks of 255 characters (DOCX limit)
158
190
  const chunkSize = 255
159
- const chunks = []
191
+ const chunks: string[] = []
160
192
  for (let i = 0; i < dataContent.length; i += chunkSize) {
161
193
  chunks.push(dataContent.substring(i, i + chunkSize))
162
194
  }
@@ -170,7 +202,7 @@ export class DOCXExporterMetadata {
170
202
  propertiesEl.appendXML(propertyXML)
171
203
  // Set the text content after appending (textContent escapes XML characters)
172
204
  const lpwstrEl =
173
- propertiesEl.lastElementChild.query("vt:lpwstr")
205
+ propertiesEl.lastElementChild?.query("vt:lpwstr")
174
206
  if (lpwstrEl) {
175
207
  lpwstrEl.textContent = chunk
176
208
  }
@@ -183,30 +215,34 @@ export class DOCXExporterMetadata {
183
215
  return Promise.resolve()
184
216
  }
185
217
 
186
- async addContributorProperties() {
218
+ async addContributorProperties(): Promise<void> {
187
219
  if (!this.metadata.contributors || !this.metadata.contributors.length) {
188
220
  return Promise.resolve()
189
221
  }
190
222
 
191
- const propertiesEl = this.customXML.query("Properties")
223
+ const propertiesEl = this.customXML!.query("Properties")
224
+ if (!propertiesEl) {
225
+ return Promise.resolve()
226
+ }
192
227
 
193
228
  // Remove any existing fidus_contributor_ properties
194
- const existingContributorProps = this.customXML
229
+ const existingContributorProps = this.customXML!
195
230
  .queryAll("property")
196
231
  .filter(
197
- prop =>
198
- prop.getAttribute("name") &&
199
- prop.getAttribute("name").startsWith("fidus_contributor_")
232
+ prop => {
233
+ const name = String(prop.getAttribute("name"))
234
+ return name && name.startsWith("fidus_contributor_")
235
+ }
200
236
  )
201
237
  existingContributorProps.forEach(prop =>
202
- prop.parentElement.removeChild(prop)
238
+ prop.parentElement!.removeChild(prop)
203
239
  )
204
240
 
205
241
  // Find the highest pid
206
- const existingProperties = this.customXML.queryAll("property")
242
+ const existingProperties = this.customXML!.queryAll("property")
207
243
  let maxPid = 0
208
244
  existingProperties.forEach(prop => {
209
- const pid = parseInt(prop.getAttribute("pid"))
245
+ const pid = parseInt(String(prop.getAttribute("pid")))
210
246
  if (pid > maxPid) {
211
247
  maxPid = pid
212
248
  }
@@ -220,7 +256,7 @@ export class DOCXExporterMetadata {
220
256
  <vt:i4></vt:i4>
221
257
  </property>`
222
258
  propertiesEl.appendXML(countXML)
223
- const countEl = propertiesEl.lastElementChild.query("vt:i4")
259
+ const countEl = propertiesEl.lastElementChild?.query("vt:i4")
224
260
  if (countEl) {
225
261
  countEl.textContent = String(contributors.length)
226
262
  }
@@ -228,7 +264,7 @@ export class DOCXExporterMetadata {
228
264
  // Add property for each contributor
229
265
  contributors.forEach((contributor, index) => {
230
266
  const num = index + 1
231
- const nameParts = []
267
+ const nameParts: string[] = []
232
268
  if (contributor.firstname) {
233
269
  nameParts.push(contributor.firstname)
234
270
  }
@@ -277,7 +313,7 @@ export class DOCXExporterMetadata {
277
313
  </property>`
278
314
  propertiesEl.appendXML(propertyXML)
279
315
  const lpwstrEl =
280
- propertiesEl.lastElementChild.query("vt:lpwstr")
316
+ propertiesEl.lastElementChild?.query("vt:lpwstr")
281
317
  if (lpwstrEl) {
282
318
  lpwstrEl.textContent = field.value
283
319
  }
@@ -1,6 +1,8 @@
1
- // manages the .rels files. Need to initialize one for each of document.xml and footnotes.xml
2
1
  import {escapeText} from "fwtoolkit"
3
2
 
3
+ import type {XMLElement} from "../tools/xml.js"
4
+ import type {XmlZip} from "../tools/xml_zip.js"
5
+
4
6
  const DEFAULT_XML = `<?xml version="1.0" encoding="UTF-8"?>
5
7
  <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"></Relationships>`
6
8
 
@@ -13,20 +15,31 @@ const DEFAULT_HYPERLINK_STYLE = `<w:style w:type="character" w:styleId="Internet
13
15
  </w:style>`
14
16
 
15
17
  export class DOCXExporterRels {
16
- constructor(xml, docName) {
18
+ xml: XmlZip
19
+ docName: string
20
+ relsXML: XMLElement | null
21
+ ctXML: XMLElement | null
22
+ relIdCounter: number
23
+ filePath: string
24
+ ctFilePath: string
25
+ styleXML: XMLElement | null
26
+ styleFilePath: string
27
+ hyperLinkStyle: string | null
28
+
29
+ constructor(xml: XmlZip, docName: string) {
17
30
  this.xml = xml
18
31
  this.docName = docName
19
- this.relsXML = false
20
- this.ctXML = false
32
+ this.relsXML = null
33
+ this.ctXML = null
21
34
  this.relIdCounter = -1
22
35
  this.filePath = `word/_rels/${this.docName}.xml.rels`
23
36
  this.ctFilePath = "[Content_Types].xml"
24
- this.styleXML = false
37
+ this.styleXML = null
25
38
  this.styleFilePath = "word/styles.xml"
26
- this.hyperLinkStyle = false
39
+ this.hyperLinkStyle = null
27
40
  }
28
41
 
29
- init() {
42
+ init(): Promise<void> {
30
43
  return Promise.all([
31
44
  this.initCt()
32
45
  .then(() => {
@@ -35,15 +48,16 @@ export class DOCXExporterRels {
35
48
  .then(xml => {
36
49
  this.relsXML = xml
37
50
  this.findMaxRelId()
51
+ return Promise.resolve()
38
52
  }),
39
53
  this.xml.getXml(this.styleFilePath).then(styleXML => {
40
54
  this.styleXML = styleXML
41
55
  return Promise.resolve()
42
56
  })
43
- ])
57
+ ]).then(() => undefined)
44
58
  }
45
59
 
46
- initCt() {
60
+ initCt(): Promise<void> {
47
61
  return this.xml.getXml(this.ctFilePath).then(ctXML => {
48
62
  this.ctXML = ctXML
49
63
  this.addRelsToCt()
@@ -52,12 +66,15 @@ export class DOCXExporterRels {
52
66
  }
53
67
 
54
68
  // Go through a rels xml file and file all the listed relations
55
- findMaxRelId() {
69
+ findMaxRelId(): void {
70
+ if (!this.relsXML) {
71
+ return
72
+ }
56
73
  const rels = this.relsXML.queryAll("Relationship")
57
74
 
58
75
  rels.forEach(rel => {
59
76
  const id = Number.parseInt(
60
- rel.getAttribute("Id").replace(/\D/g, "")
77
+ String(rel.getAttribute("Id")).replace(/\D/g, "")
61
78
  )
62
79
  if (id > this.relIdCounter) {
63
80
  this.relIdCounter = id
@@ -65,127 +82,131 @@ export class DOCXExporterRels {
65
82
  })
66
83
  }
67
84
 
68
- addRelsToCt() {
69
- const override = this.ctXML.query("Overrid", {
85
+ addRelsToCt(): void {
86
+ if (!this.ctXML) {
87
+ return
88
+ }
89
+ const override = this.ctXML.query("Override", {
70
90
  PartName: `/${this.filePath}`
71
91
  })
72
92
  if (!override) {
73
93
  const types = this.ctXML.query("Types")
74
- types.appendXML(
94
+ types?.appendXML(
75
95
  `<Override PartName="/${this.filePath}" ContentType="application/vnd.openxmlformats-package.relationships+xml"/>`
76
96
  )
77
97
  }
78
98
  }
79
99
 
80
100
  // Add a relationship for a link
81
- addLinkRel(link) {
82
- const rels = this.relsXML.query("Relationships")
101
+ addLinkRel(link: string): number {
102
+ const rels = this.relsXML!.query("Relationships")
83
103
  const rId = ++this.relIdCounter
84
104
  const string = `<Relationship Id="rId${rId}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink" Target="${escapeText(link)}" TargetMode="External"/>`
85
- rels.appendXML(string)
105
+ rels?.appendXML(string)
86
106
  return rId
87
107
  }
88
108
 
89
- addLinkStyle() {
109
+ addLinkStyle(): void {
90
110
  if (this.hyperLinkStyle) {
91
111
  // already added
92
112
  return
93
113
  }
94
- const hyperLinkEl = this.styleXML.query("w:name", {
114
+ const hyperLinkEl = this.styleXML!.query("w:name", {
95
115
  "w:val": "Hyperlink"
96
116
  })
97
117
  if (hyperLinkEl) {
98
- this.hyperLinkStyle =
99
- hyperLinkEl.parentElement.getAttribute("w:styleId")
118
+ this.hyperLinkStyle = String(
119
+ hyperLinkEl.parentElement!.getAttribute("w:styleId")
120
+ )
100
121
  } else {
101
- const stylesEl = this.styleXML.query("w:styles")
102
- stylesEl.appendXML(DEFAULT_HYPERLINK_STYLE)
122
+ const stylesEl = this.styleXML!.query("w:styles")
123
+ stylesEl?.appendXML(DEFAULT_HYPERLINK_STYLE)
103
124
  this.hyperLinkStyle = "InternetLink"
104
125
  }
105
126
  }
106
127
 
107
128
  // add a relationship for an image
108
- addImageRel(imgFileName) {
109
- const rels = this.relsXML.query("Relationships")
129
+ addImageRel(imgFileName: string): number {
130
+ const rels = this.relsXML!.query("Relationships")
110
131
  const rId = ++this.relIdCounter
111
132
  const string = `<Relationship Id="rId${rId}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="media/${escapeText(imgFileName)}"/>`
112
- rels.appendXML(string)
133
+ rels?.appendXML(string)
113
134
  return rId
114
135
  }
115
136
 
116
- addFootnoteRel() {
117
- const footnotesRel = this.relsXML.query("Relationship", {
137
+ addFootnoteRel(): number {
138
+ const footnotesRel = this.relsXML!.query("Relationship", {
118
139
  Target: "footnotes.xml"
119
140
  })
120
141
  if (footnotesRel) {
121
142
  // Rel exists already
122
143
  const fnRId = Number.parseInt(
123
- footnotesRel.getAttribute("Id").replace(/\D/g, "")
144
+ String(footnotesRel.getAttribute("Id")).replace(/\D/g, "")
124
145
  )
125
146
  return fnRId
126
147
  }
127
- const rels = this.relsXML.query("Relationships")
148
+ const rels = this.relsXML!.query("Relationships")
128
149
  const rId = ++this.relIdCounter
129
150
  const string = `<Relationship Id="rId${rId}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/footnotes" Target="footnotes.xml"/>`
130
- rels.appendXML(string)
151
+ rels?.appendXML(string)
131
152
  return rId
132
153
  }
133
154
 
134
- addNumberingRel() {
135
- const numberingRel = this.relsXML.query("Relationship", {
155
+ addNumberingRel(): number {
156
+ const numberingRel = this.relsXML!.query("Relationship", {
136
157
  Target: "numbering.xml"
137
158
  })
138
159
  if (numberingRel) {
139
160
  // Rel exists already
140
161
  const nuRId = Number.parseInt(
141
- numberingRel.getAttribute("Id").replace(/\D/g, "")
162
+ String(numberingRel.getAttribute("Id")).replace(/\D/g, "")
142
163
  )
143
164
  return nuRId
144
165
  }
145
- const rels = this.relsXML.query("Relationships")
166
+ const rels = this.relsXML!.query("Relationships")
146
167
  const rId = ++this.relIdCounter
147
168
  const string = `<Relationship Id="rId${rId}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering" Target="numbering.xml"/>`
148
- rels.appendXML(string)
169
+ rels?.appendXML(string)
149
170
  return rId
150
171
  }
151
172
 
152
- addCommentsRel() {
153
- const commentsRel = this.relsXML.query("Relationship", {
173
+ addCommentsRel(): void {
174
+ const commentsRel = this.relsXML!.query("Relationship", {
154
175
  Target: "comments.xml"
155
176
  })
156
177
  if (commentsRel) {
157
178
  return
158
179
  }
159
- const rels = this.relsXML.query("Relationships")
180
+ const rels = this.relsXML!.query("Relationships")
160
181
  const string = `<Relationship Id="rId${++this.relIdCounter}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments" Target="comments.xml"/>`
161
- rels.appendXML(string)
162
- const override = this.ctXML.query("Override", {
182
+ rels?.appendXML(string)
183
+ const override = this.ctXML!.query("Override", {
163
184
  PartName: "/word/comments.xml"
164
185
  })
165
186
  if (!override) {
166
- const types = this.ctXML.query("Types")
167
- types.appendXML(
187
+ const types = this.ctXML!.query("Types")
188
+ types?.appendXML(
168
189
  '<Override PartName="/word/comments.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml"/>'
169
190
  )
170
191
  }
171
192
  }
172
193
 
173
- addCommentsExtendedRel() {
174
- const commentsExtendedRel = this.relsXML.query("Relationship", {
194
+ addCommentsExtendedRel(): void {
195
+ const commentsExtendedRel = this.relsXML!.query("Relationship", {
175
196
  Target: "commentsExtended.xml"
176
197
  })
177
198
  if (commentsExtendedRel) {
178
199
  return
179
200
  }
180
- const rels = this.relsXML.query("Relationships")
201
+ const rels = this.relsXML!.query("Relationships")
181
202
  const string = `<Relationship Id="rId${++this.relIdCounter}" Type="http://schemas.microsoft.com/office/2011/relationships/commentsExtended" Target="commentsExtended.xml"/>`
182
- rels.appendXML(string)
183
- const override = this.ctXML.query("Override", {
203
+ rels?.appendXML(string)
204
+ const override = this.ctXML!.query("Override", {
184
205
  PartName: "/word/commentsExtended.xml"
185
206
  })
186
207
  if (!override) {
187
- const types = this.ctXML.query("Types")
188
- types.appendXML(
208
+ const types = this.ctXML!.query("Types")
209
+ types?.appendXML(
189
210
  '<Override PartName="/word/commentsExtended.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.commentsExtended+xml"/>'
190
211
  )
191
212
  }