@types/node 18.19.52 → 18.19.54
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 v18.19/README.md +1 -1
- node v18.19/buffer.buffer.d.ts +385 -0
- node v18.19/buffer.d.ts +10 -384
- node v18.19/child_process.d.ts +35 -30
- node v18.19/cluster.d.ts +1 -1
- node v18.19/console.d.ts +2 -2
- node v18.19/crypto.d.ts +1 -1
- node v18.19/dns/promises.d.ts +6 -5
- node v18.19/dns.d.ts +5 -5
- node v18.19/domain.d.ts +2 -2
- node v18.19/events.d.ts +13 -13
- node v18.19/fs/promises.d.ts +2 -2
- node v18.19/fs.d.ts +1 -1
- node v18.19/globals.d.ts +0 -14
- node v18.19/globals.typedarray.d.ts +21 -0
- node v18.19/http.d.ts +4 -4
- node v18.19/http2.d.ts +24 -24
- node v18.19/https.d.ts +9 -9
- node v18.19/index.d.ts +5 -1
- node v18.19/inspector.d.ts +1 -1
- node v18.19/module.d.ts +3 -3
- node v18.19/net.d.ts +2 -2
- node v18.19/os.d.ts +1 -1
- node v18.19/package.json +9 -2
- node v18.19/path.d.ts +1 -1
- node v18.19/perf_hooks.d.ts +11 -11
- node v18.19/punycode.d.ts +1 -1
- node v18.19/querystring.d.ts +1 -1
- node v18.19/readline/promises.d.ts +1 -1
- node v18.19/readline.d.ts +18 -18
- node v18.19/repl.d.ts +4 -4
- node v18.19/stream.d.ts +21 -21
- node v18.19/string_decoder.d.ts +3 -3
- node v18.19/timers/promises.d.ts +1 -1
- node v18.19/timers.d.ts +1 -1
- node v18.19/tls.d.ts +5 -5
- node v18.19/trace_events.d.ts +3 -3
- node v18.19/ts5.6/buffer.buffer.d.ts +385 -0
- node v18.19/ts5.6/globals.typedarray.d.ts +19 -0
- node v18.19/ts5.6/index.d.ts +91 -0
- node v18.19/tty.d.ts +1 -1
- node v18.19/url.d.ts +7 -7
- node v18.19/util.d.ts +41 -41
- node v18.19/v8.d.ts +12 -12
- node v18.19/vm.d.ts +11 -12
- node v18.19/worker_threads.d.ts +22 -22
- node v18.19/zlib.d.ts +8 -8
node v18.19/stream.d.ts
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* To access the `stream` module:
|
|
10
10
|
*
|
|
11
11
|
* ```js
|
|
12
|
-
*
|
|
12
|
+
* import stream from 'node:stream';
|
|
13
13
|
* ```
|
|
14
14
|
*
|
|
15
15
|
* The `stream` module is useful for creating new types of stream instances. It is
|
|
@@ -326,7 +326,7 @@ declare module "stream" {
|
|
|
326
326
|
* the method does nothing.
|
|
327
327
|
*
|
|
328
328
|
* ```js
|
|
329
|
-
*
|
|
329
|
+
* import fs from 'node:fs';
|
|
330
330
|
* const readable = getReadableStreamSomehow();
|
|
331
331
|
* const writable = fs.createWriteStream('file.txt');
|
|
332
332
|
* // All the data from readable goes into 'file.txt',
|
|
@@ -364,7 +364,7 @@ declare module "stream" {
|
|
|
364
364
|
* // Pull off a header delimited by \n\n.
|
|
365
365
|
* // Use unshift() if we get too much.
|
|
366
366
|
* // Call the callback with (error, header, stream).
|
|
367
|
-
*
|
|
367
|
+
* import { StringDecoder } from 'node:string_decoder';
|
|
368
368
|
* function parseHeader(stream, callback) {
|
|
369
369
|
* stream.on('error', callback);
|
|
370
370
|
* stream.on('readable', onReadable);
|
|
@@ -422,8 +422,8 @@ declare module "stream" {
|
|
|
422
422
|
* libraries.
|
|
423
423
|
*
|
|
424
424
|
* ```js
|
|
425
|
-
*
|
|
426
|
-
*
|
|
425
|
+
* import { OldReader } from './old-api-module.js';
|
|
426
|
+
* import { Readable } from 'node:stream';
|
|
427
427
|
* const oreader = new OldReader();
|
|
428
428
|
* const myReader = new Readable().wrap(oreader);
|
|
429
429
|
*
|
|
@@ -865,7 +865,7 @@ declare module "stream" {
|
|
|
865
865
|
*
|
|
866
866
|
* ```js
|
|
867
867
|
* // Write 'hello, ' and then end with 'world!'.
|
|
868
|
-
*
|
|
868
|
+
* import fs from 'node:fs';
|
|
869
869
|
* const file = fs.createWriteStream('example.txt');
|
|
870
870
|
* file.write('hello, ');
|
|
871
871
|
* file.end('world!');
|
|
@@ -1261,7 +1261,7 @@ declare module "stream" {
|
|
|
1261
1261
|
* Calling `abort` on the `AbortController` corresponding to the passed`AbortSignal` will behave the same way as calling `.destroy(new AbortError())`on the stream.
|
|
1262
1262
|
*
|
|
1263
1263
|
* ```js
|
|
1264
|
-
*
|
|
1264
|
+
* import fs from 'node:fs';
|
|
1265
1265
|
*
|
|
1266
1266
|
* const controller = new AbortController();
|
|
1267
1267
|
* const read = addAbortSignal(
|
|
@@ -1324,7 +1324,7 @@ declare module "stream" {
|
|
|
1324
1324
|
* or has experienced an error or a premature close event.
|
|
1325
1325
|
*
|
|
1326
1326
|
* ```js
|
|
1327
|
-
*
|
|
1327
|
+
* import { finished } from 'node:stream';
|
|
1328
1328
|
*
|
|
1329
1329
|
* const rs = fs.createReadStream('archive.tar');
|
|
1330
1330
|
*
|
|
@@ -1345,7 +1345,7 @@ declare module "stream" {
|
|
|
1345
1345
|
* The `finished` API provides promise version:
|
|
1346
1346
|
*
|
|
1347
1347
|
* ```js
|
|
1348
|
-
*
|
|
1348
|
+
* import { finished } from 'node:stream/promises';
|
|
1349
1349
|
*
|
|
1350
1350
|
* const rs = fs.createReadStream('archive.tar');
|
|
1351
1351
|
*
|
|
@@ -1421,9 +1421,9 @@ declare module "stream" {
|
|
|
1421
1421
|
* properly cleaning up and provide a callback when the pipeline is complete.
|
|
1422
1422
|
*
|
|
1423
1423
|
* ```js
|
|
1424
|
-
*
|
|
1425
|
-
*
|
|
1426
|
-
*
|
|
1424
|
+
* import { pipeline } from 'node:stream';
|
|
1425
|
+
* import fs from 'node:fs';
|
|
1426
|
+
* import zlib from 'node:zlib';
|
|
1427
1427
|
*
|
|
1428
1428
|
* // Use the pipeline API to easily pipe a series of streams
|
|
1429
1429
|
* // together and get notified when the pipeline is fully done.
|
|
@@ -1449,7 +1449,7 @@ declare module "stream" {
|
|
|
1449
1449
|
* an`AbortError`.
|
|
1450
1450
|
*
|
|
1451
1451
|
* ```js
|
|
1452
|
-
*
|
|
1452
|
+
* import { pipeline } from 'node:stream/promises';
|
|
1453
1453
|
*
|
|
1454
1454
|
* async function run() {
|
|
1455
1455
|
* await pipeline(
|
|
@@ -1467,7 +1467,7 @@ declare module "stream" {
|
|
|
1467
1467
|
* as the last argument:
|
|
1468
1468
|
*
|
|
1469
1469
|
* ```js
|
|
1470
|
-
*
|
|
1470
|
+
* import { pipeline } from 'node:stream/promises';
|
|
1471
1471
|
*
|
|
1472
1472
|
* async function run() {
|
|
1473
1473
|
* const ac = new AbortController();
|
|
@@ -1488,8 +1488,8 @@ declare module "stream" {
|
|
|
1488
1488
|
* The `pipeline` API also supports async generators:
|
|
1489
1489
|
*
|
|
1490
1490
|
* ```js
|
|
1491
|
-
*
|
|
1492
|
-
*
|
|
1491
|
+
* import { pipeline } from 'node:stream/promises';
|
|
1492
|
+
* import fs from 'node:fs';
|
|
1493
1493
|
*
|
|
1494
1494
|
* async function run() {
|
|
1495
1495
|
* await pipeline(
|
|
@@ -1513,8 +1513,8 @@ declare module "stream" {
|
|
|
1513
1513
|
* pipeline (i.e. first argument) or the pipeline will never complete.
|
|
1514
1514
|
*
|
|
1515
1515
|
* ```js
|
|
1516
|
-
*
|
|
1517
|
-
*
|
|
1516
|
+
* import { pipeline } from 'node:stream/promises';
|
|
1517
|
+
* import fs from 'node:fs';
|
|
1518
1518
|
*
|
|
1519
1519
|
* async function run() {
|
|
1520
1520
|
* await pipeline(
|
|
@@ -1547,9 +1547,9 @@ declare module "stream" {
|
|
|
1547
1547
|
* See the example below:
|
|
1548
1548
|
*
|
|
1549
1549
|
* ```js
|
|
1550
|
-
*
|
|
1551
|
-
*
|
|
1552
|
-
*
|
|
1550
|
+
* import fs from 'node:fs';
|
|
1551
|
+
* import http from 'node:http';
|
|
1552
|
+
* import { pipeline } from 'node:stream';
|
|
1553
1553
|
*
|
|
1554
1554
|
* const server = http.createServer((req, res) => {
|
|
1555
1555
|
* const fileStream = fs.createReadStream('./fileNotExist.txt');
|
node v18.19/string_decoder.d.ts
CHANGED
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
* characters. It can be accessed using:
|
|
5
5
|
*
|
|
6
6
|
* ```js
|
|
7
|
-
*
|
|
7
|
+
* import { StringDecoder } from 'node:string_decoder';
|
|
8
8
|
* ```
|
|
9
9
|
*
|
|
10
10
|
* The following example shows the basic use of the `StringDecoder` class.
|
|
11
11
|
*
|
|
12
12
|
* ```js
|
|
13
|
-
*
|
|
13
|
+
* import { StringDecoder } from 'node:string_decoder';
|
|
14
14
|
* const decoder = new StringDecoder('utf8');
|
|
15
15
|
*
|
|
16
16
|
* const cent = Buffer.from([0xC2, 0xA2]);
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
* symbol (`€`) are written over three separate operations:
|
|
30
30
|
*
|
|
31
31
|
* ```js
|
|
32
|
-
*
|
|
32
|
+
* import { StringDecoder } from 'node:string_decoder';
|
|
33
33
|
* const decoder = new StringDecoder('utf8');
|
|
34
34
|
*
|
|
35
35
|
* decoder.write(Buffer.from([0xE2]));
|
node v18.19/timers/promises.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The `timers/promises` API provides an alternative set of timer functions
|
|
3
|
-
* that return `Promise` objects. The API is accessible via`
|
|
3
|
+
* that return `Promise` objects. The API is accessible via `import timersPromises from 'node:timers/promises'`.
|
|
4
4
|
*
|
|
5
5
|
* ```js
|
|
6
6
|
* import {
|
node v18.19/timers.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The `timer` module exposes a global API for scheduling functions to
|
|
3
3
|
* be called at some future period of time. Because the timer functions are
|
|
4
|
-
* globals, there is no need to
|
|
4
|
+
* globals, there is no need to import `node:timers` to use the API.
|
|
5
5
|
*
|
|
6
6
|
* The timer functions within Node.js implement a similar API as the timers API
|
|
7
7
|
* provided by Web Browsers but use a different internal implementation that is
|
node v18.19/tls.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* The module can be accessed using:
|
|
5
5
|
*
|
|
6
6
|
* ```js
|
|
7
|
-
*
|
|
7
|
+
* import tls from 'node:tls';
|
|
8
8
|
* ```
|
|
9
9
|
* @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/tls.js)
|
|
10
10
|
*/
|
|
@@ -1000,8 +1000,8 @@ declare module "tls" {
|
|
|
1000
1000
|
* The following illustrates a simple echo server:
|
|
1001
1001
|
*
|
|
1002
1002
|
* ```js
|
|
1003
|
-
*
|
|
1004
|
-
*
|
|
1003
|
+
* import tls from 'node:tls';
|
|
1004
|
+
* import fs from 'node:fs';
|
|
1005
1005
|
*
|
|
1006
1006
|
* const options = {
|
|
1007
1007
|
* key: fs.readFileSync('server-key.pem'),
|
|
@@ -1046,8 +1046,8 @@ declare module "tls" {
|
|
|
1046
1046
|
*
|
|
1047
1047
|
* ```js
|
|
1048
1048
|
* // Assumes an echo server that is listening on port 8000.
|
|
1049
|
-
*
|
|
1050
|
-
*
|
|
1049
|
+
* import tls from 'node:tls';
|
|
1050
|
+
* import fs from 'node:fs';
|
|
1051
1051
|
*
|
|
1052
1052
|
* const options = {
|
|
1053
1053
|
* // Necessary only if the server requires client certificate authentication.
|
node v18.19/trace_events.d.ts
CHANGED
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
* Alternatively, trace events may be enabled using the `trace_events` module:
|
|
47
47
|
*
|
|
48
48
|
* ```js
|
|
49
|
-
*
|
|
49
|
+
* import trace_events from 'node:trace_events';
|
|
50
50
|
* const tracing = trace_events.createTracing({ categories: ['node.perf'] });
|
|
51
51
|
* tracing.enable(); // Enable trace event capture for the 'node.perf' category
|
|
52
52
|
*
|
|
@@ -132,7 +132,7 @@ declare module "trace_events" {
|
|
|
132
132
|
* Creates and returns a `Tracing` object for the given set of `categories`.
|
|
133
133
|
*
|
|
134
134
|
* ```js
|
|
135
|
-
*
|
|
135
|
+
* import trace_events from 'node:trace_events';
|
|
136
136
|
* const categories = ['node.perf', 'node.async_hooks'];
|
|
137
137
|
* const tracing = trace_events.createTracing({ categories });
|
|
138
138
|
* tracing.enable();
|
|
@@ -152,7 +152,7 @@ declare module "trace_events" {
|
|
|
152
152
|
* Given the file `test.js` below, the command`node --trace-event-categories node.perf test.js` will print`'node.async_hooks,node.perf'` to the console.
|
|
153
153
|
*
|
|
154
154
|
* ```js
|
|
155
|
-
*
|
|
155
|
+
* import trace_events from 'node:trace_events';
|
|
156
156
|
* const t1 = trace_events.createTracing({ categories: ['node.async_hooks'] });
|
|
157
157
|
* const t2 = trace_events.createTracing({ categories: ['node.perf'] });
|
|
158
158
|
* const t3 = trace_events.createTracing({ categories: ['v8'] });
|
|
@@ -0,0 +1,385 @@
|
|
|
1
|
+
declare module "buffer" {
|
|
2
|
+
global {
|
|
3
|
+
interface BufferConstructor {
|
|
4
|
+
// see ../buffer.d.ts for implementation shared with all TypeScript versions
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Allocates a new buffer containing the given {str}.
|
|
8
|
+
*
|
|
9
|
+
* @param str String to store in buffer.
|
|
10
|
+
* @param encoding encoding to use, optional. Default is 'utf8'
|
|
11
|
+
* @deprecated since v10.0.0 - Use `Buffer.from(string[, encoding])` instead.
|
|
12
|
+
*/
|
|
13
|
+
new(str: string, encoding?: BufferEncoding): Buffer;
|
|
14
|
+
/**
|
|
15
|
+
* Allocates a new buffer of {size} octets.
|
|
16
|
+
*
|
|
17
|
+
* @param size count of octets to allocate.
|
|
18
|
+
* @deprecated since v10.0.0 - Use `Buffer.alloc()` instead (also see `Buffer.allocUnsafe()`).
|
|
19
|
+
*/
|
|
20
|
+
new(size: number): Buffer;
|
|
21
|
+
/**
|
|
22
|
+
* Allocates a new buffer containing the given {array} of octets.
|
|
23
|
+
*
|
|
24
|
+
* @param array The octets to store.
|
|
25
|
+
* @deprecated since v10.0.0 - Use `Buffer.from(array)` instead.
|
|
26
|
+
*/
|
|
27
|
+
new(array: Uint8Array): Buffer;
|
|
28
|
+
/**
|
|
29
|
+
* Produces a Buffer backed by the same allocated memory as
|
|
30
|
+
* the given {ArrayBuffer}/{SharedArrayBuffer}.
|
|
31
|
+
*
|
|
32
|
+
* @param arrayBuffer The ArrayBuffer with which to share memory.
|
|
33
|
+
* @deprecated since v10.0.0 - Use `Buffer.from(arrayBuffer[, byteOffset[, length]])` instead.
|
|
34
|
+
*/
|
|
35
|
+
new(arrayBuffer: ArrayBuffer | SharedArrayBuffer): Buffer;
|
|
36
|
+
/**
|
|
37
|
+
* Allocates a new buffer containing the given {array} of octets.
|
|
38
|
+
*
|
|
39
|
+
* @param array The octets to store.
|
|
40
|
+
* @deprecated since v10.0.0 - Use `Buffer.from(array)` instead.
|
|
41
|
+
*/
|
|
42
|
+
new(array: readonly any[]): Buffer;
|
|
43
|
+
/**
|
|
44
|
+
* Copies the passed {buffer} data onto a new {Buffer} instance.
|
|
45
|
+
*
|
|
46
|
+
* @param buffer The buffer to copy.
|
|
47
|
+
* @deprecated since v10.0.0 - Use `Buffer.from(buffer)` instead.
|
|
48
|
+
*/
|
|
49
|
+
new(buffer: Buffer): Buffer;
|
|
50
|
+
/**
|
|
51
|
+
* Allocates a new `Buffer` using an `array` of bytes in the range `0` – `255`.
|
|
52
|
+
* Array entries outside that range will be truncated to fit into it.
|
|
53
|
+
*
|
|
54
|
+
* ```js
|
|
55
|
+
* import { Buffer } from 'node:buffer';
|
|
56
|
+
*
|
|
57
|
+
* // Creates a new Buffer containing the UTF-8 bytes of the string 'buffer'.
|
|
58
|
+
* const buf = Buffer.from([0x62, 0x75, 0x66, 0x66, 0x65, 0x72]);
|
|
59
|
+
* ```
|
|
60
|
+
*
|
|
61
|
+
* If `array` is an `Array`\-like object (that is, one with a `length` property of
|
|
62
|
+
* type `number`), it is treated as if it is an array, unless it is a `Buffer` or
|
|
63
|
+
* a `Uint8Array`. This means all other `TypedArray` variants get treated as an`Array`. To create a `Buffer` from the bytes backing a `TypedArray`, use `Buffer.copyBytesFrom()`.
|
|
64
|
+
*
|
|
65
|
+
* A `TypeError` will be thrown if `array` is not an `Array` or another type
|
|
66
|
+
* appropriate for `Buffer.from()` variants.
|
|
67
|
+
*
|
|
68
|
+
* `Buffer.from(array)` and `Buffer.from(string)` may also use the internal`Buffer` pool like `Buffer.allocUnsafe()` does.
|
|
69
|
+
* @since v5.10.0
|
|
70
|
+
*/
|
|
71
|
+
from(
|
|
72
|
+
arrayBuffer: WithImplicitCoercion<ArrayBuffer | SharedArrayBuffer>,
|
|
73
|
+
byteOffset?: number,
|
|
74
|
+
length?: number,
|
|
75
|
+
): Buffer;
|
|
76
|
+
/**
|
|
77
|
+
* Creates a new Buffer using the passed {data}
|
|
78
|
+
* @param data data to create a new Buffer
|
|
79
|
+
*/
|
|
80
|
+
from(data: Uint8Array | readonly number[]): Buffer;
|
|
81
|
+
from(data: WithImplicitCoercion<Uint8Array | readonly number[] | string>): Buffer;
|
|
82
|
+
/**
|
|
83
|
+
* Creates a new Buffer containing the given JavaScript string {str}.
|
|
84
|
+
* If provided, the {encoding} parameter identifies the character encoding.
|
|
85
|
+
* If not provided, {encoding} defaults to 'utf8'.
|
|
86
|
+
*/
|
|
87
|
+
from(
|
|
88
|
+
str:
|
|
89
|
+
| WithImplicitCoercion<string>
|
|
90
|
+
| {
|
|
91
|
+
[Symbol.toPrimitive](hint: "string"): string;
|
|
92
|
+
},
|
|
93
|
+
encoding?: BufferEncoding,
|
|
94
|
+
): Buffer;
|
|
95
|
+
/**
|
|
96
|
+
* Creates a new Buffer using the passed {data}
|
|
97
|
+
* @param values to create a new Buffer
|
|
98
|
+
*/
|
|
99
|
+
of(...items: number[]): Buffer;
|
|
100
|
+
/**
|
|
101
|
+
* Returns a new `Buffer` which is the result of concatenating all the `Buffer` instances in the `list` together.
|
|
102
|
+
*
|
|
103
|
+
* If the list has no items, or if the `totalLength` is 0, then a new zero-length `Buffer` is returned.
|
|
104
|
+
*
|
|
105
|
+
* If `totalLength` is not provided, it is calculated from the `Buffer` instances
|
|
106
|
+
* in `list` by adding their lengths.
|
|
107
|
+
*
|
|
108
|
+
* If `totalLength` is provided, it is coerced to an unsigned integer. If the
|
|
109
|
+
* combined length of the `Buffer`s in `list` exceeds `totalLength`, the result is
|
|
110
|
+
* truncated to `totalLength`.
|
|
111
|
+
*
|
|
112
|
+
* ```js
|
|
113
|
+
* import { Buffer } from 'node:buffer';
|
|
114
|
+
*
|
|
115
|
+
* // Create a single `Buffer` from a list of three `Buffer` instances.
|
|
116
|
+
*
|
|
117
|
+
* const buf1 = Buffer.alloc(10);
|
|
118
|
+
* const buf2 = Buffer.alloc(14);
|
|
119
|
+
* const buf3 = Buffer.alloc(18);
|
|
120
|
+
* const totalLength = buf1.length + buf2.length + buf3.length;
|
|
121
|
+
*
|
|
122
|
+
* console.log(totalLength);
|
|
123
|
+
* // Prints: 42
|
|
124
|
+
*
|
|
125
|
+
* const bufA = Buffer.concat([buf1, buf2, buf3], totalLength);
|
|
126
|
+
*
|
|
127
|
+
* console.log(bufA);
|
|
128
|
+
* // Prints: <Buffer 00 00 00 00 ...>
|
|
129
|
+
* console.log(bufA.length);
|
|
130
|
+
* // Prints: 42
|
|
131
|
+
* ```
|
|
132
|
+
*
|
|
133
|
+
* `Buffer.concat()` may also use the internal `Buffer` pool like `Buffer.allocUnsafe()` does.
|
|
134
|
+
* @since v0.7.11
|
|
135
|
+
* @param list List of `Buffer` or {@link Uint8Array} instances to concatenate.
|
|
136
|
+
* @param totalLength Total length of the `Buffer` instances in `list` when concatenated.
|
|
137
|
+
*/
|
|
138
|
+
concat(list: readonly Uint8Array[], totalLength?: number): Buffer;
|
|
139
|
+
/**
|
|
140
|
+
* Copies the underlying memory of `view` into a new `Buffer`.
|
|
141
|
+
*
|
|
142
|
+
* ```js
|
|
143
|
+
* const u16 = new Uint16Array([0, 0xffff]);
|
|
144
|
+
* const buf = Buffer.copyBytesFrom(u16, 1, 1);
|
|
145
|
+
* u16[1] = 0;
|
|
146
|
+
* console.log(buf.length); // 2
|
|
147
|
+
* console.log(buf[0]); // 255
|
|
148
|
+
* console.log(buf[1]); // 255
|
|
149
|
+
* ```
|
|
150
|
+
* @since v18.16.0
|
|
151
|
+
* @param view The {TypedArray} to copy.
|
|
152
|
+
* @param [offset=0] The starting offset within `view`.
|
|
153
|
+
* @param [length=view.length - offset] The number of elements from `view` to copy.
|
|
154
|
+
*/
|
|
155
|
+
copyBytesFrom(view: NodeJS.TypedArray, offset?: number, length?: number): Buffer;
|
|
156
|
+
/**
|
|
157
|
+
* Allocates a new `Buffer` of `size` bytes. If `fill` is `undefined`, the`Buffer` will be zero-filled.
|
|
158
|
+
*
|
|
159
|
+
* ```js
|
|
160
|
+
* import { Buffer } from 'node:buffer';
|
|
161
|
+
*
|
|
162
|
+
* const buf = Buffer.alloc(5);
|
|
163
|
+
*
|
|
164
|
+
* console.log(buf);
|
|
165
|
+
* // Prints: <Buffer 00 00 00 00 00>
|
|
166
|
+
* ```
|
|
167
|
+
*
|
|
168
|
+
* If `size` is larger than {@link constants.MAX_LENGTH} or smaller than 0, `ERR_OUT_OF_RANGE` is thrown.
|
|
169
|
+
*
|
|
170
|
+
* If `fill` is specified, the allocated `Buffer` will be initialized by calling `buf.fill(fill)`.
|
|
171
|
+
*
|
|
172
|
+
* ```js
|
|
173
|
+
* import { Buffer } from 'node:buffer';
|
|
174
|
+
*
|
|
175
|
+
* const buf = Buffer.alloc(5, 'a');
|
|
176
|
+
*
|
|
177
|
+
* console.log(buf);
|
|
178
|
+
* // Prints: <Buffer 61 61 61 61 61>
|
|
179
|
+
* ```
|
|
180
|
+
*
|
|
181
|
+
* If both `fill` and `encoding` are specified, the allocated `Buffer` will be
|
|
182
|
+
* initialized by calling `buf.fill(fill, encoding)`.
|
|
183
|
+
*
|
|
184
|
+
* ```js
|
|
185
|
+
* import { Buffer } from 'node:buffer';
|
|
186
|
+
*
|
|
187
|
+
* const buf = Buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64');
|
|
188
|
+
*
|
|
189
|
+
* console.log(buf);
|
|
190
|
+
* // Prints: <Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64>
|
|
191
|
+
* ```
|
|
192
|
+
*
|
|
193
|
+
* Calling `Buffer.alloc()` can be measurably slower than the alternative `Buffer.allocUnsafe()` but ensures that the newly created `Buffer` instance
|
|
194
|
+
* contents will never contain sensitive data from previous allocations, including
|
|
195
|
+
* data that might not have been allocated for `Buffer`s.
|
|
196
|
+
*
|
|
197
|
+
* A `TypeError` will be thrown if `size` is not a number.
|
|
198
|
+
* @since v5.10.0
|
|
199
|
+
* @param size The desired length of the new `Buffer`.
|
|
200
|
+
* @param [fill=0] A value to pre-fill the new `Buffer` with.
|
|
201
|
+
* @param [encoding='utf8'] If `fill` is a string, this is its encoding.
|
|
202
|
+
*/
|
|
203
|
+
alloc(size: number, fill?: string | Uint8Array | number, encoding?: BufferEncoding): Buffer;
|
|
204
|
+
/**
|
|
205
|
+
* Allocates a new `Buffer` of `size` bytes. If `size` is larger than {@link constants.MAX_LENGTH} or smaller than 0, `ERR_OUT_OF_RANGE` is thrown.
|
|
206
|
+
*
|
|
207
|
+
* The underlying memory for `Buffer` instances created in this way is _not_
|
|
208
|
+
* _initialized_. The contents of the newly created `Buffer` are unknown and _may contain sensitive data_. Use `Buffer.alloc()` instead to initialize`Buffer` instances with zeroes.
|
|
209
|
+
*
|
|
210
|
+
* ```js
|
|
211
|
+
* import { Buffer } from 'node:buffer';
|
|
212
|
+
*
|
|
213
|
+
* const buf = Buffer.allocUnsafe(10);
|
|
214
|
+
*
|
|
215
|
+
* console.log(buf);
|
|
216
|
+
* // Prints (contents may vary): <Buffer a0 8b 28 3f 01 00 00 00 50 32>
|
|
217
|
+
*
|
|
218
|
+
* buf.fill(0);
|
|
219
|
+
*
|
|
220
|
+
* console.log(buf);
|
|
221
|
+
* // Prints: <Buffer 00 00 00 00 00 00 00 00 00 00>
|
|
222
|
+
* ```
|
|
223
|
+
*
|
|
224
|
+
* A `TypeError` will be thrown if `size` is not a number.
|
|
225
|
+
*
|
|
226
|
+
* The `Buffer` module pre-allocates an internal `Buffer` instance of
|
|
227
|
+
* size `Buffer.poolSize` that is used as a pool for the fast allocation of new `Buffer` instances created using `Buffer.allocUnsafe()`, `Buffer.from(array)`,
|
|
228
|
+
* and `Buffer.concat()` only when `size` is less than `Buffer.poolSize >> 1` (floor of `Buffer.poolSize` divided by two).
|
|
229
|
+
*
|
|
230
|
+
* Use of this pre-allocated internal memory pool is a key difference between
|
|
231
|
+
* calling `Buffer.alloc(size, fill)` vs. `Buffer.allocUnsafe(size).fill(fill)`.
|
|
232
|
+
* Specifically, `Buffer.alloc(size, fill)` will _never_ use the internal `Buffer`pool, while `Buffer.allocUnsafe(size).fill(fill)`_will_ use the internal`Buffer` pool if `size` is less
|
|
233
|
+
* than or equal to half `Buffer.poolSize`. The
|
|
234
|
+
* difference is subtle but can be important when an application requires the
|
|
235
|
+
* additional performance that `Buffer.allocUnsafe()` provides.
|
|
236
|
+
* @since v5.10.0
|
|
237
|
+
* @param size The desired length of the new `Buffer`.
|
|
238
|
+
*/
|
|
239
|
+
allocUnsafe(size: number): Buffer;
|
|
240
|
+
/**
|
|
241
|
+
* Allocates a new `Buffer` of `size` bytes. If `size` is larger than {@link constants.MAX_LENGTH} or smaller than 0, `ERR_OUT_OF_RANGE` is thrown. A zero-length `Buffer` is created if
|
|
242
|
+
* `size` is 0.
|
|
243
|
+
*
|
|
244
|
+
* The underlying memory for `Buffer` instances created in this way is _not_
|
|
245
|
+
* _initialized_. The contents of the newly created `Buffer` are unknown and _may contain sensitive data_. Use `buf.fill(0)` to initialize
|
|
246
|
+
* such `Buffer` instances with zeroes.
|
|
247
|
+
*
|
|
248
|
+
* When using `Buffer.allocUnsafe()` to allocate new `Buffer` instances,
|
|
249
|
+
* allocations under 4 KiB are sliced from a single pre-allocated `Buffer`. This
|
|
250
|
+
* allows applications to avoid the garbage collection overhead of creating many
|
|
251
|
+
* individually allocated `Buffer` instances. This approach improves both
|
|
252
|
+
* performance and memory usage by eliminating the need to track and clean up as
|
|
253
|
+
* many individual `ArrayBuffer` objects.
|
|
254
|
+
*
|
|
255
|
+
* However, in the case where a developer may need to retain a small chunk of
|
|
256
|
+
* memory from a pool for an indeterminate amount of time, it may be appropriate
|
|
257
|
+
* to create an un-pooled `Buffer` instance using `Buffer.allocUnsafeSlow()` and
|
|
258
|
+
* then copying out the relevant bits.
|
|
259
|
+
*
|
|
260
|
+
* ```js
|
|
261
|
+
* import { Buffer } from 'node:buffer';
|
|
262
|
+
*
|
|
263
|
+
* // Need to keep around a few small chunks of memory.
|
|
264
|
+
* const store = [];
|
|
265
|
+
*
|
|
266
|
+
* socket.on('readable', () => {
|
|
267
|
+
* let data;
|
|
268
|
+
* while (null !== (data = readable.read())) {
|
|
269
|
+
* // Allocate for retained data.
|
|
270
|
+
* const sb = Buffer.allocUnsafeSlow(10);
|
|
271
|
+
*
|
|
272
|
+
* // Copy the data into the new allocation.
|
|
273
|
+
* data.copy(sb, 0, 0, 10);
|
|
274
|
+
*
|
|
275
|
+
* store.push(sb);
|
|
276
|
+
* }
|
|
277
|
+
* });
|
|
278
|
+
* ```
|
|
279
|
+
*
|
|
280
|
+
* A `TypeError` will be thrown if `size` is not a number.
|
|
281
|
+
* @since v5.12.0
|
|
282
|
+
* @param size The desired length of the new `Buffer`.
|
|
283
|
+
*/
|
|
284
|
+
allocUnsafeSlow(size: number): Buffer;
|
|
285
|
+
}
|
|
286
|
+
interface Buffer extends Uint8Array {
|
|
287
|
+
// see ../buffer.d.ts for implementation shared with all TypeScript versions
|
|
288
|
+
|
|
289
|
+
/**
|
|
290
|
+
* Returns a new `Buffer` that references the same memory as the original, but
|
|
291
|
+
* offset and cropped by the `start` and `end` indices.
|
|
292
|
+
*
|
|
293
|
+
* This method is not compatible with the `Uint8Array.prototype.slice()`,
|
|
294
|
+
* which is a superclass of `Buffer`. To copy the slice, use`Uint8Array.prototype.slice()`.
|
|
295
|
+
*
|
|
296
|
+
* ```js
|
|
297
|
+
* import { Buffer } from 'node:buffer';
|
|
298
|
+
*
|
|
299
|
+
* const buf = Buffer.from('buffer');
|
|
300
|
+
*
|
|
301
|
+
* const copiedBuf = Uint8Array.prototype.slice.call(buf);
|
|
302
|
+
* copiedBuf[0]++;
|
|
303
|
+
* console.log(copiedBuf.toString());
|
|
304
|
+
* // Prints: cuffer
|
|
305
|
+
*
|
|
306
|
+
* console.log(buf.toString());
|
|
307
|
+
* // Prints: buffer
|
|
308
|
+
*
|
|
309
|
+
* // With buf.slice(), the original buffer is modified.
|
|
310
|
+
* const notReallyCopiedBuf = buf.slice();
|
|
311
|
+
* notReallyCopiedBuf[0]++;
|
|
312
|
+
* console.log(notReallyCopiedBuf.toString());
|
|
313
|
+
* // Prints: cuffer
|
|
314
|
+
* console.log(buf.toString());
|
|
315
|
+
* // Also prints: cuffer (!)
|
|
316
|
+
* ```
|
|
317
|
+
* @since v0.3.0
|
|
318
|
+
* @deprecated Use `subarray` instead.
|
|
319
|
+
* @param [start=0] Where the new `Buffer` will start.
|
|
320
|
+
* @param [end=buf.length] Where the new `Buffer` will end (not inclusive).
|
|
321
|
+
*/
|
|
322
|
+
slice(start?: number, end?: number): Buffer;
|
|
323
|
+
/**
|
|
324
|
+
* Returns a new `Buffer` that references the same memory as the original, but
|
|
325
|
+
* offset and cropped by the `start` and `end` indices.
|
|
326
|
+
*
|
|
327
|
+
* Specifying `end` greater than `buf.length` will return the same result as
|
|
328
|
+
* that of `end` equal to `buf.length`.
|
|
329
|
+
*
|
|
330
|
+
* This method is inherited from [`TypedArray.prototype.subarray()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/subarray).
|
|
331
|
+
*
|
|
332
|
+
* Modifying the new `Buffer` slice will modify the memory in the original `Buffer`because the allocated memory of the two objects overlap.
|
|
333
|
+
*
|
|
334
|
+
* ```js
|
|
335
|
+
* import { Buffer } from 'node:buffer';
|
|
336
|
+
*
|
|
337
|
+
* // Create a `Buffer` with the ASCII alphabet, take a slice, and modify one byte
|
|
338
|
+
* // from the original `Buffer`.
|
|
339
|
+
*
|
|
340
|
+
* const buf1 = Buffer.allocUnsafe(26);
|
|
341
|
+
*
|
|
342
|
+
* for (let i = 0; i < 26; i++) {
|
|
343
|
+
* // 97 is the decimal ASCII value for 'a'.
|
|
344
|
+
* buf1[i] = i + 97;
|
|
345
|
+
* }
|
|
346
|
+
*
|
|
347
|
+
* const buf2 = buf1.subarray(0, 3);
|
|
348
|
+
*
|
|
349
|
+
* console.log(buf2.toString('ascii', 0, buf2.length));
|
|
350
|
+
* // Prints: abc
|
|
351
|
+
*
|
|
352
|
+
* buf1[0] = 33;
|
|
353
|
+
*
|
|
354
|
+
* console.log(buf2.toString('ascii', 0, buf2.length));
|
|
355
|
+
* // Prints: !bc
|
|
356
|
+
* ```
|
|
357
|
+
*
|
|
358
|
+
* Specifying negative indexes causes the slice to be generated relative to the
|
|
359
|
+
* end of `buf` rather than the beginning.
|
|
360
|
+
*
|
|
361
|
+
* ```js
|
|
362
|
+
* import { Buffer } from 'node:buffer';
|
|
363
|
+
*
|
|
364
|
+
* const buf = Buffer.from('buffer');
|
|
365
|
+
*
|
|
366
|
+
* console.log(buf.subarray(-6, -1).toString());
|
|
367
|
+
* // Prints: buffe
|
|
368
|
+
* // (Equivalent to buf.subarray(0, 5).)
|
|
369
|
+
*
|
|
370
|
+
* console.log(buf.subarray(-6, -2).toString());
|
|
371
|
+
* // Prints: buff
|
|
372
|
+
* // (Equivalent to buf.subarray(0, 4).)
|
|
373
|
+
*
|
|
374
|
+
* console.log(buf.subarray(-5, -2).toString());
|
|
375
|
+
* // Prints: uff
|
|
376
|
+
* // (Equivalent to buf.subarray(1, 4).)
|
|
377
|
+
* ```
|
|
378
|
+
* @since v3.0.0
|
|
379
|
+
* @param [start=0] Where the new `Buffer` will start.
|
|
380
|
+
* @param [end=buf.length] Where the new `Buffer` will end (not inclusive).
|
|
381
|
+
*/
|
|
382
|
+
subarray(start?: number, end?: number): Buffer;
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export {}; // Make this a module
|
|
2
|
+
|
|
3
|
+
declare global {
|
|
4
|
+
namespace NodeJS {
|
|
5
|
+
type TypedArray =
|
|
6
|
+
| Uint8Array
|
|
7
|
+
| Uint8ClampedArray
|
|
8
|
+
| Uint16Array
|
|
9
|
+
| Uint32Array
|
|
10
|
+
| Int8Array
|
|
11
|
+
| Int16Array
|
|
12
|
+
| Int32Array
|
|
13
|
+
| BigUint64Array
|
|
14
|
+
| BigInt64Array
|
|
15
|
+
| Float32Array
|
|
16
|
+
| Float64Array;
|
|
17
|
+
type ArrayBufferView = TypedArray | DataView;
|
|
18
|
+
}
|
|
19
|
+
}
|