@cj-tech-master/excelts 1.6.2-canary.20251224015244.0b06ae9 → 1.6.3-canary.20251224124621.73c5d94

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 (376) hide show
  1. package/README.md +31 -18
  2. package/README_zh.md +31 -19
  3. package/dist/browser/excelts.esm.js +19115 -0
  4. package/dist/browser/excelts.esm.js.map +1 -0
  5. package/dist/browser/excelts.esm.min.js +127 -0
  6. package/dist/browser/excelts.iife.js +13576 -46968
  7. package/dist/browser/excelts.iife.js.map +1 -1
  8. package/dist/browser/excelts.iife.min.js +25 -105
  9. package/dist/cjs/csv/csv-core.js +701 -0
  10. package/dist/cjs/csv/csv-stream.js +646 -0
  11. package/dist/cjs/csv/csv.base.js +154 -0
  12. package/dist/cjs/csv/csv.browser.js +68 -0
  13. package/dist/cjs/csv/csv.js +226 -162
  14. package/dist/cjs/doc/anchor.js +2 -2
  15. package/dist/cjs/doc/cell.js +22 -22
  16. package/dist/cjs/doc/column.js +7 -7
  17. package/dist/cjs/doc/data-validations.js +3 -3
  18. package/dist/cjs/doc/defined-names.js +13 -13
  19. package/dist/cjs/doc/image.js +7 -7
  20. package/dist/cjs/doc/modelcontainer.js +2 -2
  21. package/dist/cjs/doc/note.js +2 -2
  22. package/dist/cjs/doc/pivot-table.js +5 -5
  23. package/dist/cjs/doc/range.js +11 -11
  24. package/dist/cjs/doc/row.js +16 -16
  25. package/dist/cjs/doc/table.js +5 -5
  26. package/dist/cjs/doc/workbook.base.js +211 -0
  27. package/dist/cjs/doc/workbook.browser.js +62 -0
  28. package/dist/cjs/doc/workbook.js +68 -179
  29. package/dist/cjs/doc/worksheet.js +41 -41
  30. package/dist/cjs/index.js +49 -32
  31. package/dist/cjs/stream/xlsx/hyperlink-reader.js +6 -6
  32. package/dist/cjs/stream/xlsx/sheet-comments-writer.js +12 -12
  33. package/dist/cjs/stream/xlsx/sheet-rels-writer.js +4 -4
  34. package/dist/cjs/stream/xlsx/workbook-reader.js +22 -22
  35. package/dist/cjs/stream/xlsx/workbook-writer.js +34 -34
  36. package/dist/cjs/stream/xlsx/worksheet-reader.js +17 -17
  37. package/dist/cjs/stream/xlsx/worksheet-writer.js +60 -60
  38. package/dist/cjs/utils/browser-buffer.js +75 -0
  39. package/dist/cjs/utils/cell-format.js +2 -2
  40. package/dist/cjs/utils/cell-matrix.js +5 -5
  41. package/dist/cjs/utils/encryptor.browser.js +240 -0
  42. package/dist/cjs/utils/parse-sax.js +2 -2
  43. package/dist/cjs/utils/shared-formula.js +5 -5
  44. package/dist/cjs/utils/sheet-utils.js +13 -13
  45. package/dist/cjs/utils/stream-buf.browser.js +355 -0
  46. package/dist/cjs/utils/stream-buf.js +5 -5
  47. package/dist/cjs/utils/unzip/extract.js +11 -11
  48. package/dist/cjs/utils/unzip/index.js +21 -21
  49. package/dist/cjs/utils/unzip/parse-extra-field.js +3 -3
  50. package/dist/cjs/utils/unzip/parse.js +16 -16
  51. package/dist/cjs/utils/unzip/zip-parser.js +3 -3
  52. package/dist/cjs/utils/utils.base.js +161 -0
  53. package/dist/cjs/utils/utils.browser.js +89 -0
  54. package/dist/cjs/utils/utils.js +46 -154
  55. package/dist/cjs/utils/xml-stream.js +3 -3
  56. package/dist/cjs/utils/zip/compress.base.js +85 -0
  57. package/dist/cjs/utils/zip/compress.browser.js +83 -0
  58. package/dist/cjs/utils/zip/compress.js +18 -198
  59. package/dist/cjs/utils/zip/crc32.browser.js +88 -0
  60. package/dist/cjs/utils/zip/index.js +17 -17
  61. package/dist/cjs/utils/zip/zip-builder.js +10 -10
  62. package/dist/cjs/utils/zip-stream.browser.js +135 -0
  63. package/dist/cjs/utils/zip-stream.js +4 -4
  64. package/dist/cjs/xlsx/xform/base-xform.js +4 -4
  65. package/dist/cjs/xlsx/xform/book/defined-name-xform.js +4 -4
  66. package/dist/cjs/xlsx/xform/book/sheet-xform.js +4 -4
  67. package/dist/cjs/xlsx/xform/book/workbook-calc-properties-xform.js +2 -2
  68. package/dist/cjs/xlsx/xform/book/workbook-pivot-cache-xform.js +2 -2
  69. package/dist/cjs/xlsx/xform/book/workbook-properties-xform.js +2 -2
  70. package/dist/cjs/xlsx/xform/book/workbook-view-xform.js +2 -2
  71. package/dist/cjs/xlsx/xform/book/workbook-xform.js +24 -24
  72. package/dist/cjs/xlsx/xform/comment/comment-xform.js +4 -4
  73. package/dist/cjs/xlsx/xform/comment/comments-xform.js +6 -6
  74. package/dist/cjs/xlsx/xform/comment/style/vml-position-xform.js +2 -2
  75. package/dist/cjs/xlsx/xform/comment/style/vml-protection-xform.js +2 -2
  76. package/dist/cjs/xlsx/xform/comment/vml-anchor-xform.js +2 -2
  77. package/dist/cjs/xlsx/xform/comment/vml-client-data-xform.js +10 -10
  78. package/dist/cjs/xlsx/xform/comment/vml-notes-xform.js +6 -6
  79. package/dist/cjs/xlsx/xform/comment/vml-shape-xform.js +6 -6
  80. package/dist/cjs/xlsx/xform/comment/vml-textbox-xform.js +2 -2
  81. package/dist/cjs/xlsx/xform/composite-xform.js +2 -2
  82. package/dist/cjs/xlsx/xform/core/app-heading-pairs-xform.js +2 -2
  83. package/dist/cjs/xlsx/xform/core/app-titles-of-parts-xform.js +2 -2
  84. package/dist/cjs/xlsx/xform/core/app-xform.js +11 -11
  85. package/dist/cjs/xlsx/xform/core/content-types-xform.js +4 -4
  86. package/dist/cjs/xlsx/xform/core/core-xform.js +23 -23
  87. package/dist/cjs/xlsx/xform/core/relationship-xform.js +2 -2
  88. package/dist/cjs/xlsx/xform/core/relationships-xform.js +6 -6
  89. package/dist/cjs/xlsx/xform/drawing/base-cell-anchor-xform.js +2 -2
  90. package/dist/cjs/xlsx/xform/drawing/blip-fill-xform.js +4 -4
  91. package/dist/cjs/xlsx/xform/drawing/blip-xform.js +2 -2
  92. package/dist/cjs/xlsx/xform/drawing/c-nv-pic-pr-xform.js +2 -2
  93. package/dist/cjs/xlsx/xform/drawing/c-nv-pr-xform.js +6 -6
  94. package/dist/cjs/xlsx/xform/drawing/cell-position-xform.js +7 -7
  95. package/dist/cjs/xlsx/xform/drawing/drawing-xform.js +10 -10
  96. package/dist/cjs/xlsx/xform/drawing/ext-lst-xform.js +2 -2
  97. package/dist/cjs/xlsx/xform/drawing/ext-xform.js +2 -2
  98. package/dist/cjs/xlsx/xform/drawing/hlink-click-xform.js +2 -2
  99. package/dist/cjs/xlsx/xform/drawing/nv-pic-pr-xform.js +6 -6
  100. package/dist/cjs/xlsx/xform/drawing/one-cell-anchor-xform.js +10 -10
  101. package/dist/cjs/xlsx/xform/drawing/pic-xform.js +9 -9
  102. package/dist/cjs/xlsx/xform/drawing/two-cell-anchor-xform.js +9 -9
  103. package/dist/cjs/xlsx/xform/list-xform.js +2 -2
  104. package/dist/cjs/xlsx/xform/pivot-table/cache-field-xform.js +5 -5
  105. package/dist/cjs/xlsx/xform/pivot-table/cache-field.js +3 -3
  106. package/dist/cjs/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +10 -10
  107. package/dist/cjs/xlsx/xform/pivot-table/pivot-cache-records-xform.js +9 -9
  108. package/dist/cjs/xlsx/xform/pivot-table/pivot-table-xform.js +10 -11
  109. package/dist/cjs/xlsx/xform/sheet/auto-filter-xform.js +4 -4
  110. package/dist/cjs/xlsx/xform/sheet/cell-xform.js +65 -65
  111. package/dist/cjs/xlsx/xform/sheet/cf/cf-rule-xform.js +27 -27
  112. package/dist/cjs/xlsx/xform/sheet/cf/cfvo-xform.js +3 -3
  113. package/dist/cjs/xlsx/xform/sheet/cf/color-scale-xform.js +6 -6
  114. package/dist/cjs/xlsx/xform/sheet/cf/conditional-formatting-xform.js +6 -6
  115. package/dist/cjs/xlsx/xform/sheet/cf/conditional-formattings-xform.js +4 -4
  116. package/dist/cjs/xlsx/xform/sheet/cf/databar-xform.js +6 -6
  117. package/dist/cjs/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +5 -5
  118. package/dist/cjs/xlsx/xform/sheet/cf/formula-xform.js +2 -2
  119. package/dist/cjs/xlsx/xform/sheet/cf/icon-set-xform.js +11 -11
  120. package/dist/cjs/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +3 -3
  121. package/dist/cjs/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +11 -12
  122. package/dist/cjs/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +4 -4
  123. package/dist/cjs/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +8 -8
  124. package/dist/cjs/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +6 -6
  125. package/dist/cjs/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +26 -26
  126. package/dist/cjs/xlsx/xform/sheet/cf-ext/f-ext-xform.js +2 -2
  127. package/dist/cjs/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +14 -14
  128. package/dist/cjs/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +2 -2
  129. package/dist/cjs/xlsx/xform/sheet/col-xform.js +6 -6
  130. package/dist/cjs/xlsx/xform/sheet/data-validations-xform.js +18 -18
  131. package/dist/cjs/xlsx/xform/sheet/dimension-xform.js +2 -2
  132. package/dist/cjs/xlsx/xform/sheet/drawing-xform.js +2 -2
  133. package/dist/cjs/xlsx/xform/sheet/ext-lst-xform.js +5 -5
  134. package/dist/cjs/xlsx/xform/sheet/header-footer-xform.js +2 -2
  135. package/dist/cjs/xlsx/xform/sheet/hyperlink-xform.js +2 -2
  136. package/dist/cjs/xlsx/xform/sheet/merge-cell-xform.js +2 -2
  137. package/dist/cjs/xlsx/xform/sheet/merges.js +8 -8
  138. package/dist/cjs/xlsx/xform/sheet/outline-properties-xform.js +2 -2
  139. package/dist/cjs/xlsx/xform/sheet/page-breaks-xform.js +2 -2
  140. package/dist/cjs/xlsx/xform/sheet/page-margins-xform.js +2 -2
  141. package/dist/cjs/xlsx/xform/sheet/page-setup-properties-xform.js +2 -2
  142. package/dist/cjs/xlsx/xform/sheet/page-setup-xform.js +2 -2
  143. package/dist/cjs/xlsx/xform/sheet/picture-xform.js +2 -2
  144. package/dist/cjs/xlsx/xform/sheet/print-options-xform.js +2 -2
  145. package/dist/cjs/xlsx/xform/sheet/row-breaks-xform.js +4 -4
  146. package/dist/cjs/xlsx/xform/sheet/row-xform.js +11 -11
  147. package/dist/cjs/xlsx/xform/sheet/sheet-format-properties-xform.js +2 -2
  148. package/dist/cjs/xlsx/xform/sheet/sheet-properties-xform.js +8 -8
  149. package/dist/cjs/xlsx/xform/sheet/sheet-protection-xform.js +2 -2
  150. package/dist/cjs/xlsx/xform/sheet/sheet-view-xform.js +4 -4
  151. package/dist/cjs/xlsx/xform/sheet/table-part-xform.js +2 -2
  152. package/dist/cjs/xlsx/xform/sheet/worksheet-xform.js +68 -68
  153. package/dist/cjs/xlsx/xform/simple/boolean-xform.js +2 -2
  154. package/dist/cjs/xlsx/xform/simple/date-xform.js +2 -2
  155. package/dist/cjs/xlsx/xform/simple/float-xform.js +2 -2
  156. package/dist/cjs/xlsx/xform/simple/integer-xform.js +2 -2
  157. package/dist/cjs/xlsx/xform/simple/string-xform.js +2 -2
  158. package/dist/cjs/xlsx/xform/static-xform.js +4 -4
  159. package/dist/cjs/xlsx/xform/strings/phonetic-text-xform.js +6 -6
  160. package/dist/cjs/xlsx/xform/strings/rich-text-xform.js +6 -6
  161. package/dist/cjs/xlsx/xform/strings/shared-string-xform.js +8 -8
  162. package/dist/cjs/xlsx/xform/strings/shared-strings-xform.js +6 -6
  163. package/dist/cjs/xlsx/xform/strings/text-xform.js +2 -2
  164. package/dist/cjs/xlsx/xform/style/alignment-xform.js +8 -8
  165. package/dist/cjs/xlsx/xform/style/border-xform.js +8 -8
  166. package/dist/cjs/xlsx/xform/style/color-xform.js +2 -2
  167. package/dist/cjs/xlsx/xform/style/dxf-xform.js +14 -14
  168. package/dist/cjs/xlsx/xform/style/fill-xform.js +9 -9
  169. package/dist/cjs/xlsx/xform/style/font-xform.js +22 -22
  170. package/dist/cjs/xlsx/xform/style/numfmt-xform.js +5 -5
  171. package/dist/cjs/xlsx/xform/style/protection-xform.js +2 -2
  172. package/dist/cjs/xlsx/xform/style/style-xform.js +6 -6
  173. package/dist/cjs/xlsx/xform/style/styles-xform.js +39 -39
  174. package/dist/cjs/xlsx/xform/style/underline-xform.js +2 -2
  175. package/dist/cjs/xlsx/xform/table/auto-filter-xform.js +4 -4
  176. package/dist/cjs/xlsx/xform/table/custom-filter-xform.js +2 -2
  177. package/dist/cjs/xlsx/xform/table/filter-column-xform.js +9 -9
  178. package/dist/cjs/xlsx/xform/table/filter-xform.js +2 -2
  179. package/dist/cjs/xlsx/xform/table/table-column-xform.js +2 -2
  180. package/dist/cjs/xlsx/xform/table/table-style-info-xform.js +2 -2
  181. package/dist/cjs/xlsx/xform/table/table-xform.js +12 -12
  182. package/dist/cjs/xlsx/xlsx.base.js +742 -0
  183. package/dist/cjs/xlsx/xlsx.browser.js +205 -0
  184. package/dist/cjs/xlsx/xlsx.js +91 -833
  185. package/dist/esm/csv/csv-core.js +694 -0
  186. package/dist/esm/csv/csv-stream.js +638 -0
  187. package/dist/esm/csv/csv.base.js +141 -0
  188. package/dist/esm/csv/csv.browser.js +65 -0
  189. package/dist/esm/csv/csv.js +189 -159
  190. package/dist/esm/doc/workbook.base.js +207 -0
  191. package/dist/esm/doc/workbook.browser.js +59 -0
  192. package/dist/esm/doc/workbook.js +64 -175
  193. package/dist/esm/index.browser.js +33 -1
  194. package/dist/esm/index.js +23 -8
  195. package/dist/esm/local.js +0 -1
  196. package/dist/esm/utils/browser-buffer.js +67 -0
  197. package/dist/esm/utils/encryptor.browser.js +237 -0
  198. package/dist/esm/utils/stream-buf.browser.js +352 -0
  199. package/dist/esm/utils/utils.base.js +142 -0
  200. package/dist/esm/utils/utils.browser.js +68 -0
  201. package/dist/esm/utils/utils.js +15 -123
  202. package/dist/esm/utils/zip/compress.base.js +80 -0
  203. package/dist/esm/utils/zip/compress.browser.js +76 -0
  204. package/dist/esm/utils/zip/compress.js +16 -164
  205. package/dist/esm/utils/zip/crc32.browser.js +82 -0
  206. package/dist/esm/utils/zip-stream.browser.js +132 -0
  207. package/dist/esm/xlsx/xform/pivot-table/pivot-table-xform.js +2 -3
  208. package/dist/esm/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +2 -3
  209. package/dist/esm/xlsx/xlsx.base.js +739 -0
  210. package/dist/esm/xlsx/xlsx.browser.js +202 -0
  211. package/dist/esm/xlsx/xlsx.js +87 -829
  212. package/dist/types/csv/csv-core.d.ts +207 -0
  213. package/dist/types/csv/csv-stream.d.ts +114 -0
  214. package/dist/types/csv/csv.base.d.ts +61 -0
  215. package/dist/types/csv/csv.browser.d.ts +33 -0
  216. package/dist/types/csv/csv.d.ts +97 -71
  217. package/dist/types/doc/anchor.d.ts +1 -1
  218. package/dist/types/doc/cell.d.ts +7 -7
  219. package/dist/types/doc/column.d.ts +3 -3
  220. package/dist/types/doc/defined-names.d.ts +4 -4
  221. package/dist/types/doc/image.d.ts +2 -2
  222. package/dist/types/doc/modelcontainer.d.ts +1 -1
  223. package/dist/types/doc/pivot-table.d.ts +1 -1
  224. package/dist/types/doc/range.d.ts +1 -1
  225. package/dist/types/doc/row.d.ts +3 -3
  226. package/dist/types/doc/table.d.ts +2 -2
  227. package/dist/types/doc/workbook.base.d.ts +111 -0
  228. package/dist/types/doc/workbook.browser.d.ts +38 -0
  229. package/dist/types/doc/workbook.d.ts +62 -92
  230. package/dist/types/doc/worksheet.d.ts +10 -10
  231. package/dist/types/index.browser.d.ts +19 -5
  232. package/dist/types/index.d.ts +24 -23
  233. package/dist/types/local.d.ts +0 -1
  234. package/dist/types/stream/xlsx/hyperlink-reader.d.ts +1 -1
  235. package/dist/types/stream/xlsx/workbook-reader.d.ts +4 -4
  236. package/dist/types/stream/xlsx/workbook-writer.d.ts +6 -6
  237. package/dist/types/stream/xlsx/worksheet-reader.d.ts +5 -5
  238. package/dist/types/stream/xlsx/worksheet-writer.d.ts +9 -9
  239. package/dist/types/utils/browser-buffer.d.ts +28 -0
  240. package/dist/types/utils/col-cache.d.ts +1 -1
  241. package/dist/types/utils/encryptor.browser.d.ts +28 -0
  242. package/dist/types/utils/sheet-utils.d.ts +3 -3
  243. package/dist/types/utils/stream-buf.browser.d.ts +41 -0
  244. package/dist/types/utils/unzip/extract.d.ts +6 -6
  245. package/dist/types/utils/unzip/index.d.ts +8 -8
  246. package/dist/types/utils/unzip/parse.d.ts +3 -3
  247. package/dist/types/utils/utils.base.d.ts +29 -0
  248. package/dist/types/utils/utils.browser.d.ts +29 -0
  249. package/dist/types/utils/utils.d.ts +6 -25
  250. package/dist/types/utils/zip/compress.base.d.ts +42 -0
  251. package/dist/types/utils/zip/compress.browser.d.ts +54 -0
  252. package/dist/types/utils/zip/compress.d.ts +13 -45
  253. package/dist/types/utils/zip/crc32.browser.d.ts +52 -0
  254. package/dist/types/utils/zip/index.d.ts +5 -5
  255. package/dist/types/utils/zip/zip-builder.d.ts +1 -1
  256. package/dist/types/utils/zip-stream.browser.d.ts +39 -0
  257. package/dist/types/xlsx/xform/base-xform.d.ts +1 -1
  258. package/dist/types/xlsx/xform/book/defined-name-xform.d.ts +1 -1
  259. package/dist/types/xlsx/xform/book/sheet-xform.d.ts +1 -1
  260. package/dist/types/xlsx/xform/book/workbook-calc-properties-xform.d.ts +1 -1
  261. package/dist/types/xlsx/xform/book/workbook-pivot-cache-xform.d.ts +1 -1
  262. package/dist/types/xlsx/xform/book/workbook-properties-xform.d.ts +1 -1
  263. package/dist/types/xlsx/xform/book/workbook-view-xform.d.ts +1 -1
  264. package/dist/types/xlsx/xform/book/workbook-xform.d.ts +2 -2
  265. package/dist/types/xlsx/xform/comment/comment-xform.d.ts +2 -2
  266. package/dist/types/xlsx/xform/comment/comments-xform.d.ts +2 -2
  267. package/dist/types/xlsx/xform/comment/style/vml-position-xform.d.ts +1 -1
  268. package/dist/types/xlsx/xform/comment/style/vml-protection-xform.d.ts +1 -1
  269. package/dist/types/xlsx/xform/comment/vml-anchor-xform.d.ts +1 -1
  270. package/dist/types/xlsx/xform/comment/vml-client-data-xform.d.ts +1 -1
  271. package/dist/types/xlsx/xform/comment/vml-notes-xform.d.ts +1 -1
  272. package/dist/types/xlsx/xform/comment/vml-shape-xform.d.ts +1 -1
  273. package/dist/types/xlsx/xform/comment/vml-textbox-xform.d.ts +1 -1
  274. package/dist/types/xlsx/xform/composite-xform.d.ts +1 -1
  275. package/dist/types/xlsx/xform/core/app-heading-pairs-xform.d.ts +1 -1
  276. package/dist/types/xlsx/xform/core/app-titles-of-parts-xform.d.ts +1 -1
  277. package/dist/types/xlsx/xform/core/app-xform.d.ts +1 -1
  278. package/dist/types/xlsx/xform/core/content-types-xform.d.ts +1 -1
  279. package/dist/types/xlsx/xform/core/core-xform.d.ts +1 -1
  280. package/dist/types/xlsx/xform/core/relationship-xform.d.ts +1 -1
  281. package/dist/types/xlsx/xform/core/relationships-xform.d.ts +1 -1
  282. package/dist/types/xlsx/xform/drawing/base-cell-anchor-xform.d.ts +1 -1
  283. package/dist/types/xlsx/xform/drawing/blip-fill-xform.d.ts +2 -2
  284. package/dist/types/xlsx/xform/drawing/blip-xform.d.ts +1 -1
  285. package/dist/types/xlsx/xform/drawing/c-nv-pic-pr-xform.d.ts +1 -1
  286. package/dist/types/xlsx/xform/drawing/c-nv-pr-xform.d.ts +1 -1
  287. package/dist/types/xlsx/xform/drawing/cell-position-xform.d.ts +2 -2
  288. package/dist/types/xlsx/xform/drawing/drawing-xform.d.ts +1 -1
  289. package/dist/types/xlsx/xform/drawing/ext-lst-xform.d.ts +1 -1
  290. package/dist/types/xlsx/xform/drawing/ext-xform.d.ts +1 -1
  291. package/dist/types/xlsx/xform/drawing/hlink-click-xform.d.ts +1 -1
  292. package/dist/types/xlsx/xform/drawing/nv-pic-pr-xform.d.ts +1 -1
  293. package/dist/types/xlsx/xform/drawing/one-cell-anchor-xform.d.ts +1 -1
  294. package/dist/types/xlsx/xform/drawing/pic-xform.d.ts +1 -1
  295. package/dist/types/xlsx/xform/drawing/two-cell-anchor-xform.d.ts +1 -1
  296. package/dist/types/xlsx/xform/list-xform.d.ts +1 -1
  297. package/dist/types/xlsx/xform/pivot-table/cache-field-xform.d.ts +1 -1
  298. package/dist/types/xlsx/xform/pivot-table/pivot-cache-definition-xform.d.ts +3 -3
  299. package/dist/types/xlsx/xform/pivot-table/pivot-cache-records-xform.d.ts +2 -2
  300. package/dist/types/xlsx/xform/pivot-table/pivot-table-xform.d.ts +1 -1
  301. package/dist/types/xlsx/xform/sheet/auto-filter-xform.d.ts +1 -1
  302. package/dist/types/xlsx/xform/sheet/cell-xform.d.ts +1 -1
  303. package/dist/types/xlsx/xform/sheet/cf/cf-rule-xform.d.ts +6 -6
  304. package/dist/types/xlsx/xform/sheet/cf/cfvo-xform.d.ts +1 -1
  305. package/dist/types/xlsx/xform/sheet/cf/color-scale-xform.d.ts +3 -3
  306. package/dist/types/xlsx/xform/sheet/cf/conditional-formatting-xform.d.ts +1 -1
  307. package/dist/types/xlsx/xform/sheet/cf/conditional-formattings-xform.d.ts +2 -2
  308. package/dist/types/xlsx/xform/sheet/cf/databar-xform.d.ts +3 -3
  309. package/dist/types/xlsx/xform/sheet/cf/ext-lst-ref-xform.d.ts +1 -1
  310. package/dist/types/xlsx/xform/sheet/cf/formula-xform.d.ts +1 -1
  311. package/dist/types/xlsx/xform/sheet/cf/icon-set-xform.d.ts +2 -2
  312. package/dist/types/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.d.ts +1 -1
  313. package/dist/types/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.d.ts +3 -3
  314. package/dist/types/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.d.ts +2 -2
  315. package/dist/types/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.d.ts +3 -3
  316. package/dist/types/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.d.ts +2 -2
  317. package/dist/types/xlsx/xform/sheet/cf-ext/databar-ext-xform.d.ts +3 -3
  318. package/dist/types/xlsx/xform/sheet/cf-ext/f-ext-xform.d.ts +1 -1
  319. package/dist/types/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.d.ts +3 -3
  320. package/dist/types/xlsx/xform/sheet/cf-ext/sqref-ext-xform.d.ts +1 -1
  321. package/dist/types/xlsx/xform/sheet/col-xform.d.ts +1 -1
  322. package/dist/types/xlsx/xform/sheet/data-validations-xform.d.ts +1 -1
  323. package/dist/types/xlsx/xform/sheet/dimension-xform.d.ts +1 -1
  324. package/dist/types/xlsx/xform/sheet/drawing-xform.d.ts +1 -1
  325. package/dist/types/xlsx/xform/sheet/ext-lst-xform.d.ts +1 -1
  326. package/dist/types/xlsx/xform/sheet/header-footer-xform.d.ts +1 -1
  327. package/dist/types/xlsx/xform/sheet/hyperlink-xform.d.ts +1 -1
  328. package/dist/types/xlsx/xform/sheet/merge-cell-xform.d.ts +1 -1
  329. package/dist/types/xlsx/xform/sheet/outline-properties-xform.d.ts +1 -1
  330. package/dist/types/xlsx/xform/sheet/page-breaks-xform.d.ts +1 -1
  331. package/dist/types/xlsx/xform/sheet/page-margins-xform.d.ts +1 -1
  332. package/dist/types/xlsx/xform/sheet/page-setup-properties-xform.d.ts +1 -1
  333. package/dist/types/xlsx/xform/sheet/page-setup-xform.d.ts +1 -1
  334. package/dist/types/xlsx/xform/sheet/picture-xform.d.ts +1 -1
  335. package/dist/types/xlsx/xform/sheet/print-options-xform.d.ts +1 -1
  336. package/dist/types/xlsx/xform/sheet/row-breaks-xform.d.ts +1 -1
  337. package/dist/types/xlsx/xform/sheet/row-xform.d.ts +1 -1
  338. package/dist/types/xlsx/xform/sheet/sheet-format-properties-xform.d.ts +1 -1
  339. package/dist/types/xlsx/xform/sheet/sheet-properties-xform.d.ts +1 -1
  340. package/dist/types/xlsx/xform/sheet/sheet-protection-xform.d.ts +1 -1
  341. package/dist/types/xlsx/xform/sheet/sheet-view-xform.d.ts +1 -1
  342. package/dist/types/xlsx/xform/sheet/table-part-xform.d.ts +1 -1
  343. package/dist/types/xlsx/xform/sheet/worksheet-xform.d.ts +1 -1
  344. package/dist/types/xlsx/xform/simple/boolean-xform.d.ts +1 -1
  345. package/dist/types/xlsx/xform/simple/date-xform.d.ts +1 -1
  346. package/dist/types/xlsx/xform/simple/float-xform.d.ts +1 -1
  347. package/dist/types/xlsx/xform/simple/integer-xform.d.ts +1 -1
  348. package/dist/types/xlsx/xform/simple/string-xform.d.ts +1 -1
  349. package/dist/types/xlsx/xform/static-xform.d.ts +1 -1
  350. package/dist/types/xlsx/xform/strings/phonetic-text-xform.d.ts +1 -1
  351. package/dist/types/xlsx/xform/strings/rich-text-xform.d.ts +3 -3
  352. package/dist/types/xlsx/xform/strings/shared-string-xform.d.ts +1 -1
  353. package/dist/types/xlsx/xform/strings/shared-strings-xform.d.ts +2 -2
  354. package/dist/types/xlsx/xform/strings/text-xform.d.ts +1 -1
  355. package/dist/types/xlsx/xform/style/alignment-xform.d.ts +1 -1
  356. package/dist/types/xlsx/xform/style/border-xform.d.ts +2 -2
  357. package/dist/types/xlsx/xform/style/color-xform.d.ts +1 -1
  358. package/dist/types/xlsx/xform/style/dxf-xform.d.ts +1 -1
  359. package/dist/types/xlsx/xform/style/fill-xform.d.ts +2 -2
  360. package/dist/types/xlsx/xform/style/font-xform.d.ts +1 -1
  361. package/dist/types/xlsx/xform/style/numfmt-xform.d.ts +1 -1
  362. package/dist/types/xlsx/xform/style/protection-xform.d.ts +1 -1
  363. package/dist/types/xlsx/xform/style/style-xform.d.ts +3 -3
  364. package/dist/types/xlsx/xform/style/styles-xform.d.ts +2 -2
  365. package/dist/types/xlsx/xform/style/underline-xform.d.ts +1 -1
  366. package/dist/types/xlsx/xform/table/auto-filter-xform.d.ts +2 -2
  367. package/dist/types/xlsx/xform/table/custom-filter-xform.d.ts +1 -1
  368. package/dist/types/xlsx/xform/table/filter-column-xform.d.ts +2 -2
  369. package/dist/types/xlsx/xform/table/filter-xform.d.ts +1 -1
  370. package/dist/types/xlsx/xform/table/table-column-xform.d.ts +1 -1
  371. package/dist/types/xlsx/xform/table/table-style-info-xform.d.ts +1 -1
  372. package/dist/types/xlsx/xform/table/table-xform.d.ts +1 -1
  373. package/dist/types/xlsx/xlsx.base.d.ts +134 -0
  374. package/dist/types/xlsx/xlsx.browser.d.ts +31 -0
  375. package/dist/types/xlsx/xlsx.d.ts +20 -80
  376. package/package.json +13 -15
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ /**
3
+ * Base utility functions shared between Node.js and Browser
4
+ * Platform-independent implementations only
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.inherits = void 0;
8
+ exports.delay = delay;
9
+ exports.nop = nop;
10
+ exports.dateToExcel = dateToExcel;
11
+ exports.excelToDate = excelToDate;
12
+ exports.toIsoDateString = toIsoDateString;
13
+ exports.parsePath = parsePath;
14
+ exports.getRelsPath = getRelsPath;
15
+ exports.xmlDecode = xmlDecode;
16
+ exports.validInt = validInt;
17
+ exports.isDateFmt = isDateFmt;
18
+ exports.parseBoolean = parseBoolean;
19
+ exports.range = range;
20
+ exports.toSortedArray = toSortedArray;
21
+ exports.objectFromProps = objectFromProps;
22
+ exports.bufferToString = bufferToString;
23
+ // =============================================================================
24
+ // Basic utilities
25
+ // =============================================================================
26
+ function delay(ms) {
27
+ return new Promise(resolve => setTimeout(resolve, ms));
28
+ }
29
+ function nop() { }
30
+ const inherits = function (cls, superCtor, statics, prototype) {
31
+ cls.super_ = superCtor;
32
+ if (!prototype) {
33
+ prototype = statics;
34
+ statics = null;
35
+ }
36
+ if (statics) {
37
+ Object.keys(statics).forEach(i => {
38
+ Object.defineProperty(cls, i, Object.getOwnPropertyDescriptor(statics, i));
39
+ });
40
+ }
41
+ const properties = {
42
+ constructor: {
43
+ value: cls,
44
+ enumerable: false,
45
+ writable: false,
46
+ configurable: true
47
+ }
48
+ };
49
+ if (prototype) {
50
+ Object.keys(prototype).forEach(i => {
51
+ properties[i] = Object.getOwnPropertyDescriptor(prototype, i);
52
+ });
53
+ }
54
+ cls.prototype = Object.create(superCtor.prototype, properties);
55
+ };
56
+ exports.inherits = inherits;
57
+ // =============================================================================
58
+ // Date utilities
59
+ // =============================================================================
60
+ function dateToExcel(d, date1904) {
61
+ return 25569 + d.getTime() / (24 * 3600 * 1000) - (date1904 ? 1462 : 0);
62
+ }
63
+ function excelToDate(v, date1904) {
64
+ const millisecondSinceEpoch = Math.round((v - 25569 + (date1904 ? 1462 : 0)) * 24 * 3600 * 1000);
65
+ return new Date(millisecondSinceEpoch);
66
+ }
67
+ function toIsoDateString(dt) {
68
+ return dt.toISOString().substr(0, 10);
69
+ }
70
+ function parsePath(filepath) {
71
+ const last = filepath.lastIndexOf("/");
72
+ return {
73
+ path: filepath.substring(0, last),
74
+ name: filepath.substring(last + 1)
75
+ };
76
+ }
77
+ function getRelsPath(filepath) {
78
+ const path = parsePath(filepath);
79
+ return `${path.path}/_rels/${path.name}.rels`;
80
+ }
81
+ // =============================================================================
82
+ // XML utilities
83
+ // =============================================================================
84
+ const xmlDecodingMap = {
85
+ lt: "<",
86
+ gt: ">",
87
+ amp: "&",
88
+ quot: '"',
89
+ apos: "'"
90
+ };
91
+ function xmlDecode(text) {
92
+ return text.replace(/&(#\d+|#x[0-9A-Fa-f]+|\w+);/g, (match, entity) => {
93
+ if (entity[0] === "#") {
94
+ // Numeric character reference
95
+ const code = entity[1] === "x" ? parseInt(entity.slice(2), 16) : parseInt(entity.slice(1));
96
+ return String.fromCodePoint(code);
97
+ }
98
+ return xmlDecodingMap[entity] || match;
99
+ });
100
+ }
101
+ // =============================================================================
102
+ // Parsing utilities
103
+ // =============================================================================
104
+ function validInt(value) {
105
+ const i = typeof value === "number" ? value : parseInt(value, 10);
106
+ return Number.isNaN(i) ? 0 : i;
107
+ }
108
+ function isDateFmt(fmt) {
109
+ if (!fmt) {
110
+ return false;
111
+ }
112
+ // must not be a string fmt
113
+ if (fmt.indexOf("@") > -1) {
114
+ return false;
115
+ }
116
+ // must remove all chars inside quotes and []
117
+ let cleanFmt = fmt.replace(/\[[^\]]*]/g, "");
118
+ cleanFmt = cleanFmt.replace(/"[^"]*"/g, "");
119
+ // then check for date formatting chars
120
+ return cleanFmt.match(/[ymdhMsb]+/) !== null;
121
+ }
122
+ function parseBoolean(value) {
123
+ return value === true || value === "true" || value === 1 || value === "1";
124
+ }
125
+ // =============================================================================
126
+ // Collection utilities
127
+ // =============================================================================
128
+ function* range(start, stop, step = 1) {
129
+ const compareOrder = step > 0 ? (a, b) => a < b : (a, b) => a > b;
130
+ for (let value = start; compareOrder(value, stop); value += step) {
131
+ yield value;
132
+ }
133
+ }
134
+ function toSortedArray(values) {
135
+ const result = Array.from(values);
136
+ // If all numbers, use numeric sort
137
+ if (result.every(item => Number.isFinite(item))) {
138
+ return result.sort((a, b) => a - b);
139
+ }
140
+ return result.sort();
141
+ }
142
+ function objectFromProps(props, value = null) {
143
+ return props.reduce((result, property) => {
144
+ result[property] = value;
145
+ return result;
146
+ }, {});
147
+ }
148
+ // =============================================================================
149
+ // Buffer utilities (cross-platform)
150
+ // =============================================================================
151
+ const textDecoder = new TextDecoder("utf-8");
152
+ /**
153
+ * Convert a Buffer, ArrayBuffer, or Uint8Array to a UTF-8 string
154
+ * Works in both Node.js and browser environments
155
+ */
156
+ function bufferToString(chunk) {
157
+ if (typeof chunk === "string") {
158
+ return chunk;
159
+ }
160
+ return textDecoder.decode(chunk);
161
+ }
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ /**
3
+ * Browser utility functions
4
+ * Re-exports shared utilities and adds browser-specific implementations
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.utils = exports.bufferToString = exports.objectFromProps = exports.toSortedArray = exports.range = exports.parseBoolean = exports.isDateFmt = exports.validInt = exports.xmlDecode = exports.getRelsPath = exports.parsePath = exports.toIsoDateString = exports.excelToDate = exports.dateToExcel = exports.inherits = exports.nop = exports.delay = void 0;
8
+ exports.xmlEncode = xmlEncode;
9
+ exports.fileExists = fileExists;
10
+ // Re-export all shared utilities
11
+ var utils_base_1 = require("./utils.base");
12
+ Object.defineProperty(exports, "delay", { enumerable: true, get: function () { return utils_base_1.delay; } });
13
+ Object.defineProperty(exports, "nop", { enumerable: true, get: function () { return utils_base_1.nop; } });
14
+ Object.defineProperty(exports, "inherits", { enumerable: true, get: function () { return utils_base_1.inherits; } });
15
+ Object.defineProperty(exports, "dateToExcel", { enumerable: true, get: function () { return utils_base_1.dateToExcel; } });
16
+ Object.defineProperty(exports, "excelToDate", { enumerable: true, get: function () { return utils_base_1.excelToDate; } });
17
+ Object.defineProperty(exports, "toIsoDateString", { enumerable: true, get: function () { return utils_base_1.toIsoDateString; } });
18
+ Object.defineProperty(exports, "parsePath", { enumerable: true, get: function () { return utils_base_1.parsePath; } });
19
+ Object.defineProperty(exports, "getRelsPath", { enumerable: true, get: function () { return utils_base_1.getRelsPath; } });
20
+ Object.defineProperty(exports, "xmlDecode", { enumerable: true, get: function () { return utils_base_1.xmlDecode; } });
21
+ Object.defineProperty(exports, "validInt", { enumerable: true, get: function () { return utils_base_1.validInt; } });
22
+ Object.defineProperty(exports, "isDateFmt", { enumerable: true, get: function () { return utils_base_1.isDateFmt; } });
23
+ Object.defineProperty(exports, "parseBoolean", { enumerable: true, get: function () { return utils_base_1.parseBoolean; } });
24
+ Object.defineProperty(exports, "range", { enumerable: true, get: function () { return utils_base_1.range; } });
25
+ Object.defineProperty(exports, "toSortedArray", { enumerable: true, get: function () { return utils_base_1.toSortedArray; } });
26
+ Object.defineProperty(exports, "objectFromProps", { enumerable: true, get: function () { return utils_base_1.objectFromProps; } });
27
+ Object.defineProperty(exports, "bufferToString", { enumerable: true, get: function () { return utils_base_1.bufferToString; } });
28
+ // =============================================================================
29
+ // XML encoding (Browser version with full Unicode support)
30
+ // =============================================================================
31
+ const xmlEncodingMap = {
32
+ "<": "&lt;",
33
+ ">": "&gt;",
34
+ "&": "&amp;",
35
+ '"': "&quot;",
36
+ "'": "&apos;"
37
+ };
38
+ function xmlEncode(text) {
39
+ // Handles special characters:
40
+ // 1. XML entities: < > & " '
41
+ // 2. Control characters (0x00-0x1F except tab, newline, carriage return)
42
+ // 3. Invalid XML characters: 0xFFFE, 0xFFFF
43
+ // 4. Characters that need escaping in attributes
44
+ // First pass: escape XML entities
45
+ let result = text.replace(/[<>&"']/g, char => xmlEncodingMap[char] || char);
46
+ // Second pass: handle control characters and invalid XML characters
47
+ // Valid XML chars: #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
48
+ // oxlint-disable-next-line no-control-regex
49
+ result = result.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F\uFFFE\uFFFF]/g, char => {
50
+ const code = char.charCodeAt(0);
51
+ // For control characters, use numeric character reference
52
+ return `&#x${code.toString(16).toUpperCase()};`;
53
+ });
54
+ // Third pass: handle invalid surrogate pairs
55
+ result = result.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g, () => "\uFFFD" // replacement character
56
+ );
57
+ return result;
58
+ }
59
+ // =============================================================================
60
+ // File system utilities (Browser stub - always returns false)
61
+ // =============================================================================
62
+ function fileExists(_path) {
63
+ return Promise.resolve(false);
64
+ }
65
+ // =============================================================================
66
+ // Legacy export for backward compatibility
67
+ // =============================================================================
68
+ const utils_base_2 = require("./utils.base");
69
+ /** @deprecated Import functions directly instead of using the utils object */
70
+ exports.utils = {
71
+ nop: utils_base_2.nop,
72
+ inherits: utils_base_2.inherits,
73
+ dateToExcel: utils_base_2.dateToExcel,
74
+ excelToDate: utils_base_2.excelToDate,
75
+ parsePath: utils_base_2.parsePath,
76
+ getRelsPath: utils_base_2.getRelsPath,
77
+ xmlEncode,
78
+ xmlDecode: utils_base_2.xmlDecode,
79
+ validInt: utils_base_2.validInt,
80
+ isDateFmt: utils_base_2.isDateFmt,
81
+ fs: {
82
+ exists: fileExists
83
+ },
84
+ toIsoDateString: utils_base_2.toIsoDateString,
85
+ parseBoolean: utils_base_2.parseBoolean,
86
+ range: utils_base_2.range,
87
+ toSortedArray: utils_base_2.toSortedArray,
88
+ objectFromProps: utils_base_2.objectFromProps
89
+ };
@@ -1,77 +1,37 @@
1
1
  "use strict";
