rahad-all-downloader 2.1.16 → 2.1.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (188) hide show
  1. package/.github/workflows/Run.yml +20 -0
  2. package/README.md +0 -1
  3. package/index.js +1 -1
  4. package/package.json +4 -2
  5. package/.cache/nix/binary-cache-v6.sqlite +0 -0
  6. package/.cache/nix/binary-cache-v6.sqlite-journal +0 -0
  7. package/.cache/replit/env/latest +0 -123
  8. package/.cache/replit/env/latest.json +0 -1
  9. package/.cache/replit/modules/nix.res +0 -1
  10. package/.cache/replit/modules/nodejs-20.res +0 -1
  11. package/.cache/replit/modules/replit.res +0 -1
  12. package/.cache/replit/modules.stamp +0 -0
  13. package/.cache/replit/nix/env.json +0 -1
  14. package/.cache/typescript/5.4/node_modules/.package-lock.json +0 -137
  15. package/.cache/typescript/5.4/node_modules/@types/caseless/LICENSE +0 -21
  16. package/.cache/typescript/5.4/node_modules/@types/caseless/README.md +0 -48
  17. package/.cache/typescript/5.4/node_modules/@types/caseless/index.d.ts +0 -29
  18. package/.cache/typescript/5.4/node_modules/@types/caseless/package.json +0 -35
  19. package/.cache/typescript/5.4/node_modules/@types/node/LICENSE +0 -21
  20. package/.cache/typescript/5.4/node_modules/@types/node/README.md +0 -15
  21. package/.cache/typescript/5.4/node_modules/@types/node/assert/strict.d.ts +0 -8
  22. package/.cache/typescript/5.4/node_modules/@types/node/assert.d.ts +0 -1040
  23. package/.cache/typescript/5.4/node_modules/@types/node/async_hooks.d.ts +0 -541
  24. package/.cache/typescript/5.4/node_modules/@types/node/buffer.d.ts +0 -2363
  25. package/.cache/typescript/5.4/node_modules/@types/node/child_process.d.ts +0 -1544
  26. package/.cache/typescript/5.4/node_modules/@types/node/cluster.d.ts +0 -578
  27. package/.cache/typescript/5.4/node_modules/@types/node/console.d.ts +0 -452
  28. package/.cache/typescript/5.4/node_modules/@types/node/constants.d.ts +0 -19
  29. package/.cache/typescript/5.4/node_modules/@types/node/crypto.d.ts +0 -4523
  30. package/.cache/typescript/5.4/node_modules/@types/node/dgram.d.ts +0 -596
  31. package/.cache/typescript/5.4/node_modules/@types/node/diagnostics_channel.d.ts +0 -554
  32. package/.cache/typescript/5.4/node_modules/@types/node/dns/promises.d.ts +0 -474
  33. package/.cache/typescript/5.4/node_modules/@types/node/dns.d.ts +0 -864
  34. package/.cache/typescript/5.4/node_modules/@types/node/dom-events.d.ts +0 -124
  35. package/.cache/typescript/5.4/node_modules/@types/node/domain.d.ts +0 -170
  36. package/.cache/typescript/5.4/node_modules/@types/node/events.d.ts +0 -909
  37. package/.cache/typescript/5.4/node_modules/@types/node/fs/promises.d.ts +0 -1245
  38. package/.cache/typescript/5.4/node_modules/@types/node/fs.d.ts +0 -4317
  39. package/.cache/typescript/5.4/node_modules/@types/node/globals.d.ts +0 -411
  40. package/.cache/typescript/5.4/node_modules/@types/node/globals.global.d.ts +0 -1
  41. package/.cache/typescript/5.4/node_modules/@types/node/http.d.ts +0 -1908
  42. package/.cache/typescript/5.4/node_modules/@types/node/http2.d.ts +0 -2418
  43. package/.cache/typescript/5.4/node_modules/@types/node/https.d.ts +0 -550
  44. package/.cache/typescript/5.4/node_modules/@types/node/index.d.ts +0 -89
  45. package/.cache/typescript/5.4/node_modules/@types/node/inspector.d.ts +0 -2746
  46. package/.cache/typescript/5.4/node_modules/@types/node/module.d.ts +0 -315
  47. package/.cache/typescript/5.4/node_modules/@types/node/net.d.ts +0 -999
  48. package/.cache/typescript/5.4/node_modules/@types/node/os.d.ts +0 -495
  49. package/.cache/typescript/5.4/node_modules/@types/node/package.json +0 -217
  50. package/.cache/typescript/5.4/node_modules/@types/node/path.d.ts +0 -191
  51. package/.cache/typescript/5.4/node_modules/@types/node/perf_hooks.d.ts +0 -905
  52. package/.cache/typescript/5.4/node_modules/@types/node/process.d.ts +0 -1754
  53. package/.cache/typescript/5.4/node_modules/@types/node/punycode.d.ts +0 -117
  54. package/.cache/typescript/5.4/node_modules/@types/node/querystring.d.ts +0 -153
  55. package/.cache/typescript/5.4/node_modules/@types/node/readline/promises.d.ts +0 -150
  56. package/.cache/typescript/5.4/node_modules/@types/node/readline.d.ts +0 -540
  57. package/.cache/typescript/5.4/node_modules/@types/node/repl.d.ts +0 -430
  58. package/.cache/typescript/5.4/node_modules/@types/node/sea.d.ts +0 -153
  59. package/.cache/typescript/5.4/node_modules/@types/node/stream/consumers.d.ts +0 -12
  60. package/.cache/typescript/5.4/node_modules/@types/node/stream/promises.d.ts +0 -83
  61. package/.cache/typescript/5.4/node_modules/@types/node/stream/web.d.ts +0 -367
  62. package/.cache/typescript/5.4/node_modules/@types/node/stream.d.ts +0 -1707
  63. package/.cache/typescript/5.4/node_modules/@types/node/string_decoder.d.ts +0 -67
  64. package/.cache/typescript/5.4/node_modules/@types/node/test.d.ts +0 -1718
  65. package/.cache/typescript/5.4/node_modules/@types/node/timers/promises.d.ts +0 -97
  66. package/.cache/typescript/5.4/node_modules/@types/node/timers.d.ts +0 -240
  67. package/.cache/typescript/5.4/node_modules/@types/node/tls.d.ts +0 -1217
  68. package/.cache/typescript/5.4/node_modules/@types/node/trace_events.d.ts +0 -197
  69. package/.cache/typescript/5.4/node_modules/@types/node/tty.d.ts +0 -208
  70. package/.cache/typescript/5.4/node_modules/@types/node/url.d.ts +0 -952
  71. package/.cache/typescript/5.4/node_modules/@types/node/util.d.ts +0 -2292
  72. package/.cache/typescript/5.4/node_modules/@types/node/v8.d.ts +0 -808
  73. package/.cache/typescript/5.4/node_modules/@types/node/vm.d.ts +0 -924
  74. package/.cache/typescript/5.4/node_modules/@types/node/wasi.d.ts +0 -181
  75. package/.cache/typescript/5.4/node_modules/@types/node/worker_threads.d.ts +0 -691
  76. package/.cache/typescript/5.4/node_modules/@types/node/zlib.d.ts +0 -530
  77. package/.cache/typescript/5.4/node_modules/@types/node-fetch/LICENSE +0 -21
  78. package/.cache/typescript/5.4/node_modules/@types/node-fetch/README.md +0 -15
  79. package/.cache/typescript/5.4/node_modules/@types/node-fetch/externals.d.ts +0 -32
  80. package/.cache/typescript/5.4/node_modules/@types/node-fetch/index.d.ts +0 -238
  81. package/.cache/typescript/5.4/node_modules/@types/node-fetch/package.json +0 -83
  82. package/.cache/typescript/5.4/node_modules/@types/request/LICENSE +0 -21
  83. package/.cache/typescript/5.4/node_modules/@types/request/README.md +0 -15
  84. package/.cache/typescript/5.4/node_modules/@types/request/index.d.ts +0 -395
  85. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/License +0 -19
  86. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/README.md +0 -350
  87. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/README.md.bak +0 -350
  88. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/index.d.ts +0 -51
  89. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/lib/browser.js +0 -2
  90. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/lib/form_data.js +0 -483
  91. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/lib/populate.js +0 -10
  92. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/package.json +0 -68
  93. package/.cache/typescript/5.4/node_modules/@types/request/package.json +0 -70
  94. package/.cache/typescript/5.4/node_modules/@types/tough-cookie/LICENSE +0 -21
  95. package/.cache/typescript/5.4/node_modules/@types/tough-cookie/README.md +0 -15
  96. package/.cache/typescript/5.4/node_modules/@types/tough-cookie/index.d.ts +0 -321
  97. package/.cache/typescript/5.4/node_modules/@types/tough-cookie/package.json +0 -35
  98. package/.cache/typescript/5.4/node_modules/asynckit/LICENSE +0 -21
  99. package/.cache/typescript/5.4/node_modules/asynckit/README.md +0 -233
  100. package/.cache/typescript/5.4/node_modules/asynckit/bench.js +0 -76
  101. package/.cache/typescript/5.4/node_modules/asynckit/index.js +0 -6
  102. package/.cache/typescript/5.4/node_modules/asynckit/lib/abort.js +0 -29
  103. package/.cache/typescript/5.4/node_modules/asynckit/lib/async.js +0 -34
  104. package/.cache/typescript/5.4/node_modules/asynckit/lib/defer.js +0 -26
  105. package/.cache/typescript/5.4/node_modules/asynckit/lib/iterate.js +0 -75
  106. package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_asynckit.js +0 -91
  107. package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_parallel.js +0 -25
  108. package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_serial.js +0 -25
  109. package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_serial_ordered.js +0 -29
  110. package/.cache/typescript/5.4/node_modules/asynckit/lib/state.js +0 -37
  111. package/.cache/typescript/5.4/node_modules/asynckit/lib/streamify.js +0 -141
  112. package/.cache/typescript/5.4/node_modules/asynckit/lib/terminator.js +0 -29
  113. package/.cache/typescript/5.4/node_modules/asynckit/package.json +0 -63
  114. package/.cache/typescript/5.4/node_modules/asynckit/parallel.js +0 -43
  115. package/.cache/typescript/5.4/node_modules/asynckit/serial.js +0 -17
  116. package/.cache/typescript/5.4/node_modules/asynckit/serialOrdered.js +0 -75
  117. package/.cache/typescript/5.4/node_modules/asynckit/stream.js +0 -21
  118. package/.cache/typescript/5.4/node_modules/combined-stream/License +0 -19
  119. package/.cache/typescript/5.4/node_modules/combined-stream/Readme.md +0 -138
  120. package/.cache/typescript/5.4/node_modules/combined-stream/lib/combined_stream.js +0 -208
  121. package/.cache/typescript/5.4/node_modules/combined-stream/package.json +0 -25
  122. package/.cache/typescript/5.4/node_modules/combined-stream/yarn.lock +0 -17
  123. package/.cache/typescript/5.4/node_modules/delayed-stream/License +0 -19
  124. package/.cache/typescript/5.4/node_modules/delayed-stream/Makefile +0 -7
  125. package/.cache/typescript/5.4/node_modules/delayed-stream/Readme.md +0 -141
  126. package/.cache/typescript/5.4/node_modules/delayed-stream/lib/delayed_stream.js +0 -107
  127. package/.cache/typescript/5.4/node_modules/delayed-stream/package.json +0 -27
  128. package/.cache/typescript/5.4/node_modules/form-data/License +0 -19
  129. package/.cache/typescript/5.4/node_modules/form-data/README.md.bak +0 -358
  130. package/.cache/typescript/5.4/node_modules/form-data/Readme.md +0 -358
  131. package/.cache/typescript/5.4/node_modules/form-data/index.d.ts +0 -62
  132. package/.cache/typescript/5.4/node_modules/form-data/lib/browser.js +0 -2
  133. package/.cache/typescript/5.4/node_modules/form-data/lib/form_data.js +0 -501
  134. package/.cache/typescript/5.4/node_modules/form-data/lib/populate.js +0 -10
  135. package/.cache/typescript/5.4/node_modules/form-data/package.json +0 -68
  136. package/.cache/typescript/5.4/node_modules/mime-db/HISTORY.md +0 -507
  137. package/.cache/typescript/5.4/node_modules/mime-db/LICENSE +0 -23
  138. package/.cache/typescript/5.4/node_modules/mime-db/README.md +0 -100
  139. package/.cache/typescript/5.4/node_modules/mime-db/db.json +0 -8519
  140. package/.cache/typescript/5.4/node_modules/mime-db/index.js +0 -12
  141. package/.cache/typescript/5.4/node_modules/mime-db/package.json +0 -60
  142. package/.cache/typescript/5.4/node_modules/mime-types/HISTORY.md +0 -397
  143. package/.cache/typescript/5.4/node_modules/mime-types/LICENSE +0 -23
  144. package/.cache/typescript/5.4/node_modules/mime-types/README.md +0 -113
  145. package/.cache/typescript/5.4/node_modules/mime-types/index.js +0 -188
  146. package/.cache/typescript/5.4/node_modules/mime-types/package.json +0 -44
  147. package/.cache/typescript/5.4/node_modules/types-registry/README.md +0 -2
  148. package/.cache/typescript/5.4/node_modules/types-registry/index.json +0 -1
  149. package/.cache/typescript/5.4/node_modules/types-registry/package.json +0 -20
  150. package/.cache/typescript/5.4/node_modules/undici-types/README.md +0 -6
  151. package/.cache/typescript/5.4/node_modules/undici-types/agent.d.ts +0 -31
  152. package/.cache/typescript/5.4/node_modules/undici-types/api.d.ts +0 -43
  153. package/.cache/typescript/5.4/node_modules/undici-types/balanced-pool.d.ts +0 -18
  154. package/.cache/typescript/5.4/node_modules/undici-types/cache.d.ts +0 -36
  155. package/.cache/typescript/5.4/node_modules/undici-types/client.d.ts +0 -97
  156. package/.cache/typescript/5.4/node_modules/undici-types/connector.d.ts +0 -34
  157. package/.cache/typescript/5.4/node_modules/undici-types/content-type.d.ts +0 -21
  158. package/.cache/typescript/5.4/node_modules/undici-types/cookies.d.ts +0 -28
  159. package/.cache/typescript/5.4/node_modules/undici-types/diagnostics-channel.d.ts +0 -67
  160. package/.cache/typescript/5.4/node_modules/undici-types/dispatcher.d.ts +0 -241
  161. package/.cache/typescript/5.4/node_modules/undici-types/errors.d.ts +0 -128
  162. package/.cache/typescript/5.4/node_modules/undici-types/fetch.d.ts +0 -209
  163. package/.cache/typescript/5.4/node_modules/undici-types/file.d.ts +0 -39
  164. package/.cache/typescript/5.4/node_modules/undici-types/filereader.d.ts +0 -54
  165. package/.cache/typescript/5.4/node_modules/undici-types/formdata.d.ts +0 -108
  166. package/.cache/typescript/5.4/node_modules/undici-types/global-dispatcher.d.ts +0 -9
  167. package/.cache/typescript/5.4/node_modules/undici-types/global-origin.d.ts +0 -7
  168. package/.cache/typescript/5.4/node_modules/undici-types/handlers.d.ts +0 -9
  169. package/.cache/typescript/5.4/node_modules/undici-types/header.d.ts +0 -4
  170. package/.cache/typescript/5.4/node_modules/undici-types/index.d.ts +0 -63
  171. package/.cache/typescript/5.4/node_modules/undici-types/interceptors.d.ts +0 -5
  172. package/.cache/typescript/5.4/node_modules/undici-types/mock-agent.d.ts +0 -50
  173. package/.cache/typescript/5.4/node_modules/undici-types/mock-client.d.ts +0 -25
  174. package/.cache/typescript/5.4/node_modules/undici-types/mock-errors.d.ts +0 -12
  175. package/.cache/typescript/5.4/node_modules/undici-types/mock-interceptor.d.ts +0 -93
  176. package/.cache/typescript/5.4/node_modules/undici-types/mock-pool.d.ts +0 -25
  177. package/.cache/typescript/5.4/node_modules/undici-types/package.json +0 -55
  178. package/.cache/typescript/5.4/node_modules/undici-types/patch.d.ts +0 -71
  179. package/.cache/typescript/5.4/node_modules/undici-types/pool-stats.d.ts +0 -19
  180. package/.cache/typescript/5.4/node_modules/undici-types/pool.d.ts +0 -28
  181. package/.cache/typescript/5.4/node_modules/undici-types/proxy-agent.d.ts +0 -30
  182. package/.cache/typescript/5.4/node_modules/undici-types/readable.d.ts +0 -61
  183. package/.cache/typescript/5.4/node_modules/undici-types/webidl.d.ts +0 -220
  184. package/.cache/typescript/5.4/node_modules/undici-types/websocket.d.ts +0 -131
  185. package/.cache/typescript/5.4/package-lock.json +0 -146
  186. package/.cache/typescript/5.4/package.json +0 -1
  187. package/.replit +0 -21
  188. package/replit.nix +0 -3
