ooxml-core 0.8.0 → 0.10.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 (316) hide show
  1. package/README.md +21 -13
  2. package/dist/chart/blank-display.d.ts +37 -0
  3. package/dist/chart/blank-display.d.ts.map +1 -0
  4. package/dist/chart/box-stats.d.ts +28 -0
  5. package/dist/chart/box-stats.d.ts.map +1 -0
  6. package/dist/chart/index.cjs +229 -0
  7. package/dist/chart/index.d.ts +6 -0
  8. package/dist/chart/index.d.ts.map +1 -0
  9. package/dist/chart/index.mjs +220 -0
  10. package/dist/chart/regression.d.ts +40 -0
  11. package/dist/chart/regression.d.ts.map +1 -0
  12. package/dist/chart/stacked-series.d.ts +39 -0
  13. package/dist/chart/stacked-series.d.ts.map +1 -0
  14. package/dist/crypto/aes-ecb.d.ts +13 -0
  15. package/dist/crypto/aes-ecb.d.ts.map +1 -0
  16. package/dist/crypto/decrypt.d.ts +63 -0
  17. package/dist/crypto/decrypt.d.ts.map +1 -0
  18. package/dist/crypto/detect.d.ts +56 -0
  19. package/dist/crypto/detect.d.ts.map +1 -0
  20. package/dist/crypto/encrypt.d.ts +27 -0
  21. package/dist/crypto/encrypt.d.ts.map +1 -0
  22. package/dist/crypto/encryption-info-write.d.ts +46 -0
  23. package/dist/crypto/encryption-info-write.d.ts.map +1 -0
  24. package/dist/crypto/encryption-info.d.ts +22 -0
  25. package/dist/crypto/encryption-info.d.ts.map +1 -0
  26. package/dist/crypto/errors.d.ts +39 -0
  27. package/dist/crypto/errors.d.ts.map +1 -0
  28. package/dist/crypto/index.cjs +1805 -0
  29. package/dist/crypto/index.d.ts +26 -0
  30. package/dist/crypto/index.d.ts.map +1 -0
  31. package/dist/crypto/index.mjs +1774 -0
  32. package/dist/crypto/key-derivation.d.ts +73 -0
  33. package/dist/crypto/key-derivation.d.ts.map +1 -0
  34. package/dist/crypto/types.d.ts +104 -0
  35. package/dist/crypto/types.d.ts.map +1 -0
  36. package/dist/docx/embedded.cjs +2 -0
  37. package/dist/docx/embedded.mjs +2 -0
  38. package/dist/docx/index.cjs +2 -0
  39. package/dist/docx/index.mjs +2 -0
  40. package/dist/docx/load/detect.d.ts +14 -2
  41. package/dist/docx/load/detect.d.ts.map +1 -1
  42. package/dist/docx/load/index.cjs +8995 -7728
  43. package/dist/docx/load/index.d.ts +3 -1
  44. package/dist/docx/load/index.d.ts.map +1 -1
  45. package/dist/docx/load/index.mjs +8990 -7729
  46. package/dist/docx/load/legacy-doc.d.ts.map +1 -1
  47. package/dist/geometry/index.cjs +192 -0
  48. package/dist/geometry/index.d.ts +1 -0
  49. package/dist/geometry/index.d.ts.map +1 -1
  50. package/dist/geometry/index.mjs +192 -1
  51. package/dist/geometry/svg-path-curves.d.ts +11 -0
  52. package/dist/geometry/svg-path-curves.d.ts.map +1 -0
  53. package/dist/geometry/svg-path-flatten.d.ts +26 -0
  54. package/dist/geometry/svg-path-flatten.d.ts.map +1 -0
  55. package/dist/geometry/svg-path-types.d.ts +6 -0
  56. package/dist/geometry/svg-path-types.d.ts.map +1 -0
  57. package/dist/index.cjs +1303 -22
  58. package/dist/index.d.ts +2 -0
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.mjs +1302 -23
  61. package/dist/opc/index.cjs +797 -1
  62. package/dist/opc/index.d.ts +2 -0
  63. package/dist/opc/index.d.ts.map +1 -1
  64. package/dist/opc/index.mjs +784 -3
  65. package/dist/opc/properties/app.d.ts +10 -0
  66. package/dist/opc/properties/app.d.ts.map +1 -0
  67. package/dist/opc/properties/core.d.ts +13 -0
  68. package/dist/opc/properties/core.d.ts.map +1 -0
  69. package/dist/opc/properties/custom.d.ts +15 -0
  70. package/dist/opc/properties/custom.d.ts.map +1 -0
  71. package/dist/opc/properties/index.d.ts +5 -0
  72. package/dist/opc/properties/index.d.ts.map +1 -0
  73. package/dist/opc/properties/types.d.ts +114 -0
  74. package/dist/opc/properties/types.d.ts.map +1 -0
  75. package/dist/opc/relationship-types.d.ts +1 -0
  76. package/dist/opc/relationship-types.d.ts.map +1 -1
  77. package/dist/opc/safe-href.d.ts +34 -0
  78. package/dist/opc/safe-href.d.ts.map +1 -1
  79. package/dist/opc/signature/constants.d.ts +42 -0
  80. package/dist/opc/signature/constants.d.ts.map +1 -0
  81. package/dist/opc/signature/detection.d.ts +97 -0
  82. package/dist/opc/signature/detection.d.ts.map +1 -0
  83. package/dist/opc/signature/digest.d.ts +16 -0
  84. package/dist/opc/signature/digest.d.ts.map +1 -0
  85. package/dist/opc/signature/index.d.ts +8 -0
  86. package/dist/opc/signature/index.d.ts.map +1 -0
  87. package/dist/opc/signature/inspection-status.d.ts +24 -0
  88. package/dist/opc/signature/inspection-status.d.ts.map +1 -0
  89. package/dist/opc/signature/reference-utils.d.ts +12 -0
  90. package/dist/opc/signature/reference-utils.d.ts.map +1 -0
  91. package/dist/opc/signature/types.d.ts +90 -0
  92. package/dist/opc/signature/types.d.ts.map +1 -0
  93. package/dist/opc/signature/xml-utils.d.ts +35 -0
  94. package/dist/opc/signature/xml-utils.d.ts.map +1 -0
  95. package/dist/pptx/chunks/{index-CojJtI77.d.ts → index-BWUBPGgv.d.ts} +9 -11
  96. package/dist/pptx/chunks/index-BWUBPGgv.d.ts.map +1 -0
  97. package/dist/pptx/chunks/{signature-inspection-status-Bh2oap7B.d.ts → inspection-status-B2E-jSpG.d.ts} +8 -8
  98. package/dist/pptx/chunks/inspection-status-B2E-jSpG.d.ts.map +1 -0
  99. package/dist/pptx/cli/index.cjs +1409 -895
  100. package/dist/pptx/cli/index.mjs +1409 -895
  101. package/dist/pptx/converter/index.d.ts +1 -1
  102. package/dist/pptx/index.cjs +1933 -1391
  103. package/dist/pptx/index.d.ts +20 -67
  104. package/dist/pptx/index.d.ts.map +1 -1
  105. package/dist/pptx/index.mjs +1933 -1391
  106. package/dist/pptx/signature-node/index.cjs +5 -5
  107. package/dist/pptx/signature-node/index.d.ts +1 -1
  108. package/dist/pptx/signature-node/index.mjs +5 -5
  109. package/dist/text/index.cjs +122 -0
  110. package/dist/text/index.d.ts +3 -0
  111. package/dist/text/index.d.ts.map +1 -0
  112. package/dist/text/index.mjs +117 -0
  113. package/dist/text/unicode-script-detection.d.ts +54 -0
  114. package/dist/text/unicode-script-detection.d.ts.map +1 -0
  115. package/dist/visio/edit-master-index.d.ts +10 -0
  116. package/dist/visio/edit-master-index.d.ts.map +1 -0
  117. package/dist/visio/edit-master-scope.d.ts +7 -0
  118. package/dist/visio/edit-master-scope.d.ts.map +1 -0
  119. package/dist/visio/edit-scope.d.ts.map +1 -1
  120. package/dist/visio/formula-arithmetic.d.ts +8 -0
  121. package/dist/visio/formula-arithmetic.d.ts.map +1 -0
  122. package/dist/visio/formula-evaluate.d.ts.map +1 -1
  123. package/dist/visio/formula-master.d.ts +13 -0
  124. package/dist/visio/formula-master.d.ts.map +1 -0
  125. package/dist/visio/formula-numeric-functions.d.ts +8 -0
  126. package/dist/visio/formula-numeric-functions.d.ts.map +1 -0
  127. package/dist/visio/formula.d.ts +1 -1
  128. package/dist/visio/formula.d.ts.map +1 -1
  129. package/dist/visio/index.cjs +540 -61
  130. package/dist/visio/index.mjs +540 -61
  131. package/dist/xlsx/edit/annotations.d.ts +5 -1
  132. package/dist/xlsx/edit/annotations.d.ts.map +1 -1
  133. package/dist/xlsx/edit/cell-values.d.ts +7 -2
  134. package/dist/xlsx/edit/cell-values.d.ts.map +1 -1
  135. package/dist/xlsx/edit/clipboard.d.ts.map +1 -1
  136. package/dist/xlsx/edit/doc-properties.d.ts +14 -0
  137. package/dist/xlsx/edit/doc-properties.d.ts.map +1 -0
  138. package/dist/xlsx/edit/fill-series.d.ts.map +1 -1
  139. package/dist/xlsx/edit/find.d.ts +2 -1
  140. package/dist/xlsx/edit/find.d.ts.map +1 -1
  141. package/dist/xlsx/edit/format-lines.d.ts +22 -0
  142. package/dist/xlsx/edit/format-lines.d.ts.map +1 -0
  143. package/dist/xlsx/edit/format.d.ts +2 -1
  144. package/dist/xlsx/edit/format.d.ts.map +1 -1
  145. package/dist/xlsx/edit/history-refs.d.ts +51 -0
  146. package/dist/xlsx/edit/history-refs.d.ts.map +1 -0
  147. package/dist/xlsx/edit/history.d.ts +40 -5
  148. package/dist/xlsx/edit/history.d.ts.map +1 -1
  149. package/dist/xlsx/edit/index.d.ts +3 -0
  150. package/dist/xlsx/edit/index.d.ts.map +1 -1
  151. package/dist/xlsx/edit/input-text.d.ts +13 -0
  152. package/dist/xlsx/edit/input-text.d.ts.map +1 -0
  153. package/dist/xlsx/edit/merge.d.ts +10 -2
  154. package/dist/xlsx/edit/merge.d.ts.map +1 -1
  155. package/dist/xlsx/edit/session.d.ts.map +1 -1
  156. package/dist/xlsx/edit/sheets.d.ts.map +1 -1
  157. package/dist/xlsx/edit/shift-formulas.d.ts +2 -1
  158. package/dist/xlsx/edit/shift-formulas.d.ts.map +1 -1
  159. package/dist/xlsx/edit/shift-preserved.d.ts +17 -0
  160. package/dist/xlsx/edit/shift-preserved.d.ts.map +1 -0
  161. package/dist/xlsx/edit/shift-sheet.d.ts +2 -2
  162. package/dist/xlsx/edit/shift-sheet.d.ts.map +1 -1
  163. package/dist/xlsx/edit/structure.d.ts.map +1 -1
  164. package/dist/xlsx/edit/types.d.ts +7 -0
  165. package/dist/xlsx/edit/types.d.ts.map +1 -1
  166. package/dist/xlsx/edit/validation-list.d.ts +24 -0
  167. package/dist/xlsx/edit/validation-list.d.ts.map +1 -0
  168. package/dist/xlsx/edit/validation.d.ts +2 -1
  169. package/dist/xlsx/edit/validation.d.ts.map +1 -1
  170. package/dist/xlsx/formula/area-index.d.ts +18 -0
  171. package/dist/xlsx/formula/area-index.d.ts.map +1 -0
  172. package/dist/xlsx/formula/array-context.d.ts.map +1 -1
  173. package/dist/xlsx/formula/ast.d.ts +5 -1
  174. package/dist/xlsx/formula/ast.d.ts.map +1 -1
  175. package/dist/xlsx/formula/call.d.ts.map +1 -1
  176. package/dist/xlsx/formula/coerce.d.ts.map +1 -1
  177. package/dist/xlsx/formula/context.d.ts +5 -0
  178. package/dist/xlsx/formula/context.d.ts.map +1 -1
  179. package/dist/xlsx/formula/date-serial.d.ts +11 -4
  180. package/dist/xlsx/formula/date-serial.d.ts.map +1 -1
  181. package/dist/xlsx/formula/engine-core.d.ts +6 -0
  182. package/dist/xlsx/formula/engine-core.d.ts.map +1 -1
  183. package/dist/xlsx/formula/engine-host.d.ts +35 -3
  184. package/dist/xlsx/formula/engine-host.d.ts.map +1 -1
  185. package/dist/xlsx/formula/engine-util.d.ts.map +1 -1
  186. package/dist/xlsx/formula/engine.d.ts.map +1 -1
  187. package/dist/xlsx/formula/evaluator.d.ts.map +1 -1
  188. package/dist/xlsx/formula/functions/array-shape.d.ts.map +1 -1
  189. package/dist/xlsx/formula/functions/array.d.ts.map +1 -1
  190. package/dist/xlsx/formula/functions/criteria-index.d.ts +12 -0
  191. package/dist/xlsx/formula/functions/criteria-index.d.ts.map +1 -0
  192. package/dist/xlsx/formula/functions/criteria.d.ts +24 -16
  193. package/dist/xlsx/formula/functions/criteria.d.ts.map +1 -1
  194. package/dist/xlsx/formula/functions/date-calc.d.ts +4 -0
  195. package/dist/xlsx/formula/functions/date-calc.d.ts.map +1 -1
  196. package/dist/xlsx/formula/functions/depreciation.d.ts.map +1 -1
  197. package/dist/xlsx/formula/functions/financial.d.ts.map +1 -1
  198. package/dist/xlsx/formula/functions/helpers.d.ts.map +1 -1
  199. package/dist/xlsx/formula/functions/logical.d.ts.map +1 -1
  200. package/dist/xlsx/formula/functions/lookup-core.d.ts +14 -2
  201. package/dist/xlsx/formula/functions/lookup-core.d.ts.map +1 -1
  202. package/dist/xlsx/formula/functions/lookup.d.ts.map +1 -1
  203. package/dist/xlsx/formula/functions/math-mod.d.ts +8 -0
  204. package/dist/xlsx/formula/functions/math-mod.d.ts.map +1 -0
  205. package/dist/xlsx/formula/functions/math-sum.d.ts.map +1 -1
  206. package/dist/xlsx/formula/functions/math.d.ts.map +1 -1
  207. package/dist/xlsx/formula/functions/statistical-count.d.ts.map +1 -1
  208. package/dist/xlsx/formula/functions/statistical.d.ts.map +1 -1
  209. package/dist/xlsx/formula/functions/stats-core.d.ts +6 -0
  210. package/dist/xlsx/formula/functions/stats-core.d.ts.map +1 -1
  211. package/dist/xlsx/formula/functions/text-case.d.ts +14 -0
  212. package/dist/xlsx/formula/functions/text-case.d.ts.map +1 -0
  213. package/dist/xlsx/formula/functions/text.d.ts.map +1 -1
  214. package/dist/xlsx/formula/functions/workdays.d.ts.map +1 -1
  215. package/dist/xlsx/formula/graph-index.d.ts +15 -0
  216. package/dist/xlsx/formula/graph-index.d.ts.map +1 -0
  217. package/dist/xlsx/formula/graph.d.ts +13 -18
  218. package/dist/xlsx/formula/graph.d.ts.map +1 -1
  219. package/dist/xlsx/formula/operators.d.ts +9 -0
  220. package/dist/xlsx/formula/operators.d.ts.map +1 -1
  221. package/dist/xlsx/formula/parser.d.ts +2 -0
  222. package/dist/xlsx/formula/parser.d.ts.map +1 -1
  223. package/dist/xlsx/formula/references.d.ts +4 -1
  224. package/dist/xlsx/formula/references.d.ts.map +1 -1
  225. package/dist/xlsx/formula/text-number.d.ts.map +1 -1
  226. package/dist/xlsx/formula/transform.d.ts.map +1 -1
  227. package/dist/xlsx/formula/values.d.ts +44 -3
  228. package/dist/xlsx/formula/values.d.ts.map +1 -1
  229. package/dist/xlsx/index.cjs +4698 -1322
  230. package/dist/xlsx/index.mjs +4688 -1323
  231. package/dist/xlsx/layout/anchors.d.ts +47 -0
  232. package/dist/xlsx/layout/anchors.d.ts.map +1 -0
  233. package/dist/xlsx/layout/cf-evaluator.d.ts +1 -2
  234. package/dist/xlsx/layout/cf-evaluator.d.ts.map +1 -1
  235. package/dist/xlsx/layout/cf-helpers.d.ts +8 -1
  236. package/dist/xlsx/layout/cf-helpers.d.ts.map +1 -1
  237. package/dist/xlsx/layout/index.d.ts +1 -0
  238. package/dist/xlsx/layout/index.d.ts.map +1 -1
  239. package/dist/xlsx/load/csv.d.ts +24 -3
  240. package/dist/xlsx/load/csv.d.ts.map +1 -1
  241. package/dist/xlsx/load/detect.d.ts +39 -7
  242. package/dist/xlsx/load/detect.d.ts.map +1 -1
  243. package/dist/xlsx/load/errors.d.ts +10 -0
  244. package/dist/xlsx/load/errors.d.ts.map +1 -0
  245. package/dist/xlsx/load/index.cjs +16220 -12163
  246. package/dist/xlsx/load/index.d.ts +5 -2
  247. package/dist/xlsx/load/index.d.ts.map +1 -1
  248. package/dist/xlsx/load/index.mjs +16213 -12164
  249. package/dist/xlsx/load/text-decode.d.ts +7 -0
  250. package/dist/xlsx/load/text-decode.d.ts.map +1 -0
  251. package/dist/xlsx/model.d.ts +121 -17
  252. package/dist/xlsx/model.d.ts.map +1 -1
  253. package/dist/xlsx/numfmt/date.d.ts +7 -0
  254. package/dist/xlsx/numfmt/date.d.ts.map +1 -1
  255. package/dist/xlsx/numfmt/format.d.ts.map +1 -1
  256. package/dist/xlsx/numfmt/fraction.d.ts +5 -1
  257. package/dist/xlsx/numfmt/fraction.d.ts.map +1 -1
  258. package/dist/xlsx/numfmt/input-date.d.ts.map +1 -1
  259. package/dist/xlsx/numfmt/input.d.ts.map +1 -1
  260. package/dist/xlsx/numfmt/number.d.ts.map +1 -1
  261. package/dist/xlsx/read/conditional.d.ts.map +1 -1
  262. package/dist/xlsx/read/drawing.d.ts +2 -2
  263. package/dist/xlsx/read/drawing.d.ts.map +1 -1
  264. package/dist/xlsx/read/load.d.ts.map +1 -1
  265. package/dist/xlsx/read/package.d.ts +18 -2
  266. package/dist/xlsx/read/package.d.ts.map +1 -1
  267. package/dist/xlsx/read/sheet-data.d.ts.map +1 -1
  268. package/dist/xlsx/read/sheet-props.d.ts +15 -1
  269. package/dist/xlsx/read/sheet-props.d.ts.map +1 -1
  270. package/dist/xlsx/read/smart-art.d.ts +12 -0
  271. package/dist/xlsx/read/smart-art.d.ts.map +1 -0
  272. package/dist/xlsx/read/styles.d.ts.map +1 -1
  273. package/dist/xlsx/read/workbook-part.d.ts +5 -2
  274. package/dist/xlsx/read/workbook-part.d.ts.map +1 -1
  275. package/dist/xlsx/read/worksheet.d.ts.map +1 -1
  276. package/dist/xlsx/write/attr-merge.d.ts +10 -0
  277. package/dist/xlsx/write/attr-merge.d.ts.map +1 -0
  278. package/dist/xlsx/write/carried-refs.d.ts +61 -0
  279. package/dist/xlsx/write/carried-refs.d.ts.map +1 -0
  280. package/dist/xlsx/write/comments.d.ts +12 -2
  281. package/dist/xlsx/write/comments.d.ts.map +1 -1
  282. package/dist/xlsx/write/conditional.d.ts.map +1 -1
  283. package/dist/xlsx/write/doc-props.d.ts +30 -0
  284. package/dist/xlsx/write/doc-props.d.ts.map +1 -0
  285. package/dist/xlsx/write/drawing.d.ts +5 -0
  286. package/dist/xlsx/write/drawing.d.ts.map +1 -1
  287. package/dist/xlsx/write/metadata.d.ts +23 -0
  288. package/dist/xlsx/write/metadata.d.ts.map +1 -0
  289. package/dist/xlsx/write/package-writer.d.ts +6 -0
  290. package/dist/xlsx/write/package-writer.d.ts.map +1 -1
  291. package/dist/xlsx/write/page-setup.d.ts +8 -0
  292. package/dist/xlsx/write/page-setup.d.ts.map +1 -0
  293. package/dist/xlsx/write/save.d.ts.map +1 -1
  294. package/dist/xlsx/write/sheet-data.d.ts +8 -0
  295. package/dist/xlsx/write/sheet-data.d.ts.map +1 -1
  296. package/dist/xlsx/write/sheet-parts.d.ts +6 -0
  297. package/dist/xlsx/write/sheet-parts.d.ts.map +1 -1
  298. package/dist/xlsx/write/sheet-props.d.ts +0 -6
  299. package/dist/xlsx/write/sheet-props.d.ts.map +1 -1
  300. package/dist/xlsx/write/styles.d.ts.map +1 -1
  301. package/dist/xlsx/write/table-patch.d.ts +12 -0
  302. package/dist/xlsx/write/table-patch.d.ts.map +1 -0
  303. package/dist/xlsx/write/tables.d.ts +9 -0
  304. package/dist/xlsx/write/tables.d.ts.map +1 -1
  305. package/dist/xlsx/write/vml-ids.d.ts +29 -0
  306. package/dist/xlsx/write/vml-ids.d.ts.map +1 -0
  307. package/dist/xlsx/write/workbook-part.d.ts +1 -4
  308. package/dist/xlsx/write/workbook-part.d.ts.map +1 -1
  309. package/dist/xlsx/write/worksheet.d.ts.map +1 -1
  310. package/dist/xml/index.cjs +4 -0
  311. package/dist/xml/index.mjs +4 -0
  312. package/dist/xml/namespaces.d.ts +4 -0
  313. package/dist/xml/namespaces.d.ts.map +1 -1
  314. package/package.json +16 -1
  315. package/dist/pptx/chunks/index-CojJtI77.d.ts.map +0 -1
  316. package/dist/pptx/chunks/signature-inspection-status-Bh2oap7B.d.ts.map +0 -1
