mirror of
https://github.com/aws-actions/configure-aws-credentials.git
synced 2026-09-04 06:15:07 +09:00
chore: Update dist
This commit is contained in:
+1
-1
@@ -2893,7 +2893,7 @@ SOFTWARE.
|
|||||||
|
|
||||||
The following npm package may be included in this product:
|
The following npm package may be included in this product:
|
||||||
|
|
||||||
- undici@6.23.0
|
- undici@6.24.0
|
||||||
|
|
||||||
This package contains the following license:
|
This package contains the following license:
|
||||||
|
|
||||||
|
|||||||
+111
-14
@@ -935,6 +935,21 @@ var require_errors = __commonJS({
|
|||||||
}
|
}
|
||||||
[kSecureProxyConnectionError] = true;
|
[kSecureProxyConnectionError] = true;
|
||||||
};
|
};
|
||||||
|
var kMessageSizeExceededError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_WS_MESSAGE_SIZE_EXCEEDED");
|
||||||
|
var MessageSizeExceededError = class 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;
|
||||||
|
}
|
||||||
|
};
|
||||||
module2.exports = {
|
module2.exports = {
|
||||||
AbortError,
|
AbortError,
|
||||||
HTTPParserError,
|
HTTPParserError,
|
||||||
@@ -958,7 +973,8 @@ var require_errors = __commonJS({
|
|||||||
ResponseExceededMaxSizeError,
|
ResponseExceededMaxSizeError,
|
||||||
RequestRetryError,
|
RequestRetryError,
|
||||||
ResponseError,
|
ResponseError,
|
||||||
SecureProxyConnectionError
|
SecureProxyConnectionError,
|
||||||
|
MessageSizeExceededError
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -1968,6 +1984,9 @@ var require_request = __commonJS({
|
|||||||
if (upgrade && typeof upgrade !== "string") {
|
if (upgrade && typeof upgrade !== "string") {
|
||||||
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");
|
||||||
}
|
}
|
||||||
@@ -2200,12 +2219,18 @@ var require_request = __commonJS({
|
|||||||
} else {
|
} else {
|
||||||
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");
|
||||||
}
|
}
|
||||||
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");
|
||||||
@@ -16977,13 +17002,17 @@ var require_util7 = __commonJS({
|
|||||||
return extensionList;
|
return extensionList;
|
||||||
}
|
}
|
||||||
function isValidClientWindowBits(value) {
|
function isValidClientWindowBits(value) {
|
||||||
|
if (value.length === 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
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);
|
||||||
if (byte < 48 || byte > 57) {
|
if (byte < 48 || byte > 57) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
const num = Number.parseInt(value, 10);
|
||||||
|
return num >= 8 && num <= 15;
|
||||||
}
|
}
|
||||||
var hasIntl = typeof process.versions.icu === "string";
|
var hasIntl = typeof process.versions.icu === "string";
|
||||||
var fatalDecoder = hasIntl ? new TextDecoder("utf-8", { fatal: true }) : void 0;
|
var fatalDecoder = hasIntl ? new TextDecoder("utf-8", { fatal: true }) : void 0;
|
||||||
@@ -17282,18 +17311,35 @@ var require_permessage_deflate = __commonJS({
|
|||||||
"use strict";
|
"use strict";
|
||||||
var { createInflateRaw, Z_DEFAULT_WINDOWBITS } = require("node:zlib");
|
var { createInflateRaw, Z_DEFAULT_WINDOWBITS } = require("node:zlib");
|
||||||
var { isValidClientWindowBits } = require_util7();
|
var { isValidClientWindowBits } = require_util7();
|
||||||
|
var { MessageSizeExceededError } = require_errors();
|
||||||
var tail = Buffer.from([0, 0, 255, 255]);
|
var tail = Buffer.from([0, 0, 255, 255]);
|
||||||
var kBuffer = /* @__PURE__ */ Symbol("kBuffer");
|
var kBuffer = /* @__PURE__ */ Symbol("kBuffer");
|
||||||
var kLength = /* @__PURE__ */ Symbol("kLength");
|
var kLength = /* @__PURE__ */ Symbol("kLength");
|
||||||
|
var kDefaultMaxDecompressedSize = 4 * 1024 * 1024;
|
||||||
var PerMessageDeflate = class {
|
var PerMessageDeflate = class {
|
||||||
/** @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) {
|
||||||
|
if (this.#aborted) {
|
||||||
|
callback(new MessageSizeExceededError());
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (!this.#inflate) {
|
if (!this.#inflate) {
|
||||||
let windowBits = Z_DEFAULT_WINDOWBITS;
|
let windowBits = Z_DEFAULT_WINDOWBITS;
|
||||||
if (this.#options.serverMaxWindowBits) {
|
if (this.#options.serverMaxWindowBits) {
|
||||||
@@ -17303,26 +17349,51 @@ var require_permessage_deflate = __commonJS({
|
|||||||
}
|
}
|
||||||
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) => {
|
||||||
this.#inflate = null;
|
this.#inflate = null;
|
||||||
callback(err);
|
callback(err);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
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);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -17362,12 +17433,20 @@ var require_receiver = __commonJS({
|
|||||||
#fragments = [];
|
#fragments = [];
|
||||||
/** @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 ? /* @__PURE__ */ new Map() : extensions;
|
this.#extensions = extensions == null ? /* @__PURE__ */ 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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@@ -17465,12 +17544,12 @@ var require_receiver = __commonJS({
|
|||||||
}
|
}
|
||||||
const buffer = this.consume(8);
|
const buffer = this.consume(8);
|
||||||
const upper = buffer.readUInt32BE(0);
|
const upper = buffer.readUInt32BE(0);
|
||||||
if (upper > 2 ** 31 - 1) {
|
const lower = buffer.readUInt32BE(4);
|
||||||
|
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) {
|
||||||
@@ -17492,7 +17571,7 @@ var require_receiver = __commonJS({
|
|||||||
} 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;
|
||||||
}
|
}
|
||||||
this.#fragments.push(data);
|
this.#fragments.push(data);
|
||||||
@@ -17761,6 +17840,8 @@ var require_websocket = __commonJS({
|
|||||||
#extensions = "";
|
#extensions = "";
|
||||||
/** @type {SendQueue} */
|
/** @type {SendQueue} */
|
||||||
#sendQueue;
|
#sendQueue;
|
||||||
|
/** @type {{ maxDecompressedMessageSize?: number }} */
|
||||||
|
#options;
|
||||||
/**
|
/**
|
||||||
* @param {string} url
|
* @param {string} url
|
||||||
* @param {string|string[]} protocols
|
* @param {string|string[]} protocols
|
||||||
@@ -17804,6 +17885,9 @@ var require_websocket = __commonJS({
|
|||||||
throw new DOMException("Invalid Sec-WebSocket-Protocol value", "SyntaxError");
|
throw new DOMException("Invalid Sec-WebSocket-Protocol value", "SyntaxError");
|
||||||
}
|
}
|
||||||
this[kWebSocketURL] = new URL(urlRecord.href);
|
this[kWebSocketURL] = new URL(urlRecord.href);
|
||||||
|
this.#options = {
|
||||||
|
maxDecompressedMessageSize: options.maxDecompressedMessageSize
|
||||||
|
};
|
||||||
const client = environmentSettingsObject.settingsObject;
|
const client = environmentSettingsObject.settingsObject;
|
||||||
this[kController] = establishWebSocketConnection(
|
this[kController] = establishWebSocketConnection(
|
||||||
urlRecord,
|
urlRecord,
|
||||||
@@ -17987,7 +18071,7 @@ var require_websocket = __commonJS({
|
|||||||
*/
|
*/
|
||||||
#onConnectionEstablished(response, parsedExtensions) {
|
#onConnectionEstablished(response, parsedExtensions) {
|
||||||
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));
|
||||||
response.socket.ws = this;
|
response.socket.ws = this;
|
||||||
@@ -18062,6 +18146,19 @@ var require_websocket = __commonJS({
|
|||||||
{
|
{
|
||||||
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;
|
||||||
|
})
|
||||||
}
|
}
|
||||||
]);
|
]);
|
||||||
webidl.converters["DOMString or sequence<DOMString> or WebSocketInit"] = function(V) {
|
webidl.converters["DOMString or sequence<DOMString> or WebSocketInit"] = function(V) {
|
||||||
|
|||||||
+111
-14
@@ -938,6 +938,21 @@ var require_errors = __commonJS({
|
|||||||
}
|
}
|
||||||
[kSecureProxyConnectionError] = true;
|
[kSecureProxyConnectionError] = true;
|
||||||
};
|
};
|
||||||
|
var kMessageSizeExceededError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_WS_MESSAGE_SIZE_EXCEEDED");
|
||||||
|
var MessageSizeExceededError = class 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;
|
||||||
|
}
|
||||||
|
};
|
||||||
module2.exports = {
|
module2.exports = {
|
||||||
AbortError,
|
AbortError,
|
||||||
HTTPParserError,
|
HTTPParserError,
|
||||||
@@ -961,7 +976,8 @@ var require_errors = __commonJS({
|
|||||||
ResponseExceededMaxSizeError,
|
ResponseExceededMaxSizeError,
|
||||||
RequestRetryError,
|
RequestRetryError,
|
||||||
ResponseError,
|
ResponseError,
|
||||||
SecureProxyConnectionError
|
SecureProxyConnectionError,
|
||||||
|
MessageSizeExceededError
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -1971,6 +1987,9 @@ var require_request = __commonJS({
|
|||||||
if (upgrade && typeof upgrade !== "string") {
|
if (upgrade && typeof upgrade !== "string") {
|
||||||
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");
|
||||||
}
|
}
|
||||||
@@ -2203,12 +2222,18 @@ var require_request = __commonJS({
|
|||||||
} else {
|
} else {
|
||||||
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");
|
||||||
}
|
}
|
||||||
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");
|
||||||
@@ -16980,13 +17005,17 @@ var require_util7 = __commonJS({
|
|||||||
return extensionList;
|
return extensionList;
|
||||||
}
|
}
|
||||||
function isValidClientWindowBits(value) {
|
function isValidClientWindowBits(value) {
|
||||||
|
if (value.length === 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
for (let i5 = 0; i5 < value.length; i5++) {
|
for (let i5 = 0; i5 < value.length; i5++) {
|
||||||
const byte = value.charCodeAt(i5);
|
const byte = value.charCodeAt(i5);
|
||||||
if (byte < 48 || byte > 57) {
|
if (byte < 48 || byte > 57) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
const num = Number.parseInt(value, 10);
|
||||||
|
return num >= 8 && num <= 15;
|
||||||
}
|
}
|
||||||
var hasIntl = typeof process.versions.icu === "string";
|
var hasIntl = typeof process.versions.icu === "string";
|
||||||
var fatalDecoder = hasIntl ? new TextDecoder("utf-8", { fatal: true }) : void 0;
|
var fatalDecoder = hasIntl ? new TextDecoder("utf-8", { fatal: true }) : void 0;
|
||||||
@@ -17285,18 +17314,35 @@ var require_permessage_deflate = __commonJS({
|
|||||||
"use strict";
|
"use strict";
|
||||||
var { createInflateRaw, Z_DEFAULT_WINDOWBITS } = require("node:zlib");
|
var { createInflateRaw, Z_DEFAULT_WINDOWBITS } = require("node:zlib");
|
||||||
var { isValidClientWindowBits } = require_util7();
|
var { isValidClientWindowBits } = require_util7();
|
||||||
|
var { MessageSizeExceededError } = require_errors();
|
||||||
var tail = Buffer.from([0, 0, 255, 255]);
|
var tail = Buffer.from([0, 0, 255, 255]);
|
||||||
var kBuffer = /* @__PURE__ */ Symbol("kBuffer");
|
var kBuffer = /* @__PURE__ */ Symbol("kBuffer");
|
||||||
var kLength = /* @__PURE__ */ Symbol("kLength");
|
var kLength = /* @__PURE__ */ Symbol("kLength");
|
||||||
|
var kDefaultMaxDecompressedSize = 4 * 1024 * 1024;
|
||||||
var PerMessageDeflate = class {
|
var PerMessageDeflate = class {
|
||||||
/** @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) {
|
||||||
|
if (this.#aborted) {
|
||||||
|
callback(new MessageSizeExceededError());
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (!this.#inflate) {
|
if (!this.#inflate) {
|
||||||
let windowBits = Z_DEFAULT_WINDOWBITS;
|
let windowBits = Z_DEFAULT_WINDOWBITS;
|
||||||
if (this.#options.serverMaxWindowBits) {
|
if (this.#options.serverMaxWindowBits) {
|
||||||
@@ -17306,26 +17352,51 @@ var require_permessage_deflate = __commonJS({
|
|||||||
}
|
}
|
||||||
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", (data2) => {
|
this.#inflate.on("data", (data2) => {
|
||||||
this.#inflate[kBuffer].push(data2);
|
if (this.#aborted) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
this.#inflate[kLength] += data2.length;
|
this.#inflate[kLength] += data2.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(data2);
|
||||||
});
|
});
|
||||||
this.#inflate.on("error", (err) => {
|
this.#inflate.on("error", (err) => {
|
||||||
this.#inflate = null;
|
this.#inflate = null;
|
||||||
callback(err);
|
callback(err);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
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);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -17365,12 +17436,20 @@ var require_receiver = __commonJS({
|
|||||||
#fragments = [];
|
#fragments = [];
|
||||||
/** @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 ? /* @__PURE__ */ new Map() : extensions;
|
this.#extensions = extensions == null ? /* @__PURE__ */ 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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@@ -17468,12 +17547,12 @@ var require_receiver = __commonJS({
|
|||||||
}
|
}
|
||||||
const buffer = this.consume(8);
|
const buffer = this.consume(8);
|
||||||
const upper = buffer.readUInt32BE(0);
|
const upper = buffer.readUInt32BE(0);
|
||||||
if (upper > 2 ** 31 - 1) {
|
const lower = buffer.readUInt32BE(4);
|
||||||
|
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) {
|
||||||
@@ -17495,7 +17574,7 @@ var require_receiver = __commonJS({
|
|||||||
} else {
|
} else {
|
||||||
this.#extensions.get("permessage-deflate").decompress(body, this.#info.fin, (error2, data2) => {
|
this.#extensions.get("permessage-deflate").decompress(body, this.#info.fin, (error2, data2) => {
|
||||||
if (error2) {
|
if (error2) {
|
||||||
closeWebSocketConnection(this.ws, 1007, error2.message, error2.message.length);
|
failWebsocketConnection(this.ws, error2.message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.#fragments.push(data2);
|
this.#fragments.push(data2);
|
||||||
@@ -17764,6 +17843,8 @@ var require_websocket = __commonJS({
|
|||||||
#extensions = "";
|
#extensions = "";
|
||||||
/** @type {SendQueue} */
|
/** @type {SendQueue} */
|
||||||
#sendQueue;
|
#sendQueue;
|
||||||
|
/** @type {{ maxDecompressedMessageSize?: number }} */
|
||||||
|
#options;
|
||||||
/**
|
/**
|
||||||
* @param {string} url
|
* @param {string} url
|
||||||
* @param {string|string[]} protocols
|
* @param {string|string[]} protocols
|
||||||
@@ -17807,6 +17888,9 @@ var require_websocket = __commonJS({
|
|||||||
throw new DOMException("Invalid Sec-WebSocket-Protocol value", "SyntaxError");
|
throw new DOMException("Invalid Sec-WebSocket-Protocol value", "SyntaxError");
|
||||||
}
|
}
|
||||||
this[kWebSocketURL] = new URL(urlRecord.href);
|
this[kWebSocketURL] = new URL(urlRecord.href);
|
||||||
|
this.#options = {
|
||||||
|
maxDecompressedMessageSize: options.maxDecompressedMessageSize
|
||||||
|
};
|
||||||
const client = environmentSettingsObject.settingsObject;
|
const client = environmentSettingsObject.settingsObject;
|
||||||
this[kController] = establishWebSocketConnection(
|
this[kController] = establishWebSocketConnection(
|
||||||
urlRecord,
|
urlRecord,
|
||||||
@@ -17990,7 +18074,7 @@ var require_websocket = __commonJS({
|
|||||||
*/
|
*/
|
||||||
#onConnectionEstablished(response, parsedExtensions) {
|
#onConnectionEstablished(response, parsedExtensions) {
|
||||||
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));
|
||||||
response.socket.ws = this;
|
response.socket.ws = this;
|
||||||
@@ -18065,6 +18149,19 @@ var require_websocket = __commonJS({
|
|||||||
{
|
{
|
||||||
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;
|
||||||
|
})
|
||||||
}
|
}
|
||||||
]);
|
]);
|
||||||
webidl.converters["DOMString or sequence<DOMString> or WebSocketInit"] = function(V) {
|
webidl.converters["DOMString or sequence<DOMString> or WebSocketInit"] = function(V) {
|
||||||
|
|||||||
Reference in New Issue
Block a user