@cj-tech-master/excelts 3.1.0 → 4.0.0-canary.20260103013222.0e5d37f

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 (1453) hide show
  1. package/LICENSE +2 -1
  2. package/README.md +98 -21
  3. package/README_zh.md +101 -23
  4. package/THIRD_PARTY_NOTICES.md +112 -0
  5. package/dist/LICENSE +2 -1
  6. package/dist/browser/index.browser.d.ts +25 -0
  7. package/dist/browser/index.browser.js +40 -0
  8. package/dist/browser/index.d.ts +23 -0
  9. package/dist/browser/index.js +35 -0
  10. package/dist/browser/modules/archive/byte-queue.d.ts +18 -0
  11. package/dist/browser/modules/archive/byte-queue.js +125 -0
  12. package/dist/browser/modules/archive/compress.base.d.ts +98 -0
  13. package/dist/browser/modules/archive/compress.base.js +173 -0
  14. package/dist/browser/modules/archive/compress.browser.d.ts +57 -0
  15. package/dist/browser/modules/archive/compress.browser.js +93 -0
  16. package/dist/browser/modules/archive/compress.d.ts +44 -0
  17. package/dist/browser/modules/archive/compress.js +86 -0
  18. package/dist/browser/modules/archive/crc32.base.d.ts +25 -0
  19. package/dist/browser/modules/archive/crc32.base.js +51 -0
  20. package/dist/browser/modules/archive/crc32.browser.d.ts +30 -0
  21. package/dist/browser/modules/archive/crc32.browser.js +32 -0
  22. package/dist/browser/modules/archive/crc32.d.ts +59 -0
  23. package/dist/browser/modules/archive/crc32.js +97 -0
  24. package/dist/browser/modules/archive/defaults.d.ts +4 -0
  25. package/dist/browser/modules/archive/defaults.js +3 -0
  26. package/dist/browser/modules/archive/deflate-fallback.js +564 -0
  27. package/dist/browser/modules/archive/extract.d.ts +94 -0
  28. package/dist/browser/modules/archive/index.base.d.ts +11 -0
  29. package/dist/browser/modules/archive/index.base.js +13 -0
  30. package/dist/browser/modules/archive/index.browser.d.ts +11 -0
  31. package/dist/browser/modules/archive/index.browser.js +17 -0
  32. package/dist/browser/modules/archive/index.d.ts +11 -0
  33. package/dist/browser/modules/archive/index.js +15 -0
  34. package/dist/browser/modules/archive/parse.base.d.ts +198 -0
  35. package/dist/browser/modules/archive/parse.base.js +610 -0
  36. package/dist/browser/modules/archive/parse.browser.d.ts +22 -0
  37. package/dist/browser/modules/archive/parse.browser.js +564 -0
  38. package/dist/browser/modules/archive/parse.d.ts +16 -0
  39. package/dist/browser/modules/archive/parse.js +94 -0
  40. package/dist/browser/modules/archive/streaming-compress.base.d.ts +36 -0
  41. package/dist/browser/modules/archive/streaming-compress.base.js +9 -0
  42. package/dist/browser/modules/archive/streaming-compress.browser.d.ts +26 -0
  43. package/dist/browser/modules/archive/streaming-compress.browser.js +296 -0
  44. package/dist/browser/modules/archive/streaming-compress.d.ts +22 -0
  45. package/dist/browser/modules/archive/streaming-compress.js +68 -0
  46. package/dist/browser/modules/archive/streaming-zip.d.ts +120 -0
  47. package/dist/browser/modules/archive/streaming-zip.js +407 -0
  48. package/dist/browser/modules/archive/utils/binary.d.ts +24 -0
  49. package/dist/browser/modules/archive/utils/binary.js +69 -0
  50. package/dist/browser/modules/archive/utils/bytes.d.ts +7 -0
  51. package/dist/browser/modules/archive/utils/bytes.js +101 -0
  52. package/dist/browser/modules/archive/utils/parse-buffer.d.ts +18 -0
  53. package/dist/browser/modules/archive/utils/parse-buffer.js +55 -0
  54. package/dist/browser/modules/archive/utils/text.d.ts +20 -0
  55. package/dist/browser/modules/archive/utils/text.js +33 -0
  56. package/dist/browser/modules/archive/utils/timestamps.d.ts +28 -0
  57. package/dist/browser/modules/archive/utils/timestamps.js +48 -0
  58. package/dist/browser/modules/archive/utils/zip-extra-fields.d.ts +19 -0
  59. package/dist/browser/modules/archive/utils/zip-extra-fields.js +72 -0
  60. package/dist/browser/modules/archive/utils/zip-extra.d.ts +18 -0
  61. package/dist/browser/modules/archive/utils/zip-extra.js +68 -0
  62. package/dist/browser/modules/archive/zip-builder.d.ts +117 -0
  63. package/dist/browser/modules/archive/zip-builder.js +292 -0
  64. package/dist/browser/modules/archive/zip-constants.d.ts +18 -0
  65. package/dist/browser/modules/archive/zip-constants.js +23 -0
  66. package/dist/browser/modules/archive/zip-entry-info.d.ts +29 -0
  67. package/dist/browser/modules/archive/zip-entry-info.js +6 -0
  68. package/dist/browser/modules/archive/zip-entry-metadata.d.ts +23 -0
  69. package/dist/browser/modules/archive/zip-entry-metadata.js +24 -0
  70. package/dist/browser/modules/archive/zip-parser.d.ts +62 -0
  71. package/dist/browser/modules/archive/zip-parser.js +332 -0
  72. package/dist/browser/modules/archive/zip-records.d.ts +43 -0
  73. package/dist/browser/modules/archive/zip-records.js +84 -0
  74. package/dist/browser/modules/csv/csv-core.d.ts +215 -0
  75. package/dist/browser/modules/csv/csv-core.js +723 -0
  76. package/dist/browser/modules/csv/csv-stream.d.ts +121 -0
  77. package/dist/browser/modules/csv/csv-stream.js +703 -0
  78. package/dist/browser/modules/csv/csv.browser.d.ts +60 -0
  79. package/dist/browser/modules/csv/csv.browser.js +265 -0
  80. package/dist/browser/modules/csv/csv.d.ts +14 -0
  81. package/dist/browser/modules/csv/csv.js +29 -0
  82. package/dist/browser/modules/excel/anchor.d.ts +33 -0
  83. package/dist/browser/modules/excel/anchor.js +97 -0
  84. package/dist/browser/modules/excel/cell.d.ts +138 -0
  85. package/dist/browser/modules/excel/cell.js +946 -0
  86. package/dist/browser/modules/excel/column.d.ts +122 -0
  87. package/dist/browser/modules/excel/column.js +358 -0
  88. package/dist/browser/modules/excel/data-validations.js +43 -0
  89. package/dist/browser/modules/excel/defined-names.d.ts +37 -0
  90. package/dist/browser/modules/excel/defined-names.js +214 -0
  91. package/dist/browser/modules/excel/image.d.ts +64 -0
  92. package/dist/browser/modules/excel/image.js +60 -0
  93. package/dist/browser/modules/excel/note.js +61 -0
  94. package/dist/browser/modules/excel/pivot-table.d.ts +152 -0
  95. package/dist/browser/modules/excel/pivot-table.js +237 -0
  96. package/dist/browser/modules/excel/range.d.ts +62 -0
  97. package/dist/browser/modules/excel/range.js +280 -0
  98. package/dist/browser/modules/excel/row.d.ts +127 -0
  99. package/dist/browser/modules/excel/row.js +441 -0
  100. package/dist/browser/modules/excel/stream/hyperlink-reader.d.ts +33 -0
  101. package/dist/browser/modules/excel/stream/hyperlink-reader.js +84 -0
  102. package/dist/browser/modules/excel/stream/sheet-comments-writer.js +101 -0
  103. package/dist/browser/modules/excel/stream/sheet-rels-writer.js +91 -0
  104. package/dist/browser/modules/excel/stream/workbook-reader.browser.d.ts +169 -0
  105. package/dist/browser/modules/excel/stream/workbook-reader.browser.js +443 -0
  106. package/dist/browser/modules/excel/stream/workbook-reader.d.ts +24 -0
  107. package/dist/browser/modules/excel/stream/workbook-reader.js +50 -0
  108. package/dist/browser/modules/excel/stream/workbook-writer.browser.d.ts +147 -0
  109. package/dist/browser/modules/excel/stream/workbook-writer.browser.js +356 -0
  110. package/dist/browser/modules/excel/stream/workbook-writer.d.ts +31 -0
  111. package/dist/browser/modules/excel/stream/workbook-writer.js +52 -0
  112. package/dist/browser/modules/excel/stream/worksheet-reader.d.ts +61 -0
  113. package/dist/browser/modules/excel/stream/worksheet-reader.js +367 -0
  114. package/dist/browser/modules/excel/stream/worksheet-writer.d.ts +140 -0
  115. package/dist/browser/modules/excel/stream/worksheet-writer.js +613 -0
  116. package/dist/browser/modules/excel/table.d.ts +81 -0
  117. package/dist/browser/modules/excel/table.js +405 -0
  118. package/dist/browser/modules/excel/utils/cell-format.js +814 -0
  119. package/dist/browser/modules/excel/utils/col-cache.d.ts +36 -0
  120. package/dist/browser/modules/excel/utils/encryptor.browser.d.ts +19 -0
  121. package/dist/browser/modules/excel/utils/encryptor.browser.js +46 -0
  122. package/dist/browser/modules/excel/utils/encryptor.d.ts +9 -0
  123. package/dist/browser/modules/excel/utils/encryptor.js +35 -0
  124. package/dist/browser/modules/excel/utils/iterate-stream.d.ts +14 -0
  125. package/dist/browser/modules/excel/utils/ooxml-paths.d.ts +64 -0
  126. package/dist/browser/modules/excel/utils/ooxml-paths.js +209 -0
  127. package/dist/browser/modules/excel/utils/parse-sax.js +1206 -0
  128. package/dist/browser/modules/excel/utils/sheet-utils.d.ts +190 -0
  129. package/dist/browser/modules/excel/utils/sheet-utils.js +674 -0
  130. package/dist/browser/modules/excel/utils/stream-buf.d.ts +126 -0
  131. package/dist/browser/modules/excel/utils/stream-buf.js +452 -0
  132. package/dist/browser/modules/excel/utils/string-buf.d.ts +29 -0
  133. package/dist/browser/modules/excel/utils/string-buf.js +75 -0
  134. package/dist/browser/modules/excel/utils/under-dash.js +166 -0
  135. package/dist/browser/modules/excel/utils/xml-stream.js +179 -0
  136. package/dist/browser/modules/excel/workbook.d.ts +195 -0
  137. package/dist/browser/modules/excel/workbook.js +314 -0
  138. package/dist/browser/modules/excel/worksheet.d.ts +333 -0
  139. package/dist/browser/modules/excel/worksheet.js +924 -0
  140. package/dist/browser/modules/excel/xlsx/xform/base-xform.d.ts +33 -0
  141. package/dist/browser/modules/excel/xlsx/xform/base-xform.js +135 -0
  142. package/dist/browser/modules/excel/xlsx/xform/book/defined-name-xform.d.ts +17 -0
  143. package/dist/browser/modules/excel/xlsx/xform/book/sheet-xform.d.ts +14 -0
  144. package/dist/browser/modules/excel/xlsx/xform/book/sheet-xform.js +30 -0
  145. package/dist/browser/modules/excel/xlsx/xform/book/workbook-calc-properties-xform.d.ts +11 -0
  146. package/dist/browser/modules/excel/xlsx/xform/book/workbook-pivot-cache-xform.d.ts +12 -0
  147. package/dist/browser/modules/excel/xlsx/xform/book/workbook-properties-xform.d.ts +11 -0
  148. package/dist/browser/modules/excel/xlsx/xform/book/workbook-view-xform.d.ts +17 -0
  149. package/dist/browser/modules/excel/xlsx/xform/book/workbook-xform.d.ts +23 -0
  150. package/dist/browser/modules/excel/xlsx/xform/comment/comment-xform.d.ts +28 -0
  151. package/dist/browser/modules/excel/xlsx/xform/comment/comments-xform.d.ts +21 -0
  152. package/dist/browser/modules/excel/xlsx/xform/comment/style/vml-position-xform.d.ts +16 -0
  153. package/dist/browser/modules/excel/xlsx/xform/comment/style/vml-protection-xform.d.ts +14 -0
  154. package/dist/browser/modules/excel/xlsx/xform/comment/vml-anchor-xform.d.ts +27 -0
  155. package/dist/browser/modules/excel/xlsx/xform/comment/vml-client-data-xform.d.ts +35 -0
  156. package/dist/browser/modules/excel/xlsx/xform/comment/vml-notes-xform.d.ts +24 -0
  157. package/dist/browser/modules/excel/xlsx/xform/comment/vml-shape-xform.d.ts +25 -0
  158. package/dist/browser/modules/excel/xlsx/xform/comment/vml-textbox-xform.d.ts +23 -0
  159. package/dist/browser/modules/excel/xlsx/xform/composite-xform.d.ts +11 -0
  160. package/dist/browser/modules/excel/xlsx/xform/core/app-heading-pairs-xform.d.ts +8 -0
  161. package/dist/browser/modules/excel/xlsx/xform/core/app-titles-of-parts-xform.d.ts +8 -0
  162. package/dist/browser/modules/excel/xlsx/xform/core/app-xform.d.ts +26 -0
  163. package/dist/browser/modules/excel/xlsx/xform/core/content-types-xform.d.ts +11 -0
  164. package/dist/browser/modules/excel/xlsx/xform/core/content-types-xform.js +122 -0
  165. package/dist/browser/modules/excel/xlsx/xform/core/core-xform.d.ts +42 -0
  166. package/dist/browser/modules/excel/xlsx/xform/core/relationship-xform.d.ts +14 -0
  167. package/dist/browser/modules/excel/xlsx/xform/core/relationships-xform.d.ts +14 -0
  168. package/dist/browser/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.d.ts +13 -0
  169. package/dist/browser/modules/excel/xlsx/xform/drawing/blip-fill-xform.d.ts +16 -0
  170. package/dist/browser/modules/excel/xlsx/xform/drawing/blip-xform.d.ts +14 -0
  171. package/dist/browser/modules/excel/xlsx/xform/drawing/c-nv-pic-pr-xform.d.ts +9 -0
  172. package/dist/browser/modules/excel/xlsx/xform/drawing/c-nv-pr-xform.d.ts +18 -0
  173. package/dist/browser/modules/excel/xlsx/xform/drawing/cell-position-xform.d.ts +24 -0
  174. package/dist/browser/modules/excel/xlsx/xform/drawing/drawing-xform.d.ts +24 -0
  175. package/dist/browser/modules/excel/xlsx/xform/drawing/ext-lst-xform.d.ts +9 -0
  176. package/dist/browser/modules/excel/xlsx/xform/drawing/ext-xform.d.ts +20 -0
  177. package/dist/browser/modules/excel/xlsx/xform/drawing/hlink-click-xform.d.ts +11 -0
  178. package/dist/browser/modules/excel/xlsx/xform/drawing/nv-pic-pr-xform.d.ts +15 -0
  179. package/dist/browser/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.d.ts +20 -0
  180. package/dist/browser/modules/excel/xlsx/xform/drawing/pic-xform.d.ts +22 -0
  181. package/dist/browser/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.d.ts +20 -0
  182. package/dist/browser/modules/excel/xlsx/xform/list-xform.d.ts +32 -0
  183. package/dist/browser/modules/excel/xlsx/xform/pivot-table/cache-field-xform.d.ts +42 -0
  184. package/dist/browser/modules/excel/xlsx/xform/pivot-table/cache-field-xform.js +128 -0
  185. package/dist/browser/modules/excel/xlsx/xform/pivot-table/cache-field.js +78 -0
  186. package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-cache-definition-xform.d.ts +60 -0
  187. package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-cache-records-xform.d.ts +73 -0
  188. package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-cache-records-xform.js +234 -0
  189. package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.d.ts +119 -0
  190. package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.js +624 -0
  191. package/dist/browser/modules/excel/xlsx/xform/sheet/auto-filter-xform.d.ts +8 -0
  192. package/dist/browser/modules/excel/xlsx/xform/sheet/cell-xform.d.ts +17 -0
  193. package/dist/browser/modules/excel/xlsx/xform/sheet/cell-xform.js +460 -0
  194. package/dist/browser/modules/excel/xlsx/xform/sheet/cf/cf-rule-xform.d.ts +41 -0
  195. package/dist/browser/modules/excel/xlsx/xform/sheet/cf/cf-rule-xform.js +259 -0
  196. package/dist/browser/modules/excel/xlsx/xform/sheet/cf/cfvo-xform.d.ts +8 -0
  197. package/dist/browser/modules/excel/xlsx/xform/sheet/cf/color-scale-xform.d.ts +13 -0
  198. package/dist/browser/modules/excel/xlsx/xform/sheet/cf/conditional-formatting-xform.d.ts +9 -0
  199. package/dist/browser/modules/excel/xlsx/xform/sheet/cf/conditional-formattings-xform.d.ts +16 -0
  200. package/dist/browser/modules/excel/xlsx/xform/sheet/cf/databar-xform.d.ts +13 -0
  201. package/dist/browser/modules/excel/xlsx/xform/sheet/cf/ext-lst-ref-xform.d.ts +9 -0
  202. package/dist/browser/modules/excel/xlsx/xform/sheet/cf/formula-xform.d.ts +9 -0
  203. package/dist/browser/modules/excel/xlsx/xform/sheet/cf/icon-set-xform.d.ts +11 -0
  204. package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.d.ts +10 -0
  205. package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.d.ts +23 -0
  206. package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +80 -0
  207. package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.d.ts +13 -0
  208. package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.d.ts +16 -0
  209. package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.d.ts +13 -0
  210. package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/databar-ext-xform.d.ts +29 -0
  211. package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/f-ext-xform.d.ts +9 -0
  212. package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.d.ts +20 -0
  213. package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/sqref-ext-xform.d.ts +9 -0
  214. package/dist/browser/modules/excel/xlsx/xform/sheet/col-breaks-xform.d.ts +16 -0
  215. package/dist/browser/modules/excel/xlsx/xform/sheet/col-xform.d.ts +22 -0
  216. package/dist/browser/modules/excel/xlsx/xform/sheet/col-xform.js +75 -0
  217. package/dist/browser/modules/excel/xlsx/xform/sheet/data-validations-xform.d.ts +12 -0
  218. package/dist/browser/modules/excel/xlsx/xform/sheet/data-validations-xform.js +269 -0
  219. package/dist/browser/modules/excel/xlsx/xform/sheet/dimension-xform.d.ts +10 -0
  220. package/dist/browser/modules/excel/xlsx/xform/sheet/drawing-xform.d.ts +12 -0
  221. package/dist/browser/modules/excel/xlsx/xform/sheet/ext-lst-xform.d.ts +16 -0
  222. package/dist/browser/modules/excel/xlsx/xform/sheet/header-footer-xform.d.ts +20 -0
  223. package/dist/browser/modules/excel/xlsx/xform/sheet/hyperlink-xform.d.ts +16 -0
  224. package/dist/browser/modules/excel/xlsx/xform/sheet/merge-cell-xform.d.ts +9 -0
  225. package/dist/browser/modules/excel/xlsx/xform/sheet/merges.js +50 -0
  226. package/dist/browser/modules/excel/xlsx/xform/sheet/outline-properties-xform.d.ts +13 -0
  227. package/dist/browser/modules/excel/xlsx/xform/sheet/page-breaks-xform.d.ts +14 -0
  228. package/dist/browser/modules/excel/xlsx/xform/sheet/page-margins-xform.d.ts +17 -0
  229. package/dist/browser/modules/excel/xlsx/xform/sheet/page-setup-properties-xform.d.ts +12 -0
  230. package/dist/browser/modules/excel/xlsx/xform/sheet/page-setup-xform.d.ts +27 -0
  231. package/dist/browser/modules/excel/xlsx/xform/sheet/picture-xform.d.ts +12 -0
  232. package/dist/browser/modules/excel/xlsx/xform/sheet/print-options-xform.d.ts +15 -0
  233. package/dist/browser/modules/excel/xlsx/xform/sheet/row-breaks-xform.d.ts +10 -0
  234. package/dist/browser/modules/excel/xlsx/xform/sheet/row-xform.d.ts +37 -0
  235. package/dist/browser/modules/excel/xlsx/xform/sheet/row-xform.js +152 -0
  236. package/dist/browser/modules/excel/xlsx/xform/sheet/sheet-format-properties-xform.d.ts +16 -0
  237. package/dist/browser/modules/excel/xlsx/xform/sheet/sheet-properties-xform.d.ts +19 -0
  238. package/dist/browser/modules/excel/xlsx/xform/sheet/sheet-protection-xform.d.ts +31 -0
  239. package/dist/browser/modules/excel/xlsx/xform/sheet/sheet-view-xform.d.ts +32 -0
  240. package/dist/browser/modules/excel/xlsx/xform/sheet/table-part-xform.d.ts +12 -0
  241. package/dist/browser/modules/excel/xlsx/xform/sheet/worksheet-xform.d.ts +21 -0
  242. package/dist/browser/modules/excel/xlsx/xform/sheet/worksheet-xform.js +518 -0
  243. package/dist/browser/modules/excel/xlsx/xform/simple/boolean-xform.d.ts +15 -0
  244. package/dist/browser/modules/excel/xlsx/xform/simple/date-xform.d.ts +22 -0
  245. package/dist/browser/modules/excel/xlsx/xform/simple/float-xform.d.ts +18 -0
  246. package/dist/browser/modules/excel/xlsx/xform/simple/integer-xform.d.ts +20 -0
  247. package/dist/browser/modules/excel/xlsx/xform/simple/string-xform.d.ts +18 -0
  248. package/dist/browser/modules/excel/xlsx/xform/static-xform.d.ts +17 -0
  249. package/dist/browser/modules/excel/xlsx/xform/static-xform.js +55 -0
  250. package/dist/browser/modules/excel/xlsx/xform/strings/phonetic-text-xform.d.ts +20 -0
  251. package/dist/browser/modules/excel/xlsx/xform/strings/rich-text-xform.d.ts +25 -0
  252. package/dist/browser/modules/excel/xlsx/xform/strings/shared-string-xform.d.ts +17 -0
  253. package/dist/browser/modules/excel/xlsx/xform/strings/shared-strings-xform.d.ts +27 -0
  254. package/dist/browser/modules/excel/xlsx/xform/strings/text-xform.d.ts +10 -0
  255. package/dist/browser/modules/excel/xlsx/xform/style/alignment-xform.d.ts +18 -0
  256. package/dist/browser/modules/excel/xlsx/xform/style/alignment-xform.js +152 -0
  257. package/dist/browser/modules/excel/xlsx/xform/style/border-xform.d.ts +49 -0
  258. package/dist/browser/modules/excel/xlsx/xform/style/border-xform.js +188 -0
  259. package/dist/browser/modules/excel/xlsx/xform/style/color-xform.d.ts +17 -0
  260. package/dist/browser/modules/excel/xlsx/xform/style/dxf-xform.d.ts +23 -0
  261. package/dist/browser/modules/excel/xlsx/xform/style/fill-xform.d.ts +85 -0
  262. package/dist/browser/modules/excel/xlsx/xform/style/font-xform.d.ts +35 -0
  263. package/dist/browser/modules/excel/xlsx/xform/style/numfmt-xform.d.ts +18 -0
  264. package/dist/browser/modules/excel/xlsx/xform/style/protection-xform.d.ts +13 -0
  265. package/dist/browser/modules/excel/xlsx/xform/style/style-xform.d.ts +30 -0
  266. package/dist/browser/modules/excel/xlsx/xform/style/styles-xform.d.ts +46 -0
  267. package/dist/browser/modules/excel/xlsx/xform/style/styles-xform.js +484 -0
  268. package/dist/browser/modules/excel/xlsx/xform/style/underline-xform.d.ts +14 -0
  269. package/dist/browser/modules/excel/xlsx/xform/table/auto-filter-xform.d.ts +21 -0
  270. package/dist/browser/modules/excel/xlsx/xform/table/custom-filter-xform.d.ts +15 -0
  271. package/dist/browser/modules/excel/xlsx/xform/table/filter-column-xform.d.ts +24 -0
  272. package/dist/browser/modules/excel/xlsx/xform/table/filter-column-xform.js +87 -0
  273. package/dist/browser/modules/excel/xlsx/xform/table/filter-xform.d.ts +14 -0
  274. package/dist/browser/modules/excel/xlsx/xform/table/table-column-xform.d.ts +21 -0
  275. package/dist/browser/modules/excel/xlsx/xform/table/table-style-info-xform.d.ts +18 -0
  276. package/dist/browser/modules/excel/xlsx/xform/table/table-xform.d.ts +33 -0
  277. package/dist/browser/modules/excel/xlsx/xlsx.browser.d.ts +208 -0
  278. package/dist/browser/modules/excel/xlsx/xlsx.browser.js +1152 -0
  279. package/dist/browser/modules/excel/xlsx/xlsx.d.ts +24 -0
  280. package/dist/browser/modules/excel/xlsx/xlsx.js +239 -0
  281. package/dist/browser/modules/stream/base-transform.d.ts +68 -0
  282. package/dist/browser/modules/stream/base-transform.js +160 -0
  283. package/dist/browser/modules/stream/buffered-stream.d.ts +94 -0
  284. package/dist/browser/modules/stream/buffered-stream.js +277 -0
  285. package/dist/browser/modules/stream/chunked-builder.d.ts +97 -0
  286. package/dist/browser/modules/stream/chunked-builder.js +165 -0
  287. package/dist/browser/modules/stream/event-emitter.d.ts +30 -0
  288. package/dist/browser/modules/stream/event-emitter.js +239 -0
  289. package/dist/browser/modules/stream/index.browser.d.ts +22 -0
  290. package/dist/browser/modules/stream/index.browser.js +25 -0
  291. package/dist/browser/modules/stream/index.d.ts +49 -0
  292. package/dist/browser/modules/stream/index.js +52 -0
  293. package/dist/browser/modules/stream/pull-stream.d.ts +67 -0
  294. package/dist/browser/modules/stream/pull-stream.js +204 -0
  295. package/dist/browser/modules/stream/shared.d.ts +54 -0
  296. package/dist/browser/modules/stream/shared.js +156 -0
  297. package/dist/browser/modules/stream/streams.browser.d.ts +936 -0
  298. package/dist/browser/modules/stream/streams.browser.js +3297 -0
  299. package/dist/browser/modules/stream/streams.d.ts +282 -0
  300. package/dist/browser/modules/stream/streams.js +940 -0
  301. package/dist/browser/modules/stream/types.d.ts +238 -0
  302. package/dist/browser/modules/stream/types.js +7 -0
  303. package/dist/browser/modules/stream/utils.d.ts +24 -0
  304. package/dist/browser/modules/stream/utils.js +85 -0
  305. package/dist/browser/utils/browser.d.ts +9 -0
  306. package/dist/browser/utils/browser.js +49 -0
  307. package/dist/browser/utils/datetime.d.ts +56 -0
  308. package/dist/browser/utils/datetime.js +493 -0
  309. package/dist/browser/utils/env.d.ts +14 -0
  310. package/dist/browser/utils/env.js +18 -0
  311. package/dist/browser/utils/utils.base.d.ts +49 -0
  312. package/dist/browser/utils/utils.base.js +275 -0
  313. package/dist/browser/utils/utils.browser.d.ts +6 -0
  314. package/dist/browser/utils/utils.browser.js +12 -0
  315. package/dist/browser/utils/utils.d.ts +6 -0
  316. package/dist/browser/utils/utils.js +19 -0
  317. package/dist/browser/utils/uuid.d.ts +11 -0
  318. package/dist/browser/utils/uuid.js +55 -0
  319. package/dist/cjs/index.js +19 -21
  320. package/dist/cjs/modules/archive/byte-queue.js +129 -0
  321. package/dist/cjs/modules/archive/compress.base.js +186 -0
  322. package/dist/cjs/modules/archive/compress.browser.js +98 -0
  323. package/dist/cjs/modules/archive/compress.js +127 -0
  324. package/dist/cjs/modules/archive/crc32.base.js +56 -0
  325. package/dist/cjs/modules/archive/crc32.browser.js +39 -0
  326. package/dist/cjs/modules/archive/crc32.js +128 -0
  327. package/dist/cjs/modules/archive/defaults.js +6 -0
  328. package/dist/cjs/modules/archive/deflate-fallback.js +569 -0
  329. package/dist/cjs/modules/archive/extract.js +114 -0
  330. package/dist/cjs/modules/archive/index.base.js +28 -0
  331. package/dist/cjs/modules/archive/index.browser.js +47 -0
  332. package/dist/cjs/modules/archive/index.js +45 -0
  333. package/dist/cjs/modules/archive/parse.base.js +632 -0
  334. package/dist/cjs/modules/archive/parse.browser.js +570 -0
  335. package/dist/cjs/modules/archive/parse.js +103 -0
  336. package/dist/cjs/modules/archive/streaming-compress.base.js +12 -0
  337. package/dist/cjs/modules/archive/streaming-compress.browser.js +301 -0
  338. package/dist/cjs/modules/archive/streaming-compress.js +73 -0
  339. package/dist/cjs/modules/archive/streaming-zip.js +411 -0
  340. package/dist/cjs/modules/archive/utils/binary.js +75 -0
  341. package/dist/cjs/modules/archive/utils/bytes.js +106 -0
  342. package/dist/cjs/modules/archive/utils/parse-buffer.js +59 -0
  343. package/dist/cjs/modules/archive/utils/text.js +39 -0
  344. package/dist/cjs/modules/archive/utils/timestamps.js +56 -0
  345. package/dist/cjs/modules/archive/utils/zip-extra-fields.js +75 -0
  346. package/dist/cjs/modules/archive/utils/zip-extra.js +74 -0
  347. package/dist/cjs/modules/archive/zip-builder.js +297 -0
  348. package/dist/cjs/modules/archive/zip-constants.js +26 -0
  349. package/dist/cjs/modules/archive/zip-entry-info.js +7 -0
  350. package/dist/cjs/modules/archive/zip-entry-metadata.js +29 -0
  351. package/dist/cjs/modules/archive/zip-parser.js +336 -0
  352. package/dist/cjs/modules/archive/zip-records.js +90 -0
  353. package/dist/cjs/modules/csv/csv-core.js +730 -0
  354. package/dist/cjs/modules/csv/csv-stream.js +711 -0
  355. package/dist/cjs/modules/csv/csv.browser.js +276 -0
  356. package/dist/cjs/modules/csv/csv.js +37 -0
  357. package/dist/cjs/modules/excel/anchor.js +100 -0
  358. package/dist/cjs/modules/excel/cell.js +949 -0
  359. package/dist/cjs/modules/excel/column.js +361 -0
  360. package/dist/cjs/modules/excel/data-validations.js +46 -0
  361. package/dist/cjs/modules/excel/defined-names.js +217 -0
  362. package/dist/cjs/modules/excel/image.js +63 -0
  363. package/dist/cjs/modules/excel/note.js +64 -0
  364. package/dist/cjs/modules/excel/pivot-table.js +239 -0
  365. package/dist/cjs/modules/excel/range.js +283 -0
  366. package/dist/cjs/modules/excel/row.js +444 -0
  367. package/dist/cjs/modules/excel/stream/hyperlink-reader.js +87 -0
  368. package/dist/cjs/modules/excel/stream/sheet-comments-writer.js +104 -0
  369. package/dist/cjs/modules/excel/stream/sheet-rels-writer.js +94 -0
  370. package/dist/cjs/modules/excel/stream/workbook-reader.browser.js +447 -0
  371. package/dist/cjs/modules/excel/stream/workbook-reader.js +57 -0
  372. package/dist/cjs/modules/excel/stream/workbook-writer.browser.js +360 -0
  373. package/dist/cjs/modules/excel/stream/workbook-writer.js +58 -0
  374. package/dist/cjs/modules/excel/stream/worksheet-reader.js +370 -0
  375. package/dist/cjs/modules/excel/stream/worksheet-writer.js +616 -0
  376. package/dist/cjs/modules/excel/table.js +408 -0
  377. package/dist/cjs/modules/excel/utils/cell-format.js +819 -0
  378. package/dist/cjs/modules/excel/utils/cell-matrix.js +183 -0
  379. package/dist/cjs/modules/excel/utils/encryptor.browser.js +49 -0
  380. package/dist/cjs/modules/excel/utils/encryptor.js +41 -0
  381. package/dist/cjs/modules/excel/utils/ooxml-paths.js +260 -0
  382. package/dist/cjs/modules/excel/utils/parse-sax.js +1210 -0
  383. package/dist/cjs/modules/excel/utils/shared-formula.js +38 -0
  384. package/dist/cjs/modules/excel/utils/sheet-utils.js +693 -0
  385. package/dist/cjs/modules/excel/utils/stream-buf.js +455 -0
  386. package/dist/cjs/modules/excel/utils/string-buf.js +78 -0
  387. package/dist/cjs/modules/excel/utils/under-dash.js +175 -0
  388. package/dist/cjs/modules/excel/utils/xml-stream.js +182 -0
  389. package/dist/cjs/modules/excel/workbook.js +317 -0
  390. package/dist/cjs/modules/excel/worksheet.js +927 -0
  391. package/dist/cjs/modules/excel/xlsx/xform/base-xform.js +138 -0
  392. package/dist/cjs/modules/excel/xlsx/xform/book/defined-name-xform.js +127 -0
  393. package/dist/cjs/modules/excel/xlsx/xform/book/sheet-xform.js +33 -0
  394. package/dist/cjs/modules/excel/xlsx/xform/book/workbook-calc-properties-xform.js +24 -0
  395. package/dist/cjs/modules/excel/xlsx/xform/book/workbook-pivot-cache-xform.js +27 -0
  396. package/dist/cjs/modules/excel/xlsx/xform/book/workbook-properties-xform.js +27 -0
  397. package/dist/cjs/modules/excel/xlsx/xform/book/workbook-view-xform.js +49 -0
  398. package/dist/cjs/modules/excel/xlsx/xform/book/workbook-xform.js +237 -0
  399. package/dist/cjs/modules/excel/xlsx/xform/comment/comment-xform.js +79 -0
  400. package/dist/cjs/modules/excel/xlsx/xform/comment/comments-xform.js +75 -0
  401. package/dist/cjs/modules/excel/xlsx/xform/comment/style/vml-position-xform.js +37 -0
  402. package/dist/cjs/modules/excel/xlsx/xform/comment/style/vml-protection-xform.js +33 -0
  403. package/dist/cjs/modules/excel/xlsx/xform/comment/vml-anchor-xform.js +58 -0
  404. package/dist/cjs/modules/excel/xlsx/xform/comment/vml-client-data-xform.js +85 -0
  405. package/dist/cjs/modules/excel/xlsx/xform/comment/vml-notes-xform.js +99 -0
  406. package/dist/cjs/modules/excel/xlsx/xform/comment/vml-shape-xform.js +86 -0
  407. package/dist/cjs/modules/excel/xlsx/xform/comment/vml-textbox-xform.js +63 -0
  408. package/dist/cjs/modules/excel/xlsx/xform/composite-xform.js +51 -0
  409. package/dist/cjs/modules/excel/xlsx/xform/core/app-heading-pairs-xform.js +27 -0
  410. package/dist/cjs/modules/excel/xlsx/xform/core/app-titles-of-parts-xform.js +24 -0
  411. package/dist/cjs/modules/excel/xlsx/xform/core/app-xform.js +86 -0
  412. package/dist/cjs/modules/excel/xlsx/xform/core/content-types-xform.js +125 -0
  413. package/dist/cjs/modules/excel/xlsx/xform/core/core-xform.js +127 -0
  414. package/dist/cjs/modules/excel/xlsx/xform/core/relationship-xform.js +23 -0
  415. package/dist/cjs/modules/excel/xlsx/xform/core/relationships-xform.js +65 -0
  416. package/dist/cjs/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.js +47 -0
  417. package/dist/cjs/modules/excel/xlsx/xform/drawing/blip-fill-xform.js +60 -0
  418. package/dist/cjs/modules/excel/xlsx/xform/drawing/blip-xform.js +43 -0
  419. package/dist/cjs/modules/excel/xlsx/xform/drawing/c-nv-pic-pr-xform.js +35 -0
  420. package/dist/cjs/modules/excel/xlsx/xform/drawing/c-nv-pr-xform.js +62 -0
  421. package/dist/cjs/modules/excel/xlsx/xform/drawing/cell-position-xform.js +71 -0
  422. package/dist/cjs/modules/excel/xlsx/xform/drawing/drawing-xform.js +99 -0
  423. package/dist/cjs/modules/excel/xlsx/xform/drawing/ext-lst-xform.js +40 -0
  424. package/dist/cjs/modules/excel/xlsx/xform/drawing/ext-xform.js +37 -0
  425. package/dist/cjs/modules/excel/xlsx/xform/drawing/hlink-click-xform.js +42 -0
  426. package/dist/cjs/modules/excel/xlsx/xform/drawing/nv-pic-pr-xform.js +59 -0
  427. package/dist/cjs/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.js +55 -0
  428. package/dist/cjs/modules/excel/xlsx/xform/drawing/pic-xform.js +67 -0
  429. package/dist/cjs/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.js +54 -0
  430. package/dist/cjs/modules/excel/xlsx/xform/list-xform.js +92 -0
  431. package/dist/cjs/modules/excel/xlsx/xform/pivot-table/cache-field-xform.js +131 -0
  432. package/dist/cjs/modules/excel/xlsx/xform/pivot-table/cache-field.js +81 -0
  433. package/dist/cjs/modules/excel/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +182 -0
  434. package/dist/cjs/modules/excel/xlsx/xform/pivot-table/pivot-cache-records-xform.js +237 -0
  435. package/dist/cjs/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.js +627 -0
  436. package/dist/cjs/modules/excel/xlsx/xform/sheet/auto-filter-xform.js +37 -0
  437. package/dist/cjs/modules/excel/xlsx/xform/sheet/cell-xform.js +463 -0
  438. package/dist/cjs/modules/excel/xlsx/xform/sheet/cf/cf-rule-xform.js +262 -0
  439. package/dist/cjs/modules/excel/xlsx/xform/sheet/cf/cfvo-xform.js +25 -0
  440. package/dist/cjs/modules/excel/xlsx/xform/sheet/cf/color-scale-xform.js +38 -0
  441. package/dist/cjs/modules/excel/xlsx/xform/sheet/cf/conditional-formatting-xform.js +40 -0
  442. package/dist/cjs/modules/excel/xlsx/xform/sheet/cf/conditional-formattings-xform.js +77 -0
  443. package/dist/cjs/modules/excel/xlsx/xform/sheet/cf/databar-xform.js +42 -0
  444. package/dist/cjs/modules/excel/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +70 -0
  445. package/dist/cjs/modules/excel/xlsx/xform/sheet/cf/formula-xform.js +22 -0
  446. package/dist/cjs/modules/excel/xlsx/xform/sheet/cf/icon-set-xform.js +40 -0
  447. package/dist/cjs/modules/excel/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +25 -0
  448. package/dist/cjs/modules/excel/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +83 -0
  449. package/dist/cjs/modules/excel/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +38 -0
  450. package/dist/cjs/modules/excel/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +51 -0
  451. package/dist/cjs/modules/excel/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +43 -0
  452. package/dist/cjs/modules/excel/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +72 -0
  453. package/dist/cjs/modules/excel/xlsx/xform/sheet/cf-ext/f-ext-xform.js +22 -0
  454. package/dist/cjs/modules/excel/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +63 -0
  455. package/dist/cjs/modules/excel/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +22 -0
  456. package/dist/cjs/modules/excel/xlsx/xform/sheet/col-breaks-xform.js +38 -0
  457. package/dist/cjs/modules/excel/xlsx/xform/sheet/col-xform.js +78 -0
  458. package/dist/cjs/modules/excel/xlsx/xform/sheet/data-validations-xform.js +272 -0
  459. package/dist/cjs/modules/excel/xlsx/xform/sheet/dimension-xform.js +26 -0
  460. package/dist/cjs/modules/excel/xlsx/xform/sheet/drawing-xform.js +30 -0
  461. package/dist/cjs/modules/excel/xlsx/xform/sheet/ext-lst-xform.js +69 -0
  462. package/dist/cjs/modules/excel/xlsx/xform/sheet/header-footer-xform.js +127 -0
  463. package/dist/cjs/modules/excel/xlsx/xform/sheet/hyperlink-xform.js +50 -0
  464. package/dist/cjs/modules/excel/xlsx/xform/sheet/merge-cell-xform.js +24 -0
  465. package/dist/cjs/modules/excel/xlsx/xform/sheet/merges.js +53 -0
  466. package/dist/cjs/modules/excel/xlsx/xform/sheet/outline-properties-xform.js +39 -0
  467. package/dist/cjs/modules/excel/xlsx/xform/sheet/page-breaks-xform.js +36 -0
  468. package/dist/cjs/modules/excel/xlsx/xform/sheet/page-margins-xform.js +45 -0
  469. package/dist/cjs/modules/excel/xlsx/xform/sheet/page-setup-properties-xform.js +32 -0
  470. package/dist/cjs/modules/excel/xlsx/xform/sheet/page-setup-xform.js +99 -0
  471. package/dist/cjs/modules/excel/xlsx/xform/sheet/picture-xform.js +30 -0
  472. package/dist/cjs/modules/excel/xlsx/xform/sheet/print-options-xform.js +44 -0
  473. package/dist/cjs/modules/excel/xlsx/xform/sheet/row-breaks-xform.js +32 -0
  474. package/dist/cjs/modules/excel/xlsx/xform/sheet/row-xform.js +155 -0
  475. package/dist/cjs/modules/excel/xlsx/xform/sheet/sheet-format-properties-xform.js +52 -0
  476. package/dist/cjs/modules/excel/xlsx/xform/sheet/sheet-properties-xform.js +85 -0
  477. package/dist/cjs/modules/excel/xlsx/xform/sheet/sheet-protection-xform.js +83 -0
  478. package/dist/cjs/modules/excel/xlsx/xform/sheet/sheet-view-xform.js +196 -0
  479. package/dist/cjs/modules/excel/xlsx/xform/sheet/table-part-xform.js +30 -0
  480. package/dist/cjs/modules/excel/xlsx/xform/sheet/worksheet-xform.js +521 -0
  481. package/dist/cjs/modules/excel/xlsx/xform/simple/boolean-xform.js +27 -0
  482. package/dist/cjs/modules/excel/xlsx/xform/simple/date-xform.js +68 -0
  483. package/dist/cjs/modules/excel/xlsx/xform/simple/float-xform.js +50 -0
  484. package/dist/cjs/modules/excel/xlsx/xform/simple/integer-xform.js +55 -0
  485. package/dist/cjs/modules/excel/xlsx/xform/simple/string-xform.js +50 -0
  486. package/dist/cjs/modules/excel/xlsx/xform/static-xform.js +58 -0
  487. package/dist/cjs/modules/excel/xlsx/xform/strings/phonetic-text-xform.js +89 -0
  488. package/dist/cjs/modules/excel/xlsx/xform/strings/rich-text-xform.js +80 -0
  489. package/dist/cjs/modules/excel/xlsx/xform/strings/shared-string-xform.js +93 -0
  490. package/dist/cjs/modules/excel/xlsx/xform/strings/shared-strings-xform.js +112 -0
  491. package/dist/cjs/modules/excel/xlsx/xform/strings/text-xform.js +39 -0
  492. package/dist/cjs/modules/excel/xlsx/xform/style/alignment-xform.js +155 -0
  493. package/dist/cjs/modules/excel/xlsx/xform/style/border-xform.js +191 -0
  494. package/dist/cjs/modules/excel/xlsx/xform/style/color-xform.js +64 -0
  495. package/dist/cjs/modules/excel/xlsx/xform/style/dxf-xform.js +95 -0
  496. package/dist/cjs/modules/excel/xlsx/xform/style/fill-xform.js +315 -0
  497. package/dist/cjs/modules/excel/xlsx/xform/style/font-xform.js +103 -0
  498. package/dist/cjs/modules/excel/xlsx/xform/style/numfmt-xform.js +53 -0
  499. package/dist/cjs/modules/excel/xlsx/xform/style/protection-xform.js +52 -0
  500. package/dist/cjs/modules/excel/xlsx/xform/style/style-xform.js +111 -0
  501. package/dist/cjs/modules/excel/xlsx/xform/style/styles-xform.js +487 -0
  502. package/dist/cjs/modules/excel/xlsx/xform/style/underline-xform.js +41 -0
  503. package/dist/cjs/modules/excel/xlsx/xform/table/auto-filter-xform.js +73 -0
  504. package/dist/cjs/modules/excel/xlsx/xform/table/custom-filter-xform.js +34 -0
  505. package/dist/cjs/modules/excel/xlsx/xform/table/filter-column-xform.js +90 -0
  506. package/dist/cjs/modules/excel/xlsx/xform/table/filter-xform.js +32 -0
  507. package/dist/cjs/modules/excel/xlsx/xform/table/table-column-xform.js +44 -0
  508. package/dist/cjs/modules/excel/xlsx/xform/table/table-style-info-xform.js +47 -0
  509. package/dist/cjs/modules/excel/xlsx/xform/table/table-xform.js +129 -0
  510. package/dist/cjs/modules/excel/xlsx/xlsx.browser.js +1155 -0
  511. package/dist/cjs/modules/excel/xlsx/xlsx.js +245 -0
  512. package/dist/cjs/modules/stream/base-transform.js +164 -0
  513. package/dist/cjs/modules/stream/buffered-stream.js +283 -0
  514. package/dist/cjs/modules/stream/chunked-builder.js +170 -0
  515. package/dist/cjs/modules/stream/event-emitter.js +243 -0
  516. package/dist/cjs/modules/stream/index.browser.js +97 -0
  517. package/dist/cjs/modules/stream/index.js +124 -0
  518. package/dist/cjs/modules/stream/pull-stream.js +208 -0
  519. package/dist/cjs/modules/stream/shared.js +168 -0
  520. package/dist/cjs/modules/stream/streams.browser.js +3348 -0
  521. package/dist/cjs/modules/stream/streams.js +988 -0
  522. package/dist/cjs/modules/stream/types.js +8 -0
  523. package/dist/cjs/modules/stream/utils.js +96 -0
  524. package/dist/cjs/utils/browser.js +55 -0
  525. package/dist/cjs/utils/env.js +22 -0
  526. package/dist/cjs/utils/utils.base.js +139 -2
  527. package/dist/cjs/utils/utils.browser.js +6 -59
  528. package/dist/cjs/utils/utils.js +13 -89
  529. package/dist/cjs/utils/uuid.js +58 -0
  530. package/dist/esm/index.browser.js +22 -18
  531. package/dist/esm/index.js +18 -19
  532. package/dist/esm/modules/archive/byte-queue.js +125 -0
  533. package/dist/esm/modules/archive/compress.base.js +173 -0
  534. package/dist/esm/modules/archive/compress.browser.js +93 -0
  535. package/dist/esm/modules/archive/compress.js +86 -0
  536. package/dist/esm/modules/archive/crc32.base.js +51 -0
  537. package/dist/esm/modules/archive/crc32.browser.js +32 -0
  538. package/dist/esm/modules/archive/crc32.js +97 -0
  539. package/dist/esm/modules/archive/defaults.js +3 -0
  540. package/dist/esm/modules/archive/deflate-fallback.js +564 -0
  541. package/dist/esm/modules/archive/extract.js +106 -0
  542. package/dist/esm/modules/archive/index.base.js +13 -0
  543. package/dist/esm/modules/archive/index.browser.js +17 -0
  544. package/dist/esm/modules/archive/index.js +15 -0
  545. package/dist/esm/modules/archive/parse.base.js +610 -0
  546. package/dist/esm/modules/archive/parse.browser.js +564 -0
  547. package/dist/esm/modules/archive/parse.js +94 -0
  548. package/dist/esm/modules/archive/streaming-compress.base.js +9 -0
  549. package/dist/esm/modules/archive/streaming-compress.browser.js +296 -0
  550. package/dist/esm/modules/archive/streaming-compress.js +68 -0
  551. package/dist/esm/modules/archive/streaming-zip.js +407 -0
  552. package/dist/esm/modules/archive/utils/binary.js +69 -0
  553. package/dist/esm/modules/archive/utils/bytes.js +101 -0
  554. package/dist/esm/modules/archive/utils/parse-buffer.js +55 -0
  555. package/dist/esm/modules/archive/utils/text.js +33 -0
  556. package/dist/esm/modules/archive/utils/timestamps.js +48 -0
  557. package/dist/esm/modules/archive/utils/zip-extra-fields.js +72 -0
  558. package/dist/esm/modules/archive/utils/zip-extra.js +68 -0
  559. package/dist/esm/modules/archive/zip-builder.js +292 -0
  560. package/dist/esm/modules/archive/zip-constants.js +23 -0
  561. package/dist/esm/modules/archive/zip-entry-info.js +6 -0
  562. package/dist/esm/modules/archive/zip-entry-metadata.js +24 -0
  563. package/dist/esm/modules/archive/zip-parser.js +332 -0
  564. package/dist/esm/modules/archive/zip-records.js +84 -0
  565. package/dist/esm/modules/csv/csv-core.js +723 -0
  566. package/dist/esm/modules/csv/csv-number.js +20 -0
  567. package/dist/esm/modules/csv/csv-stream.js +703 -0
  568. package/dist/esm/modules/csv/csv.browser.js +265 -0
  569. package/dist/esm/modules/csv/csv.js +29 -0
  570. package/dist/esm/modules/excel/anchor.js +97 -0
  571. package/dist/esm/modules/excel/cell.js +946 -0
  572. package/dist/esm/modules/excel/column.js +358 -0
  573. package/dist/esm/modules/excel/data-validations.js +43 -0
  574. package/dist/esm/modules/excel/defined-names.js +214 -0
  575. package/dist/esm/modules/excel/enums.js +58 -0
  576. package/dist/esm/modules/excel/image.js +60 -0
  577. package/dist/esm/modules/excel/note.js +61 -0
  578. package/dist/esm/modules/excel/pivot-table.js +237 -0
  579. package/dist/esm/modules/excel/range.js +280 -0
  580. package/dist/esm/modules/excel/row.js +441 -0
  581. package/dist/esm/modules/excel/stream/hyperlink-reader.js +84 -0
  582. package/dist/esm/modules/excel/stream/sheet-comments-writer.js +101 -0
  583. package/dist/esm/modules/excel/stream/sheet-rels-writer.js +91 -0
  584. package/dist/esm/modules/excel/stream/workbook-reader.browser.js +443 -0
  585. package/dist/esm/modules/excel/stream/workbook-reader.js +50 -0
  586. package/dist/esm/modules/excel/stream/workbook-writer.browser.js +356 -0
  587. package/dist/esm/modules/excel/stream/workbook-writer.js +52 -0
  588. package/dist/esm/modules/excel/stream/worksheet-reader.js +367 -0
  589. package/dist/esm/modules/excel/stream/worksheet-writer.js +613 -0
  590. package/dist/esm/modules/excel/table.js +405 -0
  591. package/dist/esm/modules/excel/types.js +22 -0
  592. package/dist/esm/modules/excel/utils/cell-format.js +814 -0
  593. package/dist/esm/modules/excel/utils/cell-matrix.js +180 -0
  594. package/dist/esm/modules/excel/utils/col-cache.js +278 -0
  595. package/dist/esm/modules/excel/utils/copy-style.js +43 -0
  596. package/dist/esm/modules/excel/utils/encryptor.browser.js +46 -0
  597. package/dist/esm/modules/excel/utils/encryptor.js +35 -0
  598. package/dist/esm/modules/excel/utils/iterate-stream.js +55 -0
  599. package/dist/esm/modules/excel/utils/ooxml-paths.js +209 -0
  600. package/dist/esm/modules/excel/utils/parse-sax.js +1206 -0
  601. package/dist/esm/modules/excel/utils/shared-formula.js +36 -0
  602. package/dist/esm/modules/excel/utils/shared-strings.js +29 -0
  603. package/dist/esm/modules/excel/utils/sheet-utils.js +674 -0
  604. package/dist/esm/modules/excel/utils/stream-buf.js +452 -0
  605. package/dist/esm/modules/excel/utils/string-buf.js +75 -0
  606. package/dist/esm/modules/excel/utils/under-dash.js +166 -0
  607. package/dist/esm/modules/excel/utils/xml-stream.js +179 -0
  608. package/dist/esm/modules/excel/workbook.js +314 -0
  609. package/dist/esm/modules/excel/worksheet.js +924 -0
  610. package/dist/esm/modules/excel/xlsx/defaultnumformats.js +149 -0
  611. package/dist/esm/modules/excel/xlsx/rel-type.js +19 -0
  612. package/dist/esm/modules/excel/xlsx/xform/base-xform.js +135 -0
  613. package/dist/esm/modules/excel/xlsx/xform/book/defined-name-xform.js +124 -0
  614. package/dist/esm/modules/excel/xlsx/xform/book/sheet-xform.js +30 -0
  615. package/dist/esm/modules/excel/xlsx/xform/book/workbook-calc-properties-xform.js +21 -0
  616. package/dist/esm/modules/excel/xlsx/xform/book/workbook-pivot-cache-xform.js +24 -0
  617. package/dist/esm/modules/excel/xlsx/xform/book/workbook-properties-xform.js +24 -0
  618. package/dist/esm/modules/excel/xlsx/xform/book/workbook-view-xform.js +46 -0
  619. package/dist/esm/modules/excel/xlsx/xform/book/workbook-xform.js +234 -0
  620. package/dist/esm/modules/excel/xlsx/xform/comment/comment-xform.js +76 -0
  621. package/dist/esm/modules/excel/xlsx/xform/comment/comments-xform.js +72 -0
  622. package/dist/esm/modules/excel/xlsx/xform/comment/style/vml-position-xform.js +34 -0
  623. package/dist/esm/modules/excel/xlsx/xform/comment/style/vml-protection-xform.js +30 -0
  624. package/dist/esm/modules/excel/xlsx/xform/comment/vml-anchor-xform.js +55 -0
  625. package/dist/esm/modules/excel/xlsx/xform/comment/vml-client-data-xform.js +82 -0
  626. package/dist/esm/modules/excel/xlsx/xform/comment/vml-notes-xform.js +96 -0
  627. package/dist/esm/modules/excel/xlsx/xform/comment/vml-shape-xform.js +83 -0
  628. package/dist/esm/modules/excel/xlsx/xform/comment/vml-textbox-xform.js +60 -0
  629. package/dist/esm/modules/excel/xlsx/xform/composite-xform.js +48 -0
  630. package/dist/esm/modules/excel/xlsx/xform/core/app-heading-pairs-xform.js +24 -0
  631. package/dist/esm/modules/excel/xlsx/xform/core/app-titles-of-parts-xform.js +21 -0
  632. package/dist/esm/modules/excel/xlsx/xform/core/app-xform.js +83 -0
  633. package/dist/esm/modules/excel/xlsx/xform/core/content-types-xform.js +122 -0
  634. package/dist/esm/modules/excel/xlsx/xform/core/core-xform.js +124 -0
  635. package/dist/esm/modules/excel/xlsx/xform/core/relationship-xform.js +20 -0
  636. package/dist/esm/modules/excel/xlsx/xform/core/relationships-xform.js +62 -0
  637. package/dist/esm/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.js +44 -0
  638. package/dist/esm/modules/excel/xlsx/xform/drawing/blip-fill-xform.js +57 -0
  639. package/dist/esm/modules/excel/xlsx/xform/drawing/blip-xform.js +40 -0
  640. package/dist/esm/modules/excel/xlsx/xform/drawing/c-nv-pic-pr-xform.js +32 -0
  641. package/dist/esm/modules/excel/xlsx/xform/drawing/c-nv-pr-xform.js +59 -0
  642. package/dist/esm/modules/excel/xlsx/xform/drawing/cell-position-xform.js +68 -0
  643. package/dist/esm/modules/excel/xlsx/xform/drawing/drawing-xform.js +96 -0
  644. package/dist/esm/modules/excel/xlsx/xform/drawing/ext-lst-xform.js +37 -0
  645. package/dist/esm/modules/excel/xlsx/xform/drawing/ext-xform.js +34 -0
  646. package/dist/esm/modules/excel/xlsx/xform/drawing/hlink-click-xform.js +39 -0
  647. package/dist/esm/modules/excel/xlsx/xform/drawing/nv-pic-pr-xform.js +56 -0
  648. package/dist/esm/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.js +52 -0
  649. package/dist/esm/modules/excel/xlsx/xform/drawing/pic-xform.js +64 -0
  650. package/dist/esm/modules/excel/xlsx/xform/drawing/sp-pr.js +17 -0
  651. package/dist/esm/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.js +51 -0
  652. package/dist/esm/modules/excel/xlsx/xform/list-xform.js +89 -0
  653. package/dist/esm/modules/excel/xlsx/xform/pivot-table/cache-field-xform.js +128 -0
  654. package/dist/esm/modules/excel/xlsx/xform/pivot-table/cache-field.js +78 -0
  655. package/dist/esm/modules/excel/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +179 -0
  656. package/dist/esm/modules/excel/xlsx/xform/pivot-table/pivot-cache-records-xform.js +234 -0
  657. package/dist/esm/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.js +624 -0
  658. package/dist/esm/modules/excel/xlsx/xform/sheet/auto-filter-xform.js +34 -0
  659. package/dist/esm/modules/excel/xlsx/xform/sheet/cell-xform.js +460 -0
  660. package/dist/esm/modules/excel/xlsx/xform/sheet/cf/cf-rule-xform.js +259 -0
  661. package/dist/esm/modules/excel/xlsx/xform/sheet/cf/cfvo-xform.js +22 -0
  662. package/dist/esm/modules/excel/xlsx/xform/sheet/cf/color-scale-xform.js +35 -0
  663. package/dist/esm/modules/excel/xlsx/xform/sheet/cf/conditional-formatting-xform.js +37 -0
  664. package/dist/esm/modules/excel/xlsx/xform/sheet/cf/conditional-formattings-xform.js +74 -0
  665. package/dist/esm/modules/excel/xlsx/xform/sheet/cf/databar-xform.js +39 -0
  666. package/dist/esm/modules/excel/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +67 -0
  667. package/dist/esm/modules/excel/xlsx/xform/sheet/cf/formula-xform.js +19 -0
  668. package/dist/esm/modules/excel/xlsx/xform/sheet/cf/icon-set-xform.js +37 -0
  669. package/dist/esm/modules/excel/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +22 -0
  670. package/dist/esm/modules/excel/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +80 -0
  671. package/dist/esm/modules/excel/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +35 -0
  672. package/dist/esm/modules/excel/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +48 -0
  673. package/dist/esm/modules/excel/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +40 -0
  674. package/dist/esm/modules/excel/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +69 -0
  675. package/dist/esm/modules/excel/xlsx/xform/sheet/cf-ext/f-ext-xform.js +19 -0
  676. package/dist/esm/modules/excel/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +60 -0
  677. package/dist/esm/modules/excel/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +19 -0
  678. package/dist/esm/modules/excel/xlsx/xform/sheet/col-breaks-xform.js +35 -0
  679. package/dist/esm/modules/excel/xlsx/xform/sheet/col-xform.js +75 -0
  680. package/dist/esm/modules/excel/xlsx/xform/sheet/data-validations-xform.js +269 -0
  681. package/dist/esm/modules/excel/xlsx/xform/sheet/dimension-xform.js +23 -0
  682. package/dist/esm/modules/excel/xlsx/xform/sheet/drawing-xform.js +27 -0
  683. package/dist/esm/modules/excel/xlsx/xform/sheet/ext-lst-xform.js +66 -0
  684. package/dist/esm/modules/excel/xlsx/xform/sheet/header-footer-xform.js +124 -0
  685. package/dist/esm/modules/excel/xlsx/xform/sheet/hyperlink-xform.js +47 -0
  686. package/dist/esm/modules/excel/xlsx/xform/sheet/merge-cell-xform.js +21 -0
  687. package/dist/esm/modules/excel/xlsx/xform/sheet/merges.js +50 -0
  688. package/dist/esm/modules/excel/xlsx/xform/sheet/outline-properties-xform.js +36 -0
  689. package/dist/esm/modules/excel/xlsx/xform/sheet/page-breaks-xform.js +33 -0
  690. package/dist/esm/modules/excel/xlsx/xform/sheet/page-margins-xform.js +42 -0
  691. package/dist/esm/modules/excel/xlsx/xform/sheet/page-setup-properties-xform.js +29 -0
  692. package/dist/esm/modules/excel/xlsx/xform/sheet/page-setup-xform.js +96 -0
  693. package/dist/esm/modules/excel/xlsx/xform/sheet/picture-xform.js +27 -0
  694. package/dist/esm/modules/excel/xlsx/xform/sheet/print-options-xform.js +41 -0
  695. package/dist/esm/modules/excel/xlsx/xform/sheet/row-breaks-xform.js +29 -0
  696. package/dist/esm/modules/excel/xlsx/xform/sheet/row-xform.js +152 -0
  697. package/dist/esm/modules/excel/xlsx/xform/sheet/sheet-format-properties-xform.js +49 -0
  698. package/dist/esm/modules/excel/xlsx/xform/sheet/sheet-properties-xform.js +82 -0
  699. package/dist/esm/modules/excel/xlsx/xform/sheet/sheet-protection-xform.js +80 -0
  700. package/dist/esm/modules/excel/xlsx/xform/sheet/sheet-view-xform.js +193 -0
  701. package/dist/esm/modules/excel/xlsx/xform/sheet/table-part-xform.js +27 -0
  702. package/dist/esm/modules/excel/xlsx/xform/sheet/worksheet-xform.js +518 -0
  703. package/dist/esm/modules/excel/xlsx/xform/simple/boolean-xform.js +24 -0
  704. package/dist/esm/modules/excel/xlsx/xform/simple/date-xform.js +65 -0
  705. package/dist/esm/modules/excel/xlsx/xform/simple/float-xform.js +47 -0
  706. package/dist/esm/modules/excel/xlsx/xform/simple/integer-xform.js +52 -0
  707. package/dist/esm/modules/excel/xlsx/xform/simple/string-xform.js +47 -0
  708. package/dist/esm/modules/excel/xlsx/xform/static-xform.js +55 -0
  709. package/dist/esm/modules/excel/xlsx/xform/strings/phonetic-text-xform.js +86 -0
  710. package/dist/esm/modules/excel/xlsx/xform/strings/rich-text-xform.js +77 -0
  711. package/dist/esm/modules/excel/xlsx/xform/strings/shared-string-xform.js +90 -0
  712. package/dist/esm/modules/excel/xlsx/xform/strings/shared-strings-xform.js +109 -0
  713. package/dist/esm/modules/excel/xlsx/xform/strings/text-xform.js +36 -0
  714. package/dist/esm/modules/excel/xlsx/xform/style/alignment-xform.js +152 -0
  715. package/dist/esm/modules/excel/xlsx/xform/style/border-xform.js +188 -0
  716. package/dist/esm/modules/excel/xlsx/xform/style/color-xform.js +61 -0
  717. package/dist/esm/modules/excel/xlsx/xform/style/dxf-xform.js +92 -0
  718. package/dist/esm/modules/excel/xlsx/xform/style/fill-xform.js +312 -0
  719. package/dist/esm/modules/excel/xlsx/xform/style/font-xform.js +100 -0
  720. package/dist/esm/modules/excel/xlsx/xform/style/numfmt-xform.js +50 -0
  721. package/dist/esm/modules/excel/xlsx/xform/style/protection-xform.js +49 -0
  722. package/dist/esm/modules/excel/xlsx/xform/style/style-xform.js +108 -0
  723. package/dist/esm/modules/excel/xlsx/xform/style/styles-xform.js +484 -0
  724. package/dist/esm/modules/excel/xlsx/xform/style/underline-xform.js +38 -0
  725. package/dist/esm/modules/excel/xlsx/xform/table/auto-filter-xform.js +70 -0
  726. package/dist/esm/modules/excel/xlsx/xform/table/custom-filter-xform.js +31 -0
  727. package/dist/esm/modules/excel/xlsx/xform/table/filter-column-xform.js +87 -0
  728. package/dist/esm/modules/excel/xlsx/xform/table/filter-xform.js +29 -0
  729. package/dist/esm/modules/excel/xlsx/xform/table/table-column-xform.js +41 -0
  730. package/dist/esm/modules/excel/xlsx/xform/table/table-style-info-xform.js +44 -0
  731. package/dist/esm/modules/excel/xlsx/xform/table/table-xform.js +126 -0
  732. package/dist/esm/modules/excel/xlsx/xlsx.browser.js +1152 -0
  733. package/dist/esm/modules/excel/xlsx/xlsx.js +239 -0
  734. package/dist/esm/modules/excel/xlsx/xml/theme1.js +1 -0
  735. package/dist/esm/modules/stream/base-transform.js +160 -0
  736. package/dist/esm/modules/stream/buffered-stream.js +277 -0
  737. package/dist/esm/modules/stream/chunked-builder.js +165 -0
  738. package/dist/esm/modules/stream/event-emitter.js +239 -0
  739. package/dist/esm/modules/stream/index.browser.js +25 -0
  740. package/dist/esm/modules/stream/index.js +52 -0
  741. package/dist/esm/modules/stream/pull-stream.js +204 -0
  742. package/dist/esm/modules/stream/shared.js +156 -0
  743. package/dist/esm/modules/stream/streams.browser.js +3297 -0
  744. package/dist/esm/modules/stream/streams.js +940 -0
  745. package/dist/esm/modules/stream/types.js +7 -0
  746. package/dist/esm/modules/stream/utils.js +85 -0
  747. package/dist/esm/utils/browser.js +49 -0
  748. package/dist/esm/utils/env.js +18 -0
  749. package/dist/esm/utils/utils.base.js +135 -2
  750. package/dist/esm/utils/utils.browser.js +1 -57
  751. package/dist/esm/utils/utils.js +8 -87
  752. package/dist/esm/utils/uuid.js +55 -0
  753. package/dist/iife/excelts.iife.js +24666 -0
  754. package/dist/iife/excelts.iife.js.map +1 -0
  755. package/dist/iife/excelts.iife.min.js +148 -0
  756. package/dist/types/index.browser.d.ts +21 -15
  757. package/dist/types/index.d.ts +23 -24
  758. package/dist/types/modules/archive/byte-queue.d.ts +18 -0
  759. package/dist/types/modules/archive/compress.base.d.ts +98 -0
  760. package/dist/types/modules/archive/compress.browser.d.ts +57 -0
  761. package/dist/types/modules/archive/compress.d.ts +44 -0
  762. package/dist/types/modules/archive/crc32.base.d.ts +25 -0
  763. package/dist/types/modules/archive/crc32.browser.d.ts +30 -0
  764. package/dist/types/modules/archive/crc32.d.ts +59 -0
  765. package/dist/types/modules/archive/defaults.d.ts +4 -0
  766. package/dist/types/modules/archive/deflate-fallback.d.ts +39 -0
  767. package/dist/types/modules/archive/index.base.d.ts +11 -0
  768. package/dist/types/modules/archive/index.browser.d.ts +11 -0
  769. package/dist/types/modules/archive/index.d.ts +11 -0
  770. package/dist/types/modules/archive/parse.base.d.ts +198 -0
  771. package/dist/types/modules/archive/parse.browser.d.ts +22 -0
  772. package/dist/types/modules/archive/parse.d.ts +16 -0
  773. package/dist/types/modules/archive/streaming-compress.base.d.ts +36 -0
  774. package/dist/types/modules/archive/streaming-compress.browser.d.ts +26 -0
  775. package/dist/types/modules/archive/streaming-compress.d.ts +22 -0
  776. package/dist/types/modules/archive/streaming-zip.d.ts +120 -0
  777. package/dist/types/modules/archive/utils/binary.d.ts +24 -0
  778. package/dist/types/modules/archive/utils/bytes.d.ts +7 -0
  779. package/dist/types/modules/archive/utils/parse-buffer.d.ts +18 -0
  780. package/dist/types/modules/archive/utils/text.d.ts +20 -0
  781. package/dist/types/modules/archive/utils/timestamps.d.ts +28 -0
  782. package/dist/types/modules/archive/utils/zip-extra-fields.d.ts +19 -0
  783. package/dist/types/modules/archive/utils/zip-extra.d.ts +18 -0
  784. package/dist/types/modules/archive/zip-builder.d.ts +117 -0
  785. package/dist/types/modules/archive/zip-constants.d.ts +18 -0
  786. package/dist/types/modules/archive/zip-entry-info.d.ts +29 -0
  787. package/dist/types/modules/archive/zip-entry-metadata.d.ts +23 -0
  788. package/dist/types/modules/archive/zip-parser.d.ts +62 -0
  789. package/dist/types/modules/archive/zip-records.d.ts +43 -0
  790. package/dist/types/modules/csv/csv-core.d.ts +215 -0
  791. package/dist/types/modules/csv/csv-number.d.ts +3 -0
  792. package/dist/types/modules/csv/csv-stream.d.ts +121 -0
  793. package/dist/types/modules/csv/csv.browser.d.ts +60 -0
  794. package/dist/types/modules/csv/csv.d.ts +14 -0
  795. package/dist/types/modules/excel/cell.d.ts +138 -0
  796. package/dist/types/modules/excel/column.d.ts +122 -0
  797. package/dist/types/modules/excel/data-validations.d.ts +11 -0
  798. package/dist/types/modules/excel/defined-names.d.ts +37 -0
  799. package/dist/types/modules/excel/enums.d.ts +62 -0
  800. package/dist/types/modules/excel/note.d.ts +29 -0
  801. package/dist/types/modules/excel/range.d.ts +62 -0
  802. package/dist/types/modules/excel/row.d.ts +127 -0
  803. package/dist/types/modules/excel/stream/hyperlink-reader.d.ts +33 -0
  804. package/dist/types/modules/excel/stream/sheet-comments-writer.d.ts +26 -0
  805. package/dist/types/modules/excel/stream/sheet-rels-writer.d.ts +45 -0
  806. package/dist/types/modules/excel/stream/workbook-reader.browser.d.ts +169 -0
  807. package/dist/types/modules/excel/stream/workbook-reader.d.ts +24 -0
  808. package/dist/types/modules/excel/stream/workbook-writer.browser.d.ts +147 -0
  809. package/dist/types/modules/excel/stream/workbook-writer.d.ts +31 -0
  810. package/dist/types/modules/excel/stream/worksheet-reader.d.ts +61 -0
  811. package/dist/types/modules/excel/stream/worksheet-writer.d.ts +140 -0
  812. package/dist/types/modules/excel/table.d.ts +81 -0
  813. package/dist/types/modules/excel/types.d.ts +518 -0
  814. package/dist/types/modules/excel/utils/cell-format.d.ts +32 -0
  815. package/dist/types/modules/excel/utils/cell-matrix.d.ts +37 -0
  816. package/dist/types/modules/excel/utils/copy-style.d.ts +5 -0
  817. package/dist/types/modules/excel/utils/encryptor.browser.d.ts +19 -0
  818. package/dist/types/modules/excel/utils/encryptor.d.ts +9 -0
  819. package/dist/types/modules/excel/utils/iterate-stream.d.ts +14 -0
  820. package/dist/types/modules/excel/utils/ooxml-paths.d.ts +64 -0
  821. package/dist/types/modules/excel/utils/parse-sax.d.ts +113 -0
  822. package/dist/types/modules/excel/utils/shared-formula.d.ts +2 -0
  823. package/dist/types/modules/excel/utils/shared-strings.d.ts +12 -0
  824. package/dist/types/modules/excel/utils/sheet-utils.d.ts +190 -0
  825. package/dist/types/modules/excel/utils/stream-buf.d.ts +126 -0
  826. package/dist/types/modules/excel/utils/string-buf.d.ts +29 -0
  827. package/dist/types/modules/excel/utils/under-dash.d.ts +7 -0
  828. package/dist/types/modules/excel/utils/xml-stream.d.ts +34 -0
  829. package/dist/types/modules/excel/workbook.d.ts +195 -0
  830. package/dist/types/modules/excel/worksheet.d.ts +333 -0
  831. package/dist/types/modules/excel/xlsx/defaultnumformats.d.ts +12 -0
  832. package/dist/types/modules/excel/xlsx/rel-type.d.ts +19 -0
  833. package/dist/types/modules/excel/xlsx/xform/drawing/sp-pr.d.ts +32 -0
  834. package/dist/types/modules/excel/xlsx/xform/pivot-table/cache-field.d.ts +15 -0
  835. package/dist/types/modules/excel/xlsx/xform/pivot-table/pivot-cache-definition-xform.d.ts +60 -0
  836. package/dist/types/modules/excel/xlsx/xform/pivot-table/pivot-cache-records-xform.d.ts +73 -0
  837. package/dist/types/modules/excel/xlsx/xform/sheet/merges.d.ts +14 -0
  838. package/dist/types/modules/excel/xlsx/xlsx.browser.d.ts +208 -0
  839. package/dist/types/modules/excel/xlsx/xlsx.d.ts +24 -0
  840. package/dist/types/modules/excel/xlsx/xml/theme1.d.ts +1 -0
  841. package/dist/types/modules/stream/base-transform.d.ts +68 -0
  842. package/dist/types/modules/stream/buffered-stream.d.ts +94 -0
  843. package/dist/types/modules/stream/chunked-builder.d.ts +97 -0
  844. package/dist/types/modules/stream/event-emitter.d.ts +30 -0
  845. package/dist/types/modules/stream/index.browser.d.ts +22 -0
  846. package/dist/types/modules/stream/index.d.ts +49 -0
  847. package/dist/types/modules/stream/pull-stream.d.ts +67 -0
  848. package/dist/types/modules/stream/shared.d.ts +54 -0
  849. package/dist/types/modules/stream/streams.browser.d.ts +936 -0
  850. package/dist/types/modules/stream/streams.d.ts +282 -0
  851. package/dist/types/modules/stream/types.d.ts +238 -0
  852. package/dist/types/modules/stream/utils.d.ts +24 -0
  853. package/dist/types/utils/browser.d.ts +9 -0
  854. package/dist/types/utils/env.d.ts +14 -0
  855. package/dist/types/utils/utils.base.d.ts +21 -1
  856. package/dist/types/utils/utils.browser.d.ts +1 -24
  857. package/dist/types/utils/utils.d.ts +1 -24
  858. package/dist/types/utils/uuid.d.ts +11 -0
  859. package/package.json +24 -26
  860. package/dist/browser/excelts.esm.js +0 -18622
  861. package/dist/browser/excelts.esm.js.map +0 -1
  862. package/dist/browser/excelts.esm.min.js +0 -134
  863. package/dist/browser/excelts.iife.js +0 -18662
  864. package/dist/browser/excelts.iife.js.map +0 -1
  865. package/dist/browser/excelts.iife.min.js +0 -134
  866. package/dist/cjs/csv/csv-core.js +0 -704
  867. package/dist/cjs/csv/csv-stream.js +0 -648
  868. package/dist/cjs/csv/csv.base.js +0 -141
  869. package/dist/cjs/csv/csv.browser.js +0 -68
  870. package/dist/cjs/csv/csv.js +0 -249
  871. package/dist/cjs/doc/anchor.js +0 -100
  872. package/dist/cjs/doc/cell.js +0 -949
  873. package/dist/cjs/doc/column.js +0 -354
  874. package/dist/cjs/doc/data-validations.js +0 -46
  875. package/dist/cjs/doc/defined-names.js +0 -217
  876. package/dist/cjs/doc/image.js +0 -63
  877. package/dist/cjs/doc/modelcontainer.js +0 -16
  878. package/dist/cjs/doc/note.js +0 -64
  879. package/dist/cjs/doc/pivot-table.js +0 -239
  880. package/dist/cjs/doc/range.js +0 -283
  881. package/dist/cjs/doc/row.js +0 -444
  882. package/dist/cjs/doc/table.js +0 -408
  883. package/dist/cjs/doc/workbook.base.js +0 -211
  884. package/dist/cjs/doc/workbook.browser.js +0 -62
  885. package/dist/cjs/doc/workbook.js +0 -96
  886. package/dist/cjs/doc/worksheet.js +0 -931
  887. package/dist/cjs/local.js +0 -1
  888. package/dist/cjs/stream/xlsx/hyperlink-reader.js +0 -82
  889. package/dist/cjs/stream/xlsx/sheet-comments-writer.js +0 -103
  890. package/dist/cjs/stream/xlsx/sheet-rels-writer.js +0 -93
  891. package/dist/cjs/stream/xlsx/workbook-reader.js +0 -359
  892. package/dist/cjs/stream/xlsx/workbook-writer.js +0 -387
  893. package/dist/cjs/stream/xlsx/worksheet-reader.js +0 -351
  894. package/dist/cjs/stream/xlsx/worksheet-writer.js +0 -605
  895. package/dist/cjs/utils/browser-buffer.js +0 -75
  896. package/dist/cjs/utils/cell-format.js +0 -819
  897. package/dist/cjs/utils/cell-matrix.js +0 -183
  898. package/dist/cjs/utils/encryptor.browser.js +0 -240
  899. package/dist/cjs/utils/encryptor.js +0 -55
  900. package/dist/cjs/utils/parse-sax.js +0 -1209
  901. package/dist/cjs/utils/shared-formula.js +0 -38
  902. package/dist/cjs/utils/sheet-utils.js +0 -727
  903. package/dist/cjs/utils/stream-buf.browser.js +0 -355
  904. package/dist/cjs/utils/stream-buf.js +0 -347
  905. package/dist/cjs/utils/string-buf.js +0 -68
  906. package/dist/cjs/utils/under-dash.js +0 -180
  907. package/dist/cjs/utils/unzip/buffer-stream.js +0 -27
  908. package/dist/cjs/utils/unzip/extract.js +0 -114
  909. package/dist/cjs/utils/unzip/index.js +0 -45
  910. package/dist/cjs/utils/unzip/noop-stream.js +0 -20
  911. package/dist/cjs/utils/unzip/parse-buffer.js +0 -60
  912. package/dist/cjs/utils/unzip/parse-datetime.js +0 -23
  913. package/dist/cjs/utils/unzip/parse-extra-field.js +0 -52
  914. package/dist/cjs/utils/unzip/parse.js +0 -340
  915. package/dist/cjs/utils/unzip/pull-stream.js +0 -145
  916. package/dist/cjs/utils/unzip/zip-parser.js +0 -466
  917. package/dist/cjs/utils/xml-stream.js +0 -171
  918. package/dist/cjs/utils/zip/compress.base.js +0 -88
  919. package/dist/cjs/utils/zip/compress.browser.js +0 -127
  920. package/dist/cjs/utils/zip/compress.js +0 -81
  921. package/dist/cjs/utils/zip/crc32.browser.js +0 -88
  922. package/dist/cjs/utils/zip/crc32.js +0 -154
  923. package/dist/cjs/utils/zip/deflate-fallback.js +0 -575
  924. package/dist/cjs/utils/zip/index.js +0 -70
  925. package/dist/cjs/utils/zip/streaming-zip.js +0 -264
  926. package/dist/cjs/utils/zip/zip-builder.js +0 -378
  927. package/dist/cjs/utils/zip-stream.browser.js +0 -135
  928. package/dist/cjs/utils/zip-stream.js +0 -114
  929. package/dist/cjs/xlsx/xform/base-xform.js +0 -126
  930. package/dist/cjs/xlsx/xform/book/defined-name-xform.js +0 -127
  931. package/dist/cjs/xlsx/xform/book/sheet-xform.js +0 -33
  932. package/dist/cjs/xlsx/xform/book/workbook-calc-properties-xform.js +0 -24
  933. package/dist/cjs/xlsx/xform/book/workbook-pivot-cache-xform.js +0 -27
  934. package/dist/cjs/xlsx/xform/book/workbook-properties-xform.js +0 -27
  935. package/dist/cjs/xlsx/xform/book/workbook-view-xform.js +0 -49
  936. package/dist/cjs/xlsx/xform/book/workbook-xform.js +0 -237
  937. package/dist/cjs/xlsx/xform/comment/comment-xform.js +0 -79
  938. package/dist/cjs/xlsx/xform/comment/comments-xform.js +0 -75
  939. package/dist/cjs/xlsx/xform/comment/style/vml-position-xform.js +0 -37
  940. package/dist/cjs/xlsx/xform/comment/style/vml-protection-xform.js +0 -33
  941. package/dist/cjs/xlsx/xform/comment/vml-anchor-xform.js +0 -58
  942. package/dist/cjs/xlsx/xform/comment/vml-client-data-xform.js +0 -85
  943. package/dist/cjs/xlsx/xform/comment/vml-notes-xform.js +0 -99
  944. package/dist/cjs/xlsx/xform/comment/vml-shape-xform.js +0 -86
  945. package/dist/cjs/xlsx/xform/comment/vml-textbox-xform.js +0 -63
  946. package/dist/cjs/xlsx/xform/composite-xform.js +0 -51
  947. package/dist/cjs/xlsx/xform/core/app-heading-pairs-xform.js +0 -27
  948. package/dist/cjs/xlsx/xform/core/app-titles-of-parts-xform.js +0 -24
  949. package/dist/cjs/xlsx/xform/core/app-xform.js +0 -86
  950. package/dist/cjs/xlsx/xform/core/content-types-xform.js +0 -131
  951. package/dist/cjs/xlsx/xform/core/core-xform.js +0 -127
  952. package/dist/cjs/xlsx/xform/core/relationship-xform.js +0 -23
  953. package/dist/cjs/xlsx/xform/core/relationships-xform.js +0 -65
  954. package/dist/cjs/xlsx/xform/drawing/base-cell-anchor-xform.js +0 -47
  955. package/dist/cjs/xlsx/xform/drawing/blip-fill-xform.js +0 -60
  956. package/dist/cjs/xlsx/xform/drawing/blip-xform.js +0 -43
  957. package/dist/cjs/xlsx/xform/drawing/c-nv-pic-pr-xform.js +0 -35
  958. package/dist/cjs/xlsx/xform/drawing/c-nv-pr-xform.js +0 -62
  959. package/dist/cjs/xlsx/xform/drawing/cell-position-xform.js +0 -71
  960. package/dist/cjs/xlsx/xform/drawing/drawing-xform.js +0 -99
  961. package/dist/cjs/xlsx/xform/drawing/ext-lst-xform.js +0 -40
  962. package/dist/cjs/xlsx/xform/drawing/ext-xform.js +0 -37
  963. package/dist/cjs/xlsx/xform/drawing/hlink-click-xform.js +0 -42
  964. package/dist/cjs/xlsx/xform/drawing/nv-pic-pr-xform.js +0 -59
  965. package/dist/cjs/xlsx/xform/drawing/one-cell-anchor-xform.js +0 -55
  966. package/dist/cjs/xlsx/xform/drawing/pic-xform.js +0 -67
  967. package/dist/cjs/xlsx/xform/drawing/two-cell-anchor-xform.js +0 -54
  968. package/dist/cjs/xlsx/xform/list-xform.js +0 -92
  969. package/dist/cjs/xlsx/xform/pivot-table/cache-field-xform.js +0 -131
  970. package/dist/cjs/xlsx/xform/pivot-table/cache-field.js +0 -81
  971. package/dist/cjs/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +0 -182
  972. package/dist/cjs/xlsx/xform/pivot-table/pivot-cache-records-xform.js +0 -237
  973. package/dist/cjs/xlsx/xform/pivot-table/pivot-table-xform.js +0 -627
  974. package/dist/cjs/xlsx/xform/sheet/auto-filter-xform.js +0 -37
  975. package/dist/cjs/xlsx/xform/sheet/cell-xform.js +0 -463
  976. package/dist/cjs/xlsx/xform/sheet/cf/cf-rule-xform.js +0 -262
  977. package/dist/cjs/xlsx/xform/sheet/cf/cfvo-xform.js +0 -25
  978. package/dist/cjs/xlsx/xform/sheet/cf/color-scale-xform.js +0 -38
  979. package/dist/cjs/xlsx/xform/sheet/cf/conditional-formatting-xform.js +0 -40
  980. package/dist/cjs/xlsx/xform/sheet/cf/conditional-formattings-xform.js +0 -77
  981. package/dist/cjs/xlsx/xform/sheet/cf/databar-xform.js +0 -42
  982. package/dist/cjs/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +0 -70
  983. package/dist/cjs/xlsx/xform/sheet/cf/formula-xform.js +0 -22
  984. package/dist/cjs/xlsx/xform/sheet/cf/icon-set-xform.js +0 -40
  985. package/dist/cjs/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +0 -25
  986. package/dist/cjs/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +0 -82
  987. package/dist/cjs/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +0 -38
  988. package/dist/cjs/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +0 -51
  989. package/dist/cjs/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +0 -43
  990. package/dist/cjs/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +0 -72
  991. package/dist/cjs/xlsx/xform/sheet/cf-ext/f-ext-xform.js +0 -22
  992. package/dist/cjs/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +0 -63
  993. package/dist/cjs/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +0 -22
  994. package/dist/cjs/xlsx/xform/sheet/col-breaks-xform.js +0 -38
  995. package/dist/cjs/xlsx/xform/sheet/col-xform.js +0 -78
  996. package/dist/cjs/xlsx/xform/sheet/data-validations-xform.js +0 -285
  997. package/dist/cjs/xlsx/xform/sheet/dimension-xform.js +0 -26
  998. package/dist/cjs/xlsx/xform/sheet/drawing-xform.js +0 -30
  999. package/dist/cjs/xlsx/xform/sheet/ext-lst-xform.js +0 -69
  1000. package/dist/cjs/xlsx/xform/sheet/header-footer-xform.js +0 -127
  1001. package/dist/cjs/xlsx/xform/sheet/hyperlink-xform.js +0 -50
  1002. package/dist/cjs/xlsx/xform/sheet/merge-cell-xform.js +0 -24
  1003. package/dist/cjs/xlsx/xform/sheet/merges.js +0 -53
  1004. package/dist/cjs/xlsx/xform/sheet/outline-properties-xform.js +0 -39
  1005. package/dist/cjs/xlsx/xform/sheet/page-breaks-xform.js +0 -36
  1006. package/dist/cjs/xlsx/xform/sheet/page-margins-xform.js +0 -45
  1007. package/dist/cjs/xlsx/xform/sheet/page-setup-properties-xform.js +0 -32
  1008. package/dist/cjs/xlsx/xform/sheet/page-setup-xform.js +0 -99
  1009. package/dist/cjs/xlsx/xform/sheet/picture-xform.js +0 -30
  1010. package/dist/cjs/xlsx/xform/sheet/print-options-xform.js +0 -44
  1011. package/dist/cjs/xlsx/xform/sheet/row-breaks-xform.js +0 -32
  1012. package/dist/cjs/xlsx/xform/sheet/row-xform.js +0 -155
  1013. package/dist/cjs/xlsx/xform/sheet/sheet-format-properties-xform.js +0 -52
  1014. package/dist/cjs/xlsx/xform/sheet/sheet-properties-xform.js +0 -85
  1015. package/dist/cjs/xlsx/xform/sheet/sheet-protection-xform.js +0 -83
  1016. package/dist/cjs/xlsx/xform/sheet/sheet-view-xform.js +0 -196
  1017. package/dist/cjs/xlsx/xform/sheet/table-part-xform.js +0 -30
  1018. package/dist/cjs/xlsx/xform/sheet/worksheet-xform.js +0 -520
  1019. package/dist/cjs/xlsx/xform/simple/boolean-xform.js +0 -27
  1020. package/dist/cjs/xlsx/xform/simple/date-xform.js +0 -68
  1021. package/dist/cjs/xlsx/xform/simple/float-xform.js +0 -50
  1022. package/dist/cjs/xlsx/xform/simple/integer-xform.js +0 -55
  1023. package/dist/cjs/xlsx/xform/simple/string-xform.js +0 -50
  1024. package/dist/cjs/xlsx/xform/static-xform.js +0 -58
  1025. package/dist/cjs/xlsx/xform/strings/phonetic-text-xform.js +0 -89
  1026. package/dist/cjs/xlsx/xform/strings/rich-text-xform.js +0 -80
  1027. package/dist/cjs/xlsx/xform/strings/shared-string-xform.js +0 -93
  1028. package/dist/cjs/xlsx/xform/strings/shared-strings-xform.js +0 -112
  1029. package/dist/cjs/xlsx/xform/strings/text-xform.js +0 -39
  1030. package/dist/cjs/xlsx/xform/style/alignment-xform.js +0 -155
  1031. package/dist/cjs/xlsx/xform/style/border-xform.js +0 -191
  1032. package/dist/cjs/xlsx/xform/style/color-xform.js +0 -64
  1033. package/dist/cjs/xlsx/xform/style/dxf-xform.js +0 -95
  1034. package/dist/cjs/xlsx/xform/style/fill-xform.js +0 -315
  1035. package/dist/cjs/xlsx/xform/style/font-xform.js +0 -103
  1036. package/dist/cjs/xlsx/xform/style/numfmt-xform.js +0 -53
  1037. package/dist/cjs/xlsx/xform/style/protection-xform.js +0 -52
  1038. package/dist/cjs/xlsx/xform/style/style-xform.js +0 -111
  1039. package/dist/cjs/xlsx/xform/style/styles-xform.js +0 -487
  1040. package/dist/cjs/xlsx/xform/style/underline-xform.js +0 -41
  1041. package/dist/cjs/xlsx/xform/table/auto-filter-xform.js +0 -73
  1042. package/dist/cjs/xlsx/xform/table/custom-filter-xform.js +0 -34
  1043. package/dist/cjs/xlsx/xform/table/filter-column-xform.js +0 -91
  1044. package/dist/cjs/xlsx/xform/table/filter-xform.js +0 -32
  1045. package/dist/cjs/xlsx/xform/table/table-column-xform.js +0 -44
  1046. package/dist/cjs/xlsx/xform/table/table-style-info-xform.js +0 -47
  1047. package/dist/cjs/xlsx/xform/table/table-xform.js +0 -129
  1048. package/dist/cjs/xlsx/xlsx.base.js +0 -742
  1049. package/dist/cjs/xlsx/xlsx.browser.js +0 -162
  1050. package/dist/cjs/xlsx/xlsx.js +0 -220
  1051. package/dist/esm/csv/csv-core.js +0 -697
  1052. package/dist/esm/csv/csv-stream.js +0 -640
  1053. package/dist/esm/csv/csv.base.js +0 -131
  1054. package/dist/esm/csv/csv.browser.js +0 -65
  1055. package/dist/esm/csv/csv.js +0 -209
  1056. package/dist/esm/doc/anchor.js +0 -97
  1057. package/dist/esm/doc/cell.js +0 -946
  1058. package/dist/esm/doc/column.js +0 -351
  1059. package/dist/esm/doc/data-validations.js +0 -43
  1060. package/dist/esm/doc/defined-names.js +0 -214
  1061. package/dist/esm/doc/image.js +0 -60
  1062. package/dist/esm/doc/modelcontainer.js +0 -13
  1063. package/dist/esm/doc/note.js +0 -61
  1064. package/dist/esm/doc/pivot-table.js +0 -237
  1065. package/dist/esm/doc/range.js +0 -280
  1066. package/dist/esm/doc/row.js +0 -441
  1067. package/dist/esm/doc/table.js +0 -405
  1068. package/dist/esm/doc/workbook.base.js +0 -207
  1069. package/dist/esm/doc/workbook.browser.js +0 -59
  1070. package/dist/esm/doc/workbook.js +0 -93
  1071. package/dist/esm/doc/worksheet.js +0 -928
  1072. package/dist/esm/local.js +0 -1
  1073. package/dist/esm/stream/xlsx/hyperlink-reader.js +0 -79
  1074. package/dist/esm/stream/xlsx/sheet-comments-writer.js +0 -100
  1075. package/dist/esm/stream/xlsx/sheet-rels-writer.js +0 -90
  1076. package/dist/esm/stream/xlsx/workbook-reader.js +0 -352
  1077. package/dist/esm/stream/xlsx/workbook-writer.js +0 -381
  1078. package/dist/esm/stream/xlsx/worksheet-reader.js +0 -348
  1079. package/dist/esm/stream/xlsx/worksheet-writer.js +0 -602
  1080. package/dist/esm/utils/browser-buffer.js +0 -67
  1081. package/dist/esm/utils/cell-format.js +0 -814
  1082. package/dist/esm/utils/encryptor.browser.js +0 -237
  1083. package/dist/esm/utils/encryptor.js +0 -49
  1084. package/dist/esm/utils/parse-sax.js +0 -1205
  1085. package/dist/esm/utils/sheet-utils.js +0 -707
  1086. package/dist/esm/utils/stream-buf.browser.js +0 -352
  1087. package/dist/esm/utils/stream-buf.js +0 -344
  1088. package/dist/esm/utils/string-buf.js +0 -65
  1089. package/dist/esm/utils/under-dash.js +0 -171
  1090. package/dist/esm/utils/unzip/buffer-stream.js +0 -24
  1091. package/dist/esm/utils/unzip/index.js +0 -29
  1092. package/dist/esm/utils/unzip/noop-stream.js +0 -16
  1093. package/dist/esm/utils/unzip/parse-buffer.js +0 -57
  1094. package/dist/esm/utils/unzip/parse-datetime.js +0 -20
  1095. package/dist/esm/utils/unzip/parse-extra-field.js +0 -49
  1096. package/dist/esm/utils/unzip/parse.js +0 -332
  1097. package/dist/esm/utils/unzip/pull-stream.js +0 -141
  1098. package/dist/esm/utils/unzip/zip-parser.js +0 -459
  1099. package/dist/esm/utils/xml-stream.js +0 -168
  1100. package/dist/esm/utils/zip/compress.base.js +0 -83
  1101. package/dist/esm/utils/zip/compress.browser.js +0 -121
  1102. package/dist/esm/utils/zip/compress.js +0 -72
  1103. package/dist/esm/utils/zip/crc32.browser.js +0 -82
  1104. package/dist/esm/utils/zip/crc32.js +0 -116
  1105. package/dist/esm/utils/zip/deflate-fallback.js +0 -570
  1106. package/dist/esm/utils/zip/index.js +0 -55
  1107. package/dist/esm/utils/zip/streaming-zip.js +0 -259
  1108. package/dist/esm/utils/zip/zip-builder.js +0 -372
  1109. package/dist/esm/utils/zip-stream.browser.js +0 -132
  1110. package/dist/esm/utils/zip-stream.js +0 -109
  1111. package/dist/esm/xlsx/xform/base-xform.js +0 -123
  1112. package/dist/esm/xlsx/xform/book/sheet-xform.js +0 -30
  1113. package/dist/esm/xlsx/xform/core/content-types-xform.js +0 -128
  1114. package/dist/esm/xlsx/xform/pivot-table/cache-field-xform.js +0 -128
  1115. package/dist/esm/xlsx/xform/pivot-table/cache-field.js +0 -78
  1116. package/dist/esm/xlsx/xform/pivot-table/pivot-cache-records-xform.js +0 -234
  1117. package/dist/esm/xlsx/xform/pivot-table/pivot-table-xform.js +0 -624
  1118. package/dist/esm/xlsx/xform/sheet/cell-xform.js +0 -460
  1119. package/dist/esm/xlsx/xform/sheet/cf/cf-rule-xform.js +0 -259
  1120. package/dist/esm/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +0 -79
  1121. package/dist/esm/xlsx/xform/sheet/col-xform.js +0 -75
  1122. package/dist/esm/xlsx/xform/sheet/data-validations-xform.js +0 -282
  1123. package/dist/esm/xlsx/xform/sheet/merges.js +0 -50
  1124. package/dist/esm/xlsx/xform/sheet/row-xform.js +0 -152
  1125. package/dist/esm/xlsx/xform/sheet/worksheet-xform.js +0 -517
  1126. package/dist/esm/xlsx/xform/static-xform.js +0 -55
  1127. package/dist/esm/xlsx/xform/style/alignment-xform.js +0 -152
  1128. package/dist/esm/xlsx/xform/style/border-xform.js +0 -188
  1129. package/dist/esm/xlsx/xform/style/styles-xform.js +0 -484
  1130. package/dist/esm/xlsx/xform/table/filter-column-xform.js +0 -88
  1131. package/dist/esm/xlsx/xlsx.base.js +0 -739
  1132. package/dist/esm/xlsx/xlsx.browser.js +0 -159
  1133. package/dist/esm/xlsx/xlsx.js +0 -214
  1134. package/dist/types/csv/csv-core.d.ts +0 -213
  1135. package/dist/types/csv/csv-stream.d.ts +0 -115
  1136. package/dist/types/csv/csv.base.d.ts +0 -62
  1137. package/dist/types/csv/csv.browser.d.ts +0 -33
  1138. package/dist/types/csv/csv.d.ts +0 -105
  1139. package/dist/types/doc/cell.d.ts +0 -139
  1140. package/dist/types/doc/column.d.ts +0 -121
  1141. package/dist/types/doc/defined-names.d.ts +0 -37
  1142. package/dist/types/doc/modelcontainer.d.ts +0 -8
  1143. package/dist/types/doc/range.d.ts +0 -62
  1144. package/dist/types/doc/row.d.ts +0 -127
  1145. package/dist/types/doc/table.d.ts +0 -81
  1146. package/dist/types/doc/workbook.base.d.ts +0 -111
  1147. package/dist/types/doc/workbook.browser.d.ts +0 -38
  1148. package/dist/types/doc/workbook.d.ts +0 -79
  1149. package/dist/types/doc/worksheet.d.ts +0 -333
  1150. package/dist/types/local.d.ts +0 -0
  1151. package/dist/types/stream/xlsx/hyperlink-reader.d.ts +0 -27
  1152. package/dist/types/stream/xlsx/workbook-reader.d.ts +0 -139
  1153. package/dist/types/stream/xlsx/workbook-writer.d.ts +0 -139
  1154. package/dist/types/stream/xlsx/worksheet-reader.d.ts +0 -55
  1155. package/dist/types/stream/xlsx/worksheet-writer.d.ts +0 -139
  1156. package/dist/types/utils/browser-buffer.d.ts +0 -28
  1157. package/dist/types/utils/encryptor.browser.d.ts +0 -28
  1158. package/dist/types/utils/encryptor.d.ts +0 -23
  1159. package/dist/types/utils/iterate-stream.d.ts +0 -10
  1160. package/dist/types/utils/sheet-utils.d.ts +0 -209
  1161. package/dist/types/utils/stream-buf.browser.d.ts +0 -41
  1162. package/dist/types/utils/stream-buf.d.ts +0 -2
  1163. package/dist/types/utils/string-buf.d.ts +0 -20
  1164. package/dist/types/utils/unzip/buffer-stream.d.ts +0 -9
  1165. package/dist/types/utils/unzip/index.d.ts +0 -27
  1166. package/dist/types/utils/unzip/noop-stream.d.ts +0 -13
  1167. package/dist/types/utils/unzip/parse-buffer.d.ts +0 -24
  1168. package/dist/types/utils/unzip/parse-datetime.d.ts +0 -12
  1169. package/dist/types/utils/unzip/parse-extra-field.d.ts +0 -18
  1170. package/dist/types/utils/unzip/parse.d.ts +0 -70
  1171. package/dist/types/utils/unzip/pull-stream.d.ts +0 -24
  1172. package/dist/types/utils/unzip/zip-parser.d.ts +0 -97
  1173. package/dist/types/utils/zip/compress.base.d.ts +0 -45
  1174. package/dist/types/utils/zip/compress.browser.d.ts +0 -63
  1175. package/dist/types/utils/zip/compress.d.ts +0 -51
  1176. package/dist/types/utils/zip/crc32.browser.d.ts +0 -52
  1177. package/dist/types/utils/zip/crc32.d.ts +0 -55
  1178. package/dist/types/utils/zip/index.d.ts +0 -52
  1179. package/dist/types/utils/zip/streaming-zip.d.ts +0 -96
  1180. package/dist/types/utils/zip/zip-builder.d.ts +0 -110
  1181. package/dist/types/utils/zip-stream.browser.d.ts +0 -39
  1182. package/dist/types/utils/zip-stream.d.ts +0 -33
  1183. package/dist/types/xlsx/xform/pivot-table/pivot-cache-definition-xform.d.ts +0 -60
  1184. package/dist/types/xlsx/xform/pivot-table/pivot-cache-records-xform.d.ts +0 -73
  1185. package/dist/types/xlsx/xlsx.base.d.ts +0 -134
  1186. package/dist/types/xlsx/xlsx.browser.d.ts +0 -31
  1187. package/dist/types/xlsx/xlsx.d.ts +0 -26
  1188. /package/dist/{types/utils/zip → browser/modules/archive}/deflate-fallback.d.ts +0 -0
  1189. /package/dist/{esm/utils/unzip → browser/modules/archive}/extract.js +0 -0
  1190. /package/dist/{types → browser/modules}/csv/csv-number.d.ts +0 -0
  1191. /package/dist/{esm → browser/modules}/csv/csv-number.js +0 -0
  1192. /package/dist/{types/doc → browser/modules/excel}/data-validations.d.ts +0 -0
  1193. /package/dist/{types/doc → browser/modules/excel}/enums.d.ts +0 -0
  1194. /package/dist/{esm/doc → browser/modules/excel}/enums.js +0 -0
  1195. /package/dist/{types/doc → browser/modules/excel}/note.d.ts +0 -0
  1196. /package/dist/{types/stream/xlsx → browser/modules/excel/stream}/sheet-comments-writer.d.ts +0 -0
  1197. /package/dist/{types/stream/xlsx → browser/modules/excel/stream}/sheet-rels-writer.d.ts +0 -0
  1198. /package/dist/{types → browser/modules/excel}/types.d.ts +0 -0
  1199. /package/dist/{esm → browser/modules/excel}/types.js +0 -0
  1200. /package/dist/{types → browser/modules/excel}/utils/cell-format.d.ts +0 -0
  1201. /package/dist/{types → browser/modules/excel}/utils/cell-matrix.d.ts +0 -0
  1202. /package/dist/{esm → browser/modules/excel}/utils/cell-matrix.js +0 -0
  1203. /package/dist/{esm → browser/modules/excel}/utils/col-cache.js +0 -0
  1204. /package/dist/{types → browser/modules/excel}/utils/copy-style.d.ts +0 -0
  1205. /package/dist/{esm → browser/modules/excel}/utils/copy-style.js +0 -0
  1206. /package/dist/{esm → browser/modules/excel}/utils/iterate-stream.js +0 -0
  1207. /package/dist/{types → browser/modules/excel}/utils/parse-sax.d.ts +0 -0
  1208. /package/dist/{types → browser/modules/excel}/utils/shared-formula.d.ts +0 -0
  1209. /package/dist/{esm → browser/modules/excel}/utils/shared-formula.js +0 -0
  1210. /package/dist/{types → browser/modules/excel}/utils/shared-strings.d.ts +0 -0
  1211. /package/dist/{esm → browser/modules/excel}/utils/shared-strings.js +0 -0
  1212. /package/dist/{types → browser/modules/excel}/utils/under-dash.d.ts +0 -0
  1213. /package/dist/{types → browser/modules/excel}/utils/xml-stream.d.ts +0 -0
  1214. /package/dist/{types → browser/modules/excel}/xlsx/defaultnumformats.d.ts +0 -0
  1215. /package/dist/{esm → browser/modules/excel}/xlsx/defaultnumformats.js +0 -0
  1216. /package/dist/{types → browser/modules/excel}/xlsx/rel-type.d.ts +0 -0
  1217. /package/dist/{esm → browser/modules/excel}/xlsx/rel-type.js +0 -0
  1218. /package/dist/{esm → browser/modules/excel}/xlsx/xform/book/defined-name-xform.js +0 -0
  1219. /package/dist/{esm → browser/modules/excel}/xlsx/xform/book/workbook-calc-properties-xform.js +0 -0
  1220. /package/dist/{esm → browser/modules/excel}/xlsx/xform/book/workbook-pivot-cache-xform.js +0 -0
  1221. /package/dist/{esm → browser/modules/excel}/xlsx/xform/book/workbook-properties-xform.js +0 -0
  1222. /package/dist/{esm → browser/modules/excel}/xlsx/xform/book/workbook-view-xform.js +0 -0
  1223. /package/dist/{esm → browser/modules/excel}/xlsx/xform/book/workbook-xform.js +0 -0
  1224. /package/dist/{esm → browser/modules/excel}/xlsx/xform/comment/comment-xform.js +0 -0
  1225. /package/dist/{esm → browser/modules/excel}/xlsx/xform/comment/comments-xform.js +0 -0
  1226. /package/dist/{esm → browser/modules/excel}/xlsx/xform/comment/style/vml-position-xform.js +0 -0
  1227. /package/dist/{esm → browser/modules/excel}/xlsx/xform/comment/style/vml-protection-xform.js +0 -0
  1228. /package/dist/{esm → browser/modules/excel}/xlsx/xform/comment/vml-anchor-xform.js +0 -0
  1229. /package/dist/{esm → browser/modules/excel}/xlsx/xform/comment/vml-client-data-xform.js +0 -0
  1230. /package/dist/{esm → browser/modules/excel}/xlsx/xform/comment/vml-notes-xform.js +0 -0
  1231. /package/dist/{esm → browser/modules/excel}/xlsx/xform/comment/vml-shape-xform.js +0 -0
  1232. /package/dist/{esm → browser/modules/excel}/xlsx/xform/comment/vml-textbox-xform.js +0 -0
  1233. /package/dist/{esm → browser/modules/excel}/xlsx/xform/composite-xform.js +0 -0
  1234. /package/dist/{esm → browser/modules/excel}/xlsx/xform/core/app-heading-pairs-xform.js +0 -0
  1235. /package/dist/{esm → browser/modules/excel}/xlsx/xform/core/app-titles-of-parts-xform.js +0 -0
  1236. /package/dist/{esm → browser/modules/excel}/xlsx/xform/core/app-xform.js +0 -0
  1237. /package/dist/{esm → browser/modules/excel}/xlsx/xform/core/core-xform.js +0 -0
  1238. /package/dist/{esm → browser/modules/excel}/xlsx/xform/core/relationship-xform.js +0 -0
  1239. /package/dist/{esm → browser/modules/excel}/xlsx/xform/core/relationships-xform.js +0 -0
  1240. /package/dist/{esm → browser/modules/excel}/xlsx/xform/drawing/base-cell-anchor-xform.js +0 -0
  1241. /package/dist/{esm → browser/modules/excel}/xlsx/xform/drawing/blip-fill-xform.js +0 -0
  1242. /package/dist/{esm → browser/modules/excel}/xlsx/xform/drawing/blip-xform.js +0 -0
  1243. /package/dist/{esm → browser/modules/excel}/xlsx/xform/drawing/c-nv-pic-pr-xform.js +0 -0
  1244. /package/dist/{esm → browser/modules/excel}/xlsx/xform/drawing/c-nv-pr-xform.js +0 -0
  1245. /package/dist/{esm → browser/modules/excel}/xlsx/xform/drawing/cell-position-xform.js +0 -0
  1246. /package/dist/{esm → browser/modules/excel}/xlsx/xform/drawing/drawing-xform.js +0 -0
  1247. /package/dist/{esm → browser/modules/excel}/xlsx/xform/drawing/ext-lst-xform.js +0 -0
  1248. /package/dist/{esm → browser/modules/excel}/xlsx/xform/drawing/ext-xform.js +0 -0
  1249. /package/dist/{esm → browser/modules/excel}/xlsx/xform/drawing/hlink-click-xform.js +0 -0
  1250. /package/dist/{esm → browser/modules/excel}/xlsx/xform/drawing/nv-pic-pr-xform.js +0 -0
  1251. /package/dist/{esm → browser/modules/excel}/xlsx/xform/drawing/one-cell-anchor-xform.js +0 -0
  1252. /package/dist/{esm → browser/modules/excel}/xlsx/xform/drawing/pic-xform.js +0 -0
  1253. /package/dist/{types → browser/modules/excel}/xlsx/xform/drawing/sp-pr.d.ts +0 -0
  1254. /package/dist/{esm → browser/modules/excel}/xlsx/xform/drawing/sp-pr.js +0 -0
  1255. /package/dist/{esm → browser/modules/excel}/xlsx/xform/drawing/two-cell-anchor-xform.js +0 -0
  1256. /package/dist/{esm → browser/modules/excel}/xlsx/xform/list-xform.js +0 -0
  1257. /package/dist/{types → browser/modules/excel}/xlsx/xform/pivot-table/cache-field.d.ts +0 -0
  1258. /package/dist/{esm → browser/modules/excel}/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +0 -0
  1259. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/auto-filter-xform.js +0 -0
  1260. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/cf/cfvo-xform.js +0 -0
  1261. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/cf/color-scale-xform.js +0 -0
  1262. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/cf/conditional-formatting-xform.js +0 -0
  1263. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/cf/conditional-formattings-xform.js +0 -0
  1264. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/cf/databar-xform.js +0 -0
  1265. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +0 -0
  1266. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/cf/formula-xform.js +0 -0
  1267. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/cf/icon-set-xform.js +0 -0
  1268. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +0 -0
  1269. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +0 -0
  1270. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +0 -0
  1271. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +0 -0
  1272. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +0 -0
  1273. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/cf-ext/f-ext-xform.js +0 -0
  1274. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +0 -0
  1275. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +0 -0
  1276. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/col-breaks-xform.js +0 -0
  1277. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/dimension-xform.js +0 -0
  1278. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/drawing-xform.js +0 -0
  1279. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/ext-lst-xform.js +0 -0
  1280. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/header-footer-xform.js +0 -0
  1281. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/hyperlink-xform.js +0 -0
  1282. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/merge-cell-xform.js +0 -0
  1283. /package/dist/{types → browser/modules/excel}/xlsx/xform/sheet/merges.d.ts +0 -0
  1284. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/outline-properties-xform.js +0 -0
  1285. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/page-breaks-xform.js +0 -0
  1286. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/page-margins-xform.js +0 -0
  1287. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/page-setup-properties-xform.js +0 -0
  1288. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/page-setup-xform.js +0 -0
  1289. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/picture-xform.js +0 -0
  1290. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/print-options-xform.js +0 -0
  1291. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/row-breaks-xform.js +0 -0
  1292. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/sheet-format-properties-xform.js +0 -0
  1293. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/sheet-properties-xform.js +0 -0
  1294. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/sheet-protection-xform.js +0 -0
  1295. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/sheet-view-xform.js +0 -0
  1296. /package/dist/{esm → browser/modules/excel}/xlsx/xform/sheet/table-part-xform.js +0 -0
  1297. /package/dist/{esm → browser/modules/excel}/xlsx/xform/simple/boolean-xform.js +0 -0
  1298. /package/dist/{esm → browser/modules/excel}/xlsx/xform/simple/date-xform.js +0 -0
  1299. /package/dist/{esm → browser/modules/excel}/xlsx/xform/simple/float-xform.js +0 -0
  1300. /package/dist/{esm → browser/modules/excel}/xlsx/xform/simple/integer-xform.js +0 -0
  1301. /package/dist/{esm → browser/modules/excel}/xlsx/xform/simple/string-xform.js +0 -0
  1302. /package/dist/{esm → browser/modules/excel}/xlsx/xform/strings/phonetic-text-xform.js +0 -0
  1303. /package/dist/{esm → browser/modules/excel}/xlsx/xform/strings/rich-text-xform.js +0 -0
  1304. /package/dist/{esm → browser/modules/excel}/xlsx/xform/strings/shared-string-xform.js +0 -0
  1305. /package/dist/{esm → browser/modules/excel}/xlsx/xform/strings/shared-strings-xform.js +0 -0
  1306. /package/dist/{esm → browser/modules/excel}/xlsx/xform/strings/text-xform.js +0 -0
  1307. /package/dist/{esm → browser/modules/excel}/xlsx/xform/style/color-xform.js +0 -0
  1308. /package/dist/{esm → browser/modules/excel}/xlsx/xform/style/dxf-xform.js +0 -0
  1309. /package/dist/{esm → browser/modules/excel}/xlsx/xform/style/fill-xform.js +0 -0
  1310. /package/dist/{esm → browser/modules/excel}/xlsx/xform/style/font-xform.js +0 -0
  1311. /package/dist/{esm → browser/modules/excel}/xlsx/xform/style/numfmt-xform.js +0 -0
  1312. /package/dist/{esm → browser/modules/excel}/xlsx/xform/style/protection-xform.js +0 -0
  1313. /package/dist/{esm → browser/modules/excel}/xlsx/xform/style/style-xform.js +0 -0
  1314. /package/dist/{esm → browser/modules/excel}/xlsx/xform/style/underline-xform.js +0 -0
  1315. /package/dist/{esm → browser/modules/excel}/xlsx/xform/table/auto-filter-xform.js +0 -0
  1316. /package/dist/{esm → browser/modules/excel}/xlsx/xform/table/custom-filter-xform.js +0 -0
  1317. /package/dist/{esm → browser/modules/excel}/xlsx/xform/table/filter-xform.js +0 -0
  1318. /package/dist/{esm → browser/modules/excel}/xlsx/xform/table/table-column-xform.js +0 -0
  1319. /package/dist/{esm → browser/modules/excel}/xlsx/xform/table/table-style-info-xform.js +0 -0
  1320. /package/dist/{esm → browser/modules/excel}/xlsx/xform/table/table-xform.js +0 -0
  1321. /package/dist/{types → browser/modules/excel}/xlsx/xml/theme1.d.ts +0 -0
  1322. /package/dist/{esm → browser/modules/excel}/xlsx/xml/theme1.js +0 -0
  1323. /package/dist/cjs/{csv → modules/csv}/csv-number.js +0 -0
  1324. /package/dist/cjs/{doc → modules/excel}/enums.js +0 -0
  1325. /package/dist/cjs/{types.js → modules/excel/types.js} +0 -0
  1326. /package/dist/cjs/{utils → modules/excel/utils}/col-cache.js +0 -0
  1327. /package/dist/cjs/{utils → modules/excel/utils}/copy-style.js +0 -0
  1328. /package/dist/cjs/{utils → modules/excel/utils}/iterate-stream.js +0 -0
  1329. /package/dist/cjs/{utils → modules/excel/utils}/shared-strings.js +0 -0
  1330. /package/dist/cjs/{xlsx → modules/excel/xlsx}/defaultnumformats.js +0 -0
  1331. /package/dist/cjs/{xlsx → modules/excel/xlsx}/rel-type.js +0 -0
  1332. /package/dist/cjs/{xlsx → modules/excel/xlsx}/xform/drawing/sp-pr.js +0 -0
  1333. /package/dist/cjs/{xlsx → modules/excel/xlsx}/xml/theme1.js +0 -0
  1334. /package/dist/types/{utils/unzip → modules/archive}/extract.d.ts +0 -0
  1335. /package/dist/types/{doc → modules/excel}/anchor.d.ts +0 -0
  1336. /package/dist/types/{doc → modules/excel}/image.d.ts +0 -0
  1337. /package/dist/types/{doc → modules/excel}/pivot-table.d.ts +0 -0
  1338. /package/dist/types/{utils → modules/excel/utils}/col-cache.d.ts +0 -0
  1339. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/base-xform.d.ts +0 -0
  1340. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/book/defined-name-xform.d.ts +0 -0
  1341. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/book/sheet-xform.d.ts +0 -0
  1342. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/book/workbook-calc-properties-xform.d.ts +0 -0
  1343. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/book/workbook-pivot-cache-xform.d.ts +0 -0
  1344. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/book/workbook-properties-xform.d.ts +0 -0
  1345. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/book/workbook-view-xform.d.ts +0 -0
  1346. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/book/workbook-xform.d.ts +0 -0
  1347. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/comment/comment-xform.d.ts +0 -0
  1348. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/comment/comments-xform.d.ts +0 -0
  1349. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/comment/style/vml-position-xform.d.ts +0 -0
  1350. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/comment/style/vml-protection-xform.d.ts +0 -0
  1351. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/comment/vml-anchor-xform.d.ts +0 -0
  1352. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/comment/vml-client-data-xform.d.ts +0 -0
  1353. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/comment/vml-notes-xform.d.ts +0 -0
  1354. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/comment/vml-shape-xform.d.ts +0 -0
  1355. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/comment/vml-textbox-xform.d.ts +0 -0
  1356. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/composite-xform.d.ts +0 -0
  1357. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/core/app-heading-pairs-xform.d.ts +0 -0
  1358. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/core/app-titles-of-parts-xform.d.ts +0 -0
  1359. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/core/app-xform.d.ts +0 -0
  1360. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/core/content-types-xform.d.ts +0 -0
  1361. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/core/core-xform.d.ts +0 -0
  1362. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/core/relationship-xform.d.ts +0 -0
  1363. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/core/relationships-xform.d.ts +0 -0
  1364. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/drawing/base-cell-anchor-xform.d.ts +0 -0
  1365. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/drawing/blip-fill-xform.d.ts +0 -0
  1366. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/drawing/blip-xform.d.ts +0 -0
  1367. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/drawing/c-nv-pic-pr-xform.d.ts +0 -0
  1368. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/drawing/c-nv-pr-xform.d.ts +0 -0
  1369. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/drawing/cell-position-xform.d.ts +0 -0
  1370. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/drawing/drawing-xform.d.ts +0 -0
  1371. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/drawing/ext-lst-xform.d.ts +0 -0
  1372. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/drawing/ext-xform.d.ts +0 -0
  1373. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/drawing/hlink-click-xform.d.ts +0 -0
  1374. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/drawing/nv-pic-pr-xform.d.ts +0 -0
  1375. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/drawing/one-cell-anchor-xform.d.ts +0 -0
  1376. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/drawing/pic-xform.d.ts +0 -0
  1377. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/drawing/two-cell-anchor-xform.d.ts +0 -0
  1378. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/list-xform.d.ts +0 -0
  1379. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/pivot-table/cache-field-xform.d.ts +0 -0
  1380. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/pivot-table/pivot-table-xform.d.ts +0 -0
  1381. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/auto-filter-xform.d.ts +0 -0
  1382. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/cell-xform.d.ts +0 -0
  1383. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/cf/cf-rule-xform.d.ts +0 -0
  1384. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/cf/cfvo-xform.d.ts +0 -0
  1385. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/cf/color-scale-xform.d.ts +0 -0
  1386. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/cf/conditional-formatting-xform.d.ts +0 -0
  1387. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/cf/conditional-formattings-xform.d.ts +0 -0
  1388. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/cf/databar-xform.d.ts +0 -0
  1389. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/cf/ext-lst-ref-xform.d.ts +0 -0
  1390. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/cf/formula-xform.d.ts +0 -0
  1391. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/cf/icon-set-xform.d.ts +0 -0
  1392. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/cf-ext/cf-icon-ext-xform.d.ts +0 -0
  1393. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/cf-ext/cf-rule-ext-xform.d.ts +0 -0
  1394. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/cf-ext/cfvo-ext-xform.d.ts +0 -0
  1395. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/cf-ext/conditional-formatting-ext-xform.d.ts +0 -0
  1396. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/cf-ext/conditional-formattings-ext-xform.d.ts +0 -0
  1397. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/cf-ext/databar-ext-xform.d.ts +0 -0
  1398. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/cf-ext/f-ext-xform.d.ts +0 -0
  1399. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/cf-ext/icon-set-ext-xform.d.ts +0 -0
  1400. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/cf-ext/sqref-ext-xform.d.ts +0 -0
  1401. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/col-breaks-xform.d.ts +0 -0
  1402. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/col-xform.d.ts +0 -0
  1403. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/data-validations-xform.d.ts +0 -0
  1404. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/dimension-xform.d.ts +0 -0
  1405. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/drawing-xform.d.ts +0 -0
  1406. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/ext-lst-xform.d.ts +0 -0
  1407. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/header-footer-xform.d.ts +0 -0
  1408. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/hyperlink-xform.d.ts +0 -0
  1409. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/merge-cell-xform.d.ts +0 -0
  1410. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/outline-properties-xform.d.ts +0 -0
  1411. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/page-breaks-xform.d.ts +0 -0
  1412. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/page-margins-xform.d.ts +0 -0
  1413. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/page-setup-properties-xform.d.ts +0 -0
  1414. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/page-setup-xform.d.ts +0 -0
  1415. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/picture-xform.d.ts +0 -0
  1416. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/print-options-xform.d.ts +0 -0
  1417. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/row-breaks-xform.d.ts +0 -0
  1418. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/row-xform.d.ts +0 -0
  1419. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/sheet-format-properties-xform.d.ts +0 -0
  1420. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/sheet-properties-xform.d.ts +0 -0
  1421. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/sheet-protection-xform.d.ts +0 -0
  1422. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/sheet-view-xform.d.ts +0 -0
  1423. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/table-part-xform.d.ts +0 -0
  1424. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/sheet/worksheet-xform.d.ts +0 -0
  1425. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/simple/boolean-xform.d.ts +0 -0
  1426. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/simple/date-xform.d.ts +0 -0
  1427. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/simple/float-xform.d.ts +0 -0
  1428. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/simple/integer-xform.d.ts +0 -0
  1429. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/simple/string-xform.d.ts +0 -0
  1430. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/static-xform.d.ts +0 -0
  1431. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/strings/phonetic-text-xform.d.ts +0 -0
  1432. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/strings/rich-text-xform.d.ts +0 -0
  1433. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/strings/shared-string-xform.d.ts +0 -0
  1434. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/strings/shared-strings-xform.d.ts +0 -0
  1435. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/strings/text-xform.d.ts +0 -0
  1436. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/style/alignment-xform.d.ts +0 -0
  1437. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/style/border-xform.d.ts +0 -0
  1438. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/style/color-xform.d.ts +0 -0
  1439. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/style/dxf-xform.d.ts +0 -0
  1440. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/style/fill-xform.d.ts +0 -0
  1441. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/style/font-xform.d.ts +0 -0
  1442. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/style/numfmt-xform.d.ts +0 -0
  1443. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/style/protection-xform.d.ts +0 -0
  1444. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/style/style-xform.d.ts +0 -0
  1445. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/style/styles-xform.d.ts +0 -0
  1446. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/style/underline-xform.d.ts +0 -0
  1447. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/table/auto-filter-xform.d.ts +0 -0
  1448. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/table/custom-filter-xform.d.ts +0 -0
  1449. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/table/filter-column-xform.d.ts +0 -0
  1450. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/table/filter-xform.d.ts +0 -0
  1451. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/table/table-column-xform.d.ts +0 -0
  1452. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/table/table-style-info-xform.d.ts +0 -0
  1453. /package/dist/types/{xlsx → modules/excel/xlsx}/xform/table/table-xform.d.ts +0 -0
