@fiduswriter/document 0.1.0-alpha.3 → 0.1.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (582) hide show
  1. package/README.md +22 -1
  2. package/dist/bibliography/common.d.ts +10 -0
  3. package/dist/bibliography/common.d.ts.map +1 -0
  4. package/dist/bibliography/common.js +86 -0
  5. package/dist/bibliography/common.js.map +1 -0
  6. package/dist/bibliography/csl_bib.d.ts +3 -0
  7. package/dist/bibliography/csl_bib.d.ts.map +1 -0
  8. package/dist/bibliography/csl_bib.js +131 -0
  9. package/dist/bibliography/csl_bib.js.map +1 -0
  10. package/dist/citations/citeproc_sys.d.ts +12 -0
  11. package/dist/citations/citeproc_sys.d.ts.map +1 -0
  12. package/dist/citations/citeproc_sys.js +48 -0
  13. package/dist/citations/citeproc_sys.js.map +1 -0
  14. package/dist/citations/format.d.ts +40 -0
  15. package/dist/citations/format.d.ts.map +1 -0
  16. package/dist/citations/format.js +186 -0
  17. package/dist/citations/format.js.map +1 -0
  18. package/dist/editor/e2ee/encryptor.d.ts +123 -0
  19. package/dist/editor/e2ee/encryptor.d.ts.map +1 -0
  20. package/dist/editor/e2ee/encryptor.js +201 -0
  21. package/dist/editor/e2ee/encryptor.js.map +1 -0
  22. package/dist/exporter/docx/citations.d.ts +31 -0
  23. package/dist/exporter/docx/citations.d.ts.map +1 -0
  24. package/dist/exporter/docx/citations.js +171 -0
  25. package/dist/exporter/docx/citations.js.map +1 -0
  26. package/dist/exporter/docx/comments.d.ts +22 -0
  27. package/dist/exporter/docx/comments.d.ts.map +1 -0
  28. package/dist/exporter/docx/comments.js +170 -0
  29. package/dist/exporter/docx/comments.js.map +1 -0
  30. package/dist/exporter/docx/footnotes.d.ts +47 -0
  31. package/dist/exporter/docx/footnotes.d.ts.map +1 -0
  32. package/dist/exporter/docx/footnotes.js +216 -0
  33. package/dist/exporter/docx/footnotes.js.map +1 -0
  34. package/dist/exporter/docx/images.d.ts +25 -0
  35. package/dist/exporter/docx/images.d.ts.map +1 -0
  36. package/dist/exporter/docx/images.js +101 -0
  37. package/dist/exporter/docx/images.js.map +1 -0
  38. package/dist/exporter/docx/index.d.ts +16 -0
  39. package/dist/exporter/docx/index.d.ts.map +1 -0
  40. package/dist/exporter/docx/index.js +115 -0
  41. package/dist/exporter/docx/index.js.map +1 -0
  42. package/dist/exporter/docx/lists.d.ts +38 -0
  43. package/dist/exporter/docx/lists.d.ts.map +1 -0
  44. package/dist/exporter/docx/lists.js +276 -0
  45. package/dist/exporter/docx/lists.js.map +1 -0
  46. package/dist/exporter/docx/math.d.ts +13 -0
  47. package/dist/exporter/docx/math.d.ts.map +1 -0
  48. package/dist/exporter/docx/math.js +59 -0
  49. package/dist/exporter/docx/math.js.map +1 -0
  50. package/dist/exporter/docx/metadata.d.ts +17 -0
  51. package/dist/exporter/docx/metadata.d.ts.map +1 -0
  52. package/dist/exporter/docx/metadata.js +272 -0
  53. package/dist/exporter/docx/metadata.js.map +1 -0
  54. package/dist/exporter/docx/rels.d.ts +27 -0
  55. package/dist/exporter/docx/rels.d.ts.map +1 -0
  56. package/dist/exporter/docx/rels.js +183 -0
  57. package/dist/exporter/docx/rels.js.map +1 -0
  58. package/dist/exporter/docx/render.d.ts +22 -0
  59. package/dist/exporter/docx/render.d.ts.map +1 -0
  60. package/dist/exporter/docx/render.js +780 -0
  61. package/dist/exporter/docx/render.js.map +1 -0
  62. package/dist/exporter/docx/richtext.d.ts +25 -0
  63. package/dist/exporter/docx/richtext.d.ts.map +1 -0
  64. package/dist/exporter/docx/richtext.js +1070 -0
  65. package/dist/exporter/docx/richtext.js.map +1 -0
  66. package/dist/exporter/docx/tables.d.ts +16 -0
  67. package/dist/exporter/docx/tables.d.ts.map +1 -0
  68. package/dist/exporter/docx/tables.js +115 -0
  69. package/dist/exporter/docx/tables.js.map +1 -0
  70. package/dist/exporter/docx/tools.d.ts +4 -0
  71. package/dist/exporter/docx/tools.d.ts.map +1 -0
  72. package/dist/exporter/docx/tools.js +48 -0
  73. package/dist/exporter/docx/tools.js.map +1 -0
  74. package/dist/exporter/epub/index.d.ts +19 -0
  75. package/dist/exporter/epub/index.d.ts.map +1 -0
  76. package/dist/exporter/epub/index.js +109 -0
  77. package/dist/exporter/epub/index.js.map +1 -0
  78. package/dist/exporter/epub/templates.d.ts +63 -0
  79. package/dist/exporter/epub/templates.d.ts.map +1 -0
  80. package/dist/exporter/epub/templates.js +95 -0
  81. package/dist/exporter/epub/templates.js.map +1 -0
  82. package/dist/exporter/epub/tools.d.ts +13 -0
  83. package/dist/exporter/epub/tools.d.ts.map +1 -0
  84. package/{src → dist}/exporter/epub/tools.js +32 -46
  85. package/dist/exporter/epub/tools.js.map +1 -0
  86. package/dist/exporter/html/citations.d.ts +29 -0
  87. package/dist/exporter/html/citations.d.ts.map +1 -0
  88. package/dist/exporter/html/citations.js +110 -0
  89. package/dist/exporter/html/citations.js.map +1 -0
  90. package/dist/exporter/html/convert.d.ts +50 -0
  91. package/dist/exporter/html/convert.d.ts.map +1 -0
  92. package/dist/exporter/html/convert.js +750 -0
  93. package/dist/exporter/html/convert.js.map +1 -0
  94. package/dist/exporter/html/index.d.ts +64 -0
  95. package/dist/exporter/html/index.d.ts.map +1 -0
  96. package/dist/exporter/html/index.js +154 -0
  97. package/dist/exporter/html/index.js.map +1 -0
  98. package/dist/exporter/html/templates.d.ts +24 -0
  99. package/dist/exporter/html/templates.d.ts.map +1 -0
  100. package/dist/exporter/html/templates.js +21 -0
  101. package/dist/exporter/html/templates.js.map +1 -0
  102. package/dist/exporter/html/tools.d.ts +2 -0
  103. package/dist/exporter/html/tools.d.ts.map +1 -0
  104. package/dist/exporter/html/tools.js +49 -0
  105. package/dist/exporter/html/tools.js.map +1 -0
  106. package/dist/exporter/jats/bibliography.d.ts +3 -0
  107. package/dist/exporter/jats/bibliography.d.ts.map +1 -0
  108. package/dist/exporter/jats/bibliography.js +158 -0
  109. package/dist/exporter/jats/bibliography.js.map +1 -0
  110. package/dist/exporter/jats/citations.d.ts +16 -0
  111. package/dist/exporter/jats/citations.d.ts.map +1 -0
  112. package/dist/exporter/jats/citations.js +105 -0
  113. package/dist/exporter/jats/citations.js.map +1 -0
  114. package/dist/exporter/jats/convert.d.ts +41 -0
  115. package/dist/exporter/jats/convert.d.ts.map +1 -0
  116. package/dist/exporter/jats/convert.js +816 -0
  117. package/dist/exporter/jats/convert.js.map +1 -0
  118. package/dist/exporter/jats/index.d.ts +25 -0
  119. package/dist/exporter/jats/index.d.ts.map +1 -0
  120. package/dist/exporter/jats/index.js +82 -0
  121. package/dist/exporter/jats/index.js.map +1 -0
  122. package/dist/exporter/jats/templates.d.ts +18 -0
  123. package/dist/exporter/jats/templates.d.ts.map +1 -0
  124. package/dist/exporter/jats/templates.js +25 -0
  125. package/dist/exporter/jats/templates.js.map +1 -0
  126. package/dist/exporter/jats/text.d.ts +4 -0
  127. package/dist/exporter/jats/text.d.ts.map +1 -0
  128. package/dist/exporter/jats/text.js +72 -0
  129. package/dist/exporter/jats/text.js.map +1 -0
  130. package/dist/exporter/latex/convert.d.ts +24 -0
  131. package/dist/exporter/latex/convert.d.ts.map +1 -0
  132. package/dist/exporter/latex/convert.js +881 -0
  133. package/dist/exporter/latex/convert.js.map +1 -0
  134. package/dist/exporter/latex/escape_latex.d.ts +2 -0
  135. package/dist/exporter/latex/escape_latex.d.ts.map +1 -0
  136. package/dist/exporter/latex/escape_latex.js +20 -0
  137. package/dist/exporter/latex/escape_latex.js.map +1 -0
  138. package/dist/exporter/latex/index.d.ts +24 -0
  139. package/dist/exporter/latex/index.d.ts.map +1 -0
  140. package/dist/exporter/latex/index.js +67 -0
  141. package/dist/exporter/latex/index.js.map +1 -0
  142. package/dist/exporter/latex/readme.d.ts +2 -0
  143. package/dist/exporter/latex/readme.d.ts.map +1 -0
  144. package/dist/exporter/latex/readme.js +23 -0
  145. package/dist/exporter/latex/readme.js.map +1 -0
  146. package/dist/exporter/native/copy.d.ts +30 -0
  147. package/dist/exporter/native/copy.d.ts.map +1 -0
  148. package/dist/exporter/native/copy.js +151 -0
  149. package/dist/exporter/native/copy.js.map +1 -0
  150. package/dist/exporter/native/file.d.ts +12 -0
  151. package/dist/exporter/native/file.d.ts.map +1 -0
  152. package/dist/exporter/native/file.js +38 -0
  153. package/dist/exporter/native/file.js.map +1 -0
  154. package/dist/exporter/native/index.d.ts +5 -0
  155. package/dist/exporter/native/index.d.ts.map +1 -0
  156. package/dist/exporter/native/index.js +5 -0
  157. package/dist/exporter/native/index.js.map +1 -0
  158. package/dist/exporter/native/revision.d.ts +18 -0
  159. package/dist/exporter/native/revision.d.ts.map +1 -0
  160. package/dist/exporter/native/revision.js +39 -0
  161. package/dist/exporter/native/revision.js.map +1 -0
  162. package/dist/exporter/native/shrink.d.ts +36 -0
  163. package/dist/exporter/native/shrink.d.ts.map +1 -0
  164. package/dist/exporter/native/shrink.js +124 -0
  165. package/dist/exporter/native/shrink.js.map +1 -0
  166. package/dist/exporter/native/zip.d.ts +25 -0
  167. package/dist/exporter/native/zip.d.ts.map +1 -0
  168. package/dist/exporter/native/zip.js +56 -0
  169. package/dist/exporter/native/zip.js.map +1 -0
  170. package/dist/exporter/odt/citations.d.ts +21 -0
  171. package/dist/exporter/odt/citations.d.ts.map +1 -0
  172. package/dist/exporter/odt/citations.js +104 -0
  173. package/dist/exporter/odt/citations.js.map +1 -0
  174. package/dist/exporter/odt/footnotes.d.ts +31 -0
  175. package/dist/exporter/odt/footnotes.d.ts.map +1 -0
  176. package/dist/exporter/odt/footnotes.js +129 -0
  177. package/dist/exporter/odt/footnotes.js.map +1 -0
  178. package/dist/exporter/odt/images.d.ts +25 -0
  179. package/dist/exporter/odt/images.d.ts.map +1 -0
  180. package/dist/exporter/odt/images.js +106 -0
  181. package/dist/exporter/odt/images.js.map +1 -0
  182. package/dist/exporter/odt/index.d.ts +17 -0
  183. package/dist/exporter/odt/index.d.ts.map +1 -0
  184. package/dist/exporter/odt/index.js +108 -0
  185. package/dist/exporter/odt/index.js.map +1 -0
  186. package/dist/exporter/odt/math.d.ts +15 -0
  187. package/dist/exporter/odt/math.d.ts.map +1 -0
  188. package/dist/exporter/odt/math.js +71 -0
  189. package/dist/exporter/odt/math.js.map +1 -0
  190. package/dist/exporter/odt/metadata.d.ts +18 -0
  191. package/dist/exporter/odt/metadata.d.ts.map +1 -0
  192. package/dist/exporter/odt/metadata.js +224 -0
  193. package/dist/exporter/odt/metadata.js.map +1 -0
  194. package/dist/exporter/odt/render.d.ts +26 -0
  195. package/dist/exporter/odt/render.d.ts.map +1 -0
  196. package/dist/exporter/odt/render.js +651 -0
  197. package/dist/exporter/odt/render.js.map +1 -0
  198. package/dist/exporter/odt/richtext.d.ts +22 -0
  199. package/dist/exporter/odt/richtext.d.ts.map +1 -0
  200. package/dist/exporter/odt/richtext.js +743 -0
  201. package/dist/exporter/odt/richtext.js.map +1 -0
  202. package/dist/exporter/odt/styles.d.ts +41 -0
  203. package/dist/exporter/odt/styles.d.ts.map +1 -0
  204. package/dist/exporter/odt/styles.js +370 -0
  205. package/dist/exporter/odt/styles.js.map +1 -0
  206. package/dist/exporter/odt/track.d.ts +18 -0
  207. package/dist/exporter/odt/track.d.ts.map +1 -0
  208. package/dist/exporter/odt/track.js +66 -0
  209. package/dist/exporter/odt/track.js.map +1 -0
  210. package/dist/exporter/pandoc/citations.d.ts +23 -0
  211. package/dist/exporter/pandoc/citations.d.ts.map +1 -0
  212. package/dist/exporter/pandoc/citations.js +99 -0
  213. package/dist/exporter/pandoc/citations.js.map +1 -0
  214. package/dist/exporter/pandoc/convert.d.ts +19 -0
  215. package/dist/exporter/pandoc/convert.d.ts.map +1 -0
  216. package/dist/exporter/pandoc/convert.js +886 -0
  217. package/dist/exporter/pandoc/convert.js.map +1 -0
  218. package/dist/exporter/pandoc/index.d.ts +25 -0
  219. package/dist/exporter/pandoc/index.d.ts.map +1 -0
  220. package/dist/exporter/pandoc/index.js +79 -0
  221. package/dist/exporter/pandoc/index.js.map +1 -0
  222. package/dist/exporter/pandoc/readme.d.ts +2 -0
  223. package/dist/exporter/pandoc/readme.d.ts.map +1 -0
  224. package/dist/exporter/pandoc/readme.js +8 -0
  225. package/dist/exporter/pandoc/readme.js.map +1 -0
  226. package/dist/exporter/pandoc/tools.d.ts +22 -0
  227. package/dist/exporter/pandoc/tools.d.ts.map +1 -0
  228. package/dist/exporter/pandoc/tools.js +52 -0
  229. package/dist/exporter/pandoc/tools.js.map +1 -0
  230. package/dist/exporter/print/index.d.ts +20 -0
  231. package/dist/exporter/print/index.d.ts.map +1 -0
  232. package/dist/exporter/print/index.js +142 -0
  233. package/dist/exporter/print/index.js.map +1 -0
  234. package/dist/exporter/tools/doc_content.d.ts +6 -0
  235. package/dist/exporter/tools/doc_content.d.ts.map +1 -0
  236. package/dist/exporter/tools/doc_content.js +130 -0
  237. package/dist/exporter/tools/doc_content.js.map +1 -0
  238. package/dist/exporter/tools/file.d.ts +2 -0
  239. package/dist/exporter/tools/file.d.ts.map +1 -0
  240. package/dist/exporter/tools/file.js +10 -0
  241. package/dist/exporter/tools/file.js.map +1 -0
  242. package/dist/exporter/tools/json.d.ts +7 -0
  243. package/dist/exporter/tools/json.d.ts.map +1 -0
  244. package/dist/exporter/tools/json.js +82 -0
  245. package/dist/exporter/tools/json.js.map +1 -0
  246. package/dist/exporter/tools/svg.d.ts +8 -0
  247. package/dist/exporter/tools/svg.d.ts.map +1 -0
  248. package/dist/exporter/tools/svg.js +26 -0
  249. package/dist/exporter/tools/svg.js.map +1 -0
  250. package/dist/exporter/tools/xml.d.ts +42 -0
  251. package/dist/exporter/tools/xml.d.ts.map +1 -0
  252. package/dist/exporter/tools/xml.js +467 -0
  253. package/dist/exporter/tools/xml.js.map +1 -0
  254. package/dist/exporter/tools/xml_zip.d.ts +21 -0
  255. package/dist/exporter/tools/xml_zip.d.ts.map +1 -0
  256. package/dist/exporter/tools/xml_zip.js +92 -0
  257. package/dist/exporter/tools/xml_zip.js.map +1 -0
  258. package/dist/exporter/tools/zip.d.ts +35 -0
  259. package/dist/exporter/tools/zip.d.ts.map +1 -0
  260. package/dist/exporter/tools/zip.js +78 -0
  261. package/dist/exporter/tools/zip.js.map +1 -0
  262. package/dist/exporter/tools/zotero_csl.d.ts +23 -0
  263. package/dist/exporter/tools/zotero_csl.d.ts.map +1 -0
  264. package/dist/exporter/tools/zotero_csl.js +78 -0
  265. package/dist/exporter/tools/zotero_csl.js.map +1 -0
  266. package/dist/importer/citations.d.ts +28 -0
  267. package/dist/importer/citations.d.ts.map +1 -0
  268. package/dist/importer/citations.js +68 -0
  269. package/dist/importer/citations.js.map +1 -0
  270. package/dist/importer/docx/citations.d.ts +43 -0
  271. package/dist/importer/docx/citations.d.ts.map +1 -0
  272. package/dist/importer/docx/citations.js +81 -0
  273. package/dist/importer/docx/citations.js.map +1 -0
  274. package/dist/importer/docx/convert.d.ts +150 -0
  275. package/dist/importer/docx/convert.d.ts.map +1 -0
  276. package/dist/importer/docx/convert.js +1243 -0
  277. package/dist/importer/docx/convert.js.map +1 -0
  278. package/dist/importer/docx/helpers.d.ts +2 -0
  279. package/dist/importer/docx/helpers.d.ts.map +1 -0
  280. package/dist/importer/docx/helpers.js +10 -0
  281. package/dist/importer/docx/helpers.js.map +1 -0
  282. package/dist/importer/docx/index.d.ts +27 -0
  283. package/dist/importer/docx/index.d.ts.map +1 -0
  284. package/dist/importer/docx/index.js +77 -0
  285. package/dist/importer/docx/index.js.map +1 -0
  286. package/dist/importer/docx/omml2mathml.d.ts +6 -0
  287. package/dist/importer/docx/omml2mathml.d.ts.map +1 -0
  288. package/dist/importer/docx/omml2mathml.js +1146 -0
  289. package/dist/importer/docx/omml2mathml.js.map +1 -0
  290. package/dist/importer/docx/parse.d.ts +96 -0
  291. package/dist/importer/docx/parse.d.ts.map +1 -0
  292. package/dist/importer/docx/parse.js +681 -0
  293. package/dist/importer/docx/parse.js.map +1 -0
  294. package/dist/importer/native/extract_template.d.ts +6 -0
  295. package/dist/importer/native/extract_template.d.ts.map +1 -0
  296. package/dist/importer/native/extract_template.js +80 -0
  297. package/dist/importer/native/extract_template.js.map +1 -0
  298. package/dist/importer/native/file.d.ts +37 -0
  299. package/dist/importer/native/file.d.ts.map +1 -0
  300. package/dist/importer/native/file.js +162 -0
  301. package/dist/importer/native/file.js.map +1 -0
  302. package/dist/importer/native/get_images.d.ts +21 -0
  303. package/dist/importer/native/get_images.d.ts.map +1 -0
  304. package/dist/importer/native/get_images.js +58 -0
  305. package/dist/importer/native/get_images.js.map +1 -0
  306. package/dist/importer/native/importer.d.ts +41 -0
  307. package/dist/importer/native/importer.d.ts.map +1 -0
  308. package/dist/importer/native/importer.js +170 -0
  309. package/dist/importer/native/importer.js.map +1 -0
  310. package/dist/importer/native/index.d.ts +7 -0
  311. package/dist/importer/native/index.d.ts.map +1 -0
  312. package/dist/importer/native/index.js +7 -0
  313. package/dist/importer/native/index.js.map +1 -0
  314. package/dist/importer/native/update.d.ts +7 -0
  315. package/dist/importer/native/update.d.ts.map +1 -0
  316. package/dist/importer/native/update.js +27 -0
  317. package/dist/importer/native/update.js.map +1 -0
  318. package/dist/importer/native/update_template.d.ts +12 -0
  319. package/dist/importer/native/update_template.d.ts.map +1 -0
  320. package/dist/importer/native/update_template.js +19 -0
  321. package/dist/importer/native/update_template.js.map +1 -0
  322. package/dist/importer/odt/citations.d.ts +27 -0
  323. package/dist/importer/odt/citations.d.ts.map +1 -0
  324. package/dist/importer/odt/citations.js +57 -0
  325. package/dist/importer/odt/citations.js.map +1 -0
  326. package/dist/importer/odt/convert.d.ts +146 -0
  327. package/dist/importer/odt/convert.d.ts.map +1 -0
  328. package/dist/importer/odt/convert.js +1530 -0
  329. package/dist/importer/odt/convert.js.map +1 -0
  330. package/dist/importer/odt/index.d.ts +30 -0
  331. package/dist/importer/odt/index.d.ts.map +1 -0
  332. package/dist/importer/odt/index.js +124 -0
  333. package/dist/importer/odt/index.js.map +1 -0
  334. package/dist/importer/pandoc/convert.d.ts +32 -0
  335. package/dist/importer/pandoc/convert.d.ts.map +1 -0
  336. package/dist/importer/pandoc/convert.js +790 -0
  337. package/dist/importer/pandoc/convert.js.map +1 -0
  338. package/dist/importer/pandoc/helpers.d.ts +5 -0
  339. package/dist/importer/pandoc/helpers.d.ts.map +1 -0
  340. package/dist/importer/pandoc/helpers.js +73 -0
  341. package/dist/importer/pandoc/helpers.js.map +1 -0
  342. package/dist/importer/pandoc/index.d.ts +31 -0
  343. package/dist/importer/pandoc/index.d.ts.map +1 -0
  344. package/dist/importer/pandoc/index.js +114 -0
  345. package/dist/importer/pandoc/index.js.map +1 -0
  346. package/dist/importer/registry.d.ts +21 -0
  347. package/dist/importer/registry.d.ts.map +1 -0
  348. package/dist/importer/registry.js +41 -0
  349. package/dist/importer/registry.js.map +1 -0
  350. package/dist/importer/zip_analyzer.d.ts +31 -0
  351. package/dist/importer/zip_analyzer.d.ts.map +1 -0
  352. package/dist/importer/zip_analyzer.js +89 -0
  353. package/dist/importer/zip_analyzer.js.map +1 -0
  354. package/dist/index.d.ts +2 -0
  355. package/dist/index.d.ts.map +1 -0
  356. package/dist/index.js +2 -0
  357. package/dist/index.js.map +1 -0
  358. package/dist/mathlive/opf_includes.d.ts +2 -0
  359. package/dist/mathlive/opf_includes.d.ts.map +1 -0
  360. package/dist/mathlive/opf_includes.js +25 -0
  361. package/dist/mathlive/opf_includes.js.map +1 -0
  362. package/dist/schema/common/annotate.d.ts +47 -0
  363. package/dist/schema/common/annotate.d.ts.map +1 -0
  364. package/dist/schema/common/annotate.js +75 -0
  365. package/dist/schema/common/annotate.js.map +1 -0
  366. package/dist/schema/common/base.d.ts +91 -0
  367. package/dist/schema/common/base.d.ts.map +1 -0
  368. package/dist/schema/common/base.js +109 -0
  369. package/dist/schema/common/base.js.map +1 -0
  370. package/dist/schema/common/citation.d.ts +30 -0
  371. package/dist/schema/common/citation.d.ts.map +1 -0
  372. package/dist/schema/common/citation.js +61 -0
  373. package/dist/schema/common/citation.js.map +1 -0
  374. package/dist/schema/common/equation.d.ts +17 -0
  375. package/dist/schema/common/equation.d.ts.map +1 -0
  376. package/dist/schema/common/equation.js +32 -0
  377. package/dist/schema/common/equation.js.map +1 -0
  378. package/dist/schema/common/figure.d.ts +87 -0
  379. package/dist/schema/common/figure.d.ts.map +1 -0
  380. package/dist/schema/common/figure.js +178 -0
  381. package/dist/schema/common/figure.js.map +1 -0
  382. package/dist/schema/common/heading.d.ts +9 -0
  383. package/dist/schema/common/heading.d.ts.map +1 -0
  384. package/dist/schema/common/heading.js +41 -0
  385. package/dist/schema/common/heading.js.map +1 -0
  386. package/dist/schema/common/index.d.ts +11 -0
  387. package/dist/schema/common/index.d.ts.map +1 -0
  388. package/dist/schema/common/index.js +11 -0
  389. package/dist/schema/common/index.js.map +1 -0
  390. package/dist/schema/common/list.d.ts +63 -0
  391. package/dist/schema/common/list.d.ts.map +1 -0
  392. package/dist/schema/common/list.js +92 -0
  393. package/dist/schema/common/list.js.map +1 -0
  394. package/dist/schema/common/reference.d.ts +70 -0
  395. package/dist/schema/common/reference.d.ts.map +1 -0
  396. package/dist/schema/common/reference.js +97 -0
  397. package/dist/schema/common/reference.js.map +1 -0
  398. package/dist/schema/common/table.d.ts +76 -0
  399. package/dist/schema/common/table.d.ts.map +1 -0
  400. package/dist/schema/common/table.js +86 -0
  401. package/dist/schema/common/table.js.map +1 -0
  402. package/dist/schema/common/track.d.ts +117 -0
  403. package/dist/schema/common/track.d.ts.map +1 -0
  404. package/{src → dist}/schema/common/track.js +44 -49
  405. package/dist/schema/common/track.js.map +1 -0
  406. package/dist/schema/const.d.ts +3 -0
  407. package/dist/schema/const.d.ts.map +1 -0
  408. package/{src → dist}/schema/const.js +3 -3
  409. package/dist/schema/const.js.map +1 -0
  410. package/dist/schema/convert.d.ts +3 -0
  411. package/dist/schema/convert.d.ts.map +1 -0
  412. package/dist/schema/convert.js +1215 -0
  413. package/dist/schema/convert.js.map +1 -0
  414. package/dist/schema/document/content.d.ts +110 -0
  415. package/dist/schema/document/content.d.ts.map +1 -0
  416. package/dist/schema/document/content.js +177 -0
  417. package/dist/schema/document/content.js.map +1 -0
  418. package/dist/schema/document/index.d.ts +795 -0
  419. package/dist/schema/document/index.d.ts.map +1 -0
  420. package/dist/schema/document/index.js +68 -0
  421. package/dist/schema/document/index.js.map +1 -0
  422. package/dist/schema/document/structure.d.ts +164 -0
  423. package/dist/schema/document/structure.d.ts.map +1 -0
  424. package/dist/schema/document/structure.js +445 -0
  425. package/dist/schema/document/structure.js.map +1 -0
  426. package/dist/schema/export.d.ts +7 -0
  427. package/dist/schema/export.d.ts.map +1 -0
  428. package/dist/schema/export.js +17 -0
  429. package/dist/schema/export.js.map +1 -0
  430. package/dist/schema/footnotes.d.ts +454 -0
  431. package/dist/schema/footnotes.d.ts.map +1 -0
  432. package/dist/schema/footnotes.js +90 -0
  433. package/dist/schema/footnotes.js.map +1 -0
  434. package/dist/schema/footnotes_convert.d.ts +5 -0
  435. package/dist/schema/footnotes_convert.d.ts.map +1 -0
  436. package/dist/schema/footnotes_convert.js +30 -0
  437. package/dist/schema/footnotes_convert.js.map +1 -0
  438. package/dist/schema/i18n.d.ts +55 -0
  439. package/dist/schema/i18n.d.ts.map +1 -0
  440. package/{src → dist}/schema/i18n.js +14 -23
  441. package/dist/schema/i18n.js.map +1 -0
  442. package/dist/schema/index.d.ts +6 -0
  443. package/dist/schema/index.d.ts.map +1 -0
  444. package/dist/schema/index.js +6 -0
  445. package/dist/schema/index.js.map +1 -0
  446. package/dist/schema/mini_json.d.ts +4 -0
  447. package/dist/schema/mini_json.d.ts.map +1 -0
  448. package/{src → dist}/schema/mini_json.js +19 -28
  449. package/dist/schema/mini_json.js.map +1 -0
  450. package/dist/schema/text.d.ts +3 -0
  451. package/dist/schema/text.d.ts.map +1 -0
  452. package/dist/schema/text.js +23 -0
  453. package/dist/schema/text.js.map +1 -0
  454. package/dist/types.d.ts +281 -0
  455. package/dist/types.d.ts.map +1 -0
  456. package/dist/types.js +9 -0
  457. package/dist/types.js.map +1 -0
  458. package/package.json +51 -16
  459. package/scripts/export-schema.js +1 -1
  460. package/src/bibliography/{common.js → common.ts} +15 -12
  461. package/src/bibliography/{csl_bib.js → csl_bib.ts} +16 -15
  462. package/src/citations/{citeproc_sys.js → citeproc_sys.ts} +26 -6
  463. package/src/citations/{format.js → format.ts} +80 -24
  464. package/src/editor/e2ee/{encryptor.js → encryptor.ts} +76 -44
  465. package/src/exporter/docx/{citations.js → citations.ts} +51 -23
  466. package/src/exporter/docx/{comments.js → comments.ts} +69 -26
  467. package/src/exporter/docx/{footnotes.js → footnotes.ts} +81 -42
  468. package/src/exporter/docx/images.ts +128 -0
  469. package/src/exporter/docx/{index.js → index.ts} +48 -25
  470. package/src/exporter/docx/{lists.js → lists.ts} +89 -46
  471. package/src/exporter/docx/{math.js → math.ts} +29 -9
  472. package/src/exporter/docx/{metadata.js → metadata.ts} +78 -42
  473. package/src/exporter/docx/{rels.js → rels.ts} +71 -50
  474. package/src/exporter/docx/{render.js → render.ts} +124 -87
  475. package/src/exporter/docx/{richtext.js → richtext.ts} +107 -84
  476. package/src/exporter/docx/{tables.js → tables.ts} +33 -23
  477. package/src/exporter/docx/{tools.js → tools.ts} +4 -3
  478. package/src/exporter/epub/{index.js → index.ts} +44 -15
  479. package/src/exporter/epub/{templates.js → templates.ts} +71 -7
  480. package/src/exporter/epub/tools.ts +102 -0
  481. package/src/exporter/html/{citations.js → citations.ts} +79 -31
  482. package/src/exporter/html/{convert.js → convert.ts} +118 -71
  483. package/src/exporter/html/{index.js → index.ts} +63 -29
  484. package/src/exporter/html/{templates.js → templates.ts} +22 -2
  485. package/src/exporter/html/{tools.js → tools.ts} +9 -6
  486. package/src/exporter/jats/bibliography.ts +199 -0
  487. package/src/exporter/jats/{citations.js → citations.ts} +56 -20
  488. package/src/exporter/jats/{convert.js → convert.ts} +72 -53
  489. package/src/exporter/jats/index.ts +132 -0
  490. package/src/exporter/jats/{templates.js → templates.ts} +19 -3
  491. package/src/exporter/jats/{text.js → text.ts} +8 -6
  492. package/src/exporter/latex/{convert.js → convert.ts} +160 -125
  493. package/src/exporter/latex/{escape_latex.js → escape_latex.ts} +1 -1
  494. package/src/exporter/latex/{index.js → index.ts} +27 -12
  495. package/src/exporter/latex/{readme.js → readme.ts} +2 -2
  496. package/src/exporter/native/copy.ts +231 -0
  497. package/src/exporter/native/file.ts +65 -0
  498. package/src/exporter/native/index.ts +4 -0
  499. package/src/exporter/native/revision.ts +76 -0
  500. package/src/exporter/native/{shrink.js → shrink.ts} +64 -29
  501. package/src/exporter/native/zip.ts +85 -0
  502. package/src/exporter/odt/{citations.js → citations.ts} +35 -15
  503. package/src/exporter/odt/{footnotes.js → footnotes.ts} +53 -30
  504. package/src/exporter/odt/images.ts +135 -0
  505. package/src/exporter/odt/{index.js → index.ts} +49 -27
  506. package/src/exporter/odt/{math.js → math.ts} +38 -9
  507. package/src/exporter/odt/{metadata.js → metadata.ts} +54 -29
  508. package/src/exporter/odt/{render.js → render.ts} +89 -60
  509. package/src/exporter/odt/{richtext.js → richtext.ts} +102 -72
  510. package/src/exporter/odt/{styles.js → styles.ts} +98 -66
  511. package/src/exporter/odt/{track.js → track.ts} +22 -6
  512. package/src/exporter/pandoc/{citations.js → citations.ts} +31 -15
  513. package/src/exporter/pandoc/{convert.js → convert.ts} +98 -79
  514. package/src/exporter/pandoc/{index.js → index.ts} +36 -13
  515. package/src/exporter/pandoc/{readme.js → readme.ts} +0 -1
  516. package/src/exporter/pandoc/{tools.js → tools.ts} +28 -5
  517. package/src/exporter/print/{index.js → index.ts} +38 -19
  518. package/src/exporter/tools/{doc_content.js → doc_content.ts} +34 -24
  519. package/src/exporter/tools/{file.js → file.ts} +1 -1
  520. package/src/exporter/tools/{json.js → json.ts} +30 -19
  521. package/src/exporter/tools/{svg.js → svg.ts} +9 -3
  522. package/src/exporter/tools/{xml.js → xml.ts} +187 -138
  523. package/src/exporter/tools/{xml_zip.js → xml_zip.ts} +19 -11
  524. package/src/exporter/tools/{zip.js → zip.ts} +35 -11
  525. package/src/exporter/tools/{zotero_csl.js → zotero_csl.ts} +35 -18
  526. package/src/global.d.ts +13 -0
  527. package/src/importer/citations.ts +116 -0
  528. package/src/importer/docx/{citations.js → citations.ts} +22 -37
  529. package/src/importer/docx/{convert.js → convert.ts} +176 -141
  530. package/src/importer/docx/{helpers.js → helpers.ts} +1 -1
  531. package/src/importer/docx/index.ts +124 -0
  532. package/src/importer/docx/{omml2mathml.js → omml2mathml.ts} +154 -176
  533. package/src/importer/docx/{parse.js → parse.ts} +103 -81
  534. package/src/importer/native/extract_template.ts +83 -0
  535. package/src/importer/native/file.ts +282 -0
  536. package/src/importer/native/get_images.ts +82 -0
  537. package/src/importer/native/importer.ts +244 -0
  538. package/src/importer/native/index.ts +6 -0
  539. package/src/importer/native/{update.js → update.ts} +13 -5
  540. package/src/importer/native/update_template.ts +32 -0
  541. package/src/importer/odt/{citations.js → citations.ts} +17 -29
  542. package/src/importer/odt/{convert.js → convert.ts} +261 -237
  543. package/src/importer/odt/index.ts +202 -0
  544. package/src/importer/pandoc/{convert.js → convert.ts} +116 -94
  545. package/src/importer/pandoc/{helpers.js → helpers.ts} +24 -12
  546. package/src/importer/pandoc/index.ts +171 -0
  547. package/src/importer/registry.ts +69 -0
  548. package/src/importer/{zip_analyzer.js → zip_analyzer.ts} +44 -18
  549. package/src/mathlive/{opf_includes.js → opf_includes.ts} +1 -1
  550. package/src/modules.d.ts +40 -0
  551. package/src/schema/common/{annotate.js → annotate.ts} +10 -8
  552. package/src/schema/common/{base.js → base.ts} +12 -10
  553. package/src/schema/common/{citation.js → citation.ts} +17 -8
  554. package/src/schema/common/{equation.js → equation.ts} +6 -4
  555. package/src/schema/common/{figure.js → figure.ts} +43 -23
  556. package/src/schema/common/{heading.js → heading.ts} +7 -5
  557. package/src/schema/common/{list.js → list.ts} +15 -13
  558. package/src/schema/common/{reference.js → reference.ts} +14 -12
  559. package/src/schema/common/{table.js → table.ts} +16 -14
  560. package/src/schema/common/track.ts +201 -0
  561. package/src/schema/const.ts +58 -0
  562. package/src/schema/{convert.js → convert.ts} +6 -2
  563. package/src/schema/document/{content.js → content.ts} +22 -20
  564. package/src/schema/document/{structure.js → structure.ts} +15 -9
  565. package/src/schema/{export.js → export.ts} +4 -2
  566. package/src/schema/{footnotes.js → footnotes.ts} +11 -8
  567. package/src/schema/{footnotes_convert.js → footnotes_convert.ts} +11 -8
  568. package/src/schema/i18n.ts +601 -0
  569. package/src/schema/mini_json.ts +60 -0
  570. package/src/schema/{text.js → text.ts} +6 -2
  571. package/src/types.ts +314 -0
  572. package/jest.config.js +0 -24
  573. package/src/exporter/docx/images.js +0 -101
  574. package/src/exporter/jats/bibliography.js +0 -183
  575. package/src/exporter/jats/index.js +0 -92
  576. package/src/exporter/odt/images.js +0 -115
  577. package/src/importer/citations.js +0 -129
  578. package/src/importer/native/get_images.js +0 -76
  579. /package/src/{index.js → index.ts} +0 -0
  580. /package/src/schema/common/{index.js → index.ts} +0 -0
  581. /package/src/schema/document/{index.js → index.ts} +0 -0
  582. /package/src/schema/{index.js → index.ts} +0 -0
