@syncfusion/ej2-docx 0.0.0-stage → 35.1.39
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/README.md +68 -2
- package/core.js +4 -0
- package/dist/ej2-docx.umd.min.js +2 -0
- package/dist/ej2-docx.umd.min.js.map +1 -0
- package/dist/es6/ej2-docx.es2015.js +66697 -0
- package/dist/es6/ej2-docx.es2015.js.map +1 -0
- package/dist/es6/ej2-docx.es5.js +77568 -0
- package/dist/es6/ej2-docx.es5.js.map +1 -0
- package/dist/global/ej2-docx.min.js +2 -0
- package/dist/global/ej2-docx.min.js.map +1 -0
- package/dist/global/index.d.ts +5 -0
- package/features.js +4 -0
- package/index.js +4 -0
- package/license +10 -0
- package/package.json +31 -4
- package/src/all.d.ts +50 -0
- package/src/all.js +147 -0
- package/src/core/compat/base64.d.ts +13 -0
- package/src/core/compat/base64.js +90 -0
- package/src/core/compat/object-compat.d.ts +30 -0
- package/src/core/compat/object-compat.js +40 -0
- package/src/core/compat/sha256.d.ts +9 -0
- package/src/core/compat/sha256.js +98 -0
- package/src/core/errors/docx-error.d.ts +89 -0
- package/src/core/errors/docx-error.js +138 -0
- package/src/core/errors/error-codes.d.ts +8 -0
- package/src/core/errors/error-codes.js +0 -0
- package/src/core/errors/index.d.ts +10 -0
- package/src/core/errors/index.js +9 -0
- package/src/core/index.d.ts +12 -0
- package/src/core/index.js +12 -0
- package/src/core/mc/alternate-content.d.ts +7 -0
- package/src/core/mc/alternate-content.js +67 -0
- package/src/core/mc/attributes.d.ts +24 -0
- package/src/core/mc/attributes.js +82 -0
- package/src/core/mc/index.d.ts +7 -0
- package/src/core/mc/index.js +5 -0
- package/src/core/mc/inspect.d.ts +16 -0
- package/src/core/mc/inspect.js +148 -0
- package/src/core/mc/namespaces.d.ts +4 -0
- package/src/core/mc/namespaces.js +4 -0
- package/src/core/mc/scope.d.ts +6 -0
- package/src/core/mc/scope.js +47 -0
- package/src/core/opc/content-types.d.ts +34 -0
- package/src/core/opc/content-types.js +162 -0
- package/src/core/opc/index.d.ts +8 -0
- package/src/core/opc/index.js +4 -0
- package/src/core/opc/package.d.ts +49 -0
- package/src/core/opc/package.js +324 -0
- package/src/core/opc/part-name.d.ts +47 -0
- package/src/core/opc/part-name.js +205 -0
- package/src/core/opc/relationships.d.ts +46 -0
- package/src/core/opc/relationships.js +212 -0
- package/src/core/preservation/index.d.ts +2 -0
- package/src/core/preservation/index.js +1 -0
- package/src/core/preservation/opaque-body.d.ts +16 -0
- package/src/core/preservation/opaque-body.js +69 -0
- package/src/core/registry/block-handlers.d.ts +30 -0
- package/src/core/registry/block-handlers.js +36 -0
- package/src/core/registry/create-defaults.d.ts +39 -0
- package/src/core/registry/create-defaults.js +42 -0
- package/src/core/registry/feature-registry.d.ts +20 -0
- package/src/core/registry/feature-registry.js +29 -0
- package/src/core/registry/index.d.ts +9 -0
- package/src/core/registry/index.js +8 -0
- package/src/core/registry/inline-handlers.d.ts +20 -0
- package/src/core/registry/inline-handlers.js +30 -0
- package/src/core/registry/materialize-handlers.d.ts +35 -0
- package/src/core/registry/materialize-handlers.js +75 -0
- package/src/core/registry/multi-part-handlers.d.ts +37 -0
- package/src/core/registry/multi-part-handlers.js +206 -0
- package/src/core/registry/package-part-handlers.d.ts +28 -0
- package/src/core/registry/package-part-handlers.js +190 -0
- package/src/core/registry/part-handlers.d.ts +24 -0
- package/src/core/registry/part-handlers.js +172 -0
- package/src/core/registry/run-leaf-handlers.d.ts +26 -0
- package/src/core/registry/run-leaf-handlers.js +72 -0
- package/src/core/security/limits.d.ts +40 -0
- package/src/core/security/limits.js +26 -0
- package/src/core/xml/index.d.ts +7 -0
- package/src/core/xml/index.js +3 -0
- package/src/core/xml/model.d.ts +66 -0
- package/src/core/xml/model.js +17 -0
- package/src/core/xml/parse.d.ts +12 -0
- package/src/core/xml/parse.js +382 -0
- package/src/core/xml/serialize.d.ts +6 -0
- package/src/core/xml/serialize.js +93 -0
- package/src/core/zip/crc32.d.ts +2 -0
- package/src/core/zip/crc32.js +25 -0
- package/src/core/zip/deflate.d.ts +6 -0
- package/src/core/zip/deflate.js +6 -0
- package/src/core/zip/index.d.ts +10 -0
- package/src/core/zip/index.js +4 -0
- package/src/core/zip/inflate-raw.d.ts +17 -0
- package/src/core/zip/inflate-raw.js +450 -0
- package/src/core/zip/names.d.ts +6 -0
- package/src/core/zip/names.js +52 -0
- package/src/core/zip/read.d.ts +8 -0
- package/src/core/zip/read.js +262 -0
- package/src/core/zip/write.d.ts +7 -0
- package/src/core/zip/write.js +189 -0
- package/src/core/zip/zip-entry.d.ts +4 -0
- package/src/core/zip/zip-entry.js +0 -0
- package/src/features/bibliography/index.d.ts +100 -0
- package/src/features/bibliography/index.js +290 -0
- package/src/features/bookmarks/index.d.ts +331 -0
- package/src/features/bookmarks/index.js +1009 -0
- package/src/features/comments/comment-extensions.d.ts +157 -0
- package/src/features/comments/comment-extensions.js +356 -0
- package/src/features/comments/index.d.ts +579 -0
- package/src/features/comments/index.js +1727 -0
- package/src/features/content-controls/index.d.ts +821 -0
- package/src/features/content-controls/index.js +2857 -0
- package/src/features/custom-xml/index.d.ts +236 -0
- package/src/features/custom-xml/index.js +661 -0
- package/src/features/document/alignment.d.ts +23 -0
- package/src/features/document/alignment.js +36 -0
- package/src/features/document/alt-chunk.d.ts +103 -0
- package/src/features/document/alt-chunk.js +221 -0
- package/src/features/document/assert-never.d.ts +1 -0
- package/src/features/document/assert-never.js +4 -0
- package/src/features/document/augmentations.d.ts +578 -0
- package/src/features/document/augmentations.js +0 -0
- package/src/features/document/body-always-on.d.ts +36 -0
- package/src/features/document/body-always-on.js +66 -0
- package/src/features/document/body-blocks.d.ts +7 -0
- package/src/features/document/body-blocks.js +78 -0
- package/src/features/document/body-item-adapters.d.ts +62 -0
- package/src/features/document/body-item-adapters.js +97 -0
- package/src/features/document/body-item-collection.d.ts +151 -0
- package/src/features/document/body-item-collection.js +440 -0
- package/src/features/document/body-item.d.ts +35 -0
- package/src/features/document/body-item.js +8 -0
- package/src/features/document/body.d.ts +150 -0
- package/src/features/document/body.js +263 -0
- package/src/features/document/character-format.d.ts +413 -0
- package/src/features/document/character-format.js +2054 -0
- package/src/features/document/color.d.ts +178 -0
- package/src/features/document/color.js +495 -0
- package/src/features/document/document.d.ts +410 -0
- package/src/features/document/document.js +1049 -0
- package/src/features/document/element-type.d.ts +68 -0
- package/src/features/document/element-type.js +133 -0
- package/src/features/document/entity-type.d.ts +92 -0
- package/src/features/document/entity-type.js +93 -0
- package/src/features/document/feature-block.d.ts +16 -0
- package/src/features/document/feature-block.js +0 -0
- package/src/features/document/feature-inline.d.ts +13 -0
- package/src/features/document/feature-inline.js +0 -0
- package/src/features/document/feature-multi-package-part.d.ts +19 -0
- package/src/features/document/feature-multi-package-part.js +8 -0
- package/src/features/document/feature-package-level-part.d.ts +18 -0
- package/src/features/document/feature-package-level-part.js +8 -0
- package/src/features/document/feature-package-part.d.ts +14 -0
- package/src/features/document/feature-package-part.js +0 -0
- package/src/features/document/feature-run-leaf.d.ts +9 -0
- package/src/features/document/feature-run-leaf.js +0 -0
- package/src/features/document/headers-footers.d.ts +206 -0
- package/src/features/document/headers-footers.js +384 -0
- package/src/features/document/index.d.ts +41 -0
- package/src/features/document/index.js +34 -0
- package/src/features/document/length.d.ts +152 -0
- package/src/features/document/length.js +245 -0
- package/src/features/document/load-options.d.ts +14 -0
- package/src/features/document/load-options.js +0 -0
- package/src/features/document/locale-ids.d.ts +227 -0
- package/src/features/document/locale-ids.js +485 -0
- package/src/features/document/on-off.d.ts +9 -0
- package/src/features/document/on-off.js +27 -0
- package/src/features/document/page-setup.d.ts +339 -0
- package/src/features/document/page-setup.js +244 -0
- package/src/features/document/paragraph-format.d.ts +880 -0
- package/src/features/document/paragraph-format.js +2807 -0
- package/src/features/document/paragraph-item-collection.d.ts +162 -0
- package/src/features/document/paragraph-item-collection.js +363 -0
- package/src/features/document/paragraph-item.d.ts +83 -0
- package/src/features/document/paragraph-item.js +103 -0
- package/src/features/document/paragraph.d.ts +435 -0
- package/src/features/document/paragraph.js +888 -0
- package/src/features/document/run.d.ts +1 -0
- package/src/features/document/run.js +768 -0
- package/src/features/document/section-partition-flatten.d.ts +124 -0
- package/src/features/document/section-partition-flatten.js +217 -0
- package/src/features/document/section-properties-model.d.ts +13 -0
- package/src/features/document/section-properties-model.js +0 -0
- package/src/features/document/section.d.ts +93 -0
- package/src/features/document/section.js +178 -0
- package/src/features/document/sections.d.ts +103 -0
- package/src/features/document/sections.js +217 -0
- package/src/features/document/sub-super-script.d.ts +23 -0
- package/src/features/document/sub-super-script.js +43 -0
- package/src/features/document/text-range.d.ts +445 -0
- package/src/features/document/text-range.js +1156 -0
- package/src/features/document/typed-body-collections.d.ts +162 -0
- package/src/features/document/typed-body-collections.js +371 -0
- package/src/features/document/underline-style.d.ts +38 -0
- package/src/features/document/underline-style.js +126 -0
- package/src/features/document/units.d.ts +8 -0
- package/src/features/document/units.js +7 -0
- package/src/features/document/wml.d.ts +16 -0
- package/src/features/document/wml.js +67 -0
- package/src/features/drawing/authoring.d.ts +27 -0
- package/src/features/drawing/authoring.js +271 -0
- package/src/features/drawing/body-pr.d.ts +271 -0
- package/src/features/drawing/body-pr.js +663 -0
- package/src/features/drawing/drawing-shape.d.ts +1192 -0
- package/src/features/drawing/drawing-shape.js +3239 -0
- package/src/features/drawing/encode-builders.d.ts +176 -0
- package/src/features/drawing/encode-builders.js +390 -0
- package/src/features/drawing/fill-format.d.ts +52 -0
- package/src/features/drawing/fill-format.js +124 -0
- package/src/features/drawing/host-codec.d.ts +632 -0
- package/src/features/drawing/host-codec.js +2595 -0
- package/src/features/drawing/index.d.ts +13 -0
- package/src/features/drawing/index.js +33 -0
- package/src/features/drawing/line-format.d.ts +76 -0
- package/src/features/drawing/line-format.js +343 -0
- package/src/features/drawing/parse-register.d.ts +50 -0
- package/src/features/drawing/parse-register.js +257 -0
- package/src/features/drawing/residual-utils.d.ts +47 -0
- package/src/features/drawing/residual-utils.js +290 -0
- package/src/features/drawing/shape-types.d.ts +433 -0
- package/src/features/drawing/shape-types.js +437 -0
- package/src/features/drawing/sp-pr.d.ts +396 -0
- package/src/features/drawing/sp-pr.js +610 -0
- package/src/features/drawing/text-frame.d.ts +90 -0
- package/src/features/drawing/text-frame.js +152 -0
- package/src/features/drawing/types.d.ts +352 -0
- package/src/features/drawing/types.js +60 -0
- package/src/features/drawing/wrap-format.d.ts +62 -0
- package/src/features/drawing/wrap-format.js +114 -0
- package/src/features/editable-ranges/index.d.ts +494 -0
- package/src/features/editable-ranges/index.js +1348 -0
- package/src/features/fields/index.d.ts +428 -0
- package/src/features/fields/index.js +2148 -0
- package/src/features/fields/paragraph-field.d.ts +187 -0
- package/src/features/fields/paragraph-field.js +692 -0
- package/src/features/font-table/font-substitution-table.d.ts +75 -0
- package/src/features/font-table/font-substitution-table.js +257 -0
- package/src/features/font-table/font-table-entry.d.ts +255 -0
- package/src/features/font-table/font-table-entry.js +823 -0
- package/src/features/font-table/font-table.d.ts +128 -0
- package/src/features/font-table/font-table.js +313 -0
- package/src/features/font-table/index.d.ts +27 -0
- package/src/features/font-table/index.js +48 -0
- package/src/features/glossary/index.d.ts +97 -0
- package/src/features/glossary/index.js +286 -0
- package/src/features/headers-footers/index.d.ts +506 -0
- package/src/features/headers-footers/index.js +1666 -0
- package/src/features/hyperlinks/index.d.ts +230 -0
- package/src/features/hyperlinks/index.js +685 -0
- package/src/features/images/caption-authoring-api.d.ts +33 -0
- package/src/features/images/caption-authoring-api.js +33 -0
- package/src/features/images/caption-enums.d.ts +52 -0
- package/src/features/images/caption-enums.js +141 -0
- package/src/features/images/caption-host.d.ts +10 -0
- package/src/features/images/caption-host.js +21 -0
- package/src/features/images/captions.d.ts +13 -0
- package/src/features/images/captions.js +142 -0
- package/src/features/images/host-codec.d.ts +103 -0
- package/src/features/images/host-codec.js +720 -0
- package/src/features/images/image-sniff.d.ts +21 -0
- package/src/features/images/image-sniff.js +71 -0
- package/src/features/images/index.d.ts +506 -0
- package/src/features/images/index.js +1429 -0
- package/src/features/images/layout-types.d.ts +232 -0
- package/src/features/images/layout-types.js +294 -0
- package/src/features/images/public-entry.d.ts +9 -0
- package/src/features/images/public-entry.js +9 -0
- package/src/features/index.d.ts +35 -0
- package/src/features/index.js +36 -0
- package/src/features/mail-merge/index.d.ts +113 -0
- package/src/features/mail-merge/index.js +315 -0
- package/src/features/notes/index.d.ts +573 -0
- package/src/features/notes/index.js +1725 -0
- package/src/features/numbering/abstract-numbering.d.ts +90 -0
- package/src/features/numbering/abstract-numbering.js +292 -0
- package/src/features/numbering/index.d.ts +182 -0
- package/src/features/numbering/index.js +668 -0
- package/src/features/numbering/list-format.d.ts +158 -0
- package/src/features/numbering/list-format.js +590 -0
- package/src/features/numbering/list-string.d.ts +7 -0
- package/src/features/numbering/list-string.js +423 -0
- package/src/features/numbering/list-style.d.ts +204 -0
- package/src/features/numbering/list-style.js +1084 -0
- package/src/features/numbering/numbering-instance.d.ts +101 -0
- package/src/features/numbering/numbering-instance.js +329 -0
- package/src/features/numbering/numbering-level.d.ts +118 -0
- package/src/features/numbering/numbering-level.js +501 -0
- package/src/features/numbering/picture-bullet.d.ts +34 -0
- package/src/features/numbering/picture-bullet.js +88 -0
- package/src/features/ole-object/catalog.d.ts +300 -0
- package/src/features/ole-object/catalog.js +908 -0
- package/src/features/ole-object/index.d.ts +526 -0
- package/src/features/ole-object/index.js +1421 -0
- package/src/features/ole-object/relationship.d.ts +27 -0
- package/src/features/ole-object/relationship.js +27 -0
- package/src/features/ole-object/typed-dom.d.ts +186 -0
- package/src/features/ole-object/typed-dom.js +595 -0
- package/src/features/properties/index.d.ts +205 -0
- package/src/features/properties/index.js +549 -0
- package/src/features/revisions/index.d.ts +204 -0
- package/src/features/revisions/index.js +695 -0
- package/src/features/sections/column-collection.d.ts +119 -0
- package/src/features/sections/column-collection.js +478 -0
- package/src/features/sections/column.d.ts +15 -0
- package/src/features/sections/column.js +37 -0
- package/src/features/sections/index.d.ts +91 -0
- package/src/features/sections/index.js +1096 -0
- package/src/features/sections/margins.d.ts +40 -0
- package/src/features/sections/margins.js +105 -0
- package/src/features/sections/page-number-style.d.ts +21 -0
- package/src/features/sections/page-number-style.js +62 -0
- package/src/features/sections/page-orientation.d.ts +10 -0
- package/src/features/sections/page-orientation.js +10 -0
- package/src/features/sections/page-setup.d.ts +435 -0
- package/src/features/sections/page-setup.js +1479 -0
- package/src/features/sections/page-size.d.ts +59 -0
- package/src/features/sections/page-size.js +68 -0
- package/src/features/sections/section-break-code.d.ts +27 -0
- package/src/features/sections/section-break-code.js +60 -0
- package/src/features/sections/section-document-association.d.ts +18 -0
- package/src/features/sections/section-document-association.js +31 -0
- package/src/features/sections/section-validation.d.ts +43 -0
- package/src/features/sections/section-validation.js +97 -0
- package/src/features/settings/attached-template.d.ts +35 -0
- package/src/features/settings/attached-template.js +98 -0
- package/src/features/settings/compat-settings.d.ts +216 -0
- package/src/features/settings/compat-settings.js +508 -0
- package/src/features/settings/document-background.d.ts +59 -0
- package/src/features/settings/document-background.js +131 -0
- package/src/features/settings/document-protection.d.ts +65 -0
- package/src/features/settings/document-protection.js +157 -0
- package/src/features/settings/document-settings-facades.d.ts +108 -0
- package/src/features/settings/document-settings-facades.js +312 -0
- package/src/features/settings/document-settings-values.d.ts +43 -0
- package/src/features/settings/document-settings-values.js +60 -0
- package/src/features/settings/footnote-properties.d.ts +211 -0
- package/src/features/settings/footnote-properties.js +591 -0
- package/src/features/settings/index.d.ts +356 -0
- package/src/features/settings/index.js +829 -0
- package/src/features/settings/settings-children.d.ts +151 -0
- package/src/features/settings/settings-children.js +505 -0
- package/src/features/settings/web-settings.d.ts +88 -0
- package/src/features/settings/web-settings.js +227 -0
- package/src/features/settings/zoom.d.ts +79 -0
- package/src/features/settings/zoom.js +147 -0
- package/src/features/styles/builtin-catalog.d.ts +159 -0
- package/src/features/styles/builtin-catalog.js +963 -0
- package/src/features/styles/builtin-resolver.d.ts +49 -0
- package/src/features/styles/builtin-resolver.js +165 -0
- package/src/features/styles/default-styles.d.ts +37 -0
- package/src/features/styles/default-styles.js +186 -0
- package/src/features/styles/default-theme.d.ts +13 -0
- package/src/features/styles/default-theme.js +13 -0
- package/src/features/styles/doc-defaults.d.ts +58 -0
- package/src/features/styles/doc-defaults.js +178 -0
- package/src/features/styles/formatting-resolver.d.ts +27 -0
- package/src/features/styles/formatting-resolver.js +72 -0
- package/src/features/styles/index.d.ts +256 -0
- package/src/features/styles/index.js +1325 -0
- package/src/features/styles/latent-styles.d.ts +68 -0
- package/src/features/styles/latent-styles.js +305 -0
- package/src/features/styles/paragraph-properties.d.ts +71 -0
- package/src/features/styles/paragraph-properties.js +237 -0
- package/src/features/styles/run-properties.d.ts +93 -0
- package/src/features/styles/run-properties.js +516 -0
- package/src/features/styles/style-base.d.ts +402 -0
- package/src/features/styles/style-base.js +1026 -0
- package/src/features/styles/style-collection.d.ts +264 -0
- package/src/features/styles/style-collection.js +714 -0
- package/src/features/styles/style-format-bridge.d.ts +64 -0
- package/src/features/styles/style-format-bridge.js +100 -0
- package/src/features/styles/style.d.ts +84 -0
- package/src/features/styles/style.js +375 -0
- package/src/features/styles/styles-with-effects.d.ts +71 -0
- package/src/features/styles/styles-with-effects.js +180 -0
- package/src/features/styles/table-style.d.ts +272 -0
- package/src/features/styles/table-style.js +1226 -0
- package/src/features/styles/theme.d.ts +126 -0
- package/src/features/styles/theme.js +377 -0
- package/src/features/tables/border-style-map.d.ts +24 -0
- package/src/features/tables/border-style-map.js +81 -0
- package/src/features/tables/borders.d.ts +126 -0
- package/src/features/tables/borders.js +527 -0
- package/src/features/tables/collections.d.ts +113 -0
- package/src/features/tables/collections.js +261 -0
- package/src/features/tables/format.d.ts +208 -0
- package/src/features/tables/format.js +716 -0
- package/src/features/tables/index.d.ts +597 -0
- package/src/features/tables/index.js +2386 -0
- package/src/features/tables/paddings.d.ts +41 -0
- package/src/features/tables/paddings.js +97 -0
- package/src/features/tables/tbl-pr-positioning.d.ts +27 -0
- package/src/features/tables/tbl-pr-positioning.js +178 -0
- package/src/features/tables/tbl-pr.d.ts +528 -0
- package/src/features/tables/tbl-pr.js +1208 -0
- package/src/features/tables/tc-pr.d.ts +168 -0
- package/src/features/tables/tc-pr.js +553 -0
- package/src/features/tables/tr-pr.d.ts +60 -0
- package/src/features/tables/tr-pr.js +215 -0
- package/src/features/watermark/detect.d.ts +76 -0
- package/src/features/watermark/detect.js +219 -0
- package/src/features/watermark/index.d.ts +28 -0
- package/src/features/watermark/index.js +91 -0
- package/src/features/watermark/logical-store.d.ts +29 -0
- package/src/features/watermark/logical-store.js +31 -0
- package/src/features/watermark/model.d.ts +285 -0
- package/src/features/watermark/model.js +597 -0
- package/src/features/watermark/parse.d.ts +84 -0
- package/src/features/watermark/parse.js +815 -0
- package/src/features/watermark/serialize.d.ts +98 -0
- package/src/features/watermark/serialize.js +1517 -0
- package/src/global.js +1 -0
- package/src/index.d.ts +2 -0
- package/src/index.js +2 -0
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
var __values = (this && this.__values) || function (o) {
|
|
2
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
|
|
3
|
+
if (m) return m.call(o);
|
|
4
|
+
return {
|
|
5
|
+
next: function () {
|
|
6
|
+
if (o && i >= o.length) o = void 0;
|
|
7
|
+
return { value: o && o[i++], done: !o };
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
import { SecurityError, XmlError } from '../errors/docx-error';
|
|
12
|
+
import { resolveResourceLimits } from '../security/limits';
|
|
13
|
+
import { XML_NAMESPACE, XMLNS_NAMESPACE } from './model';
|
|
14
|
+
var XmlReader = /** @class */ (function () {
|
|
15
|
+
function XmlReader(source) {
|
|
16
|
+
this.pos = 0;
|
|
17
|
+
this.source = source;
|
|
18
|
+
}
|
|
19
|
+
XmlReader.prototype.eof = function () {
|
|
20
|
+
return this.pos >= this.source.length;
|
|
21
|
+
};
|
|
22
|
+
XmlReader.prototype.peek = function () {
|
|
23
|
+
return this.source.charAt(this.pos);
|
|
24
|
+
};
|
|
25
|
+
XmlReader.prototype.startsWith = function (value) {
|
|
26
|
+
return this.source.startsWith(value, this.pos);
|
|
27
|
+
};
|
|
28
|
+
XmlReader.prototype.advance = function (count) {
|
|
29
|
+
if (count === void 0) { count = 1; }
|
|
30
|
+
this.pos += count;
|
|
31
|
+
};
|
|
32
|
+
XmlReader.prototype.skipWhitespace = function () {
|
|
33
|
+
while (!this.eof()) {
|
|
34
|
+
var ch = this.peek();
|
|
35
|
+
if (ch !== ' ' && ch !== '\t' && ch !== '\n' && ch !== '\r') {
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
this.advance();
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
return XmlReader;
|
|
42
|
+
}());
|
|
43
|
+
function decodeEntity(reader) {
|
|
44
|
+
if (!reader.startsWith('&')) {
|
|
45
|
+
throw new XmlError('xml/malformed', 'Expected entity reference');
|
|
46
|
+
}
|
|
47
|
+
var start = reader.pos;
|
|
48
|
+
reader.advance();
|
|
49
|
+
if (reader.startsWith('#x') || reader.startsWith('#X')) {
|
|
50
|
+
reader.advance(2);
|
|
51
|
+
var hex = '';
|
|
52
|
+
while (!reader.eof() && /[0-9a-fA-F]/.test(reader.peek())) {
|
|
53
|
+
hex += reader.peek();
|
|
54
|
+
reader.advance();
|
|
55
|
+
}
|
|
56
|
+
if (!reader.startsWith(';') || hex.length === 0) {
|
|
57
|
+
throw new XmlError('xml/malformed', 'Invalid numeric character reference');
|
|
58
|
+
}
|
|
59
|
+
reader.advance();
|
|
60
|
+
var code = Number.parseInt(hex, 16);
|
|
61
|
+
return String.fromCodePoint(code);
|
|
62
|
+
}
|
|
63
|
+
if (reader.startsWith('#')) {
|
|
64
|
+
reader.advance();
|
|
65
|
+
var dec = '';
|
|
66
|
+
while (!reader.eof() && /[0-9]/.test(reader.peek())) {
|
|
67
|
+
dec += reader.peek();
|
|
68
|
+
reader.advance();
|
|
69
|
+
}
|
|
70
|
+
if (!reader.startsWith(';') || dec.length === 0) {
|
|
71
|
+
throw new XmlError('xml/malformed', 'Invalid numeric character reference');
|
|
72
|
+
}
|
|
73
|
+
reader.advance();
|
|
74
|
+
return String.fromCodePoint(Number.parseInt(dec, 10));
|
|
75
|
+
}
|
|
76
|
+
var namedStart = reader.pos;
|
|
77
|
+
while (!reader.eof() && /[A-Za-z]/.test(reader.peek())) {
|
|
78
|
+
reader.advance();
|
|
79
|
+
}
|
|
80
|
+
var name = reader.source.slice(namedStart, reader.pos);
|
|
81
|
+
if (!reader.startsWith(';')) {
|
|
82
|
+
throw new XmlError('xml/malformed', "Unterminated entity at " + String(start));
|
|
83
|
+
}
|
|
84
|
+
reader.advance();
|
|
85
|
+
switch (name) {
|
|
86
|
+
case 'lt':
|
|
87
|
+
return '<';
|
|
88
|
+
case 'gt':
|
|
89
|
+
return '>';
|
|
90
|
+
case 'amp':
|
|
91
|
+
return '&';
|
|
92
|
+
case 'quot':
|
|
93
|
+
return '"';
|
|
94
|
+
case 'apos':
|
|
95
|
+
return "'";
|
|
96
|
+
default:
|
|
97
|
+
throw new XmlError('xml/dtd-forbidden', "Unknown entity &" + name + "; \u2014 DTD-defined entities are not resolved");
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
function readName(reader) {
|
|
101
|
+
var start = reader.pos;
|
|
102
|
+
if (reader.eof() || !/[:A-Za-z_]/.test(reader.peek())) {
|
|
103
|
+
throw new XmlError('xml/malformed', "Invalid XML name at " + String(start));
|
|
104
|
+
}
|
|
105
|
+
reader.advance();
|
|
106
|
+
while (!reader.eof() && /[:A-Za-z0-9._-]/.test(reader.peek())) {
|
|
107
|
+
reader.advance();
|
|
108
|
+
}
|
|
109
|
+
return reader.source.slice(start, reader.pos);
|
|
110
|
+
}
|
|
111
|
+
function splitQName(qname) {
|
|
112
|
+
var colon = qname.indexOf(':');
|
|
113
|
+
if (colon === -1) {
|
|
114
|
+
return { prefix: '', localName: qname };
|
|
115
|
+
}
|
|
116
|
+
return { prefix: qname.slice(0, colon), localName: qname.slice(colon + 1) };
|
|
117
|
+
}
|
|
118
|
+
function resolvePrefix(prefix, scope) {
|
|
119
|
+
if (prefix === 'xml') {
|
|
120
|
+
return XML_NAMESPACE;
|
|
121
|
+
}
|
|
122
|
+
if (prefix === 'xmlns') {
|
|
123
|
+
return XMLNS_NAMESPACE;
|
|
124
|
+
}
|
|
125
|
+
if (prefix === '') {
|
|
126
|
+
return scope.defaultUri;
|
|
127
|
+
}
|
|
128
|
+
var uri = scope.prefixes.get(prefix);
|
|
129
|
+
if (uri === undefined) {
|
|
130
|
+
throw new XmlError('xml/malformed', "Unbound namespace prefix " + prefix);
|
|
131
|
+
}
|
|
132
|
+
return uri;
|
|
133
|
+
}
|
|
134
|
+
function readQuoted(reader, limits) {
|
|
135
|
+
var quote = reader.peek();
|
|
136
|
+
if (quote !== '"' && quote !== "'") {
|
|
137
|
+
throw new XmlError('xml/malformed', 'Attribute value must be quoted');
|
|
138
|
+
}
|
|
139
|
+
reader.advance();
|
|
140
|
+
var value = '';
|
|
141
|
+
while (!reader.eof() && reader.peek() !== quote) {
|
|
142
|
+
if (reader.peek() === '<') {
|
|
143
|
+
throw new XmlError('xml/malformed', 'Raw < in attribute value');
|
|
144
|
+
}
|
|
145
|
+
if (reader.peek() === '&') {
|
|
146
|
+
value += decodeEntity(reader);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
value += reader.peek();
|
|
150
|
+
reader.advance();
|
|
151
|
+
}
|
|
152
|
+
if (value.length > limits.textNodeLength) {
|
|
153
|
+
throw new SecurityError('security/limit-exceeded', 'Attribute value exceeds the text length limit');
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
if (reader.peek() !== quote) {
|
|
157
|
+
throw new XmlError('xml/malformed', 'Unterminated attribute value');
|
|
158
|
+
}
|
|
159
|
+
reader.advance();
|
|
160
|
+
return value;
|
|
161
|
+
}
|
|
162
|
+
function skipCommentOrPi(reader) {
|
|
163
|
+
if (reader.startsWith('<!--')) {
|
|
164
|
+
reader.advance(4);
|
|
165
|
+
var end = reader.source.indexOf('-->', reader.pos);
|
|
166
|
+
if (end === -1) {
|
|
167
|
+
throw new XmlError('xml/malformed', 'Unterminated comment');
|
|
168
|
+
}
|
|
169
|
+
reader.pos = end + 3;
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
if (reader.startsWith('<?')) {
|
|
173
|
+
reader.advance(2);
|
|
174
|
+
var end = reader.source.indexOf('?>', reader.pos);
|
|
175
|
+
if (end === -1) {
|
|
176
|
+
throw new XmlError('xml/malformed', 'Unterminated processing instruction');
|
|
177
|
+
}
|
|
178
|
+
reader.pos = end + 2;
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
function parseElement(reader, scope, depth, limits) {
|
|
183
|
+
var e_1, _a, e_2, _b;
|
|
184
|
+
if (depth > limits.xmlNestingDepth) {
|
|
185
|
+
throw new SecurityError('security/limit-exceeded', "XML nesting depth exceeds " + String(limits.xmlNestingDepth));
|
|
186
|
+
}
|
|
187
|
+
if (!reader.startsWith('<')) {
|
|
188
|
+
throw new XmlError('xml/malformed', 'Expected < to start an element');
|
|
189
|
+
}
|
|
190
|
+
reader.advance();
|
|
191
|
+
if (reader.startsWith('/')) {
|
|
192
|
+
throw new XmlError('xml/malformed', 'Unexpected end tag');
|
|
193
|
+
}
|
|
194
|
+
var qname = readName(reader);
|
|
195
|
+
var rawAttributes = [];
|
|
196
|
+
reader.skipWhitespace();
|
|
197
|
+
while (!reader.eof() && reader.peek() !== '>' && reader.peek() !== '/') {
|
|
198
|
+
var attrName = readName(reader);
|
|
199
|
+
reader.skipWhitespace();
|
|
200
|
+
if (reader.peek() !== '=') {
|
|
201
|
+
throw new XmlError('xml/malformed', "Expected = after attribute " + attrName);
|
|
202
|
+
}
|
|
203
|
+
reader.advance();
|
|
204
|
+
reader.skipWhitespace();
|
|
205
|
+
var value = readQuoted(reader, limits);
|
|
206
|
+
rawAttributes.push({ qname: attrName, value: value });
|
|
207
|
+
if (rawAttributes.length > limits.xmlAttributeCount) {
|
|
208
|
+
throw new SecurityError('security/limit-exceeded', 'XML attribute count exceeds the limit');
|
|
209
|
+
}
|
|
210
|
+
reader.skipWhitespace();
|
|
211
|
+
}
|
|
212
|
+
var nsDecls = [];
|
|
213
|
+
var defaultUri = scope.defaultUri;
|
|
214
|
+
var prefixMap = new Map(scope.prefixes);
|
|
215
|
+
try {
|
|
216
|
+
for (var rawAttributes_1 = __values(rawAttributes), rawAttributes_1_1 = rawAttributes_1.next(); !rawAttributes_1_1.done; rawAttributes_1_1 = rawAttributes_1.next()) {
|
|
217
|
+
var attr = rawAttributes_1_1.value;
|
|
218
|
+
if (attr.qname === 'xmlns') {
|
|
219
|
+
defaultUri = attr.value;
|
|
220
|
+
nsDecls.push({ prefix: '', namespaceUri: attr.value });
|
|
221
|
+
}
|
|
222
|
+
else if (attr.qname.startsWith('xmlns:')) {
|
|
223
|
+
var p = attr.qname.slice('xmlns:'.length);
|
|
224
|
+
prefixMap.set(p, attr.value);
|
|
225
|
+
nsDecls.push({ prefix: p, namespaceUri: attr.value });
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
230
|
+
finally {
|
|
231
|
+
try {
|
|
232
|
+
if (rawAttributes_1_1 && !rawAttributes_1_1.done && (_a = rawAttributes_1.return)) _a.call(rawAttributes_1);
|
|
233
|
+
}
|
|
234
|
+
finally { if (e_1) throw e_1.error; }
|
|
235
|
+
}
|
|
236
|
+
var childScope = { defaultUri: defaultUri, prefixes: prefixMap };
|
|
237
|
+
var _c = splitQName(qname), prefix = _c.prefix, localName = _c.localName;
|
|
238
|
+
var namespaceUri = resolvePrefix(prefix, childScope);
|
|
239
|
+
var attributes = [];
|
|
240
|
+
try {
|
|
241
|
+
for (var rawAttributes_2 = __values(rawAttributes), rawAttributes_2_1 = rawAttributes_2.next(); !rawAttributes_2_1.done; rawAttributes_2_1 = rawAttributes_2.next()) {
|
|
242
|
+
var attr = rawAttributes_2_1.value;
|
|
243
|
+
if (attr.qname === 'xmlns' || attr.qname.startsWith('xmlns:')) {
|
|
244
|
+
continue;
|
|
245
|
+
}
|
|
246
|
+
var split = splitQName(attr.qname);
|
|
247
|
+
attributes.push({
|
|
248
|
+
prefix: split.prefix,
|
|
249
|
+
localName: split.localName,
|
|
250
|
+
namespaceUri: split.prefix === '' ? '' : resolvePrefix(split.prefix, childScope),
|
|
251
|
+
value: attr.value,
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
256
|
+
finally {
|
|
257
|
+
try {
|
|
258
|
+
if (rawAttributes_2_1 && !rawAttributes_2_1.done && (_b = rawAttributes_2.return)) _b.call(rawAttributes_2);
|
|
259
|
+
}
|
|
260
|
+
finally { if (e_2) throw e_2.error; }
|
|
261
|
+
}
|
|
262
|
+
var selfClosing = false;
|
|
263
|
+
if (reader.startsWith('/>')) {
|
|
264
|
+
selfClosing = true;
|
|
265
|
+
reader.advance(2);
|
|
266
|
+
}
|
|
267
|
+
else if (reader.startsWith('>')) {
|
|
268
|
+
reader.advance();
|
|
269
|
+
}
|
|
270
|
+
else {
|
|
271
|
+
throw new XmlError('xml/malformed', "Unterminated start tag " + qname);
|
|
272
|
+
}
|
|
273
|
+
var children = [];
|
|
274
|
+
if (!selfClosing) {
|
|
275
|
+
parseContent(reader, childScope, depth + 1, limits, qname, children);
|
|
276
|
+
}
|
|
277
|
+
return {
|
|
278
|
+
kind: 'element',
|
|
279
|
+
namespaceUri: namespaceUri,
|
|
280
|
+
localName: localName,
|
|
281
|
+
prefix: prefix,
|
|
282
|
+
attributes: attributes,
|
|
283
|
+
namespaceDeclarations: nsDecls,
|
|
284
|
+
children: children,
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
function parseContent(reader, scope, depth, limits, parentQName, children) {
|
|
288
|
+
while (!reader.eof()) {
|
|
289
|
+
if (reader.startsWith('</')) {
|
|
290
|
+
reader.advance(2);
|
|
291
|
+
var endName = readName(reader);
|
|
292
|
+
reader.skipWhitespace();
|
|
293
|
+
if (!reader.startsWith('>')) {
|
|
294
|
+
throw new XmlError('xml/malformed', 'Unterminated end tag');
|
|
295
|
+
}
|
|
296
|
+
reader.advance();
|
|
297
|
+
if (endName !== parentQName) {
|
|
298
|
+
throw new XmlError('xml/malformed', "Mismatched end tag </" + endName + "> for <" + parentQName + ">");
|
|
299
|
+
}
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
302
|
+
if (reader.startsWith('<!--') || reader.startsWith('<?')) {
|
|
303
|
+
skipCommentOrPi(reader);
|
|
304
|
+
continue;
|
|
305
|
+
}
|
|
306
|
+
if (reader.startsWith('<![CDATA[')) {
|
|
307
|
+
reader.advance(9);
|
|
308
|
+
var end = reader.source.indexOf(']]>', reader.pos);
|
|
309
|
+
if (end === -1) {
|
|
310
|
+
throw new XmlError('xml/malformed', 'Unterminated CDATA');
|
|
311
|
+
}
|
|
312
|
+
var value = reader.source.slice(reader.pos, end);
|
|
313
|
+
if (value.length > limits.textNodeLength) {
|
|
314
|
+
throw new SecurityError('security/limit-exceeded', 'CDATA exceeds the text length limit');
|
|
315
|
+
}
|
|
316
|
+
reader.pos = end + 3;
|
|
317
|
+
children.push({ kind: 'text', value: value });
|
|
318
|
+
continue;
|
|
319
|
+
}
|
|
320
|
+
if (reader.startsWith('<')) {
|
|
321
|
+
children.push(parseElement(reader, scope, depth, limits));
|
|
322
|
+
continue;
|
|
323
|
+
}
|
|
324
|
+
var text = '';
|
|
325
|
+
while (!reader.eof() && reader.peek() !== '<') {
|
|
326
|
+
if (reader.peek() === '&') {
|
|
327
|
+
text += decodeEntity(reader);
|
|
328
|
+
}
|
|
329
|
+
else {
|
|
330
|
+
text += reader.peek();
|
|
331
|
+
reader.advance();
|
|
332
|
+
}
|
|
333
|
+
if (text.length > limits.textNodeLength) {
|
|
334
|
+
throw new SecurityError('security/limit-exceeded', 'Text node exceeds the text length limit');
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
if (text.length > 0) {
|
|
338
|
+
children.push({ kind: 'text', value: text });
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
throw new XmlError('xml/malformed', "Missing end tag for <" + parentQName + ">");
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Decode OPC/XML part bytes. Supports UTF-8 and UTF-16 (BOM).
|
|
345
|
+
* Word sometimes writes parts such as `numbering.xml` as UTF-16LE.
|
|
346
|
+
*/
|
|
347
|
+
export function decodeXmlBytes(data) {
|
|
348
|
+
if (data.length >= 2) {
|
|
349
|
+
// UTF-16LE BOM
|
|
350
|
+
if (data[0] === 0xff && data[1] === 0xfe) {
|
|
351
|
+
return new TextDecoder('utf-16le').decode(data);
|
|
352
|
+
}
|
|
353
|
+
// UTF-16BE BOM
|
|
354
|
+
if (data[0] === 0xfe && data[1] === 0xff) {
|
|
355
|
+
return new TextDecoder('utf-16be').decode(data);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
return new TextDecoder('utf-8').decode(data);
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* Parse XML into a preservation DOM. Namespace URI + local name identify elements;
|
|
362
|
+
* prefixes are stored only for stable serialization. DTD/ENTITY constructs fail closed.
|
|
363
|
+
*/
|
|
364
|
+
export function parseXml(xml, limitOverrides) {
|
|
365
|
+
var limits = resolveResourceLimits(limitOverrides);
|
|
366
|
+
var withoutBom = xml.charCodeAt(0) === 0xfeff ? xml.slice(1) : xml;
|
|
367
|
+
if (/<!DOCTYPE/i.test(withoutBom) || /<!ENTITY/i.test(withoutBom)) {
|
|
368
|
+
throw new XmlError('xml/dtd-forbidden', 'DTD and ENTITY declarations are disabled');
|
|
369
|
+
}
|
|
370
|
+
var reader = new XmlReader(withoutBom);
|
|
371
|
+
reader.skipWhitespace();
|
|
372
|
+
while (reader.startsWith('<?') || reader.startsWith('<!--')) {
|
|
373
|
+
skipCommentOrPi(reader);
|
|
374
|
+
reader.skipWhitespace();
|
|
375
|
+
}
|
|
376
|
+
var root = parseElement(reader, { defaultUri: '', prefixes: new Map() }, 1, limits);
|
|
377
|
+
reader.skipWhitespace();
|
|
378
|
+
if (!reader.eof()) {
|
|
379
|
+
throw new XmlError('xml/malformed', 'Trailing content after the document element');
|
|
380
|
+
}
|
|
381
|
+
return root;
|
|
382
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { OpenXmlElement } from './model';
|
|
2
|
+
/**
|
|
3
|
+
* Serialize a preservation element. Prefixes on the node are reused; namespace
|
|
4
|
+
* declarations stored on the element are emitted as xmlns attributes.
|
|
5
|
+
*/
|
|
6
|
+
export declare function serializeXml(element: OpenXmlElement): string;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
var __values = (this && this.__values) || function (o) {
|
|
2
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
|
|
3
|
+
if (m) return m.call(o);
|
|
4
|
+
return {
|
|
5
|
+
next: function () {
|
|
6
|
+
if (o && i >= o.length) o = void 0;
|
|
7
|
+
return { value: o && o[i++], done: !o };
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
import { XML_NAMESPACE } from './model';
|
|
12
|
+
function replaceAllLiteral(value, search, replacement) {
|
|
13
|
+
// String.replaceAll is ES2021 and is not rewritten by target ES5.
|
|
14
|
+
return value.split(search).join(replacement);
|
|
15
|
+
}
|
|
16
|
+
function escapeText(value) {
|
|
17
|
+
return replaceAllLiteral(replaceAllLiteral(replaceAllLiteral(value, '&', '&'), '<', '<'), '>', '>');
|
|
18
|
+
}
|
|
19
|
+
function escapeAttr(value) {
|
|
20
|
+
return replaceAllLiteral(escapeText(value), '"', '"');
|
|
21
|
+
}
|
|
22
|
+
function attributeName(attr) {
|
|
23
|
+
return attr.prefix === '' ? attr.localName : attr.prefix + ':' + attr.localName;
|
|
24
|
+
}
|
|
25
|
+
function serializeChild(node) {
|
|
26
|
+
if (node.kind === 'text') {
|
|
27
|
+
return escapeText(node.value);
|
|
28
|
+
}
|
|
29
|
+
return serializeXml(node);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Serialize a preservation element. Prefixes on the node are reused; namespace
|
|
33
|
+
* declarations stored on the element are emitted as xmlns attributes.
|
|
34
|
+
*/
|
|
35
|
+
export function serializeXml(element) {
|
|
36
|
+
var e_1, _a, e_2, _b, e_3, _c;
|
|
37
|
+
var name = element.prefix === '' ? element.localName : element.prefix + ':' + element.localName;
|
|
38
|
+
var pieces = ['<', name];
|
|
39
|
+
try {
|
|
40
|
+
for (var _d = __values(element.namespaceDeclarations), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
41
|
+
var decl = _e.value;
|
|
42
|
+
if (decl.prefix === '') {
|
|
43
|
+
pieces.push(' xmlns="', escapeAttr(decl.namespaceUri), '"');
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
pieces.push(' xmlns:', decl.prefix, '="', escapeAttr(decl.namespaceUri), '"');
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
51
|
+
finally {
|
|
52
|
+
try {
|
|
53
|
+
if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
|
|
54
|
+
}
|
|
55
|
+
finally { if (e_1) throw e_1.error; }
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
for (var _f = __values(element.attributes), _g = _f.next(); !_g.done; _g = _f.next()) {
|
|
59
|
+
var attr = _g.value;
|
|
60
|
+
var qname = attr.namespaceUri === XML_NAMESPACE && attr.prefix === ''
|
|
61
|
+
? 'xml:' + attr.localName
|
|
62
|
+
: attributeName(attr);
|
|
63
|
+
pieces.push(' ', qname, '="', escapeAttr(attr.value), '"');
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
67
|
+
finally {
|
|
68
|
+
try {
|
|
69
|
+
if (_g && !_g.done && (_b = _f.return)) _b.call(_f);
|
|
70
|
+
}
|
|
71
|
+
finally { if (e_2) throw e_2.error; }
|
|
72
|
+
}
|
|
73
|
+
if (element.children.length === 0) {
|
|
74
|
+
pieces.push('/>');
|
|
75
|
+
return pieces.join('');
|
|
76
|
+
}
|
|
77
|
+
pieces.push('>');
|
|
78
|
+
try {
|
|
79
|
+
for (var _h = __values(element.children), _j = _h.next(); !_j.done; _j = _h.next()) {
|
|
80
|
+
var child = _j.value;
|
|
81
|
+
pieces.push(serializeChild(child));
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
85
|
+
finally {
|
|
86
|
+
try {
|
|
87
|
+
if (_j && !_j.done && (_c = _h.return)) _c.call(_h);
|
|
88
|
+
}
|
|
89
|
+
finally { if (e_3) throw e_3.error; }
|
|
90
|
+
}
|
|
91
|
+
pieces.push('</', name, '>');
|
|
92
|
+
return pieces.join('');
|
|
93
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
var CRC_TABLE = new Uint32Array(256);
|
|
2
|
+
for (var i = 0; i < 256; i += 1) {
|
|
3
|
+
var c = i;
|
|
4
|
+
for (var k = 0; k < 8; k += 1) {
|
|
5
|
+
c = (c & 1) === 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;
|
|
6
|
+
}
|
|
7
|
+
CRC_TABLE[i] = c >>> 0;
|
|
8
|
+
}
|
|
9
|
+
/** IEEE CRC-32 used by ZIP local/central headers. */
|
|
10
|
+
export function crc32(data) {
|
|
11
|
+
var crc = 0xffffffff;
|
|
12
|
+
for (var i = 0; i < data.length; i += 1) {
|
|
13
|
+
var byte = data[i];
|
|
14
|
+
if (byte === undefined) {
|
|
15
|
+
break;
|
|
16
|
+
}
|
|
17
|
+
var index = (crc ^ byte) & 0xff;
|
|
18
|
+
var tableValue = CRC_TABLE[index];
|
|
19
|
+
if (tableValue === undefined) {
|
|
20
|
+
break;
|
|
21
|
+
}
|
|
22
|
+
crc = tableValue ^ (crc >>> 8);
|
|
23
|
+
}
|
|
24
|
+
return (crc ^ 0xffffffff) >>> 0;
|
|
25
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Raw DEFLATE as required for ZIP method 8 (ECMA-376-2 §7.3.6: DEFLATE only).
|
|
3
|
+
* Browser implementation — no Node `zlib`. `DecompressionStream` is not used:
|
|
4
|
+
* gulp product emit targets ES5 and those stream APIs are asynchronous.
|
|
5
|
+
*/
|
|
6
|
+
export { deflateRaw, inflateRaw } from './inflate-raw';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Raw DEFLATE as required for ZIP method 8 (ECMA-376-2 §7.3.6: DEFLATE only).
|
|
3
|
+
* Browser implementation — no Node `zlib`. `DecompressionStream` is not used:
|
|
4
|
+
* gulp product emit targets ES5 and those stream APIs are asynchronous.
|
|
5
|
+
*/
|
|
6
|
+
export { deflateRaw, inflateRaw } from './inflate-raw';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { DEFAULT_RESOURCE_LIMITS, resolveResourceLimits } from '../security/limits';
|
|
2
|
+
/**
|
|
3
|
+
* @private
|
|
4
|
+
*/
|
|
5
|
+
export { ResourceLimits } from '../security/limits';
|
|
6
|
+
export { ResourceLimitOverrides } from '../security/limits';
|
|
7
|
+
export { readZip } from './read';
|
|
8
|
+
export { writeZip } from './write';
|
|
9
|
+
export { ZipEntry } from './zip-entry';
|
|
10
|
+
export { assertSafeZipItemName } from './names';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Raw DEFLATE inflater (ZIP method 8 / RFC 1951).
|
|
3
|
+
* Browser-safe and synchronous: no Node `zlib`. Output is capped so a
|
|
4
|
+
* zip-bomb still surfaces as `RangeError` (read.ts maps that to a limit).
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Inflate a raw DEFLATE payload. Throws `RangeError` when the inflated
|
|
8
|
+
* size would exceed `maxOutputLength`.
|
|
9
|
+
*/
|
|
10
|
+
export declare function inflateRaw(compressed: Uint8Array, maxOutputLength: number): Uint8Array;
|
|
11
|
+
/**
|
|
12
|
+
* Encode `data` as one raw DEFLATE fixed-Huffman block (RFC 1951 type 1)
|
|
13
|
+
* plus length-3 distance-1 matches for runs. Repeated bytes shrink enough
|
|
14
|
+
* for the zip-bomb fixture; incompressible input falls back to stored blocks.
|
|
15
|
+
* OPC save itself writes ZIP method STORE and does not call this.
|
|
16
|
+
*/
|
|
17
|
+
export declare function deflateRaw(data: Uint8Array): Uint8Array;
|