mcpbrowser 0.2.1 → 0.2.2

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.
Files changed (134) hide show
  1. package/.mcpregistry_github_token +1 -0
  2. package/.mcpregistry_registry_token +1 -0
  3. package/README.md +50 -52
  4. package/extension/.vscodeignore +6 -0
  5. package/extension/LICENSE +21 -0
  6. package/extension/README.md +61 -0
  7. package/extension/icon.png +0 -0
  8. package/extension/icon.svg +35 -0
  9. package/extension/mcpbrowser-0.1.1.vsix +0 -0
  10. package/extension/mcpbrowser-0.1.2.vsix +0 -0
  11. package/extension/mcpbrowser-0.1.3.vsix +0 -0
  12. package/extension/mcpbrowser-0.1.4.vsix +0 -0
  13. package/extension/mcpbrowser-config-0.1.0.vsix +0 -0
  14. package/extension/node_modules/.package-lock.json +32 -0
  15. package/extension/node_modules/@types/node/LICENSE +21 -0
  16. package/extension/node_modules/@types/node/README.md +15 -0
  17. package/extension/node_modules/@types/node/assert/strict.d.ts +8 -0
  18. package/extension/node_modules/@types/node/assert.d.ts +1062 -0
  19. package/extension/node_modules/@types/node/async_hooks.d.ts +605 -0
  20. package/extension/node_modules/@types/node/buffer.buffer.d.ts +471 -0
  21. package/extension/node_modules/@types/node/buffer.d.ts +1936 -0
  22. package/extension/node_modules/@types/node/child_process.d.ts +1475 -0
  23. package/extension/node_modules/@types/node/cluster.d.ts +577 -0
  24. package/extension/node_modules/@types/node/compatibility/disposable.d.ts +16 -0
  25. package/extension/node_modules/@types/node/compatibility/index.d.ts +9 -0
  26. package/extension/node_modules/@types/node/compatibility/indexable.d.ts +20 -0
  27. package/extension/node_modules/@types/node/compatibility/iterators.d.ts +21 -0
  28. package/extension/node_modules/@types/node/console.d.ts +452 -0
  29. package/extension/node_modules/@types/node/constants.d.ts +21 -0
  30. package/extension/node_modules/@types/node/crypto.d.ts +4590 -0
  31. package/extension/node_modules/@types/node/dgram.d.ts +597 -0
  32. package/extension/node_modules/@types/node/diagnostics_channel.d.ts +578 -0
  33. package/extension/node_modules/@types/node/dns/promises.d.ts +479 -0
  34. package/extension/node_modules/@types/node/dns.d.ts +871 -0
  35. package/extension/node_modules/@types/node/domain.d.ts +170 -0
  36. package/extension/node_modules/@types/node/events.d.ts +977 -0
  37. package/extension/node_modules/@types/node/fs/promises.d.ts +1270 -0
  38. package/extension/node_modules/@types/node/fs.d.ts +4375 -0
  39. package/extension/node_modules/@types/node/globals.d.ts +172 -0
  40. package/extension/node_modules/@types/node/globals.typedarray.d.ts +38 -0
  41. package/extension/node_modules/@types/node/http.d.ts +2049 -0
  42. package/extension/node_modules/@types/node/http2.d.ts +2631 -0
  43. package/extension/node_modules/@types/node/https.d.ts +578 -0
  44. package/extension/node_modules/@types/node/index.d.ts +93 -0
  45. package/extension/node_modules/@types/node/inspector.generated.d.ts +3966 -0
  46. package/extension/node_modules/@types/node/module.d.ts +539 -0
  47. package/extension/node_modules/@types/node/net.d.ts +1012 -0
  48. package/extension/node_modules/@types/node/os.d.ts +506 -0
  49. package/extension/node_modules/@types/node/package.json +140 -0
  50. package/extension/node_modules/@types/node/path.d.ts +200 -0
  51. package/extension/node_modules/@types/node/perf_hooks.d.ts +961 -0
  52. package/extension/node_modules/@types/node/process.d.ts +1957 -0
  53. package/extension/node_modules/@types/node/punycode.d.ts +117 -0
  54. package/extension/node_modules/@types/node/querystring.d.ts +152 -0
  55. package/extension/node_modules/@types/node/readline/promises.d.ts +162 -0
  56. package/extension/node_modules/@types/node/readline.d.ts +589 -0
  57. package/extension/node_modules/@types/node/repl.d.ts +430 -0
  58. package/extension/node_modules/@types/node/sea.d.ts +153 -0
  59. package/extension/node_modules/@types/node/stream/consumers.d.ts +38 -0
  60. package/extension/node_modules/@types/node/stream/promises.d.ts +90 -0
  61. package/extension/node_modules/@types/node/stream/web.d.ts +533 -0
  62. package/extension/node_modules/@types/node/stream.d.ts +1675 -0
  63. package/extension/node_modules/@types/node/string_decoder.d.ts +67 -0
  64. package/extension/node_modules/@types/node/test.d.ts +1787 -0
  65. package/extension/node_modules/@types/node/timers/promises.d.ts +108 -0
  66. package/extension/node_modules/@types/node/timers.d.ts +286 -0
  67. package/extension/node_modules/@types/node/tls.d.ts +1255 -0
  68. package/extension/node_modules/@types/node/trace_events.d.ts +197 -0
  69. package/extension/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +468 -0
  70. package/extension/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +34 -0
  71. package/extension/node_modules/@types/node/ts5.6/index.d.ts +93 -0
  72. package/extension/node_modules/@types/node/tty.d.ts +208 -0
  73. package/extension/node_modules/@types/node/url.d.ts +964 -0
  74. package/extension/node_modules/@types/node/util.d.ts +2331 -0
  75. package/extension/node_modules/@types/node/v8.d.ts +809 -0
  76. package/extension/node_modules/@types/node/vm.d.ts +1001 -0
  77. package/extension/node_modules/@types/node/wasi.d.ts +181 -0
  78. package/extension/node_modules/@types/node/web-globals/abortcontroller.d.ts +34 -0
  79. package/extension/node_modules/@types/node/web-globals/domexception.d.ts +68 -0
  80. package/extension/node_modules/@types/node/web-globals/events.d.ts +97 -0
  81. package/extension/node_modules/@types/node/web-globals/fetch.d.ts +46 -0
  82. package/extension/node_modules/@types/node/worker_threads.d.ts +715 -0
  83. package/extension/node_modules/@types/node/zlib.d.ts +540 -0
  84. package/extension/node_modules/@types/vscode/LICENSE +21 -0
  85. package/extension/node_modules/@types/vscode/README.md +15 -0
  86. package/extension/node_modules/@types/vscode/index.d.ts +21153 -0
  87. package/extension/node_modules/@types/vscode/package.json +26 -0
  88. package/extension/node_modules/undici-types/LICENSE +21 -0
  89. package/extension/node_modules/undici-types/README.md +6 -0
  90. package/extension/node_modules/undici-types/agent.d.ts +31 -0
  91. package/extension/node_modules/undici-types/api.d.ts +43 -0
  92. package/extension/node_modules/undici-types/balanced-pool.d.ts +29 -0
  93. package/extension/node_modules/undici-types/cache.d.ts +36 -0
  94. package/extension/node_modules/undici-types/client.d.ts +108 -0
  95. package/extension/node_modules/undici-types/connector.d.ts +34 -0
  96. package/extension/node_modules/undici-types/content-type.d.ts +21 -0
  97. package/extension/node_modules/undici-types/cookies.d.ts +28 -0
  98. package/extension/node_modules/undici-types/diagnostics-channel.d.ts +66 -0
  99. package/extension/node_modules/undici-types/dispatcher.d.ts +256 -0
  100. package/extension/node_modules/undici-types/env-http-proxy-agent.d.ts +21 -0
  101. package/extension/node_modules/undici-types/errors.d.ts +149 -0
  102. package/extension/node_modules/undici-types/eventsource.d.ts +61 -0
  103. package/extension/node_modules/undici-types/fetch.d.ts +209 -0
  104. package/extension/node_modules/undici-types/file.d.ts +39 -0
  105. package/extension/node_modules/undici-types/filereader.d.ts +54 -0
  106. package/extension/node_modules/undici-types/formdata.d.ts +108 -0
  107. package/extension/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  108. package/extension/node_modules/undici-types/global-origin.d.ts +7 -0
  109. package/extension/node_modules/undici-types/handlers.d.ts +15 -0
  110. package/extension/node_modules/undici-types/header.d.ts +4 -0
  111. package/extension/node_modules/undici-types/index.d.ts +71 -0
  112. package/extension/node_modules/undici-types/interceptors.d.ts +17 -0
  113. package/extension/node_modules/undici-types/mock-agent.d.ts +50 -0
  114. package/extension/node_modules/undici-types/mock-client.d.ts +25 -0
  115. package/extension/node_modules/undici-types/mock-errors.d.ts +12 -0
  116. package/extension/node_modules/undici-types/mock-interceptor.d.ts +93 -0
  117. package/extension/node_modules/undici-types/mock-pool.d.ts +25 -0
  118. package/extension/node_modules/undici-types/package.json +55 -0
  119. package/extension/node_modules/undici-types/patch.d.ts +33 -0
  120. package/extension/node_modules/undici-types/pool-stats.d.ts +19 -0
  121. package/extension/node_modules/undici-types/pool.d.ts +39 -0
  122. package/extension/node_modules/undici-types/proxy-agent.d.ts +28 -0
  123. package/extension/node_modules/undici-types/readable.d.ts +65 -0
  124. package/extension/node_modules/undici-types/retry-agent.d.ts +8 -0
  125. package/extension/node_modules/undici-types/retry-handler.d.ts +116 -0
  126. package/extension/node_modules/undici-types/util.d.ts +18 -0
  127. package/extension/node_modules/undici-types/webidl.d.ts +228 -0
  128. package/extension/node_modules/undici-types/websocket.d.ts +150 -0
  129. package/extension/package-lock.json +44 -0
  130. package/extension/package.json +55 -0
  131. package/extension/src/extension.js +257 -0
  132. package/package.json +1 -1
  133. package/server.json +3 -3
  134. package/src/mcp-browser.js +1 -1
