@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.
Files changed (417) hide show
  1. package/.gitleaksignore +35 -0
  2. package/README.md +68 -2
  3. package/core.js +4 -0
  4. package/dist/ej2-docx.umd.min.js +11 -0
  5. package/dist/ej2-docx.umd.min.js.map +1 -0
  6. package/dist/es6/ej2-docx.es2015.js +66697 -0
  7. package/dist/es6/ej2-docx.es2015.js.map +1 -0
  8. package/dist/es6/ej2-docx.es5.js +77568 -0
  9. package/dist/es6/ej2-docx.es5.js.map +1 -0
  10. package/dist/global/ej2-docx.min.js +11 -0
  11. package/dist/global/ej2-docx.min.js.map +1 -0
  12. package/dist/global/index.d.ts +14 -0
  13. package/features.js +4 -0
  14. package/index.js +4 -0
  15. package/license +10 -0
  16. package/package.json +30 -3
  17. package/src/all.d.ts +50 -0
  18. package/src/all.js +147 -0
  19. package/src/core/compat/base64.d.ts +13 -0
  20. package/src/core/compat/base64.js +90 -0
  21. package/src/core/compat/object-compat.d.ts +30 -0
  22. package/src/core/compat/object-compat.js +40 -0
  23. package/src/core/compat/sha256.d.ts +9 -0
  24. package/src/core/compat/sha256.js +98 -0
  25. package/src/core/errors/docx-error.d.ts +89 -0
  26. package/src/core/errors/docx-error.js +138 -0
  27. package/src/core/errors/error-codes.d.ts +8 -0
  28. package/src/core/errors/error-codes.js +0 -0
  29. package/src/core/errors/index.d.ts +10 -0
  30. package/src/core/errors/index.js +9 -0
  31. package/src/core/index.d.ts +12 -0
  32. package/src/core/index.js +12 -0
  33. package/src/core/mc/alternate-content.d.ts +7 -0
  34. package/src/core/mc/alternate-content.js +67 -0
  35. package/src/core/mc/attributes.d.ts +24 -0
  36. package/src/core/mc/attributes.js +82 -0
  37. package/src/core/mc/index.d.ts +7 -0
  38. package/src/core/mc/index.js +5 -0
  39. package/src/core/mc/inspect.d.ts +16 -0
  40. package/src/core/mc/inspect.js +148 -0
  41. package/src/core/mc/namespaces.d.ts +4 -0
  42. package/src/core/mc/namespaces.js +4 -0
  43. package/src/core/mc/scope.d.ts +6 -0
  44. package/src/core/mc/scope.js +47 -0
  45. package/src/core/opc/content-types.d.ts +34 -0
  46. package/src/core/opc/content-types.js +162 -0
  47. package/src/core/opc/index.d.ts +8 -0
  48. package/src/core/opc/index.js +4 -0
  49. package/src/core/opc/package.d.ts +49 -0
  50. package/src/core/opc/package.js +324 -0
  51. package/src/core/opc/part-name.d.ts +47 -0
  52. package/src/core/opc/part-name.js +205 -0
  53. package/src/core/opc/relationships.d.ts +46 -0
  54. package/src/core/opc/relationships.js +212 -0
  55. package/src/core/preservation/index.d.ts +2 -0
  56. package/src/core/preservation/index.js +1 -0
  57. package/src/core/preservation/opaque-body.d.ts +16 -0
  58. package/src/core/preservation/opaque-body.js +69 -0
  59. package/src/core/registry/block-handlers.d.ts +30 -0
  60. package/src/core/registry/block-handlers.js +36 -0
  61. package/src/core/registry/create-defaults.d.ts +39 -0
  62. package/src/core/registry/create-defaults.js +42 -0
  63. package/src/core/registry/feature-registry.d.ts +20 -0
  64. package/src/core/registry/feature-registry.js +29 -0
  65. package/src/core/registry/index.d.ts +9 -0
  66. package/src/core/registry/index.js +8 -0
  67. package/src/core/registry/inline-handlers.d.ts +20 -0
  68. package/src/core/registry/inline-handlers.js +30 -0
  69. package/src/core/registry/materialize-handlers.d.ts +35 -0
  70. package/src/core/registry/materialize-handlers.js +75 -0
  71. package/src/core/registry/multi-part-handlers.d.ts +37 -0
  72. package/src/core/registry/multi-part-handlers.js +206 -0
  73. package/src/core/registry/package-part-handlers.d.ts +28 -0
  74. package/src/core/registry/package-part-handlers.js +190 -0
  75. package/src/core/registry/part-handlers.d.ts +24 -0
  76. package/src/core/registry/part-handlers.js +172 -0
  77. package/src/core/registry/run-leaf-handlers.d.ts +26 -0
  78. package/src/core/registry/run-leaf-handlers.js +72 -0
  79. package/src/core/security/limits.d.ts +40 -0
  80. package/src/core/security/limits.js +26 -0
  81. package/src/core/xml/index.d.ts +7 -0
  82. package/src/core/xml/index.js +3 -0
  83. package/src/core/xml/model.d.ts +66 -0
  84. package/src/core/xml/model.js +17 -0
  85. package/src/core/xml/parse.d.ts +12 -0
  86. package/src/core/xml/parse.js +382 -0
  87. package/src/core/xml/serialize.d.ts +6 -0
  88. package/src/core/xml/serialize.js +93 -0
  89. package/src/core/zip/crc32.d.ts +2 -0
  90. package/src/core/zip/crc32.js +25 -0
  91. package/src/core/zip/deflate.d.ts +6 -0
  92. package/src/core/zip/deflate.js +6 -0
  93. package/src/core/zip/index.d.ts +10 -0
  94. package/src/core/zip/index.js +4 -0
  95. package/src/core/zip/inflate-raw.d.ts +17 -0
  96. package/src/core/zip/inflate-raw.js +450 -0
  97. package/src/core/zip/names.d.ts +6 -0
  98. package/src/core/zip/names.js +52 -0
  99. package/src/core/zip/read.d.ts +8 -0
  100. package/src/core/zip/read.js +262 -0
  101. package/src/core/zip/write.d.ts +7 -0
  102. package/src/core/zip/write.js +189 -0
  103. package/src/core/zip/zip-entry.d.ts +4 -0
  104. package/src/core/zip/zip-entry.js +0 -0
  105. package/src/features/bibliography/index.d.ts +100 -0
  106. package/src/features/bibliography/index.js +290 -0
  107. package/src/features/bookmarks/index.d.ts +331 -0
  108. package/src/features/bookmarks/index.js +1009 -0
  109. package/src/features/comments/comment-extensions.d.ts +157 -0
  110. package/src/features/comments/comment-extensions.js +356 -0
  111. package/src/features/comments/index.d.ts +579 -0
  112. package/src/features/comments/index.js +1727 -0
  113. package/src/features/content-controls/index.d.ts +821 -0
  114. package/src/features/content-controls/index.js +2857 -0
  115. package/src/features/custom-xml/index.d.ts +236 -0
  116. package/src/features/custom-xml/index.js +661 -0
  117. package/src/features/document/alignment.d.ts +23 -0
  118. package/src/features/document/alignment.js +36 -0
  119. package/src/features/document/alt-chunk.d.ts +103 -0
  120. package/src/features/document/alt-chunk.js +221 -0
  121. package/src/features/document/assert-never.d.ts +1 -0
  122. package/src/features/document/assert-never.js +4 -0
  123. package/src/features/document/augmentations.d.ts +578 -0
  124. package/src/features/document/augmentations.js +0 -0
  125. package/src/features/document/body-always-on.d.ts +36 -0
  126. package/src/features/document/body-always-on.js +66 -0
  127. package/src/features/document/body-blocks.d.ts +7 -0
  128. package/src/features/document/body-blocks.js +78 -0
  129. package/src/features/document/body-item-adapters.d.ts +62 -0
  130. package/src/features/document/body-item-adapters.js +97 -0
  131. package/src/features/document/body-item-collection.d.ts +151 -0
  132. package/src/features/document/body-item-collection.js +440 -0
  133. package/src/features/document/body-item.d.ts +35 -0
  134. package/src/features/document/body-item.js +8 -0
  135. package/src/features/document/body.d.ts +150 -0
  136. package/src/features/document/body.js +263 -0
  137. package/src/features/document/character-format.d.ts +413 -0
  138. package/src/features/document/character-format.js +2054 -0
  139. package/src/features/document/color.d.ts +178 -0
  140. package/src/features/document/color.js +495 -0
  141. package/src/features/document/document.d.ts +410 -0
  142. package/src/features/document/document.js +1049 -0
  143. package/src/features/document/element-type.d.ts +68 -0
  144. package/src/features/document/element-type.js +133 -0
  145. package/src/features/document/entity-type.d.ts +92 -0
  146. package/src/features/document/entity-type.js +93 -0
  147. package/src/features/document/feature-block.d.ts +16 -0
  148. package/src/features/document/feature-block.js +0 -0
  149. package/src/features/document/feature-inline.d.ts +13 -0
  150. package/src/features/document/feature-inline.js +0 -0
  151. package/src/features/document/feature-multi-package-part.d.ts +19 -0
  152. package/src/features/document/feature-multi-package-part.js +8 -0
  153. package/src/features/document/feature-package-level-part.d.ts +18 -0
  154. package/src/features/document/feature-package-level-part.js +8 -0
  155. package/src/features/document/feature-package-part.d.ts +14 -0
  156. package/src/features/document/feature-package-part.js +0 -0
  157. package/src/features/document/feature-run-leaf.d.ts +9 -0
  158. package/src/features/document/feature-run-leaf.js +0 -0
  159. package/src/features/document/headers-footers.d.ts +206 -0
  160. package/src/features/document/headers-footers.js +384 -0
  161. package/src/features/document/index.d.ts +41 -0
  162. package/src/features/document/index.js +34 -0
  163. package/src/features/document/length.d.ts +152 -0
  164. package/src/features/document/length.js +245 -0
  165. package/src/features/document/load-options.d.ts +14 -0
  166. package/src/features/document/load-options.js +0 -0
  167. package/src/features/document/locale-ids.d.ts +227 -0
  168. package/src/features/document/locale-ids.js +485 -0
  169. package/src/features/document/on-off.d.ts +9 -0
  170. package/src/features/document/on-off.js +27 -0
  171. package/src/features/document/page-setup.d.ts +339 -0
  172. package/src/features/document/page-setup.js +244 -0
  173. package/src/features/document/paragraph-format.d.ts +880 -0
  174. package/src/features/document/paragraph-format.js +2807 -0
  175. package/src/features/document/paragraph-item-collection.d.ts +162 -0
  176. package/src/features/document/paragraph-item-collection.js +363 -0
  177. package/src/features/document/paragraph-item.d.ts +83 -0
  178. package/src/features/document/paragraph-item.js +103 -0
  179. package/src/features/document/paragraph.d.ts +435 -0
  180. package/src/features/document/paragraph.js +888 -0
  181. package/src/features/document/run.d.ts +1 -0
  182. package/src/features/document/run.js +768 -0
  183. package/src/features/document/section-partition-flatten.d.ts +124 -0
  184. package/src/features/document/section-partition-flatten.js +217 -0
  185. package/src/features/document/section-properties-model.d.ts +13 -0
  186. package/src/features/document/section-properties-model.js +0 -0
  187. package/src/features/document/section.d.ts +93 -0
  188. package/src/features/document/section.js +178 -0
  189. package/src/features/document/sections.d.ts +103 -0
  190. package/src/features/document/sections.js +217 -0
  191. package/src/features/document/sub-super-script.d.ts +23 -0
  192. package/src/features/document/sub-super-script.js +43 -0
  193. package/src/features/document/text-range.d.ts +445 -0
  194. package/src/features/document/text-range.js +1156 -0
  195. package/src/features/document/typed-body-collections.d.ts +162 -0
  196. package/src/features/document/typed-body-collections.js +371 -0
  197. package/src/features/document/underline-style.d.ts +38 -0
  198. package/src/features/document/underline-style.js +126 -0
  199. package/src/features/document/units.d.ts +8 -0
  200. package/src/features/document/units.js +7 -0
  201. package/src/features/document/wml.d.ts +16 -0
  202. package/src/features/document/wml.js +67 -0
  203. package/src/features/drawing/authoring.d.ts +27 -0
  204. package/src/features/drawing/authoring.js +271 -0
  205. package/src/features/drawing/body-pr.d.ts +271 -0
  206. package/src/features/drawing/body-pr.js +663 -0
  207. package/src/features/drawing/drawing-shape.d.ts +1192 -0
  208. package/src/features/drawing/drawing-shape.js +3239 -0
  209. package/src/features/drawing/encode-builders.d.ts +176 -0
  210. package/src/features/drawing/encode-builders.js +390 -0
  211. package/src/features/drawing/fill-format.d.ts +52 -0
  212. package/src/features/drawing/fill-format.js +124 -0
  213. package/src/features/drawing/host-codec.d.ts +632 -0
  214. package/src/features/drawing/host-codec.js +2595 -0
  215. package/src/features/drawing/index.d.ts +13 -0
  216. package/src/features/drawing/index.js +33 -0
  217. package/src/features/drawing/line-format.d.ts +76 -0
  218. package/src/features/drawing/line-format.js +343 -0
  219. package/src/features/drawing/parse-register.d.ts +50 -0
  220. package/src/features/drawing/parse-register.js +257 -0
  221. package/src/features/drawing/residual-utils.d.ts +47 -0
  222. package/src/features/drawing/residual-utils.js +290 -0
  223. package/src/features/drawing/shape-types.d.ts +433 -0
  224. package/src/features/drawing/shape-types.js +437 -0
  225. package/src/features/drawing/sp-pr.d.ts +396 -0
  226. package/src/features/drawing/sp-pr.js +610 -0
  227. package/src/features/drawing/text-frame.d.ts +90 -0
  228. package/src/features/drawing/text-frame.js +152 -0
  229. package/src/features/drawing/types.d.ts +352 -0
  230. package/src/features/drawing/types.js +60 -0
  231. package/src/features/drawing/wrap-format.d.ts +62 -0
  232. package/src/features/drawing/wrap-format.js +114 -0
  233. package/src/features/editable-ranges/index.d.ts +494 -0
  234. package/src/features/editable-ranges/index.js +1348 -0
  235. package/src/features/fields/index.d.ts +428 -0
  236. package/src/features/fields/index.js +2148 -0
  237. package/src/features/fields/paragraph-field.d.ts +187 -0
  238. package/src/features/fields/paragraph-field.js +692 -0
  239. package/src/features/font-table/font-substitution-table.d.ts +75 -0
  240. package/src/features/font-table/font-substitution-table.js +257 -0
  241. package/src/features/font-table/font-table-entry.d.ts +255 -0
  242. package/src/features/font-table/font-table-entry.js +823 -0
  243. package/src/features/font-table/font-table.d.ts +128 -0
  244. package/src/features/font-table/font-table.js +313 -0
  245. package/src/features/font-table/index.d.ts +27 -0
  246. package/src/features/font-table/index.js +48 -0
  247. package/src/features/glossary/index.d.ts +97 -0
  248. package/src/features/glossary/index.js +286 -0
  249. package/src/features/headers-footers/index.d.ts +506 -0
  250. package/src/features/headers-footers/index.js +1666 -0
  251. package/src/features/hyperlinks/index.d.ts +230 -0
  252. package/src/features/hyperlinks/index.js +685 -0
  253. package/src/features/images/caption-authoring-api.d.ts +33 -0
  254. package/src/features/images/caption-authoring-api.js +33 -0
  255. package/src/features/images/caption-enums.d.ts +52 -0
  256. package/src/features/images/caption-enums.js +141 -0
  257. package/src/features/images/caption-host.d.ts +10 -0
  258. package/src/features/images/caption-host.js +21 -0
  259. package/src/features/images/captions.d.ts +13 -0
  260. package/src/features/images/captions.js +142 -0
  261. package/src/features/images/host-codec.d.ts +103 -0
  262. package/src/features/images/host-codec.js +720 -0
  263. package/src/features/images/image-sniff.d.ts +21 -0
  264. package/src/features/images/image-sniff.js +71 -0
  265. package/src/features/images/index.d.ts +506 -0
  266. package/src/features/images/index.js +1429 -0
  267. package/src/features/images/layout-types.d.ts +232 -0
  268. package/src/features/images/layout-types.js +294 -0
  269. package/src/features/images/public-entry.d.ts +9 -0
  270. package/src/features/images/public-entry.js +9 -0
  271. package/src/features/index.d.ts +35 -0
  272. package/src/features/index.js +36 -0
  273. package/src/features/mail-merge/index.d.ts +113 -0
  274. package/src/features/mail-merge/index.js +315 -0
  275. package/src/features/notes/index.d.ts +573 -0
  276. package/src/features/notes/index.js +1725 -0
  277. package/src/features/numbering/abstract-numbering.d.ts +90 -0
  278. package/src/features/numbering/abstract-numbering.js +292 -0
  279. package/src/features/numbering/index.d.ts +182 -0
  280. package/src/features/numbering/index.js +668 -0
  281. package/src/features/numbering/list-format.d.ts +158 -0
  282. package/src/features/numbering/list-format.js +590 -0
  283. package/src/features/numbering/list-string.d.ts +7 -0
  284. package/src/features/numbering/list-string.js +423 -0
  285. package/src/features/numbering/list-style.d.ts +204 -0
  286. package/src/features/numbering/list-style.js +1084 -0
  287. package/src/features/numbering/numbering-instance.d.ts +101 -0
  288. package/src/features/numbering/numbering-instance.js +329 -0
  289. package/src/features/numbering/numbering-level.d.ts +118 -0
  290. package/src/features/numbering/numbering-level.js +501 -0
  291. package/src/features/numbering/picture-bullet.d.ts +34 -0
  292. package/src/features/numbering/picture-bullet.js +88 -0
  293. package/src/features/ole-object/catalog.d.ts +300 -0
  294. package/src/features/ole-object/catalog.js +908 -0
  295. package/src/features/ole-object/index.d.ts +526 -0
  296. package/src/features/ole-object/index.js +1421 -0
  297. package/src/features/ole-object/relationship.d.ts +27 -0
  298. package/src/features/ole-object/relationship.js +27 -0
  299. package/src/features/ole-object/typed-dom.d.ts +186 -0
  300. package/src/features/ole-object/typed-dom.js +595 -0
  301. package/src/features/properties/index.d.ts +205 -0
  302. package/src/features/properties/index.js +549 -0
  303. package/src/features/revisions/index.d.ts +204 -0
  304. package/src/features/revisions/index.js +695 -0
  305. package/src/features/sections/column-collection.d.ts +119 -0
  306. package/src/features/sections/column-collection.js +478 -0
  307. package/src/features/sections/column.d.ts +15 -0
  308. package/src/features/sections/column.js +37 -0
  309. package/src/features/sections/index.d.ts +91 -0
  310. package/src/features/sections/index.js +1096 -0
  311. package/src/features/sections/margins.d.ts +40 -0
  312. package/src/features/sections/margins.js +105 -0
  313. package/src/features/sections/page-number-style.d.ts +21 -0
  314. package/src/features/sections/page-number-style.js +62 -0
  315. package/src/features/sections/page-orientation.d.ts +10 -0
  316. package/src/features/sections/page-orientation.js +10 -0
  317. package/src/features/sections/page-setup.d.ts +435 -0
  318. package/src/features/sections/page-setup.js +1479 -0
  319. package/src/features/sections/page-size.d.ts +59 -0
  320. package/src/features/sections/page-size.js +68 -0
  321. package/src/features/sections/section-break-code.d.ts +27 -0
  322. package/src/features/sections/section-break-code.js +60 -0
  323. package/src/features/sections/section-document-association.d.ts +18 -0
  324. package/src/features/sections/section-document-association.js +31 -0
  325. package/src/features/sections/section-validation.d.ts +43 -0
  326. package/src/features/sections/section-validation.js +97 -0
  327. package/src/features/settings/attached-template.d.ts +35 -0
  328. package/src/features/settings/attached-template.js +98 -0
  329. package/src/features/settings/compat-settings.d.ts +216 -0
  330. package/src/features/settings/compat-settings.js +508 -0
  331. package/src/features/settings/document-background.d.ts +59 -0
  332. package/src/features/settings/document-background.js +131 -0
  333. package/src/features/settings/document-protection.d.ts +65 -0
  334. package/src/features/settings/document-protection.js +157 -0
  335. package/src/features/settings/document-settings-facades.d.ts +108 -0
  336. package/src/features/settings/document-settings-facades.js +312 -0
  337. package/src/features/settings/document-settings-values.d.ts +43 -0
  338. package/src/features/settings/document-settings-values.js +60 -0
  339. package/src/features/settings/footnote-properties.d.ts +211 -0
  340. package/src/features/settings/footnote-properties.js +591 -0
  341. package/src/features/settings/index.d.ts +356 -0
  342. package/src/features/settings/index.js +829 -0
  343. package/src/features/settings/settings-children.d.ts +151 -0
  344. package/src/features/settings/settings-children.js +505 -0
  345. package/src/features/settings/web-settings.d.ts +88 -0
  346. package/src/features/settings/web-settings.js +227 -0
  347. package/src/features/settings/zoom.d.ts +79 -0
  348. package/src/features/settings/zoom.js +147 -0
  349. package/src/features/styles/builtin-catalog.d.ts +159 -0
  350. package/src/features/styles/builtin-catalog.js +963 -0
  351. package/src/features/styles/builtin-resolver.d.ts +49 -0
  352. package/src/features/styles/builtin-resolver.js +165 -0
  353. package/src/features/styles/default-styles.d.ts +37 -0
  354. package/src/features/styles/default-styles.js +186 -0
  355. package/src/features/styles/default-theme.d.ts +13 -0
  356. package/src/features/styles/default-theme.js +13 -0
  357. package/src/features/styles/doc-defaults.d.ts +58 -0
  358. package/src/features/styles/doc-defaults.js +178 -0
  359. package/src/features/styles/formatting-resolver.d.ts +27 -0
  360. package/src/features/styles/formatting-resolver.js +72 -0
  361. package/src/features/styles/index.d.ts +256 -0
  362. package/src/features/styles/index.js +1325 -0
  363. package/src/features/styles/latent-styles.d.ts +68 -0
  364. package/src/features/styles/latent-styles.js +305 -0
  365. package/src/features/styles/paragraph-properties.d.ts +71 -0
  366. package/src/features/styles/paragraph-properties.js +237 -0
  367. package/src/features/styles/run-properties.d.ts +93 -0
  368. package/src/features/styles/run-properties.js +516 -0
  369. package/src/features/styles/style-base.d.ts +402 -0
  370. package/src/features/styles/style-base.js +1026 -0
  371. package/src/features/styles/style-collection.d.ts +264 -0
  372. package/src/features/styles/style-collection.js +714 -0
  373. package/src/features/styles/style-format-bridge.d.ts +64 -0
  374. package/src/features/styles/style-format-bridge.js +100 -0
  375. package/src/features/styles/style.d.ts +84 -0
  376. package/src/features/styles/style.js +375 -0
  377. package/src/features/styles/styles-with-effects.d.ts +71 -0
  378. package/src/features/styles/styles-with-effects.js +180 -0
  379. package/src/features/styles/table-style.d.ts +272 -0
  380. package/src/features/styles/table-style.js +1226 -0
  381. package/src/features/styles/theme.d.ts +126 -0
  382. package/src/features/styles/theme.js +377 -0
  383. package/src/features/tables/border-style-map.d.ts +24 -0
  384. package/src/features/tables/border-style-map.js +81 -0
  385. package/src/features/tables/borders.d.ts +126 -0
  386. package/src/features/tables/borders.js +527 -0
  387. package/src/features/tables/collections.d.ts +113 -0
  388. package/src/features/tables/collections.js +261 -0
  389. package/src/features/tables/format.d.ts +208 -0
  390. package/src/features/tables/format.js +716 -0
  391. package/src/features/tables/index.d.ts +597 -0
  392. package/src/features/tables/index.js +2386 -0
  393. package/src/features/tables/paddings.d.ts +41 -0
  394. package/src/features/tables/paddings.js +97 -0
  395. package/src/features/tables/tbl-pr-positioning.d.ts +27 -0
  396. package/src/features/tables/tbl-pr-positioning.js +178 -0
  397. package/src/features/tables/tbl-pr.d.ts +528 -0
  398. package/src/features/tables/tbl-pr.js +1208 -0
  399. package/src/features/tables/tc-pr.d.ts +168 -0
  400. package/src/features/tables/tc-pr.js +553 -0
  401. package/src/features/tables/tr-pr.d.ts +60 -0
  402. package/src/features/tables/tr-pr.js +215 -0
  403. package/src/features/watermark/detect.d.ts +76 -0
  404. package/src/features/watermark/detect.js +219 -0
  405. package/src/features/watermark/index.d.ts +28 -0
  406. package/src/features/watermark/index.js +91 -0
  407. package/src/features/watermark/logical-store.d.ts +29 -0
  408. package/src/features/watermark/logical-store.js +31 -0
  409. package/src/features/watermark/model.d.ts +285 -0
  410. package/src/features/watermark/model.js +597 -0
  411. package/src/features/watermark/parse.d.ts +84 -0
  412. package/src/features/watermark/parse.js +815 -0
  413. package/src/features/watermark/serialize.d.ts +98 -0
  414. package/src/features/watermark/serialize.js +1517 -0
  415. package/src/global.js +1 -0
  416. package/src/index.d.ts +2 -0
  417. package/src/index.js +2 -0
