rahad-all-downloader 2.1.16 → 2.1.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (188) hide show
  1. package/.github/workflows/Run.yml +20 -0
  2. package/README.md +0 -1
  3. package/index.js +1 -1
  4. package/package.json +4 -2
  5. package/.cache/nix/binary-cache-v6.sqlite +0 -0
  6. package/.cache/nix/binary-cache-v6.sqlite-journal +0 -0
  7. package/.cache/replit/env/latest +0 -123
  8. package/.cache/replit/env/latest.json +0 -1
  9. package/.cache/replit/modules/nix.res +0 -1
  10. package/.cache/replit/modules/nodejs-20.res +0 -1
  11. package/.cache/replit/modules/replit.res +0 -1
  12. package/.cache/replit/modules.stamp +0 -0
  13. package/.cache/replit/nix/env.json +0 -1
  14. package/.cache/typescript/5.4/node_modules/.package-lock.json +0 -137
  15. package/.cache/typescript/5.4/node_modules/@types/caseless/LICENSE +0 -21
  16. package/.cache/typescript/5.4/node_modules/@types/caseless/README.md +0 -48
  17. package/.cache/typescript/5.4/node_modules/@types/caseless/index.d.ts +0 -29
  18. package/.cache/typescript/5.4/node_modules/@types/caseless/package.json +0 -35
  19. package/.cache/typescript/5.4/node_modules/@types/node/LICENSE +0 -21
  20. package/.cache/typescript/5.4/node_modules/@types/node/README.md +0 -15
  21. package/.cache/typescript/5.4/node_modules/@types/node/assert/strict.d.ts +0 -8
  22. package/.cache/typescript/5.4/node_modules/@types/node/assert.d.ts +0 -1040
  23. package/.cache/typescript/5.4/node_modules/@types/node/async_hooks.d.ts +0 -541
  24. package/.cache/typescript/5.4/node_modules/@types/node/buffer.d.ts +0 -2363
  25. package/.cache/typescript/5.4/node_modules/@types/node/child_process.d.ts +0 -1544
  26. package/.cache/typescript/5.4/node_modules/@types/node/cluster.d.ts +0 -578
  27. package/.cache/typescript/5.4/node_modules/@types/node/console.d.ts +0 -452
  28. package/.cache/typescript/5.4/node_modules/@types/node/constants.d.ts +0 -19
  29. package/.cache/typescript/5.4/node_modules/@types/node/crypto.d.ts +0 -4523
  30. package/.cache/typescript/5.4/node_modules/@types/node/dgram.d.ts +0 -596
  31. package/.cache/typescript/5.4/node_modules/@types/node/diagnostics_channel.d.ts +0 -554
  32. package/.cache/typescript/5.4/node_modules/@types/node/dns/promises.d.ts +0 -474
  33. package/.cache/typescript/5.4/node_modules/@types/node/dns.d.ts +0 -864
  34. package/.cache/typescript/5.4/node_modules/@types/node/dom-events.d.ts +0 -124
  35. package/.cache/typescript/5.4/node_modules/@types/node/domain.d.ts +0 -170
  36. package/.cache/typescript/5.4/node_modules/@types/node/events.d.ts +0 -909
  37. package/.cache/typescript/5.4/node_modules/@types/node/fs/promises.d.ts +0 -1245
  38. package/.cache/typescript/5.4/node_modules/@types/node/fs.d.ts +0 -4317
  39. package/.cache/typescript/5.4/node_modules/@types/node/globals.d.ts +0 -411
  40. package/.cache/typescript/5.4/node_modules/@types/node/globals.global.d.ts +0 -1
  41. package/.cache/typescript/5.4/node_modules/@types/node/http.d.ts +0 -1908
  42. package/.cache/typescript/5.4/node_modules/@types/node/http2.d.ts +0 -2418
  43. package/.cache/typescript/5.4/node_modules/@types/node/https.d.ts +0 -550
  44. package/.cache/typescript/5.4/node_modules/@types/node/index.d.ts +0 -89
  45. package/.cache/typescript/5.4/node_modules/@types/node/inspector.d.ts +0 -2746
  46. package/.cache/typescript/5.4/node_modules/@types/node/module.d.ts +0 -315
  47. package/.cache/typescript/5.4/node_modules/@types/node/net.d.ts +0 -999
  48. package/.cache/typescript/5.4/node_modules/@types/node/os.d.ts +0 -495
  49. package/.cache/typescript/5.4/node_modules/@types/node/package.json +0 -217
  50. package/.cache/typescript/5.4/node_modules/@types/node/path.d.ts +0 -191
  51. package/.cache/typescript/5.4/node_modules/@types/node/perf_hooks.d.ts +0 -905
  52. package/.cache/typescript/5.4/node_modules/@types/node/process.d.ts +0 -1754
  53. package/.cache/typescript/5.4/node_modules/@types/node/punycode.d.ts +0 -117
  54. package/.cache/typescript/5.4/node_modules/@types/node/querystring.d.ts +0 -153
  55. package/.cache/typescript/5.4/node_modules/@types/node/readline/promises.d.ts +0 -150
  56. package/.cache/typescript/5.4/node_modules/@types/node/readline.d.ts +0 -540
  57. package/.cache/typescript/5.4/node_modules/@types/node/repl.d.ts +0 -430
  58. package/.cache/typescript/5.4/node_modules/@types/node/sea.d.ts +0 -153
  59. package/.cache/typescript/5.4/node_modules/@types/node/stream/consumers.d.ts +0 -12
  60. package/.cache/typescript/5.4/node_modules/@types/node/stream/promises.d.ts +0 -83
  61. package/.cache/typescript/5.4/node_modules/@types/node/stream/web.d.ts +0 -367
  62. package/.cache/typescript/5.4/node_modules/@types/node/stream.d.ts +0 -1707
  63. package/.cache/typescript/5.4/node_modules/@types/node/string_decoder.d.ts +0 -67
  64. package/.cache/typescript/5.4/node_modules/@types/node/test.d.ts +0 -1718
  65. package/.cache/typescript/5.4/node_modules/@types/node/timers/promises.d.ts +0 -97
  66. package/.cache/typescript/5.4/node_modules/@types/node/timers.d.ts +0 -240
  67. package/.cache/typescript/5.4/node_modules/@types/node/tls.d.ts +0 -1217
  68. package/.cache/typescript/5.4/node_modules/@types/node/trace_events.d.ts +0 -197
  69. package/.cache/typescript/5.4/node_modules/@types/node/tty.d.ts +0 -208
  70. package/.cache/typescript/5.4/node_modules/@types/node/url.d.ts +0 -952
  71. package/.cache/typescript/5.4/node_modules/@types/node/util.d.ts +0 -2292
  72. package/.cache/typescript/5.4/node_modules/@types/node/v8.d.ts +0 -808
  73. package/.cache/typescript/5.4/node_modules/@types/node/vm.d.ts +0 -924
  74. package/.cache/typescript/5.4/node_modules/@types/node/wasi.d.ts +0 -181
  75. package/.cache/typescript/5.4/node_modules/@types/node/worker_threads.d.ts +0 -691
  76. package/.cache/typescript/5.4/node_modules/@types/node/zlib.d.ts +0 -530
  77. package/.cache/typescript/5.4/node_modules/@types/node-fetch/LICENSE +0 -21
  78. package/.cache/typescript/5.4/node_modules/@types/node-fetch/README.md +0 -15
  79. package/.cache/typescript/5.4/node_modules/@types/node-fetch/externals.d.ts +0 -32
  80. package/.cache/typescript/5.4/node_modules/@types/node-fetch/index.d.ts +0 -238
  81. package/.cache/typescript/5.4/node_modules/@types/node-fetch/package.json +0 -83
  82. package/.cache/typescript/5.4/node_modules/@types/request/LICENSE +0 -21
  83. package/.cache/typescript/5.4/node_modules/@types/request/README.md +0 -15
  84. package/.cache/typescript/5.4/node_modules/@types/request/index.d.ts +0 -395
  85. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/License +0 -19
  86. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/README.md +0 -350
  87. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/README.md.bak +0 -350
  88. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/index.d.ts +0 -51
  89. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/lib/browser.js +0 -2
  90. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/lib/form_data.js +0 -483
  91. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/lib/populate.js +0 -10
  92. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/package.json +0 -68
  93. package/.cache/typescript/5.4/node_modules/@types/request/package.json +0 -70
  94. package/.cache/typescript/5.4/node_modules/@types/tough-cookie/LICENSE +0 -21
  95. package/.cache/typescript/5.4/node_modules/@types/tough-cookie/README.md +0 -15
  96. package/.cache/typescript/5.4/node_modules/@types/tough-cookie/index.d.ts +0 -321
  97. package/.cache/typescript/5.4/node_modules/@types/tough-cookie/package.json +0 -35
  98. package/.cache/typescript/5.4/node_modules/asynckit/LICENSE +0 -21
  99. package/.cache/typescript/5.4/node_modules/asynckit/README.md +0 -233
  100. package/.cache/typescript/5.4/node_modules/asynckit/bench.js +0 -76
  101. package/.cache/typescript/5.4/node_modules/asynckit/index.js +0 -6
  102. package/.cache/typescript/5.4/node_modules/asynckit/lib/abort.js +0 -29
  103. package/.cache/typescript/5.4/node_modules/asynckit/lib/async.js +0 -34
  104. package/.cache/typescript/5.4/node_modules/asynckit/lib/defer.js +0 -26
  105. package/.cache/typescript/5.4/node_modules/asynckit/lib/iterate.js +0 -75
  106. package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_asynckit.js +0 -91
  107. package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_parallel.js +0 -25
  108. package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_serial.js +0 -25
  109. package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_serial_ordered.js +0 -29
  110. package/.cache/typescript/5.4/node_modules/asynckit/lib/state.js +0 -37
  111. package/.cache/typescript/5.4/node_modules/asynckit/lib/streamify.js +0 -141
  112. package/.cache/typescript/5.4/node_modules/asynckit/lib/terminator.js +0 -29
  113. package/.cache/typescript/5.4/node_modules/asynckit/package.json +0 -63
  114. package/.cache/typescript/5.4/node_modules/asynckit/parallel.js +0 -43
  115. package/.cache/typescript/5.4/node_modules/asynckit/serial.js +0 -17
  116. package/.cache/typescript/5.4/node_modules/asynckit/serialOrdered.js +0 -75
  117. package/.cache/typescript/5.4/node_modules/asynckit/stream.js +0 -21
  118. package/.cache/typescript/5.4/node_modules/combined-stream/License +0 -19
  119. package/.cache/typescript/5.4/node_modules/combined-stream/Readme.md +0 -138
  120. package/.cache/typescript/5.4/node_modules/combined-stream/lib/combined_stream.js +0 -208
  121. package/.cache/typescript/5.4/node_modules/combined-stream/package.json +0 -25
  122. package/.cache/typescript/5.4/node_modules/combined-stream/yarn.lock +0 -17
  123. package/.cache/typescript/5.4/node_modules/delayed-stream/License +0 -19
  124. package/.cache/typescript/5.4/node_modules/delayed-stream/Makefile +0 -7
  125. package/.cache/typescript/5.4/node_modules/delayed-stream/Readme.md +0 -141
  126. package/.cache/typescript/5.4/node_modules/delayed-stream/lib/delayed_stream.js +0 -107
  127. package/.cache/typescript/5.4/node_modules/delayed-stream/package.json +0 -27
  128. package/.cache/typescript/5.4/node_modules/form-data/License +0 -19
  129. package/.cache/typescript/5.4/node_modules/form-data/README.md.bak +0 -358
  130. package/.cache/typescript/5.4/node_modules/form-data/Readme.md +0 -358
  131. package/.cache/typescript/5.4/node_modules/form-data/index.d.ts +0 -62
  132. package/.cache/typescript/5.4/node_modules/form-data/lib/browser.js +0 -2
  133. package/.cache/typescript/5.4/node_modules/form-data/lib/form_data.js +0 -501
  134. package/.cache/typescript/5.4/node_modules/form-data/lib/populate.js +0 -10
  135. package/.cache/typescript/5.4/node_modules/form-data/package.json +0 -68
  136. package/.cache/typescript/5.4/node_modules/mime-db/HISTORY.md +0 -507
  137. package/.cache/typescript/5.4/node_modules/mime-db/LICENSE +0 -23
  138. package/.cache/typescript/5.4/node_modules/mime-db/README.md +0 -100
  139. package/.cache/typescript/5.4/node_modules/mime-db/db.json +0 -8519
  140. package/.cache/typescript/5.4/node_modules/mime-db/index.js +0 -12
  141. package/.cache/typescript/5.4/node_modules/mime-db/package.json +0 -60
  142. package/.cache/typescript/5.4/node_modules/mime-types/HISTORY.md +0 -397
  143. package/.cache/typescript/5.4/node_modules/mime-types/LICENSE +0 -23
  144. package/.cache/typescript/5.4/node_modules/mime-types/README.md +0 -113
  145. package/.cache/typescript/5.4/node_modules/mime-types/index.js +0 -188
  146. package/.cache/typescript/5.4/node_modules/mime-types/package.json +0 -44
  147. package/.cache/typescript/5.4/node_modules/types-registry/README.md +0 -2
  148. package/.cache/typescript/5.4/node_modules/types-registry/index.json +0 -1
  149. package/.cache/typescript/5.4/node_modules/types-registry/package.json +0 -20
  150. package/.cache/typescript/5.4/node_modules/undici-types/README.md +0 -6
  151. package/.cache/typescript/5.4/node_modules/undici-types/agent.d.ts +0 -31
  152. package/.cache/typescript/5.4/node_modules/undici-types/api.d.ts +0 -43
  153. package/.cache/typescript/5.4/node_modules/undici-types/balanced-pool.d.ts +0 -18
  154. package/.cache/typescript/5.4/node_modules/undici-types/cache.d.ts +0 -36
  155. package/.cache/typescript/5.4/node_modules/undici-types/client.d.ts +0 -97
  156. package/.cache/typescript/5.4/node_modules/undici-types/connector.d.ts +0 -34
  157. package/.cache/typescript/5.4/node_modules/undici-types/content-type.d.ts +0 -21
  158. package/.cache/typescript/5.4/node_modules/undici-types/cookies.d.ts +0 -28
  159. package/.cache/typescript/5.4/node_modules/undici-types/diagnostics-channel.d.ts +0 -67
  160. package/.cache/typescript/5.4/node_modules/undici-types/dispatcher.d.ts +0 -241
  161. package/.cache/typescript/5.4/node_modules/undici-types/errors.d.ts +0 -128
  162. package/.cache/typescript/5.4/node_modules/undici-types/fetch.d.ts +0 -209
  163. package/.cache/typescript/5.4/node_modules/undici-types/file.d.ts +0 -39
  164. package/.cache/typescript/5.4/node_modules/undici-types/filereader.d.ts +0 -54
  165. package/.cache/typescript/5.4/node_modules/undici-types/formdata.d.ts +0 -108
  166. package/.cache/typescript/5.4/node_modules/undici-types/global-dispatcher.d.ts +0 -9
  167. package/.cache/typescript/5.4/node_modules/undici-types/global-origin.d.ts +0 -7
  168. package/.cache/typescript/5.4/node_modules/undici-types/handlers.d.ts +0 -9
  169. package/.cache/typescript/5.4/node_modules/undici-types/header.d.ts +0 -4
  170. package/.cache/typescript/5.4/node_modules/undici-types/index.d.ts +0 -63
  171. package/.cache/typescript/5.4/node_modules/undici-types/interceptors.d.ts +0 -5
  172. package/.cache/typescript/5.4/node_modules/undici-types/mock-agent.d.ts +0 -50
  173. package/.cache/typescript/5.4/node_modules/undici-types/mock-client.d.ts +0 -25
  174. package/.cache/typescript/5.4/node_modules/undici-types/mock-errors.d.ts +0 -12
  175. package/.cache/typescript/5.4/node_modules/undici-types/mock-interceptor.d.ts +0 -93
  176. package/.cache/typescript/5.4/node_modules/undici-types/mock-pool.d.ts +0 -25
  177. package/.cache/typescript/5.4/node_modules/undici-types/package.json +0 -55
  178. package/.cache/typescript/5.4/node_modules/undici-types/patch.d.ts +0 -71
  179. package/.cache/typescript/5.4/node_modules/undici-types/pool-stats.d.ts +0 -19
  180. package/.cache/typescript/5.4/node_modules/undici-types/pool.d.ts +0 -28
  181. package/.cache/typescript/5.4/node_modules/undici-types/proxy-agent.d.ts +0 -30
  182. package/.cache/typescript/5.4/node_modules/undici-types/readable.d.ts +0 -61
  183. package/.cache/typescript/5.4/node_modules/undici-types/webidl.d.ts +0 -220
  184. package/.cache/typescript/5.4/node_modules/undici-types/websocket.d.ts +0 -131
  185. package/.cache/typescript/5.4/package-lock.json +0 -146
  186. package/.cache/typescript/5.4/package.json +0 -1
  187. package/.replit +0 -21
  188. package/replit.nix +0 -3