@@ -1,43 +0,0 @@
1
- var iterate = require('./lib/iterate.js')
2
- , initState = require('./lib/state.js')
3
- , terminator = require('./lib/terminator.js')
4
- ;
5
-
6
- // Public API
7
- module.exports = parallel;
8
-
9
- /**
10
- * Runs iterator over provided array elements in parallel
11
- *
12
- * @param {array|object} list - array or object (named list) to iterate over
13
- * @param {function} iterator - iterator to run
14
- * @param {function} callback - invoked when all elements processed
15
- * @returns {function} - jobs terminator
16
- */
17
- function parallel(list, iterator, callback)
18
- {
19
- var state = initState(list);
20
-
21
- while (state.index < (state['keyedList'] || list).length)
22
- {
23
- iterate(list, iterator, state, function(error, result)
24
- {
25
- if (error)
26
- {
27
- callback(error, result);
28
- return;
29
- }
30
-
31
- // looks like it's the last one
32
- if (Object.keys(state.jobs).length === 0)
33
- {
34
- callback(null, state.results);
35
- return;
36
- }
37
- });
38
-
39
- state.index++;
40
- }
41
-
42
- return terminator.bind(state, callback);
43
- }
@@ -1,17 +0,0 @@
1
- var serialOrdered = require('./serialOrdered.js');
2
-
3
- // Public API
4
- module.exports = serial;
5
-
6
- /**
7
- * Runs iterator over provided array elements in series
8
- *
9
- * @param {array|object} list - array or object (named list) to iterate over
10
- * @param {function} iterator - iterator to run
11
- * @param {function} callback - invoked when all elements processed
12
- * @returns {function} - jobs terminator
13
- */
14
- function serial(list, iterator, callback)
15
- {
16
- return serialOrdered(list, iterator, null, callback);
17
- }
@@ -1,75 +0,0 @@
1
- var iterate = require('./lib/iterate.js')
2
- , initState = require('./lib/state.js')
3
- , terminator = require('./lib/terminator.js')
4
- ;
5
-
6
- // Public API
7
- module.exports = serialOrdered;
8
- // sorting helpers
9
- module.exports.ascending = ascending;
10
- module.exports.descending = descending;
11
-
12
- /**
13
- * Runs iterator over provided sorted array elements in series
14
- *
15
- * @param {array|object} list - array or object (named list) to iterate over
16
- * @param {function} iterator - iterator to run
17
- * @param {function} sortMethod - custom sort function
18
- * @param {function} callback - invoked when all elements processed
19
- * @returns {function} - jobs terminator
20
- */
21
- function serialOrdered(list, iterator, sortMethod, callback)
22
- {
23
- var state = initState(list, sortMethod);
24
-
25
- iterate(list, iterator, state, function iteratorHandler(error, result)
26
- {
27
- if (error)
28
- {
29
- callback(error, result);
30
- return;
31
- }
32
-
33
- state.index++;
34
-
35
- // are we there yet?
36
- if (state.index < (state['keyedList'] || list).length)
37
- {
38
- iterate(list, iterator, state, iteratorHandler);
39
- return;
40
- }
41
-
42
- // done here
43
- callback(null, state.results);
44
- });
45
-
46
- return terminator.bind(state, callback);
47
- }
48
-
49
- /*
50
- * -- Sort methods
51
- */
52
-
53
- /**
54
- * sort helper to sort array elements in ascending order
55
- *
56
- * @param {mixed} a - an item to compare
57
- * @param {mixed} b - an item to compare
58
- * @returns {number} - comparison result
59
- */
60
- function ascending(a, b)
61
- {
62
- return a < b ? -1 : a > b ? 1 : 0;
63
- }
64
-
65
- /**
66
- * sort helper to sort array elements in descending order
67
- *
68
- * @param {mixed} a - an item to compare
69
- * @param {mixed} b - an item to compare
70
- * @returns {number} - comparison result
71
- */
72
- function descending(a, b)
73
- {
74
- return -1 * ascending(a, b);
75
- }
@@ -1,21 +0,0 @@
1
- var inherits = require('util').inherits
2
- , Readable = require('stream').Readable
3
- , ReadableAsyncKit = require('./lib/readable_asynckit.js')
4
- , ReadableParallel = require('./lib/readable_parallel.js')
5
- , ReadableSerial = require('./lib/readable_serial.js')
6
- , ReadableSerialOrdered = require('./lib/readable_serial_ordered.js')
7
- ;
8
-
9
- // API
10
- module.exports =
11
- {
12
- parallel : ReadableParallel,
13
- serial : ReadableSerial,
14
- serialOrdered : ReadableSerialOrdered,
15
- };
16
-
17
- inherits(ReadableAsyncKit, Readable);
18
-
19
- inherits(ReadableParallel, ReadableAsyncKit);
20
- inherits(ReadableSerial, ReadableAsyncKit);
21
- inherits(ReadableSerialOrdered, ReadableAsyncKit);
@@ -1,19 +0,0 @@
1
- Copyright (c) 2011 Debuggable Limited <felix@debuggable.com>
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining a copy
4
- of this software and associated documentation files (the "Software"), to deal
5
- in the Software without restriction, including without limitation the rights
6
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- copies of the Software, and to permit persons to whom the Software is
8
- furnished to do so, subject to the following conditions:
9
-
10
- The above copyright notice and this permission notice shall be included in
11
- all copies or substantial portions of the Software.
12
-
13
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- THE SOFTWARE.
@@ -1,138 +0,0 @@
1
- # combined-stream
2
-
3
- A stream that emits multiple other streams one after another.
4
-
5
- **NB** Currently `combined-stream` works with streams version 1 only. There is ongoing effort to switch this library to streams version 2. Any help is welcome. :) Meanwhile you can explore other libraries that provide streams2 support with more or less compatibility with `combined-stream`.
6
-
7
- - [combined-stream2](https://www.npmjs.com/package/combined-stream2): A drop-in streams2-compatible replacement for the combined-stream module.
8
-
9
- - [multistream](https://www.npmjs.com/package/multistream): A stream that emits multiple other streams one after another.
10
-
11
- ## Installation
12
-
13
- ``` bash
14
- npm install combined-stream
15
- ```
16
-
17
- ## Usage
18
-
19
- Here is a simple example that shows how you can use combined-stream to combine
20
- two files into one:
21
-
22
- ``` javascript
23
- var CombinedStream = require('combined-stream');
24
- var fs = require('fs');
25
-
26
- var combinedStream = CombinedStream.create();
27
- combinedStream.append(fs.createReadStream('file1.txt'));
28
- combinedStream.append(fs.createReadStream('file2.txt'));
29
-
30
- combinedStream.pipe(fs.createWriteStream('combined.txt'));
31
- ```
32
-
33
- While the example above works great, it will pause all source streams until
34
- they are needed. If you don't want that to happen, you can set `pauseStreams`
35
- to `false`:
36
-
37
- ``` javascript
38
- var CombinedStream = require('combined-stream');
39
- var fs = require('fs');
40
-
41
- var combinedStream = CombinedStream.create({pauseStreams: false});
42
- combinedStream.append(fs.createReadStream('file1.txt'));
43
- combinedStream.append(fs.createReadStream('file2.txt'));
44
-
45
- combinedStream.pipe(fs.createWriteStream('combined.txt'));
46
- ```
47
-
48
- However, what if you don't have all the source streams yet, or you don't want
49
- to allocate the resources (file descriptors, memory, etc.) for them right away?
50
- Well, in that case you can simply provide a callback that supplies the stream
51
- by calling a `next()` function:
52
-
53
- ``` javascript
54
- var CombinedStream = require('combined-stream');
55
- var fs = require('fs');
56
-
57
- var combinedStream = CombinedStream.create();
58
- combinedStream.append(function(next) {
59
- next(fs.createReadStream('file1.txt'));
60
- });
61
- combinedStream.append(function(next) {
62
- next(fs.createReadStream('file2.txt'));
63
- });
64
-
65
- combinedStream.pipe(fs.createWriteStream('combined.txt'));
66
- ```
67
-
68
- ## API
69
-
70
- ### CombinedStream.create([options])
71
-
72
- Returns a new combined stream object. Available options are:
73
-
74
- * `maxDataSize`
75
- * `pauseStreams`
76
-
77
- The effect of those options is described below.
78
-
79
- ### combinedStream.pauseStreams = `true`
80
-
81
- Whether to apply back pressure to the underlaying streams. If set to `false`,
82
- the underlaying streams will never be paused. If set to `true`, the
83
- underlaying streams will be paused right after being appended, as well as when
84
- `delayedStream.pipe()` wants to throttle.
85
-
86
- ### combinedStream.maxDataSize = `2 * 1024 * 1024`
87
-
88
- The maximum amount of bytes (or characters) to buffer for all source streams.
89
- If this value is exceeded, `combinedStream` emits an `'error'` event.
90
-
91
- ### combinedStream.dataSize = `0`
92
-
93
- The amount of bytes (or characters) currently buffered by `combinedStream`.
94
-
95
- ### combinedStream.append(stream)
96
-
97
- Appends the given `stream` to the combinedStream object. If `pauseStreams` is
98
- set to `true, this stream will also be paused right away.
99
-
100
- `streams` can also be a function that takes one parameter called `next`. `next`
101
- is a function that must be invoked in order to provide the `next` stream, see
102
- example above.
103
-
104
- Regardless of how the `stream` is appended, combined-stream always attaches an
105
- `'error'` listener to it, so you don't have to do that manually.
106
-
107
- Special case: `stream` can also be a String or Buffer.
108
-
109
- ### combinedStream.write(data)
110
-
111
- You should not call this, `combinedStream` takes care of piping the appended
112
- streams into itself for you.
113
-
114
- ### combinedStream.resume()
115
-
116
- Causes `combinedStream` to start drain the streams it manages. The function is
117
- idempotent, and also emits a `'resume'` event each time which usually goes to
118
- the stream that is currently being drained.
119
-
120
- ### combinedStream.pause();
121
-
122
- If `combinedStream.pauseStreams` is set to `false`, this does nothing.
123
- Otherwise a `'pause'` event is emitted, this goes to the stream that is
124
- currently being drained, so you can use it to apply back pressure.
125
-
126
- ### combinedStream.end();
127
-
128
- Sets `combinedStream.writable` to false, emits an `'end'` event, and removes
129
- all streams from the queue.
130
-
131
- ### combinedStream.destroy();
132
-
133
- Same as `combinedStream.end()`, except it emits a `'close'` event instead of
134
- `'end'`.
135
-
136
- ## License
137
-
138
- combined-stream is licensed under the MIT license.
@@ -1,208 +0,0 @@
1
- var util = require('util');
2
- var Stream = require('stream').Stream;
3
- var DelayedStream = require('delayed-stream');
4
-
5
- module.exports = CombinedStream;
6
- function CombinedStream() {
7
- this.writable = false;
8
- this.readable = true;
9
- this.dataSize = 0;
10
- this.maxDataSize = 2 * 1024 * 1024;
11
- this.pauseStreams = true;
12
-
13
- this._released = false;
14
- this._streams = [];
15
- this._currentStream = null;
16
- this._insideLoop = false;
17
- this._pendingNext = false;
18
- }
19
- util.inherits(CombinedStream, Stream);
20
-
21
- CombinedStream.create = function(options) {
22
- var combinedStream = new this();
23
-
24
- options = options || {};
25
- for (var option in options) {
26
- combinedStream[option] = options[option];
27
- }
28
-
29
- return combinedStream;
30
- };
31
-
32
- CombinedStream.isStreamLike = function(stream) {
33
- return (typeof stream !== 'function')
34
- && (typeof stream !== 'string')
35
- && (typeof stream !== 'boolean')
36
- && (typeof stream !== 'number')
37
- && (!Buffer.isBuffer(stream));
38
- };
39
-
40
- CombinedStream.prototype.append = function(stream) {
41
- var isStreamLike = CombinedStream.isStreamLike(stream);
42
-
43
- if (isStreamLike) {
44
- if (!(stream instanceof DelayedStream)) {
45
- var newStream = DelayedStream.create(stream, {
46
- maxDataSize: Infinity,
47
- pauseStream: this.pauseStreams,
48
- });
49
- stream.on('data', this._checkDataSize.bind(this));
50
- stream = newStream;
51
- }
52
-
53
- this._handleErrors(stream);
54
-
55
- if (this.pauseStreams) {
56
- stream.pause();
57
- }
58
- }
59
-
60
- this._streams.push(stream);
61
- return this;
62
- };
63
-
64
- CombinedStream.prototype.pipe = function(dest, options) {
65
- Stream.prototype.pipe.call(this, dest, options);
66
- this.resume();
67
- return dest;
68
- };
69
-
70
- CombinedStream.prototype._getNext = function() {
71
- this._currentStream = null;
72
-
73
- if (this._insideLoop) {
74
- this._pendingNext = true;
75
- return; // defer call
76
- }
77
-
78
- this._insideLoop = true;
79
- try {
80
- do {
81
- this._pendingNext = false;
82
- this._realGetNext();
83
- } while (this._pendingNext);
84
- } finally {
85
- this._insideLoop = false;
86
- }
87
- };
88
-
89
- CombinedStream.prototype._realGetNext = function() {
90
- var stream = this._streams.shift();
91
-
92
-
93
- if (typeof stream == 'undefined') {
94
- this.end();
95
- return;
96
- }
97
-
98
- if (typeof stream !== 'function') {
99
- this._pipeNext(stream);
100
- return;
101
- }
102
-
103
- var getStream = stream;
104
- getStream(function(stream) {
105
- var isStreamLike = CombinedStream.isStreamLike(stream);
106
- if (isStreamLike) {
107
- stream.on('data', this._checkDataSize.bind(this));
108
- this._handleErrors(stream);
109
- }
110
-
111
- this._pipeNext(stream);
112
- }.bind(this));
113
- };
114
-
115
- CombinedStream.prototype._pipeNext = function(stream) {
116
- this._currentStream = stream;
117
-
118
- var isStreamLike = CombinedStream.isStreamLike(stream);
119
- if (isStreamLike) {
120
- stream.on('end', this._getNext.bind(this));
121
- stream.pipe(this, {end: false});
122
- return;
123
- }
124
-
125
- var value = stream;
126
- this.write(value);
127
- this._getNext();
128
- };
129
-
130
- CombinedStream.prototype._handleErrors = function(stream) {
131
- var self = this;
132
- stream.on('error', function(err) {
133
- self._emitError(err);
134
- });
135
- };
136
-
137
- CombinedStream.prototype.write = function(data) {
138
- this.emit('data', data);
139
- };
140
-
141
- CombinedStream.prototype.pause = function() {
142
- if (!this.pauseStreams) {
143
- return;
144
- }
145
-
146
- if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause();
147
- this.emit('pause');
148
- };
149
-
150
- CombinedStream.prototype.resume = function() {
151
- if (!this._released) {
152
- this._released = true;
153
- this.writable = true;
154
- this._getNext();
155
- }
156
-
157
- if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume();
158
- this.emit('resume');
159
- };
160
-
161
- CombinedStream.prototype.end = function() {
162
- this._reset();
163
- this.emit('end');
164
- };
165
-
166
- CombinedStream.prototype.destroy = function() {
167
- this._reset();
168
- this.emit('close');
169
- };
170
-
171
- CombinedStream.prototype._reset = function() {
172
- this.writable = false;
173
- this._streams = [];
174
- this._currentStream = null;
175
- };
176
-
177
- CombinedStream.prototype._checkDataSize = function() {
178
- this._updateDataSize();
179
- if (this.dataSize <= this.maxDataSize) {
180
- return;
181
- }
182
-
183
- var message =
184
- 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.';
185
- this._emitError(new Error(message));
186
- };
187
-
188
- CombinedStream.prototype._updateDataSize = function() {
189
- this.dataSize = 0;
190
-
191
- var self = this;
192
- this._streams.forEach(function(stream) {
193
- if (!stream.dataSize) {
194
- return;
195
- }
196
-
197
- self.dataSize += stream.dataSize;
198
- });
199
-
200
- if (this._currentStream && this._currentStream.dataSize) {
201
- this.dataSize += this._currentStream.dataSize;
202
- }
203
- };
204
-
205
- CombinedStream.prototype._emitError = function(err) {
206
- this._reset();
207
- this.emit('error', err);
208
- };
@@ -1,25 +0,0 @@
1
- {
2
- "author": "Felix Geisendörfer <felix@debuggable.com> (http://debuggable.com/)",
3
- "name": "combined-stream",
4
- "description": "A stream that emits multiple other streams one after another.",
5
- "version": "1.0.8",
6
- "homepage": "https://github.com/felixge/node-combined-stream",
7
- "repository": {
8
- "type": "git",
9
- "url": "git://github.com/felixge/node-combined-stream.git"
10
- },
11
- "main": "./lib/combined_stream",
12
- "scripts": {
13
- "test": "node test/run.js"
14
- },
15
- "engines": {
16
- "node": ">= 0.8"
17
- },
18
- "dependencies": {
19
- "delayed-stream": "~1.0.0"
20
- },
21
- "devDependencies": {
22
- "far": "~0.0.7"
23
- },
24
- "license": "MIT"
25
- }
@@ -1,17 +0,0 @@
1
- # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2
- # yarn lockfile v1
3
-
4
-
5
- delayed-stream@~1.0.0:
6
- version "1.0.0"
7
- resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
8
-
9
- far@~0.0.7:
10
- version "0.0.7"
11
- resolved "https://registry.yarnpkg.com/far/-/far-0.0.7.tgz#01c1fd362bcd26ce9cf161af3938aa34619f79a7"
12
- dependencies:
13
- oop "0.0.3"
14
-
15
- oop@0.0.3:
16
- version "0.0.3"
17
- resolved "https://registry.yarnpkg.com/oop/-/oop-0.0.3.tgz#70fa405a5650891a194fdc82ca68dad6dabf4401"
@@ -1,19 +0,0 @@
1
- Copyright (c) 2011 Debuggable Limited <felix@debuggable.com>
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining a copy
4
- of this software and associated documentation files (the "Software"), to deal
5
- in the Software without restriction, including without limitation the rights
6
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- copies of the Software, and to permit persons to whom the Software is
8
- furnished to do so, subject to the following conditions:
9
-
10
- The above copyright notice and this permission notice shall be included in
11
- all copies or substantial portions of the Software.
12
-
13
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- THE SOFTWARE.
@@ -1,7 +0,0 @@
1
- SHELL := /bin/bash
2
-
3
- test:
4
- @./test/run.js
5
-
6
- .PHONY: test
7
-