documonster 0.20.2 → 0.21.0

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 (144) hide show
  1. package/README.md +1 -1
  2. package/README_zh.md +1 -1
  3. package/THIRD_PARTY_NOTICES.md +34 -2
  4. package/dist/esm/modules/archive/core/byte-queue.js +2 -1
  5. package/dist/esm/modules/archive/unzip/stream.browser.js +6 -0
  6. package/dist/esm/modules/csv/parse/async.js +2 -1
  7. package/dist/esm/modules/excel/bridge/csv-bridge.js +1 -1
  8. package/dist/esm/modules/excel/core/xlsx-io.browser.js +5 -9
  9. package/dist/esm/modules/excel/core/xlsx-io.js +1 -3
  10. package/dist/esm/modules/excel/core/xlsx-stream.js +3 -1
  11. package/dist/esm/modules/excel/stream/workbook-reader.browser.js +10 -10
  12. package/dist/esm/modules/excel/stream/workbook-reader.js +30 -6
  13. package/dist/esm/modules/stream/browser/collector.js +3 -5
  14. package/dist/esm/modules/stream/browser/compose.js +13 -228
  15. package/dist/esm/modules/stream/browser/duplex-pair.js +71 -0
  16. package/dist/esm/modules/stream/browser/factories.js +35 -217
  17. package/dist/esm/modules/stream/browser/pipeline.js +43 -478
  18. package/dist/esm/modules/stream/browser/utils.js +21 -247
  19. package/dist/esm/modules/stream/browser/web.js +25 -0
  20. package/dist/esm/modules/stream/buffered-stream.js +8 -6
  21. package/dist/esm/modules/stream/core/factories.js +166 -0
  22. package/dist/esm/modules/stream/core/pipeline-api.js +32 -0
  23. package/dist/esm/modules/stream/core/sink-adapter.js +94 -24
  24. package/dist/esm/modules/stream/core/stream-helpers.js +160 -0
  25. package/dist/esm/modules/stream/core/utils.js +0 -23
  26. package/dist/esm/modules/stream/core/web-conversions.js +31 -0
  27. package/dist/esm/modules/stream/core/web-pipeline.js +90 -0
  28. package/dist/esm/modules/stream/index.base.js +2 -2
  29. package/dist/esm/modules/stream/index.browser.js +13 -19
  30. package/dist/esm/modules/stream/index.js +6 -10
  31. package/dist/esm/modules/stream/kernel/classes.js +618 -0
  32. package/dist/esm/modules/stream/kernel/compose-impl.js +225 -0
  33. package/dist/esm/modules/stream/kernel/destroy.js +255 -0
  34. package/dist/esm/modules/stream/kernel/duplexify.js +355 -0
  35. package/dist/esm/modules/stream/kernel/end-of-stream.js +212 -0
  36. package/dist/esm/modules/stream/kernel/errors.js +215 -0
  37. package/dist/esm/modules/stream/kernel/from.js +202 -0
  38. package/dist/esm/modules/stream/kernel/legacy.js +35 -0
  39. package/dist/esm/modules/stream/kernel/operators.js +285 -0
  40. package/dist/esm/modules/stream/kernel/pipeline-impl.js +561 -0
  41. package/dist/esm/modules/stream/kernel/readable-impl.js +963 -0
  42. package/dist/esm/modules/stream/kernel/state.js +253 -0
  43. package/dist/esm/modules/stream/kernel/stream-utils.js +212 -0
  44. package/dist/esm/modules/stream/kernel/web-adapters.js +584 -0
  45. package/dist/esm/modules/stream/kernel/writable.js +651 -0
  46. package/dist/esm/modules/stream/node/collector.js +7 -1
  47. package/dist/esm/modules/stream/node/compose.js +21 -206
  48. package/dist/esm/modules/stream/node/factories.js +34 -238
  49. package/dist/esm/modules/stream/node/pipeline.js +40 -94
  50. package/dist/esm/modules/stream/node/utils.js +15 -239
  51. package/dist/esm/modules/stream/node/web.js +27 -0
  52. package/dist/esm/modules/stream/pull-stream.js +15 -9
  53. package/dist/esm/modules/word/writer/streaming-writer.js +3 -0
  54. package/dist/iife/THIRD_PARTY_NOTICES.md +34 -2
  55. package/dist/iife/documonster.archive.iife.min.js +4 -4
  56. package/dist/iife/documonster.csv.iife.min.js +19 -19
  57. package/dist/iife/documonster.draw.iife.min.js +1 -1
  58. package/dist/iife/documonster.excel.iife.min.js +50 -50
  59. package/dist/iife/documonster.formula.iife.min.js +1 -1
  60. package/dist/iife/documonster.markdown.iife.min.js +1 -1
  61. package/dist/iife/documonster.mermaid.iife.min.js +1 -1
  62. package/dist/iife/documonster.pdf.iife.min.js +1 -1
  63. package/dist/iife/documonster.stream.iife.min.js +2 -2
  64. package/dist/iife/documonster.word.iife.min.js +60 -60
  65. package/dist/iife/documonster.xml.iife.min.js +1 -1
  66. package/dist/types/modules/excel/core/xlsx-io.browser.d.ts +5 -9
  67. package/dist/types/modules/excel/core/xlsx-io.d.ts +1 -3
  68. package/dist/types/modules/excel/core/xlsx-stream.d.ts +3 -2
  69. package/dist/types/modules/excel/stream/workbook-reader.browser.d.ts +2 -1
  70. package/dist/types/modules/excel/stream/workbook-reader.d.ts +2 -1
  71. package/dist/types/modules/stream/browser/collector.d.ts +1 -1
  72. package/dist/types/modules/stream/browser/compose.d.ts +14 -15
  73. package/dist/types/modules/stream/browser/duplex-pair.d.ts +10 -0
  74. package/dist/types/modules/stream/browser/factories.d.ts +22 -79
  75. package/dist/types/modules/stream/browser/pipeline.d.ts +8 -40
  76. package/dist/types/modules/stream/browser/utils.d.ts +6 -47
  77. package/dist/types/modules/stream/browser/web.d.ts +18 -0
  78. package/dist/types/modules/stream/core/add-abort-signal.d.ts +2 -1
  79. package/dist/types/modules/stream/core/consumers.d.ts +1 -1
  80. package/dist/types/modules/stream/core/event-utils.d.ts +2 -1
  81. package/dist/types/modules/stream/core/factories.d.ts +129 -0
  82. package/dist/types/modules/stream/core/pipeline-api.d.ts +10 -0
  83. package/dist/types/modules/stream/core/sink-adapter.d.ts +18 -1
  84. package/dist/types/modules/stream/core/stream-helpers.d.ts +76 -0
  85. package/dist/types/modules/stream/core/utils.d.ts +0 -9
  86. package/dist/types/modules/stream/core/web-conversions.d.ts +68 -0
  87. package/dist/types/modules/stream/core/web-pipeline.d.ts +27 -0
  88. package/dist/types/modules/stream/index.base.d.ts +6 -4
  89. package/dist/types/modules/stream/index.browser.d.ts +13 -14
  90. package/dist/types/modules/stream/index.d.ts +7 -10
  91. package/dist/types/modules/stream/kernel/classes.d.ts +220 -0
  92. package/dist/types/modules/stream/kernel/compose-impl.d.ts +10 -0
  93. package/dist/types/modules/stream/kernel/destroy.d.ts +21 -0
  94. package/dist/types/modules/stream/kernel/duplexify.d.ts +31 -0
  95. package/dist/types/modules/stream/kernel/end-of-stream.d.ts +28 -0
  96. package/dist/types/modules/stream/kernel/errors.d.ts +42 -0
  97. package/dist/types/modules/stream/kernel/from.d.ts +17 -0
  98. package/dist/types/modules/stream/kernel/legacy.d.ts +20 -0
  99. package/dist/types/modules/stream/kernel/operators.d.ts +44 -0
  100. package/dist/types/modules/stream/kernel/pipeline-impl.d.ts +32 -0
  101. package/dist/types/modules/stream/kernel/readable-impl.d.ts +34 -0
  102. package/dist/types/modules/stream/kernel/state.d.ts +223 -0
  103. package/dist/types/modules/stream/kernel/stream-utils.d.ts +34 -0
  104. package/dist/types/modules/stream/kernel/web-adapters.d.ts +65 -0
  105. package/dist/types/modules/stream/kernel/writable.d.ts +107 -0
  106. package/dist/types/modules/stream/node/collector.d.ts +7 -2
  107. package/dist/types/modules/stream/node/compose.d.ts +31 -5
  108. package/dist/types/modules/stream/node/factories.d.ts +22 -85
  109. package/dist/types/modules/stream/node/pipeline.d.ts +4 -15
  110. package/dist/types/modules/stream/node/utils.d.ts +9 -49
  111. package/dist/types/modules/stream/node/web.d.ts +18 -0
  112. package/dist/types/modules/stream/pull-stream.d.ts +2 -2
  113. package/dist/types/modules/stream/types.d.ts +24 -6
  114. package/package.json +5 -3
  115. package/dist/esm/modules/stream/browser/_lazy.js +0 -30
  116. package/dist/esm/modules/stream/browser/chunk-buffer.js +0 -223
  117. package/dist/esm/modules/stream/browser/duplex.js +0 -979
  118. package/dist/esm/modules/stream/browser/helpers.js +0 -44
  119. package/dist/esm/modules/stream/browser/microtask-context.js +0 -60
  120. package/dist/esm/modules/stream/browser/passthrough.js +0 -16
  121. package/dist/esm/modules/stream/browser/pipe-manager.js +0 -161
  122. package/dist/esm/modules/stream/browser/readable.js +0 -2208
  123. package/dist/esm/modules/stream/browser/transform.js +0 -1241
  124. package/dist/esm/modules/stream/browser/writable.js +0 -1316
  125. package/dist/esm/modules/stream/core/end-args.js +0 -24
  126. package/dist/esm/modules/stream/node/writable.js +0 -125
  127. package/dist/esm/modules/stream/utils.base.js +0 -126
  128. package/dist/esm/modules/stream/utils.browser.js +0 -80
  129. package/dist/esm/modules/stream/utils.js +0 -81
  130. package/dist/types/modules/stream/browser/_lazy.d.ts +0 -20
  131. package/dist/types/modules/stream/browser/chunk-buffer.d.ts +0 -61
  132. package/dist/types/modules/stream/browser/duplex.d.ts +0 -299
  133. package/dist/types/modules/stream/browser/helpers.d.ts +0 -13
  134. package/dist/types/modules/stream/browser/microtask-context.d.ts +0 -44
  135. package/dist/types/modules/stream/browser/passthrough.d.ts +0 -11
  136. package/dist/types/modules/stream/browser/pipe-manager.d.ts +0 -38
  137. package/dist/types/modules/stream/browser/readable.d.ts +0 -379
  138. package/dist/types/modules/stream/browser/transform.d.ts +0 -314
  139. package/dist/types/modules/stream/browser/writable.d.ts +0 -238
  140. package/dist/types/modules/stream/core/end-args.d.ts +0 -20
  141. package/dist/types/modules/stream/node/writable.d.ts +0 -53
  142. package/dist/types/modules/stream/utils.base.d.ts +0 -63
  143. package/dist/types/modules/stream/utils.browser.d.ts +0 -23
  144. package/dist/types/modules/stream/utils.d.ts +0 -24
