@fiduswriter/document 0.1.0-alpha.4 → 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.
- 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 +4 -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
|
@@ -13,129 +13,150 @@ const fastXMLParserOptions = {
|
|
|
13
13
|
trimValues: false
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
const isLeaf = tagName
|
|
16
|
+
const isLeaf = (tagName: string | undefined): boolean =>
|
|
17
|
+
["#text", "__cdata", "#comment"].includes(tagName || "")
|
|
17
18
|
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
type XMLNode = Record<string, unknown>
|
|
20
|
+
|
|
21
|
+
export class XMLElement {
|
|
22
|
+
node: XMLNode
|
|
23
|
+
parentElement: XMLElement | null
|
|
24
|
+
|
|
25
|
+
constructor(node: XMLNode, parentElement: XMLElement | null = null) {
|
|
20
26
|
this.node = node
|
|
21
27
|
this.parentElement = parentElement
|
|
22
28
|
|
|
23
29
|
// Recursively wrap child elements if they exist
|
|
24
30
|
const tagName = this.tagName
|
|
25
31
|
if (tagName && this.node[tagName] && !isLeaf(tagName)) {
|
|
26
|
-
this.node[tagName] = this.node[tagName].map(
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
+
this.node[tagName] = (this.node[tagName] as unknown[]).map(
|
|
33
|
+
(child: unknown) => {
|
|
34
|
+
// Only wrap objects (not text nodes)
|
|
35
|
+
return typeof child === "object" && child !== null
|
|
36
|
+
? new XMLElement(child as XMLNode, this)
|
|
37
|
+
: child
|
|
38
|
+
}
|
|
39
|
+
)
|
|
32
40
|
}
|
|
33
41
|
}
|
|
34
42
|
|
|
35
|
-
get tagName() {
|
|
43
|
+
get tagName(): string | undefined {
|
|
36
44
|
// Get the tag name dynamically (the first key that isn't ":@")
|
|
37
45
|
return Object.keys(this.node).find(key => key !== ":@")
|
|
38
46
|
}
|
|
39
47
|
|
|
40
|
-
get children() {
|
|
48
|
+
get children(): Array<XMLElement | string> {
|
|
41
49
|
// Return child elements if they exist, or an empty array if none
|
|
42
|
-
return this.node[this.tagName] || []
|
|
50
|
+
return (this.node[this.tagName!] as Array<XMLElement | string>) || []
|
|
43
51
|
}
|
|
44
52
|
|
|
45
|
-
get attributes() {
|
|
53
|
+
get attributes(): Record<string, unknown> {
|
|
46
54
|
// Return attributes stored under the ":@" key, or an empty object if not present
|
|
47
|
-
return this.node[":@"] || {}
|
|
55
|
+
return (this.node[":@"] as Record<string, unknown>) || {}
|
|
48
56
|
}
|
|
49
57
|
|
|
50
|
-
set attributes(attrs) {
|
|
58
|
+
set attributes(attrs: Record<string, unknown>) {
|
|
51
59
|
// Update the attributes object
|
|
52
60
|
this.node[":@"] = attrs
|
|
53
61
|
}
|
|
54
62
|
|
|
55
|
-
get innerXML() {
|
|
63
|
+
get innerXML(): string {
|
|
56
64
|
// Serialize the children back to XML
|
|
57
65
|
return this.children
|
|
58
66
|
.map(child => {
|
|
59
|
-
|
|
67
|
+
if (child instanceof XMLElement) {
|
|
68
|
+
return child.toString()
|
|
69
|
+
}
|
|
70
|
+
return String(child)
|
|
60
71
|
})
|
|
61
72
|
.join("")
|
|
62
73
|
}
|
|
63
74
|
|
|
64
|
-
set innerXML(xmlString) {
|
|
65
|
-
this.
|
|
75
|
+
set innerXML(xmlString: string) {
|
|
76
|
+
;(this.children as XMLElement[]).forEach(child => {
|
|
66
77
|
child.setParent(null)
|
|
67
78
|
})
|
|
68
79
|
// Clear existing children
|
|
69
|
-
this.node[this.tagName] = []
|
|
80
|
+
this.node[this.tagName!] = []
|
|
70
81
|
|
|
71
82
|
// Parse the new XML string
|
|
72
83
|
const parser = new XMLParser(fastXMLParserOptions)
|
|
73
84
|
const xml = parser.parse(
|
|
74
85
|
`<${this.tagName}>${xmlString}</${this.tagName}>`
|
|
75
|
-
)
|
|
86
|
+
) as XMLNode[]
|
|
76
87
|
// Append new children
|
|
77
|
-
xml[0][this.tagName].forEach(child => {
|
|
78
|
-
this.appendChild(child)
|
|
88
|
+
;((xml[0][this.tagName!] as unknown[]) || []).forEach(child => {
|
|
89
|
+
this.appendChild(child as XMLNode)
|
|
79
90
|
})
|
|
80
91
|
}
|
|
81
92
|
|
|
82
|
-
get textContent() {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
93
|
+
get textContent(): string {
|
|
94
|
+
const tagName = this.tagName
|
|
95
|
+
if (isLeaf(tagName)) {
|
|
96
|
+
if (tagName === "#text") {
|
|
97
|
+
return String(this.node[tagName] || "")
|
|
86
98
|
}
|
|
87
99
|
return ""
|
|
88
100
|
} else {
|
|
89
101
|
// Serialize the children back to text
|
|
90
|
-
return this.children
|
|
102
|
+
return (this.children as XMLElement[])
|
|
103
|
+
.map(child => child.textContent)
|
|
104
|
+
.join("")
|
|
91
105
|
}
|
|
92
106
|
}
|
|
93
107
|
|
|
94
|
-
set textContent(value) {
|
|
108
|
+
set textContent(value: string) {
|
|
109
|
+
const tagName = this.tagName
|
|
95
110
|
// For leaf nodes, directly set the text content
|
|
96
|
-
if (
|
|
111
|
+
if (tagName === "#text") {
|
|
97
112
|
this.node["#text"] = value
|
|
98
113
|
return
|
|
99
114
|
}
|
|
100
115
|
|
|
101
116
|
// For element nodes, clear children and add a text node
|
|
102
|
-
if (this.node[
|
|
117
|
+
if (this.node[tagName!]) {
|
|
103
118
|
// Clear existing children
|
|
104
|
-
this.node[
|
|
119
|
+
this.node[tagName!] = []
|
|
105
120
|
|
|
106
121
|
// Only add text content if it's not empty
|
|
107
122
|
if (value) {
|
|
108
|
-
const textNode = {
|
|
123
|
+
const textNode: XMLNode = {
|
|
109
124
|
"#text": value
|
|
110
125
|
}
|
|
111
|
-
this.node[
|
|
126
|
+
;(this.node[tagName!] as XMLElement[]).push(
|
|
127
|
+
new XMLElement(textNode, this)
|
|
128
|
+
)
|
|
112
129
|
}
|
|
113
130
|
}
|
|
114
131
|
}
|
|
115
132
|
|
|
116
|
-
get firstChild() {
|
|
133
|
+
get firstChild(): XMLElement | string | undefined {
|
|
117
134
|
return this.children[0]
|
|
118
135
|
}
|
|
119
136
|
|
|
120
|
-
get lastChild() {
|
|
137
|
+
get lastChild(): XMLElement | string | undefined {
|
|
121
138
|
return this.children[this.children.length - 1]
|
|
122
139
|
}
|
|
123
140
|
|
|
124
|
-
get firstElementChild() {
|
|
125
|
-
return this.children
|
|
141
|
+
get firstElementChild(): XMLElement | undefined {
|
|
142
|
+
return (this.children as XMLElement[]).find(
|
|
143
|
+
child => child instanceof XMLElement && !isLeaf(child.tagName)
|
|
144
|
+
)
|
|
126
145
|
}
|
|
127
146
|
|
|
128
|
-
get lastElementChild() {
|
|
129
|
-
const elements = this.children.filter(
|
|
147
|
+
get lastElementChild(): XMLElement | null {
|
|
148
|
+
const elements = (this.children as XMLElement[]).filter(
|
|
149
|
+
child => child instanceof XMLElement && !isLeaf(child.tagName)
|
|
150
|
+
)
|
|
130
151
|
if (elements.length === 0) {
|
|
131
152
|
return null
|
|
132
153
|
}
|
|
133
154
|
return elements[elements.length - 1]
|
|
134
155
|
}
|
|
135
156
|
|
|
136
|
-
get nextSibling() {
|
|
157
|
+
get nextSibling(): XMLElement | null {
|
|
137
158
|
if (this.parentElement) {
|
|
138
|
-
const siblings = this.parentElement.children
|
|
159
|
+
const siblings = this.parentElement.children as XMLElement[]
|
|
139
160
|
const index = siblings.indexOf(this)
|
|
140
161
|
if (index < siblings.length - 1) {
|
|
141
162
|
return siblings[index + 1]
|
|
@@ -144,9 +165,9 @@ class XMLElement {
|
|
|
144
165
|
return null
|
|
145
166
|
}
|
|
146
167
|
|
|
147
|
-
get previousSibling() {
|
|
168
|
+
get previousSibling(): XMLElement | null {
|
|
148
169
|
if (this.parentElement) {
|
|
149
|
-
const siblings = this.parentElement.children
|
|
170
|
+
const siblings = this.parentElement.children as XMLElement[]
|
|
150
171
|
const index = siblings.indexOf(this)
|
|
151
172
|
if (index > 0) {
|
|
152
173
|
return siblings[index - 1]
|
|
@@ -155,51 +176,53 @@ class XMLElement {
|
|
|
155
176
|
return null
|
|
156
177
|
}
|
|
157
178
|
|
|
158
|
-
setParent(element) {
|
|
179
|
+
setParent(element: XMLElement | null): this {
|
|
159
180
|
this.parentElement = element
|
|
160
181
|
return this
|
|
161
182
|
}
|
|
162
183
|
|
|
163
|
-
hasAttribute(name) {
|
|
184
|
+
hasAttribute(name: string): boolean {
|
|
164
185
|
return name in this.attributes
|
|
165
186
|
}
|
|
166
187
|
|
|
167
|
-
getAttribute(name) {
|
|
188
|
+
getAttribute(name: string): unknown {
|
|
168
189
|
return this.attributes[name]
|
|
169
190
|
}
|
|
170
191
|
|
|
171
|
-
setAttribute(name, value) {
|
|
192
|
+
setAttribute(name: string, value: unknown): false | void {
|
|
172
193
|
if (isLeaf(this.tagName)) {
|
|
173
194
|
return false
|
|
174
195
|
}
|
|
175
196
|
this.attributes[name] = value
|
|
176
197
|
}
|
|
177
198
|
|
|
178
|
-
cloneNode(deep = false, parentElement = null) {
|
|
199
|
+
cloneNode(deep = false, parentElement: XMLElement | null = null): XMLElement {
|
|
179
200
|
if (isLeaf(this.tagName)) {
|
|
180
201
|
return new XMLElement({...this.node}, parentElement)
|
|
181
202
|
}
|
|
182
|
-
const
|
|
183
|
-
|
|
203
|
+
const tagName = this.tagName!
|
|
204
|
+
const clonedNode: XMLNode = {
|
|
205
|
+
":@": {...((this.node[":@"] as Record<string, unknown>) || {})}
|
|
184
206
|
}
|
|
185
|
-
clonedNode[
|
|
207
|
+
clonedNode[tagName] = []
|
|
186
208
|
const clone = new XMLElement(clonedNode, parentElement)
|
|
187
209
|
if (deep) {
|
|
188
|
-
clonedNode[
|
|
210
|
+
clonedNode[tagName] = (this.children as XMLElement[]).map(child =>
|
|
189
211
|
child.cloneNode(deep, clone)
|
|
190
212
|
)
|
|
191
213
|
}
|
|
192
214
|
return clone
|
|
193
215
|
}
|
|
194
216
|
|
|
195
|
-
appendChild(newChild) {
|
|
196
|
-
|
|
217
|
+
appendChild(newChild: XMLNode | XMLElement): false | void {
|
|
218
|
+
const tagName = this.tagName
|
|
219
|
+
if (isLeaf(tagName)) {
|
|
197
220
|
return false
|
|
198
221
|
}
|
|
199
|
-
if (!this.node[
|
|
200
|
-
this.node[
|
|
222
|
+
if (!this.node[tagName!]) {
|
|
223
|
+
this.node[tagName!] = []
|
|
201
224
|
}
|
|
202
|
-
let newChildElement
|
|
225
|
+
let newChildElement: XMLElement
|
|
203
226
|
// Wrap newChild in XMLElement if it's not already
|
|
204
227
|
if (newChild instanceof XMLElement) {
|
|
205
228
|
newChild.parentElement?.removeChild(newChild)
|
|
@@ -208,17 +231,18 @@ class XMLElement {
|
|
|
208
231
|
newChildElement = new XMLElement(newChild, this)
|
|
209
232
|
}
|
|
210
233
|
// Append newChild to the list of children under the tagName
|
|
211
|
-
this.node[
|
|
234
|
+
;(this.node[tagName!] as XMLElement[]).push(newChildElement)
|
|
212
235
|
}
|
|
213
236
|
|
|
214
|
-
prependChild(newChild) {
|
|
215
|
-
|
|
237
|
+
prependChild(newChild: XMLNode | XMLElement): false | void {
|
|
238
|
+
const tagName = this.tagName
|
|
239
|
+
if (isLeaf(tagName)) {
|
|
216
240
|
return false
|
|
217
241
|
}
|
|
218
|
-
if (!this.node[
|
|
219
|
-
this.node[
|
|
242
|
+
if (!this.node[tagName!]) {
|
|
243
|
+
this.node[tagName!] = []
|
|
220
244
|
}
|
|
221
|
-
let newChildElement
|
|
245
|
+
let newChildElement: XMLElement
|
|
222
246
|
// Wrap newChild in XMLElement if it's not already
|
|
223
247
|
if (newChild instanceof XMLElement) {
|
|
224
248
|
newChild.parentElement?.removeChild(newChild)
|
|
@@ -227,68 +251,75 @@ class XMLElement {
|
|
|
227
251
|
newChildElement = new XMLElement(newChild, this)
|
|
228
252
|
}
|
|
229
253
|
// Prepend newChild to the list of children under the tagName
|
|
230
|
-
this.node[
|
|
254
|
+
;(this.node[tagName!] as XMLElement[]).unshift(newChildElement)
|
|
231
255
|
}
|
|
232
256
|
|
|
233
|
-
appendXML(xmlString) {
|
|
234
|
-
|
|
257
|
+
appendXML(xmlString: string): false | void {
|
|
258
|
+
const tagName = this.tagName
|
|
259
|
+
if (isLeaf(tagName)) {
|
|
235
260
|
return false
|
|
236
261
|
}
|
|
237
262
|
const parser = new XMLParser(fastXMLParserOptions)
|
|
238
263
|
const xml = parser.parse(
|
|
239
|
-
`<${
|
|
240
|
-
)
|
|
241
|
-
xml[0][
|
|
242
|
-
this.appendChild(child)
|
|
264
|
+
`<${tagName}>${xmlString}</${tagName}>`
|
|
265
|
+
) as XMLNode[]
|
|
266
|
+
;((xml[0][tagName!] as unknown[]) || []).forEach(child => {
|
|
267
|
+
this.appendChild(child as XMLNode)
|
|
243
268
|
})
|
|
244
269
|
}
|
|
245
270
|
|
|
246
|
-
prependXML(xmlString) {
|
|
247
|
-
|
|
271
|
+
prependXML(xmlString: string): false | void {
|
|
272
|
+
const tagName = this.tagName
|
|
273
|
+
if (isLeaf(tagName)) {
|
|
248
274
|
return false
|
|
249
275
|
}
|
|
250
276
|
const parser = new XMLParser(fastXMLParserOptions)
|
|
251
277
|
const xml = parser.parse(
|
|
252
|
-
`<${
|
|
253
|
-
)
|
|
254
|
-
xml[0][
|
|
255
|
-
|
|
256
|
-
|
|
278
|
+
`<${tagName}>${xmlString}</${tagName}>`
|
|
279
|
+
) as XMLNode[]
|
|
280
|
+
;((xml[0][tagName!] as unknown[]) || [])
|
|
281
|
+
.slice()
|
|
282
|
+
.reverse()
|
|
283
|
+
.forEach(child => {
|
|
284
|
+
this.prependChild(child as XMLNode)
|
|
285
|
+
})
|
|
257
286
|
}
|
|
258
287
|
|
|
259
|
-
insertXMLAt(xmlString, index) {
|
|
260
|
-
|
|
288
|
+
insertXMLAt(xmlString: string, index: number): false | void {
|
|
289
|
+
const tagName = this.tagName
|
|
290
|
+
if (isLeaf(tagName)) {
|
|
261
291
|
return false
|
|
262
292
|
}
|
|
263
293
|
const parser = new XMLParser(fastXMLParserOptions)
|
|
264
294
|
const xml = parser.parse(
|
|
265
|
-
`<${
|
|
266
|
-
)
|
|
267
|
-
xml[0][
|
|
268
|
-
const newChild = new XMLElement(child, this)
|
|
269
|
-
this.node[
|
|
295
|
+
`<${tagName}>${xmlString}</${tagName}>`
|
|
296
|
+
) as XMLNode[]
|
|
297
|
+
;((xml[0][tagName!] as unknown[]) || []).forEach((child, i) => {
|
|
298
|
+
const newChild = new XMLElement(child as XMLNode, this)
|
|
299
|
+
;(this.node[tagName!] as XMLElement[]).splice(index + i, 0, newChild)
|
|
270
300
|
})
|
|
271
301
|
}
|
|
272
302
|
|
|
273
303
|
splitAtChildElement(
|
|
274
|
-
childElement,
|
|
304
|
+
childElement: XMLElement,
|
|
275
305
|
appendToCurrentNode = "",
|
|
276
306
|
insertBetweenNodes = "",
|
|
277
307
|
insertAfterSplit = ""
|
|
278
|
-
) {
|
|
279
|
-
if (!this.children.includes(childElement)) {
|
|
308
|
+
): boolean {
|
|
309
|
+
if (!this.children.includes(childElement as unknown as never)) {
|
|
280
310
|
return false
|
|
281
311
|
}
|
|
282
312
|
|
|
283
313
|
// Get the index of the child element
|
|
284
|
-
const
|
|
314
|
+
const children = this.children as XMLElement[]
|
|
315
|
+
const splitIndex = children.indexOf(childElement)
|
|
285
316
|
|
|
286
317
|
// Store the original content
|
|
287
|
-
const beforeContent =
|
|
288
|
-
const afterContent =
|
|
318
|
+
const beforeContent = children.slice(0, splitIndex)
|
|
319
|
+
const afterContent = children.slice(splitIndex + 1)
|
|
289
320
|
|
|
290
321
|
// Clear current node's content
|
|
291
|
-
this.node[this.tagName] = []
|
|
322
|
+
this.node[this.tagName!] = []
|
|
292
323
|
|
|
293
324
|
// Add back content before split point plus any appendToCurrentNode
|
|
294
325
|
beforeContent.forEach(child => this.appendChild(child))
|
|
@@ -318,11 +349,14 @@ class XMLElement {
|
|
|
318
349
|
// Parse insertAfterSplit to get the node type and attributes
|
|
319
350
|
if (insertAfterSplit) {
|
|
320
351
|
const parser = new XMLParser(fastXMLParserOptions)
|
|
321
|
-
const tempXml = parser.parse(insertAfterSplit)[0]
|
|
352
|
+
const tempXml = (parser.parse(insertAfterSplit) as XMLNode[])[0]
|
|
322
353
|
const newTagName = Object.keys(tempXml).find(
|
|
323
354
|
key => key !== ":@"
|
|
324
|
-
)
|
|
325
|
-
const newAttributes = tempXml[":@"]
|
|
355
|
+
)!
|
|
356
|
+
const newAttributes = (tempXml[":@"] as Record<
|
|
357
|
+
string,
|
|
358
|
+
unknown
|
|
359
|
+
>) || {}
|
|
326
360
|
|
|
327
361
|
// Create new element with the parsed tag name and attributes
|
|
328
362
|
const newElement = new XMLElement(
|
|
@@ -335,28 +369,28 @@ class XMLElement {
|
|
|
335
369
|
|
|
336
370
|
// Add the content from insertAfterSplit first
|
|
337
371
|
if (tempXml[newTagName]) {
|
|
338
|
-
tempXml[newTagName].forEach(child =>
|
|
339
|
-
newElement.appendChild(child)
|
|
372
|
+
;(tempXml[newTagName] as unknown[]).forEach(child =>
|
|
373
|
+
newElement.appendChild(child as XMLNode)
|
|
340
374
|
)
|
|
341
375
|
}
|
|
342
376
|
|
|
343
377
|
// Then add the existing after content
|
|
344
378
|
afterContent.forEach(child => newElement.appendChild(child))
|
|
345
379
|
|
|
346
|
-
parentElement.node[parentElement.tagName].splice(
|
|
380
|
+
;(parentElement.node[parentElement.tagName!] as XMLElement[]).splice(
|
|
347
381
|
insertIndex,
|
|
348
382
|
0,
|
|
349
383
|
newElement
|
|
350
384
|
)
|
|
351
385
|
} else {
|
|
352
386
|
// Fallback to original tag name if no insertAfterSplit provided
|
|
353
|
-
const tagName = this.tagName
|
|
387
|
+
const tagName = this.tagName!
|
|
354
388
|
const newElement = new XMLElement(
|
|
355
389
|
{[tagName]: []},
|
|
356
390
|
parentElement
|
|
357
391
|
)
|
|
358
392
|
afterContent.forEach(child => newElement.appendChild(child))
|
|
359
|
-
parentElement.node[parentElement.tagName].splice(
|
|
393
|
+
;(parentElement.node[parentElement.tagName!] as XMLElement[]).splice(
|
|
360
394
|
insertIndex,
|
|
361
395
|
0,
|
|
362
396
|
newElement
|
|
@@ -368,27 +402,29 @@ class XMLElement {
|
|
|
368
402
|
return true
|
|
369
403
|
}
|
|
370
404
|
|
|
371
|
-
removeChild(child) {
|
|
405
|
+
removeChild(child: XMLElement): false | void {
|
|
372
406
|
if (isLeaf(this.tagName)) {
|
|
373
407
|
return false
|
|
374
408
|
}
|
|
375
|
-
if (this.node[this.tagName]) {
|
|
376
|
-
const index = this.node[this.tagName].indexOf(child)
|
|
409
|
+
if (this.node[this.tagName!]) {
|
|
410
|
+
const index = (this.node[this.tagName!] as XMLElement[]).indexOf(child)
|
|
377
411
|
if (index > -1) {
|
|
378
|
-
this.node[this.tagName].splice(index, 1)
|
|
412
|
+
;(this.node[this.tagName!] as XMLElement[]).splice(index, 1)
|
|
379
413
|
child.setParent(null)
|
|
380
414
|
}
|
|
381
415
|
}
|
|
382
416
|
}
|
|
383
417
|
|
|
384
|
-
insertBefore(newChild, referenceChild) {
|
|
418
|
+
insertBefore(newChild: XMLNode | XMLElement, referenceChild: XMLElement): false | void {
|
|
385
419
|
if (isLeaf(this.tagName)) {
|
|
386
420
|
return false
|
|
387
421
|
}
|
|
388
|
-
if (this.node[this.tagName]) {
|
|
389
|
-
const index = this.node[this.tagName].indexOf(
|
|
422
|
+
if (this.node[this.tagName!]) {
|
|
423
|
+
const index = (this.node[this.tagName!] as XMLElement[]).indexOf(
|
|
424
|
+
referenceChild
|
|
425
|
+
)
|
|
390
426
|
if (index > -1) {
|
|
391
|
-
let newChildElement
|
|
427
|
+
let newChildElement: XMLElement
|
|
392
428
|
// Wrap newChild in XMLElement if it's not already
|
|
393
429
|
if (newChild instanceof XMLElement) {
|
|
394
430
|
newChild.parentElement?.removeChild(newChild)
|
|
@@ -396,7 +432,11 @@ class XMLElement {
|
|
|
396
432
|
} else {
|
|
397
433
|
newChildElement = new XMLElement(newChild, this)
|
|
398
434
|
}
|
|
399
|
-
this.node[this.tagName].splice(
|
|
435
|
+
;(this.node[this.tagName!] as XMLElement[]).splice(
|
|
436
|
+
index,
|
|
437
|
+
0,
|
|
438
|
+
newChildElement
|
|
439
|
+
)
|
|
400
440
|
} else {
|
|
401
441
|
// If referenceChild is not found, fallback to append
|
|
402
442
|
this.appendChild(newChild)
|
|
@@ -404,20 +444,24 @@ class XMLElement {
|
|
|
404
444
|
}
|
|
405
445
|
}
|
|
406
446
|
|
|
407
|
-
query(tagName, attributes = {}) {
|
|
447
|
+
query(tagName: string | string[], attributes: Record<string, unknown> = {}): XMLElement | undefined {
|
|
408
448
|
return this.queryAll(tagName, attributes, 1)[0]
|
|
409
449
|
}
|
|
410
450
|
|
|
411
|
-
queryAll(
|
|
412
|
-
|
|
451
|
+
queryAll(
|
|
452
|
+
tagName: string | string[],
|
|
453
|
+
attributes: Record<string, unknown> = {},
|
|
454
|
+
limit: number | false = false
|
|
455
|
+
): XMLElement[] {
|
|
456
|
+
const result: XMLElement[] = []
|
|
413
457
|
const tags = typeof tagName === "string" ? [tagName] : tagName
|
|
414
458
|
|
|
415
|
-
function traverse(dom) {
|
|
459
|
+
function traverse(dom: XMLElement): boolean {
|
|
416
460
|
const currentTagName = Object.keys(dom.node).find(
|
|
417
461
|
key => key !== ":@"
|
|
418
462
|
)
|
|
419
463
|
if (
|
|
420
|
-
tags.includes(currentTagName) &&
|
|
464
|
+
tags.includes(currentTagName || "") &&
|
|
421
465
|
Object.keys(attributes).every(attr => {
|
|
422
466
|
if (!dom.hasAttribute(attr)) {
|
|
423
467
|
return false
|
|
@@ -428,7 +472,9 @@ class XMLElement {
|
|
|
428
472
|
}
|
|
429
473
|
|
|
430
474
|
if (Array.isArray(attributeValue)) {
|
|
431
|
-
return attributeValue.includes(
|
|
475
|
+
return (attributeValue as unknown[]).includes(
|
|
476
|
+
dom.getAttribute(attr)
|
|
477
|
+
)
|
|
432
478
|
}
|
|
433
479
|
|
|
434
480
|
return dom.getAttribute(attr) === attributeValue
|
|
@@ -439,25 +485,27 @@ class XMLElement {
|
|
|
439
485
|
if (limit && result.length >= limit) {
|
|
440
486
|
return true
|
|
441
487
|
}
|
|
488
|
+
const childTagName = Object.keys(dom.node).find(key => key !== ":@")
|
|
442
489
|
if (
|
|
443
|
-
|
|
444
|
-
dom.node[
|
|
445
|
-
!isLeaf(
|
|
490
|
+
childTagName &&
|
|
491
|
+
dom.node[childTagName] &&
|
|
492
|
+
!isLeaf(childTagName)
|
|
446
493
|
) {
|
|
447
|
-
for (const childDOM of dom.node[
|
|
494
|
+
for (const childDOM of dom.node[childTagName] as XMLElement[]) {
|
|
448
495
|
if (traverse(childDOM)) {
|
|
449
496
|
return true
|
|
450
497
|
}
|
|
451
498
|
}
|
|
452
499
|
}
|
|
500
|
+
return false
|
|
453
501
|
}
|
|
454
502
|
|
|
455
503
|
traverse(this)
|
|
456
504
|
return result
|
|
457
505
|
}
|
|
458
506
|
|
|
459
|
-
closest(tagName) {
|
|
460
|
-
let currentNode = this
|
|
507
|
+
closest(tagName: string): XMLElement | null {
|
|
508
|
+
let currentNode: XMLElement | null = this
|
|
461
509
|
while (currentNode) {
|
|
462
510
|
if (currentNode.tagName === tagName) {
|
|
463
511
|
return currentNode
|
|
@@ -468,23 +516,23 @@ class XMLElement {
|
|
|
468
516
|
}
|
|
469
517
|
|
|
470
518
|
// Serialize back to original structure in a non-destructive way
|
|
471
|
-
toObject() {
|
|
519
|
+
toObject(): unknown {
|
|
472
520
|
const tagName = this.tagName
|
|
473
521
|
const node = {...this.node}
|
|
474
522
|
if (this.node[":@"]) {
|
|
475
|
-
node[":@"] = {...this.node[":@"]}
|
|
523
|
+
node[":@"] = {...(this.node[":@"] as Record<string, unknown>)}
|
|
476
524
|
}
|
|
477
525
|
if (tagName && this.node[tagName]) {
|
|
478
526
|
if (Array.isArray(this.node[tagName])) {
|
|
479
|
-
node[tagName] = this.node[tagName].map(child => {
|
|
527
|
+
node[tagName] = (this.node[tagName] as XMLElement[]).map(child => {
|
|
480
528
|
return child instanceof XMLElement
|
|
481
529
|
? child.toObject()
|
|
482
530
|
: child
|
|
483
531
|
})
|
|
484
532
|
} else {
|
|
485
533
|
node[tagName] =
|
|
486
|
-
this.node[tagName] instanceof XMLElement
|
|
487
|
-
? this.node[tagName].toObject()
|
|
534
|
+
(this.node[tagName] as unknown) instanceof XMLElement
|
|
535
|
+
? (this.node[tagName] as XMLElement).toObject()
|
|
488
536
|
: this.node[tagName]
|
|
489
537
|
}
|
|
490
538
|
}
|
|
@@ -496,14 +544,15 @@ class XMLElement {
|
|
|
496
544
|
return node
|
|
497
545
|
}
|
|
498
546
|
|
|
499
|
-
toString() {
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
547
|
+
toString(): string {
|
|
548
|
+
const tagName = this.tagName
|
|
549
|
+
if (isLeaf(tagName)) {
|
|
550
|
+
if (tagName === "#text") {
|
|
551
|
+
return String(this.node[tagName] || "")
|
|
552
|
+
} else if (tagName === "__cdata") {
|
|
553
|
+
return `<![CDATA[${this.node[tagName]}]]>`
|
|
554
|
+
} else if (tagName === "#comment") {
|
|
555
|
+
return `<!--${this.node[tagName]}-->`
|
|
507
556
|
}
|
|
508
557
|
}
|
|
509
558
|
const builder = new XMLBuilder(fastXMLParserOptions)
|
|
@@ -511,21 +560,21 @@ class XMLElement {
|
|
|
511
560
|
return builder.build(Array.isArray(object) ? object : [object])
|
|
512
561
|
}
|
|
513
562
|
|
|
514
|
-
get outerXML() {
|
|
563
|
+
get outerXML(): string {
|
|
515
564
|
return this.toString()
|
|
516
565
|
}
|
|
517
566
|
}
|
|
518
567
|
|
|
519
568
|
// Helper function to wrap the entire XML structure recursively
|
|
520
|
-
export const xmlDOM = xmlString => {
|
|
569
|
+
export const xmlDOM = (xmlString: string): XMLElement => {
|
|
521
570
|
const parser = new XMLParser(fastXMLParserOptions)
|
|
522
571
|
// Parse the XML string into an object
|
|
523
|
-
const xmlStructure = parser.parse(xmlString)
|
|
572
|
+
const xmlStructure = parser.parse(xmlString) as XMLNode[]
|
|
524
573
|
|
|
525
574
|
const node =
|
|
526
575
|
xmlStructure.length === 1
|
|
527
576
|
? xmlStructure[0]
|
|
528
|
-
: {"#document": xmlStructure}
|
|
577
|
+
: ({"#document": xmlStructure} as XMLNode)
|
|
529
578
|
// Recursively wrap each node in XMLElement
|
|
530
579
|
return new XMLElement(node)
|
|
531
580
|
}
|