2
+ /**
3
+ * Node.js utility functions
4
+ * Re-exports shared utilities and adds Node.js-specific implementations
5
+ */
2
6
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
7
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
8
  };
5
9
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.utils = exports.inherits = void 0;
7
- exports.delay = delay;
8
- exports.nop = nop;
9
- exports.dateToExcel = dateToExcel;
10
- exports.excelToDate = excelToDate;
11
- exports.parsePath = parsePath;
12
- exports.getRelsPath = getRelsPath;
10
+ exports.utils = exports.bufferToString = exports.objectFromProps = exports.toSortedArray = exports.range = exports.parseBoolean = exports.isDateFmt = exports.validInt = exports.xmlDecode = exports.getRelsPath = exports.parsePath = exports.toIsoDateString = exports.excelToDate = exports.dateToExcel = exports.inherits = exports.nop = exports.delay = void 0;
13
11
  exports.xmlEncode = xmlEncode;
14
- exports.xmlDecode = xmlDecode;
15
- exports.validInt = validInt;
16
- exports.isDateFmt = isDateFmt;
17
12
  exports.fileExists = fileExists;
18
- exports.toIsoDateString = toIsoDateString;
19
- exports.parseBoolean = parseBoolean;
20
- exports.range = range;
21
- exports.toSortedArray = toSortedArray;
22
- exports.objectFromProps = objectFromProps;
23
- exports.bufferToString = bufferToString;
24
13
  const fs_1 = __importDefault(require("fs"));
