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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (550) hide show
  1. package/dist/bibliography/common.d.ts +9 -91
  2. package/dist/bibliography/common.d.ts.map +1 -1
  3. package/dist/bibliography/common.js +3 -2
  4. package/dist/bibliography/common.js.map +1 -1
  5. package/dist/bibliography/csl_bib.d.ts +1 -1
  6. package/dist/bibliography/csl_bib.d.ts.map +1 -1
  7. package/dist/bibliography/csl_bib.js +7 -7
  8. package/dist/bibliography/csl_bib.js.map +1 -1
  9. package/dist/citations/citeproc_sys.d.ts +9 -10
  10. package/dist/citations/citeproc_sys.d.ts.map +1 -1
  11. package/dist/citations/citeproc_sys.js +6 -1
  12. package/dist/citations/citeproc_sys.js.map +1 -1
  13. package/dist/citations/format.d.ts +33 -16
  14. package/dist/citations/format.d.ts.map +1 -1
  15. package/dist/citations/format.js +29 -4
  16. package/dist/citations/format.js.map +1 -1
  17. package/dist/editor/e2ee/encryptor.d.ts +35 -35
  18. package/dist/editor/e2ee/encryptor.d.ts.map +1 -1
  19. package/dist/editor/e2ee/encryptor.js +31 -31
  20. package/dist/editor/e2ee/encryptor.js.map +1 -1
  21. package/dist/exporter/docx/citations.d.ts +27 -17
  22. package/dist/exporter/docx/citations.d.ts.map +1 -1
  23. package/dist/exporter/docx/citations.js +24 -7
  24. package/dist/exporter/docx/citations.js.map +1 -1
  25. package/dist/exporter/docx/comments.d.ts +15 -11
  26. package/dist/exporter/docx/comments.d.ts.map +1 -1
  27. package/dist/exporter/docx/comments.js +47 -14
  28. package/dist/exporter/docx/comments.js.map +1 -1
  29. package/dist/exporter/docx/footnotes.d.ts +36 -31
  30. package/dist/exporter/docx/footnotes.d.ts.map +1 -1
  31. package/dist/exporter/docx/footnotes.js +46 -12
  32. package/dist/exporter/docx/footnotes.js.map +1 -1
  33. package/dist/exporter/docx/images.d.ts +23 -12
  34. package/dist/exporter/docx/images.d.ts.map +1 -1
  35. package/dist/exporter/docx/images.js +35 -20
  36. package/dist/exporter/docx/images.js.map +1 -1
  37. package/dist/exporter/docx/index.d.ts +11 -17
  38. package/dist/exporter/docx/index.d.ts.map +1 -1
  39. package/dist/exporter/docx/index.js +15 -7
  40. package/dist/exporter/docx/index.js.map +1 -1
  41. package/dist/exporter/docx/lists.d.ts +27 -22
  42. package/dist/exporter/docx/lists.d.ts.map +1 -1
  43. package/dist/exporter/docx/lists.js +77 -30
  44. package/dist/exporter/docx/lists.js.map +1 -1
  45. package/dist/exporter/docx/math.d.ts +9 -9
  46. package/dist/exporter/docx/math.d.ts.map +1 -1
  47. package/dist/exporter/docx/math.js +22 -5
  48. package/dist/exporter/docx/math.js.map +1 -1
  49. package/dist/exporter/docx/metadata.d.ts +12 -9
  50. package/dist/exporter/docx/metadata.d.ts.map +1 -1
  51. package/dist/exporter/docx/metadata.js +59 -26
  52. package/dist/exporter/docx/metadata.js.map +1 -1
  53. package/dist/exporter/docx/rels.d.ts +14 -12
  54. package/dist/exporter/docx/rels.d.ts.map +1 -1
  55. package/dist/exporter/docx/rels.js +37 -22
  56. package/dist/exporter/docx/rels.js.map +1 -1
  57. package/dist/exporter/docx/render.d.ts +17 -15
  58. package/dist/exporter/docx/render.d.ts.map +1 -1
  59. package/dist/exporter/docx/render.js +37 -31
  60. package/dist/exporter/docx/render.js.map +1 -1
  61. package/dist/exporter/docx/richtext.d.ts +8 -8
  62. package/dist/exporter/docx/richtext.d.ts.map +1 -1
  63. package/dist/exporter/docx/richtext.js +61 -43
  64. package/dist/exporter/docx/richtext.js.map +1 -1
  65. package/dist/exporter/docx/tables.d.ts +11 -9
  66. package/dist/exporter/docx/tables.d.ts.map +1 -1
  67. package/dist/exporter/docx/tables.js +16 -10
  68. package/dist/exporter/docx/tables.js.map +1 -1
  69. package/dist/exporter/docx/tools.d.ts +3 -2
  70. package/dist/exporter/docx/tools.d.ts.map +1 -1
  71. package/dist/exporter/docx/tools.js +3 -3
  72. package/dist/exporter/docx/tools.js.map +1 -1
  73. package/dist/exporter/epub/index.d.ts +11 -3
  74. package/dist/exporter/epub/index.d.ts.map +1 -1
  75. package/dist/exporter/epub/index.js +10 -3
  76. package/dist/exporter/epub/index.js.map +1 -1
  77. package/dist/exporter/epub/templates.d.ts +62 -31
  78. package/dist/exporter/epub/templates.d.ts.map +1 -1
  79. package/dist/exporter/epub/templates.js +1 -1
  80. package/dist/exporter/epub/templates.js.map +1 -1
  81. package/dist/exporter/epub/tools.d.ts +12 -4
  82. package/dist/exporter/epub/tools.d.ts.map +1 -1
  83. package/dist/exporter/epub/tools.js +14 -13
  84. package/dist/exporter/epub/tools.js.map +1 -1
  85. package/dist/exporter/html/citations.d.ts +17 -15
  86. package/dist/exporter/html/citations.d.ts.map +1 -1
  87. package/dist/exporter/html/citations.js +37 -18
  88. package/dist/exporter/html/citations.js.map +1 -1
  89. package/dist/exporter/html/convert.d.ts +20 -70
  90. package/dist/exporter/html/convert.d.ts.map +1 -1
  91. package/dist/exporter/html/convert.js +74 -42
  92. package/dist/exporter/html/convert.js.map +1 -1
  93. package/dist/exporter/html/index.d.ts +55 -52
  94. package/dist/exporter/html/index.d.ts.map +1 -1
  95. package/dist/exporter/html/index.js +23 -3
  96. package/dist/exporter/html/index.js.map +1 -1
  97. package/dist/exporter/html/templates.d.ts +23 -9
  98. package/dist/exporter/html/templates.d.ts.map +1 -1
  99. package/dist/exporter/html/templates.js +1 -1
  100. package/dist/exporter/html/templates.js.map +1 -1
  101. package/dist/exporter/html/tools.d.ts +1 -1
  102. package/dist/exporter/html/tools.d.ts.map +1 -1
  103. package/dist/exporter/html/tools.js +2 -2
  104. package/dist/exporter/html/tools.js.map +1 -1
  105. package/dist/exporter/jats/bibliography.d.ts +2 -1
  106. package/dist/exporter/jats/bibliography.d.ts.map +1 -1
  107. package/dist/exporter/jats/bibliography.js +57 -52
  108. package/dist/exporter/jats/bibliography.js.map +1 -1
  109. package/dist/exporter/jats/citations.d.ts +13 -11
  110. package/dist/exporter/jats/citations.d.ts.map +1 -1
  111. package/dist/exporter/jats/citations.js +28 -6
  112. package/dist/exporter/jats/citations.js.map +1 -1
  113. package/dist/exporter/jats/convert.d.ts +24 -28
  114. package/dist/exporter/jats/convert.d.ts.map +1 -1
  115. package/dist/exporter/jats/convert.js +53 -36
  116. package/dist/exporter/jats/convert.js.map +1 -1
  117. package/dist/exporter/jats/index.d.ts +21 -15
  118. package/dist/exporter/jats/index.d.ts.map +1 -1
  119. package/dist/exporter/jats/index.js +21 -5
  120. package/dist/exporter/jats/index.js.map +1 -1
  121. package/dist/exporter/jats/templates.d.ts +17 -15
  122. package/dist/exporter/jats/templates.d.ts.map +1 -1
  123. package/dist/exporter/jats/templates.js.map +1 -1
  124. package/dist/exporter/jats/text.d.ts +3 -2
  125. package/dist/exporter/jats/text.d.ts.map +1 -1
  126. package/dist/exporter/jats/text.js +4 -4
  127. package/dist/exporter/jats/text.js.map +1 -1
  128. package/dist/exporter/latex/convert.d.ts +12 -15
  129. package/dist/exporter/latex/convert.d.ts.map +1 -1
  130. package/dist/exporter/latex/convert.js +70 -54
  131. package/dist/exporter/latex/convert.js.map +1 -1
  132. package/dist/exporter/latex/escape_latex.d.ts +1 -1
  133. package/dist/exporter/latex/escape_latex.d.ts.map +1 -1
  134. package/dist/exporter/latex/escape_latex.js +1 -1
  135. package/dist/exporter/latex/escape_latex.js.map +1 -1
  136. package/dist/exporter/latex/index.d.ts +20 -19
  137. package/dist/exporter/latex/index.d.ts.map +1 -1
  138. package/dist/exporter/latex/index.js +15 -5
  139. package/dist/exporter/latex/index.js.map +1 -1
  140. package/dist/exporter/latex/readme.d.ts +1 -1
  141. package/dist/exporter/latex/readme.d.ts.map +1 -1
  142. package/dist/exporter/latex/readme.js +2 -2
  143. package/dist/exporter/latex/readme.js.map +1 -1
  144. package/dist/exporter/native/copy.d.ts +30 -0
  145. package/dist/exporter/native/copy.d.ts.map +1 -0
  146. package/dist/exporter/native/copy.js +151 -0
  147. package/dist/exporter/native/copy.js.map +1 -0
  148. package/dist/exporter/native/file.d.ts +12 -0
  149. package/dist/exporter/native/file.d.ts.map +1 -0
  150. package/dist/exporter/native/file.js +38 -0
  151. package/dist/exporter/native/file.js.map +1 -0
  152. package/dist/exporter/native/index.d.ts +5 -0
  153. package/dist/exporter/native/index.d.ts.map +1 -0
  154. package/dist/exporter/native/index.js +5 -0
  155. package/dist/exporter/native/index.js.map +1 -0
  156. package/dist/exporter/native/revision.d.ts +18 -0
  157. package/dist/exporter/native/revision.d.ts.map +1 -0
  158. package/dist/exporter/native/revision.js +39 -0
  159. package/dist/exporter/native/revision.js.map +1 -0
  160. package/dist/exporter/native/shrink.d.ts +29 -14
  161. package/dist/exporter/native/shrink.d.ts.map +1 -1
  162. package/dist/exporter/native/shrink.js +27 -18
  163. package/dist/exporter/native/shrink.js.map +1 -1
  164. package/dist/exporter/native/zip.d.ts +25 -0
  165. package/dist/exporter/native/zip.d.ts.map +1 -0
  166. package/dist/exporter/native/zip.js +56 -0
  167. package/dist/exporter/native/zip.js.map +1 -0
  168. package/dist/exporter/odt/citations.d.ts +18 -15
  169. package/dist/exporter/odt/citations.d.ts.map +1 -1
  170. package/dist/exporter/odt/citations.js +21 -4
  171. package/dist/exporter/odt/citations.js.map +1 -1
  172. package/dist/exporter/odt/footnotes.d.ts +25 -19
  173. package/dist/exporter/odt/footnotes.d.ts.map +1 -1
  174. package/dist/exporter/odt/footnotes.js +23 -6
  175. package/dist/exporter/odt/footnotes.js.map +1 -1
  176. package/dist/exporter/odt/images.d.ts +23 -11
  177. package/dist/exporter/odt/images.d.ts.map +1 -1
  178. package/dist/exporter/odt/images.js +34 -26
  179. package/dist/exporter/odt/images.js.map +1 -1
  180. package/dist/exporter/odt/index.d.ts +12 -18
  181. package/dist/exporter/odt/index.d.ts.map +1 -1
  182. package/dist/exporter/odt/index.js +16 -7
  183. package/dist/exporter/odt/index.js.map +1 -1
  184. package/dist/exporter/odt/math.d.ts +10 -8
  185. package/dist/exporter/odt/math.d.ts.map +1 -1
  186. package/dist/exporter/odt/math.js +27 -4
  187. package/dist/exporter/odt/math.js.map +1 -1
  188. package/dist/exporter/odt/metadata.d.ts +13 -9
  189. package/dist/exporter/odt/metadata.d.ts.map +1 -1
  190. package/dist/exporter/odt/metadata.js +36 -15
  191. package/dist/exporter/odt/metadata.js.map +1 -1
  192. package/dist/exporter/odt/render.d.ts +17 -15
  193. package/dist/exporter/odt/render.d.ts.map +1 -1
  194. package/dist/exporter/odt/render.js +25 -18
  195. package/dist/exporter/odt/render.js.map +1 -1
  196. package/dist/exporter/odt/richtext.d.ts +9 -9
  197. package/dist/exporter/odt/richtext.d.ts.map +1 -1
  198. package/dist/exporter/odt/richtext.js +55 -40
  199. package/dist/exporter/odt/richtext.js.map +1 -1
  200. package/dist/exporter/odt/styles.d.ts +29 -21
  201. package/dist/exporter/odt/styles.d.ts.map +1 -1
  202. package/dist/exporter/odt/styles.js +44 -22
  203. package/dist/exporter/odt/styles.js.map +1 -1
  204. package/dist/exporter/odt/track.d.ts +14 -7
  205. package/dist/exporter/odt/track.d.ts.map +1 -1
  206. package/dist/exporter/odt/track.js +7 -0
  207. package/dist/exporter/odt/track.js.map +1 -1
  208. package/dist/exporter/pandoc/citations.d.ts +20 -14
  209. package/dist/exporter/pandoc/citations.d.ts.map +1 -1
  210. package/dist/exporter/pandoc/citations.js +18 -4
  211. package/dist/exporter/pandoc/citations.js.map +1 -1
  212. package/dist/exporter/pandoc/convert.d.ts +10 -29
  213. package/dist/exporter/pandoc/convert.d.ts.map +1 -1
  214. package/dist/exporter/pandoc/convert.js +45 -40
  215. package/dist/exporter/pandoc/convert.js.map +1 -1
  216. package/dist/exporter/pandoc/index.d.ts +20 -33
  217. package/dist/exporter/pandoc/index.d.ts.map +1 -1
  218. package/dist/exporter/pandoc/index.js +20 -8
  219. package/dist/exporter/pandoc/index.js.map +1 -1
  220. package/dist/exporter/pandoc/readme.d.ts +1 -1
  221. package/dist/exporter/pandoc/readme.d.ts.map +1 -1
  222. package/dist/exporter/pandoc/readme.js +0 -1
  223. package/dist/exporter/pandoc/readme.js.map +1 -1
  224. package/dist/exporter/pandoc/tools.d.ts +21 -5
  225. package/dist/exporter/pandoc/tools.d.ts.map +1 -1
  226. package/dist/exporter/pandoc/tools.js +2 -2
  227. package/dist/exporter/pandoc/tools.js.map +1 -1
  228. package/dist/exporter/print/index.d.ts +18 -7
  229. package/dist/exporter/print/index.d.ts.map +1 -1
  230. package/dist/exporter/print/index.js +12 -10
  231. package/dist/exporter/print/index.js.map +1 -1
  232. package/dist/exporter/tools/doc_content.d.ts +5 -6
  233. package/dist/exporter/tools/doc_content.d.ts.map +1 -1
  234. package/dist/exporter/tools/doc_content.js +17 -16
  235. package/dist/exporter/tools/doc_content.js.map +1 -1
  236. package/dist/exporter/tools/svg.d.ts +7 -1
  237. package/dist/exporter/tools/svg.d.ts.map +1 -1
  238. package/dist/exporter/tools/svg.js.map +1 -1
  239. package/dist/exporter/tools/xml.d.ts +39 -38
  240. package/dist/exporter/tools/xml.d.ts.map +1 -1
  241. package/dist/exporter/tools/xml.js +82 -55
  242. package/dist/exporter/tools/xml.js.map +1 -1
  243. package/dist/exporter/tools/xml_zip.d.ts +15 -14
  244. package/dist/exporter/tools/xml_zip.d.ts.map +1 -1
  245. package/dist/exporter/tools/xml_zip.js +8 -2
  246. package/dist/exporter/tools/xml_zip.js.map +1 -1
  247. package/dist/exporter/tools/zip.d.ts +28 -14
  248. package/dist/exporter/tools/zip.d.ts.map +1 -1
  249. package/dist/exporter/tools/zip.js +13 -6
  250. package/dist/exporter/tools/zip.js.map +1 -1
  251. package/dist/exporter/tools/zotero_csl.d.ts +19 -6
  252. package/dist/exporter/tools/zotero_csl.d.ts.map +1 -1
  253. package/dist/exporter/tools/zotero_csl.js +9 -9
  254. package/dist/exporter/tools/zotero_csl.js.map +1 -1
  255. package/dist/importer/citations.d.ts +25 -22
  256. package/dist/importer/citations.d.ts.map +1 -1
  257. package/dist/importer/citations.js +1 -49
  258. package/dist/importer/citations.js.map +1 -1
  259. package/dist/importer/docx/citations.d.ts +8 -30
  260. package/dist/importer/docx/citations.d.ts.map +1 -1
  261. package/dist/importer/docx/citations.js +1 -26
  262. package/dist/importer/docx/citations.js.map +1 -1
  263. package/dist/importer/docx/convert.d.ts +38 -116
  264. package/dist/importer/docx/convert.d.ts.map +1 -1
  265. package/dist/importer/docx/convert.js +99 -82
  266. package/dist/importer/docx/convert.js.map +1 -1
  267. package/dist/importer/docx/helpers.d.ts +1 -1
  268. package/dist/importer/docx/helpers.d.ts.map +1 -1
  269. package/dist/importer/docx/helpers.js +1 -1
  270. package/dist/importer/docx/helpers.js.map +1 -1
  271. package/dist/importer/docx/index.d.ts +27 -0
  272. package/dist/importer/docx/index.d.ts.map +1 -0
  273. package/dist/importer/docx/index.js +77 -0
  274. package/dist/importer/docx/index.js.map +1 -0
  275. package/dist/importer/docx/omml2mathml.d.ts +2 -3
  276. package/dist/importer/docx/omml2mathml.d.ts.map +1 -1
  277. package/dist/importer/docx/omml2mathml.js +23 -116
  278. package/dist/importer/docx/omml2mathml.js.map +1 -1
  279. package/dist/importer/docx/parse.d.ts +22 -131
  280. package/dist/importer/docx/parse.d.ts.map +1 -1
  281. package/dist/importer/docx/parse.js +73 -55
  282. package/dist/importer/docx/parse.js.map +1 -1
  283. package/dist/importer/native/extract_template.d.ts +6 -0
  284. package/dist/importer/native/extract_template.d.ts.map +1 -0
  285. package/dist/importer/native/extract_template.js +80 -0
  286. package/dist/importer/native/extract_template.js.map +1 -0
  287. package/dist/importer/native/file.d.ts +37 -0
  288. package/dist/importer/native/file.d.ts.map +1 -0
  289. package/dist/importer/native/file.js +162 -0
  290. package/dist/importer/native/file.js.map +1 -0
  291. package/dist/importer/native/get_images.d.ts +18 -8
  292. package/dist/importer/native/get_images.d.ts.map +1 -1
  293. package/dist/importer/native/get_images.js +39 -45
  294. package/dist/importer/native/get_images.js.map +1 -1
  295. package/dist/importer/native/importer.d.ts +41 -0
  296. package/dist/importer/native/importer.d.ts.map +1 -0
  297. package/dist/importer/native/importer.js +170 -0
  298. package/dist/importer/native/importer.js.map +1 -0
  299. package/dist/importer/native/index.d.ts +7 -0
  300. package/dist/importer/native/index.d.ts.map +1 -0
  301. package/dist/importer/native/index.js +7 -0
  302. package/dist/importer/native/index.js.map +1 -0
  303. package/dist/importer/native/update.d.ts +5 -4
  304. package/dist/importer/native/update.d.ts.map +1 -1
  305. package/dist/importer/native/update.js +4 -3
  306. package/dist/importer/native/update.js.map +1 -1
  307. package/dist/importer/native/update_template.d.ts +12 -0
  308. package/dist/importer/native/update_template.d.ts.map +1 -0
  309. package/dist/importer/native/update_template.js +19 -0
  310. package/dist/importer/native/update_template.js.map +1 -0
  311. package/dist/importer/odt/citations.d.ts +7 -27
  312. package/dist/importer/odt/citations.d.ts.map +1 -1
  313. package/dist/importer/odt/citations.js +0 -22
  314. package/dist/importer/odt/citations.js.map +1 -1
  315. package/dist/importer/odt/convert.d.ts +53 -237
  316. package/dist/importer/odt/convert.d.ts.map +1 -1
  317. package/dist/importer/odt/convert.js +162 -138
  318. package/dist/importer/odt/convert.js.map +1 -1
  319. package/dist/importer/odt/index.d.ts +30 -0
  320. package/dist/importer/odt/index.d.ts.map +1 -0
  321. package/dist/importer/odt/index.js +124 -0
  322. package/dist/importer/odt/index.js.map +1 -0
  323. package/dist/importer/pandoc/convert.d.ts +25 -77
  324. package/dist/importer/pandoc/convert.d.ts.map +1 -1
  325. package/dist/importer/pandoc/convert.js +65 -52
  326. package/dist/importer/pandoc/convert.js.map +1 -1
  327. package/dist/importer/pandoc/helpers.d.ts +4 -3
  328. package/dist/importer/pandoc/helpers.d.ts.map +1 -1
  329. package/dist/importer/pandoc/helpers.js +24 -26
  330. package/dist/importer/pandoc/helpers.js.map +1 -1
  331. package/dist/importer/pandoc/index.d.ts +31 -0
  332. package/dist/importer/pandoc/index.d.ts.map +1 -0
  333. package/dist/importer/pandoc/index.js +114 -0
  334. package/dist/importer/pandoc/index.js.map +1 -0
  335. package/dist/importer/registry.d.ts +21 -0
  336. package/dist/importer/registry.d.ts.map +1 -0
  337. package/dist/importer/registry.js +41 -0
  338. package/dist/importer/registry.js.map +1 -0
  339. package/dist/importer/zip_analyzer.d.ts +27 -21
  340. package/dist/importer/zip_analyzer.d.ts.map +1 -1
  341. package/dist/importer/zip_analyzer.js +10 -5
  342. package/dist/importer/zip_analyzer.js.map +1 -1
  343. package/dist/mathlive/opf_includes.d.ts +1 -1
  344. package/dist/mathlive/opf_includes.d.ts.map +1 -1
  345. package/dist/mathlive/opf_includes.js.map +1 -1
  346. package/dist/schema/common/annotate.d.ts +37 -49
  347. package/dist/schema/common/annotate.d.ts.map +1 -1
  348. package/dist/schema/common/annotate.js +2 -2
  349. package/dist/schema/common/annotate.js.map +1 -1
  350. package/dist/schema/common/base.d.ts +63 -81
  351. package/dist/schema/common/base.d.ts.map +1 -1
  352. package/dist/schema/common/base.js.map +1 -1
  353. package/dist/schema/common/citation.d.ts +23 -22
  354. package/dist/schema/common/citation.d.ts.map +1 -1
  355. package/dist/schema/common/citation.js +4 -5
  356. package/dist/schema/common/citation.js.map +1 -1
  357. package/dist/schema/common/equation.d.ts +13 -14
  358. package/dist/schema/common/equation.d.ts.map +1 -1
  359. package/dist/schema/common/equation.js +1 -1
  360. package/dist/schema/common/equation.js.map +1 -1
  361. package/dist/schema/common/figure.d.ts +72 -93
  362. package/dist/schema/common/figure.d.ts.map +1 -1
  363. package/dist/schema/common/figure.js +11 -9
  364. package/dist/schema/common/figure.js.map +1 -1
  365. package/dist/schema/common/heading.d.ts +8 -32
  366. package/dist/schema/common/heading.d.ts.map +1 -1
  367. package/dist/schema/common/heading.js +2 -2
  368. package/dist/schema/common/heading.js.map +1 -1
  369. package/dist/schema/common/index.d.ts +2 -2
  370. package/dist/schema/common/index.d.ts.map +1 -1
  371. package/dist/schema/common/index.js.map +1 -1
  372. package/dist/schema/common/list.d.ts +52 -72
  373. package/dist/schema/common/list.d.ts.map +1 -1
  374. package/dist/schema/common/list.js +3 -3
  375. package/dist/schema/common/list.js.map +1 -1
  376. package/dist/schema/common/reference.d.ts +51 -59
  377. package/dist/schema/common/reference.d.ts.map +1 -1
  378. package/dist/schema/common/reference.js +5 -5
  379. package/dist/schema/common/reference.js.map +1 -1
  380. package/dist/schema/common/table.d.ts +59 -75
  381. package/dist/schema/common/table.d.ts.map +1 -1
  382. package/dist/schema/common/table.js +3 -2
  383. package/dist/schema/common/table.js.map +1 -1
  384. package/dist/schema/common/track.d.ts +83 -97
  385. package/dist/schema/common/track.d.ts.map +1 -1
  386. package/dist/schema/common/track.js +18 -17
  387. package/dist/schema/common/track.js.map +1 -1
  388. package/dist/schema/convert.d.ts +2 -2
  389. package/dist/schema/convert.d.ts.map +1 -1
  390. package/dist/schema/convert.js +2 -2
  391. package/dist/schema/convert.js.map +1 -1
  392. package/dist/schema/document/content.d.ts +95 -122
  393. package/dist/schema/document/content.d.ts.map +1 -1
  394. package/dist/schema/document/content.js +9 -9
  395. package/dist/schema/document/content.js.map +1 -1
  396. package/dist/schema/document/index.d.ts +173 -257
  397. package/dist/schema/document/index.d.ts.map +1 -1
  398. package/dist/schema/document/index.js.map +1 -1
  399. package/dist/schema/document/structure.d.ts +149 -258
  400. package/dist/schema/document/structure.d.ts.map +1 -1
  401. package/dist/schema/document/structure.js +2 -2
  402. package/dist/schema/document/structure.js.map +1 -1
  403. package/dist/schema/export.d.ts +4 -877
  404. package/dist/schema/export.d.ts.map +1 -1
  405. package/dist/schema/export.js +1 -0
  406. package/dist/schema/export.js.map +1 -1
  407. package/dist/schema/footnotes.d.ts +110 -155
  408. package/dist/schema/footnotes.d.ts.map +1 -1
  409. package/dist/schema/footnotes.js +4 -2
  410. package/dist/schema/footnotes.js.map +1 -1
  411. package/dist/schema/footnotes_convert.d.ts +3 -3
  412. package/dist/schema/footnotes_convert.d.ts.map +1 -1
  413. package/dist/schema/footnotes_convert.js +10 -6
  414. package/dist/schema/footnotes_convert.js.map +1 -1
  415. package/dist/schema/i18n.d.ts +3 -534
  416. package/dist/schema/i18n.d.ts.map +1 -1
  417. package/dist/schema/i18n.js +1 -0
  418. package/dist/schema/i18n.js.map +1 -1
  419. package/dist/schema/index.d.ts +1 -1
  420. package/dist/schema/index.d.ts.map +1 -1
  421. package/dist/schema/index.js.map +1 -1
  422. package/dist/schema/mini_json.d.ts +3 -4
  423. package/dist/schema/mini_json.d.ts.map +1 -1
  424. package/dist/schema/mini_json.js +2 -0
  425. package/dist/schema/mini_json.js.map +1 -1
  426. package/dist/schema/text.d.ts +2 -1
  427. package/dist/schema/text.d.ts.map +1 -1
  428. package/dist/schema/text.js +1 -1
  429. package/dist/schema/text.js.map +1 -1
  430. package/dist/types.d.ts +167 -8
  431. package/dist/types.d.ts.map +1 -1
  432. package/package.json +24 -1
  433. package/src/bibliography/{common.js → common.ts} +15 -12
  434. package/src/bibliography/{csl_bib.js → csl_bib.ts} +16 -15
  435. package/src/citations/{citeproc_sys.js → citeproc_sys.ts} +26 -6
  436. package/src/citations/{format.js → format.ts} +80 -24
  437. package/src/editor/e2ee/{encryptor.js → encryptor.ts} +76 -44
  438. package/src/exporter/docx/{citations.js → citations.ts} +51 -23
  439. package/src/exporter/docx/{comments.js → comments.ts} +69 -26
  440. package/src/exporter/docx/{footnotes.js → footnotes.ts} +81 -42
  441. package/src/exporter/docx/images.ts +128 -0
  442. package/src/exporter/docx/{index.js → index.ts} +48 -25
  443. package/src/exporter/docx/{lists.js → lists.ts} +89 -46
  444. package/src/exporter/docx/{math.js → math.ts} +29 -9
  445. package/src/exporter/docx/{metadata.js → metadata.ts} +78 -42
  446. package/src/exporter/docx/{rels.js → rels.ts} +71 -50
  447. package/src/exporter/docx/{render.js → render.ts} +124 -87
  448. package/src/exporter/docx/{richtext.js → richtext.ts} +107 -84
  449. package/src/exporter/docx/{tables.js → tables.ts} +33 -23
  450. package/src/exporter/docx/{tools.js → tools.ts} +4 -3
  451. package/src/exporter/epub/{index.js → index.ts} +44 -15
  452. package/src/exporter/epub/{templates.js → templates.ts} +71 -7
  453. package/src/exporter/epub/{tools.js → tools.ts} +31 -25
  454. package/src/exporter/html/{citations.js → citations.ts} +79 -31
  455. package/src/exporter/html/{convert.js → convert.ts} +118 -71
  456. package/src/exporter/html/{index.js → index.ts} +63 -29
  457. package/src/exporter/html/{templates.js → templates.ts} +22 -2
  458. package/src/exporter/html/{tools.js → tools.ts} +9 -6
  459. package/src/exporter/jats/bibliography.ts +199 -0
  460. package/src/exporter/jats/{citations.js → citations.ts} +56 -20
  461. package/src/exporter/jats/{convert.js → convert.ts} +72 -53
  462. package/src/exporter/jats/index.ts +132 -0
  463. package/src/exporter/jats/{templates.js → templates.ts} +19 -3
  464. package/src/exporter/jats/{text.js → text.ts} +8 -6
  465. package/src/exporter/latex/{convert.js → convert.ts} +160 -125
  466. package/src/exporter/latex/{escape_latex.js → escape_latex.ts} +1 -1
  467. package/src/exporter/latex/{index.js → index.ts} +27 -12
  468. package/src/exporter/latex/{readme.js → readme.ts} +2 -2
  469. package/src/exporter/native/copy.ts +231 -0
  470. package/src/exporter/native/file.ts +65 -0
  471. package/src/exporter/native/index.ts +4 -0
  472. package/src/exporter/native/revision.ts +76 -0
  473. package/src/exporter/native/{shrink.js → shrink.ts} +64 -29
  474. package/src/exporter/native/zip.ts +85 -0
  475. package/src/exporter/odt/{citations.js → citations.ts} +35 -15
  476. package/src/exporter/odt/{footnotes.js → footnotes.ts} +53 -30
  477. package/src/exporter/odt/images.ts +135 -0
  478. package/src/exporter/odt/{index.js → index.ts} +49 -27
  479. package/src/exporter/odt/{math.js → math.ts} +38 -9
  480. package/src/exporter/odt/{metadata.js → metadata.ts} +54 -29
  481. package/src/exporter/odt/{render.js → render.ts} +89 -60
  482. package/src/exporter/odt/{richtext.js → richtext.ts} +102 -72
  483. package/src/exporter/odt/{styles.js → styles.ts} +98 -66
  484. package/src/exporter/odt/{track.js → track.ts} +22 -6
  485. package/src/exporter/pandoc/{citations.js → citations.ts} +31 -15
  486. package/src/exporter/pandoc/{convert.js → convert.ts} +98 -79
  487. package/src/exporter/pandoc/{index.js → index.ts} +36 -13
  488. package/src/exporter/pandoc/{readme.js → readme.ts} +0 -1
  489. package/src/exporter/pandoc/{tools.js → tools.ts} +28 -5
  490. package/src/exporter/print/{index.js → index.ts} +38 -19
  491. package/src/exporter/tools/{doc_content.js → doc_content.ts} +34 -24
  492. package/src/exporter/tools/{svg.js → svg.ts} +9 -3
  493. package/src/exporter/tools/{xml.js → xml.ts} +187 -138
  494. package/src/exporter/tools/{xml_zip.js → xml_zip.ts} +19 -11
  495. package/src/exporter/tools/{zip.js → zip.ts} +35 -11
  496. package/src/exporter/tools/{zotero_csl.js → zotero_csl.ts} +35 -18
  497. package/src/global.d.ts +2 -0
  498. package/src/importer/citations.ts +116 -0
  499. package/src/importer/docx/{citations.js → citations.ts} +22 -37
  500. package/src/importer/docx/{convert.js → convert.ts} +176 -141
  501. package/src/importer/docx/{helpers.js → helpers.ts} +1 -1
  502. package/src/importer/docx/index.ts +124 -0
  503. package/src/importer/docx/{omml2mathml.js → omml2mathml.ts} +154 -176
  504. package/src/importer/docx/{parse.js → parse.ts} +103 -81
  505. package/src/importer/native/extract_template.ts +83 -0
  506. package/src/importer/native/file.ts +282 -0
  507. package/src/importer/native/get_images.ts +82 -0
  508. package/src/importer/native/importer.ts +244 -0
  509. package/src/importer/native/index.ts +6 -0
  510. package/src/importer/native/{update.js → update.ts} +13 -5
  511. package/src/importer/native/update_template.ts +32 -0
  512. package/src/importer/odt/{citations.js → citations.ts} +17 -29
  513. package/src/importer/odt/{convert.js → convert.ts} +261 -237
  514. package/src/importer/odt/index.ts +202 -0
  515. package/src/importer/pandoc/{convert.js → convert.ts} +116 -94
  516. package/src/importer/pandoc/{helpers.js → helpers.ts} +24 -12
  517. package/src/importer/pandoc/index.ts +171 -0
  518. package/src/importer/registry.ts +69 -0
  519. package/src/importer/{zip_analyzer.js → zip_analyzer.ts} +44 -18
  520. package/src/mathlive/{opf_includes.js → opf_includes.ts} +1 -1
  521. package/src/modules.d.ts +40 -0
  522. package/src/schema/common/{annotate.js → annotate.ts} +10 -8
  523. package/src/schema/common/{base.js → base.ts} +12 -10
  524. package/src/schema/common/{citation.js → citation.ts} +17 -8
  525. package/src/schema/common/{equation.js → equation.ts} +6 -4
  526. package/src/schema/common/{figure.js → figure.ts} +43 -23
  527. package/src/schema/common/{heading.js → heading.ts} +7 -5
  528. package/src/schema/common/{list.js → list.ts} +15 -13
  529. package/src/schema/common/{reference.js → reference.ts} +14 -12
  530. package/src/schema/common/{table.js → table.ts} +16 -14
  531. package/src/schema/common/{track.js → track.ts} +42 -31
  532. package/src/schema/{convert.js → convert.ts} +6 -2
  533. package/src/schema/document/{content.js → content.ts} +22 -20
  534. package/src/schema/document/{structure.js → structure.ts} +15 -9
  535. package/src/schema/{export.js → export.ts} +4 -2
  536. package/src/schema/{footnotes.js → footnotes.ts} +11 -8
  537. package/src/schema/{footnotes_convert.js → footnotes_convert.ts} +11 -8
  538. package/src/schema/{i18n.js → i18n.ts} +7 -1
  539. package/src/schema/{mini_json.js → mini_json.ts} +11 -12
  540. package/src/schema/{text.js → text.ts} +6 -2
  541. package/src/types.ts +185 -7
  542. package/src/exporter/docx/images.js +0 -101
  543. package/src/exporter/jats/bibliography.js +0 -183
  544. package/src/exporter/jats/index.js +0 -92
  545. package/src/exporter/odt/images.js +0 -115
  546. package/src/importer/citations.js +0 -129
  547. package/src/importer/native/get_images.js +0 -76
  548. /package/src/schema/common/{index.js → index.ts} +0 -0
  549. /package/src/schema/document/{index.js → index.ts} +0 -0
  550. /package/src/schema/{index.js → index.ts} +0 -0