@@ -0,0 +1,47 @@
1
+ import type { DrawingAnchor, Worksheet } from '../model.js';
2
+ import { type GridMetrics } from './metrics.js';
3
+ /** A rectangle on the grid plane in pixels at the metrics' zoom (origin: top-left of A1). */
4
+ export interface PixelBox {
5
+ x: number;
6
+ y: number;
7
+ w: number;
8
+ h: number;
9
+ }
10
+ /** Which anchor form `pixelBoxToAnchor` produces. */
11
+ export type AnchorKind = 'twoCell' | 'oneCell';
12
+ /** Extent used when a one-cell anchor has no `ext` (200 px, Excel's default chart size). */
13
+ export declare const DEFAULT_ANCHOR_EXTENT_EMU = 1905000;
14
+ /** Smallest edge of a two-cell box, in pixels, so a collapsed anchor stays selectable. */
15
+ export declare const MIN_TWO_CELL_PIXELS = 4;
16
+ /**
17
+ * The anchor form of an existing anchor. Absolute anchors are read into the model as a one-cell
18
+ * marker on A1 with their position as offsets, so they report `oneCell`.
19
+ */
20
+ export declare function anchorKind(anchor: DrawingAnchor): AnchorKind;
21
+ /**
22
+ * The plane rectangle of an anchor. Two-cell anchors span their markers (at least
23
+ * `MIN_TWO_CELL_PIXELS` per edge); one-cell and absolute anchors start at their marker and take
24
+ * their extent (`DEFAULT_ANCHOR_EXTENT_EMU` when missing). `metrics` defaults to the sheet's grid
25
+ * at its own zoom.
26
+ */
27
+ export declare function anchorToPixelBox(sheet: Worksheet, anchor: DrawingAnchor, metrics?: GridMetrics): PixelBox;
28
+ /**
29
+ * The anchor that puts an object at a plane rectangle. `like` keeps the form of an existing
30
+ * anchor (pass the object's current anchor when moving or resizing it) or names one; the default
31
+ * is a one-cell anchor. Offsets and extents are whole EMU at 100% zoom.
32
+ */
33
+ export declare function pixelBoxToAnchor(sheet: Worksheet, box: PixelBox, metrics?: GridMetrics, like?: DrawingAnchor | AnchorKind): DrawingAnchor;
34
+ /** An EMU extent for a size in pixels at 100% zoom (rounded to whole EMU). */
35
+ export declare function pixelSizeToExtent(width: number, height: number): {
36
+ cx: number;
37
+ cy: number;
38
+ };
39
+ /**
40
+ * A one-cell anchor at a cell for a picture of `width` x `height` pixels, scaled down to at most
41
+ * `maxWidth` pixels wide (default 640, as Insert > Pictures does) keeping its aspect ratio.
42
+ */
43
+ export declare function pictureAnchorAt(cell: {
44
+ row: number;
45
+ col: number;
46
+ }, width: number, height: number, maxWidth?: number): DrawingAnchor;
47
+ //# sourceMappingURL=anchors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchors.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/anchors.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAEnE,6FAA6F;AAC7F,MAAM,WAAW,QAAQ;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AAED,qDAAqD;AACrD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAE/C,4FAA4F;AAC5F,eAAO,MAAM,yBAAyB,UAAU,CAAC;AAEjD,0FAA0F;AAC1F,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAIrC;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,UAAU,CAE5D;AAWD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC/B,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE,WAAsC,GAC7C,QAAQ,CAkBV;AAaD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC/B,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,QAAQ,EACb,OAAO,GAAE,WAAsC,EAC/C,IAAI,GAAE,aAAa,GAAG,UAAsB,GAC1C,aAAa,CAOf;AAED,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAE3F;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC9B,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAClC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,QAAQ,SAAM,GACZ,aAAa,CAMf"}
@@ -1,3 +1,4 @@
1
+ export { iconIndex, scaleColor } from './cf-helpers.js';
1
2
  import type { CellValue, Workbook } from '../model.js';
