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
@@ -1,4 +1,5 @@
1
- import { type CellRange } from '../address.js';
1
+ import type { CellRange } from '../address.js';
2
+ import type { CellError } from '../model.js';
2
3
  import { type FormulaAst } from './ast.js';
3
4
  import type { EvalHost } from './context.js';
4
5
  import { type Area } from './values.js';
@@ -9,8 +10,15 @@ export interface FormulaNode {
9
10
  col: number;
10
11
  formula: string;
11
12
  ast: FormulaAst | undefined;
12
- /** Static precedents. */
13
+ /** Static precedents: evaluation order and cycle detection follow these. */
13
14
  deps: Area[];
15
+ /**
16
+ * Areas read only through reference arguments (OFFSET's base, INDEX's array, ROW's
17
+ * reference) or spanned by `:` between computed references. They only drive incremental
18
+ * recalculation: the cells actually read are computed on demand, so `=OFFSET(B2,-1,0)+1` in
19
+ * B2 is not a circular reference (a real loop is still found while evaluating).
20
+ */
21
+ dynamicDeps: Area[];
14
22
  volatile: boolean;
15
23
  /** Uses a function this engine does not implement. */
16
24
  unsupported: boolean;
@@ -24,27 +32,14 @@ export interface FormulaNode {
24
32
  spill?: CellRange;
25
33
  /** Where the formula would spill if it were not blocked. */
26
34
  blockedSpill?: CellRange;
35
+ /** The error shown for a formula that cannot be parsed for a reason other than syntax. */
36
+ parseError?: CellError;
27
37
  }
28
38
  /** Static precedents of a formula plus whether it is volatile or uses unknown functions. */
29
39
  export declare function analyze(ast: FormulaAst, host: EvalHost, sheet: number, row: number, col: number): {
30
40
  deps: Area[];
41
+ dynamicDeps: Area[];
31
42
  volatile: boolean;
32
43
  unsupported: boolean;
33
44
  };
34
- /** Formula nodes by sheet and column, rows sorted, for "which formulas are inside this range". */
35
- export declare class ColumnIndex {
36
- private readonly sheets;
37
- constructor(nodes: Iterable<FormulaNode>);
38
- nodesIn(area: Area, out: FormulaNode[]): void;
39
- }
40
- /** Which formulas read a cell: single-cell deps by key, ranges bucketed by column. */
41
- export declare class ReverseIndex {
42
- private readonly cells;
43
- private readonly columns;
44
- private readonly wide;
45
- constructor(nodes: Iterable<FormulaNode>);
46
- private add;
47
- /** Formulas whose precedents intersect `range` on `sheet`. */
48
- dependents(sheet: number, range: CellRange, out: Set<FormulaNode>): void;
49
- }
50
45
  //# sourceMappingURL=graph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/xlsx/formula/graph.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,KAAK,SAAS,EAAiC,MAAM,eAAe,CAAC;AACvF,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAI7C,OAAO,EAAE,KAAK,IAAI,EAAY,MAAM,aAAa,CAAC;AAElD,0CAA0C;AAC1C,MAAM,WAAW,WAAW;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,UAAU,GAAG,SAAS,CAAC;IAC5B,yBAAyB;IACzB,IAAI,EAAE,IAAI,EAAE,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,sDAAsD;IACtD,WAAW,EAAE,OAAO,CAAC;IACrB,gFAAgF;IAChF,UAAU,EAAE,OAAO,CAAC;IACpB,+BAA+B;IAC/B,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,kGAAkG;IAClG,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,SAAS,CAAC;CACzB;AA4GD,4FAA4F;AAC5F,wBAAgB,OAAO,CACtB,GAAG,EAAE,UAAU,EACf,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACT;IAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAa3D;AAED,kGAAkG;AAClG,qBAAa,WAAW;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiD;gBAE5D,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC;IAYxC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,IAAI;CA4B7C;AAID,sFAAsF;AACtF,qBAAa,YAAY;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiD;IACvE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAGpB;IACJ,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgE;gBAEzE,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC;IAIxC,OAAO,CAAC,GAAG;IA2BX,8DAA8D;IAC9D,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI;CA4CxE"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/xlsx/formula/graph.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAI7C,OAAO,EAAE,KAAK,IAAI,EAAY,MAAM,aAAa,CAAC;AAElD,0CAA0C;AAC1C,MAAM,WAAW,WAAW;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,UAAU,GAAG,SAAS,CAAC;IAC5B,4EAA4E;IAC5E,IAAI,EAAE,IAAI,EAAE,CAAC;IACb;;;;;OAKG;IACH,WAAW,EAAE,IAAI,EAAE,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,sDAAsD;IACtD,WAAW,EAAE,OAAO,CAAC;IACrB,gFAAgF;IAChF,UAAU,EAAE,OAAO,CAAC;IACpB,+BAA+B;IAC/B,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,kGAAkG;IAClG,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,0FAA0F;IAC1F,UAAU,CAAC,EAAE,SAAS,CAAC;CACvB;AAqKD,4FAA4F;AAC5F,wBAAgB,OAAO,CACtB,GAAG,EAAE,UAAU,EACf,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACT;IAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAAC,WAAW,EAAE,IAAI,EAAE,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAoBhF"}
@@ -1,5 +1,7 @@
1
1
  import { Matrix, type Scalar } from './values.js';
2
2
  export type ScalarOp = (a: Scalar, b: Scalar) => Scalar;
3
+ /** `(-8)^(1/3)` is -2 in Excel: odd roots of negative numbers are allowed (POWER shares it). */
4
+ export declare function power(base: number, exponent: number): number;
3
5
  /** Excel sets a final addition or subtraction that cancels to within 15 digits to exactly 0. */
4
6
  export declare function snapToZero(result: number, a: number, b: number): number;
5
7
  /** Applies a binary operator to two scalars. */
@@ -8,6 +10,13 @@ export declare function scalarBinary(op: string, x: Scalar, y: Scalar, snap?: bo
8
10
  export declare function scalarUnary(op: '-' | '%', x: Scalar): Scalar;
9
11
  /** The element of a broadcast operand at a position (size-1 dimensions repeat; outside is #N/A). */
10
12
  export declare function pick(m: Matrix, row: number, col: number): Scalar;
13
+ /**
14
+ * The elementwise result over broadcast operands, `at(r, c)` giving one element. When an operand
15
+ * is padded (a whole-column read), only the block the operands store is computed and the rest
16
+ * becomes padding holding the value of one tail element, as long as every operand is uniform
17
+ * there; otherwise the full result is built (within the array size limits).
18
+ */
19
+ export declare function broadcastShape(operands: Matrix[], at: (r: number, c: number) => Scalar): Matrix;
11
20
  /** Broadcasts a binary scalar function over matrices like Excel's array arithmetic. */
12
21
  export declare function broadcast2(a: Scalar | Matrix, b: Scalar | Matrix, fn: ScalarOp): Scalar | Matrix;
13
22
  /** Maps a unary scalar function over a matrix. */
@@ -1 +1 @@
1
- {"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../../../src/xlsx/formula/operators.ts"],"names":[],"mappings":"AAEA,OAAO,EAA6B,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAE7E,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;AA0BxD,gGAAgG;AAChG,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAGvE;AA0DD,gDAAgD;AAChD,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,UAAQ,GAAG,MAAM,CAMnF;AAED,+BAA+B;AAC/B,wBAAgB,WAAW,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAO5D;AAED,oGAAoG;AACpG,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAKhE;AAED,uFAAuF;AACvF,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAOhG;AAED,kDAAkD;AAClD,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,CAEzF"}
1
+ {"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../../../src/xlsx/formula/operators.ts"],"names":[],"mappings":"AAEA,OAAO,EAA6B,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAE7E,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;AAWxD,gGAAgG;AAChG,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAY5D;AAED,gGAAgG;AAChG,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAGvE;AA0DD,gDAAgD;AAChD,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,UAAQ,GAAG,MAAM,CAMnF;AAED,+BAA+B;AAC/B,wBAAgB,WAAW,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAO5D;AAED,oGAAoG;AACpG,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAKhE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAwB/F;AAED,uFAAuF;AACvF,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAKhG;AAED,kDAAkD;AAClD,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,CAEzF"}
@@ -1,4 +1,6 @@
1
1
  import { type FormulaAst } from './ast.js';
