@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,15 +1,37 @@
1
1
  import {convertLatexToMathMl} from "mathlive"
2
2
 
3
3
  import {escapeText} from "fwtoolkit"
4
- import {CATS} from "../../schema/i18n.js"
5
-
4
+ import {getCat} from "../../schema/i18n.js"
5
+ import type {BibDB, CSL, ExportDoc, FidusNode, ImageDB} from "../../types.js"
6
+ import {FormatCitations} from "../../citations/format.js"
6
7
  import {removeHidden} from "../tools/doc_content.js"
7
8
 
8
9
  import {JATSExporterCitations} from "./citations.js"
9
10
  import {convertText} from "./text.js"
10
11
 
11
12
  export class JATSExporterConverter {
12
- constructor(type, doc, csl, imageDB, bibDB) {
13
+ type: string
14
+ doc: ExportDoc
15
+ csl: CSL
16
+ imageDB: ImageDB
17
+ bibDB: BibDB
18
+ imageIds: string[]
19
+ categoryCounter: Record<string, number>
20
+ affiliations: Record<string, number>
21
+ affCounter: number
22
+ parCounter: number
23
+ headingCounter: number
24
+ currentSectionLevel: number
25
+ listCounter: number
26
+ orderedListLengths: number[]
27
+ footnotes: string[]
28
+ fnCounter: number
29
+ frontMatter: any
30
+ citInfos: any[]
31
+ citationCount: number
32
+ citations: JATSExporterCitations
33
+
34
+ constructor(type: string, doc: ExportDoc, csl: CSL, imageDB: ImageDB, bibDB: BibDB) {
13
35
  this.type = type
14
36
  this.doc = doc
15
37
  this.csl = csl
@@ -46,8 +68,8 @@ export class JATSExporterConverter {
46
68
  )
47
69
  }
48
70
 
49
- init() {
50
- const docContent = removeHidden(this.doc.content)
71
+ init(): Promise<{front: string; body: string; back: string; imageIds: string[]}> {
72
+ const docContent = removeHidden(this.doc.content) as FidusNode
51
73
  this.preWalkJson(docContent)
52
74
  this.findAllCitations(docContent)
53
75
  return this.citations.init(this.citInfos).then(() => {
@@ -67,7 +89,7 @@ export class JATSExporterConverter {
67
89
  }
68
90
 
69
91
  // Remove items from the body that should be in the front.
70
- preWalkJson(node, parentNode = false) {
92
+ preWalkJson(node: any, parentNode: any = false): void {
71
93
  switch (node.type) {
72
94
  case "doc":
73
95
  this.frontMatter.copyright = node.attrs.copyright
@@ -75,7 +97,7 @@ export class JATSExporterConverter {
75
97
  case "title":
76
98
  this.frontMatter.title["default"] = node
77
99
  parentNode.content = parentNode.content.filter(
78
- child => child !== node
100
+ (child: any) => child !== node
79
101
  )
80
102
  break
81
103
  case "heading_part":
@@ -101,7 +123,7 @@ export class JATSExporterConverter {
101
123
  content: node.content[0].content
102
124
  }
103
125
  parentNode.content = parentNode.content.filter(
104
- child => child !== node
126
+ (child: any) => child !== node
105
127
  )
106
128
  }
107
129
  break
@@ -124,7 +146,7 @@ export class JATSExporterConverter {
124
146
  content: node.content
125
147
  }
126
148
  parentNode.content = parentNode.content.filter(
127
- child => child !== node
149
+ (child: any) => child !== node
128
150
  )
129
151
  }
130
152
  break
@@ -141,24 +163,24 @@ export class JATSExporterConverter {
141
163
  this.frontMatter.tags.push(node)
142
164
  }
143
165
  parentNode.content = parentNode.content.filter(
144
- child => child !== node
166
+ (child: any) => child !== node
145
167
  )
146
168
  break
147
169
  case "contributors_part":
148
170
  this.frontMatter.contributors.push(node)
149
171
  parentNode.content = parentNode.content.filter(
150
- child => child !== node
172
+ (child: any) => child !== node
151
173
  )
152
174
  break
153
175
  default:
154
176
  break
155
177
  }
156
178
  if (node.content) {
157
- node.content.forEach(child => this.preWalkJson(child, node))
179
+ node.content.forEach((child: any) => this.preWalkJson(child, node))
158
180
  }
159
181
  }
160
182
 
161
- findAllCitations(docContent) {
183
+ findAllCitations(docContent: any): void {
162
184
  // We need to look for citations in the same order they will be found in front + body
163
185
  // to get the formatting right.
164
186
  if (this.frontMatter.subtitle.default) {
@@ -183,29 +205,29 @@ export class JATSExporterConverter {
183
205
  this.findCitations(docContent)
184
206
  }
185
207
 
186
- findCitations(node) {
208
+ findCitations(node: any): void {
187
209
  switch (node.type) {
188
210
  case "citation":
189
211
  this.citInfos.push(JSON.parse(JSON.stringify(node.attrs)))
190
212
  break
191
213
  case "footnote":
192
- node.attrs.footnote.forEach(child => this.findCitations(child))
214
+ node.attrs.footnote.forEach((child: any) => this.findCitations(child))
193
215
  break
194
216
  default:
195
217
  break
196
218
  }
197
219
  if (node.content) {
198
- node.content.forEach(child => this.findCitations(child))
220
+ node.content.forEach((child: any) => this.findCitations(child))
199
221
  }
200
222
  }
201
223
 
202
- assembleArticleFront() {
224
+ assembleArticleFront(): string {
203
225
  let front = "<front>"
204
226
  front +=
205
227
  "<journal-meta><journal-id></journal-id><issn></issn></journal-meta>" // Required by DTD
206
228
  front += "<article-meta>"
207
229
  if (this.frontMatter.tags.length) {
208
- front += `<article-categories>${this.frontMatter.tags.map(node => this.walkJson(node)).join("")}</article-categories>`
230
+ front += `<article-categories>${this.frontMatter.tags.map((node: any) => this.walkJson(node)).join("")}</article-categories>`
209
231
  }
210
232
  Object.keys(this.frontMatter.subtitle)
211
233
  .filter(language => language !== "default")
@@ -234,12 +256,12 @@ export class JATSExporterConverter {
234
256
  front += "</trans-title-group>"
235
257
  })
236
258
  front += "</title-group>"
237
- this.frontMatter.contributors.forEach(contributors => {
259
+ this.frontMatter.contributors.forEach((contributors: any) => {
238
260
  front += this.walkJson(contributors)
239
261
  })
240
262
  Object.entries(this.affiliations).forEach(
241
263
  ([institution, index]) =>
242
- (front += `<aff id="aff${index}"><institution>${escapeText(institution)}</institution></aff>`)
264
+ (front += `<aff id="aff${index}"><institution>${escapeText(institution as string)}</institution></aff>`)
243
265
  )
244
266
  // https://validator.jats4r.org/ requires a <permissions> element here, but is OK with it being empty.
245
267
  if (this.frontMatter.copyright.holder) {
@@ -254,7 +276,7 @@ export class JATSExporterConverter {
254
276
  }
255
277
  front += this.frontMatter.copyright.licenses
256
278
  .map(
257
- license =>
279
+ (license: any) =>
258
280
  `<license><ali:license_ref${license.start ? ` start_date="${license.start}"` : ""}>${escapeText(license.url)}</ali:license_ref></license>`
259
281
  )
260
282
  .join("")
@@ -272,17 +294,17 @@ export class JATSExporterConverter {
272
294
  front += this.walkJson(this.frontMatter.abstract[language])
273
295
  front += this.closeSections(0)
274
296
  })
275
- this.frontMatter.keywords.forEach(keywords => {
297
+ this.frontMatter.keywords.forEach((keywords: any) => {
276
298
  front += this.walkJson(keywords)
277
299
  })
278
300
  front += "</article-meta></front>"
279
301
  return front
280
302
  }
281
303
 
282
- assembleBookPartFront() {
304
+ assembleBookPartFront(): string {
283
305
  let front = "<front-matter><book-part-meta>"
284
306
  if (this.frontMatter.tags.length) {
285
- front += `<subj-group>${this.frontMatter.tags.map(node => this.walkJson(node)).join("")}</subj-group>`
307
+ front += `<subj-group>${this.frontMatter.tags.map((node: any) => this.walkJson(node)).join("")}</subj-group>`
286
308
  }
287
309
  Object.keys(this.frontMatter.subtitle)
288
310
  .filter(language => language !== "default")
@@ -311,12 +333,12 @@ export class JATSExporterConverter {
311
333
  front += "</trans-title-group>"
312
334
  })
313
335
  front += "</title-group>"
314
- this.frontMatter.contributors.forEach(contributors => {
336
+ this.frontMatter.contributors.forEach((contributors: any) => {
315
337
  front += this.walkJson(contributors)
316
338
  })
317
339
  Object.entries(this.affiliations).forEach(
318
340
  ([institution, index]) =>
319
- (front += `<aff id="aff${index}"><institution>${escapeText(institution)}</institution></aff>`)
341
+ (front += `<aff id="aff${index}"><institution>${escapeText(institution as string)}</institution></aff>`)
320
342
  )
321
343
  // https://validator.jats4r.org/ requires a <permissions> element here, but is OK with it being empty.
322
344
  if (this.frontMatter.copyright.holder) {
@@ -331,7 +353,7 @@ export class JATSExporterConverter {
331
353
  }
332
354
  front += this.frontMatter.copyright.licenses
333
355
  .map(
334
- license =>
356
+ (license: any) =>
335
357
  `<license><ali:license_ref${license.start ? ` start_date="${license.start}"` : ""}>${escapeText(license.url)}</ali:license_ref></license>`
336
358
  )
337
359
  .join("")
@@ -349,14 +371,14 @@ export class JATSExporterConverter {
349
371
  front += this.walkJson(this.frontMatter.abstract[language])
350
372
  front += this.closeSections(0)
351
373
  })
352
- this.frontMatter.keywords.forEach(keywords => {
374
+ this.frontMatter.keywords.forEach((keywords: any) => {
353
375
  front += this.walkJson(keywords)
354
376
  })
355
377
  front += "</book-part-meta></front-matter>"
356
378
  return front
357
379
  }
358
380
 
359
- walkJson(node, options = {}) {
381
+ walkJson(node: any, options: any = {}): string {
360
382
  let start = "",
361
383
  content = "",
362
384
  end = ""
@@ -404,7 +426,7 @@ export class JATSExporterConverter {
404
426
  break
405
427
  case "contributors_part":
406
428
  if (node.content) {
407
- const contributorTypes = {
429
+ const contributorTypes: Record<string, string> = {
408
430
  authors: "author",
409
431
  editors: "editor",
410
432
  translators: "translator",
@@ -417,7 +439,7 @@ export class JATSExporterConverter {
417
439
  end = "</contrib-group>" + end
418
440
  const contributorTypeId = node.attrs.id
419
441
  let counter = 1
420
- node.content.forEach(childNode => {
442
+ node.content.forEach((childNode: any) => {
421
443
  const contributor = childNode.attrs
422
444
  if (contributor.firstname || contributor.lastname) {
423
445
  content += `<contrib id="${contributorTypeId}-${counter++}" contrib-type="person">`
@@ -582,12 +604,8 @@ export class JATSExporterConverter {
582
604
  lastListIndex = this.orderedListLengths.lastIndexOf(
583
605
  continuedListEndNumber
584
606
  )
585
- // const lastListReverseIndex = this.orderedListLengths.slice().reverse().findIndex(length => length === continuedListEndNumber)
586
- // if (lastListReverseIndex !== undefined) {
587
- // lastListIndex = this.orderedListLengths.length-lastListReverseIndex
588
- // }
589
607
  }
590
- if (lastListIndex > -1) {
608
+ if (lastListIndex !== undefined && lastListIndex > -1) {
591
609
  start += `<list list-type="order" id="list-${++this.listCounter}" continued-from="list-${lastListIndex}">`
592
610
  } else {
593
611
  start += `<list list-type="order" id="list-${++this.listCounter}">`
@@ -657,7 +675,8 @@ export class JATSExporterConverter {
657
675
  this.citations.citationTexts[this.citationCount++]
658
676
  if (
659
677
  options.inFootnote ||
660
- this.citations.citFm.citationType !== "note"
678
+ (this.citations.citFm as FormatCitations).citationType !==
679
+ "note"
661
680
  ) {
662
681
  content += citationText
663
682
  } else {
@@ -674,19 +693,19 @@ export class JATSExporterConverter {
674
693
  // only allows <p> block level elements https://jats.nlm.nih.gov/archiving/tag-library/1.2/element/fn.html
675
694
  break
676
695
  }
677
- let imageFilename, copyright
696
+ let imageFilename: string | undefined, copyright: any
678
697
  const image =
679
- node.content.find(node => node.type === "image")?.attrs
698
+ node.content.find((node: any) => node.type === "image")?.attrs
680
699
  .image || false
681
700
  if (image !== false) {
682
701
  this.imageIds.push(image)
683
702
  const imageDBEntry = this.imageDB.db[image],
684
703
  filePathName = imageDBEntry.image
685
704
  copyright = imageDBEntry.copyright
686
- imageFilename = filePathName.split("/").pop()
705
+ imageFilename = filePathName!.toString().split("/").pop()
687
706
  }
688
707
  const caption = node.attrs.caption
689
- ? node.content.find(node => node.type === "figure_caption")
708
+ ? node.content.find((node: any) => node.type === "figure_caption")
690
709
  ?.content || []
691
710
  : []
692
711
  if (
@@ -696,7 +715,7 @@ export class JATSExporterConverter {
696
715
  (!copyright || !copyright.holder)
697
716
  ) {
698
717
  content += `<graphic id="${node.attrs.id}" position="anchor" xlink:href="${imageFilename}">`
699
- content += `<alt-text>${escapeText(caption.map(node => node.text || "").join("") || imageFilename)}</alt-text>`
718
+ content += `<alt-text>${escapeText(caption.map((node: any) => node.text || "").join("") || imageFilename)}</alt-text>`
700
719
  content += "</graphic>"
701
720
  } else {
702
721
  start += `<fig id="${node.attrs.id}">`
@@ -708,14 +727,14 @@ export class JATSExporterConverter {
708
727
  this.categoryCounter[category] = 0
709
728
  }
710
729
  const catCount = ++this.categoryCounter[category]
711
- const catLabel = `${CATS[category][this.doc.settings.language]} ${catCount}`
730
+ const catLabel = `${getCat(category, this.doc.settings.language || "en-US")} ${catCount}`
712
731
  start += `<label>${escapeText(catLabel)}</label>`
713
732
  }
714
733
  if (caption.length) {
715
- start += `<caption><p>${caption.map(node => this.walkJson(node)).join("")}</p></caption>`
734
+ start += `<caption><p>${caption.map((node: any) => this.walkJson(node)).join("")}</p></caption>`
716
735
  }
717
736
  const equation = node.content.find(
718
- node => node.type === "figure_equation"
737
+ (node: any) => node.type === "figure_equation"
719
738
  )?.attrs.equation
720
739
  if (equation) {
721
740
  start += "<disp-formula>"
@@ -740,7 +759,7 @@ export class JATSExporterConverter {
740
759
  }
741
760
  start += copyright.licenses
742
761
  .map(
743
- license =>
762
+ (license: any) =>
744
763
  `<license><ali:license_ref${license.start ? ` start_date="${license.start}"` : ""}>${escapeText(license.url)}</ali:license_ref></license>`
745
764
  )
746
765
  .join("")
@@ -748,7 +767,7 @@ export class JATSExporterConverter {
748
767
  }
749
768
  if (imageFilename) {
750
769
  content += `<graphic position="anchor" xlink:href="${imageFilename}">`
751
- content += `<alt-text>${escapeText(caption.map(node => node.text || "").join("") || imageFilename)}</alt-text>`
770
+ content += `<alt-text>${escapeText(caption.map((node: any) => node.text || "").join("") || imageFilename)}</alt-text>`
752
771
  content += "</graphic>"
753
772
  }
754
773
  }
@@ -778,14 +797,14 @@ export class JATSExporterConverter {
778
797
  this.categoryCounter[category] = 0
779
798
  }
780
799
  const catCount = ++this.categoryCounter[category]
781
- const catLabel = `${CATS[category][this.doc.settings.language]} ${catCount}`
800
+ const catLabel = `${getCat(category, this.doc.settings.language || "en-US")} ${catCount}`
782
801
  start += `<label>${escapeText(catLabel)}</label>`
783
802
  }
784
803
  const caption = node.attrs.caption
785
804
  ? node.content[0].content || []
786
805
  : []
787
806
  if (caption.length) {
788
- start += `<caption><p>${caption.map(node => this.walkJson(node)).join("")}</p></caption>`
807
+ start += `<caption><p>${caption.map((node: any) => this.walkJson(node)).join("")}</p></caption>`
789
808
  }
790
809
  start += `<table width="${node.attrs.width}%"><tbody>`
791
810
  end = "</tbody></table>" + end
@@ -835,7 +854,7 @@ export class JATSExporterConverter {
835
854
  }
836
855
 
837
856
  if (!content.length && node.content) {
838
- node.content.forEach(child => {
857
+ node.content.forEach((child: any) => {
839
858
  content += this.walkJson(child, options)
840
859
  })
841
860
  }
@@ -843,7 +862,7 @@ export class JATSExporterConverter {
843
862
  return start + content + end
844
863
  }
845
864
 
846
- closeSections(targetLevel) {
865
+ closeSections(targetLevel: number): string {
847
866
  let returnValue = ""
848
867
  while (this.currentSectionLevel > targetLevel) {
849
868
  returnValue += "</sec>"
@@ -853,11 +872,11 @@ export class JATSExporterConverter {
853
872
  return returnValue
854
873
  }
855
874
 
856
- assembleBody(docContent) {
875
+ assembleBody(docContent: any): string {
857
876
  return `<body id="body">${this.walkJson(docContent) + this.closeSections(0)}</body>`
858
877
  }
859
878
 
860
- assembleBack() {
879
+ assembleBack(): string {
861
880
  let back = "<back>"
862
881
  if (this.footnotes.length) {
863
882
  back += `<fn-group>${this.footnotes.join("")}</fn-group>`
@@ -0,0 +1,132 @@
1
+ import download from "downloadjs"
2
+ import pretty from "pretty"
3
+
4
+ import {shortFileTitle} from "fwtoolkit"
5
+ import type {BibDB, CSL, ExportDoc, ImageDB} from "../../types.js"
6
+ import {createSlug} from "../tools/file.js"
7
+ import {ZipFileCreator} from "../tools/zip.js"
8
+ import {JATSExporterConverter} from "./convert.js"
9
+ import {
10
+ articleTemplate,
11
+ bookPartWrapperTemplate,
12
+ darManifest
13
+ } from "./templates.js"
14
+
15
+ /*
16
+ Exporter to JATS
17
+ */
18
+
19
+ export class JATSExporter {
20
+ doc: ExportDoc
21
+ docTitle: string
22
+ bibDB: BibDB
23
+ imageDB: ImageDB
24
+ csl: CSL
25
+ updated: any
26
+ type: string
27
+
28
+ zipFileName: string | false
29
+ textFiles: Array<{filename: string; contents: string}>
30
+ httpFiles: Array<{filename: string; url: string}>
31
+
32
+ converter: any
33
+
34
+ constructor(
35
+ doc: ExportDoc,
36
+ bibDB: BibDB,
37
+ imageDB: ImageDB,
38
+ csl: CSL,
39
+ updated: any,
40
+ type: string
41
+ ) {
42
+ this.doc = doc
43
+ this.docTitle = shortFileTitle(this.doc.title, this.doc.path || "")
44
+ this.bibDB = bibDB
45
+ this.imageDB = imageDB
46
+ this.csl = csl
47
+ this.updated = updated
48
+ this.type = type // "article", "book-part-wrapper" (for documents) or "book" (for document collections)
49
+
50
+ this.zipFileName = false
51
+ this.textFiles = []
52
+ this.httpFiles = []
53
+ }
54
+
55
+ init(): Promise<void> {
56
+ const fileFormat = this.type === "article" ? "jats" : "bits"
57
+ this.zipFileName = `${createSlug(this.docTitle)}.${fileFormat}.zip`
58
+ this.converter = new JATSExporterConverter(
59
+ this.type,
60
+ this.doc,
61
+ this.csl,
62
+ this.imageDB,
63
+ this.bibDB
64
+ )
65
+ return this.converter
66
+ .init()
67
+ .then(
68
+ ({
69
+ front,
70
+ body,
71
+ back,
72
+ imageIds
73
+ }: {
74
+ front: string
75
+ body: string
76
+ back: string
77
+ imageIds: string[]
78
+ }) => {
79
+ const jats =
80
+ this.type === "article"
81
+ ? articleTemplate({front, body, back})
82
+ : bookPartWrapperTemplate({front, body, back})
83
+ this.textFiles.push({
84
+ filename: "manuscript.xml",
85
+ contents: pretty(jats, {ocd: true})
86
+ })
87
+ const images = imageIds.map(id => {
88
+ const imageEntry = this.imageDB.db[id]
89
+ return {
90
+ title: imageEntry.title || "",
91
+ filename: imageEntry.image!.toString().split("/").pop()!,
92
+ url: imageEntry.image as string
93
+ }
94
+ })
95
+ this.textFiles.push({
96
+ filename: "manifest.xml",
97
+ contents: pretty(
98
+ darManifest({
99
+ title: this.docTitle,
100
+ type: this.type,
101
+ images
102
+ }),
103
+ {ocd: true}
104
+ )
105
+ })
106
+ images.forEach(image => {
107
+ this.httpFiles.push({
108
+ filename: image.filename,
109
+ url: image.url
110
+ })
111
+ })
112
+
113
+ return this.createZip()
114
+ }
115
+ )
116
+ }
117
+
118
+ createZip(): Promise<void> {
119
+ const zipper = new ZipFileCreator(
120
+ this.textFiles,
121
+ this.httpFiles,
122
+ undefined,
123
+ undefined,
124
+ this.updated
125
+ )
126
+ return zipper.init().then(blob => this.download(blob))
127
+ }
128
+
129
+ download(blob: Blob): void {
130
+ return download(blob, this.zipFileName as string, "application/zip")
131
+ }
132
+ }
@@ -1,18 +1,34 @@
1
1
  import {escapeText, noSpaceTmp} from "fwtoolkit"
2
2
 
3
- export const articleTemplate = ({front, body, back}) =>
3
+ interface ArticleTemplateOptions {
4
+ front: string
5
+ body: string
6
+ back: string
7
+ }
8
+
9
+ interface DarManifestOptions {
10
+ images: Array<{filename: string; title: string}>
11
+ title: string
12
+ type: string
13
+ }
14
+
15
+ export const articleTemplate = ({front, body, back}: ArticleTemplateOptions): string =>
4
16
  `<?xml version="1.0" encoding="UTF-8"?>
5
17
  <!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "https://jats.nlm.nih.gov/archiving/1.3/JATS-archivearticle1-3.dtd">
6
18
  <article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ali="http://www.niso.org/schemas/ali/1.0/" xmlns:mml="http://www.w3.org/1998/Math/MathML">${front}${body}${back}</article>`
7
19
 
8
- export const bookPartWrapperTemplate = ({front, body, back}) =>
20
+ export const bookPartWrapperTemplate = ({
21
+ front,
22
+ body,
23
+ back
24
+ }: ArticleTemplateOptions): string =>
9
25
  `<?xml version="1.0" encoding="UTF-8"?>
10
26
  <!DOCTYPE book-part-wrapper PUBLIC "-//NLM//DTD BITS Book Interchange DTD v2.1 20220202//EN" "https://jats.nlm.nih.gov/extensions/bits/2.1/BITS-book2-1.dtd">
11
27
  <book-part-wrapper dtd-version="2.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ali="http://www.niso.org/schemas/ali/1.0/">
12
28
  <book-part book-part-type="chapter" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ali="http://www.niso.org/schemas/ali/1.0/" xmlns:mml="http://www.w3.org/1998/Math/MathML">${front}${body}${back}</book-part>
13
29
  </book-part-wrapper>`
14
30
 
15
- export const darManifest = ({images, title, type}) =>
31
+ export const darManifest = ({images, title, type}: DarManifestOptions): string =>
16
32
  noSpaceTmp`<?xml version="1.0" encoding="UTF-8"?>
17
33
  <!DOCTYPE manifest PUBLIC "DarManifest 0.1.0" "http://darformat.org/DarManifest-0.1.0.dtd">
18
34
  <dar>
@@ -1,10 +1,12 @@
1
1
  import {escapeText} from "fwtoolkit"
2
2
 
3
- export function convertTexts(nodeList) {
3
+ import type {FidusNode} from "../../types.js"
4
+
5
+ export function convertTexts(nodeList: FidusNode[]): string {
4
6
  return nodeList.map(node => convertText(node)).join("")
5
7
  }
6
8
 
7
- export function convertText(node) {
9
+ export function convertText(node: FidusNode): string {
8
10
  let start = ""
9
11
  let end = ""
10
12
  let strong, em, underline, hyperlink, anchor, sup, sub, code
@@ -19,7 +21,7 @@ export function convertText(node) {
19
21
  sub = node.marks.find(mark => mark.type === "sub")
20
22
  code = node.marks.find(mark => mark.type === "code")
21
23
  }
22
- let attrs = anchor ? ` id="${anchor.attrs.id}"` : ""
24
+ let attrs = anchor ? ` id="${anchor.attrs?.id}"` : ""
23
25
  if (em) {
24
26
  start += `<italic${attrs}>`
25
27
  end = "</italic>" + end
@@ -51,14 +53,14 @@ export function convertText(node) {
51
53
  attrs = ""
52
54
  }
53
55
  if (hyperlink) {
54
- const href = hyperlink.attrs.href
56
+ const href = hyperlink.attrs?.href as string
55
57
  if (href[0] === "#") {
56
58
  // Internal link
57
59
  start += `<xref rid="${href.substring(1)}"${attrs}>`
58
60
  end = "</xref>" + end
59
61
  } else {
60
62
  // External link
61
- start += `<ext-link xlink:href="${escapeText(href)}" ext-link-type="uri" xlink:title="${escapeText(hyperlink.attrs.title)}"${attrs}>`
63
+ start += `<ext-link xlink:href="${escapeText(href)}" ext-link-type="uri" xlink:title="${escapeText(hyperlink.attrs?.title as string)}"${attrs}>`
62
64
  end = "</ext-link>" + end
63
65
  }
64
66
  attrs = ""
@@ -68,5 +70,5 @@ export function convertText(node) {
68
70
  end = "</named-content>" + end
69
71
  attrs = ""
70
72
  }
71
- return start + escapeText(node.text) + end
73
+ return start + escapeText(node.text || "") + end
72
74
  }