ooxml-core 0.9.0 → 0.11.0

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 (320) hide show
  1. package/README.md +14 -13
  2. package/dist/automation/docx.d.ts +13 -0
  3. package/dist/automation/docx.d.ts.map +1 -0
  4. package/dist/automation/index.cjs +36838 -0
  5. package/dist/automation/index.d.ts +6 -0
  6. package/dist/automation/index.d.ts.map +1 -0
  7. package/dist/automation/index.mjs +36824 -0
  8. package/dist/automation/node.cjs +103 -0
  9. package/dist/automation/node.d.ts +16 -0
  10. package/dist/automation/node.d.ts.map +1 -0
  11. package/dist/automation/node.mjs +101 -0
  12. package/dist/automation/visio.d.ts +30 -0
  13. package/dist/automation/visio.d.ts.map +1 -0
  14. package/dist/automation/xlsx.d.ts +25 -0
  15. package/dist/automation/xlsx.d.ts.map +1 -0
  16. package/dist/crypto/aes-ecb.d.ts +13 -0
  17. package/dist/crypto/aes-ecb.d.ts.map +1 -0
  18. package/dist/crypto/decrypt.d.ts +63 -0
  19. package/dist/crypto/decrypt.d.ts.map +1 -0
  20. package/dist/crypto/detect.d.ts +56 -0
  21. package/dist/crypto/detect.d.ts.map +1 -0
  22. package/dist/crypto/encrypt.d.ts +27 -0
  23. package/dist/crypto/encrypt.d.ts.map +1 -0
  24. package/dist/crypto/encryption-info-write.d.ts +46 -0
  25. package/dist/crypto/encryption-info-write.d.ts.map +1 -0
  26. package/dist/crypto/encryption-info.d.ts +22 -0
  27. package/dist/crypto/encryption-info.d.ts.map +1 -0
  28. package/dist/crypto/errors.d.ts +39 -0
  29. package/dist/crypto/errors.d.ts.map +1 -0
  30. package/dist/crypto/index.cjs +1805 -0
  31. package/dist/crypto/index.d.ts +26 -0
  32. package/dist/crypto/index.d.ts.map +1 -0
  33. package/dist/crypto/index.mjs +1774 -0
  34. package/dist/crypto/key-derivation.d.ts +73 -0
  35. package/dist/crypto/key-derivation.d.ts.map +1 -0
  36. package/dist/crypto/types.d.ts +104 -0
  37. package/dist/crypto/types.d.ts.map +1 -0
  38. package/dist/docx/embedded.cjs +2 -0
  39. package/dist/docx/embedded.mjs +2 -0
  40. package/dist/docx/index.cjs +2 -0
  41. package/dist/docx/index.mjs +2 -0
  42. package/dist/docx/load/detect.d.ts +14 -2
  43. package/dist/docx/load/detect.d.ts.map +1 -1
  44. package/dist/docx/load/index.cjs +8995 -7728
  45. package/dist/docx/load/index.d.ts +3 -1
  46. package/dist/docx/load/index.d.ts.map +1 -1
  47. package/dist/docx/load/index.mjs +8990 -7729
  48. package/dist/docx/load/legacy-doc.d.ts.map +1 -1
  49. package/dist/index.cjs +749 -19
  50. package/dist/index.mjs +749 -19
  51. package/dist/opc/index.cjs +797 -1
  52. package/dist/opc/index.d.ts +2 -0
  53. package/dist/opc/index.d.ts.map +1 -1
  54. package/dist/opc/index.mjs +784 -3
  55. package/dist/opc/properties/app.d.ts +10 -0
  56. package/dist/opc/properties/app.d.ts.map +1 -0
  57. package/dist/opc/properties/core.d.ts +13 -0
  58. package/dist/opc/properties/core.d.ts.map +1 -0
  59. package/dist/opc/properties/custom.d.ts +15 -0
  60. package/dist/opc/properties/custom.d.ts.map +1 -0
  61. package/dist/opc/properties/index.d.ts +5 -0
  62. package/dist/opc/properties/index.d.ts.map +1 -0
  63. package/dist/opc/properties/types.d.ts +114 -0
  64. package/dist/opc/properties/types.d.ts.map +1 -0
  65. package/dist/opc/relationship-types.d.ts +1 -0
  66. package/dist/opc/relationship-types.d.ts.map +1 -1
  67. package/dist/opc/safe-href.d.ts +34 -0
  68. package/dist/opc/safe-href.d.ts.map +1 -1
  69. package/dist/opc/signature/constants.d.ts +42 -0
  70. package/dist/opc/signature/constants.d.ts.map +1 -0
  71. package/dist/opc/signature/detection.d.ts +97 -0
  72. package/dist/opc/signature/detection.d.ts.map +1 -0
  73. package/dist/opc/signature/digest.d.ts +16 -0
  74. package/dist/opc/signature/digest.d.ts.map +1 -0
  75. package/dist/opc/signature/index.d.ts +8 -0
  76. package/dist/opc/signature/index.d.ts.map +1 -0
  77. package/dist/opc/signature/inspection-status.d.ts +24 -0
  78. package/dist/opc/signature/inspection-status.d.ts.map +1 -0
  79. package/dist/opc/signature/reference-utils.d.ts +12 -0
  80. package/dist/opc/signature/reference-utils.d.ts.map +1 -0
  81. package/dist/opc/signature/types.d.ts +90 -0
  82. package/dist/opc/signature/types.d.ts.map +1 -0
  83. package/dist/opc/signature/xml-utils.d.ts +35 -0
  84. package/dist/opc/signature/xml-utils.d.ts.map +1 -0
  85. package/dist/pptx/automation/index.cjs +149047 -0
  86. package/dist/pptx/automation/index.d.ts +1474 -0
  87. package/dist/pptx/automation/index.d.ts.map +1 -0
  88. package/dist/pptx/automation/index.mjs +148926 -0
  89. package/dist/pptx/chunks/{index-CojJtI77.d.ts → index-BWRd8p4y.d.ts} +10 -12
  90. package/dist/pptx/chunks/index-BWRd8p4y.d.ts.map +1 -0
  91. package/dist/pptx/chunks/index-LoCVDu8Z.d.ts +9644 -0
  92. package/dist/pptx/chunks/index-LoCVDu8Z.d.ts.map +1 -0
  93. package/dist/pptx/chunks/{signature-inspection-status-Bh2oap7B.d.ts → inspection-status-B2E-jSpG.d.ts} +8 -8
  94. package/dist/pptx/chunks/inspection-status-B2E-jSpG.d.ts.map +1 -0
  95. package/dist/pptx/chunks/{text-operations-IlJiffp7.d.ts → text-operations-2tKzrY5o.d.ts} +7381 -7381
  96. package/dist/pptx/chunks/text-operations-2tKzrY5o.d.ts.map +1 -0
  97. package/dist/pptx/cli/index.cjs +1409 -895
  98. package/dist/pptx/cli/index.d.ts +1 -1
  99. package/dist/pptx/cli/index.mjs +1409 -895
  100. package/dist/pptx/converter/index.d.ts +1 -1
  101. package/dist/pptx/index.cjs +1933 -1391
  102. package/dist/pptx/index.d.ts +5 -9692
  103. package/dist/pptx/index.mjs +1933 -1391
  104. package/dist/pptx/signature-node/index.cjs +5 -5
  105. package/dist/pptx/signature-node/index.d.ts +1 -1
  106. package/dist/pptx/signature-node/index.mjs +5 -5
  107. package/dist/visio/edit-geometry-admission.d.ts +1 -1
  108. package/dist/visio/edit-geometry-admission.d.ts.map +1 -1
  109. package/dist/visio/edit-geometry.d.ts +1 -1
  110. package/dist/visio/edit-geometry.d.ts.map +1 -1
  111. package/dist/visio/edit-master-index.d.ts +10 -0
  112. package/dist/visio/edit-master-index.d.ts.map +1 -0
  113. package/dist/visio/edit-master-move.d.ts +12 -0
  114. package/dist/visio/edit-master-move.d.ts.map +1 -0
  115. package/dist/visio/edit-master-scope.d.ts +7 -0
  116. package/dist/visio/edit-master-scope.d.ts.map +1 -0
  117. package/dist/visio/edit-recalculate-index.d.ts +2 -0
  118. package/dist/visio/edit-recalculate-index.d.ts.map +1 -1
  119. package/dist/visio/edit-scope.d.ts +1 -1
  120. package/dist/visio/edit-scope.d.ts.map +1 -1
  121. package/dist/visio/edit.d.ts.map +1 -1
  122. package/dist/visio/formula-arithmetic.d.ts +8 -0
  123. package/dist/visio/formula-arithmetic.d.ts.map +1 -0
  124. package/dist/visio/formula-evaluate.d.ts.map +1 -1
  125. package/dist/visio/formula-master.d.ts +13 -0
  126. package/dist/visio/formula-master.d.ts.map +1 -0
  127. package/dist/visio/formula-numeric-functions.d.ts +8 -0
  128. package/dist/visio/formula-numeric-functions.d.ts.map +1 -0
  129. package/dist/visio/formula.d.ts +1 -1
  130. package/dist/visio/formula.d.ts.map +1 -1
  131. package/dist/visio/index.cjs +687 -71
  132. package/dist/visio/index.mjs +687 -71
  133. package/dist/xlsx/edit/annotations.d.ts +5 -1
  134. package/dist/xlsx/edit/annotations.d.ts.map +1 -1
  135. package/dist/xlsx/edit/cell-values.d.ts +7 -2
  136. package/dist/xlsx/edit/cell-values.d.ts.map +1 -1
  137. package/dist/xlsx/edit/clipboard.d.ts.map +1 -1
  138. package/dist/xlsx/edit/doc-properties.d.ts +14 -0
  139. package/dist/xlsx/edit/doc-properties.d.ts.map +1 -0
  140. package/dist/xlsx/edit/fill-series.d.ts.map +1 -1
  141. package/dist/xlsx/edit/find.d.ts +2 -1
  142. package/dist/xlsx/edit/find.d.ts.map +1 -1
  143. package/dist/xlsx/edit/format-lines.d.ts +22 -0
  144. package/dist/xlsx/edit/format-lines.d.ts.map +1 -0
  145. package/dist/xlsx/edit/format.d.ts +2 -1
  146. package/dist/xlsx/edit/format.d.ts.map +1 -1
  147. package/dist/xlsx/edit/history-refs.d.ts +51 -0
  148. package/dist/xlsx/edit/history-refs.d.ts.map +1 -0
  149. package/dist/xlsx/edit/history.d.ts +40 -5
  150. package/dist/xlsx/edit/history.d.ts.map +1 -1
  151. package/dist/xlsx/edit/index.d.ts +3 -0
  152. package/dist/xlsx/edit/index.d.ts.map +1 -1
  153. package/dist/xlsx/edit/input-text.d.ts +13 -0
  154. package/dist/xlsx/edit/input-text.d.ts.map +1 -0
  155. package/dist/xlsx/edit/merge.d.ts +10 -2
  156. package/dist/xlsx/edit/merge.d.ts.map +1 -1
  157. package/dist/xlsx/edit/session.d.ts.map +1 -1
  158. package/dist/xlsx/edit/sheets.d.ts.map +1 -1
  159. package/dist/xlsx/edit/shift-formulas.d.ts +2 -1
  160. package/dist/xlsx/edit/shift-formulas.d.ts.map +1 -1
  161. package/dist/xlsx/edit/shift-preserved.d.ts +17 -0
  162. package/dist/xlsx/edit/shift-preserved.d.ts.map +1 -0
  163. package/dist/xlsx/edit/shift-sheet.d.ts +2 -2
  164. package/dist/xlsx/edit/shift-sheet.d.ts.map +1 -1
  165. package/dist/xlsx/edit/structure.d.ts.map +1 -1
  166. package/dist/xlsx/edit/types.d.ts +7 -0
  167. package/dist/xlsx/edit/types.d.ts.map +1 -1
  168. package/dist/xlsx/edit/validation-list.d.ts +24 -0
  169. package/dist/xlsx/edit/validation-list.d.ts.map +1 -0
  170. package/dist/xlsx/edit/validation.d.ts +2 -1
  171. package/dist/xlsx/edit/validation.d.ts.map +1 -1
  172. package/dist/xlsx/formula/area-index.d.ts +18 -0
  173. package/dist/xlsx/formula/area-index.d.ts.map +1 -0
  174. package/dist/xlsx/formula/array-context.d.ts.map +1 -1
  175. package/dist/xlsx/formula/ast.d.ts +5 -1
  176. package/dist/xlsx/formula/ast.d.ts.map +1 -1
  177. package/dist/xlsx/formula/call.d.ts.map +1 -1
  178. package/dist/xlsx/formula/coerce.d.ts.map +1 -1
  179. package/dist/xlsx/formula/context.d.ts +5 -0
  180. package/dist/xlsx/formula/context.d.ts.map +1 -1
  181. package/dist/xlsx/formula/date-serial.d.ts +11 -4
  182. package/dist/xlsx/formula/date-serial.d.ts.map +1 -1
  183. package/dist/xlsx/formula/engine-core.d.ts +6 -0
  184. package/dist/xlsx/formula/engine-core.d.ts.map +1 -1
  185. package/dist/xlsx/formula/engine-host.d.ts +35 -3
  186. package/dist/xlsx/formula/engine-host.d.ts.map +1 -1
  187. package/dist/xlsx/formula/engine-util.d.ts.map +1 -1
  188. package/dist/xlsx/formula/engine.d.ts.map +1 -1
  189. package/dist/xlsx/formula/evaluator.d.ts.map +1 -1
  190. package/dist/xlsx/formula/functions/array-shape.d.ts.map +1 -1
  191. package/dist/xlsx/formula/functions/array.d.ts.map +1 -1
  192. package/dist/xlsx/formula/functions/criteria-index.d.ts +12 -0
  193. package/dist/xlsx/formula/functions/criteria-index.d.ts.map +1 -0
  194. package/dist/xlsx/formula/functions/criteria.d.ts +24 -16
  195. package/dist/xlsx/formula/functions/criteria.d.ts.map +1 -1
  196. package/dist/xlsx/formula/functions/date-calc.d.ts +4 -0
  197. package/dist/xlsx/formula/functions/date-calc.d.ts.map +1 -1
  198. package/dist/xlsx/formula/functions/depreciation.d.ts.map +1 -1
  199. package/dist/xlsx/formula/functions/financial.d.ts.map +1 -1
  200. package/dist/xlsx/formula/functions/helpers.d.ts.map +1 -1
  201. package/dist/xlsx/formula/functions/logical.d.ts.map +1 -1
  202. package/dist/xlsx/formula/functions/lookup-core.d.ts +14 -2
  203. package/dist/xlsx/formula/functions/lookup-core.d.ts.map +1 -1
  204. package/dist/xlsx/formula/functions/lookup.d.ts.map +1 -1
  205. package/dist/xlsx/formula/functions/math-mod.d.ts +8 -0
  206. package/dist/xlsx/formula/functions/math-mod.d.ts.map +1 -0
  207. package/dist/xlsx/formula/functions/math-sum.d.ts.map +1 -1
  208. package/dist/xlsx/formula/functions/math.d.ts.map +1 -1
  209. package/dist/xlsx/formula/functions/statistical-count.d.ts.map +1 -1
  210. package/dist/xlsx/formula/functions/statistical.d.ts.map +1 -1
  211. package/dist/xlsx/formula/functions/stats-core.d.ts +6 -0
  212. package/dist/xlsx/formula/functions/stats-core.d.ts.map +1 -1
  213. package/dist/xlsx/formula/functions/text-case.d.ts +14 -0
  214. package/dist/xlsx/formula/functions/text-case.d.ts.map +1 -0
  215. package/dist/xlsx/formula/functions/text.d.ts.map +1 -1
  216. package/dist/xlsx/formula/functions/workdays.d.ts.map +1 -1
  217. package/dist/xlsx/formula/graph-index.d.ts +15 -0
  218. package/dist/xlsx/formula/graph-index.d.ts.map +1 -0
  219. package/dist/xlsx/formula/graph.d.ts +13 -18
  220. package/dist/xlsx/formula/graph.d.ts.map +1 -1
  221. package/dist/xlsx/formula/operators.d.ts +9 -0
  222. package/dist/xlsx/formula/operators.d.ts.map +1 -1
  223. package/dist/xlsx/formula/parser.d.ts +2 -0
  224. package/dist/xlsx/formula/parser.d.ts.map +1 -1
  225. package/dist/xlsx/formula/references.d.ts +4 -1
  226. package/dist/xlsx/formula/references.d.ts.map +1 -1
  227. package/dist/xlsx/formula/text-number.d.ts.map +1 -1
  228. package/dist/xlsx/formula/transform.d.ts.map +1 -1
  229. package/dist/xlsx/formula/values.d.ts +44 -3
  230. package/dist/xlsx/formula/values.d.ts.map +1 -1
  231. package/dist/xlsx/index.cjs +4698 -1322
  232. package/dist/xlsx/index.mjs +4688 -1323
  233. package/dist/xlsx/layout/anchors.d.ts +47 -0
  234. package/dist/xlsx/layout/anchors.d.ts.map +1 -0
  235. package/dist/xlsx/layout/cf-evaluator.d.ts +1 -2
  236. package/dist/xlsx/layout/cf-evaluator.d.ts.map +1 -1
  237. package/dist/xlsx/layout/cf-helpers.d.ts +8 -1
  238. package/dist/xlsx/layout/cf-helpers.d.ts.map +1 -1
  239. package/dist/xlsx/layout/index.d.ts +1 -0
  240. package/dist/xlsx/layout/index.d.ts.map +1 -1
  241. package/dist/xlsx/load/csv.d.ts +24 -3
  242. package/dist/xlsx/load/csv.d.ts.map +1 -1
  243. package/dist/xlsx/load/detect.d.ts +39 -7
  244. package/dist/xlsx/load/detect.d.ts.map +1 -1
  245. package/dist/xlsx/load/errors.d.ts +10 -0
  246. package/dist/xlsx/load/errors.d.ts.map +1 -0
  247. package/dist/xlsx/load/index.cjs +16220 -12163
  248. package/dist/xlsx/load/index.d.ts +5 -2
  249. package/dist/xlsx/load/index.d.ts.map +1 -1
  250. package/dist/xlsx/load/index.mjs +16213 -12164
  251. package/dist/xlsx/load/text-decode.d.ts +7 -0
  252. package/dist/xlsx/load/text-decode.d.ts.map +1 -0
  253. package/dist/xlsx/model.d.ts +121 -17
  254. package/dist/xlsx/model.d.ts.map +1 -1
  255. package/dist/xlsx/numfmt/date.d.ts +7 -0
  256. package/dist/xlsx/numfmt/date.d.ts.map +1 -1
  257. package/dist/xlsx/numfmt/format.d.ts.map +1 -1
  258. package/dist/xlsx/numfmt/fraction.d.ts +5 -1
  259. package/dist/xlsx/numfmt/fraction.d.ts.map +1 -1
  260. package/dist/xlsx/numfmt/input-date.d.ts.map +1 -1
  261. package/dist/xlsx/numfmt/input.d.ts.map +1 -1
  262. package/dist/xlsx/numfmt/number.d.ts.map +1 -1
  263. package/dist/xlsx/read/conditional.d.ts.map +1 -1
  264. package/dist/xlsx/read/drawing.d.ts +2 -2
  265. package/dist/xlsx/read/drawing.d.ts.map +1 -1
  266. package/dist/xlsx/read/load.d.ts.map +1 -1
  267. package/dist/xlsx/read/package.d.ts +18 -2
  268. package/dist/xlsx/read/package.d.ts.map +1 -1
  269. package/dist/xlsx/read/sheet-data.d.ts.map +1 -1
  270. package/dist/xlsx/read/sheet-props.d.ts +15 -1
  271. package/dist/xlsx/read/sheet-props.d.ts.map +1 -1
  272. package/dist/xlsx/read/smart-art.d.ts +12 -0
  273. package/dist/xlsx/read/smart-art.d.ts.map +1 -0
  274. package/dist/xlsx/read/styles.d.ts.map +1 -1
  275. package/dist/xlsx/read/workbook-part.d.ts +5 -2
  276. package/dist/xlsx/read/workbook-part.d.ts.map +1 -1
  277. package/dist/xlsx/read/worksheet.d.ts.map +1 -1
  278. package/dist/xlsx/write/attr-merge.d.ts +10 -0
  279. package/dist/xlsx/write/attr-merge.d.ts.map +1 -0
  280. package/dist/xlsx/write/carried-refs.d.ts +61 -0
  281. package/dist/xlsx/write/carried-refs.d.ts.map +1 -0
  282. package/dist/xlsx/write/comments.d.ts +12 -2
  283. package/dist/xlsx/write/comments.d.ts.map +1 -1
  284. package/dist/xlsx/write/conditional.d.ts.map +1 -1
  285. package/dist/xlsx/write/doc-props.d.ts +30 -0
  286. package/dist/xlsx/write/doc-props.d.ts.map +1 -0
  287. package/dist/xlsx/write/drawing.d.ts +5 -0
  288. package/dist/xlsx/write/drawing.d.ts.map +1 -1
  289. package/dist/xlsx/write/metadata.d.ts +23 -0
  290. package/dist/xlsx/write/metadata.d.ts.map +1 -0
  291. package/dist/xlsx/write/package-writer.d.ts +6 -0
  292. package/dist/xlsx/write/package-writer.d.ts.map +1 -1
  293. package/dist/xlsx/write/page-setup.d.ts +8 -0
  294. package/dist/xlsx/write/page-setup.d.ts.map +1 -0
  295. package/dist/xlsx/write/save.d.ts.map +1 -1
  296. package/dist/xlsx/write/sheet-data.d.ts +8 -0
  297. package/dist/xlsx/write/sheet-data.d.ts.map +1 -1
  298. package/dist/xlsx/write/sheet-parts.d.ts +6 -0
  299. package/dist/xlsx/write/sheet-parts.d.ts.map +1 -1
  300. package/dist/xlsx/write/sheet-props.d.ts +0 -6
  301. package/dist/xlsx/write/sheet-props.d.ts.map +1 -1
  302. package/dist/xlsx/write/styles.d.ts.map +1 -1
  303. package/dist/xlsx/write/table-patch.d.ts +12 -0
  304. package/dist/xlsx/write/table-patch.d.ts.map +1 -0
  305. package/dist/xlsx/write/tables.d.ts +9 -0
  306. package/dist/xlsx/write/tables.d.ts.map +1 -1
  307. package/dist/xlsx/write/vml-ids.d.ts +29 -0
  308. package/dist/xlsx/write/vml-ids.d.ts.map +1 -0
  309. package/dist/xlsx/write/workbook-part.d.ts +1 -4
  310. package/dist/xlsx/write/workbook-part.d.ts.map +1 -1
  311. package/dist/xlsx/write/worksheet.d.ts.map +1 -1
  312. package/dist/xml/index.cjs +4 -0
  313. package/dist/xml/index.mjs +4 -0
  314. package/dist/xml/namespaces.d.ts +4 -0
  315. package/dist/xml/namespaces.d.ts.map +1 -1
  316. package/package.json +26 -3
  317. package/dist/pptx/chunks/index-CojJtI77.d.ts.map +0 -1
  318. package/dist/pptx/chunks/signature-inspection-status-Bh2oap7B.d.ts.map +0 -1
  319. package/dist/pptx/chunks/text-operations-IlJiffp7.d.ts.map +0 -1
  320. package/dist/pptx/index.d.ts.map +0 -1