2
+ /** Excel allows 64 nested function calls; deeper formulas show #VALUE! here. */
3
+ export declare const MAX_FUNCTION_NESTING = 64;
2
4
  /** Parses a formula (without, or with, its leading `=`) into a syntax tree. Throws FormulaError. */
3
5
  export declare function parseFormula(formula: string): FormulaAst;
4
6
  //# sourceMappingURL=parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/xlsx/formula/parser.ts"],"names":[],"mappings":"AACA,OAAO,EAIN,KAAK,UAAU,EAEf,MAAM,UAAU,CAAC;AAkClB,oGAAoG;AACpG,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAoBxD"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/xlsx/formula/parser.ts"],"names":[],"mappings":"AACA,OAAO,EAIN,KAAK,UAAU,EAEf,MAAM,UAAU,CAAC;AAclB,gFAAgF;AAChF,eAAO,MAAM,oBAAoB,KAAK,CAAC;AA2BvC,oGAAoG;AACpG,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAoBxD"}
@@ -25,7 +25,10 @@ export declare function rangeOperator(left: Value, right: Value): Value;
25
25
  export declare function intersectOperator(left: Value, right: Value): Value;
26
26
  /** The comma operator inside parentheses: a multi-area reference. */
27
27
  export declare function unionOperator(left: Value, right: Value): Value;