@@ -1,12 +1,34 @@
1
1
  import {xmlDOM} from "../../exporter/tools/xml.js"
2
+ import type {XMLElement} from "../../exporter/tools/xml.js"
2
3
  import {randomCommentId} from "../../schema/common/index.js"
4
+ import {gettext} from "fwtoolkit"
5
+ import type {FidusMark, FidusNode} from "../../types.js"
6
+
7
+ function attr(node: unknown, name: string): string {
8
+ if (node && typeof node === "object" && "getAttribute" in node) {
9
+ return String((node as XMLElement).getAttribute(name) || "")
10
+ }
11
+ return ""
12
+ }
3
13
 
4
14
  const DEFAULT_STYLES_XML = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
5
15
  <w:styles xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
6
16
  </w:styles>`
7
17
 
8
18
  export class DocxParser {
9
- constructor(zip) {
19
+ zip: any
20
+ styles: Record<string, any>
21
+ numbering: Record<string, any>
22
+ comments: Record<string, any>
23
+ footnotes: Record<string, any>
24
+ endnotes: Record<string, any>
25
+ relationships: Record<string, any>
26
+ images: Record<string, File>
27
+ coreDoc: XMLElement | null
28
+ document: XMLElement | null
29
+ customDoc: XMLElement | null
30
+
31
+ constructor(zip: any) {
10
32
  this.zip = zip
11
33
  this.styles = {}
12
34
  this.numbering = {}
@@ -18,9 +40,10 @@ export class DocxParser {
18
40
 
19
41
  this.coreDoc = null
20
42
  this.document = null
43
+ this.customDoc = null
21
44
  }
22
45
 
23
- init() {
46
+ init(): Promise<void> {
24
47
  return this.parseStyles()
25
48
  .then(() => this.parseNumbering())
26
49
  .then(() => this.parseComments())
@@ -42,11 +65,11 @@ export class DocxParser {
42
65
  const stylesDoc = xmlDOM(content || DEFAULT_STYLES_XML)
43
66
  const styles = stylesDoc.queryAll("w:style")
44
67
 
45
- styles.forEach(style => {
46
- const id = style.getAttribute("w:styleId")
47
- const type = style.getAttribute("w:type")
48
- const name = style.query("w:name")?.getAttribute("w:val")
49
- const basedOn = style.query("w:basedOn")?.getAttribute("w:val")
68
+ styles.forEach((style: any) => {
69
+ const id = attr(style, "w:styleId")
70
+ const type = attr(style, "w:type")
71
+ const name = attr(style.query("w:name"), "w:val")
72
+ const basedOn = attr(style.query("w:basedOn"), "w:val")
50
73
 
51
74
  this.styles[id] = {
52
75
  id,
@@ -58,7 +81,7 @@ export class DocxParser {
58
81
  isCaption:
59
82
  (id && /caption/i.test(id)) ||
60
83
  (basedOn && /caption/i.test(basedOn)),
61
- level: id ? parseInt(id.match(/\d+/)?.[0] || 0) : 0,
84
+ level: id ? parseInt(id.match(/\d+/)?.[0] || "0") : 0,
62
85
  basedOn,
63
86
  paragraphProps: this.extractParagraphProperties(style),
64
87
  runProps: this.extractRunProperties(style)
@@ -69,7 +92,7 @@ export class DocxParser {
69
92
  }
70
93
  }
71
94
 
72
- isCodeStyle(styleId) {
95
+ isCodeStyle(styleId: any) {
73
96
  let current = styleId
74
97
  const visited = new Set()
75
98
  while (current && !visited.has(current)) {
@@ -91,7 +114,7 @@ export class DocxParser {
91
114
  // Check font family on the style
92
115
  if (style.runProps?.fontFamily) {
93
116
  const fontFamily = style.runProps.fontFamily.toLowerCase()
94
- const monospacePatterns = [
117
+ const monospacePatterns: any[] = [
95
118
  "courier",
96
119
  "consolas",
97
120
  "monaco",
@@ -106,7 +129,7 @@ export class DocxParser {
106
129
  "droid sans mono",
107
130
  "monospace"
108
131
  ]
109
- if (monospacePatterns.some(p => fontFamily.includes(p))) {
132
+ if (monospacePatterns.some((p: any) => fontFamily.includes(p))) {
110
133
  return true
111
134
  }
112
135
  }
@@ -115,7 +138,7 @@ export class DocxParser {
115
138
  return false
116
139
  }
117
140
 
118
- extractParagraphProperties(style) {
141
+ extractParagraphProperties(style: any) {
119
142
  const pPr = style.query("w:pPr")
120
143
  if (!pPr) {
121
144
  return {}
@@ -123,13 +146,13 @@ export class DocxParser {
123
146
 
124
147
  return {
125
148
  indent: this.extractIndentation(pPr),
126
- alignment: pPr.query("w:jc")?.getAttribute("w:val"),
149
+ alignment: attr(pPr.query("w:jc"), "w:val"),
127
150
  numbering: this.extractNumbering(pPr),
128
151
  keepNext: Boolean(pPr.query("w:keepNext"))
129
152
  }
130
153
  }
131
154
 
132
- extractIndentation(pPr) {
155
+ extractIndentation(pPr: any) {
133
156
  const ind = pPr.query("w:ind")
134
157
  if (!ind) {
135
158
  return {}
@@ -137,29 +160,29 @@ export class DocxParser {
137
160
 
138
161
  return {
139
162
  left: parseInt(
140
- ind.getAttribute("w:left") || ind.getAttribute("w:start") || "0"
163
+ attr(ind, "w:left") || attr(ind, "w:start") || "0"
141
164
  ),
142
165
  right: parseInt(
143
- ind.getAttribute("w:right") || ind.getAttribute("w:end") || "0"
166
+ attr(ind, "w:right") || attr(ind, "w:end") || "0"
144
167
  ),
145
- hanging: parseInt(ind.getAttribute("w:hanging") || "0"),
146
- firstLine: parseInt(ind.getAttribute("w:firstLine") || "0")
168
+ hanging: parseInt(attr(ind, "w:hanging") || "0"),
169
+ firstLine: parseInt(attr(ind, "w:firstLine") || "0")
147
170
  }
148
171
  }
149
172
 
150
- extractNumbering(pPr) {
173
+ extractNumbering(pPr: any) {
151
174
  const numPr = pPr.query("w:numPr")
152
175
  if (!numPr) {
153
176
  return null
154
177
  }
155
178
 
156
179
  return {
157
- id: numPr.query("w:numId")?.getAttribute("w:val"),
158
- level: parseInt(numPr.query("w:ilvl")?.getAttribute("w:val") || "0")
180
+ id: attr(numPr.query("w:numId"), "w:val"),
181
+ level: parseInt(attr(numPr.query("w:ilvl"), "w:val") || "0")
159
182
  }
160
183
  }
161
184
 
162
- extractRunProperties(rPr) {
185
+ extractRunProperties(rPr: any) {
163
186
  if (!rPr) {
164
187
  return {}
165
188
  }
@@ -167,14 +190,14 @@ export class DocxParser {
167
190
  return {
168
191
  bold: Boolean(rPr.query("w:b")),
169
192
  italic: Boolean(rPr.query("w:i")),
170
- underline: rPr.query("w:u")?.getAttribute("w:val") || false,
193
+ underline: attr(rPr.query("w:u"), "w:val") || false,
171
194
  strike: Boolean(rPr.query("w:strike")),
172
195
  smallCaps: Boolean(rPr.query("w:smallCaps")),
173
- vertAlign: rPr.query("w:vertAlign")?.getAttribute("w:val") || false,
196
+ vertAlign: attr(rPr.query("w:vertAlign"), "w:val") || false,
174
197
  fontSize:
175
- parseInt(rPr.query("w:sz")?.getAttribute("w:val") || "0") / 2,
176
- color: rPr.query("w:color")?.getAttribute("w:val") || false,
177
- fontFamily: rPr.query("w:rFonts")?.getAttribute("w:ascii") || false
198
+ parseInt(attr(rPr.query("w:sz"), "w:val") || "0") / 2,
199
+ color: attr(rPr.query("w:color"), "w:val") || false,
200
+ fontFamily: attr(rPr.query("w:rFonts"), "w:ascii") || false
178
201
  }
179
202
  }
180
203
 
@@ -190,16 +213,16 @@ export class DocxParser {
190
213
 
191
214
  // Parse abstract numbering definitions
192
215
  const abstractNums = numberingDoc.queryAll("w:abstractNum")
193
- const abstractNumbering = {}
194
-
195
- abstractNums.forEach(abstractNum => {
196
- const id = abstractNum.getAttribute("w:abstractNumId")
197
- const levels = abstractNum.queryAll("w:lvl").map(lvl => ({
198
- level: lvl.getAttribute("w:ilvl"),
199
- format: lvl.query("w:numFmt")?.getAttribute("w:val"),
200
- text: lvl.query("w:lvlText")?.getAttribute("w:val"),
216
+ const abstractNumbering: Record<string, any> = {}
217
+
218
+ abstractNums.forEach((abstractNum: any) => {
219
+ const id = attr(abstractNum, "w:abstractNumId")
220
+ const levels = abstractNum.queryAll("w:lvl").map((lvl: any) => ({
221
+ level: attr(lvl, "w:ilvl"),
222
+ format: attr(lvl.query("w:numFmt"), "w:val"),
223
+ text: attr(lvl.query("w:lvlText"), "w:val"),
201
224
  start: parseInt(
202
- lvl.query("w:start")?.getAttribute("w:val") || "1"
225
+ attr(lvl.query("w:start"), "w:val") || "1"
203
226
  )
204
227
  }))
205
228
  abstractNumbering[id] = levels
@@ -207,11 +230,10 @@ export class DocxParser {
207
230
 
208
231
  // Parse numbering instances
209
232
  const nums = numberingDoc.queryAll("w:num")
210
- nums.forEach(num => {
211
- const numId = num.getAttribute("w:numId")
212
- const abstractNumId = num
213
- .query("w:abstractNumId")
214
- ?.getAttribute("w:val")
233
+ nums.forEach((num: any) => {
234
+ const numId = attr(num, "w:numId")
235
+ const abstractNumId = attr(num
236
+ .query("w:abstractNumId"), "w:val")
215
237
 
216
238
  this.numbering[numId] = {
217
239
  abstractId: abstractNumId,
@@ -224,11 +246,11 @@ export class DocxParser {
224
246
  }
225
247
  }
226
248
 
227
- extractNumberingOverrides(num) {
228
- return num.queryAll("w:lvlOverride").map(override => ({
229
- level: override.getAttribute("w:ilvl"),
249
+ extractNumberingOverrides(num: any) {
250
+ return num.queryAll("w:lvlOverride").map((override: any) => ({
251
+ level: attr(override, "w:ilvl"),
230
252
  start: parseInt(
231
- override.query("w:startOverride")?.getAttribute("w:val") || "1"
253
+ attr(override.query("w:startOverride"), "w:val") || "1"
232
254
  )
233
255
  }))
234
256
  }
@@ -246,13 +268,13 @@ export class DocxParser {
246
268
  const commentList = commentsDoc.queryAll("w:comment")
247
269
 
248
270
  // First pass: parse all comments into the expected format
249
- commentList.forEach(comment => {
250
- const id = comment.getAttribute("w:id")
251
- const dateStr = comment.getAttribute("w:date")
271
+ commentList.forEach((comment: any) => {
272
+ const id = attr(comment, "w:id")
273
+ const dateStr = attr(comment, "w:date")
252
274
  this.comments[id] = {
253
275
  user: 0,
254
276
  username:
255
- comment.getAttribute("w:author") || gettext("Unknown"),
277
+ attr(comment, "w:author") || gettext("Unknown"),
256
278
  date: dateStr ? new Date(dateStr).getTime() : Date.now(),
257
279
  comment: this.extractCommentContent(comment),
258
280
  answers: [],
@@ -281,13 +303,13 @@ export class DocxParser {
281
303
  }
282
304
 
283
305
  // Parse extended entries into main (no parentParaId) and answer entries
284
- const mainEntries = []
285
- const answerEntries = []
306
+ const mainEntries: any[] = []
307
+ const answerEntries: any[] = []
286
308
 
287
- extendedEntries.forEach(entry => {
288
- const paraId = entry.getAttribute("w15:paraId")
289
- const done = entry.getAttribute("w15:done") === "1"
290
- const paraIdParent = entry.getAttribute("w15:paraIdParent")
309
+ extendedEntries.forEach((entry: any) => {
310
+ const paraId = attr(entry, "w15:paraId")
311
+ const done = attr(entry, "w15:done") === "1"
312
+ const paraIdParent = attr(entry, "w15:paraIdParent")
291
313
 
292
314
  if (paraId) {
293
315
  if (paraIdParent) {
@@ -307,13 +329,13 @@ export class DocxParser {
307
329
  // extended entries appear first in commentsExtended.xml.
308
330
  const commentIds = Object.keys(this.comments)
309
331
  .map(Number)
310
- .sort((a, b) => a - b)
332
+ .sort((a: any, b: any) => a - b)
311
333
  .map(String)
312
334
 
313
335
  // Track which comment IDs are parents vs answers
314
- const parentCommentIds = []
336
+ const parentCommentIds: any[] = []
315
337
 
316
- commentIds.forEach((commentId, index) => {
338
+ commentIds.forEach((commentId: any, index: any) => {
317
339
  if (index < mainEntries.length) {
318
340
  // This is a main comment - apply resolved status
319
341
  this.comments[commentId].resolved = mainEntries[index].done
@@ -351,9 +373,9 @@ export class DocxParser {
351
373
  }
352
374
  }
353
375
 
354
- extractCommentContent(comment) {
355
- const content = []
356
- comment.queryAll("w:p").forEach(p => {
376
+ extractCommentContent(comment: any) {
377
+ const content: any[] = []
378
+ comment.queryAll("w:p").forEach((p: any) => {
357
379
  content.push({
358
380
  type: "paragraph",
359
381
  content: this.extractParagraphContent(p)
@@ -372,8 +394,8 @@ export class DocxParser {
372
394
  }
373
395
  const footnotesDoc = xmlDOM(content)
374
396
 
375
- footnotesDoc.queryAll("w:footnote").forEach(footnote => {
376
- const id = footnote.getAttribute("w:id")
397
+ footnotesDoc.queryAll("w:footnote").forEach((footnote: any) => {
398
+ const id = attr(footnote, "w:id")
377
399
  if (id === "0" || id === "-1") {
378
400
  return // Skip separator footnotes
379
401
  }
@@ -562,8 +584,8 @@ export class DocxParser {
562
584
  }
563
585
  const endnotesDoc = xmlDOM(content)
564
586
 
565
- endnotesDoc.queryAll("w:endnote").forEach(endnote => {
566
- const id = endnote.getAttribute("w:id")
587
+ endnotesDoc.queryAll("w:endnote").forEach((endnote: any) => {
588
+ const id = attr(endnote, "w:id")
567
589
  if (id === "0" || id === "-1") {
568
590
  return // Skip separator endnotes
569
591
  }
@@ -587,12 +609,12 @@ export class DocxParser {
587
609
  }
588
610
  const relsDoc = xmlDOM(content)
589
611
 
590
- relsDoc.queryAll("Relationship").forEach(rel => {
591
- const id = rel.getAttribute("Id")
612
+ relsDoc.queryAll("Relationship").forEach((rel: any) => {
613
+ const id = attr(rel, "Id")
592
614
  this.relationships[id] = {
593
615
  id,
594
- type: rel.getAttribute("Type"),
595
- target: rel.getAttribute("Target")
616
+ type: attr(rel, "Type"),
617
+ target: attr(rel, "Target")
596
618
  }
597
619
  })
598
620
  } catch (err) {
@@ -602,14 +624,14 @@ export class DocxParser {
602
624
 
603
625
  async parseImages() {
604
626
  // Find and extract image files
605
- const imageFiles = Object.keys(this.zip.files).filter(path =>
627
+ const imageFiles = Object.keys(this.zip.files).filter((path: any) =>
606
628
  path.startsWith("word/media/")
607
629
  )
608
630
 
609
631
  for (const path of imageFiles) {
610
632
  try {
611
633
  const blob = await this.zip.file(path).async("blob")
612
- const filename = path.split("/").pop()
634
+ const filename = path.split("/").pop() || ""
613
635
  const content = this.addMimeType(blob, filename)
614
636
  this.images[filename] = content
615
637
  } catch (err) {
@@ -618,13 +640,13 @@ export class DocxParser {
618
640
  }
619
641
  }
620
642
 
621
- addMimeType(blob, filename) {
643
+ addMimeType(blob: any, filename: any) {
622
644
  return new File([blob], filename, {
623
645
  type: this.getImageFileType(filename)
624
646
  })
625
647
  }
626
648
 
627
- getImageFileType(filename) {
649
+ getImageFileType(filename: any) {
628
650
  const ext = filename.split(".").pop().toLowerCase()
629
651
  switch (ext) {
630
652
  case "avif":
@@ -646,9 +668,9 @@ export class DocxParser {
646
668
  }
647
669
  }
648
670
 
649
- extractBlockContent(node) {
650
- const content = []
651
- node.queryAll("w:p").forEach(p => {
671
+ extractBlockContent(node: any) {
672
+ const content: any[] = []
673
+ node.queryAll("w:p").forEach((p: any) => {
652
674
  content.push({
653
675
  type: "paragraph",
654
676
  content: this.extractParagraphContent(p)
@@ -657,9 +679,9 @@ export class DocxParser {
657
679
  return content
658
680
  }
659
681
 
660
- extractParagraphContent(p) {
661
- const content = []
662
- p.queryAll("w:r").forEach(r => {
682
+ extractParagraphContent(p: any) {
683
+ const content: any[] = []
684
+ p.queryAll("w:r").forEach((r: any) => {
663
685
  const text = r.query("w:t")?.textContent
664
686
  if (!text) {
665
687
  return
@@ -677,8 +699,8 @@ export class DocxParser {
677
699
  return content
678
700
  }
679
701
 
680
- createMarksFromFormatting(formatting) {
681
- const marks = []
702
+ createMarksFromFormatting(formatting: any) {
703
+ const marks: any[] = []
682
704
  if (formatting.bold) {
683
705
  marks.push({type: "strong"})
684
706
  }
@@ -0,0 +1,83 @@
1
+ import {docSchema} from "../../schema/document/index.js"
2
+ import {toFullJSON, toMiniJSON} from "../../schema/mini_json.js"
3
+
4
+ import type {FidusNode, JSONValue, Template} from "../../types.js"
5
+
6
+ /**
7
+ * Extract a document-template definition from a Fidus document's content node.
8
+ */
9
+ export function extractTemplate(doc: FidusNode): Template {
10
+ const template = toFullJSON(doc as any, docSchema) as any
11
+ template.attrs.papersize = template.attrs.papersizes[0]
12
+ template.content = template.content.filter(
13
+ (part: any) =>
14
+ !part.attrs || !part.attrs.deleted
15
+ )
16
+ template.content.forEach((part: any) => {
17
+ delete part.content
18
+ if (part.type === "title") {
19
+ delete part.attrs
20
+ return
21
+ }
22
+ const attrs = (part.attrs || {}) as Record<string, unknown>
23
+ if (attrs.initial) {
24
+ part.content = JSON.parse(JSON.stringify(attrs.initial))
25
+ } else if (["heading_part", "richtext_part"].includes(part.type as string)) {
26
+ part.content = [{type: (attrs.elements as string[])[0]}]
27
+ } else if (part.type === "table") {
28
+ part.content = [
29
+ {
30
+ type: "table",
31
+ content: [
32
+ {
33
+ type: "table_row",
34
+ content: [
35
+ {
36
+ type: "table_cell",
37
+ content: [{type: "paragraph"}]
38
+ }
39
+ ]
40
+ }
41
+ ]
42
+ }
43
+ ]
44
+ }
45
+ delete attrs.deleted
46
+ if (!attrs.help) {
47
+ delete attrs.help
48
+ }
49
+ if (!attrs.language) {
50
+ delete attrs.language
51
+ }
52
+ if (!attrs.locking) {
53
+ delete attrs.locking
54
+ }
55
+ if (!attrs.initial) {
56
+ delete attrs.initial
57
+ }
58
+ if (!attrs.metadata) {
59
+ delete attrs.metadata
60
+ }
61
+ delete attrs.hidden
62
+ if (attrs.optional === "hidden") {
63
+ attrs.hidden = true
64
+ }
65
+ if (!attrs.optional) {
66
+ delete attrs.optional
67
+ }
68
+ })
69
+ const documentStyles = [
70
+ {
71
+ title: template.attrs.documentstyle,
72
+ slug: template.attrs.documentstyle,
73
+ contents: "",
74
+ files: []
75
+ }
76
+ ]
77
+ return {
78
+ content: toMiniJSON(docSchema.nodeFromJSON(template)) as unknown as FidusNode,
79
+ documentStyles: documentStyles as Array<Record<string, JSONValue>>,
80
+ exportTemplates: [],
81
+ files: []
82
+ }
83
+ }