2
3
  import type { ConditionalFormatEvaluator } from './types.js';
3
4
  export type CellAt = {
@@ -21,6 +22,4 @@ export interface ConditionalFormatOptions {
21
22
  * Formulas are relative to the top-left cell of the format's first range, as in SpreadsheetML.
22
23
  */
23
24
  export declare function createConditionalFormatEvaluator(workbook: Workbook, sheetIndex: number, evaluate: FormulaEvaluator, options?: ConditionalFormatOptions): ConditionalFormatEvaluator;
24
- /** The colour-scale colour of `value` between threshold positions. */
25
- export declare function scaleColor(value: number, cuts: readonly number[], colors: readonly string[]): string | undefined;
26
25
  //# sourceMappingURL=cf-evaluator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cf-evaluator.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/cf-evaluator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACX,SAAS,EAIT,QAAQ,EAER,MAAM,aAAa,CAAC;AAYrB,OAAO,KAAK,EAAE,0BAA0B,EAA2B,MAAM,YAAY,CAAC;AAEtF,MAAM,MAAM,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AACjE,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,SAAS,CAAC;AAE1E,MAAM,WAAW,wBAAwB;IACxC,iGAAiG;IACjG,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACpE;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;CACrB;AAQD;;;;GAIG;AACH,wBAAgB,gCAAgC,CAC/C,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,GAAE,wBAA6B,GACpC,0BAA0B,CA0M5B;AAED,sEAAsE;AACtE,wBAAgB,UAAU,CACzB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,MAAM,EAAE,SAAS,MAAM,EAAE,GACvB,MAAM,GAAG,SAAS,CAepB"}
1
+ {"version":3,"file":"cf-evaluator.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/cf-evaluator.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EACX,SAAS,EAIT,QAAQ,EAER,MAAM,aAAa,CAAC;AAYrB,OAAO,KAAK,EAAE,0BAA0B,EAA2B,MAAM,YAAY,CAAC;AAEtF,MAAM,MAAM,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AACjE,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,SAAS,CAAC;AAE1E,MAAM,WAAW,wBAAwB;IACxC,iGAAiG;IACjG,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACpE;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;CACrB;AAUD;;;;GAIG;AACH,wBAAgB,gCAAgC,CAC/C,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,GAAE,wBAA6B,GACpC,0BAA0B,CAoN5B"}
@@ -1,8 +1,15 @@
1
- import type { CellValue, DifferentialStyle } from '../model.js';
1
+ import type { CellValue, CfvoThreshold, DifferentialStyle } from '../model.js';
2
2
  /** A literal number or string operand, evaluated without the formula engine. */
3
3
  export declare function literal(formula: string): CellValue | undefined;
4
4
  /** The serial of today's local date. */
5
5
  export declare function localTodaySerial(date1904: boolean): number;
6
6
  /** Later (lower-priority) differential style under the accumulated one. */
7
7
  export declare function mergeDxf(acc: DifferentialStyle | undefined, next: DifferentialStyle): DifferentialStyle;
8
+ /**
9
+ * The icon a value earns: the last threshold it reaches, where a threshold with `gte: false`
10
+ * must be exceeded (`>`) rather than met (`>=`).
11
+ */
12
+ export declare function iconIndex(value: number, cuts: readonly number[], list: readonly CfvoThreshold[]): number;
13
+ /** The colour-scale colour of `value` between threshold positions. */
14
+ export declare function scaleColor(value: number, cuts: readonly number[], colors: readonly string[]): string | undefined;
8
15
  //# sourceMappingURL=cf-helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cf-helpers.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/cf-helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIhE,gFAAgF;AAChF,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAQ9D;AAED,wCAAwC;AACxC,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAK1D;AAED,2EAA2E;AAC3E,wBAAgB,QAAQ,CACvB,GAAG,EAAE,iBAAiB,GAAG,SAAS,EAClC,IAAI,EAAE,iBAAiB,GACrB,iBAAiB,CAQnB"}
1
+ {"version":3,"file":"cf-helpers.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/cf-helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAK/E,gFAAgF;AAChF,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAQ9D;AAED,wCAAwC;AACxC,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAK1D;AAED,2EAA2E;AAC3E,wBAAgB,QAAQ,CACvB,GAAG,EAAE,iBAAiB,GAAG,SAAS,EAClC,IAAI,EAAE,iBAAiB,GACrB,iBAAiB,CAQnB;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACxB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,IAAI,EAAE,SAAS,aAAa,EAAE,GAC5B,MAAM,CAOR;AAED,sEAAsE;AACtE,wBAAgB,UAAU,CACzB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,MAAM,EAAE,SAAS,MAAM,EAAE,GACvB,MAAM,GAAG,SAAS,CAepB"}
@@ -2,6 +2,7 @@ export { COLUMN_PADDING_PX, DEFAULT_BASE_COL_WIDTH, DEFAULT_MAX_DIGIT_WIDTH, IND
2
2
  export { AxisMetrics } from './axis-metrics.js';
3
3
  export { createGridMetrics, zoomPercent, type GridMetrics, type GridMetricsOptions, } from './metrics.js';
4
4
  export { visibleCells, type Viewport, type VisibleCells } from './viewport.js';
5
+ export { DEFAULT_ANCHOR_EXTENT_EMU, MIN_TWO_CELL_PIXELS, anchorKind, anchorToPixelBox, pictureAnchorAt, pixelBoxToAnchor, pixelSizeToExtent, type AnchorKind, type PixelBox, } from './anchors.js';
5
6
  export { applyTint, hls240ToRgb, parseHex, rgbToHls240, toHexColor, type Hls } from './tint.js';
6
7
  export { INDEXED_COLORS, THEME_SLOTS, mixColors, resolveColor, themeColor } from './colors.js';
7
8
  export type { BordersView, CellView, ConditionalFormatEvaluator, ConditionalFormatResult, DataBarView, EdgeView, FillView, FontView, HAlignView, IconView, MergeView, VAlignView, } from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,cAAc,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACN,iBAAiB,EACjB,WAAW,EACX,KAAK,WAAW,EAChB,KAAK,kBAAkB,GACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,GAAG,EAAE,MAAM,WAAW,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC/F,YAAY,EACX,WAAW,EACX,QAAQ,EACR,0BAA0B,EAC1B,uBAAuB,EACvB,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,SAAS,EACT,UAAU,GACV,MAAM,YAAY,CAAC;AACpB,OAAO,EACN,aAAa,EACb,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,GACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,KAAK,eAAe,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,gCAAgC,EAChC,UAAU,EACV,KAAK,MAAM,EACX,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EACN,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,cAAc,EACd,KAAK,cAAc,EACnB,KAAK,cAAc,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EACN,eAAe,EACf,SAAS,EACT,aAAa,EACb,KAAK,SAAS,EACd,KAAK,gBAAgB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,cAAc,EACd,SAAS,EACT,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,aAAa,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EACN,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GAChB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/xlsx/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,cAAc,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACN,iBAAiB,EACjB,WAAW,EACX,KAAK,WAAW,EAChB,KAAK,kBAAkB,GACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EACN,yBAAyB,EACzB,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,QAAQ,GACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,GAAG,EAAE,MAAM,WAAW,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC/F,YAAY,EACX,WAAW,EACX,QAAQ,EACR,0BAA0B,EAC1B,uBAAuB,EACvB,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,SAAS,EACT,UAAU,GACV,MAAM,YAAY,CAAC;AACpB,OAAO,EACN,aAAa,EACb,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,GACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,KAAK,eAAe,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,gCAAgC,EAChC,UAAU,EACV,KAAK,MAAM,EACX,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EACN,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,cAAc,EACd,KAAK,cAAc,EACnB,KAAK,cAAc,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EACN,eAAe,EACf,SAAS,EACT,aAAa,EACb,KAAK,SAAS,EACd,KAAK,gBAAgB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,cAAc,EACd,SAAS,EACT,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,aAAa,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EACN,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GAChB,MAAM,kBAAkB,CAAC"}
@@ -15,15 +15,36 @@ export declare function parseCsv(input: string, options?: CsvOptions): string[][
15
15
  export declare function sheetNameFromFileName(fileName: string | undefined): string;
16
16
  export interface CsvWorkbookOptions extends CsvOptions {
17
17
  sheetName?: string;
18
+ /**
19
+ * Treat fields starting with `=` as formulas, as Excel does when it opens a CSV. Off by
20
+ * default: a CSV from an untrusted source must not inject formulas (`=HYPERLINK(...)`,
21
+ * `=WEBSERVICE(...)`) into the workbook, so such fields are imported as text.
22
+ */
23
+ formulas?: boolean;
18
24
  }
19
25
  /**
20
26
  * A one-sheet workbook from CSV text. Each field goes through `parseCellInput`, so numbers,
21
- * dates, percentages, booleans, errors and `=` formulas become typed cells as Excel opens them.
27
+ * dates, percentages, booleans and errors become typed cells as Excel opens them; `=` fields
28
+ * become formulas only with `formulas: true` and are text otherwise.
22
29
  */
23
30
  export declare function csvToWorkbook(text: string, options?: CsvWorkbookOptions): Workbook;
31
+ /**
32
+ * A text value that would run as a formula when the CSV is opened in a spreadsheet, prefixed
33
+ * with a single quote so it stays text (OWASP CSV injection guidance). Numbers such as `-5` are
34
+ * not text cells and are never prefixed.
35
+ */
36
+ export declare function neutraliseCsvFormula(text: string): string;
37
+ export interface CsvWriteOptions extends CsvOptions {
38
+ /**
39
+ * Prefix text that starts with `=`, `+`, `-`, `@`, tab or carriage return with `'` so a
40
+ * spreadsheet opening the file does not evaluate it. On by default.
41
+ */
42
+ escapeFormulas?: boolean;
43
+ }
24
44
  /**
25
45
  * One sheet as CSV: each cell's formatted display text (as Excel's CSV export writes it), rows
26
- * from A1 to the end of the used range padded to the same width, CRLF line endings.
46
+ * from A1 to the end of the used range padded to the same width, CRLF line endings. Text that a
47
+ * spreadsheet would evaluate as a formula is neutralised (see {@link neutraliseCsvFormula}).
27
48
  */
28
- export declare function sheetToCsv(workbook: Workbook, sheetIndex: number, options?: CsvOptions): string;
49
+ export declare function sheetToCsv(workbook: Workbook, sheetIndex: number, options?: CsvWriteOptions): string;
29
50
  //# sourceMappingURL=csv.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"csv.d.ts","sourceRoot":"","sources":["../../../src/xlsx/load/csv.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,aAAa,CAAC;AAKlD,MAAM,WAAW,UAAU;IAC1B,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAyBD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAepD;AAKD,4FAA4F;AAC5F,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,UAAe,GAAG,MAAM,EAAE,EAAE,CA4C5E;AAKD,8EAA8E;AAC9E,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAQ1E;AAED,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,QAAQ,CAkCtF;AAMD;;;GAGG;AACH,wBAAgB,UAAU,CACzB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,UAAe,GACtB,MAAM,CAsBR"}
1
+ {"version":3,"file":"csv.d.ts","sourceRoot":"","sources":["../../../src/xlsx/load/csv.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,aAAa,CAAC;AAKlD,MAAM,WAAW,UAAU;IAC1B,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAyBD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAepD;AAKD,4FAA4F;AAC5F,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,UAAe,GAAG,MAAM,EAAE,EAAE,CA4C5E;AAKD,8EAA8E;AAC9E,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAQ1E;AAED,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,QAAQ,CAmCtF;AAKD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,MAAM,WAAW,eAAgB,SAAQ,UAAU;IAClD;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB;AAMD;;;;GAIG;AACH,wBAAgB,UAAU,CACzB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,eAAoB,GAC3B,MAAM,CAwBR"}
@@ -1,22 +1,54 @@
1
+ import { type EncryptionOptions } from '../../crypto/index.js';
1
2
  import type { Workbook } from '../model.js';
2
- export type WorkbookFormat = 'xlsx' | 'xlsm' | 'xls' | 'csv';
3
+ /**
4
+ * A detected spreadsheet format. `'encrypted'` is an OOXML package saved with a password to open
5
+ * (a compound file holding EncryptionInfo and EncryptedPackage, not a legacy .xls); `'xlsb'` is
6
+ * an Excel Binary Workbook, recognised so it can be refused honestly.
7
+ */
8
+ export type WorkbookFormat = 'xlsx' | 'xlsm' | 'xls' | 'csv' | 'encrypted' | 'xlsb';
3
9
  /** Sniffs a spreadsheet's format from its bytes (and, for macro-enabled packages, its name). */
4
10
  export declare function detectWorkbookFormat(input: Uint8Array | ArrayBuffer, fileName?: string): WorkbookFormat;
5
- /** Decodes CSV bytes: UTF-8 (with or without BOM) or UTF-16 with a BOM. */
11
+ /**
12
+ * Decodes CSV bytes: a UTF-16 or UTF-8 byte-order mark is honoured; otherwise strict UTF-8,
13
+ * falling back to Windows-1252 (Excel's default "CSV (Comma delimited)" encoding).
14
+ */
6
15
  export declare function decodeText(bytes: Uint8Array): string;
7
16
  export interface LoadWorkbookOptions {
8
17
  /** The file name, used for the CSV sheet name and to recognise macro-enabled packages. */
9
18
  fileName?: string;
10
19
  /** CSV field delimiter; detected when omitted. */
11
20
  delimiter?: string;
21
+ /**
22
+ * The password to open an encrypted (password-protected) .xlsx/.xlsm. Without it such a file
23
+ * throws `PasswordRequiredError` (`code: 'password-required'`); a wrong one throws
24
+ * `IncorrectPasswordError` (`code: 'incorrect-password'`).
25
+ */
26
+ password?: string;
27
+ /**
28
+ * Import CSV fields starting with `=` as formulas, as Excel does. Off by default: a CSV from an
29
+ * untrusted source would otherwise inject live formulas (`=HYPERLINK(...)`).
30
+ */
31
+ formulas?: boolean;
12
32
  }
13
- /** Loads any supported spreadsheet: .xlsx, .xlsm, .xltx, .xls or CSV. */
33
+ /** Loads any supported spreadsheet: .xlsx, .xlsm, .xltx (also password-protected), .xls or CSV. */
14
34
  export declare function loadWorkbook(input: Uint8Array | ArrayBuffer, options?: LoadWorkbookOptions): Promise<Workbook>;
35
+ export interface SaveWorkbookOptions {
36
+ /** The sheet a CSV save writes (default the active sheet). */
37
+ sheetIndex?: number;
38
+ /**
39
+ * Encrypts an `'xlsx'` save with this password to open (agile encryption, AES-256 and
40
+ * SHA-512, as Excel 2010 and later write). Not available for CSV.
41
+ */
42
+ password?: string;
43
+ /** Advanced encryption settings for a password save (scheme, key size, spin count). */
44
+ encryption?: EncryptionOptions;
45
+ }
15
46
  /**
16
47
  * Serializes a workbook. `'xlsx'` writes the whole workbook as an OOXML package (an .xls or CSV
17
- * source is converted: the result is always .xlsx/.xlsm content); `'csv'` writes one sheet
18
- * (`sheetIndex`, default the active sheet) as UTF-8 CSV with a byte-order mark, as Excel's
19
- * "CSV UTF-8" does.
48
+ * source is converted: the result is always .xlsx/.xlsm content), encrypted when `password` is
49
+ * given; `'csv'` writes one sheet (`sheetIndex`, default the active sheet) as UTF-8 CSV with a
50
+ * byte-order mark, as Excel's "CSV UTF-8" does. A number as the third argument is the
51
+ * `sheetIndex` (the original signature).
20
52
  */
21
- export declare function saveWorkbook(workbook: Workbook, format: 'xlsx' | 'csv', sheetIndex?: number): Promise<Uint8Array>;
53
+ export declare function saveWorkbook(workbook: Workbook, format: 'xlsx' | 'csv', sheetIndexOrOptions?: number | SaveWorkbookOptions): Promise<Uint8Array>;
22
54
  //# sourceMappingURL=detect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../../src/xlsx/load/detect.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAM5C,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;AAgD7D,gGAAgG;AAChG,wBAAgB,oBAAoB,CACnC,KAAK,EAAE,UAAU,GAAG,WAAW,EAC/B,QAAQ,CAAC,EAAE,MAAM,GACf,cAAc,CAShB;AAED,2EAA2E;AAC3E,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAOpD;AAED,MAAM,WAAW,mBAAmB;IACnC,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,yEAAyE;AACzE,wBAAsB,YAAY,CACjC,KAAK,EAAE,UAAU,GAAG,WAAW,EAC/B,OAAO,GAAE,mBAAwB,GAC/B,OAAO,CAAC,QAAQ,CAAC,CAanB;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CACjC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,GAAG,KAAK,EACtB,UAAU,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,UAAU,CAAC,CAIrB"}
1
+ {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../../src/xlsx/load/detect.ts"],"names":[],"mappings":"AAKA,OAAO,EAIN,KAAK,iBAAiB,EACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAQ5C;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,WAAW,GAAG,MAAM,CAAC;AAgDpF,gGAAgG;AAChG,wBAAgB,oBAAoB,CACnC,KAAK,EAAE,UAAU,GAAG,WAAW,EAC/B,QAAQ,CAAC,EAAE,MAAM,GACf,cAAc,CAWhB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAEpD;AAED,MAAM,WAAW,mBAAmB;IACnC,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAmBD,mGAAmG;AACnG,wBAAsB,YAAY,CACjC,KAAK,EAAE,UAAU,GAAG,WAAW,EAC/B,OAAO,GAAE,mBAAwB,GAC/B,OAAO,CAAC,QAAQ,CAAC,CAqBnB;AAED,MAAM,WAAW,mBAAmB;IACnC,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uFAAuF;IACvF,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CACjC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,GAAG,KAAK,EACtB,mBAAmB,CAAC,EAAE,MAAM,GAAG,mBAAmB,GAChD,OAAO,CAAC,UAAU,CAAC,CAerB"}
@@ -0,0 +1,10 @@
1
+ export { DataIntegrityError, IncorrectPasswordError, PasswordRequiredError, isOoxmlCryptoError, type OoxmlCryptoErrorCode, } from '../../crypto/errors.js';
2
+ export type UnsupportedWorkbookErrorCode = 'xlsb-unsupported';
3
+ /** The file is a spreadsheet format this library recognises but does not open. */
4
+ export declare class UnsupportedWorkbookError extends Error {
5
+ readonly code: UnsupportedWorkbookErrorCode;
6
+ constructor(code: UnsupportedWorkbookErrorCode, message: string);
7
+ }
8
+ /** The .xlsb error: Excel Binary Workbook parts are BIFF12 records, not SpreadsheetML. */
9
+ export declare const xlsbUnsupported: () => UnsupportedWorkbookError;
10
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/xlsx/load/errors.ts"],"names":[],"mappings":"AAGA,OAAO,EACN,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,KAAK,oBAAoB,GACzB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,4BAA4B,GAAG,kBAAkB,CAAC;AAE9D,kFAAkF;AAClF,qBAAa,wBAAyB,SAAQ,KAAK;IAClD,SAAgB,IAAI,EAAE,4BAA4B,CAAC;gBAEhC,IAAI,EAAE,4BAA4B,EAAE,OAAO,EAAE,MAAM;CAKtE;AAED,0FAA0F;AAC1F,eAAO,MAAM,eAAe,QAAO,wBAIjC,CAAC"}