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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (550) hide show
  1. package/dist/bibliography/common.d.ts +9 -91
  2. package/dist/bibliography/common.d.ts.map +1 -1
  3. package/dist/bibliography/common.js +3 -2
  4. package/dist/bibliography/common.js.map +1 -1
  5. package/dist/bibliography/csl_bib.d.ts +1 -1
  6. package/dist/bibliography/csl_bib.d.ts.map +1 -1
  7. package/dist/bibliography/csl_bib.js +7 -7
  8. package/dist/bibliography/csl_bib.js.map +1 -1
  9. package/dist/citations/citeproc_sys.d.ts +9 -10
  10. package/dist/citations/citeproc_sys.d.ts.map +1 -1
  11. package/dist/citations/citeproc_sys.js +6 -1
  12. package/dist/citations/citeproc_sys.js.map +1 -1
  13. package/dist/citations/format.d.ts +33 -16
  14. package/dist/citations/format.d.ts.map +1 -1
  15. package/dist/citations/format.js +29 -4
  16. package/dist/citations/format.js.map +1 -1
  17. package/dist/editor/e2ee/encryptor.d.ts +35 -35
  18. package/dist/editor/e2ee/encryptor.d.ts.map +1 -1
  19. package/dist/editor/e2ee/encryptor.js +31 -31
  20. package/dist/editor/e2ee/encryptor.js.map +1 -1
  21. package/dist/exporter/docx/citations.d.ts +27 -17
  22. package/dist/exporter/docx/citations.d.ts.map +1 -1
  23. package/dist/exporter/docx/citations.js +24 -7
  24. package/dist/exporter/docx/citations.js.map +1 -1
  25. package/dist/exporter/docx/comments.d.ts +15 -11
  26. package/dist/exporter/docx/comments.d.ts.map +1 -1
  27. package/dist/exporter/docx/comments.js +47 -14
  28. package/dist/exporter/docx/comments.js.map +1 -1
  29. package/dist/exporter/docx/footnotes.d.ts +36 -31
  30. package/dist/exporter/docx/footnotes.d.ts.map +1 -1
  31. package/dist/exporter/docx/footnotes.js +46 -12
  32. package/dist/exporter/docx/footnotes.js.map +1 -1
  33. package/dist/exporter/docx/images.d.ts +23 -12
  34. package/dist/exporter/docx/images.d.ts.map +1 -1
  35. package/dist/exporter/docx/images.js +35 -20
  36. package/dist/exporter/docx/images.js.map +1 -1
  37. package/dist/exporter/docx/index.d.ts +11 -17
  38. package/dist/exporter/docx/index.d.ts.map +1 -1
  39. package/dist/exporter/docx/index.js +15 -7
  40. package/dist/exporter/docx/index.js.map +1 -1
  41. package/dist/exporter/docx/lists.d.ts +27 -22
  42. package/dist/exporter/docx/lists.d.ts.map +1 -1
  43. package/dist/exporter/docx/lists.js +77 -30
  44. package/dist/exporter/docx/lists.js.map +1 -1
  45. package/dist/exporter/docx/math.d.ts +9 -9
  46. package/dist/exporter/docx/math.d.ts.map +1 -1
  47. package/dist/exporter/docx/math.js +22 -5
  48. package/dist/exporter/docx/math.js.map +1 -1
  49. package/dist/exporter/docx/metadata.d.ts +12 -9
  50. package/dist/exporter/docx/metadata.d.ts.map +1 -1
  51. package/dist/exporter/docx/metadata.js +59 -26
  52. package/dist/exporter/docx/metadata.js.map +1 -1
  53. package/dist/exporter/docx/rels.d.ts +14 -12
  54. package/dist/exporter/docx/rels.d.ts.map +1 -1
  55. package/dist/exporter/docx/rels.js +37 -22
  56. package/dist/exporter/docx/rels.js.map +1 -1
  57. package/dist/exporter/docx/render.d.ts +17 -15
  58. package/dist/exporter/docx/render.d.ts.map +1 -1
  59. package/dist/exporter/docx/render.js +37 -31
  60. package/dist/exporter/docx/render.js.map +1 -1
  61. package/dist/exporter/docx/richtext.d.ts +8 -8
  62. package/dist/exporter/docx/richtext.d.ts.map +1 -1
  63. package/dist/exporter/docx/richtext.js +61 -43
  64. package/dist/exporter/docx/richtext.js.map +1 -1
  65. package/dist/exporter/docx/tables.d.ts +11 -9
  66. package/dist/exporter/docx/tables.d.ts.map +1 -1
  67. package/dist/exporter/docx/tables.js +16 -10
  68. package/dist/exporter/docx/tables.js.map +1 -1
  69. package/dist/exporter/docx/tools.d.ts +3 -2
  70. package/dist/exporter/docx/tools.d.ts.map +1 -1
  71. package/dist/exporter/docx/tools.js +3 -3
  72. package/dist/exporter/docx/tools.js.map +1 -1
  73. package/dist/exporter/epub/index.d.ts +11 -3
  74. package/dist/exporter/epub/index.d.ts.map +1 -1
  75. package/dist/exporter/epub/index.js +10 -3
  76. package/dist/exporter/epub/index.js.map +1 -1
  77. package/dist/exporter/epub/templates.d.ts +62 -31
  78. package/dist/exporter/epub/templates.d.ts.map +1 -1
  79. package/dist/exporter/epub/templates.js +1 -1
  80. package/dist/exporter/epub/templates.js.map +1 -1
  81. package/dist/exporter/epub/tools.d.ts +12 -4
  82. package/dist/exporter/epub/tools.d.ts.map +1 -1
  83. package/dist/exporter/epub/tools.js +14 -13
  84. package/dist/exporter/epub/tools.js.map +1 -1
  85. package/dist/exporter/html/citations.d.ts +17 -15
  86. package/dist/exporter/html/citations.d.ts.map +1 -1
  87. package/dist/exporter/html/citations.js +37 -18
  88. package/dist/exporter/html/citations.js.map +1 -1
  89. package/dist/exporter/html/convert.d.ts +20 -70
  90. package/dist/exporter/html/convert.d.ts.map +1 -1
  91. package/dist/exporter/html/convert.js +74 -42
  92. package/dist/exporter/html/convert.js.map +1 -1
  93. package/dist/exporter/html/index.d.ts +55 -52
  94. package/dist/exporter/html/index.d.ts.map +1 -1
  95. package/dist/exporter/html/index.js +23 -3
  96. package/dist/exporter/html/index.js.map +1 -1
  97. package/dist/exporter/html/templates.d.ts +23 -9
  98. package/dist/exporter/html/templates.d.ts.map +1 -1
  99. package/dist/exporter/html/templates.js +1 -1
  100. package/dist/exporter/html/templates.js.map +1 -1
  101. package/dist/exporter/html/tools.d.ts +1 -1
  102. package/dist/exporter/html/tools.d.ts.map +1 -1
  103. package/dist/exporter/html/tools.js +2 -2
  104. package/dist/exporter/html/tools.js.map +1 -1
  105. package/dist/exporter/jats/bibliography.d.ts +2 -1
  106. package/dist/exporter/jats/bibliography.d.ts.map +1 -1
  107. package/dist/exporter/jats/bibliography.js +57 -52
  108. package/dist/exporter/jats/bibliography.js.map +1 -1
  109. package/dist/exporter/jats/citations.d.ts +13 -11
  110. package/dist/exporter/jats/citations.d.ts.map +1 -1
  111. package/dist/exporter/jats/citations.js +28 -6
  112. package/dist/exporter/jats/citations.js.map +1 -1
  113. package/dist/exporter/jats/convert.d.ts +24 -28
  114. package/dist/exporter/jats/convert.d.ts.map +1 -1
  115. package/dist/exporter/jats/convert.js +53 -36
  116. package/dist/exporter/jats/convert.js.map +1 -1
  117. package/dist/exporter/jats/index.d.ts +21 -15
  118. package/dist/exporter/jats/index.d.ts.map +1 -1
  119. package/dist/exporter/jats/index.js +21 -5
  120. package/dist/exporter/jats/index.js.map +1 -1
  121. package/dist/exporter/jats/templates.d.ts +17 -15
  122. package/dist/exporter/jats/templates.d.ts.map +1 -1
  123. package/dist/exporter/jats/templates.js.map +1 -1
  124. package/dist/exporter/jats/text.d.ts +3 -2
  125. package/dist/exporter/jats/text.d.ts.map +1 -1
  126. package/dist/exporter/jats/text.js +4 -4
  127. package/dist/exporter/jats/text.js.map +1 -1
  128. package/dist/exporter/latex/convert.d.ts +12 -15
  129. package/dist/exporter/latex/convert.d.ts.map +1 -1
  130. package/dist/exporter/latex/convert.js +70 -54
  131. package/dist/exporter/latex/convert.js.map +1 -1
  132. package/dist/exporter/latex/escape_latex.d.ts +1 -1
  133. package/dist/exporter/latex/escape_latex.d.ts.map +1 -1
  134. package/dist/exporter/latex/escape_latex.js +1 -1
  135. package/dist/exporter/latex/escape_latex.js.map +1 -1
  136. package/dist/exporter/latex/index.d.ts +20 -19
  137. package/dist/exporter/latex/index.d.ts.map +1 -1
  138. package/dist/exporter/latex/index.js +15 -5
  139. package/dist/exporter/latex/index.js.map +1 -1
  140. package/dist/exporter/latex/readme.d.ts +1 -1
  141. package/dist/exporter/latex/readme.d.ts.map +1 -1
  142. package/dist/exporter/latex/readme.js +2 -2
  143. package/dist/exporter/latex/readme.js.map +1 -1
  144. package/dist/exporter/native/copy.d.ts +30 -0
  145. package/dist/exporter/native/copy.d.ts.map +1 -0
  146. package/dist/exporter/native/copy.js +151 -0
  147. package/dist/exporter/native/copy.js.map +1 -0
  148. package/dist/exporter/native/file.d.ts +12 -0
  149. package/dist/exporter/native/file.d.ts.map +1 -0
  150. package/dist/exporter/native/file.js +38 -0
  151. package/dist/exporter/native/file.js.map +1 -0
  152. package/dist/exporter/native/index.d.ts +5 -0
  153. package/dist/exporter/native/index.d.ts.map +1 -0
  154. package/dist/exporter/native/index.js +5 -0
  155. package/dist/exporter/native/index.js.map +1 -0
  156. package/dist/exporter/native/revision.d.ts +18 -0
  157. package/dist/exporter/native/revision.d.ts.map +1 -0
  158. package/dist/exporter/native/revision.js +39 -0
  159. package/dist/exporter/native/revision.js.map +1 -0
  160. package/dist/exporter/native/shrink.d.ts +29 -14
  161. package/dist/exporter/native/shrink.d.ts.map +1 -1
  162. package/dist/exporter/native/shrink.js +27 -18
  163. package/dist/exporter/native/shrink.js.map +1 -1
  164. package/dist/exporter/native/zip.d.ts +25 -0
  165. package/dist/exporter/native/zip.d.ts.map +1 -0
  166. package/dist/exporter/native/zip.js +56 -0
  167. package/dist/exporter/native/zip.js.map +1 -0
  168. package/dist/exporter/odt/citations.d.ts +18 -15
  169. package/dist/exporter/odt/citations.d.ts.map +1 -1
  170. package/dist/exporter/odt/citations.js +21 -4
  171. package/dist/exporter/odt/citations.js.map +1 -1
  172. package/dist/exporter/odt/footnotes.d.ts +25 -19
  173. package/dist/exporter/odt/footnotes.d.ts.map +1 -1
  174. package/dist/exporter/odt/footnotes.js +23 -6
  175. package/dist/exporter/odt/footnotes.js.map +1 -1
  176. package/dist/exporter/odt/images.d.ts +23 -11
  177. package/dist/exporter/odt/images.d.ts.map +1 -1
  178. package/dist/exporter/odt/images.js +34 -26
  179. package/dist/exporter/odt/images.js.map +1 -1
  180. package/dist/exporter/odt/index.d.ts +12 -18
  181. package/dist/exporter/odt/index.d.ts.map +1 -1
  182. package/dist/exporter/odt/index.js +16 -7
  183. package/dist/exporter/odt/index.js.map +1 -1
  184. package/dist/exporter/odt/math.d.ts +10 -8
  185. package/dist/exporter/odt/math.d.ts.map +1 -1
  186. package/dist/exporter/odt/math.js +27 -4
  187. package/dist/exporter/odt/math.js.map +1 -1
  188. package/dist/exporter/odt/metadata.d.ts +13 -9
  189. package/dist/exporter/odt/metadata.d.ts.map +1 -1
  190. package/dist/exporter/odt/metadata.js +36 -15
  191. package/dist/exporter/odt/metadata.js.map +1 -1
  192. package/dist/exporter/odt/render.d.ts +17 -15
  193. package/dist/exporter/odt/render.d.ts.map +1 -1
  194. package/dist/exporter/odt/render.js +25 -18
  195. package/dist/exporter/odt/render.js.map +1 -1
  196. package/dist/exporter/odt/richtext.d.ts +9 -9
  197. package/dist/exporter/odt/richtext.d.ts.map +1 -1
  198. package/dist/exporter/odt/richtext.js +55 -40
  199. package/dist/exporter/odt/richtext.js.map +1 -1
  200. package/dist/exporter/odt/styles.d.ts +29 -21
  201. package/dist/exporter/odt/styles.d.ts.map +1 -1
  202. package/dist/exporter/odt/styles.js +44 -22
  203. package/dist/exporter/odt/styles.js.map +1 -1
  204. package/dist/exporter/odt/track.d.ts +14 -7
  205. package/dist/exporter/odt/track.d.ts.map +1 -1
  206. package/dist/exporter/odt/track.js +7 -0
  207. package/dist/exporter/odt/track.js.map +1 -1
  208. package/dist/exporter/pandoc/citations.d.ts +20 -14
  209. package/dist/exporter/pandoc/citations.d.ts.map +1 -1
  210. package/dist/exporter/pandoc/citations.js +18 -4
  211. package/dist/exporter/pandoc/citations.js.map +1 -1
  212. package/dist/exporter/pandoc/convert.d.ts +10 -29
  213. package/dist/exporter/pandoc/convert.d.ts.map +1 -1
  214. package/dist/exporter/pandoc/convert.js +45 -40
  215. package/dist/exporter/pandoc/convert.js.map +1 -1
  216. package/dist/exporter/pandoc/index.d.ts +20 -33
  217. package/dist/exporter/pandoc/index.d.ts.map +1 -1
  218. package/dist/exporter/pandoc/index.js +20 -8
  219. package/dist/exporter/pandoc/index.js.map +1 -1
  220. package/dist/exporter/pandoc/readme.d.ts +1 -1
  221. package/dist/exporter/pandoc/readme.d.ts.map +1 -1
  222. package/dist/exporter/pandoc/readme.js +0 -1
  223. package/dist/exporter/pandoc/readme.js.map +1 -1
  224. package/dist/exporter/pandoc/tools.d.ts +21 -5
  225. package/dist/exporter/pandoc/tools.d.ts.map +1 -1
  226. package/dist/exporter/pandoc/tools.js +2 -2
  227. package/dist/exporter/pandoc/tools.js.map +1 -1
  228. package/dist/exporter/print/index.d.ts +18 -7
  229. package/dist/exporter/print/index.d.ts.map +1 -1
  230. package/dist/exporter/print/index.js +12 -10
  231. package/dist/exporter/print/index.js.map +1 -1
  232. package/dist/exporter/tools/doc_content.d.ts +5 -6
  233. package/dist/exporter/tools/doc_content.d.ts.map +1 -1
  234. package/dist/exporter/tools/doc_content.js +17 -16
  235. package/dist/exporter/tools/doc_content.js.map +1 -1
  236. package/dist/exporter/tools/svg.d.ts +7 -1
  237. package/dist/exporter/tools/svg.d.ts.map +1 -1
  238. package/dist/exporter/tools/svg.js.map +1 -1
  239. package/dist/exporter/tools/xml.d.ts +39 -38
  240. package/dist/exporter/tools/xml.d.ts.map +1 -1
  241. package/dist/exporter/tools/xml.js +82 -55
  242. package/dist/exporter/tools/xml.js.map +1 -1
  243. package/dist/exporter/tools/xml_zip.d.ts +15 -14
  244. package/dist/exporter/tools/xml_zip.d.ts.map +1 -1
  245. package/dist/exporter/tools/xml_zip.js +8 -2
  246. package/dist/exporter/tools/xml_zip.js.map +1 -1
  247. package/dist/exporter/tools/zip.d.ts +28 -14
  248. package/dist/exporter/tools/zip.d.ts.map +1 -1
  249. package/dist/exporter/tools/zip.js +13 -6
  250. package/dist/exporter/tools/zip.js.map +1 -1
  251. package/dist/exporter/tools/zotero_csl.d.ts +19 -6
  252. package/dist/exporter/tools/zotero_csl.d.ts.map +1 -1
  253. package/dist/exporter/tools/zotero_csl.js +9 -9
  254. package/dist/exporter/tools/zotero_csl.js.map +1 -1
  255. package/dist/importer/citations.d.ts +25 -22
  256. package/dist/importer/citations.d.ts.map +1 -1
  257. package/dist/importer/citations.js +1 -49
  258. package/dist/importer/citations.js.map +1 -1
  259. package/dist/importer/docx/citations.d.ts +8 -30
  260. package/dist/importer/docx/citations.d.ts.map +1 -1
  261. package/dist/importer/docx/citations.js +1 -26
  262. package/dist/importer/docx/citations.js.map +1 -1
  263. package/dist/importer/docx/convert.d.ts +38 -116
  264. package/dist/importer/docx/convert.d.ts.map +1 -1
  265. package/dist/importer/docx/convert.js +99 -82
  266. package/dist/importer/docx/convert.js.map +1 -1
  267. package/dist/importer/docx/helpers.d.ts +1 -1
  268. package/dist/importer/docx/helpers.d.ts.map +1 -1
  269. package/dist/importer/docx/helpers.js +1 -1
  270. package/dist/importer/docx/helpers.js.map +1 -1
  271. package/dist/importer/docx/index.d.ts +27 -0
  272. package/dist/importer/docx/index.d.ts.map +1 -0
  273. package/dist/importer/docx/index.js +77 -0
  274. package/dist/importer/docx/index.js.map +1 -0
  275. package/dist/importer/docx/omml2mathml.d.ts +2 -3
  276. package/dist/importer/docx/omml2mathml.d.ts.map +1 -1
  277. package/dist/importer/docx/omml2mathml.js +23 -116
  278. package/dist/importer/docx/omml2mathml.js.map +1 -1
  279. package/dist/importer/docx/parse.d.ts +22 -131
  280. package/dist/importer/docx/parse.d.ts.map +1 -1
  281. package/dist/importer/docx/parse.js +73 -55
  282. package/dist/importer/docx/parse.js.map +1 -1
  283. package/dist/importer/native/extract_template.d.ts +6 -0
  284. package/dist/importer/native/extract_template.d.ts.map +1 -0
  285. package/dist/importer/native/extract_template.js +80 -0
  286. package/dist/importer/native/extract_template.js.map +1 -0
  287. package/dist/importer/native/file.d.ts +37 -0
  288. package/dist/importer/native/file.d.ts.map +1 -0
  289. package/dist/importer/native/file.js +162 -0
  290. package/dist/importer/native/file.js.map +1 -0
  291. package/dist/importer/native/get_images.d.ts +18 -8
  292. package/dist/importer/native/get_images.d.ts.map +1 -1
  293. package/dist/importer/native/get_images.js +39 -45
  294. package/dist/importer/native/get_images.js.map +1 -1
  295. package/dist/importer/native/importer.d.ts +41 -0
  296. package/dist/importer/native/importer.d.ts.map +1 -0
  297. package/dist/importer/native/importer.js +170 -0
  298. package/dist/importer/native/importer.js.map +1 -0
  299. package/dist/importer/native/index.d.ts +7 -0
  300. package/dist/importer/native/index.d.ts.map +1 -0
  301. package/dist/importer/native/index.js +7 -0
  302. package/dist/importer/native/index.js.map +1 -0
  303. package/dist/importer/native/update.d.ts +5 -4
  304. package/dist/importer/native/update.d.ts.map +1 -1
  305. package/dist/importer/native/update.js +4 -3
  306. package/dist/importer/native/update.js.map +1 -1
  307. package/dist/importer/native/update_template.d.ts +12 -0
  308. package/dist/importer/native/update_template.d.ts.map +1 -0
  309. package/dist/importer/native/update_template.js +19 -0
  310. package/dist/importer/native/update_template.js.map +1 -0
  311. package/dist/importer/odt/citations.d.ts +7 -27
  312. package/dist/importer/odt/citations.d.ts.map +1 -1
  313. package/dist/importer/odt/citations.js +0 -22
  314. package/dist/importer/odt/citations.js.map +1 -1
  315. package/dist/importer/odt/convert.d.ts +53 -237
  316. package/dist/importer/odt/convert.d.ts.map +1 -1
  317. package/dist/importer/odt/convert.js +162 -138
  318. package/dist/importer/odt/convert.js.map +1 -1
  319. package/dist/importer/odt/index.d.ts +30 -0
  320. package/dist/importer/odt/index.d.ts.map +1 -0
  321. package/dist/importer/odt/index.js +124 -0
  322. package/dist/importer/odt/index.js.map +1 -0
  323. package/dist/importer/pandoc/convert.d.ts +25 -77
  324. package/dist/importer/pandoc/convert.d.ts.map +1 -1
  325. package/dist/importer/pandoc/convert.js +65 -52
  326. package/dist/importer/pandoc/convert.js.map +1 -1
  327. package/dist/importer/pandoc/helpers.d.ts +4 -3
  328. package/dist/importer/pandoc/helpers.d.ts.map +1 -1
  329. package/dist/importer/pandoc/helpers.js +24 -26
  330. package/dist/importer/pandoc/helpers.js.map +1 -1
  331. package/dist/importer/pandoc/index.d.ts +31 -0
  332. package/dist/importer/pandoc/index.d.ts.map +1 -0
  333. package/dist/importer/pandoc/index.js +114 -0
  334. package/dist/importer/pandoc/index.js.map +1 -0
  335. package/dist/importer/registry.d.ts +21 -0
  336. package/dist/importer/registry.d.ts.map +1 -0
  337. package/dist/importer/registry.js +41 -0
  338. package/dist/importer/registry.js.map +1 -0
  339. package/dist/importer/zip_analyzer.d.ts +27 -21
  340. package/dist/importer/zip_analyzer.d.ts.map +1 -1
  341. package/dist/importer/zip_analyzer.js +10 -5
  342. package/dist/importer/zip_analyzer.js.map +1 -1
  343. package/dist/mathlive/opf_includes.d.ts +1 -1
  344. package/dist/mathlive/opf_includes.d.ts.map +1 -1
  345. package/dist/mathlive/opf_includes.js.map +1 -1
  346. package/dist/schema/common/annotate.d.ts +37 -49
  347. package/dist/schema/common/annotate.d.ts.map +1 -1
  348. package/dist/schema/common/annotate.js +2 -2
  349. package/dist/schema/common/annotate.js.map +1 -1
  350. package/dist/schema/common/base.d.ts +63 -81
  351. package/dist/schema/common/base.d.ts.map +1 -1
  352. package/dist/schema/common/base.js.map +1 -1
  353. package/dist/schema/common/citation.d.ts +23 -22
  354. package/dist/schema/common/citation.d.ts.map +1 -1
  355. package/dist/schema/common/citation.js +4 -5
  356. package/dist/schema/common/citation.js.map +1 -1
  357. package/dist/schema/common/equation.d.ts +13 -14
  358. package/dist/schema/common/equation.d.ts.map +1 -1
  359. package/dist/schema/common/equation.js +1 -1
  360. package/dist/schema/common/equation.js.map +1 -1
  361. package/dist/schema/common/figure.d.ts +72 -93
  362. package/dist/schema/common/figure.d.ts.map +1 -1
  363. package/dist/schema/common/figure.js +11 -9
  364. package/dist/schema/common/figure.js.map +1 -1
  365. package/dist/schema/common/heading.d.ts +8 -32
  366. package/dist/schema/common/heading.d.ts.map +1 -1
  367. package/dist/schema/common/heading.js +2 -2
  368. package/dist/schema/common/heading.js.map +1 -1
  369. package/dist/schema/common/index.d.ts +2 -2
  370. package/dist/schema/common/index.d.ts.map +1 -1
  371. package/dist/schema/common/index.js.map +1 -1
  372. package/dist/schema/common/list.d.ts +52 -72
  373. package/dist/schema/common/list.d.ts.map +1 -1
  374. package/dist/schema/common/list.js +3 -3
  375. package/dist/schema/common/list.js.map +1 -1
  376. package/dist/schema/common/reference.d.ts +51 -59
  377. package/dist/schema/common/reference.d.ts.map +1 -1
  378. package/dist/schema/common/reference.js +5 -5
  379. package/dist/schema/common/reference.js.map +1 -1
  380. package/dist/schema/common/table.d.ts +59 -75
  381. package/dist/schema/common/table.d.ts.map +1 -1
  382. package/dist/schema/common/table.js +3 -2
  383. package/dist/schema/common/table.js.map +1 -1
  384. package/dist/schema/common/track.d.ts +83 -97
  385. package/dist/schema/common/track.d.ts.map +1 -1
  386. package/dist/schema/common/track.js +18 -17
  387. package/dist/schema/common/track.js.map +1 -1
  388. package/dist/schema/convert.d.ts +2 -2
  389. package/dist/schema/convert.d.ts.map +1 -1
  390. package/dist/schema/convert.js +2 -2
  391. package/dist/schema/convert.js.map +1 -1
  392. package/dist/schema/document/content.d.ts +95 -122
  393. package/dist/schema/document/content.d.ts.map +1 -1
  394. package/dist/schema/document/content.js +9 -9
  395. package/dist/schema/document/content.js.map +1 -1
  396. package/dist/schema/document/index.d.ts +173 -257
  397. package/dist/schema/document/index.d.ts.map +1 -1
  398. package/dist/schema/document/index.js.map +1 -1
  399. package/dist/schema/document/structure.d.ts +149 -258
  400. package/dist/schema/document/structure.d.ts.map +1 -1
  401. package/dist/schema/document/structure.js +2 -2
  402. package/dist/schema/document/structure.js.map +1 -1
  403. package/dist/schema/export.d.ts +4 -877
  404. package/dist/schema/export.d.ts.map +1 -1
  405. package/dist/schema/export.js +1 -0
  406. package/dist/schema/export.js.map +1 -1
  407. package/dist/schema/footnotes.d.ts +110 -155
  408. package/dist/schema/footnotes.d.ts.map +1 -1
  409. package/dist/schema/footnotes.js +4 -2
  410. package/dist/schema/footnotes.js.map +1 -1
  411. package/dist/schema/footnotes_convert.d.ts +3 -3
  412. package/dist/schema/footnotes_convert.d.ts.map +1 -1
  413. package/dist/schema/footnotes_convert.js +10 -6
  414. package/dist/schema/footnotes_convert.js.map +1 -1
  415. package/dist/schema/i18n.d.ts +3 -534
  416. package/dist/schema/i18n.d.ts.map +1 -1
  417. package/dist/schema/i18n.js +1 -0
  418. package/dist/schema/i18n.js.map +1 -1
  419. package/dist/schema/index.d.ts +1 -1
  420. package/dist/schema/index.d.ts.map +1 -1
  421. package/dist/schema/index.js.map +1 -1
  422. package/dist/schema/mini_json.d.ts +3 -4
  423. package/dist/schema/mini_json.d.ts.map +1 -1
  424. package/dist/schema/mini_json.js +2 -0
  425. package/dist/schema/mini_json.js.map +1 -1
  426. package/dist/schema/text.d.ts +2 -1
  427. package/dist/schema/text.d.ts.map +1 -1
  428. package/dist/schema/text.js +1 -1
  429. package/dist/schema/text.js.map +1 -1
  430. package/dist/types.d.ts +167 -8
  431. package/dist/types.d.ts.map +1 -1
  432. package/package.json +24 -1
  433. package/src/bibliography/{common.js → common.ts} +15 -12
  434. package/src/bibliography/{csl_bib.js → csl_bib.ts} +16 -15
  435. package/src/citations/{citeproc_sys.js → citeproc_sys.ts} +26 -6
  436. package/src/citations/{format.js → format.ts} +80 -24
  437. package/src/editor/e2ee/{encryptor.js → encryptor.ts} +76 -44
  438. package/src/exporter/docx/{citations.js → citations.ts} +51 -23
  439. package/src/exporter/docx/{comments.js → comments.ts} +69 -26
  440. package/src/exporter/docx/{footnotes.js → footnotes.ts} +81 -42
  441. package/src/exporter/docx/images.ts +128 -0
  442. package/src/exporter/docx/{index.js → index.ts} +48 -25
  443. package/src/exporter/docx/{lists.js → lists.ts} +89 -46
  444. package/src/exporter/docx/{math.js → math.ts} +29 -9
  445. package/src/exporter/docx/{metadata.js → metadata.ts} +78 -42
  446. package/src/exporter/docx/{rels.js → rels.ts} +71 -50
  447. package/src/exporter/docx/{render.js → render.ts} +124 -87
  448. package/src/exporter/docx/{richtext.js → richtext.ts} +107 -84
  449. package/src/exporter/docx/{tables.js → tables.ts} +33 -23
  450. package/src/exporter/docx/{tools.js → tools.ts} +4 -3
  451. package/src/exporter/epub/{index.js → index.ts} +44 -15
  452. package/src/exporter/epub/{templates.js → templates.ts} +71 -7
  453. package/src/exporter/epub/{tools.js → tools.ts} +31 -25
  454. package/src/exporter/html/{citations.js → citations.ts} +79 -31
  455. package/src/exporter/html/{convert.js → convert.ts} +118 -71
  456. package/src/exporter/html/{index.js → index.ts} +63 -29
  457. package/src/exporter/html/{templates.js → templates.ts} +22 -2
  458. package/src/exporter/html/{tools.js → tools.ts} +9 -6
  459. package/src/exporter/jats/bibliography.ts +199 -0
  460. package/src/exporter/jats/{citations.js → citations.ts} +56 -20
  461. package/src/exporter/jats/{convert.js → convert.ts} +72 -53
  462. package/src/exporter/jats/index.ts +132 -0
  463. package/src/exporter/jats/{templates.js → templates.ts} +19 -3
  464. package/src/exporter/jats/{text.js → text.ts} +8 -6
  465. package/src/exporter/latex/{convert.js → convert.ts} +160 -125
  466. package/src/exporter/latex/{escape_latex.js → escape_latex.ts} +1 -1
  467. package/src/exporter/latex/{index.js → index.ts} +27 -12
  468. package/src/exporter/latex/{readme.js → readme.ts} +2 -2
  469. package/src/exporter/native/copy.ts +231 -0
  470. package/src/exporter/native/file.ts +65 -0
  471. package/src/exporter/native/index.ts +4 -0
  472. package/src/exporter/native/revision.ts +76 -0
  473. package/src/exporter/native/{shrink.js → shrink.ts} +64 -29
  474. package/src/exporter/native/zip.ts +85 -0
  475. package/src/exporter/odt/{citations.js → citations.ts} +35 -15
  476. package/src/exporter/odt/{footnotes.js → footnotes.ts} +53 -30
  477. package/src/exporter/odt/images.ts +135 -0
  478. package/src/exporter/odt/{index.js → index.ts} +49 -27
  479. package/src/exporter/odt/{math.js → math.ts} +38 -9
  480. package/src/exporter/odt/{metadata.js → metadata.ts} +54 -29
  481. package/src/exporter/odt/{render.js → render.ts} +89 -60
  482. package/src/exporter/odt/{richtext.js → richtext.ts} +102 -72
  483. package/src/exporter/odt/{styles.js → styles.ts} +98 -66
  484. package/src/exporter/odt/{track.js → track.ts} +22 -6
  485. package/src/exporter/pandoc/{citations.js → citations.ts} +31 -15
  486. package/src/exporter/pandoc/{convert.js → convert.ts} +98 -79
  487. package/src/exporter/pandoc/{index.js → index.ts} +36 -13
  488. package/src/exporter/pandoc/{readme.js → readme.ts} +0 -1
  489. package/src/exporter/pandoc/{tools.js → tools.ts} +28 -5
  490. package/src/exporter/print/{index.js → index.ts} +38 -19
  491. package/src/exporter/tools/{doc_content.js → doc_content.ts} +34 -24
  492. package/src/exporter/tools/{svg.js → svg.ts} +9 -3
  493. package/src/exporter/tools/{xml.js → xml.ts} +187 -138
  494. package/src/exporter/tools/{xml_zip.js → xml_zip.ts} +19 -11
  495. package/src/exporter/tools/{zip.js → zip.ts} +35 -11
  496. package/src/exporter/tools/{zotero_csl.js → zotero_csl.ts} +35 -18
  497. package/src/global.d.ts +2 -0
  498. package/src/importer/citations.ts +116 -0
  499. package/src/importer/docx/{citations.js → citations.ts} +22 -37
  500. package/src/importer/docx/{convert.js → convert.ts} +176 -141
  501. package/src/importer/docx/{helpers.js → helpers.ts} +1 -1
  502. package/src/importer/docx/index.ts +124 -0
  503. package/src/importer/docx/{omml2mathml.js → omml2mathml.ts} +154 -176
  504. package/src/importer/docx/{parse.js → parse.ts} +103 -81
  505. package/src/importer/native/extract_template.ts +83 -0
  506. package/src/importer/native/file.ts +282 -0
  507. package/src/importer/native/get_images.ts +82 -0
  508. package/src/importer/native/importer.ts +244 -0
  509. package/src/importer/native/index.ts +6 -0
  510. package/src/importer/native/{update.js → update.ts} +13 -5
  511. package/src/importer/native/update_template.ts +32 -0
  512. package/src/importer/odt/{citations.js → citations.ts} +17 -29
  513. package/src/importer/odt/{convert.js → convert.ts} +261 -237
  514. package/src/importer/odt/index.ts +202 -0
  515. package/src/importer/pandoc/{convert.js → convert.ts} +116 -94
  516. package/src/importer/pandoc/{helpers.js → helpers.ts} +24 -12
  517. package/src/importer/pandoc/index.ts +171 -0
  518. package/src/importer/registry.ts +69 -0
  519. package/src/importer/{zip_analyzer.js → zip_analyzer.ts} +44 -18
  520. package/src/mathlive/{opf_includes.js → opf_includes.ts} +1 -1
  521. package/src/modules.d.ts +40 -0
  522. package/src/schema/common/{annotate.js → annotate.ts} +10 -8
  523. package/src/schema/common/{base.js → base.ts} +12 -10
  524. package/src/schema/common/{citation.js → citation.ts} +17 -8
  525. package/src/schema/common/{equation.js → equation.ts} +6 -4
  526. package/src/schema/common/{figure.js → figure.ts} +43 -23
  527. package/src/schema/common/{heading.js → heading.ts} +7 -5
  528. package/src/schema/common/{list.js → list.ts} +15 -13
  529. package/src/schema/common/{reference.js → reference.ts} +14 -12
  530. package/src/schema/common/{table.js → table.ts} +16 -14
  531. package/src/schema/common/{track.js → track.ts} +42 -31
  532. package/src/schema/{convert.js → convert.ts} +6 -2
  533. package/src/schema/document/{content.js → content.ts} +22 -20
  534. package/src/schema/document/{structure.js → structure.ts} +15 -9
  535. package/src/schema/{export.js → export.ts} +4 -2
  536. package/src/schema/{footnotes.js → footnotes.ts} +11 -8
  537. package/src/schema/{footnotes_convert.js → footnotes_convert.ts} +11 -8
  538. package/src/schema/{i18n.js → i18n.ts} +7 -1
  539. package/src/schema/{mini_json.js → mini_json.ts} +11 -12
  540. package/src/schema/{text.js → text.ts} +6 -2
  541. package/src/types.ts +185 -7
  542. package/src/exporter/docx/images.js +0 -101
  543. package/src/exporter/jats/bibliography.js +0 -183
  544. package/src/exporter/jats/index.js +0 -92
  545. package/src/exporter/odt/images.js +0 -115
  546. package/src/importer/citations.js +0 -129
  547. package/src/importer/native/get_images.js +0 -76
  548. /package/src/schema/common/{index.js → index.ts} +0 -0
  549. /package/src/schema/document/{index.js → index.ts} +0 -0
  550. /package/src/schema/{index.js → index.ts} +0 -0
