@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,262 @@
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 { PackageError, SecurityError } from '../errors/docx-error';
12
+ import { resolveResourceLimits } from '../security/limits';
13
+ import { crc32 } from './crc32';
14
+ import { inflateRaw } from './deflate';
15
+ import { assertSafeZipItemName } from './names';
16
+ var SIG_EOCD = 0x06054b50;
17
+ var SIG_CFH = 0x02014b50;
18
+ var SIG_LFH = 0x04034b50;
19
+ var METHOD_STORE = 0;
20
+ var METHOD_DEFLATE = 8;
21
+ var FLAG_ENCRYPTED = 0x0001;
22
+ var FLAG_UTF8 = 0x0800;
23
+ var OLE_MAGIC = Uint8Array.of(0xd0, 0xcf, 0x11, 0xe0, 0xa1, 0xb1, 0x1a, 0xe1);
24
+ /** Word binary FIB identifier (`wIdent`) per [MS-DOC] §2.5.1. */
25
+ var WORD_FIB_WIDENT = 0xa5ec;
26
+ function isOleCompound(bytes) {
27
+ if (bytes.length < OLE_MAGIC.length) {
28
+ return false;
29
+ }
30
+ for (var i = 0; i < OLE_MAGIC.length; i += 1) {
31
+ if (bytes[i] !== OLE_MAGIC[i]) {
32
+ return false;
33
+ }
34
+ }
35
+ return true;
36
+ }
37
+ /**
38
+ * UTF-16LE directory/stream name scan (null-terminated CFB names).
39
+ * Used only to classify unsupported OLE containers — not a full CFB parser.
40
+ */
41
+ function containsUtf16LeAsciiName(bytes, asciiName) {
42
+ if (bytes.length < asciiName.length * 2) {
43
+ return false;
44
+ }
45
+ outer: for (var i = 0; i <= bytes.length - asciiName.length * 2; i += 1) {
46
+ for (var j = 0; j < asciiName.length; j += 1) {
47
+ var lo = bytes[i + j * 2];
48
+ var hi = bytes[i + j * 2 + 1];
49
+ if (lo !== asciiName.charCodeAt(j) || hi !== 0) {
50
+ continue outer;
51
+ }
52
+ }
53
+ return true;
54
+ }
55
+ return false;
56
+ }
57
+ /**
58
+ * True when a Word binary File Information Block (`wIdent` = 0xA5EC) appears
59
+ * at a typical CFB sector start (offset 512) or immediately after the header.
60
+ * [MS-DOC] §2.5.1 FibBase; [MS-CFB] sector 0 layout.
61
+ */
62
+ function hasWordBinaryFib(bytes) {
63
+ var e_1, _a;
64
+ var candidates = [512, OLE_MAGIC.length];
65
+ try {
66
+ for (var candidates_1 = __values(candidates), candidates_1_1 = candidates_1.next(); !candidates_1_1.done; candidates_1_1 = candidates_1.next()) {
67
+ var offset = candidates_1_1.value;
68
+ if (bytes.length < offset + 2) {
69
+ continue;
70
+ }
71
+ var view = new DataView(bytes.buffer, bytes.byteOffset + offset, 2);
72
+ if (view.getUint16(0, true) === WORD_FIB_WIDENT) {
73
+ return true;
74
+ }
75
+ }
76
+ }
77
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
78
+ finally {
79
+ try {
80
+ if (candidates_1_1 && !candidates_1_1.done && (_a = candidates_1.return)) _a.call(candidates_1);
81
+ }
82
+ finally { if (e_1) throw e_1.error; }
83
+ }
84
+ return false;
85
+ }
86
+ /**
87
+ * OLE compound files are never OPC ZIP. Distinguish common Office containers:
88
+ * - legacy binary Word ([MS-DOC] `WordDocument` stream / FIB) → invalid-zip
89
+ * - OFFCRYPTO encrypted package streams → encrypted
90
+ * - other OLE → invalid-zip (unsupported container)
91
+ *
92
+ * Product scope excludes DOC binary load and OFFCRYPTO decrypt
93
+ * (`docs/requirements/000-product-scope.md`, `opc-package.md`).
94
+ */
95
+ function rejectOleCompound(bytes) {
96
+ var hasWordDocumentStream = containsUtf16LeAsciiName(bytes, 'WordDocument');
97
+ var hasWordFib = hasWordBinaryFib(bytes);
98
+ var hasEncryptedPackage = containsUtf16LeAsciiName(bytes, 'EncryptedPackage');
99
+ var hasEncryptionInfo = containsUtf16LeAsciiName(bytes, 'EncryptionInfo');
100
+ if ((hasWordDocumentStream || hasWordFib) && !hasEncryptedPackage && !hasEncryptionInfo) {
101
+ throw new PackageError('package/invalid-zip', 'Input is a legacy binary Word document (OLE compound / .doc), not an OPC ZIP (.docx). Binary DOC is out of scope.');
102
+ }
103
+ if (hasEncryptedPackage || hasEncryptionInfo) {
104
+ throw new PackageError('package/encrypted', 'Input is an encrypted Office package (OLE compound / [MS-OFFCRYPTO]), not an OPC ZIP');
105
+ }
106
+ throw new PackageError('package/invalid-zip', 'Input is an OLE compound file, not an OPC ZIP (.docx)');
107
+ }
108
+ function findEocdOffset(view) {
109
+ var length = view.byteLength;
110
+ if (length < 22) {
111
+ throw new PackageError('package/invalid-zip', 'Buffer is too small to be a ZIP archive');
112
+ }
113
+ var minStart = Math.max(0, length - 22 - 65535);
114
+ for (var i = length - 22; i >= minStart; i -= 1) {
115
+ if (view.getUint32(i, true) !== SIG_EOCD) {
116
+ continue;
117
+ }
118
+ var commentLength = view.getUint16(i + 20, true);
119
+ if (i + 22 + commentLength === length) {
120
+ return i;
121
+ }
122
+ }
123
+ throw new PackageError('package/invalid-zip', 'ZIP end-of-central-directory signature not found');
124
+ }
125
+ function decodeItemName(bytes, utf8) {
126
+ return new TextDecoder(utf8 ? 'utf-8' : 'latin1').decode(bytes);
127
+ }
128
+ function readSlice(bytes, start, size, what) {
129
+ var end = start + size;
130
+ if (start < 0 || end > bytes.length) {
131
+ throw new PackageError('package/invalid-zip', "Truncated ZIP " + what);
132
+ }
133
+ return bytes.subarray(start, end);
134
+ }
135
+ function inflateEntry(compressed, method, limits, remainingTotal, name) {
136
+ var maxOutput = Math.min(limits.singlePartUncompressedSize, remainingTotal, compressed.length === 0
137
+ ? limits.singlePartUncompressedSize
138
+ : compressed.length * limits.compressionRatio);
139
+ if (maxOutput <= 0) {
140
+ throw new SecurityError('security/total-uncompressed', "Total uncompressed size limit hit at " + name);
141
+ }
142
+ if (method === METHOD_STORE) {
143
+ if (compressed.length > limits.singlePartUncompressedSize) {
144
+ throw new SecurityError('security/part-size', "Uncompressed entry " + name + " exceeds the single-part limit");
145
+ }
146
+ if (compressed.length > remainingTotal) {
147
+ throw new SecurityError('security/total-uncompressed', "Total uncompressed size limit hit at " + name);
148
+ }
149
+ return compressed.slice();
150
+ }
151
+ if (method !== METHOD_DEFLATE) {
152
+ throw new PackageError('package/invalid-zip', "ZIP item " + name + " uses compression method " + String(method) + "; OPC allows only STORE and DEFLATE (ECMA-376-2 \u00A77.3.6)");
153
+ }
154
+ try {
155
+ var inflated = inflateRaw(compressed, maxOutput);
156
+ if (inflated.length > limits.singlePartUncompressedSize) {
157
+ throw new SecurityError('security/part-size', "Uncompressed entry " + name + " exceeds the single-part limit");
158
+ }
159
+ if (compressed.length > 0 && inflated.length / compressed.length > limits.compressionRatio) {
160
+ throw new SecurityError('security/zip-bomb', "Inflate ratio exceeded for " + name);
161
+ }
162
+ return inflated;
163
+ }
164
+ catch (cause) {
165
+ if (cause instanceof SecurityError || cause instanceof PackageError) {
166
+ throw cause;
167
+ }
168
+ if (cause instanceof RangeError) {
169
+ // zlib hit the maxOutputLength cap we passed. Name the limit that bound
170
+ // it, so a legitimately huge document is not misreported as a bomb.
171
+ if (maxOutput === remainingTotal && remainingTotal < limits.singlePartUncompressedSize) {
172
+ throw new SecurityError('security/total-uncompressed', "Total uncompressed size limit hit at " + name, { cause: cause });
173
+ }
174
+ if (maxOutput === compressed.length * limits.compressionRatio) {
175
+ throw new SecurityError('security/zip-bomb', "Inflate ratio exceeded for " + name, { cause: cause });
176
+ }
177
+ throw new SecurityError('security/part-size', "Uncompressed entry " + name + " exceeds the single-part limit " +
178
+ "(raise ResourceLimits.singlePartUncompressedSize to load large documents)", { cause: cause });
179
+ }
180
+ throw new PackageError('package/invalid-zip', "DEFLATE stream is invalid for " + name, { cause: cause });
181
+ }
182
+ }
183
+ /**
184
+ * Reads a ZIP archive entirely in memory. Does not write to the filesystem.
185
+ * ZIP item names are those stored in the archive (ECMA-376-2 §7.3.3), not OPC
186
+ * logical part names (no leading slash in the ZIP item).
187
+ */
188
+ export function readZip(bytes, limitOverrides) {
189
+ var limits = resolveResourceLimits(limitOverrides);
190
+ if (isOleCompound(bytes)) {
191
+ rejectOleCompound(bytes);
192
+ }
193
+ var view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
194
+ var eocd = findEocdOffset(view);
195
+ var diskNumber = view.getUint16(eocd + 4, true);
196
+ var cdDisk = view.getUint16(eocd + 6, true);
197
+ var entriesOnDisk = view.getUint16(eocd + 8, true);
198
+ var totalEntries = view.getUint16(eocd + 10, true);
199
+ var cdSize = view.getUint32(eocd + 12, true);
200
+ var cdOffset = view.getUint32(eocd + 16, true);
201
+ if (diskNumber !== 0 || cdDisk !== 0 || entriesOnDisk !== totalEntries) {
202
+ throw new PackageError('package/invalid-zip', 'Multi-disk ZIP archives are not supported');
203
+ }
204
+ if (totalEntries === 0xffff || cdOffset === 0xffffffff || cdSize === 0xffffffff) {
205
+ throw new PackageError('package/invalid-zip', 'ZIP64 archives are not supported in this ZIP reader');
206
+ }
207
+ if (totalEntries > limits.entryCount) {
208
+ throw new SecurityError('security/entry-count', "ZIP entry count " + String(totalEntries) + " exceeds the limit");
209
+ }
210
+ if (cdOffset + cdSize > bytes.length) {
211
+ throw new PackageError('package/invalid-zip', 'Central directory is truncated');
212
+ }
213
+ var namesSeen = new Map();
214
+ var entries = [];
215
+ var cursor = cdOffset;
216
+ var totalUncompressed = 0;
217
+ for (var n = 0; n < totalEntries; n += 1) {
218
+ if (view.getUint32(cursor, true) !== SIG_CFH) {
219
+ throw new PackageError('package/invalid-zip', 'Central directory file header signature missing');
220
+ }
221
+ var flags = view.getUint16(cursor + 8, true);
222
+ var method = view.getUint16(cursor + 10, true);
223
+ var crcExpected = view.getUint32(cursor + 16, true);
224
+ var compressedSize = view.getUint32(cursor + 20, true);
225
+ view.getUint32(cursor + 24, true);
226
+ var nameLength = view.getUint16(cursor + 28, true);
227
+ var extraLength = view.getUint16(cursor + 30, true);
228
+ var commentLength = view.getUint16(cursor + 32, true);
229
+ var localHeaderOffset = view.getUint32(cursor + 42, true);
230
+ var nameBytes = readSlice(bytes, cursor + 46, nameLength, 'item name');
231
+ var name_1 = decodeItemName(nameBytes, (flags & FLAG_UTF8) !== 0);
232
+ cursor += 46 + nameLength + extraLength + commentLength;
233
+ if ((flags & FLAG_ENCRYPTED) !== 0) {
234
+ throw new PackageError('package/encrypted', "ZIP item " + name_1 + " is encrypted; OPC ZIP encryption is forbidden (ECMA-376-2 \u00A77.3.6)");
235
+ }
236
+ assertSafeZipItemName(name_1);
237
+ var lower = name_1.toLowerCase();
238
+ var previous = namesSeen.get(lower);
239
+ if (previous !== undefined) {
240
+ throw new PackageError('package/duplicate-zip-entry', "Duplicate ZIP item name " + name_1 + " (conflicts with " + previous + ")");
241
+ }
242
+ namesSeen.set(lower, name_1);
243
+ if (view.getUint32(localHeaderOffset, true) !== SIG_LFH) {
244
+ throw new PackageError('package/invalid-zip', "Local file header missing for " + name_1);
245
+ }
246
+ var localNameLength = view.getUint16(localHeaderOffset + 26, true);
247
+ var localExtraLength = view.getUint16(localHeaderOffset + 28, true);
248
+ var dataStart = localHeaderOffset + 30 + localNameLength + localExtraLength;
249
+ var compressed = readSlice(bytes, dataStart, compressedSize, "payload for " + name_1);
250
+ var remaining = limits.totalUncompressedSize - totalUncompressed;
251
+ var data = inflateEntry(compressed, method, limits, remaining, name_1);
252
+ if (crc32(data) !== crcExpected) {
253
+ throw new PackageError('package/invalid-zip', "CRC-32 mismatch for " + name_1);
254
+ }
255
+ totalUncompressed += data.byteLength;
256
+ if (totalUncompressed > limits.totalUncompressedSize) {
257
+ throw new SecurityError('security/total-uncompressed', "Total uncompressed size limit hit at " + name_1);
258
+ }
259
+ entries.push({ name: name_1, data: data });
260
+ }
261
+ return entries;
262
+ }
@@ -0,0 +1,7 @@
1
+ import { ZipEntry } from './zip-entry';
2
+ /**
3
+ * Writes a ZIP archive with STORE (method 0) so payload bytes are bit-stable.
4
+ * Compression method may later change on save as long as inflated bytes match
5
+ * (docs/specs/opc-package.md). OPC ZIP item names are ASCII (ECMA-376-2 §7.3.3).
6
+ */
7
+ export declare function writeZip(entries: ReadonlyArray<ZipEntry>): Uint8Array;
@@ -0,0 +1,189 @@
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 { PackageError } from '../errors/docx-error';
32
+ import { crc32 } from './crc32';
33
+ import { assertSafeZipItemName } from './names';
34
+ var SIG_LFH = 0x04034b50;
35
+ var SIG_CFH = 0x02014b50;
36
+ var SIG_EOCD = 0x06054b50;
37
+ var METHOD_STORE = 0;
38
+ var VERSION = 20;
39
+ function concat(parts) {
40
+ var e_1, _a, e_2, _b;
41
+ var total = 0;
42
+ try {
43
+ for (var parts_1 = __values(parts), parts_1_1 = parts_1.next(); !parts_1_1.done; parts_1_1 = parts_1.next()) {
44
+ var part = parts_1_1.value;
45
+ total += part.byteLength;
46
+ }
47
+ }
48
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
49
+ finally {
50
+ try {
51
+ if (parts_1_1 && !parts_1_1.done && (_a = parts_1.return)) _a.call(parts_1);
52
+ }
53
+ finally { if (e_1) throw e_1.error; }
54
+ }
55
+ var out = new Uint8Array(total);
56
+ var offset = 0;
57
+ try {
58
+ for (var parts_2 = __values(parts), parts_2_1 = parts_2.next(); !parts_2_1.done; parts_2_1 = parts_2.next()) {
59
+ var part = parts_2_1.value;
60
+ out.set(part, offset);
61
+ offset += part.byteLength;
62
+ }
63
+ }
64
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
65
+ finally {
66
+ try {
67
+ if (parts_2_1 && !parts_2_1.done && (_b = parts_2.return)) _b.call(parts_2);
68
+ }
69
+ finally { if (e_2) throw e_2.error; }
70
+ }
71
+ return out;
72
+ }
73
+ function u16(value) {
74
+ var bytes = new Uint8Array(2);
75
+ new DataView(bytes.buffer).setUint16(0, value, true);
76
+ return bytes;
77
+ }
78
+ function u32(value) {
79
+ var bytes = new Uint8Array(4);
80
+ new DataView(bytes.buffer).setUint32(0, value, true);
81
+ return bytes;
82
+ }
83
+ /**
84
+ * Writes a ZIP archive with STORE (method 0) so payload bytes are bit-stable.
85
+ * Compression method may later change on save as long as inflated bytes match
86
+ * (docs/specs/opc-package.md). OPC ZIP item names are ASCII (ECMA-376-2 §7.3.3).
87
+ */
88
+ export function writeZip(entries) {
89
+ var e_3, _a, e_4, _b;
90
+ var encoder = new TextEncoder();
91
+ var seen = new Map();
92
+ var prepared = [];
93
+ try {
94
+ for (var entries_1 = __values(entries), entries_1_1 = entries_1.next(); !entries_1_1.done; entries_1_1 = entries_1.next()) {
95
+ var entry = entries_1_1.value;
96
+ assertSafeZipItemName(entry.name);
97
+ if (!/^[\u0020-\u007e]+$/.test(entry.name)) {
98
+ throw new PackageError('package/invalid-part-name', "ZIP item name is not ASCII as required by ECMA-376-2 \u00A77.3.3: " + entry.name);
99
+ }
100
+ var lower = entry.name.toLowerCase();
101
+ var previous = seen.get(lower);
102
+ if (previous !== undefined) {
103
+ throw new PackageError('package/duplicate-zip-entry', "Duplicate ZIP item name " + entry.name + " (conflicts with " + previous + ")");
104
+ }
105
+ seen.set(lower, entry.name);
106
+ prepared.push({
107
+ nameBytes: encoder.encode(entry.name),
108
+ name: entry.name,
109
+ data: entry.data,
110
+ crc: crc32(entry.data),
111
+ });
112
+ }
113
+ }
114
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
115
+ finally {
116
+ try {
117
+ if (entries_1_1 && !entries_1_1.done && (_a = entries_1.return)) _a.call(entries_1);
118
+ }
119
+ finally { if (e_3) throw e_3.error; }
120
+ }
121
+ if (prepared.length > 0xffff) {
122
+ throw new PackageError('package/invalid-zip', 'Too many ZIP entries to encode in a non-ZIP64 archive');
123
+ }
124
+ var localParts = [];
125
+ var centralParts = [];
126
+ var offset = 0;
127
+ try {
128
+ for (var prepared_1 = __values(prepared), prepared_1_1 = prepared_1.next(); !prepared_1_1.done; prepared_1_1 = prepared_1.next()) {
129
+ var item = prepared_1_1.value;
130
+ var local = concat([
131
+ u32(SIG_LFH),
132
+ u16(VERSION),
133
+ u16(0),
134
+ u16(METHOD_STORE),
135
+ u16(0),
136
+ u16(0),
137
+ u32(item.crc),
138
+ u32(item.data.byteLength),
139
+ u32(item.data.byteLength),
140
+ u16(item.nameBytes.byteLength),
141
+ u16(0),
142
+ item.nameBytes,
143
+ item.data,
144
+ ]);
145
+ localParts.push(local);
146
+ var central = concat([
147
+ u32(SIG_CFH),
148
+ u16(VERSION),
149
+ u16(VERSION),
150
+ u16(0),
151
+ u16(METHOD_STORE),
152
+ u16(0),
153
+ u16(0),
154
+ u32(item.crc),
155
+ u32(item.data.byteLength),
156
+ u32(item.data.byteLength),
157
+ u16(item.nameBytes.byteLength),
158
+ u16(0),
159
+ u16(0),
160
+ u16(0),
161
+ u16(0),
162
+ u32(0),
163
+ u32(offset),
164
+ item.nameBytes,
165
+ ]);
166
+ centralParts.push(central);
167
+ offset += local.byteLength;
168
+ }
169
+ }
170
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
171
+ finally {
172
+ try {
173
+ if (prepared_1_1 && !prepared_1_1.done && (_b = prepared_1.return)) _b.call(prepared_1);
174
+ }
175
+ finally { if (e_4) throw e_4.error; }
176
+ }
177
+ var centralDirectory = concat(centralParts);
178
+ var eocd = concat([
179
+ u32(SIG_EOCD),
180
+ u16(0),
181
+ u16(0),
182
+ u16(prepared.length),
183
+ u16(prepared.length),
184
+ u32(centralDirectory.byteLength),
185
+ u32(offset),
186
+ u16(0),
187
+ ]);
188
+ return concat(__spread(localParts, [centralDirectory, eocd]));
189
+ }
@@ -0,0 +1,4 @@
1
+ export interface ZipEntry {
2
+ readonly name: string;
3
+ readonly data: Uint8Array;
4
+ }
File without changes
@@ -0,0 +1,100 @@
1
+ import { WordDocument } from '../document/document';
2
+ import { FeatureMultiPackagePart } from '../document/feature-multi-package-part';
3
+ import { OpcPackage } from '../../core/opc/package';
4
+ import { PartName } from '../../core/opc/part-name';
5
+ /**
6
+ * @private
7
+ * Transitional bibliography namespace (ECMA-376-4 §13.2.3). */
8
+ export declare const BIBLIOGRAPHY_NAMESPACE = "http://schemas.openxmlformats.org/officeDocument/2006/bibliography";
9
+ /**
10
+ * @private
11
+ * Strict bibliography namespace (ECMA-376-1 §15.2.3). */
12
+ export declare const BIBLIOGRAPHY_STRICT_NAMESPACE = "http://purl.oclc.org/ooxml/officeDocument/bibliography";
13
+ /**
14
+ * @private
15
+ * Transitional customXml relationship used by Bibliography parts (ECMA-376-1 §15.2.3). */
16
+ export declare const BIBLIOGRAPHY_CUSTOM_XML_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml";
17
+ /**
18
+ * @private
19
+ * Strict customXml relationship used by Bibliography parts. */
20
+ export declare const STRICT_BIBLIOGRAPHY_CUSTOM_XML_RELATIONSHIP_TYPE = "http://purl.oclc.org/ooxml/officeDocument/relationships/customXml";
21
+ /**
22
+ * @private
23
+ * Bibliography part content type (ECMA-376-1 §15.2.3). */
24
+ export declare const BIBLIOGRAPHY_CONTENT_TYPE = "application/xml";
25
+ interface BibliographyMetadata {
26
+ readonly present: boolean;
27
+ readonly sourceCount: number;
28
+ readonly styleName: string | undefined;
29
+ readonly selectedStyle: string | undefined;
30
+ readonly sourceTags: ReadonlyArray<string>;
31
+ }
32
+ /**
33
+ * Preserve-only bibliography sources catalog linked from the Main Document via a
34
+ * `customXml` relationship. Source field content is opaque; style name and tags
35
+ * are read-only metadata. No source editor or mutation API is provided.
36
+ *
37
+ * @private
38
+ */
39
+ export declare class BibliographyCatalog implements FeatureMultiPackagePart {
40
+ private readonly metadata;
41
+ /**
42
+ * @private
43
+ */
44
+ constructor(metadata: BibliographyMetadata);
45
+ /**
46
+ * Whether a Bibliography part (`b:Sources` root) was found.
47
+ *
48
+ * @public
49
+ */
50
+ present(): boolean;
51
+ /**
52
+ * Count of `b:Source` children under `b:Sources`.
53
+ *
54
+ * @public
55
+ */
56
+ sourceCount(): number;
57
+ /**
58
+ * `b:Sources/@StyleName`, or `undefined` when absent.
59
+ *
60
+ * @public
61
+ */
62
+ styleName(): string | undefined;
63
+ /**
64
+ * `b:Sources/@SelectedStyle`, or `undefined` when absent.
65
+ *
66
+ * @public
67
+ */
68
+ selectedStyle(): string | undefined;
69
+ /**
70
+ * `b:Source/b:Tag` text values in document order.
71
+ *
72
+ * @public
73
+ */
74
+ sourceTags(): ReadonlyArray<string>;
75
+ /**
76
+ * @private
77
+ */
78
+ isDirty(): boolean;
79
+ /**
80
+ * @private
81
+ */
82
+ applyToPackage(pkg: OpcPackage, mainPartName: PartName): OpcPackage;
83
+ }
84
+ /**
85
+ * @private
86
+ * Test hook */
87
+ export declare function resetBibliographyFeatureForTests(): void;
88
+ /**
89
+ * @private
90
+ * Register the bibliography detection handler. Idempotent. */
91
+ export declare function registerBibliographyFeature(): void;
92
+ /**
93
+ * Bibliography catalog for a document. Requires {@link registerBibliographyFeature}.
94
+ *
95
+ * @throws DocxError `UNKNOWN_FEATURE` when the module was not registered before load.
96
+ *
97
+ * @private
98
+ */
99
+ export declare function bibliographyFor(document: WordDocument): BibliographyCatalog;
100
+ export {};