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.
Files changed (186) 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/modules/nix.res +0 -1
  8. package/.cache/replit/modules/nodejs-20.res +0 -1
  9. package/.cache/replit/modules/replit.res +0 -1
  10. package/.cache/replit/modules.stamp +0 -0
  11. package/.cache/replit/nix/env.json +0 -1
  12. package/.cache/typescript/5.4/node_modules/.package-lock.json +0 -137
  13. package/.cache/typescript/5.4/node_modules/@types/caseless/LICENSE +0 -21
  14. package/.cache/typescript/5.4/node_modules/@types/caseless/README.md +0 -48
  15. package/.cache/typescript/5.4/node_modules/@types/caseless/index.d.ts +0 -29
  16. package/.cache/typescript/5.4/node_modules/@types/caseless/package.json +0 -35
  17. package/.cache/typescript/5.4/node_modules/@types/node/LICENSE +0 -21
  18. package/.cache/typescript/5.4/node_modules/@types/node/README.md +0 -15
  19. package/.cache/typescript/5.4/node_modules/@types/node/assert/strict.d.ts +0 -8
  20. package/.cache/typescript/5.4/node_modules/@types/node/assert.d.ts +0 -1040
  21. package/.cache/typescript/5.4/node_modules/@types/node/async_hooks.d.ts +0 -541
  22. package/.cache/typescript/5.4/node_modules/@types/node/buffer.d.ts +0 -2363
  23. package/.cache/typescript/5.4/node_modules/@types/node/child_process.d.ts +0 -1544
  24. package/.cache/typescript/5.4/node_modules/@types/node/cluster.d.ts +0 -578
  25. package/.cache/typescript/5.4/node_modules/@types/node/console.d.ts +0 -452
  26. package/.cache/typescript/5.4/node_modules/@types/node/constants.d.ts +0 -19
  27. package/.cache/typescript/5.4/node_modules/@types/node/crypto.d.ts +0 -4523
  28. package/.cache/typescript/5.4/node_modules/@types/node/dgram.d.ts +0 -596
  29. package/.cache/typescript/5.4/node_modules/@types/node/diagnostics_channel.d.ts +0 -554
  30. package/.cache/typescript/5.4/node_modules/@types/node/dns/promises.d.ts +0 -474
  31. package/.cache/typescript/5.4/node_modules/@types/node/dns.d.ts +0 -864
  32. package/.cache/typescript/5.4/node_modules/@types/node/dom-events.d.ts +0 -124
  33. package/.cache/typescript/5.4/node_modules/@types/node/domain.d.ts +0 -170
  34. package/.cache/typescript/5.4/node_modules/@types/node/events.d.ts +0 -909
  35. package/.cache/typescript/5.4/node_modules/@types/node/fs/promises.d.ts +0 -1245
  36. package/.cache/typescript/5.4/node_modules/@types/node/fs.d.ts +0 -4317
  37. package/.cache/typescript/5.4/node_modules/@types/node/globals.d.ts +0 -411
  38. package/.cache/typescript/5.4/node_modules/@types/node/globals.global.d.ts +0 -1
  39. package/.cache/typescript/5.4/node_modules/@types/node/http.d.ts +0 -1908
  40. package/.cache/typescript/5.4/node_modules/@types/node/http2.d.ts +0 -2418
  41. package/.cache/typescript/5.4/node_modules/@types/node/https.d.ts +0 -550
  42. package/.cache/typescript/5.4/node_modules/@types/node/index.d.ts +0 -89
  43. package/.cache/typescript/5.4/node_modules/@types/node/inspector.d.ts +0 -2746
  44. package/.cache/typescript/5.4/node_modules/@types/node/module.d.ts +0 -315
  45. package/.cache/typescript/5.4/node_modules/@types/node/net.d.ts +0 -999
  46. package/.cache/typescript/5.4/node_modules/@types/node/os.d.ts +0 -495
  47. package/.cache/typescript/5.4/node_modules/@types/node/package.json +0 -217
  48. package/.cache/typescript/5.4/node_modules/@types/node/path.d.ts +0 -191
  49. package/.cache/typescript/5.4/node_modules/@types/node/perf_hooks.d.ts +0 -905
  50. package/.cache/typescript/5.4/node_modules/@types/node/process.d.ts +0 -1754
  51. package/.cache/typescript/5.4/node_modules/@types/node/punycode.d.ts +0 -117
  52. package/.cache/typescript/5.4/node_modules/@types/node/querystring.d.ts +0 -153
  53. package/.cache/typescript/5.4/node_modules/@types/node/readline/promises.d.ts +0 -150
  54. package/.cache/typescript/5.4/node_modules/@types/node/readline.d.ts +0 -540
  55. package/.cache/typescript/5.4/node_modules/@types/node/repl.d.ts +0 -430
  56. package/.cache/typescript/5.4/node_modules/@types/node/sea.d.ts +0 -153
  57. package/.cache/typescript/5.4/node_modules/@types/node/stream/consumers.d.ts +0 -12
  58. package/.cache/typescript/5.4/node_modules/@types/node/stream/promises.d.ts +0 -83
  59. package/.cache/typescript/5.4/node_modules/@types/node/stream/web.d.ts +0 -367
  60. package/.cache/typescript/5.4/node_modules/@types/node/stream.d.ts +0 -1707
  61. package/.cache/typescript/5.4/node_modules/@types/node/string_decoder.d.ts +0 -67
  62. package/.cache/typescript/5.4/node_modules/@types/node/test.d.ts +0 -1718
  63. package/.cache/typescript/5.4/node_modules/@types/node/timers/promises.d.ts +0 -97
  64. package/.cache/typescript/5.4/node_modules/@types/node/timers.d.ts +0 -240
  65. package/.cache/typescript/5.4/node_modules/@types/node/tls.d.ts +0 -1217
  66. package/.cache/typescript/5.4/node_modules/@types/node/trace_events.d.ts +0 -197
  67. package/.cache/typescript/5.4/node_modules/@types/node/tty.d.ts +0 -208
  68. package/.cache/typescript/5.4/node_modules/@types/node/url.d.ts +0 -952
  69. package/.cache/typescript/5.4/node_modules/@types/node/util.d.ts +0 -2292
  70. package/.cache/typescript/5.4/node_modules/@types/node/v8.d.ts +0 -808
  71. package/.cache/typescript/5.4/node_modules/@types/node/vm.d.ts +0 -924
  72. package/.cache/typescript/5.4/node_modules/@types/node/wasi.d.ts +0 -181
  73. package/.cache/typescript/5.4/node_modules/@types/node/worker_threads.d.ts +0 -691
  74. package/.cache/typescript/5.4/node_modules/@types/node/zlib.d.ts +0 -530
  75. package/.cache/typescript/5.4/node_modules/@types/node-fetch/LICENSE +0 -21
  76. package/.cache/typescript/5.4/node_modules/@types/node-fetch/README.md +0 -15
  77. package/.cache/typescript/5.4/node_modules/@types/node-fetch/externals.d.ts +0 -32
  78. package/.cache/typescript/5.4/node_modules/@types/node-fetch/index.d.ts +0 -238
  79. package/.cache/typescript/5.4/node_modules/@types/node-fetch/package.json +0 -83
  80. package/.cache/typescript/5.4/node_modules/@types/request/LICENSE +0 -21
  81. package/.cache/typescript/5.4/node_modules/@types/request/README.md +0 -15
  82. package/.cache/typescript/5.4/node_modules/@types/request/index.d.ts +0 -395
  83. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/License +0 -19
  84. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/README.md +0 -350
  85. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/README.md.bak +0 -350
  86. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/index.d.ts +0 -51
  87. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/lib/browser.js +0 -2
  88. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/lib/form_data.js +0 -483
  89. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/lib/populate.js +0 -10
  90. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/package.json +0 -68
  91. package/.cache/typescript/5.4/node_modules/@types/request/package.json +0 -70
  92. package/.cache/typescript/5.4/node_modules/@types/tough-cookie/LICENSE +0 -21
  93. package/.cache/typescript/5.4/node_modules/@types/tough-cookie/README.md +0 -15
  94. package/.cache/typescript/5.4/node_modules/@types/tough-cookie/index.d.ts +0 -321
  95. package/.cache/typescript/5.4/node_modules/@types/tough-cookie/package.json +0 -35
  96. package/.cache/typescript/5.4/node_modules/asynckit/LICENSE +0 -21
  97. package/.cache/typescript/5.4/node_modules/asynckit/README.md +0 -233
  98. package/.cache/typescript/5.4/node_modules/asynckit/bench.js +0 -76
  99. package/.cache/typescript/5.4/node_modules/asynckit/index.js +0 -6
  100. package/.cache/typescript/5.4/node_modules/asynckit/lib/abort.js +0 -29
  101. package/.cache/typescript/5.4/node_modules/asynckit/lib/async.js +0 -34
  102. package/.cache/typescript/5.4/node_modules/asynckit/lib/defer.js +0 -26
  103. package/.cache/typescript/5.4/node_modules/asynckit/lib/iterate.js +0 -75
  104. package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_asynckit.js +0 -91
  105. package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_parallel.js +0 -25
  106. package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_serial.js +0 -25
  107. package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_serial_ordered.js +0 -29
  108. package/.cache/typescript/5.4/node_modules/asynckit/lib/state.js +0 -37
  109. package/.cache/typescript/5.4/node_modules/asynckit/lib/streamify.js +0 -141
  110. package/.cache/typescript/5.4/node_modules/asynckit/lib/terminator.js +0 -29
  111. package/.cache/typescript/5.4/node_modules/asynckit/package.json +0 -63
  112. package/.cache/typescript/5.4/node_modules/asynckit/parallel.js +0 -43
  113. package/.cache/typescript/5.4/node_modules/asynckit/serial.js +0 -17
  114. package/.cache/typescript/5.4/node_modules/asynckit/serialOrdered.js +0 -75
  115. package/.cache/typescript/5.4/node_modules/asynckit/stream.js +0 -21
  116. package/.cache/typescript/5.4/node_modules/combined-stream/License +0 -19
  117. package/.cache/typescript/5.4/node_modules/combined-stream/Readme.md +0 -138
  118. package/.cache/typescript/5.4/node_modules/combined-stream/lib/combined_stream.js +0 -208
  119. package/.cache/typescript/5.4/node_modules/combined-stream/package.json +0 -25
  120. package/.cache/typescript/5.4/node_modules/combined-stream/yarn.lock +0 -17
  121. package/.cache/typescript/5.4/node_modules/delayed-stream/License +0 -19
  122. package/.cache/typescript/5.4/node_modules/delayed-stream/Makefile +0 -7
  123. package/.cache/typescript/5.4/node_modules/delayed-stream/Readme.md +0 -141
  124. package/.cache/typescript/5.4/node_modules/delayed-stream/lib/delayed_stream.js +0 -107
  125. package/.cache/typescript/5.4/node_modules/delayed-stream/package.json +0 -27
  126. package/.cache/typescript/5.4/node_modules/form-data/License +0 -19
  127. package/.cache/typescript/5.4/node_modules/form-data/README.md.bak +0 -358
  128. package/.cache/typescript/5.4/node_modules/form-data/Readme.md +0 -358
  129. package/.cache/typescript/5.4/node_modules/form-data/index.d.ts +0 -62
  130. package/.cache/typescript/5.4/node_modules/form-data/lib/browser.js +0 -2
  131. package/.cache/typescript/5.4/node_modules/form-data/lib/form_data.js +0 -501
  132. package/.cache/typescript/5.4/node_modules/form-data/lib/populate.js +0 -10
  133. package/.cache/typescript/5.4/node_modules/form-data/package.json +0 -68
  134. package/.cache/typescript/5.4/node_modules/mime-db/HISTORY.md +0 -507
  135. package/.cache/typescript/5.4/node_modules/mime-db/LICENSE +0 -23
  136. package/.cache/typescript/5.4/node_modules/mime-db/README.md +0 -100
  137. package/.cache/typescript/5.4/node_modules/mime-db/db.json +0 -8519
  138. package/.cache/typescript/5.4/node_modules/mime-db/index.js +0 -12
  139. package/.cache/typescript/5.4/node_modules/mime-db/package.json +0 -60
  140. package/.cache/typescript/5.4/node_modules/mime-types/HISTORY.md +0 -397
  141. package/.cache/typescript/5.4/node_modules/mime-types/LICENSE +0 -23
  142. package/.cache/typescript/5.4/node_modules/mime-types/README.md +0 -113
  143. package/.cache/typescript/5.4/node_modules/mime-types/index.js +0 -188
  144. package/.cache/typescript/5.4/node_modules/mime-types/package.json +0 -44
  145. package/.cache/typescript/5.4/node_modules/types-registry/README.md +0 -2
  146. package/.cache/typescript/5.4/node_modules/types-registry/index.json +0 -1
  147. package/.cache/typescript/5.4/node_modules/types-registry/package.json +0 -20
  148. package/.cache/typescript/5.4/node_modules/undici-types/README.md +0 -6
  149. package/.cache/typescript/5.4/node_modules/undici-types/agent.d.ts +0 -31
  150. package/.cache/typescript/5.4/node_modules/undici-types/api.d.ts +0 -43
  151. package/.cache/typescript/5.4/node_modules/undici-types/balanced-pool.d.ts +0 -18
  152. package/.cache/typescript/5.4/node_modules/undici-types/cache.d.ts +0 -36
  153. package/.cache/typescript/5.4/node_modules/undici-types/client.d.ts +0 -97
  154. package/.cache/typescript/5.4/node_modules/undici-types/connector.d.ts +0 -34
  155. package/.cache/typescript/5.4/node_modules/undici-types/content-type.d.ts +0 -21
  156. package/.cache/typescript/5.4/node_modules/undici-types/cookies.d.ts +0 -28
  157. package/.cache/typescript/5.4/node_modules/undici-types/diagnostics-channel.d.ts +0 -67
  158. package/.cache/typescript/5.4/node_modules/undici-types/dispatcher.d.ts +0 -241
  159. package/.cache/typescript/5.4/node_modules/undici-types/errors.d.ts +0 -128
  160. package/.cache/typescript/5.4/node_modules/undici-types/fetch.d.ts +0 -209
  161. package/.cache/typescript/5.4/node_modules/undici-types/file.d.ts +0 -39
  162. package/.cache/typescript/5.4/node_modules/undici-types/filereader.d.ts +0 -54
  163. package/.cache/typescript/5.4/node_modules/undici-types/formdata.d.ts +0 -108
  164. package/.cache/typescript/5.4/node_modules/undici-types/global-dispatcher.d.ts +0 -9
  165. package/.cache/typescript/5.4/node_modules/undici-types/global-origin.d.ts +0 -7
  166. package/.cache/typescript/5.4/node_modules/undici-types/handlers.d.ts +0 -9
  167. package/.cache/typescript/5.4/node_modules/undici-types/header.d.ts +0 -4
  168. package/.cache/typescript/5.4/node_modules/undici-types/index.d.ts +0 -63
  169. package/.cache/typescript/5.4/node_modules/undici-types/interceptors.d.ts +0 -5
  170. package/.cache/typescript/5.4/node_modules/undici-types/mock-agent.d.ts +0 -50
  171. package/.cache/typescript/5.4/node_modules/undici-types/mock-client.d.ts +0 -25
  172. package/.cache/typescript/5.4/node_modules/undici-types/mock-errors.d.ts +0 -12
  173. package/.cache/typescript/5.4/node_modules/undici-types/mock-interceptor.d.ts +0 -93
  174. package/.cache/typescript/5.4/node_modules/undici-types/mock-pool.d.ts +0 -25
  175. package/.cache/typescript/5.4/node_modules/undici-types/package.json +0 -55
  176. package/.cache/typescript/5.4/node_modules/undici-types/patch.d.ts +0 -71
  177. package/.cache/typescript/5.4/node_modules/undici-types/pool-stats.d.ts +0 -19
  178. package/.cache/typescript/5.4/node_modules/undici-types/pool.d.ts +0 -28
  179. package/.cache/typescript/5.4/node_modules/undici-types/proxy-agent.d.ts +0 -30
  180. package/.cache/typescript/5.4/node_modules/undici-types/readable.d.ts +0 -61
  181. package/.cache/typescript/5.4/node_modules/undici-types/webidl.d.ts +0 -220
  182. package/.cache/typescript/5.4/node_modules/undici-types/websocket.d.ts +0 -131
  183. package/.cache/typescript/5.4/package-lock.json +0 -146
  184. package/.cache/typescript/5.4/package.json +0 -1
  185. package/.replit +0 -21
  186. 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
- }