@types/node 22.8.5 → 22.8.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
node/README.md CHANGED
@@ -8,7 +8,7 @@ This package contains type definitions for node (https://nodejs.org/).
8
8
  Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node.
9
9
 
10
10
  ### Additional Details
11
- * Last updated: Thu, 31 Oct 2024 05:35:24 GMT
11
+ * Last updated: Sun, 03 Nov 2024 04:02:17 GMT
12
12
  * Dependencies: [undici-types](https://npmjs.com/package/undici-types)
13
13
 
14
14
  # Credits
node/events.d.ts CHANGED
@@ -34,7 +34,6 @@
34
34
  * ```
35
35
  * @see [source](https://github.com/nodejs/node/blob/v22.x/lib/events.js)
36
36
  */
37
-
38
37
  declare module "events" {
39
38
  import { AsyncResource, AsyncResourceOptions } from "node:async_hooks";
40
39
  // NOTE: This class is in the docs but is **not actually exported** by Node.
@@ -100,27 +99,23 @@ declare module "events" {
100
99
  */
101
100
  lowWaterMark?: number | undefined;
102
101
  }
103
- interface EventEmitter<Events extends EventMap<Events> = {}> extends NodeJS.EventEmitter<Events> {}
104
- type EventMap<Events> = Record<keyof Events, unknown[]>;
105
- type Args<Events extends EventMap<Events>, EventName> = EventName extends keyof Events ? (
106
- | Events[EventName]
107
- | (EventName extends keyof EventEmitter.EventEmitterBuiltInEventMap
108
- ? EventEmitter.EventEmitterBuiltInEventMap[EventName]
109
- : never)
110
- )
111
- : (EventName extends keyof EventEmitter.EventEmitterBuiltInEventMap
112
- ? EventEmitter.EventEmitterBuiltInEventMap[EventName]
113
- : any[]);
114
- type EventNames<Events extends EventMap<Events>> = {} extends Events ? (string | symbol)
115
- : (keyof Events | keyof EventEmitter.EventEmitterBuiltInEventMap);
116
- type Listener<Events extends EventMap<Events>, EventName> = EventName extends keyof Events ?
117
- | ((...args: Events[EventName]) => void)
118
- | (EventName extends keyof EventEmitter.EventEmitterBuiltInEventMap
119
- ? (...args: EventEmitter.EventEmitterBuiltInEventMap[EventName]) => void
120
- : never)
121
- : (EventName extends keyof EventEmitter.EventEmitterBuiltInEventMap
122
- ? (...args: EventEmitter.EventEmitterBuiltInEventMap[EventName]) => void
123
- : (...args: any[]) => void);
102
+ interface EventEmitter<T extends EventMap<T> = DefaultEventMap> extends NodeJS.EventEmitter<T> {}
103
+ type EventMap<T> = Record<keyof T, any[]> | DefaultEventMap;
104
+ type DefaultEventMap = [never];
105
+ type AnyRest = [...args: any[]];
106
+ type Args<K, T> = T extends DefaultEventMap ? AnyRest : (
107
+ K extends keyof T ? T[K] : never
108
+ );
109
+ type Key<K, T> = T extends DefaultEventMap ? string | symbol : K | keyof T;
110
+ type Key2<K, T> = T extends DefaultEventMap ? string | symbol : K & keyof T;
111
+ type Listener<K, T, F> = T extends DefaultEventMap ? F : (
112
+ K extends keyof T ? (
113
+ T[K] extends unknown[] ? (...args: T[K]) => void : never
114
+ )
115
+ : never
116
+ );
117
+ type Listener1<K, T> = Listener<K, T, (...args: any[]) => void>;
118
+ type Listener2<K, T> = Listener<K, T, Function>;
124
119
 
125
120
  /**
126
121
  * The `EventEmitter` class is defined and exposed by the `node:events` module:
@@ -135,20 +130,10 @@ declare module "events" {
135
130
  * It supports the following option:
136
131
  * @since v0.1.26
137
132
  */
138
- class EventEmitter<Events extends EventMap<Events> = {}> {
133
+ class EventEmitter<T extends EventMap<T> = DefaultEventMap> {
139
134
  constructor(options?: EventEmitterOptions);
140
135
 
141
- // This "property" is used to brand a specific instance of the EventEmitter class with its Event map, which is needed
142
- // in order to infer the map if we have a chain like `class A extends EventEmitter<{}>` (or many levels deep)
143
- // It is also marked as possibly undefined in order to allow something like `const t: NodeJS.EventEmitter<{}> = { <insert implementation here> };`
144
- readonly #internalTypeOnlyBrand?: Events;
145
-
146
- [EventEmitter.captureRejectionSymbol]?<EventName extends EventNames<Events>>(
147
- error: Error,
148
- event: EventName,
149
- ...args: Args<Events, EventName>
150
- ): void;
151
- [EventEmitter.captureRejectionSymbol]?(error: Error, event: string | symbol, ...args: any[]): void;
136
+ [EventEmitter.captureRejectionSymbol]?<K>(error: Error, event: Key<K, T>, ...args: Args<K, T>): void;
152
137
 
153
138
  /**
154
139
  * Creates a `Promise` that is fulfilled when the `EventEmitter` emits the given
@@ -229,11 +214,6 @@ declare module "events" {
229
214
  * ```
230
215
  * @since v11.13.0, v10.16.0
231
216
  */
232
- static once<Events extends EventMap<Events>, EventName extends EventNames<Events>>(
233
- emitter: EventEmitter<Events>,
234
- eventName: EventName,
235
- options?: StaticEventEmitterOptions,
236
- ): Promise<Args<Events, EventName>>;
237
217
  static once(
238
218
  emitter: NodeJS.EventEmitter,
239
219
  eventName: string | symbol,
@@ -320,11 +300,6 @@ declare module "events" {
320
300
  * @since v13.6.0, v12.16.0
321
301
  * @return An `AsyncIterator` that iterates `eventName` events emitted by the `emitter`
322
302
  */
323
- static on<Events extends EventMap<Events>, EventName extends EventNames<Events>>(
324
- emitter: EventEmitter<Events>,
325
- eventName: EventName,
326
- options?: StaticEventEmitterIteratorOptions,
327
- ): NodeJS.AsyncIterator<Args<Events, EventName>>;
328
303
  static on(
329
304
  emitter: NodeJS.EventEmitter,
330
305
  eventName: string | symbol,
@@ -335,27 +310,6 @@ declare module "events" {
335
310
  eventName: string,
336
311
  options?: StaticEventEmitterIteratorOptions,
337
312
  ): NodeJS.AsyncIterator<any[]>;
338
- /**
339
- * A class method that returns the number of listeners for the given `eventName` registered on the given `emitter`.
340
- *
341
- * ```js
342
- * import { EventEmitter, listenerCount } from 'node:events';
343
- *
344
- * const myEmitter = new EventEmitter();
345
- * myEmitter.on('event', () => {});
346
- * myEmitter.on('event', () => {});
347
- * console.log(listenerCount(myEmitter, 'event'));
348
- * // Prints: 2
349
- * ```
350
- * @since v0.9.12
351
- * @deprecated Since v3.2.0 - Use `listenerCount` instead.
352
- * @param emitter The emitter to query
353
- * @param eventName The event name
354
- */
355
- static listenerCount<Events extends EventMap<Events>, EventName extends EventNames<Events>>(
356
- emitter: EventEmitter<Events>,
357
- eventName: EventName,
358
- ): number;
359
313
  /**
360
314
  * A class method that returns the number of listeners for the given `eventName` registered on the given `emitter`.
361
315
  *
@@ -401,14 +355,7 @@ declare module "events" {
401
355
  * ```
402
356
  * @since v15.2.0, v14.17.0
403
357
  */
404
- static getEventListeners<Events extends EventMap<Events>, EventName extends EventNames<Events>>(
405
- emitter: EventEmitter<Events>,
406
- name: EventName,
407
- ): Array<Listener<Events, EventName>>;
408
- static getEventListeners(
409
- emitter: EventTarget | NodeJS.EventEmitter,
410
- name: string | symbol,
411
- ): Function[];
358
+ static getEventListeners(emitter: EventTarget | NodeJS.EventEmitter, name: string | symbol): Function[];
412
359
  /**
413
360
  * Returns the currently set max amount of listeners.
414
361
  *
@@ -638,37 +585,16 @@ declare module "events" {
638
585
  */
639
586
  readonly asyncResource: EventEmitterReferencingAsyncResource;
640
587
  }
641
-
642
- export interface EventEmitterBuiltInEventMap {
643
- newListener: [eventName: string | symbol, listener: Function];
644
- removeListener: [eventName: string | symbol, listener: Function];
645
- }
646
588
  }
647
589
  global {
648
590
  namespace NodeJS {
649
- interface EventEmitter<Events extends EventMap<Events> = {}> {
650
- [EventEmitter.captureRejectionSymbol]?<EventName extends EventNames<Events>>(
651
- error: Error,
652
- event: EventName,
653
- ...args: Args<Events, EventName>
654
- ): void;
655
- [EventEmitter.captureRejectionSymbol]?<EventName extends string | symbol>(
656
- error: Error,
657
- event: EventName,
658
- ...args: Args<Events, EventName>
659
- ): void;
591
+ interface EventEmitter<T extends EventMap<T> = DefaultEventMap> {
592
+ [EventEmitter.captureRejectionSymbol]?<K>(error: Error, event: Key<K, T>, ...args: Args<K, T>): void;
660
593
  /**
661
594
  * Alias for `emitter.on(eventName, listener)`.
662
595
  * @since v0.1.26
663
596
  */
664
- addListener<EventName extends EventNames<Events>>(
665
- eventName: EventName,
666
- listener: Listener<Events, EventName>,
667
- ): this;
668
- addListener<EventName extends string | symbol>(
669
- eventName: EventName,
670
- listener: Listener<Events, EventName>,
671
- ): this;
597
+ addListener<K>(eventName: Key<K, T>, listener: Listener1<K, T>): this;
672
598
  /**
673
599
  * Adds the `listener` function to the end of the listeners array for the event
674
600
  * named `eventName`. No checks are made to see if the `listener` has already
@@ -700,14 +626,7 @@ declare module "events" {
700
626
  * @param eventName The name of the event.
701
627
  * @param listener The callback function
702
628
  */
703
- on<EventName extends EventNames<Events>>(
704
- eventName: EventName,
705
- listener: Listener<Events, EventName>,
706
- ): this;
707
- on<EventName extends string | symbol>(
708
- eventName: EventName,
709
- listener: Listener<Events, EventName>,
710
- ): this;
629
+ on<K>(eventName: Key<K, T>, listener: Listener1<K, T>): this;
711
630
  /**
712
631
  * Adds a **one-time** `listener` function for the event named `eventName`. The
713
632
  * next time `eventName` is triggered, this listener is removed and then invoked.
@@ -737,14 +656,7 @@ declare module "events" {
737
656
  * @param eventName The name of the event.
738
657
  * @param listener The callback function
739
658
  */
740
- once<EventName extends EventNames<Events>>(
741
- eventName: EventName,
742
- listener: Listener<Events, EventName>,
743
- ): this;
744
- once<EventName extends string | symbol>(
745
- eventName: EventName,
746
- listener: Listener<Events, EventName>,
747
- ): this;
659
+ once<K>(eventName: Key<K, T>, listener: Listener1<K, T>): this;
748
660
  /**
749
661
  * Removes the specified `listener` from the listener array for the event named `eventName`.
750
662
  *
@@ -827,26 +739,12 @@ declare module "events" {
827
739
  * Returns a reference to the `EventEmitter`, so that calls can be chained.
828
740
  * @since v0.1.26
829
741
  */
830
- removeListener<EventName extends EventNames<Events>>(
831
- eventName: EventName,
832
- listener: Listener<Events, EventName>,
833
- ): this;
834
- removeListener<EventName extends string | symbol>(
835
- eventName: EventName,
836
- listener: Listener<Events, EventName>,
837
- ): this;
742
+ removeListener<K>(eventName: Key<K, T>, listener: Listener1<K, T>): this;
838
743
  /**
839
744
  * Alias for `emitter.removeListener()`.
840
745
  * @since v10.0.0
841
746
  */
842
- off<EventName extends EventNames<Events>>(
843
- eventName: EventName,
844
- listener: Listener<Events, EventName>,
845
- ): this;
846
- off<EventName extends string | symbol>(
847
- eventName: EventName,
848
- listener: Listener<Events, EventName>,
849
- ): this;
747
+ off<K>(eventName: Key<K, T>, listener: Listener1<K, T>): this;
850
748
  /**
851
749
  * Removes all listeners, or those of the specified `eventName`.
852
750
  *
@@ -857,10 +755,7 @@ declare module "events" {
857
755
  * Returns a reference to the `EventEmitter`, so that calls can be chained.
858
756
  * @since v0.1.26
859
757
  */
860
- /* eslint-disable @definitelytyped/no-unnecessary-generics */
861
- removeAllListeners<EventName extends EventNames<Events>>(eventName: EventName): this;
862
- removeAllListeners<EventName extends string | symbol>(eventName?: EventName): this;
863
- /* eslint-enable @definitelytyped/no-unnecessary-generics */
758
+ removeAllListeners(eventName?: Key<unknown, T>): this;
864
759
  /**
865
760
  * By default `EventEmitter`s will print a warning if more than `10` listeners are
866
761
  * added for a particular event. This is a useful default that helps finding
@@ -889,12 +784,7 @@ declare module "events" {
889
784
  * ```
890
785
  * @since v0.1.26
891
786
  */
892
- listeners<EventName extends EventNames<Events>>(
893
- eventName: EventName,
894
- ): Array<Listener<Events, EventName>>;
895
- listeners<EventName extends string | symbol>(
896
- eventName: EventName,
897
- ): Array<Listener<Events, EventName>>;
787
+ listeners<K>(eventName: Key<K, T>): Array<Listener2<K, T>>;
898
788
  /**
899
789
  * Returns a copy of the array of listeners for the event named `eventName`,
900
790
  * including any wrappers (such as those created by `.once()`).
@@ -925,12 +815,7 @@ declare module "events" {
925
815
  * ```
926
816
  * @since v9.4.0
927
817
  */
928
- rawListeners<EventName extends EventNames<Events>>(
929
- eventName: EventName,
930
- ): Array<Listener<Events, EventName>>;
931
- rawListeners<EventName extends string | symbol>(
932
- eventName: EventName,
933
- ): Array<Listener<Events, EventName>>;
818
+ rawListeners<K>(eventName: Key<K, T>): Array<Listener2<K, T>>;
934
819
  /**
935
820
  * Synchronously calls each of the listeners registered for the event named `eventName`, in the order they were registered, passing the supplied arguments
936
821
  * to each.
@@ -971,14 +856,7 @@ declare module "events" {
971
856
  * ```
972
857
  * @since v0.1.26
973
858
  */
974
- emit<EventName extends EventNames<Events>>(
975
- eventName: EventName,
976
- ...args: Args<Events, EventName>
977
- ): boolean;
978
- emit<EventName extends string | symbol>(
979
- eventName: EventName,
980
- ...args: Args<Events, EventName>
981
- ): boolean;
859
+ emit<K>(eventName: Key<K, T>, ...args: Args<K, T>): boolean;
982
860
  /**
983
861
  * Returns the number of listeners listening for the event named `eventName`.
984
862
  * If `listener` is provided, it will return how many times the listener is found
@@ -987,14 +865,7 @@ declare module "events" {
987
865
  * @param eventName The name of the event being listened for
988
866
  * @param listener The event handler function
989
867
  */
990
- listenerCount<EventName extends EventNames<Events>>(
991
- eventName: EventName,
992
- listener?: Listener<Events, EventName>,
993
- ): number;
994
- listenerCount<EventName extends string | symbol>(
995
- eventName: EventName,
996
- listener?: Listener<Events, EventName>,
997
- ): number;
868
+ listenerCount<K>(eventName: Key<K, T>, listener?: Listener2<K, T>): number;
998
869
  /**
999
870
  * Adds the `listener` function to the _beginning_ of the listeners array for the
1000
871
  * event named `eventName`. No checks are made to see if the `listener` has
@@ -1012,14 +883,7 @@ declare module "events" {
1012
883
  * @param eventName The name of the event.
1013
884
  * @param listener The callback function
1014
885
  */
1015
- prependListener<EventName extends EventNames<Events>>(
1016
- eventName: EventName,
1017
- listener: Listener<Events, EventName>,
1018
- ): this;
1019
- prependListener<EventName extends string | symbol>(
1020
- eventName: EventName,
1021
- listener: Listener<Events, EventName>,
1022
- ): this;
886
+ prependListener<K>(eventName: Key<K, T>, listener: Listener1<K, T>): this;
1023
887
  /**
1024
888
  * Adds a **one-time**`listener` function for the event named `eventName` to the _beginning_ of the listeners array. The next time `eventName` is triggered, this
1025
889
  * listener is removed, and then invoked.
@@ -1035,14 +899,7 @@ declare module "events" {
1035
899
  * @param eventName The name of the event.
1036
900
  * @param listener The callback function
1037
901
  */
1038
- prependOnceListener<EventName extends EventNames<Events>>(
1039
- eventName: EventName,
1040
- listener: Listener<Events, EventName>,
1041
- ): this;
1042
- prependOnceListener<EventName extends string | symbol>(
1043
- eventName: EventName,
1044
- listener: Listener<Events, EventName>,
1045
- ): this;
902
+ prependOnceListener<K>(eventName: Key<K, T>, listener: Listener1<K, T>): this;
1046
903
  /**
1047
904
  * Returns an array listing the events for which the emitter has registered
1048
905
  * listeners. The values in the array are strings or `Symbol`s.
@@ -1062,7 +919,7 @@ declare module "events" {
1062
919
  * ```
1063
920
  * @since v6.0.0
1064
921
  */
1065
- eventNames(): Array<(string | symbol)> & Array<EventNames<Events>>;
922
+ eventNames(): Array<(string | symbol) & Key2<unknown, T>>;
1066
923
  }
1067
924
  }
1068
925
  }
node/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@types/node",
3
- "version": "22.8.5",
3
+ "version": "22.8.7",
4
4
  "description": "TypeScript definitions for node",
5
5
  "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node",
6
6
  "license": "MIT",
@@ -220,6 +220,6 @@
220
220
  "undici-types": "~6.19.8"
221
221
  },
222
222
  "peerDependencies": {},
223
- "typesPublisherContentHash": "7165aa45b80abb5ff9333ec6ca387d477f843670bbad567424c59b148b46fa23",
223
+ "typesPublisherContentHash": "eb4a12d3db7d5c2f973b35f0ccc659d77637fdcdc340900124be3f5602cc29bc",
224
224
  "typeScriptVersion": "4.8"
225
225
  }
@@ -3,8 +3,13 @@
3
3
  * @experimental
4
4
  */
5
5
  declare module "readline/promises" {
6
- import { AsyncCompleter, Completer, Direction, Interface as _Interface, ReadLineOptions } from "node:readline";
7
6
  import { Abortable } from "node:events";
7
+ import {
8
+ CompleterResult,
9
+ Direction,
10
+ Interface as _Interface,
11
+ ReadLineOptions as _ReadLineOptions,
12
+ } from "node:readline";
8
13
  /**
9
14
  * Instances of the `readlinePromises.Interface` class are constructed using the `readlinePromises.createInterface()` method. Every instance is associated with a
10
15
  * single `input` `Readable` stream and a single `output` `Writable` stream.
@@ -111,6 +116,13 @@ declare module "readline/promises" {
111
116
  */
112
117
  rollback(): this;
113
118
  }
119
+ type Completer = (line: string) => CompleterResult | Promise<CompleterResult>;
120
+ interface ReadLineOptions extends Omit<_ReadLineOptions, "completer"> {
121
+ /**
122
+ * An optional function used for Tab autocompletion.
123
+ */
124
+ completer?: Completer | undefined;
125
+ }
114
126
  /**
115
127
  * The `readlinePromises.createInterface()` method creates a new `readlinePromises.Interface` instance.
116
128
  *
@@ -140,7 +152,7 @@ declare module "readline/promises" {
140
152
  function createInterface(
141
153
  input: NodeJS.ReadableStream,
142
154
  output?: NodeJS.WritableStream,
143
- completer?: Completer | AsyncCompleter,
155
+ completer?: Completer,
144
156
  terminal?: boolean,
145
157
  ): Interface;
146
158
  function createInterface(options: ReadLineOptions): Interface;
node/readline.d.ts CHANGED
@@ -314,29 +314,78 @@ declare module "readline" {
314
314
  ) => void;
315
315
  export type CompleterResult = [string[], string];
316
316
  export interface ReadLineOptions {
317
+ /**
318
+ * The [`Readable`](https://nodejs.org/docs/latest-v22.x/api/stream.html#readable-streams) stream to listen to
319
+ */
317
320
  input: NodeJS.ReadableStream;
321
+ /**
322
+ * The [`Writable`](https://nodejs.org/docs/latest-v22.x/api/stream.html#writable-streams) stream to write readline data to.
323
+ */
318
324
  output?: NodeJS.WritableStream | undefined;
325
+ /**
326
+ * An optional function used for Tab autocompletion.
327
+ */
319
328
  completer?: Completer | AsyncCompleter | undefined;
329
+ /**
330
+ * `true` if the `input` and `output` streams should be treated like a TTY,
331
+ * and have ANSI/VT100 escape codes written to it.
332
+ * Default: checking `isTTY` on the `output` stream upon instantiation.
333
+ */
320
334
  terminal?: boolean | undefined;
321
335
  /**
322
- * Initial list of history lines. This option makes sense
323
- * only if `terminal` is set to `true` by the user or by an internal `output`
324
- * check, otherwise the history caching mechanism is not initialized at all.
336
+ * Initial list of history lines.
337
+ * This option makes sense only if `terminal` is set to `true` by the user or by an internal `output` check,
338
+ * otherwise the history caching mechanism is not initialized at all.
325
339
  * @default []
326
340
  */
327
341
  history?: string[] | undefined;
342
+ /**
343
+ * Maximum number of history lines retained.
344
+ * To disable the history set this value to `0`.
345
+ * This option makes sense only if `terminal` is set to `true` by the user or by an internal `output` check,
346
+ * otherwise the history caching mechanism is not initialized at all.
347
+ * @default 30
348
+ */
328
349
  historySize?: number | undefined;
329
- prompt?: string | undefined;
330
- crlfDelay?: number | undefined;
331
350
  /**
332
- * If `true`, when a new input line added
333
- * to the history list duplicates an older one, this removes the older line
334
- * from the list.
351
+ * If `true`, when a new input line added to the history list duplicates an older one,
352
+ * this removes the older line from the list.
335
353
  * @default false
336
354
  */
337
355
  removeHistoryDuplicates?: boolean | undefined;
356
+ /**
357
+ * The prompt string to use.
358
+ * @default "> "
359
+ */
360
+ prompt?: string | undefined;
361
+ /**
362
+ * If the delay between `\r` and `\n` exceeds `crlfDelay` milliseconds,
363
+ * both `\r` and `\n` will be treated as separate end-of-line input.
364
+ * `crlfDelay` will be coerced to a number no less than `100`.
365
+ * It can be set to `Infinity`, in which case
366
+ * `\r` followed by `\n` will always be considered a single newline
367
+ * (which may be reasonable for [reading files](https://nodejs.org/docs/latest-v22.x/api/readline.html#example-read-file-stream-line-by-line) with `\r\n` line delimiter).
368
+ * @default 100
369
+ */
370
+ crlfDelay?: number | undefined;
371
+ /**
372
+ * The duration `readline` will wait for a character
373
+ * (when reading an ambiguous key sequence in milliseconds
374
+ * one that can both form a complete key sequence using the input read so far
375
+ * and can take additional input to complete a longer key sequence).
376
+ * @default 500
377
+ */
338
378
  escapeCodeTimeout?: number | undefined;
379
+ /**
380
+ * The number of spaces a tab is equal to (minimum 1).
381
+ * @default 8
382
+ */
339
383
  tabSize?: number | undefined;
384
+ /**
385
+ * Allows closing the interface using an AbortSignal.
386
+ * Aborting the signal will internally call `close` on the interface.
387
+ */
388
+ signal?: AbortSignal | undefined;
340
389
  }
341
390
  /**
342
391
  * The `readline.createInterface()` method creates a new `readline.Interface` instance.