@fiduswriter/document 0.1.0-alpha.3 → 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 (582) hide show
  1. package/README.md +22 -1
  2. package/dist/bibliography/common.d.ts +10 -0
  3. package/dist/bibliography/common.d.ts.map +1 -0
  4. package/dist/bibliography/common.js +86 -0
  5. package/dist/bibliography/common.js.map +1 -0
  6. package/dist/bibliography/csl_bib.d.ts +3 -0
  7. package/dist/bibliography/csl_bib.d.ts.map +1 -0
  8. package/dist/bibliography/csl_bib.js +131 -0
  9. package/dist/bibliography/csl_bib.js.map +1 -0
  10. package/dist/citations/citeproc_sys.d.ts +12 -0
  11. package/dist/citations/citeproc_sys.d.ts.map +1 -0
  12. package/dist/citations/citeproc_sys.js +48 -0
  13. package/dist/citations/citeproc_sys.js.map +1 -0
  14. package/dist/citations/format.d.ts +40 -0
  15. package/dist/citations/format.d.ts.map +1 -0
  16. package/dist/citations/format.js +186 -0
  17. package/dist/citations/format.js.map +1 -0
  18. package/dist/editor/e2ee/encryptor.d.ts +123 -0
  19. package/dist/editor/e2ee/encryptor.d.ts.map +1 -0
  20. package/dist/editor/e2ee/encryptor.js +201 -0
  21. package/dist/editor/e2ee/encryptor.js.map +1 -0
  22. package/dist/exporter/docx/citations.d.ts +31 -0
  23. package/dist/exporter/docx/citations.d.ts.map +1 -0
  24. package/dist/exporter/docx/citations.js +171 -0
  25. package/dist/exporter/docx/citations.js.map +1 -0
  26. package/dist/exporter/docx/comments.d.ts +22 -0
  27. package/dist/exporter/docx/comments.d.ts.map +1 -0
  28. package/dist/exporter/docx/comments.js +170 -0
  29. package/dist/exporter/docx/comments.js.map +1 -0
  30. package/dist/exporter/docx/footnotes.d.ts +47 -0
  31. package/dist/exporter/docx/footnotes.d.ts.map +1 -0
  32. package/dist/exporter/docx/footnotes.js +216 -0
  33. package/dist/exporter/docx/footnotes.js.map +1 -0
  34. package/dist/exporter/docx/images.d.ts +25 -0
  35. package/dist/exporter/docx/images.d.ts.map +1 -0
  36. package/dist/exporter/docx/images.js +101 -0
  37. package/dist/exporter/docx/images.js.map +1 -0
  38. package/dist/exporter/docx/index.d.ts +16 -0
  39. package/dist/exporter/docx/index.d.ts.map +1 -0
  40. package/dist/exporter/docx/index.js +115 -0
  41. package/dist/exporter/docx/index.js.map +1 -0
  42. package/dist/exporter/docx/lists.d.ts +38 -0
  43. package/dist/exporter/docx/lists.d.ts.map +1 -0
  44. package/dist/exporter/docx/lists.js +276 -0
  45. package/dist/exporter/docx/lists.js.map +1 -0
  46. package/dist/exporter/docx/math.d.ts +13 -0
  47. package/dist/exporter/docx/math.d.ts.map +1 -0
  48. package/dist/exporter/docx/math.js +59 -0
  49. package/dist/exporter/docx/math.js.map +1 -0
  50. package/dist/exporter/docx/metadata.d.ts +17 -0
  51. package/dist/exporter/docx/metadata.d.ts.map +1 -0
  52. package/dist/exporter/docx/metadata.js +272 -0
  53. package/dist/exporter/docx/metadata.js.map +1 -0
  54. package/dist/exporter/docx/rels.d.ts +27 -0
  55. package/dist/exporter/docx/rels.d.ts.map +1 -0
  56. package/dist/exporter/docx/rels.js +183 -0
  57. package/dist/exporter/docx/rels.js.map +1 -0
  58. package/dist/exporter/docx/render.d.ts +22 -0
  59. package/dist/exporter/docx/render.d.ts.map +1 -0
  60. package/dist/exporter/docx/render.js +780 -0
  61. package/dist/exporter/docx/render.js.map +1 -0
  62. package/dist/exporter/docx/richtext.d.ts +25 -0
  63. package/dist/exporter/docx/richtext.d.ts.map +1 -0
  64. package/dist/exporter/docx/richtext.js +1070 -0
  65. package/dist/exporter/docx/richtext.js.map +1 -0
  66. package/dist/exporter/docx/tables.d.ts +16 -0
  67. package/dist/exporter/docx/tables.d.ts.map +1 -0
  68. package/dist/exporter/docx/tables.js +115 -0
  69. package/dist/exporter/docx/tables.js.map +1 -0
  70. package/dist/exporter/docx/tools.d.ts +4 -0
  71. package/dist/exporter/docx/tools.d.ts.map +1 -0
  72. package/dist/exporter/docx/tools.js +48 -0
  73. package/dist/exporter/docx/tools.js.map +1 -0
  74. package/dist/exporter/epub/index.d.ts +19 -0
  75. package/dist/exporter/epub/index.d.ts.map +1 -0
  76. package/dist/exporter/epub/index.js +109 -0
  77. package/dist/exporter/epub/index.js.map +1 -0
  78. package/dist/exporter/epub/templates.d.ts +63 -0
  79. package/dist/exporter/epub/templates.d.ts.map +1 -0
  80. package/dist/exporter/epub/templates.js +95 -0
  81. package/dist/exporter/epub/templates.js.map +1 -0
  82. package/dist/exporter/epub/tools.d.ts +13 -0
  83. package/dist/exporter/epub/tools.d.ts.map +1 -0
  84. package/{src → dist}/exporter/epub/tools.js +32 -46
  85. package/dist/exporter/epub/tools.js.map +1 -0
  86. package/dist/exporter/html/citations.d.ts +29 -0
  87. package/dist/exporter/html/citations.d.ts.map +1 -0
  88. package/dist/exporter/html/citations.js +110 -0
  89. package/dist/exporter/html/citations.js.map +1 -0
  90. package/dist/exporter/html/convert.d.ts +50 -0
  91. package/dist/exporter/html/convert.d.ts.map +1 -0
  92. package/dist/exporter/html/convert.js +750 -0
  93. package/dist/exporter/html/convert.js.map +1 -0
  94. package/dist/exporter/html/index.d.ts +64 -0
  95. package/dist/exporter/html/index.d.ts.map +1 -0
  96. package/dist/exporter/html/index.js +154 -0
  97. package/dist/exporter/html/index.js.map +1 -0
  98. package/dist/exporter/html/templates.d.ts +24 -0
  99. package/dist/exporter/html/templates.d.ts.map +1 -0
  100. package/dist/exporter/html/templates.js +21 -0
  101. package/dist/exporter/html/templates.js.map +1 -0
  102. package/dist/exporter/html/tools.d.ts +2 -0
  103. package/dist/exporter/html/tools.d.ts.map +1 -0
  104. package/dist/exporter/html/tools.js +49 -0
  105. package/dist/exporter/html/tools.js.map +1 -0
  106. package/dist/exporter/jats/bibliography.d.ts +3 -0
  107. package/dist/exporter/jats/bibliography.d.ts.map +1 -0
  108. package/dist/exporter/jats/bibliography.js +158 -0
  109. package/dist/exporter/jats/bibliography.js.map +1 -0
  110. package/dist/exporter/jats/citations.d.ts +16 -0
  111. package/dist/exporter/jats/citations.d.ts.map +1 -0
  112. package/dist/exporter/jats/citations.js +105 -0
  113. package/dist/exporter/jats/citations.js.map +1 -0
  114. package/dist/exporter/jats/convert.d.ts +41 -0
  115. package/dist/exporter/jats/convert.d.ts.map +1 -0
  116. package/dist/exporter/jats/convert.js +816 -0
  117. package/dist/exporter/jats/convert.js.map +1 -0
  118. package/dist/exporter/jats/index.d.ts +25 -0
  119. package/dist/exporter/jats/index.d.ts.map +1 -0
  120. package/dist/exporter/jats/index.js +82 -0
  121. package/dist/exporter/jats/index.js.map +1 -0
  122. package/dist/exporter/jats/templates.d.ts +18 -0
  123. package/dist/exporter/jats/templates.d.ts.map +1 -0
  124. package/dist/exporter/jats/templates.js +25 -0
  125. package/dist/exporter/jats/templates.js.map +1 -0
  126. package/dist/exporter/jats/text.d.ts +4 -0
  127. package/dist/exporter/jats/text.d.ts.map +1 -0
  128. package/dist/exporter/jats/text.js +72 -0
  129. package/dist/exporter/jats/text.js.map +1 -0
  130. package/dist/exporter/latex/convert.d.ts +24 -0
  131. package/dist/exporter/latex/convert.d.ts.map +1 -0
  132. package/dist/exporter/latex/convert.js +881 -0
  133. package/dist/exporter/latex/convert.js.map +1 -0
  134. package/dist/exporter/latex/escape_latex.d.ts +2 -0
  135. package/dist/exporter/latex/escape_latex.d.ts.map +1 -0
  136. package/dist/exporter/latex/escape_latex.js +20 -0
  137. package/dist/exporter/latex/escape_latex.js.map +1 -0
  138. package/dist/exporter/latex/index.d.ts +24 -0
  139. package/dist/exporter/latex/index.d.ts.map +1 -0
  140. package/dist/exporter/latex/index.js +67 -0
  141. package/dist/exporter/latex/index.js.map +1 -0
  142. package/dist/exporter/latex/readme.d.ts +2 -0
  143. package/dist/exporter/latex/readme.d.ts.map +1 -0
  144. package/dist/exporter/latex/readme.js +23 -0
  145. package/dist/exporter/latex/readme.js.map +1 -0
  146. package/dist/exporter/native/copy.d.ts +30 -0
  147. package/dist/exporter/native/copy.d.ts.map +1 -0
  148. package/dist/exporter/native/copy.js +151 -0
  149. package/dist/exporter/native/copy.js.map +1 -0
  150. package/dist/exporter/native/file.d.ts +12 -0
  151. package/dist/exporter/native/file.d.ts.map +1 -0
  152. package/dist/exporter/native/file.js +38 -0
  153. package/dist/exporter/native/file.js.map +1 -0
  154. package/dist/exporter/native/index.d.ts +5 -0
  155. package/dist/exporter/native/index.d.ts.map +1 -0
  156. package/dist/exporter/native/index.js +5 -0
  157. package/dist/exporter/native/index.js.map +1 -0
  158. package/dist/exporter/native/revision.d.ts +18 -0
  159. package/dist/exporter/native/revision.d.ts.map +1 -0
  160. package/dist/exporter/native/revision.js +39 -0
  161. package/dist/exporter/native/revision.js.map +1 -0
  162. package/dist/exporter/native/shrink.d.ts +36 -0
  163. package/dist/exporter/native/shrink.d.ts.map +1 -0
  164. package/dist/exporter/native/shrink.js +124 -0
  165. package/dist/exporter/native/shrink.js.map +1 -0
  166. package/dist/exporter/native/zip.d.ts +25 -0
  167. package/dist/exporter/native/zip.d.ts.map +1 -0
  168. package/dist/exporter/native/zip.js +56 -0
  169. package/dist/exporter/native/zip.js.map +1 -0
  170. package/dist/exporter/odt/citations.d.ts +21 -0
  171. package/dist/exporter/odt/citations.d.ts.map +1 -0
  172. package/dist/exporter/odt/citations.js +104 -0
  173. package/dist/exporter/odt/citations.js.map +1 -0
  174. package/dist/exporter/odt/footnotes.d.ts +31 -0
  175. package/dist/exporter/odt/footnotes.d.ts.map +1 -0
  176. package/dist/exporter/odt/footnotes.js +129 -0
  177. package/dist/exporter/odt/footnotes.js.map +1 -0
  178. package/dist/exporter/odt/images.d.ts +25 -0
  179. package/dist/exporter/odt/images.d.ts.map +1 -0
  180. package/dist/exporter/odt/images.js +106 -0
  181. package/dist/exporter/odt/images.js.map +1 -0
  182. package/dist/exporter/odt/index.d.ts +17 -0
  183. package/dist/exporter/odt/index.d.ts.map +1 -0
  184. package/dist/exporter/odt/index.js +108 -0
  185. package/dist/exporter/odt/index.js.map +1 -0
  186. package/dist/exporter/odt/math.d.ts +15 -0
  187. package/dist/exporter/odt/math.d.ts.map +1 -0
  188. package/dist/exporter/odt/math.js +71 -0
  189. package/dist/exporter/odt/math.js.map +1 -0
  190. package/dist/exporter/odt/metadata.d.ts +18 -0
  191. package/dist/exporter/odt/metadata.d.ts.map +1 -0
  192. package/dist/exporter/odt/metadata.js +224 -0
  193. package/dist/exporter/odt/metadata.js.map +1 -0
  194. package/dist/exporter/odt/render.d.ts +26 -0
  195. package/dist/exporter/odt/render.d.ts.map +1 -0
  196. package/dist/exporter/odt/render.js +651 -0
  197. package/dist/exporter/odt/render.js.map +1 -0
  198. package/dist/exporter/odt/richtext.d.ts +22 -0
  199. package/dist/exporter/odt/richtext.d.ts.map +1 -0
  200. package/dist/exporter/odt/richtext.js +743 -0
  201. package/dist/exporter/odt/richtext.js.map +1 -0
  202. package/dist/exporter/odt/styles.d.ts +41 -0
  203. package/dist/exporter/odt/styles.d.ts.map +1 -0
  204. package/dist/exporter/odt/styles.js +370 -0
  205. package/dist/exporter/odt/styles.js.map +1 -0
  206. package/dist/exporter/odt/track.d.ts +18 -0
  207. package/dist/exporter/odt/track.d.ts.map +1 -0
  208. package/dist/exporter/odt/track.js +66 -0
  209. package/dist/exporter/odt/track.js.map +1 -0
  210. package/dist/exporter/pandoc/citations.d.ts +23 -0
  211. package/dist/exporter/pandoc/citations.d.ts.map +1 -0
  212. package/dist/exporter/pandoc/citations.js +99 -0
  213. package/dist/exporter/pandoc/citations.js.map +1 -0
  214. package/dist/exporter/pandoc/convert.d.ts +19 -0
  215. package/dist/exporter/pandoc/convert.d.ts.map +1 -0
  216. package/dist/exporter/pandoc/convert.js +886 -0
  217. package/dist/exporter/pandoc/convert.js.map +1 -0
  218. package/dist/exporter/pandoc/index.d.ts +25 -0
  219. package/dist/exporter/pandoc/index.d.ts.map +1 -0
  220. package/dist/exporter/pandoc/index.js +79 -0
  221. package/dist/exporter/pandoc/index.js.map +1 -0
  222. package/dist/exporter/pandoc/readme.d.ts +2 -0
  223. package/dist/exporter/pandoc/readme.d.ts.map +1 -0
  224. package/dist/exporter/pandoc/readme.js +8 -0
  225. package/dist/exporter/pandoc/readme.js.map +1 -0
  226. package/dist/exporter/pandoc/tools.d.ts +22 -0
  227. package/dist/exporter/pandoc/tools.d.ts.map +1 -0
  228. package/dist/exporter/pandoc/tools.js +52 -0
  229. package/dist/exporter/pandoc/tools.js.map +1 -0
  230. package/dist/exporter/print/index.d.ts +20 -0
  231. package/dist/exporter/print/index.d.ts.map +1 -0
  232. package/dist/exporter/print/index.js +142 -0
  233. package/dist/exporter/print/index.js.map +1 -0
  234. package/dist/exporter/tools/doc_content.d.ts +6 -0
  235. package/dist/exporter/tools/doc_content.d.ts.map +1 -0
  236. package/dist/exporter/tools/doc_content.js +130 -0
  237. package/dist/exporter/tools/doc_content.js.map +1 -0
  238. package/dist/exporter/tools/file.d.ts +2 -0
  239. package/dist/exporter/tools/file.d.ts.map +1 -0
  240. package/dist/exporter/tools/file.js +10 -0
  241. package/dist/exporter/tools/file.js.map +1 -0
  242. package/dist/exporter/tools/json.d.ts +7 -0
  243. package/dist/exporter/tools/json.d.ts.map +1 -0
  244. package/dist/exporter/tools/json.js +82 -0
  245. package/dist/exporter/tools/json.js.map +1 -0
  246. package/dist/exporter/tools/svg.d.ts +8 -0
  247. package/dist/exporter/tools/svg.d.ts.map +1 -0
  248. package/dist/exporter/tools/svg.js +26 -0
  249. package/dist/exporter/tools/svg.js.map +1 -0
  250. package/dist/exporter/tools/xml.d.ts +42 -0
  251. package/dist/exporter/tools/xml.d.ts.map +1 -0
  252. package/dist/exporter/tools/xml.js +467 -0
  253. package/dist/exporter/tools/xml.js.map +1 -0
  254. package/dist/exporter/tools/xml_zip.d.ts +21 -0
  255. package/dist/exporter/tools/xml_zip.d.ts.map +1 -0
  256. package/dist/exporter/tools/xml_zip.js +92 -0
  257. package/dist/exporter/tools/xml_zip.js.map +1 -0
  258. package/dist/exporter/tools/zip.d.ts +35 -0
  259. package/dist/exporter/tools/zip.d.ts.map +1 -0
  260. package/dist/exporter/tools/zip.js +78 -0
  261. package/dist/exporter/tools/zip.js.map +1 -0
  262. package/dist/exporter/tools/zotero_csl.d.ts +23 -0
  263. package/dist/exporter/tools/zotero_csl.d.ts.map +1 -0
  264. package/dist/exporter/tools/zotero_csl.js +78 -0
  265. package/dist/exporter/tools/zotero_csl.js.map +1 -0
  266. package/dist/importer/citations.d.ts +28 -0
  267. package/dist/importer/citations.d.ts.map +1 -0
  268. package/dist/importer/citations.js +68 -0
  269. package/dist/importer/citations.js.map +1 -0
  270. package/dist/importer/docx/citations.d.ts +43 -0
  271. package/dist/importer/docx/citations.d.ts.map +1 -0
  272. package/dist/importer/docx/citations.js +81 -0
  273. package/dist/importer/docx/citations.js.map +1 -0
  274. package/dist/importer/docx/convert.d.ts +150 -0
  275. package/dist/importer/docx/convert.d.ts.map +1 -0
  276. package/dist/importer/docx/convert.js +1243 -0
  277. package/dist/importer/docx/convert.js.map +1 -0
  278. package/dist/importer/docx/helpers.d.ts +2 -0
  279. package/dist/importer/docx/helpers.d.ts.map +1 -0
  280. package/dist/importer/docx/helpers.js +10 -0
  281. package/dist/importer/docx/helpers.js.map +1 -0
  282. package/dist/importer/docx/index.d.ts +27 -0
  283. package/dist/importer/docx/index.d.ts.map +1 -0
  284. package/dist/importer/docx/index.js +77 -0
  285. package/dist/importer/docx/index.js.map +1 -0
  286. package/dist/importer/docx/omml2mathml.d.ts +6 -0
  287. package/dist/importer/docx/omml2mathml.d.ts.map +1 -0
  288. package/dist/importer/docx/omml2mathml.js +1146 -0
  289. package/dist/importer/docx/omml2mathml.js.map +1 -0
  290. package/dist/importer/docx/parse.d.ts +96 -0
  291. package/dist/importer/docx/parse.d.ts.map +1 -0
  292. package/dist/importer/docx/parse.js +681 -0
  293. package/dist/importer/docx/parse.js.map +1 -0
  294. package/dist/importer/native/extract_template.d.ts +6 -0
  295. package/dist/importer/native/extract_template.d.ts.map +1 -0
  296. package/dist/importer/native/extract_template.js +80 -0
  297. package/dist/importer/native/extract_template.js.map +1 -0
  298. package/dist/importer/native/file.d.ts +37 -0
  299. package/dist/importer/native/file.d.ts.map +1 -0
  300. package/dist/importer/native/file.js +162 -0
  301. package/dist/importer/native/file.js.map +1 -0
  302. package/dist/importer/native/get_images.d.ts +21 -0
  303. package/dist/importer/native/get_images.d.ts.map +1 -0
  304. package/dist/importer/native/get_images.js +58 -0
  305. package/dist/importer/native/get_images.js.map +1 -0
  306. package/dist/importer/native/importer.d.ts +41 -0
  307. package/dist/importer/native/importer.d.ts.map +1 -0
  308. package/dist/importer/native/importer.js +170 -0
  309. package/dist/importer/native/importer.js.map +1 -0
  310. package/dist/importer/native/index.d.ts +7 -0
  311. package/dist/importer/native/index.d.ts.map +1 -0
  312. package/dist/importer/native/index.js +7 -0
  313. package/dist/importer/native/index.js.map +1 -0
  314. package/dist/importer/native/update.d.ts +7 -0
  315. package/dist/importer/native/update.d.ts.map +1 -0
  316. package/dist/importer/native/update.js +27 -0
  317. package/dist/importer/native/update.js.map +1 -0
  318. package/dist/importer/native/update_template.d.ts +12 -0
  319. package/dist/importer/native/update_template.d.ts.map +1 -0
  320. package/dist/importer/native/update_template.js +19 -0
  321. package/dist/importer/native/update_template.js.map +1 -0
  322. package/dist/importer/odt/citations.d.ts +27 -0
  323. package/dist/importer/odt/citations.d.ts.map +1 -0
  324. package/dist/importer/odt/citations.js +57 -0
  325. package/dist/importer/odt/citations.js.map +1 -0
  326. package/dist/importer/odt/convert.d.ts +146 -0
  327. package/dist/importer/odt/convert.d.ts.map +1 -0
  328. package/dist/importer/odt/convert.js +1530 -0
  329. package/dist/importer/odt/convert.js.map +1 -0
  330. package/dist/importer/odt/index.d.ts +30 -0
  331. package/dist/importer/odt/index.d.ts.map +1 -0
  332. package/dist/importer/odt/index.js +124 -0
  333. package/dist/importer/odt/index.js.map +1 -0
  334. package/dist/importer/pandoc/convert.d.ts +32 -0
  335. package/dist/importer/pandoc/convert.d.ts.map +1 -0
  336. package/dist/importer/pandoc/convert.js +790 -0
  337. package/dist/importer/pandoc/convert.js.map +1 -0
  338. package/dist/importer/pandoc/helpers.d.ts +5 -0
  339. package/dist/importer/pandoc/helpers.d.ts.map +1 -0
  340. package/dist/importer/pandoc/helpers.js +73 -0
  341. package/dist/importer/pandoc/helpers.js.map +1 -0
  342. package/dist/importer/pandoc/index.d.ts +31 -0
  343. package/dist/importer/pandoc/index.d.ts.map +1 -0
  344. package/dist/importer/pandoc/index.js +114 -0
  345. package/dist/importer/pandoc/index.js.map +1 -0
  346. package/dist/importer/registry.d.ts +21 -0
  347. package/dist/importer/registry.d.ts.map +1 -0
  348. package/dist/importer/registry.js +41 -0
  349. package/dist/importer/registry.js.map +1 -0
  350. package/dist/importer/zip_analyzer.d.ts +31 -0
  351. package/dist/importer/zip_analyzer.d.ts.map +1 -0
  352. package/dist/importer/zip_analyzer.js +89 -0
  353. package/dist/importer/zip_analyzer.js.map +1 -0
  354. package/dist/index.d.ts +2 -0
  355. package/dist/index.d.ts.map +1 -0
  356. package/dist/index.js +2 -0
  357. package/dist/index.js.map +1 -0
  358. package/dist/mathlive/opf_includes.d.ts +2 -0
  359. package/dist/mathlive/opf_includes.d.ts.map +1 -0
  360. package/dist/mathlive/opf_includes.js +25 -0
  361. package/dist/mathlive/opf_includes.js.map +1 -0
  362. package/dist/schema/common/annotate.d.ts +47 -0
  363. package/dist/schema/common/annotate.d.ts.map +1 -0
  364. package/dist/schema/common/annotate.js +75 -0
  365. package/dist/schema/common/annotate.js.map +1 -0
  366. package/dist/schema/common/base.d.ts +91 -0
  367. package/dist/schema/common/base.d.ts.map +1 -0
  368. package/dist/schema/common/base.js +109 -0
  369. package/dist/schema/common/base.js.map +1 -0
  370. package/dist/schema/common/citation.d.ts +30 -0
  371. package/dist/schema/common/citation.d.ts.map +1 -0
  372. package/dist/schema/common/citation.js +61 -0
  373. package/dist/schema/common/citation.js.map +1 -0
  374. package/dist/schema/common/equation.d.ts +17 -0
  375. package/dist/schema/common/equation.d.ts.map +1 -0
  376. package/dist/schema/common/equation.js +32 -0
  377. package/dist/schema/common/equation.js.map +1 -0
  378. package/dist/schema/common/figure.d.ts +87 -0
  379. package/dist/schema/common/figure.d.ts.map +1 -0
  380. package/dist/schema/common/figure.js +178 -0
  381. package/dist/schema/common/figure.js.map +1 -0
  382. package/dist/schema/common/heading.d.ts +9 -0
  383. package/dist/schema/common/heading.d.ts.map +1 -0
  384. package/dist/schema/common/heading.js +41 -0
  385. package/dist/schema/common/heading.js.map +1 -0
  386. package/dist/schema/common/index.d.ts +11 -0
  387. package/dist/schema/common/index.d.ts.map +1 -0
  388. package/dist/schema/common/index.js +11 -0
  389. package/dist/schema/common/index.js.map +1 -0
  390. package/dist/schema/common/list.d.ts +63 -0
  391. package/dist/schema/common/list.d.ts.map +1 -0
  392. package/dist/schema/common/list.js +92 -0
  393. package/dist/schema/common/list.js.map +1 -0
  394. package/dist/schema/common/reference.d.ts +70 -0
  395. package/dist/schema/common/reference.d.ts.map +1 -0
  396. package/dist/schema/common/reference.js +97 -0
  397. package/dist/schema/common/reference.js.map +1 -0
  398. package/dist/schema/common/table.d.ts +76 -0
  399. package/dist/schema/common/table.d.ts.map +1 -0
  400. package/dist/schema/common/table.js +86 -0
  401. package/dist/schema/common/table.js.map +1 -0
  402. package/dist/schema/common/track.d.ts +117 -0
  403. package/dist/schema/common/track.d.ts.map +1 -0
  404. package/{src → dist}/schema/common/track.js +44 -49
  405. package/dist/schema/common/track.js.map +1 -0
  406. package/dist/schema/const.d.ts +3 -0
  407. package/dist/schema/const.d.ts.map +1 -0
  408. package/{src → dist}/schema/const.js +3 -3
  409. package/dist/schema/const.js.map +1 -0
  410. package/dist/schema/convert.d.ts +3 -0
  411. package/dist/schema/convert.d.ts.map +1 -0
  412. package/dist/schema/convert.js +1215 -0
  413. package/dist/schema/convert.js.map +1 -0
  414. package/dist/schema/document/content.d.ts +110 -0
  415. package/dist/schema/document/content.d.ts.map +1 -0
  416. package/dist/schema/document/content.js +177 -0
  417. package/dist/schema/document/content.js.map +1 -0
  418. package/dist/schema/document/index.d.ts +795 -0
  419. package/dist/schema/document/index.d.ts.map +1 -0
  420. package/dist/schema/document/index.js +68 -0
  421. package/dist/schema/document/index.js.map +1 -0
  422. package/dist/schema/document/structure.d.ts +164 -0
  423. package/dist/schema/document/structure.d.ts.map +1 -0
  424. package/dist/schema/document/structure.js +445 -0
  425. package/dist/schema/document/structure.js.map +1 -0
  426. package/dist/schema/export.d.ts +7 -0
  427. package/dist/schema/export.d.ts.map +1 -0
  428. package/dist/schema/export.js +17 -0
  429. package/dist/schema/export.js.map +1 -0
  430. package/dist/schema/footnotes.d.ts +454 -0
  431. package/dist/schema/footnotes.d.ts.map +1 -0
  432. package/dist/schema/footnotes.js +90 -0
  433. package/dist/schema/footnotes.js.map +1 -0
  434. package/dist/schema/footnotes_convert.d.ts +5 -0
  435. package/dist/schema/footnotes_convert.d.ts.map +1 -0
  436. package/dist/schema/footnotes_convert.js +30 -0
  437. package/dist/schema/footnotes_convert.js.map +1 -0
  438. package/dist/schema/i18n.d.ts +55 -0
  439. package/dist/schema/i18n.d.ts.map +1 -0
  440. package/{src → dist}/schema/i18n.js +14 -23
  441. package/dist/schema/i18n.js.map +1 -0
  442. package/dist/schema/index.d.ts +6 -0
  443. package/dist/schema/index.d.ts.map +1 -0
  444. package/dist/schema/index.js +6 -0
  445. package/dist/schema/index.js.map +1 -0
  446. package/dist/schema/mini_json.d.ts +4 -0
  447. package/dist/schema/mini_json.d.ts.map +1 -0
  448. package/{src → dist}/schema/mini_json.js +19 -28
  449. package/dist/schema/mini_json.js.map +1 -0
  450. package/dist/schema/text.d.ts +3 -0
  451. package/dist/schema/text.d.ts.map +1 -0
  452. package/dist/schema/text.js +23 -0
  453. package/dist/schema/text.js.map +1 -0
  454. package/dist/types.d.ts +281 -0
  455. package/dist/types.d.ts.map +1 -0
  456. package/dist/types.js +9 -0
  457. package/dist/types.js.map +1 -0
  458. package/package.json +51 -16
  459. package/scripts/export-schema.js +1 -1
  460. package/src/bibliography/{common.js → common.ts} +15 -12
  461. package/src/bibliography/{csl_bib.js → csl_bib.ts} +16 -15
  462. package/src/citations/{citeproc_sys.js → citeproc_sys.ts} +26 -6
  463. package/src/citations/{format.js → format.ts} +80 -24
  464. package/src/editor/e2ee/{encryptor.js → encryptor.ts} +76 -44
  465. package/src/exporter/docx/{citations.js → citations.ts} +51 -23
  466. package/src/exporter/docx/{comments.js → comments.ts} +69 -26
  467. package/src/exporter/docx/{footnotes.js → footnotes.ts} +81 -42
  468. package/src/exporter/docx/images.ts +128 -0
  469. package/src/exporter/docx/{index.js → index.ts} +48 -25
  470. package/src/exporter/docx/{lists.js → lists.ts} +89 -46
  471. package/src/exporter/docx/{math.js → math.ts} +29 -9
  472. package/src/exporter/docx/{metadata.js → metadata.ts} +78 -42
  473. package/src/exporter/docx/{rels.js → rels.ts} +71 -50
  474. package/src/exporter/docx/{render.js → render.ts} +124 -87
  475. package/src/exporter/docx/{richtext.js → richtext.ts} +107 -84
  476. package/src/exporter/docx/{tables.js → tables.ts} +33 -23
  477. package/src/exporter/docx/{tools.js → tools.ts} +4 -3
  478. package/src/exporter/epub/{index.js → index.ts} +44 -15
  479. package/src/exporter/epub/{templates.js → templates.ts} +71 -7
  480. package/src/exporter/epub/tools.ts +102 -0
  481. package/src/exporter/html/{citations.js → citations.ts} +79 -31
  482. package/src/exporter/html/{convert.js → convert.ts} +118 -71
  483. package/src/exporter/html/{index.js → index.ts} +63 -29
  484. package/src/exporter/html/{templates.js → templates.ts} +22 -2
  485. package/src/exporter/html/{tools.js → tools.ts} +9 -6
  486. package/src/exporter/jats/bibliography.ts +199 -0
  487. package/src/exporter/jats/{citations.js → citations.ts} +56 -20
  488. package/src/exporter/jats/{convert.js → convert.ts} +72 -53
  489. package/src/exporter/jats/index.ts +132 -0
  490. package/src/exporter/jats/{templates.js → templates.ts} +19 -3
  491. package/src/exporter/jats/{text.js → text.ts} +8 -6
  492. package/src/exporter/latex/{convert.js → convert.ts} +160 -125
  493. package/src/exporter/latex/{escape_latex.js → escape_latex.ts} +1 -1
  494. package/src/exporter/latex/{index.js → index.ts} +27 -12
  495. package/src/exporter/latex/{readme.js → readme.ts} +2 -2
  496. package/src/exporter/native/copy.ts +231 -0
  497. package/src/exporter/native/file.ts +65 -0
  498. package/src/exporter/native/index.ts +4 -0
  499. package/src/exporter/native/revision.ts +76 -0
  500. package/src/exporter/native/{shrink.js → shrink.ts} +64 -29
  501. package/src/exporter/native/zip.ts +85 -0
  502. package/src/exporter/odt/{citations.js → citations.ts} +35 -15
  503. package/src/exporter/odt/{footnotes.js → footnotes.ts} +53 -30
  504. package/src/exporter/odt/images.ts +135 -0
  505. package/src/exporter/odt/{index.js → index.ts} +49 -27
  506. package/src/exporter/odt/{math.js → math.ts} +38 -9
  507. package/src/exporter/odt/{metadata.js → metadata.ts} +54 -29
  508. package/src/exporter/odt/{render.js → render.ts} +89 -60
  509. package/src/exporter/odt/{richtext.js → richtext.ts} +102 -72
  510. package/src/exporter/odt/{styles.js → styles.ts} +98 -66
  511. package/src/exporter/odt/{track.js → track.ts} +22 -6
  512. package/src/exporter/pandoc/{citations.js → citations.ts} +31 -15
  513. package/src/exporter/pandoc/{convert.js → convert.ts} +98 -79
  514. package/src/exporter/pandoc/{index.js → index.ts} +36 -13
  515. package/src/exporter/pandoc/{readme.js → readme.ts} +0 -1
  516. package/src/exporter/pandoc/{tools.js → tools.ts} +28 -5
  517. package/src/exporter/print/{index.js → index.ts} +38 -19
  518. package/src/exporter/tools/{doc_content.js → doc_content.ts} +34 -24
  519. package/src/exporter/tools/{file.js → file.ts} +1 -1
  520. package/src/exporter/tools/{json.js → json.ts} +30 -19
  521. package/src/exporter/tools/{svg.js → svg.ts} +9 -3
  522. package/src/exporter/tools/{xml.js → xml.ts} +187 -138
  523. package/src/exporter/tools/{xml_zip.js → xml_zip.ts} +19 -11
  524. package/src/exporter/tools/{zip.js → zip.ts} +35 -11
  525. package/src/exporter/tools/{zotero_csl.js → zotero_csl.ts} +35 -18
  526. package/src/global.d.ts +13 -0
  527. package/src/importer/citations.ts +116 -0
  528. package/src/importer/docx/{citations.js → citations.ts} +22 -37
  529. package/src/importer/docx/{convert.js → convert.ts} +176 -141
  530. package/src/importer/docx/{helpers.js → helpers.ts} +1 -1
  531. package/src/importer/docx/index.ts +124 -0
  532. package/src/importer/docx/{omml2mathml.js → omml2mathml.ts} +154 -176
  533. package/src/importer/docx/{parse.js → parse.ts} +103 -81
  534. package/src/importer/native/extract_template.ts +83 -0
  535. package/src/importer/native/file.ts +282 -0
  536. package/src/importer/native/get_images.ts +82 -0
  537. package/src/importer/native/importer.ts +244 -0
  538. package/src/importer/native/index.ts +6 -0
  539. package/src/importer/native/{update.js → update.ts} +13 -5
  540. package/src/importer/native/update_template.ts +32 -0
  541. package/src/importer/odt/{citations.js → citations.ts} +17 -29
  542. package/src/importer/odt/{convert.js → convert.ts} +261 -237
  543. package/src/importer/odt/index.ts +202 -0
  544. package/src/importer/pandoc/{convert.js → convert.ts} +116 -94
  545. package/src/importer/pandoc/{helpers.js → helpers.ts} +24 -12
  546. package/src/importer/pandoc/index.ts +171 -0
  547. package/src/importer/registry.ts +69 -0
  548. package/src/importer/{zip_analyzer.js → zip_analyzer.ts} +44 -18
  549. package/src/mathlive/{opf_includes.js → opf_includes.ts} +1 -1
  550. package/src/modules.d.ts +40 -0
  551. package/src/schema/common/{annotate.js → annotate.ts} +10 -8
  552. package/src/schema/common/{base.js → base.ts} +12 -10
  553. package/src/schema/common/{citation.js → citation.ts} +17 -8
  554. package/src/schema/common/{equation.js → equation.ts} +6 -4
  555. package/src/schema/common/{figure.js → figure.ts} +43 -23
  556. package/src/schema/common/{heading.js → heading.ts} +7 -5
  557. package/src/schema/common/{list.js → list.ts} +15 -13
  558. package/src/schema/common/{reference.js → reference.ts} +14 -12
  559. package/src/schema/common/{table.js → table.ts} +16 -14
  560. package/src/schema/common/track.ts +201 -0
  561. package/src/schema/const.ts +58 -0
  562. package/src/schema/{convert.js → convert.ts} +6 -2
  563. package/src/schema/document/{content.js → content.ts} +22 -20
  564. package/src/schema/document/{structure.js → structure.ts} +15 -9
  565. package/src/schema/{export.js → export.ts} +4 -2
  566. package/src/schema/{footnotes.js → footnotes.ts} +11 -8
  567. package/src/schema/{footnotes_convert.js → footnotes_convert.ts} +11 -8
  568. package/src/schema/i18n.ts +601 -0
  569. package/src/schema/mini_json.ts +60 -0
  570. package/src/schema/{text.js → text.ts} +6 -2
  571. package/src/types.ts +314 -0
  572. package/jest.config.js +0 -24
  573. package/src/exporter/docx/images.js +0 -101
  574. package/src/exporter/jats/bibliography.js +0 -183
  575. package/src/exporter/jats/index.js +0 -92
  576. package/src/exporter/odt/images.js +0 -115
  577. package/src/importer/citations.js +0 -129
  578. package/src/importer/native/get_images.js +0 -76
  579. /package/src/{index.js → index.ts} +0 -0
  580. /package/src/schema/common/{index.js → index.ts} +0 -0
  581. /package/src/schema/document/{index.js → index.ts} +0 -0
  582. /package/src/schema/{index.js → index.ts} +0 -0