25
- function delay(ms) {
26
- return new Promise(resolve => setTimeout(resolve, ms));
27
- }
28
- function nop() { }
29
- // useful stuff
30
- const inherits = function (cls, superCtor, statics, prototype) {
31
- cls.super_ = superCtor;
32
- if (!prototype) {
33
- prototype = statics;
34
- statics = null;
35
- }
36
- if (statics) {
37
- Object.keys(statics).forEach(i => {
38
- Object.defineProperty(cls, i, Object.getOwnPropertyDescriptor(statics, i));
39
- });
40
- }
41
- const properties = {
42
- constructor: {
43
- value: cls,
44
- enumerable: false,
45
- writable: false,
46
- configurable: true
47
- }
48
- };
49
- if (prototype) {
50
- Object.keys(prototype).forEach(i => {
51
- properties[i] = Object.getOwnPropertyDescriptor(prototype, i);
52
- });
53
- }
54
- cls.prototype = Object.create(superCtor.prototype, properties);
55
- };
56
- exports.inherits = inherits;
57
- function dateToExcel(d, date1904) {
58
- return 25569 + d.getTime() / (24 * 3600 * 1000) - (date1904 ? 1462 : 0);
59
- }
60
- function excelToDate(v, date1904) {
61
- const millisecondSinceEpoch = Math.round((v - 25569 + (date1904 ? 1462 : 0)) * 24 * 3600 * 1000);
62
- return new Date(millisecondSinceEpoch);
63
- }
64
- function parsePath(filepath) {
65
- const last = filepath.lastIndexOf("/");
66
- return {
67
- path: filepath.substring(0, last),
68
- name: filepath.substring(last + 1)
69
- };
70
- }
71
- function getRelsPath(filepath) {
72
- const path = parsePath(filepath);
73
- return `${path.path}/_rels/${path.name}.rels`;
74
- }
14
+ // Re-export all shared utilities
15
+ var utils_base_1 = require("./utils.base");
16
+ Object.defineProperty(exports, "delay", { enumerable: true, get: function () { return utils_base_1.delay; } });
17
+ Object.defineProperty(exports, "nop", { enumerable: true, get: function () { return utils_base_1.nop; } });
18
+ Object.defineProperty(exports, "inherits", { enumerable: true, get: function () { return utils_base_1.inherits; } });
19
+ Object.defineProperty(exports, "dateToExcel", { enumerable: true, get: function () { return utils_base_1.dateToExcel; } });
20
+ Object.defineProperty(exports, "excelToDate", { enumerable: true, get: function () { return utils_base_1.excelToDate; } });
21
+ Object.defineProperty(exports, "toIsoDateString", { enumerable: true, get: function () { return utils_base_1.toIsoDateString; } });
22
+ Object.defineProperty(exports, "parsePath", { enumerable: true, get: function () { return utils_base_1.parsePath; } });
23
+ Object.defineProperty(exports, "getRelsPath", { enumerable: true, get: function () { return utils_base_1.getRelsPath; } });
24
+ Object.defineProperty(exports, "xmlDecode", { enumerable: true, get: function () { return utils_base_1.xmlDecode; } });
25
+ Object.defineProperty(exports, "validInt", { enumerable: true, get: function () { return utils_base_1.validInt; } });
26
+ Object.defineProperty(exports, "isDateFmt", { enumerable: true, get: function () { return utils_base_1.isDateFmt; } });
27
+ Object.defineProperty(exports, "parseBoolean", { enumerable: true, get: function () { return utils_base_1.parseBoolean; } });
28
+ Object.defineProperty(exports, "range", { enumerable: true, get: function () { return utils_base_1.range; } });
29
+ Object.defineProperty(exports, "toSortedArray", { enumerable: true, get: function () { return utils_base_1.toSortedArray; } });
30
+ Object.defineProperty(exports, "objectFromProps", { enumerable: true, get: function () { return utils_base_1.objectFromProps; } });
31
+ Object.defineProperty(exports, "bufferToString", { enumerable: true, get: function () { return utils_base_1.bufferToString; } });
32
+ // =============================================================================
33
+ // XML encoding (Node.js optimized version)
34
+ // =============================================================================
75
35
  // oxlint-disable-next-line no-control-regex -- Control characters are intentionally matched for XML encoding
