@rowsncolumns/toolkit 24.4.1

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 (456) hide show
  1. package/LICENSE.md +100 -0
  2. package/Readme.md +27 -0
  3. package/dist/cjs/autofilter-condition.d.ts +43 -0
  4. package/dist/cjs/autofilter-condition.d.ts.map +1 -0
  5. package/dist/cjs/autofilter-condition.js +155 -0
  6. package/dist/cjs/csv-export.d.ts +49 -0
  7. package/dist/cjs/csv-export.d.ts.map +1 -0
  8. package/dist/cjs/csv-export.js +142 -0
  9. package/dist/cjs/csv-import-worker.d.ts +16 -0
  10. package/dist/cjs/csv-import-worker.d.ts.map +1 -0
  11. package/dist/cjs/csv-import-worker.js +60 -0
  12. package/dist/cjs/csv-import.d.ts +38 -0
  13. package/dist/cjs/csv-import.d.ts.map +1 -0
  14. package/dist/cjs/csv-import.js +166 -0
  15. package/dist/cjs/csv-parser/helpers.d.ts +14 -0
  16. package/dist/cjs/csv-parser/helpers.d.ts.map +1 -0
  17. package/dist/cjs/csv-parser/helpers.js +145 -0
  18. package/dist/cjs/csv-parser/types.d.ts +66 -0
  19. package/dist/cjs/csv-parser/types.d.ts.map +1 -0
  20. package/dist/cjs/csv-parser/types.js +14 -0
  21. package/dist/cjs/csv-parser/worker.d.ts +2 -0
  22. package/dist/cjs/csv-parser/worker.d.ts.map +1 -0
  23. package/dist/cjs/csv-parser/worker.js +200 -0
  24. package/dist/cjs/excel-export.d.ts +11 -0
  25. package/dist/cjs/excel-export.d.ts.map +1 -0
  26. package/dist/cjs/excel-export.js +22 -0
  27. package/dist/cjs/excel-import-session.d.ts +51 -0
  28. package/dist/cjs/excel-import-session.d.ts.map +1 -0
  29. package/dist/cjs/excel-import-session.js +307 -0
  30. package/dist/cjs/excel-import-worker.d.ts +7 -0
  31. package/dist/cjs/excel-import-worker.d.ts.map +1 -0
  32. package/dist/cjs/excel-import-worker.js +119 -0
  33. package/dist/cjs/excel-parser/builtin-numfmts.d.ts +24 -0
  34. package/dist/cjs/excel-parser/builtin-numfmts.d.ts.map +1 -0
  35. package/dist/cjs/excel-parser/builtin-numfmts.js +63 -0
  36. package/dist/cjs/excel-parser/cfb-decryptor.d.ts +53 -0
  37. package/dist/cjs/excel-parser/cfb-decryptor.d.ts.map +1 -0
  38. package/dist/cjs/excel-parser/cfb-decryptor.js +553 -0
  39. package/dist/cjs/excel-parser/cfb-encryptor.d.ts +23 -0
  40. package/dist/cjs/excel-parser/cfb-encryptor.d.ts.map +1 -0
  41. package/dist/cjs/excel-parser/cfb-encryptor.js +200 -0
  42. package/dist/cjs/excel-parser/dv-cell-stamp.d.ts +29 -0
  43. package/dist/cjs/excel-parser/dv-cell-stamp.d.ts.map +1 -0
  44. package/dist/cjs/excel-parser/dv-cell-stamp.js +239 -0
  45. package/dist/cjs/excel-parser/helpers.d.ts +28 -0
  46. package/dist/cjs/excel-parser/helpers.d.ts.map +1 -0
  47. package/dist/cjs/excel-parser/helpers.js +188 -0
  48. package/dist/cjs/excel-parser/interface.d.ts +179 -0
  49. package/dist/cjs/excel-parser/interface.d.ts.map +1 -0
  50. package/dist/cjs/excel-parser/interface.js +1 -0
  51. package/dist/cjs/excel-parser/plugins/base/index.d.ts +31 -0
  52. package/dist/cjs/excel-parser/plugins/base/index.d.ts.map +1 -0
  53. package/dist/cjs/excel-parser/plugins/base/index.js +101 -0
  54. package/dist/cjs/excel-parser/plugins/ods/conditional-formatting.d.ts +16 -0
  55. package/dist/cjs/excel-parser/plugins/ods/conditional-formatting.d.ts.map +1 -0
  56. package/dist/cjs/excel-parser/plugins/ods/conditional-formatting.js +488 -0
  57. package/dist/cjs/excel-parser/plugins/ods/data-validations.d.ts +15 -0
  58. package/dist/cjs/excel-parser/plugins/ods/data-validations.d.ts.map +1 -0
  59. package/dist/cjs/excel-parser/plugins/ods/data-validations.js +353 -0
  60. package/dist/cjs/excel-parser/plugins/ods/formula.d.ts +8 -0
  61. package/dist/cjs/excel-parser/plugins/ods/formula.d.ts.map +1 -0
  62. package/dist/cjs/excel-parser/plugins/ods/formula.js +82 -0
  63. package/dist/cjs/excel-parser/plugins/ods/index.d.ts +122 -0
  64. package/dist/cjs/excel-parser/plugins/ods/index.d.ts.map +1 -0
  65. package/dist/cjs/excel-parser/plugins/ods/index.js +3642 -0
  66. package/dist/cjs/excel-parser/plugins/ods/sparklines.d.ts +25 -0
  67. package/dist/cjs/excel-parser/plugins/ods/sparklines.d.ts.map +1 -0
  68. package/dist/cjs/excel-parser/plugins/ods/sparklines.js +221 -0
  69. package/dist/cjs/excel-parser/plugins/ods/styles.d.ts +60 -0
  70. package/dist/cjs/excel-parser/plugins/ods/styles.d.ts.map +1 -0
  71. package/dist/cjs/excel-parser/plugins/ods/styles.js +808 -0
  72. package/dist/cjs/excel-parser/plugins/ods/types.d.ts +7 -0
  73. package/dist/cjs/excel-parser/plugins/ods/types.d.ts.map +1 -0
  74. package/dist/cjs/excel-parser/plugins/ods/types.js +1 -0
  75. package/dist/cjs/excel-parser/plugins/xls/index.d.ts +5 -0
  76. package/dist/cjs/excel-parser/plugins/xls/index.d.ts.map +1 -0
  77. package/dist/cjs/excel-parser/plugins/xls/index.js +19 -0
  78. package/dist/cjs/excel-parser/plugins/xlsb/biff-record-reader.d.ts +13 -0
  79. package/dist/cjs/excel-parser/plugins/xlsb/biff-record-reader.d.ts.map +1 -0
  80. package/dist/cjs/excel-parser/plugins/xlsb/biff-record-reader.js +49 -0
  81. package/dist/cjs/excel-parser/plugins/xlsb/index.d.ts +117 -0
  82. package/dist/cjs/excel-parser/plugins/xlsb/index.d.ts.map +1 -0
  83. package/dist/cjs/excel-parser/plugins/xlsb/index.js +2972 -0
  84. package/dist/cjs/excel-parser/plugins/xlsb/rgce-parser.d.ts +18 -0
  85. package/dist/cjs/excel-parser/plugins/xlsb/rgce-parser.d.ts.map +1 -0
  86. package/dist/cjs/excel-parser/plugins/xlsb/rgce-parser.js +527 -0
  87. package/dist/cjs/excel-parser/plugins/xlsm/index.d.ts +5 -0
  88. package/dist/cjs/excel-parser/plugins/xlsm/index.d.ts.map +1 -0
  89. package/dist/cjs/excel-parser/plugins/xlsm/index.js +10 -0
  90. package/dist/cjs/excel-parser/plugins/xlsx/charts.d.ts +60 -0
  91. package/dist/cjs/excel-parser/plugins/xlsx/charts.d.ts.map +1 -0
  92. package/dist/cjs/excel-parser/plugins/xlsx/charts.js +2178 -0
  93. package/dist/cjs/excel-parser/plugins/xlsx/conditional-formatting.d.ts +18 -0
  94. package/dist/cjs/excel-parser/plugins/xlsx/conditional-formatting.d.ts.map +1 -0
  95. package/dist/cjs/excel-parser/plugins/xlsx/conditional-formatting.js +620 -0
  96. package/dist/cjs/excel-parser/plugins/xlsx/data-validations.d.ts +4 -0
  97. package/dist/cjs/excel-parser/plugins/xlsx/data-validations.d.ts.map +1 -0
  98. package/dist/cjs/excel-parser/plugins/xlsx/data-validations.js +515 -0
  99. package/dist/cjs/excel-parser/plugins/xlsx/drawing.d.ts +39 -0
  100. package/dist/cjs/excel-parser/plugins/xlsx/drawing.d.ts.map +1 -0
  101. package/dist/cjs/excel-parser/plugins/xlsx/drawing.js +941 -0
  102. package/dist/cjs/excel-parser/plugins/xlsx/index.d.ts +320 -0
  103. package/dist/cjs/excel-parser/plugins/xlsx/index.d.ts.map +1 -0
  104. package/dist/cjs/excel-parser/plugins/xlsx/index.js +6056 -0
  105. package/dist/cjs/excel-parser/plugins/xlsx/numfmt.d.ts +2 -0
  106. package/dist/cjs/excel-parser/plugins/xlsx/numfmt.d.ts.map +1 -0
  107. package/dist/cjs/excel-parser/plugins/xlsx/numfmt.js +3 -0
  108. package/dist/cjs/excel-parser/plugins/xlsx/pivots.d.ts +40 -0
  109. package/dist/cjs/excel-parser/plugins/xlsx/pivots.d.ts.map +1 -0
  110. package/dist/cjs/excel-parser/plugins/xlsx/pivots.js +342 -0
  111. package/dist/cjs/excel-parser/plugins/xlsx/relationships.d.ts +8 -0
  112. package/dist/cjs/excel-parser/plugins/xlsx/relationships.d.ts.map +1 -0
  113. package/dist/cjs/excel-parser/plugins/xlsx/relationships.js +26 -0
  114. package/dist/cjs/excel-parser/plugins/xlsx/sheet-views.d.ts +26 -0
  115. package/dist/cjs/excel-parser/plugins/xlsx/sheet-views.d.ts.map +1 -0
  116. package/dist/cjs/excel-parser/plugins/xlsx/sheet-views.js +59 -0
  117. package/dist/cjs/excel-parser/plugins/xlsx/styles.d.ts +44 -0
  118. package/dist/cjs/excel-parser/plugins/xlsx/styles.d.ts.map +1 -0
  119. package/dist/cjs/excel-parser/plugins/xlsx/styles.js +1377 -0
  120. package/dist/cjs/excel-parser/plugins/xlsx/theme.d.ts +50 -0
  121. package/dist/cjs/excel-parser/plugins/xlsx/theme.d.ts.map +1 -0
  122. package/dist/cjs/excel-parser/plugins/xlsx/theme.js +150 -0
  123. package/dist/cjs/excel-parser/plugins/xlsx/threaded-comments.d.ts +47 -0
  124. package/dist/cjs/excel-parser/plugins/xlsx/threaded-comments.d.ts.map +1 -0
  125. package/dist/cjs/excel-parser/plugins/xlsx/threaded-comments.js +141 -0
  126. package/dist/cjs/excel-parser/plugins/xlsx/value-type-detection.d.ts +44 -0
  127. package/dist/cjs/excel-parser/plugins/xlsx/value-type-detection.d.ts.map +1 -0
  128. package/dist/cjs/excel-parser/plugins/xlsx/value-type-detection.js +407 -0
  129. package/dist/cjs/excel-parser/registry.d.ts +5 -0
  130. package/dist/cjs/excel-parser/registry.d.ts.map +1 -0
  131. package/dist/cjs/excel-parser/registry.js +21 -0
  132. package/dist/cjs/excel-parser/style-registry.d.ts +51 -0
  133. package/dist/cjs/excel-parser/style-registry.d.ts.map +1 -0
  134. package/dist/cjs/excel-parser/style-registry.js +175 -0
  135. package/dist/cjs/excel-parser/theme-default.d.ts +3 -0
  136. package/dist/cjs/excel-parser/theme-default.d.ts.map +1 -0
  137. package/dist/cjs/excel-parser/theme-default.js +19 -0
  138. package/dist/cjs/excel-parser/types.d.ts +365 -0
  139. package/dist/cjs/excel-parser/types.d.ts.map +1 -0
  140. package/dist/cjs/excel-parser/types.js +59 -0
  141. package/dist/cjs/excel-parser/utils.d.ts +6 -0
  142. package/dist/cjs/excel-parser/utils.d.ts.map +1 -0
  143. package/dist/cjs/excel-parser/utils.js +30 -0
  144. package/dist/cjs/excel-parser/workbook.d.ts +51 -0
  145. package/dist/cjs/excel-parser/workbook.d.ts.map +1 -0
  146. package/dist/cjs/excel-parser/workbook.js +317 -0
  147. package/dist/cjs/excel-parser/worker.d.ts +2 -0
  148. package/dist/cjs/excel-parser/worker.d.ts.map +1 -0
  149. package/dist/cjs/excel-parser/worker.js +1149 -0
  150. package/dist/cjs/excel-parser/zip-parser-streaming.d.ts +13 -0
  151. package/dist/cjs/excel-parser/zip-parser-streaming.d.ts.map +1 -0
  152. package/dist/cjs/excel-parser/zip-parser-streaming.js +200 -0
  153. package/dist/cjs/excel-parser/zip-parser.d.ts +11 -0
  154. package/dist/cjs/excel-parser/zip-parser.d.ts.map +1 -0
  155. package/dist/cjs/excel-parser/zip-parser.js +49 -0
  156. package/dist/cjs/exporter/invalid-data-validation.d.ts +19 -0
  157. package/dist/cjs/exporter/invalid-data-validation.d.ts.map +1 -0
  158. package/dist/cjs/exporter/invalid-data-validation.js +39 -0
  159. package/dist/cjs/exporter/ods/ods-export.d.ts +26 -0
  160. package/dist/cjs/exporter/ods/ods-export.d.ts.map +1 -0
  161. package/dist/cjs/exporter/ods/ods-export.js +3714 -0
  162. package/dist/cjs/exporter/ods/sparkline-builder.d.ts +33 -0
  163. package/dist/cjs/exporter/ods/sparkline-builder.d.ts.map +1 -0
  164. package/dist/cjs/exporter/ods/sparkline-builder.js +221 -0
  165. package/dist/cjs/exporter/xlsx/chart-builder.d.ts +3 -0
  166. package/dist/cjs/exporter/xlsx/chart-builder.d.ts.map +1 -0
  167. package/dist/cjs/exporter/xlsx/chart-builder.js +1901 -0
  168. package/dist/cjs/exporter/xlsx/chart-templates.d.ts +1781 -0
  169. package/dist/cjs/exporter/xlsx/chart-templates.d.ts.map +1 -0
  170. package/dist/cjs/exporter/xlsx/chart-templates.js +1798 -0
  171. package/dist/cjs/exporter/xlsx/future-functions.d.ts +10 -0
  172. package/dist/cjs/exporter/xlsx/future-functions.d.ts.map +1 -0
  173. package/dist/cjs/exporter/xlsx/future-functions.js +264 -0
  174. package/dist/cjs/exporter/xlsx/pivot-builder.d.ts +58 -0
  175. package/dist/cjs/exporter/xlsx/pivot-builder.d.ts.map +1 -0
  176. package/dist/cjs/exporter/xlsx/pivot-builder.js +277 -0
  177. package/dist/cjs/exporter/xlsx/power-query-builder.d.ts +26 -0
  178. package/dist/cjs/exporter/xlsx/power-query-builder.d.ts.map +1 -0
  179. package/dist/cjs/exporter/xlsx/power-query-builder.js +306 -0
  180. package/dist/cjs/exporter/xlsx/slicer-builder.d.ts +11 -0
  181. package/dist/cjs/exporter/xlsx/slicer-builder.d.ts.map +1 -0
  182. package/dist/cjs/exporter/xlsx/slicer-builder.js +87 -0
  183. package/dist/cjs/exporter/xlsx/sparkline-builder.d.ts +61 -0
  184. package/dist/cjs/exporter/xlsx/sparkline-builder.d.ts.map +1 -0
  185. package/dist/cjs/exporter/xlsx/sparkline-builder.js +489 -0
  186. package/dist/cjs/exporter/xlsx/style-builder.d.ts +93 -0
  187. package/dist/cjs/exporter/xlsx/style-builder.d.ts.map +1 -0
  188. package/dist/cjs/exporter/xlsx/style-builder.js +813 -0
  189. package/dist/cjs/exporter/xlsx/threaded-comments-builder.d.ts +58 -0
  190. package/dist/cjs/exporter/xlsx/threaded-comments-builder.d.ts.map +1 -0
  191. package/dist/cjs/exporter/xlsx/threaded-comments-builder.js +189 -0
  192. package/dist/cjs/exporter/xlsx/xlsx-export.d.ts +121 -0
  193. package/dist/cjs/exporter/xlsx/xlsx-export.d.ts.map +1 -0
  194. package/dist/cjs/exporter/xlsx/xlsx-export.js +4596 -0
  195. package/dist/cjs/helpers/theme-xml-generator.d.ts +8 -0
  196. package/dist/cjs/helpers/theme-xml-generator.d.ts.map +1 -0
  197. package/dist/cjs/helpers/theme-xml-generator.js +33 -0
  198. package/dist/cjs/helpers.d.ts +34 -0
  199. package/dist/cjs/helpers.d.ts.map +1 -0
  200. package/dist/cjs/helpers.js +189 -0
  201. package/dist/cjs/index.d.ts +16 -0
  202. package/dist/cjs/index.d.ts.map +1 -0
  203. package/dist/cjs/index.js +15 -0
  204. package/dist/cjs/indexed-colors.d.ts +2 -0
  205. package/dist/cjs/indexed-colors.d.ts.map +1 -0
  206. package/dist/cjs/indexed-colors.js +75 -0
  207. package/dist/cjs/ods-export.d.ts +24 -0
  208. package/dist/cjs/ods-export.d.ts.map +1 -0
  209. package/dist/cjs/ods-export.js +23 -0
  210. package/dist/cjs/parse.d.ts +24 -0
  211. package/dist/cjs/parse.d.ts.map +1 -0
  212. package/dist/cjs/parse.js +68 -0
  213. package/dist/cjs/power-query.d.ts +41 -0
  214. package/dist/cjs/power-query.d.ts.map +1 -0
  215. package/dist/cjs/power-query.js +22 -0
  216. package/dist/cjs/server.d.ts +9 -0
  217. package/dist/cjs/server.d.ts.map +1 -0
  218. package/dist/cjs/server.js +8 -0
  219. package/dist/cjs/theme1.d.ts +3 -0
  220. package/dist/cjs/theme1.d.ts.map +1 -0
  221. package/dist/cjs/theme1.js +2 -0
  222. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  223. package/dist/cjs/types.d.ts +14 -0
  224. package/dist/cjs/types.d.ts.map +1 -0
  225. package/dist/cjs/types.js +14 -0
  226. package/dist/cjs/vitest.config.d.ts +3 -0
  227. package/dist/cjs/vitest.config.d.ts.map +1 -0
  228. package/dist/cjs/vitest.config.js +16 -0
  229. package/dist/esm/autofilter-condition.d.ts +43 -0
  230. package/dist/esm/autofilter-condition.d.ts.map +1 -0
  231. package/dist/esm/autofilter-condition.js +145 -0
  232. package/dist/esm/csv-export.d.ts +49 -0
  233. package/dist/esm/csv-export.d.ts.map +1 -0
  234. package/dist/esm/csv-export.js +126 -0
  235. package/dist/esm/csv-import-worker.d.ts +16 -0
  236. package/dist/esm/csv-import-worker.d.ts.map +1 -0
  237. package/dist/esm/csv-import-worker.js +60 -0
  238. package/dist/esm/csv-import.d.ts +38 -0
  239. package/dist/esm/csv-import.d.ts.map +1 -0
  240. package/dist/esm/csv-import.js +132 -0
  241. package/dist/esm/csv-parser/helpers.d.ts +14 -0
  242. package/dist/esm/csv-parser/helpers.d.ts.map +1 -0
  243. package/dist/esm/csv-parser/helpers.js +0 -0
  244. package/dist/esm/csv-parser/types.d.ts +66 -0
  245. package/dist/esm/csv-parser/types.d.ts.map +1 -0
  246. package/dist/esm/csv-parser/types.js +14 -0
  247. package/dist/esm/csv-parser/worker.d.ts +2 -0
  248. package/dist/esm/csv-parser/worker.d.ts.map +1 -0
  249. package/dist/esm/csv-parser/worker.js +154 -0
  250. package/dist/esm/excel-export.d.ts +11 -0
  251. package/dist/esm/excel-export.d.ts.map +1 -0
  252. package/dist/esm/excel-export.js +13 -0
  253. package/dist/esm/excel-import-session.d.ts +51 -0
  254. package/dist/esm/excel-import-session.d.ts.map +1 -0
  255. package/dist/esm/excel-import-session.js +255 -0
  256. package/dist/esm/excel-import-worker.d.ts +7 -0
  257. package/dist/esm/excel-import-worker.d.ts.map +1 -0
  258. package/dist/esm/excel-import-worker.js +116 -0
  259. package/dist/esm/excel-parser/builtin-numfmts.d.ts +24 -0
  260. package/dist/esm/excel-parser/builtin-numfmts.d.ts.map +1 -0
  261. package/dist/esm/excel-parser/builtin-numfmts.js +59 -0
  262. package/dist/esm/excel-parser/cfb-decryptor.d.ts +53 -0
  263. package/dist/esm/excel-parser/cfb-decryptor.d.ts.map +1 -0
  264. package/dist/esm/excel-parser/cfb-decryptor.js +493 -0
  265. package/dist/esm/excel-parser/cfb-encryptor.d.ts +23 -0
  266. package/dist/esm/excel-parser/cfb-encryptor.d.ts.map +1 -0
  267. package/dist/esm/excel-parser/cfb-encryptor.js +181 -0
  268. package/dist/esm/excel-parser/dv-cell-stamp.d.ts +29 -0
  269. package/dist/esm/excel-parser/dv-cell-stamp.d.ts.map +1 -0
  270. package/dist/esm/excel-parser/dv-cell-stamp.js +155 -0
  271. package/dist/esm/excel-parser/helpers.d.ts +28 -0
  272. package/dist/esm/excel-parser/helpers.d.ts.map +1 -0
  273. package/dist/esm/excel-parser/helpers.js +160 -0
  274. package/dist/esm/excel-parser/interface.d.ts +179 -0
  275. package/dist/esm/excel-parser/interface.d.ts.map +1 -0
  276. package/dist/esm/excel-parser/interface.js +1 -0
  277. package/dist/esm/excel-parser/plugins/base/index.d.ts +31 -0
  278. package/dist/esm/excel-parser/plugins/base/index.d.ts.map +1 -0
  279. package/dist/esm/excel-parser/plugins/base/index.js +64 -0
  280. package/dist/esm/excel-parser/plugins/ods/conditional-formatting.d.ts +16 -0
  281. package/dist/esm/excel-parser/plugins/ods/conditional-formatting.d.ts.map +1 -0
  282. package/dist/esm/excel-parser/plugins/ods/conditional-formatting.js +405 -0
  283. package/dist/esm/excel-parser/plugins/ods/data-validations.d.ts +15 -0
  284. package/dist/esm/excel-parser/plugins/ods/data-validations.d.ts.map +1 -0
  285. package/dist/esm/excel-parser/plugins/ods/data-validations.js +331 -0
  286. package/dist/esm/excel-parser/plugins/ods/formula.d.ts +8 -0
  287. package/dist/esm/excel-parser/plugins/ods/formula.d.ts.map +1 -0
  288. package/dist/esm/excel-parser/plugins/ods/formula.js +82 -0
  289. package/dist/esm/excel-parser/plugins/ods/index.d.ts +122 -0
  290. package/dist/esm/excel-parser/plugins/ods/index.d.ts.map +1 -0
  291. package/dist/esm/excel-parser/plugins/ods/index.js +2896 -0
  292. package/dist/esm/excel-parser/plugins/ods/sparklines.d.ts +25 -0
  293. package/dist/esm/excel-parser/plugins/ods/sparklines.d.ts.map +1 -0
  294. package/dist/esm/excel-parser/plugins/ods/sparklines.js +188 -0
  295. package/dist/esm/excel-parser/plugins/ods/styles.d.ts +60 -0
  296. package/dist/esm/excel-parser/plugins/ods/styles.d.ts.map +1 -0
  297. package/dist/esm/excel-parser/plugins/ods/styles.js +732 -0
  298. package/dist/esm/excel-parser/plugins/ods/types.d.ts +7 -0
  299. package/dist/esm/excel-parser/plugins/ods/types.d.ts.map +1 -0
  300. package/dist/esm/excel-parser/plugins/ods/types.js +1 -0
  301. package/dist/esm/excel-parser/plugins/xls/index.d.ts +5 -0
  302. package/dist/esm/excel-parser/plugins/xls/index.d.ts.map +1 -0
  303. package/dist/esm/excel-parser/plugins/xls/index.js +7 -0
  304. package/dist/esm/excel-parser/plugins/xlsb/biff-record-reader.d.ts +13 -0
  305. package/dist/esm/excel-parser/plugins/xlsb/biff-record-reader.d.ts.map +1 -0
  306. package/dist/esm/excel-parser/plugins/xlsb/biff-record-reader.js +48 -0
  307. package/dist/esm/excel-parser/plugins/xlsb/index.d.ts +117 -0
  308. package/dist/esm/excel-parser/plugins/xlsb/index.d.ts.map +1 -0
  309. package/dist/esm/excel-parser/plugins/xlsb/index.js +2339 -0
  310. package/dist/esm/excel-parser/plugins/xlsb/rgce-parser.d.ts +18 -0
  311. package/dist/esm/excel-parser/plugins/xlsb/rgce-parser.d.ts.map +1 -0
  312. package/dist/esm/excel-parser/plugins/xlsb/rgce-parser.js +522 -0
  313. package/dist/esm/excel-parser/plugins/xlsm/index.d.ts +5 -0
  314. package/dist/esm/excel-parser/plugins/xlsm/index.d.ts.map +1 -0
  315. package/dist/esm/excel-parser/plugins/xlsm/index.js +6 -0
  316. package/dist/esm/excel-parser/plugins/xlsx/charts.d.ts +60 -0
  317. package/dist/esm/excel-parser/plugins/xlsx/charts.d.ts.map +1 -0
  318. package/dist/esm/excel-parser/plugins/xlsx/charts.js +2036 -0
  319. package/dist/esm/excel-parser/plugins/xlsx/conditional-formatting.d.ts +18 -0
  320. package/dist/esm/excel-parser/plugins/xlsx/conditional-formatting.d.ts.map +1 -0
  321. package/dist/esm/excel-parser/plugins/xlsx/conditional-formatting.js +621 -0
  322. package/dist/esm/excel-parser/plugins/xlsx/data-validations.d.ts +4 -0
  323. package/dist/esm/excel-parser/plugins/xlsx/data-validations.d.ts.map +1 -0
  324. package/dist/esm/excel-parser/plugins/xlsx/data-validations.js +493 -0
  325. package/dist/esm/excel-parser/plugins/xlsx/drawing.d.ts +39 -0
  326. package/dist/esm/excel-parser/plugins/xlsx/drawing.d.ts.map +1 -0
  327. package/dist/esm/excel-parser/plugins/xlsx/drawing.js +905 -0
  328. package/dist/esm/excel-parser/plugins/xlsx/index.d.ts +320 -0
  329. package/dist/esm/excel-parser/plugins/xlsx/index.d.ts.map +1 -0
  330. package/dist/esm/excel-parser/plugins/xlsx/index.js +4654 -0
  331. package/dist/esm/excel-parser/plugins/xlsx/numfmt.d.ts +2 -0
  332. package/dist/esm/excel-parser/plugins/xlsx/numfmt.d.ts.map +1 -0
  333. package/dist/esm/excel-parser/plugins/xlsx/numfmt.js +3 -0
  334. package/dist/esm/excel-parser/plugins/xlsx/pivots.d.ts +40 -0
  335. package/dist/esm/excel-parser/plugins/xlsx/pivots.d.ts.map +1 -0
  336. package/dist/esm/excel-parser/plugins/xlsx/pivots.js +254 -0
  337. package/dist/esm/excel-parser/plugins/xlsx/relationships.d.ts +8 -0
  338. package/dist/esm/excel-parser/plugins/xlsx/relationships.d.ts.map +1 -0
  339. package/dist/esm/excel-parser/plugins/xlsx/relationships.js +13 -0
  340. package/dist/esm/excel-parser/plugins/xlsx/sheet-views.d.ts +26 -0
  341. package/dist/esm/excel-parser/plugins/xlsx/sheet-views.d.ts.map +1 -0
  342. package/dist/esm/excel-parser/plugins/xlsx/sheet-views.js +64 -0
  343. package/dist/esm/excel-parser/plugins/xlsx/styles.d.ts +44 -0
  344. package/dist/esm/excel-parser/plugins/xlsx/styles.d.ts.map +1 -0
  345. package/dist/esm/excel-parser/plugins/xlsx/styles.js +1365 -0
  346. package/dist/esm/excel-parser/plugins/xlsx/theme.d.ts +50 -0
  347. package/dist/esm/excel-parser/plugins/xlsx/theme.d.ts.map +1 -0
  348. package/dist/esm/excel-parser/plugins/xlsx/theme.js +127 -0
  349. package/dist/esm/excel-parser/plugins/xlsx/threaded-comments.d.ts +47 -0
  350. package/dist/esm/excel-parser/plugins/xlsx/threaded-comments.d.ts.map +1 -0
  351. package/dist/esm/excel-parser/plugins/xlsx/threaded-comments.js +103 -0
  352. package/dist/esm/excel-parser/plugins/xlsx/value-type-detection.d.ts +44 -0
  353. package/dist/esm/excel-parser/plugins/xlsx/value-type-detection.d.ts.map +1 -0
  354. package/dist/esm/excel-parser/plugins/xlsx/value-type-detection.js +399 -0
  355. package/dist/esm/excel-parser/registry.d.ts +5 -0
  356. package/dist/esm/excel-parser/registry.d.ts.map +1 -0
  357. package/dist/esm/excel-parser/registry.js +20 -0
  358. package/dist/esm/excel-parser/style-registry.d.ts +51 -0
  359. package/dist/esm/excel-parser/style-registry.d.ts.map +1 -0
  360. package/dist/esm/excel-parser/style-registry.js +163 -0
  361. package/dist/esm/excel-parser/theme-default.d.ts +3 -0
  362. package/dist/esm/excel-parser/theme-default.d.ts.map +1 -0
  363. package/dist/esm/excel-parser/theme-default.js +19 -0
  364. package/dist/esm/excel-parser/types.d.ts +365 -0
  365. package/dist/esm/excel-parser/types.d.ts.map +1 -0
  366. package/dist/esm/excel-parser/types.js +59 -0
  367. package/dist/esm/excel-parser/utils.d.ts +6 -0
  368. package/dist/esm/excel-parser/utils.d.ts.map +1 -0
  369. package/dist/esm/excel-parser/utils.js +25 -0
  370. package/dist/esm/excel-parser/workbook.d.ts +51 -0
  371. package/dist/esm/excel-parser/workbook.d.ts.map +1 -0
  372. package/dist/esm/excel-parser/workbook.js +192 -0
  373. package/dist/esm/excel-parser/worker.d.ts +2 -0
  374. package/dist/esm/excel-parser/worker.d.ts.map +1 -0
  375. package/dist/esm/excel-parser/worker.js +862 -0
  376. package/dist/esm/excel-parser/zip-parser-streaming.d.ts +13 -0
  377. package/dist/esm/excel-parser/zip-parser-streaming.d.ts.map +1 -0
  378. package/dist/esm/excel-parser/zip-parser-streaming.js +119 -0
  379. package/dist/esm/excel-parser/zip-parser.d.ts +11 -0
  380. package/dist/esm/excel-parser/zip-parser.d.ts.map +1 -0
  381. package/dist/esm/excel-parser/zip-parser.js +43 -0
  382. package/dist/esm/exporter/invalid-data-validation.d.ts +19 -0
  383. package/dist/esm/exporter/invalid-data-validation.d.ts.map +1 -0
  384. package/dist/esm/exporter/invalid-data-validation.js +37 -0
  385. package/dist/esm/exporter/ods/ods-export.d.ts +26 -0
  386. package/dist/esm/exporter/ods/ods-export.d.ts.map +1 -0
  387. package/dist/esm/exporter/ods/ods-export.js +3238 -0
  388. package/dist/esm/exporter/ods/sparkline-builder.d.ts +33 -0
  389. package/dist/esm/exporter/ods/sparkline-builder.d.ts.map +1 -0
  390. package/dist/esm/exporter/ods/sparkline-builder.js +165 -0
  391. package/dist/esm/exporter/xlsx/chart-builder.d.ts +3 -0
  392. package/dist/esm/exporter/xlsx/chart-builder.d.ts.map +1 -0
  393. package/dist/esm/exporter/xlsx/chart-builder.js +1805 -0
  394. package/dist/esm/exporter/xlsx/chart-templates.d.ts +1781 -0
  395. package/dist/esm/exporter/xlsx/chart-templates.d.ts.map +1 -0
  396. package/dist/esm/exporter/xlsx/chart-templates.js +1798 -0
  397. package/dist/esm/exporter/xlsx/future-functions.d.ts +10 -0
  398. package/dist/esm/exporter/xlsx/future-functions.d.ts.map +1 -0
  399. package/dist/esm/exporter/xlsx/future-functions.js +264 -0
  400. package/dist/esm/exporter/xlsx/pivot-builder.d.ts +58 -0
  401. package/dist/esm/exporter/xlsx/pivot-builder.d.ts.map +1 -0
  402. package/dist/esm/exporter/xlsx/pivot-builder.js +230 -0
  403. package/dist/esm/exporter/xlsx/power-query-builder.d.ts +26 -0
  404. package/dist/esm/exporter/xlsx/power-query-builder.d.ts.map +1 -0
  405. package/dist/esm/exporter/xlsx/power-query-builder.js +257 -0
  406. package/dist/esm/exporter/xlsx/slicer-builder.d.ts +11 -0
  407. package/dist/esm/exporter/xlsx/slicer-builder.d.ts.map +1 -0
  408. package/dist/esm/exporter/xlsx/slicer-builder.js +84 -0
  409. package/dist/esm/exporter/xlsx/sparkline-builder.d.ts +61 -0
  410. package/dist/esm/exporter/xlsx/sparkline-builder.d.ts.map +1 -0
  411. package/dist/esm/exporter/xlsx/sparkline-builder.js +437 -0
  412. package/dist/esm/exporter/xlsx/style-builder.d.ts +93 -0
  413. package/dist/esm/exporter/xlsx/style-builder.d.ts.map +1 -0
  414. package/dist/esm/exporter/xlsx/style-builder.js +795 -0
  415. package/dist/esm/exporter/xlsx/threaded-comments-builder.d.ts +58 -0
  416. package/dist/esm/exporter/xlsx/threaded-comments-builder.d.ts.map +1 -0
  417. package/dist/esm/exporter/xlsx/threaded-comments-builder.js +175 -0
  418. package/dist/esm/exporter/xlsx/xlsx-export.d.ts +121 -0
  419. package/dist/esm/exporter/xlsx/xlsx-export.d.ts.map +1 -0
  420. package/dist/esm/exporter/xlsx/xlsx-export.js +4062 -0
  421. package/dist/esm/helpers/theme-xml-generator.d.ts +8 -0
  422. package/dist/esm/helpers/theme-xml-generator.d.ts.map +1 -0
  423. package/dist/esm/helpers/theme-xml-generator.js +33 -0
  424. package/dist/esm/helpers.d.ts +34 -0
  425. package/dist/esm/helpers.d.ts.map +1 -0
  426. package/dist/esm/helpers.js +182 -0
  427. package/dist/esm/index.d.ts +16 -0
  428. package/dist/esm/index.d.ts.map +1 -0
  429. package/dist/esm/index.js +15 -0
  430. package/dist/esm/indexed-colors.d.ts +2 -0
  431. package/dist/esm/indexed-colors.d.ts.map +1 -0
  432. package/dist/esm/indexed-colors.js +75 -0
  433. package/dist/esm/ods-export.d.ts +24 -0
  434. package/dist/esm/ods-export.d.ts.map +1 -0
  435. package/dist/esm/ods-export.js +12 -0
  436. package/dist/esm/parse.d.ts +24 -0
  437. package/dist/esm/parse.d.ts.map +1 -0
  438. package/dist/esm/parse.js +55 -0
  439. package/dist/esm/power-query.d.ts +41 -0
  440. package/dist/esm/power-query.d.ts.map +1 -0
  441. package/dist/esm/power-query.js +19 -0
  442. package/dist/esm/server.d.ts +9 -0
  443. package/dist/esm/server.d.ts.map +1 -0
  444. package/dist/esm/server.js +8 -0
  445. package/dist/esm/theme1.d.ts +3 -0
  446. package/dist/esm/theme1.d.ts.map +1 -0
  447. package/dist/esm/theme1.js +2 -0
  448. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
  449. package/dist/esm/types.d.ts +14 -0
  450. package/dist/esm/types.d.ts.map +1 -0
  451. package/dist/esm/types.js +14 -0
  452. package/dist/esm/vitest.config.d.ts +3 -0
  453. package/dist/esm/vitest.config.d.ts.map +1 -0
  454. package/dist/esm/vitest.config.js +16 -0
  455. package/package.json +62 -0
  456. package/xlsx.d.ts +52 -0
