rahad-all-downloader 2.1.15 → 2.1.17
Sign up to get free protection for your applications and to get access to all the features.
- package/.github/workflows/Run.yml +20 -0
- package/README.md +0 -1
- package/index.js +1 -1
- package/package.json +4 -2
- package/.cache/nix/binary-cache-v6.sqlite +0 -0
- package/.cache/nix/binary-cache-v6.sqlite-journal +0 -0
- package/.cache/replit/modules/nix.res +0 -1
- package/.cache/replit/modules/nodejs-20.res +0 -1
- package/.cache/replit/modules/replit.res +0 -1
- package/.cache/replit/modules.stamp +0 -0
- package/.cache/replit/nix/env.json +0 -1
- package/.cache/typescript/5.4/node_modules/.package-lock.json +0 -137
- package/.cache/typescript/5.4/node_modules/@types/caseless/LICENSE +0 -21
- package/.cache/typescript/5.4/node_modules/@types/caseless/README.md +0 -48
- package/.cache/typescript/5.4/node_modules/@types/caseless/index.d.ts +0 -29
- package/.cache/typescript/5.4/node_modules/@types/caseless/package.json +0 -35
- package/.cache/typescript/5.4/node_modules/@types/node/LICENSE +0 -21
- package/.cache/typescript/5.4/node_modules/@types/node/README.md +0 -15
- package/.cache/typescript/5.4/node_modules/@types/node/assert/strict.d.ts +0 -8
- package/.cache/typescript/5.4/node_modules/@types/node/assert.d.ts +0 -1040
- package/.cache/typescript/5.4/node_modules/@types/node/async_hooks.d.ts +0 -541
- package/.cache/typescript/5.4/node_modules/@types/node/buffer.d.ts +0 -2363
- package/.cache/typescript/5.4/node_modules/@types/node/child_process.d.ts +0 -1544
- package/.cache/typescript/5.4/node_modules/@types/node/cluster.d.ts +0 -578
- package/.cache/typescript/5.4/node_modules/@types/node/console.d.ts +0 -452
- package/.cache/typescript/5.4/node_modules/@types/node/constants.d.ts +0 -19
- package/.cache/typescript/5.4/node_modules/@types/node/crypto.d.ts +0 -4523
- package/.cache/typescript/5.4/node_modules/@types/node/dgram.d.ts +0 -596
- package/.cache/typescript/5.4/node_modules/@types/node/diagnostics_channel.d.ts +0 -554
- package/.cache/typescript/5.4/node_modules/@types/node/dns/promises.d.ts +0 -474
- package/.cache/typescript/5.4/node_modules/@types/node/dns.d.ts +0 -864
- package/.cache/typescript/5.4/node_modules/@types/node/dom-events.d.ts +0 -124
- package/.cache/typescript/5.4/node_modules/@types/node/domain.d.ts +0 -170
- package/.cache/typescript/5.4/node_modules/@types/node/events.d.ts +0 -909
- package/.cache/typescript/5.4/node_modules/@types/node/fs/promises.d.ts +0 -1245
- package/.cache/typescript/5.4/node_modules/@types/node/fs.d.ts +0 -4317
- package/.cache/typescript/5.4/node_modules/@types/node/globals.d.ts +0 -411
- package/.cache/typescript/5.4/node_modules/@types/node/globals.global.d.ts +0 -1
- package/.cache/typescript/5.4/node_modules/@types/node/http.d.ts +0 -1908
- package/.cache/typescript/5.4/node_modules/@types/node/http2.d.ts +0 -2418
- package/.cache/typescript/5.4/node_modules/@types/node/https.d.ts +0 -550
- package/.cache/typescript/5.4/node_modules/@types/node/index.d.ts +0 -89
- package/.cache/typescript/5.4/node_modules/@types/node/inspector.d.ts +0 -2746
- package/.cache/typescript/5.4/node_modules/@types/node/module.d.ts +0 -315
- package/.cache/typescript/5.4/node_modules/@types/node/net.d.ts +0 -999
- package/.cache/typescript/5.4/node_modules/@types/node/os.d.ts +0 -495
- package/.cache/typescript/5.4/node_modules/@types/node/package.json +0 -217
- package/.cache/typescript/5.4/node_modules/@types/node/path.d.ts +0 -191
- package/.cache/typescript/5.4/node_modules/@types/node/perf_hooks.d.ts +0 -905
- package/.cache/typescript/5.4/node_modules/@types/node/process.d.ts +0 -1754
- package/.cache/typescript/5.4/node_modules/@types/node/punycode.d.ts +0 -117
- package/.cache/typescript/5.4/node_modules/@types/node/querystring.d.ts +0 -153
- package/.cache/typescript/5.4/node_modules/@types/node/readline/promises.d.ts +0 -150
- package/.cache/typescript/5.4/node_modules/@types/node/readline.d.ts +0 -540
- package/.cache/typescript/5.4/node_modules/@types/node/repl.d.ts +0 -430
- package/.cache/typescript/5.4/node_modules/@types/node/sea.d.ts +0 -153
- package/.cache/typescript/5.4/node_modules/@types/node/stream/consumers.d.ts +0 -12
- package/.cache/typescript/5.4/node_modules/@types/node/stream/promises.d.ts +0 -83
- package/.cache/typescript/5.4/node_modules/@types/node/stream/web.d.ts +0 -367
- package/.cache/typescript/5.4/node_modules/@types/node/stream.d.ts +0 -1707
- package/.cache/typescript/5.4/node_modules/@types/node/string_decoder.d.ts +0 -67
- package/.cache/typescript/5.4/node_modules/@types/node/test.d.ts +0 -1718
- package/.cache/typescript/5.4/node_modules/@types/node/timers/promises.d.ts +0 -97
- package/.cache/typescript/5.4/node_modules/@types/node/timers.d.ts +0 -240
- package/.cache/typescript/5.4/node_modules/@types/node/tls.d.ts +0 -1217
- package/.cache/typescript/5.4/node_modules/@types/node/trace_events.d.ts +0 -197
- package/.cache/typescript/5.4/node_modules/@types/node/tty.d.ts +0 -208
- package/.cache/typescript/5.4/node_modules/@types/node/url.d.ts +0 -952
- package/.cache/typescript/5.4/node_modules/@types/node/util.d.ts +0 -2292
- package/.cache/typescript/5.4/node_modules/@types/node/v8.d.ts +0 -808
- package/.cache/typescript/5.4/node_modules/@types/node/vm.d.ts +0 -924
- package/.cache/typescript/5.4/node_modules/@types/node/wasi.d.ts +0 -181
- package/.cache/typescript/5.4/node_modules/@types/node/worker_threads.d.ts +0 -691
- package/.cache/typescript/5.4/node_modules/@types/node/zlib.d.ts +0 -530
- package/.cache/typescript/5.4/node_modules/@types/node-fetch/LICENSE +0 -21
- package/.cache/typescript/5.4/node_modules/@types/node-fetch/README.md +0 -15
- package/.cache/typescript/5.4/node_modules/@types/node-fetch/externals.d.ts +0 -32
- package/.cache/typescript/5.4/node_modules/@types/node-fetch/index.d.ts +0 -238
- package/.cache/typescript/5.4/node_modules/@types/node-fetch/package.json +0 -83
- package/.cache/typescript/5.4/node_modules/@types/request/LICENSE +0 -21
- package/.cache/typescript/5.4/node_modules/@types/request/README.md +0 -15
- package/.cache/typescript/5.4/node_modules/@types/request/index.d.ts +0 -395
- package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/License +0 -19
- package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/README.md +0 -350
- package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/README.md.bak +0 -350
- package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/index.d.ts +0 -51
- package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/lib/browser.js +0 -2
- package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/lib/form_data.js +0 -483
- package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/lib/populate.js +0 -10
- package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/package.json +0 -68
- package/.cache/typescript/5.4/node_modules/@types/request/package.json +0 -70
- package/.cache/typescript/5.4/node_modules/@types/tough-cookie/LICENSE +0 -21
- package/.cache/typescript/5.4/node_modules/@types/tough-cookie/README.md +0 -15
- package/.cache/typescript/5.4/node_modules/@types/tough-cookie/index.d.ts +0 -321
- package/.cache/typescript/5.4/node_modules/@types/tough-cookie/package.json +0 -35
- package/.cache/typescript/5.4/node_modules/asynckit/LICENSE +0 -21
- package/.cache/typescript/5.4/node_modules/asynckit/README.md +0 -233
- package/.cache/typescript/5.4/node_modules/asynckit/bench.js +0 -76
- package/.cache/typescript/5.4/node_modules/asynckit/index.js +0 -6
- package/.cache/typescript/5.4/node_modules/asynckit/lib/abort.js +0 -29
- package/.cache/typescript/5.4/node_modules/asynckit/lib/async.js +0 -34
- package/.cache/typescript/5.4/node_modules/asynckit/lib/defer.js +0 -26
- package/.cache/typescript/5.4/node_modules/asynckit/lib/iterate.js +0 -75
- package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_asynckit.js +0 -91
- package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_parallel.js +0 -25
- package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_serial.js +0 -25
- package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_serial_ordered.js +0 -29
- package/.cache/typescript/5.4/node_modules/asynckit/lib/state.js +0 -37
- package/.cache/typescript/5.4/node_modules/asynckit/lib/streamify.js +0 -141
- package/.cache/typescript/5.4/node_modules/asynckit/lib/terminator.js +0 -29
- package/.cache/typescript/5.4/node_modules/asynckit/package.json +0 -63
- package/.cache/typescript/5.4/node_modules/asynckit/parallel.js +0 -43
- package/.cache/typescript/5.4/node_modules/asynckit/serial.js +0 -17
- package/.cache/typescript/5.4/node_modules/asynckit/serialOrdered.js +0 -75
- package/.cache/typescript/5.4/node_modules/asynckit/stream.js +0 -21
- package/.cache/typescript/5.4/node_modules/combined-stream/License +0 -19
- package/.cache/typescript/5.4/node_modules/combined-stream/Readme.md +0 -138
- package/.cache/typescript/5.4/node_modules/combined-stream/lib/combined_stream.js +0 -208
- package/.cache/typescript/5.4/node_modules/combined-stream/package.json +0 -25
- package/.cache/typescript/5.4/node_modules/combined-stream/yarn.lock +0 -17
- package/.cache/typescript/5.4/node_modules/delayed-stream/License +0 -19
- package/.cache/typescript/5.4/node_modules/delayed-stream/Makefile +0 -7
- package/.cache/typescript/5.4/node_modules/delayed-stream/Readme.md +0 -141
- package/.cache/typescript/5.4/node_modules/delayed-stream/lib/delayed_stream.js +0 -107
- package/.cache/typescript/5.4/node_modules/delayed-stream/package.json +0 -27
- package/.cache/typescript/5.4/node_modules/form-data/License +0 -19
- package/.cache/typescript/5.4/node_modules/form-data/README.md.bak +0 -358
- package/.cache/typescript/5.4/node_modules/form-data/Readme.md +0 -358
- package/.cache/typescript/5.4/node_modules/form-data/index.d.ts +0 -62
- package/.cache/typescript/5.4/node_modules/form-data/lib/browser.js +0 -2
- package/.cache/typescript/5.4/node_modules/form-data/lib/form_data.js +0 -501
- package/.cache/typescript/5.4/node_modules/form-data/lib/populate.js +0 -10
- package/.cache/typescript/5.4/node_modules/form-data/package.json +0 -68
- package/.cache/typescript/5.4/node_modules/mime-db/HISTORY.md +0 -507
- package/.cache/typescript/5.4/node_modules/mime-db/LICENSE +0 -23
- package/.cache/typescript/5.4/node_modules/mime-db/README.md +0 -100
- package/.cache/typescript/5.4/node_modules/mime-db/db.json +0 -8519
- package/.cache/typescript/5.4/node_modules/mime-db/index.js +0 -12
- package/.cache/typescript/5.4/node_modules/mime-db/package.json +0 -60
- package/.cache/typescript/5.4/node_modules/mime-types/HISTORY.md +0 -397
- package/.cache/typescript/5.4/node_modules/mime-types/LICENSE +0 -23
- package/.cache/typescript/5.4/node_modules/mime-types/README.md +0 -113
- package/.cache/typescript/5.4/node_modules/mime-types/index.js +0 -188
- package/.cache/typescript/5.4/node_modules/mime-types/package.json +0 -44
- package/.cache/typescript/5.4/node_modules/types-registry/README.md +0 -2
- package/.cache/typescript/5.4/node_modules/types-registry/index.json +0 -1
- package/.cache/typescript/5.4/node_modules/types-registry/package.json +0 -20
- package/.cache/typescript/5.4/node_modules/undici-types/README.md +0 -6
- package/.cache/typescript/5.4/node_modules/undici-types/agent.d.ts +0 -31
- package/.cache/typescript/5.4/node_modules/undici-types/api.d.ts +0 -43
- package/.cache/typescript/5.4/node_modules/undici-types/balanced-pool.d.ts +0 -18
- package/.cache/typescript/5.4/node_modules/undici-types/cache.d.ts +0 -36
- package/.cache/typescript/5.4/node_modules/undici-types/client.d.ts +0 -97
- package/.cache/typescript/5.4/node_modules/undici-types/connector.d.ts +0 -34
- package/.cache/typescript/5.4/node_modules/undici-types/content-type.d.ts +0 -21
- package/.cache/typescript/5.4/node_modules/undici-types/cookies.d.ts +0 -28
- package/.cache/typescript/5.4/node_modules/undici-types/diagnostics-channel.d.ts +0 -67
- package/.cache/typescript/5.4/node_modules/undici-types/dispatcher.d.ts +0 -241
- package/.cache/typescript/5.4/node_modules/undici-types/errors.d.ts +0 -128
- package/.cache/typescript/5.4/node_modules/undici-types/fetch.d.ts +0 -209
- package/.cache/typescript/5.4/node_modules/undici-types/file.d.ts +0 -39
- package/.cache/typescript/5.4/node_modules/undici-types/filereader.d.ts +0 -54
- package/.cache/typescript/5.4/node_modules/undici-types/formdata.d.ts +0 -108
- package/.cache/typescript/5.4/node_modules/undici-types/global-dispatcher.d.ts +0 -9
- package/.cache/typescript/5.4/node_modules/undici-types/global-origin.d.ts +0 -7
- package/.cache/typescript/5.4/node_modules/undici-types/handlers.d.ts +0 -9
- package/.cache/typescript/5.4/node_modules/undici-types/header.d.ts +0 -4
- package/.cache/typescript/5.4/node_modules/undici-types/index.d.ts +0 -63
- package/.cache/typescript/5.4/node_modules/undici-types/interceptors.d.ts +0 -5
- package/.cache/typescript/5.4/node_modules/undici-types/mock-agent.d.ts +0 -50
- package/.cache/typescript/5.4/node_modules/undici-types/mock-client.d.ts +0 -25
- package/.cache/typescript/5.4/node_modules/undici-types/mock-errors.d.ts +0 -12
- package/.cache/typescript/5.4/node_modules/undici-types/mock-interceptor.d.ts +0 -93
- package/.cache/typescript/5.4/node_modules/undici-types/mock-pool.d.ts +0 -25
- package/.cache/typescript/5.4/node_modules/undici-types/package.json +0 -55
- package/.cache/typescript/5.4/node_modules/undici-types/patch.d.ts +0 -71
- package/.cache/typescript/5.4/node_modules/undici-types/pool-stats.d.ts +0 -19
- package/.cache/typescript/5.4/node_modules/undici-types/pool.d.ts +0 -28
- package/.cache/typescript/5.4/node_modules/undici-types/proxy-agent.d.ts +0 -30
- package/.cache/typescript/5.4/node_modules/undici-types/readable.d.ts +0 -61
- package/.cache/typescript/5.4/node_modules/undici-types/webidl.d.ts +0 -220
- package/.cache/typescript/5.4/node_modules/undici-types/websocket.d.ts +0 -131
- package/.cache/typescript/5.4/package-lock.json +0 -146
- package/.cache/typescript/5.4/package.json +0 -1
- package/.replit +0 -21
- 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.
|