28
- /** Reads an area into a dense matrix (blank cells are `null`). */
28
+ /**
29
+ * Reads an area into a matrix (blank cells are `null`). Large areas read only the sheet's used
30
+ * part and pad the rest with blanks, so whole-column references keep their full size.
31
+ */
29
32
  export declare function areaToMatrix(host: EvalHost, area: Area): Matrix;
30
33
  /** A dense matrix for any value; unions and lambdas are `#VALUE!`. */
31
34
  export declare function toMatrix(host: EvalHost, value: Value): Matrix;
@@ -1 +1 @@
1
- {"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../../../src/xlsx/formula/references.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAoC,MAAM,eAAe,CAAC;AACjF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAChF,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EACN,KAAK,IAAI,EAIT,MAAM,EAEN,KAAK,MAAM,EACX,KAAK,KAAK,EACV,MAAM,aAAa,CAAC;AAErB,wDAAwD;AACxD,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED,+FAA+F;AAC/F,wBAAgB,YAAY,CAC3B,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,OAAO,EAAE,MAAM,GACb,MAAM,EAAE,GAAG,SAAS,CAWtB;AAED,eAAO,MAAM,SAAS,GAAI,MAAM,OAAO,KAAG,SAIvC,CAAC;AAEJ,gEAAgE;AAChE,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAW9F;AAED,0EAA0E;AAC1E,wBAAgB,SAAS,CACxB,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACT;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAoB7C;AAED,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CA8CzE;AAED,oDAAoD;AACpD,wBAAgB,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAuB9D;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAmBlE;AAED,qEAAqE;AACrE,wBAAgB,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAG9D;AAMD,kEAAkE;AAClE,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,CAc/D;AAED,sEAAsE;AACtE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAS7D;AAED,4GAA4G;AAC5G,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAkBvE;AAED,mFAAmF;AACnF,eAAO,MAAM,MAAM,GAAI,OAAO,SAAS,KAAG,OAC+C,CAAC"}
1
+ {"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../../../src/xlsx/formula/references.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAoC,MAAM,eAAe,CAAC;AACjF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAChF,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EACN,KAAK,IAAI,EAIT,MAAM,EAGN,KAAK,MAAM,EACX,KAAK,KAAK,EACV,MAAM,aAAa,CAAC;AAErB,wDAAwD;AACxD,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED,+FAA+F;AAC/F,wBAAgB,YAAY,CAC3B,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,OAAO,EAAE,MAAM,GACb,MAAM,EAAE,GAAG,SAAS,CAWtB;AAED,eAAO,MAAM,SAAS,GAAI,MAAM,OAAO,KAAG,SAIvC,CAAC;AAEJ,gEAAgE;AAChE,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAW9F;AAED,0EAA0E;AAC1E,wBAAgB,SAAS,CACxB,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACT;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAoB7C;AAED,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CA8CzE;AAED,oDAAoD;AACpD,wBAAgB,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAuB9D;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAmBlE;AAED,qEAAqE;AACrE,wBAAgB,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAG9D;AAMD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,CAgB/D;AAED,sEAAsE;AACtE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAS7D;AAED,4GAA4G;AAC5G,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAkBvE;AAED,mFAAmF;AACnF,eAAO,MAAM,MAAM,GAAI,OAAO,SAAS,KAAG,OAC+C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"text-number.d.ts","sourceRoot":"","sources":["../../../src/xlsx/formula/text-number.ts"],"names":[],"mappings":"AAkGA;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA6CjE;AAED,uFAAuF;AACvF,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG7C;AAED,8FAA8F;AAC9F,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAsBlD"}
1
+ {"version":3,"file":"text-number.d.ts","sourceRoot":"","sources":["../../../src/xlsx/formula/text-number.ts"],"names":[],"mappings":"AAsGA;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA6CjE;AAED,uFAAuF;AACvF,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG7C;AAED,8FAA8F;AAC9F,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAsBlD"}
@@ -1 +1 @@
1
- {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/xlsx/formula/transform.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAiD,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAgC,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AACxF,OAAO,EAAc,KAAK,KAAK,EAAY,MAAM,gBAAgB,CAAC;AAElE,MAAM,WAAW,SAAS;IACzB,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,GAAG,KAAK,CAAC;IACpB,+CAA+C;IAC/C,EAAE,EAAE,MAAM,CAAC;IACX,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,SAAS,CAO/D;AAQD,uDAAuD;AACvD,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAInD;AAeD,oHAAoH;AACpH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAmBpF;AAkCD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAgC3F;AAOD,iFAAiF;AACjF,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAMtD;AAED,mGAAmG;AACnG,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAkB9F;AAED,sFAAsF;AACtF,wBAAgB,gBAAgB,CAC/B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GAClB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,EAAE,CAgBvC;AAED,4FAA4F;AAC5F,MAAM,WAAW,aAAa;IAC7B,mFAAmF;IACnF,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,aAAa,EAAE,CAqBrF"}
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/xlsx/formula/transform.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAiD,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAgC,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AACxF,OAAO,EAAc,KAAK,KAAK,EAAY,MAAM,gBAAgB,CAAC;AAElE,MAAM,WAAW,SAAS;IACzB,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,GAAG,KAAK,CAAC;IACpB,+CAA+C;IAC/C,EAAE,EAAE,MAAM,CAAC;IACX,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,SAAS,CAO/D;AAQD,uDAAuD;AACvD,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAInD;AAeD,oHAAoH;AACpH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAmBpF;AA6ED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAiC3F;AAaD,iFAAiF;AACjF,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAMtD;AAED,mGAAmG;AACnG,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAkB9F;AAED,sFAAsF;AACtF,wBAAgB,gBAAgB,CAC/B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GAClB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,EAAE,CAgBvC;AAED,4FAA4F;AAC5F,MAAM,WAAW,aAAa;IAC7B,mFAAmF;IACnF,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,aAAa,EAAE,CAqBrF"}
@@ -17,15 +17,55 @@ export declare const ERR: {
17
17
  readonly CALC: CellError;
18
18
  };
19
19
  export declare const isError: (value: unknown) => value is CellError;
20
- /** A dense two-dimensional array of values (array constants, array results, dereferenced ranges). */
20
+ /** Excel's longest array side: SEQUENCE(1048577) and SEQUENCE(1,1048577) are `#VALUE!`. */
21
+ export declare const MAX_ARRAY_SIDE = 1048576;
22
+ /**
23
+ * The most cells one array may hold, so no formula can exhaust memory (Excel gives up somewhere
24
+ * past 40 million with "out of resources"; this engine stops at 16 million with `#NUM!`).
25
+ */
26
+ export declare const MAX_ARRAY_CELLS = 16777216;
27
+ /** `#VALUE!` past the longest side, `#NUM!` past the cell budget. */
28
+ export declare function checkArraySize(rows: number, cols: number): void;
29
+ /** The part of a padded matrix outside its stored block: every such cell holds `fill`. */
30
+ interface Padding {
31
+ rows: number;
32
+ cols: number;
33
+ fill: Scalar;
34
+ }
35
+ /**
36
+ * A two-dimensional array of values (array constants, array results, dereferenced ranges). A
37
+ * padded matrix stores only a top-left block and reports a larger size whose remaining cells all
38
+ * hold one value: whole-column references read that way, so `ROWS(A:A*1)` is 1048576 and
39
+ * `SUMPRODUCT(--(A:A=""))` counts every blank row without materialising a million cells.
40
+ */
21
41
  export declare class Matrix {
22
- readonly data: Scalar[][];
23
- constructor(data: Scalar[][]);
42
+ private readonly dense;
43
+ private readonly padding;
44
+ /** The full rows of a padded matrix, built once when `data` is first asked for. */
45
+ private materialized;
46
+ constructor(data: Scalar[][], padding?: Padding);
47
+ /** A padded matrix (or a plain one when `rows` x `cols` is no larger than the block). */
48
+ static padded(block: Matrix, rows: number, cols: number, fill: Scalar): Matrix;
49
+ /** Every row, materialising a padded matrix (bounded by `MAX_ARRAY_CELLS`). */
50
+ get data(): Scalar[][];
24
51
  get rows(): number;
25
52
  get cols(): number;
53
+ /** Whether some cells are implied by the padding rather than stored. */
54
+ get isPadded(): boolean;
55
+ /** Rows and columns of the stored block. */
56
+ get blockRows(): number;
57
+ get blockCols(): number;
58
+ /** The value of every cell outside the stored block. */
59
+ get fill(): Scalar;
26
60
  get(row: number, col: number): Scalar;
61
+ /** Only the stored block of a padded matrix (what a spilling formula shows). */
62
+ block(): Matrix;
27
63
  static build(rows: number, cols: number, fill: (row: number, col: number) => Scalar): Matrix;
28
64
  map(fn: (value: Scalar, row: number, col: number) => Scalar): Matrix;
65
+ /** Maps every value; a padded matrix maps its block and its fill once. */
66
+ mapValues(fn: (value: Scalar) => Scalar): Matrix;
67
+ /** Visits every value in row-major order without materialising a padded matrix. */
68
+ forEachValue(visit: (value: Scalar) => void): void;
29
69
  /** Every element in row-major order. */
30
70
  flat(): Scalar[];
31
71
  }
@@ -60,4 +100,5 @@ export declare class ErrorSignal {
60
100
  /** Throws the error value `value` (or the error with `code`). */
61
101
  export declare function fail(value: CellError | ErrorCode): never;
62
102
  export declare const isScalar: (value: Value) => value is Scalar;
103
+ export {};
63
104
  //# sourceMappingURL=values.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../../src/xlsx/formula/values.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,2FAA2F;AAC3F,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;AAIlE,iDAAiD;AACjD,wBAAgB,GAAG,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAO9C;AAED,eAAO,MAAM,GAAG;;;;;;;;;;CAUN,CAAC;AAEX,eAAO,MAAM,OAAO,wCAAc,CAAC;AAEnC,qGAAqG;AACrG,qBAAa,MAAM;IACN,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;gBAAhB,IAAI,EAAE,MAAM,EAAE,EAAE;IAErC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAIrC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM;IAU5F,GAAG,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM;IAIpE,wCAAwC;IACxC,IAAI,IAAI,MAAM,EAAE;CAGhB;AAED,2CAA2C;AAC3C,MAAM,WAAW,IAAI;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;CACjB;AAED,yEAAyE;AACzE,qBAAa,QAAQ;IACR,QAAQ,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE;gBAAtB,KAAK,EAAE,SAAS,IAAI,EAAE;IAE3C,IAAI,KAAK,IAAI,IAAI,GAAG,SAAS,CAE5B;IAED,qCAAqC;IACrC,MAAM,IAAI,OAAO;CASjB;AAED,qEAAqE;AACrE,MAAM,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAE/C,wBAAwB;AACxB,qBAAa,WAAW;IAEtB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE;IAClC,QAAQ,CAAC,IAAI,EAAE,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS;gBAFxB,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,KAAK,GAAG,SAAS;CAElC;AAED,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE7D,uEAAuE;AACvE,qBAAa,WAAW;IACX,QAAQ,CAAC,KAAK,EAAE,SAAS;gBAAhB,KAAK,EAAE,SAAS;CACrC;AAED,iEAAiE;AACjE,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,KAAK,CAExD;AAED,eAAO,MAAM,QAAQ,GAAI,OAAO,KAAK,KAAG,KAAK,IAAI,MACuC,CAAC"}
1
+ {"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../../src/xlsx/formula/values.ts"],"names":[],"mappings":"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"}