@syncfusion/ej2-docx 0.0.0-stage → 35.1.40
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/.gitleaksignore +35 -0
- package/README.md +68 -2
- package/core.js +4 -0
- package/dist/ej2-docx.umd.min.js +11 -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 +11 -0
- package/dist/global/ej2-docx.min.js.map +1 -0
- package/dist/global/index.d.ts +14 -0
- package/features.js +4 -0
- package/index.js +4 -0
- package/license +10 -0
- package/package.json +30 -3
- 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,190 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __values = (this && this.__values) || function (o) {
|
|
13
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
|
|
14
|
+
if (m) return m.call(o);
|
|
15
|
+
return {
|
|
16
|
+
next: function () {
|
|
17
|
+
if (o && i >= o.length) o = void 0;
|
|
18
|
+
return { value: o && o[i++], done: !o };
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
23
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
24
|
+
if (!m) return o;
|
|
25
|
+
var i = m.call(o), r, ar = [], e;
|
|
26
|
+
try {
|
|
27
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
28
|
+
}
|
|
29
|
+
catch (error) { e = { error: error }; }
|
|
30
|
+
finally {
|
|
31
|
+
try {
|
|
32
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
33
|
+
}
|
|
34
|
+
finally { if (e) throw e.error; }
|
|
35
|
+
}
|
|
36
|
+
return ar;
|
|
37
|
+
};
|
|
38
|
+
var __spread = (this && this.__spread) || function () {
|
|
39
|
+
for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
|
|
40
|
+
return ar;
|
|
41
|
+
};
|
|
42
|
+
import { allocateRelationshipId, relationshipsWith, TargetMode } from '../opc/relationships';
|
|
43
|
+
import { partByName, withAddedPart, withContentTypeOverride, withPackageRelationships, withReplacedPart } from '../opc/package';
|
|
44
|
+
import { partNameKey, resolveInternalTarget } from '../opc/part-name';
|
|
45
|
+
var handlers = [];
|
|
46
|
+
/** Test hook */
|
|
47
|
+
export function resetFeaturePackagePartHandlers() {
|
|
48
|
+
handlers.length = 0;
|
|
49
|
+
}
|
|
50
|
+
export function registerFeaturePackagePartHandler(handler) {
|
|
51
|
+
handlers.push(handler);
|
|
52
|
+
}
|
|
53
|
+
export function listFeaturePackagePartHandlers() {
|
|
54
|
+
return handlers;
|
|
55
|
+
}
|
|
56
|
+
export function loadFeaturePackageParts(pkg, limits) {
|
|
57
|
+
var e_1, _a;
|
|
58
|
+
var out = new Map();
|
|
59
|
+
var ctx = { limits: limits };
|
|
60
|
+
try {
|
|
61
|
+
for (var handlers_1 = __values(handlers), handlers_1_1 = handlers_1.next(); !handlers_1_1.done; handlers_1_1 = handlers_1.next()) {
|
|
62
|
+
var handler = handlers_1_1.value;
|
|
63
|
+
out.set(handler.featureId, handler.loadParts(pkg, ctx));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
67
|
+
finally {
|
|
68
|
+
try {
|
|
69
|
+
if (handlers_1_1 && !handlers_1_1.done && (_a = handlers_1.return)) _a.call(handlers_1);
|
|
70
|
+
}
|
|
71
|
+
finally { if (e_1) throw e_1.error; }
|
|
72
|
+
}
|
|
73
|
+
return out;
|
|
74
|
+
}
|
|
75
|
+
function mergeRelationships(existing, add) {
|
|
76
|
+
var e_2, _a;
|
|
77
|
+
if (add.length === 0) {
|
|
78
|
+
return existing;
|
|
79
|
+
}
|
|
80
|
+
var used = new Set(existing.items.map(function (item) { return item.id; }));
|
|
81
|
+
var next = __spread(existing.items);
|
|
82
|
+
var _loop_1 = function (rel) {
|
|
83
|
+
if (next.some(function (item) { return item.type === rel.type && item.target === rel.target; })) {
|
|
84
|
+
return "continue";
|
|
85
|
+
}
|
|
86
|
+
var id = rel.id;
|
|
87
|
+
while (used.has(id)) {
|
|
88
|
+
id = allocateRelationshipId(used);
|
|
89
|
+
}
|
|
90
|
+
used.add(id);
|
|
91
|
+
next.push(__assign({}, rel, { id: id }));
|
|
92
|
+
};
|
|
93
|
+
try {
|
|
94
|
+
for (var add_1 = __values(add), add_1_1 = add_1.next(); !add_1_1.done; add_1_1 = add_1.next()) {
|
|
95
|
+
var rel = add_1_1.value;
|
|
96
|
+
_loop_1(rel);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
100
|
+
finally {
|
|
101
|
+
try {
|
|
102
|
+
if (add_1_1 && !add_1_1.done && (_a = add_1.return)) _a.call(add_1);
|
|
103
|
+
}
|
|
104
|
+
finally { if (e_2) throw e_2.error; }
|
|
105
|
+
}
|
|
106
|
+
return relationshipsWith(next, existing.opaque);
|
|
107
|
+
}
|
|
108
|
+
export function applyFeaturePackageParts(pkg, featureParts) {
|
|
109
|
+
var e_3, _a;
|
|
110
|
+
var next = pkg;
|
|
111
|
+
try {
|
|
112
|
+
for (var handlers_2 = __values(handlers), handlers_2_1 = handlers_2.next(); !handlers_2_1.done; handlers_2_1 = handlers_2.next()) {
|
|
113
|
+
var handler = handlers_2_1.value;
|
|
114
|
+
var state = featureParts.get(handler.featureId);
|
|
115
|
+
if (state === undefined || !state.isDirty()) {
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
next = state.applyToPackage(next);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
122
|
+
finally {
|
|
123
|
+
try {
|
|
124
|
+
if (handlers_2_1 && !handlers_2_1.done && (_a = handlers_2.return)) _a.call(handlers_2);
|
|
125
|
+
}
|
|
126
|
+
finally { if (e_3) throw e_3.error; }
|
|
127
|
+
}
|
|
128
|
+
return next;
|
|
129
|
+
}
|
|
130
|
+
/** @public Helpers for feature modules implementing {@link FeaturePackageLevelPart}. */
|
|
131
|
+
export function findPackageRelatedPart(pkg, relationshipType) {
|
|
132
|
+
var e_4, _a;
|
|
133
|
+
try {
|
|
134
|
+
for (var _b = __values(pkg.packageRelationships.items), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
135
|
+
var rel = _c.value;
|
|
136
|
+
if (rel.type !== relationshipType || rel.targetMode === TargetMode.External) {
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
var target = resolveInternalTarget(rel.target);
|
|
140
|
+
var part = partByName(pkg, target);
|
|
141
|
+
if (part === undefined) {
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
return { relationship: rel, part: part };
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
148
|
+
finally {
|
|
149
|
+
try {
|
|
150
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
151
|
+
}
|
|
152
|
+
finally { if (e_4) throw e_4.error; }
|
|
153
|
+
}
|
|
154
|
+
return undefined;
|
|
155
|
+
}
|
|
156
|
+
export function replaceOrAddPackageLevelPart(pkg, partNameValue, contentType, data, relationship) {
|
|
157
|
+
var next = pkg;
|
|
158
|
+
var existing = partByName(next, partNameValue);
|
|
159
|
+
if (existing === undefined) {
|
|
160
|
+
next = withAddedPart(next, { name: partNameValue, contentType: contentType, data: data });
|
|
161
|
+
next = withContentTypeOverride(next, partNameValue, contentType);
|
|
162
|
+
if (relationship !== undefined) {
|
|
163
|
+
next = withPackageRelationships(next, mergeRelationships(next.packageRelationships, [relationship]));
|
|
164
|
+
}
|
|
165
|
+
return next;
|
|
166
|
+
}
|
|
167
|
+
next = withReplacedPart(next, partNameValue, data);
|
|
168
|
+
return next;
|
|
169
|
+
}
|
|
170
|
+
export function usedPackagePartNameKeys(pkg) {
|
|
171
|
+
var e_5, _a;
|
|
172
|
+
var used = new Set();
|
|
173
|
+
try {
|
|
174
|
+
for (var _b = __values(pkg.parts), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
175
|
+
var part = _c.value;
|
|
176
|
+
used.add(partNameKey(part.name));
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
180
|
+
finally {
|
|
181
|
+
try {
|
|
182
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
183
|
+
}
|
|
184
|
+
finally { if (e_5) throw e_5.error; }
|
|
185
|
+
}
|
|
186
|
+
return used;
|
|
187
|
+
}
|
|
188
|
+
export function usedPackageRelationshipIds(pkg) {
|
|
189
|
+
return new Set(pkg.packageRelationships.items.map(function (item) { return item.id; }));
|
|
190
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { FeaturePackagePart } from '../../features/document/feature-package-part';
|
|
2
|
+
import { OpcPackage, PackagePart } from '../opc/package';
|
|
3
|
+
import { PartName } from '../opc/part-name';
|
|
4
|
+
import { ResourceLimitOverrides } from '../security/limits';
|
|
5
|
+
import { FeatureId } from './feature-registry';
|
|
6
|
+
/** @public */
|
|
7
|
+
export interface FeaturePartLoadContext {
|
|
8
|
+
readonly mainPartName: PartName;
|
|
9
|
+
readonly limits?: ResourceLimitOverrides | undefined;
|
|
10
|
+
}
|
|
11
|
+
export interface FeaturePartHandler {
|
|
12
|
+
readonly featureId: FeatureId;
|
|
13
|
+
readonly relationshipTypes: ReadonlyArray<string>;
|
|
14
|
+
readonly defaultRelativeTarget: string;
|
|
15
|
+
readonly partName: PartName;
|
|
16
|
+
readonly contentType: string;
|
|
17
|
+
loadPart(part: PackagePart | undefined, ctx: FeaturePartLoadContext): FeaturePackagePart;
|
|
18
|
+
}
|
|
19
|
+
/** Test hook */
|
|
20
|
+
export declare function resetFeaturePartHandlers(): void;
|
|
21
|
+
export declare function registerFeaturePartHandler(handler: FeaturePartHandler): void;
|
|
22
|
+
export declare function listFeaturePartHandlers(): ReadonlyArray<FeaturePartHandler>;
|
|
23
|
+
export declare function loadFeatureParts(pkg: OpcPackage, mainPartName: PartName, limits?: ResourceLimitOverrides): Map<FeatureId, FeaturePackagePart>;
|
|
24
|
+
export declare function applyFeatureParts(pkg: OpcPackage, mainPartName: PartName, featureParts: ReadonlyMap<FeatureId, FeaturePackagePart>): OpcPackage;
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __values = (this && this.__values) || function (o) {
|
|
13
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
|
|
14
|
+
if (m) return m.call(o);
|
|
15
|
+
return {
|
|
16
|
+
next: function () {
|
|
17
|
+
if (o && i >= o.length) o = void 0;
|
|
18
|
+
return { value: o && o[i++], done: !o };
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
23
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
24
|
+
if (!m) return o;
|
|
25
|
+
var i = m.call(o), r, ar = [], e;
|
|
26
|
+
try {
|
|
27
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
28
|
+
}
|
|
29
|
+
catch (error) { e = { error: error }; }
|
|
30
|
+
finally {
|
|
31
|
+
try {
|
|
32
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
33
|
+
}
|
|
34
|
+
finally { if (e) throw e.error; }
|
|
35
|
+
}
|
|
36
|
+
return ar;
|
|
37
|
+
};
|
|
38
|
+
var __spread = (this && this.__spread) || function () {
|
|
39
|
+
for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
|
|
40
|
+
return ar;
|
|
41
|
+
};
|
|
42
|
+
import { allocateRelationshipId, relationshipsWith, TargetMode } from '../opc/relationships';
|
|
43
|
+
import { partByName, relationshipsForPart, withAddedPart, withContentTypeOverride, withPartRelationships, withReplacedPart } from '../opc/package';
|
|
44
|
+
import { resolveInternalTarget } from '../opc/part-name';
|
|
45
|
+
var handlers = [];
|
|
46
|
+
/** Test hook */
|
|
47
|
+
export function resetFeaturePartHandlers() {
|
|
48
|
+
handlers.length = 0;
|
|
49
|
+
}
|
|
50
|
+
export function registerFeaturePartHandler(handler) {
|
|
51
|
+
handlers.push(handler);
|
|
52
|
+
}
|
|
53
|
+
export function listFeaturePartHandlers() {
|
|
54
|
+
return handlers;
|
|
55
|
+
}
|
|
56
|
+
function findRelatedPart(pkg, source, relationshipTypes) {
|
|
57
|
+
var e_1, _a;
|
|
58
|
+
var rels = relationshipsForPart(pkg, source);
|
|
59
|
+
try {
|
|
60
|
+
for (var _b = __values(rels.items), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
61
|
+
var rel = _c.value;
|
|
62
|
+
if (relationshipTypes.indexOf(rel.type) === -1 || rel.targetMode === TargetMode.External) {
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
var target = resolveInternalTarget(rel.target, source);
|
|
66
|
+
return partByName(pkg, target);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
70
|
+
finally {
|
|
71
|
+
try {
|
|
72
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
73
|
+
}
|
|
74
|
+
finally { if (e_1) throw e_1.error; }
|
|
75
|
+
}
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
export function loadFeatureParts(pkg, mainPartName, limits) {
|
|
79
|
+
var e_2, _a;
|
|
80
|
+
var out = new Map();
|
|
81
|
+
var ctx = { mainPartName: mainPartName, limits: limits };
|
|
82
|
+
try {
|
|
83
|
+
for (var handlers_1 = __values(handlers), handlers_1_1 = handlers_1.next(); !handlers_1_1.done; handlers_1_1 = handlers_1.next()) {
|
|
84
|
+
var handler = handlers_1_1.value;
|
|
85
|
+
var part = findRelatedPart(pkg, mainPartName, handler.relationshipTypes);
|
|
86
|
+
out.set(handler.featureId, handler.loadPart(part, ctx));
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
90
|
+
finally {
|
|
91
|
+
try {
|
|
92
|
+
if (handlers_1_1 && !handlers_1_1.done && (_a = handlers_1.return)) _a.call(handlers_1);
|
|
93
|
+
}
|
|
94
|
+
finally { if (e_2) throw e_2.error; }
|
|
95
|
+
}
|
|
96
|
+
return out;
|
|
97
|
+
}
|
|
98
|
+
function mergeRelationships(existing, add) {
|
|
99
|
+
var e_3, _a;
|
|
100
|
+
if (add.length === 0) {
|
|
101
|
+
return existing;
|
|
102
|
+
}
|
|
103
|
+
var used = new Set(existing.items.map(function (item) { return item.id; }));
|
|
104
|
+
var next = __spread(existing.items);
|
|
105
|
+
var _loop_1 = function (rel) {
|
|
106
|
+
if (next.some(function (item) { return item.type === rel.type && item.target === rel.target; })) {
|
|
107
|
+
return "continue";
|
|
108
|
+
}
|
|
109
|
+
var id = rel.id;
|
|
110
|
+
while (used.has(id)) {
|
|
111
|
+
id = allocateRelationshipId(used);
|
|
112
|
+
}
|
|
113
|
+
used.add(id);
|
|
114
|
+
next.push(__assign({}, rel, { id: id }));
|
|
115
|
+
};
|
|
116
|
+
try {
|
|
117
|
+
for (var add_1 = __values(add), add_1_1 = add_1.next(); !add_1_1.done; add_1_1 = add_1.next()) {
|
|
118
|
+
var rel = add_1_1.value;
|
|
119
|
+
_loop_1(rel);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
123
|
+
finally {
|
|
124
|
+
try {
|
|
125
|
+
if (add_1_1 && !add_1_1.done && (_a = add_1.return)) _a.call(add_1);
|
|
126
|
+
}
|
|
127
|
+
finally { if (e_3) throw e_3.error; }
|
|
128
|
+
}
|
|
129
|
+
return relationshipsWith(next, existing.opaque);
|
|
130
|
+
}
|
|
131
|
+
export function applyFeatureParts(pkg, mainPartName, featureParts) {
|
|
132
|
+
var e_4, _a;
|
|
133
|
+
var next = pkg;
|
|
134
|
+
try {
|
|
135
|
+
for (var handlers_2 = __values(handlers), handlers_2_1 = handlers_2.next(); !handlers_2_1.done; handlers_2_1 = handlers_2.next()) {
|
|
136
|
+
var handler = handlers_2_1.value;
|
|
137
|
+
var state = featureParts.get(handler.featureId);
|
|
138
|
+
if (state === undefined || !state.isDirty()) {
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
var data = state.serialize();
|
|
142
|
+
var existing = partByName(next, handler.partName);
|
|
143
|
+
if (existing === undefined) {
|
|
144
|
+
next = withAddedPart(next, {
|
|
145
|
+
name: handler.partName,
|
|
146
|
+
contentType: handler.contentType,
|
|
147
|
+
data: data,
|
|
148
|
+
});
|
|
149
|
+
next = withContentTypeOverride(next, handler.partName, handler.contentType);
|
|
150
|
+
var rel = {
|
|
151
|
+
id: allocateRelationshipId(new Set(__spread(next.packageRelationships.items.map(function (item) { return item.id; }), relationshipsForPart(next, mainPartName).items.map(function (item) { return item.id; })))),
|
|
152
|
+
type: handler.relationshipTypes[0] != null ? handler.relationshipTypes[0] : '',
|
|
153
|
+
target: handler.defaultRelativeTarget,
|
|
154
|
+
extraAttributes: [],
|
|
155
|
+
children: [],
|
|
156
|
+
};
|
|
157
|
+
var merged = mergeRelationships(relationshipsForPart(next, mainPartName), [rel]);
|
|
158
|
+
next = withPartRelationships(next, mainPartName, merged);
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
next = withReplacedPart(next, handler.partName, data);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
165
|
+
finally {
|
|
166
|
+
try {
|
|
167
|
+
if (handlers_2_1 && !handlers_2_1.done && (_a = handlers_2.return)) _a.call(handlers_2);
|
|
168
|
+
}
|
|
169
|
+
finally { if (e_4) throw e_4.error; }
|
|
170
|
+
}
|
|
171
|
+
return next;
|
|
172
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { FeatureRunLeaf } from '../../features/document/feature-run-leaf';
|
|
2
|
+
import { OpenXmlElement } from '../xml/index';
|
|
3
|
+
import { FeatureId } from './feature-registry';
|
|
4
|
+
export declare type FeatureRunLeafContent = {
|
|
5
|
+
readonly type: 'feature';
|
|
6
|
+
readonly featureId: FeatureId;
|
|
7
|
+
readonly value: FeatureRunLeaf;
|
|
8
|
+
};
|
|
9
|
+
export interface FeatureRunLeafHandler {
|
|
10
|
+
readonly featureId: FeatureId;
|
|
11
|
+
readonly wmlLocalName: string;
|
|
12
|
+
/**
|
|
13
|
+
* Element namespace. When omitted, WordprocessingML transitional **or** strict
|
|
14
|
+
* namespaces match (same as {@link isWml}). When set, the URI must match
|
|
15
|
+
* exactly (for non-WML roots such as `mc:AlternateContent`).
|
|
16
|
+
*/
|
|
17
|
+
readonly namespaceUri?: string;
|
|
18
|
+
tryParse(element: OpenXmlElement): FeatureRunLeaf | undefined;
|
|
19
|
+
}
|
|
20
|
+
/** Test hook */
|
|
21
|
+
export declare function resetFeatureRunLeafHandlers(): void;
|
|
22
|
+
export declare function registerFeatureRunLeafHandler(handler: FeatureRunLeafHandler, options?: {
|
|
23
|
+
readonly prepend?: boolean;
|
|
24
|
+
}): void;
|
|
25
|
+
export declare function tryParseFeatureRunLeaf(element: OpenXmlElement): FeatureRunLeafContent | undefined;
|
|
26
|
+
export declare function serializeFeatureRunLeaf(leaf: FeatureRunLeafContent): OpenXmlElement;
|
|
@@ -0,0 +1,72 @@
|
|
|
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 { isWml, isWmlNamespace } from '../../features/document/wml';
|
|
12
|
+
var handlersByLocalName = new Map();
|
|
13
|
+
function elementMatchesHandler(element, handler) {
|
|
14
|
+
if (element.localName !== handler.wmlLocalName) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
if (handler.namespaceUri === undefined) {
|
|
18
|
+
return isWml(element, handler.wmlLocalName);
|
|
19
|
+
}
|
|
20
|
+
// Explicit non-default namespace (e.g. Markup Compatibility).
|
|
21
|
+
if (isWmlNamespace(handler.namespaceUri)) {
|
|
22
|
+
return isWmlNamespace(element.namespaceUri) && element.localName === handler.wmlLocalName;
|
|
23
|
+
}
|
|
24
|
+
return element.namespaceUri === handler.namespaceUri;
|
|
25
|
+
}
|
|
26
|
+
/** Test hook */
|
|
27
|
+
export function resetFeatureRunLeafHandlers() {
|
|
28
|
+
handlersByLocalName.clear();
|
|
29
|
+
}
|
|
30
|
+
export function registerFeatureRunLeafHandler(handler, options) {
|
|
31
|
+
var existing = handlersByLocalName.get(handler.wmlLocalName);
|
|
32
|
+
if (existing === undefined) {
|
|
33
|
+
handlersByLocalName.set(handler.wmlLocalName, [handler]);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
// Charts (and similar owners) prepend so residual drawing can still claim later.
|
|
37
|
+
if ((options == null ? undefined : options.prepend) === true) {
|
|
38
|
+
existing.unshift(handler);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
existing.push(handler);
|
|
42
|
+
}
|
|
43
|
+
export function tryParseFeatureRunLeaf(element) {
|
|
44
|
+
var e_1, _a;
|
|
45
|
+
var handlers = handlersByLocalName.get(element.localName);
|
|
46
|
+
if (handlers === undefined) {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
try {
|
|
50
|
+
for (var handlers_1 = __values(handlers), handlers_1_1 = handlers_1.next(); !handlers_1_1.done; handlers_1_1 = handlers_1.next()) {
|
|
51
|
+
var handler = handlers_1_1.value;
|
|
52
|
+
if (!elementMatchesHandler(element, handler)) {
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
var value = handler.tryParse(element);
|
|
56
|
+
if (value !== undefined) {
|
|
57
|
+
return { type: 'feature', featureId: handler.featureId, value: value };
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
62
|
+
finally {
|
|
63
|
+
try {
|
|
64
|
+
if (handlers_1_1 && !handlers_1_1.done && (_a = handlers_1.return)) _a.call(handlers_1);
|
|
65
|
+
}
|
|
66
|
+
finally { if (e_1) throw e_1.error; }
|
|
67
|
+
}
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
export function serializeFeatureRunLeaf(leaf) {
|
|
71
|
+
return leaf.value.toOpenXml();
|
|
72
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default resource limits for untrusted packages and XML.
|
|
3
|
+
* Values are from `.agent/policies/security.md`.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* ZIP and XML resource limits applied on load.
|
|
7
|
+
*
|
|
8
|
+
* Required on the public surface under `stripInternal` because
|
|
9
|
+
* {@link DEFAULT_RESOURCE_LIMITS} and {@link ResourceLimitOverrides} reference
|
|
10
|
+
* this type.
|
|
11
|
+
*
|
|
12
|
+
* @private
|
|
13
|
+
*/
|
|
14
|
+
export interface ResourceLimits {
|
|
15
|
+
/** Total uncompressed bytes across ZIP entries. Default 512 MiB. */
|
|
16
|
+
readonly totalUncompressedSize: number;
|
|
17
|
+
/** Max inflate ratio per entry. Default 200. */
|
|
18
|
+
readonly compressionRatio: number;
|
|
19
|
+
/** Max ZIP entries. Default 10_000. */
|
|
20
|
+
readonly entryCount: number;
|
|
21
|
+
/** Max uncompressed size of one part. Default 128 MiB. */
|
|
22
|
+
readonly singlePartUncompressedSize: number;
|
|
23
|
+
/** Max XML element nesting. Default 256. */
|
|
24
|
+
readonly xmlNestingDepth: number;
|
|
25
|
+
/** Max attributes per element. Default 4096. */
|
|
26
|
+
readonly xmlAttributeCount: number;
|
|
27
|
+
/** Max `w:t` / text node length. Default 32 MiB. */
|
|
28
|
+
readonly textNodeLength: number;
|
|
29
|
+
/** Max relationships in one relationships part. Default 10_000. */
|
|
30
|
+
readonly relationshipCountPerPart: number;
|
|
31
|
+
}
|
|
32
|
+
/** @public */
|
|
33
|
+
export declare const DEFAULT_RESOURCE_LIMITS: ResourceLimits;
|
|
34
|
+
/**
|
|
35
|
+
* Partial override of {@link ResourceLimits}. Unspecified fields keep the defaults.
|
|
36
|
+
*
|
|
37
|
+
* @public
|
|
38
|
+
*/
|
|
39
|
+
export declare type ResourceLimitOverrides = Partial<ResourceLimits>;
|
|
40
|
+
export declare function resolveResourceLimits(overrides?: ResourceLimitOverrides): ResourceLimits;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/** @public */
|
|
2
|
+
export var DEFAULT_RESOURCE_LIMITS = {
|
|
3
|
+
totalUncompressedSize: 512 * 1024 * 1024,
|
|
4
|
+
compressionRatio: 200,
|
|
5
|
+
entryCount: 10000,
|
|
6
|
+
singlePartUncompressedSize: 128 * 1024 * 1024,
|
|
7
|
+
xmlNestingDepth: 256,
|
|
8
|
+
xmlAttributeCount: 4096,
|
|
9
|
+
textNodeLength: 32 * 1024 * 1024,
|
|
10
|
+
relationshipCountPerPart: 10000,
|
|
11
|
+
};
|
|
12
|
+
export function resolveResourceLimits(overrides) {
|
|
13
|
+
if (overrides === undefined) {
|
|
14
|
+
return DEFAULT_RESOURCE_LIMITS;
|
|
15
|
+
}
|
|
16
|
+
return {
|
|
17
|
+
totalUncompressedSize: overrides.totalUncompressedSize != null ? overrides.totalUncompressedSize : DEFAULT_RESOURCE_LIMITS.totalUncompressedSize,
|
|
18
|
+
compressionRatio: overrides.compressionRatio != null ? overrides.compressionRatio : DEFAULT_RESOURCE_LIMITS.compressionRatio,
|
|
19
|
+
entryCount: overrides.entryCount != null ? overrides.entryCount : DEFAULT_RESOURCE_LIMITS.entryCount,
|
|
20
|
+
singlePartUncompressedSize: overrides.singlePartUncompressedSize != null ? overrides.singlePartUncompressedSize : DEFAULT_RESOURCE_LIMITS.singlePartUncompressedSize,
|
|
21
|
+
xmlNestingDepth: overrides.xmlNestingDepth != null ? overrides.xmlNestingDepth : DEFAULT_RESOURCE_LIMITS.xmlNestingDepth,
|
|
22
|
+
xmlAttributeCount: overrides.xmlAttributeCount != null ? overrides.xmlAttributeCount : DEFAULT_RESOURCE_LIMITS.xmlAttributeCount,
|
|
23
|
+
textNodeLength: overrides.textNodeLength != null ? overrides.textNodeLength : DEFAULT_RESOURCE_LIMITS.textNodeLength,
|
|
24
|
+
relationshipCountPerPart: overrides.relationshipCountPerPart != null ? overrides.relationshipCountPerPart : DEFAULT_RESOURCE_LIMITS.relationshipCountPerPart,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { decodeXmlBytes, parseXml } from './parse';
|
|
2
|
+
export { serializeXml } from './serialize';
|
|
3
|
+
export { XML_NAMESPACE, XMLNS_NAMESPACE, WML_TRANSITIONAL_NAMESPACE, WML_STRICT_NAMESPACE, } from './model';
|
|
4
|
+
/**
|
|
5
|
+
* @private
|
|
6
|
+
*/
|
|
7
|
+
export { OpenXmlAttribute, OpenXmlChild, OpenXmlElement, OpenXmlText, NamespaceDeclaration, } from './model';
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Attribute on an {@link OpenXmlElement}. Advanced hatch; unstable.
|
|
3
|
+
*
|
|
4
|
+
* @private
|
|
5
|
+
*/
|
|
6
|
+
export interface OpenXmlAttribute {
|
|
7
|
+
readonly namespaceUri: string;
|
|
8
|
+
readonly localName: string;
|
|
9
|
+
readonly prefix: string;
|
|
10
|
+
readonly value: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* `xmlns` declaration on an {@link OpenXmlElement}. Advanced hatch; unstable.
|
|
14
|
+
*
|
|
15
|
+
* @private
|
|
16
|
+
*/
|
|
17
|
+
export interface NamespaceDeclaration {
|
|
18
|
+
readonly prefix: string;
|
|
19
|
+
readonly namespaceUri: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Child of an {@link OpenXmlElement}. Advanced hatch; unstable.
|
|
23
|
+
*
|
|
24
|
+
* @private
|
|
25
|
+
*/
|
|
26
|
+
export declare type OpenXmlChild = OpenXmlElement | OpenXmlText;
|
|
27
|
+
/**
|
|
28
|
+
* Text node in the XML tree. Advanced hatch; unstable.
|
|
29
|
+
*
|
|
30
|
+
* @private
|
|
31
|
+
*/
|
|
32
|
+
export interface OpenXmlText {
|
|
33
|
+
readonly kind: 'text';
|
|
34
|
+
readonly value: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Element in the preserved XML tree. Advanced hatch; unstable.
|
|
38
|
+
*
|
|
39
|
+
* @private
|
|
40
|
+
*/
|
|
41
|
+
export interface OpenXmlElement {
|
|
42
|
+
readonly kind: 'element';
|
|
43
|
+
readonly namespaceUri: string;
|
|
44
|
+
readonly localName: string;
|
|
45
|
+
readonly prefix: string;
|
|
46
|
+
readonly attributes: ReadonlyArray<OpenXmlAttribute>;
|
|
47
|
+
readonly namespaceDeclarations: ReadonlyArray<NamespaceDeclaration>;
|
|
48
|
+
readonly children: ReadonlyArray<OpenXmlChild>;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* @private
|
|
52
|
+
*/
|
|
53
|
+
export declare const XML_NAMESPACE = "http://www.w3.org/XML/1998/namespace";
|
|
54
|
+
/**
|
|
55
|
+
* @private
|
|
56
|
+
*/
|
|
57
|
+
export declare const XMLNS_NAMESPACE = "http://www.w3.org/2000/xmlns/";
|
|
58
|
+
/**
|
|
59
|
+
* @private
|
|
60
|
+
*/
|
|
61
|
+
export declare const WML_TRANSITIONAL_NAMESPACE = "http://schemas.openxmlformats.org/wordprocessingml/2006/main";
|
|
62
|
+
/**
|
|
63
|
+
* @private
|
|
64
|
+
* Strict ISO/IEC 29500 WordprocessingML namespace (ECMA-376-1).
|
|
65
|
+
*/
|
|
66
|
+
export declare const WML_STRICT_NAMESPACE = "http://purl.oclc.org/ooxml/wordprocessingml/main";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @private
|
|
3
|
+
*/
|
|
4
|
+
export var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace';
|
|
5
|
+
/**
|
|
6
|
+
* @private
|
|
7
|
+
*/
|
|
8
|
+
export var XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/';
|
|
9
|
+
/**
|
|
10
|
+
* @private
|
|
11
|
+
*/
|
|
12
|
+
export var WML_TRANSITIONAL_NAMESPACE = 'http://schemas.openxmlformats.org/wordprocessingml/2006/main';
|
|
13
|
+
/**
|
|
14
|
+
* @private
|
|
15
|
+
* Strict ISO/IEC 29500 WordprocessingML namespace (ECMA-376-1).
|
|
16
|
+
*/
|
|
17
|
+
export var WML_STRICT_NAMESPACE = 'http://purl.oclc.org/ooxml/wordprocessingml/main';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ResourceLimitOverrides } from '../security/limits';
|
|
2
|
+
import { OpenXmlElement } from './model';
|
|
3
|
+
/**
|
|
4
|
+
* Decode OPC/XML part bytes. Supports UTF-8 and UTF-16 (BOM).
|
|
5
|
+
* Word sometimes writes parts such as `numbering.xml` as UTF-16LE.
|
|
6
|
+
*/
|
|
7
|
+
export declare function decodeXmlBytes(data: Uint8Array): string;
|
|
8
|
+
/**
|
|
9
|
+
* Parse XML into a preservation DOM. Namespace URI + local name identify elements;
|
|
10
|
+
* prefixes are stored only for stable serialization. DTD/ENTITY constructs fail closed.
|
|
11
|
+
*/
|
|
12
|
+
export declare function parseXml(xml: string, limitOverrides?: ResourceLimitOverrides): OpenXmlElement;
|