@types/node 22.8.3 → 22.8.5

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: Tue, 29 Oct 2024 16:37:49 GMT
11
+ * Last updated: Thu, 31 Oct 2024 05:35:24 GMT
12
12
  * Dependencies: [undici-types](https://npmjs.com/package/undici-types)
13
13
 
14
14
  # Credits
node/crypto.d.ts CHANGED
@@ -609,11 +609,6 @@ declare module "crypto" {
609
609
  * @since v11.6.0
610
610
  */
611
611
  asymmetricKeyType?: KeyType | undefined;
612
- /**
613
- * For asymmetric keys, this property represents the size of the embedded key in
614
- * bytes. This property is `undefined` for symmetric keys.
615
- */
616
- asymmetricKeySize?: number | undefined;
617
612
  /**
618
613
  * This property exists only on asymmetric keys. Depending on the type of the key,
619
614
  * this object contains information about the key. None of the information obtained
node/events.d.ts CHANGED
@@ -34,6 +34,7 @@
34
34
  * ```
35
35
  * @see [source](https://github.com/nodejs/node/blob/v22.x/lib/events.js)
36
36
  */
37
+
37
38
  declare module "events" {
38
39
  import { AsyncResource, AsyncResourceOptions } from "node:async_hooks";
39
40
  // NOTE: This class is in the docs but is **not actually exported** by Node.
@@ -99,23 +100,27 @@ declare module "events" {
99
100
  */
100
101
  lowWaterMark?: number | undefined;
101
102
  }
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>;
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);
119
124
 
120
125
  /**
121
126
  * The `EventEmitter` class is defined and exposed by the `node:events` module:
@@ -130,10 +135,20 @@ declare module "events" {
130
135
  * It supports the following option:
131
136
  * @since v0.1.26
132
137
  */
133
- class EventEmitter<T extends EventMap<T> = DefaultEventMap> {
138
+ class EventEmitter<Events extends EventMap<Events> = {}> {
134
139
  constructor(options?: EventEmitterOptions);
135
140
 
136
- [EventEmitter.captureRejectionSymbol]?<K>(error: Error, event: Key<K, T>, ...args: Args<K, T>): void;
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;
137
152
 
138
153
  /**
139
154
  * Creates a `Promise` that is fulfilled when the `EventEmitter` emits the given
@@ -214,6 +229,11 @@ declare module "events" {
214
229
  * ```
215
230
  * @since v11.13.0, v10.16.0
216
231
  */
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>>;
217
237
  static once(
218
238
  emitter: NodeJS.EventEmitter,
219
239
  eventName: string | symbol,
@@ -300,6 +320,11 @@ declare module "events" {
300
320
  * @since v13.6.0, v12.16.0
301
321
  * @return An `AsyncIterator` that iterates `eventName` events emitted by the `emitter`
302
322
  */
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>>;
303
328
  static on(
304
329
  emitter: NodeJS.EventEmitter,
305
330
  eventName: string | symbol,
@@ -310,6 +335,27 @@ declare module "events" {
310
335
  eventName: string,
311
336
  options?: StaticEventEmitterIteratorOptions,
312
337
  ): 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;
313
359
  /**
314
360
  * A class method that returns the number of listeners for the given `eventName` registered on the given `emitter`.
315
361
  *
@@ -355,7 +401,14 @@ declare module "events" {
355
401
  * ```
356
402
  * @since v15.2.0, v14.17.0
357
403
  */
358
- static getEventListeners(emitter: EventTarget | NodeJS.EventEmitter, name: string | symbol): Function[];
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[];
359
412
  /**
360
413
  * Returns the currently set max amount of listeners.
361
414
  *
@@ -585,16 +638,37 @@ declare module "events" {
585
638
  */
586
639
  readonly asyncResource: EventEmitterReferencingAsyncResource;
587
640
  }
641
+
642
+ export interface EventEmitterBuiltInEventMap {
643
+ newListener: [eventName: string | symbol, listener: Function];
644
+ removeListener: [eventName: string | symbol, listener: Function];
645
+ }
588
646
  }
589
647
  global {
590
648
  namespace NodeJS {
591
- interface EventEmitter<T extends EventMap<T> = DefaultEventMap> {
592
- [EventEmitter.captureRejectionSymbol]?<K>(error: Error, event: Key<K, T>, ...args: Args<K, T>): void;
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;
593
660
  /**
594
661
  * Alias for `emitter.on(eventName, listener)`.
595
662
  * @since v0.1.26
596
663
  */
597
- addListener<K>(eventName: Key<K, T>, listener: Listener1<K, T>): this;
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;
598
672
  /**
599
673
  * Adds the `listener` function to the end of the listeners array for the event
600
674
  * named `eventName`. No checks are made to see if the `listener` has already
@@ -626,7 +700,14 @@ declare module "events" {
626
700
  * @param eventName The name of the event.
627
701
  * @param listener The callback function
628
702
  */
629
- on<K>(eventName: Key<K, T>, listener: Listener1<K, T>): this;
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;
630
711
  /**
631
712
  * Adds a **one-time** `listener` function for the event named `eventName`. The
632
713
  * next time `eventName` is triggered, this listener is removed and then invoked.
@@ -656,7 +737,14 @@ declare module "events" {
656
737
  * @param eventName The name of the event.
657
738
  * @param listener The callback function
658
739
  */
659
- once<K>(eventName: Key<K, T>, listener: Listener1<K, T>): this;
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;
660
748
  /**
661
749
  * Removes the specified `listener` from the listener array for the event named `eventName`.
662
750
  *
@@ -739,12 +827,26 @@ declare module "events" {
739
827
  * Returns a reference to the `EventEmitter`, so that calls can be chained.
740
828
  * @since v0.1.26
741
829
  */
742
- removeListener<K>(eventName: Key<K, T>, listener: Listener1<K, T>): this;
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;
743
838
  /**
744
839
  * Alias for `emitter.removeListener()`.
745
840
  * @since v10.0.0
746
841
  */
747
- off<K>(eventName: Key<K, T>, listener: Listener1<K, T>): this;
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;
748
850
  /**
749
851
  * Removes all listeners, or those of the specified `eventName`.
750
852
  *
@@ -755,7 +857,10 @@ declare module "events" {
755
857
  * Returns a reference to the `EventEmitter`, so that calls can be chained.
756
858
  * @since v0.1.26
757
859
  */
758
- removeAllListeners(eventName?: Key<unknown, T>): this;
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 */
759
864
  /**
760
865
  * By default `EventEmitter`s will print a warning if more than `10` listeners are
761
866
  * added for a particular event. This is a useful default that helps finding
@@ -784,7 +889,12 @@ declare module "events" {
784
889
  * ```
785
890
  * @since v0.1.26
786
891
  */
787
- listeners<K>(eventName: Key<K, T>): Array<Listener2<K, T>>;
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>>;
788
898
  /**
789
899
  * Returns a copy of the array of listeners for the event named `eventName`,
790
900
  * including any wrappers (such as those created by `.once()`).
@@ -815,7 +925,12 @@ declare module "events" {
815
925
  * ```
816
926
  * @since v9.4.0
817
927
  */
818
- rawListeners<K>(eventName: Key<K, T>): Array<Listener2<K, T>>;
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>>;
819
934
  /**
820
935
  * Synchronously calls each of the listeners registered for the event named `eventName`, in the order they were registered, passing the supplied arguments
821
936
  * to each.
@@ -856,7 +971,14 @@ declare module "events" {
856
971
  * ```
857
972
  * @since v0.1.26
858
973
  */
859
- emit<K>(eventName: Key<K, T>, ...args: Args<K, T>): boolean;
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;
860
982
  /**
861
983
  * Returns the number of listeners listening for the event named `eventName`.
862
984
  * If `listener` is provided, it will return how many times the listener is found
@@ -865,7 +987,14 @@ declare module "events" {
865
987
  * @param eventName The name of the event being listened for
866
988
  * @param listener The event handler function
867
989
  */
868
- listenerCount<K>(eventName: Key<K, T>, listener?: Listener2<K, T>): number;
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;
869
998
  /**
870
999
  * Adds the `listener` function to the _beginning_ of the listeners array for the
871
1000
  * event named `eventName`. No checks are made to see if the `listener` has
@@ -883,7 +1012,14 @@ declare module "events" {
883
1012
  * @param eventName The name of the event.
884
1013
  * @param listener The callback function
885
1014
  */
886
- prependListener<K>(eventName: Key<K, T>, listener: Listener1<K, T>): this;
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;
887
1023
  /**
888
1024
  * 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
889
1025
  * listener is removed, and then invoked.
@@ -899,7 +1035,14 @@ declare module "events" {
899
1035
  * @param eventName The name of the event.
900
1036
  * @param listener The callback function
901
1037
  */
902
- prependOnceListener<K>(eventName: Key<K, T>, listener: Listener1<K, T>): this;
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;
903
1046
  /**
904
1047
  * Returns an array listing the events for which the emitter has registered
905
1048
  * listeners. The values in the array are strings or `Symbol`s.
@@ -919,7 +1062,7 @@ declare module "events" {
919
1062
  * ```
920
1063
  * @since v6.0.0
921
1064
  */
922
- eventNames(): Array<(string | symbol) & Key2<unknown, T>>;
1065
+ eventNames(): Array<(string | symbol)> & Array<EventNames<Events>>;
923
1066
  }
924
1067
  }
925
1068
  }
node/fs/promises.d.ts CHANGED
@@ -238,6 +238,10 @@ declare module "fs/promises" {
238
238
  length?: number | null,
239
239
  position?: number | null,
240
240
  ): Promise<FileReadResult<T>>;
241
+ read<T extends NodeJS.ArrayBufferView = Buffer>(
242
+ buffer: T,
243
+ options?: FileReadOptions<T>,
244
+ ): Promise<FileReadResult<T>>;
241
245
  read<T extends NodeJS.ArrayBufferView = Buffer>(options?: FileReadOptions<T>): Promise<FileReadResult<T>>;
242
246
  /**
243
247
  * Returns a `ReadableStream` that may be used to read the files data.
@@ -429,6 +433,13 @@ declare module "fs/promises" {
429
433
  bytesWritten: number;
430
434
  buffer: TBuffer;
431
435
  }>;
436
+ write<TBuffer extends Uint8Array>(
437
+ buffer: TBuffer,
438
+ options?: { offset?: number; length?: number; position?: number },
439
+ ): Promise<{
440
+ bytesWritten: number;
441
+ buffer: TBuffer;
442
+ }>;
432
443
  write(
433
444
  data: string,
434
445
  position?: number | null,
node/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@types/node",
3
- "version": "22.8.3",
3
+ "version": "22.8.5",
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": "6b7a7784efb1c6113c415dfcf3e3245db72fc539a8db3355c58d6d06306606a2",
223
+ "typesPublisherContentHash": "7165aa45b80abb5ff9333ec6ca387d477f843670bbad567424c59b148b46fa23",
224
224
  "typeScriptVersion": "4.8"
225
225
  }