@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.
- package/dist/bibliography/common.d.ts +9 -91
- package/dist/bibliography/common.d.ts.map +1 -1
- package/dist/bibliography/common.js +3 -2
- package/dist/bibliography/common.js.map +1 -1
- package/dist/bibliography/csl_bib.d.ts +1 -1
- package/dist/bibliography/csl_bib.d.ts.map +1 -1
- package/dist/bibliography/csl_bib.js +7 -7
- package/dist/bibliography/csl_bib.js.map +1 -1
- package/dist/citations/citeproc_sys.d.ts +9 -10
- package/dist/citations/citeproc_sys.d.ts.map +1 -1
- package/dist/citations/citeproc_sys.js +6 -1
- package/dist/citations/citeproc_sys.js.map +1 -1
- package/dist/citations/format.d.ts +33 -16
- package/dist/citations/format.d.ts.map +1 -1
- package/dist/citations/format.js +29 -4
- package/dist/citations/format.js.map +1 -1
- package/dist/editor/e2ee/encryptor.d.ts +35 -35
- package/dist/editor/e2ee/encryptor.d.ts.map +1 -1
- package/dist/editor/e2ee/encryptor.js +31 -31
- package/dist/editor/e2ee/encryptor.js.map +1 -1
- package/dist/exporter/docx/citations.d.ts +27 -17
- package/dist/exporter/docx/citations.d.ts.map +1 -1
- package/dist/exporter/docx/citations.js +24 -7
- package/dist/exporter/docx/citations.js.map +1 -1
- package/dist/exporter/docx/comments.d.ts +15 -11
- package/dist/exporter/docx/comments.d.ts.map +1 -1
- package/dist/exporter/docx/comments.js +47 -14
- package/dist/exporter/docx/comments.js.map +1 -1
- package/dist/exporter/docx/footnotes.d.ts +36 -31
- package/dist/exporter/docx/footnotes.d.ts.map +1 -1
- package/dist/exporter/docx/footnotes.js +46 -12
- package/dist/exporter/docx/footnotes.js.map +1 -1
- package/dist/exporter/docx/images.d.ts +23 -12
- package/dist/exporter/docx/images.d.ts.map +1 -1
- package/dist/exporter/docx/images.js +35 -20
- package/dist/exporter/docx/images.js.map +1 -1
- package/dist/exporter/docx/index.d.ts +11 -17
- package/dist/exporter/docx/index.d.ts.map +1 -1
- package/dist/exporter/docx/index.js +15 -7
- package/dist/exporter/docx/index.js.map +1 -1
- package/dist/exporter/docx/lists.d.ts +27 -22
- package/dist/exporter/docx/lists.d.ts.map +1 -1
- package/dist/exporter/docx/lists.js +77 -30
- package/dist/exporter/docx/lists.js.map +1 -1
- package/dist/exporter/docx/math.d.ts +9 -9
- package/dist/exporter/docx/math.d.ts.map +1 -1
- package/dist/exporter/docx/math.js +22 -5
- package/dist/exporter/docx/math.js.map +1 -1
- package/dist/exporter/docx/metadata.d.ts +12 -9
- package/dist/exporter/docx/metadata.d.ts.map +1 -1
- package/dist/exporter/docx/metadata.js +59 -26
- package/dist/exporter/docx/metadata.js.map +1 -1
- package/dist/exporter/docx/rels.d.ts +14 -12
- package/dist/exporter/docx/rels.d.ts.map +1 -1
- package/dist/exporter/docx/rels.js +37 -22
- package/dist/exporter/docx/rels.js.map +1 -1
- package/dist/exporter/docx/render.d.ts +17 -15
- package/dist/exporter/docx/render.d.ts.map +1 -1
- package/dist/exporter/docx/render.js +37 -31
- package/dist/exporter/docx/render.js.map +1 -1
- package/dist/exporter/docx/richtext.d.ts +8 -8
- package/dist/exporter/docx/richtext.d.ts.map +1 -1
- package/dist/exporter/docx/richtext.js +61 -43
- package/dist/exporter/docx/richtext.js.map +1 -1
- package/dist/exporter/docx/tables.d.ts +11 -9
- package/dist/exporter/docx/tables.d.ts.map +1 -1
- package/dist/exporter/docx/tables.js +16 -10
- package/dist/exporter/docx/tables.js.map +1 -1
- package/dist/exporter/docx/tools.d.ts +3 -2
- package/dist/exporter/docx/tools.d.ts.map +1 -1
- package/dist/exporter/docx/tools.js +3 -3
- package/dist/exporter/docx/tools.js.map +1 -1
- package/dist/exporter/epub/index.d.ts +11 -3
- package/dist/exporter/epub/index.d.ts.map +1 -1
- package/dist/exporter/epub/index.js +10 -3
- package/dist/exporter/epub/index.js.map +1 -1
- package/dist/exporter/epub/templates.d.ts +62 -31
- package/dist/exporter/epub/templates.d.ts.map +1 -1
- package/dist/exporter/epub/templates.js +1 -1
- package/dist/exporter/epub/templates.js.map +1 -1
- package/dist/exporter/epub/tools.d.ts +12 -4
- package/dist/exporter/epub/tools.d.ts.map +1 -1
- package/dist/exporter/epub/tools.js +14 -13
- package/dist/exporter/epub/tools.js.map +1 -1
- package/dist/exporter/html/citations.d.ts +17 -15
- package/dist/exporter/html/citations.d.ts.map +1 -1
- package/dist/exporter/html/citations.js +37 -18
- package/dist/exporter/html/citations.js.map +1 -1
- package/dist/exporter/html/convert.d.ts +20 -70
- package/dist/exporter/html/convert.d.ts.map +1 -1
- package/dist/exporter/html/convert.js +74 -42
- package/dist/exporter/html/convert.js.map +1 -1
- package/dist/exporter/html/index.d.ts +55 -52
- package/dist/exporter/html/index.d.ts.map +1 -1
- package/dist/exporter/html/index.js +23 -3
- package/dist/exporter/html/index.js.map +1 -1
- package/dist/exporter/html/templates.d.ts +23 -9
- package/dist/exporter/html/templates.d.ts.map +1 -1
- package/dist/exporter/html/templates.js +1 -1
- package/dist/exporter/html/templates.js.map +1 -1
- package/dist/exporter/html/tools.d.ts +1 -1
- package/dist/exporter/html/tools.d.ts.map +1 -1
- package/dist/exporter/html/tools.js +2 -2
- package/dist/exporter/html/tools.js.map +1 -1
- package/dist/exporter/jats/bibliography.d.ts +2 -1
- package/dist/exporter/jats/bibliography.d.ts.map +1 -1
- package/dist/exporter/jats/bibliography.js +57 -52
- package/dist/exporter/jats/bibliography.js.map +1 -1
- package/dist/exporter/jats/citations.d.ts +13 -11
- package/dist/exporter/jats/citations.d.ts.map +1 -1
- package/dist/exporter/jats/citations.js +28 -6
- package/dist/exporter/jats/citations.js.map +1 -1
- package/dist/exporter/jats/convert.d.ts +24 -28
- package/dist/exporter/jats/convert.d.ts.map +1 -1
- package/dist/exporter/jats/convert.js +53 -36
- package/dist/exporter/jats/convert.js.map +1 -1
- package/dist/exporter/jats/index.d.ts +21 -15
- package/dist/exporter/jats/index.d.ts.map +1 -1
- package/dist/exporter/jats/index.js +21 -5
- package/dist/exporter/jats/index.js.map +1 -1
- package/dist/exporter/jats/templates.d.ts +17 -15
- package/dist/exporter/jats/templates.d.ts.map +1 -1
- package/dist/exporter/jats/templates.js.map +1 -1
- package/dist/exporter/jats/text.d.ts +3 -2
- package/dist/exporter/jats/text.d.ts.map +1 -1
- package/dist/exporter/jats/text.js +4 -4
- package/dist/exporter/jats/text.js.map +1 -1
- package/dist/exporter/latex/convert.d.ts +12 -15
- package/dist/exporter/latex/convert.d.ts.map +1 -1
- package/dist/exporter/latex/convert.js +70 -54
- package/dist/exporter/latex/convert.js.map +1 -1
- package/dist/exporter/latex/escape_latex.d.ts +1 -1
- package/dist/exporter/latex/escape_latex.d.ts.map +1 -1
- package/dist/exporter/latex/escape_latex.js +1 -1
- package/dist/exporter/latex/escape_latex.js.map +1 -1
- package/dist/exporter/latex/index.d.ts +20 -19
- package/dist/exporter/latex/index.d.ts.map +1 -1
- package/dist/exporter/latex/index.js +15 -5
- package/dist/exporter/latex/index.js.map +1 -1
- package/dist/exporter/latex/readme.d.ts +1 -1
- package/dist/exporter/latex/readme.d.ts.map +1 -1
- package/dist/exporter/latex/readme.js +2 -2
- package/dist/exporter/latex/readme.js.map +1 -1
- package/dist/exporter/native/copy.d.ts +30 -0
- package/dist/exporter/native/copy.d.ts.map +1 -0
- package/dist/exporter/native/copy.js +151 -0
- package/dist/exporter/native/copy.js.map +1 -0
- package/dist/exporter/native/file.d.ts +12 -0
- package/dist/exporter/native/file.d.ts.map +1 -0
- package/dist/exporter/native/file.js +38 -0
- package/dist/exporter/native/file.js.map +1 -0
- package/dist/exporter/native/index.d.ts +5 -0
- package/dist/exporter/native/index.d.ts.map +1 -0
- package/dist/exporter/native/index.js +5 -0
- package/dist/exporter/native/index.js.map +1 -0
- package/dist/exporter/native/revision.d.ts +18 -0
- package/dist/exporter/native/revision.d.ts.map +1 -0
- package/dist/exporter/native/revision.js +39 -0
- package/dist/exporter/native/revision.js.map +1 -0
- package/dist/exporter/native/shrink.d.ts +29 -14
- package/dist/exporter/native/shrink.d.ts.map +1 -1
- package/dist/exporter/native/shrink.js +27 -18
- package/dist/exporter/native/shrink.js.map +1 -1
- package/dist/exporter/native/zip.d.ts +25 -0
- package/dist/exporter/native/zip.d.ts.map +1 -0
- package/dist/exporter/native/zip.js +56 -0
- package/dist/exporter/native/zip.js.map +1 -0
- package/dist/exporter/odt/citations.d.ts +18 -15
- package/dist/exporter/odt/citations.d.ts.map +1 -1
- package/dist/exporter/odt/citations.js +21 -4
- package/dist/exporter/odt/citations.js.map +1 -1
- package/dist/exporter/odt/footnotes.d.ts +25 -19
- package/dist/exporter/odt/footnotes.d.ts.map +1 -1
- package/dist/exporter/odt/footnotes.js +23 -6
- package/dist/exporter/odt/footnotes.js.map +1 -1
- package/dist/exporter/odt/images.d.ts +23 -11
- package/dist/exporter/odt/images.d.ts.map +1 -1
- package/dist/exporter/odt/images.js +34 -26
- package/dist/exporter/odt/images.js.map +1 -1
- package/dist/exporter/odt/index.d.ts +12 -18
- package/dist/exporter/odt/index.d.ts.map +1 -1
- package/dist/exporter/odt/index.js +16 -7
- package/dist/exporter/odt/index.js.map +1 -1
- package/dist/exporter/odt/math.d.ts +10 -8
- package/dist/exporter/odt/math.d.ts.map +1 -1
- package/dist/exporter/odt/math.js +27 -4
- package/dist/exporter/odt/math.js.map +1 -1
- package/dist/exporter/odt/metadata.d.ts +13 -9
- package/dist/exporter/odt/metadata.d.ts.map +1 -1
- package/dist/exporter/odt/metadata.js +36 -15
- package/dist/exporter/odt/metadata.js.map +1 -1
- package/dist/exporter/odt/render.d.ts +17 -15
- package/dist/exporter/odt/render.d.ts.map +1 -1
- package/dist/exporter/odt/render.js +25 -18
- package/dist/exporter/odt/render.js.map +1 -1
- package/dist/exporter/odt/richtext.d.ts +9 -9
- package/dist/exporter/odt/richtext.d.ts.map +1 -1
- package/dist/exporter/odt/richtext.js +55 -40
- package/dist/exporter/odt/richtext.js.map +1 -1
- package/dist/exporter/odt/styles.d.ts +29 -21
- package/dist/exporter/odt/styles.d.ts.map +1 -1
- package/dist/exporter/odt/styles.js +44 -22
- package/dist/exporter/odt/styles.js.map +1 -1
- package/dist/exporter/odt/track.d.ts +14 -7
- package/dist/exporter/odt/track.d.ts.map +1 -1
- package/dist/exporter/odt/track.js +7 -0
- package/dist/exporter/odt/track.js.map +1 -1
- package/dist/exporter/pandoc/citations.d.ts +20 -14
- package/dist/exporter/pandoc/citations.d.ts.map +1 -1
- package/dist/exporter/pandoc/citations.js +18 -4
- package/dist/exporter/pandoc/citations.js.map +1 -1
- package/dist/exporter/pandoc/convert.d.ts +10 -29
- package/dist/exporter/pandoc/convert.d.ts.map +1 -1
- package/dist/exporter/pandoc/convert.js +45 -40
- package/dist/exporter/pandoc/convert.js.map +1 -1
- package/dist/exporter/pandoc/index.d.ts +20 -33
- package/dist/exporter/pandoc/index.d.ts.map +1 -1
- package/dist/exporter/pandoc/index.js +20 -8
- package/dist/exporter/pandoc/index.js.map +1 -1
- package/dist/exporter/pandoc/readme.d.ts +1 -1
- package/dist/exporter/pandoc/readme.d.ts.map +1 -1
- package/dist/exporter/pandoc/readme.js +0 -1
- package/dist/exporter/pandoc/readme.js.map +1 -1
- package/dist/exporter/pandoc/tools.d.ts +21 -5
- package/dist/exporter/pandoc/tools.d.ts.map +1 -1
- package/dist/exporter/pandoc/tools.js +2 -2
- package/dist/exporter/pandoc/tools.js.map +1 -1
- package/dist/exporter/print/index.d.ts +18 -7
- package/dist/exporter/print/index.d.ts.map +1 -1
- package/dist/exporter/print/index.js +12 -10
- package/dist/exporter/print/index.js.map +1 -1
- package/dist/exporter/tools/doc_content.d.ts +5 -6
- package/dist/exporter/tools/doc_content.d.ts.map +1 -1
- package/dist/exporter/tools/doc_content.js +17 -16
- package/dist/exporter/tools/doc_content.js.map +1 -1
- package/dist/exporter/tools/svg.d.ts +7 -1
- package/dist/exporter/tools/svg.d.ts.map +1 -1
- package/dist/exporter/tools/svg.js.map +1 -1
- package/dist/exporter/tools/xml.d.ts +39 -38
- package/dist/exporter/tools/xml.d.ts.map +1 -1
- package/dist/exporter/tools/xml.js +82 -55
- package/dist/exporter/tools/xml.js.map +1 -1
- package/dist/exporter/tools/xml_zip.d.ts +15 -14
- package/dist/exporter/tools/xml_zip.d.ts.map +1 -1
- package/dist/exporter/tools/xml_zip.js +8 -2
- package/dist/exporter/tools/xml_zip.js.map +1 -1
- package/dist/exporter/tools/zip.d.ts +28 -14
- package/dist/exporter/tools/zip.d.ts.map +1 -1
- package/dist/exporter/tools/zip.js +13 -6
- package/dist/exporter/tools/zip.js.map +1 -1
- package/dist/exporter/tools/zotero_csl.d.ts +19 -6
- package/dist/exporter/tools/zotero_csl.d.ts.map +1 -1
- package/dist/exporter/tools/zotero_csl.js +9 -9
- package/dist/exporter/tools/zotero_csl.js.map +1 -1
- package/dist/importer/citations.d.ts +25 -22
- package/dist/importer/citations.d.ts.map +1 -1
- package/dist/importer/citations.js +1 -49
- package/dist/importer/citations.js.map +1 -1
- package/dist/importer/docx/citations.d.ts +8 -30
- package/dist/importer/docx/citations.d.ts.map +1 -1
- package/dist/importer/docx/citations.js +1 -26
- package/dist/importer/docx/citations.js.map +1 -1
- package/dist/importer/docx/convert.d.ts +38 -116
- package/dist/importer/docx/convert.d.ts.map +1 -1
- package/dist/importer/docx/convert.js +99 -82
- package/dist/importer/docx/convert.js.map +1 -1
- package/dist/importer/docx/helpers.d.ts +1 -1
- package/dist/importer/docx/helpers.d.ts.map +1 -1
- package/dist/importer/docx/helpers.js +1 -1
- package/dist/importer/docx/helpers.js.map +1 -1
- package/dist/importer/docx/index.d.ts +27 -0
- package/dist/importer/docx/index.d.ts.map +1 -0
- package/dist/importer/docx/index.js +77 -0
- package/dist/importer/docx/index.js.map +1 -0
- package/dist/importer/docx/omml2mathml.d.ts +2 -3
- package/dist/importer/docx/omml2mathml.d.ts.map +1 -1
- package/dist/importer/docx/omml2mathml.js +23 -116
- package/dist/importer/docx/omml2mathml.js.map +1 -1
- package/dist/importer/docx/parse.d.ts +22 -131
- package/dist/importer/docx/parse.d.ts.map +1 -1
- package/dist/importer/docx/parse.js +73 -55
- package/dist/importer/docx/parse.js.map +1 -1
- package/dist/importer/native/extract_template.d.ts +6 -0
- package/dist/importer/native/extract_template.d.ts.map +1 -0
- package/dist/importer/native/extract_template.js +80 -0
- package/dist/importer/native/extract_template.js.map +1 -0
- package/dist/importer/native/file.d.ts +37 -0
- package/dist/importer/native/file.d.ts.map +1 -0
- package/dist/importer/native/file.js +162 -0
- package/dist/importer/native/file.js.map +1 -0
- package/dist/importer/native/get_images.d.ts +18 -8
- package/dist/importer/native/get_images.d.ts.map +1 -1
- package/dist/importer/native/get_images.js +39 -45
- package/dist/importer/native/get_images.js.map +1 -1
- package/dist/importer/native/importer.d.ts +41 -0
- package/dist/importer/native/importer.d.ts.map +1 -0
- package/dist/importer/native/importer.js +170 -0
- package/dist/importer/native/importer.js.map +1 -0
- package/dist/importer/native/index.d.ts +7 -0
- package/dist/importer/native/index.d.ts.map +1 -0
- package/dist/importer/native/index.js +7 -0
- package/dist/importer/native/index.js.map +1 -0
- package/dist/importer/native/update.d.ts +5 -4
- package/dist/importer/native/update.d.ts.map +1 -1
- package/dist/importer/native/update.js +4 -3
- package/dist/importer/native/update.js.map +1 -1
- package/dist/importer/native/update_template.d.ts +12 -0
- package/dist/importer/native/update_template.d.ts.map +1 -0
- package/dist/importer/native/update_template.js +19 -0
- package/dist/importer/native/update_template.js.map +1 -0
- package/dist/importer/odt/citations.d.ts +7 -27
- package/dist/importer/odt/citations.d.ts.map +1 -1
- package/dist/importer/odt/citations.js +0 -22
- package/dist/importer/odt/citations.js.map +1 -1
- package/dist/importer/odt/convert.d.ts +53 -237
- package/dist/importer/odt/convert.d.ts.map +1 -1
- package/dist/importer/odt/convert.js +162 -138
- package/dist/importer/odt/convert.js.map +1 -1
- package/dist/importer/odt/index.d.ts +30 -0
- package/dist/importer/odt/index.d.ts.map +1 -0
- package/dist/importer/odt/index.js +124 -0
- package/dist/importer/odt/index.js.map +1 -0
- package/dist/importer/pandoc/convert.d.ts +25 -77
- package/dist/importer/pandoc/convert.d.ts.map +1 -1
- package/dist/importer/pandoc/convert.js +65 -52
- package/dist/importer/pandoc/convert.js.map +1 -1
- package/dist/importer/pandoc/helpers.d.ts +4 -3
- package/dist/importer/pandoc/helpers.d.ts.map +1 -1
- package/dist/importer/pandoc/helpers.js +24 -26
- package/dist/importer/pandoc/helpers.js.map +1 -1
- package/dist/importer/pandoc/index.d.ts +31 -0
- package/dist/importer/pandoc/index.d.ts.map +1 -0
- package/dist/importer/pandoc/index.js +114 -0
- package/dist/importer/pandoc/index.js.map +1 -0
- package/dist/importer/registry.d.ts +21 -0
- package/dist/importer/registry.d.ts.map +1 -0
- package/dist/importer/registry.js +41 -0
- package/dist/importer/registry.js.map +1 -0
- package/dist/importer/zip_analyzer.d.ts +27 -21
- package/dist/importer/zip_analyzer.d.ts.map +1 -1
- package/dist/importer/zip_analyzer.js +10 -5
- package/dist/importer/zip_analyzer.js.map +1 -1
- package/dist/mathlive/opf_includes.d.ts +1 -1
- package/dist/mathlive/opf_includes.d.ts.map +1 -1
- package/dist/mathlive/opf_includes.js.map +1 -1
- package/dist/schema/common/annotate.d.ts +37 -49
- package/dist/schema/common/annotate.d.ts.map +1 -1
- package/dist/schema/common/annotate.js +2 -2
- package/dist/schema/common/annotate.js.map +1 -1
- package/dist/schema/common/base.d.ts +63 -81
- package/dist/schema/common/base.d.ts.map +1 -1
- package/dist/schema/common/base.js.map +1 -1
- package/dist/schema/common/citation.d.ts +23 -22
- package/dist/schema/common/citation.d.ts.map +1 -1
- package/dist/schema/common/citation.js +4 -5
- package/dist/schema/common/citation.js.map +1 -1
- package/dist/schema/common/equation.d.ts +13 -14
- package/dist/schema/common/equation.d.ts.map +1 -1
- package/dist/schema/common/equation.js +1 -1
- package/dist/schema/common/equation.js.map +1 -1
- package/dist/schema/common/figure.d.ts +72 -93
- package/dist/schema/common/figure.d.ts.map +1 -1
- package/dist/schema/common/figure.js +11 -9
- package/dist/schema/common/figure.js.map +1 -1
- package/dist/schema/common/heading.d.ts +8 -32
- package/dist/schema/common/heading.d.ts.map +1 -1
- package/dist/schema/common/heading.js +2 -2
- package/dist/schema/common/heading.js.map +1 -1
- package/dist/schema/common/index.d.ts +2 -2
- package/dist/schema/common/index.d.ts.map +1 -1
- package/dist/schema/common/index.js.map +1 -1
- package/dist/schema/common/list.d.ts +52 -72
- package/dist/schema/common/list.d.ts.map +1 -1
- package/dist/schema/common/list.js +3 -3
- package/dist/schema/common/list.js.map +1 -1
- package/dist/schema/common/reference.d.ts +51 -59
- package/dist/schema/common/reference.d.ts.map +1 -1
- package/dist/schema/common/reference.js +5 -5
- package/dist/schema/common/reference.js.map +1 -1
- package/dist/schema/common/table.d.ts +59 -75
- package/dist/schema/common/table.d.ts.map +1 -1
- package/dist/schema/common/table.js +3 -2
- package/dist/schema/common/table.js.map +1 -1
- package/dist/schema/common/track.d.ts +83 -97
- package/dist/schema/common/track.d.ts.map +1 -1
- package/dist/schema/common/track.js +18 -17
- package/dist/schema/common/track.js.map +1 -1
- package/dist/schema/convert.d.ts +2 -2
- package/dist/schema/convert.d.ts.map +1 -1
- package/dist/schema/convert.js +2 -2
- package/dist/schema/convert.js.map +1 -1
- package/dist/schema/document/content.d.ts +95 -122
- package/dist/schema/document/content.d.ts.map +1 -1
- package/dist/schema/document/content.js +9 -9
- package/dist/schema/document/content.js.map +1 -1
- package/dist/schema/document/index.d.ts +173 -257
- package/dist/schema/document/index.d.ts.map +1 -1
- package/dist/schema/document/index.js.map +1 -1
- package/dist/schema/document/structure.d.ts +149 -258
- package/dist/schema/document/structure.d.ts.map +1 -1
- package/dist/schema/document/structure.js +2 -2
- package/dist/schema/document/structure.js.map +1 -1
- package/dist/schema/export.d.ts +4 -877
- package/dist/schema/export.d.ts.map +1 -1
- package/dist/schema/export.js +1 -0
- package/dist/schema/export.js.map +1 -1
- package/dist/schema/footnotes.d.ts +110 -155
- package/dist/schema/footnotes.d.ts.map +1 -1
- package/dist/schema/footnotes.js +4 -2
- package/dist/schema/footnotes.js.map +1 -1
- package/dist/schema/footnotes_convert.d.ts +3 -3
- package/dist/schema/footnotes_convert.d.ts.map +1 -1
- package/dist/schema/footnotes_convert.js +10 -6
- package/dist/schema/footnotes_convert.js.map +1 -1
- package/dist/schema/i18n.d.ts +3 -534
- package/dist/schema/i18n.d.ts.map +1 -1
- package/dist/schema/i18n.js +1 -0
- package/dist/schema/i18n.js.map +1 -1
- package/dist/schema/index.d.ts +1 -1
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/mini_json.d.ts +3 -4
- package/dist/schema/mini_json.d.ts.map +1 -1
- package/dist/schema/mini_json.js +2 -0
- package/dist/schema/mini_json.js.map +1 -1
- package/dist/schema/text.d.ts +2 -1
- package/dist/schema/text.d.ts.map +1 -1
- package/dist/schema/text.js +1 -1
- package/dist/schema/text.js.map +1 -1
- package/dist/types.d.ts +167 -8
- package/dist/types.d.ts.map +1 -1
- package/package.json +24 -1
- package/src/bibliography/{common.js → common.ts} +15 -12
- package/src/bibliography/{csl_bib.js → csl_bib.ts} +16 -15
- package/src/citations/{citeproc_sys.js → citeproc_sys.ts} +26 -6
- package/src/citations/{format.js → format.ts} +80 -24
- package/src/editor/e2ee/{encryptor.js → encryptor.ts} +76 -44
- package/src/exporter/docx/{citations.js → citations.ts} +51 -23
- package/src/exporter/docx/{comments.js → comments.ts} +69 -26
- package/src/exporter/docx/{footnotes.js → footnotes.ts} +81 -42
- package/src/exporter/docx/images.ts +128 -0
- package/src/exporter/docx/{index.js → index.ts} +48 -25
- package/src/exporter/docx/{lists.js → lists.ts} +89 -46
- package/src/exporter/docx/{math.js → math.ts} +29 -9
- package/src/exporter/docx/{metadata.js → metadata.ts} +78 -42
- package/src/exporter/docx/{rels.js → rels.ts} +71 -50
- package/src/exporter/docx/{render.js → render.ts} +124 -87
- package/src/exporter/docx/{richtext.js → richtext.ts} +107 -84
- package/src/exporter/docx/{tables.js → tables.ts} +33 -23
- package/src/exporter/docx/{tools.js → tools.ts} +4 -3
- package/src/exporter/epub/{index.js → index.ts} +44 -15
- package/src/exporter/epub/{templates.js → templates.ts} +71 -7
- package/src/exporter/epub/{tools.js → tools.ts} +31 -25
- package/src/exporter/html/{citations.js → citations.ts} +79 -31
- package/src/exporter/html/{convert.js → convert.ts} +118 -71
- package/src/exporter/html/{index.js → index.ts} +63 -29
- package/src/exporter/html/{templates.js → templates.ts} +22 -2
- package/src/exporter/html/{tools.js → tools.ts} +9 -6
- package/src/exporter/jats/bibliography.ts +199 -0
- package/src/exporter/jats/{citations.js → citations.ts} +56 -20
- package/src/exporter/jats/{convert.js → convert.ts} +72 -53
- package/src/exporter/jats/index.ts +132 -0
- package/src/exporter/jats/{templates.js → templates.ts} +19 -3
- package/src/exporter/jats/{text.js → text.ts} +8 -6
- package/src/exporter/latex/{convert.js → convert.ts} +160 -125
- package/src/exporter/latex/{escape_latex.js → escape_latex.ts} +1 -1
- package/src/exporter/latex/{index.js → index.ts} +27 -12
- package/src/exporter/latex/{readme.js → readme.ts} +2 -2
- package/src/exporter/native/copy.ts +231 -0
- package/src/exporter/native/file.ts +65 -0
- package/src/exporter/native/index.ts +4 -0
- package/src/exporter/native/revision.ts +76 -0
- package/src/exporter/native/{shrink.js → shrink.ts} +64 -29
- package/src/exporter/native/zip.ts +85 -0
- package/src/exporter/odt/{citations.js → citations.ts} +35 -15
- package/src/exporter/odt/{footnotes.js → footnotes.ts} +53 -30
- package/src/exporter/odt/images.ts +135 -0
- package/src/exporter/odt/{index.js → index.ts} +49 -27
- package/src/exporter/odt/{math.js → math.ts} +38 -9
- package/src/exporter/odt/{metadata.js → metadata.ts} +54 -29
- package/src/exporter/odt/{render.js → render.ts} +89 -60
- package/src/exporter/odt/{richtext.js → richtext.ts} +102 -72
- package/src/exporter/odt/{styles.js → styles.ts} +98 -66
- package/src/exporter/odt/{track.js → track.ts} +22 -6
- package/src/exporter/pandoc/{citations.js → citations.ts} +31 -15
- package/src/exporter/pandoc/{convert.js → convert.ts} +98 -79
- package/src/exporter/pandoc/{index.js → index.ts} +36 -13
- package/src/exporter/pandoc/{readme.js → readme.ts} +0 -1
- package/src/exporter/pandoc/{tools.js → tools.ts} +28 -5
- package/src/exporter/print/{index.js → index.ts} +38 -19
- package/src/exporter/tools/{doc_content.js → doc_content.ts} +34 -24
- package/src/exporter/tools/{svg.js → svg.ts} +9 -3
- package/src/exporter/tools/{xml.js → xml.ts} +187 -138
- package/src/exporter/tools/{xml_zip.js → xml_zip.ts} +19 -11
- package/src/exporter/tools/{zip.js → zip.ts} +35 -11
- package/src/exporter/tools/{zotero_csl.js → zotero_csl.ts} +35 -18
- package/src/global.d.ts +2 -0
- package/src/importer/citations.ts +116 -0
- package/src/importer/docx/{citations.js → citations.ts} +22 -37
- package/src/importer/docx/{convert.js → convert.ts} +176 -141
- package/src/importer/docx/{helpers.js → helpers.ts} +1 -1
- package/src/importer/docx/index.ts +124 -0
- package/src/importer/docx/{omml2mathml.js → omml2mathml.ts} +154 -176
- package/src/importer/docx/{parse.js → parse.ts} +103 -81
- package/src/importer/native/extract_template.ts +83 -0
- package/src/importer/native/file.ts +282 -0
- package/src/importer/native/get_images.ts +82 -0
- package/src/importer/native/importer.ts +244 -0
- package/src/importer/native/index.ts +6 -0
- package/src/importer/native/{update.js → update.ts} +13 -5
- package/src/importer/native/update_template.ts +32 -0
- package/src/importer/odt/{citations.js → citations.ts} +17 -29
- package/src/importer/odt/{convert.js → convert.ts} +261 -237
- package/src/importer/odt/index.ts +202 -0
- package/src/importer/pandoc/{convert.js → convert.ts} +116 -94
- package/src/importer/pandoc/{helpers.js → helpers.ts} +24 -12
- package/src/importer/pandoc/index.ts +171 -0
- package/src/importer/registry.ts +69 -0
- package/src/importer/{zip_analyzer.js → zip_analyzer.ts} +44 -18
- package/src/mathlive/{opf_includes.js → opf_includes.ts} +1 -1
- package/src/modules.d.ts +40 -0
- package/src/schema/common/{annotate.js → annotate.ts} +10 -8
- package/src/schema/common/{base.js → base.ts} +12 -10
- package/src/schema/common/{citation.js → citation.ts} +17 -8
- package/src/schema/common/{equation.js → equation.ts} +6 -4
- package/src/schema/common/{figure.js → figure.ts} +43 -23
- package/src/schema/common/{heading.js → heading.ts} +7 -5
- package/src/schema/common/{list.js → list.ts} +15 -13
- package/src/schema/common/{reference.js → reference.ts} +14 -12
- package/src/schema/common/{table.js → table.ts} +16 -14
- package/src/schema/common/{track.js → track.ts} +42 -31
- package/src/schema/{convert.js → convert.ts} +6 -2
- package/src/schema/document/{content.js → content.ts} +22 -20
- package/src/schema/document/{structure.js → structure.ts} +15 -9
- package/src/schema/{export.js → export.ts} +4 -2
- package/src/schema/{footnotes.js → footnotes.ts} +11 -8
- package/src/schema/{footnotes_convert.js → footnotes_convert.ts} +11 -8
- package/src/schema/{i18n.js → i18n.ts} +7 -1
- package/src/schema/{mini_json.js → mini_json.ts} +11 -12
- package/src/schema/{text.js → text.ts} +6 -2
- package/src/types.ts +185 -7
- package/src/exporter/docx/images.js +0 -101
- package/src/exporter/jats/bibliography.js +0 -183
- package/src/exporter/jats/index.js +0 -92
- package/src/exporter/odt/images.js +0 -115
- package/src/importer/citations.js +0 -129
- package/src/importer/native/get_images.js +0 -76
- /package/src/schema/common/{index.js → index.ts} +0 -0
- /package/src/schema/document/{index.js → index.ts} +0 -0
- /package/src/schema/{index.js → index.ts} +0 -0
|
@@ -1,16 +1,42 @@
|
|
|
1
1
|
import {escapeText} from "fwtoolkit"
|
|
2
|
+
|
|
3
|
+
import type {
|
|
4
|
+
BibDB,
|
|
5
|
+
BibliographyResult,
|
|
6
|
+
CiteprocInstance,
|
|
7
|
+
CSL
|
|
8
|
+
} from "../types.js"
|
|
2
9
|
import {citeprocSys} from "./citeproc_sys.js"
|
|
3
|
-
/*
|
|
4
|
-
* Use CSL and bibDB to format all citations for the given prosemirror json citation nodes
|
|
5
|
-
*/
|
|
6
10
|
|
|
11
|
+
interface CitationInfo {
|
|
12
|
+
format: string
|
|
13
|
+
references: Array<{id: number; [key: string]: unknown}>
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Use CSL and bibDB to format all citations for the given ProseMirror JSON citation nodes.
|
|
18
|
+
*/
|
|
7
19
|
export class FormatCitations {
|
|
20
|
+
csl: CSL
|
|
21
|
+
allCitationInfos: CitationInfo[]
|
|
22
|
+
citationStyle: string
|
|
23
|
+
bibliographyHeader: string
|
|
24
|
+
bibDB: BibDB
|
|
25
|
+
synchronous: boolean
|
|
26
|
+
lang: string
|
|
27
|
+
|
|
28
|
+
bibliography: BibliographyResult | false
|
|
29
|
+
citations: Array<{citationItems: unknown[]; properties: {noteIndex: number}}>
|
|
30
|
+
bibFormats: string[]
|
|
31
|
+
citationTexts: string[]
|
|
32
|
+
citationType: string
|
|
33
|
+
|
|
8
34
|
constructor(
|
|
9
|
-
csl,
|
|
10
|
-
allCitationInfos,
|
|
11
|
-
citationStyle,
|
|
12
|
-
bibliographyHeader,
|
|
13
|
-
bibDB,
|
|
35
|
+
csl: CSL,
|
|
36
|
+
allCitationInfos: CitationInfo[],
|
|
37
|
+
citationStyle: string,
|
|
38
|
+
bibliographyHeader: string,
|
|
39
|
+
bibDB: BibDB,
|
|
14
40
|
synchronous = false,
|
|
15
41
|
lang = "en-US"
|
|
16
42
|
) {
|
|
@@ -21,9 +47,15 @@ export class FormatCitations {
|
|
|
21
47
|
this.bibDB = bibDB
|
|
22
48
|
this.synchronous = synchronous
|
|
23
49
|
this.lang = lang
|
|
50
|
+
|
|
51
|
+
this.bibliography = false
|
|
52
|
+
this.citations = []
|
|
53
|
+
this.bibFormats = []
|
|
54
|
+
this.citationTexts = []
|
|
55
|
+
this.citationType = ""
|
|
24
56
|
}
|
|
25
57
|
|
|
26
|
-
init() {
|
|
58
|
+
init(): boolean | Promise<void> {
|
|
27
59
|
this.bibliography = false
|
|
28
60
|
this.citations = []
|
|
29
61
|
this.bibFormats = []
|
|
@@ -33,7 +65,7 @@ export class FormatCitations {
|
|
|
33
65
|
return this.getFormattedCitations()
|
|
34
66
|
}
|
|
35
67
|
|
|
36
|
-
formatAllCitations() {
|
|
68
|
+
formatAllCitations(): void {
|
|
37
69
|
this.allCitationInfos.forEach(cInfo => {
|
|
38
70
|
this.bibFormats.push(cInfo.format)
|
|
39
71
|
this.citations.push({
|
|
@@ -45,7 +77,7 @@ export class FormatCitations {
|
|
|
45
77
|
})
|
|
46
78
|
}
|
|
47
79
|
|
|
48
|
-
get bibHTML() {
|
|
80
|
+
get bibHTML(): string {
|
|
49
81
|
if (!this.bibliography || !this.bibliography[0].entry_ids.length) {
|
|
50
82
|
return ""
|
|
51
83
|
}
|
|
@@ -55,7 +87,7 @@ export class FormatCitations {
|
|
|
55
87
|
}
|
|
56
88
|
|
|
57
89
|
// CSS
|
|
58
|
-
get bibCSS() {
|
|
90
|
+
get bibCSS(): string {
|
|
59
91
|
if (!this.bibliography || !this.bibliography[0].entry_ids.length) {
|
|
60
92
|
return ""
|
|
61
93
|
}
|
|
@@ -86,7 +118,7 @@ export class FormatCitations {
|
|
|
86
118
|
return css
|
|
87
119
|
}
|
|
88
120
|
|
|
89
|
-
reloadCitations(missingItems) {
|
|
121
|
+
reloadCitations(missingItems: string[]): Promise<void> {
|
|
90
122
|
// Not all citations could be found in the database.
|
|
91
123
|
// Reload the database if possible, but don't cycle if no new matches are found.
|
|
92
124
|
if (!this.bibDB.getDB) {
|
|
@@ -95,16 +127,19 @@ export class FormatCitations {
|
|
|
95
127
|
|
|
96
128
|
return this.bibDB.getDB().then(() => {
|
|
97
129
|
if (missingItems.some(item => this.bibDB.db.hasOwnProperty(item))) {
|
|
98
|
-
return this.init()
|
|
130
|
+
return this.init() as Promise<void>
|
|
99
131
|
} else {
|
|
100
132
|
return Promise.resolve()
|
|
101
133
|
}
|
|
102
134
|
})
|
|
103
135
|
}
|
|
104
136
|
|
|
105
|
-
getFormattedCitations() {
|
|
137
|
+
getFormattedCitations(): boolean | Promise<void> {
|
|
106
138
|
const citeprocConnector = new citeprocSys(this.bibDB)
|
|
107
139
|
if (this.synchronous) {
|
|
140
|
+
if (!this.csl.getEngineSync) {
|
|
141
|
+
return false
|
|
142
|
+
}
|
|
108
143
|
const citeprocInstance = this.csl.getEngineSync(
|
|
109
144
|
citeprocConnector,
|
|
110
145
|
this.citationStyle,
|
|
@@ -116,6 +151,9 @@ export class FormatCitations {
|
|
|
116
151
|
this.process(citeprocInstance)
|
|
117
152
|
return true
|
|
118
153
|
} else {
|
|
154
|
+
if (!this.csl.getEngine) {
|
|
155
|
+
return Promise.resolve()
|
|
156
|
+
}
|
|
119
157
|
return this.csl
|
|
120
158
|
.getEngine(citeprocConnector, this.citationStyle, this.lang)
|
|
121
159
|
.then(citeprocInstance => {
|
|
@@ -131,10 +169,10 @@ export class FormatCitations {
|
|
|
131
169
|
}
|
|
132
170
|
}
|
|
133
171
|
|
|
134
|
-
process(citeprocInstance) {
|
|
135
|
-
const allIds = []
|
|
172
|
+
process(citeprocInstance: CiteprocInstance): void {
|
|
173
|
+
const allIds: string[] = []
|
|
136
174
|
this.citations.forEach(cit =>
|
|
137
|
-
cit.citationItems.forEach(item => allIds.push(String(item.id)))
|
|
175
|
+
cit.citationItems.forEach(item => allIds.push(String((item as {id: number}).id)))
|
|
138
176
|
)
|
|
139
177
|
citeprocInstance.updateItems(allIds)
|
|
140
178
|
|
|
@@ -147,18 +185,32 @@ export class FormatCitations {
|
|
|
147
185
|
true
|
|
148
186
|
)
|
|
149
187
|
if (inText && "textcite" == this.bibFormats[i]) {
|
|
150
|
-
const items = citation.citationItems
|
|
188
|
+
const items = citation.citationItems as Array<{
|
|
189
|
+
id: number
|
|
190
|
+
locator?: string
|
|
191
|
+
prefix?: string
|
|
192
|
+
}>
|
|
151
193
|
let newCiteText = ""
|
|
152
194
|
|
|
153
195
|
for (let j = 0; j < items.length; j++) {
|
|
154
|
-
const onlyNameOption
|
|
196
|
+
const onlyNameOption: Array<{
|
|
197
|
+
id: number
|
|
198
|
+
"author-only": number
|
|
199
|
+
locator?: string
|
|
200
|
+
prefix?: string
|
|
201
|
+
}> = [
|
|
155
202
|
{
|
|
156
203
|
id: items[j].id,
|
|
157
204
|
"author-only": 1
|
|
158
205
|
}
|
|
159
206
|
]
|
|
160
207
|
|
|
161
|
-
const onlyDateOption
|
|
208
|
+
const onlyDateOption: Array<{
|
|
209
|
+
id: number
|
|
210
|
+
"suppress-author": number
|
|
211
|
+
locator?: string
|
|
212
|
+
prefix?: string
|
|
213
|
+
}> = [
|
|
162
214
|
{
|
|
163
215
|
id: items[j].id,
|
|
164
216
|
"suppress-author": 1
|
|
@@ -180,8 +232,12 @@ export class FormatCitations {
|
|
|
180
232
|
}
|
|
181
233
|
newCiteText += `${citeprocInstance.makeCitationCluster(onlyNameOption)} ${citeprocInstance.makeCitationCluster(onlyDateOption)}`
|
|
182
234
|
}
|
|
183
|
-
citationTexts.find(
|
|
184
|
-
|
|
235
|
+
const target = citationTexts.find(
|
|
236
|
+
citationText => citationText[0] === i
|
|
237
|
+
)
|
|
238
|
+
if (target) {
|
|
239
|
+
target[1] = newCiteText
|
|
240
|
+
}
|
|
185
241
|
}
|
|
186
242
|
citationTexts.forEach(
|
|
187
243
|
([index, citationText]) =>
|
|
@@ -189,6 +245,6 @@ export class FormatCitations {
|
|
|
189
245
|
)
|
|
190
246
|
}
|
|
191
247
|
this.citationType = citeprocInstance.cslXml.dataObj.attrs.class
|
|
192
|
-
this.bibliography = citeprocInstance.makeBibliography()
|
|
248
|
+
this.bibliography = citeprocInstance.makeBibliography() as BibliographyResult
|
|
193
249
|
}
|
|
194
250
|
}
|
|
@@ -17,11 +17,11 @@ export class E2EEEncryptor {
|
|
|
17
17
|
/**
|
|
18
18
|
* Encrypt a string with AES-GCM.
|
|
19
19
|
*
|
|
20
|
-
* @param
|
|
21
|
-
* @param
|
|
22
|
-
* @returns
|
|
20
|
+
* @param plaintext - The plaintext string to encrypt
|
|
21
|
+
* @param key - An AES-GCM key (from E2EEKeyManager.deriveKey)
|
|
22
|
+
* @returns Base64-encoded string (iv + ciphertext + auth tag)
|
|
23
23
|
*/
|
|
24
|
-
static async encrypt(plaintext, key) {
|
|
24
|
+
static async encrypt(plaintext: string, key: CryptoKey): Promise<string> {
|
|
25
25
|
const iv = crypto.getRandomValues(new Uint8Array(12))
|
|
26
26
|
const encoded = new TextEncoder().encode(plaintext)
|
|
27
27
|
const ciphertext = await crypto.subtle.encrypt(
|
|
@@ -39,11 +39,14 @@ export class E2EEEncryptor {
|
|
|
39
39
|
/**
|
|
40
40
|
* Decrypt a Base64-encoded AES-GCM ciphertext.
|
|
41
41
|
*
|
|
42
|
-
* @param
|
|
43
|
-
* @param
|
|
44
|
-
* @returns
|
|
42
|
+
* @param ciphertextBase64 - Base64-encoded (iv + ciphertext + auth tag)
|
|
43
|
+
* @param key - An AES-GCM key (from E2EEKeyManager.deriveKey)
|
|
44
|
+
* @returns The decrypted plaintext string
|
|
45
45
|
*/
|
|
46
|
-
static async decrypt(
|
|
46
|
+
static async decrypt(
|
|
47
|
+
ciphertextBase64: string,
|
|
48
|
+
key: CryptoKey
|
|
49
|
+
): Promise<string> {
|
|
47
50
|
const combined = E2EEEncryptor._base64ToUint8Array(ciphertextBase64)
|
|
48
51
|
const iv = combined.slice(0, 12)
|
|
49
52
|
const ciphertext = combined.slice(12)
|
|
@@ -60,11 +63,14 @@ export class E2EEEncryptor {
|
|
|
60
63
|
*
|
|
61
64
|
* Serializes the object to JSON, then encrypts the JSON string.
|
|
62
65
|
*
|
|
63
|
-
* @param
|
|
64
|
-
* @param
|
|
65
|
-
* @returns
|
|
66
|
+
* @param obj - A JSON-serializable object
|
|
67
|
+
* @param key - An AES-GCM key
|
|
68
|
+
* @returns Base64-encoded encrypted data
|
|
66
69
|
*/
|
|
67
|
-
static encryptObject(
|
|
70
|
+
static encryptObject(
|
|
71
|
+
obj: Record<string, unknown> | unknown[],
|
|
72
|
+
key: CryptoKey
|
|
73
|
+
): Promise<string> {
|
|
68
74
|
return E2EEEncryptor.encrypt(JSON.stringify(obj), key)
|
|
69
75
|
}
|
|
70
76
|
|
|
@@ -73,11 +79,14 @@ export class E2EEEncryptor {
|
|
|
73
79
|
*
|
|
74
80
|
* Decrypts the Base64-encoded ciphertext, then parses the result as JSON.
|
|
75
81
|
*
|
|
76
|
-
* @param
|
|
77
|
-
* @param
|
|
78
|
-
* @returns
|
|
82
|
+
* @param ciphertextBase64 - Base64-encoded encrypted data
|
|
83
|
+
* @param key - An AES-GCM key
|
|
84
|
+
* @returns The decrypted and parsed object
|
|
79
85
|
*/
|
|
80
|
-
static async decryptObject(
|
|
86
|
+
static async decryptObject(
|
|
87
|
+
ciphertextBase64: string,
|
|
88
|
+
key: CryptoKey
|
|
89
|
+
): Promise<unknown> {
|
|
81
90
|
const plaintext = await E2EEEncryptor.decrypt(ciphertextBase64, key)
|
|
82
91
|
return JSON.parse(plaintext)
|
|
83
92
|
}
|
|
@@ -85,11 +94,14 @@ export class E2EEEncryptor {
|
|
|
85
94
|
/**
|
|
86
95
|
* Encrypt an ArrayBuffer (for images and other binary data).
|
|
87
96
|
*
|
|
88
|
-
* @param
|
|
89
|
-
* @param
|
|
90
|
-
* @returns
|
|
97
|
+
* @param buffer - The binary data to encrypt
|
|
98
|
+
* @param key - An AES-GCM key
|
|
99
|
+
* @returns Base64-encoded encrypted data (iv + ciphertext)
|
|
91
100
|
*/
|
|
92
|
-
static async encryptBuffer(
|
|
101
|
+
static async encryptBuffer(
|
|
102
|
+
buffer: ArrayBuffer,
|
|
103
|
+
key: CryptoKey
|
|
104
|
+
): Promise<string> {
|
|
93
105
|
const iv = crypto.getRandomValues(new Uint8Array(12))
|
|
94
106
|
const ciphertext = await crypto.subtle.encrypt(
|
|
95
107
|
{name: "AES-GCM", iv: iv},
|
|
@@ -106,15 +118,22 @@ export class E2EEEncryptor {
|
|
|
106
118
|
/**
|
|
107
119
|
* Decrypt to an ArrayBuffer.
|
|
108
120
|
*
|
|
109
|
-
* @param
|
|
110
|
-
* @param
|
|
111
|
-
* @returns
|
|
121
|
+
* @param ciphertextBase64 - Base64-encoded encrypted data
|
|
122
|
+
* @param key - An AES-GCM key
|
|
123
|
+
* @returns The decrypted binary data
|
|
112
124
|
*/
|
|
113
|
-
static decryptBuffer(
|
|
125
|
+
static decryptBuffer(
|
|
126
|
+
ciphertextBase64: string,
|
|
127
|
+
key: CryptoKey
|
|
128
|
+
): Promise<ArrayBuffer> {
|
|
114
129
|
const combined = E2EEEncryptor._base64ToUint8Array(ciphertextBase64)
|
|
115
130
|
const iv = combined.slice(0, 12)
|
|
116
131
|
const ciphertext = combined.slice(12)
|
|
117
|
-
return crypto.subtle.decrypt(
|
|
132
|
+
return crypto.subtle.decrypt(
|
|
133
|
+
{name: "AES-GCM", iv: iv},
|
|
134
|
+
key,
|
|
135
|
+
ciphertext
|
|
136
|
+
)
|
|
118
137
|
}
|
|
119
138
|
|
|
120
139
|
/**
|
|
@@ -124,11 +143,14 @@ export class E2EEEncryptor {
|
|
|
124
143
|
* a Blob with application/octet-stream type (since the encrypted
|
|
125
144
|
* data is opaque binary).
|
|
126
145
|
*
|
|
127
|
-
* @param
|
|
128
|
-
* @param
|
|
129
|
-
* @returns
|
|
146
|
+
* @param file - The image file to encrypt
|
|
147
|
+
* @param key - An AES-GCM key
|
|
148
|
+
* @returns An encrypted Blob with type application/octet-stream
|
|
130
149
|
*/
|
|
131
|
-
static async encryptImage(
|
|
150
|
+
static async encryptImage(
|
|
151
|
+
file: Blob,
|
|
152
|
+
key: CryptoKey
|
|
153
|
+
): Promise<Blob> {
|
|
132
154
|
const buffer = await file.arrayBuffer()
|
|
133
155
|
const iv = crypto.getRandomValues(new Uint8Array(12))
|
|
134
156
|
const ciphertext = await crypto.subtle.encrypt(
|
|
@@ -146,11 +168,14 @@ export class E2EEEncryptor {
|
|
|
146
168
|
/**
|
|
147
169
|
* Decrypt an encrypted image back to an ArrayBuffer.
|
|
148
170
|
*
|
|
149
|
-
* @param
|
|
150
|
-
* @param
|
|
151
|
-
* @returns
|
|
171
|
+
* @param ciphertextBase64 - Base64-encoded encrypted image data
|
|
172
|
+
* @param key - An AES-GCM key
|
|
173
|
+
* @returns The decrypted image data
|
|
152
174
|
*/
|
|
153
|
-
static decryptImage(
|
|
175
|
+
static decryptImage(
|
|
176
|
+
ciphertextBase64: string,
|
|
177
|
+
key: CryptoKey
|
|
178
|
+
): Promise<ArrayBuffer> {
|
|
154
179
|
return E2EEEncryptor.decryptBuffer(ciphertextBase64, key)
|
|
155
180
|
}
|
|
156
181
|
|
|
@@ -160,11 +185,14 @@ export class E2EEEncryptor {
|
|
|
160
185
|
* Useful for decrypting encrypted images that need to be stored
|
|
161
186
|
* as Base64 data URLs or re-exported.
|
|
162
187
|
*
|
|
163
|
-
* @param
|
|
164
|
-
* @param
|
|
165
|
-
* @returns
|
|
188
|
+
* @param ciphertextBase64 - Base64-encoded encrypted data
|
|
189
|
+
* @param key - An AES-GCM key
|
|
190
|
+
* @returns Base64-encoded decrypted data
|
|
166
191
|
*/
|
|
167
|
-
static async decryptBufferToBase64(
|
|
192
|
+
static async decryptBufferToBase64(
|
|
193
|
+
ciphertextBase64: string,
|
|
194
|
+
key: CryptoKey
|
|
195
|
+
): Promise<string> {
|
|
168
196
|
const buffer = await E2EEEncryptor.decryptBuffer(ciphertextBase64, key)
|
|
169
197
|
const bytes = new Uint8Array(buffer)
|
|
170
198
|
let binary = ""
|
|
@@ -180,12 +208,16 @@ export class E2EEEncryptor {
|
|
|
180
208
|
* Fetches the encrypted image file from the given URL, decrypts it,
|
|
181
209
|
* and creates a temporary object URL that can be used as an img src.
|
|
182
210
|
*
|
|
183
|
-
* @param
|
|
184
|
-
* @param
|
|
185
|
-
* @param
|
|
186
|
-
* @returns
|
|
211
|
+
* @param imageUrl - The URL of the encrypted image file
|
|
212
|
+
* @param key - An AES-GCM key
|
|
213
|
+
* @param mimeType - The MIME type of the decrypted image
|
|
214
|
+
* @returns A blob URL for the decrypted image
|
|
187
215
|
*/
|
|
188
|
-
static async decryptImageToUrl(
|
|
216
|
+
static async decryptImageToUrl(
|
|
217
|
+
imageUrl: string,
|
|
218
|
+
key: CryptoKey,
|
|
219
|
+
mimeType = "image/png"
|
|
220
|
+
): Promise<string> {
|
|
189
221
|
const response = await fetch(imageUrl)
|
|
190
222
|
const arrayBuffer = await response.arrayBuffer()
|
|
191
223
|
const bytes = new Uint8Array(arrayBuffer)
|
|
@@ -205,7 +237,7 @@ export class E2EEEncryptor {
|
|
|
205
237
|
* Convert a Uint8Array to a Base64-encoded string.
|
|
206
238
|
* @private
|
|
207
239
|
*/
|
|
208
|
-
static _uint8ArrayToBase64(bytes) {
|
|
240
|
+
private static _uint8ArrayToBase64(bytes: Uint8Array): string {
|
|
209
241
|
let binary = ""
|
|
210
242
|
for (let i = 0; i < bytes.length; i++) {
|
|
211
243
|
binary += String.fromCharCode(bytes[i])
|
|
@@ -217,7 +249,7 @@ export class E2EEEncryptor {
|
|
|
217
249
|
* Convert a Base64-encoded string to a Uint8Array.
|
|
218
250
|
* @private
|
|
219
251
|
*/
|
|
220
|
-
static _base64ToUint8Array(base64) {
|
|
252
|
+
private static _base64ToUint8Array(base64: string): Uint8Array {
|
|
221
253
|
const binary = atob(base64)
|
|
222
254
|
const bytes = new Uint8Array(binary.length)
|
|
223
255
|
for (let i = 0; i < binary.length; i++) {
|
|
@@ -3,10 +3,28 @@ import {DOMParser, DOMSerializer} from "prosemirror-model"
|
|
|
3
3
|
import {cslBibSchema} from "../../bibliography/csl_bib.js"
|
|
4
4
|
import {FormatCitations} from "../../citations/format.js"
|
|
5
5
|
import {fnSchema} from "../../schema/footnotes.js"
|
|
6
|
+
import type {BibDB, CSL, DocSettings, FidusNode} from "../../types.js"
|
|
6
7
|
import {descendantNodes} from "../tools/doc_content.js"
|
|
8
|
+
import type {XMLElement} from "../tools/xml.js"
|
|
9
|
+
import type {XmlZip} from "../tools/xml_zip.js"
|
|
7
10
|
|
|
8
11
|
export class DOCXExporterCitations {
|
|
9
|
-
|
|
12
|
+
docContent: FidusNode
|
|
13
|
+
settings: DocSettings
|
|
14
|
+
bibDB: BibDB
|
|
15
|
+
csl: CSL
|
|
16
|
+
xml: XmlZip
|
|
17
|
+
origCitInfos: Record<string, unknown>[]
|
|
18
|
+
|
|
19
|
+
citInfos: Record<string, unknown>[]
|
|
20
|
+
citationTexts: string[]
|
|
21
|
+
pmCits: FidusNode[]
|
|
22
|
+
citFm: FormatCitations | false
|
|
23
|
+
pmBib: FidusNode | false
|
|
24
|
+
styleXML: XMLElement | null
|
|
25
|
+
styleFilePath: string
|
|
26
|
+
|
|
27
|
+
constructor(docContent: FidusNode, settings: DocSettings, bibDB: BibDB, csl: CSL, xml: XmlZip, origCitInfos: Record<string, unknown>[] = []) {
|
|
10
28
|
this.docContent = docContent
|
|
11
29
|
this.settings = settings
|
|
12
30
|
this.bibDB = bibDB
|
|
@@ -19,11 +37,11 @@ export class DOCXExporterCitations {
|
|
|
19
37
|
this.pmCits = []
|
|
20
38
|
this.citFm = false
|
|
21
39
|
this.pmBib = false
|
|
22
|
-
this.styleXML =
|
|
40
|
+
this.styleXML = null
|
|
23
41
|
this.styleFilePath = "word/styles.xml"
|
|
24
42
|
}
|
|
25
43
|
|
|
26
|
-
init() {
|
|
44
|
+
init(): Promise<void> {
|
|
27
45
|
return this.xml
|
|
28
46
|
.getXml(this.styleFilePath)
|
|
29
47
|
.then(styleXML => {
|
|
@@ -35,7 +53,7 @@ export class DOCXExporterCitations {
|
|
|
35
53
|
|
|
36
54
|
// Citations are highly interdependent -- so we need to format them all
|
|
37
55
|
// together before laying out the document.
|
|
38
|
-
formatCitations() {
|
|
56
|
+
formatCitations(): Promise<void> {
|
|
39
57
|
if (this.origCitInfos.length) {
|
|
40
58
|
// Initial citInfos are taken from a previous run to include in bibliography,
|
|
41
59
|
// and they are removed before spitting out the citation entries for the given document.
|
|
@@ -44,21 +62,22 @@ export class DOCXExporterCitations {
|
|
|
44
62
|
}
|
|
45
63
|
|
|
46
64
|
descendantNodes(this.docContent).forEach(node => {
|
|
47
|
-
if (node.type === "citation") {
|
|
65
|
+
if (node.type === "citation" && node.attrs) {
|
|
48
66
|
this.citInfos.push(JSON.parse(JSON.stringify(node.attrs)))
|
|
49
67
|
}
|
|
50
68
|
})
|
|
51
|
-
|
|
69
|
+
const citFm = new FormatCitations(
|
|
52
70
|
this.csl,
|
|
53
|
-
this.citInfos,
|
|
54
|
-
this.settings.citationstyle,
|
|
71
|
+
this.citInfos as any,
|
|
72
|
+
this.settings.citationstyle || "",
|
|
55
73
|
"",
|
|
56
74
|
this.bibDB,
|
|
57
75
|
false,
|
|
58
76
|
this.settings.language
|
|
59
77
|
)
|
|
60
|
-
|
|
61
|
-
|
|
78
|
+
this.citFm = citFm
|
|
79
|
+
return (citFm.init() as Promise<void>).then(() => {
|
|
80
|
+
this.citationTexts = citFm.citationTexts
|
|
62
81
|
if (this.origCitInfos.length) {
|
|
63
82
|
// Remove all citation texts originating from original starting citInfos
|
|
64
83
|
this.citationTexts.splice(0, this.origCitInfos.length)
|
|
@@ -68,7 +87,10 @@ export class DOCXExporterCitations {
|
|
|
68
87
|
})
|
|
69
88
|
}
|
|
70
89
|
|
|
71
|
-
convertCitations() {
|
|
90
|
+
convertCitations(): void {
|
|
91
|
+
if (!this.citFm) {
|
|
92
|
+
return
|
|
93
|
+
}
|
|
72
94
|
// There could be some formatting in the citations, so we parse them through the PM schema for final formatting.
|
|
73
95
|
// We need to put the citations each in a paragraph so that it works with
|
|
74
96
|
// the fiduswriter schema and so that the converter doesn't mash them together.
|
|
@@ -83,30 +105,36 @@ export class DOCXExporterCitations {
|
|
|
83
105
|
|
|
84
106
|
const serializer = DOMSerializer.fromSchema(fnSchema)
|
|
85
107
|
const dom = serializer.serializeNode(fnNode)
|
|
86
|
-
dom.innerHTML = citationsHTML
|
|
108
|
+
;(dom as HTMLElement).innerHTML = citationsHTML
|
|
87
109
|
this.pmCits = DOMParser.fromSchema(fnSchema)
|
|
88
110
|
.parse(dom, {topNode: fnNode})
|
|
89
|
-
.toJSON().content
|
|
111
|
+
.toJSON().content as FidusNode[]
|
|
90
112
|
}
|
|
91
113
|
|
|
92
114
|
// Now we do the same for the bibliography.
|
|
93
|
-
const cslBib = this.citFm
|
|
115
|
+
const cslBib = this.citFm!.bibliography
|
|
94
116
|
if (cslBib && cslBib[1].length > 0) {
|
|
95
117
|
this.addReferenceStyle(cslBib[0])
|
|
96
118
|
const bibNode = cslBibSchema.nodeFromJSON({type: "cslbib"})
|
|
97
119
|
const cslSerializer = DOMSerializer.fromSchema(cslBibSchema)
|
|
98
120
|
const dom = cslSerializer.serializeNode(bibNode)
|
|
99
|
-
dom.innerHTML = cslBib[1].join("")
|
|
121
|
+
;(dom as HTMLElement).innerHTML = cslBib[1].join("")
|
|
100
122
|
this.pmBib = DOMParser.fromSchema(cslBibSchema)
|
|
101
123
|
.parse(dom, {topNode: bibNode})
|
|
102
|
-
.toJSON()
|
|
124
|
+
.toJSON() as FidusNode
|
|
103
125
|
}
|
|
104
126
|
}
|
|
105
127
|
|
|
106
|
-
addReferenceStyle(bibInfo
|
|
107
|
-
|
|
128
|
+
addReferenceStyle(bibInfo: {
|
|
129
|
+
linespacing: number
|
|
130
|
+
entryspacing: number
|
|
131
|
+
hangingindent?: boolean
|
|
132
|
+
maxoffset: number
|
|
133
|
+
"second-field-align"?: "margin" | "flush"
|
|
134
|
+
}): void {
|
|
135
|
+
const stylesEl = this.styleXML!.query("w:styles")
|
|
108
136
|
if (
|
|
109
|
-
!this.styleXML
|
|
137
|
+
!this.styleXML!.query("w:style", {
|
|
110
138
|
"w:styleId": "BibliographyHeading"
|
|
111
139
|
})
|
|
112
140
|
) {
|
|
@@ -126,15 +154,15 @@ export class DOCXExporterCitations {
|
|
|
126
154
|
<w:szCs w:val="32"/>
|
|
127
155
|
</w:rPr>
|
|
128
156
|
</w:style>`
|
|
129
|
-
stylesEl
|
|
157
|
+
stylesEl?.appendXML(headingStyleDef)
|
|
130
158
|
}
|
|
131
159
|
// The style called "Bibliography" will override any previous style
|
|
132
160
|
// of the same name.
|
|
133
|
-
const stylesParStyle = this.styleXML
|
|
161
|
+
const stylesParStyle = this.styleXML!.query("w:style", {
|
|
134
162
|
"w:styleId": "Bibliography"
|
|
135
163
|
})
|
|
136
164
|
if (stylesParStyle) {
|
|
137
|
-
stylesParStyle.parentElement
|
|
165
|
+
stylesParStyle.parentElement!.removeChild(stylesParStyle)
|
|
138
166
|
}
|
|
139
167
|
|
|
140
168
|
const lineHeight = 240 * bibInfo.linespacing
|
|
@@ -172,6 +200,6 @@ export class DOCXExporterCitations {
|
|
|
172
200
|
<w:rPr></w:rPr>
|
|
173
201
|
</w:style>`
|
|
174
202
|
|
|
175
|
-
stylesEl
|
|
203
|
+
stylesEl?.appendXML(styleDef)
|
|
176
204
|
}
|
|
177
205
|
}
|