mirror of
https://github.com/erlef/setup-beam.git
synced 2026-07-22 22:56:07 +00:00
Bump undici from 6.23.0 to 6.24.0 in the npm_and_yarn group across 1 directory (#432)
* Bump undici in the npm_and_yarn group across 1 directory Bumps the npm_and_yarn group with 1 update in the / directory: [undici](https://github.com/nodejs/undici). Updates `undici` from 6.23.0 to 6.24.0 - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](https://github.com/nodejs/undici/compare/v6.23.0...v6.24.0) --- updated-dependencies: - dependency-name: undici dependency-version: 6.24.0 dependency-type: indirect dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] <support@github.com> * Help Dependabot (exec: npm run build-dist) --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Paulo F. Oliveira <paulo.ferraz.oliveira@gmail.com>
This commit is contained in:
Vendored
+135
-16
@@ -26921,6 +26921,24 @@ class SecureProxyConnectionError extends UndiciError {
|
|||||||
[kSecureProxyConnectionError] = true
|
[kSecureProxyConnectionError] = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const kMessageSizeExceededError = Symbol.for('undici.error.UND_ERR_WS_MESSAGE_SIZE_EXCEEDED')
|
||||||
|
class MessageSizeExceededError extends UndiciError {
|
||||||
|
constructor (message) {
|
||||||
|
super(message)
|
||||||
|
this.name = 'MessageSizeExceededError'
|
||||||
|
this.message = message || 'Max decompressed message size exceeded'
|
||||||
|
this.code = 'UND_ERR_WS_MESSAGE_SIZE_EXCEEDED'
|
||||||
|
}
|
||||||
|
|
||||||
|
static [Symbol.hasInstance] (instance) {
|
||||||
|
return instance && instance[kMessageSizeExceededError] === true
|
||||||
|
}
|
||||||
|
|
||||||
|
get [kMessageSizeExceededError] () {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
AbortError,
|
AbortError,
|
||||||
HTTPParserError,
|
HTTPParserError,
|
||||||
@@ -26944,7 +26962,8 @@ module.exports = {
|
|||||||
ResponseExceededMaxSizeError,
|
ResponseExceededMaxSizeError,
|
||||||
RequestRetryError,
|
RequestRetryError,
|
||||||
ResponseError,
|
ResponseError,
|
||||||
SecureProxyConnectionError
|
SecureProxyConnectionError,
|
||||||
|
MessageSizeExceededError
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -27021,6 +27040,10 @@ class Request {
|
|||||||
throw new InvalidArgumentError('upgrade must be a string')
|
throw new InvalidArgumentError('upgrade must be a string')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (upgrade && !isValidHeaderValue(upgrade)) {
|
||||||
|
throw new InvalidArgumentError('invalid upgrade header')
|
||||||
|
}
|
||||||
|
|
||||||
if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) {
|
if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) {
|
||||||
throw new InvalidArgumentError('invalid headersTimeout')
|
throw new InvalidArgumentError('invalid headersTimeout')
|
||||||
}
|
}
|
||||||
@@ -27315,13 +27338,19 @@ function processHeader (request, key, val) {
|
|||||||
val = `${val}`
|
val = `${val}`
|
||||||
}
|
}
|
||||||
|
|
||||||
if (request.host === null && headerName === 'host') {
|
if (headerName === 'host') {
|
||||||
|
if (request.host !== null) {
|
||||||
|
throw new InvalidArgumentError('duplicate host header')
|
||||||
|
}
|
||||||
if (typeof val !== 'string') {
|
if (typeof val !== 'string') {
|
||||||
throw new InvalidArgumentError('invalid host header')
|
throw new InvalidArgumentError('invalid host header')
|
||||||
}
|
}
|
||||||
// Consumed by Client
|
// Consumed by Client
|
||||||
request.host = val
|
request.host = val
|
||||||
} else if (request.contentLength === null && headerName === 'content-length') {
|
} else if (headerName === 'content-length') {
|
||||||
|
if (request.contentLength !== null) {
|
||||||
|
throw new InvalidArgumentError('duplicate content-length header')
|
||||||
|
}
|
||||||
request.contentLength = parseInt(val, 10)
|
request.contentLength = parseInt(val, 10)
|
||||||
if (!Number.isFinite(request.contentLength)) {
|
if (!Number.isFinite(request.contentLength)) {
|
||||||
throw new InvalidArgumentError('invalid content-length header')
|
throw new InvalidArgumentError('invalid content-length header')
|
||||||
@@ -50038,20 +50067,38 @@ module.exports = {
|
|||||||
|
|
||||||
const { createInflateRaw, Z_DEFAULT_WINDOWBITS } = __nccwpck_require__(8522)
|
const { createInflateRaw, Z_DEFAULT_WINDOWBITS } = __nccwpck_require__(8522)
|
||||||
const { isValidClientWindowBits } = __nccwpck_require__(8625)
|
const { isValidClientWindowBits } = __nccwpck_require__(8625)
|
||||||
|
const { MessageSizeExceededError } = __nccwpck_require__(8707)
|
||||||
|
|
||||||
const tail = Buffer.from([0x00, 0x00, 0xff, 0xff])
|
const tail = Buffer.from([0x00, 0x00, 0xff, 0xff])
|
||||||
const kBuffer = Symbol('kBuffer')
|
const kBuffer = Symbol('kBuffer')
|
||||||
const kLength = Symbol('kLength')
|
const kLength = Symbol('kLength')
|
||||||
|
|
||||||
|
// Default maximum decompressed message size: 4 MB
|
||||||
|
const kDefaultMaxDecompressedSize = 4 * 1024 * 1024
|
||||||
|
|
||||||
class PerMessageDeflate {
|
class PerMessageDeflate {
|
||||||
/** @type {import('node:zlib').InflateRaw} */
|
/** @type {import('node:zlib').InflateRaw} */
|
||||||
#inflate
|
#inflate
|
||||||
|
|
||||||
#options = {}
|
#options = {}
|
||||||
|
|
||||||
constructor (extensions) {
|
/** @type {number} */
|
||||||
|
#maxDecompressedSize
|
||||||
|
|
||||||
|
/** @type {boolean} */
|
||||||
|
#aborted = false
|
||||||
|
|
||||||
|
/** @type {Function|null} */
|
||||||
|
#currentCallback = null
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {Map<string, string>} extensions
|
||||||
|
* @param {{ maxDecompressedMessageSize?: number }} [options]
|
||||||
|
*/
|
||||||
|
constructor (extensions, options = {}) {
|
||||||
this.#options.serverNoContextTakeover = extensions.has('server_no_context_takeover')
|
this.#options.serverNoContextTakeover = extensions.has('server_no_context_takeover')
|
||||||
this.#options.serverMaxWindowBits = extensions.get('server_max_window_bits')
|
this.#options.serverMaxWindowBits = extensions.get('server_max_window_bits')
|
||||||
|
this.#maxDecompressedSize = options.maxDecompressedMessageSize ?? kDefaultMaxDecompressedSize
|
||||||
}
|
}
|
||||||
|
|
||||||
decompress (chunk, fin, callback) {
|
decompress (chunk, fin, callback) {
|
||||||
@@ -50060,6 +50107,11 @@ class PerMessageDeflate {
|
|||||||
// payload of the message.
|
// payload of the message.
|
||||||
// 2. Decompress the resulting data using DEFLATE.
|
// 2. Decompress the resulting data using DEFLATE.
|
||||||
|
|
||||||
|
if (this.#aborted) {
|
||||||
|
callback(new MessageSizeExceededError())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if (!this.#inflate) {
|
if (!this.#inflate) {
|
||||||
let windowBits = Z_DEFAULT_WINDOWBITS
|
let windowBits = Z_DEFAULT_WINDOWBITS
|
||||||
|
|
||||||
@@ -50072,13 +50124,37 @@ class PerMessageDeflate {
|
|||||||
windowBits = Number.parseInt(this.#options.serverMaxWindowBits)
|
windowBits = Number.parseInt(this.#options.serverMaxWindowBits)
|
||||||
}
|
}
|
||||||
|
|
||||||
this.#inflate = createInflateRaw({ windowBits })
|
try {
|
||||||
|
this.#inflate = createInflateRaw({ windowBits })
|
||||||
|
} catch (err) {
|
||||||
|
callback(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
this.#inflate[kBuffer] = []
|
this.#inflate[kBuffer] = []
|
||||||
this.#inflate[kLength] = 0
|
this.#inflate[kLength] = 0
|
||||||
|
|
||||||
this.#inflate.on('data', (data) => {
|
this.#inflate.on('data', (data) => {
|
||||||
this.#inflate[kBuffer].push(data)
|
if (this.#aborted) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
this.#inflate[kLength] += data.length
|
this.#inflate[kLength] += data.length
|
||||||
|
|
||||||
|
if (this.#inflate[kLength] > this.#maxDecompressedSize) {
|
||||||
|
this.#aborted = true
|
||||||
|
this.#inflate.removeAllListeners()
|
||||||
|
this.#inflate.destroy()
|
||||||
|
this.#inflate = null
|
||||||
|
|
||||||
|
if (this.#currentCallback) {
|
||||||
|
const cb = this.#currentCallback
|
||||||
|
this.#currentCallback = null
|
||||||
|
cb(new MessageSizeExceededError())
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
this.#inflate[kBuffer].push(data)
|
||||||
})
|
})
|
||||||
|
|
||||||
this.#inflate.on('error', (err) => {
|
this.#inflate.on('error', (err) => {
|
||||||
@@ -50087,16 +50163,22 @@ class PerMessageDeflate {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.#currentCallback = callback
|
||||||
this.#inflate.write(chunk)
|
this.#inflate.write(chunk)
|
||||||
if (fin) {
|
if (fin) {
|
||||||
this.#inflate.write(tail)
|
this.#inflate.write(tail)
|
||||||
}
|
}
|
||||||
|
|
||||||
this.#inflate.flush(() => {
|
this.#inflate.flush(() => {
|
||||||
|
if (this.#aborted || !this.#inflate) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
const full = Buffer.concat(this.#inflate[kBuffer], this.#inflate[kLength])
|
const full = Buffer.concat(this.#inflate[kBuffer], this.#inflate[kLength])
|
||||||
|
|
||||||
this.#inflate[kBuffer].length = 0
|
this.#inflate[kBuffer].length = 0
|
||||||
this.#inflate[kLength] = 0
|
this.#inflate[kLength] = 0
|
||||||
|
this.#currentCallback = null
|
||||||
|
|
||||||
callback(null, full)
|
callback(null, full)
|
||||||
})
|
})
|
||||||
@@ -50150,14 +50232,23 @@ class ByteParser extends Writable {
|
|||||||
/** @type {Map<string, PerMessageDeflate>} */
|
/** @type {Map<string, PerMessageDeflate>} */
|
||||||
#extensions
|
#extensions
|
||||||
|
|
||||||
constructor (ws, extensions) {
|
/** @type {{ maxDecompressedMessageSize?: number }} */
|
||||||
|
#options
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {import('./websocket').WebSocket} ws
|
||||||
|
* @param {Map<string, string>|null} extensions
|
||||||
|
* @param {{ maxDecompressedMessageSize?: number }} [options]
|
||||||
|
*/
|
||||||
|
constructor (ws, extensions, options = {}) {
|
||||||
super()
|
super()
|
||||||
|
|
||||||
this.ws = ws
|
this.ws = ws
|
||||||
this.#extensions = extensions == null ? new Map() : extensions
|
this.#extensions = extensions == null ? new Map() : extensions
|
||||||
|
this.#options = options
|
||||||
|
|
||||||
if (this.#extensions.has('permessage-deflate')) {
|
if (this.#extensions.has('permessage-deflate')) {
|
||||||
this.#extensions.set('permessage-deflate', new PerMessageDeflate(extensions))
|
this.#extensions.set('permessage-deflate', new PerMessageDeflate(extensions, options))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -50292,6 +50383,7 @@ class ByteParser extends Writable {
|
|||||||
|
|
||||||
const buffer = this.consume(8)
|
const buffer = this.consume(8)
|
||||||
const upper = buffer.readUInt32BE(0)
|
const upper = buffer.readUInt32BE(0)
|
||||||
|
const lower = buffer.readUInt32BE(4)
|
||||||
|
|
||||||
// 2^31 is the maximum bytes an arraybuffer can contain
|
// 2^31 is the maximum bytes an arraybuffer can contain
|
||||||
// on 32-bit systems. Although, on 64-bit systems, this is
|
// on 32-bit systems. Although, on 64-bit systems, this is
|
||||||
@@ -50299,14 +50391,12 @@ class ByteParser extends Writable {
|
|||||||
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_array_length
|
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_array_length
|
||||||
// https://source.chromium.org/chromium/chromium/src/+/main:v8/src/common/globals.h;drc=1946212ac0100668f14eb9e2843bdd846e510a1e;bpv=1;bpt=1;l=1275
|
// https://source.chromium.org/chromium/chromium/src/+/main:v8/src/common/globals.h;drc=1946212ac0100668f14eb9e2843bdd846e510a1e;bpv=1;bpt=1;l=1275
|
||||||
// https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/js-array-buffer.h;l=34;drc=1946212ac0100668f14eb9e2843bdd846e510a1e
|
// https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/js-array-buffer.h;l=34;drc=1946212ac0100668f14eb9e2843bdd846e510a1e
|
||||||
if (upper > 2 ** 31 - 1) {
|
if (upper !== 0 || lower > 2 ** 31 - 1) {
|
||||||
failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.')
|
failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const lower = buffer.readUInt32BE(4)
|
this.#info.payloadLength = lower
|
||||||
|
|
||||||
this.#info.payloadLength = (upper << 8) + lower
|
|
||||||
this.#state = parserStates.READ_DATA
|
this.#state = parserStates.READ_DATA
|
||||||
} else if (this.#state === parserStates.READ_DATA) {
|
} else if (this.#state === parserStates.READ_DATA) {
|
||||||
if (this.#byteOffset < this.#info.payloadLength) {
|
if (this.#byteOffset < this.#info.payloadLength) {
|
||||||
@@ -50336,7 +50426,7 @@ class ByteParser extends Writable {
|
|||||||
} else {
|
} else {
|
||||||
this.#extensions.get('permessage-deflate').decompress(body, this.#info.fin, (error, data) => {
|
this.#extensions.get('permessage-deflate').decompress(body, this.#info.fin, (error, data) => {
|
||||||
if (error) {
|
if (error) {
|
||||||
closeWebSocketConnection(this.ws, 1007, error.message, error.message.length)
|
failWebsocketConnection(this.ws, error.message)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -50940,6 +51030,12 @@ function parseExtensions (extensions) {
|
|||||||
* @param {string} value
|
* @param {string} value
|
||||||
*/
|
*/
|
||||||
function isValidClientWindowBits (value) {
|
function isValidClientWindowBits (value) {
|
||||||
|
// Must have at least one character
|
||||||
|
if (value.length === 0) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check all characters are ASCII digits
|
||||||
for (let i = 0; i < value.length; i++) {
|
for (let i = 0; i < value.length; i++) {
|
||||||
const byte = value.charCodeAt(i)
|
const byte = value.charCodeAt(i)
|
||||||
|
|
||||||
@@ -50948,7 +51044,9 @@ function isValidClientWindowBits (value) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true
|
// Check numeric range: zlib requires windowBits in range 8-15
|
||||||
|
const num = Number.parseInt(value, 10)
|
||||||
|
return num >= 8 && num <= 15
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://nodejs.org/api/intl.html#detecting-internationalization-support
|
// https://nodejs.org/api/intl.html#detecting-internationalization-support
|
||||||
@@ -51039,6 +51137,9 @@ class WebSocket extends EventTarget {
|
|||||||
/** @type {SendQueue} */
|
/** @type {SendQueue} */
|
||||||
#sendQueue
|
#sendQueue
|
||||||
|
|
||||||
|
/** @type {{ maxDecompressedMessageSize?: number }} */
|
||||||
|
#options
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} url
|
* @param {string} url
|
||||||
* @param {string|string[]} protocols
|
* @param {string|string[]} protocols
|
||||||
@@ -51112,6 +51213,11 @@ class WebSocket extends EventTarget {
|
|||||||
// 10. Set this's url to urlRecord.
|
// 10. Set this's url to urlRecord.
|
||||||
this[kWebSocketURL] = new URL(urlRecord.href)
|
this[kWebSocketURL] = new URL(urlRecord.href)
|
||||||
|
|
||||||
|
// Store options for later use (e.g., maxDecompressedMessageSize)
|
||||||
|
this.#options = {
|
||||||
|
maxDecompressedMessageSize: options.maxDecompressedMessageSize
|
||||||
|
}
|
||||||
|
|
||||||
// 11. Let client be this's relevant settings object.
|
// 11. Let client be this's relevant settings object.
|
||||||
const client = environmentSettingsObject.settingsObject
|
const client = environmentSettingsObject.settingsObject
|
||||||
|
|
||||||
@@ -51426,11 +51532,11 @@ class WebSocket extends EventTarget {
|
|||||||
* @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol
|
* @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol
|
||||||
*/
|
*/
|
||||||
#onConnectionEstablished (response, parsedExtensions) {
|
#onConnectionEstablished (response, parsedExtensions) {
|
||||||
// processResponse is called when the "response’s header list has been received and initialized."
|
// processResponse is called when the "response's header list has been received and initialized."
|
||||||
// once this happens, the connection is open
|
// once this happens, the connection is open
|
||||||
this[kResponse] = response
|
this[kResponse] = response
|
||||||
|
|
||||||
const parser = new ByteParser(this, parsedExtensions)
|
const parser = new ByteParser(this, parsedExtensions, this.#options)
|
||||||
parser.on('drain', onParserDrain)
|
parser.on('drain', onParserDrain)
|
||||||
parser.on('error', onParserError.bind(this))
|
parser.on('error', onParserError.bind(this))
|
||||||
|
|
||||||
@@ -51533,6 +51639,19 @@ webidl.converters.WebSocketInit = webidl.dictionaryConverter([
|
|||||||
{
|
{
|
||||||
key: 'headers',
|
key: 'headers',
|
||||||
converter: webidl.nullableConverter(webidl.converters.HeadersInit)
|
converter: webidl.nullableConverter(webidl.converters.HeadersInit)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'maxDecompressedMessageSize',
|
||||||
|
converter: webidl.nullableConverter((V) => {
|
||||||
|
V = webidl.converters['unsigned long long'](V)
|
||||||
|
if (V <= 0) {
|
||||||
|
throw webidl.errors.exception({
|
||||||
|
header: 'WebSocket constructor',
|
||||||
|
message: 'maxDecompressedMessageSize must be greater than 0'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return V
|
||||||
|
})
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|||||||
Generated
+3
-3
@@ -3626,9 +3626,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/undici": {
|
"node_modules/undici": {
|
||||||
"version": "6.23.0",
|
"version": "6.24.0",
|
||||||
"resolved": "https://registry.npmjs.org/undici/-/undici-6.23.0.tgz",
|
"resolved": "https://registry.npmjs.org/undici/-/undici-6.24.0.tgz",
|
||||||
"integrity": "sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==",
|
"integrity": "sha512-lVLNosgqo5EkGqh5XUDhGfsMSoO8K0BAN0TyJLvwNRSl4xWGZlCVYsAIpa/OpA3TvmnM01GWcoKmc3ZWo5wKKA==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18.17"
|
"node": ">=18.17"
|
||||||
|
|||||||
Reference in New Issue
Block a user