@@ -0,0 +1,3348 @@
1
+ "use strict";
2
+ /**
3
+ * Native Stream Implementation - Browser
4
+ *
5
+ * Uses Web Streams API (ReadableStream, WritableStream, TransformStream)
6
+ * for true native streaming in browsers.
7
+ *
8
+ * Supported browsers:
9
+ * - Chrome >= 89
10
+ * - Firefox >= 102
11
+ * - Safari >= 14.1
12
+ * - Edge >= 89
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.promises = exports.consumers = exports.streamToBuffer = exports.BufferedStream = exports.BufferChunk = exports.StringChunk = exports.PullStream = exports.Collector = exports.PassThrough = exports.Duplex = exports.Transform = exports.Writable = exports.Readable = void 0;
16
+ exports.normalizeWritable = normalizeWritable;
17
+ exports.createReadable = createReadable;
18
+ exports.createReadableFromAsyncIterable = createReadableFromAsyncIterable;
19
+ exports.createReadableFromArray = createReadableFromArray;
20
+ exports.createWritable = createWritable;
21
+ exports.createTransform = createTransform;
22
+ exports.createCollector = createCollector;
23
+ exports.createPassThrough = createPassThrough;
24
+ exports.createPullStream = createPullStream;
25
+ exports.createBufferedStream = createBufferedStream;
26
+ exports.pipeline = pipeline;
27
+ exports.finished = finished;
28
+ exports.streamToPromise = streamToPromise;
29
+ exports.streamToUint8Array = streamToUint8Array;
30
+ exports.streamToString = streamToString;
31
+ exports.drainStream = drainStream;
32
+ exports.copyStream = copyStream;
33
+ exports.isTransform = isTransform;
34
+ exports.isDuplex = isDuplex;
35
+ exports.isStream = isStream;
36
+ exports.addAbortSignal = addAbortSignal;
37
+ exports.createDuplex = createDuplex;
38
+ exports.createReadableFromGenerator = createReadableFromGenerator;
39
+ exports.createReadableFromPromise = createReadableFromPromise;
40
+ exports.compose = compose;
41
+ exports.finishedAll = finishedAll;
42
+ exports.createEmptyReadable = createEmptyReadable;
43
+ exports.createNullWritable = createNullWritable;
44
+ exports.once = once;
45
+ exports.promisify = promisify;
46
+ exports.getDefaultHighWaterMark = getDefaultHighWaterMark;
47
+ exports.setDefaultHighWaterMark = setDefaultHighWaterMark;
48
+ exports.isDestroyed = isDestroyed;
49
+ exports.isDisturbed = isDisturbed;
50
+ exports.isErrored = isErrored;
51
+ exports.isReadable = isReadable;
52
+ exports.isWritable = isWritable;
53
+ exports.duplexPair = duplexPair;
54
+ const event_emitter_1 = require("./event-emitter.js");
55
+ const pull_stream_1 = require("./pull-stream.js");
56
+ const buffered_stream_1 = require("./buffered-stream.js");
57
+ const shared_1 = require("./shared.js");
58
+ // =============================================================================
59
+ // Readable Stream Wrapper
60
+ // =============================================================================
61
+ /**
62
+ * A wrapper around Web ReadableStream that provides Node.js-like API
63
+ */
64
+ class Readable extends event_emitter_1.EventEmitter {
65
+ constructor(options) {
66
+ super();
67
+ this._reader = null;
68
+ this._buffer = [];
69
+ this._bufferIndex = 0;
70
+ this._unshiftBuffer = [];
71
+ this._bufferSize = 0;
72
+ this._reading = false;
73
+ this._ended = false;
74
+ this._destroyed = false;
75
+ this._errored = null;
76
+ this._closed = false;
77
+ this._paused = true;
78
+ this._flowing = false;
79
+ this._pipeTo = [];
80
+ this._pipeListeners = new Map();
81
+ this._encoding = null;
82
+ this._decoder = null;
83
+ this._didRead = false;
84
+ this._aborted = false;
85
+ // Whether this stream uses push() mode (true) or Web Stream mode (false)
86
+ this._pushMode = false;
87
+ // Whether this stream was created from an external Web Stream (true) or is controllable (false)
88
+ this._webStreamMode = false;
89
+ this.objectMode = options?.objectMode ?? false;
90
+ this.readableHighWaterMark = options?.highWaterMark ?? 16384;
91
+ this.autoDestroy = options?.autoDestroy ?? true;
92
+ this.emitClose = options?.emitClose ?? true;
93
+ // Store user-provided read function
94
+ if (options?.read) {
95
+ this._read = options.read.bind(this);
96
+ this._pushMode = true; // User will call push()
97
+ }
98
+ if (options?.stream) {
99
+ this._stream = options.stream;
100
+ this._webStreamMode = true; // Created from external Web Stream
101
+ }
102
+ else {
103
+ // Create a controllable stream
104
+ let controller;
105
+ this._stream = new ReadableStream({
106
+ start: ctrl => {
107
+ controller = ctrl;
108
+ },
109
+ pull: async () => {
110
+ // Signal that more data can be pushed
111
+ this.emit("drain");
112
+ },
113
+ cancel: reason => {
114
+ this._ended = true;
115
+ this._aborted = true;
116
+ if (this.emitClose) {
117
+ this.emit("close");
118
+ }
119
+ }
120
+ });
121
+ // Expose controller for push/end
122
+ this._controller = controller;
123
+ }
124
+ }
125
+ /**
126
+ * Create a Readable from an iterable (static factory method)
127
+ */
128
+ static from(iterable, options) {
129
+ const readable = new Readable({ ...options, objectMode: options?.objectMode ?? true });
130
+ (async () => {
131
+ try {
132
+ for await (const chunk of iterable) {
133
+ if (!readable.push(chunk)) {
134
+ // Backpressure
135
+ await new Promise(resolve => setTimeout(resolve, 0));
136
+ }
137
+ }
138
+ readable.push(null);
139
+ }
140
+ catch (err) {
141
+ readable.destroy(err);
142
+ }
143
+ })();
144
+ return readable;
145
+ }
146
+ /**
147
+ * Check if a stream has been disturbed (read from)
148
+ */
149
+ static isDisturbed(stream) {
150
+ return stream._didRead || stream._ended || stream._destroyed;
151
+ }
152
+ /**
153
+ * Convert a Web ReadableStream to Node.js Readable
154
+ */
155
+ static fromWeb(webStream, options) {
156
+ return new Readable({ ...options, stream: webStream });
157
+ }
158
+ /**
159
+ * Convert a Node.js Readable to Web ReadableStream
160
+ */
161
+ static toWeb(nodeStream) {
162
+ return nodeStream.webStream;
163
+ }
164
+ /**
165
+ * Push data to the stream (when using controllable stream)
166
+ */
167
+ push(chunk) {
168
+ if (this._destroyed) {
169
+ return false;
170
+ }
171
+ // Mark as push mode when push() is called
172
+ this._pushMode = true;
173
+ const controller = this._controller;
174
+ if (chunk === null) {
175
+ // Prevent duplicate end handling
176
+ if (this._ended) {
177
+ return false;
178
+ }
179
+ this._ended = true;
180
+ if (controller) {
181
+ try {
182
+ controller.close();
183
+ }
184
+ catch {
185
+ // Controller may already be closed
186
+ }
187
+ }
188
+ this.emit("end");
189
+ // Note: Don't call destroy() here, let the stream be consumed naturally
190
+ // The reader will return done:true when it finishes reading
191
+ return false;
192
+ }
193
+ if (this._flowing) {
194
+ // In flowing mode, emit data directly without buffering or enqueueing
195
+ // const chunkStr = chunk instanceof Uint8Array ? new TextDecoder().decode(chunk.slice(0, 50)) : String(chunk).slice(0, 50);
196
+ // console.log(`[Readable#${this._id}.push FLOWING] emit data size:${(chunk as any).length || (chunk as any).byteLength} start:"${chunkStr}"`);
197
+ this.emit("data", chunk);
198
+ // Check if stream was paused during emit (backpressure from consumer)
199
+ if (!this._flowing) {
200
+ return false;
201
+ }
202
+ // After emitting data, call _read again if available (Node.js behavior)
203
+ if (this._read && !this._ended) {
204
+ queueMicrotask(() => {
205
+ if (this._flowing && !this._ended && !this._destroyed) {
206
+ this._read(this.readableHighWaterMark);
207
+ }
208
+ });
209
+ }
210
+ // In flowing mode, return true (no backpressure since data is immediately consumed)
211
+ return true;
212
+ }
213
+ else {
214
+ // In paused mode, buffer for later
215
+ const wasEmpty = this._bufferedLength() === 0;
216
+ // const chunkStrBuf = chunk instanceof Uint8Array ? new TextDecoder().decode((chunk as Uint8Array).slice(0, 50)) : String(chunk).slice(0, 50);
217
+ // console.log(`[Readable#${this._id}.push PAUSED->BUFFER] buffer len:${this._buffer.length}->${this._buffer.length + 1} start:"${chunkStrBuf}"`);
218
+ this._buffer.push(chunk);
219
+ if (!this.objectMode) {
220
+ this._bufferSize += this._getChunkSize(chunk);
221
+ }
222
+ // NOTE: Do NOT enqueue to Web Stream controller here!
223
+ // In push mode, _buffer is the only source of data for data events.
224
+ // Web Stream is only used for async iteration when not in push mode.
225
+ // Enqueueing here would cause data duplication when _startReading is also running.
226
+ // Emit readable event when buffer goes from empty to having data
227
+ if (wasEmpty) {
228
+ queueMicrotask(() => this.emit("readable"));
229
+ }
230
+ // Return false if buffer exceeds high water mark (backpressure signal)
231
+ // Fast path for object mode - just count items
232
+ if (this.objectMode) {
233
+ return this._bufferedLength() < this.readableHighWaterMark;
234
+ }
235
+ // For binary mode, use tracked buffer size (O(1))
236
+ return this._bufferSize < this.readableHighWaterMark;
237
+ }
238
+ }
239
+ /**
240
+ * Put a chunk back at the front of the buffer
241
+ * Note: unshift is allowed even after end, as it's used to put back already read data
242
+ */
243
+ unshift(chunk) {
244
+ if (this._destroyed) {
245
+ return;
246
+ }
247
+ this._bufferUnshift(chunk);
248
+ if (!this.objectMode) {
249
+ this._bufferSize += this._getChunkSize(chunk);
250
+ }
251
+ }
252
+ /**
253
+ * Read data from the stream
254
+ */
255
+ read(size) {
256
+ this._didRead = true;
257
+ if (this._bufferedLength() > 0) {
258
+ if (this.objectMode || size === undefined) {
259
+ const chunk = this._bufferShift();
260
+ if (!this.objectMode) {
261
+ this._bufferSize -= this._getChunkSize(chunk);
262
+ }
263
+ return this._applyEncoding(chunk);
264
+ }
265
+ // For binary mode, handle size
266
+ const chunk = this._bufferShift();
267
+ if (!this.objectMode) {
268
+ this._bufferSize -= this._getChunkSize(chunk);
269
+ }
270
+ return this._applyEncoding(chunk);
271
+ }
272
+ return null;
273
+ }
274
+ _bufferedLength() {
275
+ return this._unshiftBuffer.length + (this._buffer.length - this._bufferIndex);
276
+ }
277
+ _bufferPeek() {
278
+ const unshiftLen = this._unshiftBuffer.length;
279
+ if (unshiftLen > 0) {
280
+ return this._unshiftBuffer[unshiftLen - 1];
281
+ }
282
+ return this._bufferIndex < this._buffer.length ? this._buffer[this._bufferIndex] : null;
283
+ }
284
+ _bufferShift() {
285
+ if (this._unshiftBuffer.length > 0) {
286
+ return this._unshiftBuffer.pop();
287
+ }
288
+ const chunk = this._buffer[this._bufferIndex++];
289
+ // Fast reset when emptied
290
+ if (this._bufferIndex === this._buffer.length) {
291
+ this._buffer.length = 0;
292
+ this._bufferIndex = 0;
293
+ return chunk;
294
+ }
295
+ // Occasionally compact to avoid unbounded growth of the unused prefix
296
+ if (this._bufferIndex > 1024 && this._bufferIndex * 2 > this._buffer.length) {
297
+ this._buffer = this._buffer.slice(this._bufferIndex);
298
+ this._bufferIndex = 0;
299
+ }
300
+ return chunk;
301
+ }
302
+ _bufferUnshift(chunk) {
303
+ if (this._bufferIndex === 0) {
304
+ // Avoid O(n) Array.unshift() by using a small front stack.
305
+ // Semantics: last unshifted chunk is returned first.
306
+ this._unshiftBuffer.push(chunk);
307
+ return;
308
+ }
309
+ this._bufferIndex--;
310
+ this._buffer[this._bufferIndex] = chunk;
311
+ }
312
+ _getChunkSize(chunk) {
313
+ // Keep semantics aligned with previous implementation:
314
+ // - Uint8Array counts by byteLength
315
+ // - other types count as 1
316
+ return chunk instanceof Uint8Array ? chunk.byteLength : 1;
317
+ }
318
+ /**
319
+ * Set encoding for string output
320
+ */
321
+ setEncoding(encoding) {
322
+ this._encoding = encoding;
323
+ // Fast path: reuse cached utf-8 decoder; otherwise lazy-create on first decode.
324
+ if (encoding === "utf-8" || encoding === "utf8") {
325
+ this._decoder = shared_1.textDecoder;
326
+ }
327
+ else {
328
+ this._decoder = null;
329
+ }
330
+ return this;
331
+ }
332
+ _applyEncoding(chunk) {
333
+ if (this._encoding && chunk instanceof Uint8Array) {
334
+ // Use cached decoder instances (module-level for utf-8, cached per encoding otherwise).
335
+ if (!this._decoder) {
336
+ this._decoder = (0, shared_1.getTextDecoder)(this._encoding);
337
+ }
338
+ return this._decoder.decode(chunk);
339
+ }
340
+ return chunk;
341
+ }
342
+ /**
343
+ * Wrap an old-style stream
344
+ */
345
+ wrap(stream) {
346
+ stream.on("data", (chunk) => {
347
+ if (!this.push(chunk)) {
348
+ stream.pause();
349
+ }
350
+ });
351
+ stream.on("end", () => this.push(null));
352
+ stream.on("error", (err) => this.destroy(err));
353
+ stream.on("close", () => this.destroy());
354
+ return this;
355
+ }
356
+ /**
357
+ * Pause the stream
358
+ */
359
+ pause() {
360
+ this._paused = true;
361
+ this._flowing = false;
362
+ return this;
363
+ }
364
+ /**
365
+ * Resume the stream
366
+ */
367
+ resume() {
368
+ this._paused = false;
369
+ this._flowing = true;
370
+ // Emit any buffered data first
371
+ while (this._bufferedLength() > 0 && this._flowing) {
372
+ const chunk = this._bufferShift();
373
+ if (!this.objectMode) {
374
+ this._bufferSize -= this._getChunkSize(chunk);
375
+ }
376
+ this.emit("data", chunk);
377
+ }
378
+ // If already ended, emit end event
379
+ if (this._ended && this._bufferedLength() === 0) {
380
+ this.emit("end");
381
+ }
382
+ else if (this._read) {
383
+ // Call user-provided read function asynchronously
384
+ // This allows multiple pipe() calls to register before data flows
385
+ queueMicrotask(() => {
386
+ if (this._flowing && !this._ended && !this._destroyed) {
387
+ this._read(this.readableHighWaterMark);
388
+ }
389
+ });
390
+ }
391
+ else if (this._webStreamMode && !this._pushMode) {
392
+ // Only start reading from underlying Web Stream if:
393
+ // 1. Stream was created from external Web Stream (_webStreamMode)
394
+ // 2. Not in push mode (no one called push() yet)
395
+ this._startReading();
396
+ }
397
+ return this;
398
+ }
399
+ /**
400
+ * Override on() to automatically resume when 'data' listener is added
401
+ * This matches Node.js behavior where adding a 'data' listener puts
402
+ * the stream into flowing mode.
403
+ */
404
+ on(event, listener) {
405
+ super.on(event, listener);
406
+ // When a 'data' listener is added, switch to flowing mode
407
+ if (event === "data") {
408
+ this.resume();
409
+ }
410
+ return this;
411
+ }
412
+ /**
413
+ * Check if paused
414
+ */
415
+ isPaused() {
416
+ return this._paused;
417
+ }
418
+ /**
419
+ * Pipe to a writable stream, transform stream, or duplex stream
420
+ */
421
+ pipe(destination) {
422
+ // IMPORTANT:
423
+ // Do not rely on `instanceof` here.
424
+ // In bundled/minified builds, multiple copies of this module can exist,
425
+ // causing `instanceof Transform/Writable/Duplex` to fail even when the object
426
+ // is a valid destination.
427
+ const dest = destination;
428
+ // Get the actual writable target.
429
+ // Prefer internal `_writable` (Transform/Duplex wrappers), else treat the destination as writable-like.
430
+ const candidate = dest?._writable ?? dest;
431
+ const hasWrite = typeof candidate?.write === "function";
432
+ const hasEnd = typeof candidate?.end === "function";
433
+ const hasOn = typeof candidate?.on === "function";
434
+ const hasOnce = typeof candidate?.once === "function";
435
+ const hasOff = typeof candidate?.off === "function";
436
+ if (!hasWrite || !hasEnd || (!hasOnce && !hasOn) || (!hasOff && !candidate?.removeListener)) {
437
+ throw new Error("Readable.pipe: invalid destination");
438
+ }
439
+ const target = candidate;
440
+ this._pipeTo.push(target);
441
+ // Create listeners that we can later remove
442
+ const dataListener = (chunk) => {
443
+ const canWrite = target.write(chunk);
444
+ if (!canWrite) {
445
+ this.pause();
446
+ if (typeof target.once === "function") {
447
+ target.once("drain", () => this.resume());
448
+ }
449
+ else {
450
+ const resumeOnce = () => {
451
+ if (typeof target.off === "function") {
452
+ target.off("drain", resumeOnce);
453
+ }
454
+ else if (typeof target.removeListener === "function") {
455
+ target.removeListener("drain", resumeOnce);
456
+ }
457
+ this.resume();
458
+ };
459
+ target.on("drain", resumeOnce);
460
+ }
461
+ }
462
+ };
463
+ const endListener = () => {
464
+ target.end();
465
+ };
466
+ const errorListener = (err) => {
467
+ if (typeof target.destroy === "function") {
468
+ target.destroy(err);
469
+ }
470
+ else {
471
+ // Best-effort: forward error to the destination if it supports events.
472
+ target.emit?.("error", err);
473
+ }
474
+ };
475
+ // Store listeners for later removal in unpipe
476
+ this._pipeListeners.set(target, {
477
+ data: dataListener,
478
+ end: endListener,
479
+ error: errorListener
480
+ });
481
+ this.on("data", dataListener);
482
+ this.once("end", endListener);
483
+ this.once("error", errorListener);
484
+ this.resume();
485
+ return destination;
486
+ }
487
+ /**
488
+ * Unpipe from destination
489
+ */
490
+ unpipe(destination) {
491
+ if (destination) {
492
+ const idx = this._pipeTo.indexOf(destination);
493
+ if (idx !== -1) {
494
+ this._pipeTo.splice(idx, 1);
495
+ }
496
+ // Remove the listeners
497
+ const listeners = this._pipeListeners.get(destination);
498
+ if (listeners) {
499
+ this.off("data", listeners.data);
500
+ this.off("end", listeners.end);
501
+ this.off("error", listeners.error);
502
+ this._pipeListeners.delete(destination);
503
+ }
504
+ }
505
+ else {
506
+ // Unpipe all
507
+ for (const target of this._pipeTo) {
508
+ const listeners = this._pipeListeners.get(target);
509
+ if (listeners) {
510
+ this.off("data", listeners.data);
511
+ this.off("end", listeners.end);
512
+ this.off("error", listeners.error);
513
+ this._pipeListeners.delete(target);
514
+ }
515
+ }
516
+ this._pipeTo = [];
517
+ }
518
+ // Pause the stream after unpipe
519
+ this.pause();
520
+ return this;
521
+ }
522
+ /**
523
+ * Destroy the stream
524
+ */
525
+ destroy(error) {
526
+ if (this._destroyed) {
527
+ return this;
528
+ }
529
+ this._destroyed = true;
530
+ this._ended = true;
531
+ if (error) {
532
+ this._errored = error;
533
+ this.emit("error", error);
534
+ }
535
+ if (this._reader) {
536
+ this._reader.cancel().catch(() => { });
537
+ }
538
+ this._closed = true;
539
+ this.emit("close");
540
+ return this;
541
+ }
542
+ /**
543
+ * Get the underlying Web ReadableStream
544
+ */
545
+ get webStream() {
546
+ return this._stream;
547
+ }
548
+ get readable() {
549
+ return !this._destroyed && !this._ended;
550
+ }
551
+ get readableEnded() {
552
+ return this._ended;
553
+ }
554
+ get readableLength() {
555
+ return this._bufferedLength();
556
+ }
557
+ /** Whether the stream has been destroyed */
558
+ get destroyed() {
559
+ return this._destroyed;
560
+ }
561
+ /** The error that destroyed the stream, or null */
562
+ get errored() {
563
+ return this._errored;
564
+ }
565
+ /** Whether the stream has been closed */
566
+ get closed() {
567
+ return this._closed;
568
+ }
569
+ /** Whether the stream is in flowing mode */
570
+ get readableFlowing() {
571
+ if (!this._paused && !this._ended) {
572
+ return this._flowing;
573
+ }
574
+ return this._flowing ? true : null;
575
+ }
576
+ /** Whether the stream was aborted */
577
+ get readableAborted() {
578
+ return this._aborted;
579
+ }
580
+ /** Whether read() has ever been called */
581
+ get readableDidRead() {
582
+ return this._didRead;
583
+ }
584
+ /** Current encoding or null */
585
+ get readableEncoding() {
586
+ return this._encoding;
587
+ }
588
+ /** Returns array of objects containing info about buffered data */
589
+ get readableObjectMode() {
590
+ return this.objectMode;
591
+ }
592
+ /**
593
+ * Get the internal buffer state (for debugging)
594
+ * Returns array of objects with length and chunk info
595
+ */
596
+ get readableBuffer() {
597
+ return {
598
+ length: this._bufferedLength(),
599
+ head: this._bufferPeek()
600
+ };
601
+ }
602
+ async _startReading() {
603
+ if (this._reading || this._destroyed || !this._flowing) {
604
+ return;
605
+ }
606
+ this._reading = true;
607
+ try {
608
+ if (!this._reader) {
609
+ this._reader = this._stream.getReader();
610
+ }
611
+ while (this._flowing && !this._destroyed && !this._pushMode) {
612
+ const { done, value } = await this._reader.read();
613
+ // Check _pushMode again after async read - if push() was called, stop reading
614
+ if (this._pushMode) {
615
+ break;
616
+ }
617
+ if (done) {
618
+ this._ended = true;
619
+ this.emit("end");
620
+ break;
621
+ }
622
+ if (value !== undefined) {
623
+ // In flowing mode, emit data directly without buffering
624
+ // Only buffer if not flowing (paused mode)
625
+ if (this._flowing) {
626
+ this.emit("data", value);
627
+ }
628
+ else {
629
+ this._buffer.push(value);
630
+ if (!this.objectMode) {
631
+ this._bufferSize += this._getChunkSize(value);
632
+ }
633
+ }
634
+ }
635
+ }
636
+ }
637
+ catch (err) {
638
+ this.emit("error", err);
639
+ }
640
+ finally {
641
+ this._reading = false;
642
+ }
643
+ }
644
+ /**
645
+ * Async iterator support
646
+ * Uses Web Stream reader for non-push mode, event-based for push mode
647
+ */
648
+ async *[Symbol.asyncIterator]() {
649
+ // First yield any buffered data
650
+ while (this._bufferedLength() > 0) {
651
+ const chunk = this._bufferShift();
652
+ if (!this.objectMode) {
653
+ this._bufferSize -= this._getChunkSize(chunk);
654
+ }
655
+ yield chunk;
656
+ }
657
+ // If already ended, we're done
658
+ if (this._ended) {
659
+ return;
660
+ }
661
+ // For controllable streams (not created from external Web Stream),
662
+ // use event-based iteration since data comes from push() calls
663
+ if (!this._webStreamMode) {
664
+ // Create a promise-based queue for incoming data
665
+ const dataQueue = [];
666
+ let resolveNext = null;
667
+ let rejectNext = null;
668
+ let done = false;
669
+ let streamError = null;
670
+ let dataQueueIndex = 0;
671
+ const dataHandler = (chunk) => {
672
+ if (resolveNext) {
673
+ resolveNext(chunk);
674
+ resolveNext = null;
675
+ rejectNext = null;
676
+ }
677
+ else {
678
+ dataQueue.push(chunk);
679
+ }
680
+ };
681
+ const endHandler = () => {
682
+ done = true;
683
+ if (resolveNext) {
684
+ resolveNext(null);
685
+ resolveNext = null;
686
+ rejectNext = null;
687
+ }
688
+ };
689
+ const errorHandler = (err) => {
690
+ done = true;
691
+ streamError = err;
692
+ if (rejectNext) {
693
+ rejectNext(err);
694
+ resolveNext = null;
695
+ rejectNext = null;
696
+ }
697
+ };
698
+ const closeHandler = () => {
699
+ // If stream closed without end event (e.g., after destroy()),
700
+ // treat it as done
701
+ done = true;
702
+ if (resolveNext) {
703
+ resolveNext(null);
704
+ resolveNext = null;
705
+ rejectNext = null;
706
+ }
707
+ };
708
+ this.on("data", dataHandler);
709
+ this.on("end", endHandler);
710
+ this.on("error", errorHandler);
711
+ this.on("close", closeHandler);
712
+ try {
713
+ // Enter flowing mode
714
+ this.resume();
715
+ while (!done || dataQueueIndex < dataQueue.length) {
716
+ // Check for error before processing
717
+ if (streamError) {
718
+ throw streamError;
719
+ }
720
+ if (dataQueueIndex < dataQueue.length) {
721
+ const chunk = dataQueue[dataQueueIndex++];
722
+ if (dataQueueIndex >= 1024 && dataQueueIndex * 2 >= dataQueue.length) {
723
+ dataQueue.splice(0, dataQueueIndex);
724
+ dataQueueIndex = 0;
725
+ }
726
+ yield chunk;
727
+ }
728
+ else if (!done) {
729
+ const chunk = await new Promise((resolve, reject) => {
730
+ resolveNext = resolve;
731
+ rejectNext = reject;
732
+ });
733
+ if (chunk !== null) {
734
+ yield chunk;
735
+ }
736
+ }
737
+ }
738
+ // Check for error after loop
739
+ if (streamError) {
740
+ throw streamError;
741
+ }
742
+ }
743
+ finally {
744
+ this.off("data", dataHandler);
745
+ this.off("end", endHandler);
746
+ this.off("error", errorHandler);
747
+ this.off("close", closeHandler);
748
+ }
749
+ return;
750
+ }
751
+ // For Web Stream mode, use the underlying reader
752
+ if (!this._reader) {
753
+ this._reader = this._stream.getReader();
754
+ }
755
+ try {
756
+ while (true) {
757
+ const { done, value } = await this._reader.read();
758
+ if (done) {
759
+ break;
760
+ }
761
+ yield value;
762
+ }
763
+ }
764
+ finally {
765
+ this._reader.releaseLock();
766
+ }
767
+ }
768
+ /**
769
+ * Explicit iterator method (same as Symbol.asyncIterator)
770
+ */
771
+ iterator(options) {
772
+ const destroyOnReturn = options?.destroyOnReturn ?? true;
773
+ const iterator = this[Symbol.asyncIterator]();
774
+ if (!destroyOnReturn) {
775
+ return iterator;
776
+ }
777
+ // Wrap to handle early return
778
+ return {
779
+ next: async () => {
780
+ return iterator.next();
781
+ },
782
+ return: async (value) => {
783
+ this.destroy();
784
+ return { done: true, value };
785
+ },
786
+ [Symbol.asyncIterator]() {
787
+ return this;
788
+ }
789
+ };
790
+ }
791
+ // =========================================================================
792
+ // Async Iterator Helper Methods (Node.js 16.6+)
793
+ // =========================================================================
794
+ /**
795
+ * Map each chunk through an async function
796
+ */
797
+ async *map(fn, options) {
798
+ const signal = options?.signal;
799
+ for await (const chunk of this) {
800
+ if (signal?.aborted) {
801
+ throw new Error("AbortError");
802
+ }
803
+ yield await fn(chunk, { signal });
804
+ }
805
+ }
806
+ /**
807
+ * Filter chunks through an async predicate
808
+ */
809
+ async *filter(fn, options) {
810
+ const signal = options?.signal;
811
+ for await (const chunk of this) {
812
+ if (signal?.aborted) {
813
+ throw new Error("AbortError");
814
+ }
815
+ if (await fn(chunk, { signal })) {
816
+ yield chunk;
817
+ }
818
+ }
819
+ }
820
+ /**
821
+ * FlatMap each chunk
822
+ */
823
+ async *flatMap(fn, options) {
824
+ const signal = options?.signal;
825
+ for await (const chunk of this) {
826
+ if (signal?.aborted) {
827
+ throw new Error("AbortError");
828
+ }
829
+ const result = await fn(chunk, { signal });
830
+ for await (const item of result) {
831
+ yield item;
832
+ }
833
+ }
834
+ }
835
+ /**
836
+ * Take the first n chunks
837
+ */
838
+ async *take(limit, options) {
839
+ const signal = options?.signal;
840
+ let count = 0;
841
+ for await (const chunk of this) {
842
+ if (signal?.aborted) {
843
+ throw new Error("AbortError");
844
+ }
845
+ if (count >= limit) {
846
+ break;
847
+ }
848
+ yield chunk;
849
+ count++;
850
+ }
851
+ }
852
+ /**
853
+ * Drop the first n chunks
854
+ */
855
+ async *drop(limit, options) {
856
+ const signal = options?.signal;
857
+ let count = 0;
858
+ for await (const chunk of this) {
859
+ if (signal?.aborted) {
860
+ throw new Error("AbortError");
861
+ }
862
+ if (count >= limit) {
863
+ yield chunk;
864
+ }
865
+ count++;
866
+ }
867
+ }
868
+ async reduce(fn, initial, options) {
869
+ const signal = options?.signal;
870
+ let accumulator = initial;
871
+ let first = true;
872
+ for await (const chunk of this) {
873
+ if (signal?.aborted) {
874
+ throw new Error("AbortError");
875
+ }
876
+ if (first && accumulator === undefined) {
877
+ accumulator = chunk;
878
+ first = false;
879
+ }
880
+ else {
881
+ accumulator = await fn(accumulator, chunk, { signal });
882
+ }
883
+ }
884
+ if (accumulator === undefined) {
885
+ throw new TypeError("Reduce of empty stream with no initial value");
886
+ }
887
+ return accumulator;
888
+ }
889
+ /**
890
+ * Check if every chunk passes a predicate
891
+ */
892
+ async every(fn, options) {
893
+ const signal = options?.signal;
894
+ for await (const chunk of this) {
895
+ if (signal?.aborted) {
896
+ throw new Error("AbortError");
897
+ }
898
+ if (!(await fn(chunk, { signal }))) {
899
+ return false;
900
+ }
901
+ }
902
+ return true;
903
+ }
904
+ /**
905
+ * Check if some chunk passes a predicate
906
+ */
907
+ async some(fn, options) {
908
+ const signal = options?.signal;
909
+ for await (const chunk of this) {
910
+ if (signal?.aborted) {
911
+ throw new Error("AbortError");
912
+ }
913
+ if (await fn(chunk, { signal })) {
914
+ return true;
915
+ }
916
+ }
917
+ return false;
918
+ }
919
+ /**
920
+ * Find first chunk that passes predicate
921
+ */
922
+ async find(fn, options) {
923
+ const signal = options?.signal;
924
+ for await (const chunk of this) {
925
+ if (signal?.aborted) {
926
+ throw new Error("AbortError");
927
+ }
928
+ if (await fn(chunk, { signal })) {
929
+ return chunk;
930
+ }
931
+ }
932
+ return undefined;
933
+ }
934
+ /**
935
+ * Execute function for each chunk (like forEach)
936
+ */
937
+ async forEach(fn, options) {
938
+ const signal = options?.signal;
939
+ for await (const chunk of this) {
940
+ if (signal?.aborted) {
941
+ throw new Error("AbortError");
942
+ }
943
+ await fn(chunk, { signal });
944
+ }
945
+ }
946
+ /**
947
+ * Collect all chunks into an array
948
+ */
949
+ async toArray(options) {
950
+ const signal = options?.signal;
951
+ const result = [];
952
+ for await (const chunk of this) {
953
+ if (signal?.aborted) {
954
+ throw new Error("AbortError");
955
+ }
956
+ result.push(chunk);
957
+ }
958
+ return result;
959
+ }
960
+ /**
961
+ * Yield [index, value] pairs
962
+ */
963
+ async *asIndexedPairs(options) {
964
+ const signal = options?.signal;
965
+ let index = 0;
966
+ for await (const chunk of this) {
967
+ if (signal?.aborted) {
968
+ throw new Error("AbortError");
969
+ }
970
+ yield [index++, chunk];
971
+ }
972
+ }
973
+ compose(stream) {
974
+ if (typeof stream === "function") {
975
+ // It's an async generator function
976
+ const output = stream(this);
977
+ return Readable.from(output);
978
+ }
979
+ // It's a Duplex stream
980
+ this.pipe(stream);
981
+ return stream;
982
+ }
983
+ }
984
+ exports.Readable = Readable;
985
+ // =============================================================================
986
+ // Writable Stream Wrapper
987
+ // =============================================================================
988
+ /**
989
+ * A wrapper around Web WritableStream that provides Node.js-like API
990
+ */
991
+ class Writable extends event_emitter_1.EventEmitter {
992
+ constructor(options) {
993
+ super();
994
+ this._writer = null;
995
+ this._ended = false;
996
+ this._finished = false;
997
+ this._destroyed = false;
998
+ this._errored = null;
999
+ this._closed = false;
1000
+ this._pendingWrites = 0;
1001
+ this._writableLength = 0;
1002
+ this._corked = 0;
1003
+ this._corkedChunks = [];
1004
+ this._defaultEncoding = "utf8";
1005
+ this._aborted = false;
1006
+ this.objectMode = options?.objectMode ?? false;
1007
+ this.writableHighWaterMark = options?.highWaterMark ?? 16384;
1008
+ this.autoDestroy = options?.autoDestroy ?? true;
1009
+ this.emitClose = options?.emitClose ?? true;
1010
+ this._defaultEncoding = options?.defaultEncoding ?? "utf8";
1011
+ // Store user-provided write function
1012
+ if (options?.write) {
1013
+ this._writeFunc = options.write.bind(this);
1014
+ }
1015
+ // Store user-provided final function
1016
+ if (options?.final) {
1017
+ this._finalFunc = options.final.bind(this);
1018
+ }
1019
+ if (options?.stream) {
1020
+ this._stream = options.stream;
1021
+ }
1022
+ else {
1023
+ // Create bound references to instance properties/methods for use in WritableStream callbacks
1024
+ const getWriteFunc = () => this._writeFunc;
1025
+ const getFinalFunc = () => this._finalFunc;
1026
+ const getDefaultEncoding = () => this._defaultEncoding;
1027
+ const setFinished = (value) => {
1028
+ this._finished = value;
1029
+ };
1030
+ const setAborted = (value) => {
1031
+ this._aborted = value;
1032
+ };
1033
+ const emitEvent = this.emit.bind(this);
1034
+ const getEmitClose = () => this.emitClose;
1035
+ const callWrite = (chunk) => this._write?.(chunk);
1036
+ this._stream = new WritableStream({
1037
+ write: async (chunk) => {
1038
+ // Use user-provided write function or default behavior
1039
+ const writeFunc = getWriteFunc();
1040
+ if (writeFunc) {
1041
+ await new Promise((resolve, reject) => {
1042
+ writeFunc(chunk, getDefaultEncoding(), err => {
1043
+ if (err) {
1044
+ reject(err);
1045
+ }
1046
+ else {
1047
+ resolve();
1048
+ }
1049
+ });
1050
+ });
1051
+ }
1052
+ else {
1053
+ // Override this in subclasses
1054
+ callWrite(chunk);
1055
+ }
1056
+ },
1057
+ close: async () => {
1058
+ // Call final function if provided
1059
+ const finalFunc = getFinalFunc();
1060
+ if (finalFunc) {
1061
+ await new Promise((resolve, reject) => {
1062
+ finalFunc(err => {
1063
+ if (err) {
1064
+ reject(err);
1065
+ }
1066
+ else {
1067
+ resolve();
1068
+ }
1069
+ });
1070
+ });
1071
+ }
1072
+ setFinished(true);
1073
+ emitEvent("finish");
1074
+ if (getEmitClose()) {
1075
+ emitEvent("close");
1076
+ }
1077
+ },
1078
+ abort: reason => {
1079
+ setAborted(true);
1080
+ emitEvent("error", reason);
1081
+ }
1082
+ });
1083
+ }
1084
+ }
1085
+ /**
1086
+ * Set default encoding for string writes
1087
+ */
1088
+ setDefaultEncoding(encoding) {
1089
+ this._defaultEncoding = encoding;
1090
+ return this;
1091
+ }
1092
+ /**
1093
+ * Buffer writes until uncork() is called
1094
+ */
1095
+ cork() {
1096
+ this._corked++;
1097
+ }
1098
+ /**
1099
+ * Flush buffered writes from cork()
1100
+ */
1101
+ uncork() {
1102
+ if (this._corked > 0) {
1103
+ this._corked--;
1104
+ }
1105
+ if (this._corked === 0) {
1106
+ // Flush all corked chunks
1107
+ const chunks = this._corkedChunks;
1108
+ this._corkedChunks = [];
1109
+ for (const { chunk, callback } of chunks) {
1110
+ this._doWrite(chunk, callback);
1111
+ }
1112
+ }
1113
+ }
1114
+ write(chunk, encodingOrCallback, callback) {
1115
+ if (this._destroyed || this._ended) {
1116
+ const err = new Error("Cannot write after stream destroyed/ended");
1117
+ const cb = typeof encodingOrCallback === "function" ? encodingOrCallback : callback;
1118
+ cb?.(err);
1119
+ return false;
1120
+ }
1121
+ const cb = typeof encodingOrCallback === "function" ? encodingOrCallback : callback;
1122
+ // If corked, buffer the write
1123
+ if (this._corked > 0) {
1124
+ this._corkedChunks.push({ chunk, callback: cb });
1125
+ const chunkSize = this._getChunkSize(chunk);
1126
+ this._writableLength += chunkSize;
1127
+ return this._writableLength < this.writableHighWaterMark;
1128
+ }
1129
+ return this._doWrite(chunk, cb);
1130
+ }
1131
+ _doWrite(chunk, callback) {
1132
+ // Track pending writes for writableLength
1133
+ const chunkSize = this._getChunkSize(chunk);
1134
+ this._pendingWrites++;
1135
+ this._writableLength += chunkSize;
1136
+ this._getWriter()
1137
+ .write(chunk)
1138
+ .then(() => {
1139
+ this._pendingWrites--;
1140
+ this._writableLength -= chunkSize;
1141
+ this.emit("drain");
1142
+ callback?.(null);
1143
+ })
1144
+ .catch(err => {
1145
+ this._pendingWrites--;
1146
+ this._writableLength -= chunkSize;
1147
+ this.emit("error", err);
1148
+ callback?.(err);
1149
+ });
1150
+ // Return false if we've exceeded high water mark (for backpressure)
1151
+ return this._writableLength < this.writableHighWaterMark;
1152
+ }
1153
+ _getChunkSize(chunk) {
1154
+ if (this.objectMode) {
1155
+ return 1;
1156
+ }
1157
+ if (chunk instanceof Uint8Array) {
1158
+ return chunk.byteLength;
1159
+ }
1160
+ if (typeof chunk === "string") {
1161
+ return chunk.length;
1162
+ }
1163
+ return 0;
1164
+ }
1165
+ end(chunkOrCallback, encodingOrCallback, callback) {
1166
+ if (this._ended) {
1167
+ return this;
1168
+ }
1169
+ this._ended = true;
1170
+ const chunk = typeof chunkOrCallback !== "function" ? chunkOrCallback : undefined;
1171
+ const cb = typeof chunkOrCallback === "function"
1172
+ ? chunkOrCallback
1173
+ : typeof encodingOrCallback === "function"
1174
+ ? encodingOrCallback
1175
+ : callback;
1176
+ const finish = async () => {
1177
+ try {
1178
+ if (chunk !== undefined) {
1179
+ await this._getWriter().write(chunk);
1180
+ }
1181
+ await this._getWriter().close();
1182
+ this._finished = true;
1183
+ this.emit("finish");
1184
+ if (cb) {
1185
+ cb();
1186
+ }
1187
+ }
1188
+ catch (err) {
1189
+ this.emit("error", err);
1190
+ }
1191
+ };
1192
+ finish();
1193
+ return this;
1194
+ }
1195
+ /**
1196
+ * Destroy the stream
1197
+ */
1198
+ destroy(error) {
1199
+ if (this._destroyed) {
1200
+ return this;
1201
+ }
1202
+ this._destroyed = true;
1203
+ this._ended = true;
1204
+ if (error) {
1205
+ this._errored = error;
1206
+ this.emit("error", error);
1207
+ }
1208
+ if (this._writer) {
1209
+ this._writer.abort(error).catch(() => { });
1210
+ }
1211
+ this._closed = true;
1212
+ this.emit("close");
1213
+ return this;
1214
+ }
1215
+ /**
1216
+ * Get the underlying Web WritableStream
1217
+ */
1218
+ get webStream() {
1219
+ return this._stream;
1220
+ }
1221
+ get writable() {
1222
+ return !this._destroyed && !this._ended;
1223
+ }
1224
+ get writableEnded() {
1225
+ return this._ended;
1226
+ }
1227
+ get writableFinished() {
1228
+ return this._finished;
1229
+ }
1230
+ get writableLength() {
1231
+ return this._writableLength;
1232
+ }
1233
+ /** Whether the stream has been destroyed */
1234
+ get destroyed() {
1235
+ return this._destroyed;
1236
+ }
1237
+ /** The error that destroyed the stream, or null */
1238
+ get errored() {
1239
+ return this._errored;
1240
+ }
1241
+ /** Whether the stream has been closed */
1242
+ get closed() {
1243
+ return this._closed;
1244
+ }
1245
+ /** Whether the stream needs drain (writableLength exceeds high water mark) */
1246
+ get writableNeedDrain() {
1247
+ return this._writableLength >= this.writableHighWaterMark;
1248
+ }
1249
+ /** How many times cork() has been called without uncork() */
1250
+ get writableCorked() {
1251
+ return this._corked;
1252
+ }
1253
+ /** Whether the stream was aborted */
1254
+ get writableAborted() {
1255
+ return this._aborted;
1256
+ }
1257
+ /** Whether the stream is in object mode */
1258
+ get writableObjectMode() {
1259
+ return this.objectMode;
1260
+ }
1261
+ /** Get default encoding */
1262
+ get defaultEncoding() {
1263
+ return this._defaultEncoding;
1264
+ }
1265
+ /**
1266
+ * Get the internal buffer state (for debugging)
1267
+ * Returns array of objects with length and chunk info
1268
+ */
1269
+ get writableBuffer() {
1270
+ return {
1271
+ length: this._corkedChunks.length,
1272
+ head: this._corkedChunks.length > 0 ? this._corkedChunks[0].chunk : null
1273
+ };
1274
+ }
1275
+ /**
1276
+ * Write multiple chunks at once (batch write).
1277
+ * Override in subclass to implement custom batch write logic.
1278
+ */
1279
+ _writev(chunks, callback) {
1280
+ // Default implementation: write each chunk individually
1281
+ let i = 0;
1282
+ const writeNext = () => {
1283
+ if (i >= chunks.length) {
1284
+ callback(null);
1285
+ return;
1286
+ }
1287
+ const { chunk } = chunks[i++];
1288
+ this._doWrite(chunk, err => {
1289
+ if (err) {
1290
+ callback(err);
1291
+ return;
1292
+ }
1293
+ // Continue to next chunk
1294
+ writeNext();
1295
+ });
1296
+ };
1297
+ writeNext();
1298
+ }
1299
+ /**
1300
+ * Batch write multiple chunks
1301
+ */
1302
+ writev(chunks, callback) {
1303
+ if (this._destroyed || this._ended) {
1304
+ const err = new Error("Cannot write after stream destroyed/ended");
1305
+ callback?.(err);
1306
+ return false;
1307
+ }
1308
+ this._writev(chunks, callback ?? (() => { }));
1309
+ // Return backpressure indicator
1310
+ return this._writableLength < this.writableHighWaterMark;
1311
+ }
1312
+ _getWriter() {
1313
+ if (!this._writer) {
1314
+ this._writer = this._stream.getWriter();
1315
+ }
1316
+ return this._writer;
1317
+ }
1318
+ // =========================================================================
1319
+ // Static Methods (Node.js compatibility)
1320
+ // =========================================================================
1321
+ /**
1322
+ * Convert a Web WritableStream to Node.js Writable
1323
+ */
1324
+ static fromWeb(webStream, options) {
1325
+ return new Writable({ ...options, stream: webStream });
1326
+ }
1327
+ /**
1328
+ * Convert a Node.js Writable to Web WritableStream
1329
+ */
1330
+ static toWeb(nodeStream) {
1331
+ return nodeStream.webStream;
1332
+ }
1333
+ }
1334
+ exports.Writable = Writable;
1335
+ // =============================================================================
1336
+ // Cross-environment stream normalization
1337
+ // =============================================================================
1338
+ /**
1339
+ * Normalize a user-provided writable into this module's Writable.
1340
+ * Keeps Web/Node branching at the stream-module boundary.
1341
+ */
1342
+ function normalizeWritable(stream) {
1343
+ if (stream instanceof Writable) {
1344
+ return stream;
1345
+ }
1346
+ // Web WritableStream
1347
+ if (stream?.getWriter) {
1348
+ return new Writable({ stream: stream });
1349
+ }
1350
+ // Already a Node-like writable (e.g. StreamBuf)
1351
+ return stream;
1352
+ }
1353
+ // =============================================================================
1354
+ // Transform Stream Wrapper
1355
+ // =============================================================================
1356
+ /**
1357
+ * A wrapper around Web TransformStream that provides Node.js-like API
1358
+ */
1359
+ class Transform extends event_emitter_1.EventEmitter {
1360
+ /**
1361
+ * Push data to the readable side (Node.js compatibility)
1362
+ * Can be called from within transform callback
1363
+ */
1364
+ push(chunk) {
1365
+ if (chunk === null) {
1366
+ return false;
1367
+ }
1368
+ if (this._transformController) {
1369
+ // If we're in a transform callback, enqueue directly
1370
+ this._transformController.enqueue(chunk);
1371
+ }
1372
+ else {
1373
+ // Otherwise buffer for later
1374
+ this._pushBuffer.push(chunk);
1375
+ }
1376
+ return true;
1377
+ }
1378
+ constructor(options) {
1379
+ super();
1380
+ this._ended = false;
1381
+ this._destroyed = false;
1382
+ this._errored = false;
1383
+ // Buffer for Node.js style push() calls during transform
1384
+ this._pushBuffer = [];
1385
+ // Controller for enqueueing pushed data (set during transform execution)
1386
+ this._transformController = null;
1387
+ // Buffer for writes that occur after end() but before writable is closed
1388
+ this._pendingEndWrites = [];
1389
+ // Whether end() has been called but writable not yet closed
1390
+ this._endPending = false;
1391
+ // Track if we've already set up data forwarding
1392
+ this._dataForwardingSetup = false;
1393
+ /** @internal - whether we have a data event consumer */
1394
+ this._hasDataConsumer = false;
1395
+ /** @internal - whether we're auto-consuming the readable */
1396
+ this._readableConsuming = false;
1397
+ /** @internal - buffer for auto-consumed data */
1398
+ this._autoConsumedBuffer = [];
1399
+ this._autoConsumedBufferIndex = 0;
1400
+ /** @internal - whether auto-consume has ended */
1401
+ this._autoConsumeEnded = false;
1402
+ /** @internal - promise that resolves when auto-consume finishes */
1403
+ this._autoConsumePromise = null;
1404
+ this.objectMode = options?.objectMode ?? false;
1405
+ const userTransform = options?.transform;
1406
+ const userFlush = options?.flush;
1407
+ // Create bound references for use in TransformStream callbacks
1408
+ const setController = (ctrl) => {
1409
+ this._transformController = ctrl;
1410
+ };
1411
+ const emitEvent = (event, ...args) => {
1412
+ if (event === "error") {
1413
+ // Only emit error once to prevent duplicate events
1414
+ if (this._errored) {
1415
+ return false;
1416
+ }
1417
+ this._errored = true;
1418
+ // Also destroy the writable to prevent further writes
1419
+ this._writable.destroy(args[0]);
1420
+ }
1421
+ return this.emit(event, ...args);
1422
+ };
1423
+ const getInstance = () => this;
1424
+ // Check if subclass overrides _transform (for Node.js compatibility)
1425
+ // We need to check this at runtime since the subclass constructor runs after super()
1426
+ const hasSubclassTransform = () => {
1427
+ // If userTransform was provided in options, use that
1428
+ if (userTransform) {
1429
+ return false;
1430
+ }
1431
+ // Check if _transform is overridden (not the base class no-op)
1432
+ const proto = Object.getPrototypeOf(this);
1433
+ return proto._transform !== Transform.prototype._transform;
1434
+ };
1435
+ const hasSubclassFlush = () => {
1436
+ if (userFlush) {
1437
+ return false;
1438
+ }
1439
+ const proto = Object.getPrototypeOf(this);
1440
+ return proto._flush !== Transform.prototype._flush;
1441
+ };
1442
+ this._stream = new TransformStream({
1443
+ transform: async (chunk, controller) => {
1444
+ // Skip processing if already errored
1445
+ if (this._errored) {
1446
+ return;
1447
+ }
1448
+ try {
1449
+ // Set controller for push() to use
1450
+ setController(controller);
1451
+ // Check for subclass _transform override first
1452
+ if (hasSubclassTransform()) {
1453
+ // Call subclass _transform method (Node.js style)
1454
+ // _transform signature is (chunk, encoding, callback)
1455
+ await new Promise((resolve, reject) => {
1456
+ this._transform(chunk, "utf8", (err, data) => {
1457
+ if (err) {
1458
+ reject(err);
1459
+ }
1460
+ else {
1461
+ if (data !== undefined) {
1462
+ controller.enqueue(data);
1463
+ }
1464
+ resolve();
1465
+ }
1466
+ });
1467
+ });
1468
+ }
1469
+ else if (userTransform) {
1470
+ const transformParamCount = userTransform.length;
1471
+ if (transformParamCount >= 3) {
1472
+ // Node.js style: transform(chunk, encoding, callback)
1473
+ await new Promise((resolve, reject) => {
1474
+ userTransform.call(getInstance(), chunk, "utf8", (err, data) => {
1475
+ if (err) {
1476
+ reject(err);
1477
+ }
1478
+ else {
1479
+ if (data !== undefined) {
1480
+ controller.enqueue(data);
1481
+ }
1482
+ resolve();
1483
+ }
1484
+ });
1485
+ });
1486
+ }
1487
+ else if (transformParamCount === 2) {
1488
+ await new Promise((resolve, reject) => {
1489
+ userTransform.call(getInstance(), chunk, (err, data) => {
1490
+ if (err) {
1491
+ reject(err);
1492
+ }
1493
+ else {
1494
+ if (data !== undefined) {
1495
+ controller.enqueue(data);
1496
+ }
1497
+ resolve();
1498
+ }
1499
+ });
1500
+ });
1501
+ }
1502
+ else {
1503
+ // Simple style: transform(chunk) => result
1504
+ const result = userTransform.call(getInstance(), chunk);
1505
+ if (result && typeof result.then === "function") {
1506
+ const awaitedResult = await result;
1507
+ if (awaitedResult !== undefined) {
1508
+ controller.enqueue(awaitedResult);
1509
+ }
1510
+ }
1511
+ else {
1512
+ if (result !== undefined) {
1513
+ controller.enqueue(result);
1514
+ }
1515
+ }
1516
+ }
1517
+ }
1518
+ else {
1519
+ // Default: pass through
1520
+ controller.enqueue(chunk);
1521
+ }
1522
+ }
1523
+ catch (err) {
1524
+ controller.error(err);
1525
+ emitEvent("error", err);
1526
+ }
1527
+ finally {
1528
+ setController(null);
1529
+ }
1530
+ },
1531
+ flush: async (controller) => {
1532
+ try {
1533
+ setController(controller);
1534
+ // Check for subclass _flush override first
1535
+ if (hasSubclassFlush()) {
1536
+ await new Promise((resolve, reject) => {
1537
+ this._flush((err, data) => {
1538
+ if (err) {
1539
+ reject(err);
1540
+ }
1541
+ else {
1542
+ if (data !== undefined) {
1543
+ controller.enqueue(data);
1544
+ }
1545
+ resolve();
1546
+ }
1547
+ });
1548
+ });
1549
+ }
1550
+ else if (userFlush) {
1551
+ const flushParamCount = userFlush.length;
1552
+ if (flushParamCount >= 1) {
1553
+ // Node.js style: flush(callback)
1554
+ await new Promise((resolve, reject) => {
1555
+ userFlush.call(getInstance(), (err, data) => {
1556
+ if (err) {
1557
+ reject(err);
1558
+ }
1559
+ else {
1560
+ if (data !== undefined) {
1561
+ controller.enqueue(data);
1562
+ }
1563
+ resolve();
1564
+ }
1565
+ });
1566
+ });
1567
+ }
1568
+ else {
1569
+ // Simple style: flush() => result
1570
+ const result = userFlush.call(getInstance());
1571
+ if (result && typeof result.then === "function") {
1572
+ const awaitedResult = await result;
1573
+ if (awaitedResult !== undefined && awaitedResult !== null) {
1574
+ controller.enqueue(awaitedResult);
1575
+ }
1576
+ }
1577
+ else {
1578
+ if (result !== undefined && result !== null) {
1579
+ controller.enqueue(result);
1580
+ }
1581
+ }
1582
+ }
1583
+ }
1584
+ // No flush defined - nothing to do
1585
+ }
1586
+ catch (err) {
1587
+ controller.error(err);
1588
+ emitEvent("error", err);
1589
+ }
1590
+ finally {
1591
+ setController(null);
1592
+ }
1593
+ }
1594
+ });
1595
+ this._readable = new Readable({
1596
+ stream: this._stream.readable,
1597
+ objectMode: this.objectMode
1598
+ });
1599
+ this._writable = new Writable({
1600
+ stream: this._stream.writable,
1601
+ objectMode: this.objectMode
1602
+ });
1603
+ // Forward non-data events (data forwarding is lazy to avoid premature flowing)
1604
+ this._readable.on("end", () => this.emit("end"));
1605
+ // Only forward errors if not already errored (to prevent duplicate events)
1606
+ this._readable.on("error", err => {
1607
+ if (!this._errored) {
1608
+ this._errored = true;
1609
+ this.emit("error", err);
1610
+ }
1611
+ });
1612
+ this._writable.on("finish", () => this.emit("finish"));
1613
+ this._writable.on("drain", () => this.emit("drain"));
1614
+ // Only forward errors if not already errored (to prevent duplicate events)
1615
+ this._writable.on("error", err => {
1616
+ if (!this._errored) {
1617
+ this._errored = true;
1618
+ this.emit("error", err);
1619
+ }
1620
+ });
1621
+ }
1622
+ /**
1623
+ * Override on to start flowing when data listener is added
1624
+ */
1625
+ on(event, listener) {
1626
+ // Set up data forwarding when first external data listener is added
1627
+ if (event === "data" && !this._dataForwardingSetup) {
1628
+ this._dataForwardingSetup = true;
1629
+ this._readable.on("data", data => this.emit("data", data));
1630
+ }
1631
+ super.on(event, listener);
1632
+ // When data listener is added, mark as having consumer
1633
+ // and start the readable in flowing mode
1634
+ if (event === "data") {
1635
+ this._hasDataConsumer = true;
1636
+ this._readable.resume();
1637
+ }
1638
+ return this;
1639
+ }
1640
+ write(chunk, encodingOrCallback, callback) {
1641
+ const cb = typeof encodingOrCallback === "function" ? encodingOrCallback : callback;
1642
+ if (this._destroyed || this._errored) {
1643
+ const err = new Error(this._errored ? "Cannot write after stream errored" : "Cannot write after stream destroyed");
1644
+ queueMicrotask(() => this.emit("error", err));
1645
+ cb?.(err);
1646
+ return false;
1647
+ }
1648
+ // Ensure readable is being consumed to allow transform to execute
1649
+ // This matches Node.js behavior where transform executes immediately on write
1650
+ // Only auto-consume if no explicit consumer (data listener or pipe)
1651
+ if (!this._readableConsuming && !this._hasDataConsumer) {
1652
+ this._readableConsuming = true;
1653
+ this._startAutoConsume();
1654
+ }
1655
+ // If end() was called but writable not yet closed, buffer the write
1656
+ // This allows writes during data event handlers to be processed
1657
+ if (this._endPending) {
1658
+ this._pendingEndWrites.push({ chunk, callback: cb });
1659
+ return true;
1660
+ }
1661
+ return this._writable.write(chunk, cb);
1662
+ }
1663
+ /** @internal - auto-consume readable to allow transform to execute */
1664
+ _startAutoConsume() {
1665
+ this._autoConsumePromise = (async () => {
1666
+ try {
1667
+ for await (const chunk of this._readable) {
1668
+ // Buffer the data for later retrieval
1669
+ this._autoConsumedBuffer.push(chunk);
1670
+ // Also emit data event for listeners
1671
+ this.emit("data", chunk);
1672
+ }
1673
+ this._autoConsumeEnded = true;
1674
+ this.emit("end");
1675
+ }
1676
+ catch (err) {
1677
+ this.emit("error", err);
1678
+ }
1679
+ })();
1680
+ }
1681
+ end(chunkOrCallback, encodingOrCallback, callback) {
1682
+ if (this._ended) {
1683
+ return this;
1684
+ }
1685
+ this._ended = true;
1686
+ this._endPending = true;
1687
+ const chunk = typeof chunkOrCallback === "function" ? undefined : chunkOrCallback;
1688
+ const cb = typeof chunkOrCallback === "function"
1689
+ ? chunkOrCallback
1690
+ : typeof encodingOrCallback === "function"
1691
+ ? encodingOrCallback
1692
+ : callback;
1693
+ if (cb) {
1694
+ this.once("finish", cb);
1695
+ }
1696
+ if (chunk !== undefined) {
1697
+ this._writable.write(chunk);
1698
+ }
1699
+ // Use setTimeout(0) instead of queueMicrotask to ensure all transform
1700
+ // processing and data events complete before we close the writable.
1701
+ // Microtasks run before the TransformStream processes data.
1702
+ setTimeout(() => {
1703
+ // Process any writes that occurred during data events
1704
+ for (const { chunk: pendingChunk, callback } of this._pendingEndWrites) {
1705
+ this._writable.write(pendingChunk, callback);
1706
+ }
1707
+ this._pendingEndWrites = [];
1708
+ this._endPending = false;
1709
+ this._writable.end();
1710
+ }, 0);
1711
+ return this;
1712
+ }
1713
+ /**
1714
+ * Read from the transform stream
1715
+ */
1716
+ read(size) {
1717
+ return this._readable.read(size);
1718
+ }
1719
+ /**
1720
+ * Pipe to another stream (writable, transform, or duplex)
1721
+ */
1722
+ pipe(destination) {
1723
+ // Mark as having consumer to prevent auto-consume conflict
1724
+ this._hasDataConsumer = true;
1725
+ return this._readable.pipe(destination);
1726
+ }
1727
+ /**
1728
+ * Unpipe from destination
1729
+ */
1730
+ unpipe(destination) {
1731
+ this._readable.unpipe(destination);
1732
+ return this;
1733
+ }
1734
+ /**
1735
+ * Check if paused
1736
+ */
1737
+ isPaused() {
1738
+ return this._readable.isPaused();
1739
+ }
1740
+ /**
1741
+ * Resume reading from the readable side
1742
+ */
1743
+ resume() {
1744
+ this._readable.resume();
1745
+ return this;
1746
+ }
1747
+ /**
1748
+ * Pause reading from the readable side
1749
+ */
1750
+ pause() {
1751
+ this._readable.pause();
1752
+ return this;
1753
+ }
1754
+ /**
1755
+ * Destroy the stream
1756
+ */
1757
+ destroy(error) {
1758
+ if (this._destroyed) {
1759
+ return;
1760
+ }
1761
+ this._destroyed = true;
1762
+ this._readable.destroy(error);
1763
+ this._writable.destroy(error);
1764
+ queueMicrotask(() => this.emit("close"));
1765
+ }
1766
+ /**
1767
+ * Get the underlying Web TransformStream
1768
+ */
1769
+ get webStream() {
1770
+ return this._stream;
1771
+ }
1772
+ get readable() {
1773
+ return this._readable.readable;
1774
+ }
1775
+ get writable() {
1776
+ return this._writable.writable;
1777
+ }
1778
+ get readableEnded() {
1779
+ return this._readable.readableEnded;
1780
+ }
1781
+ get writableEnded() {
1782
+ return this._writable.writableEnded;
1783
+ }
1784
+ get writableFinished() {
1785
+ return this._writable.writableFinished;
1786
+ }
1787
+ get readableLength() {
1788
+ return this._readable.readableLength;
1789
+ }
1790
+ get writableLength() {
1791
+ return this._writable.writableLength;
1792
+ }
1793
+ get readableHighWaterMark() {
1794
+ return this._readable.readableHighWaterMark;
1795
+ }
1796
+ get writableHighWaterMark() {
1797
+ return this._writable.writableHighWaterMark;
1798
+ }
1799
+ get readableObjectMode() {
1800
+ return this._readable.readableObjectMode ?? this._readable.objectMode;
1801
+ }
1802
+ get readableFlowing() {
1803
+ return this._readable.readableFlowing;
1804
+ }
1805
+ get destroyed() {
1806
+ return this._destroyed;
1807
+ }
1808
+ /**
1809
+ * Async iterator support
1810
+ */
1811
+ async *[Symbol.asyncIterator]() {
1812
+ // If auto-consume is running, wait for it to finish and use its buffer
1813
+ if (this._autoConsumePromise) {
1814
+ await this._autoConsumePromise;
1815
+ // Yield all buffered data
1816
+ while (this._autoConsumedBufferIndex < this._autoConsumedBuffer.length) {
1817
+ yield this._autoConsumedBuffer[this._autoConsumedBufferIndex++];
1818
+ }
1819
+ // Reset when drained to avoid prefix growth
1820
+ this._autoConsumedBuffer.length = 0;
1821
+ this._autoConsumedBufferIndex = 0;
1822
+ return;
1823
+ }
1824
+ // Otherwise delegate to readable's iterator
1825
+ yield* this._readable[Symbol.asyncIterator]();
1826
+ }
1827
+ // =========================================================================
1828
+ // Static Methods (Node.js compatibility)
1829
+ // =========================================================================
1830
+ /**
1831
+ * Convert a Web TransformStream to Node.js Transform
1832
+ */
1833
+ static fromWeb(webStream, options) {
1834
+ const transform = new Transform(options);
1835
+ // Connect the web stream - set the internal _stream property
1836
+ transform._stream = webStream;
1837
+ // Replace internal streams with the ones from the web stream
1838
+ const newReadable = Readable.fromWeb(webStream.readable, { objectMode: options?.objectMode });
1839
+ const newWritable = Writable.fromWeb(webStream.writable, { objectMode: options?.objectMode });
1840
+ // Remove old event listeners before replacing
1841
+ transform._readable.removeAllListeners();
1842
+ transform._writable.removeAllListeners();
1843
+ transform._readable = newReadable;
1844
+ transform._writable = newWritable;
1845
+ // Re-connect event forwarding
1846
+ newReadable.on("data", (data) => transform.emit("data", data));
1847
+ newReadable.on("end", () => transform.emit("end"));
1848
+ newReadable.on("error", (err) => transform.emit("error", err));
1849
+ newWritable.on("finish", () => transform.emit("finish"));
1850
+ newWritable.on("drain", () => transform.emit("drain"));
1851
+ newWritable.on("error", (err) => transform.emit("error", err));
1852
+ return transform;
1853
+ }
1854
+ /**
1855
+ * Convert a Node.js Transform to Web TransformStream
1856
+ */
1857
+ static toWeb(nodeStream) {
1858
+ return nodeStream.webStream;
1859
+ }
1860
+ // =========================================================================
1861
+ // Base Class Methods (for subclass override detection)
1862
+ // =========================================================================
1863
+ /**
1864
+ * Base transform method - can be overridden by subclasses.
1865
+ * Default behavior: pass through chunk unchanged.
1866
+ */
1867
+ _transform(chunk, encoding, callback) {
1868
+ // Default: pass through unchanged
1869
+ callback(null, chunk);
1870
+ }
1871
+ /**
1872
+ * Base flush method - can be overridden by subclasses.
1873
+ * Called when the stream ends to allow final processing.
1874
+ */
1875
+ _flush(callback) {
1876
+ // Default: no-op
1877
+ callback();
1878
+ }
1879
+ }
1880
+ exports.Transform = Transform;
1881
+ // =============================================================================
1882
+ // Duplex Stream
1883
+ // =============================================================================
1884
+ /**
1885
+ * A duplex stream that combines readable and writable
1886
+ */
1887
+ class Duplex extends event_emitter_1.EventEmitter {
1888
+ /**
1889
+ * Create a Duplex stream from various sources
1890
+ */
1891
+ static from(source) {
1892
+ // If it's already a Duplex, return as-is
1893
+ if (source instanceof Duplex) {
1894
+ return source;
1895
+ }
1896
+ const forwardReadableToDuplex = (readable, duplex) => {
1897
+ const sink = new Writable({
1898
+ objectMode: duplex.readableObjectMode,
1899
+ write(chunk, _encoding, callback) {
1900
+ duplex.push(chunk);
1901
+ callback();
1902
+ },
1903
+ final(callback) {
1904
+ duplex.push(null);
1905
+ callback();
1906
+ }
1907
+ });
1908
+ readable.on("error", err => duplex.emit("error", err));
1909
+ readable.pipe(sink);
1910
+ };
1911
+ // If it has readable and/or writable properties
1912
+ if (typeof source === "object" &&
1913
+ source !== null &&
1914
+ "readable" in source &&
1915
+ "writable" in source) {
1916
+ const duplex = new Duplex();
1917
+ const pair = source;
1918
+ if (pair.readable) {
1919
+ forwardReadableToDuplex(pair.readable, duplex);
1920
+ }
1921
+ if (pair.writable) {
1922
+ return new Duplex({
1923
+ objectMode: duplex.writableObjectMode,
1924
+ write(chunk, encoding, callback) {
1925
+ pair.writable.write(chunk, encoding, callback);
1926
+ },
1927
+ final(callback) {
1928
+ pair.writable.end(callback);
1929
+ }
1930
+ });
1931
+ }
1932
+ return duplex;
1933
+ }
1934
+ // If it's an iterable
1935
+ if (typeof source === "object" &&
1936
+ source !== null &&
1937
+ (Symbol.asyncIterator in source || Symbol.iterator in source)) {
1938
+ const readable = Readable.from(source);
1939
+ const duplex = new Duplex();
1940
+ forwardReadableToDuplex(readable, duplex);
1941
+ return duplex;
1942
+ }
1943
+ // If it's a Readable
1944
+ if (source instanceof Readable) {
1945
+ const duplex = new Duplex();
1946
+ forwardReadableToDuplex(source, duplex);
1947
+ return duplex;
1948
+ }
1949
+ // If it's a Writable
1950
+ if (source instanceof Writable) {
1951
+ return new Duplex({
1952
+ objectMode: true,
1953
+ write(chunk, encoding, callback) {
1954
+ source.write(chunk, encoding, callback);
1955
+ },
1956
+ final(callback) {
1957
+ source.end(callback);
1958
+ }
1959
+ });
1960
+ }
1961
+ throw new Error("Duplex.from: unsupported source type");
1962
+ }
1963
+ /**
1964
+ * Create a Duplex from a Web ReadableWritablePair
1965
+ */
1966
+ static fromWeb(pair, options) {
1967
+ const duplex = new Duplex(options);
1968
+ // Replace internal streams
1969
+ duplex._readable = new Readable({ stream: pair.readable });
1970
+ duplex._writable = new Writable({ stream: pair.writable });
1971
+ return duplex;
1972
+ }
1973
+ /**
1974
+ * Convert a Node.js Duplex to Web ReadableWritablePair
1975
+ */
1976
+ static toWeb(duplex) {
1977
+ return {
1978
+ readable: duplex._readable.webStream,
1979
+ writable: duplex._writable.webStream
1980
+ };
1981
+ }
1982
+ constructor(options) {
1983
+ super();
1984
+ // Track if we've already set up data forwarding
1985
+ this._dataForwardingSetup = false;
1986
+ this.allowHalfOpen = options?.allowHalfOpen ?? true;
1987
+ // Support shorthand objectMode option
1988
+ const objectMode = options?.objectMode ?? false;
1989
+ this.readableObjectMode = options?.readableObjectMode ?? objectMode;
1990
+ this.writableObjectMode = options?.writableObjectMode ?? objectMode;
1991
+ this._readable = new Readable({
1992
+ highWaterMark: options?.readableHighWaterMark,
1993
+ objectMode: this.readableObjectMode,
1994
+ read: options?.read?.bind(this)
1995
+ });
1996
+ this._writable = new Writable({
1997
+ highWaterMark: options?.writableHighWaterMark,
1998
+ objectMode: this.writableObjectMode,
1999
+ write: options?.write?.bind(this),
2000
+ final: options?.final?.bind(this)
2001
+ });
2002
+ // Forward non-data events (data forwarding is lazy to avoid premature flowing)
2003
+ this._readable.on("end", () => {
2004
+ this.emit("end");
2005
+ // If not allowHalfOpen, end the writable side too
2006
+ if (!this.allowHalfOpen) {
2007
+ this._writable.end();
2008
+ }
2009
+ });
2010
+ this._readable.on("error", err => this.emit("error", err));
2011
+ this._writable.on("finish", () => this.emit("finish"));
2012
+ this._writable.on("drain", () => this.emit("drain"));
2013
+ this._writable.on("close", () => {
2014
+ // If not allowHalfOpen, destroy the readable side too
2015
+ if (!this.allowHalfOpen && !this._readable.destroyed) {
2016
+ this._readable.destroy();
2017
+ }
2018
+ });
2019
+ }
2020
+ /**
2021
+ * Override on() to set up data forwarding lazily
2022
+ */
2023
+ on(event, listener) {
2024
+ // Set up data forwarding when first external data listener is added
2025
+ if (event === "data" && !this._dataForwardingSetup) {
2026
+ this._dataForwardingSetup = true;
2027
+ this._readable.on("data", chunk => this.emit("data", chunk));
2028
+ }
2029
+ return super.on(event, listener);
2030
+ }
2031
+ /**
2032
+ * Push data to readable side
2033
+ */
2034
+ push(chunk) {
2035
+ return this._readable.push(chunk);
2036
+ }
2037
+ /**
2038
+ * Put a chunk back at the front of the buffer (readable side)
2039
+ */
2040
+ unshift(chunk) {
2041
+ this._readable.unshift(chunk);
2042
+ }
2043
+ /**
2044
+ * Read from readable side
2045
+ */
2046
+ read(size) {
2047
+ return this._readable.read(size);
2048
+ }
2049
+ write(chunk, encodingOrCallback, callback) {
2050
+ const cb = typeof encodingOrCallback === "function" ? encodingOrCallback : callback;
2051
+ return this._writable.write(chunk, cb);
2052
+ }
2053
+ end(chunkOrCallback, encodingOrCallback, callback) {
2054
+ const chunk = typeof chunkOrCallback === "function" ? undefined : chunkOrCallback;
2055
+ const cb = typeof chunkOrCallback === "function"
2056
+ ? chunkOrCallback
2057
+ : typeof encodingOrCallback === "function"
2058
+ ? encodingOrCallback
2059
+ : callback;
2060
+ if (cb) {
2061
+ this.once("finish", cb);
2062
+ }
2063
+ if (chunk !== undefined) {
2064
+ this._writable.write(chunk);
2065
+ }
2066
+ this._writable.end();
2067
+ return this;
2068
+ }
2069
+ /**
2070
+ * Cork the writable side
2071
+ */
2072
+ cork() {
2073
+ this._writable.cork();
2074
+ }
2075
+ /**
2076
+ * Uncork the writable side
2077
+ */
2078
+ uncork() {
2079
+ this._writable.uncork();
2080
+ }
2081
+ /**
2082
+ * Set encoding for readable side
2083
+ */
2084
+ setEncoding(encoding) {
2085
+ this._readable.setEncoding(encoding);
2086
+ return this;
2087
+ }
2088
+ /**
2089
+ * Set default encoding for writable side
2090
+ */
2091
+ setDefaultEncoding(encoding) {
2092
+ this._writable.setDefaultEncoding(encoding);
2093
+ return this;
2094
+ }
2095
+ /**
2096
+ * Pipe readable side to destination
2097
+ */
2098
+ pipe(destination) {
2099
+ if (destination instanceof Transform) {
2100
+ this._readable.pipe(destination._writable);
2101
+ return destination;
2102
+ }
2103
+ this._readable.pipe(destination);
2104
+ return destination;
2105
+ }
2106
+ /**
2107
+ * Unpipe from destination
2108
+ */
2109
+ unpipe(destination) {
2110
+ this._readable.unpipe(destination);
2111
+ return this;
2112
+ }
2113
+ /**
2114
+ * Pause the readable side
2115
+ */
2116
+ pause() {
2117
+ this._readable.pause();
2118
+ return this;
2119
+ }
2120
+ /**
2121
+ * Resume the readable side
2122
+ */
2123
+ resume() {
2124
+ this._readable.resume();
2125
+ return this;
2126
+ }
2127
+ /**
2128
+ * Check if paused
2129
+ */
2130
+ isPaused() {
2131
+ return this._readable.isPaused();
2132
+ }
2133
+ /**
2134
+ * Destroy both sides
2135
+ */
2136
+ destroy(error) {
2137
+ this._readable.destroy(error);
2138
+ this._writable.destroy(error);
2139
+ return this;
2140
+ }
2141
+ get readable() {
2142
+ return this._readable.readable;
2143
+ }
2144
+ get writable() {
2145
+ return this._writable.writable;
2146
+ }
2147
+ get readableEnded() {
2148
+ return this._readable.readableEnded;
2149
+ }
2150
+ get writableEnded() {
2151
+ return this._writable.writableEnded;
2152
+ }
2153
+ get writableFinished() {
2154
+ return this._writable.writableFinished;
2155
+ }
2156
+ get readableLength() {
2157
+ return this._readable.readableLength;
2158
+ }
2159
+ get writableLength() {
2160
+ return this._writable.writableLength;
2161
+ }
2162
+ get readableHighWaterMark() {
2163
+ return this._readable.readableHighWaterMark;
2164
+ }
2165
+ get writableHighWaterMark() {
2166
+ return this._writable.writableHighWaterMark;
2167
+ }
2168
+ get destroyed() {
2169
+ return this._readable.destroyed && this._writable.destroyed;
2170
+ }
2171
+ get writableCorked() {
2172
+ return this._writable.writableCorked;
2173
+ }
2174
+ get writableNeedDrain() {
2175
+ return this._writable.writableNeedDrain;
2176
+ }
2177
+ /**
2178
+ * Async iterator support
2179
+ */
2180
+ [Symbol.asyncIterator]() {
2181
+ return this._readable[Symbol.asyncIterator]();
2182
+ }
2183
+ }
2184
+ exports.Duplex = Duplex;
2185
+ // =============================================================================
2186
+ // PassThrough Stream
2187
+ // =============================================================================
2188
+ /**
2189
+ * A passthrough stream that passes data through unchanged
2190
+ */
2191
+ class PassThrough extends Transform {
2192
+ constructor(options) {
2193
+ super({
2194
+ ...options,
2195
+ transform: chunk => chunk
2196
+ });
2197
+ }
2198
+ }
2199
+ exports.PassThrough = PassThrough;
2200
+ // =============================================================================
2201
+ // Collector Stream
2202
+ // =============================================================================
2203
+ /**
2204
+ * A writable stream that collects all chunks
2205
+ */
2206
+ class Collector extends Writable {
2207
+ constructor(options) {
2208
+ const collectedChunks = [];
2209
+ super({
2210
+ ...options,
2211
+ stream: new WritableStream({
2212
+ write: chunk => {
2213
+ collectedChunks.push(chunk);
2214
+ },
2215
+ close: () => {
2216
+ // Finished
2217
+ }
2218
+ })
2219
+ });
2220
+ this.chunks = [];
2221
+ this.chunks = collectedChunks;
2222
+ }
2223
+ write(chunk, encodingOrCallback, callback) {
2224
+ if (this.writableEnded || this.writableFinished) {
2225
+ const err = new Error("write after end");
2226
+ this.emit("error", err);
2227
+ return false;
2228
+ }
2229
+ const cb = typeof encodingOrCallback === "function" ? encodingOrCallback : callback;
2230
+ // Synchronously push to chunks
2231
+ this.chunks.push(chunk);
2232
+ cb?.(null);
2233
+ return true;
2234
+ }
2235
+ /**
2236
+ * Get all collected data as a single Uint8Array (for binary mode)
2237
+ */
2238
+ toUint8Array() {
2239
+ const chunks = this.chunks;
2240
+ const len = chunks.length;
2241
+ if (len === 0) {
2242
+ return new Uint8Array(0);
2243
+ }
2244
+ if (len === 1 && chunks[0] instanceof Uint8Array) {
2245
+ return chunks[0];
2246
+ }
2247
+ // If chunks are Uint8Arrays, concatenate them
2248
+ if (chunks[0] instanceof Uint8Array) {
2249
+ return (0, shared_1.concatUint8Arrays)(chunks);
2250
+ }
2251
+ throw new Error("Collector contains non-binary data");
2252
+ }
2253
+ /**
2254
+ * Get all collected data as a string
2255
+ */
2256
+ toString() {
2257
+ const chunks = this.chunks;
2258
+ const len = chunks.length;
2259
+ if (len === 0) {
2260
+ return "";
2261
+ }
2262
+ const first = chunks[0];
2263
+ if (typeof first === "string") {
2264
+ if (len === 1) {
2265
+ return first;
2266
+ }
2267
+ return chunks.join("");
2268
+ }
2269
+ return shared_1.textDecoder.decode(this.toUint8Array());
2270
+ }
2271
+ get isFinished() {
2272
+ // Use inherited writable property
2273
+ return this.writableFinished;
2274
+ }
2275
+ }
2276
+ exports.Collector = Collector;
2277
+ // =============================================================================
2278
+ // PullStream / BufferedStream / DataChunk helpers
2279
+ // =============================================================================
2280
+ class PullStream extends pull_stream_1.PullStream {
2281
+ // Keep constructor signature aligned with streams.browser.ts public API
2282
+ constructor(options) {
2283
+ super(options);
2284
+ }
2285
+ }
2286
+ exports.PullStream = PullStream;
2287
+ class StringChunk extends buffered_stream_1.StringChunk {
2288
+ }
2289
+ exports.StringChunk = StringChunk;
2290
+ class BufferChunk extends buffered_stream_1.BufferChunk {
2291
+ }
2292
+ exports.BufferChunk = BufferChunk;
2293
+ class BufferedStream extends buffered_stream_1.BufferedStream {
2294
+ constructor(options) {
2295
+ super(options);
2296
+ }
2297
+ }
2298
+ exports.BufferedStream = BufferedStream;
2299
+ // =============================================================================
2300
+ // Stream Creation Functions
2301
+ // =============================================================================
2302
+ /**
2303
+ * Create a readable stream with custom read implementation
2304
+ */
2305
+ function createReadable(options) {
2306
+ const readable = new Readable(options);
2307
+ // Override read behavior if provided
2308
+ if (options?.read) {
2309
+ const originalRead = readable.read.bind(readable);
2310
+ readable.read = function (size) {
2311
+ options.read(size ?? 16384);
2312
+ return originalRead(size);
2313
+ };
2314
+ }
2315
+ return readable;
2316
+ }
2317
+ /**
2318
+ * Create a readable stream from an async iterable
2319
+ */
2320
+ function createReadableFromAsyncIterable(iterable, options) {
2321
+ const readable = new Readable({ ...options, objectMode: options?.objectMode ?? true });
2322
+ (async () => {
2323
+ try {
2324
+ for await (const chunk of iterable) {
2325
+ if (!readable.push(chunk)) {
2326
+ // Backpressure - wait a bit
2327
+ await new Promise(resolve => setTimeout(resolve, 0));
2328
+ }
2329
+ }
2330
+ readable.push(null);
2331
+ }
2332
+ catch (err) {
2333
+ readable.destroy(err);
2334
+ }
2335
+ })();
2336
+ return readable;
2337
+ }
2338
+ /**
2339
+ * Create a readable stream from an array
2340
+ */
2341
+ function createReadableFromArray(data, options) {
2342
+ let index = 0;
2343
+ const readable = new Readable({
2344
+ ...options,
2345
+ objectMode: options?.objectMode ?? true,
2346
+ read() {
2347
+ // Push data when read is called
2348
+ while (index < data.length) {
2349
+ if (!this.push(data[index++])) {
2350
+ // Backpressure - wait for next read
2351
+ return;
2352
+ }
2353
+ }
2354
+ // All data pushed, end the stream
2355
+ this.push(null);
2356
+ }
2357
+ });
2358
+ return readable;
2359
+ }
2360
+ /**
2361
+ * Create a writable stream with custom write implementation
2362
+ */
2363
+ function createWritable(options) {
2364
+ // Create a custom WritableStream with user's handlers
2365
+ const stream = new WritableStream({
2366
+ write: async (chunk) => {
2367
+ if (options?.write) {
2368
+ return new Promise((resolve, reject) => {
2369
+ options.write(chunk, "utf8", err => {
2370
+ if (err) {
2371
+ reject(err);
2372
+ }
2373
+ else {
2374
+ resolve();
2375
+ }
2376
+ });
2377
+ });
2378
+ }
2379
+ },
2380
+ close: async () => {
2381
+ if (options?.final) {
2382
+ return new Promise((resolve, reject) => {
2383
+ options.final(err => {
2384
+ if (err) {
2385
+ reject(err);
2386
+ }
2387
+ else {
2388
+ resolve();
2389
+ }
2390
+ });
2391
+ });
2392
+ }
2393
+ }
2394
+ });
2395
+ return new Writable({ ...options, stream });
2396
+ }
2397
+ /**
2398
+ * Create a transform stream from a transform function
2399
+ */
2400
+ function createTransform(transformFn, options) {
2401
+ return new Transform({
2402
+ ...options,
2403
+ transform: transformFn,
2404
+ flush: options?.flush
2405
+ });
2406
+ }
2407
+ /**
2408
+ * Create a collector stream
2409
+ */
2410
+ function createCollector(options) {
2411
+ return new Collector(options);
2412
+ }
2413
+ /**
2414
+ * Create a passthrough stream
2415
+ */
2416
+ function createPassThrough(options) {
2417
+ return new PassThrough(options);
2418
+ }
2419
+ /**
2420
+ * Create a pull stream
2421
+ */
2422
+ function createPullStream(options) {
2423
+ return new PullStream(options);
2424
+ }
2425
+ /**
2426
+ * Create a buffered stream
2427
+ */
2428
+ function createBufferedStream(options) {
2429
+ return new BufferedStream(options);
2430
+ }
2431
+ const isReadableStream = (value) => !!value && typeof value === "object" && typeof value.getReader === "function";
2432
+ const isAsyncIterable = (value) => {
2433
+ if (!value || (typeof value !== "object" && typeof value !== "function")) {
2434
+ return false;
2435
+ }
2436
+ return typeof value[Symbol.asyncIterator] === "function";
2437
+ };
2438
+ const isWritableStream = (value) => !!value && typeof value === "object" && typeof value.getWriter === "function";
2439
+ const isTransformStream = (value) => !!value &&
2440
+ typeof value === "object" &&
2441
+ !!value.readable &&
2442
+ !!value.writable &&
2443
+ isReadableStream(value.readable) &&
2444
+ isWritableStream(value.writable);
2445
+ const isPipelineOptions = (value) => {
2446
+ if (!value || typeof value !== "object") {
2447
+ return false;
2448
+ }
2449
+ // IMPORTANT:
2450
+ // Do NOT use `"end" in obj` here because streams have `.end()` and would be
2451
+ // misclassified as options, breaking argument parsing and potentially hanging.
2452
+ if (typeof value.pipe === "function" ||
2453
+ typeof value.write === "function" ||
2454
+ typeof value.end === "function" ||
2455
+ typeof value.getReader === "function" ||
2456
+ typeof value.getWriter === "function") {
2457
+ return false;
2458
+ }
2459
+ return (Object.prototype.hasOwnProperty.call(value, "signal") ||
2460
+ Object.prototype.hasOwnProperty.call(value, "end"));
2461
+ };
2462
+ const toBrowserPipelineStream = (stream) => {
2463
+ if (stream instanceof Readable ||
2464
+ stream instanceof Writable ||
2465
+ stream instanceof Transform ||
2466
+ stream instanceof Duplex) {
2467
+ return stream;
2468
+ }
2469
+ if (isTransformStream(stream)) {
2470
+ return Transform.fromWeb(stream);
2471
+ }
2472
+ if (isReadableStream(stream)) {
2473
+ return Readable.fromWeb(stream);
2474
+ }
2475
+ if (isWritableStream(stream)) {
2476
+ return Writable.fromWeb(stream);
2477
+ }
2478
+ return stream;
2479
+ };
2480
+ /**
2481
+ * Pipeline streams together with proper error handling and cleanup.
2482
+ * Supports both callback and promise-based usage like Node.js.
2483
+ *
2484
+ * @example
2485
+ * // Promise usage
2486
+ * await pipeline(source, transform, destination);
2487
+ *
2488
+ * @example
2489
+ * // With options
2490
+ * await pipeline(source, transform, destination, { signal: controller.signal });
2491
+ *
2492
+ * @example
2493
+ * // Callback usage
2494
+ * pipeline(source, transform, destination, (err) => {
2495
+ * if (err) console.error('Pipeline failed', err);
2496
+ * });
2497
+ */
2498
+ function pipeline(...args) {
2499
+ // Parse arguments
2500
+ let streams;
2501
+ let options = {};
2502
+ let callback;
2503
+ const lastArg = args[args.length - 1];
2504
+ if (typeof lastArg === "function") {
2505
+ // Callback style: pipeline(s1, s2, s3, callback)
2506
+ callback = lastArg;
2507
+ streams = args.slice(0, -1);
2508
+ }
2509
+ else if (isPipelineOptions(lastArg)) {
2510
+ // Options style: pipeline(s1, s2, s3, { signal })
2511
+ options = lastArg;
2512
+ streams = args.slice(0, -1);
2513
+ }
2514
+ else {
2515
+ // No callback or options: pipeline(s1, s2, s3)
2516
+ streams = args;
2517
+ }
2518
+ const promise = new Promise((resolve, reject) => {
2519
+ if (streams.length < 2) {
2520
+ const err = new Error("Pipeline requires at least 2 streams");
2521
+ reject(err);
2522
+ return;
2523
+ }
2524
+ const normalized = streams.map(toBrowserPipelineStream);
2525
+ const source = normalized[0];
2526
+ const destination = normalized[normalized.length - 1];
2527
+ const transforms = normalized.slice(1, -1);
2528
+ let completed = false;
2529
+ const allStreams = [source, ...transforms, destination];
2530
+ const cleanup = (error) => {
2531
+ if (completed) {
2532
+ return;
2533
+ }
2534
+ completed = true;
2535
+ // Destroy all streams on error
2536
+ if (error) {
2537
+ for (const stream of allStreams) {
2538
+ if (typeof stream.destroy === "function") {
2539
+ stream.destroy(error);
2540
+ }
2541
+ }
2542
+ reject(error);
2543
+ }
2544
+ else {
2545
+ resolve();
2546
+ }
2547
+ };
2548
+ // Handle abort signal
2549
+ if (options.signal) {
2550
+ if (options.signal.aborted) {
2551
+ cleanup(new Error("Pipeline aborted"));
2552
+ return;
2553
+ }
2554
+ options.signal.addEventListener("abort", () => {
2555
+ cleanup(new Error("Pipeline aborted"));
2556
+ });
2557
+ }
2558
+ // Chain the streams
2559
+ let current = source;
2560
+ for (const transform of transforms) {
2561
+ current.pipe(transform);
2562
+ current = transform;
2563
+ }
2564
+ // Pipe to destination
2565
+ if (options.end !== false) {
2566
+ current.pipe(destination);
2567
+ }
2568
+ else {
2569
+ // Don't end destination
2570
+ current.on("data", chunk => destination.write(chunk));
2571
+ }
2572
+ // Handle completion
2573
+ destination.on("finish", () => cleanup());
2574
+ // Handle errors on all streams
2575
+ for (const stream of allStreams) {
2576
+ stream.on("error", (err) => cleanup(err));
2577
+ }
2578
+ });
2579
+ // If callback provided, use it
2580
+ if (callback) {
2581
+ promise.then(() => callback(null)).catch(err => callback(err));
2582
+ }
2583
+ return promise;
2584
+ }
2585
+ /**
2586
+ * Wait for a stream to finish, close, or error.
2587
+ * Node.js compatible with support for options and callbacks.
2588
+ *
2589
+ * @example
2590
+ * // Promise usage
2591
+ * await finished(stream);
2592
+ *
2593
+ * @example
2594
+ * // With options
2595
+ * await finished(stream, { readable: false }); // Only wait for writable side
2596
+ *
2597
+ * @example
2598
+ * // Callback usage
2599
+ * finished(stream, (err) => {
2600
+ * if (err) console.error('Stream error', err);
2601
+ * });
2602
+ */
2603
+ function finished(stream, optionsOrCallback, callback) {
2604
+ let options = {};
2605
+ let cb;
2606
+ if (typeof optionsOrCallback === "function") {
2607
+ cb = optionsOrCallback;
2608
+ }
2609
+ else if (optionsOrCallback) {
2610
+ options = optionsOrCallback;
2611
+ cb = callback;
2612
+ }
2613
+ const promise = new Promise((resolve, reject) => {
2614
+ const normalizedStream = toBrowserPipelineStream(stream);
2615
+ let resolved = false;
2616
+ const done = (err) => {
2617
+ if (resolved) {
2618
+ return;
2619
+ }
2620
+ resolved = true;
2621
+ if (err && !options.error) {
2622
+ reject(err);
2623
+ }
2624
+ else {
2625
+ resolve();
2626
+ }
2627
+ };
2628
+ // Handle abort signal
2629
+ if (options.signal) {
2630
+ if (options.signal.aborted) {
2631
+ done(new Error("Aborted"));
2632
+ return;
2633
+ }
2634
+ options.signal.addEventListener("abort", () => {
2635
+ done(new Error("Aborted"));
2636
+ });
2637
+ }
2638
+ const checkReadable = options.readable !== false;
2639
+ const checkWritable = options.writable !== false;
2640
+ // Already finished?
2641
+ if (checkReadable && normalizedStream.readableEnded) {
2642
+ done();
2643
+ return;
2644
+ }
2645
+ if (checkWritable && normalizedStream.writableFinished) {
2646
+ done();
2647
+ return;
2648
+ }
2649
+ // Listen for events
2650
+ if (checkWritable) {
2651
+ normalizedStream.on("finish", () => done());
2652
+ }
2653
+ if (checkReadable) {
2654
+ normalizedStream.on("end", () => done());
2655
+ }
2656
+ normalizedStream.on("error", (err) => done(err));
2657
+ normalizedStream.on("close", () => done());
2658
+ });
2659
+ // If callback provided, use it
2660
+ if (cb) {
2661
+ promise.then(() => cb(null)).catch(err => cb(err));
2662
+ }
2663
+ return promise;
2664
+ }
2665
+ // =============================================================================
2666
+ // Utility Functions
2667
+ // =============================================================================
2668
+ /**
2669
+ * Convert a stream to a promise that resolves when finished
2670
+ */
2671
+ async function streamToPromise(stream) {
2672
+ return finished(stream);
2673
+ }
2674
+ /**
2675
+ * Collect all data from a readable stream into a Uint8Array
2676
+ * (Browser equivalent of Node.js streamToBuffer)
2677
+ */
2678
+ async function streamToUint8Array(stream) {
2679
+ let iterable;
2680
+ if (isReadableStream(stream)) {
2681
+ iterable = Readable.fromWeb(stream);
2682
+ }
2683
+ else if (isAsyncIterable(stream)) {
2684
+ iterable = stream;
2685
+ }
2686
+ else {
2687
+ throw new Error("streamToUint8Array: unsupported stream type");
2688
+ }
2689
+ const chunks = [];
2690
+ let totalLength = 0;
2691
+ for await (const chunk of iterable) {
2692
+ chunks.push(chunk);
2693
+ totalLength += chunk.length;
2694
+ }
2695
+ // Fast paths
2696
+ const len = chunks.length;
2697
+ if (len === 0) {
2698
+ return new Uint8Array(0);
2699
+ }
2700
+ if (len === 1) {
2701
+ return chunks[0];
2702
+ }
2703
+ // Use precalculated total length
2704
+ const result = new Uint8Array(totalLength);
2705
+ let offset = 0;
2706
+ for (let i = 0; i < len; i++) {
2707
+ result.set(chunks[i], offset);
2708
+ offset += chunks[i].length;
2709
+ }
2710
+ return result;
2711
+ }
2712
+ /**
2713
+ * Alias for streamToUint8Array (Node.js compatibility)
2714
+ */
2715
+ exports.streamToBuffer = streamToUint8Array;
2716
+ /**
2717
+ * Collect all data from a readable stream into a string
2718
+ */
2719
+ async function streamToString(stream, encoding) {
2720
+ const buffer = await streamToUint8Array(stream);
2721
+ return (0, shared_1.getTextDecoder)(encoding).decode(buffer);
2722
+ }
2723
+ /**
2724
+ * Drain a stream (consume all data without processing)
2725
+ */
2726
+ async function drainStream(stream) {
2727
+ let iterable;
2728
+ if (isReadableStream(stream)) {
2729
+ iterable = Readable.fromWeb(stream);
2730
+ }
2731
+ else if (isAsyncIterable(stream)) {
2732
+ iterable = stream;
2733
+ }
2734
+ else {
2735
+ throw new Error("drainStream: unsupported stream type");
2736
+ }
2737
+ for await (const _chunk of iterable) {
2738
+ // Consume data
2739
+ }
2740
+ }
2741
+ /**
2742
+ * Copy from a readable stream to a writable stream
2743
+ */
2744
+ async function copyStream(source, destination) {
2745
+ return pipeline(source, destination);
2746
+ }
2747
+ // =============================================================================
2748
+ // Type Guards
2749
+ // =============================================================================
2750
+ /**
2751
+ * Check if an object is a transform stream
2752
+ */
2753
+ function isTransform(obj) {
2754
+ if (obj == null) {
2755
+ return false;
2756
+ }
2757
+ if (obj instanceof Transform) {
2758
+ return true;
2759
+ }
2760
+ const o = obj;
2761
+ return (typeof o.read === "function" &&
2762
+ typeof o.pipe === "function" &&
2763
+ typeof o.write === "function" &&
2764
+ typeof o.end === "function" &&
2765
+ typeof o._transform === "function");
2766
+ }
2767
+ /**
2768
+ * Check if an object is a duplex stream
2769
+ * Note: In Node.js, Transform extends Duplex, so Transform is also a Duplex
2770
+ */
2771
+ function isDuplex(obj) {
2772
+ if (obj == null) {
2773
+ return false;
2774
+ }
2775
+ if (obj instanceof Duplex || obj instanceof Transform) {
2776
+ return true;
2777
+ }
2778
+ const o = obj;
2779
+ return (typeof o.read === "function" &&
2780
+ typeof o.pipe === "function" &&
2781
+ typeof o.write === "function" &&
2782
+ typeof o.end === "function");
2783
+ }
2784
+ /**
2785
+ * Check if an object is any kind of stream
2786
+ */
2787
+ function isStream(obj) {
2788
+ if (obj == null) {
2789
+ return false;
2790
+ }
2791
+ if (obj instanceof Readable || obj instanceof Writable) {
2792
+ return true;
2793
+ }
2794
+ const o = obj;
2795
+ return ((typeof o.read === "function" && typeof o.pipe === "function") ||
2796
+ (typeof o.write === "function" && typeof o.end === "function"));
2797
+ }
2798
+ // =============================================================================
2799
+ // Additional Utility Functions (Node.js Compatibility)
2800
+ // =============================================================================
2801
+ /**
2802
+ * Add abort signal handling to any stream
2803
+ */
2804
+ function addAbortSignal(signal, stream) {
2805
+ if (signal.aborted) {
2806
+ stream.destroy(new Error("Aborted"));
2807
+ return stream;
2808
+ }
2809
+ const onAbort = () => {
2810
+ stream.destroy(new Error("Aborted"));
2811
+ };
2812
+ signal.addEventListener("abort", onAbort, { once: true });
2813
+ // Clean up when stream is destroyed
2814
+ stream.on("close", () => {
2815
+ signal.removeEventListener("abort", onAbort);
2816
+ });
2817
+ return stream;
2818
+ }
2819
+ /**
2820
+ * Create a duplex stream from a pair of readable and writable streams
2821
+ */
2822
+ function createDuplex(options) {
2823
+ const readableObjectMode = options?.readableObjectMode ?? options?.objectMode;
2824
+ const writableObjectMode = options?.writableObjectMode ?? options?.objectMode;
2825
+ const duplex = new Duplex({
2826
+ allowHalfOpen: options?.allowHalfOpen,
2827
+ readableHighWaterMark: options?.readableHighWaterMark,
2828
+ writableHighWaterMark: options?.writableHighWaterMark,
2829
+ readableObjectMode,
2830
+ writableObjectMode
2831
+ });
2832
+ // If custom readable/writable provided, pipe them
2833
+ if (options?.readable) {
2834
+ const readable = options.readable;
2835
+ readable.on?.("data", (chunk) => duplex.push(chunk));
2836
+ readable.on?.("end", () => duplex.push(null));
2837
+ readable.on?.("error", (err) => duplex.destroy(err));
2838
+ }
2839
+ if (options?.writable) {
2840
+ const writable = options.writable;
2841
+ duplex.on("data", (chunk) => writable.write?.(chunk));
2842
+ duplex.on("finish", () => writable.end?.());
2843
+ }
2844
+ // If custom read/write/final provided, override methods
2845
+ if (options?.write) {
2846
+ const _originalWrite = duplex.write.bind(duplex); // Keep bound reference for potential future use
2847
+ duplex.write = function (chunk, encodingOrCallback, callback) {
2848
+ const encoding = typeof encodingOrCallback === "string" ? encodingOrCallback : "utf8";
2849
+ const cb = typeof encodingOrCallback === "function" ? encodingOrCallback : (callback ?? (() => { }));
2850
+ options.write.call(duplex, chunk, encoding, cb);
2851
+ return true;
2852
+ };
2853
+ }
2854
+ if (options?.final) {
2855
+ const originalEnd = duplex.end.bind(duplex);
2856
+ duplex.end = function (chunkOrCallback, encodingOrCallback, callback) {
2857
+ const cb = typeof chunkOrCallback === "function"
2858
+ ? chunkOrCallback
2859
+ : typeof encodingOrCallback === "function"
2860
+ ? encodingOrCallback
2861
+ : (callback ?? (() => { }));
2862
+ if (chunkOrCallback !== undefined && typeof chunkOrCallback !== "function") {
2863
+ duplex.write(chunkOrCallback);
2864
+ }
2865
+ // Call custom final handler
2866
+ options.final.call(duplex, (err) => {
2867
+ if (err) {
2868
+ duplex.emit("error", err);
2869
+ }
2870
+ else {
2871
+ duplex.emit("finish");
2872
+ }
2873
+ // Call original end to properly close writable side
2874
+ originalEnd();
2875
+ cb();
2876
+ });
2877
+ return duplex;
2878
+ };
2879
+ }
2880
+ if (options?.destroy) {
2881
+ const originalDestroy = duplex.destroy.bind(duplex);
2882
+ duplex.destroy = function (error) {
2883
+ options.destroy.call(duplex, error ?? null, (err) => {
2884
+ if (err) {
2885
+ duplex.emit("error", err);
2886
+ originalDestroy(err);
2887
+ }
2888
+ else {
2889
+ originalDestroy(error);
2890
+ }
2891
+ });
2892
+ return duplex;
2893
+ };
2894
+ }
2895
+ return duplex;
2896
+ }
2897
+ /**
2898
+ * Create a readable stream from a generator function
2899
+ */
2900
+ function createReadableFromGenerator(generator, options) {
2901
+ const readable = new Readable({ ...options, objectMode: options?.objectMode ?? true });
2902
+ (async () => {
2903
+ try {
2904
+ for await (const chunk of generator()) {
2905
+ if (!readable.push(chunk)) {
2906
+ // Backpressure
2907
+ await new Promise(resolve => setTimeout(resolve, 0));
2908
+ }
2909
+ }
2910
+ readable.push(null);
2911
+ }
2912
+ catch (err) {
2913
+ readable.destroy(err);
2914
+ }
2915
+ })();
2916
+ return readable;
2917
+ }
2918
+ /**
2919
+ * Create a readable stream from a Promise
2920
+ */
2921
+ function createReadableFromPromise(promise, options) {
2922
+ const readable = new Readable({ ...options, objectMode: options?.objectMode ?? true });
2923
+ promise
2924
+ .then(value => {
2925
+ readable.push(value);
2926
+ readable.push(null);
2927
+ })
2928
+ .catch(err => {
2929
+ readable.destroy(err);
2930
+ });
2931
+ return readable;
2932
+ }
2933
+ /**
2934
+ * Compose multiple transform streams into one
2935
+ * Data flows through each transform in sequence
2936
+ */
2937
+ function compose(...transforms) {
2938
+ const len = transforms.length;
2939
+ if (len === 0) {
2940
+ return new Transform({
2941
+ objectMode: true,
2942
+ transform: chunk => chunk
2943
+ });
2944
+ }
2945
+ const isNativeTransform = (stream) => stream instanceof Transform;
2946
+ if (len === 1 && isNativeTransform(transforms[0])) {
2947
+ return transforms[0];
2948
+ }
2949
+ // Chain the transforms: first → second → ... → last
2950
+ const first = transforms[0];
2951
+ const last = transforms[len - 1];
2952
+ // Pipe all transforms together
2953
+ for (let i = 0; i < len - 1; i++) {
2954
+ transforms[i].pipe(transforms[i + 1]);
2955
+ }
2956
+ class ComposedTransform extends Transform {
2957
+ constructor() {
2958
+ super(...arguments);
2959
+ this._dataForwarding = false;
2960
+ this._endForwarding = false;
2961
+ }
2962
+ on(event, listener) {
2963
+ if (event === "data" && !this._dataForwarding) {
2964
+ this._dataForwarding = true;
2965
+ last.on("data", (chunk) => this.emit("data", chunk));
2966
+ }
2967
+ if (event === "end" && !this._endForwarding) {
2968
+ this._endForwarding = true;
2969
+ last.on("end", () => this.emit("end"));
2970
+ }
2971
+ return super.on(event, listener);
2972
+ }
2973
+ write(chunk, encodingOrCallback, callback) {
2974
+ if (typeof encodingOrCallback === "function") {
2975
+ return first.write(chunk, encodingOrCallback);
2976
+ }
2977
+ return first.write(chunk, encodingOrCallback, callback);
2978
+ }
2979
+ end(chunkOrCallback, encodingOrCallback, callback) {
2980
+ if (typeof chunkOrCallback === "function") {
2981
+ first.end(chunkOrCallback);
2982
+ return this;
2983
+ }
2984
+ if (typeof encodingOrCallback === "function") {
2985
+ first.end(chunkOrCallback, encodingOrCallback);
2986
+ return this;
2987
+ }
2988
+ first.end(chunkOrCallback, encodingOrCallback, callback);
2989
+ return this;
2990
+ }
2991
+ pipe(destination) {
2992
+ return last.pipe(destination);
2993
+ }
2994
+ destroy(error) {
2995
+ for (const t of transforms) {
2996
+ t.destroy(error);
2997
+ }
2998
+ super.destroy(error);
2999
+ }
3000
+ read(size) {
3001
+ return typeof last.read === "function" ? last.read(size) : null;
3002
+ }
3003
+ async *[Symbol.asyncIterator]() {
3004
+ const it = last?.[Symbol.asyncIterator]?.();
3005
+ if (it) {
3006
+ for await (const chunk of it) {
3007
+ yield chunk;
3008
+ }
3009
+ return;
3010
+ }
3011
+ yield* super[Symbol.asyncIterator]();
3012
+ }
3013
+ }
3014
+ const composed = new ComposedTransform({
3015
+ objectMode: first?.objectMode ?? true,
3016
+ transform: chunk => chunk
3017
+ });
3018
+ // Forward errors from any transform
3019
+ for (const t of transforms) {
3020
+ t.on("error", (err) => {
3021
+ composed.emit("error", err);
3022
+ });
3023
+ }
3024
+ // Reflect underlying readability/writability like the previous duck-typed wrapper
3025
+ Object.defineProperty(composed, "readable", {
3026
+ get: () => last.readable
3027
+ });
3028
+ Object.defineProperty(composed, "writable", {
3029
+ get: () => first.writable
3030
+ });
3031
+ return composed;
3032
+ }
3033
+ /**
3034
+ * Wait for multiple streams to finish
3035
+ */
3036
+ async function finishedAll(streams) {
3037
+ const len = streams.length;
3038
+ if (len === 0) {
3039
+ return;
3040
+ }
3041
+ if (len === 1) {
3042
+ await finished(streams[0]);
3043
+ return;
3044
+ }
3045
+ // Pre-allocate promise array
3046
+ const promises = new Array(len);
3047
+ for (let i = 0; i < len; i++) {
3048
+ promises[i] = finished(streams[i]);
3049
+ }
3050
+ await Promise.all(promises);
3051
+ }
3052
+ // Reusable empty push callback for createEmptyReadable
3053
+ const pushNull = (readable) => {
3054
+ readable.push(null);
3055
+ };
3056
+ /**
3057
+ * Create a readable stream that emits nothing and immediately ends
3058
+ */
3059
+ function createEmptyReadable(options) {
3060
+ const readable = new Readable(options);
3061
+ queueMicrotask(() => pushNull(readable));
3062
+ return readable;
3063
+ }
3064
+ // Reusable null write handler
3065
+ const nullWriteHandler = {
3066
+ write: () => {
3067
+ // Discard
3068
+ }
3069
+ };
3070
+ /**
3071
+ * Create a writable stream that discards all data (like /dev/null)
3072
+ */
3073
+ function createNullWritable(options) {
3074
+ return new Writable({
3075
+ ...options,
3076
+ stream: new WritableStream(nullWriteHandler)
3077
+ });
3078
+ }
3079
+ /**
3080
+ * Promisified version of once for events
3081
+ */
3082
+ function once(emitter, event, options) {
3083
+ return new Promise((resolve, reject) => {
3084
+ let onAbort;
3085
+ let resolved = false;
3086
+ const cleanup = () => {
3087
+ if (resolved) {
3088
+ return;
3089
+ }
3090
+ resolved = true;
3091
+ emitter.off(event, onEvent);
3092
+ emitter.off("error", onError);
3093
+ if (onAbort && options?.signal) {
3094
+ options.signal.removeEventListener("abort", onAbort);
3095
+ }
3096
+ };
3097
+ const onEvent = (...args) => {
3098
+ cleanup();
3099
+ resolve(args);
3100
+ };
3101
+ const onError = (err) => {
3102
+ cleanup();
3103
+ reject(err);
3104
+ };
3105
+ emitter.once(event, onEvent);
3106
+ emitter.once("error", onError);
3107
+ if (options?.signal) {
3108
+ if (options.signal.aborted) {
3109
+ cleanup();
3110
+ reject(new Error("Aborted"));
3111
+ return;
3112
+ }
3113
+ onAbort = () => {
3114
+ cleanup();
3115
+ reject(new Error("Aborted"));
3116
+ };
3117
+ options.signal.addEventListener("abort", onAbort);
3118
+ }
3119
+ });
3120
+ }
3121
+ /**
3122
+ * Convert a callback-based stream operation to a promise
3123
+ */
3124
+ function promisify(fn) {
3125
+ return new Promise((resolve, reject) => {
3126
+ fn((error, result) => {
3127
+ if (error) {
3128
+ reject(error);
3129
+ }
3130
+ else {
3131
+ resolve(result);
3132
+ }
3133
+ });
3134
+ });
3135
+ }
3136
+ // =============================================================================
3137
+ // Default High Water Mark Management
3138
+ // =============================================================================
3139
+ let _defaultHighWaterMark = 16384; // 16KB default
3140
+ let _defaultHighWaterMarkObjectMode = 16; // 16 objects default
3141
+ /**
3142
+ * Get the default high water mark for streams
3143
+ */
3144
+ function getDefaultHighWaterMark(objectMode) {
3145
+ return objectMode ? _defaultHighWaterMarkObjectMode : _defaultHighWaterMark;
3146
+ }
3147
+ /**
3148
+ * Set the default high water mark for streams
3149
+ */
3150
+ function setDefaultHighWaterMark(objectMode, value) {
3151
+ if (objectMode) {
3152
+ _defaultHighWaterMarkObjectMode = value;
3153
+ }
3154
+ else {
3155
+ _defaultHighWaterMark = value;
3156
+ }
3157
+ }
3158
+ // =============================================================================
3159
+ // Stream State Inspection Functions
3160
+ // =============================================================================
3161
+ /**
3162
+ * Check if a stream has been destroyed
3163
+ */
3164
+ function isDestroyed(stream) {
3165
+ return !!stream?.destroyed;
3166
+ }
3167
+ /**
3168
+ * Check if a readable stream has been disturbed (read from)
3169
+ */
3170
+ function isDisturbed(stream) {
3171
+ if (stream instanceof Readable) {
3172
+ return Readable.isDisturbed(stream);
3173
+ }
3174
+ if (stream instanceof Duplex) {
3175
+ return Readable.isDisturbed(stream._readable);
3176
+ }
3177
+ const s = stream;
3178
+ return (s?.readableDidRead === true ||
3179
+ s?._didRead === true ||
3180
+ s?._ended === true ||
3181
+ s?._destroyed === true);
3182
+ }
3183
+ /**
3184
+ * Check if a stream has an error
3185
+ */
3186
+ function isErrored(stream) {
3187
+ const err = stream?.errored;
3188
+ return err !== null && err !== undefined;
3189
+ }
3190
+ /**
3191
+ * Check if a stream is readable
3192
+ */
3193
+ function isReadable(stream) {
3194
+ if (stream == null) {
3195
+ return false;
3196
+ }
3197
+ if (stream instanceof Readable || stream instanceof Transform) {
3198
+ return true;
3199
+ }
3200
+ if (stream instanceof Duplex) {
3201
+ return stream._readable instanceof Readable;
3202
+ }
3203
+ const o = stream;
3204
+ return typeof o.read === "function" && typeof o.pipe === "function";
3205
+ }
3206
+ /**
3207
+ * Check if a stream is writable
3208
+ */
3209
+ function isWritable(stream) {
3210
+ if (stream == null) {
3211
+ return false;
3212
+ }
3213
+ if (stream instanceof Writable || stream instanceof Transform) {
3214
+ return true;
3215
+ }
3216
+ if (stream instanceof Duplex) {
3217
+ return stream._writable instanceof Writable;
3218
+ }
3219
+ const o = stream;
3220
+ return typeof o.write === "function" && typeof o.end === "function";
3221
+ }
3222
+ // =============================================================================
3223
+ // Duplex Pair
3224
+ // =============================================================================
3225
+ /**
3226
+ * Create a pair of connected Duplex streams
3227
+ * Data written to one stream can be read from the other
3228
+ */
3229
+ function duplexPair(options) {
3230
+ const stream1 = new Duplex(options);
3231
+ const stream2 = new Duplex(options);
3232
+ // Override write to push to the other stream's readable
3233
+ stream1.write = function (chunk) {
3234
+ // Push to stream2's readable side
3235
+ stream2.push(chunk);
3236
+ return true;
3237
+ };
3238
+ stream2.write = function (chunk) {
3239
+ // Push to stream1's readable side
3240
+ stream1.push(chunk);
3241
+ return true;
3242
+ };
3243
+ // Override end to signal EOF to the other stream
3244
+ const originalEnd1 = stream1.end.bind(stream1);
3245
+ const originalEnd2 = stream2.end.bind(stream2);
3246
+ stream1.end = function (chunk) {
3247
+ if (chunk !== undefined && typeof chunk !== "function") {
3248
+ stream2.push(chunk);
3249
+ }
3250
+ stream2.push(null);
3251
+ return originalEnd1(typeof chunk === "function" ? chunk : undefined);
3252
+ };
3253
+ stream2.end = function (chunk) {
3254
+ if (chunk !== undefined && typeof chunk !== "function") {
3255
+ stream1.push(chunk);
3256
+ }
3257
+ stream1.push(null);
3258
+ return originalEnd2(typeof chunk === "function" ? chunk : undefined);
3259
+ };
3260
+ return [stream1, stream2];
3261
+ }
3262
+ // =============================================================================
3263
+ // Stream Consumers (like stream.consumers in Node.js)
3264
+ // =============================================================================
3265
+ // Helper function to collect stream chunks with total length tracking
3266
+ async function collectStreamChunks(stream) {
3267
+ const chunks = [];
3268
+ let totalLength = 0;
3269
+ let iterable;
3270
+ if (isReadableStream(stream)) {
3271
+ iterable = Readable.fromWeb(stream);
3272
+ }
3273
+ else if (isAsyncIterable(stream)) {
3274
+ iterable = stream;
3275
+ }
3276
+ else {
3277
+ throw new Error("collectStreamChunks: unsupported stream type");
3278
+ }
3279
+ for await (const chunk of iterable) {
3280
+ chunks.push(chunk);
3281
+ totalLength += chunk.length;
3282
+ }
3283
+ return { chunks, totalLength };
3284
+ }
3285
+ // Helper to concatenate with known length (faster)
3286
+ function concatWithLength(chunks, totalLength) {
3287
+ const len = chunks.length;
3288
+ if (len === 0) {
3289
+ return new Uint8Array(0);
3290
+ }
3291
+ if (len === 1) {
3292
+ return chunks[0];
3293
+ }
3294
+ const result = new Uint8Array(totalLength);
3295
+ let offset = 0;
3296
+ for (let i = 0; i < len; i++) {
3297
+ result.set(chunks[i], offset);
3298
+ offset += chunks[i].length;
3299
+ }
3300
+ return result;
3301
+ }
3302
+ exports.consumers = {
3303
+ /**
3304
+ * Consume entire stream as ArrayBuffer
3305
+ */
3306
+ async arrayBuffer(stream) {
3307
+ const { chunks, totalLength } = await collectStreamChunks(stream);
3308
+ const combined = concatWithLength(chunks, totalLength);
3309
+ return combined.buffer.slice(combined.byteOffset, combined.byteOffset + combined.byteLength);
3310
+ },
3311
+ /**
3312
+ * Consume entire stream as Blob
3313
+ */
3314
+ async blob(stream, options) {
3315
+ const { chunks } = await collectStreamChunks(stream);
3316
+ return new Blob(chunks, options);
3317
+ },
3318
+ /**
3319
+ * Consume entire stream as Buffer (Uint8Array in browser)
3320
+ */
3321
+ async buffer(stream) {
3322
+ const { chunks, totalLength } = await collectStreamChunks(stream);
3323
+ return concatWithLength(chunks, totalLength);
3324
+ },
3325
+ /**
3326
+ * Consume entire stream as JSON
3327
+ */
3328
+ async json(stream) {
3329
+ const text = await exports.consumers.text(stream);
3330
+ return JSON.parse(text);
3331
+ },
3332
+ /**
3333
+ * Consume entire stream as text
3334
+ */
3335
+ async text(stream, encoding) {
3336
+ const { chunks, totalLength } = await collectStreamChunks(stream);
3337
+ const combined = concatWithLength(chunks, totalLength);
3338
+ const decoder = encoding ? (0, shared_1.getTextDecoder)(encoding) : shared_1.textDecoder;
3339
+ return decoder.decode(combined);
3340
+ }
3341
+ };
3342
+ // =============================================================================
3343
+ // Promises API (like stream/promises in Node.js)
3344
+ // =============================================================================
3345
+ exports.promises = {
3346
+ pipeline,
3347
+ finished
3348
+ };