76
36
  const xmlDecodeRegex = /[<>&'"\x7F\x00-\x08\x0B-\x0C\x0E-\x1F]/;
77
37
  function xmlEncode(text) {
@@ -125,39 +85,9 @@ function xmlEncode(text) {
125
85
  }
126
86
  return result;
127
87
  }
128
- function xmlDecode(text) {
129
- return text.replace(/&([a-z]*);/g, c => {
130
- switch (c) {
131
- case "&lt;":
132
- return "<";
133
- case "&gt;":
134
- return ">";
135
- case "&amp;":
136
- return "&";
137
- case "&apos;":
138
- return "'";
139
- case "&quot;":
140
- return '"';
141
- default:
142
- return c;
143
- }
144
- });
145
- }
146
- function validInt(value) {
147
- const i = parseInt(value, 10);
148
- return !Number.isNaN(i) ? i : 0;
149
- }
150
- function isDateFmt(fmt) {
151
- if (!fmt) {
152
- return false;
153
- }
154
- // must remove all chars inside quotes and []
155
- fmt = fmt.replace(/\[[^\]]*]/g, "");
156
- fmt = fmt.replace(/"[^"]*"/g, "");
157
- // then check for date formatting chars
158
- const result = fmt.match(/[ymdhMsb]+/) !== null;
159
- return result;
160
- }
88
+ // =============================================================================
89
+ // File system utilities (Node.js only)
90
+ // =============================================================================
161
91
  function fileExists(path) {
162
92
  return new Promise(resolve => {
163
93
  fs_1.default.access(path, fs_1.default.constants.F_OK, err => {
@@ -165,66 +95,28 @@ function fileExists(path) {
165
95
  });
166
96
  });
167
97
  }
168
- function toIsoDateString(dt) {
169
- return dt.toISOString().substr(0, 10);
170
- }
171
- function parseBoolean(value) {
172
- return value === true || value === "true" || value === 1 || value === "1";
173
- }
174
- function* range(start, stop, step = 1) {
175
- const compareOrder = step > 0 ? (a, b) => a < b : (a, b) => a > b;
176
- for (let value = start; compareOrder(value, stop); value += step) {
177
- yield value;
178
- }
179
- }
180
- function toSortedArray(values) {
181
- const result = Array.from(values);
182
- // Note: per default, `Array.prototype.sort()` converts values
183
- // to strings when comparing. Here, if we have numbers, we use
184
- // numeric sort.
185
- if (result.every(item => Number.isFinite(item))) {
186
- const compareNumbers = (a, b) => a - b;
187
- return result.sort(compareNumbers);
188
- }
189
- return result.sort();
190
- }
191
- function objectFromProps(props, value = null) {
192
- return props.reduce((result, property) => {
193
- result[property] = value;
194
- return result;
195
- }, {});
196
- }
98
+ // =============================================================================
197
99
  // Legacy export for backward compatibility
100
+ // =============================================================================
101
+ const utils_base_2 = require("./utils.base");
198
102
  /** @deprecated Import functions directly instead of using the utils object */
199
103
  exports.utils = {
200
- nop,
201
- inherits: exports.inherits,
202
- dateToExcel,
203
- excelToDate,
204
- parsePath,
205
- getRelsPath,
104
+ nop: utils_base_2.nop,
105
+ inherits: utils_base_2.inherits,
106
+ dateToExcel: utils_base_2.dateToExcel,
107
+ excelToDate: utils_base_2.excelToDate,
108
+ parsePath: utils_base_2.parsePath,
109
+ getRelsPath: utils_base_2.getRelsPath,
206
110
  xmlEncode,
207
- xmlDecode,
208
- validInt,
209
- isDateFmt,
111
+ xmlDecode: utils_base_2.xmlDecode,
112
+ validInt: utils_base_2.validInt,
113
+ isDateFmt: utils_base_2.isDateFmt,
210
114
  fs: {
211
115
  exists: fileExists
212
116
  },
213
- toIsoDateString,
214
- parseBoolean,
215
- range,
216
- toSortedArray,
217
- objectFromProps
117
+ toIsoDateString: utils_base_2.toIsoDateString,
118
+ parseBoolean: utils_base_2.parseBoolean,
119
+ range: utils_base_2.range,
120
+ toSortedArray: utils_base_2.toSortedArray,
121
+ objectFromProps: utils_base_2.objectFromProps
218
122
  };
219
- // TextDecoder is available in ES2020+ and all modern browsers/Node.js
220
- const textDecoder = new TextDecoder("utf-8");
221
- /**
222
- * Convert a Buffer or ArrayBuffer to a UTF-8 string
223
- * Works in both Node.js and browser environments
224
- */
225
- function bufferToString(chunk) {
226
- if (typeof chunk === "string") {
227
- return chunk;
228
- }
229
- return textDecoder.decode(chunk);
230
- }
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.XmlStream = void 0;
4
- const utils_js_1 = require("./utils");
4
+ const utils_1 = require("./utils");
5
5
  // constants
6
6
  const OPEN_ANGLE = "<";
7
7
  const CLOSE_ANGLE = ">";
@@ -10,7 +10,7 @@ const CLOSE_SLASH_ANGLE = "/>";
10
10
  // Chunk size for periodic consolidation (reduces final join overhead)
11
11
  const CHUNK_SIZE = 10000;
12
12
  function pushAttribute(xml, name, value) {
13
- xml.push(` ${name}="${(0, utils_js_1.xmlEncode)(value.toString())}"`);
13
+ xml.push(` ${name}="${(0, utils_1.xmlEncode)(value.toString())}"`);
14
14
  }
15
15
  function pushAttributes(xml, attributes) {
16
16
  if (attributes) {
@@ -86,7 +86,7 @@ class XmlStream {
86
86
  this.open = false;
87
87
  }
88
88
  this.leaf = false;
89
- xml.push((0, utils_js_1.xmlEncode)(text.toString()));
89
+ xml.push((0, utils_1.xmlEncode)(text.toString()));
90
90
  }
91
91
  writeXml(xml) {
92
92
  if (this.open) {
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ /**
3
+ * Base compression utilities using Web Streams API
4
+ * Shared between Node.js and Browser implementations
5
+ *
6
+ * Uses CompressionStream/DecompressionStream API with "deflate-raw" format
7
+ * (raw DEFLATE without zlib header/trailer, required for ZIP files)
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.hasCompressionStream = hasCompressionStream;
11
+ exports.compressWithStream = compressWithStream;
12
+ exports.decompressWithStream = decompressWithStream;
13
+ /**
14
+ * Check if CompressionStream is available
15
+ */
16
+ function hasCompressionStream() {
17
+ return typeof CompressionStream !== "undefined";
18
+ }
19
+ /**
20
+ * Compress using CompressionStream API
21
+ * Uses "deflate-raw" format (required for ZIP files)
22
+ *
23
+ * @param data - Data to compress
24
+ * @returns Compressed data
25
+ */
26
+ async function compressWithStream(data) {
27
+ const cs = new CompressionStream("deflate-raw");
28
+ const writer = cs.writable.getWriter();
29
+ const reader = cs.readable.getReader();
30
+ // Write data and close
31
+ writer.write(new Uint8Array(data.buffer, data.byteOffset, data.byteLength));
32
+ writer.close();
33
+ // Read all compressed chunks
34
+ const chunks = [];
35
+ let totalLength = 0;
36
+ while (true) {
37
+ const { done, value } = await reader.read();
38
+ if (done) {
39
+ break;
40
+ }
41
+ chunks.push(value);
42
+ totalLength += value.length;
43
+ }
44
+ // Combine chunks into single array
45
+ const result = new Uint8Array(totalLength);
46
+ let offset = 0;
47
+ for (const chunk of chunks) {
48
+ result.set(chunk, offset);
49
+ offset += chunk.length;
50
+ }
51
+ return result;
52
+ }
53
+ /**
54
+ * Decompress using DecompressionStream API
55
+ *
56
+ * @param data - Compressed data (deflate-raw format)
57
+ * @returns Decompressed data
58
+ */
59
+ async function decompressWithStream(data) {
60
+ const ds = new DecompressionStream("deflate-raw");
61
+ const writer = ds.writable.getWriter();
62
+ const reader = ds.readable.getReader();
63
+ // Write data and close
64
+ writer.write(new Uint8Array(data.buffer, data.byteOffset, data.byteLength));
65
+ writer.close();
66
+ // Read all decompressed chunks
67
+ const chunks = [];
68
+ let totalLength = 0;
69
+ while (true) {
70
+ const { done, value } = await reader.read();
71
+ if (done) {
72
+ break;
73
+ }
74
+ chunks.push(value);
75
+ totalLength += value.length;
76
+ }
77
+ // Combine chunks into single array
78
+ const result = new Uint8Array(totalLength);
79
+ let offset = 0;
80
+ for (const chunk of chunks) {
81
+ result.set(chunk, offset);
82
+ offset += chunk.length;
83
+ }
84
+ return result;
85
+ }
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ /**
3
+ * Browser compression utilities using Web Streams API
4
+ *
5
+ * Uses CompressionStream API (Chrome 80+, Firefox 113+, Safari 16.4+)
6
+ * with "deflate-raw" format (required for ZIP files)
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.hasCompressionStream = void 0;
10
+ exports.hasNativeZlib = hasNativeZlib;
11
+ exports.compress = compress;
12
+ exports.compressSync = compressSync;
13
+ exports.decompress = decompress;
14
+ exports.decompressSync = decompressSync;
15
+ const compress_base_1 = require("./compress.base");
16
+ Object.defineProperty(exports, "hasCompressionStream", { enumerable: true, get: function () { return compress_base_1.hasCompressionStream; } });
17
+ /**
18
+ * Check if native zlib is available (always false in browser)
19
+ */
20
+ function hasNativeZlib() {
21
+ return false;
22
+ }
23
+ /**
24
+ * Compress data using browser's native CompressionStream
25
+ *
26
+ * @param data - Data to compress
27
+ * @param options - Compression options
28
+ * @returns Compressed data
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * const data = new TextEncoder().encode("Hello, World!");
33
+ * const compressed = await compress(data, { level: 6 });
34
+ * ```
35
+ */
36
+ async function compress(data, options = {}) {
37
+ const level = options.level ?? 6;
38
+ // Level 0 means no compression
39
+ if (level === 0) {
40
+ return data;
41
+ }
42
+ // Use CompressionStream
43
+ if (typeof CompressionStream !== "undefined") {
44
+ return (0, compress_base_1.compressWithStream)(data);
45
+ }
46
+ // No compression available - return original data
47
+ console.warn("No native compression available, returning uncompressed data");
48
+ return data;
49
+ }
50
+ /**
51
+ * Compress data synchronously
52
+ * Not available in browser - throws error
53
+ *
54
+ * @param _data - Data to compress
55
+ * @param _options - Compression options
56
+ * @throws Error always - sync compression not available in browser
57
+ */
58
+ function compressSync(_data, _options = {}) {
59
+ throw new Error("Synchronous compression is not available in browser environment");
60
+ }
61
+ /**
62
+ * Decompress data using browser's native DecompressionStream
63
+ *
64
+ * @param data - Compressed data (deflate-raw format)
65
+ * @returns Decompressed data
66
+ */
67
+ async function decompress(data) {
68
+ // Use DecompressionStream
69
+ if (typeof DecompressionStream !== "undefined") {
70
+ return (0, compress_base_1.decompressWithStream)(data);
71
+ }
72
+ throw new Error("No native decompression available in browser");
73
+ }
74
+ /**
75
+ * Decompress data synchronously
76
+ * Not available in browser - throws error
77
+ *
78
+ * @param _data - Compressed data
79
+ * @throws Error always - sync decompression not available in browser
80
+ */
81
+ function decompressSync(_data) {
82
+ throw new Error("Synchronous decompression is not available in browser environment");
83
+ }