@cj-tech-master/excelts 4.2.0-canary.20260110111632.c88c61c → 4.2.1-canary.20260111102127.f808a37

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 (232) hide show
  1. package/THIRD_PARTY_NOTICES.md +0 -31
  2. package/dist/browser/index.browser.d.ts +1 -0
  3. package/dist/browser/index.browser.js +12 -0
  4. package/dist/{esm/modules/archive → browser/modules/archive/compression}/compress.base.js +1 -1
  5. package/dist/{types/modules/archive → browser/modules/archive/compression}/compress.browser.d.ts +2 -8
  6. package/dist/browser/modules/archive/{compress.browser.js → compression/compress.browser.js} +3 -11
  7. package/dist/browser/modules/archive/{compress.d.ts → compression/compress.d.ts} +2 -2
  8. package/dist/{esm/modules/archive → browser/modules/archive/compression}/compress.js +1 -1
  9. package/dist/browser/modules/archive/{crc32.browser.d.ts → compression/crc32.browser.d.ts} +1 -1
  10. package/dist/browser/modules/archive/{crc32.d.ts → compression/crc32.d.ts} +1 -1
  11. package/dist/browser/modules/archive/{crc32.js → compression/crc32.js} +1 -1
  12. package/dist/browser/modules/archive/{deflate-fallback.js → compression/deflate-fallback.js} +1 -1
  13. package/dist/browser/modules/archive/{streaming-compress.browser.d.ts → compression/streaming-compress.browser.d.ts} +2 -2
  14. package/dist/browser/modules/archive/{streaming-compress.browser.js → compression/streaming-compress.browser.js} +3 -3
  15. package/dist/browser/modules/archive/{streaming-compress.d.ts → compression/streaming-compress.d.ts} +2 -2
  16. package/dist/browser/modules/archive/{streaming-compress.js → compression/streaming-compress.js} +2 -2
  17. package/dist/browser/modules/archive/defaults.d.ts +1 -0
  18. package/dist/browser/modules/archive/defaults.js +6 -3
  19. package/dist/browser/modules/archive/index.base.d.ts +4 -4
  20. package/dist/browser/modules/archive/index.base.js +3 -6
  21. package/dist/browser/modules/archive/index.browser.d.ts +3 -4
  22. package/dist/browser/modules/archive/index.browser.js +3 -7
  23. package/dist/browser/modules/archive/index.d.ts +3 -4
  24. package/dist/browser/modules/archive/index.js +3 -5
  25. package/dist/browser/modules/archive/internal/byte-queue.d.ts +33 -0
  26. package/dist/browser/modules/archive/internal/byte-queue.js +407 -0
  27. package/dist/browser/modules/archive/io/archive-sink.d.ts +9 -0
  28. package/dist/browser/modules/archive/io/archive-sink.js +77 -0
  29. package/dist/browser/modules/archive/io/archive-source.d.ts +8 -0
  30. package/dist/browser/modules/archive/io/archive-source.js +107 -0
  31. package/dist/browser/modules/archive/{extract.d.ts → unzip/extract.d.ts} +2 -2
  32. package/dist/browser/modules/archive/unzip/index.d.ts +40 -0
  33. package/dist/browser/modules/archive/unzip/index.js +164 -0
  34. package/dist/browser/modules/archive/{parse.base.d.ts → unzip/stream.base.d.ts} +36 -2
  35. package/dist/browser/modules/archive/unzip/stream.base.js +1022 -0
  36. package/dist/browser/modules/archive/{parse.browser.d.ts → unzip/stream.browser.d.ts} +1 -1
  37. package/dist/browser/modules/archive/{parse.browser.js → unzip/stream.browser.js} +371 -110
  38. package/dist/browser/modules/archive/{parse.d.ts → unzip/stream.d.ts} +2 -2
  39. package/dist/{esm/modules/archive/parse.js → browser/modules/archive/unzip/stream.js} +6 -5
  40. package/dist/browser/modules/archive/{zip-parser.d.ts → unzip/zip-parser.d.ts} +1 -1
  41. package/dist/{esm/modules/archive → browser/modules/archive/unzip}/zip-parser.js +38 -24
  42. package/dist/browser/modules/archive/utils/async-queue.d.ts +7 -0
  43. package/dist/browser/modules/archive/utils/async-queue.js +103 -0
  44. package/dist/browser/modules/archive/utils/bytes.js +16 -16
  45. package/dist/browser/modules/archive/utils/compressibility.d.ts +10 -0
  46. package/dist/browser/modules/archive/utils/compressibility.js +57 -0
  47. package/dist/browser/modules/archive/utils/parse-buffer.js +21 -23
  48. package/dist/browser/modules/archive/utils/pattern-scanner.d.ts +21 -0
  49. package/dist/browser/modules/archive/utils/pattern-scanner.js +27 -0
  50. package/dist/browser/modules/archive/utils/timestamps.js +62 -1
  51. package/dist/browser/modules/archive/utils/zip-extra-fields.d.ts +1 -1
  52. package/dist/browser/modules/archive/utils/zip-extra-fields.js +26 -14
  53. package/dist/browser/modules/archive/zip/index.d.ts +42 -0
  54. package/dist/browser/modules/archive/zip/index.js +157 -0
  55. package/dist/browser/modules/archive/{streaming-zip.d.ts → zip/stream.d.ts} +28 -5
  56. package/dist/browser/modules/archive/{streaming-zip.js → zip/stream.js} +192 -48
  57. package/dist/browser/modules/archive/zip/zip-bytes.d.ts +73 -0
  58. package/dist/browser/modules/archive/zip/zip-bytes.js +239 -0
  59. package/dist/{esm/modules/archive → browser/modules/archive/zip}/zip-entry-metadata.js +3 -3
  60. package/dist/browser/modules/archive/{zip-records.d.ts → zip-spec/zip-records.d.ts} +20 -0
  61. package/dist/browser/modules/archive/zip-spec/zip-records.js +126 -0
  62. package/dist/browser/modules/excel/stream/workbook-reader.browser.js +1 -1
  63. package/dist/browser/modules/excel/stream/workbook-writer.browser.d.ts +1 -1
  64. package/dist/browser/modules/excel/stream/workbook-writer.browser.js +1 -1
  65. package/dist/browser/modules/excel/xlsx/xlsx.browser.js +3 -6
  66. package/dist/browser/modules/excel/xlsx/xlsx.js +1 -1
  67. package/dist/browser/modules/stream/streams.browser.d.ts +28 -30
  68. package/dist/browser/modules/stream/streams.browser.js +830 -710
  69. package/dist/browser/modules/stream/streams.js +140 -58
  70. package/dist/cjs/modules/archive/{compress.base.js → compression/compress.base.js} +1 -1
  71. package/dist/cjs/modules/archive/{compress.browser.js → compression/compress.browser.js} +3 -11
  72. package/dist/cjs/modules/archive/{compress.js → compression/compress.js} +1 -1
  73. package/dist/cjs/modules/archive/{crc32.js → compression/crc32.js} +1 -1
  74. package/dist/cjs/modules/archive/{deflate-fallback.js → compression/deflate-fallback.js} +1 -1
  75. package/dist/cjs/modules/archive/{streaming-compress.browser.js → compression/streaming-compress.browser.js} +3 -3
  76. package/dist/cjs/modules/archive/{streaming-compress.js → compression/streaming-compress.js} +2 -2
  77. package/dist/cjs/modules/archive/defaults.js +7 -4
  78. package/dist/cjs/modules/archive/index.base.js +9 -19
  79. package/dist/cjs/modules/archive/index.browser.js +4 -10
  80. package/dist/cjs/modules/archive/index.js +4 -8
  81. package/dist/cjs/modules/archive/internal/byte-queue.js +411 -0
  82. package/dist/cjs/modules/archive/io/archive-sink.js +82 -0
  83. package/dist/cjs/modules/archive/io/archive-source.js +114 -0
  84. package/dist/cjs/modules/archive/unzip/index.js +170 -0
  85. package/dist/cjs/modules/archive/unzip/stream.base.js +1044 -0
  86. package/dist/cjs/modules/archive/{parse.browser.js → unzip/stream.browser.js} +372 -111
  87. package/dist/cjs/modules/archive/{parse.js → unzip/stream.js} +9 -8
  88. package/dist/cjs/modules/archive/{zip-parser.js → unzip/zip-parser.js} +47 -33
  89. package/dist/cjs/modules/archive/utils/async-queue.js +106 -0
  90. package/dist/cjs/modules/archive/utils/bytes.js +16 -16
  91. package/dist/cjs/modules/archive/utils/compressibility.js +60 -0
  92. package/dist/cjs/modules/archive/utils/parse-buffer.js +21 -23
  93. package/dist/cjs/modules/archive/utils/pattern-scanner.js +31 -0
  94. package/dist/cjs/modules/archive/utils/timestamps.js +64 -3
  95. package/dist/cjs/modules/archive/utils/zip-extra-fields.js +26 -14
  96. package/dist/cjs/modules/archive/zip/index.js +162 -0
  97. package/dist/cjs/modules/archive/{streaming-zip.js → zip/stream.js} +194 -50
  98. package/dist/cjs/modules/archive/zip/zip-bytes.js +242 -0
  99. package/dist/cjs/modules/archive/{zip-entry-metadata.js → zip/zip-entry-metadata.js} +5 -5
  100. package/dist/cjs/modules/archive/zip-spec/zip-records.js +136 -0
  101. package/dist/cjs/modules/excel/stream/workbook-reader.browser.js +2 -2
  102. package/dist/cjs/modules/excel/stream/workbook-writer.browser.js +4 -4
  103. package/dist/cjs/modules/excel/xlsx/xlsx.browser.js +6 -9
  104. package/dist/cjs/modules/excel/xlsx/xlsx.js +2 -2
  105. package/dist/cjs/modules/stream/streams.browser.js +830 -710
  106. package/dist/cjs/modules/stream/streams.js +140 -58
  107. package/dist/esm/index.browser.js +12 -0
  108. package/dist/{browser/modules/archive → esm/modules/archive/compression}/compress.base.js +1 -1
  109. package/dist/esm/modules/archive/{compress.browser.js → compression/compress.browser.js} +3 -11
  110. package/dist/{browser/modules/archive → esm/modules/archive/compression}/compress.js +1 -1
  111. package/dist/esm/modules/archive/{crc32.js → compression/crc32.js} +1 -1
  112. package/dist/esm/modules/archive/{deflate-fallback.js → compression/deflate-fallback.js} +1 -1
  113. package/dist/esm/modules/archive/{streaming-compress.browser.js → compression/streaming-compress.browser.js} +3 -3
  114. package/dist/esm/modules/archive/{streaming-compress.js → compression/streaming-compress.js} +2 -2
  115. package/dist/esm/modules/archive/defaults.js +6 -3
  116. package/dist/esm/modules/archive/index.base.js +3 -6
  117. package/dist/esm/modules/archive/index.browser.js +3 -7
  118. package/dist/esm/modules/archive/index.js +3 -5
  119. package/dist/esm/modules/archive/internal/byte-queue.js +407 -0
  120. package/dist/esm/modules/archive/io/archive-sink.js +77 -0
  121. package/dist/esm/modules/archive/io/archive-source.js +107 -0
  122. package/dist/esm/modules/archive/unzip/index.js +164 -0
  123. package/dist/esm/modules/archive/unzip/stream.base.js +1022 -0
  124. package/dist/esm/modules/archive/{parse.browser.js → unzip/stream.browser.js} +371 -110
  125. package/dist/{browser/modules/archive/parse.js → esm/modules/archive/unzip/stream.js} +6 -5
  126. package/dist/{browser/modules/archive → esm/modules/archive/unzip}/zip-parser.js +38 -24
  127. package/dist/esm/modules/archive/utils/async-queue.js +103 -0
  128. package/dist/esm/modules/archive/utils/bytes.js +16 -16
  129. package/dist/esm/modules/archive/utils/compressibility.js +57 -0
  130. package/dist/esm/modules/archive/utils/parse-buffer.js +21 -23
  131. package/dist/esm/modules/archive/utils/pattern-scanner.js +27 -0
  132. package/dist/esm/modules/archive/utils/timestamps.js +62 -1
  133. package/dist/esm/modules/archive/utils/zip-extra-fields.js +26 -14
  134. package/dist/esm/modules/archive/zip/index.js +157 -0
  135. package/dist/esm/modules/archive/{streaming-zip.js → zip/stream.js} +192 -48
  136. package/dist/esm/modules/archive/zip/zip-bytes.js +239 -0
  137. package/dist/{browser/modules/archive → esm/modules/archive/zip}/zip-entry-metadata.js +3 -3
  138. package/dist/esm/modules/archive/zip-spec/zip-records.js +126 -0
  139. package/dist/esm/modules/excel/stream/workbook-reader.browser.js +1 -1
  140. package/dist/esm/modules/excel/stream/workbook-writer.browser.js +1 -1
  141. package/dist/esm/modules/excel/xlsx/xlsx.browser.js +3 -6
  142. package/dist/esm/modules/excel/xlsx/xlsx.js +1 -1
  143. package/dist/esm/modules/stream/streams.browser.js +830 -710
  144. package/dist/esm/modules/stream/streams.js +140 -58
  145. package/dist/iife/THIRD_PARTY_NOTICES.md +0 -31
  146. package/dist/iife/excelts.iife.js +6190 -4400
  147. package/dist/iife/excelts.iife.js.map +1 -1
  148. package/dist/iife/excelts.iife.min.js +103 -31
  149. package/dist/types/index.browser.d.ts +1 -0
  150. package/dist/{browser/modules/archive → types/modules/archive/compression}/compress.browser.d.ts +2 -8
  151. package/dist/types/modules/archive/{streaming-compress.browser.d.ts → compression/streaming-compress.browser.d.ts} +1 -1
  152. package/dist/types/modules/archive/defaults.d.ts +1 -0
  153. package/dist/types/modules/archive/index.base.d.ts +4 -4
  154. package/dist/types/modules/archive/index.browser.d.ts +3 -4
  155. package/dist/types/modules/archive/index.d.ts +3 -4
  156. package/dist/types/modules/archive/internal/byte-queue.d.ts +33 -0
  157. package/dist/types/modules/archive/io/archive-sink.d.ts +9 -0
  158. package/dist/types/modules/archive/io/archive-source.d.ts +8 -0
  159. package/dist/types/modules/archive/unzip/index.d.ts +40 -0
  160. package/dist/types/modules/archive/{parse.base.d.ts → unzip/stream.base.d.ts} +38 -4
  161. package/dist/types/modules/archive/{parse.browser.d.ts → unzip/stream.browser.d.ts} +2 -2
  162. package/dist/types/modules/archive/{parse.d.ts → unzip/stream.d.ts} +3 -3
  163. package/dist/types/modules/archive/{zip-parser.d.ts → unzip/zip-parser.d.ts} +1 -1
  164. package/dist/types/modules/archive/utils/async-queue.d.ts +7 -0
  165. package/dist/types/modules/archive/utils/compressibility.d.ts +10 -0
  166. package/dist/types/modules/archive/utils/pattern-scanner.d.ts +21 -0
  167. package/dist/types/modules/archive/utils/zip-extra-fields.d.ts +1 -1
  168. package/dist/types/modules/archive/zip/index.d.ts +42 -0
  169. package/dist/types/modules/archive/{streaming-zip.d.ts → zip/stream.d.ts} +29 -6
  170. package/dist/types/modules/archive/zip/zip-bytes.d.ts +73 -0
  171. package/dist/types/modules/archive/{zip-entry-metadata.d.ts → zip/zip-entry-metadata.d.ts} +1 -1
  172. package/dist/types/modules/archive/{zip-records.d.ts → zip-spec/zip-records.d.ts} +20 -0
  173. package/dist/types/modules/excel/stream/workbook-writer.browser.d.ts +1 -1
  174. package/dist/types/modules/stream/streams.browser.d.ts +28 -30
  175. package/package.json +5 -1
  176. package/dist/browser/modules/archive/byte-queue.d.ts +0 -18
  177. package/dist/browser/modules/archive/byte-queue.js +0 -125
  178. package/dist/browser/modules/archive/parse.base.js +0 -644
  179. package/dist/browser/modules/archive/utils/zip-extra.d.ts +0 -18
  180. package/dist/browser/modules/archive/utils/zip-extra.js +0 -68
  181. package/dist/browser/modules/archive/zip-builder.d.ts +0 -117
  182. package/dist/browser/modules/archive/zip-builder.js +0 -292
  183. package/dist/browser/modules/archive/zip-constants.d.ts +0 -18
  184. package/dist/browser/modules/archive/zip-constants.js +0 -23
  185. package/dist/browser/modules/archive/zip-records.js +0 -84
  186. package/dist/cjs/modules/archive/byte-queue.js +0 -129
  187. package/dist/cjs/modules/archive/parse.base.js +0 -666
  188. package/dist/cjs/modules/archive/utils/zip-extra.js +0 -74
  189. package/dist/cjs/modules/archive/zip-builder.js +0 -297
  190. package/dist/cjs/modules/archive/zip-constants.js +0 -26
  191. package/dist/cjs/modules/archive/zip-records.js +0 -90
  192. package/dist/esm/modules/archive/byte-queue.js +0 -125
  193. package/dist/esm/modules/archive/parse.base.js +0 -644
  194. package/dist/esm/modules/archive/utils/zip-extra.js +0 -68
  195. package/dist/esm/modules/archive/zip-builder.js +0 -292
  196. package/dist/esm/modules/archive/zip-constants.js +0 -23
  197. package/dist/esm/modules/archive/zip-records.js +0 -84
  198. package/dist/types/modules/archive/byte-queue.d.ts +0 -18
  199. package/dist/types/modules/archive/utils/zip-extra.d.ts +0 -18
  200. package/dist/types/modules/archive/zip-builder.d.ts +0 -117
  201. package/dist/types/modules/archive/zip-constants.d.ts +0 -18
  202. /package/dist/browser/modules/archive/{compress.base.d.ts → compression/compress.base.d.ts} +0 -0
  203. /package/dist/browser/modules/archive/{crc32.base.d.ts → compression/crc32.base.d.ts} +0 -0
  204. /package/dist/browser/modules/archive/{crc32.base.js → compression/crc32.base.js} +0 -0
  205. /package/dist/browser/modules/archive/{crc32.browser.js → compression/crc32.browser.js} +0 -0
  206. /package/dist/browser/modules/archive/{deflate-fallback.d.ts → compression/deflate-fallback.d.ts} +0 -0
  207. /package/dist/browser/modules/archive/{streaming-compress.base.d.ts → compression/streaming-compress.base.d.ts} +0 -0
  208. /package/dist/browser/modules/archive/{streaming-compress.base.js → compression/streaming-compress.base.js} +0 -0
  209. /package/dist/browser/modules/archive/{extract.js → unzip/extract.js} +0 -0
  210. /package/dist/browser/modules/archive/{zip-entry-metadata.d.ts → zip/zip-entry-metadata.d.ts} +0 -0
  211. /package/dist/browser/modules/archive/{zip-entry-info.d.ts → zip-spec/zip-entry-info.d.ts} +0 -0
  212. /package/dist/browser/modules/archive/{zip-entry-info.js → zip-spec/zip-entry-info.js} +0 -0
  213. /package/dist/cjs/modules/archive/{crc32.base.js → compression/crc32.base.js} +0 -0
  214. /package/dist/cjs/modules/archive/{crc32.browser.js → compression/crc32.browser.js} +0 -0
  215. /package/dist/cjs/modules/archive/{streaming-compress.base.js → compression/streaming-compress.base.js} +0 -0
  216. /package/dist/cjs/modules/archive/{extract.js → unzip/extract.js} +0 -0
  217. /package/dist/cjs/modules/archive/{zip-entry-info.js → zip-spec/zip-entry-info.js} +0 -0
  218. /package/dist/esm/modules/archive/{crc32.base.js → compression/crc32.base.js} +0 -0
  219. /package/dist/esm/modules/archive/{crc32.browser.js → compression/crc32.browser.js} +0 -0
  220. /package/dist/esm/modules/archive/{streaming-compress.base.js → compression/streaming-compress.base.js} +0 -0
  221. /package/dist/esm/modules/archive/{extract.js → unzip/extract.js} +0 -0
  222. /package/dist/esm/modules/archive/{zip-entry-info.js → zip-spec/zip-entry-info.js} +0 -0
  223. /package/dist/types/modules/archive/{compress.base.d.ts → compression/compress.base.d.ts} +0 -0
  224. /package/dist/types/modules/archive/{compress.d.ts → compression/compress.d.ts} +0 -0
  225. /package/dist/types/modules/archive/{crc32.base.d.ts → compression/crc32.base.d.ts} +0 -0
  226. /package/dist/types/modules/archive/{crc32.browser.d.ts → compression/crc32.browser.d.ts} +0 -0
  227. /package/dist/types/modules/archive/{crc32.d.ts → compression/crc32.d.ts} +0 -0
  228. /package/dist/types/modules/archive/{deflate-fallback.d.ts → compression/deflate-fallback.d.ts} +0 -0
  229. /package/dist/types/modules/archive/{streaming-compress.base.d.ts → compression/streaming-compress.base.d.ts} +0 -0
  230. /package/dist/types/modules/archive/{streaming-compress.d.ts → compression/streaming-compress.d.ts} +0 -0
  231. /package/dist/types/modules/archive/{extract.d.ts → unzip/extract.d.ts} +0 -0
  232. /package/dist/types/modules/archive/{zip-entry-info.d.ts → zip-spec/zip-entry-info.d.ts} +0 -0