@@ -1,218 +1,36 @@
1
1
  /**
2
- * Browser Stream - Factory functions
3
- */
4
- import { createCollector } from "./collector.js";
5
- import { Duplex } from "./duplex.js";
6
- import { PassThrough } from "./passthrough.js";
7
- import { Readable, pumpAsyncIterableToReadable } from "./readable.js";
8
- import { Transform } from "./transform.js";
9
- import { Writable } from "./writable.js";
10
- import { BufferedStream, createStringChunk, createByteChunk } from "../buffered-stream.js";
11
- import { PullStream } from "../pull-stream.js";
12
- // Re-export shared stream classes
13
- export { PullStream, BufferedStream, createStringChunk, createByteChunk };
14
- /** Create a pull stream */
15
- export function createPullStream(options) {
16
- return new PullStream(options);
17
- }
18
- /** Create a buffered stream */
19
- export function createBufferedStream(options) {
20
- return new BufferedStream(options);
21
- }
22
- // =============================================================================
23
- // Stream Creation Functions
24
- // =============================================================================
25
- /**
26
- * Create a readable stream with custom read implementation
27
- */
28
- export function createReadable(options) {
29
- // Readable already supports Node-style `read()` via the constructor option.
30
- // Keep this helper minimal to avoid accidental double-read behavior.
31
- return new Readable(options);
32
- }
33
- /**
34
- * Create a readable stream from an async iterable
35
- */
36
- export function createReadableFromAsyncIterable(iterable, options) {
37
- const readable = new Readable({ ...options, objectMode: options?.objectMode ?? true });
38
- pumpAsyncIterableToReadable(readable, iterable);
39
- return readable;
40
- }
41
- /**
42
- * Create a readable stream from an array
43
- */
44
- export function createReadableFromArray(data, options) {
45
- let index = 0;
46
- const readable = new Readable({
47
- ...options,
48
- objectMode: options?.objectMode ?? true,
49
- read() {
50
- // Push data when read is called
51
- while (index < data.length) {
52
- const chunk = data[index++];
53
- if (chunk === undefined) {
54
- continue; // see the note on the Node factory: not a value a stream carries
55
- }
56
- if (!this.push(chunk)) {
57
- // Backpressure - wait for next read
58
- return;
59
- }
60
- }
61
- // All data pushed, end the stream
62
- this.push(null);
63
- }
64
- });
65
- return readable;
66
- }
67
- /**
68
- * Create a writable stream with custom write implementation
69
- */
70
- export function createWritable(options) {
71
- // Writable already supports Node-style `write()` / `final()` via the constructor.
72
- return new Writable(options);
73
- }
74
- /**
75
- * Create a transform stream from a transform function.
76
- *
77
- * The shorthand `transformFn` (1-2 params, returns value) is wrapped into
78
- * a proper Node.js-style callback-based transform so that the return value
79
- * is delivered via `callback(null, data)` — matching the Node.js factory.
80
- */
81
- export function createTransform(transformFn, options) {
82
- return new Transform({
83
- ...options,
84
- transform(chunk, encoding, callback) {
85
- try {
86
- const result = transformFn(chunk, encoding);
87
- if (result instanceof Promise) {
88
- result
89
- .then(data => {
90
- if (data !== undefined) {
91
- callback(null, data);
92
- }
93
- else {
94
- callback();
95
- }
96
- })
97
- .catch(err => callback(err));
98
- }
99
- else {
100
- if (result !== undefined) {
101
- callback(null, result);
102
- }
103
- else {
104
- callback();
105
- }
106
- }
107
- }
108
- catch (err) {
109
- callback(err);
110
- }
111
- },
112
- flush: options?.flush
113
- ? function (callback) {
114
- try {
115
- const result = options.flush();
116
- if (result instanceof Promise) {
117
- result
118
- .then(data => {
119
- if (data !== undefined) {
120
- callback(null, data);
121
- }
122
- else {
123
- callback();
124
- }
125
- })
126
- .catch(err => callback(err));
127
- }
128
- else if (result !== undefined) {
129
- callback(null, result);
130
- }
131
- else {
132
- callback();
133
- }
134
- }
135
- catch (err) {
136
- callback(err);
137
- }
138
- }
139
- : undefined
140
- });
141
- }
142
- // createCollector is now defined in collector.ts and re-exported here for convenience.
143
- export { createCollector };
144
- /**
145
- * Create a passthrough stream
146
- */
147
- export function createPassThrough(options) {
148
- return new PassThrough(options);
149
- }
150
- /**
151
- * Create a duplex stream from a pair of readable and writable streams
152
- */
153
- export function createDuplex(options) {
154
- return new Duplex({
155
- highWaterMark: options?.highWaterMark,
156
- objectMode: options?.objectMode,
157
- allowHalfOpen: options?.allowHalfOpen,
158
- readableHighWaterMark: options?.readableHighWaterMark,
159
- writableHighWaterMark: options?.writableHighWaterMark,
160
- readableObjectMode: options?.readableObjectMode,
161
- writableObjectMode: options?.writableObjectMode,
162
- read: options?.read,
163
- write: options?.write,
164
- final: options?.final,
165
- destroy: options?.destroy
166
- });
167
- }
168
- /**
169
- * Create a readable stream from a generator function
170
- */
171
- export function createReadableFromGenerator(generator, options) {
172
- const readable = new Readable({ ...options, objectMode: options?.objectMode ?? true });
173
- pumpAsyncIterableToReadable(readable, generator());
174
- return readable;
175
- }
176
- /**
177
- * Create a readable stream from a Promise
178
- */
179
- export function createReadableFromPromise(promise, options) {
180
- const readable = new Readable({ ...options, objectMode: options?.objectMode ?? true });
181
- promise
182
- .then(value => {
183
- readable.push(value);
184
- readable.push(null);
185
- })
186
- .catch(err => {
187
- readable.destroy(err);
188
- });
189
- return readable;
190
- }
191
- // Reusable read callback for createEmptyReadable (pull-based, matches Node behavior).
192
- // Boundary: this single shared hook is reused across every Readable<T>
193
- // instantiation, so its `this` is left open (Readable is invariant in T).
194
- function emptyRead() {
195
- this.push(null);
196
- }
197
- /**
198
- * Create a readable stream that emits nothing and immediately ends
199
- */
200
- export function createEmptyReadable(options) {
201
- return new Readable({
202
- ...options,
203
- read: emptyRead
204
- });
205
- }
206
- // Reusable null write handler
207
- function nullWrite(_chunk, _encoding, callback) {
208
- callback();
209
- }
210
- /**
211
- * Create a writable stream that discards all data (like /dev/null)
212
- */
213
- export function createNullWritable(options) {
214
- return new Writable({
215
- ...options,
216
- write: nullWrite
217
- });
218
- }
2
+ * Browser Stream - factory functions, built on the browser stream classes.
3
+ */
4
+ import { makeCreateReadable, makeCreateReadableFromAsyncIterable, makeCreateReadableFromArray, makeCreateReadableFromGenerator, makeCreateReadableFromPromise, makeCreateEmptyReadable, makeCreateWritable, makeCreateNullWritable, makeCreateTransform, makeCreatePassThrough, makeCreateDuplex, makeFilter, makeFromBytes, makeFromJSON, makeFromString, makeTransform } from "../core/factories.js";
5
+ import { Duplex, PassThrough, Readable, Transform } from "../kernel/classes.js";
6
+ import { Writable } from "../kernel/writable.js";
7
+ export { BufferedStream, createByteChunk, createStringChunk } from "../buffered-stream.js";
8
+ export { createBufferedStream, createPullStream } from "../core/factories.js";
9
+ export { PullStream } from "../pull-stream.js";
10
+ export const createReadable =
11
+ /* @__PURE__ */ makeCreateReadable(Readable);
12
+ export const createReadableFromAsyncIterable =
13
+ /* @__PURE__ */ makeCreateReadableFromAsyncIterable(Readable);
14
+ export const createReadableFromArray =
15
+ /* @__PURE__ */ makeCreateReadableFromArray(Readable);
16
+ export const createReadableFromGenerator =
17
+ /* @__PURE__ */ makeCreateReadableFromGenerator(Readable);
18
+ export const createReadableFromPromise =
19
+ /* @__PURE__ */ makeCreateReadableFromPromise(Readable);
20
+ export const createEmptyReadable =
21
+ /* @__PURE__ */ makeCreateEmptyReadable(Readable);
22
+ export const createWritable =
23
+ /* @__PURE__ */ makeCreateWritable(Writable);
24
+ export const createNullWritable =
25
+ /* @__PURE__ */ makeCreateNullWritable(Writable);
26
+ export const createTransform =
27
+ /* @__PURE__ */ makeCreateTransform(Transform);
28
+ export const createPassThrough =
29
+ /* @__PURE__ */ makeCreatePassThrough(PassThrough);
30
+ export const createDuplex =
31
+ /* @__PURE__ */ makeCreateDuplex(Duplex);
32
+ export const fromBytes = /* @__PURE__ */ makeFromBytes(Readable);
33
+ export const fromString = /* @__PURE__ */ makeFromString(Readable);
34
+ export const fromJSON = /* @__PURE__ */ makeFromJSON(Readable);
35
+ export const transform = /* @__PURE__ */ makeTransform(Transform);
36
+ export const filter = /* @__PURE__ */ makeFilter(Transform);