@relative-ci/core 6.0.0-beta.5 → 6.0.1-beta.0
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.
- package/lib/cjs/__/content-type/dist/index.js +155 -71
- package/lib/cjs/__/content-type/dist/index.js.map +1 -1
- package/lib/cjs/__/undici/lib/core/request.js +68 -2
- package/lib/cjs/__/undici/lib/core/request.js.map +1 -1
- package/lib/cjs/__/undici/lib/dispatcher/agent.js +6 -2
- package/lib/cjs/__/undici/lib/dispatcher/agent.js.map +1 -1
- package/lib/cjs/__/undici/lib/dispatcher/client-h1.js +18 -9
- package/lib/cjs/__/undici/lib/dispatcher/client-h1.js.map +1 -1
- package/lib/cjs/__/undici/lib/dispatcher/client-h2.js +73 -23
- package/lib/cjs/__/undici/lib/dispatcher/client-h2.js.map +1 -1
- package/lib/cjs/__/undici/lib/dispatcher/client.js +3 -2
- package/lib/cjs/__/undici/lib/dispatcher/client.js.map +1 -1
- package/lib/cjs/__/undici/lib/dispatcher/dispatcher-base.js +14 -0
- package/lib/cjs/__/undici/lib/dispatcher/dispatcher-base.js.map +1 -1
- package/lib/cjs/__/undici/lib/handler/retry-handler.js +4 -1
- package/lib/cjs/__/undici/lib/handler/retry-handler.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/eventsource/eventsource-stream.js +93 -10
- package/lib/cjs/__/undici/lib/web/eventsource/eventsource-stream.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/eventsource/eventsource.js +5 -1
- package/lib/cjs/__/undici/lib/web/eventsource/eventsource.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/fetch/index.js +7 -9
- package/lib/cjs/__/undici/lib/web/fetch/index.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/websocket/receiver.js +14 -0
- package/lib/cjs/__/undici/lib/web/websocket/receiver.js.map +1 -1
- package/lib/cjs/env/load.js +1 -1
- package/lib/cjs/index.js +4 -4
- package/lib/cjs/ingest/ingest.js +1 -1
- package/lib/esm/__/content-type/dist/index.js +155 -71
- package/lib/esm/__/content-type/dist/index.js.map +1 -1
- package/lib/esm/__/undici/lib/core/request.js +68 -2
- package/lib/esm/__/undici/lib/core/request.js.map +1 -1
- package/lib/esm/__/undici/lib/dispatcher/agent.js +6 -2
- package/lib/esm/__/undici/lib/dispatcher/agent.js.map +1 -1
- package/lib/esm/__/undici/lib/dispatcher/client-h1.js +18 -9
- package/lib/esm/__/undici/lib/dispatcher/client-h1.js.map +1 -1
- package/lib/esm/__/undici/lib/dispatcher/client-h2.js +72 -23
- package/lib/esm/__/undici/lib/dispatcher/client-h2.js.map +1 -1
- package/lib/esm/__/undici/lib/dispatcher/client.js +3 -2
- package/lib/esm/__/undici/lib/dispatcher/client.js.map +1 -1
- package/lib/esm/__/undici/lib/dispatcher/dispatcher-base.js +10 -0
- package/lib/esm/__/undici/lib/dispatcher/dispatcher-base.js.map +1 -1
- package/lib/esm/__/undici/lib/handler/retry-handler.js +4 -1
- package/lib/esm/__/undici/lib/handler/retry-handler.js.map +1 -1
- package/lib/esm/__/undici/lib/web/eventsource/eventsource-stream.js +92 -10
- package/lib/esm/__/undici/lib/web/eventsource/eventsource-stream.js.map +1 -1
- package/lib/esm/__/undici/lib/web/eventsource/eventsource.js +5 -1
- package/lib/esm/__/undici/lib/web/eventsource/eventsource.js.map +1 -1
- package/lib/esm/__/undici/lib/web/fetch/index.js +7 -9
- package/lib/esm/__/undici/lib/web/fetch/index.js.map +1 -1
- package/lib/esm/__/undici/lib/web/websocket/receiver.js +14 -0
- package/lib/esm/__/undici/lib/web/websocket/receiver.js.map +1 -1
- package/lib/esm/env/load.js +1 -1
- package/package.json +10 -10
|
@@ -272,6 +272,20 @@ function requireReceiver () {
|
|
|
272
272
|
if (isControlFrame(this.#info.opcode)) {
|
|
273
273
|
this.#loop = this.parseControlFrame(body);
|
|
274
274
|
this.#state = parserStates.INFO;
|
|
275
|
+
|
|
276
|
+
// If the automatic PONG/CLOSE reply filled the socket's write buffer,
|
|
277
|
+
// stop parsing and resume on drain so a PING flood cannot grow the
|
|
278
|
+
// outbound queue without bound.
|
|
279
|
+
const socket = this.ws[kResponse].socket;
|
|
280
|
+
if (this.#loop && socket.writableNeedDrain) {
|
|
281
|
+
this.#loop = false;
|
|
282
|
+
socket.once('drain', () => {
|
|
283
|
+
if (this.destroyed) return
|
|
284
|
+
this.#loop = true;
|
|
285
|
+
this.run(callback);
|
|
286
|
+
});
|
|
287
|
+
return
|
|
288
|
+
}
|
|
275
289
|
} else {
|
|
276
290
|
if (!this.#info.compressed) {
|
|
277
291
|
if (!this.writeFragments(body)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"receiver.js","sources":["../../../../../../../../../node_modules/undici/lib/web/websocket/receiver.js"],"sourcesContent":["'use strict'\n\nconst { Writable } = require('node:stream')\nconst assert = require('node:assert')\nconst { parserStates, opcodes, states, emptyBuffer, sentCloseFrameState } = require('./constants')\nconst { kReadyState, kSentClose, kResponse, kReceivedClose } = require('./symbols')\nconst { channels } = require('../../core/diagnostics')\nconst {\n isValidStatusCode,\n isValidOpcode,\n failWebsocketConnection,\n websocketMessageReceived,\n utf8Decode,\n isControlFrame,\n isTextBinaryFrame,\n isContinuationFrame\n} = require('./util')\nconst { WebsocketFrameSend } = require('./frame')\nconst { closeWebSocketConnection } = require('./connection')\nconst { PerMessageDeflate } = require('./permessage-deflate')\nconst { MessageSizeExceededError } = require('../../core/errors')\n\nfunction failWebsocketConnectionWithCode (ws, code, reason) {\n closeWebSocketConnection(ws, code, reason, Buffer.byteLength(reason))\n failWebsocketConnection(ws, reason)\n}\n\n// This code was influenced by ws released under the MIT license.\n// Copyright (c) 2011 Einar Otto Stangvik <einaros@gmail.com>\n// Copyright (c) 2013 Arnout Kazemier and contributors\n// Copyright (c) 2016 Luigi Pinca and contributors\n\nclass ByteParser extends Writable {\n #buffers = []\n #fragmentsBytes = 0\n #byteOffset = 0\n #loop = false\n\n #state = parserStates.INFO\n\n #info = {}\n #fragments = []\n\n /** @type {Map<string, PerMessageDeflate>} */\n #extensions\n\n /** @type {number} */\n #maxFragments\n\n /** @type {number} */\n #maxPayloadSize\n\n /**\n * @param {import('./websocket').WebSocket} ws\n * @param {Map<string, string>|null} extensions\n * @param {{ maxFragments?: number, maxPayloadSize?: number }} [options]\n */\n constructor (ws, extensions, options = {}) {\n super()\n\n this.ws = ws\n this.#extensions = extensions == null ? new Map() : extensions\n this.#maxFragments = options.maxFragments ?? 0\n this.#maxPayloadSize = options.maxPayloadSize ?? 0\n\n if (this.#extensions.has('permessage-deflate')) {\n this.#extensions.set('permessage-deflate', new PerMessageDeflate(extensions, options))\n }\n }\n\n /**\n * @param {Buffer} chunk\n * @param {() => void} callback\n */\n _write (chunk, _, callback) {\n this.#buffers.push(chunk)\n this.#byteOffset += chunk.length\n this.#loop = true\n\n this.run(callback)\n }\n\n #validatePayloadLength () {\n if (\n this.#maxPayloadSize > 0 &&\n !isControlFrame(this.#info.opcode) &&\n this.#info.payloadLength + this.#fragmentsBytes > this.#maxPayloadSize\n ) {\n failWebsocketConnectionWithCode(this.ws, 1009, 'Payload size exceeds maximum allowed size')\n return false\n }\n\n return true\n }\n\n /**\n * Runs whenever a new chunk is received.\n * Callback is called whenever there are no more chunks buffering,\n * or not enough bytes are buffered to parse.\n */\n run (callback) {\n while (this.#loop) {\n if (this.#state === parserStates.INFO) {\n // If there aren't enough bytes to parse the payload length, etc.\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n const fin = (buffer[0] & 0x80) !== 0\n const opcode = buffer[0] & 0x0F\n const masked = (buffer[1] & 0x80) === 0x80\n\n const fragmented = !fin && opcode !== opcodes.CONTINUATION\n const payloadLength = buffer[1] & 0x7F\n\n const rsv1 = buffer[0] & 0x40\n const rsv2 = buffer[0] & 0x20\n const rsv3 = buffer[0] & 0x10\n\n if (!isValidOpcode(opcode)) {\n failWebsocketConnection(this.ws, 'Invalid opcode received')\n return callback()\n }\n\n if (masked) {\n failWebsocketConnection(this.ws, 'Frame cannot be masked')\n return callback()\n }\n\n // MUST be 0 unless an extension is negotiated that defines meanings\n // for non-zero values. If a nonzero value is received and none of\n // the negotiated extensions defines the meaning of such a nonzero\n // value, the receiving endpoint MUST _Fail the WebSocket\n // Connection_.\n // This document allocates the RSV1 bit of the WebSocket header for\n // PMCEs and calls the bit the \"Per-Message Compressed\" bit. On a\n // WebSocket connection where a PMCE is in use, this bit indicates\n // whether a message is compressed or not.\n if (rsv1 !== 0 && !this.#extensions.has('permessage-deflate')) {\n failWebsocketConnection(this.ws, 'Expected RSV1 to be clear.')\n return\n }\n\n if (rsv2 !== 0 || rsv3 !== 0) {\n failWebsocketConnection(this.ws, 'RSV1, RSV2, RSV3 must be clear')\n return\n }\n\n if (fragmented && !isTextBinaryFrame(opcode)) {\n // Only text and binary frames can be fragmented\n failWebsocketConnection(this.ws, 'Invalid frame type was fragmented.')\n return\n }\n\n // If we are already parsing a text/binary frame and do not receive either\n // a continuation frame or close frame, fail the connection.\n if (isTextBinaryFrame(opcode) && this.#fragments.length > 0) {\n failWebsocketConnection(this.ws, 'Expected continuation frame')\n return\n }\n\n if (this.#info.fragmented && fragmented) {\n // A fragmented frame can't be fragmented itself\n failWebsocketConnection(this.ws, 'Fragmented frame exceeded 125 bytes.')\n return\n }\n\n // \"All control frames MUST have a payload length of 125 bytes or less\n // and MUST NOT be fragmented.\"\n if ((payloadLength > 125 || fragmented) && isControlFrame(opcode)) {\n failWebsocketConnection(this.ws, 'Control frame either too large or fragmented')\n return\n }\n\n if (isContinuationFrame(opcode) && this.#fragments.length === 0 && !this.#info.compressed) {\n failWebsocketConnection(this.ws, 'Unexpected continuation frame')\n return\n }\n\n if (payloadLength <= 125) {\n this.#info.payloadLength = payloadLength\n this.#state = parserStates.READ_DATA\n\n if (!this.#validatePayloadLength()) {\n return\n }\n } else if (payloadLength === 126) {\n this.#state = parserStates.PAYLOADLENGTH_16\n } else if (payloadLength === 127) {\n this.#state = parserStates.PAYLOADLENGTH_64\n }\n\n if (isTextBinaryFrame(opcode)) {\n this.#info.binaryType = opcode\n this.#info.compressed = rsv1 !== 0\n }\n\n this.#info.opcode = opcode\n this.#info.masked = masked\n this.#info.fin = fin\n this.#info.fragmented = fragmented\n } else if (this.#state === parserStates.PAYLOADLENGTH_16) {\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.payloadLength = buffer.readUInt16BE(0)\n this.#state = parserStates.READ_DATA\n\n if (!this.#validatePayloadLength()) {\n return\n }\n } else if (this.#state === parserStates.PAYLOADLENGTH_64) {\n if (this.#byteOffset < 8) {\n return callback()\n }\n\n const buffer = this.consume(8)\n const upper = buffer.readUInt32BE(0)\n const lower = buffer.readUInt32BE(4)\n\n // 2^31 is the maximum bytes an arraybuffer can contain\n // on 32-bit systems. Although, on 64-bit systems, this is\n // 2^53-1 bytes.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_array_length\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/common/globals.h;drc=1946212ac0100668f14eb9e2843bdd846e510a1e;bpv=1;bpt=1;l=1275\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/js-array-buffer.h;l=34;drc=1946212ac0100668f14eb9e2843bdd846e510a1e\n if (upper !== 0 || lower > 2 ** 31 - 1) {\n failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.')\n return\n }\n\n this.#info.payloadLength = lower\n this.#state = parserStates.READ_DATA\n\n if (!this.#validatePayloadLength()) {\n return\n }\n } else if (this.#state === parserStates.READ_DATA) {\n if (this.#byteOffset < this.#info.payloadLength) {\n return callback()\n }\n\n const body = this.consume(this.#info.payloadLength)\n\n if (isControlFrame(this.#info.opcode)) {\n this.#loop = this.parseControlFrame(body)\n this.#state = parserStates.INFO\n } else {\n if (!this.#info.compressed) {\n if (!this.writeFragments(body)) {\n return\n }\n\n if (this.#maxPayloadSize > 0 && this.#fragmentsBytes > this.#maxPayloadSize) {\n failWebsocketConnectionWithCode(this.ws, 1009, new MessageSizeExceededError().message)\n return\n }\n\n // If the frame is not fragmented, a message has been received.\n // If the frame is fragmented, it will terminate with a fin bit set\n // and an opcode of 0 (continuation), therefore we handle that when\n // parsing continuation frames, not here.\n if (!this.#info.fragmented && this.#info.fin) {\n websocketMessageReceived(this.ws, this.#info.binaryType, this.consumeFragments())\n }\n\n this.#state = parserStates.INFO\n } else {\n this.#extensions.get('permessage-deflate').decompress(\n body,\n this.#info.fin,\n (error, data) => {\n if (error) {\n const code = error instanceof MessageSizeExceededError ? 1009 : 1007\n failWebsocketConnectionWithCode(this.ws, code, error.message)\n return\n }\n\n if (!this.writeFragments(data)) {\n return\n }\n\n if (this.#maxPayloadSize > 0 && this.#fragmentsBytes > this.#maxPayloadSize) {\n failWebsocketConnectionWithCode(this.ws, 1009, new MessageSizeExceededError().message)\n return\n }\n\n if (!this.#info.fin) {\n this.#state = parserStates.INFO\n this.#loop = true\n this.run(callback)\n return\n }\n\n websocketMessageReceived(this.ws, this.#info.binaryType, this.consumeFragments())\n\n this.#loop = true\n this.#state = parserStates.INFO\n this.run(callback)\n }\n )\n\n this.#loop = false\n break\n }\n }\n }\n }\n }\n\n /**\n * Take n bytes from the buffered Buffers\n * @param {number} n\n * @returns {Buffer}\n */\n consume (n) {\n if (n > this.#byteOffset) {\n throw new Error('Called consume() before buffers satiated.')\n } else if (n === 0) {\n return emptyBuffer\n }\n\n if (this.#buffers[0].length === n) {\n this.#byteOffset -= this.#buffers[0].length\n return this.#buffers.shift()\n }\n\n const buffer = Buffer.allocUnsafe(n)\n let offset = 0\n\n while (offset !== n) {\n const next = this.#buffers[0]\n const { length } = next\n\n if (length + offset === n) {\n buffer.set(this.#buffers.shift(), offset)\n break\n } else if (length + offset > n) {\n buffer.set(next.subarray(0, n - offset), offset)\n this.#buffers[0] = next.subarray(n - offset)\n break\n } else {\n buffer.set(this.#buffers.shift(), offset)\n offset += next.length\n }\n }\n\n this.#byteOffset -= n\n\n return buffer\n }\n\n writeFragments (fragment) {\n if (\n this.#maxFragments > 0 &&\n this.#fragments.length === this.#maxFragments\n ) {\n failWebsocketConnectionWithCode(this.ws, 1008, 'Too many message fragments')\n return false\n }\n\n this.#fragmentsBytes += fragment.length\n this.#fragments.push(fragment)\n return true\n }\n\n consumeFragments () {\n const fragments = this.#fragments\n\n if (fragments.length === 1) {\n this.#fragmentsBytes = 0\n return fragments.shift()\n }\n\n const output = Buffer.concat(fragments, this.#fragmentsBytes)\n this.#fragments = []\n this.#fragmentsBytes = 0\n\n return output\n }\n\n parseCloseBody (data) {\n assert(data.length !== 1)\n\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.5\n /** @type {number|undefined} */\n let code\n\n if (data.length >= 2) {\n // _The WebSocket Connection Close Code_ is\n // defined as the status code (Section 7.4) contained in the first Close\n // control frame received by the application\n code = data.readUInt16BE(0)\n }\n\n if (code !== undefined && !isValidStatusCode(code)) {\n return { code: 1002, reason: 'Invalid status code', error: true }\n }\n\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.6\n /** @type {Buffer} */\n let reason = data.subarray(2)\n\n // Remove BOM\n if (reason[0] === 0xEF && reason[1] === 0xBB && reason[2] === 0xBF) {\n reason = reason.subarray(3)\n }\n\n try {\n reason = utf8Decode(reason)\n } catch {\n return { code: 1007, reason: 'Invalid UTF-8', error: true }\n }\n\n return { code, reason, error: false }\n }\n\n /**\n * Parses control frames.\n * @param {Buffer} body\n */\n parseControlFrame (body) {\n const { opcode, payloadLength } = this.#info\n\n if (opcode === opcodes.CLOSE) {\n if (payloadLength === 1) {\n failWebsocketConnection(this.ws, 'Received close frame with a 1-byte body.')\n return false\n }\n\n this.#info.closeInfo = this.parseCloseBody(body)\n\n if (this.#info.closeInfo.error) {\n const { code, reason } = this.#info.closeInfo\n\n closeWebSocketConnection(this.ws, code, reason, reason.length)\n failWebsocketConnection(this.ws, reason)\n return false\n }\n\n if (this.ws[kSentClose] !== sentCloseFrameState.SENT) {\n // If an endpoint receives a Close frame and did not previously send a\n // Close frame, the endpoint MUST send a Close frame in response. (When\n // sending a Close frame in response, the endpoint typically echos the\n // status code it received.)\n let body = emptyBuffer\n if (this.#info.closeInfo.code) {\n body = Buffer.allocUnsafe(2)\n body.writeUInt16BE(this.#info.closeInfo.code, 0)\n }\n const closeFrame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(\n closeFrame.createFrame(opcodes.CLOSE),\n (err) => {\n if (!err) {\n this.ws[kSentClose] = sentCloseFrameState.SENT\n }\n }\n )\n }\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this.ws[kReadyState] = states.CLOSING\n this.ws[kReceivedClose] = true\n\n return false\n } else if (opcode === opcodes.PING) {\n // Upon receipt of a Ping frame, an endpoint MUST send a Pong frame in\n // response, unless it already received a Close frame.\n // A Pong frame sent in response to a Ping frame must have identical\n // \"Application data\"\n\n if (!this.ws[kReceivedClose]) {\n const frame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG))\n\n if (channels.ping.hasSubscribers) {\n channels.ping.publish({\n payload: body\n })\n }\n }\n } else if (opcode === opcodes.PONG) {\n // A Pong frame MAY be sent unsolicited. This serves as a\n // unidirectional heartbeat. A response to an unsolicited Pong frame is\n // not expected.\n\n if (channels.pong.hasSubscribers) {\n channels.pong.publish({\n payload: body\n })\n }\n }\n\n return true\n }\n\n get closingInfo () {\n return this.#info.closeInfo\n }\n}\n\nmodule.exports = {\n ByteParser\n}\n"],"names":["require$$0","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"receiver.js","sources":["../../../../../../../../../node_modules/undici/lib/web/websocket/receiver.js"],"sourcesContent":["'use strict'\n\nconst { Writable } = require('node:stream')\nconst assert = require('node:assert')\nconst { parserStates, opcodes, states, emptyBuffer, sentCloseFrameState } = require('./constants')\nconst { kReadyState, kSentClose, kResponse, kReceivedClose } = require('./symbols')\nconst { channels } = require('../../core/diagnostics')\nconst {\n isValidStatusCode,\n isValidOpcode,\n failWebsocketConnection,\n websocketMessageReceived,\n utf8Decode,\n isControlFrame,\n isTextBinaryFrame,\n isContinuationFrame\n} = require('./util')\nconst { WebsocketFrameSend } = require('./frame')\nconst { closeWebSocketConnection } = require('./connection')\nconst { PerMessageDeflate } = require('./permessage-deflate')\nconst { MessageSizeExceededError } = require('../../core/errors')\n\nfunction failWebsocketConnectionWithCode (ws, code, reason) {\n closeWebSocketConnection(ws, code, reason, Buffer.byteLength(reason))\n failWebsocketConnection(ws, reason)\n}\n\n// This code was influenced by ws released under the MIT license.\n// Copyright (c) 2011 Einar Otto Stangvik <einaros@gmail.com>\n// Copyright (c) 2013 Arnout Kazemier and contributors\n// Copyright (c) 2016 Luigi Pinca and contributors\n\nclass ByteParser extends Writable {\n #buffers = []\n #fragmentsBytes = 0\n #byteOffset = 0\n #loop = false\n\n #state = parserStates.INFO\n\n #info = {}\n #fragments = []\n\n /** @type {Map<string, PerMessageDeflate>} */\n #extensions\n\n /** @type {number} */\n #maxFragments\n\n /** @type {number} */\n #maxPayloadSize\n\n /**\n * @param {import('./websocket').WebSocket} ws\n * @param {Map<string, string>|null} extensions\n * @param {{ maxFragments?: number, maxPayloadSize?: number }} [options]\n */\n constructor (ws, extensions, options = {}) {\n super()\n\n this.ws = ws\n this.#extensions = extensions == null ? new Map() : extensions\n this.#maxFragments = options.maxFragments ?? 0\n this.#maxPayloadSize = options.maxPayloadSize ?? 0\n\n if (this.#extensions.has('permessage-deflate')) {\n this.#extensions.set('permessage-deflate', new PerMessageDeflate(extensions, options))\n }\n }\n\n /**\n * @param {Buffer} chunk\n * @param {() => void} callback\n */\n _write (chunk, _, callback) {\n this.#buffers.push(chunk)\n this.#byteOffset += chunk.length\n this.#loop = true\n\n this.run(callback)\n }\n\n #validatePayloadLength () {\n if (\n this.#maxPayloadSize > 0 &&\n !isControlFrame(this.#info.opcode) &&\n this.#info.payloadLength + this.#fragmentsBytes > this.#maxPayloadSize\n ) {\n failWebsocketConnectionWithCode(this.ws, 1009, 'Payload size exceeds maximum allowed size')\n return false\n }\n\n return true\n }\n\n /**\n * Runs whenever a new chunk is received.\n * Callback is called whenever there are no more chunks buffering,\n * or not enough bytes are buffered to parse.\n */\n run (callback) {\n while (this.#loop) {\n if (this.#state === parserStates.INFO) {\n // If there aren't enough bytes to parse the payload length, etc.\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n const fin = (buffer[0] & 0x80) !== 0\n const opcode = buffer[0] & 0x0F\n const masked = (buffer[1] & 0x80) === 0x80\n\n const fragmented = !fin && opcode !== opcodes.CONTINUATION\n const payloadLength = buffer[1] & 0x7F\n\n const rsv1 = buffer[0] & 0x40\n const rsv2 = buffer[0] & 0x20\n const rsv3 = buffer[0] & 0x10\n\n if (!isValidOpcode(opcode)) {\n failWebsocketConnection(this.ws, 'Invalid opcode received')\n return callback()\n }\n\n if (masked) {\n failWebsocketConnection(this.ws, 'Frame cannot be masked')\n return callback()\n }\n\n // MUST be 0 unless an extension is negotiated that defines meanings\n // for non-zero values. If a nonzero value is received and none of\n // the negotiated extensions defines the meaning of such a nonzero\n // value, the receiving endpoint MUST _Fail the WebSocket\n // Connection_.\n // This document allocates the RSV1 bit of the WebSocket header for\n // PMCEs and calls the bit the \"Per-Message Compressed\" bit. On a\n // WebSocket connection where a PMCE is in use, this bit indicates\n // whether a message is compressed or not.\n if (rsv1 !== 0 && !this.#extensions.has('permessage-deflate')) {\n failWebsocketConnection(this.ws, 'Expected RSV1 to be clear.')\n return\n }\n\n if (rsv2 !== 0 || rsv3 !== 0) {\n failWebsocketConnection(this.ws, 'RSV1, RSV2, RSV3 must be clear')\n return\n }\n\n if (fragmented && !isTextBinaryFrame(opcode)) {\n // Only text and binary frames can be fragmented\n failWebsocketConnection(this.ws, 'Invalid frame type was fragmented.')\n return\n }\n\n // If we are already parsing a text/binary frame and do not receive either\n // a continuation frame or close frame, fail the connection.\n if (isTextBinaryFrame(opcode) && this.#fragments.length > 0) {\n failWebsocketConnection(this.ws, 'Expected continuation frame')\n return\n }\n\n if (this.#info.fragmented && fragmented) {\n // A fragmented frame can't be fragmented itself\n failWebsocketConnection(this.ws, 'Fragmented frame exceeded 125 bytes.')\n return\n }\n\n // \"All control frames MUST have a payload length of 125 bytes or less\n // and MUST NOT be fragmented.\"\n if ((payloadLength > 125 || fragmented) && isControlFrame(opcode)) {\n failWebsocketConnection(this.ws, 'Control frame either too large or fragmented')\n return\n }\n\n if (isContinuationFrame(opcode) && this.#fragments.length === 0 && !this.#info.compressed) {\n failWebsocketConnection(this.ws, 'Unexpected continuation frame')\n return\n }\n\n if (payloadLength <= 125) {\n this.#info.payloadLength = payloadLength\n this.#state = parserStates.READ_DATA\n\n if (!this.#validatePayloadLength()) {\n return\n }\n } else if (payloadLength === 126) {\n this.#state = parserStates.PAYLOADLENGTH_16\n } else if (payloadLength === 127) {\n this.#state = parserStates.PAYLOADLENGTH_64\n }\n\n if (isTextBinaryFrame(opcode)) {\n this.#info.binaryType = opcode\n this.#info.compressed = rsv1 !== 0\n }\n\n this.#info.opcode = opcode\n this.#info.masked = masked\n this.#info.fin = fin\n this.#info.fragmented = fragmented\n } else if (this.#state === parserStates.PAYLOADLENGTH_16) {\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.payloadLength = buffer.readUInt16BE(0)\n this.#state = parserStates.READ_DATA\n\n if (!this.#validatePayloadLength()) {\n return\n }\n } else if (this.#state === parserStates.PAYLOADLENGTH_64) {\n if (this.#byteOffset < 8) {\n return callback()\n }\n\n const buffer = this.consume(8)\n const upper = buffer.readUInt32BE(0)\n const lower = buffer.readUInt32BE(4)\n\n // 2^31 is the maximum bytes an arraybuffer can contain\n // on 32-bit systems. Although, on 64-bit systems, this is\n // 2^53-1 bytes.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_array_length\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/common/globals.h;drc=1946212ac0100668f14eb9e2843bdd846e510a1e;bpv=1;bpt=1;l=1275\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/js-array-buffer.h;l=34;drc=1946212ac0100668f14eb9e2843bdd846e510a1e\n if (upper !== 0 || lower > 2 ** 31 - 1) {\n failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.')\n return\n }\n\n this.#info.payloadLength = lower\n this.#state = parserStates.READ_DATA\n\n if (!this.#validatePayloadLength()) {\n return\n }\n } else if (this.#state === parserStates.READ_DATA) {\n if (this.#byteOffset < this.#info.payloadLength) {\n return callback()\n }\n\n const body = this.consume(this.#info.payloadLength)\n\n if (isControlFrame(this.#info.opcode)) {\n this.#loop = this.parseControlFrame(body)\n this.#state = parserStates.INFO\n\n // If the automatic PONG/CLOSE reply filled the socket's write buffer,\n // stop parsing and resume on drain so a PING flood cannot grow the\n // outbound queue without bound.\n const socket = this.ws[kResponse].socket\n if (this.#loop && socket.writableNeedDrain) {\n this.#loop = false\n socket.once('drain', () => {\n if (this.destroyed) return\n this.#loop = true\n this.run(callback)\n })\n return\n }\n } else {\n if (!this.#info.compressed) {\n if (!this.writeFragments(body)) {\n return\n }\n\n if (this.#maxPayloadSize > 0 && this.#fragmentsBytes > this.#maxPayloadSize) {\n failWebsocketConnectionWithCode(this.ws, 1009, new MessageSizeExceededError().message)\n return\n }\n\n // If the frame is not fragmented, a message has been received.\n // If the frame is fragmented, it will terminate with a fin bit set\n // and an opcode of 0 (continuation), therefore we handle that when\n // parsing continuation frames, not here.\n if (!this.#info.fragmented && this.#info.fin) {\n websocketMessageReceived(this.ws, this.#info.binaryType, this.consumeFragments())\n }\n\n this.#state = parserStates.INFO\n } else {\n this.#extensions.get('permessage-deflate').decompress(\n body,\n this.#info.fin,\n (error, data) => {\n if (error) {\n const code = error instanceof MessageSizeExceededError ? 1009 : 1007\n failWebsocketConnectionWithCode(this.ws, code, error.message)\n return\n }\n\n if (!this.writeFragments(data)) {\n return\n }\n\n if (this.#maxPayloadSize > 0 && this.#fragmentsBytes > this.#maxPayloadSize) {\n failWebsocketConnectionWithCode(this.ws, 1009, new MessageSizeExceededError().message)\n return\n }\n\n if (!this.#info.fin) {\n this.#state = parserStates.INFO\n this.#loop = true\n this.run(callback)\n return\n }\n\n websocketMessageReceived(this.ws, this.#info.binaryType, this.consumeFragments())\n\n this.#loop = true\n this.#state = parserStates.INFO\n this.run(callback)\n }\n )\n\n this.#loop = false\n break\n }\n }\n }\n }\n }\n\n /**\n * Take n bytes from the buffered Buffers\n * @param {number} n\n * @returns {Buffer}\n */\n consume (n) {\n if (n > this.#byteOffset) {\n throw new Error('Called consume() before buffers satiated.')\n } else if (n === 0) {\n return emptyBuffer\n }\n\n if (this.#buffers[0].length === n) {\n this.#byteOffset -= this.#buffers[0].length\n return this.#buffers.shift()\n }\n\n const buffer = Buffer.allocUnsafe(n)\n let offset = 0\n\n while (offset !== n) {\n const next = this.#buffers[0]\n const { length } = next\n\n if (length + offset === n) {\n buffer.set(this.#buffers.shift(), offset)\n break\n } else if (length + offset > n) {\n buffer.set(next.subarray(0, n - offset), offset)\n this.#buffers[0] = next.subarray(n - offset)\n break\n } else {\n buffer.set(this.#buffers.shift(), offset)\n offset += next.length\n }\n }\n\n this.#byteOffset -= n\n\n return buffer\n }\n\n writeFragments (fragment) {\n if (\n this.#maxFragments > 0 &&\n this.#fragments.length === this.#maxFragments\n ) {\n failWebsocketConnectionWithCode(this.ws, 1008, 'Too many message fragments')\n return false\n }\n\n this.#fragmentsBytes += fragment.length\n this.#fragments.push(fragment)\n return true\n }\n\n consumeFragments () {\n const fragments = this.#fragments\n\n if (fragments.length === 1) {\n this.#fragmentsBytes = 0\n return fragments.shift()\n }\n\n const output = Buffer.concat(fragments, this.#fragmentsBytes)\n this.#fragments = []\n this.#fragmentsBytes = 0\n\n return output\n }\n\n parseCloseBody (data) {\n assert(data.length !== 1)\n\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.5\n /** @type {number|undefined} */\n let code\n\n if (data.length >= 2) {\n // _The WebSocket Connection Close Code_ is\n // defined as the status code (Section 7.4) contained in the first Close\n // control frame received by the application\n code = data.readUInt16BE(0)\n }\n\n if (code !== undefined && !isValidStatusCode(code)) {\n return { code: 1002, reason: 'Invalid status code', error: true }\n }\n\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.6\n /** @type {Buffer} */\n let reason = data.subarray(2)\n\n // Remove BOM\n if (reason[0] === 0xEF && reason[1] === 0xBB && reason[2] === 0xBF) {\n reason = reason.subarray(3)\n }\n\n try {\n reason = utf8Decode(reason)\n } catch {\n return { code: 1007, reason: 'Invalid UTF-8', error: true }\n }\n\n return { code, reason, error: false }\n }\n\n /**\n * Parses control frames.\n * @param {Buffer} body\n */\n parseControlFrame (body) {\n const { opcode, payloadLength } = this.#info\n\n if (opcode === opcodes.CLOSE) {\n if (payloadLength === 1) {\n failWebsocketConnection(this.ws, 'Received close frame with a 1-byte body.')\n return false\n }\n\n this.#info.closeInfo = this.parseCloseBody(body)\n\n if (this.#info.closeInfo.error) {\n const { code, reason } = this.#info.closeInfo\n\n closeWebSocketConnection(this.ws, code, reason, reason.length)\n failWebsocketConnection(this.ws, reason)\n return false\n }\n\n if (this.ws[kSentClose] !== sentCloseFrameState.SENT) {\n // If an endpoint receives a Close frame and did not previously send a\n // Close frame, the endpoint MUST send a Close frame in response. (When\n // sending a Close frame in response, the endpoint typically echos the\n // status code it received.)\n let body = emptyBuffer\n if (this.#info.closeInfo.code) {\n body = Buffer.allocUnsafe(2)\n body.writeUInt16BE(this.#info.closeInfo.code, 0)\n }\n const closeFrame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(\n closeFrame.createFrame(opcodes.CLOSE),\n (err) => {\n if (!err) {\n this.ws[kSentClose] = sentCloseFrameState.SENT\n }\n }\n )\n }\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this.ws[kReadyState] = states.CLOSING\n this.ws[kReceivedClose] = true\n\n return false\n } else if (opcode === opcodes.PING) {\n // Upon receipt of a Ping frame, an endpoint MUST send a Pong frame in\n // response, unless it already received a Close frame.\n // A Pong frame sent in response to a Ping frame must have identical\n // \"Application data\"\n\n if (!this.ws[kReceivedClose]) {\n const frame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG))\n\n if (channels.ping.hasSubscribers) {\n channels.ping.publish({\n payload: body\n })\n }\n }\n } else if (opcode === opcodes.PONG) {\n // A Pong frame MAY be sent unsolicited. This serves as a\n // unidirectional heartbeat. A response to an unsolicited Pong frame is\n // not expected.\n\n if (channels.pong.hasSubscribers) {\n channels.pong.publish({\n payload: body\n })\n }\n }\n\n return true\n }\n\n get closingInfo () {\n return this.#info.closeInfo\n }\n}\n\nmodule.exports = {\n ByteParser\n}\n"],"names":["require$$0","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9"],"mappings":"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","x_google_ignoreList":[0]}
|
package/lib/cjs/env/load.js
CHANGED
|
@@ -24,7 +24,7 @@ async function loadEnv(args, config = {}, logger$1 = logger.logger) {
|
|
|
24
24
|
debug.debug('RELATIVE_CI env', maskObjectProperty.maskObjectProperties(agentEnv$1, ['key']));
|
|
25
25
|
const params = {
|
|
26
26
|
isCi: ciEnv$1.isCi,
|
|
27
|
-
agentVersion: "6.0.
|
|
27
|
+
agentVersion: "6.0.1-beta.0",
|
|
28
28
|
agentType: args.agentType,
|
|
29
29
|
key: agentEnv$1.key,
|
|
30
30
|
endpoint: agentEnv$1.endpoint || constants.DEFAULT_ENDPOINT,
|
package/lib/cjs/index.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var constants = require('./constants.js');
|
|
4
|
+
var ingest = require('./ingest/ingest.js');
|
|
4
5
|
var debug = require('./utils/debug.js');
|
|
6
|
+
var filterArtifacts = require('./artifacts/filter-artifacts.js');
|
|
5
7
|
var fileSize = require('./utils/file-size.js');
|
|
6
8
|
var logResponse = require('./utils/log-response.js');
|
|
7
9
|
var logger = require('./utils/logger.js');
|
|
8
10
|
var maskObjectProperty = require('./utils/mask-object-property.js');
|
|
9
11
|
var round = require('./utils/round.js');
|
|
10
|
-
var ingest = require('./ingest/ingest.js');
|
|
11
|
-
var filterArtifacts = require('./artifacts/filter-artifacts.js');
|
|
12
12
|
var validateWebpackStats = require('./artifacts/validate-webpack-stats.js');
|
|
13
13
|
|
|
14
14
|
|
|
@@ -16,14 +16,14 @@ var validateWebpackStats = require('./artifacts/validate-webpack-stats.js');
|
|
|
16
16
|
exports.DEFAULT_ENDPOINT = constants.DEFAULT_ENDPOINT;
|
|
17
17
|
exports.MASK = constants.MASK;
|
|
18
18
|
exports.SOURCE_WEBPACK_STATS = constants.SOURCE_WEBPACK_STATS;
|
|
19
|
+
exports.ingest = ingest;
|
|
19
20
|
exports.AGENT_DEBUG_NAME = debug.AGENT_DEBUG_NAME;
|
|
20
21
|
exports.debug = debug.debug;
|
|
22
|
+
exports.filterArtifacts = filterArtifacts.filterArtifacts;
|
|
21
23
|
exports.formatFileSize = fileSize.formatFileSize;
|
|
22
24
|
exports.logResponse = logResponse.logResponse;
|
|
23
25
|
exports.logger = logger.logger;
|
|
24
26
|
exports.maskObjectProperties = maskObjectProperty.maskObjectProperties;
|
|
25
27
|
exports.round = round.round;
|
|
26
|
-
exports.ingest = ingest;
|
|
27
|
-
exports.filterArtifacts = filterArtifacts.filterArtifacts;
|
|
28
28
|
exports.validateWebpackStats = validateWebpackStats.validateWebpackStats;
|
|
29
29
|
//# sourceMappingURL=index.js.map
|
package/lib/cjs/ingest/ingest.js
CHANGED
|
@@ -5,9 +5,9 @@ var path = require('node:path');
|
|
|
5
5
|
var require$$1 = require('node:zlib');
|
|
6
6
|
var require$$6 = require('node:util');
|
|
7
7
|
var locales_en = require('../locales/en.js');
|
|
8
|
+
var logger = require('../utils/logger.js');
|
|
8
9
|
var debug = require('../utils/debug.js');
|
|
9
10
|
var fileSize = require('../utils/file-size.js');
|
|
10
|
-
var logger = require('../utils/logger.js');
|
|
11
11
|
var maskObjectProperty = require('../utils/mask-object-property.js');
|
|
12
12
|
|
|
13
13
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -3,6 +3,44 @@
|
|
|
3
3
|
* Copyright(c) 2015 Douglas Christopher Wilson
|
|
4
4
|
* MIT Licensed
|
|
5
5
|
*/
|
|
6
|
+
const SP = 32; // " "
|
|
7
|
+
const HTAB = 9; // "\t"
|
|
8
|
+
const SEMI = 59; // ";"
|
|
9
|
+
const EQ = 61; // "="
|
|
10
|
+
const DQUOTE = 34; // '"'
|
|
11
|
+
const BSLASH = 92; // "\\"
|
|
12
|
+
const COMMA = 44; // ","
|
|
13
|
+
const LOWER_CASE = 1;
|
|
14
|
+
const OWS = 2;
|
|
15
|
+
const SEMI_FLAG = 4;
|
|
16
|
+
const COMMA_FLAG = 8;
|
|
17
|
+
const TOKEN_FLAG = 16;
|
|
18
|
+
const NON_ASCII = 0xff00;
|
|
19
|
+
const CASE_FLAGS = LOWER_CASE | NON_ASCII;
|
|
20
|
+
/**
|
|
21
|
+
* Character flags used to normalize HTTP field values while scanning.
|
|
22
|
+
* Out-of-range reads intentionally coerce to zero in bitwise expressions.
|
|
23
|
+
*/
|
|
24
|
+
const CHAR_MAP = new Uint8Array(0x100);
|
|
25
|
+
CHAR_MAP[HTAB] |= OWS;
|
|
26
|
+
CHAR_MAP[SP] |= OWS;
|
|
27
|
+
CHAR_MAP[SEMI] |= SEMI_FLAG;
|
|
28
|
+
CHAR_MAP[COMMA] |= COMMA_FLAG;
|
|
29
|
+
for (let code = 0x80 /* non-ASCII */; code <= 0xff; code++) {
|
|
30
|
+
CHAR_MAP[code] |= LOWER_CASE;
|
|
31
|
+
}
|
|
32
|
+
for (const char of "!#$%&'*+-.^_`|~") {
|
|
33
|
+
CHAR_MAP[char.charCodeAt(0)] |= TOKEN_FLAG;
|
|
34
|
+
}
|
|
35
|
+
for (let code = 0x30 /* 0 */; code <= 0x39 /* 9 */; code++) {
|
|
36
|
+
CHAR_MAP[code] |= TOKEN_FLAG;
|
|
37
|
+
}
|
|
38
|
+
for (let code = 0x41 /* A */; code <= 0x5a /* Z */; code++) {
|
|
39
|
+
CHAR_MAP[code] |= LOWER_CASE | TOKEN_FLAG;
|
|
40
|
+
}
|
|
41
|
+
for (let code = 0x61 /* a */; code <= 0x7a /* z */; code++) {
|
|
42
|
+
CHAR_MAP[code] |= TOKEN_FLAG;
|
|
43
|
+
}
|
|
6
44
|
/**
|
|
7
45
|
* Null object perf optimization. Faster than `Object.create(null)` and `{ __proto__: null }`.
|
|
8
46
|
*/
|
|
@@ -15,112 +53,158 @@ const NullObject = /* @__PURE__ */ (() => {
|
|
|
15
53
|
* Parse a `Content-Type` header.
|
|
16
54
|
*/
|
|
17
55
|
function parse(header, options) {
|
|
18
|
-
const
|
|
56
|
+
const stopFlags = SEMI_FLAG | (0);
|
|
19
57
|
const len = header.length;
|
|
20
|
-
let
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
58
|
+
let valueStart = 0;
|
|
59
|
+
while ((CHAR_MAP[header.charCodeAt(valueStart)] & OWS) !== 0) {
|
|
60
|
+
valueStart++;
|
|
61
|
+
}
|
|
62
|
+
let index = valueStart;
|
|
63
|
+
let typeFlags = 0;
|
|
64
|
+
let whitespace = -1;
|
|
65
|
+
let stop = 0;
|
|
66
|
+
while (index < len) {
|
|
67
|
+
const code = header.charCodeAt(index);
|
|
68
|
+
const flags = CHAR_MAP[code];
|
|
69
|
+
if ((flags & stopFlags) !== 0) {
|
|
70
|
+
stop |= flags & COMMA_FLAG;
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
if ((flags & OWS) !== 0) {
|
|
74
|
+
if (whitespace === -1)
|
|
75
|
+
whitespace = index;
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
whitespace = -1;
|
|
79
|
+
}
|
|
80
|
+
typeFlags |= (code & NON_ASCII) | flags;
|
|
81
|
+
index++;
|
|
82
|
+
}
|
|
83
|
+
const valueEnd = whitespace === -1 ? index : whitespace;
|
|
84
|
+
const value = header.slice(valueStart, valueEnd);
|
|
85
|
+
const type = (typeFlags & CASE_FLAGS) === 0 ? value : value.toLowerCase();
|
|
86
|
+
if (index === len || stop !== 0) {
|
|
87
|
+
return { type, index, parameters: new NullObject() };
|
|
88
|
+
}
|
|
89
|
+
return parseParameters(header, type, index, len, stopFlags);
|
|
26
90
|
}
|
|
27
|
-
const SP = 32; // " "
|
|
28
|
-
const HTAB = 9; // "\t"
|
|
29
|
-
const SEMI = 59; // ";"
|
|
30
|
-
const EQ = 61; // "="
|
|
31
|
-
const DQUOTE = 34; // '"'
|
|
32
|
-
const BSLASH = 92; // "\\"
|
|
33
91
|
/**
|
|
34
92
|
* Parses the parameters of a `Content-Type` header starting at the given index.
|
|
35
93
|
*/
|
|
36
|
-
function parseParameters(header, type, index, len,
|
|
94
|
+
function parseParameters(header, type, index, len, stopFlags) {
|
|
37
95
|
const parameters = new NullObject();
|
|
38
96
|
parameter: while (index < len) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
97
|
+
index++; // Skip over ;
|
|
98
|
+
while ((CHAR_MAP[header.charCodeAt(index)] & OWS) !== 0) {
|
|
99
|
+
index++;
|
|
100
|
+
}
|
|
42
101
|
const keyStart = index;
|
|
102
|
+
let keyFlags = 0;
|
|
103
|
+
let keyWhitespace = -1;
|
|
43
104
|
while (index < len) {
|
|
44
105
|
const code = header.charCodeAt(index);
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
106
|
+
const flags = CHAR_MAP[code];
|
|
107
|
+
if ((flags & stopFlags) !== 0) {
|
|
108
|
+
if ((flags & COMMA_FLAG) !== 0)
|
|
109
|
+
break parameter;
|
|
48
110
|
continue parameter;
|
|
111
|
+
}
|
|
49
112
|
if (code === EQ) {
|
|
50
|
-
const keyEnd =
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
113
|
+
const keyEnd = keyWhitespace === -1 ? index : keyWhitespace;
|
|
114
|
+
const value = header.slice(keyStart, keyEnd);
|
|
115
|
+
const key = (keyFlags & CASE_FLAGS) === 0 ? value : value.toLowerCase();
|
|
116
|
+
index++;
|
|
117
|
+
while ((CHAR_MAP[header.charCodeAt(index)] & OWS) !== 0) {
|
|
54
118
|
index++;
|
|
55
|
-
|
|
119
|
+
}
|
|
120
|
+
if (index < len && header.charCodeAt(index) === DQUOTE) {
|
|
121
|
+
const quotedStart = ++index;
|
|
122
|
+
let escaped = false;
|
|
56
123
|
while (index < len) {
|
|
57
|
-
const code = header.charCodeAt(index
|
|
124
|
+
const code = header.charCodeAt(index);
|
|
58
125
|
if (code === DQUOTE) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
126
|
+
if (parameters[key] === undefined) {
|
|
127
|
+
parameters[key] = escaped
|
|
128
|
+
? unescapeQuotedPairs(header, quotedStart, index)
|
|
129
|
+
: header.slice(quotedStart, index);
|
|
130
|
+
}
|
|
131
|
+
index++;
|
|
132
|
+
let stop = 0;
|
|
133
|
+
// Discard characters between quote and delimiter.
|
|
134
|
+
while (index < len) {
|
|
135
|
+
const code = header.charCodeAt(index);
|
|
136
|
+
const flags = CHAR_MAP[code];
|
|
137
|
+
if ((flags & stopFlags) !== 0) {
|
|
138
|
+
stop = flags & COMMA_FLAG;
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
index++;
|
|
142
|
+
}
|
|
143
|
+
if (stop !== 0)
|
|
144
|
+
break parameter;
|
|
145
|
+
continue parameter;
|
|
63
146
|
}
|
|
64
|
-
if (code === BSLASH && index < len) {
|
|
65
|
-
|
|
147
|
+
if (code === BSLASH && index + 1 < len) {
|
|
148
|
+
escaped = true;
|
|
149
|
+
index += 2;
|
|
66
150
|
continue;
|
|
67
151
|
}
|
|
68
|
-
|
|
152
|
+
index++;
|
|
69
153
|
}
|
|
70
154
|
continue parameter;
|
|
71
155
|
}
|
|
72
156
|
const valueStart = index;
|
|
73
|
-
|
|
157
|
+
let stop = 0;
|
|
158
|
+
let valueWhitespace = -1;
|
|
159
|
+
while (index < len) {
|
|
160
|
+
const code = header.charCodeAt(index);
|
|
161
|
+
const flags = CHAR_MAP[code];
|
|
162
|
+
if ((flags & stopFlags) !== 0) {
|
|
163
|
+
stop = flags & COMMA_FLAG;
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
if ((flags & OWS) !== 0) {
|
|
167
|
+
if (valueWhitespace === -1)
|
|
168
|
+
valueWhitespace = index;
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
valueWhitespace = -1;
|
|
172
|
+
}
|
|
173
|
+
index++;
|
|
174
|
+
}
|
|
74
175
|
if (parameters[key] === undefined) {
|
|
75
|
-
const valueEnd =
|
|
176
|
+
const valueEnd = valueWhitespace === -1 ? index : valueWhitespace;
|
|
76
177
|
parameters[key] = header.slice(valueStart, valueEnd);
|
|
77
178
|
}
|
|
179
|
+
if (stop !== 0)
|
|
180
|
+
break parameter;
|
|
78
181
|
continue parameter;
|
|
79
182
|
}
|
|
183
|
+
if ((flags & OWS) !== 0) {
|
|
184
|
+
if (keyWhitespace === -1)
|
|
185
|
+
keyWhitespace = index;
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
keyWhitespace = -1;
|
|
189
|
+
}
|
|
190
|
+
keyFlags |= (code & NON_ASCII) | flags;
|
|
80
191
|
index++;
|
|
81
192
|
}
|
|
82
193
|
}
|
|
83
194
|
return { type, index, parameters };
|
|
84
195
|
}
|
|
85
196
|
/**
|
|
86
|
-
*
|
|
197
|
+
* Remove backslashes from quoted pairs in a known-terminated quoted string body.
|
|
87
198
|
*/
|
|
88
|
-
function
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
if (
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
return index;
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Skip optional whitespace (OWS) in an HTTP header value.
|
|
99
|
-
*
|
|
100
|
-
* OWS is defined in RFC 9110 sec 5.6.3 as SP (" ") or HTAB ("\t").
|
|
101
|
-
*/
|
|
102
|
-
function skipOWS(header, index, len) {
|
|
103
|
-
while (index < len) {
|
|
104
|
-
const char = header.charCodeAt(index);
|
|
105
|
-
if (char !== SP && char !== HTAB)
|
|
106
|
-
break;
|
|
107
|
-
index++;
|
|
108
|
-
}
|
|
109
|
-
return index;
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Trim optional whitespace (OWS) from the end of a substring.
|
|
113
|
-
*
|
|
114
|
-
* OWS is defined in RFC 9110 sec 5.6.3 as SP (" ") or HTAB ("\t").
|
|
115
|
-
*/
|
|
116
|
-
function trailingOWS(header, start, end) {
|
|
117
|
-
while (end > start) {
|
|
118
|
-
const char = header.charCodeAt(end - 1);
|
|
119
|
-
if (char !== SP && char !== HTAB)
|
|
120
|
-
break;
|
|
121
|
-
end--;
|
|
199
|
+
function unescapeQuotedPairs(str, start, end) {
|
|
200
|
+
let result = "";
|
|
201
|
+
for (let index = start; index < end; index++) {
|
|
202
|
+
if (str.charCodeAt(index) === BSLASH) {
|
|
203
|
+
result += str.slice(start, index);
|
|
204
|
+
start = ++index;
|
|
205
|
+
}
|
|
122
206
|
}
|
|
123
|
-
return end;
|
|
207
|
+
return result + str.slice(start, end);
|
|
124
208
|
}
|
|
125
209
|
|
|
126
210
|
export { parse };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../../node_modules/content-type/dist/index.js"],"sourcesContent":["/*!\n * content-type\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\nconst TEXT_REGEXP = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]*$/;\nconst TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;\n/**\n * RegExp to match chars that must be quoted-pair in RFC 9110 sec 5.6.4\n */\nconst QUOTE_REGEXP = /[\\\\\"]/g;\n/**\n * RegExp to match type in RFC 9110 sec 8.3.1\n *\n * media-type = type \"/\" subtype\n * type = token\n * subtype = token\n */\nconst TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;\n/**\n * Null object perf optimization. Faster than `Object.create(null)` and `{ __proto__: null }`.\n */\nconst NullObject = /* @__PURE__ */ (() => {\n const C = function () { };\n C.prototype = Object.create(null);\n return C;\n})();\n/**\n * Format an object into a `Content-Type` header.\n */\nexport function format(obj) {\n const { type, parameters } = obj;\n if (!type || !TYPE_REGEXP.test(type)) {\n throw new TypeError(`Invalid type: ${type}`);\n }\n let result = type;\n if (parameters) {\n for (const param of Object.keys(parameters)) {\n if (!TOKEN_REGEXP.test(param)) {\n throw new TypeError(`Invalid parameter name: ${param}`);\n }\n result += `; ${param}=${qstring(parameters[param])}`;\n }\n }\n return result;\n}\n/**\n * Parse a `Content-Type` header.\n */\nexport function parse(header, options) {\n const stopChar = options?.comma === true ? COMMA : 65_536; // Sentinel for \"no stop char\".\n const len = header.length;\n let index = skipOWS(header, options?.start ?? 0, len);\n const valueStart = index;\n index = skipValue(header, index, len, stopChar);\n const valueEnd = trailingOWS(header, valueStart, index);\n const type = header.slice(valueStart, valueEnd).toLowerCase();\n if (options?.parameters === false) {\n return { type, index, parameters: new NullObject() };\n }\n return parseParameters(header, type, index, len, stopChar);\n}\nconst SP = 32; // \" \"\nconst HTAB = 9; // \"\\t\"\nconst SEMI = 59; // \";\"\nconst EQ = 61; // \"=\"\nconst DQUOTE = 34; // '\"'\nconst BSLASH = 92; // \"\\\\\"\nconst COMMA = 44; // \",\"\n/**\n * Parses the parameters of a `Content-Type` header starting at the given index.\n */\nfunction parseParameters(header, type, index, len, stopChar) {\n const parameters = new NullObject();\n parameter: while (index < len) {\n if (header.charCodeAt(index) === stopChar)\n break;\n index = skipOWS(header, index + 1 /* Skip over ; */, len);\n const keyStart = index;\n while (index < len) {\n const code = header.charCodeAt(index);\n if (code === stopChar)\n break parameter;\n if (code === SEMI)\n continue parameter;\n if (code === EQ) {\n const keyEnd = trailingOWS(header, keyStart, index);\n const key = header.slice(keyStart, keyEnd).toLowerCase();\n index = skipOWS(header, index + 1, len);\n if (index < len && header.charCodeAt(index) === DQUOTE) {\n index++;\n let value = \"\";\n while (index < len) {\n const code = header.charCodeAt(index++);\n if (code === DQUOTE) {\n index = skipValue(header, index, len, stopChar);\n if (parameters[key] === undefined)\n parameters[key] = value;\n break;\n }\n if (code === BSLASH && index < len) {\n value += header[index++];\n continue;\n }\n value += String.fromCharCode(code);\n }\n continue parameter;\n }\n const valueStart = index;\n index = skipValue(header, index, len, stopChar);\n if (parameters[key] === undefined) {\n const valueEnd = trailingOWS(header, valueStart, index);\n parameters[key] = header.slice(valueStart, valueEnd);\n }\n continue parameter;\n }\n index++;\n }\n }\n return { type, index, parameters };\n}\n/**\n * Skip over characters until a semicolon or other exit character.\n */\nfunction skipValue(str, index, len, stopChar) {\n while (index < len) {\n const code = str.charCodeAt(index);\n if (code === SEMI || code === stopChar)\n break;\n index++;\n }\n return index;\n}\n/**\n * Skip optional whitespace (OWS) in an HTTP header value.\n *\n * OWS is defined in RFC 9110 sec 5.6.3 as SP (\" \") or HTAB (\"\\t\").\n */\nfunction skipOWS(header, index, len) {\n while (index < len) {\n const char = header.charCodeAt(index);\n if (char !== SP && char !== HTAB)\n break;\n index++;\n }\n return index;\n}\n/**\n * Trim optional whitespace (OWS) from the end of a substring.\n *\n * OWS is defined in RFC 9110 sec 5.6.3 as SP (\" \") or HTAB (\"\\t\").\n */\nfunction trailingOWS(header, start, end) {\n while (end > start) {\n const char = header.charCodeAt(end - 1);\n if (char !== SP && char !== HTAB)\n break;\n end--;\n }\n return end;\n}\n/**\n * Serialize a parameter value.\n */\nfunction qstring(str) {\n if (TOKEN_REGEXP.test(str))\n return str;\n if (TEXT_REGEXP.test(str))\n return `\"${str.replace(QUOTE_REGEXP, \"\\\\$&\")}\"`;\n throw new TypeError(`Invalid parameter value: ${str}`);\n}\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../../node_modules/content-type/dist/index.js"],"sourcesContent":["/*!\n * content-type\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\nconst SP = 32; // \" \"\nconst HTAB = 9; // \"\\t\"\nconst SEMI = 59; // \";\"\nconst EQ = 61; // \"=\"\nconst DQUOTE = 34; // '\"'\nconst BSLASH = 92; // \"\\\\\"\nconst COMMA = 44; // \",\"\nconst LOWER_CASE = 1;\nconst OWS = 2;\nconst SEMI_FLAG = 4;\nconst COMMA_FLAG = 8;\nconst TOKEN_FLAG = 16;\nconst NON_ASCII = 0xff00;\nconst CASE_FLAGS = LOWER_CASE | NON_ASCII;\n/**\n * Character flags used to normalize HTTP field values while scanning.\n * Out-of-range reads intentionally coerce to zero in bitwise expressions.\n */\nconst CHAR_MAP = new Uint8Array(0x100);\nCHAR_MAP[HTAB] |= OWS;\nCHAR_MAP[SP] |= OWS;\nCHAR_MAP[SEMI] |= SEMI_FLAG;\nCHAR_MAP[COMMA] |= COMMA_FLAG;\nfor (let code = 0x80 /* non-ASCII */; code <= 0xff; code++) {\n CHAR_MAP[code] |= LOWER_CASE;\n}\nfor (const char of \"!#$%&'*+-.^_`|~\") {\n CHAR_MAP[char.charCodeAt(0)] |= TOKEN_FLAG;\n}\nfor (let code = 0x30 /* 0 */; code <= 0x39 /* 9 */; code++) {\n CHAR_MAP[code] |= TOKEN_FLAG;\n}\nfor (let code = 0x41 /* A */; code <= 0x5a /* Z */; code++) {\n CHAR_MAP[code] |= LOWER_CASE | TOKEN_FLAG;\n}\nfor (let code = 0x61 /* a */; code <= 0x7a /* z */; code++) {\n CHAR_MAP[code] |= TOKEN_FLAG;\n}\n/**\n * Null object perf optimization. Faster than `Object.create(null)` and `{ __proto__: null }`.\n */\nconst NullObject = /* @__PURE__ */ (() => {\n const C = function () { };\n C.prototype = Object.create(null);\n return C;\n})();\n/**\n * Validate a type string against RFC 9110.\n */\nexport function isTypeValid(type, start = 0, end = type.length) {\n let hasSlash = false;\n for (let index = start; index < end; index++) {\n const code = type.charCodeAt(index);\n if (code === 47 /* / */) {\n if (hasSlash || index === start || index >= end - 1)\n return false;\n hasSlash = true;\n }\n else if (!isTokenCode(code)) {\n return false;\n }\n }\n return hasSlash;\n}\n/**\n * Validate a token against RFC 9110.\n */\nexport function isTokenValid(token, start = 0, end = token.length) {\n if (start >= end)\n return false;\n for (let index = start; index < end; index++) {\n if (!isTokenCode(token.charCodeAt(index)))\n return false;\n }\n return true;\n}\n/**\n * Check whether a character code belongs to the token production in RFC 9110.\n */\nfunction isTokenCode(code) {\n return (CHAR_MAP[code] & TOKEN_FLAG) !== 0;\n}\n/**\n * Serialize a parameter value.\n */\nfunction parameterValue(str) {\n const len = str.length;\n if (len === 0)\n return '\"\"';\n let index = 0;\n while (index < len && isTokenCode(str.charCodeAt(index)))\n index++;\n if (index === len)\n return str;\n let result = '\"';\n let start = 0;\n while (index < len) {\n const code = str.charCodeAt(index);\n if (code !== HTAB && (code < SP || code === 127 || code > 255)) {\n throw new TypeError(`Invalid parameter value: ${str}`);\n }\n if (code === 34 /* \" */ || code === 92 /* \\\\ */) {\n result += `${str.slice(start, index)}\\\\`;\n start = index;\n }\n index++;\n }\n return `${result}${str.slice(start)}\"`;\n}\n/**\n * Format an object into a `Content-Type` header.\n */\nexport function format(obj) {\n const { type, parameters } = obj;\n if (!type || !isTypeValid(type)) {\n throw new TypeError(`Invalid type: ${type}`);\n }\n let result = type;\n if (parameters) {\n for (const param of Object.keys(parameters)) {\n if (!isTokenValid(param)) {\n throw new TypeError(`Invalid parameter name: ${param}`);\n }\n result += `; ${param}=${parameterValue(parameters[param])}`;\n }\n }\n return result;\n}\n/**\n * Parse a `Content-Type` header.\n */\nexport function parse(header, options) {\n const stopFlags = SEMI_FLAG | (options?.comma === true ? COMMA_FLAG : 0);\n const len = header.length;\n let valueStart = options?.start ?? 0;\n while ((CHAR_MAP[header.charCodeAt(valueStart)] & OWS) !== 0) {\n valueStart++;\n }\n let index = valueStart;\n let typeFlags = 0;\n let whitespace = -1;\n let stop = options?.parameters === false ? COMMA_FLAG : 0;\n while (index < len) {\n const code = header.charCodeAt(index);\n const flags = CHAR_MAP[code];\n if ((flags & stopFlags) !== 0) {\n stop |= flags & COMMA_FLAG;\n break;\n }\n if ((flags & OWS) !== 0) {\n if (whitespace === -1)\n whitespace = index;\n }\n else {\n whitespace = -1;\n }\n typeFlags |= (code & NON_ASCII) | flags;\n index++;\n }\n const valueEnd = whitespace === -1 ? index : whitespace;\n const value = header.slice(valueStart, valueEnd);\n const type = (typeFlags & CASE_FLAGS) === 0 ? value : value.toLowerCase();\n if (index === len || stop !== 0) {\n return { type, index, parameters: new NullObject() };\n }\n return parseParameters(header, type, index, len, stopFlags);\n}\n/**\n * Parses the parameters of a `Content-Type` header starting at the given index.\n */\nfunction parseParameters(header, type, index, len, stopFlags) {\n const parameters = new NullObject();\n parameter: while (index < len) {\n index++; // Skip over ;\n while ((CHAR_MAP[header.charCodeAt(index)] & OWS) !== 0) {\n index++;\n }\n const keyStart = index;\n let keyFlags = 0;\n let keyWhitespace = -1;\n while (index < len) {\n const code = header.charCodeAt(index);\n const flags = CHAR_MAP[code];\n if ((flags & stopFlags) !== 0) {\n if ((flags & COMMA_FLAG) !== 0)\n break parameter;\n continue parameter;\n }\n if (code === EQ) {\n const keyEnd = keyWhitespace === -1 ? index : keyWhitespace;\n const value = header.slice(keyStart, keyEnd);\n const key = (keyFlags & CASE_FLAGS) === 0 ? value : value.toLowerCase();\n index++;\n while ((CHAR_MAP[header.charCodeAt(index)] & OWS) !== 0) {\n index++;\n }\n if (index < len && header.charCodeAt(index) === DQUOTE) {\n const quotedStart = ++index;\n let escaped = false;\n while (index < len) {\n const code = header.charCodeAt(index);\n if (code === DQUOTE) {\n if (parameters[key] === undefined) {\n parameters[key] = escaped\n ? unescapeQuotedPairs(header, quotedStart, index)\n : header.slice(quotedStart, index);\n }\n index++;\n let stop = 0;\n // Discard characters between quote and delimiter.\n while (index < len) {\n const code = header.charCodeAt(index);\n const flags = CHAR_MAP[code];\n if ((flags & stopFlags) !== 0) {\n stop = flags & COMMA_FLAG;\n break;\n }\n index++;\n }\n if (stop !== 0)\n break parameter;\n continue parameter;\n }\n if (code === BSLASH && index + 1 < len) {\n escaped = true;\n index += 2;\n continue;\n }\n index++;\n }\n continue parameter;\n }\n const valueStart = index;\n let stop = 0;\n let valueWhitespace = -1;\n while (index < len) {\n const code = header.charCodeAt(index);\n const flags = CHAR_MAP[code];\n if ((flags & stopFlags) !== 0) {\n stop = flags & COMMA_FLAG;\n break;\n }\n if ((flags & OWS) !== 0) {\n if (valueWhitespace === -1)\n valueWhitespace = index;\n }\n else {\n valueWhitespace = -1;\n }\n index++;\n }\n if (parameters[key] === undefined) {\n const valueEnd = valueWhitespace === -1 ? index : valueWhitespace;\n parameters[key] = header.slice(valueStart, valueEnd);\n }\n if (stop !== 0)\n break parameter;\n continue parameter;\n }\n if ((flags & OWS) !== 0) {\n if (keyWhitespace === -1)\n keyWhitespace = index;\n }\n else {\n keyWhitespace = -1;\n }\n keyFlags |= (code & NON_ASCII) | flags;\n index++;\n }\n }\n return { type, index, parameters };\n}\n/**\n * Remove backslashes from quoted pairs in a known-terminated quoted string body.\n */\nfunction unescapeQuotedPairs(str, start, end) {\n let result = \"\";\n for (let index = start; index < end; index++) {\n if (str.charCodeAt(index) === BSLASH) {\n result += str.slice(start, index);\n start = ++index;\n }\n }\n return result + str.slice(start, end);\n}\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|