@@ -0,0 +1,197 @@
1
+ /**
2
+ * The `node:trace_events` module provides a mechanism to centralize tracing information
3
+ * generated by V8, Node.js core, and userspace code.
4
+ *
5
+ * Tracing can be enabled with the `--trace-event-categories` command-line flag
6
+ * or by using the `trace_events` module. The `--trace-event-categories` flag
7
+ * accepts a list of comma-separated category names.
8
+ *
9
+ * The available categories are:
10
+ *
11
+ * * `node`: An empty placeholder.
12
+ * * `node.async_hooks`: Enables capture of detailed [`async_hooks`](https://nodejs.org/docs/latest-v20.x/api/async_hooks.html) trace data.
13
+ * The [`async_hooks`](https://nodejs.org/docs/latest-v20.x/api/async_hooks.html) events have a unique `asyncId` and a special `triggerId` `triggerAsyncId` property.
14
+ * * `node.bootstrap`: Enables capture of Node.js bootstrap milestones.
15
+ * * `node.console`: Enables capture of `console.time()` and `console.count()` output.
16
+ * * `node.threadpoolwork.sync`: Enables capture of trace data for threadpool synchronous operations, such as `blob`, `zlib`, `crypto` and `node_api`.
17
+ * * `node.threadpoolwork.async`: Enables capture of trace data for threadpool asynchronous operations, such as `blob`, `zlib`, `crypto` and `node_api`.
18
+ * * `node.dns.native`: Enables capture of trace data for DNS queries.
19
+ * * `node.net.native`: Enables capture of trace data for network.
20
+ * * `node.environment`: Enables capture of Node.js Environment milestones.
21
+ * * `node.fs.sync`: Enables capture of trace data for file system sync methods.
22
+ * * `node.fs_dir.sync`: Enables capture of trace data for file system sync directory methods.
23
+ * * `node.fs.async`: Enables capture of trace data for file system async methods.
24
+ * * `node.fs_dir.async`: Enables capture of trace data for file system async directory methods.
25
+ * * `node.perf`: Enables capture of [Performance API](https://nodejs.org/docs/latest-v20.x/api/perf_hooks.html) measurements.
26
+ * * `node.perf.usertiming`: Enables capture of only Performance API User Timing
27
+ * measures and marks.
28
+ * * `node.perf.timerify`: Enables capture of only Performance API timerify
29
+ * measurements.
30
+ * * `node.promises.rejections`: Enables capture of trace data tracking the number
31
+ * of unhandled Promise rejections and handled-after-rejections.
32
+ * * `node.vm.script`: Enables capture of trace data for the `node:vm` module's `runInNewContext()`, `runInContext()`, and `runInThisContext()` methods.
33
+ * * `v8`: The [V8](https://nodejs.org/docs/latest-v20.x/api/v8.html) events are GC, compiling, and execution related.
34
+ * * `node.http`: Enables capture of trace data for http request / response.
35
+ *
36
+ * By default the `node`, `node.async_hooks`, and `v8` categories are enabled.
37
+ *
38
+ * ```bash
39
+ * node --trace-event-categories v8,node,node.async_hooks server.js
40
+ * ```
41
+ *
42
+ * Prior versions of Node.js required the use of the `--trace-events-enabled` flag to enable trace events. This requirement has been removed. However, the `--trace-events-enabled` flag _may_ still be
43
+ * used and will enable the `node`, `node.async_hooks`, and `v8` trace event categories by default.
44
+ *
45
+ * ```bash
46
+ * node --trace-events-enabled
47
+ *
48
+ * # is equivalent to
49
+ *
50
+ * node --trace-event-categories v8,node,node.async_hooks
51
+ * ```
52
+ *
53
+ * Alternatively, trace events may be enabled using the `node:trace_events` module:
54
+ *
55
+ * ```js
56
+ * import trace_events from 'node:trace_events';
57
+ * const tracing = trace_events.createTracing({ categories: ['node.perf'] });
58
+ * tracing.enable(); // Enable trace event capture for the 'node.perf' category
59
+ *
60
+ * // do work
61
+ *
62
+ * tracing.disable(); // Disable trace event capture for the 'node.perf' category
63
+ * ```
64
+ *
65
+ * Running Node.js with tracing enabled will produce log files that can be opened
66
+ * in the [`chrome://tracing`](https://www.chromium.org/developers/how-tos/trace-event-profiling-tool) tab of Chrome.
67
+ *
68
+ * The logging file is by default called `node_trace.${rotation}.log`, where `${rotation}` is an incrementing log-rotation id. The filepath pattern can
69
+ * be specified with `--trace-event-file-pattern` that accepts a template
70
+ * string that supports `${rotation}` and `${pid}`:
71
+ *
72
+ * ```bash
73
+ * node --trace-event-categories v8 --trace-event-file-pattern '${pid}-${rotation}.log' server.js
74
+ * ```
75
+ *
76
+ * To guarantee that the log file is properly generated after signal events like `SIGINT`, `SIGTERM`, or `SIGBREAK`, make sure to have the appropriate handlers
77
+ * in your code, such as:
78
+ *
79
+ * ```js
80
+ * process.on('SIGINT', function onSigint() {
81
+ * console.info('Received SIGINT.');
82
+ * process.exit(130); // Or applicable exit code depending on OS and signal
83
+ * });
84
+ * ```
85
+ *
86
+ * The tracing system uses the same time source
87
+ * as the one used by `process.hrtime()`.
88
+ * However the trace-event timestamps are expressed in microseconds,
89
+ * unlike `process.hrtime()` which returns nanoseconds.
90
+ *
91
+ * The features from this module are not available in [`Worker`](https://nodejs.org/docs/latest-v20.x/api/worker_threads.html#class-worker) threads.
92
+ * @experimental
93
+ * @see [source](https://github.com/nodejs/node/blob/v20.13.1/lib/trace_events.js)
94
+ */
95
+ declare module "trace_events" {
96
+ /**
97
+ * The `Tracing` object is used to enable or disable tracing for sets of
98
+ * categories. Instances are created using the
99
+ * `trace_events.createTracing()` method.
100
+ *
101
+ * When created, the `Tracing` object is disabled. Calling the
102
+ * `tracing.enable()` method adds the categories to the set of enabled trace
103
+ * event categories. Calling `tracing.disable()` will remove the categories
104
+ * from the set of enabled trace event categories.
105
+ */
106
+ interface Tracing {
107
+ /**
108
+ * A comma-separated list of the trace event categories covered by this
109
+ * `Tracing` object.
110
+ * @since v10.0.0
111
+ */
112
+ readonly categories: string;
113
+ /**
114
+ * Disables this `Tracing` object.
115
+ *
116
+ * Only trace event categories _not_ covered by other enabled `Tracing`
117
+ * objects and _not_ specified by the `--trace-event-categories` flag
118
+ * will be disabled.
119
+ *
120
+ * ```js
121
+ * import trace_events from 'node:trace_events';
122
+ * const t1 = trace_events.createTracing({ categories: ['node', 'v8'] });
123
+ * const t2 = trace_events.createTracing({ categories: ['node.perf', 'node'] });
124
+ * t1.enable();
125
+ * t2.enable();
126
+ *
127
+ * // Prints 'node,node.perf,v8'
128
+ * console.log(trace_events.getEnabledCategories());
129
+ *
130
+ * t2.disable(); // Will only disable emission of the 'node.perf' category
131
+ *
132
+ * // Prints 'node,v8'
133
+ * console.log(trace_events.getEnabledCategories());
134
+ * ```
135
+ * @since v10.0.0
136
+ */
137
+ disable(): void;
138
+ /**
139
+ * Enables this `Tracing` object for the set of categories covered by
140
+ * the `Tracing` object.
141
+ * @since v10.0.0
142
+ */
143
+ enable(): void;
144
+ /**
145
+ * `true` only if the `Tracing` object has been enabled.
146
+ * @since v10.0.0
147
+ */
148
+ readonly enabled: boolean;
149
+ }
150
+ interface CreateTracingOptions {
151
+ /**
152
+ * An array of trace category names. Values included in the array are
153
+ * coerced to a string when possible. An error will be thrown if the
154
+ * value cannot be coerced.
155
+ */
156
+ categories: string[];
157
+ }
158
+ /**
159
+ * Creates and returns a `Tracing` object for the given set of `categories`.
160
+ *
161
+ * ```js
162
+ * import trace_events from 'node:trace_events';
163
+ * const categories = ['node.perf', 'node.async_hooks'];
164
+ * const tracing = trace_events.createTracing({ categories });
165
+ * tracing.enable();
166
+ * // do stuff
167
+ * tracing.disable();
168
+ * ```
169
+ * @since v10.0.0
170
+ */
171
+ function createTracing(options: CreateTracingOptions): Tracing;
172
+ /**
173
+ * Returns a comma-separated list of all currently-enabled trace event
174
+ * categories. The current set of enabled trace event categories is determined
175
+ * by the _union_ of all currently-enabled `Tracing` objects and any categories
176
+ * enabled using the `--trace-event-categories` flag.
177
+ *
178
+ * 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.
179
+ *
180
+ * ```js
181
+ * import trace_events from 'node:trace_events';
182
+ * const t1 = trace_events.createTracing({ categories: ['node.async_hooks'] });
183
+ * const t2 = trace_events.createTracing({ categories: ['node.perf'] });
184
+ * const t3 = trace_events.createTracing({ categories: ['v8'] });
185
+ *
186
+ * t1.enable();
187
+ * t2.enable();
188
+ *
189
+ * console.log(trace_events.getEnabledCategories());
190
+ * ```
191
+ * @since v10.0.0
192
+ */
193
+ function getEnabledCategories(): string | undefined;
194
+ }
195
+ declare module "node:trace_events" {
196
+ export * from "trace_events";
197
+ }
@@ -0,0 +1,468 @@
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: ArrayLike<number>): 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: ArrayBufferLike): Buffer;
36
+ /**
37
+ * Allocates a new `Buffer` using an `array` of bytes in the range `0` – `255`.
38
+ * Array entries outside that range will be truncated to fit into it.
39
+ *
40
+ * ```js
41
+ * import { Buffer } from 'node:buffer';
42
+ *
43
+ * // Creates a new Buffer containing the UTF-8 bytes of the string 'buffer'.
44
+ * const buf = Buffer.from([0x62, 0x75, 0x66, 0x66, 0x65, 0x72]);
45
+ * ```
46
+ *
47
+ * If `array` is an `Array`-like object (that is, one with a `length` property of
48
+ * type `number`), it is treated as if it is an array, unless it is a `Buffer` or
49
+ * a `Uint8Array`. This means all other `TypedArray` variants get treated as an
50
+ * `Array`. To create a `Buffer` from the bytes backing a `TypedArray`, use
51
+ * `Buffer.copyBytesFrom()`.
52
+ *
53
+ * A `TypeError` will be thrown if `array` is not an `Array` or another type
54
+ * appropriate for `Buffer.from()` variants.
55
+ *
56
+ * `Buffer.from(array)` and `Buffer.from(string)` may also use the internal
57
+ * `Buffer` pool like `Buffer.allocUnsafe()` does.
58
+ * @since v5.10.0
59
+ */
60
+ from(array: WithImplicitCoercion<ArrayLike<number>>): Buffer;
61
+ /**
62
+ * This creates a view of the `ArrayBuffer` without copying the underlying
63
+ * memory. For example, when passed a reference to the `.buffer` property of a
64
+ * `TypedArray` instance, the newly created `Buffer` will share the same
65
+ * allocated memory as the `TypedArray`'s underlying `ArrayBuffer`.
66
+ *
67
+ * ```js
68
+ * import { Buffer } from 'node:buffer';
69
+ *
70
+ * const arr = new Uint16Array(2);
71
+ *
72
+ * arr[0] = 5000;
73
+ * arr[1] = 4000;
74
+ *
75
+ * // Shares memory with `arr`.
76
+ * const buf = Buffer.from(arr.buffer);
77
+ *
78
+ * console.log(buf);
79
+ * // Prints: <Buffer 88 13 a0 0f>
80
+ *
81
+ * // Changing the original Uint16Array changes the Buffer also.
82
+ * arr[1] = 6000;
83
+ *
84
+ * console.log(buf);
85
+ * // Prints: <Buffer 88 13 70 17>
86
+ * ```
87
+ *
88
+ * The optional `byteOffset` and `length` arguments specify a memory range within
89
+ * the `arrayBuffer` that will be shared by the `Buffer`.
90
+ *
91
+ * ```js
92
+ * import { Buffer } from 'node:buffer';
93
+ *
94
+ * const ab = new ArrayBuffer(10);
95
+ * const buf = Buffer.from(ab, 0, 2);
96
+ *
97
+ * console.log(buf.length);
98
+ * // Prints: 2
99
+ * ```
100
+ *
101
+ * A `TypeError` will be thrown if `arrayBuffer` is not an `ArrayBuffer` or a
102
+ * `SharedArrayBuffer` or another type appropriate for `Buffer.from()`
103
+ * variants.
104
+ *
105
+ * It is important to remember that a backing `ArrayBuffer` can cover a range
106
+ * of memory that extends beyond the bounds of a `TypedArray` view. A new
107
+ * `Buffer` created using the `buffer` property of a `TypedArray` may extend
108
+ * beyond the range of the `TypedArray`:
109
+ *
110
+ * ```js
111
+ * import { Buffer } from 'node:buffer';
112
+ *
113
+ * const arrA = Uint8Array.from([0x63, 0x64, 0x65, 0x66]); // 4 elements
114
+ * const arrB = new Uint8Array(arrA.buffer, 1, 2); // 2 elements
115
+ * console.log(arrA.buffer === arrB.buffer); // true
116
+ *
117
+ * const buf = Buffer.from(arrB.buffer);
118
+ * console.log(buf);
119
+ * // Prints: <Buffer 63 64 65 66>
120
+ * ```
121
+ * @since v5.10.0
122
+ * @param arrayBuffer An `ArrayBuffer`, `SharedArrayBuffer`, for example the
123
+ * `.buffer` property of a `TypedArray`.
124
+ * @param byteOffset Index of first byte to expose. **Default:** `0`.
125
+ * @param length Number of bytes to expose. **Default:**
126
+ * `arrayBuffer.byteLength - byteOffset`.
127
+ */
128
+ from(
129
+ arrayBuffer: WithImplicitCoercion<ArrayBufferLike>,
130
+ byteOffset?: number,
131
+ length?: number,
132
+ ): Buffer;
133
+ /**
134
+ * Creates a new `Buffer` containing `string`. The `encoding` parameter identifies
135
+ * the character encoding to be used when converting `string` into bytes.
136
+ *
137
+ * ```js
138
+ * import { Buffer } from 'node:buffer';
139
+ *
140
+ * const buf1 = Buffer.from('this is a tést');
141
+ * const buf2 = Buffer.from('7468697320697320612074c3a97374', 'hex');
142
+ *
143
+ * console.log(buf1.toString());
144
+ * // Prints: this is a tést
145
+ * console.log(buf2.toString());
146
+ * // Prints: this is a tést
147
+ * console.log(buf1.toString('latin1'));
148
+ * // Prints: this is a tést
149
+ * ```
150
+ *
151
+ * A `TypeError` will be thrown if `string` is not a string or another type
152
+ * appropriate for `Buffer.from()` variants.
153
+ *
154
+ * `Buffer.from(string)` may also use the internal `Buffer` pool like
155
+ * `Buffer.allocUnsafe()` does.
156
+ * @since v5.10.0
157
+ * @param string A string to encode.
158
+ * @param encoding The encoding of `string`. **Default:** `'utf8'`.
159
+ */
160
+ from(string: WithImplicitCoercion<string>, encoding?: BufferEncoding): Buffer;
161
+ from(arrayOrString: WithImplicitCoercion<ArrayLike<number> | string>): Buffer;
162
+ /**
163
+ * Creates a new Buffer using the passed {data}
164
+ * @param values to create a new Buffer
165
+ */
166
+ of(...items: number[]): Buffer;
167
+ /**
168
+ * Returns a new `Buffer` which is the result of concatenating all the `Buffer` instances in the `list` together.
169
+ *
170
+ * If the list has no items, or if the `totalLength` is 0, then a new zero-length `Buffer` is returned.
171
+ *
172
+ * If `totalLength` is not provided, it is calculated from the `Buffer` instances
173
+ * in `list` by adding their lengths.
174
+ *
175
+ * If `totalLength` is provided, it is coerced to an unsigned integer. If the
176
+ * combined length of the `Buffer`s in `list` exceeds `totalLength`, the result is
177
+ * truncated to `totalLength`.
178
+ *
179
+ * ```js
180
+ * import { Buffer } from 'node:buffer';
181
+ *
182
+ * // Create a single `Buffer` from a list of three `Buffer` instances.
183
+ *
184
+ * const buf1 = Buffer.alloc(10);
185
+ * const buf2 = Buffer.alloc(14);
186
+ * const buf3 = Buffer.alloc(18);
187
+ * const totalLength = buf1.length + buf2.length + buf3.length;
188
+ *
189
+ * console.log(totalLength);
190
+ * // Prints: 42
191
+ *
192
+ * const bufA = Buffer.concat([buf1, buf2, buf3], totalLength);
193
+ *
194
+ * console.log(bufA);
195
+ * // Prints: <Buffer 00 00 00 00 ...>
196
+ * console.log(bufA.length);
197
+ * // Prints: 42
198
+ * ```
199
+ *
200
+ * `Buffer.concat()` may also use the internal `Buffer` pool like `Buffer.allocUnsafe()` does.
201
+ * @since v0.7.11
202
+ * @param list List of `Buffer` or {@link Uint8Array} instances to concatenate.
203
+ * @param totalLength Total length of the `Buffer` instances in `list` when concatenated.
204
+ */
205
+ concat(list: readonly Uint8Array[], totalLength?: number): Buffer;
206
+ /**
207
+ * Copies the underlying memory of `view` into a new `Buffer`.
208
+ *
209
+ * ```js
210
+ * const u16 = new Uint16Array([0, 0xffff]);
211
+ * const buf = Buffer.copyBytesFrom(u16, 1, 1);
212
+ * u16[1] = 0;
213
+ * console.log(buf.length); // 2
214
+ * console.log(buf[0]); // 255
215
+ * console.log(buf[1]); // 255
216
+ * ```
217
+ * @since v19.8.0
218
+ * @param view The {TypedArray} to copy.
219
+ * @param [offset=0] The starting offset within `view`.
220
+ * @param [length=view.length - offset] The number of elements from `view` to copy.
221
+ */
222
+ copyBytesFrom(view: NodeJS.TypedArray, offset?: number, length?: number): Buffer;
223
+ /**
224
+ * Allocates a new `Buffer` of `size` bytes. If `fill` is `undefined`, the`Buffer` will be zero-filled.
225
+ *
226
+ * ```js
227
+ * import { Buffer } from 'node:buffer';
228
+ *
229
+ * const buf = Buffer.alloc(5);
230
+ *
231
+ * console.log(buf);
232
+ * // Prints: <Buffer 00 00 00 00 00>
233
+ * ```
234
+ *
235
+ * If `size` is larger than {@link constants.MAX_LENGTH} or smaller than 0, `ERR_OUT_OF_RANGE` is thrown.
236
+ *
237
+ * If `fill` is specified, the allocated `Buffer` will be initialized by calling `buf.fill(fill)`.
238
+ *
239
+ * ```js
240
+ * import { Buffer } from 'node:buffer';
241
+ *
242
+ * const buf = Buffer.alloc(5, 'a');
243
+ *
244
+ * console.log(buf);
245
+ * // Prints: <Buffer 61 61 61 61 61>
246
+ * ```
247
+ *
248
+ * If both `fill` and `encoding` are specified, the allocated `Buffer` will be
249
+ * initialized by calling `buf.fill(fill, encoding)`.
250
+ *
251
+ * ```js
252
+ * import { Buffer } from 'node:buffer';
253
+ *
254
+ * const buf = Buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64');
255
+ *
256
+ * console.log(buf);
257
+ * // Prints: <Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64>
258
+ * ```
259
+ *
260
+ * Calling `Buffer.alloc()` can be measurably slower than the alternative `Buffer.allocUnsafe()` but ensures that the newly created `Buffer` instance
261
+ * contents will never contain sensitive data from previous allocations, including
262
+ * data that might not have been allocated for `Buffer`s.
263
+ *
264
+ * A `TypeError` will be thrown if `size` is not a number.
265
+ * @since v5.10.0
266
+ * @param size The desired length of the new `Buffer`.
267
+ * @param [fill=0] A value to pre-fill the new `Buffer` with.
268
+ * @param [encoding='utf8'] If `fill` is a string, this is its encoding.
269
+ */
270
+ alloc(size: number, fill?: string | Uint8Array | number, encoding?: BufferEncoding): Buffer;
271
+ /**
272
+ * 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.
273
+ *
274
+ * The underlying memory for `Buffer` instances created in this way is _not_
275
+ * _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.
276
+ *
277
+ * ```js
278
+ * import { Buffer } from 'node:buffer';
279
+ *
280
+ * const buf = Buffer.allocUnsafe(10);
281
+ *
282
+ * console.log(buf);
283
+ * // Prints (contents may vary): <Buffer a0 8b 28 3f 01 00 00 00 50 32>
284
+ *
285
+ * buf.fill(0);
286
+ *
287
+ * console.log(buf);
288
+ * // Prints: <Buffer 00 00 00 00 00 00 00 00 00 00>
289
+ * ```
290
+ *
291
+ * A `TypeError` will be thrown if `size` is not a number.
292
+ *
293
+ * The `Buffer` module pre-allocates an internal `Buffer` instance of
294
+ * size `Buffer.poolSize` that is used as a pool for the fast allocation of new `Buffer` instances created using `Buffer.allocUnsafe()`, `Buffer.from(array)`,
295
+ * and `Buffer.concat()` only when `size` is less than `Buffer.poolSize >>> 1` (floor of `Buffer.poolSize` divided by two).
296
+ *
297
+ * Use of this pre-allocated internal memory pool is a key difference between
298
+ * calling `Buffer.alloc(size, fill)` vs. `Buffer.allocUnsafe(size).fill(fill)`.
299
+ * 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
300
+ * than or equal to half `Buffer.poolSize`. The
301
+ * difference is subtle but can be important when an application requires the
302
+ * additional performance that `Buffer.allocUnsafe()` provides.
303
+ * @since v5.10.0
304
+ * @param size The desired length of the new `Buffer`.
305
+ */
306
+ allocUnsafe(size: number): Buffer;
307
+ /**
308
+ * 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
309
+ * `size` is 0.
310
+ *
311
+ * The underlying memory for `Buffer` instances created in this way is _not_
312
+ * _initialized_. The contents of the newly created `Buffer` are unknown and _may contain sensitive data_. Use `buf.fill(0)` to initialize
313
+ * such `Buffer` instances with zeroes.
314
+ *
315
+ * When using `Buffer.allocUnsafe()` to allocate new `Buffer` instances,
316
+ * allocations under 4 KiB are sliced from a single pre-allocated `Buffer`. This
317
+ * allows applications to avoid the garbage collection overhead of creating many
318
+ * individually allocated `Buffer` instances. This approach improves both
319
+ * performance and memory usage by eliminating the need to track and clean up as
320
+ * many individual `ArrayBuffer` objects.
321
+ *
322
+ * However, in the case where a developer may need to retain a small chunk of
323
+ * memory from a pool for an indeterminate amount of time, it may be appropriate
324
+ * to create an un-pooled `Buffer` instance using `Buffer.allocUnsafeSlow()` and
325
+ * then copying out the relevant bits.
326
+ *
327
+ * ```js
328
+ * import { Buffer } from 'node:buffer';
329
+ *
330
+ * // Need to keep around a few small chunks of memory.
331
+ * const store = [];
332
+ *
333
+ * socket.on('readable', () => {
334
+ * let data;
335
+ * while (null !== (data = readable.read())) {
336
+ * // Allocate for retained data.
337
+ * const sb = Buffer.allocUnsafeSlow(10);
338
+ *
339
+ * // Copy the data into the new allocation.
340
+ * data.copy(sb, 0, 0, 10);
341
+ *
342
+ * store.push(sb);
343
+ * }
344
+ * });
345
+ * ```
346
+ *
347
+ * A `TypeError` will be thrown if `size` is not a number.
348
+ * @since v5.12.0
349
+ * @param size The desired length of the new `Buffer`.
350
+ */
351
+ allocUnsafeSlow(size: number): Buffer;
352
+ }
353
+ interface Buffer extends Uint8Array {
354
+ // see ../buffer.d.ts for implementation shared with all TypeScript versions
355
+
356
+ /**
357
+ * Returns a new `Buffer` that references the same memory as the original, but
358
+ * offset and cropped by the `start` and `end` indices.
359
+ *
360
+ * This method is not compatible with the `Uint8Array.prototype.slice()`,
361
+ * which is a superclass of `Buffer`. To copy the slice, use`Uint8Array.prototype.slice()`.
362
+ *
363
+ * ```js
364
+ * import { Buffer } from 'node:buffer';
365
+ *
366
+ * const buf = Buffer.from('buffer');
367
+ *
368
+ * const copiedBuf = Uint8Array.prototype.slice.call(buf);
369
+ * copiedBuf[0]++;
370
+ * console.log(copiedBuf.toString());
371
+ * // Prints: cuffer
372
+ *
373
+ * console.log(buf.toString());
374
+ * // Prints: buffer
375
+ *
376
+ * // With buf.slice(), the original buffer is modified.
377
+ * const notReallyCopiedBuf = buf.slice();
378
+ * notReallyCopiedBuf[0]++;
379
+ * console.log(notReallyCopiedBuf.toString());
380
+ * // Prints: cuffer
381
+ * console.log(buf.toString());
382
+ * // Also prints: cuffer (!)
383
+ * ```
384
+ * @since v0.3.0
385
+ * @deprecated Use `subarray` instead.
386
+ * @param [start=0] Where the new `Buffer` will start.
387
+ * @param [end=buf.length] Where the new `Buffer` will end (not inclusive).
388
+ */
389
+ slice(start?: number, end?: number): Buffer;
390
+ /**
391
+ * Returns a new `Buffer` that references the same memory as the original, but
392
+ * offset and cropped by the `start` and `end` indices.
393
+ *
394
+ * Specifying `end` greater than `buf.length` will return the same result as
395
+ * that of `end` equal to `buf.length`.
396
+ *
397
+ * This method is inherited from [`TypedArray.prototype.subarray()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/subarray).
398
+ *
399
+ * Modifying the new `Buffer` slice will modify the memory in the original `Buffer`because the allocated memory of the two objects overlap.
400
+ *
401
+ * ```js
402
+ * import { Buffer } from 'node:buffer';
403
+ *
404
+ * // Create a `Buffer` with the ASCII alphabet, take a slice, and modify one byte
405
+ * // from the original `Buffer`.
406
+ *
407
+ * const buf1 = Buffer.allocUnsafe(26);
408
+ *
409
+ * for (let i = 0; i < 26; i++) {
410
+ * // 97 is the decimal ASCII value for 'a'.
411
+ * buf1[i] = i + 97;
412
+ * }
413
+ *
414
+ * const buf2 = buf1.subarray(0, 3);
415
+ *
416
+ * console.log(buf2.toString('ascii', 0, buf2.length));
417
+ * // Prints: abc
418
+ *
419
+ * buf1[0] = 33;
420
+ *
421
+ * console.log(buf2.toString('ascii', 0, buf2.length));
422
+ * // Prints: !bc
423
+ * ```
424
+ *
425
+ * Specifying negative indexes causes the slice to be generated relative to the
426
+ * end of `buf` rather than the beginning.
427
+ *
428
+ * ```js
429
+ * import { Buffer } from 'node:buffer';
430
+ *
431
+ * const buf = Buffer.from('buffer');
432
+ *
433
+ * console.log(buf.subarray(-6, -1).toString());
434
+ * // Prints: buffe
435
+ * // (Equivalent to buf.subarray(0, 5).)
436
+ *
437
+ * console.log(buf.subarray(-6, -2).toString());
438
+ * // Prints: buff
439
+ * // (Equivalent to buf.subarray(0, 4).)
440
+ *
441
+ * console.log(buf.subarray(-5, -2).toString());
442
+ * // Prints: uff
443
+ * // (Equivalent to buf.subarray(1, 4).)
444
+ * ```
445
+ * @since v3.0.0
446
+ * @param [start=0] Where the new `Buffer` will start.
447
+ * @param [end=buf.length] Where the new `Buffer` will end (not inclusive).
448
+ */
449
+ subarray(start?: number, end?: number): Buffer;
450
+ }
451
+ /**
452
+ * @deprecated This is intended for internal use, and will be removed once `@types/node` no longer supports
453
+ * TypeScript versions earlier than 5.7.
454
+ */
455
+ type NonSharedBuffer = Buffer;
456
+ /**
457
+ * @deprecated This is intended for internal use, and will be removed once `@types/node` no longer supports
458
+ * TypeScript versions earlier than 5.7.
459
+ */
460
+ type AllowSharedBuffer = Buffer;
461
+ }
462
+ /** @deprecated Use `Buffer.allocUnsafeSlow()` instead. */
463
+ var SlowBuffer: {
464
+ /** @deprecated Use `Buffer.allocUnsafeSlow()` instead. */
465
+ new(size: number): Buffer;
466
+ prototype: Buffer;
467
+ };
468
+ }