@cj-tech-master/excelts 4.2.0 → 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 (241) 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/{types/modules/archive → browser/modules/archive/compression}/compress.base.d.ts +1 -0
  5. package/dist/browser/modules/archive/{compress.base.js → compression/compress.base.js} +2 -1
  6. package/dist/{types/modules/archive → browser/modules/archive/compression}/compress.browser.d.ts +10 -8
  7. package/dist/{esm/modules/archive → browser/modules/archive/compression}/compress.browser.js +18 -19
  8. package/dist/browser/modules/archive/{compress.d.ts → compression/compress.d.ts} +2 -2
  9. package/dist/browser/modules/archive/{compress.js → compression/compress.js} +1 -1
  10. package/dist/browser/modules/archive/{crc32.browser.d.ts → compression/crc32.browser.d.ts} +1 -1
  11. package/dist/browser/modules/archive/{crc32.d.ts → compression/crc32.d.ts} +1 -1
  12. package/dist/browser/modules/archive/{crc32.js → compression/crc32.js} +1 -1
  13. package/dist/browser/modules/archive/{deflate-fallback.js → compression/deflate-fallback.js} +1 -1
  14. package/dist/browser/modules/archive/{streaming-compress.browser.d.ts → compression/streaming-compress.browser.d.ts} +2 -2
  15. package/dist/browser/modules/archive/{streaming-compress.browser.js → compression/streaming-compress.browser.js} +3 -3
  16. package/dist/browser/modules/archive/{streaming-compress.d.ts → compression/streaming-compress.d.ts} +2 -2
  17. package/dist/browser/modules/archive/{streaming-compress.js → compression/streaming-compress.js} +2 -2
  18. package/dist/browser/modules/archive/defaults.d.ts +1 -0
  19. package/dist/browser/modules/archive/defaults.js +6 -3
  20. package/dist/browser/modules/archive/index.base.d.ts +4 -4
  21. package/dist/browser/modules/archive/index.base.js +3 -6
  22. package/dist/browser/modules/archive/index.browser.d.ts +3 -4
  23. package/dist/browser/modules/archive/index.browser.js +3 -7
  24. package/dist/browser/modules/archive/index.d.ts +3 -4
  25. package/dist/browser/modules/archive/index.js +3 -5
  26. package/dist/browser/modules/archive/internal/byte-queue.d.ts +33 -0
  27. package/dist/browser/modules/archive/internal/byte-queue.js +407 -0
  28. package/dist/browser/modules/archive/io/archive-sink.d.ts +9 -0
  29. package/dist/browser/modules/archive/io/archive-sink.js +77 -0
  30. package/dist/browser/modules/archive/io/archive-source.d.ts +8 -0
  31. package/dist/browser/modules/archive/io/archive-source.js +107 -0
  32. package/dist/browser/modules/archive/{extract.d.ts → unzip/extract.d.ts} +2 -2
  33. package/dist/browser/modules/archive/unzip/index.d.ts +40 -0
  34. package/dist/browser/modules/archive/unzip/index.js +164 -0
  35. package/dist/browser/modules/archive/{parse.base.d.ts → unzip/stream.base.d.ts} +58 -3
  36. package/dist/browser/modules/archive/unzip/stream.base.js +1022 -0
  37. package/dist/browser/modules/archive/{parse.browser.d.ts → unzip/stream.browser.d.ts} +1 -1
  38. package/dist/browser/modules/archive/{parse.browser.js → unzip/stream.browser.js} +376 -110
  39. package/dist/browser/modules/archive/{parse.d.ts → unzip/stream.d.ts} +2 -2
  40. package/dist/{esm/modules/archive/parse.js → browser/modules/archive/unzip/stream.js} +7 -6
  41. package/dist/{types/modules/archive → browser/modules/archive/unzip}/zip-parser.d.ts +1 -1
  42. package/dist/{esm/modules/archive → browser/modules/archive/unzip}/zip-parser.js +38 -24
  43. package/dist/browser/modules/archive/utils/async-queue.d.ts +7 -0
  44. package/dist/browser/modules/archive/utils/async-queue.js +103 -0
  45. package/dist/browser/modules/archive/utils/bytes.js +16 -16
  46. package/dist/browser/modules/archive/utils/compressibility.d.ts +10 -0
  47. package/dist/browser/modules/archive/utils/compressibility.js +57 -0
  48. package/dist/browser/modules/archive/utils/parse-buffer.js +21 -23
  49. package/dist/browser/modules/archive/utils/pattern-scanner.d.ts +21 -0
  50. package/dist/browser/modules/archive/utils/pattern-scanner.js +27 -0
  51. package/dist/browser/modules/archive/utils/timestamps.js +62 -1
  52. package/dist/browser/modules/archive/utils/zip-extra-fields.d.ts +1 -1
  53. package/dist/browser/modules/archive/utils/zip-extra-fields.js +26 -14
  54. package/dist/browser/modules/archive/zip/index.d.ts +42 -0
  55. package/dist/browser/modules/archive/zip/index.js +157 -0
  56. package/dist/browser/modules/archive/{streaming-zip.d.ts → zip/stream.d.ts} +28 -5
  57. package/dist/browser/modules/archive/{streaming-zip.js → zip/stream.js} +192 -48
  58. package/dist/browser/modules/archive/zip/zip-bytes.d.ts +73 -0
  59. package/dist/browser/modules/archive/zip/zip-bytes.js +239 -0
  60. package/dist/{esm/modules/archive → browser/modules/archive/zip}/zip-entry-metadata.js +3 -3
  61. package/dist/browser/modules/archive/{zip-records.d.ts → zip-spec/zip-records.d.ts} +20 -0
  62. package/dist/browser/modules/archive/zip-spec/zip-records.js +126 -0
  63. package/dist/browser/modules/excel/form-control.d.ts +2 -0
  64. package/dist/browser/modules/excel/form-control.js +54 -16
  65. package/dist/browser/modules/excel/stream/workbook-reader.browser.js +1 -1
  66. package/dist/browser/modules/excel/stream/workbook-writer.browser.d.ts +1 -1
  67. package/dist/browser/modules/excel/stream/workbook-writer.browser.js +1 -1
  68. package/dist/browser/modules/excel/xlsx/xform/sheet/worksheet-xform.js +17 -3
  69. package/dist/browser/modules/excel/xlsx/xlsx.browser.js +3 -6
  70. package/dist/browser/modules/excel/xlsx/xlsx.js +1 -1
  71. package/dist/browser/modules/stream/streams.browser.d.ts +28 -28
  72. package/dist/browser/modules/stream/streams.browser.js +850 -697
  73. package/dist/browser/modules/stream/streams.js +140 -58
  74. package/dist/cjs/modules/archive/{compress.base.js → compression/compress.base.js} +2 -1
  75. package/dist/cjs/modules/archive/{compress.browser.js → compression/compress.browser.js} +18 -19
  76. package/dist/cjs/modules/archive/{compress.js → compression/compress.js} +1 -1
  77. package/dist/cjs/modules/archive/{crc32.js → compression/crc32.js} +1 -1
  78. package/dist/cjs/modules/archive/{deflate-fallback.js → compression/deflate-fallback.js} +1 -1
  79. package/dist/cjs/modules/archive/{streaming-compress.browser.js → compression/streaming-compress.browser.js} +3 -3
  80. package/dist/cjs/modules/archive/{streaming-compress.js → compression/streaming-compress.js} +2 -2
  81. package/dist/cjs/modules/archive/defaults.js +7 -4
  82. package/dist/cjs/modules/archive/index.base.js +9 -19
  83. package/dist/cjs/modules/archive/index.browser.js +4 -10
  84. package/dist/cjs/modules/archive/index.js +4 -8
  85. package/dist/cjs/modules/archive/internal/byte-queue.js +411 -0
  86. package/dist/cjs/modules/archive/io/archive-sink.js +82 -0
  87. package/dist/cjs/modules/archive/io/archive-source.js +114 -0
  88. package/dist/cjs/modules/archive/unzip/index.js +170 -0
  89. package/dist/cjs/modules/archive/unzip/stream.base.js +1044 -0
  90. package/dist/cjs/modules/archive/{parse.browser.js → unzip/stream.browser.js} +377 -111
  91. package/dist/cjs/modules/archive/{parse.js → unzip/stream.js} +9 -8
  92. package/dist/cjs/modules/archive/{zip-parser.js → unzip/zip-parser.js} +47 -33
  93. package/dist/cjs/modules/archive/utils/async-queue.js +106 -0
  94. package/dist/cjs/modules/archive/utils/bytes.js +16 -16
  95. package/dist/cjs/modules/archive/utils/compressibility.js +60 -0
  96. package/dist/cjs/modules/archive/utils/parse-buffer.js +21 -23
  97. package/dist/cjs/modules/archive/utils/pattern-scanner.js +31 -0
  98. package/dist/cjs/modules/archive/utils/timestamps.js +64 -3
  99. package/dist/cjs/modules/archive/utils/zip-extra-fields.js +26 -14
  100. package/dist/cjs/modules/archive/zip/index.js +162 -0
  101. package/dist/cjs/modules/archive/{streaming-zip.js → zip/stream.js} +194 -50
  102. package/dist/cjs/modules/archive/zip/zip-bytes.js +242 -0
  103. package/dist/cjs/modules/archive/{zip-entry-metadata.js → zip/zip-entry-metadata.js} +5 -5
  104. package/dist/cjs/modules/archive/zip-spec/zip-records.js +136 -0
  105. package/dist/cjs/modules/excel/form-control.js +54 -16
  106. package/dist/cjs/modules/excel/stream/workbook-reader.browser.js +2 -2
  107. package/dist/cjs/modules/excel/stream/workbook-writer.browser.js +4 -4
  108. package/dist/cjs/modules/excel/xlsx/xform/sheet/worksheet-xform.js +17 -3
  109. package/dist/cjs/modules/excel/xlsx/xlsx.browser.js +6 -9
  110. package/dist/cjs/modules/excel/xlsx/xlsx.js +2 -2
  111. package/dist/cjs/modules/stream/streams.browser.js +850 -697
  112. package/dist/cjs/modules/stream/streams.js +140 -58
  113. package/dist/esm/index.browser.js +12 -0
  114. package/dist/esm/modules/archive/{compress.base.js → compression/compress.base.js} +2 -1
  115. package/dist/{browser/modules/archive → esm/modules/archive/compression}/compress.browser.js +18 -19
  116. package/dist/esm/modules/archive/{compress.js → compression/compress.js} +1 -1
  117. package/dist/esm/modules/archive/{crc32.js → compression/crc32.js} +1 -1
  118. package/dist/esm/modules/archive/{deflate-fallback.js → compression/deflate-fallback.js} +1 -1
  119. package/dist/esm/modules/archive/{streaming-compress.browser.js → compression/streaming-compress.browser.js} +3 -3
  120. package/dist/esm/modules/archive/{streaming-compress.js → compression/streaming-compress.js} +2 -2
  121. package/dist/esm/modules/archive/defaults.js +6 -3
  122. package/dist/esm/modules/archive/index.base.js +3 -6
  123. package/dist/esm/modules/archive/index.browser.js +3 -7
  124. package/dist/esm/modules/archive/index.js +3 -5
  125. package/dist/esm/modules/archive/internal/byte-queue.js +407 -0
  126. package/dist/esm/modules/archive/io/archive-sink.js +77 -0
  127. package/dist/esm/modules/archive/io/archive-source.js +107 -0
  128. package/dist/esm/modules/archive/unzip/index.js +164 -0
  129. package/dist/esm/modules/archive/unzip/stream.base.js +1022 -0
  130. package/dist/esm/modules/archive/{parse.browser.js → unzip/stream.browser.js} +376 -110
  131. package/dist/{browser/modules/archive/parse.js → esm/modules/archive/unzip/stream.js} +7 -6
  132. package/dist/{browser/modules/archive → esm/modules/archive/unzip}/zip-parser.js +38 -24
  133. package/dist/esm/modules/archive/utils/async-queue.js +103 -0
  134. package/dist/esm/modules/archive/utils/bytes.js +16 -16
  135. package/dist/esm/modules/archive/utils/compressibility.js +57 -0
  136. package/dist/esm/modules/archive/utils/parse-buffer.js +21 -23
  137. package/dist/esm/modules/archive/utils/pattern-scanner.js +27 -0
  138. package/dist/esm/modules/archive/utils/timestamps.js +62 -1
  139. package/dist/esm/modules/archive/utils/zip-extra-fields.js +26 -14
  140. package/dist/esm/modules/archive/zip/index.js +157 -0
  141. package/dist/esm/modules/archive/{streaming-zip.js → zip/stream.js} +192 -48
  142. package/dist/esm/modules/archive/zip/zip-bytes.js +239 -0
  143. package/dist/{browser/modules/archive → esm/modules/archive/zip}/zip-entry-metadata.js +3 -3
  144. package/dist/esm/modules/archive/zip-spec/zip-records.js +126 -0
  145. package/dist/esm/modules/excel/form-control.js +54 -16
  146. package/dist/esm/modules/excel/stream/workbook-reader.browser.js +1 -1
  147. package/dist/esm/modules/excel/stream/workbook-writer.browser.js +1 -1
  148. package/dist/esm/modules/excel/xlsx/xform/sheet/worksheet-xform.js +17 -3
  149. package/dist/esm/modules/excel/xlsx/xlsx.browser.js +3 -6
  150. package/dist/esm/modules/excel/xlsx/xlsx.js +1 -1
  151. package/dist/esm/modules/stream/streams.browser.js +850 -697
  152. package/dist/esm/modules/stream/streams.js +140 -58
  153. package/dist/iife/THIRD_PARTY_NOTICES.md +81 -0
  154. package/dist/iife/excelts.iife.js +4777 -2863
  155. package/dist/iife/excelts.iife.js.map +1 -1
  156. package/dist/iife/excelts.iife.min.js +103 -31
  157. package/dist/types/index.browser.d.ts +1 -0
  158. package/dist/{browser/modules/archive → types/modules/archive/compression}/compress.base.d.ts +1 -0
  159. package/dist/{browser/modules/archive → types/modules/archive/compression}/compress.browser.d.ts +10 -8
  160. package/dist/types/modules/archive/{streaming-compress.browser.d.ts → compression/streaming-compress.browser.d.ts} +1 -1
  161. package/dist/types/modules/archive/defaults.d.ts +1 -0
  162. package/dist/types/modules/archive/index.base.d.ts +4 -4
  163. package/dist/types/modules/archive/index.browser.d.ts +3 -4
  164. package/dist/types/modules/archive/index.d.ts +3 -4
  165. package/dist/types/modules/archive/internal/byte-queue.d.ts +33 -0
  166. package/dist/types/modules/archive/io/archive-sink.d.ts +9 -0
  167. package/dist/types/modules/archive/io/archive-source.d.ts +8 -0
  168. package/dist/types/modules/archive/unzip/index.d.ts +40 -0
  169. package/dist/types/modules/archive/{parse.base.d.ts → unzip/stream.base.d.ts} +60 -5
  170. package/dist/types/modules/archive/{parse.browser.d.ts → unzip/stream.browser.d.ts} +2 -2
  171. package/dist/types/modules/archive/{parse.d.ts → unzip/stream.d.ts} +3 -3
  172. package/dist/{browser/modules/archive → types/modules/archive/unzip}/zip-parser.d.ts +1 -1
  173. package/dist/types/modules/archive/utils/async-queue.d.ts +7 -0
  174. package/dist/types/modules/archive/utils/compressibility.d.ts +10 -0
  175. package/dist/types/modules/archive/utils/pattern-scanner.d.ts +21 -0
  176. package/dist/types/modules/archive/utils/zip-extra-fields.d.ts +1 -1
  177. package/dist/types/modules/archive/zip/index.d.ts +42 -0
  178. package/dist/types/modules/archive/{streaming-zip.d.ts → zip/stream.d.ts} +29 -6
  179. package/dist/types/modules/archive/zip/zip-bytes.d.ts +73 -0
  180. package/dist/types/modules/archive/{zip-entry-metadata.d.ts → zip/zip-entry-metadata.d.ts} +1 -1
  181. package/dist/types/modules/archive/{zip-records.d.ts → zip-spec/zip-records.d.ts} +20 -0
  182. package/dist/types/modules/excel/form-control.d.ts +2 -0
  183. package/dist/types/modules/excel/stream/workbook-writer.browser.d.ts +1 -1
  184. package/dist/types/modules/stream/streams.browser.d.ts +28 -28
  185. package/package.json +10 -6
  186. package/dist/browser/modules/archive/byte-queue.d.ts +0 -18
  187. package/dist/browser/modules/archive/byte-queue.js +0 -125
  188. package/dist/browser/modules/archive/parse.base.js +0 -610
  189. package/dist/browser/modules/archive/utils/zip-extra.d.ts +0 -18
  190. package/dist/browser/modules/archive/utils/zip-extra.js +0 -68
  191. package/dist/browser/modules/archive/zip-builder.d.ts +0 -117
  192. package/dist/browser/modules/archive/zip-builder.js +0 -292
  193. package/dist/browser/modules/archive/zip-constants.d.ts +0 -18
  194. package/dist/browser/modules/archive/zip-constants.js +0 -23
  195. package/dist/browser/modules/archive/zip-records.js +0 -84
  196. package/dist/cjs/modules/archive/byte-queue.js +0 -129
  197. package/dist/cjs/modules/archive/parse.base.js +0 -632
  198. package/dist/cjs/modules/archive/utils/zip-extra.js +0 -74
  199. package/dist/cjs/modules/archive/zip-builder.js +0 -297
  200. package/dist/cjs/modules/archive/zip-constants.js +0 -26
  201. package/dist/cjs/modules/archive/zip-records.js +0 -90
  202. package/dist/esm/modules/archive/byte-queue.js +0 -125
  203. package/dist/esm/modules/archive/parse.base.js +0 -610
  204. package/dist/esm/modules/archive/utils/zip-extra.js +0 -68
  205. package/dist/esm/modules/archive/zip-builder.js +0 -292
  206. package/dist/esm/modules/archive/zip-constants.js +0 -23
  207. package/dist/esm/modules/archive/zip-records.js +0 -84
  208. package/dist/types/modules/archive/byte-queue.d.ts +0 -18
  209. package/dist/types/modules/archive/utils/zip-extra.d.ts +0 -18
  210. package/dist/types/modules/archive/zip-builder.d.ts +0 -117
  211. package/dist/types/modules/archive/zip-constants.d.ts +0 -18
  212. /package/dist/browser/modules/archive/{crc32.base.d.ts → compression/crc32.base.d.ts} +0 -0
  213. /package/dist/browser/modules/archive/{crc32.base.js → compression/crc32.base.js} +0 -0
  214. /package/dist/browser/modules/archive/{crc32.browser.js → compression/crc32.browser.js} +0 -0
  215. /package/dist/browser/modules/archive/{deflate-fallback.d.ts → compression/deflate-fallback.d.ts} +0 -0
  216. /package/dist/browser/modules/archive/{streaming-compress.base.d.ts → compression/streaming-compress.base.d.ts} +0 -0
  217. /package/dist/browser/modules/archive/{streaming-compress.base.js → compression/streaming-compress.base.js} +0 -0
  218. /package/dist/browser/modules/archive/{extract.js → unzip/extract.js} +0 -0
  219. /package/dist/browser/modules/archive/{zip-entry-metadata.d.ts → zip/zip-entry-metadata.d.ts} +0 -0
  220. /package/dist/browser/modules/archive/{zip-entry-info.d.ts → zip-spec/zip-entry-info.d.ts} +0 -0
  221. /package/dist/browser/modules/archive/{zip-entry-info.js → zip-spec/zip-entry-info.js} +0 -0
  222. /package/dist/cjs/modules/archive/{crc32.base.js → compression/crc32.base.js} +0 -0
  223. /package/dist/cjs/modules/archive/{crc32.browser.js → compression/crc32.browser.js} +0 -0
  224. /package/dist/cjs/modules/archive/{streaming-compress.base.js → compression/streaming-compress.base.js} +0 -0
  225. /package/dist/cjs/modules/archive/{extract.js → unzip/extract.js} +0 -0
  226. /package/dist/cjs/modules/archive/{zip-entry-info.js → zip-spec/zip-entry-info.js} +0 -0
  227. /package/dist/esm/modules/archive/{crc32.base.js → compression/crc32.base.js} +0 -0
  228. /package/dist/esm/modules/archive/{crc32.browser.js → compression/crc32.browser.js} +0 -0
  229. /package/dist/esm/modules/archive/{streaming-compress.base.js → compression/streaming-compress.base.js} +0 -0
  230. /package/dist/esm/modules/archive/{extract.js → unzip/extract.js} +0 -0
  231. /package/dist/esm/modules/archive/{zip-entry-info.js → zip-spec/zip-entry-info.js} +0 -0
  232. /package/dist/{LICENSE → iife/LICENSE} +0 -0
  233. /package/dist/types/modules/archive/{compress.d.ts → compression/compress.d.ts} +0 -0
  234. /package/dist/types/modules/archive/{crc32.base.d.ts → compression/crc32.base.d.ts} +0 -0
  235. /package/dist/types/modules/archive/{crc32.browser.d.ts → compression/crc32.browser.d.ts} +0 -0
  236. /package/dist/types/modules/archive/{crc32.d.ts → compression/crc32.d.ts} +0 -0
  237. /package/dist/types/modules/archive/{deflate-fallback.d.ts → compression/deflate-fallback.d.ts} +0 -0
  238. /package/dist/types/modules/archive/{streaming-compress.base.d.ts → compression/streaming-compress.base.d.ts} +0 -0
  239. /package/dist/types/modules/archive/{streaming-compress.d.ts → compression/streaming-compress.d.ts} +0 -0
  240. /package/dist/types/modules/archive/{extract.d.ts → unzip/extract.d.ts} +0 -0
  241. /package/dist/types/modules/archive/{zip-entry-info.d.ts → zip-spec/zip-entry-info.d.ts} +0 -0
