@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,5 +1,7 @@
1
1
  import pretty from "pretty"
2
+
2
3
  import {HTMLExporter} from "../html/index.js"
4
+ import type {BibDB, CSL, ExportDoc, ImageDB} from "../../types.js"
3
5
 
4
6
  import {
5
7
  containerTemplate,
@@ -15,24 +17,42 @@ import {
15
17
  } from "./tools.js"
16
18
 
17
19
  export class EpubExporter extends HTMLExporter {
18
- constructor(doc, bibDB, imageDB, csl, updated, documentStyles) {
20
+ documentFileName: string
21
+ lang: string
22
+ shortLang: string
23
+
24
+ constructor(
25
+ doc: ExportDoc,
26
+ bibDB: BibDB,
27
+ imageDB: ImageDB,
28
+ csl: CSL,
29
+ updated: any,
30
+ documentStyles: Array<{
31
+ slug: string
32
+ contents: string
33
+ documentstylefile_set: Array<[string, string]>
34
+ }>
35
+ ) {
19
36
  super(doc, bibDB, imageDB, csl, updated, documentStyles, {
20
37
  xhtml: true,
21
38
  epub: true
22
39
  })
23
40
  // Overriden properties
24
41
  this.documentFileName = "document.xhtml"
42
+ this.contentFileName = "document.xhtml"
25
43
  this.fileEnding = "epub"
26
44
  this.mimeType = "application/epub+zip"
45
+ this.lang = doc.settings.language || "en-US"
46
+ this.shortLang = this.lang.split("-")[0]
27
47
  }
28
48
 
29
- createZip() {
49
+ createZip(): Promise<void> {
30
50
  this.prefixFiles()
31
51
  this.createEPUBFiles()
32
52
  return super.createZip()
33
53
  }
34
54
 
35
- prefixFiles() {
55
+ prefixFiles(): void {
36
56
  // prefix all files with "EPUB/"
37
57
  this.textFiles = this.textFiles.map(file =>
38
58
  Object.assign({}, file, {filename: `EPUB/${file.filename}`})
@@ -45,7 +65,7 @@ export class EpubExporter extends HTMLExporter {
45
65
  )
46
66
  }
47
67
 
48
- createEPUBFiles() {
68
+ createEPUBFiles(): void {
49
69
  // Generate the required EPUB-specific files using the converted content
50
70
  this.textFiles.push(
51
71
  {
@@ -67,29 +87,33 @@ export class EpubExporter extends HTMLExporter {
67
87
  )
68
88
  }
69
89
 
70
- createOPF() {
90
+ createOPF(): string {
71
91
  const timestamp = getTimestamp(this.updated)
72
92
  const images = this.httpFiles
73
93
  .map(file =>
74
94
  Object.assign({mimeType: getImageMimeType(file.filename)}, file)
75
95
  )
76
- .filter(image => image.mimeType)
96
+ .filter(image => image.mimeType) as Array<
97
+ {filename: string; url: string; mimeType: string}
98
+ >
77
99
 
78
100
  const fontFiles = this.httpFiles
79
101
  .map(file =>
80
102
  Object.assign({mimeType: getFontMimeType(file.filename)}, file)
81
103
  )
82
- .filter(file => file.mimeType)
104
+ .filter(file => file.mimeType) as Array<
105
+ {filename: string; url: string; mimeType: string}
106
+ >
83
107
 
84
108
  const styleSheets = this.textFiles.filter(file =>
85
109
  file.filename.endsWith(".css")
86
110
  )
87
111
 
88
112
  // Extract authors and keywords from metaData
89
- const authors = this.converter.metaData.authors.map(
90
- ({attrs: author}) => {
113
+ const rawAuthors = this.converter.metaData.authors.map(
114
+ ({attrs: author}: any) => {
91
115
  if (author.firstname || author.lastname) {
92
- const nameParts = []
116
+ const nameParts: string[] = []
93
117
  if (author.firstname) {
94
118
  nameParts.push(author.firstname)
95
119
  }
@@ -102,34 +126,39 @@ export class EpubExporter extends HTMLExporter {
102
126
  }
103
127
  }
104
128
  )
129
+ const authors = rawAuthors.filter(
130
+ (author: any): author is string => typeof author === "string"
131
+ )
105
132
  return opfTemplate({
106
133
  language: this.lang,
107
134
  title: this.docTitle,
108
135
  authors,
109
136
  keywords: this.converter.metaData.keywords,
110
137
  idType: "fidus",
111
- id: this.doc.id,
138
+ id: String(this.doc.id),
112
139
  date: timestamp.slice(0, 10),
113
140
  modified: timestamp,
114
141
  styleSheets,
115
142
  math: this.converter.features.math,
116
143
  images,
117
144
  fontFiles,
118
- copyright: this.doc.settings.copyright
145
+ copyright: this.doc.settings.copyright as
146
+ | {holder?: string; year?: number}
147
+ | undefined
119
148
  })
120
149
  }
121
150
 
122
- createNCX() {
151
+ createNCX(): string {
123
152
  return ncxTemplate({
124
153
  shortLang: this.shortLang,
125
154
  title: this.docTitle,
126
155
  idType: "fidus",
127
- id: this.doc.id,
156
+ id: String(this.doc.id),
128
157
  toc: buildHierarchy(this.converter.metaData.toc)
129
158
  })
130
159
  }
131
160
 
132
- createNav() {
161
+ createNav(): string {
133
162
  const styleSheets = this.textFiles.filter(file =>
134
163
  file.filename.endsWith(".css")
135
164
  )
@@ -1,6 +1,46 @@
1
1
  import {escapeText} from "fwtoolkit"
2
+
2
3
  import {mathliveOpfIncludes} from "../../mathlive/opf_includes.js"
3
4
 
5
+ interface EpubImage {
6
+ filename: string
7
+ mimeType: string
8
+ coverImage?: boolean
9
+ }
10
+
11
+ interface EpubFile {
12
+ filename: string
13
+ mimeType: string
14
+ }
15
+
16
+ interface EpubStyleSheet {
17
+ filename: string
18
+ }
19
+
20
+ interface EpubTocItem {
21
+ id: string
22
+ title: string
23
+ docNum?: number
24
+ link?: string
25
+ children: EpubTocItem[]
26
+ }
27
+
28
+ interface OpfTemplateOptions {
29
+ id: string
30
+ idType: string
31
+ title: string
32
+ language: string
33
+ authors: string[]
34
+ keywords: string[]
35
+ date: string
36
+ modified: string
37
+ images: EpubImage[]
38
+ fontFiles: EpubFile[]
39
+ styleSheets: EpubStyleSheet[]
40
+ math: boolean
41
+ copyright?: {holder?: string; year?: number}
42
+ }
43
+
4
44
  /** A template for the OPF file of an epub. */
5
45
  export const opfTemplate = ({
6
46
  id,
@@ -16,7 +56,7 @@ export const opfTemplate = ({
16
56
  styleSheets,
17
57
  math,
18
58
  copyright
19
- }) =>
59
+ }: OpfTemplateOptions): string =>
20
60
  `<?xml version="1.0" encoding="UTF-8"?>
21
61
  <package xmlns="http://www.idpf.org/2007/opf" version="3.0" unique-identifier="${idType}" xml:lang="${language}" prefix="cc: http://creativecommons.org/ns#">
22
62
  <metadata xmlns:dc="http://purl.org/dc/elements/1.1/">
@@ -65,8 +105,8 @@ ${images
65
105
  </spine>
66
106
  </package>`
67
107
 
68
- /** A template for the contianer XML of an epub file. */
69
- export const containerTemplate = () =>
108
+ /** A template for the container XML of an epub file. */
109
+ export const containerTemplate = (): string =>
70
110
  `<?xml version="1.0" encoding="UTF-8"?>
71
111
  <container xmlns="urn:oasis:names:tc:opendocument:xmlns:container" version="1.0">
72
112
  <rootfiles>
@@ -74,8 +114,22 @@ export const containerTemplate = () =>
74
114
  </rootfiles>
75
115
  </container>`
76
116
 
117
+ interface NcxTemplateOptions {
118
+ shortLang: string
119
+ idType: string
120
+ id: string
121
+ title: string
122
+ toc: EpubTocItem[]
123
+ }
124
+
77
125
  /** A template of the NCX file of an epub. */
78
- export const ncxTemplate = ({shortLang, idType, id, title, toc}) =>
126
+ export const ncxTemplate = ({
127
+ shortLang,
128
+ idType,
129
+ id,
130
+ title,
131
+ toc
132
+ }: NcxTemplateOptions): string =>
79
133
  `<?xml version="1.0" encoding="UTF-8"?>
80
134
  <ncx xmlns:ncx="http://www.daisy.org/z3986/2005/ncx/" xmlns="http://www.daisy.org/z3986/2005/ncx/" version="2005-1" xml:lang="${shortLang}">
81
135
  <head>
@@ -91,7 +145,7 @@ ${toc.map(item => ncxItemTemplate({item})).join("")}
91
145
  </ncx>`
92
146
 
93
147
  /** A template for each list item in the navMap of an epub's NCX file. */
94
- export const ncxItemTemplate = ({item}) =>
148
+ export const ncxItemTemplate = ({item}: {item: EpubTocItem}): string =>
95
149
  ` <navPoint id="t${item.docNum ? `${item.id}-${item.docNum}` : item.id}">
96
150
  <navLabel><text>${escapeText(item.title)}</text></navLabel>
97
151
  <content src="${item.link ? item.link : item.docNum ? `document-${item.docNum}.xhtml#${item.id}` : `document.xhtml#${item.id}`}"/>
@@ -99,7 +153,7 @@ ${item.children?.map(item => ncxItemTemplate({item})).join("") || ""}
99
153
  </navPoint>\n`
100
154
 
101
155
  /** A template for each item in an epub's navigation document. */
102
- const navItemTemplate = ({item}) =>
156
+ const navItemTemplate = ({item}: {item: EpubTocItem}): string =>
103
157
  `\t\t\t\t<li><a href="${
104
158
  item.link
105
159
  ? item.link
@@ -116,8 +170,18 @@ ${
116
170
  }
117
171
  </li>`
118
172
 
173
+ interface NavTemplateOptions {
174
+ shortLang: string
175
+ toc: EpubTocItem[]
176
+ styleSheets: EpubStyleSheet[]
177
+ }
178
+
119
179
  /** A template for an epub's navigation document. */
120
- export const navTemplate = ({shortLang, toc, styleSheets}) =>
180
+ export const navTemplate = ({
181
+ shortLang,
182
+ toc,
183
+ styleSheets
184
+ }: NavTemplateOptions): string =>
121
185
  `<?xml version="1.0" encoding="UTF-8"?>
122
186
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="${shortLang}" lang="${shortLang}" xmlns:epub="http://www.idpf.org/2007/ops">
123
187
  <head>
@@ -1,33 +1,33 @@
1
- export function getTimestamp(date) {
1
+ export function getTimestamp(date: Date): string {
2
2
  let second = date.getUTCSeconds()
3
3
  let minute = date.getUTCMinutes()
4
4
  let hour = date.getUTCHours()
5
5
  let day = date.getUTCDate()
6
- let month = date.getUTCMonth() + 1 //January is 0!
6
+ let month = date.getUTCMonth() + 1 // January is 0!
7
7
  const year = date.getUTCFullYear()
8
8
 
9
9
  if (second < 10) {
10
- second = "0" + second
10
+ second = Number("0" + second)
11
11
  }
12
12
  if (minute < 10) {
13
- minute = "0" + minute
13
+ minute = Number("0" + minute)
14
14
  }
15
15
  if (hour < 10) {
16
- hour = "0" + hour
16
+ hour = Number("0" + hour)
17
17
  }
18
18
  if (day < 10) {
19
- day = "0" + day
19
+ day = Number("0" + day)
20
20
  }
21
21
  if (month < 10) {
22
- month = "0" + month
22
+ month = Number("0" + month)
23
23
  }
24
24
 
25
25
  return `${year}-${month}-${day}T${hour}:${minute}:${second}Z`
26
26
  }
27
27
 
28
- export function getFontMimeType(filename) {
28
+ export function getFontMimeType(filename: string): string | null {
29
29
  // Define a mapping of font file extensions to MIME types
30
- const fontMimeTypes = {
30
+ const fontMimeTypes: Record<string, string> = {
31
31
  ttf: "font/ttf",
32
32
  otf: "font/otf",
33
33
  woff: "font/woff",
@@ -36,15 +36,15 @@ export function getFontMimeType(filename) {
36
36
  }
37
37
 
38
38
  // Extract the file extension from the filename
39
- const extension = filename.split(".").pop().toLowerCase()
39
+ const extension = filename.split(".").pop()?.toLowerCase()
40
40
 
41
41
  // Check if the extension matches a known font type and return the MIME type
42
- return fontMimeTypes[extension] || null // Return null if it's not a font file
42
+ return extension ? fontMimeTypes[extension] || null : null
43
43
  }
44
44
 
45
- export function getImageMimeType(filename) {
45
+ export function getImageMimeType(filename: string): string | null {
46
46
  // Define a mapping of image file extensions to MIME types
47
- const imageMimeTypes = {
47
+ const imageMimeTypes: Record<string, string> = {
48
48
  jpg: "image/jpeg",
49
49
  jpeg: "image/jpeg",
50
50
  png: "image/png",
@@ -58,36 +58,42 @@ export function getImageMimeType(filename) {
58
58
  }
59
59
 
60
60
  // Extract the file extension from the filename
61
- const extension = filename.split(".").pop().toLowerCase()
61
+ const extension = filename.split(".").pop()?.toLowerCase()
62
62
 
63
63
  // Check if the extension matches a known image type and return the MIME type
64
- return imageMimeTypes[extension] || null // Return null if it's not an image file
64
+ return extension ? imageMimeTypes[extension] || null : null
65
65
  }
66
66
 
67
- export function buildHierarchy(flatList) {
68
- const hierarchy = []
69
- const levelMap = {}
67
+ export interface HierarchyItem extends Record<string, unknown> {
68
+ id: string
69
+ title: string
70
+ level: number
71
+ link?: string
72
+ docNum?: number
73
+ children: HierarchyItem[]
74
+ }
75
+
76
+ export function buildHierarchy(flatList: HierarchyItem[]): HierarchyItem[] {
77
+ const hierarchy: HierarchyItem[] = []
78
+ const levelMap: Record<number, HierarchyItem[]> = {}
70
79
 
71
80
  flatList.forEach(item => {
72
81
  // Ensure there's an array for the current level in the map
73
82
  levelMap[item.level] = levelMap[item.level] || []
74
83
 
75
84
  // Add the current item to its level in the map
76
- levelMap[item.level].push({...item, children: []})
85
+ const itemWithChildren: HierarchyItem = {...item, children: []}
86
+ levelMap[item.level].push(itemWithChildren)
77
87
 
78
88
  if (item.level === 0) {
79
89
  // Top-level items are added directly to the hierarchy
80
- hierarchy.push(
81
- levelMap[item.level][levelMap[item.level].length - 1]
82
- )
90
+ hierarchy.push(itemWithChildren)
83
91
  } else {
84
92
  // Non-top-level items are added as children of the last item at the previous level
85
93
  const parentLevel = levelMap[item.level - 1]
86
94
  if (parentLevel) {
87
95
  const parent = parentLevel[parentLevel.length - 1]
88
- parent.children.push(
89
- levelMap[item.level][levelMap[item.level].length - 1]
90
- )
96
+ parent.children.push(itemWithChildren)
91
97
  }
92
98
  }
93
99
  })
@@ -1,9 +1,34 @@
1
- import {FormatCitations} from "../../citations/format.js"
2
1
  import {escapeText} from "fwtoolkit"
2
+
3
+ import {FormatCitations} from "../../citations/format.js"
3
4
  import {BIBLIOGRAPHY_HEADERS} from "../../schema/i18n.js"
5
+ import type {BibDB, CSL, DocSettings} from "../../types.js"
6
+
7
+ interface CitationLayout {
8
+ prefix?: string
9
+ suffix?: string
10
+ delimiter?: string
11
+ }
12
+
13
+ interface CSLStyleChild {
14
+ name: string
15
+ children?: CSLStyleChild[]
16
+ attrs?: Record<string, unknown>
17
+ }
4
18
 
5
19
  export class HTMLExporterCitations {
6
- constructor(docSettings, bibDB, csl) {
20
+ docSettings: DocSettings
21
+ bibDB: BibDB
22
+ csl: CSL
23
+
24
+ citationTexts: string[]
25
+ citFm: FormatCitations | false
26
+ bibHTML: string
27
+ bibCSS: string
28
+ htmlIdConvert: Record<string, number>
29
+ citInfos: Record<string, unknown>[]
30
+
31
+ constructor(docSettings: DocSettings, bibDB: BibDB, csl: CSL) {
7
32
  this.docSettings = docSettings
8
33
  this.bibDB = bibDB
9
34
  this.csl = csl
@@ -13,9 +38,15 @@ export class HTMLExporterCitations {
13
38
  this.bibHTML = ""
14
39
  this.bibCSS = ""
15
40
  this.htmlIdConvert = {}
41
+ this.citInfos = []
16
42
  }
17
43
 
18
- async init(citInfos) {
44
+ async init(citInfos: Record<string, unknown>[]): Promise<{
45
+ type: string
46
+ bibCSS: string
47
+ bibHTML: string
48
+ citationTexts: string[]
49
+ }> {
19
50
  this.citInfos = citInfos
20
51
  if (!citInfos.length) {
21
52
  return this.getOutput()
@@ -24,7 +55,12 @@ export class HTMLExporterCitations {
24
55
  return this.getOutput()
25
56
  }
26
57
 
27
- getOutput() {
58
+ getOutput(): {
59
+ type: string
60
+ bibCSS: string
61
+ bibHTML: string
62
+ citationTexts: string[]
63
+ } {
28
64
  return {
29
65
  type: this.citFm ? this.citFm.citationType : "",
30
66
  bibCSS: this.bibCSS,
@@ -35,46 +71,58 @@ export class HTMLExporterCitations {
35
71
 
36
72
  // Citations are highly interdependent -- so we need to format them all
37
73
  // together before laying out the document.
38
- async formatCitations() {
74
+ async formatCitations(): Promise<void> {
75
+ if (!this.csl.getStyle) {
76
+ return
77
+ }
39
78
  const citationstyle = await this.csl.getStyle(
40
- this.docSettings.citationstyle
79
+ this.docSettings.citationstyle || ""
41
80
  )
42
81
 
43
- const modStyle = JSON.parse(JSON.stringify(citationstyle))
82
+ const modStyle = JSON.parse(JSON.stringify(citationstyle)) as {
83
+ children: CSLStyleChild[]
84
+ }
44
85
  const citationLayout = modStyle.children
45
- .find(section => section.name === "citation")
46
- .children.find(section => section.name === "layout").attrs
47
- const origCitationLayout = JSON.parse(JSON.stringify(citationLayout))
86
+ .find(section => section.name === "citation")!
87
+ .children!.find(section => section.name === "layout")!.attrs as CitationLayout
88
+ const origCitationLayout = JSON.parse(
89
+ JSON.stringify(citationLayout)
90
+ ) as CitationLayout
48
91
  citationLayout.prefix = "{{prefix}}"
49
92
  citationLayout.suffix = "{{suffix}}"
50
93
  citationLayout.delimiter = "{{delimiter}}"
51
- this.citFm = new FormatCitations(
94
+ const citFm = new FormatCitations(
52
95
  this.csl,
53
- this.citInfos,
54
- modStyle,
96
+ this.citInfos as any,
97
+ modStyle as any,
55
98
  "",
56
99
  this.bibDB,
57
100
  false,
58
101
  this.docSettings.language
59
102
  )
103
+ this.citFm = citFm
60
104
 
61
- await this.citFm.init()
105
+ await (citFm.init() as Promise<void>)
62
106
 
63
107
  // We need to add links to the bibliography items. And there may be more than one work cited
64
108
  // so we need to first split, then add the links and eventually put the citation back together
65
109
  // again.
66
110
  // The IDs used in the html bibliography are 1 and up in this order
67
- this.citFm.bibliography[0].entry_ids.forEach(
111
+ const bibliography = citFm.bibliography
112
+ if (!bibliography) {
113
+ return
114
+ }
115
+ bibliography[0].entry_ids.forEach(
68
116
  (id, index) => (this.htmlIdConvert[id] = index + 1)
69
117
  )
70
- this.citationTexts = this.citFm.citationTexts.map((ref, index) => {
118
+ this.citationTexts = citFm.citationTexts.map((ref, index) => {
71
119
  const content = ref
72
120
  .split("{{delimiter}}")
73
121
  .map((citationText, conIndex) => {
74
122
  const prefixSplit = citationText.split("{{prefix}}")
75
123
  const prefix =
76
124
  prefixSplit.length > 1
77
- ? prefixSplit.shift() +
125
+ ? prefixSplit.shift()! +
78
126
  (origCitationLayout.prefix || "")
79
127
  : ""
80
128
  citationText = prefixSplit[0]
@@ -82,11 +130,11 @@ export class HTMLExporterCitations {
82
130
  const suffix =
83
131
  suffixSplit.length > 1
84
132
  ? (origCitationLayout.suffix || "") +
85
- suffixSplit.pop()
133
+ suffixSplit.pop()!
86
134
  : ""
87
135
  citationText = suffixSplit[0]
88
- const citId =
89
- this.citFm.citations[index].sortedItems[conIndex][1].id
136
+ const sortedItems = ((citFm.citations[index] as unknown as {sortedItems: Array<[unknown, {id: string}]>}).sortedItems)
137
+ const citId = sortedItems[conIndex][1].id
90
138
  const htmlId = this.htmlIdConvert[citId]
91
139
  return `${prefix}<a class="bibliography" href="#ref-${htmlId}">${citationText}</a>${suffix}`
92
140
  })
@@ -95,27 +143,27 @@ export class HTMLExporterCitations {
95
143
  })
96
144
 
97
145
  if (
98
- this.citFm.bibliography?.length &&
99
- this.citFm.bibliography[0].entry_ids.length
146
+ bibliography?.length &&
147
+ bibliography[0].entry_ids.length
100
148
  ) {
101
- this.assembleBib()
149
+ this.assembleBib(citFm, bibliography)
102
150
  }
103
151
  }
104
152
 
105
- assembleBib() {
153
+ assembleBib(citFm: FormatCitations, bibliography: import("../../types.js").BibliographyResult): void {
106
154
  const bibliographyHeader =
107
- this.docSettings.bibliography_header[this.docSettings.language] ||
108
- BIBLIOGRAPHY_HEADERS[this.docSettings.language]
109
- let bibHTML = `<h1 class="doc-bibliography-header">${escapeText(bibliographyHeader)}</h1>`
110
- bibHTML += this.citFm.bibliography[0].bibstart
111
- bibHTML += this.citFm.bibliography[1]
155
+ (this.docSettings.bibliography_header as Record<string, string> | undefined)?.[this.docSettings.language || "en-US"] ||
156
+ (BIBLIOGRAPHY_HEADERS as Record<string, string>)[this.docSettings.language || "en-US"]
157
+ let bibHTML = `<h1 class="doc-bibliography-header">${escapeText(bibliographyHeader || "Bibliography")}</h1>`
158
+ bibHTML += bibliography[0].bibstart
159
+ bibHTML += bibliography[1]
112
160
  .map(
113
161
  (reference, index) =>
114
162
  `<div id="ref-${index + 1}">${reference}</div>`
115
163
  )
116
164
  .join("")
117
- bibHTML += this.citFm.bibliography[0].bibend
165
+ bibHTML += bibliography[0].bibend
118
166
  this.bibHTML = bibHTML
119
- this.bibCSS = this.citFm.bibCSS
167
+ this.bibCSS = citFm.bibCSS
120
168
  }
121
169
  }