@@ -0,0 +1,200 @@
1
+ import { __awaiter, __generator, __read, __spreadArray, __values } from "tslib";
2
+ /// <reference path="../xlsx.d.ts" />
3
+ import { CFB } from "xlsx/xlsx.mjs";
4
+ import { sha512 } from "@noble/hashes/sha512";
5
+ import { hmac } from "@noble/hashes/hmac";
6
+ import { cbc } from "@noble/ciphers/aes";
7
+ var BLOCK_SIZE = 16;
8
+ var KEY_SIZE = 32; // AES-256
9
+ var HASH_SIZE = 64; // SHA-512
10
+ var SEGMENT_LENGTH = 4096;
11
+ var SPIN_COUNT_DEFAULT = 100000;
12
+ var BLOCK_KEY_VERIFIER_INPUT = new Uint8Array([
13
+ 0xfe, 0xa7, 0xd2, 0x76, 0x3b, 0x4b, 0x9e, 0x79,
14
+ ]);
15
+ var BLOCK_KEY_VERIFIER_HASH = new Uint8Array([
16
+ 0xd7, 0xaa, 0x0f, 0x6d, 0x30, 0x61, 0x34, 0x4e,
17
+ ]);
18
+ var BLOCK_KEY_ENCRYPTION_KEY = new Uint8Array([
19
+ 0x14, 0x6e, 0x0b, 0xe7, 0xab, 0xac, 0xd0, 0xd6,
20
+ ]);
21
+ var BLOCK_KEY_DATA_INTEGRITY_KEY = new Uint8Array([
22
+ 0x5f, 0xb2, 0xad, 0x01, 0x0c, 0xb9, 0xe1, 0xf6,
23
+ ]);
24
+ var BLOCK_KEY_DATA_INTEGRITY_VALUE = new Uint8Array([
25
+ 0xa0, 0x67, 0x7f, 0x02, 0xb2, 0x2c, 0x84, 0x33,
26
+ ]);
27
+ var CFBEncryptor = /** @class */ (function () {
28
+ function CFBEncryptor() {
29
+ }
30
+ CFBEncryptor.encrypt = function (source_1, password_1) {
31
+ return __awaiter(this, arguments, void 0, function (source, password, options) {
32
+ var packageData, spinCount, passwordSalt, packageSalt, verifierInput, encryptionKey, hmacKey, passwordDerivedKey, keyForVerifierInput, keyForVerifierHash, keyForEncryptionKey, verifierHash, encryptedVerifierHashInput, encryptedVerifierHashValue, encryptedKeyValue, encryptedPackageData, encryptedPackageStream, encryptedHmacKey, hmacValue, encryptedHmacValue, encryptionXml, encryptionInfo, cfb, result;
33
+ var _a;
34
+ if (options === void 0) { options = {}; }
35
+ return __generator(this, function (_b) {
36
+ packageData = source instanceof Uint8Array ? source : new Uint8Array(source);
37
+ spinCount = (_a = options.spinCount) !== null && _a !== void 0 ? _a : SPIN_COUNT_DEFAULT;
38
+ passwordSalt = this.randomBytes(BLOCK_SIZE);
39
+ packageSalt = this.randomBytes(BLOCK_SIZE);
40
+ verifierInput = this.randomBytes(BLOCK_SIZE);
41
+ encryptionKey = this.randomBytes(KEY_SIZE);
42
+ hmacKey = this.randomBytes(HASH_SIZE);
43
+ passwordDerivedKey = this.derivePasswordKey(password, passwordSalt, spinCount);
44
+ keyForVerifierInput = this.deriveAgileBlockKey(passwordDerivedKey, BLOCK_KEY_VERIFIER_INPUT);
45
+ keyForVerifierHash = this.deriveAgileBlockKey(passwordDerivedKey, BLOCK_KEY_VERIFIER_HASH);
46
+ keyForEncryptionKey = this.deriveAgileBlockKey(passwordDerivedKey, BLOCK_KEY_ENCRYPTION_KEY);
47
+ verifierHash = this.sha512Hash(verifierInput);
48
+ encryptedVerifierHashInput = this.encryptAESNoPadding(verifierInput, keyForVerifierInput, passwordSalt);
49
+ encryptedVerifierHashValue = this.encryptAESNoPadding(verifierHash, keyForVerifierHash, passwordSalt);
50
+ encryptedKeyValue = this.encryptAESNoPadding(encryptionKey, keyForEncryptionKey, passwordSalt);
51
+ encryptedPackageData = this.encryptPackage(packageData, encryptionKey, packageSalt);
52
+ encryptedPackageStream = this.buildEncryptedPackageStream(packageData.length, encryptedPackageData);
53
+ encryptedHmacKey = this.encryptDataIntegrityValue(hmacKey, encryptionKey, packageSalt, BLOCK_KEY_DATA_INTEGRITY_KEY);
54
+ hmacValue = this.hmacSha512(encryptedPackageStream, hmacKey);
55
+ encryptedHmacValue = this.encryptDataIntegrityValue(hmacValue, encryptionKey, packageSalt, BLOCK_KEY_DATA_INTEGRITY_VALUE);
56
+ encryptionXml = this.buildEncryptionXml({
57
+ spinCount: spinCount,
58
+ passwordSalt: passwordSalt,
59
+ packageSalt: packageSalt,
60
+ encryptedVerifierHashInput: encryptedVerifierHashInput,
61
+ encryptedVerifierHashValue: encryptedVerifierHashValue,
62
+ encryptedKeyValue: encryptedKeyValue,
63
+ encryptedHmacKey: encryptedHmacKey,
64
+ encryptedHmacValue: encryptedHmacValue,
65
+ });
66
+ encryptionInfo = this.buildEncryptionInfoStream(encryptionXml);
67
+ cfb = CFB.utils.cfb_new({ root: "Root Entry" });
68
+ CFB.utils.cfb_add(cfb, "EncryptionInfo", encryptionInfo);
69
+ CFB.utils.cfb_add(cfb, "EncryptedPackage", encryptedPackageStream);
70
+ result = CFB.write(cfb, { type: "array" });
71
+ return [2 /*return*/, result instanceof Uint8Array ? result : new Uint8Array(result)];
72
+ });
73
+ });
74
+ };
75
+ CFBEncryptor.buildEncryptionInfoStream = function (xml) {
76
+ var xmlBytes = new TextEncoder().encode(xml);
77
+ var info = new Uint8Array(8 + xmlBytes.length);
78
+ var view = new DataView(info.buffer);
79
+ view.setUint16(0, 4, true); // vMajor
80
+ view.setUint16(2, 4, true); // vMinor (Agile)
81
+ view.setUint32(4, 0x40, true); // reserved
82
+ info.set(xmlBytes, 8);
83
+ return info;
84
+ };
85
+ CFBEncryptor.buildEncryptedPackageStream = function (originalSize, encryptedData) {
86
+ var out = new Uint8Array(8 + encryptedData.length);
87
+ var view = new DataView(out.buffer);
88
+ view.setBigUint64(0, BigInt(originalSize), true);
89
+ out.set(encryptedData, 8);
90
+ return out;
91
+ };
92
+ CFBEncryptor.encryptPackage = function (data, key, packageSalt) {
93
+ var chunks = [];
94
+ for (var index = 0; index * SEGMENT_LENGTH < data.length; index++) {
95
+ var start = index * SEGMENT_LENGTH;
96
+ var end = Math.min(start + SEGMENT_LENGTH, data.length);
97
+ var segment = data.slice(start, end);
98
+ var paddedSegment = this.padToBlockSize(segment, BLOCK_SIZE);
99
+ var blockNumber = new Uint8Array(4);
100
+ new DataView(blockNumber.buffer).setUint32(0, index, true);
101
+ var iv = this.sha512Hash(this.concatArrays(packageSalt, blockNumber)).slice(0, BLOCK_SIZE);
102
+ chunks.push(this.encryptAESNoPadding(paddedSegment, key, iv));
103
+ }
104
+ return this.concatArrays.apply(this, __spreadArray([], __read(chunks), false));
105
+ };
106
+ CFBEncryptor.buildEncryptionXml = function (_a) {
107
+ var spinCount = _a.spinCount, passwordSalt = _a.passwordSalt, packageSalt = _a.packageSalt, encryptedVerifierHashInput = _a.encryptedVerifierHashInput, encryptedVerifierHashValue = _a.encryptedVerifierHashValue, encryptedKeyValue = _a.encryptedKeyValue, encryptedHmacKey = _a.encryptedHmacKey, encryptedHmacValue = _a.encryptedHmacValue;
108
+ return "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<encryption xmlns=\"http://schemas.microsoft.com/office/2006/encryption\" xmlns:p=\"http://schemas.microsoft.com/office/2006/keyEncryptor/password\" xmlns:c=\"http://schemas.microsoft.com/office/2006/keyEncryptor/certificate\">\n <keyData saltSize=\"".concat(BLOCK_SIZE, "\" blockSize=\"").concat(BLOCK_SIZE, "\" keyBits=\"").concat(KEY_SIZE * 8, "\" hashSize=\"").concat(HASH_SIZE, "\" cipherAlgorithm=\"AES\" cipherChaining=\"ChainingModeCBC\" hashAlgorithm=\"SHA512\" saltValue=\"").concat(this.toBase64(packageSalt), "\"/>\n <dataIntegrity encryptedHmacKey=\"").concat(this.toBase64(encryptedHmacKey), "\" encryptedHmacValue=\"").concat(this.toBase64(encryptedHmacValue), "\"/>\n <keyEncryptors>\n <keyEncryptor uri=\"http://schemas.microsoft.com/office/2006/keyEncryptor/password\">\n <p:encryptedKey spinCount=\"").concat(spinCount, "\" saltSize=\"").concat(BLOCK_SIZE, "\" blockSize=\"").concat(BLOCK_SIZE, "\" keyBits=\"").concat(KEY_SIZE * 8, "\" hashSize=\"").concat(HASH_SIZE, "\" cipherAlgorithm=\"AES\" cipherChaining=\"ChainingModeCBC\" hashAlgorithm=\"SHA512\" saltValue=\"").concat(this.toBase64(passwordSalt), "\" encryptedVerifierHashInput=\"").concat(this.toBase64(encryptedVerifierHashInput), "\" encryptedVerifierHashValue=\"").concat(this.toBase64(encryptedVerifierHashValue), "\" encryptedKeyValue=\"").concat(this.toBase64(encryptedKeyValue), "\"/>\n </keyEncryptor>\n </keyEncryptors>\n</encryption>");
109
+ };
110
+ CFBEncryptor.derivePasswordKey = function (password, passwordSalt, spinCount) {
111
+ var passwordBytes = this.stringToUtf16LE(password);
112
+ var hash = this.sha512Hash(this.concatArrays(passwordSalt, passwordBytes));
113
+ for (var i = 0; i < spinCount; i++) {
114
+ var iterator = new Uint8Array(4);
115
+ new DataView(iterator.buffer).setUint32(0, i, true);
116
+ hash = this.sha512Hash(this.concatArrays(iterator, hash));
117
+ }
118
+ return hash;
119
+ };
120
+ CFBEncryptor.deriveAgileBlockKey = function (passwordDerivedKey, blockKey) {
121
+ return this.sha512Hash(this.concatArrays(passwordDerivedKey, blockKey)).slice(0, KEY_SIZE);
122
+ };
123
+ CFBEncryptor.encryptDataIntegrityValue = function (data, encryptionKey, packageSalt, blockKey) {
124
+ var iv = this.sha512Hash(this.concatArrays(packageSalt, blockKey)).slice(0, BLOCK_SIZE);
125
+ return this.encryptAESNoPadding(this.padToBlockSize(data, BLOCK_SIZE), encryptionKey, iv);
126
+ };
127
+ CFBEncryptor.encryptAESNoPadding = function (data, key, iv) {
128
+ var cipher = cbc(key, iv, { disablePadding: true });
129
+ return cipher.encrypt(data);
130
+ };
131
+ CFBEncryptor.sha512Hash = function (data) {
132
+ return sha512(data);
133
+ };
134
+ CFBEncryptor.hmacSha512 = function (data, key) {
135
+ return hmac(sha512, key, data);
136
+ };
137
+ CFBEncryptor.toBase64 = function (data) {
138
+ var binary = "";
139
+ for (var i = 0; i < data.length; i++) {
140
+ binary += String.fromCharCode(data[i]);
141
+ }
142
+ return btoa(binary);
143
+ };
144
+ CFBEncryptor.padToBlockSize = function (data, blockSize) {
145
+ var remainder = data.length % blockSize;
146
+ if (remainder === 0)
147
+ return data;
148
+ var out = new Uint8Array(data.length + (blockSize - remainder));
149
+ out.set(data);
150
+ return out;
151
+ };
152
+ CFBEncryptor.stringToUtf16LE = function (value) {
153
+ var bytes = new Uint8Array(value.length * 2);
154
+ for (var i = 0; i < value.length; i++) {
155
+ var code = value.charCodeAt(i);
156
+ bytes[i * 2] = code & 0xff;
157
+ bytes[i * 2 + 1] = (code >> 8) & 0xff;
158
+ }
159
+ return bytes;
160
+ };
161
+ CFBEncryptor.concatArrays = function () {
162
+ var e_1, _a;
163
+ var arrays = [];
164
+ for (var _i = 0; _i < arguments.length; _i++) {
165
+ arrays[_i] = arguments[_i];
166
+ }
167
+ var total = arrays.reduce(function (sum, arr) { return sum + arr.length; }, 0);
168
+ var out = new Uint8Array(total);
169
+ var offset = 0;
170
+ try {
171
+ for (var arrays_1 = __values(arrays), arrays_1_1 = arrays_1.next(); !arrays_1_1.done; arrays_1_1 = arrays_1.next()) {
172
+ var arr = arrays_1_1.value;
173
+ out.set(arr, offset);
174
+ offset += arr.length;
175
+ }
176
+ }
177
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
178
+ finally {
179
+ try {
180
+ if (arrays_1_1 && !arrays_1_1.done && (_a = arrays_1.return)) _a.call(arrays_1);
181
+ }
182
+ finally { if (e_1) throw e_1.error; }
183
+ }
184
+ return out;
185
+ };
186
+ CFBEncryptor.randomBytes = function (length) {
187
+ var out = new Uint8Array(length);
188
+ if (typeof globalThis.crypto !== "undefined" &&
189
+ globalThis.crypto.getRandomValues) {
190
+ globalThis.crypto.getRandomValues(out);
191
+ return out;
192
+ }
193
+ for (var i = 0; i < length; i++) {
194
+ out[i] = Math.floor(Math.random() * 256);
195
+ }
196
+ return out;
197
+ };
198
+ return CFBEncryptor;
199
+ }());
200
+ export { CFBEncryptor };
@@ -0,0 +1,29 @@
1
+ import type { CellData, DataValidationRuleRecord } from "@rowsncolumns/spreadsheet";
2
+ export declare class SheetDataValidationStamper {
3
+ private readonly rules;
4
+ private materializeBudget;
5
+ /** Rows that streamed out of the parser (only tracked when rules exist),
6
+ * so trailing materialization doesn't duplicate them. */
7
+ private readonly emittedRows;
8
+ constructor(allRules: DataValidationRuleRecord[], sheetId: number);
9
+ get hasRules(): boolean;
10
+ /** First rule (rule-list order, matching `updateRule`/grid semantics) whose
11
+ * ranges contain the cell. */
12
+ private ruleIdAt;
13
+ /**
14
+ * Stamp an emitted row in place: covered existing cells get
15
+ * `dataValidation: <ruleId>`, and covered holes inside small ranges get a
16
+ * phantom `{ dataValidation }` cell (budget-capped).
17
+ */
18
+ stampRow(rowIndex: number, values: (CellData | null | undefined)[]): void;
19
+ /**
20
+ * Rows covered by small ranges that never streamed out of the file at all
21
+ * (fully blank template rows). Returns sparse phantom rows to append to the
22
+ * sheet's final chunk, in ascending row order.
23
+ */
24
+ trailingRows(): Array<{
25
+ rowIndex: number;
26
+ values: (CellData | null | undefined)[];
27
+ }>;
28
+ }
29
+ //# sourceMappingURL=dv-cell-stamp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dv-cell-stamp.d.ts","sourceRoot":"","sources":["../../../excel-parser/dv-cell-stamp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,wBAAwB,EACzB,MAAM,2BAA2B,CAAC;AA+CnC,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,iBAAiB,CAA8B;IACvD;6DACyD;IACzD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;gBAG/C,QAAQ,EAAE,wBAAwB,EAAE,EACpC,OAAO,EAAE,MAAM;IAsCjB,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;kCAC8B;IAC9B,OAAO,CAAC,QAAQ;IAmBhB;;;;OAIG;IACH,QAAQ,CACN,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,CAAC,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GACtC,IAAI;IAgCP;;;;OAIG;IACH,YAAY,IAAI,KAAK,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,CAAC,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC;KACzC,CAAC;CAmCH"}
@@ -0,0 +1,239 @@
1
+ import { __assign, __read, __spreadArray, __values } from "tslib";
2
+ /**
3
+ * Per-sheet stamping of `cellData.dataValidation` during `processSheetData`
4
+ * streaming.
5
+ *
6
+ * Spreadsheet files store validations at the worksheet level (a rule + the
7
+ * ranges it applies to), but `useSpreadsheetState.getDataValidation` resolves a
8
+ * cell's rule ONLY through the per-cell `cellData.dataValidation` reference —
9
+ * there is no range-membership fallback. Consumers that build documents
10
+ * straight from `processSheetData` (e.g. server-side xlsx→Y.Doc conversion)
11
+ * therefore need the streamed cells to already carry the rule id, or the grid
12
+ * never shows dropdown arrows / enforces the rule even though the rule list
13
+ * itself round-tripped.
14
+ *
15
+ * The stamped id MUST be the id of the same rule object the plugin returns
16
+ * from `getDataValidations()` (ids are minted per parse), so plugins must
17
+ * feed this class from a single cached parse shared with that API.
18
+ */
19
+ /** A cell is only materialized (created solely to carry the stamp) for ranges
20
+ * up to this many cells — whole-column/row sqrefs would otherwise bloat the
21
+ * output with millions of phantom cells. Cells that exist anyway are stamped
22
+ * regardless of range size. */
23
+ var DV_MATERIALIZE_RANGE_CELL_CAP = 20000;
24
+ /** Upper bound on phantom cells materialized per sheet across all ranges. */
25
+ var DV_MATERIALIZE_CELL_BUDGET = 100000;
26
+ var isFiniteIndex = function (value) {
27
+ return typeof value === "number" && Number.isFinite(value) && value > 0;
28
+ };
29
+ var SheetDataValidationStamper = /** @class */ (function () {
30
+ function SheetDataValidationStamper(allRules, sheetId) {
31
+ var e_1, _a, e_2, _b;
32
+ var _c;
33
+ this.rules = [];
34
+ this.materializeBudget = DV_MATERIALIZE_CELL_BUDGET;
35
+ /** Rows that streamed out of the parser (only tracked when rules exist),
36
+ * so trailing materialization doesn't duplicate them. */
37
+ this.emittedRows = new Set();
38
+ try {
39
+ for (var allRules_1 = __values(allRules), allRules_1_1 = allRules_1.next(); !allRules_1_1.done; allRules_1_1 = allRules_1.next()) {
40
+ var rule = allRules_1_1.value;
41
+ if (rule.id === undefined || rule.id === null)
42
+ continue;
43
+ var ranges = [];
44
+ var materialize = [];
45
+ try {
46
+ for (var _d = (e_2 = void 0, __values((_c = rule.ranges) !== null && _c !== void 0 ? _c : [])), _e = _d.next(); !_e.done; _e = _d.next()) {
47
+ var range = _e.value;
48
+ if (range.sheetId !== sheetId)
49
+ continue;
50
+ var _f = range, startRowIndex = _f.startRowIndex, endRowIndex = _f.endRowIndex, startColumnIndex = _f.startColumnIndex, endColumnIndex = _f.endColumnIndex;
51
+ if (!isFiniteIndex(startRowIndex) ||
52
+ !isFiniteIndex(endRowIndex) ||
53
+ !isFiniteIndex(startColumnIndex) ||
54
+ !isFiniteIndex(endColumnIndex) ||
55
+ endRowIndex < startRowIndex ||
56
+ endColumnIndex < startColumnIndex) {
57
+ continue;
58
+ }
59
+ ranges.push({
60
+ startRowIndex: startRowIndex,
61
+ endRowIndex: endRowIndex,
62
+ startColumnIndex: startColumnIndex,
63
+ endColumnIndex: endColumnIndex,
64
+ });
65
+ materialize.push((endRowIndex - startRowIndex + 1) *
66
+ (endColumnIndex - startColumnIndex + 1) <=
67
+ DV_MATERIALIZE_RANGE_CELL_CAP);
68
+ }
69
+ }
70
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
71
+ finally {
72
+ try {
73
+ if (_e && !_e.done && (_b = _d.return)) _b.call(_d);
74
+ }
75
+ finally { if (e_2) throw e_2.error; }
76
+ }
77
+ if (ranges.length) {
78
+ this.rules.push({ id: rule.id, ranges: ranges, materialize: materialize });
79
+ }
80
+ }
81
+ }
82
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
83
+ finally {
84
+ try {
85
+ if (allRules_1_1 && !allRules_1_1.done && (_a = allRules_1.return)) _a.call(allRules_1);
86
+ }
87
+ finally { if (e_1) throw e_1.error; }
88
+ }
89
+ }
90
+ Object.defineProperty(SheetDataValidationStamper.prototype, "hasRules", {
91
+ get: function () {
92
+ return this.rules.length > 0;
93
+ },
94
+ enumerable: false,
95
+ configurable: true
96
+ });
97
+ /** First rule (rule-list order, matching `updateRule`/grid semantics) whose
98
+ * ranges contain the cell. */
99
+ SheetDataValidationStamper.prototype.ruleIdAt = function (rowIndex, columnIndex) {
100
+ var e_3, _a, e_4, _b;
101
+ try {
102
+ for (var _c = __values(this.rules), _d = _c.next(); !_d.done; _d = _c.next()) {
103
+ var rule = _d.value;
104
+ try {
105
+ for (var _e = (e_4 = void 0, __values(rule.ranges)), _f = _e.next(); !_f.done; _f = _e.next()) {
106
+ var range = _f.value;
107
+ if (rowIndex >= range.startRowIndex &&
108
+ rowIndex <= range.endRowIndex &&
109
+ columnIndex >= range.startColumnIndex &&
110
+ columnIndex <= range.endColumnIndex) {
111
+ return rule.id;
112
+ }
113
+ }
114
+ }
115
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
116
+ finally {
117
+ try {
118
+ if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
119
+ }
120
+ finally { if (e_4) throw e_4.error; }
121
+ }
122
+ }
123
+ }
124
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
125
+ finally {
126
+ try {
127
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
128
+ }
129
+ finally { if (e_3) throw e_3.error; }
130
+ }
131
+ return undefined;
132
+ };
133
+ /**
134
+ * Stamp an emitted row in place: covered existing cells get
135
+ * `dataValidation: <ruleId>`, and covered holes inside small ranges get a
136
+ * phantom `{ dataValidation }` cell (budget-capped).
137
+ */
138
+ SheetDataValidationStamper.prototype.stampRow = function (rowIndex, values) {
139
+ var e_5, _a;
140
+ var _this = this;
141
+ if (!this.hasRules)
142
+ return;
143
+ this.emittedRows.add(rowIndex);
144
+ // Existing cells first — bounded by real data, so range size is irrelevant.
145
+ values.forEach(function (cell, columnIndex) {
146
+ if (!cell || cell.dataValidation != null)
147
+ return;
148
+ var id = _this.ruleIdAt(rowIndex, columnIndex);
149
+ if (id !== undefined) {
150
+ values[columnIndex] = __assign(__assign({}, cell), { dataValidation: id });
151
+ }
152
+ });
153
+ try {
154
+ // Then materialize covered holes (first rule wins via the null check).
155
+ for (var _b = __values(this.rules), _c = _b.next(); !_c.done; _c = _b.next()) {
156
+ var rule = _c.value;
157
+ for (var i = 0; i < rule.ranges.length; i++) {
158
+ if (!rule.materialize[i])
159
+ continue;
160
+ var range = rule.ranges[i];
161
+ if (rowIndex < range.startRowIndex || rowIndex > range.endRowIndex) {
162
+ continue;
163
+ }
164
+ for (var columnIndex = range.startColumnIndex; columnIndex <= range.endColumnIndex && this.materializeBudget > 0; columnIndex++) {
165
+ if (values[columnIndex] != null)
166
+ continue;
167
+ values[columnIndex] = { dataValidation: rule.id };
168
+ this.materializeBudget--;
169
+ }
170
+ }
171
+ }
172
+ }
173
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
174
+ finally {
175
+ try {
176
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
177
+ }
178
+ finally { if (e_5) throw e_5.error; }
179
+ }
180
+ };
181
+ /**
182
+ * Rows covered by small ranges that never streamed out of the file at all
183
+ * (fully blank template rows). Returns sparse phantom rows to append to the
184
+ * sheet's final chunk, in ascending row order.
185
+ */
186
+ SheetDataValidationStamper.prototype.trailingRows = function () {
187
+ var e_6, _a;
188
+ if (!this.hasRules)
189
+ return [];
190
+ var rowsByIndex = new Map();
191
+ try {
192
+ for (var _b = __values(this.rules), _c = _b.next(); !_c.done; _c = _b.next()) {
193
+ var rule = _c.value;
194
+ for (var i = 0; i < rule.ranges.length; i++) {
195
+ if (!rule.materialize[i])
196
+ continue;
197
+ var range = rule.ranges[i];
198
+ for (var rowIndex = range.startRowIndex; rowIndex <= range.endRowIndex; rowIndex++) {
199
+ if (this.emittedRows.has(rowIndex))
200
+ continue;
201
+ var values = rowsByIndex.get(rowIndex);
202
+ if (!values) {
203
+ values = [];
204
+ rowsByIndex.set(rowIndex, values);
205
+ }
206
+ for (var columnIndex = range.startColumnIndex; columnIndex <= range.endColumnIndex && this.materializeBudget > 0; columnIndex++) {
207
+ if (values[columnIndex] != null)
208
+ continue;
209
+ values[columnIndex] = { dataValidation: rule.id };
210
+ this.materializeBudget--;
211
+ }
212
+ }
213
+ }
214
+ }
215
+ }
216
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
217
+ finally {
218
+ try {
219
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
220
+ }
221
+ finally { if (e_6) throw e_6.error; }
222
+ }
223
+ return __spreadArray([], __read(rowsByIndex.entries()), false).filter(function (_a) {
224
+ var _b = __read(_a, 2), values = _b[1];
225
+ return values.length > 0;
226
+ })
227
+ .sort(function (_a, _b) {
228
+ var _c = __read(_a, 1), a = _c[0];
229
+ var _d = __read(_b, 1), b = _d[0];
230
+ return a - b;
231
+ })
232
+ .map(function (_a) {
233
+ var _b = __read(_a, 2), rowIndex = _b[0], values = _b[1];
234
+ return ({ rowIndex: rowIndex, values: values });
235
+ });
236
+ };
237
+ return SheetDataValidationStamper;
238
+ }());
239
+ export { SheetDataValidationStamper };
@@ -0,0 +1,28 @@
1
+ import type { GridRange } from "@rowsncolumns/common-types";
2
+ import type { FilterSpec } from "@rowsncolumns/spreadsheet";
3
+ export declare const getRangeFromAddressRef: (ref: string) => GridRange | undefined;
4
+ /**
5
+ * Convert an xlsx column width (in units of max-digit-width of the
6
+ * default workbook font, Calibri 11 → MDW=7px) to pixels.
7
+ *
8
+ * Excel's effective rendered pixel count includes a 5-pixel padding
9
+ * baked into the column box: `pixels = floor(width × MDW + padding)`.
10
+ * The default width "8.43" renders as 64 px (8.43 × 7 + 5 ≈ 64.01),
11
+ * matching Excel exactly. The "pure" ECMA-376 §18.3.1.13 formula omits
12
+ * the 5px padding; we keep the +5 form so our pixel output matches
13
+ * Excel's rendered widths and round-trips with our exporter.
14
+ */
15
+ export declare function excelColumnWidthToPixels(width: number): number;
16
+ export declare function findMax(arr: number[]): number;
17
+ export declare function createFilterSpecsFromAutoFilter(autoFilter: any,
18
+ /**
19
+ * Optional dxf resolver — called with (dxfId, cellColor) to return a
20
+ * hex color string. When omitted, `<colorFilter>` entries are skipped
21
+ * (caller doesn't have access to workbook dxfs).
22
+ */
23
+ resolveDxfColor?: (dxfId: number, cellColor: boolean) => string | undefined): FilterSpec[];
24
+ /**
25
+ * Reads an Excel file and extracts sheet metadata
26
+ */
27
+ export declare function readExcelFile(file: File | ArrayBuffer): Promise<ArrayBuffer>;
28
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../excel-parser/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAY,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAStE,eAAO,MAAM,sBAAsB,GAAI,KAAK,MAAM,KAAG,SAAS,GAAG,SAIhE,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,UAIrD;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,UAMpC;AAuBD,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,GAAG;AACf;;;;GAIG;AACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,gBA8F5E;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,wBAkB3D"}