@@ -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
  }
@@ -1,5 +1,10 @@
1
1
  import {escapeText} from "fwtoolkit"
2
+
3
+ import type {CommentData, FidusNode} from "../../types.js"
2
4
  import {descendantNodes} from "../tools/doc_content.js"
5
+ import type {XMLElement} from "../tools/xml.js"
6
+ import type {XmlZip} from "../tools/xml_zip.js"
7
+ import type {DOCXExporterRels} from "./rels.js"
3
8
 
4
9
  const DEFAULT_COMMENTS_XML = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
5
10
  <w:comments xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:w15="http://schemas.microsoft.com/office/word/2012/wordml" mc:Ignorable="w14 wp14 w15">
@@ -10,7 +15,26 @@ const DEFAULT_COMMENTS_EXTENDED_XML = `<?xml version="1.0" encoding="UTF-8" stan
10
15
  </w15:commentsEx>`
11
16
 
12
17
  export class DOCXExporterComments {
13
- constructor(docContent, commentsDB, xml, rels, richtext) {
18
+ docContent: FidusNode
19
+ commentsDB: Record<string, CommentData>
20
+ xml: XmlZip
21
+ rels: DOCXExporterRels
22
+ richtext: any
23
+
24
+ usedComments: string[]
25
+ commentsXML: XMLElement | null
26
+ commentsExtendedXML: XMLElement | null
27
+ commentsFilePath: string
28
+ commentsExtendedFilePath: string
29
+ commentIdCounter: number
30
+
31
+ constructor(
32
+ docContent: FidusNode,
33
+ commentsDB: Record<string, CommentData>,
34
+ xml: XmlZip,
35
+ rels: DOCXExporterRels,
36
+ richtext: any
37
+ ) {
14
38
  this.docContent = docContent
15
39
  this.commentsDB = commentsDB
16
40
  this.xml = xml
@@ -18,14 +42,14 @@ export class DOCXExporterComments {
18
42
  this.richtext = richtext
19
43
 
20
44
  this.usedComments = []
21
- this.commentsXML = false
22
- this.commentsExtendedXML = false
45
+ this.commentsXML = null
46
+ this.commentsExtendedXML = null
23
47
  this.commentsFilePath = "word/comments.xml"
24
48
  this.commentsExtendedFilePath = "word/commentsExtended.xml"
25
49
  this.commentIdCounter = -1
26
50
  }
27
51
 
28
- init() {
52
+ init(): Promise<void> | undefined {
29
53
  let useExtended = false
30
54
  descendantNodes(this.docContent).forEach(node => {
31
55
  if (node.marks) {
@@ -33,14 +57,17 @@ export class DOCXExporterComments {
33
57
  mark => mark.type === "comment"
34
58
  )
35
59
  comments.forEach(comment => {
60
+ const commentId = String(comment.attrs?.id)
36
61
  if (
37
- !this.usedComments.includes(comment.attrs.id) &&
38
- this.commentsDB[comment.attrs.id]
62
+ commentId &&
63
+ !this.usedComments.includes(commentId) &&
64
+ this.commentsDB[commentId]
39
65
  ) {
40
- this.usedComments.push(comment.attrs.id)
66
+ this.usedComments.push(commentId)
67
+ const commentDBEntry = this.commentsDB[commentId]
41
68
  if (
42
- this.commentsDB[comment.attrs.id].resolved ||
43
- this.commentsDB[comment.attrs.id].answers?.length
69
+ commentDBEntry.resolved ||
70
+ commentDBEntry.answers?.length
44
71
  ) {
45
72
  useExtended = true
46
73
  }
@@ -52,10 +79,13 @@ export class DOCXExporterComments {
52
79
  return Promise.resolve()
53
80
  }
54
81
  this.rels.addCommentsRel()
55
- const addCommentXMLs = [
82
+ const addCommentXMLs: Array<Promise<void>> = [
56
83
  this.xml
57
84
  .getXml(this.commentsFilePath, DEFAULT_COMMENTS_XML)
58
- .then(commentsXML => (this.commentsXML = commentsXML))
85
+ .then(commentsXML => {
86
+ this.commentsXML = commentsXML
87
+ return undefined
88
+ })
59
89
  ]
60
90
  if (useExtended) {
61
91
  this.rels.addCommentsExtendedRel()
@@ -65,15 +95,18 @@ export class DOCXExporterComments {
65
95
  this.commentsExtendedFilePath,
66
96
  DEFAULT_COMMENTS_EXTENDED_XML
67
97
  )
68
- .then(
69
- commentsExtendedXML =>
70
- (this.commentsExtendedXML = commentsExtendedXML)
71
- )
98
+ .then(commentsExtendedXML => {
99
+ this.commentsExtendedXML = commentsExtendedXML
100
+ return undefined
101
+ })
72
102
  )
73
103
  }
74
104
  return Promise.all(addCommentXMLs).then(() => {
105
+ if (!this.commentsXML) {
106
+ return Promise.resolve()
107
+ }
75
108
  this.commentsXML.queryAll("w:comment").forEach(el => {
76
- const id = Number.parseInt(el.getAttribute("w:id"))
109
+ const id = Number.parseInt(String(el.getAttribute("w:id")))
77
110
  if (id > this.commentIdCounter) {
78
111
  this.commentIdCounter = id
79
112
  }
@@ -82,11 +115,17 @@ export class DOCXExporterComments {
82
115
  })
83
116
  }
84
117
 
85
- addComment(id) {
118
+ addComment(id: string): void {
86
119
  const commentId = ++this.commentIdCounter
87
120
  this.richtext.comments[id] = commentId
88
121
  const commentDBEntry = this.commentsDB[id]
122
+ if (!this.commentsXML || !commentDBEntry) {
123
+ return
124
+ }
89
125
  const comments = this.commentsXML.query("w:comments")
126
+ if (!comments) {
127
+ return
128
+ }
90
129
  let string = `<w:comment w:id="${commentId}" w:author="${escapeText(commentDBEntry.username)}" w:date="${new Date(commentDBEntry.date).toISOString().split(".")[0]}Z" w:initials="${escapeText(
91
130
  commentDBEntry.username
92
131
  .split(" ")
@@ -97,7 +136,7 @@ export class DOCXExporterComments {
97
136
  let parentParagraphId = ""
98
137
  string += commentDBEntry.comment
99
138
  .map((node, index) => {
100
- const options = {section: "CommentText"}
139
+ const options: Record<string, unknown> = {section: "CommentText"}
101
140
  if (
102
141
  (commentDBEntry.resolved ||
103
142
  commentDBEntry.answers?.length) &&
@@ -110,9 +149,11 @@ export class DOCXExporterComments {
110
149
  .padStart(8, "0")
111
150
  options.paragraphId = parentParagraphId
112
151
  const extendedString = `<w15:commentEx w15:paraId="${parentParagraphId}" w15:done="${commentDBEntry.resolved ? "1" : "0"}"/>`
113
- const extendedComments =
114
- this.commentsExtendedXML.query("w15:commentsEx")
115
- extendedComments.appendXML(extendedString)
152
+ if (this.commentsExtendedXML) {
153
+ const extendedComments =
154
+ this.commentsExtendedXML.query("w15:commentsEx")
155
+ extendedComments?.appendXML(extendedString)
156
+ }
116
157
  }
117
158
  if (!index) {
118
159
  options.commentReference = true
@@ -132,7 +173,7 @@ export class DOCXExporterComments {
132
173
  )}">`
133
174
  string += answer.answer
134
175
  .map((node, index) => {
135
- const options = {section: "CommentText"}
176
+ const options: Record<string, unknown> = {section: "CommentText"}
136
177
  if (index === answer.answer.length - 1) {
137
178
  // We need to add an id to the last paragraph of the comment and add an entry
138
179
  // into commentsExtended.xml pointing to the last paragraph of the parent comment.
@@ -141,9 +182,11 @@ export class DOCXExporterComments {
141
182
  .padStart(8, "0")
142
183
  options.paragraphId = paragraphId
143
184
  const extendedString = `<w15:commentEx w15:paraId="${paragraphId}" w15:done="${commentDBEntry.resolved ? "1" : "0"}" w15:paraIdParent="${parentParagraphId}"/>`
144
- const extendedComments =
145
- this.commentsExtendedXML.query("w15:commentsEx")
146
- extendedComments.appendXML(extendedString)
185
+ if (this.commentsExtendedXML) {
186
+ const extendedComments =
187
+ this.commentsExtendedXML.query("w15:commentsEx")
188
+ extendedComments?.appendXML(extendedString)
189
+ }
147
190
  }
148
191
  if (!index) {
149
192
  options.commentReference = true
@@ -156,7 +199,7 @@ export class DOCXExporterComments {
156
199
  comments.appendXML(string)
157
200
  }
158
201
 
159
- exportComments() {
202
+ exportComments(): Promise<void> {
160
203
  this.usedComments.forEach(comment => {
161
204
  this.addComment(comment)
162
205
  })