@@ -1,8 +1,10 @@
1
1
  import {escapeText} from "fwtoolkit"
2
+ import type {MarkSpec, NodeSpec} from "prosemirror-model"
3
+
2
4
  import {parseTracks} from "../common/index.js"
3
5
  import {fnNodeToHtml, htmlToFnNode} from "../footnotes_convert.js"
4
6
 
5
- export const randomCodeBlockId = () => {
7
+ export const randomCodeBlockId = (): string => {
6
8
  return `C${Math.round(Math.random() * 10000000) + 1}`
7
9
  }
8
10
 
@@ -21,12 +23,12 @@ export const contributor = {
21
23
  parseDOM: [
22
24
  {
23
25
  tag: "span.contributor",
24
- getAttrs(dom) {
26
+ getAttrs(dom: HTMLElement) {
25
27
  return {
26
- firstname: dom.dataset.firstname,
27
- lastname: dom.dataset.lastname,
28
- email: dom.dataset.email,
29
- institution: dom.dataset.institution,
28
+ firstname: dom.dataset.firstname || false,
29
+ lastname: dom.dataset.lastname || false,
30
+ email: dom.dataset.email || false,
31
+ institution: dom.dataset.institution || false,
30
32
  id_type: dom.dataset.id_type || false,
31
33
  id_value: dom.dataset.id_value || false
32
34
  }
@@ -36,17 +38,17 @@ export const contributor = {
36
38
  toDOM(node) {
37
39
  const dom = document.createElement("span")
38
40
  dom.classList.add("contributor")
39
- dom.dataset.firstname = node.attrs.firstname
40
- dom.dataset.lastname = node.attrs.lastname
41
- dom.dataset.email = node.attrs.email
42
- dom.dataset.institution = node.attrs.institution
41
+ dom.dataset.firstname = node.attrs.firstname || ""
42
+ dom.dataset.lastname = node.attrs.lastname || ""
43
+ dom.dataset.email = node.attrs.email || ""
44
+ dom.dataset.institution = node.attrs.institution || ""
43
45
  if (node.attrs.id_type) {
44
46
  dom.dataset.id_type = node.attrs.id_type
45
47
  }
46
48
  if (node.attrs.id_value) {
47
49
  dom.dataset.id_value = node.attrs.id_value
48
50
  }
49
- const content = []
51
+ const content: string[] = []
50
52
  if (node.attrs.firstname) {
51
53
  content.push(escapeText(node.attrs.firstname))
52
54
  }
@@ -71,7 +73,7 @@ export const contributor = {
71
73
 
72
74
  return dom
73
75
  }
74
- }
76
+ } satisfies NodeSpec
75
77
 
76
78
  export const tag = {
77
79
  inline: true,
@@ -84,7 +86,7 @@ export const tag = {
84
86
  parseDOM: [
85
87
  {
86
88
  tag: "span.tag",
87
- getAttrs(dom) {
89
+ getAttrs(dom: HTMLElement) {
88
90
  return {
89
91
  tag: dom.innerText
90
92
  }
@@ -94,7 +96,7 @@ export const tag = {
94
96
  toDOM(node) {
95
97
  return ["span", {class: "tag"}, node.attrs.tag]
96
98
  }
97
- }
99
+ } satisfies NodeSpec
98
100
 
99
101
  export const footnote = {
100
102
  inline: true,
@@ -111,9 +113,9 @@ export const footnote = {
111
113
  parseDOM: [
112
114
  {
113
115
  tag: "span.footnote-marker[data-footnote]",
114
- getAttrs(dom) {
116
+ getAttrs(dom: HTMLElement) {
115
117
  return {
116
- footnote: htmlToFnNode(dom.dataset.footnote)
118
+ footnote: htmlToFnNode(dom.dataset.footnote || "")
117
119
  }
118
120
  }
119
121
  }
@@ -125,7 +127,7 @@ export const footnote = {
125
127
  dom.innerHTML = " "
126
128
  return dom
127
129
  }
128
- }
130
+ } satisfies NodeSpec
129
131
 
130
132
  export const code_block = {
131
133
  content: "text*",
@@ -154,7 +156,7 @@ export const code_block = {
154
156
  {
155
157
  tag: "pre",
156
158
  preserveWhitespace: "full",
157
- getAttrs(dom) {
159
+ getAttrs(dom: HTMLElement) {
158
160
  return {
159
161
  track: parseTracks(dom.dataset.track),
160
162
  language: dom.dataset.language || "",
@@ -166,7 +168,7 @@ export const code_block = {
166
168
  }
167
169
  ],
168
170
  toDOM(node) {
169
- const attrs = {}
171
+ const attrs: Record<string, unknown> = {}
170
172
  if (node.attrs.track.length) {
171
173
  attrs["data-track"] = JSON.stringify(node.attrs.track)
172
174
  }
@@ -184,4 +186,4 @@ export const code_block = {
184
186
  }
185
187
  return ["pre", attrs, ["code", 0]]
186
188
  }
187
- }
189
+ } satisfies NodeSpec
@@ -1,3 +1,5 @@
1
+ import type {NodeSpec} from "prosemirror-model"
2
+
1
3
  export const doc = {
2
4
  content: "title part*",
3
5
  selectable: false,
@@ -200,7 +202,7 @@ export const doc = {
200
202
  parseDOM: [
201
203
  {
202
204
  tag: "div.doc",
203
- getAttrs(dom) {
205
+ getAttrs(dom: HTMLElement) {
204
206
  return {
205
207
  papersize: dom.dataset.papersize,
206
208
  citationstyle: dom.dataset.citationstyle,
@@ -221,9 +223,13 @@ export const doc = {
221
223
  0
222
224
  ]
223
225
  }
224
- }
226
+ } satisfies NodeSpec
225
227
 
226
- const partSpec = (type, content, attrs = {}) => ({
228
+ const partSpec = (
229
+ type: string,
230
+ content: string,
231
+ extraAttrs: Record<string, {default: unknown}> = {}
232
+ ): NodeSpec => ({
227
233
  content,
228
234
  group: "part",
229
235
  marks: "annotation track",
@@ -259,12 +265,12 @@ const partSpec = (type, content, attrs = {}) => ({
259
265
  default: false
260
266
  }
261
267
  },
262
- attrs
268
+ extraAttrs
263
269
  ),
264
270
  parseDOM: [
265
271
  {
266
272
  tag: `div.doc-${type}`,
267
- getAttrs(dom) {
273
+ getAttrs(dom: HTMLElement) {
268
274
  return {
269
275
  hidden: dom.dataset.hidden === "true" ? true : false
270
276
  }
@@ -272,7 +278,7 @@ const partSpec = (type, content, attrs = {}) => ({
272
278
  }
273
279
  ],
274
280
  toDOM(node) {
275
- const attrs = {
281
+ const attrs: Record<string, unknown> = {
276
282
  class: `doc-part doc-${type} ${node.attrs.id ? `doc-${node.attrs.id}` : "doc-no-id"}`
277
283
  }
278
284
  if (node.attrs.hidden) {
@@ -400,7 +406,7 @@ export const table_of_contents = {
400
406
  dom.innerHTML = `<h1 class="toc">${node.attrs.title}</h1>`
401
407
  return dom
402
408
  }
403
- }
409
+ } satisfies NodeSpec
404
410
 
405
411
  export const separator_part = {
406
412
  marks: "annotation track",
@@ -422,7 +428,7 @@ export const separator_part = {
422
428
  dom.classList.add(`doc-${node.attrs.id}`)
423
429
  return dom
424
430
  }
425
- }
431
+ } satisfies NodeSpec
426
432
 
427
433
  export const title = {
428
434
  content: "text*",
@@ -449,4 +455,4 @@ export const title = {
449
455
  0
450
456
  ]
451
457
  }
452
- }
458
+ } satisfies NodeSpec
@@ -1,12 +1,14 @@
1
1
  import {docSchema} from "./document/index.js"
2
2
 
3
3
  export class SchemaExport {
4
+ schema: typeof docSchema
5
+
4
6
  constructor() {
5
7
  this.schema = docSchema
6
8
  }
7
9
 
8
- init() {
9
- const spec = {
10
+ init(): string {
11
+ const spec: {nodes: Record<string, unknown>; marks: Record<string, unknown>} = {
10
12
  nodes: {},
11
13
  marks: {}
12
14
  }
@@ -1,4 +1,5 @@
1
1
  import OrderedMap from "orderedmap"
2
+ import type {Node, NodeSpec} from "prosemirror-model"
2
3
  import {Schema} from "prosemirror-model"
3
4
  import {marks, nodes} from "prosemirror-schema-basic"
4
5
  import {tableNodes} from "prosemirror-tables"
@@ -32,18 +33,18 @@ import {
32
33
  underline
33
34
  } from "./common/index.js"
34
35
 
35
- const footnotecontainer = {
36
+ const footnotecontainer: NodeSpec = {
36
37
  group: "part",
37
38
  selectable: false,
38
39
  content: "(block|table_block)+",
39
40
  marks: "annotation",
40
41
  parseDOM: [{tag: "div.footnote-container"}],
41
- toDOM(_node) {
42
+ toDOM(_node: Node) {
42
43
  return ["div", {class: "footnote-container"}, 0]
43
44
  }
44
45
  }
45
46
 
46
- const doc = {
47
+ const doc: NodeSpec = {
47
48
  content: "part*",
48
49
  selectable: false
49
50
  }
@@ -91,20 +92,22 @@ const spec = {
91
92
  spec.nodes = spec.nodes.append(
92
93
  tableNodes({
93
94
  tableGroup: "table_block",
94
- cellContent: "block+"
95
+ cellContent: "block+",
96
+ cellAttributes: {}
95
97
  })
96
98
  )
97
99
 
100
+ const tableSpec = spec.nodes.get("table") || {}
98
101
  spec.nodes = spec.nodes.update(
99
102
  "table",
100
- Object.assign({}, spec.nodes.get("table"), {
103
+ Object.assign({}, tableSpec, {
101
104
  attrs: {
102
105
  track: {default: []}
103
106
  },
104
107
  parseDOM: [
105
108
  {
106
109
  tag: "table",
107
- getAttrs(dom) {
110
+ getAttrs(dom: HTMLElement) {
108
111
  return {
109
112
  track: dom.dataset.track
110
113
  ? JSON.parse(dom.dataset.track)
@@ -113,8 +116,8 @@ spec.nodes = spec.nodes.update(
113
116
  }
114
117
  }
115
118
  ],
116
- toDOM(node) {
117
- const attrs = {}
119
+ toDOM(node: Node) {
120
+ const attrs: Record<string, unknown> = {}
118
121
  if (node.attrs.track.length) {
119
122
  attrs["data-track"] = JSON.stringify(node.attrs.track)
120
123
  }
@@ -3,20 +3,22 @@ import {DOMParser, DOMSerializer, Node} from "prosemirror-model"
3
3
  import {fnSchema} from "./footnotes.js"
4
4
 
5
5
  // Convert the footnote HTML stored with the marker to a PM node representation of the footnote.
6
- export const htmlToFnNode = content => {
6
+ export const htmlToFnNode = (content: string): unknown[] => {
7
7
  const footnoteDOM = document.createElement("div")
8
8
  footnoteDOM.classList.add("footnote-container")
9
9
  footnoteDOM.innerHTML = content
10
10
  const node = DOMParser.fromSchema(fnSchema).parse(footnoteDOM, {
11
11
  preserveWhitespace: true,
12
- topNode: false
12
+ topNode: false as unknown as Node
13
13
  })
14
- const json = node.firstChild.toJSON().content
15
-
16
- return json
14
+ const firstChild = node.firstChild
15
+ if (!firstChild) {
16
+ return []
17
+ }
18
+ return firstChild.toJSON().content
17
19
  }
18
20
 
19
- export const fnNodeToPmNode = fnContents => {
21
+ export const fnNodeToPmNode = (fnContents: unknown[]): Node => {
20
22
  const footnote = {
21
23
  type: "footnotecontainer",
22
24
  content: fnContents
@@ -24,8 +26,9 @@ export const fnNodeToPmNode = fnContents => {
24
26
  return Node.fromJSON(fnSchema, footnote)
25
27
  }
26
28
 
27
- export const fnNodeToHtml = jsonString => {
29
+ export const fnNodeToHtml = (jsonString: unknown[]): string => {
28
30
  const pmNode = fnNodeToPmNode(jsonString),
29
31
  serializer = DOMSerializer.fromSchema(fnSchema)
30
- return serializer.serializeNode(pmNode).innerHTML
32
+ const dom = serializer.serializeNode(pmNode)
33
+ return dom instanceof HTMLElement ? dom.innerHTML : ""
31
34
  }
@@ -581,7 +581,10 @@ const EXERCISE_SOLUTION = {
581
581
  uk: "Розв'язок"
582
582
  }
583
583
 
584
- export const CATS = {
584
+ export const CATS: Record<
585
+ string,
586
+ Record<string, string>
587
+ > = {
585
588
  figure: FIGURE,
586
589
  equation: EQUATION,
587
590
  table: TABLE,
@@ -593,3 +596,6 @@ export const CATS = {
593
596
  exercise: EXERCISE,
594
597
  exercise_solution: EXERCISE_SOLUTION
595
598
  }
599
+
600
+ export const getCat = (category: string, language: string): string =>
601
+ CATS[category]?.[language] || CATS[category]?.["en-US"] || category
@@ -1,17 +1,18 @@
1
1
  import deepEqual from "fast-deep-equal"
2
+ import type {Mark, Node, Schema} from "prosemirror-model"
2
3
 
3
- export function toMiniJSON(node) {
4
+ export function toMiniJSON(node: Node): Record<string, unknown> {
4
5
  // Similar to the ProseMirror internal toJSON function,
5
6
  // but leaving out attributes that have default values and dealing with
6
7
  // attributes that are objects.
7
8
  // Adapted from https://github.com/ProseMirror/prosemirror-model/blob/6d970507cd0da48653d3b72f2731a71a144a364b/src/node.js#L340-L351
8
- const obj = {type: node.type.name}
9
+ const obj: Record<string, unknown> = {type: node.type.name}
9
10
  for (const attr in node.attrs) {
10
- if (!deepEqual(node.type.attrs[attr].default, node.attrs[attr])) {
11
+ if (!deepEqual((node.type as any).attrs[attr].default, node.attrs[attr])) {
11
12
  if (!obj.attrs) {
12
13
  obj.attrs = {}
13
14
  }
14
- obj.attrs[attr] = ["string", "number", "boolean"].includes(
15
+ ;(obj.attrs as Record<string, unknown>)[attr] = ["string", "number", "boolean"].includes(
15
16
  typeof node.attrs[attr]
16
17
  )
17
18
  ? node.attrs[attr]
@@ -19,9 +20,7 @@ export function toMiniJSON(node) {
19
20
  }
20
21
  }
21
22
  if (node.content.size) {
22
- obj.content = node.content.content.map(childNode =>
23
- toMiniJSON(childNode)
24
- )
23
+ obj.content = node.content.content.map(childNode => toMiniJSON(childNode))
25
24
  }
26
25
 
27
26
  if (node.marks.length) {
@@ -35,15 +34,15 @@ export function toMiniJSON(node) {
35
34
  return obj
36
35
  }
37
36
 
38
- function toMiniMarkJSON(mark) {
37
+ function toMiniMarkJSON(mark: Mark): Record<string, unknown> {
39
38
  // Adapted from https://github.com/ProseMirror/prosemirror-model/blob/6d970507cd0da48653d3b72f2731a71a144a364b/src/mark.js#L76-L83
40
- const obj = {type: mark.type.name}
39
+ const obj: Record<string, unknown> = {type: mark.type.name}
41
40
  for (const attr in mark.attrs) {
42
- if (!deepEqual(mark.type.attrs[attr].default, mark.attrs[attr])) {
41
+ if (!deepEqual((mark.type as any).attrs[attr].default, mark.attrs[attr])) {
43
42
  if (!obj.attrs) {
44
43
  obj.attrs = {}
45
44
  }
46
- obj.attrs[attr] = ["string", "number", "boolean"].includes(
45
+ ;(obj.attrs as Record<string, unknown>)[attr] = ["string", "number", "boolean"].includes(
47
46
  typeof mark.attrs[attr]
48
47
  )
49
48
  ? mark.attrs[attr]
@@ -53,7 +52,7 @@ function toMiniMarkJSON(mark) {
53
52
  return obj
54
53
  }
55
54
 
56
- export function toFullJSON(miniJson, schema) {
55
+ export function toFullJSON(miniJson: Record<string, unknown>, schema: Schema): Record<string, unknown> {
57
56
  if (!miniJson.type) {
58
57
  miniJson.type = "doc"
59
58
  }
@@ -1,10 +1,14 @@
1
- export function getNonDeletedTextContent(topNode) {
1
+ import type {Node} from "prosemirror-model"
2
+
3
+ import type {Track} from "./common/track.js"
4
+
5
+ export function getNonDeletedTextContent(topNode: Node): string {
2
6
  let text = ""
3
7
  topNode.descendants(node => {
4
8
  if (
5
9
  node.marks.find(mark => mark.type.name === "deletion") ||
6
10
  (node.attrs &&
7
- (node.attrs.track?.find(track => track.type === "deletion") ||
11
+ (node.attrs.track?.find((track: Track) => track.type === "deletion") ||
8
12
  node.attrs.hidden))
9
13
  ) {
10
14
  return
package/src/types.ts CHANGED
@@ -74,30 +74,78 @@ export interface FidusDoc {
74
74
 
75
75
  /** A fully populated document object passed to exporters. */
76
76
  export interface ExportDoc {
77
+ id: string | number
77
78
  title: string
78
79
  path?: string
79
- content: FidusNode[]
80
+ content: FidusNode
80
81
  settings: DocSettings
81
82
  comments?: Record<string, CommentData>
82
83
  version?: string
83
84
  }
84
85
 
86
+ /** A document contributor extracted from a contributors_part node. */
87
+ export interface Contributor {
88
+ firstname?: string
89
+ lastname?: string
90
+ institution?: string
91
+ role?: string
92
+ email?: string
93
+ id_type?: string
94
+ id_value?: string
95
+ [key: string]: unknown
96
+ }
97
+
98
+ /** Metadata bundle assembled by exporters and passed to metadata handlers. */
99
+ export interface ExportMetadata {
100
+ title: string
101
+ authors: Contributor[]
102
+ contributors: Contributor[]
103
+ keywords: string[]
104
+ language?: string
105
+ citationStyle?: string
106
+ }
107
+
108
+ /** A user reference passed to importers. */
109
+ export interface User {
110
+ id: number
111
+ name?: string
112
+ avatar?: string
113
+ username?: string
114
+ }
115
+
85
116
  /** A single comment thread. */
86
117
  export interface CommentData {
87
- id: number
118
+ id?: number
88
119
  user: number
89
120
  username: string
90
121
  date: number
91
122
  resolved?: boolean
92
- comments: Array<{user: number; username: string; date: number; comment: string}>
123
+ comment: FidusNode[]
124
+ answers?: Array<{
125
+ id?: string
126
+ user: number
127
+ username: string
128
+ date: number
129
+ answer: FidusNode[]
130
+ }>
93
131
  }
94
132
 
95
133
  /** A bibliographic database entry (format depends on the CSL engine). */
96
134
  export interface BibDBEntry {
135
+ entry_key?: string
136
+ bib_type?: string
137
+ fields?: Record<string, JSONValue>
97
138
  [key: string]: JSONValue | undefined
98
139
  }
99
140
 
100
- export type BibDB = Record<string, BibDBEntry>
141
+ /** Flat map of bibliography entries keyed by internal ID. */
142
+ export type BibDBEntries = Record<string, BibDBEntry>
143
+
144
+ /** Bibliography database wrapper used by importers/exporters. */
145
+ export interface BibDB {
146
+ db: BibDBEntries
147
+ getDB?: () => Promise<void>
148
+ }
101
149
 
102
150
  /** An entry in the image database. */
103
151
  export interface ImageDBEntry {
@@ -109,12 +157,69 @@ export interface ImageDBEntry {
109
157
  [key: string]: unknown
110
158
  }
111
159
 
112
- export type ImageDB = Record<string, ImageDBEntry>
160
+ /** Flat map of image entries keyed by internal ID. */
161
+ export type ImageDBEntries = Record<string, ImageDBEntry>
113
162
 
114
- /** A CSL/CSL-M stylesheet reference. */
163
+ /** Image database wrapper used by importers/exporters. */
164
+ export interface ImageDB {
165
+ db: ImageDBEntries
166
+ }
167
+
168
+ /** A parsed CSL/CSL-M stylesheet node. */
169
+ export interface CSLStyleNode {
170
+ name: string
171
+ attrs?: Record<string, unknown>
172
+ children?: CSLStyleNode[]
173
+ }
174
+
175
+ /** A parsed CSL/CSL-M stylesheet. */
176
+ export interface CSLStyle {
177
+ children: CSLStyleNode[]
178
+ }
179
+
180
+ /** A CSL/CSL-M stylesheet reference / engine provider. */
115
181
  export interface CSL {
116
182
  citationType?: string
117
- [key: string]: JSONValue | undefined
183
+ getStyle?: (styleId: string) => Promise<CSLStyle>
184
+ getEngine?: (
185
+ sys: unknown,
186
+ styleId: string,
187
+ lang: string
188
+ ) => Promise<CiteprocInstance>
189
+ getEngineSync?: (
190
+ sys: unknown,
191
+ styleId: string,
192
+ lang: string
193
+ ) => CiteprocInstance | undefined
194
+ }
195
+
196
+ /** A minimal citeproc-js engine interface. */
197
+ export interface CiteprocInstance {
198
+ updateItems: (ids: string[]) => void
199
+ appendCitationCluster: (
200
+ citation: unknown,
201
+ flag?: boolean
202
+ ) => Array<[number, string]>
203
+ makeCitationCluster: (items: unknown[]) => string
204
+ cslXml: {dataObj: {attrs: {class: string}}}
205
+ citation: {opt: {layout_delimiter?: string}}
206
+ makeBibliography: () => BibliographyResult
207
+ sys?: unknown
208
+ }
209
+
210
+ /** citeproc-js makeBibliography() result tuple. */
211
+ export interface BibliographyResult extends Array<unknown> {
212
+ 0: {
213
+ entry_ids: string[]
214
+ bibstart: string
215
+ bibend: string
216
+ entryspacing: number
217
+ linespacing: number
218
+ hangingindent?: boolean
219
+ maxoffset: number
220
+ "second-field-align"?: "margin" | "flush"
221
+ }
222
+ 1: string[]
118
223
  }
119
224
 
120
225
  /** Common constructor options for exporters. */
@@ -134,3 +239,76 @@ export interface NativeDomNode {
134
239
  a?: Array<[string, string]>
135
240
  c?: NativeDomNode[]
136
241
  }
242
+
243
+ /** A document template extracted from document content. */
244
+ export interface Template {
245
+ content: FidusNode
246
+ exportTemplates: Array<Record<string, JSONValue>>
247
+ documentStyles: Array<Record<string, JSONValue>>
248
+ files?: Array<{filename: string; content: Blob | ArrayBuffer | string}>
249
+ }
250
+
251
+ /** Files bundled with a document template. */
252
+ export interface TemplateFiles {
253
+ textFiles: Array<{filename: string; contents: string}>
254
+ httpFiles: Array<{url: string; filename: string}>
255
+ }
256
+
257
+ /** Backend callbacks used by the generic NativeImporter. */
258
+ export interface NativeImporterBackend {
259
+ createDoc: (
260
+ template: Template,
261
+ importId: string | number | null,
262
+ requestedPath: string,
263
+ e2eeOptions: E2EEOptions | null,
264
+ files: Record<string, File[]>
265
+ ) => Promise<{id: number; path: string; e2ee?: boolean}>
266
+ saveImages: (
267
+ images: ImageDB,
268
+ docId: number,
269
+ e2eeOptions: E2EEOptions | null
270
+ ) => Promise<Record<number | string, number>>
271
+ saveDocument: (
272
+ saveData: Record<string, unknown>,
273
+ e2eeOptions: E2EEOptions | null
274
+ ) => Promise<{added: number; updated: number}>
275
+ extractTemplate?: (doc: FidusNode) => Template
276
+ decryptBufferToBase64?: (base64: string, key: CryptoKey) => Promise<string>
277
+ encryptImage?: (file: Blob, key: CryptoKey) => Promise<Blob>
278
+ encryptObject?: (obj: unknown, key: CryptoKey) => Promise<unknown>
279
+ encrypt?: (text: string, key: CryptoKey) => Promise<unknown>
280
+ storeKeyInSession?: (docId: number, key: CryptoKey) => void
281
+ }
282
+
283
+ /** E2EE options used during import/export/copy. */
284
+ export interface E2EEOptions {
285
+ enabled?: boolean
286
+ key?: CryptoKey
287
+ sourceKey?: CryptoKey
288
+ targetE2EE?: boolean
289
+ targetPassword?: string
290
+ salt?: string
291
+ iterations?: number
292
+ }
293
+
294
+ /** Callback that uploads a native revision blob. */
295
+ export type UploadRevision = (blob: Blob, doc: Record<string, unknown>) => unknown
296
+
297
+ /** E2EE helper object used by SaveCopy. */
298
+ export interface SaveCopyE2EE {
299
+ decryptObject: (encrypted: unknown, key: CryptoKey) => Promise<unknown>
300
+ encryptObject: (obj: unknown, key: CryptoKey) => Promise<unknown>
301
+ encrypt: (text: string, key: CryptoKey) => Promise<unknown>
302
+ encryptImage: (file: Blob, key: CryptoKey) => Promise<Blob>
303
+ generateSalt: () => Uint8Array
304
+ deriveKey: (password: string, salt: Uint8Array, iterations: number) => Promise<CryptoKey>
305
+ }
306
+
307
+ /** Callback used by SaveCopy to import a copied document. */
308
+ export type ImportDocument = (
309
+ doc: Record<string, unknown>,
310
+ bibDB: BibDB,
311
+ imageDB: ImageDB,
312
+ httpIncludes: Array<{url: string; filename: string}>,
313
+ options: Record<string, unknown>
314
+ ) => Promise<{doc: Record<string, unknown>; docInfo: Record<string, unknown>}>