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.
- 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/env/latest +0 -123
- package/.cache/replit/env/latest.json +0 -1
- 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,541 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* We strongly discourage the use of the `async_hooks` API.
|
3
|
-
* Other APIs that can cover most of its use cases include:
|
4
|
-
*
|
5
|
-
* * [`AsyncLocalStorage`](https://nodejs.org/docs/latest-v20.x/api/async_context.html#class-asynclocalstorage) tracks async context
|
6
|
-
* * [`process.getActiveResourcesInfo()`](https://nodejs.org/docs/latest-v20.x/api/process.html#processgetactiveresourcesinfo) tracks active resources
|
7
|
-
*
|
8
|
-
* The `node:async_hooks` module provides an API to track asynchronous resources.
|
9
|
-
* It can be accessed using:
|
10
|
-
*
|
11
|
-
* ```js
|
12
|
-
* import async_hooks from 'node:async_hooks';
|
13
|
-
* ```
|
14
|
-
* @experimental
|
15
|
-
* @see [source](https://github.com/nodejs/node/blob/v20.13.1/lib/async_hooks.js)
|
16
|
-
*/
|
17
|
-
declare module "async_hooks" {
|
18
|
-
/**
|
19
|
-
* ```js
|
20
|
-
* import { executionAsyncId } from 'node:async_hooks';
|
21
|
-
* import fs from 'node:fs';
|
22
|
-
*
|
23
|
-
* console.log(executionAsyncId()); // 1 - bootstrap
|
24
|
-
* const path = '.';
|
25
|
-
* fs.open(path, 'r', (err, fd) => {
|
26
|
-
* console.log(executionAsyncId()); // 6 - open()
|
27
|
-
* });
|
28
|
-
* ```
|
29
|
-
*
|
30
|
-
* The ID returned from `executionAsyncId()` is related to execution timing, not
|
31
|
-
* causality (which is covered by `triggerAsyncId()`):
|
32
|
-
*
|
33
|
-
* ```js
|
34
|
-
* const server = net.createServer((conn) => {
|
35
|
-
* // Returns the ID of the server, not of the new connection, because the
|
36
|
-
* // callback runs in the execution scope of the server's MakeCallback().
|
37
|
-
* async_hooks.executionAsyncId();
|
38
|
-
*
|
39
|
-
* }).listen(port, () => {
|
40
|
-
* // Returns the ID of a TickObject (process.nextTick()) because all
|
41
|
-
* // callbacks passed to .listen() are wrapped in a nextTick().
|
42
|
-
* async_hooks.executionAsyncId();
|
43
|
-
* });
|
44
|
-
* ```
|
45
|
-
*
|
46
|
-
* Promise contexts may not get precise `executionAsyncIds` by default.
|
47
|
-
* See the section on [promise execution tracking](https://nodejs.org/docs/latest-v20.x/api/async_hooks.html#promise-execution-tracking).
|
48
|
-
* @since v8.1.0
|
49
|
-
* @return The `asyncId` of the current execution context. Useful to track when something calls.
|
50
|
-
*/
|
51
|
-
function executionAsyncId(): number;
|
52
|
-
/**
|
53
|
-
* Resource objects returned by `executionAsyncResource()` are most often internal
|
54
|
-
* Node.js handle objects with undocumented APIs. Using any functions or properties
|
55
|
-
* on the object is likely to crash your application and should be avoided.
|
56
|
-
*
|
57
|
-
* Using `executionAsyncResource()` in the top-level execution context will
|
58
|
-
* return an empty object as there is no handle or request object to use,
|
59
|
-
* but having an object representing the top-level can be helpful.
|
60
|
-
*
|
61
|
-
* ```js
|
62
|
-
* import { open } from 'node:fs';
|
63
|
-
* import { executionAsyncId, executionAsyncResource } from 'node:async_hooks';
|
64
|
-
*
|
65
|
-
* console.log(executionAsyncId(), executionAsyncResource()); // 1 {}
|
66
|
-
* open(new URL(import.meta.url), 'r', (err, fd) => {
|
67
|
-
* console.log(executionAsyncId(), executionAsyncResource()); // 7 FSReqWrap
|
68
|
-
* });
|
69
|
-
* ```
|
70
|
-
*
|
71
|
-
* This can be used to implement continuation local storage without the
|
72
|
-
* use of a tracking `Map` to store the metadata:
|
73
|
-
*
|
74
|
-
* ```js
|
75
|
-
* import { createServer } from 'node:http';
|
76
|
-
* import {
|
77
|
-
* executionAsyncId,
|
78
|
-
* executionAsyncResource,
|
79
|
-
* createHook,
|
80
|
-
* } from 'async_hooks';
|
81
|
-
* const sym = Symbol('state'); // Private symbol to avoid pollution
|
82
|
-
*
|
83
|
-
* createHook({
|
84
|
-
* init(asyncId, type, triggerAsyncId, resource) {
|
85
|
-
* const cr = executionAsyncResource();
|
86
|
-
* if (cr) {
|
87
|
-
* resource[sym] = cr[sym];
|
88
|
-
* }
|
89
|
-
* },
|
90
|
-
* }).enable();
|
91
|
-
*
|
92
|
-
* const server = createServer((req, res) => {
|
93
|
-
* executionAsyncResource()[sym] = { state: req.url };
|
94
|
-
* setTimeout(function() {
|
95
|
-
* res.end(JSON.stringify(executionAsyncResource()[sym]));
|
96
|
-
* }, 100);
|
97
|
-
* }).listen(3000);
|
98
|
-
* ```
|
99
|
-
* @since v13.9.0, v12.17.0
|
100
|
-
* @return The resource representing the current execution. Useful to store data within the resource.
|
101
|
-
*/
|
102
|
-
function executionAsyncResource(): object;
|
103
|
-
/**
|
104
|
-
* ```js
|
105
|
-
* const server = net.createServer((conn) => {
|
106
|
-
* // The resource that caused (or triggered) this callback to be called
|
107
|
-
* // was that of the new connection. Thus the return value of triggerAsyncId()
|
108
|
-
* // is the asyncId of "conn".
|
109
|
-
* async_hooks.triggerAsyncId();
|
110
|
-
*
|
111
|
-
* }).listen(port, () => {
|
112
|
-
* // Even though all callbacks passed to .listen() are wrapped in a nextTick()
|
113
|
-
* // the callback itself exists because the call to the server's .listen()
|
114
|
-
* // was made. So the return value would be the ID of the server.
|
115
|
-
* async_hooks.triggerAsyncId();
|
116
|
-
* });
|
117
|
-
* ```
|
118
|
-
*
|
119
|
-
* Promise contexts may not get valid `triggerAsyncId`s by default. See
|
120
|
-
* the section on [promise execution tracking](https://nodejs.org/docs/latest-v20.x/api/async_hooks.html#promise-execution-tracking).
|
121
|
-
* @return The ID of the resource responsible for calling the callback that is currently being executed.
|
122
|
-
*/
|
123
|
-
function triggerAsyncId(): number;
|
124
|
-
interface HookCallbacks {
|
125
|
-
/**
|
126
|
-
* Called when a class is constructed that has the possibility to emit an asynchronous event.
|
127
|
-
* @param asyncId A unique ID for the async resource
|
128
|
-
* @param type The type of the async resource
|
129
|
-
* @param triggerAsyncId The unique ID of the async resource in whose execution context this async resource was created
|
130
|
-
* @param resource Reference to the resource representing the async operation, needs to be released during destroy
|
131
|
-
*/
|
132
|
-
init?(asyncId: number, type: string, triggerAsyncId: number, resource: object): void;
|
133
|
-
/**
|
134
|
-
* When an asynchronous operation is initiated or completes a callback is called to notify the user.
|
135
|
-
* The before callback is called just before said callback is executed.
|
136
|
-
* @param asyncId the unique identifier assigned to the resource about to execute the callback.
|
137
|
-
*/
|
138
|
-
before?(asyncId: number): void;
|
139
|
-
/**
|
140
|
-
* Called immediately after the callback specified in `before` is completed.
|
141
|
-
*
|
142
|
-
* If an uncaught exception occurs during execution of the callback, then `after` will run after the `'uncaughtException'` event is emitted or a `domain`'s handler runs.
|
143
|
-
* @param asyncId the unique identifier assigned to the resource which has executed the callback.
|
144
|
-
*/
|
145
|
-
after?(asyncId: number): void;
|
146
|
-
/**
|
147
|
-
* Called when a promise has resolve() called. This may not be in the same execution id
|
148
|
-
* as the promise itself.
|
149
|
-
* @param asyncId the unique id for the promise that was resolve()d.
|
150
|
-
*/
|
151
|
-
promiseResolve?(asyncId: number): void;
|
152
|
-
/**
|
153
|
-
* Called after the resource corresponding to asyncId is destroyed
|
154
|
-
* @param asyncId a unique ID for the async resource
|
155
|
-
*/
|
156
|
-
destroy?(asyncId: number): void;
|
157
|
-
}
|
158
|
-
interface AsyncHook {
|
159
|
-
/**
|
160
|
-
* Enable the callbacks for a given AsyncHook instance. If no callbacks are provided enabling is a noop.
|
161
|
-
*/
|
162
|
-
enable(): this;
|
163
|
-
/**
|
164
|
-
* Disable the callbacks for a given AsyncHook instance from the global pool of AsyncHook callbacks to be executed. Once a hook has been disabled it will not be called again until enabled.
|
165
|
-
*/
|
166
|
-
disable(): this;
|
167
|
-
}
|
168
|
-
/**
|
169
|
-
* Registers functions to be called for different lifetime events of each async
|
170
|
-
* operation.
|
171
|
-
*
|
172
|
-
* The callbacks `init()`/`before()`/`after()`/`destroy()` are called for the
|
173
|
-
* respective asynchronous event during a resource's lifetime.
|
174
|
-
*
|
175
|
-
* All callbacks are optional. For example, if only resource cleanup needs to
|
176
|
-
* be tracked, then only the `destroy` callback needs to be passed. The
|
177
|
-
* specifics of all functions that can be passed to `callbacks` is in the `Hook Callbacks` section.
|
178
|
-
*
|
179
|
-
* ```js
|
180
|
-
* import { createHook } from 'node:async_hooks';
|
181
|
-
*
|
182
|
-
* const asyncHook = createHook({
|
183
|
-
* init(asyncId, type, triggerAsyncId, resource) { },
|
184
|
-
* destroy(asyncId) { },
|
185
|
-
* });
|
186
|
-
* ```
|
187
|
-
*
|
188
|
-
* The callbacks will be inherited via the prototype chain:
|
189
|
-
*
|
190
|
-
* ```js
|
191
|
-
* class MyAsyncCallbacks {
|
192
|
-
* init(asyncId, type, triggerAsyncId, resource) { }
|
193
|
-
* destroy(asyncId) {}
|
194
|
-
* }
|
195
|
-
*
|
196
|
-
* class MyAddedCallbacks extends MyAsyncCallbacks {
|
197
|
-
* before(asyncId) { }
|
198
|
-
* after(asyncId) { }
|
199
|
-
* }
|
200
|
-
*
|
201
|
-
* const asyncHook = async_hooks.createHook(new MyAddedCallbacks());
|
202
|
-
* ```
|
203
|
-
*
|
204
|
-
* Because promises are asynchronous resources whose lifecycle is tracked
|
205
|
-
* via the async hooks mechanism, the `init()`, `before()`, `after()`, and`destroy()` callbacks _must not_ be async functions that return promises.
|
206
|
-
* @since v8.1.0
|
207
|
-
* @param callbacks The `Hook Callbacks` to register
|
208
|
-
* @return Instance used for disabling and enabling hooks
|
209
|
-
*/
|
210
|
-
function createHook(callbacks: HookCallbacks): AsyncHook;
|
211
|
-
interface AsyncResourceOptions {
|
212
|
-
/**
|
213
|
-
* The ID of the execution context that created this async event.
|
214
|
-
* @default executionAsyncId()
|
215
|
-
*/
|
216
|
-
triggerAsyncId?: number | undefined;
|
217
|
-
/**
|
218
|
-
* Disables automatic `emitDestroy` when the object is garbage collected.
|
219
|
-
* This usually does not need to be set (even if `emitDestroy` is called
|
220
|
-
* manually), unless the resource's `asyncId` is retrieved and the
|
221
|
-
* sensitive API's `emitDestroy` is called with it.
|
222
|
-
* @default false
|
223
|
-
*/
|
224
|
-
requireManualDestroy?: boolean | undefined;
|
225
|
-
}
|
226
|
-
/**
|
227
|
-
* The class `AsyncResource` is designed to be extended by the embedder's async
|
228
|
-
* resources. Using this, users can easily trigger the lifetime events of their
|
229
|
-
* own resources.
|
230
|
-
*
|
231
|
-
* The `init` hook will trigger when an `AsyncResource` is instantiated.
|
232
|
-
*
|
233
|
-
* The following is an overview of the `AsyncResource` API.
|
234
|
-
*
|
235
|
-
* ```js
|
236
|
-
* import { AsyncResource, executionAsyncId } from 'node:async_hooks';
|
237
|
-
*
|
238
|
-
* // AsyncResource() is meant to be extended. Instantiating a
|
239
|
-
* // new AsyncResource() also triggers init. If triggerAsyncId is omitted then
|
240
|
-
* // async_hook.executionAsyncId() is used.
|
241
|
-
* const asyncResource = new AsyncResource(
|
242
|
-
* type, { triggerAsyncId: executionAsyncId(), requireManualDestroy: false },
|
243
|
-
* );
|
244
|
-
*
|
245
|
-
* // Run a function in the execution context of the resource. This will
|
246
|
-
* // * establish the context of the resource
|
247
|
-
* // * trigger the AsyncHooks before callbacks
|
248
|
-
* // * call the provided function `fn` with the supplied arguments
|
249
|
-
* // * trigger the AsyncHooks after callbacks
|
250
|
-
* // * restore the original execution context
|
251
|
-
* asyncResource.runInAsyncScope(fn, thisArg, ...args);
|
252
|
-
*
|
253
|
-
* // Call AsyncHooks destroy callbacks.
|
254
|
-
* asyncResource.emitDestroy();
|
255
|
-
*
|
256
|
-
* // Return the unique ID assigned to the AsyncResource instance.
|
257
|
-
* asyncResource.asyncId();
|
258
|
-
*
|
259
|
-
* // Return the trigger ID for the AsyncResource instance.
|
260
|
-
* asyncResource.triggerAsyncId();
|
261
|
-
* ```
|
262
|
-
*/
|
263
|
-
class AsyncResource {
|
264
|
-
/**
|
265
|
-
* AsyncResource() is meant to be extended. Instantiating a
|
266
|
-
* new AsyncResource() also triggers init. If triggerAsyncId is omitted then
|
267
|
-
* async_hook.executionAsyncId() is used.
|
268
|
-
* @param type The type of async event.
|
269
|
-
* @param triggerAsyncId The ID of the execution context that created
|
270
|
-
* this async event (default: `executionAsyncId()`), or an
|
271
|
-
* AsyncResourceOptions object (since v9.3.0)
|
272
|
-
*/
|
273
|
-
constructor(type: string, triggerAsyncId?: number | AsyncResourceOptions);
|
274
|
-
/**
|
275
|
-
* Binds the given function to the current execution context.
|
276
|
-
* @since v14.8.0, v12.19.0
|
277
|
-
* @param fn The function to bind to the current execution context.
|
278
|
-
* @param type An optional name to associate with the underlying `AsyncResource`.
|
279
|
-
*/
|
280
|
-
static bind<Func extends (this: ThisArg, ...args: any[]) => any, ThisArg>(
|
281
|
-
fn: Func,
|
282
|
-
type?: string,
|
283
|
-
thisArg?: ThisArg,
|
284
|
-
): Func;
|
285
|
-
/**
|
286
|
-
* Binds the given function to execute to this `AsyncResource`'s scope.
|
287
|
-
* @since v14.8.0, v12.19.0
|
288
|
-
* @param fn The function to bind to the current `AsyncResource`.
|
289
|
-
*/
|
290
|
-
bind<Func extends (...args: any[]) => any>(fn: Func): Func;
|
291
|
-
/**
|
292
|
-
* Call the provided function with the provided arguments in the execution context
|
293
|
-
* of the async resource. This will establish the context, trigger the AsyncHooks
|
294
|
-
* before callbacks, call the function, trigger the AsyncHooks after callbacks, and
|
295
|
-
* then restore the original execution context.
|
296
|
-
* @since v9.6.0
|
297
|
-
* @param fn The function to call in the execution context of this async resource.
|
298
|
-
* @param thisArg The receiver to be used for the function call.
|
299
|
-
* @param args Optional arguments to pass to the function.
|
300
|
-
*/
|
301
|
-
runInAsyncScope<This, Result>(
|
302
|
-
fn: (this: This, ...args: any[]) => Result,
|
303
|
-
thisArg?: This,
|
304
|
-
...args: any[]
|
305
|
-
): Result;
|
306
|
-
/**
|
307
|
-
* Call all `destroy` hooks. This should only ever be called once. An error will
|
308
|
-
* be thrown if it is called more than once. This **must** be manually called. If
|
309
|
-
* the resource is left to be collected by the GC then the `destroy` hooks will
|
310
|
-
* never be called.
|
311
|
-
* @return A reference to `asyncResource`.
|
312
|
-
*/
|
313
|
-
emitDestroy(): this;
|
314
|
-
/**
|
315
|
-
* @return The unique `asyncId` assigned to the resource.
|
316
|
-
*/
|
317
|
-
asyncId(): number;
|
318
|
-
/**
|
319
|
-
* @return The same `triggerAsyncId` that is passed to the `AsyncResource` constructor.
|
320
|
-
*/
|
321
|
-
triggerAsyncId(): number;
|
322
|
-
}
|
323
|
-
/**
|
324
|
-
* This class creates stores that stay coherent through asynchronous operations.
|
325
|
-
*
|
326
|
-
* While you can create your own implementation on top of the `node:async_hooks` module, `AsyncLocalStorage` should be preferred as it is a performant and memory
|
327
|
-
* safe implementation that involves significant optimizations that are non-obvious
|
328
|
-
* to implement.
|
329
|
-
*
|
330
|
-
* The following example uses `AsyncLocalStorage` to build a simple logger
|
331
|
-
* that assigns IDs to incoming HTTP requests and includes them in messages
|
332
|
-
* logged within each request.
|
333
|
-
*
|
334
|
-
* ```js
|
335
|
-
* import http from 'node:http';
|
336
|
-
* import { AsyncLocalStorage } from 'node:async_hooks';
|
337
|
-
*
|
338
|
-
* const asyncLocalStorage = new AsyncLocalStorage();
|
339
|
-
*
|
340
|
-
* function logWithId(msg) {
|
341
|
-
* const id = asyncLocalStorage.getStore();
|
342
|
-
* console.log(`${id !== undefined ? id : '-'}:`, msg);
|
343
|
-
* }
|
344
|
-
*
|
345
|
-
* let idSeq = 0;
|
346
|
-
* http.createServer((req, res) => {
|
347
|
-
* asyncLocalStorage.run(idSeq++, () => {
|
348
|
-
* logWithId('start');
|
349
|
-
* // Imagine any chain of async operations here
|
350
|
-
* setImmediate(() => {
|
351
|
-
* logWithId('finish');
|
352
|
-
* res.end();
|
353
|
-
* });
|
354
|
-
* });
|
355
|
-
* }).listen(8080);
|
356
|
-
*
|
357
|
-
* http.get('http://localhost:8080');
|
358
|
-
* http.get('http://localhost:8080');
|
359
|
-
* // Prints:
|
360
|
-
* // 0: start
|
361
|
-
* // 1: start
|
362
|
-
* // 0: finish
|
363
|
-
* // 1: finish
|
364
|
-
* ```
|
365
|
-
*
|
366
|
-
* Each instance of `AsyncLocalStorage` maintains an independent storage context.
|
367
|
-
* Multiple instances can safely exist simultaneously without risk of interfering
|
368
|
-
* with each other's data.
|
369
|
-
* @since v13.10.0, v12.17.0
|
370
|
-
*/
|
371
|
-
class AsyncLocalStorage<T> {
|
372
|
-
/**
|
373
|
-
* Binds the given function to the current execution context.
|
374
|
-
* @since v19.8.0
|
375
|
-
* @experimental
|
376
|
-
* @param fn The function to bind to the current execution context.
|
377
|
-
* @return A new function that calls `fn` within the captured execution context.
|
378
|
-
*/
|
379
|
-
static bind<Func extends (...args: any[]) => any>(fn: Func): Func;
|
380
|
-
/**
|
381
|
-
* Captures the current execution context and returns a function that accepts a
|
382
|
-
* function as an argument. Whenever the returned function is called, it
|
383
|
-
* calls the function passed to it within the captured context.
|
384
|
-
*
|
385
|
-
* ```js
|
386
|
-
* const asyncLocalStorage = new AsyncLocalStorage();
|
387
|
-
* const runInAsyncScope = asyncLocalStorage.run(123, () => AsyncLocalStorage.snapshot());
|
388
|
-
* const result = asyncLocalStorage.run(321, () => runInAsyncScope(() => asyncLocalStorage.getStore()));
|
389
|
-
* console.log(result); // returns 123
|
390
|
-
* ```
|
391
|
-
*
|
392
|
-
* AsyncLocalStorage.snapshot() can replace the use of AsyncResource for simple
|
393
|
-
* async context tracking purposes, for example:
|
394
|
-
*
|
395
|
-
* ```js
|
396
|
-
* class Foo {
|
397
|
-
* #runInAsyncScope = AsyncLocalStorage.snapshot();
|
398
|
-
*
|
399
|
-
* get() { return this.#runInAsyncScope(() => asyncLocalStorage.getStore()); }
|
400
|
-
* }
|
401
|
-
*
|
402
|
-
* const foo = asyncLocalStorage.run(123, () => new Foo());
|
403
|
-
* console.log(asyncLocalStorage.run(321, () => foo.get())); // returns 123
|
404
|
-
* ```
|
405
|
-
* @since v19.8.0
|
406
|
-
* @experimental
|
407
|
-
* @return A new function with the signature `(fn: (...args) : R, ...args) : R`.
|
408
|
-
*/
|
409
|
-
static snapshot(): <R, TArgs extends any[]>(fn: (...args: TArgs) => R, ...args: TArgs) => R;
|
410
|
-
/**
|
411
|
-
* Disables the instance of `AsyncLocalStorage`. All subsequent calls
|
412
|
-
* to `asyncLocalStorage.getStore()` will return `undefined` until `asyncLocalStorage.run()` or `asyncLocalStorage.enterWith()` is called again.
|
413
|
-
*
|
414
|
-
* When calling `asyncLocalStorage.disable()`, all current contexts linked to the
|
415
|
-
* instance will be exited.
|
416
|
-
*
|
417
|
-
* Calling `asyncLocalStorage.disable()` is required before the `asyncLocalStorage` can be garbage collected. This does not apply to stores
|
418
|
-
* provided by the `asyncLocalStorage`, as those objects are garbage collected
|
419
|
-
* along with the corresponding async resources.
|
420
|
-
*
|
421
|
-
* Use this method when the `asyncLocalStorage` is not in use anymore
|
422
|
-
* in the current process.
|
423
|
-
* @since v13.10.0, v12.17.0
|
424
|
-
* @experimental
|
425
|
-
*/
|
426
|
-
disable(): void;
|
427
|
-
/**
|
428
|
-
* Returns the current store.
|
429
|
-
* If called outside of an asynchronous context initialized by
|
430
|
-
* calling `asyncLocalStorage.run()` or `asyncLocalStorage.enterWith()`, it
|
431
|
-
* returns `undefined`.
|
432
|
-
* @since v13.10.0, v12.17.0
|
433
|
-
*/
|
434
|
-
getStore(): T | undefined;
|
435
|
-
/**
|
436
|
-
* Runs a function synchronously within a context and returns its
|
437
|
-
* return value. The store is not accessible outside of the callback function.
|
438
|
-
* The store is accessible to any asynchronous operations created within the
|
439
|
-
* callback.
|
440
|
-
*
|
441
|
-
* The optional `args` are passed to the callback function.
|
442
|
-
*
|
443
|
-
* If the callback function throws an error, the error is thrown by `run()` too.
|
444
|
-
* The stacktrace is not impacted by this call and the context is exited.
|
445
|
-
*
|
446
|
-
* Example:
|
447
|
-
*
|
448
|
-
* ```js
|
449
|
-
* const store = { id: 2 };
|
450
|
-
* try {
|
451
|
-
* asyncLocalStorage.run(store, () => {
|
452
|
-
* asyncLocalStorage.getStore(); // Returns the store object
|
453
|
-
* setTimeout(() => {
|
454
|
-
* asyncLocalStorage.getStore(); // Returns the store object
|
455
|
-
* }, 200);
|
456
|
-
* throw new Error();
|
457
|
-
* });
|
458
|
-
* } catch (e) {
|
459
|
-
* asyncLocalStorage.getStore(); // Returns undefined
|
460
|
-
* // The error will be caught here
|
461
|
-
* }
|
462
|
-
* ```
|
463
|
-
* @since v13.10.0, v12.17.0
|
464
|
-
*/
|
465
|
-
run<R>(store: T, callback: () => R): R;
|
466
|
-
run<R, TArgs extends any[]>(store: T, callback: (...args: TArgs) => R, ...args: TArgs): R;
|
467
|
-
/**
|
468
|
-
* Runs a function synchronously outside of a context and returns its
|
469
|
-
* return value. The store is not accessible within the callback function or
|
470
|
-
* the asynchronous operations created within the callback. Any `getStore()` call done within the callback function will always return `undefined`.
|
471
|
-
*
|
472
|
-
* The optional `args` are passed to the callback function.
|
473
|
-
*
|
474
|
-
* If the callback function throws an error, the error is thrown by `exit()` too.
|
475
|
-
* The stacktrace is not impacted by this call and the context is re-entered.
|
476
|
-
*
|
477
|
-
* Example:
|
478
|
-
*
|
479
|
-
* ```js
|
480
|
-
* // Within a call to run
|
481
|
-
* try {
|
482
|
-
* asyncLocalStorage.getStore(); // Returns the store object or value
|
483
|
-
* asyncLocalStorage.exit(() => {
|
484
|
-
* asyncLocalStorage.getStore(); // Returns undefined
|
485
|
-
* throw new Error();
|
486
|
-
* });
|
487
|
-
* } catch (e) {
|
488
|
-
* asyncLocalStorage.getStore(); // Returns the same object or value
|
489
|
-
* // The error will be caught here
|
490
|
-
* }
|
491
|
-
* ```
|
492
|
-
* @since v13.10.0, v12.17.0
|
493
|
-
* @experimental
|
494
|
-
*/
|
495
|
-
exit<R, TArgs extends any[]>(callback: (...args: TArgs) => R, ...args: TArgs): R;
|
496
|
-
/**
|
497
|
-
* Transitions into the context for the remainder of the current
|
498
|
-
* synchronous execution and then persists the store through any following
|
499
|
-
* asynchronous calls.
|
500
|
-
*
|
501
|
-
* Example:
|
502
|
-
*
|
503
|
-
* ```js
|
504
|
-
* const store = { id: 1 };
|
505
|
-
* // Replaces previous store with the given store object
|
506
|
-
* asyncLocalStorage.enterWith(store);
|
507
|
-
* asyncLocalStorage.getStore(); // Returns the store object
|
508
|
-
* someAsyncOperation(() => {
|
509
|
-
* asyncLocalStorage.getStore(); // Returns the same object
|
510
|
-
* });
|
511
|
-
* ```
|
512
|
-
*
|
513
|
-
* This transition will continue for the _entire_ synchronous execution.
|
514
|
-
* This means that if, for example, the context is entered within an event
|
515
|
-
* handler subsequent event handlers will also run within that context unless
|
516
|
-
* specifically bound to another context with an `AsyncResource`. That is why `run()` should be preferred over `enterWith()` unless there are strong reasons
|
517
|
-
* to use the latter method.
|
518
|
-
*
|
519
|
-
* ```js
|
520
|
-
* const store = { id: 1 };
|
521
|
-
*
|
522
|
-
* emitter.on('my-event', () => {
|
523
|
-
* asyncLocalStorage.enterWith(store);
|
524
|
-
* });
|
525
|
-
* emitter.on('my-event', () => {
|
526
|
-
* asyncLocalStorage.getStore(); // Returns the same object
|
527
|
-
* });
|
528
|
-
*
|
529
|
-
* asyncLocalStorage.getStore(); // Returns undefined
|
530
|
-
* emitter.emit('my-event');
|
531
|
-
* asyncLocalStorage.getStore(); // Returns the same object
|
532
|
-
* ```
|
533
|
-
* @since v13.11.0, v12.17.0
|
534
|
-
* @experimental
|
535
|
-
*/
|
536
|
-
enterWith(store: T): void;
|
537
|
-
}
|
538
|
-
}
|
539
|
-
declare module "node:async_hooks" {
|
540
|
-
export * from "async_hooks";
|
541
|
-
}
|