@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,51 @@
1
+ import type { WorkerResponse } from "./excel-parser/types";
2
+ import { ResponseType } from "./excel-parser/types";
3
+ type OpenCompleteMessage = Extract<WorkerResponse, {
4
+ responseType: ResponseType.OPEN_WORKBOOK_COMPLETE;
5
+ }>;
6
+ type SheetChunkMessage = Extract<WorkerResponse, {
7
+ responseType: ResponseType.SHEET_CHUNK;
8
+ }>;
9
+ type SheetCompleteMessage = Extract<WorkerResponse, {
10
+ responseType: ResponseType.SHEET_COMPLETE;
11
+ }>;
12
+ export type ExcelSessionOpenSuccess = {
13
+ status: "open";
14
+ } & Omit<OpenCompleteMessage, "responseType" | "generation">;
15
+ /**
16
+ * The workbook is encrypted. Prompt the user, then call
17
+ * `session.providePassword(password)` — it resolves with the same
18
+ * `ExcelSessionOpenResult` shape (another `password-required` on a wrong
19
+ * password), mirroring the eager flow's PASSWORD_REQUIRED loop.
20
+ */
21
+ export type ExcelSessionPasswordRequired = {
22
+ status: "password-required";
23
+ message?: string;
24
+ };
25
+ export type ExcelSessionOpenResult = ExcelSessionOpenSuccess | ExcelSessionPasswordRequired;
26
+ export type ExcelSessionSheetChunk = Omit<SheetChunkMessage, "responseType" | "generation" | "requestId">;
27
+ export type ExcelSessionSheetComplete = Omit<SheetCompleteMessage, "responseType" | "generation" | "requestId">;
28
+ export type ExcelSessionLoadSheetOptions = {
29
+ chunkSize?: number;
30
+ enableCellXfsRegistry?: boolean;
31
+ enableSharedStrings?: boolean;
32
+ signal?: AbortSignal;
33
+ };
34
+ export type ExcelImportSession = {
35
+ open(): Promise<ExcelSessionOpenResult>;
36
+ providePassword(password: string): Promise<ExcelSessionOpenResult>;
37
+ loadSheet(sheetId: number, options?: ExcelSessionLoadSheetOptions): AsyncGenerator<ExcelSessionSheetChunk, ExcelSessionSheetComplete, void>;
38
+ dispose(): void;
39
+ };
40
+ /**
41
+ * Typed client for the session import worker protocol (issue #336). Opens
42
+ * a workbook once, keeps it resident worker-side, and streams individual
43
+ * sheets on demand with automatic requestId allocation, chunk
44
+ * acknowledgement backpressure, cancellation, and generation management.
45
+ */
46
+ export declare const createExcelImportSession: (file: File | ArrayBuffer, options?: {
47
+ minRowCount?: number;
48
+ minColumnCount?: number;
49
+ }) => ExcelImportSession;
50
+ export {};
51
+ //# sourceMappingURL=excel-import-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"excel-import-session.d.ts","sourceRoot":"","sources":["../../excel-import-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAe,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEjE,KAAK,mBAAmB,GAAG,OAAO,CAChC,cAAc,EACd;IAAE,YAAY,EAAE,YAAY,CAAC,sBAAsB,CAAA;CAAE,CACtD,CAAC;AACF,KAAK,iBAAiB,GAAG,OAAO,CAC9B,cAAc,EACd;IAAE,YAAY,EAAE,YAAY,CAAC,WAAW,CAAA;CAAE,CAC3C,CAAC;AACF,KAAK,oBAAoB,GAAG,OAAO,CACjC,cAAc,EACd;IAAE,YAAY,EAAE,YAAY,CAAC,cAAc,CAAA;CAAE,CAC9C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,IAAI,CAAC,mBAAmB,EAAE,cAAc,GAAG,YAAY,CAAC,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,MAAM,4BAA4B,GAAG;IACzC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAC9B,uBAAuB,GACvB,4BAA4B,CAAC;AAEjC,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,iBAAiB,EACjB,cAAc,GAAG,YAAY,GAAG,WAAW,CAC5C,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAC1C,oBAAoB,EACpB,cAAc,GAAG,YAAY,GAAG,WAAW,CAC5C,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACxC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACnE,SAAS,CACP,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,4BAA4B,GACrC,cAAc,CAAC,sBAAsB,EAAE,yBAAyB,EAAE,IAAI,CAAC,CAAC;IAC3E,OAAO,IAAI,IAAI,CAAC;CACjB,CAAC;AA2BF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GACnC,MAAM,IAAI,GAAG,WAAW,EACxB,UAAU;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,KAC1D,kBAgRF,CAAC"}
@@ -0,0 +1,307 @@
1
+ import { __assign, __asyncGenerator, __await, __generator, __rest, __values } from "tslib";
2
+ import { RequestType, ResponseType } from "./excel-parser/types";
3
+ // Hosts whose bundlers can't resolve the `new URL(...)` worker specifier
4
+ // (e.g. turbopack) can supply their own worker constructors here — same
5
+ // global and same `excel` slot as `createExcelImportWorker`.
6
+ var createWorkerInstance = function () {
7
+ var _a, _b, _c;
8
+ return (_c = (_b = (_a = globalThis.__ATHENA_TOOLKIT_WORKER_FACTORIES) === null || _a === void 0 ? void 0 : _a.excel) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : new Worker(new URL("@rowsncolumns/toolkit/worker", import.meta.url), {
9
+ type: "module",
10
+ });
11
+ };
12
+ // The watchdog covers workbook opening only (the worker-never-loaded
13
+ // failure mode). A resident session is expected to sit idle between sheet
14
+ // loads, and a streaming sheet can legitimately pause on host-side
15
+ // consumption, so prolonged silence is not an error outside open().
16
+ var WORKER_OPEN_TIMEOUT_MS = 20000;
17
+ var abortError = function () {
18
+ var error = new Error("The sheet load was aborted");
19
+ error.name = "AbortError";
20
+ return error;
21
+ };
22
+ /**
23
+ * Typed client for the session import worker protocol (issue #336). Opens
24
+ * a workbook once, keeps it resident worker-side, and streams individual
25
+ * sheets on demand with automatic requestId allocation, chunk
26
+ * acknowledgement backpressure, cancellation, and generation management.
27
+ */
28
+ export var createExcelImportSession = function (file, options) {
29
+ var worker = createWorkerInstance();
30
+ var generation = 0;
31
+ var requestCounter = 0;
32
+ var disposed = false;
33
+ var pendingOpen = null;
34
+ var streams = new Map();
35
+ var openWatchdog = null;
36
+ var clearOpenWatchdog = function () {
37
+ if (openWatchdog !== null) {
38
+ clearTimeout(openWatchdog);
39
+ openWatchdog = null;
40
+ }
41
+ };
42
+ var failEverything = function (error) {
43
+ var e_1, _a;
44
+ var _b;
45
+ clearOpenWatchdog();
46
+ if (pendingOpen) {
47
+ var reject = pendingOpen.reject;
48
+ pendingOpen = null;
49
+ reject(error);
50
+ }
51
+ try {
52
+ for (var _c = __values(streams.values()), _d = _c.next(); !_d.done; _d = _c.next()) {
53
+ var state = _d.value;
54
+ state.failed = error;
55
+ (_b = state.waiter) === null || _b === void 0 ? void 0 : _b.call(state);
56
+ }
57
+ }
58
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
59
+ finally {
60
+ try {
61
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
62
+ }
63
+ finally { if (e_1) throw e_1.error; }
64
+ }
65
+ };
66
+ var settleOpen = function (result) {
67
+ if (!pendingOpen) {
68
+ return;
69
+ }
70
+ clearOpenWatchdog();
71
+ var resolve = pendingOpen.resolve;
72
+ pendingOpen = null;
73
+ resolve(result);
74
+ };
75
+ worker.onmessage = function (e) {
76
+ var _a, _b, _c;
77
+ var data = e === null || e === void 0 ? void 0 : e.data;
78
+ if (!(data === null || data === void 0 ? void 0 : data.responseType)) {
79
+ return;
80
+ }
81
+ var messageGeneration = data.generation;
82
+ if (messageGeneration !== undefined && messageGeneration !== generation) {
83
+ return;
84
+ }
85
+ switch (data.responseType) {
86
+ case ResponseType.OPEN_WORKBOOK_COMPLETE: {
87
+ var _rt = data.responseType, _g = data.generation, rest = __rest(data, ["responseType", "generation"]);
88
+ settleOpen(__assign({ status: "open" }, rest));
89
+ break;
90
+ }
91
+ case ResponseType.PASSWORD_REQUIRED: {
92
+ settleOpen({ status: "password-required", message: data.message });
93
+ break;
94
+ }
95
+ case ResponseType.SHEET_CHUNK:
96
+ case ResponseType.SHEET_COMPLETE: {
97
+ var state = streams.get(data.requestId);
98
+ if (state) {
99
+ state.queue.push(data);
100
+ (_a = state.waiter) === null || _a === void 0 ? void 0 : _a.call(state);
101
+ }
102
+ break;
103
+ }
104
+ case ResponseType.ERROR: {
105
+ var error = new Error((_b = data.error) !== null && _b !== void 0 ? _b : "Excel import worker error");
106
+ var requestId = data.requestId;
107
+ if (requestId !== undefined) {
108
+ var state = streams.get(requestId);
109
+ if (state) {
110
+ state.failed = error;
111
+ (_c = state.waiter) === null || _c === void 0 ? void 0 : _c.call(state);
112
+ }
113
+ break;
114
+ }
115
+ if (pendingOpen) {
116
+ clearOpenWatchdog();
117
+ var reject = pendingOpen.reject;
118
+ pendingOpen = null;
119
+ reject(error);
120
+ }
121
+ break;
122
+ }
123
+ default:
124
+ // IMPORT_PROGRESS and other liveness messages need no routing.
125
+ break;
126
+ }
127
+ };
128
+ worker.onerror = function (error) {
129
+ failEverything(error instanceof ErrorEvent && error.message
130
+ ? new Error(error.message)
131
+ : new Error("Worker failed to load or crashed. Check worker URL resolution and browser console/network logs."));
132
+ };
133
+ worker.onmessageerror = function () {
134
+ failEverything(new Error("Worker could not deserialize a message (onmessageerror). It likely failed to load. Check the browser console/network logs."));
135
+ };
136
+ var awaitOpenResult = function (send) {
137
+ return new Promise(function (resolve, reject) {
138
+ if (disposed) {
139
+ reject(new Error("The import session has been disposed"));
140
+ return;
141
+ }
142
+ if (pendingOpen) {
143
+ pendingOpen.reject(new Error("Superseded by a newer open()"));
144
+ }
145
+ pendingOpen = { generation: generation, resolve: resolve, reject: reject };
146
+ send();
147
+ clearOpenWatchdog();
148
+ openWatchdog = setTimeout(function () {
149
+ failEverything(new Error("Worker failed to load or stalled (no response). Check worker URL resolution and browser console/network logs."));
150
+ }, WORKER_OPEN_TIMEOUT_MS);
151
+ });
152
+ };
153
+ var open = function () {
154
+ var e_2, _a;
155
+ var _b;
156
+ generation += 1;
157
+ // Streams from the previous generation will never see another message.
158
+ var superseded = new Error("Superseded by a newer open()");
159
+ try {
160
+ for (var _c = __values(streams.values()), _d = _c.next(); !_d.done; _d = _c.next()) {
161
+ var state = _d.value;
162
+ state.failed = superseded;
163
+ (_b = state.waiter) === null || _b === void 0 ? void 0 : _b.call(state);
164
+ }
165
+ }
166
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
167
+ finally {
168
+ try {
169
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
170
+ }
171
+ finally { if (e_2) throw e_2.error; }
172
+ }
173
+ return awaitOpenResult(function () {
174
+ worker.postMessage({
175
+ requestType: RequestType.OPEN_WORKBOOK,
176
+ generation: generation,
177
+ file: file,
178
+ minRowCount: options === null || options === void 0 ? void 0 : options.minRowCount,
179
+ minColumnCount: options === null || options === void 0 ? void 0 : options.minColumnCount,
180
+ });
181
+ });
182
+ };
183
+ var providePassword = function (password) {
184
+ return awaitOpenResult(function () {
185
+ worker.postMessage({
186
+ requestType: RequestType.PROVIDE_PASSWORD,
187
+ password: password,
188
+ });
189
+ });
190
+ };
191
+ function loadSheet(sheetId, loadOptions) {
192
+ return __asyncGenerator(this, arguments, function loadSheet_1() {
193
+ var signal, requestId, requestGeneration, state, done, cancel, onAbort, message, _rt_1, _g_1, _r_1, rest, _rt, _g, _r, chunk;
194
+ return __generator(this, function (_a) {
195
+ switch (_a.label) {
196
+ case 0:
197
+ if (disposed) {
198
+ throw new Error("The import session has been disposed");
199
+ }
200
+ if (generation === 0) {
201
+ throw new Error("open() must resolve before loading sheets");
202
+ }
203
+ signal = loadOptions === null || loadOptions === void 0 ? void 0 : loadOptions.signal;
204
+ if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
205
+ throw abortError();
206
+ }
207
+ requestCounter += 1;
208
+ requestId = "req-".concat(requestCounter);
209
+ requestGeneration = generation;
210
+ state = { queue: [], waiter: null, failed: null };
211
+ streams.set(requestId, state);
212
+ done = false;
213
+ cancel = function () {
214
+ if (done || disposed) {
215
+ return;
216
+ }
217
+ worker.postMessage({
218
+ requestType: RequestType.CANCEL_REQUEST,
219
+ generation: requestGeneration,
220
+ requestId: requestId,
221
+ });
222
+ };
223
+ onAbort = function () {
224
+ var _a;
225
+ cancel();
226
+ state.failed = abortError();
227
+ (_a = state.waiter) === null || _a === void 0 ? void 0 : _a.call(state);
228
+ };
229
+ signal === null || signal === void 0 ? void 0 : signal.addEventListener("abort", onAbort, { once: true });
230
+ _a.label = 1;
231
+ case 1:
232
+ _a.trys.push([1, , 11, 12]);
233
+ worker.postMessage({
234
+ requestType: RequestType.LOAD_SHEET,
235
+ generation: requestGeneration,
236
+ requestId: requestId,
237
+ sheetId: sheetId,
238
+ options: {
239
+ chunkSize: loadOptions === null || loadOptions === void 0 ? void 0 : loadOptions.chunkSize,
240
+ enableCellXfsRegistry: loadOptions === null || loadOptions === void 0 ? void 0 : loadOptions.enableCellXfsRegistry,
241
+ enableSharedStrings: loadOptions === null || loadOptions === void 0 ? void 0 : loadOptions.enableSharedStrings,
242
+ enableBackpressure: true,
243
+ },
244
+ });
245
+ _a.label = 2;
246
+ case 2:
247
+ if (state.failed) {
248
+ throw state.failed;
249
+ }
250
+ message = state.queue.shift();
251
+ if (!!message) return [3 /*break*/, 4];
252
+ return [4 /*yield*/, __await(new Promise(function (resolve) {
253
+ state.waiter = resolve;
254
+ }))];
255
+ case 3:
256
+ _a.sent();
257
+ state.waiter = null;
258
+ return [3 /*break*/, 9];
259
+ case 4:
260
+ if (!(message.responseType === ResponseType.SHEET_COMPLETE)) return [3 /*break*/, 6];
261
+ done = true;
262
+ _rt_1 = message.responseType, _g_1 = message.generation, _r_1 = message.requestId, rest = __rest(message, ["responseType", "generation", "requestId"]);
263
+ return [4 /*yield*/, __await(rest)];
264
+ case 5: return [2 /*return*/, _a.sent()];
265
+ case 6:
266
+ _rt = message.responseType, _g = message.generation, _r = message.requestId, chunk = __rest(message, ["responseType", "generation", "requestId"]);
267
+ return [4 /*yield*/, __await(chunk)];
268
+ case 7: return [4 /*yield*/, _a.sent()];
269
+ case 8:
270
+ _a.sent();
271
+ // The host consumed the chunk (the generator resumed) — release the
272
+ // worker's backpressure gate.
273
+ worker.postMessage({
274
+ requestType: RequestType.ACK_ROW_DATA,
275
+ sheetId: chunk.sheetId,
276
+ chunkIndex: chunk.chunkIndex,
277
+ requestId: requestId,
278
+ });
279
+ _a.label = 9;
280
+ case 9: return [3 /*break*/, 2];
281
+ case 10: return [3 /*break*/, 12];
282
+ case 11:
283
+ signal === null || signal === void 0 ? void 0 : signal.removeEventListener("abort", onAbort);
284
+ streams.delete(requestId);
285
+ // Early generator termination (break / .return()) leaves the worker
286
+ // stream running — stop it.
287
+ cancel();
288
+ return [7 /*endfinally*/];
289
+ case 12: return [2 /*return*/];
290
+ }
291
+ });
292
+ });
293
+ }
294
+ var dispose = function () {
295
+ if (disposed) {
296
+ return;
297
+ }
298
+ disposed = true;
299
+ worker.postMessage({
300
+ requestType: RequestType.DISPOSE_WORKBOOK,
301
+ generation: generation,
302
+ });
303
+ failEverything(new Error("The import session has been disposed"));
304
+ worker.terminate();
305
+ };
306
+ return { open: open, providePassword: providePassword, loadSheet: loadSheet, dispose: dispose };
307
+ };
@@ -0,0 +1,7 @@
1
+ import { Observable } from "rxjs";
2
+ import type { WorkerResponse } from "./excel-parser/types";
3
+ export declare const createExcelImportWorker: (file: File | ArrayBuffer, minRowCount?: number, minColumnCount?: number) => {
4
+ observable: Observable<WorkerResponse>;
5
+ sendMessage: (message: any) => void;
6
+ };
7
+ //# sourceMappingURL=excel-import-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"excel-import-worker.d.ts","sourceRoot":"","sources":["../../excel-import-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAW,MAAM,MAAM,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAuC3D,eAAO,MAAM,uBAAuB,GAClC,MAAM,IAAI,GAAG,WAAW,EACxB,cAAc,MAAM,EACpB,iBAAiB,MAAM;;2BAyGO,GAAG;CASlC,CAAC"}
@@ -0,0 +1,119 @@
1
+ import { Observable, Subject } from "rxjs";
2
+ import { RequestType, ResponseType } from "./excel-parser/types";
3
+ var getWorkerErrorMessage = function (error) {
4
+ if (error instanceof ErrorEvent) {
5
+ var parts = [error.message || "Worker runtime error"];
6
+ if (error.filename) {
7
+ var line = error.lineno ? ":".concat(error.lineno) : "";
8
+ var col = error.colno ? ":".concat(error.colno) : "";
9
+ parts.push("(".concat(error.filename).concat(line).concat(col, ")"));
10
+ }
11
+ return parts.join(" ");
12
+ }
13
+ // Some browsers emit a plain Event for worker load failures.
14
+ return "Worker failed to load or crashed. Check worker URL resolution and browser console/network logs.";
15
+ };
16
+ var getWorkerFactories = function () {
17
+ return globalThis.__ATHENA_TOOLKIT_WORKER_FACTORIES;
18
+ };
19
+ // A module worker that fails to load/instantiate (e.g. a transient chunk fetch
20
+ // failure on the first import of a session) can emit neither `onmessage` nor
21
+ // `onerror` in some browsers, so the import promise would hang forever (the
22
+ // "Parsing XLSX" loader never clears). The watchdog converts prolonged silence
23
+ // into the normal ERROR path so callers can recover instead of spinning.
24
+ var WORKER_INACTIVITY_TIMEOUT_MS = 20000;
25
+ export var createExcelImportWorker = function (file, minRowCount, minColumnCount) {
26
+ var _a, _b, _c;
27
+ var worker = (_c = (_b = (_a = getWorkerFactories()) === null || _a === void 0 ? void 0 : _a.excel) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : new Worker(new URL("@rowsncolumns/toolkit/worker", import.meta.url), {
28
+ type: "module",
29
+ });
30
+ // Create a subject to emit worker events
31
+ var subject = new Subject();
32
+ // Watchdog state: once settled (terminal event or failure) we stop watching.
33
+ var settled = false;
34
+ var watchdogTimer = null;
35
+ var clearWatchdog = function () {
36
+ if (watchdogTimer !== null) {
37
+ clearTimeout(watchdogTimer);
38
+ watchdogTimer = null;
39
+ }
40
+ };
41
+ var failWorker = function (message) {
42
+ if (settled) {
43
+ return;
44
+ }
45
+ settled = true;
46
+ clearWatchdog();
47
+ subject.next({
48
+ responseType: ResponseType.ERROR,
49
+ error: message,
50
+ });
51
+ subject.complete();
52
+ worker.terminate();
53
+ };
54
+ var armWatchdog = function () {
55
+ if (settled) {
56
+ return;
57
+ }
58
+ clearWatchdog();
59
+ watchdogTimer = setTimeout(function () {
60
+ failWorker("Worker failed to load or stalled (no response). Check worker URL resolution and browser console/network logs.");
61
+ }, WORKER_INACTIVITY_TIMEOUT_MS);
62
+ };
63
+ // Handle worker messages
64
+ worker.onmessage = function (e) {
65
+ var _a;
66
+ if (settled) {
67
+ return;
68
+ }
69
+ var responseType = (_a = e === null || e === void 0 ? void 0 : e.data) === null || _a === void 0 ? void 0 : _a.responseType;
70
+ if (responseType === ResponseType.PARSE_EXCEL_COMPLETE ||
71
+ responseType === ResponseType.ERROR) {
72
+ // Terminal event from the worker — stop watching.
73
+ settled = true;
74
+ clearWatchdog();
75
+ }
76
+ else {
77
+ // A healthy import streams messages continuously; reset the inactivity
78
+ // timer so only a real stall (or a worker that never starts) trips it.
79
+ armWatchdog();
80
+ }
81
+ subject.next(e.data);
82
+ };
83
+ // Handle worker errors
84
+ worker.onerror = function (error) {
85
+ failWorker(getWorkerErrorMessage(error));
86
+ };
87
+ // Some browsers surface a failed module instantiation via onmessageerror.
88
+ worker.onmessageerror = function () {
89
+ failWorker("Worker could not deserialize a message (onmessageerror). It likely failed to load. Check the browser console/network logs.");
90
+ };
91
+ // Initiate the parsing process
92
+ worker.postMessage({
93
+ requestType: RequestType.PARSE_EXCEL,
94
+ file: file,
95
+ minRowCount: minRowCount,
96
+ minColumnCount: minColumnCount,
97
+ });
98
+ // Start watching as soon as parsing is kicked off.
99
+ armWatchdog();
100
+ // Create an observable that completes and cleans up when unsubscribed
101
+ var observable = new Observable(function (observer) {
102
+ var subscription = subject.subscribe(observer);
103
+ // Clean up function that runs when unsubscribed
104
+ return function () {
105
+ clearWatchdog();
106
+ subscription.unsubscribe();
107
+ worker.terminate();
108
+ };
109
+ });
110
+ // Create a function to send messages to the worker
111
+ var sendMessage = function (message) {
112
+ worker.postMessage(message);
113
+ };
114
+ // Return both the observable and the send function
115
+ return {
116
+ observable: observable,
117
+ sendMessage: sendMessage,
118
+ };
119
+ };
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Canonical Excel built-in number-format dictionary (numFmtId 0–49) per
3
+ * ECMA-376 §18.8.30. Single source of truth shared by both the importer
4
+ * (`excel-parser/plugins/xlsx`) and the exporter (`exporter/xlsx`) so a
5
+ * built-in numFmt survives round-trips through our data layer.
6
+ *
7
+ * IDs 23–36 are reserved / locale-specific and intentionally omitted —
8
+ * Excel substitutes them per locale on render; we don't materialize them.
9
+ *
10
+ * Currency patterns (5–8) and accounting patterns (41–44) use the quoted
11
+ * `"$"` literal form, which is what Excel's own writer emits in xlsx
12
+ * files. Pattern 47 is `mmss.0` (no colon) per ECMA-376 — Excel writes
13
+ * this without a colon despite some third-party tools using `mm:ss.0`.
14
+ */
15
+ export type BuiltinNumFmtEntry = readonly [id: number, pattern: string];
16
+ export declare const BUILTIN_NUMFMTS: readonly BuiltinNumFmtEntry[];
17
+ /** Map: numFmtId → pattern. Used by the importer. */
18
+ export declare const BUILTIN_NUMFMT_BY_ID: ReadonlyMap<number, string>;
19
+ /**
20
+ * Map: pattern → numFmtId. Used by the exporter to emit a built-in
21
+ * reference instead of registering a custom numFmt.
22
+ */
23
+ export declare const BUILTIN_NUMFMT_BY_PATTERN: ReadonlyMap<string, number>;
24
+ //# sourceMappingURL=builtin-numfmts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin-numfmts.d.ts","sourceRoot":"","sources":["../../../excel-parser/builtin-numfmts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,MAAM,kBAAkB,GAAG,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAExE,eAAO,MAAM,eAAe,EAAE,SAAS,kBAAkB,EAqCxD,CAAC;AAEF,qDAAqD;AACrD,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAE5D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAEjE,CAAC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Canonical Excel built-in number-format dictionary (numFmtId 0–49) per
3
+ * ECMA-376 §18.8.30. Single source of truth shared by both the importer
4
+ * (`excel-parser/plugins/xlsx`) and the exporter (`exporter/xlsx`) so a
5
+ * built-in numFmt survives round-trips through our data layer.
6
+ *
7
+ * IDs 23–36 are reserved / locale-specific and intentionally omitted —
8
+ * Excel substitutes them per locale on render; we don't materialize them.
9
+ *
10
+ * Currency patterns (5–8) and accounting patterns (41–44) use the quoted
11
+ * `"$"` literal form, which is what Excel's own writer emits in xlsx
12
+ * files. Pattern 47 is `mmss.0` (no colon) per ECMA-376 — Excel writes
13
+ * this without a colon despite some third-party tools using `mm:ss.0`.
14
+ */
15
+ import { __read } from "tslib";
16
+ export var BUILTIN_NUMFMTS = [
17
+ [0, "General"],
18
+ [1, "0"],
19
+ [2, "0.00"],
20
+ [3, "#,##0"],
21
+ [4, "#,##0.00"],
22
+ [5, '"$"#,##0_);("$"#,##0)'],
23
+ [6, '"$"#,##0_);[Red]("$"#,##0)'],
24
+ [7, '"$"#,##0.00_);("$"#,##0.00)'],
25
+ [8, '"$"#,##0.00_);[Red]("$"#,##0.00)'],
26
+ [9, "0%"],
27
+ [10, "0.00%"],
28
+ [11, "0.00E+00"],
29
+ [12, "# ?/?"],
30
+ [13, "# ??/??"],
31
+ [14, "m/d/yyyy"],
32
+ [15, "d-mmm-yy"],
33
+ [16, "d-mmm"],
34
+ [17, "mmm-yy"],
35
+ [18, "h:mm AM/PM"],
36
+ [19, "h:mm:ss AM/PM"],
37
+ [20, "h:mm"],
38
+ [21, "h:mm:ss"],
39
+ [22, "m/d/yyyy h:mm"],
40
+ [37, "#,##0_);(#,##0)"],
41
+ [38, "#,##0_);[Red](#,##0)"],
42
+ [39, "#,##0.00_);(#,##0.00)"],
43
+ [40, "#,##0.00_);[Red](#,##0.00)"],
44
+ [41, '_(* #,##0_);_(* (#,##0);_(* "-"_);_(@_)'],
45
+ [42, '_("$"* #,##0_);_("$"* (#,##0);_("$"* "-"_);_(@_)'],
46
+ [43, '_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)'],
47
+ [44, '_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)'],
48
+ [45, "mm:ss"],
49
+ [46, "[h]:mm:ss"],
50
+ [47, "mmss.0"],
51
+ [48, "##0.0E+0"],
52
+ [49, "@"],
53
+ ];
54
+ /** Map: numFmtId → pattern. Used by the importer. */
55
+ export var BUILTIN_NUMFMT_BY_ID = new Map(BUILTIN_NUMFMTS);
56
+ /**
57
+ * Map: pattern → numFmtId. Used by the exporter to emit a built-in
58
+ * reference instead of registering a custom numFmt.
59
+ */
60
+ export var BUILTIN_NUMFMT_BY_PATTERN = new Map(BUILTIN_NUMFMTS.map(function (_a) {
61
+ var _b = __read(_a, 2), id = _b[0], pattern = _b[1];
62
+ return [pattern, id];
63
+ }));
@@ -0,0 +1,53 @@
1
+ /**
2
+ * What a CFB (Compound File Binary) container actually holds. Both encrypted
3
+ * OOXML workbooks and legacy BIFF `.xls` workbooks share the same CFB magic
4
+ * bytes, so the outer signature alone cannot distinguish them.
5
+ */
6
+ export type CfbContainerKind = "encrypted-ooxml" | "legacy-xls" | "unknown";
7
+ export declare const LEGACY_XLS_UNSUPPORTED_MESSAGE = "This file is a legacy Excel 97-2003 (.xls) workbook, which is not supported. Please open it in Excel and save it as .xlsx, then try again.";
8
+ /**
9
+ * Inspects a CFB container's directory to decide whether it is an
10
+ * Office-encrypted OOXML package (`EncryptionInfo` stream present) or an
11
+ * unencrypted legacy BIFF `.xls` workbook (`Workbook`/`Book` stream present
12
+ * without `EncryptionInfo`). Returns "unknown" for anything else, including
13
+ * containers that fail to parse — callers should fall back to their existing
14
+ * behavior in that case.
15
+ */
16
+ export declare const detectCfbContainerKind: (source: File | ArrayBuffer) => Promise<CfbContainerKind>;
17
+ export declare class CFBDecryptor {
18
+ /**
19
+ * Decrypts a CFB-encrypted XLSX file
20
+ * @param source The encrypted file or array buffer
21
+ * @param password The password to decrypt with
22
+ * @returns The decrypted XLSX data as ArrayBuffer
23
+ */
24
+ static decrypt(source: File | ArrayBuffer, password: string): Promise<ArrayBuffer>;
25
+ private static decryptAgile;
26
+ private static getEncryptionInfoContent;
27
+ private static decryptStandardFamily;
28
+ /** Standard key derivation (MS-OFFCRYPTO §2.3.4.7): iterated SHA1 then the X1‖X2 final block. */
29
+ private static standardKey;
30
+ private static decryptStandardPackage;
31
+ /** RC4 CryptoAPI key derivation (MS-OFFCRYPTO §2.3.5.2). */
32
+ private static rc4CryptoApiKey;
33
+ private static decryptRc4Package;
34
+ /** AES-ECB block decrypt (no padding). Trailing sub-block bytes are ignored. */
35
+ private static aesEcbDecrypt;
36
+ /** RC4 stream cipher (KSA + PRGA). Symmetric — the same op encrypts and decrypts. */
37
+ private static rc4;
38
+ private static le32;
39
+ private static bytesEqual;
40
+ private static parseEncryptionInfo;
41
+ private static parseAgileEncryptionXml;
42
+ private static deriveKey;
43
+ private static decryptEncryptedKey;
44
+ private static verifyPassword;
45
+ private static getEncryptedPackage;
46
+ private static decryptPackage;
47
+ private static decryptAESNoPadding;
48
+ private static deriveAgileBlockKey;
49
+ private static hash;
50
+ private static stringToUtf16LE;
51
+ private static concatArrays;
52
+ }
53
+ //# sourceMappingURL=cfb-decryptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cfb-decryptor.d.ts","sourceRoot":"","sources":["../../../excel-parser/cfb-decryptor.ts"],"names":[],"mappings":"AAqCA;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,GAAG,YAAY,GAAG,SAAS,CAAC;AAE5E,eAAO,MAAM,8BAA8B,+IACmG,CAAC;AAE/I;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GACjC,QAAQ,IAAI,GAAG,WAAW,KACzB,OAAO,CAAC,gBAAgB,CAiB1B,CAAC;AAEF,qBAAa,YAAY;IACvB;;;;;OAKG;WACU,OAAO,CAClB,MAAM,EAAE,IAAI,GAAG,WAAW,EAC1B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,CAAC;IAiCvB,OAAO,CAAC,MAAM,CAAC,YAAY;IA6B3B,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAiBvC,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAsEpC,iGAAiG;IACjG,OAAO,CAAC,MAAM,CAAC,WAAW;IAyB1B,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAiBrC,4DAA4D;IAC5D,OAAO,CAAC,MAAM,CAAC,eAAe;IAmB9B,OAAO,CAAC,MAAM,CAAC,iBAAiB;IA4BhC,gFAAgF;IAChF,OAAO,CAAC,MAAM,CAAC,aAAa;IAM5B,qFAAqF;IACrF,OAAO,CAAC,MAAM,CAAC,GAAG;IAwBlB,OAAO,CAAC,MAAM,CAAC,IAAI;IAMnB,OAAO,CAAC,MAAM,CAAC,UAAU;IAQzB,OAAO,CAAC,MAAM,CAAC,mBAAmB;IA4ClC,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAoGtC,OAAO,CAAC,MAAM,CAAC,SAAS;IAuBxB,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAoBlC,OAAO,CAAC,MAAM,CAAC,cAAc;IAuD7B,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAclC,OAAO,CAAC,MAAM,CAAC,cAAc;IAwD7B,OAAO,CAAC,MAAM,CAAC,mBAAmB;IASlC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAWlC,OAAO,CAAC,MAAM,CAAC,IAAI;IAenB,OAAO,CAAC,MAAM,CAAC,eAAe;IAU9B,OAAO,CAAC,MAAM,CAAC,YAAY;CAW5B"}