@@ -42,6 +42,8 @@ export interface FormCheckboxModel {
42
42
  shapeId: number;
43
43
  /** Control property ID (rId in relationships) */
44
44
  ctrlPropId: number;
45
+ /** Relationship id (e.g., rId5) in sheet rels for ctrlProp (set during XLSX prepare) */
46
+ ctrlPropRelId?: string;
45
47
  /** Top-left anchor */
46
48
  tl: FormControlAnchor;
47
49
  /** Bottom-right anchor */
@@ -7,7 +7,7 @@
7
7
  * Node.js uses `workbook-writer.ts`, which extends the same base implementation
8
8
  * with filesystem-specific features (filename output + image loading).
9
9
  */
10
- import { Zip } from "../../archive/streaming-zip.js";
10
+ import { Zip } from "../../archive/zip/stream.js";
11
11
  import { StreamBuf } from "../utils/stream-buf.js";
12
12
  import { StylesXform } from "../xlsx/xform/style/styles-xform.js";
13
13
  import { SharedStrings } from "../utils/shared-strings.js";
@@ -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
@@ -457,7 +455,7 @@ export declare class Transform<TInput = Uint8Array, TOutput = Uint8Array> extend
457
455
  */
458
456
  read(size?: number): TOutput | null;
459
457
  /**
460
- * Pipe to another stream (writable, transform, or duplex)
458
+ * Pipe readable side to destination
461
459
  */
462
460
  pipe<W extends Writable<TOutput> | Transform<TOutput, any> | Duplex<any, TOutput>>(destination: W): W;
463
461
  /**
@@ -552,6 +550,7 @@ export declare class Duplex<TRead = Uint8Array, TWrite = Uint8Array> extends Eve
552
550
  writable: WritableStream<W>;
553
551
  };
554
552
  private _dataForwardingSetup;
553
+ private _sideForwardingCleanup;
555
554
  constructor(options?: DuplexStreamOptions & {
556
555
  allowHalfOpen?: boolean;
557
556
  objectMode?: boolean;
@@ -559,6 +558,7 @@ export declare class Duplex<TRead = Uint8Array, TWrite = Uint8Array> extends Eve
559
558
  write?: (this: Duplex<TRead, TWrite>, chunk: TWrite, encoding: string, callback: (error?: Error | null) => void) => void;
560
559
  final?: (this: Duplex<TRead, TWrite>, callback: (error?: Error | null) => void) => void;
561
560
  });
561
+ private _setupSideForwarding;
562
562
  /**
563
563
  * Override on() to set up data forwarding lazily
564
564
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cj-tech-master/excelts",
3
- "version": "4.2.0",
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": [
@@ -127,11 +131,11 @@
127
131
  "lint:fix": "eslint --fix && oxlint --fix",
128
132
  "type": "tsgo --noEmit",
129
133
  "format": "prettier --write \"**/*.{js,ts,json,md}\"",
130
- "benchmark": "rimraf dist && npm run build:esm && node --expose-gc scripts/benchmark.js",
131
- "benchmark:compress": "rimraf dist && npm run build:esm && node --expose-gc scripts/benchmark-compress.js",
132
- "build:esm": "tsc --project tsconfig.esm.json && node scripts/fix-esm-imports.mjs",
133
- "build:cjs": "tsc --project tsconfig.cjs.json && node scripts/fix-cjs-imports.mjs",
134
- "build:browser": "tsc --project tsconfig.browser.json && node scripts/fix-esm-imports.mjs --dist dist/browser && node scripts/fix-browser-imports.mjs --dir dist/browser",
134
+ "benchmark": "rimraf dist && npm run build && node --expose-gc scripts/benchmark.ts",
135
+ "benchmark:compress": "rimraf dist && npm run build && node --expose-gc scripts/benchmark-compress.ts",
136
+ "build:esm": "tsc --project tsconfig.esm.json && node scripts/fix-esm-imports.ts",
137
+ "build:cjs": "tsc --project tsconfig.cjs.json && node scripts/fix-cjs-imports.ts",
138
+ "build:browser": "tsc --project tsconfig.browser.json && node scripts/fix-esm-imports.ts --dist dist/browser && node scripts/fix-browser-imports.ts --dir dist/browser",
135
139
  "build:browser:bundle": "rolldown -c rolldown.config.ts",
136
140
  "preversion": "npm run lint && npm run type && npm run build && npm run test"
137
141
  }
@@ -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);