@fiduswriter/document 0.1.0-alpha.4 → 0.1.0-alpha.6

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 +24 -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,16 +1,42 @@
1
1
  import {escapeText} from "fwtoolkit"
2
+
3
+ import type {
4
+ BibDB,
5
+ BibliographyResult,
6
+ CiteprocInstance,
7
+ CSL
8
+ } from "../types.js"
2
9
  import {citeprocSys} from "./citeproc_sys.js"
3
- /*
4
- * Use CSL and bibDB to format all citations for the given prosemirror json citation nodes
5
- */
6
10
 
11
+ interface CitationInfo {
12
+ format: string
13
+ references: Array<{id: number; [key: string]: unknown}>
14
+ }
15
+
16
+ /**
17
+ * Use CSL and bibDB to format all citations for the given ProseMirror JSON citation nodes.
18
+ */
7
19
  export class FormatCitations {
20
+ csl: CSL
21
+ allCitationInfos: CitationInfo[]
22
+ citationStyle: string
23
+ bibliographyHeader: string
24
+ bibDB: BibDB
25
+ synchronous: boolean
26
+ lang: string
27
+
28
+ bibliography: BibliographyResult | false
29
+ citations: Array<{citationItems: unknown[]; properties: {noteIndex: number}}>
30
+ bibFormats: string[]
31
+ citationTexts: string[]
32
+ citationType: string
33
+
8
34
  constructor(
9
- csl,
10
- allCitationInfos,
11
- citationStyle,
12
- bibliographyHeader,
13
- bibDB,
35
+ csl: CSL,
36
+ allCitationInfos: CitationInfo[],
37
+ citationStyle: string,
38
+ bibliographyHeader: string,
39
+ bibDB: BibDB,
14
40
  synchronous = false,
15
41
  lang = "en-US"
16
42
  ) {
@@ -21,9 +47,15 @@ export class FormatCitations {
21
47
  this.bibDB = bibDB
22
48
  this.synchronous = synchronous
23
49
  this.lang = lang
50
+
51
+ this.bibliography = false
52
+ this.citations = []
53
+ this.bibFormats = []
54
+ this.citationTexts = []
55
+ this.citationType = ""
24
56
  }
25
57
 
26
- init() {
58
+ init(): boolean | Promise<void> {
27
59
  this.bibliography = false
28
60
  this.citations = []
29
61
  this.bibFormats = []
@@ -33,7 +65,7 @@ export class FormatCitations {
33
65
  return this.getFormattedCitations()
34
66
  }
35
67
 
36
- formatAllCitations() {
68
+ formatAllCitations(): void {
37
69
  this.allCitationInfos.forEach(cInfo => {
38
70
  this.bibFormats.push(cInfo.format)
39
71
  this.citations.push({
@@ -45,7 +77,7 @@ export class FormatCitations {
45
77
  })
46
78
  }
47
79
 
48
- get bibHTML() {
80
+ get bibHTML(): string {
49
81
  if (!this.bibliography || !this.bibliography[0].entry_ids.length) {
50
82
  return ""
51
83
  }
@@ -55,7 +87,7 @@ export class FormatCitations {
55
87
  }
56
88
 
57
89
  // CSS
58
- get bibCSS() {
90
+ get bibCSS(): string {
59
91
  if (!this.bibliography || !this.bibliography[0].entry_ids.length) {
60
92
  return ""
61
93
  }
@@ -86,7 +118,7 @@ export class FormatCitations {
86
118
  return css
87
119
  }
88
120
 
89
- reloadCitations(missingItems) {
121
+ reloadCitations(missingItems: string[]): Promise<void> {
90
122
  // Not all citations could be found in the database.
91
123
  // Reload the database if possible, but don't cycle if no new matches are found.
92
124
  if (!this.bibDB.getDB) {
@@ -95,16 +127,19 @@ export class FormatCitations {
95
127
 
96
128
  return this.bibDB.getDB().then(() => {
97
129
  if (missingItems.some(item => this.bibDB.db.hasOwnProperty(item))) {
98
- return this.init()
130
+ return this.init() as Promise<void>
99
131
  } else {
100
132
  return Promise.resolve()
101
133
  }
102
134
  })
103
135
  }
104
136
 
105
- getFormattedCitations() {
137
+ getFormattedCitations(): boolean | Promise<void> {
106
138
  const citeprocConnector = new citeprocSys(this.bibDB)
107
139
  if (this.synchronous) {
140
+ if (!this.csl.getEngineSync) {
141
+ return false
142
+ }
108
143
  const citeprocInstance = this.csl.getEngineSync(
109
144
  citeprocConnector,
110
145
  this.citationStyle,
@@ -116,6 +151,9 @@ export class FormatCitations {
116
151
  this.process(citeprocInstance)
117
152
  return true
118
153
  } else {
154
+ if (!this.csl.getEngine) {
155
+ return Promise.resolve()
156
+ }
119
157
  return this.csl
120
158
  .getEngine(citeprocConnector, this.citationStyle, this.lang)
121
159
  .then(citeprocInstance => {
@@ -131,10 +169,10 @@ export class FormatCitations {
131
169
  }
132
170
  }
133
171
 
134
- process(citeprocInstance) {
135
- const allIds = []
172
+ process(citeprocInstance: CiteprocInstance): void {
173
+ const allIds: string[] = []
136
174
  this.citations.forEach(cit =>
137
- cit.citationItems.forEach(item => allIds.push(String(item.id)))
175
+ cit.citationItems.forEach(item => allIds.push(String((item as {id: number}).id)))
138
176
  )
139
177
  citeprocInstance.updateItems(allIds)
140
178
 
@@ -147,18 +185,32 @@ export class FormatCitations {
147
185
  true
148
186
  )
149
187
  if (inText && "textcite" == this.bibFormats[i]) {
150
- const items = citation.citationItems
188
+ const items = citation.citationItems as Array<{
189
+ id: number
190
+ locator?: string
191
+ prefix?: string
192
+ }>
151
193
  let newCiteText = ""
152
194
 
153
195
  for (let j = 0; j < items.length; j++) {
154
- const onlyNameOption = [
196
+ const onlyNameOption: Array<{
197
+ id: number
198
+ "author-only": number
199
+ locator?: string
200
+ prefix?: string
201
+ }> = [
155
202
  {
156
203
  id: items[j].id,
157
204
  "author-only": 1
158
205
  }
159
206
  ]
160
207
 
161
- const onlyDateOption = [
208
+ const onlyDateOption: Array<{
209
+ id: number
210
+ "suppress-author": number
211
+ locator?: string
212
+ prefix?: string
213
+ }> = [
162
214
  {
163
215
  id: items[j].id,
164
216
  "suppress-author": 1
@@ -180,8 +232,12 @@ export class FormatCitations {
180
232
  }
181
233
  newCiteText += `${citeprocInstance.makeCitationCluster(onlyNameOption)} ${citeprocInstance.makeCitationCluster(onlyDateOption)}`
182
234
  }
183
- citationTexts.find(citationText => citationText[0] === i)[1] =
184
- newCiteText
235
+ const target = citationTexts.find(
236
+ citationText => citationText[0] === i
237
+ )
238
+ if (target) {
239
+ target[1] = newCiteText
240
+ }
185
241
  }
186
242
  citationTexts.forEach(
187
243
  ([index, citationText]) =>
@@ -189,6 +245,6 @@ export class FormatCitations {
189
245
  )
190
246
  }
191
247
  this.citationType = citeprocInstance.cslXml.dataObj.attrs.class
192
- this.bibliography = citeprocInstance.makeBibliography()
248
+ this.bibliography = citeprocInstance.makeBibliography() as BibliographyResult
193
249
  }
194
250
  }
@@ -17,11 +17,11 @@ export class E2EEEncryptor {
17
17
  /**
18
18
  * Encrypt a string with AES-GCM.
19
19
  *
20
- * @param {string} plaintext - The plaintext string to encrypt
21
- * @param {CryptoKey} key - An AES-GCM key (from E2EEKeyManager.deriveKey)
22
- * @returns {Promise<string>} Base64-encoded string (iv + ciphertext + auth tag)
20
+ * @param plaintext - The plaintext string to encrypt
21
+ * @param key - An AES-GCM key (from E2EEKeyManager.deriveKey)
22
+ * @returns Base64-encoded string (iv + ciphertext + auth tag)
23
23
  */
24
- static async encrypt(plaintext, key) {
24
+ static async encrypt(plaintext: string, key: CryptoKey): Promise<string> {
25
25
  const iv = crypto.getRandomValues(new Uint8Array(12))
26
26
  const encoded = new TextEncoder().encode(plaintext)
27
27
  const ciphertext = await crypto.subtle.encrypt(
@@ -39,11 +39,14 @@ export class E2EEEncryptor {
39
39
  /**
40
40
  * Decrypt a Base64-encoded AES-GCM ciphertext.
41
41
  *
42
- * @param {string} ciphertextBase64 - Base64-encoded (iv + ciphertext + auth tag)
43
- * @param {CryptoKey} key - An AES-GCM key (from E2EEKeyManager.deriveKey)
44
- * @returns {Promise<string>} The decrypted plaintext string
42
+ * @param ciphertextBase64 - Base64-encoded (iv + ciphertext + auth tag)
43
+ * @param key - An AES-GCM key (from E2EEKeyManager.deriveKey)
44
+ * @returns The decrypted plaintext string
45
45
  */
46
- static async decrypt(ciphertextBase64, key) {
46
+ static async decrypt(
47
+ ciphertextBase64: string,
48
+ key: CryptoKey
49
+ ): Promise<string> {
47
50
  const combined = E2EEEncryptor._base64ToUint8Array(ciphertextBase64)
48
51
  const iv = combined.slice(0, 12)
49
52
  const ciphertext = combined.slice(12)
@@ -60,11 +63,14 @@ export class E2EEEncryptor {
60
63
  *
61
64
  * Serializes the object to JSON, then encrypts the JSON string.
62
65
  *
63
- * @param {Object} obj - A JSON-serializable object
64
- * @param {CryptoKey} key - An AES-GCM key
65
- * @returns {Promise<string>} Base64-encoded encrypted data
66
+ * @param obj - A JSON-serializable object
67
+ * @param key - An AES-GCM key
68
+ * @returns Base64-encoded encrypted data
66
69
  */
67
- static encryptObject(obj, key) {
70
+ static encryptObject(
71
+ obj: Record<string, unknown> | unknown[],
72
+ key: CryptoKey
73
+ ): Promise<string> {
68
74
  return E2EEEncryptor.encrypt(JSON.stringify(obj), key)
69
75
  }
70
76
 
@@ -73,11 +79,14 @@ export class E2EEEncryptor {
73
79
  *
74
80
  * Decrypts the Base64-encoded ciphertext, then parses the result as JSON.
75
81
  *
76
- * @param {string} ciphertextBase64 - Base64-encoded encrypted data
77
- * @param {CryptoKey} key - An AES-GCM key
78
- * @returns {Promise<Object>} The decrypted and parsed object
82
+ * @param ciphertextBase64 - Base64-encoded encrypted data
83
+ * @param key - An AES-GCM key
84
+ * @returns The decrypted and parsed object
79
85
  */
80
- static async decryptObject(ciphertextBase64, key) {
86
+ static async decryptObject(
87
+ ciphertextBase64: string,
88
+ key: CryptoKey
89
+ ): Promise<unknown> {
81
90
  const plaintext = await E2EEEncryptor.decrypt(ciphertextBase64, key)
82
91
  return JSON.parse(plaintext)
83
92
  }
@@ -85,11 +94,14 @@ export class E2EEEncryptor {
85
94
  /**
86
95
  * Encrypt an ArrayBuffer (for images and other binary data).
87
96
  *
88
- * @param {ArrayBuffer} buffer - The binary data to encrypt
89
- * @param {CryptoKey} key - An AES-GCM key
90
- * @returns {Promise<string>} Base64-encoded encrypted data (iv + ciphertext)
97
+ * @param buffer - The binary data to encrypt
98
+ * @param key - An AES-GCM key
99
+ * @returns Base64-encoded encrypted data (iv + ciphertext)
91
100
  */
92
- static async encryptBuffer(buffer, key) {
101
+ static async encryptBuffer(
102
+ buffer: ArrayBuffer,
103
+ key: CryptoKey
104
+ ): Promise<string> {
93
105
  const iv = crypto.getRandomValues(new Uint8Array(12))
94
106
  const ciphertext = await crypto.subtle.encrypt(
95
107
  {name: "AES-GCM", iv: iv},
@@ -106,15 +118,22 @@ export class E2EEEncryptor {
106
118
  /**
107
119
  * Decrypt to an ArrayBuffer.
108
120
  *
109
- * @param {string} ciphertextBase64 - Base64-encoded encrypted data
110
- * @param {CryptoKey} key - An AES-GCM key
111
- * @returns {Promise<ArrayBuffer>} The decrypted binary data
121
+ * @param ciphertextBase64 - Base64-encoded encrypted data
122
+ * @param key - An AES-GCM key
123
+ * @returns The decrypted binary data
112
124
  */
113
- static decryptBuffer(ciphertextBase64, key) {
125
+ static decryptBuffer(
126
+ ciphertextBase64: string,
127
+ key: CryptoKey
128
+ ): Promise<ArrayBuffer> {
114
129
  const combined = E2EEEncryptor._base64ToUint8Array(ciphertextBase64)
115
130
  const iv = combined.slice(0, 12)
116
131
  const ciphertext = combined.slice(12)
117
- return crypto.subtle.decrypt({name: "AES-GCM", iv: iv}, key, ciphertext)
132
+ return crypto.subtle.decrypt(
133
+ {name: "AES-GCM", iv: iv},
134
+ key,
135
+ ciphertext
136
+ )
118
137
  }
119
138
 
120
139
  /**
@@ -124,11 +143,14 @@ export class E2EEEncryptor {
124
143
  * a Blob with application/octet-stream type (since the encrypted
125
144
  * data is opaque binary).
126
145
  *
127
- * @param {File|Blob} file - The image file to encrypt
128
- * @param {CryptoKey} key - An AES-GCM key
129
- * @returns {Promise<Blob>} An encrypted Blob with type application/octet-stream
146
+ * @param file - The image file to encrypt
147
+ * @param key - An AES-GCM key
148
+ * @returns An encrypted Blob with type application/octet-stream
130
149
  */
131
- static async encryptImage(file, key) {
150
+ static async encryptImage(
151
+ file: Blob,
152
+ key: CryptoKey
153
+ ): Promise<Blob> {
132
154
  const buffer = await file.arrayBuffer()
133
155
  const iv = crypto.getRandomValues(new Uint8Array(12))
134
156
  const ciphertext = await crypto.subtle.encrypt(
@@ -146,11 +168,14 @@ export class E2EEEncryptor {
146
168
  /**
147
169
  * Decrypt an encrypted image back to an ArrayBuffer.
148
170
  *
149
- * @param {string} ciphertextBase64 - Base64-encoded encrypted image data
150
- * @param {CryptoKey} key - An AES-GCM key
151
- * @returns {Promise<ArrayBuffer>} The decrypted image data
171
+ * @param ciphertextBase64 - Base64-encoded encrypted image data
172
+ * @param key - An AES-GCM key
173
+ * @returns The decrypted image data
152
174
  */
153
- static decryptImage(ciphertextBase64, key) {
175
+ static decryptImage(
176
+ ciphertextBase64: string,
177
+ key: CryptoKey
178
+ ): Promise<ArrayBuffer> {
154
179
  return E2EEEncryptor.decryptBuffer(ciphertextBase64, key)
155
180
  }
156
181
 
@@ -160,11 +185,14 @@ export class E2EEEncryptor {
160
185
  * Useful for decrypting encrypted images that need to be stored
161
186
  * as Base64 data URLs or re-exported.
162
187
  *
163
- * @param {string} ciphertextBase64 - Base64-encoded encrypted data
164
- * @param {CryptoKey} key - An AES-GCM key
165
- * @returns {Promise<string>} Base64-encoded decrypted data
188
+ * @param ciphertextBase64 - Base64-encoded encrypted data
189
+ * @param key - An AES-GCM key
190
+ * @returns Base64-encoded decrypted data
166
191
  */
167
- static async decryptBufferToBase64(ciphertextBase64, key) {
192
+ static async decryptBufferToBase64(
193
+ ciphertextBase64: string,
194
+ key: CryptoKey
195
+ ): Promise<string> {
168
196
  const buffer = await E2EEEncryptor.decryptBuffer(ciphertextBase64, key)
169
197
  const bytes = new Uint8Array(buffer)
170
198
  let binary = ""
@@ -180,12 +208,16 @@ export class E2EEEncryptor {
180
208
  * Fetches the encrypted image file from the given URL, decrypts it,
181
209
  * and creates a temporary object URL that can be used as an img src.
182
210
  *
183
- * @param {string} imageUrl - The URL of the encrypted image file
184
- * @param {CryptoKey} key - An AES-GCM key
185
- * @param {string} mimeType - The MIME type of the decrypted image
186
- * @returns {Promise<string>} A blob URL for the decrypted image
211
+ * @param imageUrl - The URL of the encrypted image file
212
+ * @param key - An AES-GCM key
213
+ * @param mimeType - The MIME type of the decrypted image
214
+ * @returns A blob URL for the decrypted image
187
215
  */
188
- static async decryptImageToUrl(imageUrl, key, mimeType = "image/png") {
216
+ static async decryptImageToUrl(
217
+ imageUrl: string,
218
+ key: CryptoKey,
219
+ mimeType = "image/png"
220
+ ): Promise<string> {
189
221
  const response = await fetch(imageUrl)
190
222
  const arrayBuffer = await response.arrayBuffer()
191
223
  const bytes = new Uint8Array(arrayBuffer)
@@ -205,7 +237,7 @@ export class E2EEEncryptor {
205
237
  * Convert a Uint8Array to a Base64-encoded string.
206
238
  * @private
207
239
  */
208
- static _uint8ArrayToBase64(bytes) {
240
+ private static _uint8ArrayToBase64(bytes: Uint8Array): string {
209
241
  let binary = ""
210
242
  for (let i = 0; i < bytes.length; i++) {
211
243
  binary += String.fromCharCode(bytes[i])
@@ -217,7 +249,7 @@ export class E2EEEncryptor {
217
249
  * Convert a Base64-encoded string to a Uint8Array.
218
250
  * @private
219
251
  */
220
- static _base64ToUint8Array(base64) {
252
+ private static _base64ToUint8Array(base64: string): Uint8Array {
221
253
  const binary = atob(base64)
222
254
  const bytes = new Uint8Array(binary.length)
223
255
  for (let i = 0; i < binary.length; i++) {
@@ -3,10 +3,28 @@ import {DOMParser, DOMSerializer} from "prosemirror-model"
3
3
  import {cslBibSchema} from "../../bibliography/csl_bib.js"
4
4
  import {FormatCitations} from "../../citations/format.js"
5
5
  import {fnSchema} from "../../schema/footnotes.js"
6
+ import type {BibDB, CSL, DocSettings, FidusNode} from "../../types.js"
6
7
  import {descendantNodes} from "../tools/doc_content.js"
8
+ import type {XMLElement} from "../tools/xml.js"
9
+ import type {XmlZip} from "../tools/xml_zip.js"
7
10
 
8
11
  export class DOCXExporterCitations {
9
- constructor(docContent, settings, bibDB, csl, xml, origCitInfos = []) {
12
+ docContent: FidusNode
13
+ settings: DocSettings
14
+ bibDB: BibDB
15
+ csl: CSL
16
+ xml: XmlZip
17
+ origCitInfos: Record<string, unknown>[]
18
+
19
+ citInfos: Record<string, unknown>[]
20
+ citationTexts: string[]
21
+ pmCits: FidusNode[]
22
+ citFm: FormatCitations | false
23
+ pmBib: FidusNode | false
24
+ styleXML: XMLElement | null
25
+ styleFilePath: string
26
+
27
+ constructor(docContent: FidusNode, settings: DocSettings, bibDB: BibDB, csl: CSL, xml: XmlZip, origCitInfos: Record<string, unknown>[] = []) {
10
28
  this.docContent = docContent
11
29
  this.settings = settings
12
30
  this.bibDB = bibDB
@@ -19,11 +37,11 @@ export class DOCXExporterCitations {
19
37
  this.pmCits = []
20
38
  this.citFm = false
21
39
  this.pmBib = false
22
- this.styleXML = false
40
+ this.styleXML = null
23
41
  this.styleFilePath = "word/styles.xml"
24
42
  }
25
43
 
26
- init() {
44
+ init(): Promise<void> {
27
45
  return this.xml
28
46
  .getXml(this.styleFilePath)
29
47
  .then(styleXML => {
@@ -35,7 +53,7 @@ export class DOCXExporterCitations {
35
53
 
36
54
  // Citations are highly interdependent -- so we need to format them all
37
55
  // together before laying out the document.
38
- formatCitations() {
56
+ formatCitations(): Promise<void> {
39
57
  if (this.origCitInfos.length) {
40
58
  // Initial citInfos are taken from a previous run to include in bibliography,
41
59
  // and they are removed before spitting out the citation entries for the given document.
@@ -44,21 +62,22 @@ export class DOCXExporterCitations {
44
62
  }
45
63
 
46
64
  descendantNodes(this.docContent).forEach(node => {
47
- if (node.type === "citation") {
65
+ if (node.type === "citation" && node.attrs) {
48
66
  this.citInfos.push(JSON.parse(JSON.stringify(node.attrs)))
49
67
  }
50
68
  })
51
- this.citFm = new FormatCitations(
69
+ const citFm = new FormatCitations(
52
70
  this.csl,
53
- this.citInfos,
54
- this.settings.citationstyle,
71
+ this.citInfos as any,
72
+ this.settings.citationstyle || "",
55
73
  "",
56
74
  this.bibDB,
57
75
  false,
58
76
  this.settings.language
59
77
  )
60
- return this.citFm.init().then(() => {
61
- this.citationTexts = this.citFm.citationTexts
78
+ this.citFm = citFm
79
+ return (citFm.init() as Promise<void>).then(() => {
80
+ this.citationTexts = citFm.citationTexts
62
81
  if (this.origCitInfos.length) {
63
82
  // Remove all citation texts originating from original starting citInfos
64
83
  this.citationTexts.splice(0, this.origCitInfos.length)
@@ -68,7 +87,10 @@ export class DOCXExporterCitations {
68
87
  })
69
88
  }
70
89
 
71
- convertCitations() {
90
+ convertCitations(): void {
91
+ if (!this.citFm) {
92
+ return
93
+ }
72
94
  // There could be some formatting in the citations, so we parse them through the PM schema for final formatting.
73
95
  // We need to put the citations each in a paragraph so that it works with
74
96
  // the fiduswriter schema and so that the converter doesn't mash them together.
@@ -83,30 +105,36 @@ export class DOCXExporterCitations {
83
105
 
84
106
  const serializer = DOMSerializer.fromSchema(fnSchema)
85
107
  const dom = serializer.serializeNode(fnNode)
86
- dom.innerHTML = citationsHTML
108
+ ;(dom as HTMLElement).innerHTML = citationsHTML
87
109
  this.pmCits = DOMParser.fromSchema(fnSchema)
88
110
  .parse(dom, {topNode: fnNode})
89
- .toJSON().content
111
+ .toJSON().content as FidusNode[]
90
112
  }
91
113
 
92
114
  // Now we do the same for the bibliography.
93
- const cslBib = this.citFm.bibliography
115
+ const cslBib = this.citFm!.bibliography
94
116
  if (cslBib && cslBib[1].length > 0) {
95
117
  this.addReferenceStyle(cslBib[0])
96
118
  const bibNode = cslBibSchema.nodeFromJSON({type: "cslbib"})
97
119
  const cslSerializer = DOMSerializer.fromSchema(cslBibSchema)
98
120
  const dom = cslSerializer.serializeNode(bibNode)
99
- dom.innerHTML = cslBib[1].join("")
121
+ ;(dom as HTMLElement).innerHTML = cslBib[1].join("")
100
122
  this.pmBib = DOMParser.fromSchema(cslBibSchema)
101
123
  .parse(dom, {topNode: bibNode})
102
- .toJSON()
124
+ .toJSON() as FidusNode
103
125
  }
104
126
  }
105
127
 
106
- addReferenceStyle(bibInfo) {
107
- const stylesEl = this.styleXML.query("w:styles")
128
+ addReferenceStyle(bibInfo: {
129
+ linespacing: number
130
+ entryspacing: number
131
+ hangingindent?: boolean
132
+ maxoffset: number
133
+ "second-field-align"?: "margin" | "flush"
134
+ }): void {
135
+ const stylesEl = this.styleXML!.query("w:styles")
108
136
  if (
109
- !this.styleXML.query("w:style", {
137
+ !this.styleXML!.query("w:style", {
110
138
  "w:styleId": "BibliographyHeading"
111
139
  })
112
140
  ) {
@@ -126,15 +154,15 @@ export class DOCXExporterCitations {
126
154
  <w:szCs w:val="32"/>
127
155
  </w:rPr>
128
156
  </w:style>`
129
- stylesEl.appendXML(headingStyleDef)
157
+ stylesEl?.appendXML(headingStyleDef)
130
158
  }
131
159
  // The style called "Bibliography" will override any previous style
132
160
  // of the same name.
133
- const stylesParStyle = this.styleXML.query("w:style", {
161
+ const stylesParStyle = this.styleXML!.query("w:style", {
134
162
  "w:styleId": "Bibliography"
135
163
  })
136
164
  if (stylesParStyle) {
137
- stylesParStyle.parentElement.removeChild(stylesParStyle)
165
+ stylesParStyle.parentElement!.removeChild(stylesParStyle)
138
166
  }
139
167
 
140
168
  const lineHeight = 240 * bibInfo.linespacing
@@ -172,6 +200,6 @@ export class DOCXExporterCitations {
172
200
  <w:rPr></w:rPr>
173
201
  </w:style>`
174
202
 
175
- stylesEl.appendXML(styleDef)
203
+ stylesEl?.appendXML(styleDef)
176
204
  }
177
205
  }