@@ -27,6 +27,7 @@ export declare class Readable<T = Uint8Array> extends EventEmitter {
27
27
  private _bufferSize;
28
28
  private _reading;
29
29
  private _ended;
30
+ private _endEmitted;
30
31
  private _destroyed;
31
32
  private _errored;
32
33
  private _closed;
@@ -71,6 +72,7 @@ export declare class Readable<T = Uint8Array> extends EventEmitter {
71
72
  * Push data to the stream (when using controllable stream)
72
73
  */
73
74
  push(chunk: T | null): boolean;
75
+ private _emitEndOnce;
74
76
  /**
75
77
  * Put a chunk back at the front of the buffer
76
78
  * Note: unshift is allowed even after end, as it's used to put back already read data
@@ -158,7 +160,8 @@ export declare class Readable<T = Uint8Array> extends EventEmitter {
158
160
  private _startReading;
159
161
  /**
160
162
  * Async iterator support
161
- * Uses Web Stream reader for non-push mode, event-based for push mode
163
+ * Uses a unified event-queue iterator with simple backpressure.
164
+ * This matches Node's behavior more closely (iterator drives flowing mode).
162
165
  */
163
166
  [Symbol.asyncIterator](): AsyncIterableIterator<T>;
164
167
  /**
@@ -285,10 +288,12 @@ export declare class Writable<T = Uint8Array> extends EventEmitter {
285
288
  private _closed;
286
289
  private _pendingWrites;
287
290
  private _writableLength;
291
+ private _needDrain;
288
292
  private _corked;
289
293
  private _corkedChunks;
290
294
  private _defaultEncoding;
291
295
  private _aborted;
296
+ private _ownsStream;
292
297
  private _writeFunc?;
293
298
  private _finalFunc?;
294
299
  readonly objectMode: boolean;
@@ -398,53 +403,46 @@ export declare function normalizeWritable<T = Uint8Array>(stream: WritableLike |
398
403
  * A wrapper around Web TransformStream that provides Node.js-like API
399
404
  */
400
405
  export declare class Transform<TInput = Uint8Array, TOutput = Uint8Array> extends EventEmitter {
401
- private _stream;
402
406
  /** @internal - for pipe() support */
403
407
  readonly _readable: Readable<TOutput>;
404
408
  /** @internal - for pipe() support */
405
409
  readonly _writable: Writable<TInput>;
406
410
  readonly objectMode: boolean;
407
- private _ended;
408
411
  private _destroyed;
412
+ private _ended;
409
413
  private _errored;
410
- private _pushBuffer;
411
- private _transformController;
412
- private _pendingEndWrites;
413
- private _endPending;
414
+ private _dataForwardingSetup;
415
+ private _endTimer;
416
+ private _webStream;
417
+ private _sideForwardingCleanup;
418
+ private _transformImpl;
419
+ private _flushImpl;
414
420
  /**
415
- * Push data to the readable side (Node.js compatibility)
416
- * Can be called from within transform callback
421
+ * Push data to the readable side (Node.js compatibility).
422
+ * Intended to be called from within transform/flush.
417
423
  */
418
424
  push(chunk: TOutput | null): boolean;
419
425
  constructor(options?: TransformStreamOptions & {
420
426
  transform?: ((chunk: TInput) => TOutput | Promise<TOutput>) | ((this: Transform<TInput, TOutput>, chunk: TInput, encoding: string, callback: (error?: Error | null, data?: TOutput) => void) => void);
421
427
  flush?: (() => TOutput | void | Promise<TOutput | void>) | ((this: Transform<TInput, TOutput>, callback: (error?: Error | null, data?: TOutput) => void) => void);
422
428
  });
423
- private _dataForwardingSetup;
429
+ private _setupSideForwarding;
430
+ private _scheduleEnd;
431
+ private _emitErrorOnce;
432
+ private _hasSubclassTransform;
433
+ private _hasSubclassFlush;
434
+ private _runTransform;
435
+ private _runFlush;
424
436
  /**
425
- * Override on to start flowing when data listener is added
437
+ * Override on() to lazily forward readable 'data' events.
438
+ * Avoids starting flowing mode unless requested.
426
439
  */
427
440
  on(event: string | symbol, listener: (...args: any[]) => void): this;
428
- /** @internal - whether we have a data event consumer */
429
- private _hasDataConsumer;
430
441
  /**
431
- * Write data to the transform stream
432
- * Note: Automatically starts consuming readable if no consumer to allow
433
- * transform function to execute (Web Streams backpressure compatibility)
442
+ * Write to the writable side
434
443
  */
435
444
  write(chunk: TInput, callback?: (error?: Error | null) => void): boolean;
436
445
  write(chunk: TInput, encoding?: string, callback?: (error?: Error | null) => void): boolean;
437
- /** @internal - whether we're auto-consuming the readable */
438
- private _readableConsuming;
439
- /** @internal - buffer for auto-consumed data */
440
- private _autoConsumedBuffer;
441
- private _autoConsumedBufferIndex;
442
- /** @internal - whether auto-consume has ended */
443
- private _autoConsumeEnded;
444
- /** @internal - promise that resolves when auto-consume finishes */
445
- private _autoConsumePromise;
446
- /** @internal - auto-consume readable to allow transform to execute */
447
- private _startAutoConsume;
448
446
  /**
449
447
  * End the transform stream
450
448
  * Delays closing to allow writes during data events to complete
@@ -456,10 +454,8 @@ export declare class Transform<TInput = Uint8Array, TOutput = Uint8Array> extend
456
454
  * Read from the transform stream
457
455
  */
458
456
  read(size?: number): TOutput | null;
459
- /** @internal - list of piped destinations for forwarding auto-consumed data */
460
- private _pipeDestinations;
461
457
  /**
462
- * Pipe to another stream (writable, transform, or duplex)
458
+ * Pipe readable side to destination
463
459
  */
464
460
  pipe<W extends Writable<TOutput> | Transform<TOutput, any> | Duplex<any, TOutput>>(destination: W): W;
465
461
  /**
@@ -554,6 +550,7 @@ export declare class Duplex<TRead = Uint8Array, TWrite = Uint8Array> extends Eve
554
550
  writable: WritableStream<W>;
555
551
  };
556
552
  private _dataForwardingSetup;
553
+ private _sideForwardingCleanup;
557
554
  constructor(options?: DuplexStreamOptions & {
558
555
  allowHalfOpen?: boolean;
559
556
  objectMode?: boolean;
@@ -561,6 +558,7 @@ export declare class Duplex<TRead = Uint8Array, TWrite = Uint8Array> extends Eve
561
558
  write?: (this: Duplex<TRead, TWrite>, chunk: TWrite, encoding: string, callback: (error?: Error | null) => void) => void;
562
559
  final?: (this: Duplex<TRead, TWrite>, callback: (error?: Error | null) => void) => void;
563
560
  });
561
+ private _setupSideForwarding;
564
562
  /**
565
563
  * Override on() to set up data forwarding lazily
566
564
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cj-tech-master/excelts",
3
- "version": "4.2.0-canary.20260110111632.c88c61c",
3
+ "version": "4.2.1-canary.20260111102127.f808a37",
4
4
  "description": "TypeScript Excel Workbook Manager - Read and Write xlsx and csv Files.",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -44,6 +44,10 @@
44
44
  "default": "./dist/cjs/index.js"
45
45
  }
46
46
  },
47
+ "./browser": {
48
+ "types": "./dist/browser/index.browser.d.ts",
49
+ "default": "./dist/browser/index.browser.js"
50
+ },
47
51
  "./package.json": "./package.json"
48
52
  },
49
53
  "files": [
@@ -1,18 +0,0 @@
1
- export declare class ByteQueue {
2
- private static readonly EMPTY;
3
- private _buf;
4
- private _start;
5
- private _end;
6
- private _cachedView;
7
- private _cachedBuf;
8
- private _cachedStart;
9
- private _cachedEnd;
10
- constructor(initial?: Uint8Array);
11
- get length(): number;
12
- isEmpty(): boolean;
13
- view(): Uint8Array;
14
- reset(data?: Uint8Array): void;
15
- append(chunk: Uint8Array): void;
16
- read(length: number): Uint8Array;
17
- discard(length: number): void;
18
- }
@@ -1,125 +0,0 @@
1
- export class ByteQueue {
2
- constructor(initial) {
3
- this._start = 0;
4
- this._end = 0;
5
- this._cachedView = null;
6
- this._cachedBuf = null;
7
- this._cachedStart = 0;
8
- this._cachedEnd = 0;
9
- this._buf = new Uint8Array(0);
10
- if (initial && initial.length > 0) {
11
- this.reset(initial);
12
- }
13
- }
14
- get length() {
15
- return this._end - this._start;
16
- }
17
- isEmpty() {
18
- return this.length === 0;
19
- }
20
- view() {
21
- if (this._start === this._end) {
22
- return ByteQueue.EMPTY;
23
- }
24
- if (this._cachedView &&
25
- this._cachedBuf === this._buf &&
26
- this._cachedStart === this._start &&
27
- this._cachedEnd === this._end) {
28
- return this._cachedView;
29
- }
30
- const view = this._buf.subarray(this._start, this._end);
31
- this._cachedView = view;
32
- this._cachedBuf = this._buf;
33
- this._cachedStart = this._start;
34
- this._cachedEnd = this._end;
35
- return view;
36
- }
37
- reset(data) {
38
- this._cachedView = null;
39
- this._cachedBuf = null;
40
- if (!data || data.length === 0) {
41
- this._buf = ByteQueue.EMPTY;
42
- this._start = 0;
43
- this._end = 0;
44
- return;
45
- }
46
- // Keep a private copy to ensure future writes cannot mutate the source.
47
- const copy = new Uint8Array(data.length);
48
- copy.set(data);
49
- this._buf = copy;
50
- this._start = 0;
51
- this._end = copy.length;
52
- }
53
- append(chunk) {
54
- if (chunk.length === 0) {
55
- return;
56
- }
57
- this._cachedView = null;
58
- this._cachedBuf = null;
59
- const unread = this.length;
60
- // Fast path: enough tail room.
61
- if (this._end + chunk.length <= this._buf.length) {
62
- this._buf.set(chunk, this._end);
63
- this._end += chunk.length;
64
- return;
65
- }
66
- // Allocate a new buffer and copy unread bytes (never compacts in-place).
67
- const required = unread + chunk.length;
68
- const nextSize = this._buf.length === 0 ? required : Math.max(this._buf.length * 2, required);
69
- const next = new Uint8Array(nextSize);
70
- if (unread > 0) {
71
- next.set(this._buf.subarray(this._start, this._end), 0);
72
- }
73
- next.set(chunk, unread);
74
- this._buf = next;
75
- this._start = 0;
76
- this._end = required;
77
- }
78
- read(length) {
79
- if (length <= 0) {
80
- return new Uint8Array(0);
81
- }
82
- if (length > this.length) {
83
- throw new RangeError("ByteQueue: read beyond available data");
84
- }
85
- // Return a view for performance.
86
- // To keep this safe for async consumers, we must ensure we never write into
87
- // the same backing buffer again after it becomes fully consumed.
88
- const out = this._buf.subarray(this._start, this._start + length);
89
- this._start += length;
90
- this._cachedView = null;
91
- this._cachedBuf = null;
92
- if (this._start === this._end) {
93
- // Release backing storage to avoid reusing memory that might still be
94
- // referenced by previously returned views.
95
- this._buf = ByteQueue.EMPTY;
96
- this._start = 0;
97
- this._end = 0;
98
- }
99
- return out;
100
- }
101
- discard(length) {
102
- if (length <= 0) {
103
- return;
104
- }
105
- if (length >= this.length) {
106
- // Release backing storage for the same reason as read(): previously
107
- // returned views may still be referenced by consumers.
108
- this._buf = ByteQueue.EMPTY;
109
- this._start = 0;
110
- this._end = 0;
111
- this._cachedView = null;
112
- this._cachedBuf = null;
113
- return;
114
- }
115
- this._start += length;
116
- this._cachedView = null;
117
- this._cachedBuf = null;
118
- if (this._start === this._end) {
119
- this._buf = ByteQueue.EMPTY;
120
- this._start = 0;
121
- this._end = 0;
122
- }
123
- }
124
- }
125
- ByteQueue.EMPTY = new Uint8Array(0);