@@ -0,0 +1,171 @@
1
+ import {escapeText} from "fwtoolkit"
2
+
3
+ import {PandocConvert} from "./convert.js"
4
+ import {NativeImporter} from "../native/importer.js"
5
+
6
+ import type {
7
+ BibDBEntry,
8
+ E2EEOptions,
9
+ FidusNode,
10
+ NativeImporterBackend,
11
+ User
12
+ } from "../../types.js"
13
+
14
+ interface PandocImporterOptions {
15
+ getTemplate: (importId: string | number | null) => Promise<Record<string, unknown>>
16
+ importBibliography: (bibString: string) => Promise<Record<string, BibDBEntry>>
17
+ nativeBackend: NativeImporterBackend
18
+ e2eeOptions?: E2EEOptions | null
19
+ }
20
+
21
+ export class PandocImporter {
22
+ file: Blob
23
+ user: User
24
+ path: string
25
+ importId: string | number | null
26
+ additionalFiles: Record<string, any>
27
+ e2eeOptions: E2EEOptions | null
28
+ getTemplate: (importId: string | number | null) => Promise<Record<string, unknown>>
29
+ importBibliography: (bibString: string) => Promise<Record<string, BibDBEntry>>
30
+ nativeBackend: NativeImporterBackend
31
+
32
+ template: Record<string, unknown> | null = null
33
+ output: {
34
+ ok: boolean
35
+ statusText: string
36
+ doc: Record<string, unknown> | null
37
+ docInfo: Record<string, unknown> | null
38
+ } = {
39
+ ok: false,
40
+ statusText: "",
41
+ doc: null,
42
+ docInfo: null
43
+ }
44
+ title = "Untitled"
45
+
46
+ constructor(
47
+ file: Blob,
48
+ user: User,
49
+ path: string,
50
+ importId: string | number | null,
51
+ options: PandocImporterOptions
52
+ ) {
53
+ this.file = file
54
+ this.user = user
55
+ this.path = path
56
+ this.importId = importId
57
+ this.additionalFiles = (options as PandocImporterOptions & {files?: Record<string, any>}).files || {}
58
+ this.e2eeOptions = options.e2eeOptions ?? null
59
+ this.getTemplate = options.getTemplate
60
+ this.importBibliography = options.importBibliography
61
+ this.nativeBackend = options.nativeBackend
62
+ }
63
+
64
+ async init(): Promise<typeof this.output> {
65
+ await this.getTemplate(this.importId)
66
+ .then(template => {
67
+ this.template = template
68
+ })
69
+ .catch(error => {
70
+ this.output.statusText = error.message
71
+ })
72
+ if (this.output.statusText) {
73
+ return this.output
74
+ }
75
+ const text = await this.file.text()
76
+ return this.handlePandocJson(
77
+ text,
78
+ this.additionalFiles?.images,
79
+ this.additionalFiles?.bibliography
80
+ )
81
+ }
82
+
83
+ handlePandocJson(
84
+ jsonString: string,
85
+ images: Record<string, Blob> = {},
86
+ bibString = ""
87
+ ): Promise<typeof this.output> {
88
+ let pandocJson
89
+ try {
90
+ pandocJson = JSON.parse(jsonString)
91
+ } catch (error: any) {
92
+ this.output.statusText = error.message
93
+ return Promise.resolve(this.output)
94
+ }
95
+
96
+ return this.importBibliography(bibString)
97
+ .then(bibliography => {
98
+ const converter = new PandocConvert(
99
+ pandocJson,
100
+ this.importId as string,
101
+ this.template as {content: any},
102
+ bibliography
103
+ )
104
+
105
+ let convertedDoc
106
+ try {
107
+ convertedDoc = converter.init()
108
+ } catch (error: any) {
109
+ this.output.statusText = error.message
110
+ console.error(error)
111
+ return this.output
112
+ }
113
+ const firstText =
114
+ (convertedDoc.content as FidusNode).content?.[0].content?.[0]
115
+ .text
116
+ if (["", "Untitled"].includes(firstText || "")) {
117
+ ;(
118
+ (convertedDoc.content as FidusNode).content![0]
119
+ .content![0] as any
120
+ ).text = this.title
121
+ } else {
122
+ this.title = firstText || this.title
123
+ }
124
+
125
+ const nativeImporter = new NativeImporter(
126
+ {
127
+ content: convertedDoc.content,
128
+ title: this.title,
129
+ comments: {},
130
+ settings: convertedDoc.settings
131
+ },
132
+ bibliography,
133
+ converter.images as any,
134
+ Object.entries(images).map(([filename, blob]) => ({
135
+ filename,
136
+ content: blob
137
+ })),
138
+ this.user,
139
+ this.nativeBackend,
140
+ {
141
+ importId: null,
142
+ requestedPath: this.path + this.title,
143
+ template: null,
144
+ e2eeOptions: this.e2eeOptions
145
+ }
146
+ )
147
+
148
+ return nativeImporter
149
+ .init()
150
+ .then(({doc, docInfo}) => {
151
+ this.output.ok = true
152
+ this.output.doc = doc
153
+ this.output.docInfo = docInfo
154
+ this.output.statusText = `${escapeText(
155
+ doc.title as string
156
+ )} successfully imported.`
157
+ return this.output
158
+ })
159
+ .catch(error => {
160
+ this.output.statusText = error.message
161
+ console.error(error)
162
+ return this.output
163
+ })
164
+ })
165
+ .catch(error => {
166
+ this.output.statusText = error.message
167
+ console.error(error)
168
+ return this.output
169
+ })
170
+ }
171
+ }
@@ -0,0 +1,69 @@
1
+ import {ZipAnalyzer} from "./zip_analyzer.js"
2
+
3
+ interface ImporterEntry {
4
+ importer: any
5
+ description: string
6
+ }
7
+
8
+ export class ImporterRegistry {
9
+ importers: Map<string, ImporterEntry>
10
+
11
+ constructor() {
12
+ this.importers = new Map()
13
+ }
14
+
15
+ register(
16
+ fileTypes: Array<[string, Array<string>]>,
17
+ importer: any
18
+ ): void {
19
+ fileTypes.forEach(([description, types]) => {
20
+ types.forEach(extension =>
21
+ this.importers.set(extension, {importer, description})
22
+ )
23
+ })
24
+ }
25
+
26
+ getZipImporter(zip: any): {
27
+ importer: any
28
+ getContents: () => ReturnType<ZipAnalyzer["getContents"]>
29
+ } | null {
30
+ const analyzer = new ZipAnalyzer(zip, this.getAllFormats())
31
+ const analysis = analyzer.analyze()
32
+
33
+ if (analysis.hasConvertible && analysis.format) {
34
+ return {
35
+ importer: this.getImporter(analysis.format)["importer"],
36
+ getContents: () => analyzer.getContents()
37
+ }
38
+ }
39
+
40
+ return null
41
+ }
42
+
43
+ getImporter(format: string): ImporterEntry {
44
+ return this.importers.get(format) as ImporterEntry
45
+ }
46
+
47
+ getAllFormats(): string[] {
48
+ return Array.from(this.importers.keys())
49
+ }
50
+
51
+ getAllDescriptions(): Record<string, string[]> {
52
+ return Array.from(this.importers).reduce(
53
+ (acc, [extension, {description}]) => {
54
+ ;(acc[description] = acc[description] || []).push(extension)
55
+ return acc
56
+ },
57
+ {} as Record<string, string[]>
58
+ )
59
+ }
60
+ }
61
+
62
+ export const importerRegistry = new ImporterRegistry()
63
+
64
+ export function registerImporter(
65
+ fileTypes: Array<[string, Array<string>]>,
66
+ importer: any
67
+ ): void {
68
+ importerRegistry.register(fileTypes, importer)
69
+ }
@@ -1,25 +1,49 @@
1
+ import type JSZip from "jszip"
2
+
3
+ interface ZipAnalysis {
4
+ hasConvertible: boolean
5
+ format: string | null
6
+ convertibleFile: {
7
+ path: string
8
+ entry: JSZip.JSZipObject
9
+ fileName: string
10
+ format: string
11
+ } | null
12
+ imageFiles: Array<{path: string; entry: JSZip.JSZipObject}>
13
+ bibFile: JSZip.JSZipObject | null
14
+ }
15
+
16
+ interface ZipContents {
17
+ images: Record<string, Blob>
18
+ bibliography: string | null
19
+ mainContent: File | null
20
+ }
21
+
1
22
  export class ZipAnalyzer {
2
- constructor(zip, formats = []) {
23
+ zip: JSZip
24
+ formats: string[]
25
+ analysis: ZipAnalysis | null
26
+
27
+ constructor(zip: JSZip, formats: string[] = []) {
3
28
  this.zip = zip
4
29
  this.formats = formats
5
-
6
30
  this.analysis = null
7
31
  }
8
32
 
9
- analyze() {
33
+ analyze(): ZipAnalysis {
10
34
  if (this.analysis) {
11
35
  return this.analysis
12
36
  }
13
37
 
14
- let convertibleFile = null
15
- const imageFiles = []
16
- let bibFile = null
38
+ let convertibleFile: ZipAnalysis["convertibleFile"] = null
39
+ const imageFiles: ZipAnalysis["imageFiles"] = []
40
+ let bibFile: JSZip.JSZipObject | null = null
17
41
 
18
42
  // Analyze all files in the ZIP
19
43
  this.zip.forEach((relativePath, zipEntry) => {
20
44
  if (!zipEntry.dir) {
21
- const fileName = relativePath.split("/").pop()
22
- const extension = fileName.split(".").pop().toLowerCase()
45
+ const fileName = relativePath.split("/").pop() || ""
46
+ const extension = fileName.split(".").pop()?.toLowerCase() || ""
23
47
 
24
48
  if (extension === "bib") {
25
49
  bibFile = zipEntry
@@ -52,7 +76,9 @@ export class ZipAnalyzer {
52
76
 
53
77
  this.analysis = {
54
78
  hasConvertible: Boolean(convertibleFile),
55
- format: convertibleFile ? convertibleFile.format : null,
79
+ format: convertibleFile
80
+ ? (convertibleFile as Exclude<ZipAnalysis["convertibleFile"], null>).format
81
+ : null,
56
82
  convertibleFile,
57
83
  imageFiles,
58
84
  bibFile
@@ -61,29 +87,29 @@ export class ZipAnalyzer {
61
87
  return this.analysis
62
88
  }
63
89
 
64
- async getContents() {
90
+ async getContents(): Promise<ZipContents> {
65
91
  if (!this.analysis) {
66
- await this.analyze()
92
+ this.analyze()
67
93
  }
68
94
 
69
- const contents = {
95
+ const contents: ZipContents = {
70
96
  images: {},
71
97
  bibliography: null,
72
98
  mainContent: null
73
99
  }
74
100
 
75
101
  // Load main content file
76
- if (this.analysis.hasConvertible) {
102
+ if (this.analysis!.hasConvertible && this.analysis!.convertibleFile) {
77
103
  const mainBlob =
78
- await this.analysis.convertibleFile.entry.async("blob")
104
+ await this.analysis!.convertibleFile.entry.async("blob")
79
105
  contents.mainContent = new File(
80
106
  [mainBlob],
81
- this.analysis.convertibleFile.fileName
107
+ this.analysis!.convertibleFile.fileName
82
108
  )
83
109
  }
84
110
 
85
111
  // Load images
86
- const imagePromises = this.analysis.imageFiles.map(
112
+ const imagePromises = this.analysis!.imageFiles.map(
87
113
  async ({path, entry}) => {
88
114
  const blob = await entry.async("blob")
89
115
  contents.images[path] = blob
@@ -93,8 +119,8 @@ export class ZipAnalyzer {
93
119
  await Promise.all(imagePromises)
94
120
 
95
121
  // Load bibliography if present
96
- if (this.analysis.bibFile) {
97
- contents.bibliography = await this.analysis.bibFile.async("text")
122
+ if (this.analysis!.bibFile) {
123
+ contents.bibliography = await this.analysis!.bibFile.async("text")
98
124
  }
99
125
 
100
126
  return contents
@@ -21,4 +21,4 @@ export const mathliveOpfIncludes = `
21
21
  <item id="mathlive-18" href="css/media/KaTeX_Main-Regular.woff2" media-type="font/woff2" />
22
22
  <item id="mathlive-19" href="css/media/KaTeX_Math-Italic.woff2" media-type="font/woff2" />
23
23
  <item id="mathlive-20" href="css/media/KaTeX_Typewriter-Regular.woff2" media-type="font/woff2" />
24
- `
24
+ `
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Ambient type declarations for dependencies that do not ship their own types.
3
+ */
4
+
5
+ declare module "downloadjs" {
6
+ /**
7
+ * Trigger a browser download of the given data.
8
+ * @param data - File content (Blob or string).
9
+ * @param filename - Suggested filename for the download.
10
+ * @param mimeType - MIME type of the data.
11
+ */
12
+ function download(
13
+ data: Blob | string,
14
+ filename?: string,
15
+ mimeType?: string
16
+ ): void
17
+ export default download
18
+ }
19
+
20
+ declare module "pretty" {
21
+ /**
22
+ * Pretty-print HTML/XML markup.
23
+ * @param input - Markup string to format.
24
+ * @param options - Formatting options.
25
+ */
26
+ function pretty(input: string, options?: {ocd?: boolean}): string
27
+ export default pretty
28
+ }
29
+
30
+ declare module "@vivliostyle/print" {
31
+ /**
32
+ * Render the given HTML with Vivliostyle for printing.
33
+ * @param html - HTML content to print.
34
+ * @param config - Optional print configuration.
35
+ */
36
+ export function printHTML(
37
+ html: string,
38
+ config?: Record<string, unknown>
39
+ ): Promise<unknown>
40
+ }
@@ -1,3 +1,5 @@
1
+ import type {MarkSpec} from "prosemirror-model"
2
+
1
3
  // Annotation tag is not used by the core Fidus Writer editor, but can be used by plugins that need to add annotation capability.
2
4
  export const annotation_tag = {
3
5
  attrs: {
@@ -17,9 +19,9 @@ export const annotation_tag = {
17
19
  parseDOM: [
18
20
  {
19
21
  tag: "span.annotation-tag[data-type]",
20
- getAttrs(dom) {
22
+ getAttrs(dom: HTMLElement) {
21
23
  return {
22
- type: dom.dataset.type,
24
+ type: dom.dataset.type || "",
23
25
  key: dom.dataset.key ? dom.dataset.key : "",
24
26
  value: dom.dataset.value ? dom.dataset.value : ""
25
27
  }
@@ -27,7 +29,7 @@ export const annotation_tag = {
27
29
  }
28
30
  ],
29
31
  toDOM(node) {
30
- const attrs = {
32
+ const attrs: Record<string, unknown> = {
31
33
  class: "annotation-tag",
32
34
  "data-type": node.attrs.type
33
35
  }
@@ -39,7 +41,7 @@ export const annotation_tag = {
39
41
  }
40
42
  return ["span", attrs]
41
43
  }
42
- }
44
+ } satisfies MarkSpec
43
45
 
44
46
  export const comment = {
45
47
  attrs: {
@@ -53,9 +55,9 @@ export const comment = {
53
55
  parseDOM: [
54
56
  {
55
57
  tag: "span.comment[data-id]",
56
- getAttrs(dom) {
58
+ getAttrs(dom: HTMLElement) {
57
59
  return {
58
- id: Number.parseInt(dom.dataset.id)
60
+ id: Number.parseInt(dom.dataset.id || "0")
59
61
  }
60
62
  }
61
63
  }
@@ -69,8 +71,8 @@ export const comment = {
69
71
  }
70
72
  ]
71
73
  }
72
- }
74
+ } satisfies MarkSpec
73
75
 
74
- export function randomCommentId() {
76
+ export function randomCommentId(): string {
75
77
  return String(Math.floor(Math.random() * 0xffffffff))
76
78
  }
@@ -1,3 +1,5 @@
1
+ import type {MarkSpec, NodeSpec} from "prosemirror-model"
2
+
1
3
  import {parseTracks} from "./track.js"
2
4
 
3
5
  // :: NodeSpec A plain paragraph textblock. Represented in the DOM
@@ -13,7 +15,7 @@ export const paragraph = {
13
15
  parseDOM: [
14
16
  {
15
17
  tag: "p",
16
- getAttrs(dom) {
18
+ getAttrs(dom: HTMLElement) {
17
19
  return {
18
20
  track: parseTracks(dom.dataset.track)
19
21
  }
@@ -27,7 +29,7 @@ export const paragraph = {
27
29
  : {}
28
30
  return ["p", attrs, 0]
29
31
  }
30
- }
32
+ } satisfies NodeSpec
31
33
 
32
34
  // :: NodeSpec A blockquote (`<blockquote>`) wrapping one or more blocks.
33
35
  export const blockquote = {
@@ -43,7 +45,7 @@ export const blockquote = {
43
45
  parseDOM: [
44
46
  {
45
47
  tag: "blockquote",
46
- getAttrs(dom) {
48
+ getAttrs(dom: HTMLElement) {
47
49
  return {
48
50
  track: parseTracks(dom.dataset.track)
49
51
  }
@@ -57,7 +59,7 @@ export const blockquote = {
57
59
  : {}
58
60
  return ["blockquote", attrs, 0]
59
61
  }
60
- }
62
+ } satisfies NodeSpec
61
63
 
62
64
  // :: NodeSpec A horizontal rule (`<hr>`).
63
65
  export const horizontal_rule = {
@@ -70,7 +72,7 @@ export const horizontal_rule = {
70
72
  parseDOM: [
71
73
  {
72
74
  tag: "hr",
73
- getAttrs(dom) {
75
+ getAttrs(dom: HTMLElement) {
74
76
  return {
75
77
  track: parseTracks(dom.dataset.track)
76
78
  }
@@ -84,14 +86,14 @@ export const horizontal_rule = {
84
86
  : {}
85
87
  return ["hr", attrs]
86
88
  }
87
- }
89
+ } satisfies NodeSpec
88
90
 
89
91
  export const underline = {
90
92
  parseDOM: [{tag: "span.underline"}],
91
93
  toDOM() {
92
94
  return ["span", {class: "underline"}, 0]
93
95
  }
94
- }
96
+ } satisfies MarkSpec
95
97
 
96
98
  export const sup = {
97
99
  parseDOM: [{tag: "sup"}],
@@ -99,7 +101,7 @@ export const sup = {
99
101
  return ["sup", 0]
100
102
  },
101
103
  excludes: "sub"
102
- }
104
+ } satisfies MarkSpec
103
105
 
104
106
  export const sub = {
105
107
  parseDOM: [{tag: "sub"}],
@@ -107,7 +109,7 @@ export const sub = {
107
109
  return ["sub", 0]
108
110
  },
109
111
  excludes: "sup"
110
- }
112
+ } satisfies MarkSpec
111
113
 
112
114
  export const code = {
113
115
  parseDOM: [{tag: "code"}],
@@ -115,4 +117,4 @@ export const code = {
115
117
  return ["code", 0]
116
118
  },
117
119
  excludes: "strong em underline link sup sub"
118
- }
120
+ } satisfies MarkSpec
@@ -1,8 +1,16 @@
1
- function parseReferences(str) {
1
+ import type {NodeSpec} from "prosemirror-model"
2
+
3
+ export interface CitationReference {
4
+ id: number
5
+ locator?: string
6
+ prefix?: string
7
+ }
8
+
9
+ function parseReferences(str: string | undefined): CitationReference[] {
2
10
  if (!str) {
3
11
  return []
4
12
  }
5
- let references
13
+ let references: unknown
6
14
  try {
7
15
  references = JSON.parse(str)
8
16
  } catch (_error) {
@@ -13,15 +21,16 @@ function parseReferences(str) {
13
21
  }
14
22
  return references
15
23
  .filter(
16
- ref => ref.hasOwnProperty("id") // ensure there is an id.
24
+ (ref): ref is Record<string, unknown> =>
25
+ typeof ref === "object" && ref !== null && Object.prototype.hasOwnProperty.call(ref, "id")
17
26
  )
18
27
  .map(ref => {
19
- const mRef = {id: ref.id}
28
+ const mRef: CitationReference = {id: Number(ref.id)}
20
29
  if (ref.locator) {
21
- mRef.locator = ref.locator
30
+ mRef.locator = String(ref.locator)
22
31
  }
23
32
  if (ref.prefix) {
24
- mRef.prefix = ref.prefix
33
+ mRef.prefix = String(ref.prefix)
25
34
  }
26
35
  return mRef
27
36
  })
@@ -41,7 +50,7 @@ export const citation = {
41
50
  parseDOM: [
42
51
  {
43
52
  tag: "span.citation",
44
- getAttrs(dom) {
53
+ getAttrs(dom: HTMLElement) {
45
54
  return {
46
55
  format: dom.dataset.format || "",
47
56
  references: parseReferences(dom.dataset.references)
@@ -59,4 +68,4 @@ export const citation = {
59
68
  }
60
69
  ]
61
70
  }
62
- }
71
+ } satisfies NodeSpec
@@ -1,3 +1,5 @@
1
+ import type {NodeSpec} from "prosemirror-model"
2
+
1
3
  export const equation = {
2
4
  inline: true,
3
5
  group: "inline",
@@ -9,9 +11,9 @@ export const equation = {
9
11
  parseDOM: [
10
12
  {
11
13
  tag: "span.equation",
12
- getAttrs(dom) {
14
+ getAttrs(dom: HTMLElement) {
13
15
  return {
14
- equation: dom.dataset.equation
16
+ equation: dom.dataset.equation || ""
15
17
  }
16
18
  }
17
19
  }
@@ -23,9 +25,9 @@ export const equation = {
23
25
  import("mathlive").then(MathLive => {
24
26
  dom.innerHTML = MathLive.convertLatexToMarkup(node.attrs.equation, {
25
27
  mathstyle: "textstyle"
26
- })
28
+ } as unknown as Record<string, unknown>)
27
29
  })
28
30
  dom.setAttribute("contenteditable", "false")
29
31
  return dom
30
32
  }
31
- }
33
+ } satisfies NodeSpec