@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
@@ -0,0 +1,123 @@
1
+ /**
2
+ * E2EE Encryptor - Handles encryption and decryption of document content
3
+ * for end-to-end encrypted documents.
4
+ *
5
+ * Uses AES-GCM (256-bit) for all encryption operations. Each encryption
6
+ * operation generates a random 12-byte IV (initialization vector) to
7
+ * ensure that encrypting the same plaintext twice produces different
8
+ * ciphertext.
9
+ *
10
+ * Encrypted data format (Appendix A of the E2EE plan):
11
+ * [IV (12 bytes)][Ciphertext (variable length)][Auth Tag (16 bytes, implicit in AES-GCM)]
12
+ *
13
+ * When stored as a string (e.g., in JSON fields), the entire structure
14
+ * is Base64-encoded.
15
+ */
16
+ export declare class E2EEEncryptor {
17
+ /**
18
+ * Encrypt a string with AES-GCM.
19
+ *
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
+ */
24
+ static encrypt(plaintext: string, key: CryptoKey): Promise<string>;
25
+ /**
26
+ * Decrypt a Base64-encoded AES-GCM ciphertext.
27
+ *
28
+ * @param ciphertextBase64 - Base64-encoded (iv + ciphertext + auth tag)
29
+ * @param key - An AES-GCM key (from E2EEKeyManager.deriveKey)
30
+ * @returns The decrypted plaintext string
31
+ */
32
+ static decrypt(ciphertextBase64: string, key: CryptoKey): Promise<string>;
33
+ /**
34
+ * Encrypt a JSON-serializable object.
35
+ *
36
+ * Serializes the object to JSON, then encrypts the JSON string.
37
+ *
38
+ * @param obj - A JSON-serializable object
39
+ * @param key - An AES-GCM key
40
+ * @returns Base64-encoded encrypted data
41
+ */
42
+ static encryptObject(obj: Record<string, unknown> | unknown[], key: CryptoKey): Promise<string>;
43
+ /**
44
+ * Decrypt to a JSON-serializable object.
45
+ *
46
+ * Decrypts the Base64-encoded ciphertext, then parses the result as JSON.
47
+ *
48
+ * @param ciphertextBase64 - Base64-encoded encrypted data
49
+ * @param key - An AES-GCM key
50
+ * @returns The decrypted and parsed object
51
+ */
52
+ static decryptObject(ciphertextBase64: string, key: CryptoKey): Promise<unknown>;
53
+ /**
54
+ * Encrypt an ArrayBuffer (for images and other binary data).
55
+ *
56
+ * @param buffer - The binary data to encrypt
57
+ * @param key - An AES-GCM key
58
+ * @returns Base64-encoded encrypted data (iv + ciphertext)
59
+ */
60
+ static encryptBuffer(buffer: ArrayBuffer, key: CryptoKey): Promise<string>;
61
+ /**
62
+ * Decrypt to an ArrayBuffer.
63
+ *
64
+ * @param ciphertextBase64 - Base64-encoded encrypted data
65
+ * @param key - An AES-GCM key
66
+ * @returns The decrypted binary data
67
+ */
68
+ static decryptBuffer(ciphertextBase64: string, key: CryptoKey): Promise<ArrayBuffer>;
69
+ /**
70
+ * Encrypt an image File/Blob for upload.
71
+ *
72
+ * Reads the file as an ArrayBuffer, encrypts it, and returns
73
+ * a Blob with application/octet-stream type (since the encrypted
74
+ * data is opaque binary).
75
+ *
76
+ * @param file - The image file to encrypt
77
+ * @param key - An AES-GCM key
78
+ * @returns An encrypted Blob with type application/octet-stream
79
+ */
80
+ static encryptImage(file: Blob, key: CryptoKey): Promise<Blob>;
81
+ /**
82
+ * Decrypt an encrypted image back to an ArrayBuffer.
83
+ *
84
+ * @param ciphertextBase64 - Base64-encoded encrypted image data
85
+ * @param key - An AES-GCM key
86
+ * @returns The decrypted image data
87
+ */
88
+ static decryptImage(ciphertextBase64: string, key: CryptoKey): Promise<ArrayBuffer>;
89
+ /**
90
+ * Decrypt a Base64-encoded ciphertext and return as a Base64 string.
91
+ *
92
+ * Useful for decrypting encrypted images that need to be stored
93
+ * as Base64 data URLs or re-exported.
94
+ *
95
+ * @param ciphertextBase64 - Base64-encoded encrypted data
96
+ * @param key - An AES-GCM key
97
+ * @returns Base64-encoded decrypted data
98
+ */
99
+ static decryptBufferToBase64(ciphertextBase64: string, key: CryptoKey): Promise<string>;
100
+ /**
101
+ * Decrypt an encrypted image and return a blob URL for display.
102
+ *
103
+ * Fetches the encrypted image file from the given URL, decrypts it,
104
+ * and creates a temporary object URL that can be used as an img src.
105
+ *
106
+ * @param imageUrl - The URL of the encrypted image file
107
+ * @param key - An AES-GCM key
108
+ * @param mimeType - The MIME type of the decrypted image
109
+ * @returns A blob URL for the decrypted image
110
+ */
111
+ static decryptImageToUrl(imageUrl: string, key: CryptoKey, mimeType?: string): Promise<string>;
112
+ /**
113
+ * Convert a Uint8Array to a Base64-encoded string.
114
+ * @private
115
+ */
116
+ private static _uint8ArrayToBase64;
117
+ /**
118
+ * Convert a Base64-encoded string to a Uint8Array.
119
+ * @private
120
+ */
121
+ private static _base64ToUint8Array;
122
+ }
123
+ //# sourceMappingURL=encryptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryptor.d.ts","sourceRoot":"","sources":["../../../src/editor/e2ee/encryptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,qBAAa,aAAa;IACtB;;;;;;OAMG;WACU,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAexE;;;;;;OAMG;WACU,OAAO,CAChB,gBAAgB,EAAE,MAAM,EACxB,GAAG,EAAE,SAAS,GACf,OAAO,CAAC,MAAM,CAAC;IAYlB;;;;;;;;OAQG;IACH,MAAM,CAAC,aAAa,CAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,EAAE,EACxC,GAAG,EAAE,SAAS,GACf,OAAO,CAAC,MAAM,CAAC;IAIlB;;;;;;;;OAQG;WACU,aAAa,CACtB,gBAAgB,EAAE,MAAM,EACxB,GAAG,EAAE,SAAS,GACf,OAAO,CAAC,OAAO,CAAC;IAKnB;;;;;;OAMG;WACU,aAAa,CACtB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,SAAS,GACf,OAAO,CAAC,MAAM,CAAC;IAclB;;;;;;OAMG;IACH,MAAM,CAAC,aAAa,CAChB,gBAAgB,EAAE,MAAM,EACxB,GAAG,EAAE,SAAS,GACf,OAAO,CAAC,WAAW,CAAC;IAWvB;;;;;;;;;;OAUG;WACU,YAAY,CACrB,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,SAAS,GACf,OAAO,CAAC,IAAI,CAAC;IAehB;;;;;;OAMG;IACH,MAAM,CAAC,YAAY,CACf,gBAAgB,EAAE,MAAM,EACxB,GAAG,EAAE,SAAS,GACf,OAAO,CAAC,WAAW,CAAC;IAIvB;;;;;;;;;OASG;WACU,qBAAqB,CAC9B,gBAAgB,EAAE,MAAM,EACxB,GAAG,EAAE,SAAS,GACf,OAAO,CAAC,MAAM,CAAC;IAUlB;;;;;;;;;;OAUG;WACU,iBAAiB,CAC1B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,SAAS,EACd,QAAQ,SAAc,GACvB,OAAO,CAAC,MAAM,CAAC;IAgBlB;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAQlC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;CAQrC"}
@@ -0,0 +1,201 @@
1
+ /**
2
+ * E2EE Encryptor - Handles encryption and decryption of document content
3
+ * for end-to-end encrypted documents.
4
+ *
5
+ * Uses AES-GCM (256-bit) for all encryption operations. Each encryption
6
+ * operation generates a random 12-byte IV (initialization vector) to
7
+ * ensure that encrypting the same plaintext twice produces different
8
+ * ciphertext.
9
+ *
10
+ * Encrypted data format (Appendix A of the E2EE plan):
11
+ * [IV (12 bytes)][Ciphertext (variable length)][Auth Tag (16 bytes, implicit in AES-GCM)]
12
+ *
13
+ * When stored as a string (e.g., in JSON fields), the entire structure
14
+ * is Base64-encoded.
15
+ */
16
+ export class E2EEEncryptor {
17
+ /**
18
+ * Encrypt a string with AES-GCM.
19
+ *
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
+ */
24
+ static async encrypt(plaintext, key) {
25
+ const iv = crypto.getRandomValues(new Uint8Array(12));
26
+ const encoded = new TextEncoder().encode(plaintext);
27
+ const ciphertext = await crypto.subtle.encrypt({ name: "AES-GCM", iv: iv }, key, encoded);
28
+ // Prepend IV to ciphertext for storage
29
+ const combined = new Uint8Array(iv.length + ciphertext.byteLength);
30
+ combined.set(iv, 0);
31
+ combined.set(new Uint8Array(ciphertext), iv.length);
32
+ return E2EEEncryptor._uint8ArrayToBase64(combined);
33
+ }
34
+ /**
35
+ * Decrypt a Base64-encoded AES-GCM ciphertext.
36
+ *
37
+ * @param ciphertextBase64 - Base64-encoded (iv + ciphertext + auth tag)
38
+ * @param key - An AES-GCM key (from E2EEKeyManager.deriveKey)
39
+ * @returns The decrypted plaintext string
40
+ */
41
+ static async decrypt(ciphertextBase64, key) {
42
+ const combined = E2EEEncryptor._base64ToUint8Array(ciphertextBase64);
43
+ const iv = combined.slice(0, 12);
44
+ const ciphertext = combined.slice(12);
45
+ const decrypted = await crypto.subtle.decrypt({ name: "AES-GCM", iv: iv }, key, ciphertext);
46
+ return new TextDecoder().decode(decrypted);
47
+ }
48
+ /**
49
+ * Encrypt a JSON-serializable object.
50
+ *
51
+ * Serializes the object to JSON, then encrypts the JSON string.
52
+ *
53
+ * @param obj - A JSON-serializable object
54
+ * @param key - An AES-GCM key
55
+ * @returns Base64-encoded encrypted data
56
+ */
57
+ static encryptObject(obj, key) {
58
+ return E2EEEncryptor.encrypt(JSON.stringify(obj), key);
59
+ }
60
+ /**
61
+ * Decrypt to a JSON-serializable object.
62
+ *
63
+ * Decrypts the Base64-encoded ciphertext, then parses the result as JSON.
64
+ *
65
+ * @param ciphertextBase64 - Base64-encoded encrypted data
66
+ * @param key - An AES-GCM key
67
+ * @returns The decrypted and parsed object
68
+ */
69
+ static async decryptObject(ciphertextBase64, key) {
70
+ const plaintext = await E2EEEncryptor.decrypt(ciphertextBase64, key);
71
+ return JSON.parse(plaintext);
72
+ }
73
+ /**
74
+ * Encrypt an ArrayBuffer (for images and other binary data).
75
+ *
76
+ * @param buffer - The binary data to encrypt
77
+ * @param key - An AES-GCM key
78
+ * @returns Base64-encoded encrypted data (iv + ciphertext)
79
+ */
80
+ static async encryptBuffer(buffer, key) {
81
+ const iv = crypto.getRandomValues(new Uint8Array(12));
82
+ const ciphertext = await crypto.subtle.encrypt({ name: "AES-GCM", iv: iv }, key, buffer);
83
+ // Prepend IV to ciphertext
84
+ const combined = new Uint8Array(iv.length + ciphertext.byteLength);
85
+ combined.set(iv, 0);
86
+ combined.set(new Uint8Array(ciphertext), iv.length);
87
+ return E2EEEncryptor._uint8ArrayToBase64(combined);
88
+ }
89
+ /**
90
+ * Decrypt to an ArrayBuffer.
91
+ *
92
+ * @param ciphertextBase64 - Base64-encoded encrypted data
93
+ * @param key - An AES-GCM key
94
+ * @returns The decrypted binary data
95
+ */
96
+ static decryptBuffer(ciphertextBase64, key) {
97
+ const combined = E2EEEncryptor._base64ToUint8Array(ciphertextBase64);
98
+ const iv = combined.slice(0, 12);
99
+ const ciphertext = combined.slice(12);
100
+ return crypto.subtle.decrypt({ name: "AES-GCM", iv: iv }, key, ciphertext);
101
+ }
102
+ /**
103
+ * Encrypt an image File/Blob for upload.
104
+ *
105
+ * Reads the file as an ArrayBuffer, encrypts it, and returns
106
+ * a Blob with application/octet-stream type (since the encrypted
107
+ * data is opaque binary).
108
+ *
109
+ * @param file - The image file to encrypt
110
+ * @param key - An AES-GCM key
111
+ * @returns An encrypted Blob with type application/octet-stream
112
+ */
113
+ static async encryptImage(file, key) {
114
+ const buffer = await file.arrayBuffer();
115
+ const iv = crypto.getRandomValues(new Uint8Array(12));
116
+ const ciphertext = await crypto.subtle.encrypt({ name: "AES-GCM", iv: iv }, key, buffer);
117
+ // Prepend IV to ciphertext
118
+ const combined = new Uint8Array(iv.length + ciphertext.byteLength);
119
+ combined.set(iv, 0);
120
+ combined.set(new Uint8Array(ciphertext), iv.length);
121
+ return new Blob([combined], { type: "application/octet-stream" });
122
+ }
123
+ /**
124
+ * Decrypt an encrypted image back to an ArrayBuffer.
125
+ *
126
+ * @param ciphertextBase64 - Base64-encoded encrypted image data
127
+ * @param key - An AES-GCM key
128
+ * @returns The decrypted image data
129
+ */
130
+ static decryptImage(ciphertextBase64, key) {
131
+ return E2EEEncryptor.decryptBuffer(ciphertextBase64, key);
132
+ }
133
+ /**
134
+ * Decrypt a Base64-encoded ciphertext and return as a Base64 string.
135
+ *
136
+ * Useful for decrypting encrypted images that need to be stored
137
+ * as Base64 data URLs or re-exported.
138
+ *
139
+ * @param ciphertextBase64 - Base64-encoded encrypted data
140
+ * @param key - An AES-GCM key
141
+ * @returns Base64-encoded decrypted data
142
+ */
143
+ static async decryptBufferToBase64(ciphertextBase64, key) {
144
+ const buffer = await E2EEEncryptor.decryptBuffer(ciphertextBase64, key);
145
+ const bytes = new Uint8Array(buffer);
146
+ let binary = "";
147
+ for (let i = 0; i < bytes.length; i++) {
148
+ binary += String.fromCharCode(bytes[i]);
149
+ }
150
+ return btoa(binary);
151
+ }
152
+ /**
153
+ * Decrypt an encrypted image and return a blob URL for display.
154
+ *
155
+ * Fetches the encrypted image file from the given URL, decrypts it,
156
+ * and creates a temporary object URL that can be used as an img src.
157
+ *
158
+ * @param imageUrl - The URL of the encrypted image file
159
+ * @param key - An AES-GCM key
160
+ * @param mimeType - The MIME type of the decrypted image
161
+ * @returns A blob URL for the decrypted image
162
+ */
163
+ static async decryptImageToUrl(imageUrl, key, mimeType = "image/png") {
164
+ const response = await fetch(imageUrl);
165
+ const arrayBuffer = await response.arrayBuffer();
166
+ const bytes = new Uint8Array(arrayBuffer);
167
+ let binary = "";
168
+ for (let i = 0; i < bytes.length; i++) {
169
+ binary += String.fromCharCode(bytes[i]);
170
+ }
171
+ const base64 = btoa(binary);
172
+ const decrypted = await E2EEEncryptor.decryptBuffer(base64, key);
173
+ const blob = new Blob([decrypted], { type: mimeType });
174
+ return URL.createObjectURL(blob);
175
+ }
176
+ // --- Private helper methods ---
177
+ /**
178
+ * Convert a Uint8Array to a Base64-encoded string.
179
+ * @private
180
+ */
181
+ static _uint8ArrayToBase64(bytes) {
182
+ let binary = "";
183
+ for (let i = 0; i < bytes.length; i++) {
184
+ binary += String.fromCharCode(bytes[i]);
185
+ }
186
+ return btoa(binary);
187
+ }
188
+ /**
189
+ * Convert a Base64-encoded string to a Uint8Array.
190
+ * @private
191
+ */
192
+ static _base64ToUint8Array(base64) {
193
+ const binary = atob(base64);
194
+ const bytes = new Uint8Array(binary.length);
195
+ for (let i = 0; i < binary.length; i++) {
196
+ bytes[i] = binary.charCodeAt(i);
197
+ }
198
+ return bytes;
199
+ }
200
+ }
201
+ //# sourceMappingURL=encryptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryptor.js","sourceRoot":"","sources":["../../../src/editor/e2ee/encryptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,aAAa;IACtB;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,SAAiB,EAAE,GAAc;QAClD,MAAM,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;QACrD,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QACnD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAC1C,EAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAC,EACzB,GAAG,EACH,OAAO,CACV,CAAA;QACD,uCAAuC;QACvC,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;QAClE,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;QACnB,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAA;QACnD,OAAO,aAAa,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IACtD,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,OAAO,CAChB,gBAAwB,EACxB,GAAc;QAEd,MAAM,QAAQ,GAAG,aAAa,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAA;QACpE,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAChC,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACrC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CACzC,EAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAC,EACzB,GAAG,EACH,UAAU,CACb,CAAA;QACD,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAC9C,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,aAAa,CAChB,GAAwC,EACxC,GAAc;QAEd,OAAO,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;IAC1D,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,CAAC,aAAa,CACtB,gBAAwB,EACxB,GAAc;QAEd,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAA;QACpE,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAChC,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,aAAa,CACtB,MAAmB,EACnB,GAAc;QAEd,MAAM,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;QACrD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAC1C,EAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAC,EACzB,GAAG,EACH,MAAM,CACT,CAAA;QACD,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;QAClE,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;QACnB,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAA;QACnD,OAAO,aAAa,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IACtD,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,aAAa,CAChB,gBAAwB,EACxB,GAAc;QAEd,MAAM,QAAQ,GAAG,aAAa,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAA;QACpE,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAChC,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACrC,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CACxB,EAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAC,EACzB,GAAG,EACH,UAAU,CACb,CAAA;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,KAAK,CAAC,YAAY,CACrB,IAAU,EACV,GAAc;QAEd,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;QACvC,MAAM,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;QACrD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAC1C,EAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAC,EACzB,GAAG,EACH,MAAM,CACT,CAAA;QACD,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;QAClE,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;QACnB,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAA;QACnD,OAAO,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAC,IAAI,EAAE,0BAA0B,EAAC,CAAC,CAAA;IACnE,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,YAAY,CACf,gBAAwB,EACxB,GAAc;QAEd,OAAO,aAAa,CAAC,aAAa,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAA;IAC7D,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAC9B,gBAAwB,EACxB,GAAc;QAEd,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,aAAa,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAA;QACvE,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;QACpC,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAA;IACvB,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAC1B,QAAgB,EAChB,GAAc,EACd,QAAQ,GAAG,WAAW;QAEtB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAA;QACtC,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAA;QAChD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAA;QACzC,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3C,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;QAC3B,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAChE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC,CAAA;QACpD,OAAO,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC;IAED,iCAAiC;IAEjC;;;OAGG;IACK,MAAM,CAAC,mBAAmB,CAAC,KAAiB;QAChD,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAA;IACvB,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,mBAAmB,CAAC,MAAc;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;QAC3B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QACnC,CAAC;QACD,OAAO,KAAK,CAAA;IAChB,CAAC;CACJ"}
@@ -0,0 +1,31 @@
1
+ import { FormatCitations } from "../../citations/format.js";
2
+ import type { BibDB, CSL, DocSettings, FidusNode } from "../../types.js";
3
+ import type { XMLElement } from "../tools/xml.js";
4
+ import type { XmlZip } from "../tools/xml_zip.js";
5
+ export declare class DOCXExporterCitations {
6
+ docContent: FidusNode;
7
+ settings: DocSettings;
8
+ bibDB: BibDB;
9
+ csl: CSL;
10
+ xml: XmlZip;
11
+ origCitInfos: Record<string, unknown>[];
12
+ citInfos: Record<string, unknown>[];
13
+ citationTexts: string[];
14
+ pmCits: FidusNode[];
15
+ citFm: FormatCitations | false;
16
+ pmBib: FidusNode | false;
17
+ styleXML: XMLElement | null;
18
+ styleFilePath: string;
19
+ constructor(docContent: FidusNode, settings: DocSettings, bibDB: BibDB, csl: CSL, xml: XmlZip, origCitInfos?: Record<string, unknown>[]);
20
+ init(): Promise<void>;
21
+ formatCitations(): Promise<void>;
22
+ convertCitations(): void;
23
+ addReferenceStyle(bibInfo: {
24
+ linespacing: number;
25
+ entryspacing: number;
26
+ hangingindent?: boolean;
27
+ maxoffset: number;
28
+ "second-field-align"?: "margin" | "flush";
29
+ }): void;
30
+ }
31
+ //# sourceMappingURL=citations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"citations.d.ts","sourceRoot":"","sources":["../../../src/exporter/docx/citations.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,eAAe,EAAC,MAAM,2BAA2B,CAAA;AAEzD,OAAO,KAAK,EAAC,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAA;AAEtE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAA;AAE/C,qBAAa,qBAAqB;IAC9B,UAAU,EAAE,SAAS,CAAA;IACrB,QAAQ,EAAE,WAAW,CAAA;IACrB,KAAK,EAAE,KAAK,CAAA;IACZ,GAAG,EAAE,GAAG,CAAA;IACR,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAEvC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IACnC,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,MAAM,EAAE,SAAS,EAAE,CAAA;IACnB,KAAK,EAAE,eAAe,GAAG,KAAK,CAAA;IAC9B,KAAK,EAAE,SAAS,GAAG,KAAK,CAAA;IACxB,QAAQ,EAAE,UAAU,GAAG,IAAI,CAAA;IAC3B,aAAa,EAAE,MAAM,CAAA;gBAET,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAO;IAiB3I,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAYrB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAkChC,gBAAgB,IAAI,IAAI;IAsCxB,iBAAiB,CAAC,OAAO,EAAE;QACvB,WAAW,EAAE,MAAM,CAAA;QACnB,YAAY,EAAE,MAAM,CAAA;QACpB,aAAa,CAAC,EAAE,OAAO,CAAA;QACvB,SAAS,EAAE,MAAM,CAAA;QACjB,oBAAoB,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;KAC5C,GAAG,IAAI;CAuEX"}
@@ -0,0 +1,171 @@
1
+ import { DOMParser, DOMSerializer } from "prosemirror-model";
2
+ import { cslBibSchema } from "../../bibliography/csl_bib.js";
3
+ import { FormatCitations } from "../../citations/format.js";
4
+ import { fnSchema } from "../../schema/footnotes.js";
5
+ import { descendantNodes } from "../tools/doc_content.js";
6
+ export class DOCXExporterCitations {
7
+ docContent;
8
+ settings;
9
+ bibDB;
10
+ csl;
11
+ xml;
12
+ origCitInfos;
13
+ citInfos;
14
+ citationTexts;
15
+ pmCits;
16
+ citFm;
17
+ pmBib;
18
+ styleXML;
19
+ styleFilePath;
20
+ constructor(docContent, settings, bibDB, csl, xml, origCitInfos = []) {
21
+ this.docContent = docContent;
22
+ this.settings = settings;
23
+ this.bibDB = bibDB;
24
+ this.csl = csl;
25
+ this.xml = xml;
26
+ this.origCitInfos = origCitInfos;
27
+ this.citInfos = [];
28
+ this.citationTexts = [];
29
+ this.pmCits = [];
30
+ this.citFm = false;
31
+ this.pmBib = false;
32
+ this.styleXML = null;
33
+ this.styleFilePath = "word/styles.xml";
34
+ }
35
+ init() {
36
+ return this.xml
37
+ .getXml(this.styleFilePath)
38
+ .then(styleXML => {
39
+ this.styleXML = styleXML;
40
+ return Promise.resolve();
41
+ })
42
+ .then(() => this.formatCitations());
43
+ }
44
+ // Citations are highly interdependent -- so we need to format them all
45
+ // together before laying out the document.
46
+ formatCitations() {
47
+ if (this.origCitInfos.length) {
48
+ // Initial citInfos are taken from a previous run to include in bibliography,
49
+ // and they are removed before spitting out the citation entries for the given document.
50
+ // That way the bibliography should contain information from both.
51
+ this.citInfos = this.citInfos.concat(this.origCitInfos);
52
+ }
53
+ descendantNodes(this.docContent).forEach(node => {
54
+ if (node.type === "citation" && node.attrs) {
55
+ this.citInfos.push(JSON.parse(JSON.stringify(node.attrs)));
56
+ }
57
+ });
58
+ const citFm = new FormatCitations(this.csl, this.citInfos, this.settings.citationstyle || "", "", this.bibDB, false, this.settings.language);
59
+ this.citFm = citFm;
60
+ return citFm.init().then(() => {
61
+ this.citationTexts = citFm.citationTexts;
62
+ if (this.origCitInfos.length) {
63
+ // Remove all citation texts originating from original starting citInfos
64
+ this.citationTexts.splice(0, this.origCitInfos.length);
65
+ }
66
+ this.convertCitations();
67
+ return Promise.resolve();
68
+ });
69
+ }
70
+ convertCitations() {
71
+ if (!this.citFm) {
72
+ return;
73
+ }
74
+ // There could be some formatting in the citations, so we parse them through the PM schema for final formatting.
75
+ // We need to put the citations each in a paragraph so that it works with
76
+ // the fiduswriter schema and so that the converter doesn't mash them together.
77
+ let citationsHTML = "";
78
+ this.citationTexts.forEach(ct => {
79
+ citationsHTML += `<p>${ct}</p>`;
80
+ });
81
+ if (citationsHTML.length) {
82
+ // We create a standard body footnotecontainer node, add the citations into it, and parse it back.
83
+ const fnNode = fnSchema.nodeFromJSON({ type: "footnotecontainer" });
84
+ const serializer = DOMSerializer.fromSchema(fnSchema);
85
+ const dom = serializer.serializeNode(fnNode);
86
+ dom.innerHTML = citationsHTML;
87
+ this.pmCits = DOMParser.fromSchema(fnSchema)
88
+ .parse(dom, { topNode: fnNode })
89
+ .toJSON().content;
90
+ }
91
+ // Now we do the same for the bibliography.
92
+ const cslBib = this.citFm.bibliography;
93
+ if (cslBib && cslBib[1].length > 0) {
94
+ this.addReferenceStyle(cslBib[0]);
95
+ const bibNode = cslBibSchema.nodeFromJSON({ type: "cslbib" });
96
+ const cslSerializer = DOMSerializer.fromSchema(cslBibSchema);
97
+ const dom = cslSerializer.serializeNode(bibNode);
98
+ dom.innerHTML = cslBib[1].join("");
99
+ this.pmBib = DOMParser.fromSchema(cslBibSchema)
100
+ .parse(dom, { topNode: bibNode })
101
+ .toJSON();
102
+ }
103
+ }
104
+ addReferenceStyle(bibInfo) {
105
+ const stylesEl = this.styleXML.query("w:styles");
106
+ if (!this.styleXML.query("w:style", {
107
+ "w:styleId": "BibliographyHeading"
108
+ })) {
109
+ // There is no style definition for the bibliography heading. We have to add it.
110
+ const headingStyleDef = `
111
+ <w:style w:type="paragraph" w:styleId="BibliographyHeading">
112
+ <w:name w:val="Bibliography Heading"/>
113
+ <w:basedOn w:val="Heading"/>
114
+ <w:pPr>
115
+ <w:suppressLineNumbers/>
116
+ <w:ind w:left="0" w:hanging="0"/>
117
+ </w:pPr>
118
+ <w:rPr>
119
+ <w:b/>
120
+ <w:bCs/>
121
+ <w:sz w:val="32"/>
122
+ <w:szCs w:val="32"/>
123
+ </w:rPr>
124
+ </w:style>`;
125
+ stylesEl?.appendXML(headingStyleDef);
126
+ }
127
+ // The style called "Bibliography" will override any previous style
128
+ // of the same name.
129
+ const stylesParStyle = this.styleXML.query("w:style", {
130
+ "w:styleId": "Bibliography"
131
+ });
132
+ if (stylesParStyle) {
133
+ stylesParStyle.parentElement.removeChild(stylesParStyle);
134
+ }
135
+ const lineHeight = 240 * bibInfo.linespacing;
136
+ const marginBottom = 240 * bibInfo.entryspacing;
137
+ let marginLeft = 0, hangingIndent = 0, tabStops = "";
138
+ if (bibInfo.hangingindent) {
139
+ marginLeft = 720;
140
+ hangingIndent = 720;
141
+ }
142
+ else if (bibInfo["second-field-align"]) {
143
+ // We calculate 120 as roughly equivalent to one letter width.
144
+ const firstFieldWidth = (bibInfo.maxoffset + 1) * 120;
145
+ if (bibInfo["second-field-align"] === "margin") {
146
+ hangingIndent = firstFieldWidth;
147
+ tabStops =
148
+ '<w:tabs><w:tab w:val="left" w:pos="0" w:leader="none"/></w:tabs>';
149
+ }
150
+ else {
151
+ hangingIndent = firstFieldWidth;
152
+ marginLeft = firstFieldWidth;
153
+ tabStops = `<w:tabs><w:tab w:val="left" w:pos="${firstFieldWidth}" w:leader="none"/></w:tabs>`;
154
+ }
155
+ }
156
+ const styleDef = `
157
+ <w:style w:type="paragraph" w:styleId="Bibliography">
158
+ <w:name w:val="Bibliography"/>
159
+ <w:basedOn w:val="Normal"/>
160
+ <w:qFormat/>
161
+ <w:pPr>
162
+ ${tabStops}
163
+ <w:spacing w:lineRule="atLeast" w:line="${lineHeight}" w:before="0" w:after="${marginBottom}"/>
164
+ <w:ind w:left="${marginLeft}" w:hanging="${hangingIndent}"/>
165
+ </w:pPr>
166
+ <w:rPr></w:rPr>
167
+ </w:style>`;
168
+ stylesEl?.appendXML(styleDef);
169
+ }
170
+ }
171
+ //# sourceMappingURL=citations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"citations.js","sourceRoot":"","sources":["../../../src/exporter/docx/citations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { CommentData, FidusNode } from "../../types.js";
2
+ import type { XMLElement } from "../tools/xml.js";
3
+ import type { XmlZip } from "../tools/xml_zip.js";
4
+ import type { DOCXExporterRels } from "./rels.js";
5
+ export declare class DOCXExporterComments {
6
+ docContent: FidusNode;
7
+ commentsDB: Record<string, CommentData>;
8
+ xml: XmlZip;
9
+ rels: DOCXExporterRels;
10
+ richtext: any;
11
+ usedComments: string[];
12
+ commentsXML: XMLElement | null;
13
+ commentsExtendedXML: XMLElement | null;
14
+ commentsFilePath: string;
15
+ commentsExtendedFilePath: string;
16
+ commentIdCounter: number;
17
+ constructor(docContent: FidusNode, commentsDB: Record<string, CommentData>, xml: XmlZip, rels: DOCXExporterRels, richtext: any);
18
+ init(): Promise<void> | undefined;
19
+ addComment(id: string): void;
20
+ exportComments(): Promise<void>;
21
+ }
22
+ //# sourceMappingURL=comments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../../../src/exporter/docx/comments.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,WAAW,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAA;AAE1D,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAA;AAC/C,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,WAAW,CAAA;AAU/C,qBAAa,oBAAoB;IAC7B,UAAU,EAAE,SAAS,CAAA;IACrB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACvC,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,gBAAgB,CAAA;IACtB,QAAQ,EAAE,GAAG,CAAA;IAEb,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,WAAW,EAAE,UAAU,GAAG,IAAI,CAAA;IAC9B,mBAAmB,EAAE,UAAU,GAAG,IAAI,CAAA;IACtC,gBAAgB,EAAE,MAAM,CAAA;IACxB,wBAAwB,EAAE,MAAM,CAAA;IAChC,gBAAgB,EAAE,MAAM,CAAA;gBAGpB,UAAU,EAAE,SAAS,EACrB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACvC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,gBAAgB,EACtB,QAAQ,EAAE,GAAG;IAgBjB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS;IAkEjC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAoF5B,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CAMlC"}