@@ -0,0 +1,10 @@
1
+ import type { AppProperties } from './types.js';
2
+ /** Reads the known fields of `docProps/app.xml`. */
3
+ export declare function parseAppProperties(xml: string | undefined): AppProperties;
4
+ /**
5
+ * Writes `docProps/app.xml`. With `sourceXml` the source part is patched: an element whose
6
+ * value is unchanged is left byte for byte, a changed one is rewritten, an unset one removed,
7
+ * and every element the model does not know (statistics, `DigSig`, `HLinks`...) is kept.
8
+ */
9
+ export declare function writeAppProperties(props: AppProperties, sourceXml?: string): string;
10
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/opc/properties/app.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,YAAY,CAAC;AAuD7D,oDAAoD;AACpD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,CAWzE;AAmCD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CA2BnF"}
@@ -0,0 +1,13 @@
1
+ import type { CoreProperties } from './types.js';
2
+ type CoreField = keyof CoreProperties;
3
+ /** The core property names, in the order they are written. */
4
+ export declare const CORE_PROPERTY_FIELDS: readonly CoreField[];
5
+ /** Reads `docProps/core.xml`. Empty elements count as unset; text is not trimmed. */
6
+ export declare function parseCoreProperties(xml: string | undefined): CoreProperties;
7
+ /**
8
+ * Writes `docProps/core.xml`. With `sourceXml` the source part is patched: known fields are
9
+ * set, replaced or removed to match `props`, and every element the model does not know is kept.
10
+ */
11
+ export declare function writeCoreProperties(props: CoreProperties, sourceXml?: string): string;
12
+ export {};
13
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/opc/properties/core.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjD,KAAK,SAAS,GAAG,MAAM,cAAc,CAAC;AAqBtC,8DAA8D;AAC9D,eAAO,MAAM,oBAAoB,EAAE,SAAS,SAAS,EAAmC,CAAC;AAMzF,qFAAqF;AACrF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,CAS3E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAsBrF"}
@@ -0,0 +1,15 @@
1
+ import { type CustomProperty } from './types.js';
2
+ /** Reads `docProps/custom.xml`; a property of an unmodelled variant type is kept as `raw`. */
3
+ export declare function parseCustomProperties(xml: string | undefined): CustomProperty[];
4
+ /**
5
+ * Property ids for `properties`: a valid, unique `pid` (2 and up) is kept, every other property
6
+ * gets the next free id after the largest one in use.
7
+ */
8
+ export declare function allocateCustomPropertyIds(properties: readonly CustomProperty[]): number[];
9
+ /**
10
+ * `docProps/custom.xml` for `properties`, or `undefined` when there are none (the part and its
11
+ * relationship are then omitted). Names must be unique (case-insensitive, as Office requires):
12
+ * a later duplicate is dropped.
13
+ */
14
+ export declare function writeCustomProperties(properties: readonly CustomProperty[]): string | undefined;
15
+ //# sourceMappingURL=custom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom.d.ts","sourceRoot":"","sources":["../../../src/opc/properties/custom.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAkC1E,8FAA8F;AAC9F,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,EAAE,CAuB/E;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM,EAAE,CAUzF;AAmBD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM,GAAG,SAAS,CAoB/F"}
@@ -0,0 +1,5 @@
1
+ export * from './types.js';
2
+ export { CORE_PROPERTY_FIELDS, parseCoreProperties, writeCoreProperties } from './core.js';
3
+ export { parseAppProperties, writeAppProperties } from './app.js';
4
+ export { allocateCustomPropertyIds, parseCustomProperties, writeCustomProperties, } from './custom.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/opc/properties/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EACN,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,GACrB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Package document properties shared by every Office format: core (`docProps/core.xml`,
3
+ * Dublin Core and `cp:`), extended (`docProps/app.xml`) and custom (`docProps/custom.xml`).
4
+ * Absent fields are unset. Dates are kept as the W3CDTF text the part holds (ISO 8601).
5
+ */
6
+ /** `docProps/core.xml` (ECMA-376 Part 2, 11). */
7
+ export interface CoreProperties {
8
+ title?: string;
9
+ subject?: string;
10
+ /** `dc:creator`: the author. */
11
+ creator?: string;
12
+ /** `cp:keywords`: tags. */
13
+ keywords?: string;
14
+ /** `dc:description`: comments. */
15
+ description?: string;
16
+ lastModifiedBy?: string;
17
+ /** `dcterms:created`, W3CDTF. */
18
+ created?: string;
19
+ /** `dcterms:modified`, W3CDTF. */
20
+ modified?: string;
21
+ category?: string;
22
+ /** `cp:contentStatus` (Draft, Final, ...). */
23
+ contentStatus?: string;
24
+ /** `cp:revision`: the revision number as text. */
25
+ revision?: string;
26
+ /** `dc:language` (RFC 3066 tag). */
27
+ language?: string;
28
+ /** `dc:identifier`. */
29
+ identifier?: string;
30
+ /** `cp:lastPrinted`, W3CDTF. */
31
+ lastPrinted?: string;
32
+ /** `cp:version`. */
33
+ version?: string;
34
+ }
35
+ /** One `HeadingPairs` entry: a group name (`Worksheets`, `Named Ranges`) and its title count. */
36
+ export interface HeadingPair {
37
+ name: string;
38
+ count: number;
39
+ }
40
+ /** The fields of `docProps/app.xml` this model reads and writes; other elements are preserved. */
41
+ export interface AppProperties {
42
+ /** `Application` (`Microsoft Excel`). */
43
+ application?: string;
44
+ /** `AppVersion` (`16.0300`). */
45
+ appVersion?: string;
46
+ company?: string;
47
+ manager?: string;
48
+ /** Base for relative hyperlinks (`HyperlinkBase`). */
49
+ hyperlinkBase?: string;
50
+ template?: string;
51
+ /** `DocSecurity`: 0 none, 1 password protected, 2 read-only recommended, 4 read-only enforced, 8 locked for annotations. */
52
+ docSecurity?: number;
53
+ /** `TotalTime`: editing minutes. */
54
+ totalTime?: number;
55
+ scaleCrop?: boolean;
56
+ linksUpToDate?: boolean;
57
+ sharedDoc?: boolean;
58
+ hyperlinksChanged?: boolean;
59
+ /** `HeadingPairs`: groups of `titlesOfParts`, in order. */
60
+ headingPairs?: HeadingPair[];
61
+ /** `TitlesOfParts`: sheet names, named ranges, slide titles... grouped by `headingPairs`. */
62
+ titlesOfParts?: string[];
63
+ }
64
+ /** Variant types of a custom property value this model edits. */
65
+ export type CustomPropertyType = 'lpwstr' | 'i4' | 'r8' | 'bool' | 'filetime';
66
+ interface CustomPropertyBase {
67
+ name: string;
68
+ /** Property id (2 and up); allocated on write when absent or duplicated. */
69
+ pid?: number;
70
+ /** `linkTarget`: the name of a bookmark or defined name the value is linked to. */
71
+ linkTarget?: string;
72
+ }
73
+ /**
74
+ * A `docProps/custom.xml` property. `raw` keeps a value of any other variant type (`vt:i8`,
75
+ * `vt:lpstr`, `vt:date`, vectors...) as the variant element's XML, written back verbatim.
76
+ */
77
+ export type CustomProperty = CustomPropertyBase & ({
78
+ type: 'lpwstr';
79
+ value: string;
80
+ } | {
81
+ type: 'i4' | 'r8';
82
+ value: number;
83
+ } | {
84
+ type: 'bool';
85
+ value: boolean;
86
+ }
87
+ /** W3CDTF / ISO 8601 UTC text (`2026-10-03T00:00:00Z`). */
88
+ | {
89
+ type: 'filetime';
90
+ value: string;
91
+ } | {
92
+ type: 'raw';
93
+ xml: string;
94
+ });
95
+ /** All three property parts of a package. */
96
+ export interface DocumentPropertySet {
97
+ core: CoreProperties;
98
+ app: AppProperties;
99
+ custom: CustomProperty[];
100
+ }
101
+ /** `fmtid` of user-defined custom properties (FMTID_UserDefinedProperties). */
102
+ export declare const CUSTOM_PROPERTIES_FMTID = "{D5CDD505-2E9C-101B-9397-08002B2CF9AE}";
103
+ export declare const PROPERTY_PART_NAMES: {
104
+ readonly core: "docProps/core.xml";
105
+ readonly app: "docProps/app.xml";
106
+ readonly custom: "docProps/custom.xml";
107
+ };
108
+ export declare const PROPERTY_CONTENT_TYPES: {
109
+ readonly core: "application/vnd.openxmlformats-package.core-properties+xml";
110
+ readonly app: "application/vnd.openxmlformats-officedocument.extended-properties+xml";
111
+ readonly custom: "application/vnd.openxmlformats-officedocument.custom-properties+xml";
112
+ };
113
+ export {};
114
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/opc/properties/types.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,7 @@ export declare const RELATIONSHIP_TYPES: {
28
28
  readonly diagramDrawing: "http://schemas.microsoft.com/office/2007/relationships/diagramDrawing";
29
29
  readonly coreProperties: "http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties";
30
30
  readonly extendedProperties: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties";
31
+ readonly customProperties: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties";
31
32
  readonly customXml: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml";
32
33
  readonly worksheet: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet";
33
34
  readonly chartsheet: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet";
@@ -1 +1 @@
1
- {"version":3,"file":"relationship-types.d.ts","sourceRoot":"","sources":["../../src/opc/relationship-types.ts"],"names":[],"mappings":"AAEA,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDrB,CAAC;AACX,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,kBAAkB,CAAC"}
1
+ {"version":3,"file":"relationship-types.d.ts","sourceRoot":"","sources":["../../src/opc/relationship-types.ts"],"names":[],"mappings":"AAEA,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDrB,CAAC;AACX,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,kBAAkB,CAAC"}
@@ -1,3 +1,37 @@
1
+ /**
2
+ * One hyperlink safety policy for every format.
3
+ *
4
+ * - `isSafeHyperlinkHref` is the original strict check (http, https, mailto only) used by
5
+ * callers that write external relationships from user input; its behaviour is unchanged.
6
+ * - `hyperlinkPolicy` separates two questions: may the href be **stored** in the document
7
+ * (http, https, mailto, ftp, file, relative paths, UNC and drive paths, in-document
8
+ * locations such as `#Sheet2!A1`), and may a viewer **open** it on click (http, https and
9
+ * mailto only). Script-capable schemes (`javascript:`, `vbscript:`, `data:`, `mhtml:` and
10
+ * relatives) are never stored or opened, including when hidden behind case changes,
11
+ * whitespace, control characters or zero-width characters.
12
+ *
13
+ * The obfuscation hardening follows `isUrlSafe` of pptx-viewer
14
+ * (`packages/shared/src/render/hyperlink-security.ts`); see PROVENANCE.md.
15
+ */
1
16
  /** Only http(s) and mailto targets are accepted; anything else (notably `javascript:`) is rejected. */
2
17
  export declare function isSafeHyperlinkHref(href: string): boolean;
18
+ /** Why a hyperlink may not be stored or opened. */
19
+ export type HyperlinkRejection = 'empty' | 'script-scheme' | 'obfuscated-scheme' | 'control-characters' | 'unsupported-scheme' | 'not-openable';
20
+ /** The verdict of {@link hyperlinkPolicy}; `reason` is set whenever `store` or `open` is false. */
21
+ export interface HyperlinkPolicy {
22
+ /** The href may be kept in (written to) the document. */
23
+ readonly store: boolean;
24
+ /** A viewer may navigate to the href when the user activates the link. */
25
+ readonly open: boolean;
26
+ readonly reason?: HyperlinkRejection;
27
+ }
28
+ /**
29
+ * Classify a hyperlink target. Leading and trailing whitespace is ignored; anything else
30
+ * that could disguise the scheme makes the href unsafe.
31
+ */
32
+ export declare function hyperlinkPolicy(href: string | undefined | null): HyperlinkPolicy;
33
+ /** True when the href may be written to the document (see {@link hyperlinkPolicy}). */
34
+ export declare function isStorableHyperlinkHref(href: string | undefined | null): boolean;
35
+ /** True when a viewer may open the href on click (see {@link hyperlinkPolicy}). */
36
+ export declare function isOpenableHyperlinkHref(href: string | undefined | null): boolean;
3
37
  //# sourceMappingURL=safe-href.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"safe-href.d.ts","sourceRoot":"","sources":["../../src/opc/safe-href.ts"],"names":[],"mappings":"AAEA,uGAAuG;AACvG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGzD"}
1
+ {"version":3,"file":"safe-href.d.ts","sourceRoot":"","sources":["../../src/opc/safe-href.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,uGAAuG;AACvG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGzD;AAED,mDAAmD;AACnD,MAAM,MAAM,kBAAkB,GAC3B,OAAO,GACP,eAAe,GACf,mBAAmB,GACnB,oBAAoB,GACpB,oBAAoB,GACpB,cAAc,CAAC;AAElB,mGAAmG;AACnG,MAAM,WAAW,eAAe;IAC/B,yDAAyD;IACzD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,0EAA0E;IAC1E,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC;CACrC;AAqCD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,eAAe,CAehF;AAED,uFAAuF;AACvF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAEhF;AAED,mFAAmF;AACnF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAEhF"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Constants for OOXML digital signature processing.
3
+ *
4
+ * OPC URIs, algorithm URIs, digest mappings, and enterprise
5
+ * environment variable names used across both platform-agnostic
6
+ * and Node-only signature modules.
7
+ */
8
+ /** The OOXML relationship type for the digital signature origin part. */
9
+ export declare const DIGITAL_SIGNATURE_ORIGIN_REL_TYPE = "http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/origin";
10
+ /** The OOXML relationship type for individual signature parts. */
11
+ export declare const DIGITAL_SIGNATURE_REL_TYPE = "http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/signature";
12
+ /** Custom pptx-viewer manifest namespace for extended signature references. */
13
+ export declare const PPTX_VIEWER_MANIFEST_NS = "urn:pptx-viewer:ooxml-signature:v1";
14
+ /** W3C XML Digital Signature namespace. */
15
+ export declare const XMLDSIG_NS = "http://www.w3.org/2000/09/xmldsig#";
16
+ /** OPC relationship transform algorithm URI. */
17
+ export declare const OPC_RELATIONSHIP_TRANSFORM = "http://schemas.openxmlformats.org/package/2006/RelationshipTransform";
18
+ /** Enveloped signature transform algorithm URI. */
19
+ export declare const XML_TRANSFORM_ENVELOPED_SIGNATURE = "http://www.w3.org/2000/09/xmldsig#enveloped-signature";
20
+ /** Set of supported XML canonicalization transform algorithm URIs. */
21
+ export declare const SUPPORTED_XML_CANON_TRANSFORMS: Set<string>;
22
+ /** Environment variable: path to file containing enterprise trust root PEM certificates. */
23
+ export declare const ENTERPRISE_TRUST_ROOTS_FILE_ENV = "PPTX_VIEWER_TRUST_ROOTS_FILE";
24
+ /** Environment variable: inline PEM trust roots. */
25
+ export declare const ENTERPRISE_TRUST_ROOTS_PEM_ENV = "PPTX_VIEWER_TRUST_ROOTS_PEM";
26
+ /** Environment variable: require revocation check. */
27
+ export declare const ENTERPRISE_REQUIRE_REVOCATION_ENV = "PPTX_VIEWER_REQUIRE_REVOCATION_CHECK";
28
+ /** Environment variable: fail on unknown revocation status. */
29
+ export declare const ENTERPRISE_FAIL_ON_REVOCATION_UNKNOWN_ENV = "PPTX_VIEWER_FAIL_ON_REVOCATION_UNKNOWN";
30
+ /** Environment variable: require timestamp authority. */
31
+ export declare const ENTERPRISE_REQUIRE_TIMESTAMP_ENV = "PPTX_VIEWER_REQUIRE_TIMESTAMP";
32
+ /**
33
+ * Mapping from XML Digital Signature digest algorithm URIs to hash function names.
34
+ * Used by Node-only code with `node:crypto` (lowercase names).
35
+ */
36
+ export declare const DIGEST_ALGORITHM_TO_HASH: Record<string, string>;
37
+ /**
38
+ * Mapping from XML Digital Signature digest algorithm URIs to Web Crypto algorithm names.
39
+ * Used by platform-agnostic code with `crypto.subtle.digest`.
40
+ */
41
+ export declare const DIGEST_ALGORITHM_TO_WEB_CRYPTO: Record<string, string>;
42
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/opc/signature/constants.ts"],"names":[],"mappings":"AACA;;;;;;GAMG;AAEH,yEAAyE;AACzE,eAAO,MAAM,iCAAiC,0FAC0C,CAAC;AAEzF,kEAAkE;AAClE,eAAO,MAAM,0BAA0B,6FACoD,CAAC;AAE5F,+EAA+E;AAC/E,eAAO,MAAM,uBAAuB,uCAAuC,CAAC;AAE5E,2CAA2C;AAC3C,eAAO,MAAM,UAAU,uCAAuC,CAAC;AAE/D,gDAAgD;AAChD,eAAO,MAAM,0BAA0B,yEACgC,CAAC;AAExE,mDAAmD;AACnD,eAAO,MAAM,iCAAiC,0DACU,CAAC;AAEzD,sEAAsE;AACtE,eAAO,MAAM,8BAA8B,aAMzC,CAAC;AAEH,4FAA4F;AAC5F,eAAO,MAAM,+BAA+B,iCAAiC,CAAC;AAE9E,oDAAoD;AACpD,eAAO,MAAM,8BAA8B,gCAAgC,CAAC;AAE5E,sDAAsD;AACtD,eAAO,MAAM,iCAAiC,yCAAyC,CAAC;AAExF,+DAA+D;AAC/D,eAAO,MAAM,yCAAyC,2CAA2C,CAAC;AAElG,yDAAyD;AACzD,eAAO,MAAM,gCAAgC,kCAAkC,CAAC;AAEhF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAK3D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,8BAA8B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKjE,CAAC"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Detect, parse, and validate digital signatures in OOXML packages.
3
+ *
4
+ * Digital signatures live in `_xmlsignatures/` parts:
5
+ * - `_xmlsignatures/origin.sigs` - relationship origin
6
+ * - `_xmlsignatures/sig1.xml`, `sig2.xml`, etc. - individual signatures
7
+ *
8
+ * Each signature XML follows the W3C XML-DSig spec and contains:
9
+ * - `ds:SignedInfo` with `ds:Reference` digests
10
+ * - `ds:SignatureValue` (base64-encoded signature)
11
+ * - `ds:KeyInfo > ds:X509Data > ds:X509Certificate` (base64-encoded DER cert)
12
+ */
13
+ /** Result of signature detection. */
14
+ export interface SignatureDetectionResult {
15
+ hasSignatures: boolean;
16
+ signatureCount: number;
17
+ signaturePaths: string[];
18
+ }
19
+ /** X.509 certificate information extracted from a signature. */
20
+ export interface SignatureCertificateInfo {
21
+ /** Base64-encoded DER certificate data. */
22
+ certificateBase64: string;
23
+ /** Issuer distinguished name (CN, O, etc.) if parseable. */
24
+ issuer?: string;
25
+ /** Subject distinguished name (CN, O, etc.) if parseable. */
26
+ subject?: string;
27
+ /** Certificate serial number as hex string. */
28
+ serialNumber?: string;
29
+ /** Not-before validity date (ISO string). */
30
+ validFrom?: string;
31
+ /** Not-after validity date (ISO string). */
32
+ validTo?: string;
33
+ }
34
+ /** Status of a digital signature. */
35
+ export type SignatureStatus = 'valid' | 'invalid' | 'expired' | 'unknownCA' | 'unverified';
36
+ /** Parsed digital signature with certificate info and validation status. */
37
+ export interface ParsedSignature {
38
+ /** Path to the signature XML in the ZIP. */
39
+ signaturePath: string;
40
+ /** The canonicalized signing method algorithm URI. */
41
+ signatureMethod?: string;
42
+ /** The digest method algorithm URI from the first reference. */
43
+ digestMethod?: string;
44
+ /** Base64-encoded signature value. */
45
+ signatureValue?: string;
46
+ /** Certificate information, if X.509 data was found. */
47
+ certificate?: SignatureCertificateInfo;
48
+ /** Signature validation status. */
49
+ status: SignatureStatus;
50
+ /** Reference URIs and their digest values. */
51
+ references: SignatureReference[];
52
+ }
53
+ /** A single ds:Reference in the SignedInfo. */
54
+ export interface SignatureReference {
55
+ /** The URI identifying the signed part. */
56
+ uri: string;
57
+ /** The digest method algorithm. */
58
+ digestMethod?: string;
59
+ /** Base64-encoded digest value. */
60
+ digestValue?: string;
61
+ }
62
+ /** The path prefix for all digital signature parts in an OOXML package. */
63
+ export declare const SIGNATURE_PART_PREFIX = "_xmlsignatures/";
64
+ /**
65
+ * Whether a package part (a zip entry path, with or without the leading slash, any case) is a
66
+ * digital signature part: the origin, a signature, or their relationships.
67
+ */
68
+ export declare function isSignaturePart(path: string): boolean;
69
+ /**
70
+ * Detect digital signatures by checking for `_xmlsignatures/` paths in the ZIP entries.
71
+ */
72
+ export declare function detectDigitalSignatures(zipEntryPaths: string[]): SignatureDetectionResult;
73
+ /**
74
+ * Get the list of ZIP entry paths that should be removed to strip signatures.
75
+ * Includes all `_xmlsignatures/` entries (XML, .sigs, .rels, etc.).
76
+ */
77
+ export declare function getSignaturePathsToStrip(zipEntryPaths: string[]): string[];
78
+ /**
79
+ * Parse a single ds:Signature XML document into structured signature info.
80
+ *
81
+ * @param signatureXml - The parsed XML object (from fast-xml-parser).
82
+ * @param signaturePath - Path to the sig*.xml file in the ZIP.
83
+ * @returns Parsed signature info with certificate data and unverified status.
84
+ */
85
+ export declare function parseSignatureXml(signatureXml: Record<string, unknown>, signaturePath: string): ParsedSignature;
86
+ /**
87
+ * Verify a signature's digest references against actual document content.
88
+ *
89
+ * Uses the Web Crypto API (SubtleCrypto) to compute SHA-256/SHA-1 digests
90
+ * of referenced parts and compare against the signed digest values.
91
+ *
92
+ * @param signature - The parsed signature to verify.
93
+ * @param getPartContent - Function that retrieves part content by URI.
94
+ * @returns The updated signature status after digest verification.
95
+ */
96
+ export declare function verifySignatureDigests(signature: ParsedSignature, getPartContent: (uri: string) => Promise<ArrayBuffer | undefined>): Promise<SignatureStatus>;
97
+ //# sourceMappingURL=detection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detection.d.ts","sourceRoot":"","sources":["../../../src/opc/signature/detection.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;GAWG;AAEH,qCAAqC;AACrC,MAAM,WAAW,wBAAwB;IACxC,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,gEAAgE;AAChE,MAAM,WAAW,wBAAwB;IACxC,2CAA2C;IAC3C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qCAAqC;AACrC,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,YAAY,CAAC;AAE3F,4EAA4E;AAC5E,MAAM,WAAW,eAAe;IAC/B,4CAA4C;IAC5C,aAAa,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,WAAW,CAAC,EAAE,wBAAwB,CAAC;IACvC,mCAAmC;IACnC,MAAM,EAAE,eAAe,CAAC;IACxB,8CAA8C;IAC9C,UAAU,EAAE,kBAAkB,EAAE,CAAC;CACjC;AAED,+CAA+C;AAC/C,MAAM,WAAW,kBAAkB;IAClC,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,2EAA2E;AAC3E,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AAGvD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,wBAAwB,CAUzF;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAE1E;AA2FD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAChC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,aAAa,EAAE,MAAM,GACnB,eAAe,CAsEjB;AAED;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAC3C,SAAS,EAAE,eAAe,EAC1B,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,GAC/D,OAAO,CAAC,eAAe,CAAC,CA6C1B"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Platform-agnostic digest computation using the Web Crypto API.
3
+ *
4
+ * Works in both browser and Node.js (18+) environments via `crypto.subtle`.
5
+ */
6
+ /**
7
+ * Compute a Base64-encoded digest of the given content using Web Crypto.
8
+ *
9
+ * @param content - The binary data to hash.
10
+ * @param digestAlgorithmUri - An XML Digital Signature digest algorithm URI
11
+ * (e.g. `http://www.w3.org/2001/04/xmlenc#sha256`).
12
+ * @returns The Base64-encoded digest, or `undefined` if the algorithm is unsupported
13
+ * or `crypto.subtle` is unavailable.
14
+ */
15
+ export declare function computeDigestBase64(content: Uint8Array, digestAlgorithmUri: string): Promise<string | undefined>;
16
+ //# sourceMappingURL=digest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digest.d.ts","sourceRoot":"","sources":["../../../src/opc/signature/digest.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAIH;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACxC,OAAO,EAAE,UAAU,EACnB,kBAAkB,EAAE,MAAM,GACxB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAc7B"}
@@ -0,0 +1,8 @@
1
+ export { SIGNATURE_PART_PREFIX, detectDigitalSignatures, getSignaturePathsToStrip, isSignaturePart, parseSignatureXml, verifySignatureDigests, type ParsedSignature, type SignatureCertificateInfo, type SignatureDetectionResult, type SignatureReference, type SignatureStatus, } from './detection.js';
2
+ export { DIGEST_ALGORITHM_TO_HASH, DIGEST_ALGORITHM_TO_WEB_CRYPTO, DIGITAL_SIGNATURE_ORIGIN_REL_TYPE, DIGITAL_SIGNATURE_REL_TYPE, ENTERPRISE_FAIL_ON_REVOCATION_UNKNOWN_ENV, ENTERPRISE_REQUIRE_REVOCATION_ENV, ENTERPRISE_REQUIRE_TIMESTAMP_ENV, ENTERPRISE_TRUST_ROOTS_FILE_ENV, ENTERPRISE_TRUST_ROOTS_PEM_ENV, OPC_RELATIONSHIP_TRANSFORM, PPTX_VIEWER_MANIFEST_NS, SUPPORTED_XML_CANON_TRANSFORMS, XMLDSIG_NS, XML_TRANSFORM_ENVELOPED_SIGNATURE, } from './constants.js';
3
+ export type { CertificateRevocationStatus, DigitalSignatureReport, DigitalSignatureVerificationStatus, LoadedSigningMaterial, OfficeSignatureReference, ParsedReferenceTransform, ReferenceTransformResult, SignatureCertificateInfo as SignatureNodeCertificateInfo, SignatureDetail, SignatureDetailStatus, SignatureReferenceCheck, SignatureValidationPolicy, SignOptions, SignResult, TimestampAuthorityStatus, } from './types.js';
4
+ export { escapeXmlAttr, escapeXmlText, extractAllTagText, extractFirstTagText, extractTagAttribute, isValidBase64, } from './xml-utils.js';
5
+ export { normalizePartPath, resolveReferenceUriToPart } from './reference-utils.js';
6
+ export { computeDigestBase64 } from './digest.js';
7
+ export { computeDetailStatus, computeVerificationStatus } from './inspection-status.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/opc/signature/index.ts"],"names":[],"mappings":"AAMA,OAAO,EACN,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,eAAe,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,wBAAwB,EACxB,8BAA8B,EAC9B,iCAAiC,EACjC,0BAA0B,EAC1B,yCAAyC,EACzC,iCAAiC,EACjC,gCAAgC,EAChC,+BAA+B,EAC/B,8BAA8B,EAC9B,0BAA0B,EAC1B,uBAAuB,EACvB,8BAA8B,EAC9B,UAAU,EACV,iCAAiC,GACjC,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACX,2BAA2B,EAC3B,sBAAsB,EACtB,kCAAkC,EAClC,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,IAAI,4BAA4B,EACxD,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,WAAW,EACX,UAAU,EACV,wBAAwB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EACN,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Pure status-computation logic for digital signature inspection.
3
+ *
4
+ * These functions are platform-agnostic - they accept data and policy
5
+ * as parameters instead of reading from the environment.
6
+ */
7
+ import type { DigitalSignatureReport, SignatureDetail, SignatureDetailStatus, SignatureValidationPolicy } from './types.js';
8
+ /**
9
+ * Compute the overall status for an individual signature detail
10
+ * based on its reference checks, trust, revocation, and timestamp statuses.
11
+ *
12
+ * @param detail - A partial `SignatureDetail` with the fields needed for status computation.
13
+ * @param policy - The validation policy controlling revocation/timestamp strictness.
14
+ * @returns The computed status for this signature detail.
15
+ */
16
+ export declare function computeDetailStatus(detail: Pick<SignatureDetail, 'signatureValueStatus' | 'missingPartReferences' | 'referenceChecks' | 'certificateTrustStatus' | 'certificateRevocationStatus' | 'timestampAuthorityStatus'>, policy: SignatureValidationPolicy): SignatureDetailStatus;
17
+ /**
18
+ * Compute the overall verification status from all signature details.
19
+ *
20
+ * @param details - Array of signature details from all signatures in the package.
21
+ * @returns The overall verification status for the report.
22
+ */
23
+ export declare function computeVerificationStatus(details: SignatureDetail[]): DigitalSignatureReport['verificationStatus'];
24
+ //# sourceMappingURL=inspection-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspection-status.d.ts","sourceRoot":"","sources":["../../../src/opc/signature/inspection-status.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH,OAAO,KAAK,EACX,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,yBAAyB,EACzB,MAAM,YAAY,CAAC;AAEpB;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,IAAI,CACX,eAAe,EACb,sBAAsB,GACtB,uBAAuB,GACvB,iBAAiB,GACjB,wBAAwB,GACxB,6BAA6B,GAC7B,0BAA0B,CAC5B,EACD,MAAM,EAAE,yBAAyB,GAC/B,qBAAqB,CAsDvB;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACxC,OAAO,EAAE,eAAe,EAAE,GACxB,sBAAsB,CAAC,oBAAoB,CAAC,CA2B9C"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Pure string utilities for resolving digital signature reference URIs
3
+ * to ZIP part paths. Platform-agnostic (no Node dependencies).
4
+ */
5
+ /** Normalize a ZIP part path: convert backslashes to forward slashes and strip leading slashes. */
6
+ export declare function normalizePartPath(partPath: string): string;
7
+ /**
8
+ * Resolve a signature reference URI to a ZIP part path.
9
+ * Returns `undefined` for empty URIs, fragment-only URIs (#...), or invalid input.
10
+ */
11
+ export declare function resolveReferenceUriToPart(uri: string): string | undefined;
12
+ //# sourceMappingURL=reference-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference-utils.d.ts","sourceRoot":"","sources":["../../../src/opc/signature/reference-utils.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,mGAAmG;AACnG,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOzE"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Rich types for digital signature inspection, signing, and PKI validation.
3
+ *
4
+ * These are platform-agnostic - used by both browser-level detection
5
+ * and Node-only full verification modules.
6
+ */
7
+ export type CertificateRevocationStatus = 'good' | 'revoked' | 'unknown' | 'not-checked' | 'error';
8
+ export type TimestampAuthorityStatus = 'valid' | 'invalid' | 'not-present' | 'not-checked' | 'error' | 'untrusted';
9
+ export interface SignatureReferenceCheck {
10
+ uri: string;
11
+ resolvedPartPath?: string;
12
+ existsInPackage: boolean;
13
+ digestAlgorithm?: string;
14
+ digestExpectedBase64?: string;
15
+ digestActualBase64?: string;
16
+ digestStatus: 'verified' | 'mismatch' | 'missing-part' | 'unsupported-transform' | 'unsupported-algorithm' | 'insufficient-data';
17
+ transformAlgorithms: string[];
18
+ }
19
+ export interface SignatureCertificateInfo {
20
+ subject?: string;
21
+ issuer?: string;
22
+ serialNumber?: string;
23
+ validFrom?: string;
24
+ validTo?: string;
25
+ }
26
+ export type SignatureDetailStatus = 'verified' | 'digest-mismatch' | 'reference-missing' | 'signature-invalid' | 'certificate-untrusted' | 'certificate-revoked' | 'timestamp-invalid' | 'timestamp-untrusted' | 'structural-only';
27
+ export interface SignatureDetail {
28
+ path: string;
29
+ signatureMethod?: string;
30
+ canonicalizationMethod?: string;
31
+ signingTime?: string;
32
+ referenceCount: number;
33
+ missingPartReferences: string[];
34
+ unsupportedTransforms: string[];
35
+ referenceChecks: SignatureReferenceCheck[];
36
+ certificate?: SignatureCertificateInfo;
37
+ signatureValueStatus: 'verified' | 'invalid' | 'not-checked';
38
+ certificateTrustStatus: 'trusted' | 'untrusted' | 'not-checked';
39
+ certificateTrustError?: string;
40
+ certificateRevocationStatus: CertificateRevocationStatus;
41
+ certificateRevocationError?: string;
42
+ timestampAuthorityStatus: TimestampAuthorityStatus;
43
+ timestampAuthorityError?: string;
44
+ certificateFingerprintSha256?: string;
45
+ status: SignatureDetailStatus;
46
+ }
47
+ export type DigitalSignatureVerificationStatus = 'unsigned' | 'verified-trusted' | 'verified-untrusted' | 'certificate-revoked' | 'digest-mismatch' | 'reference-missing' | 'signature-invalid' | 'timestamp-invalid' | 'timestamp-untrusted' | 'present-not-verified' | 'invalid-package' | 'error';
48
+ export interface DigitalSignatureReport {
49
+ supported: boolean;
50
+ hasSignature: boolean;
51
+ signatureCount: number;
52
+ signaturePaths: string[];
53
+ verificationStatus: DigitalSignatureVerificationStatus;
54
+ error?: string;
55
+ details?: SignatureDetail[];
56
+ hasOriginRelationship?: boolean;
57
+ }
58
+ export interface SignOptions {
59
+ certificatePath: string;
60
+ certificatePassword?: string;
61
+ }
62
+ export interface SignResult {
63
+ success: boolean;
64
+ signedData?: Uint8Array;
65
+ report: DigitalSignatureReport;
66
+ error?: string;
67
+ }
68
+ export interface LoadedSigningMaterial {
69
+ privateKeyPem: string;
70
+ certificatePem: string;
71
+ }
72
+ export interface ParsedReferenceTransform {
73
+ algorithm: string;
74
+ relationshipReferenceIds: string[];
75
+ }
76
+ export interface ReferenceTransformResult {
77
+ data: Uint8Array;
78
+ unsupportedAlgorithms: string[];
79
+ }
80
+ export interface SignatureValidationPolicy {
81
+ requireRevocationCheck: boolean;
82
+ failOnRevocationUnknown: boolean;
83
+ requireTimestamp: boolean;
84
+ }
85
+ export interface OfficeSignatureReference {
86
+ uri: string;
87
+ digestMethod: string;
88
+ digestValue: string;
89
+ }
90
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/opc/signature/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Pure regex-based XML extraction utilities for digital signature processing.
3
+ *
4
+ * These functions operate on raw XML strings without requiring a DOM parser,
5
+ * making them platform-agnostic (browser + Node).
6
+ */
7
+ /**
8
+ * Escape special characters in an XML attribute value.
9
+ * Handles `&`, `<`, `>`, `"`, and `'` so the result is safe inside both
10
+ * double- and single-quoted attributes.
11
+ */
12
+ export declare function escapeXmlAttr(value: string): string;
13
+ /**
14
+ * Escape special characters in XML text content.
15
+ * Only `&`, `<`, and `>` need escaping outside of attribute values.
16
+ */
17
+ export declare function escapeXmlText(value: string): string;
18
+ /** Validate that `value` only contains characters from the standard base64 alphabet. */
19
+ export declare function isValidBase64(value: string): boolean;
20
+ /**
21
+ * Extract an attribute value from the first matching XML tag via regex.
22
+ * Namespace prefixes on the tag name are supported via the pattern.
23
+ */
24
+ export declare function extractTagAttribute(xml: string, tagName: string, attributeName: string): string | undefined;
25
+ /**
26
+ * Extract the text content of the first matching tag, ignoring namespace prefixes.
27
+ * Whitespace within the content is collapsed.
28
+ */
29
+ export declare function extractFirstTagText(xml: string, localName: string): string | undefined;
30
+ /**
31
+ * Extract the text content of all matching tags, ignoring namespace prefixes.
32
+ * Whitespace within each match is collapsed.
33
+ */
34
+ export declare function extractAllTagText(xml: string, localName: string): string[];
35
+ //# sourceMappingURL=xml-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xml-utils.d.ts","sourceRoot":"","sources":["../../../src/opc/signature/xml-utils.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOnD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAClC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GACnB,MAAM,GAAG,SAAS,CAOpB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOtF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAe1E"}