@@ -0,0 +1,138 @@
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ };
8
+ return function (d, b) {
9
+ extendStatics(d, b);
10
+ function __() { this.constructor = d; }
11
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
12
+ };
13
+ })();
14
+ /**
15
+ * Base error for every library failure. Consumers switch on {@link DocxError.code}, never on message text.
16
+ *
17
+ * @private
18
+ */
19
+ var DocxError = /** @class */ (function (_super) {
20
+ __extends(DocxError, _super);
21
+ function DocxError(code, message, options) {
22
+ var _newTarget = this.constructor;
23
+ var _this = _super.call(this, message) || this;
24
+ _this.name = _newTarget.name;
25
+ _this.code = code;
26
+ if (options !== undefined && options.cause !== undefined) {
27
+ _this.cause = options.cause;
28
+ }
29
+ Object.setPrototypeOf(_this, _newTarget.prototype);
30
+ return _this;
31
+ }
32
+ return DocxError;
33
+ }(Error));
34
+ export { DocxError };
35
+ /**
36
+ * ZIP or OPC package problems.
37
+ *
38
+ * @private
39
+ */
40
+ var PackageError = /** @class */ (function (_super) {
41
+ __extends(PackageError, _super);
42
+ function PackageError() {
43
+ return _super !== null && _super.apply(this, arguments) || this;
44
+ }
45
+ return PackageError;
46
+ }(DocxError));
47
+ export { PackageError };
48
+ /**
49
+ * Well-formedness, DTD, or XML limit failures.
50
+ *
51
+ * @private
52
+ */
53
+ var XmlError = /** @class */ (function (_super) {
54
+ __extends(XmlError, _super);
55
+ function XmlError() {
56
+ return _super !== null && _super.apply(this, arguments) || this;
57
+ }
58
+ return XmlError;
59
+ }(DocxError));
60
+ export { XmlError };
61
+ /**
62
+ * Security-limit and untrusted-input failures.
63
+ *
64
+ * @private
65
+ */
66
+ var SecurityError = /** @class */ (function (_super) {
67
+ __extends(SecurityError, _super);
68
+ function SecurityError() {
69
+ return _super !== null && _super.apply(this, arguments) || this;
70
+ }
71
+ return SecurityError;
72
+ }(DocxError));
73
+ export { SecurityError };
74
+ /**
75
+ * Markup Compatibility MustUnderstand and related failures.
76
+ *
77
+ * @private
78
+ */
79
+ var MarkupCompatibilityError = /** @class */ (function (_super) {
80
+ __extends(MarkupCompatibilityError, _super);
81
+ function MarkupCompatibilityError() {
82
+ return _super !== null && _super.apply(this, arguments) || this;
83
+ }
84
+ return MarkupCompatibilityError;
85
+ }(DocxError));
86
+ export { MarkupCompatibilityError };
87
+ /**
88
+ * Exhaustiveness failure for a content union the compiler should have rejected.
89
+ *
90
+ * @private
91
+ */
92
+ var UnsupportedContentError = /** @class */ (function (_super) {
93
+ __extends(UnsupportedContentError, _super);
94
+ function UnsupportedContentError(message, options) {
95
+ return _super.call(this, 'content/unsupported', message, options) || this;
96
+ }
97
+ return UnsupportedContentError;
98
+ }(DocxError));
99
+ export { UnsupportedContentError };
100
+ /**
101
+ * Mutation of an object after it was removed from its document.
102
+ *
103
+ * @private
104
+ */
105
+ var DetachedObjectError = /** @class */ (function (_super) {
106
+ __extends(DetachedObjectError, _super);
107
+ function DetachedObjectError(message, options) {
108
+ return _super.call(this, 'model/detached-object', message, options) || this;
109
+ }
110
+ return DetachedObjectError;
111
+ }(DocxError));
112
+ export { DetachedObjectError };
113
+ /**
114
+ * API argument is missing or empty where a value is required.
115
+ *
116
+ * @private
117
+ */
118
+ var InvalidArgumentError = /** @class */ (function (_super) {
119
+ __extends(InvalidArgumentError, _super);
120
+ function InvalidArgumentError(message, options) {
121
+ return _super.call(this, 'argument/invalid', message, options) || this;
122
+ }
123
+ return InvalidArgumentError;
124
+ }(DocxError));
125
+ export { InvalidArgumentError };
126
+ /**
127
+ * Underlying filesystem or byte I/O failure wrapped for consumers.
128
+ *
129
+ * @private
130
+ */
131
+ var IoError = /** @class */ (function (_super) {
132
+ __extends(IoError, _super);
133
+ function IoError(message, options) {
134
+ return _super.call(this, 'io/error', message, options) || this;
135
+ }
136
+ return IoError;
137
+ }(DocxError));
138
+ export { IoError };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Stable machine-readable error identifiers (`area/reason`).
3
+ *
4
+ * Consumers switch on {@link DocxError.code}; this union is public API (R7.2).
5
+ *
6
+ * @private
7
+ */
8
+ export declare type DocxErrorCode = 'content/invalid-baseline-alignment' | 'content/invalid-shading-pattern' | 'content/invalid-text-direction' | 'content/invalid-bookmark' | 'content/invalid-editable-range' | 'content/invalid-break' | 'content/invalid-chart' | 'content/invalid-field' | 'content/invalid-header-footer-reference' | 'content/invalid-image' | 'content/invalid-image-caption-format' | 'content/invalid-image-caption-name' | 'content/invalid-image-caption-position' | 'content/invalid-ink' | 'content/invalid-ole-object' | 'content/invalid-shape' | 'content/invalid-num-id' | 'content/invalid-list-level' | 'content/invalid-style-id' | 'content/no-preceding-list' | 'content/not-in-list' | 'content/unresolved-numbering-style' | 'content/unknown-bookmark' | 'content/unknown-editable-range' | 'content/unknown-comment' | 'content/unknown-image' | 'content/unknown-ink-part' | 'content/unknown-note' | 'content/unsupported' | 'feature/invalid-id' | 'feature/not-registered' | 'argument/invalid' | 'io/error' | 'model/detached-object' | 'package/duplicate-zip-entry' | 'package/encrypted' | 'package/invalid-content-types' | 'package/invalid-document-part' | 'package/invalid-part-name' | 'package/invalid-relationships' | 'package/invalid-relationship-id' | 'package/invalid-zip' | 'package/missing-part' | 'security/entry-count' | 'security/limit-exceeded' | 'security/part-size' | 'security/relationship-count' | 'security/total-uncompressed' | 'security/zip-bomb' | 'styles/circular-based-on' | 'styles/circular-link' | 'styles/duplicate-style' | 'styles/invalid-based-on' | 'styles/invalid-link' | 'styles/invalid-type-for-target' | 'styles/undefined-style' | 'xml/dtd-forbidden' | 'xml/malformed' | 'xml/markup-compatibility';
File without changes
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Typed errors thrown by the core library.
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ /**
7
+ * @private
8
+ */
9
+ export { DetachedObjectError, DocxError, InvalidArgumentError, IoError, MarkupCompatibilityError, PackageError, SecurityError, UnsupportedContentError, XmlError, } from './docx-error';
10
+ export { DocxErrorCode } from './error-codes';
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Typed errors thrown by the core library.
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ /**
7
+ * @private
8
+ */
9
+ export { DetachedObjectError, DocxError, InvalidArgumentError, IoError, MarkupCompatibilityError, PackageError, SecurityError, UnsupportedContentError, XmlError, } from './docx-error';
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Core package infrastructure: errors, registry, OPC, XML, zip,
3
+ * Markup Compatibility, and preservation.
4
+ *
5
+ */
6
+ export * from './errors/index';
7
+ export * from './registry/index';
8
+ export * from './opc/index';
9
+ export * from './xml/index';
10
+ export * from './zip/index';
11
+ export * from './mc/index';
12
+ export * from './preservation/index';
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Core package infrastructure: errors, registry, OPC, XML, zip,
3
+ * Markup Compatibility, and preservation.
4
+ *
5
+ */
6
+ export * from './errors/index';
7
+ export * from './registry/index';
8
+ export * from './opc/index';
9
+ export * from './xml/index';
10
+ export * from './zip/index';
11
+ export * from './mc/index';
12
+ export * from './preservation/index';
@@ -0,0 +1,7 @@
1
+ import { OpenXmlElement } from '../xml/index';
2
+ export declare function isMarkupCompatibilityElement(element: OpenXmlElement, localName: string): boolean;
3
+ export declare function isAlternateContent(element: OpenXmlElement): boolean;
4
+ /**
5
+ * Structural checks from ECMA-376-3 §7.5–§7.7 without flattening the tree.
6
+ */
7
+ export declare function assertAlternateContentShape(element: OpenXmlElement): void;
@@ -0,0 +1,67 @@
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 { MarkupCompatibilityError } from '../errors/docx-error';
12
+ import { MARKUP_COMPATIBILITY_NAMESPACE } from './namespaces';
13
+ export function isMarkupCompatibilityElement(element, localName) {
14
+ return element.namespaceUri === MARKUP_COMPATIBILITY_NAMESPACE && element.localName === localName;
15
+ }
16
+ export function isAlternateContent(element) {
17
+ return isMarkupCompatibilityElement(element, 'AlternateContent');
18
+ }
19
+ function childElements(element) {
20
+ return element.children.filter(function (c) { return c.kind === 'element'; });
21
+ }
22
+ /**
23
+ * Structural checks from ECMA-376-3 §7.5–§7.7 without flattening the tree.
24
+ */
25
+ export function assertAlternateContentShape(element) {
26
+ var e_1, _a;
27
+ if (!isAlternateContent(element)) {
28
+ return;
29
+ }
30
+ var mcChildren = childElements(element).filter(function (c) { return c.namespaceUri === MARKUP_COMPATIBILITY_NAMESPACE; });
31
+ var seenFallback = false;
32
+ var choiceCount = 0;
33
+ try {
34
+ for (var mcChildren_1 = __values(mcChildren), mcChildren_1_1 = mcChildren_1.next(); !mcChildren_1_1.done; mcChildren_1_1 = mcChildren_1.next()) {
35
+ var child = mcChildren_1_1.value;
36
+ if (child.localName === 'Choice') {
37
+ if (seenFallback) {
38
+ throw new MarkupCompatibilityError('xml/markup-compatibility', 'Choice must not follow Fallback (ECMA-376-3 §7.5)');
39
+ }
40
+ var requires = child.attributes.find(function (a) { return a.localName === 'Requires' && a.namespaceUri === ''; });
41
+ if (requires === undefined || requires.value.trim().length === 0) {
42
+ throw new MarkupCompatibilityError('xml/markup-compatibility', 'Choice Requires is required and must list one or more prefixes (ECMA-376-3 §7.6)');
43
+ }
44
+ choiceCount += 1;
45
+ continue;
46
+ }
47
+ if (child.localName === 'Fallback') {
48
+ if (seenFallback) {
49
+ throw new MarkupCompatibilityError('xml/markup-compatibility', 'AlternateContent may have at most one Fallback (ECMA-376-3 §7.5)');
50
+ }
51
+ seenFallback = true;
52
+ continue;
53
+ }
54
+ throw new MarkupCompatibilityError('xml/markup-compatibility', "Unexpected Markup Compatibility child " + child.localName + " of AlternateContent (ECMA-376-3 \u00A77.5)");
55
+ }
56
+ }
57
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
58
+ finally {
59
+ try {
60
+ if (mcChildren_1_1 && !mcChildren_1_1.done && (_a = mcChildren_1.return)) _a.call(mcChildren_1);
61
+ }
62
+ finally { if (e_1) throw e_1.error; }
63
+ }
64
+ if (choiceCount < 1) {
65
+ throw new MarkupCompatibilityError('xml/markup-compatibility', 'AlternateContent shall contain one or more Choice children (ECMA-376-3 §7.5)');
66
+ }
67
+ }
@@ -0,0 +1,24 @@
1
+ import { OpenXmlElement } from '../xml/index';
2
+ export interface BoundPrefix {
3
+ readonly prefix: string;
4
+ readonly namespaceUri: string;
5
+ }
6
+ export interface ProcessContentToken {
7
+ readonly prefix: string;
8
+ readonly localNameOrStar: string;
9
+ readonly namespaceUri: string;
10
+ }
11
+ export interface MarkupCompatibilityAttributes {
12
+ readonly ignorable: ReadonlyArray<BoundPrefix>;
13
+ readonly mustUnderstand: ReadonlyArray<BoundPrefix>;
14
+ readonly processContent: ReadonlyArray<ProcessContentToken>;
15
+ readonly preserveElements: ReadonlyArray<BoundPrefix>;
16
+ readonly preserveAttributes: ReadonlyArray<BoundPrefix>;
17
+ }
18
+ /**
19
+ * Read MC attributes on one element. Prefixes are resolved with the in-scope map
20
+ * (ECMA-376-3 §7.2–§7.4). PreserveElements/PreserveAttributes are treated as
21
+ * prefix lists when present; they are not defined in the local Part 3 5th-edition
22
+ * text (see TASK-1007 notes).
23
+ */
24
+ export declare function readMarkupCompatibilityAttributes(element: OpenXmlElement, scope: ReadonlyMap<string, string>): MarkupCompatibilityAttributes;
@@ -0,0 +1,82 @@
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 { MarkupCompatibilityError } from '../errors/docx-error';
12
+ import { MARKUP_COMPATIBILITY_NAMESPACE } from './namespaces';
13
+ function mcAttr(element, localName) {
14
+ return element.attributes.find(function (a) { return a.localName === localName && a.namespaceUri === MARKUP_COMPATIBILITY_NAMESPACE; });
15
+ }
16
+ function splitTokens(value) {
17
+ return value.trim().length === 0 ? [] : value.trim().split(/\s+/);
18
+ }
19
+ function bindPrefix(prefix, scope, what) {
20
+ var namespaceUri = scope.get(prefix);
21
+ if (namespaceUri === undefined) {
22
+ throw new MarkupCompatibilityError('xml/markup-compatibility', what + " prefix \"" + prefix + "\" is not bound to an in-scope namespace (ECMA-376-3 \u00A77.2)");
23
+ }
24
+ if (namespaceUri === MARKUP_COMPATIBILITY_NAMESPACE) {
25
+ throw new MarkupCompatibilityError('xml/markup-compatibility', what + " prefix \"" + prefix + "\" is bound to the Markup Compatibility namespace");
26
+ }
27
+ return { prefix: prefix, namespaceUri: namespaceUri };
28
+ }
29
+ function bindPrefixList(value, scope, what) {
30
+ if (value === undefined) {
31
+ return [];
32
+ }
33
+ return splitTokens(value).map(function (prefix) { return bindPrefix(prefix, scope, what); });
34
+ }
35
+ function parseProcessContent(value, scope) {
36
+ var e_1, _a;
37
+ if (value === undefined) {
38
+ return [];
39
+ }
40
+ var tokens = [];
41
+ try {
42
+ for (var _b = __values(splitTokens(value)), _c = _b.next(); !_c.done; _c = _b.next()) {
43
+ var token = _c.value;
44
+ var colon = token.indexOf(':');
45
+ if (colon <= 0 || colon === token.length - 1) {
46
+ throw new MarkupCompatibilityError('xml/markup-compatibility', "ProcessContent token must be prefix:local or prefix:* (ECMA-376-3 \u00A77.3), got \"" + token + "\"");
47
+ }
48
+ var prefix = token.slice(0, colon);
49
+ var localNameOrStar = token.slice(colon + 1);
50
+ var bound = bindPrefix(prefix, scope, 'ProcessContent');
51
+ tokens.push({
52
+ prefix: prefix,
53
+ localNameOrStar: localNameOrStar,
54
+ namespaceUri: bound.namespaceUri,
55
+ });
56
+ }
57
+ }
58
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
59
+ finally {
60
+ try {
61
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
62
+ }
63
+ finally { if (e_1) throw e_1.error; }
64
+ }
65
+ return tokens;
66
+ }
67
+ /**
68
+ * Read MC attributes on one element. Prefixes are resolved with the in-scope map
69
+ * (ECMA-376-3 §7.2–§7.4). PreserveElements/PreserveAttributes are treated as
70
+ * prefix lists when present; they are not defined in the local Part 3 5th-edition
71
+ * text (see TASK-1007 notes).
72
+ */
73
+ export function readMarkupCompatibilityAttributes(element, scope) {
74
+ var __ts33_0, __ts33_1, __ts33_2, __ts33_3, __ts33_4;
75
+ return {
76
+ ignorable: bindPrefixList(((__ts33_0 = mcAttr(element, 'Ignorable')), __ts33_0 == null ? undefined : __ts33_0.value), scope, 'Ignorable'),
77
+ mustUnderstand: bindPrefixList(((__ts33_1 = mcAttr(element, 'MustUnderstand')), __ts33_1 == null ? undefined : __ts33_1.value), scope, 'MustUnderstand'),
78
+ processContent: parseProcessContent(((__ts33_2 = mcAttr(element, 'ProcessContent')), __ts33_2 == null ? undefined : __ts33_2.value), scope),
79
+ preserveElements: bindPrefixList(((__ts33_3 = mcAttr(element, 'PreserveElements')), __ts33_3 == null ? undefined : __ts33_3.value), scope, 'PreserveElements'),
80
+ preserveAttributes: bindPrefixList(((__ts33_4 = mcAttr(element, 'PreserveAttributes')), __ts33_4 == null ? undefined : __ts33_4.value), scope, 'PreserveAttributes'),
81
+ };
82
+ }
@@ -0,0 +1,7 @@
1
+ export { MARKUP_COMPATIBILITY_NAMESPACE } from './namespaces';
2
+ export { inScopeNamespaces } from './scope';
3
+ export { readMarkupCompatibilityAttributes } from './attributes';
4
+ export { BoundPrefix, MarkupCompatibilityAttributes, ProcessContentToken, } from './attributes';
5
+ export { assertAlternateContentShape, isAlternateContent, isMarkupCompatibilityElement, } from './alternate-content';
6
+ export { inspectMarkupCompatibility, MarkupConformance } from './inspect';
7
+ export { InspectMarkupCompatibilityOptions } from './inspect';
@@ -0,0 +1,5 @@
1
+ export { MARKUP_COMPATIBILITY_NAMESPACE } from './namespaces';
2
+ export { inScopeNamespaces } from './scope';
3
+ export { readMarkupCompatibilityAttributes } from './attributes';
4
+ export { assertAlternateContentShape, isAlternateContent, isMarkupCompatibilityElement, } from './alternate-content';
5
+ export { inspectMarkupCompatibility, MarkupConformance } from './inspect';
@@ -0,0 +1,16 @@
1
+ import { OpenXmlElement } from '../xml/index';
2
+ export declare const MarkupConformance: {
3
+ Lax: "lax";
4
+ Strict: "strict";
5
+ };
6
+ export declare type MarkupConformance = (typeof MarkupConformance)[keyof typeof MarkupConformance];
7
+ export interface InspectMarkupCompatibilityOptions {
8
+ readonly conformance?: MarkupConformance;
9
+ readonly understoodNamespaces?: ReadonlySet<string>;
10
+ }
11
+ /**
12
+ * Walk a preservation DOM: resolve MC prefixes, keep AlternateContent intact,
13
+ * and optionally fail MustUnderstand in strict mode. Never deletes Ignorable
14
+ * markup. Depth of MC elements is already counted by the XML parser.
15
+ */
16
+ export declare function inspectMarkupCompatibility(root: OpenXmlElement, options?: InspectMarkupCompatibilityOptions): void;
@@ -0,0 +1,148 @@
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
+ var __read = (this && this.__read) || function (o, n) {
12
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
13
+ if (!m) return o;
14
+ var i = m.call(o), r, ar = [], e;
15
+ try {
16
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
17
+ }
18
+ catch (error) { e = { error: error }; }
19
+ finally {
20
+ try {
21
+ if (r && !r.done && (m = i["return"])) m.call(i);
22
+ }
23
+ finally { if (e) throw e.error; }
24
+ }
25
+ return ar;
26
+ };
27
+ var __spread = (this && this.__spread) || function () {
28
+ for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
29
+ return ar;
30
+ };
31
+ import { MarkupCompatibilityError } from '../errors/docx-error';
32
+ import { readMarkupCompatibilityAttributes } from './attributes';
33
+ import { assertAlternateContentShape } from './alternate-content';
34
+ import { MARKUP_COMPATIBILITY_NAMESPACE } from './namespaces';
35
+ import { inScopeNamespaces } from './scope';
36
+ function bindRequires(choice, scope) {
37
+ var e_1, _a;
38
+ var requires = choice.attributes.find(function (a) { return a.localName === 'Requires' && a.namespaceUri === ''; });
39
+ if (requires === undefined) {
40
+ return;
41
+ }
42
+ var tokens = requires.value.trim().length === 0 ? [] : requires.value.trim().split(/\s+/);
43
+ try {
44
+ for (var tokens_1 = __values(tokens), tokens_1_1 = tokens_1.next(); !tokens_1_1.done; tokens_1_1 = tokens_1.next()) {
45
+ var prefix = tokens_1_1.value;
46
+ var namespaceUri = scope.get(prefix);
47
+ if (namespaceUri === undefined) {
48
+ throw new MarkupCompatibilityError('xml/markup-compatibility', "Choice Requires prefix \"" + prefix + "\" is not bound (ECMA-376-3 \u00A77.6)");
49
+ }
50
+ }
51
+ }
52
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
53
+ finally {
54
+ try {
55
+ if (tokens_1_1 && !tokens_1_1.done && (_a = tokens_1.return)) _a.call(tokens_1);
56
+ }
57
+ finally { if (e_1) throw e_1.error; }
58
+ }
59
+ }
60
+ export var MarkupConformance = {
61
+ Lax: 'lax',
62
+ Strict: 'strict',
63
+ };
64
+ function childElements(element) {
65
+ return element.children.filter(function (c) { return c.kind === 'element'; });
66
+ }
67
+ function walk(element, ancestors, ignorableUris, options) {
68
+ var e_2, _a, e_3, _b, e_4, _c, e_5, _d;
69
+ var chain = __spread(ancestors, [element]);
70
+ var scope = inScopeNamespaces(chain);
71
+ var mc = readMarkupCompatibilityAttributes(element, scope);
72
+ try {
73
+ for (var _e = __values(mc.ignorable), _f = _e.next(); !_f.done; _f = _e.next()) {
74
+ var item = _f.value;
75
+ ignorableUris.add(item.namespaceUri);
76
+ }
77
+ }
78
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
79
+ finally {
80
+ try {
81
+ if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
82
+ }
83
+ finally { if (e_2) throw e_2.error; }
84
+ }
85
+ try {
86
+ for (var _g = __values(mc.processContent), _h = _g.next(); !_h.done; _h = _g.next()) {
87
+ var token = _h.value;
88
+ if (!ignorableUris.has(token.namespaceUri)) {
89
+ throw new MarkupCompatibilityError('xml/markup-compatibility', "ProcessContent namespace " + token.namespaceUri + " is not declared Ignorable (ECMA-376-3 \u00A77.3)");
90
+ }
91
+ }
92
+ }
93
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
94
+ finally {
95
+ try {
96
+ if (_h && !_h.done && (_b = _g.return)) _b.call(_g);
97
+ }
98
+ finally { if (e_3) throw e_3.error; }
99
+ }
100
+ if (options.conformance === MarkupConformance.Strict) {
101
+ try {
102
+ for (var _j = __values(mc.mustUnderstand), _k = _j.next(); !_k.done; _k = _j.next()) {
103
+ var item = _k.value;
104
+ if (!options.understoodNamespaces.has(item.namespaceUri)) {
105
+ throw new MarkupCompatibilityError('xml/markup-compatibility', "MustUnderstand namespace is not understood: " + item.namespaceUri + " (ECMA-376-3 \u00A77.4)");
106
+ }
107
+ }
108
+ }
109
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
110
+ finally {
111
+ try {
112
+ if (_k && !_k.done && (_c = _j.return)) _c.call(_j);
113
+ }
114
+ finally { if (e_4) throw e_4.error; }
115
+ }
116
+ }
117
+ assertAlternateContentShape(element);
118
+ if (element.namespaceUri === MARKUP_COMPATIBILITY_NAMESPACE && element.localName === 'Choice') {
119
+ bindRequires(element, scope);
120
+ }
121
+ try {
122
+ for (var _l = __values(childElements(element)), _m = _l.next(); !_m.done; _m = _l.next()) {
123
+ var child = _m.value;
124
+ walk(child, chain, ignorableUris, options);
125
+ }
126
+ }
127
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
128
+ finally {
129
+ try {
130
+ if (_m && !_m.done && (_d = _l.return)) _d.call(_l);
131
+ }
132
+ finally { if (e_5) throw e_5.error; }
133
+ }
134
+ }
135
+ /**
136
+ * Walk a preservation DOM: resolve MC prefixes, keep AlternateContent intact,
137
+ * and optionally fail MustUnderstand in strict mode. Never deletes Ignorable
138
+ * markup. Depth of MC elements is already counted by the XML parser.
139
+ */
140
+ export function inspectMarkupCompatibility(root, options) {
141
+ var __ts33_0, __ts33_1;
142
+ var understood = new Set(((__ts33_0 = options == null ? undefined : options.understoodNamespaces), __ts33_0 != null ? __ts33_0 : []));
143
+ understood.add(MARKUP_COMPATIBILITY_NAMESPACE);
144
+ walk(root, [], new Set(), {
145
+ conformance: ((__ts33_1 = options == null ? undefined : options.conformance), __ts33_1 != null ? __ts33_1 : MarkupConformance.Lax),
146
+ understoodNamespaces: understood,
147
+ });
148
+ }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Markup Compatibility namespace (ECMA-376-3 examples in §7).
3
+ */
4
+ export declare const MARKUP_COMPATIBILITY_NAMESPACE = "http://schemas.openxmlformats.org/markup-compatibility/2006";
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Markup Compatibility namespace (ECMA-376-3 examples in §7).
3
+ */
4
+ export var MARKUP_COMPATIBILITY_NAMESPACE = 'http://schemas.openxmlformats.org/markup-compatibility/2006';
@@ -0,0 +1,6 @@
1
+ import { OpenXmlElement } from '../xml/index';
2
+ /**
3
+ * In-scope prefix → namespace URI, including the default namespace as `""`.
4
+ * Built-in `xml` / `xmlns` prefixes are always present.
5
+ */
6
+ export declare function inScopeNamespaces(chain: ReadonlyArray<OpenXmlElement>): ReadonlyMap<string, string>;
@@ -0,0 +1,47 @@
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, XMLNS_NAMESPACE } from '../xml/model';
12
+ /**
13
+ * In-scope prefix → namespace URI, including the default namespace as `""`.
14
+ * Built-in `xml` / `xmlns` prefixes are always present.
15
+ */
16
+ export function inScopeNamespaces(chain) {
17
+ var e_1, _a, e_2, _b;
18
+ var map = new Map();
19
+ map.set('xml', XML_NAMESPACE);
20
+ map.set('xmlns', XMLNS_NAMESPACE);
21
+ try {
22
+ for (var chain_1 = __values(chain), chain_1_1 = chain_1.next(); !chain_1_1.done; chain_1_1 = chain_1.next()) {
23
+ var element = chain_1_1.value;
24
+ try {
25
+ for (var _c = __values(element.namespaceDeclarations), _d = _c.next(); !_d.done; _d = _c.next()) {
26
+ var decl = _d.value;
27
+ map.set(decl.prefix, decl.namespaceUri);
28
+ }
29
+ }
30
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
31
+ finally {
32
+ try {
33
+ if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
34
+ }
35
+ finally { if (e_2) throw e_2.error; }
36
+ }
37
+ }
38
+ }
39
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
40
+ finally {
41
+ try {
42
+ if (chain_1_1 && !chain_1_1.done && (_a = chain_1.return)) _a.call(chain_1);
43
+ }
44
+ finally { if (e_1) throw e_1.error; }
45
+ }
46
+ return map;
47
+ }