@@ -1,554 +0,0 @@
1
- /**
2
- * The `node:diagnostics_channel` module provides an API to create named channels
3
- * to report arbitrary message data for diagnostics purposes.
4
- *
5
- * It can be accessed using:
6
- *
7
- * ```js
8
- * import diagnostics_channel from 'node:diagnostics_channel';
9
- * ```
10
- *
11
- * It is intended that a module writer wanting to report diagnostics messages
12
- * will create one or many top-level channels to report messages through.
13
- * Channels may also be acquired at runtime but it is not encouraged
14
- * due to the additional overhead of doing so. Channels may be exported for
15
- * convenience, but as long as the name is known it can be acquired anywhere.
16
- *
17
- * If you intend for your module to produce diagnostics data for others to
18
- * consume it is recommended that you include documentation of what named
19
- * channels are used along with the shape of the message data. Channel names
20
- * should generally include the module name to avoid collisions with data from
21
- * other modules.
22
- * @since v15.1.0, v14.17.0
23
- * @see [source](https://github.com/nodejs/node/blob/v20.13.1/lib/diagnostics_channel.js)
24
- */
25
- declare module "diagnostics_channel" {
26
- import { AsyncLocalStorage } from "node:async_hooks";
27
- /**
28
- * Check if there are active subscribers to the named channel. This is helpful if
29
- * the message you want to send might be expensive to prepare.
30
- *
31
- * This API is optional but helpful when trying to publish messages from very
32
- * performance-sensitive code.
33
- *
34
- * ```js
35
- * import diagnostics_channel from 'node:diagnostics_channel';
36
- *
37
- * if (diagnostics_channel.hasSubscribers('my-channel')) {
38
- * // There are subscribers, prepare and publish message
39
- * }
40
- * ```
41
- * @since v15.1.0, v14.17.0
42
- * @param name The channel name
43
- * @return If there are active subscribers
44
- */
45
- function hasSubscribers(name: string | symbol): boolean;
46
- /**
47
- * This is the primary entry-point for anyone wanting to publish to a named
48
- * channel. It produces a channel object which is optimized to reduce overhead at
49
- * publish time as much as possible.
50
- *
51
- * ```js
52
- * import diagnostics_channel from 'node:diagnostics_channel';
53
- *
54
- * const channel = diagnostics_channel.channel('my-channel');
55
- * ```
56
- * @since v15.1.0, v14.17.0
57
- * @param name The channel name
58
- * @return The named channel object
59
- */
60
- function channel(name: string | symbol): Channel;
61
- type ChannelListener = (message: unknown, name: string | symbol) => void;
62
- /**
63
- * Register a message handler to subscribe to this channel. This message handler
64
- * will be run synchronously whenever a message is published to the channel. Any
65
- * errors thrown in the message handler will trigger an `'uncaughtException'`.
66
- *
67
- * ```js
68
- * import diagnostics_channel from 'node:diagnostics_channel';
69
- *
70
- * diagnostics_channel.subscribe('my-channel', (message, name) => {
71
- * // Received data
72
- * });
73
- * ```
74
- * @since v18.7.0, v16.17.0
75
- * @param name The channel name
76
- * @param onMessage The handler to receive channel messages
77
- */
78
- function subscribe(name: string | symbol, onMessage: ChannelListener): void;
79
- /**
80
- * Remove a message handler previously registered to this channel with {@link subscribe}.
81
- *
82
- * ```js
83
- * import diagnostics_channel from 'node:diagnostics_channel';
84
- *
85
- * function onMessage(message, name) {
86
- * // Received data
87
- * }
88
- *
89
- * diagnostics_channel.subscribe('my-channel', onMessage);
90
- *
91
- * diagnostics_channel.unsubscribe('my-channel', onMessage);
92
- * ```
93
- * @since v18.7.0, v16.17.0
94
- * @param name The channel name
95
- * @param onMessage The previous subscribed handler to remove
96
- * @return `true` if the handler was found, `false` otherwise.
97
- */
98
- function unsubscribe(name: string | symbol, onMessage: ChannelListener): boolean;
99
- /**
100
- * Creates a `TracingChannel` wrapper for the given `TracingChannel Channels`. If a name is given, the corresponding tracing
101
- * channels will be created in the form of `tracing:${name}:${eventType}` where `eventType` corresponds to the types of `TracingChannel Channels`.
102
- *
103
- * ```js
104
- * import diagnostics_channel from 'node:diagnostics_channel';
105
- *
106
- * const channelsByName = diagnostics_channel.tracingChannel('my-channel');
107
- *
108
- * // or...
109
- *
110
- * const channelsByCollection = diagnostics_channel.tracingChannel({
111
- * start: diagnostics_channel.channel('tracing:my-channel:start'),
112
- * end: diagnostics_channel.channel('tracing:my-channel:end'),
113
- * asyncStart: diagnostics_channel.channel('tracing:my-channel:asyncStart'),
114
- * asyncEnd: diagnostics_channel.channel('tracing:my-channel:asyncEnd'),
115
- * error: diagnostics_channel.channel('tracing:my-channel:error'),
116
- * });
117
- * ```
118
- * @since v19.9.0
119
- * @experimental
120
- * @param nameOrChannels Channel name or object containing all the `TracingChannel Channels`
121
- * @return Collection of channels to trace with
122
- */
123
- function tracingChannel<
124
- StoreType = unknown,
125
- ContextType extends object = StoreType extends object ? StoreType : object,
126
- >(
127
- nameOrChannels: string | TracingChannelCollection<StoreType, ContextType>,
128
- ): TracingChannel<StoreType, ContextType>;
129
- /**
130
- * The class `Channel` represents an individual named channel within the data
131
- * pipeline. It is used to track subscribers and to publish messages when there
132
- * are subscribers present. It exists as a separate object to avoid channel
133
- * lookups at publish time, enabling very fast publish speeds and allowing
134
- * for heavy use while incurring very minimal cost. Channels are created with {@link channel}, constructing a channel directly
135
- * with `new Channel(name)` is not supported.
136
- * @since v15.1.0, v14.17.0
137
- */
138
- class Channel<StoreType = unknown, ContextType = StoreType> {
139
- readonly name: string | symbol;
140
- /**
141
- * Check if there are active subscribers to this channel. This is helpful if
142
- * the message you want to send might be expensive to prepare.
143
- *
144
- * This API is optional but helpful when trying to publish messages from very
145
- * performance-sensitive code.
146
- *
147
- * ```js
148
- * import diagnostics_channel from 'node:diagnostics_channel';
149
- *
150
- * const channel = diagnostics_channel.channel('my-channel');
151
- *
152
- * if (channel.hasSubscribers) {
153
- * // There are subscribers, prepare and publish message
154
- * }
155
- * ```
156
- * @since v15.1.0, v14.17.0
157
- */
158
- readonly hasSubscribers: boolean;
159
- private constructor(name: string | symbol);
160
- /**
161
- * Publish a message to any subscribers to the channel. This will trigger
162
- * message handlers synchronously so they will execute within the same context.
163
- *
164
- * ```js
165
- * import diagnostics_channel from 'node:diagnostics_channel';
166
- *
167
- * const channel = diagnostics_channel.channel('my-channel');
168
- *
169
- * channel.publish({
170
- * some: 'message',
171
- * });
172
- * ```
173
- * @since v15.1.0, v14.17.0
174
- * @param message The message to send to the channel subscribers
175
- */
176
- publish(message: unknown): void;
177
- /**
178
- * Register a message handler to subscribe to this channel. This message handler
179
- * will be run synchronously whenever a message is published to the channel. Any
180
- * errors thrown in the message handler will trigger an `'uncaughtException'`.
181
- *
182
- * ```js
183
- * import diagnostics_channel from 'node:diagnostics_channel';
184
- *
185
- * const channel = diagnostics_channel.channel('my-channel');
186
- *
187
- * channel.subscribe((message, name) => {
188
- * // Received data
189
- * });
190
- * ```
191
- * @since v15.1.0, v14.17.0
192
- * @deprecated Since v18.7.0,v16.17.0 - Use {@link subscribe(name, onMessage)}
193
- * @param onMessage The handler to receive channel messages
194
- */
195
- subscribe(onMessage: ChannelListener): void;
196
- /**
197
- * Remove a message handler previously registered to this channel with `channel.subscribe(onMessage)`.
198
- *
199
- * ```js
200
- * import diagnostics_channel from 'node:diagnostics_channel';
201
- *
202
- * const channel = diagnostics_channel.channel('my-channel');
203
- *
204
- * function onMessage(message, name) {
205
- * // Received data
206
- * }
207
- *
208
- * channel.subscribe(onMessage);
209
- *
210
- * channel.unsubscribe(onMessage);
211
- * ```
212
- * @since v15.1.0, v14.17.0
213
- * @deprecated Since v18.7.0,v16.17.0 - Use {@link unsubscribe(name, onMessage)}
214
- * @param onMessage The previous subscribed handler to remove
215
- * @return `true` if the handler was found, `false` otherwise.
216
- */
217
- unsubscribe(onMessage: ChannelListener): void;
218
- /**
219
- * When `channel.runStores(context, ...)` is called, the given context data
220
- * will be applied to any store bound to the channel. If the store has already been
221
- * bound the previous `transform` function will be replaced with the new one.
222
- * The `transform` function may be omitted to set the given context data as the
223
- * context directly.
224
- *
225
- * ```js
226
- * import diagnostics_channel from 'node:diagnostics_channel';
227
- * import { AsyncLocalStorage } from 'node:async_hooks';
228
- *
229
- * const store = new AsyncLocalStorage();
230
- *
231
- * const channel = diagnostics_channel.channel('my-channel');
232
- *
233
- * channel.bindStore(store, (data) => {
234
- * return { data };
235
- * });
236
- * ```
237
- * @since v19.9.0
238
- * @experimental
239
- * @param store The store to which to bind the context data
240
- * @param transform Transform context data before setting the store context
241
- */
242
- bindStore(store: AsyncLocalStorage<StoreType>, transform?: (context: ContextType) => StoreType): void;
243
- /**
244
- * Remove a message handler previously registered to this channel with `channel.bindStore(store)`.
245
- *
246
- * ```js
247
- * import diagnostics_channel from 'node:diagnostics_channel';
248
- * import { AsyncLocalStorage } from 'node:async_hooks';
249
- *
250
- * const store = new AsyncLocalStorage();
251
- *
252
- * const channel = diagnostics_channel.channel('my-channel');
253
- *
254
- * channel.bindStore(store);
255
- * channel.unbindStore(store);
256
- * ```
257
- * @since v19.9.0
258
- * @experimental
259
- * @param store The store to unbind from the channel.
260
- * @return `true` if the store was found, `false` otherwise.
261
- */
262
- unbindStore(store: any): void;
263
- /**
264
- * Applies the given data to any AsyncLocalStorage instances bound to the channel
265
- * for the duration of the given function, then publishes to the channel within
266
- * the scope of that data is applied to the stores.
267
- *
268
- * If a transform function was given to `channel.bindStore(store)` it will be
269
- * applied to transform the message data before it becomes the context value for
270
- * the store. The prior storage context is accessible from within the transform
271
- * function in cases where context linking is required.
272
- *
273
- * The context applied to the store should be accessible in any async code which
274
- * continues from execution which began during the given function, however
275
- * there are some situations in which `context loss` may occur.
276
- *
277
- * ```js
278
- * import diagnostics_channel from 'node:diagnostics_channel';
279
- * import { AsyncLocalStorage } from 'node:async_hooks';
280
- *
281
- * const store = new AsyncLocalStorage();
282
- *
283
- * const channel = diagnostics_channel.channel('my-channel');
284
- *
285
- * channel.bindStore(store, (message) => {
286
- * const parent = store.getStore();
287
- * return new Span(message, parent);
288
- * });
289
- * channel.runStores({ some: 'message' }, () => {
290
- * store.getStore(); // Span({ some: 'message' })
291
- * });
292
- * ```
293
- * @since v19.9.0
294
- * @experimental
295
- * @param context Message to send to subscribers and bind to stores
296
- * @param fn Handler to run within the entered storage context
297
- * @param thisArg The receiver to be used for the function call.
298
- * @param args Optional arguments to pass to the function.
299
- */
300
- runStores(): void;
301
- }
302
- interface TracingChannelSubscribers<ContextType extends object> {
303
- start: (message: ContextType) => void;
304
- end: (
305
- message: ContextType & {
306
- error?: unknown;
307
- result?: unknown;
308
- },
309
- ) => void;
310
- asyncStart: (
311
- message: ContextType & {
312
- error?: unknown;
313
- result?: unknown;
314
- },
315
- ) => void;
316
- asyncEnd: (
317
- message: ContextType & {
318
- error?: unknown;
319
- result?: unknown;
320
- },
321
- ) => void;
322
- error: (
323
- message: ContextType & {
324
- error: unknown;
325
- },
326
- ) => void;
327
- }
328
- interface TracingChannelCollection<StoreType = unknown, ContextType = StoreType> {
329
- start: Channel<StoreType, ContextType>;
330
- end: Channel<StoreType, ContextType>;
331
- asyncStart: Channel<StoreType, ContextType>;
332
- asyncEnd: Channel<StoreType, ContextType>;
333
- error: Channel<StoreType, ContextType>;
334
- }
335
- /**
336
- * The class `TracingChannel` is a collection of `TracingChannel Channels` which
337
- * together express a single traceable action. It is used to formalize and
338
- * simplify the process of producing events for tracing application flow. {@link tracingChannel} is used to construct a `TracingChannel`. As with `Channel` it is recommended to create and reuse a
339
- * single `TracingChannel` at the top-level of the file rather than creating them
340
- * dynamically.
341
- * @since v19.9.0
342
- * @experimental
343
- */
344
- class TracingChannel<StoreType = unknown, ContextType extends object = {}> implements TracingChannelCollection {
345
- start: Channel<StoreType, ContextType>;
346
- end: Channel<StoreType, ContextType>;
347
- asyncStart: Channel<StoreType, ContextType>;
348
- asyncEnd: Channel<StoreType, ContextType>;
349
- error: Channel<StoreType, ContextType>;
350
- /**
351
- * Helper to subscribe a collection of functions to the corresponding channels.
352
- * This is the same as calling `channel.subscribe(onMessage)` on each channel
353
- * individually.
354
- *
355
- * ```js
356
- * import diagnostics_channel from 'node:diagnostics_channel';
357
- *
358
- * const channels = diagnostics_channel.tracingChannel('my-channel');
359
- *
360
- * channels.subscribe({
361
- * start(message) {
362
- * // Handle start message
363
- * },
364
- * end(message) {
365
- * // Handle end message
366
- * },
367
- * asyncStart(message) {
368
- * // Handle asyncStart message
369
- * },
370
- * asyncEnd(message) {
371
- * // Handle asyncEnd message
372
- * },
373
- * error(message) {
374
- * // Handle error message
375
- * },
376
- * });
377
- * ```
378
- * @since v19.9.0
379
- * @experimental
380
- * @param subscribers Set of `TracingChannel Channels` subscribers
381
- */
382
- subscribe(subscribers: TracingChannelSubscribers<ContextType>): void;
383
- /**
384
- * Helper to unsubscribe a collection of functions from the corresponding channels.
385
- * This is the same as calling `channel.unsubscribe(onMessage)` on each channel
386
- * individually.
387
- *
388
- * ```js
389
- * import diagnostics_channel from 'node:diagnostics_channel';
390
- *
391
- * const channels = diagnostics_channel.tracingChannel('my-channel');
392
- *
393
- * channels.unsubscribe({
394
- * start(message) {
395
- * // Handle start message
396
- * },
397
- * end(message) {
398
- * // Handle end message
399
- * },
400
- * asyncStart(message) {
401
- * // Handle asyncStart message
402
- * },
403
- * asyncEnd(message) {
404
- * // Handle asyncEnd message
405
- * },
406
- * error(message) {
407
- * // Handle error message
408
- * },
409
- * });
410
- * ```
411
- * @since v19.9.0
412
- * @experimental
413
- * @param subscribers Set of `TracingChannel Channels` subscribers
414
- * @return `true` if all handlers were successfully unsubscribed, and `false` otherwise.
415
- */
416
- unsubscribe(subscribers: TracingChannelSubscribers<ContextType>): void;
417
- /**
418
- * Trace a synchronous function call. This will always produce a `start event` and `end event` around the execution and may produce an `error event` if the given function throws an error.
419
- * This will run the given function using `channel.runStores(context, ...)` on the `start` channel which ensures all
420
- * events should have any bound stores set to match this trace context.
421
- *
422
- * To ensure only correct trace graphs are formed, events will only be published if subscribers are present prior to starting the trace. Subscriptions
423
- * which are added after the trace begins will not receive future events from that trace, only future traces will be seen.
424
- *
425
- * ```js
426
- * import diagnostics_channel from 'node:diagnostics_channel';
427
- *
428
- * const channels = diagnostics_channel.tracingChannel('my-channel');
429
- *
430
- * channels.traceSync(() => {
431
- * // Do something
432
- * }, {
433
- * some: 'thing',
434
- * });
435
- * ```
436
- * @since v19.9.0
437
- * @experimental
438
- * @param fn Function to wrap a trace around
439
- * @param context Shared object to correlate events through
440
- * @param thisArg The receiver to be used for the function call
441
- * @param args Optional arguments to pass to the function
442
- * @return The return value of the given function
443
- */
444
- traceSync<ThisArg = any, Args extends any[] = any[]>(
445
- fn: (this: ThisArg, ...args: Args) => any,
446
- context?: ContextType,
447
- thisArg?: ThisArg,
448
- ...args: Args
449
- ): void;
450
- /**
451
- * Trace a promise-returning function call. This will always produce a `start event` and `end event` around the synchronous portion of the
452
- * function execution, and will produce an `asyncStart event` and `asyncEnd event` when a promise continuation is reached. It may also
453
- * produce an `error event` if the given function throws an error or the
454
- * returned promise rejects. This will run the given function using `channel.runStores(context, ...)` on the `start` channel which ensures all
455
- * events should have any bound stores set to match this trace context.
456
- *
457
- * To ensure only correct trace graphs are formed, events will only be published if subscribers are present prior to starting the trace. Subscriptions
458
- * which are added after the trace begins will not receive future events from that trace, only future traces will be seen.
459
- *
460
- * ```js
461
- * import diagnostics_channel from 'node:diagnostics_channel';
462
- *
463
- * const channels = diagnostics_channel.tracingChannel('my-channel');
464
- *
465
- * channels.tracePromise(async () => {
466
- * // Do something
467
- * }, {
468
- * some: 'thing',
469
- * });
470
- * ```
471
- * @since v19.9.0
472
- * @experimental
473
- * @param fn Promise-returning function to wrap a trace around
474
- * @param context Shared object to correlate trace events through
475
- * @param thisArg The receiver to be used for the function call
476
- * @param args Optional arguments to pass to the function
477
- * @return Chained from promise returned by the given function
478
- */
479
- tracePromise<ThisArg = any, Args extends any[] = any[]>(
480
- fn: (this: ThisArg, ...args: Args) => Promise<any>,
481
- context?: ContextType,
482
- thisArg?: ThisArg,
483
- ...args: Args
484
- ): void;
485
- /**
486
- * Trace a callback-receiving function call. This will always produce a `start event` and `end event` around the synchronous portion of the
487
- * function execution, and will produce a `asyncStart event` and `asyncEnd event` around the callback execution. It may also produce an `error event` if the given function throws an error or
488
- * the returned
489
- * promise rejects. This will run the given function using `channel.runStores(context, ...)` on the `start` channel which ensures all
490
- * events should have any bound stores set to match this trace context.
491
- *
492
- * The `position` will be -1 by default to indicate the final argument should
493
- * be used as the callback.
494
- *
495
- * ```js
496
- * import diagnostics_channel from 'node:diagnostics_channel';
497
- *
498
- * const channels = diagnostics_channel.tracingChannel('my-channel');
499
- *
500
- * channels.traceCallback((arg1, callback) => {
501
- * // Do something
502
- * callback(null, 'result');
503
- * }, 1, {
504
- * some: 'thing',
505
- * }, thisArg, arg1, callback);
506
- * ```
507
- *
508
- * The callback will also be run with `channel.runStores(context, ...)` which
509
- * enables context loss recovery in some cases.
510
- *
511
- * To ensure only correct trace graphs are formed, events will only be published if subscribers are present prior to starting the trace. Subscriptions
512
- * which are added after the trace begins will not receive future events from that trace, only future traces will be seen.
513
- *
514
- * ```js
515
- * import diagnostics_channel from 'node:diagnostics_channel';
516
- * import { AsyncLocalStorage } from 'node:async_hooks';
517
- *
518
- * const channels = diagnostics_channel.tracingChannel('my-channel');
519
- * const myStore = new AsyncLocalStorage();
520
- *
521
- * // The start channel sets the initial store data to something
522
- * // and stores that store data value on the trace context object
523
- * channels.start.bindStore(myStore, (data) => {
524
- * const span = new Span(data);
525
- * data.span = span;
526
- * return span;
527
- * });
528
- *
529
- * // Then asyncStart can restore from that data it stored previously
530
- * channels.asyncStart.bindStore(myStore, (data) => {
531
- * return data.span;
532
- * });
533
- * ```
534
- * @since v19.9.0
535
- * @experimental
536
- * @param fn callback using function to wrap a trace around
537
- * @param position Zero-indexed argument position of expected callback
538
- * @param context Shared object to correlate trace events through
539
- * @param thisArg The receiver to be used for the function call
540
- * @param args Optional arguments to pass to the function
541
- * @return The return value of the given function
542
- */
543
- traceCallback<Fn extends (this: any, ...args: any) => any>(
544
- fn: Fn,
545
- position: number | undefined,
546
- context: ContextType | undefined,
547
- thisArg: any,
548
- ...args: Parameters<Fn>
549
- ): void;
550
- }
551
- }
552
- declare module "node:diagnostics_channel" {
553
- export * from "diagnostics_channel";
554
- }