@repost/client 1.1.0 → 1.1.1
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/dist/cjs/{index-CwfZxauw.cjs → index-BDdDDqSw.cjs} +3 -3
- package/dist/cjs/{index-CwfZxauw.cjs.map → index-BDdDDqSw.cjs.map} +1 -1
- package/dist/cjs/index.cjs +2 -2
- package/dist/cjs/{node-B5Yo8HlS.cjs → node-Bz3uY4as.cjs} +3 -3
- package/dist/cjs/{node-B5Yo8HlS.cjs.map → node-Bz3uY4as.cjs.map} +1 -1
- package/dist/cjs/otel/index.cjs +1 -1
- package/dist/cjs/types/version.d.ts +1 -1
- package/dist/cjs/{version-ByPLMuBh.cjs → version-DVFhPAVN.cjs} +2 -2
- package/dist/cjs/version-DVFhPAVN.cjs.map +1 -0
- package/dist/esm/{index--sEN3T8D.mjs → index-ME0s01H6.mjs} +3 -3
- package/dist/esm/{index--sEN3T8D.mjs.map → index-ME0s01H6.mjs.map} +1 -1
- package/dist/esm/index.mjs +2 -2
- package/dist/esm/{node-Bc3Vr5l8.mjs → node-CJzpalHQ.mjs} +3 -3
- package/dist/esm/{node-Bc3Vr5l8.mjs.map → node-CJzpalHQ.mjs.map} +1 -1
- package/dist/esm/otel/index.mjs +1 -1
- package/dist/esm/{version-DdhbPM6g.mjs → version-B0GnVwZp.mjs} +2 -2
- package/dist/esm/version-B0GnVwZp.mjs.map +1 -0
- package/package.json +1 -1
- package/dist/cjs/version-ByPLMuBh.cjs.map +0 -1
- package/dist/esm/version-DdhbPM6g.mjs.map +0 -1
package/dist/esm/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { D as DESCRIPTOR_FORMAT_VERSION, f as RepostConfigurationError, g as RepostDescriptorVersionError, i as RepostError, R as RepostPublishError, j as RepostSerializationError, k as RepostTransportError, l as RepostValidationError, n as buildClient, o as buildWebhooks, a as createFetchTransport, b as createHttpTransport, d as createNodeTransport, m as errorCatalog, h as httpTransport, s as serializeModel, p as stubTransport } from './index
|
|
2
|
-
import './version-
|
|
1
|
+
export { D as DESCRIPTOR_FORMAT_VERSION, f as RepostConfigurationError, g as RepostDescriptorVersionError, i as RepostError, R as RepostPublishError, j as RepostSerializationError, k as RepostTransportError, l as RepostValidationError, n as buildClient, o as buildWebhooks, a as createFetchTransport, b as createHttpTransport, d as createNodeTransport, m as errorCatalog, h as httpTransport, s as serializeModel, p as stubTransport } from './index-ME0s01H6.mjs';
|
|
2
|
+
import './version-B0GnVwZp.mjs';
|
|
3
3
|
import './observer-Dns2X4wE.mjs';
|
|
4
4
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { e as errorCode$1, c as classifyNetworkFailure } from './index
|
|
1
|
+
import { e as errorCode$1, c as classifyNetworkFailure } from './index-ME0s01H6.mjs';
|
|
2
2
|
import { gunzip } from 'node:zlib';
|
|
3
3
|
import { buildConnector, Pool } from 'undici';
|
|
4
4
|
import { connect, isIP } from 'node:net';
|
|
5
5
|
import { connect as connect$1 } from 'node:tls';
|
|
6
6
|
import { connect as connect$2, constants } from 'node:http2';
|
|
7
|
-
import './version-
|
|
7
|
+
import './version-B0GnVwZp.mjs';
|
|
8
8
|
import './observer-Dns2X4wE.mjs';
|
|
9
9
|
|
|
10
10
|
/** Builds the exact ordered fields used by the Node H1/H2 dispatcher. */
|
|
@@ -879,4 +879,4 @@ function classifyFailure(error, committed) {
|
|
|
879
879
|
}
|
|
880
880
|
|
|
881
881
|
export { createNodeTransport };
|
|
882
|
-
//# sourceMappingURL=node-
|
|
882
|
+
//# sourceMappingURL=node-CJzpalHQ.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-Bc3Vr5l8.mjs","sources":["../../../src/transport/framing.ts","../../../src/transport/response-reader.ts","../../../src/transport/connect-proxy.ts","../../../src/transport/h2.ts","../../../src/transport/tls.ts","../../../src/transport/undici-compat.ts","../../../src/transport/node.ts"],"sourcesContent":["import type { AttemptRequest } from \"../types\";\n\nexport interface FramedRequest {\n readonly origin: string;\n readonly path: string;\n readonly headers: string[];\n}\n\n/** Builds the exact ordered fields used by the Node H1/H2 dispatcher. */\nexport function frameRequest(request: AttemptRequest): FramedRequest {\n const url = new URL(request.url);\n const authority = explicitAuthority(request.url);\n const headers = [\n \"host\", authority,\n \"content-length\", String(request.bodyBytes.byteLength),\n ];\n for (const [name, value] of request.headers) headers.push(name, value);\n return {\n origin: `${url.protocol}//${authority}`,\n path: `${url.pathname}${url.search}`,\n headers,\n };\n}\n\nfunction explicitAuthority(value: string): string {\n const start = value.indexOf(\"://\");\n const authorityStart = start < 0 ? 0 : start + 3;\n const tail = value.slice(authorityStart);\n const authorityEnd = tail.search(/[/?#]/u);\n return tail.slice(0, authorityEnd < 0 ? undefined : authorityEnd);\n}\n","import { gunzip } from \"node:zlib\";\nimport type { AttemptOutcome, BoundedHeaders } from \"../types\";\n\nconst COMPRESSED_LIMIT = 1_048_576;\nconst DECOMPRESSED_LIMIT = 1_048_576;\nconst ERROR_INSPECTION_LIMIT = 65_536;\nconst EXPANSION_RATIO_LIMIT = 100;\nconst HEADER_FIELD_LIMIT = 100;\nconst HEADER_BYTES_LIMIT = 65_536;\nconst HEADER_NAME_LIMIT = 256;\nconst HEADER_VALUE_LIMIT = 8_192;\nconst encoder = new TextEncoder();\nconst asciiOnlyHeaders = new Set([\"content-encoding\", \"content-length\", \"content-type\", \"retry-after\", \"location\"]);\nconst framingHeaders = new Set([\"connection\", \"date\", \"keep-alive\", \"transfer-encoding\"]);\n\ntype ResponseOutcome = Extract<AttemptOutcome, { kind: \"response\" }>;\n\nexport async function readResponse(\n status: number,\n rawHeaders: readonly Uint8Array[],\n chunks: readonly Uint8Array[],\n compressedBytes: number,\n transportTruncated: boolean,\n compressedLimit = COMPRESSED_LIMIT,\n): Promise<ResponseOutcome> {\n const headerSnapshot = snapshotHeaders(rawHeaders);\n const common = {\n kind: \"response\" as const,\n status,\n headers: headerSnapshot.headers,\n compressedBytes,\n responseHeaderFields: headerSnapshot.fields,\n responseHeaderBytes: headerSnapshot.bytes,\n };\n const success = status >= 200 && status <= 299;\n if (headerSnapshot.protocolInvalid || headerSnapshot.limitExceeded) {\n return {\n ...common,\n bodyBytes: new Uint8Array(),\n compressedBytes: 0,\n decompressedBytes: 0,\n truncated: transportTruncated,\n headerLimitExceeded: true,\n ...(headerSnapshot.protocolInvalid ? { protocolError: true } : {}),\n ...(headerSnapshot.limitExceeded ? { limitExceeded: success, nonRetryable: !success } : {}),\n };\n }\n\n const outputLimit = success ? DECOMPRESSED_LIMIT : ERROR_INSPECTION_LIMIT;\n const encoding = contentEncoding(headerSnapshot.headers);\n if (encoding === null) {\n return { ...common, bodyBytes: new Uint8Array(), compressedBytes: 0, decompressedBytes: 0, truncated: false, protocolError: true };\n }\n const declaredLength = singleHeader(headerSnapshot.headers, \"content-length\");\n if (success && declaredLength !== null && (!/^(?:0|[1-9][0-9]*)$/u.test(declaredLength) || Number(declaredLength) > compressedLimit)) {\n return { ...common, bodyBytes: new Uint8Array(), decompressedBytes: 0, truncated: transportTruncated, limitExceeded: true };\n }\n if (transportTruncated || compressedBytes > compressedLimit) {\n if (encoding === \"identity\") {\n const overLimit = compressedBytes > compressedLimit;\n return {\n ...common,\n bodyBytes: concatenate(chunks, Math.min(outputLimit, compressedLimit)),\n decompressedBytes: compressedBytes,\n truncated: overLimit ? false : transportTruncated,\n ...(success && overLimit ? { limitExceeded: true } : {}),\n ...(success && transportTruncated && !overLimit ? { protocolError: true } : {}),\n ...(!success && overLimit ? { nonRetryable: true } : {}),\n };\n }\n return {\n ...common,\n bodyBytes: new Uint8Array(),\n decompressedBytes: 0,\n truncated: transportTruncated,\n protocolError: true,\n };\n }\n const compressed = concatenate(chunks, compressedLimit);\n if (encoding === \"identity\") {\n const truncated = compressed.length > outputLimit;\n const bodyBytes = truncated ? compressed.slice(0, outputLimit) : compressed;\n return { ...common, bodyBytes, decompressedBytes: compressed.length, truncated, limitExceeded: success && truncated };\n }\n\n try {\n const decoded = new Uint8Array(await new Promise<Buffer>((resolve, reject) => {\n gunzip(compressed, { maxOutputLength: outputLimit + 1 }, (error, value) => {\n if (error) reject(error);\n else resolve(value);\n });\n }));\n const ratioExceeded = compressed.length === 0 ? decoded.length > 0 : decoded.length > compressed.length * EXPANSION_RATIO_LIMIT;\n const truncated = decoded.length > outputLimit;\n const bodyBytes = decoded.slice(0, Math.min(decoded.length, outputLimit));\n return {\n ...common,\n bodyBytes,\n decompressedBytes: decoded.length,\n truncated,\n ...(ratioExceeded ? { protocolError: true } : { limitExceeded: success && truncated }),\n };\n } catch (error) {\n const limit = errorCode(error) === \"ERR_BUFFER_TOO_LARGE\";\n return {\n ...common,\n bodyBytes: new Uint8Array(),\n decompressedBytes: limit ? outputLimit + 1 : 0,\n truncated: limit,\n ...(limit ? { limitExceeded: success } : { protocolError: true }),\n };\n }\n}\n\ninterface HeaderSnapshot {\n readonly headers: BoundedHeaders;\n readonly fields: number;\n readonly bytes: number;\n readonly protocolInvalid: boolean;\n readonly limitExceeded: boolean;\n}\n\nfunction snapshotHeaders(raw: readonly Uint8Array[]): HeaderSnapshot {\n const headers: Record<string, string[]> = {};\n let fields = 0;\n let bytes = 0;\n let protocolInvalid = raw.length % 2 !== 0;\n let limitExceeded = false;\n for (let index = 0; index + 1 < raw.length; index += 2) {\n const name = Buffer.from(raw[index]).toString(\"latin1\").toLowerCase();\n const value = Buffer.from(raw[index + 1]).toString(\"latin1\");\n if (framingHeaders.has(name)) continue;\n fields += 1;\n const nameBytes = encoder.encode(name).length;\n const valueBytes = encoder.encode(value).length;\n bytes = saturatingAdd(bytes, nameBytes + 2 + valueBytes + 2);\n if (fields > HEADER_FIELD_LIMIT || bytes > HEADER_BYTES_LIMIT || nameBytes > HEADER_NAME_LIMIT || valueBytes > HEADER_VALUE_LIMIT) limitExceeded = true;\n if (nameBytes < 1\n || !/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/u.test(name)\n || /[\\u0000-\\u0008\\u000b\\u000c\\u000e-\\u001f\\u007f]/u.test(value)\n || (asciiOnlyHeaders.has(name) && /[^\\u0000-\\u007f]/u.test(value))) protocolInvalid = true;\n if (protocolInvalid || limitExceeded) continue;\n (headers[name] ??= []).push(value);\n }\n return { headers, fields, bytes, protocolInvalid, limitExceeded };\n}\n\nfunction contentEncoding(headers: BoundedHeaders): \"identity\" | \"gzip\" | null {\n const values = headers[\"content-encoding\"] ?? [];\n if (values.length === 0) return \"identity\";\n if (values.length !== 1) return null;\n const value = values[0]?.trim().toLowerCase();\n return value === \"identity\" || value === \"gzip\" ? value : null;\n}\n\nfunction singleHeader(headers: BoundedHeaders, name: string): string | null {\n const values = headers[name] ?? [];\n return values.length === 1 ? values[0] ?? null : null;\n}\n\nfunction concatenate(chunks: readonly Uint8Array[], limit: number): Uint8Array {\n const length = Math.min(limit + 1, chunks.reduce((total, chunk) => saturatingAdd(total, chunk.length), 0));\n const bytes = new Uint8Array(length);\n let offset = 0;\n for (const chunk of chunks) {\n const part = chunk.subarray(0, length - offset);\n bytes.set(part, offset);\n offset += part.length;\n if (offset === length) break;\n }\n return bytes;\n}\n\nfunction saturatingAdd(left: number, right: number): number {\n return left > Number.MAX_SAFE_INTEGER - right ? Number.MAX_SAFE_INTEGER : left + right;\n}\n\nfunction errorCode(error: unknown): string {\n return error && typeof error === \"object\" && typeof (error as { code?: unknown }).code === \"string\"\n ? (error as { code: string }).code\n : \"\";\n}\n","import { connect, type Socket } from \"node:net\";\nimport {\n connect as connectTls,\n type ConnectionOptions,\n type TLSSocket,\n} from \"node:tls\";\n\nconst HEADER_LIMIT = 65_536;\n\nexport interface ProxyOptions {\n readonly url: string;\n readonly credentialsProvider?: () =>\n | { username: string; password: string }\n | Promise<{ username: string; password: string }>;\n}\n\nexport interface ProxyTarget {\n readonly hostname: string;\n readonly port: string;\n readonly protocol: string;\n readonly servername?: string;\n}\n\nexport interface ProxyTlsOptions {\n readonly caCertificates?: readonly string[];\n readonly minVersion?: \"TLSv1.2\" | \"TLSv1.3\";\n readonly maxVersion?: \"TLSv1.2\" | \"TLSv1.3\";\n readonly ciphers?: readonly string[];\n readonly clientCertificate?: {\n readonly certificate: string;\n readonly key: string;\n readonly passphrase?: string;\n };\n}\n\nexport async function connectThroughProxy(\n proxy: ProxyOptions,\n target: ProxyTarget,\n tls: ProxyTlsOptions | undefined,\n allowH2: boolean,\n timeoutMs: number,\n): Promise<Socket | TLSSocket> {\n const authority = `${target.hostname}:${target.port}`;\n let authorization: string | undefined;\n if (proxy.credentialsProvider) {\n let credentials: { username: string; password: string };\n try {\n credentials = await proxy.credentialsProvider();\n } catch (cause) {\n throw proxyError(\"REPOST_PROXY_CREDENTIAL_PROVIDER\", cause);\n }\n authorization = `Basic ${Buffer.from(`${credentials.username}:${credentials.password}`, \"utf8\").toString(\"base64\")}`;\n }\n const tunnel = await connectTunnel(\n proxy.url,\n authority,\n authorization,\n timeoutMs,\n );\n if (tunnel.status === 407) {\n tunnel.socket.destroy();\n throw proxyError(\"REPOST_PROXY_AUTH_REQUIRED\");\n }\n if (tunnel.status !== 200) {\n tunnel.socket.destroy();\n throw proxyError(\"REPOST_PROXY_CONNECT_FAILED\");\n }\n if (target.protocol !== \"https:\") return tunnel.socket;\n return secureTunnel(tunnel.socket, target, tls, allowH2, timeoutMs);\n}\n\nasync function connectTunnel(\n proxyValue: string,\n authority: string,\n authorization: string | undefined,\n timeoutMs: number,\n) {\n const proxy = new URL(proxyValue);\n if (\n proxy.protocol !== \"http:\" ||\n proxy.username ||\n proxy.password ||\n proxy.pathname !== \"/\"\n ) {\n throw proxyError(\"REPOST_PROXY_CONNECT_FAILED\");\n }\n const socket = connect({\n host: proxy.hostname,\n port: Number(proxy.port || 80),\n });\n // A late 'error' after our once-handlers detach (timeout teardown racing a\n // peer RST, or a second emission on an already-destroyed socket) would be an\n // uncaught 'error' event and crash the process. One permanent absorber keeps\n // that impossible; every real failure path still rejects via its own handler,\n // and the eventual consumer of the returned socket attaches its own.\n socket.on(\"error\", absorbLateError);\n await socketReady(socket, timeoutMs);\n socket.write(\n `CONNECT ${authority} HTTP/1.1\\r\\n` +\n `host: ${authority}\\r\\n` +\n (authorization ? `proxy-authorization: ${authorization}\\r\\n` : \"\") +\n \"\\r\\n\",\n \"latin1\",\n );\n let response = Buffer.alloc(0);\n while (response.indexOf(\"\\r\\n\\r\\n\") < 0) {\n const chunk = await nextChunk(socket, timeoutMs);\n response = Buffer.concat(\n [response, chunk],\n Math.min(HEADER_LIMIT + 1, response.length + chunk.length),\n );\n if (response.length > HEADER_LIMIT)\n throw proxyError(\"REPOST_PROXY_CONNECT_FAILED\");\n }\n const boundary = response.indexOf(\"\\r\\n\\r\\n\");\n const status = Number(\n /^HTTP\\/1\\.1 ([0-9]{3})/u.exec(\n response.subarray(0, boundary).toString(\"latin1\"),\n )?.[1],\n );\n if (!Number.isInteger(status))\n throw proxyError(\"REPOST_PROXY_CONNECT_FAILED\");\n const remainder = response.subarray(boundary + 4);\n if (remainder.length > 0) socket.unshift(remainder);\n return { socket, status };\n}\n\nfunction secureTunnel(\n socket: Socket,\n target: ProxyTarget,\n tls: ProxyTlsOptions | undefined,\n allowH2: boolean,\n timeoutMs: number,\n): Promise<TLSSocket> {\n const options: ConnectionOptions = {\n socket,\n servername: target.servername ?? target.hostname,\n ALPNProtocols: allowH2 ? [\"h2\", \"http/1.1\"] : [\"http/1.1\"],\n ca: tls?.caCertificates ? [...tls.caCertificates] : undefined,\n minVersion: tls?.minVersion ?? \"TLSv1.2\",\n maxVersion: tls?.maxVersion,\n ciphers: tls?.ciphers?.join(\":\"),\n cert: tls?.clientCertificate?.certificate,\n key: tls?.clientCertificate?.key,\n passphrase: tls?.clientCertificate?.passphrase,\n };\n const secure = connectTls(options);\n secure.on(\"error\", absorbLateError); // same late-error rationale as connectTunnel\n return new Promise((resolve, reject) => {\n const timer = setTimeout(\n () => secure.destroy(proxyError(\"UND_ERR_CONNECT_TIMEOUT\")),\n timeoutMs,\n );\n secure.once(\"secureConnect\", () => {\n clearTimeout(timer);\n resolve(secure);\n });\n secure.once(\"error\", (error) => {\n clearTimeout(timer);\n reject(error);\n });\n });\n}\n\nfunction socketReady(socket: Socket, timeoutMs: number): Promise<void> {\n return new Promise((resolve, reject) => {\n const timer = setTimeout(\n () => socket.destroy(proxyError(\"UND_ERR_CONNECT_TIMEOUT\")),\n timeoutMs,\n );\n socket.once(\"connect\", () => {\n clearTimeout(timer);\n resolve();\n });\n socket.once(\"error\", (error) => {\n clearTimeout(timer);\n reject(error);\n });\n });\n}\n\nfunction nextChunk(socket: Socket, timeoutMs: number): Promise<Buffer> {\n return new Promise((resolve, reject) => {\n const cleanup = () => {\n clearTimeout(timer);\n socket.off(\"error\", onError);\n socket.off(\"data\", onData);\n socket.off(\"end\", onEnd);\n };\n const timer = setTimeout(() => {\n cleanup();\n socket.destroy();\n reject(proxyError(\"UND_ERR_CONNECT_TIMEOUT\"));\n }, timeoutMs);\n const onData = (chunk: Buffer) => {\n cleanup();\n socket.pause();\n resolve(chunk);\n };\n const onError = (error: Error) => {\n cleanup();\n reject(error);\n };\n const onEnd = () => {\n cleanup();\n reject(proxyError(\"REPOST_PROXY_CONNECT_FAILED\"));\n };\n socket.once(\"data\", onData);\n socket.once(\"error\", onError);\n socket.once(\"end\", onEnd);\n socket.resume();\n });\n}\n\nfunction absorbLateError(): void {\n // Intentionally empty — see the attachment sites for why this exists.\n}\n\nfunction proxyError(code: string, cause?: unknown): NodeJS.ErrnoException {\n const error = new Error(\n \"proxy connection failed\",\n ) as NodeJS.ErrnoException & { cause?: unknown };\n error.code = code;\n error.cause = cause;\n return error;\n}\n","import { connect, constants, type ClientHttp2Session, type ClientHttp2Stream, type IncomingHttpHeaders } from \"node:http2\";\nimport type { TLSSocket } from \"node:tls\";\nimport type { UndiciDispatchRequest, UndiciDispatchResponse, UndiciPool } from \"./undici-compat\";\n\nexport function createH2Pool(origin: string, firstSocket: TLSSocket, socketFactory: () => Promise<TLSSocket>): UndiciPool {\n let initial: TLSSocket | null = firstSocket;\n let sessionPromise: Promise<ClientHttp2Session> | null = null;\n\n const session = (): Promise<ClientHttp2Session> => {\n if (sessionPromise) return sessionPromise;\n sessionPromise = (async () => {\n const socket = initial ?? await socketFactory();\n initial = null;\n const client = connect(origin, { createConnection: () => socket });\n client.once(\"goaway\", () => { if (sessionPromise) sessionPromise = null; });\n client.once(\"close\", () => { sessionPromise = null; });\n await new Promise<void>((resolve, reject) => {\n client.once(\"connect\", resolve);\n client.once(\"error\", reject);\n });\n return client;\n })();\n return sessionPromise;\n };\n\n return {\n async dispatch(request) {\n const client = await session();\n return dispatchH2(client, origin, request);\n },\n async close() {\n const client = sessionPromise ? await sessionPromise.catch(() => null) : null;\n client?.close();\n },\n };\n}\n\nfunction dispatchH2(client: ClientHttp2Session, origin: string, request: UndiciDispatchRequest): Promise<UndiciDispatchResponse> {\n return new Promise((resolve, reject) => {\n const authority = headerValue(request.headers, \"host\");\n const headers: Record<string, string> = {\n \":method\": \"POST\",\n \":scheme\": new URL(origin).protocol.slice(0, -1),\n \":authority\": authority,\n \":path\": request.path,\n };\n for (let index = 0; index + 1 < request.headers.length; index += 2) {\n const name = request.headers[index] ?? \"\";\n if (name !== \"host\") headers[name] = request.headers[index + 1] ?? \"\";\n }\n let stream: ClientHttp2Stream;\n try {\n stream = client.request(headers, { endStream: false });\n } catch (error) {\n reject(error);\n return;\n }\n let status = 0;\n let rawHeaders: readonly Uint8Array[] = [];\n const chunks: Uint8Array[] = [];\n let compressedBytes = 0;\n let retainedBytes = 0;\n let truncated = false;\n let settled = false;\n const cleanup = () => {\n request.signal.removeEventListener(\"abort\", abort);\n client.removeListener(\"goaway\", refusedByGoaway);\n };\n const finish = (response: UndiciDispatchResponse) => {\n if (settled) return;\n settled = true;\n cleanup();\n resolve(response);\n };\n const fail = (error: unknown) => {\n if (settled) return;\n settled = true;\n cleanup();\n reject(normalizeH2Error(error));\n };\n const abort = () => stream.close(constants.NGHTTP2_CANCEL);\n const refusedByGoaway = (_errorCode: number, lastStreamId: number) => {\n if (typeof stream.id === \"number\" && stream.id > lastStreamId) {\n fail(Object.assign(new Error(\"HTTP/2 stream refused by GOAWAY\"), { code: \"REPOST_H2_REFUSED\" }));\n }\n };\n request.signal.addEventListener(\"abort\", abort, { once: true });\n client.on(\"goaway\", refusedByGoaway);\n stream.once(\"response\", (responseHeaders) => {\n status = Number(responseHeaders[\":status\"] ?? 0);\n rawHeaders = h2Headers(responseHeaders);\n const declared = rawHeaderValue(rawHeaders, \"content-length\");\n if (declared !== null && /^(?:0|[1-9][0-9]*)$/u.test(declared) && Number(declared) > request.maxResponseBytes) {\n truncated = true;\n stream.close(constants.NGHTTP2_CANCEL);\n finish({ status, rawHeaders, chunks, compressedBytes, truncated });\n }\n });\n stream.on(\"data\", (chunk: Buffer) => {\n compressedBytes += chunk.length;\n const room = request.maxResponseBytes - retainedBytes;\n if (room > 0) {\n const retained = new Uint8Array(chunk.subarray(0, room));\n chunks.push(retained);\n retainedBytes += retained.length;\n }\n if (compressedBytes > request.maxResponseBytes) {\n truncated = true;\n stream.close(constants.NGHTTP2_CANCEL);\n finish({ status, rawHeaders, chunks, compressedBytes, truncated });\n }\n });\n stream.once(\"end\", () => {\n if (status === 0) fail(Object.assign(new Error(\"HTTP/2 stream ended before response\"), { code: \"ECONNRESET\" }));\n else finish({ status, rawHeaders, chunks, compressedBytes, truncated });\n });\n stream.once(\"error\", fail);\n stream.once(\"aborted\", () => fail(Object.assign(new Error(\"HTTP/2 stream reset\"), { code: \"ECONNRESET\" })));\n if (request.signal.aborted) {\n abort();\n return;\n }\n stream.end(request.body, () => {\n if (stream.rstCode === 0) request.onBodySent();\n });\n });\n}\n\nfunction h2Headers(headers: IncomingHttpHeaders): readonly Uint8Array[] {\n return Object.entries(headers).flatMap(([name, values]) => {\n if (name.startsWith(\":\") || values === undefined) return [];\n return (Array.isArray(values) ? values : [String(values)]).flatMap((value) => [Buffer.from(name, \"ascii\"), Buffer.from(value, \"utf8\")]);\n });\n}\n\nfunction headerValue(headers: readonly string[], name: string): string {\n for (let index = 0; index + 1 < headers.length; index += 2) if (headers[index] === name) return headers[index + 1] ?? \"\";\n return \"\";\n}\n\nfunction rawHeaderValue(raw: readonly Uint8Array[], name: string): string | null {\n for (let index = 0; index + 1 < raw.length; index += 2) {\n if (Buffer.from(raw[index]).toString(\"ascii\").toLowerCase() === name) return Buffer.from(raw[index + 1]).toString(\"utf8\");\n }\n return null;\n}\n\nfunction normalizeH2Error(error: unknown): unknown {\n if (error && typeof error === \"object\" && (error as { code?: unknown }).code === \"ERR_HTTP2_STREAM_ERROR\") {\n (error as { code: string }).code = \"ECONNRESET\";\n }\n return error;\n}\n","import { connect as connectNet, isIP, type Socket } from \"node:net\";\nimport { connect as connectTls, type ConnectionOptions, type TLSSocket } from \"node:tls\";\nimport { connectThroughProxy, type ProxyOptions, type ProxyTlsOptions } from \"./connect-proxy\";\n\nexport interface OriginSocketOptions {\n readonly allowH2: boolean;\n readonly connectTimeout: number;\n readonly tls?: ProxyTlsOptions;\n readonly proxy?: ProxyOptions;\n readonly dnsResolver?: (host: string) => Promise<{ address: string; family: 4 | 6 }[]>;\n}\n\nexport async function openOriginSocket(origin: string, options: OriginSocketOptions): Promise<Socket | TLSSocket> {\n const url = new URL(origin);\n const hostname = url.hostname.replace(/^\\[|\\]$/gu, \"\");\n const port = url.port || (url.protocol === \"https:\" ? \"443\" : \"80\");\n if (options.proxy) {\n return connectThroughProxy(options.proxy, { hostname, port, protocol: url.protocol, servername: hostname }, options.tls, options.allowH2, options.connectTimeout);\n }\n const resolved = options.dnsResolver ? await resolveAddress(options.dnsResolver, hostname) : null;\n const host = resolved?.address ?? hostname;\n if (url.protocol === \"http:\") {\n return awaitConnected(connectNet({ host, port: Number(port), family: resolved?.family }), options.connectTimeout);\n }\n const tlsOptions: ConnectionOptions = {\n host,\n port: Number(port),\n servername: isIP(hostname) === 0 ? hostname : undefined,\n ALPNProtocols: options.allowH2 ? [\"h2\", \"http/1.1\"] : [\"http/1.1\"],\n ca: options.tls?.caCertificates ? [...options.tls.caCertificates] : undefined,\n minVersion: options.tls?.minVersion ?? \"TLSv1.2\",\n maxVersion: options.tls?.maxVersion,\n ciphers: options.tls?.ciphers?.join(\":\"),\n cert: options.tls?.clientCertificate?.certificate,\n key: options.tls?.clientCertificate?.key,\n passphrase: options.tls?.clientCertificate?.passphrase,\n };\n return awaitSecure(connectTls(tlsOptions), options.connectTimeout);\n}\n\nasync function resolveAddress(\n resolver: NonNullable<OriginSocketOptions[\"dnsResolver\"]>,\n hostname: string,\n): Promise<{ address: string; family: 4 | 6 }> {\n try {\n const addresses = await resolver(hostname);\n const address = addresses[0];\n if (!address || (address.family !== 4 && address.family !== 6)) throw new Error(\"empty DNS result\");\n return address;\n } catch (cause) {\n const error = new Error(\"DNS resolver failed\") as NodeJS.ErrnoException & { cause?: unknown };\n error.code = \"REPOST_DNS_RESOLVER\";\n error.cause = cause;\n throw error;\n }\n}\n\nfunction awaitConnected(socket: Socket, timeoutMs: number): Promise<Socket> {\n return new Promise((resolve, reject) => {\n const timer = setTimeout(() => socket.destroy(timeoutError()), timeoutMs);\n socket.once(\"connect\", () => { clearTimeout(timer); resolve(socket); });\n socket.once(\"error\", (error) => { clearTimeout(timer); reject(error); });\n });\n}\n\nfunction awaitSecure(socket: TLSSocket, timeoutMs: number): Promise<TLSSocket> {\n return new Promise((resolve, reject) => {\n const timer = setTimeout(() => socket.destroy(timeoutError()), timeoutMs);\n socket.once(\"secureConnect\", () => { clearTimeout(timer); resolve(socket); });\n socket.once(\"error\", (error) => { clearTimeout(timer); reject(error); });\n });\n}\n\nfunction timeoutError(): NodeJS.ErrnoException {\n const error = new Error(\"connection timed out\") as NodeJS.ErrnoException;\n error.code = \"UND_ERR_CONNECT_TIMEOUT\";\n return error;\n}\n","import { Pool, buildConnector } from \"undici\";\nimport type { LookupFunction } from \"node:net\";\nimport type { Socket } from \"node:net\";\nimport type { TLSSocket } from \"node:tls\";\nimport { connectThroughProxy, type ProxyOptions } from \"./connect-proxy\";\nimport { createH2Pool } from \"./h2\";\nimport { openOriginSocket } from \"./tls\";\n\nexport interface UndiciPoolOptions {\n readonly connections: number;\n readonly clientTtl: number;\n readonly keepAliveTimeout: number;\n readonly allowH2: boolean;\n readonly connectTimeout: number;\n readonly tls?: {\n readonly caCertificates?: readonly string[];\n readonly minVersion?: \"TLSv1.2\" | \"TLSv1.3\";\n readonly maxVersion?: \"TLSv1.2\" | \"TLSv1.3\";\n readonly ciphers?: readonly string[];\n readonly clientCertificate?: { readonly certificate: string; readonly key: string; readonly passphrase?: string };\n };\n readonly dnsResolver?: (host: string) => Promise<{ address: string; family: 4 | 6 }[]>;\n readonly proxy?: ProxyOptions;\n}\n\nexport interface UndiciDispatchRequest {\n readonly path: string;\n readonly headers: string[];\n readonly body: Uint8Array;\n readonly headersTimeout: number;\n readonly bodyTimeout: number;\n readonly signal: AbortSignal;\n readonly onBodySent: () => void;\n readonly maxResponseBytes: number;\n}\n\nexport interface UndiciDispatchResponse {\n readonly status: number;\n readonly rawHeaders: readonly Uint8Array[];\n readonly chunks: readonly Uint8Array[];\n readonly compressedBytes: number;\n readonly truncated: boolean;\n}\n\nexport interface UndiciPool {\n dispatch(request: UndiciDispatchRequest): Promise<UndiciDispatchResponse>;\n close(): Promise<void>;\n}\n\n/** The sole Undici compatibility boundary for the SDK. */\nexport function createUndiciPool(origin: string, options: UndiciPoolOptions): UndiciPool {\n if (!options.allowH2 || !origin.startsWith(\"https://\")) return createHttp1Pool(origin, options);\n let lanePromise: Promise<UndiciPool> | null = null;\n const lane = () => {\n lanePromise ??= (async () => {\n const socket = await openOriginSocket(origin, options);\n if (\"alpnProtocol\" in socket && socket.alpnProtocol === \"h2\") {\n return createH2Pool(origin, socket, async () => {\n const next = await openOriginSocket(origin, options);\n if (!(\"alpnProtocol\" in next) || next.alpnProtocol !== \"h2\") {\n next.destroy();\n throw Object.assign(new Error(\"HTTP/2 negotiation failed\"), { code: \"ERR_TLS_ALPN_NEGOTIATION\" });\n }\n return next;\n });\n }\n return createHttp1Pool(origin, { ...options, allowH2: false }, socket);\n })();\n return lanePromise;\n };\n return {\n async dispatch(request) { return (await lane()).dispatch(request); },\n async close() { if (lanePromise) await (await lanePromise).close(); },\n };\n}\n\nfunction createHttp1Pool(origin: string, options: UndiciPoolOptions, initialSocket?: Socket | TLSSocket): UndiciPool {\n const bodyCommits = new WeakMap<object, { deferred: boolean; commit(): void }>();\n const lookup: LookupFunction | undefined = options.dnsResolver\n ? (hostname, lookupOptions, callback) => {\n options.dnsResolver?.(hostname).then(\n (addresses) => callback(null, lookupOptions.all ? addresses : addresses[0]?.address ?? \"\", addresses[0]?.family),\n (error) => callback(dnsResolverError(error), \"\", 0),\n );\n }\n : undefined;\n const connector = buildConnector({\n allowH2: options.allowH2,\n timeout: options.connectTimeout,\n lookup,\n ca: options.tls?.caCertificates ? [...options.tls.caCertificates] : undefined,\n minVersion: options.tls?.minVersion ?? \"TLSv1.2\",\n maxVersion: options.tls?.maxVersion,\n ciphers: options.tls?.ciphers?.join(\":\"),\n cert: options.tls?.clientCertificate?.certificate,\n key: options.tls?.clientCertificate?.key,\n passphrase: options.tls?.clientCertificate?.passphrase,\n });\n const connect = (\n connectOptions: Parameters<typeof connector>[0],\n callback: Parameters<typeof connector>[1],\n ) => {\n if (initialSocket) {\n const socket = initialSocket;\n initialSocket = undefined;\n if (!(\"alpnProtocol\" in socket) || socket.alpnProtocol !== \"h2\") installExactH1Framing(socket, bodyCommits);\n queueMicrotask(() => callback(null, socket));\n return;\n }\n if (options.proxy) {\n connectThroughProxy(options.proxy, connectOptions, options.tls, options.allowH2, options.connectTimeout).then(\n (socket) => {\n if (!(\"alpnProtocol\" in socket) || socket.alpnProtocol !== \"h2\") installExactH1Framing(socket, bodyCommits);\n callback(null, socket);\n },\n (error: Error) => callback(error, null),\n );\n return;\n }\n connector(connectOptions, (error, socket) => {\n if (error) {\n callback(error, null);\n return;\n }\n if (!(\"alpnProtocol\" in socket) || socket.alpnProtocol !== \"h2\") installExactH1Framing(socket, bodyCommits);\n callback(null, socket);\n });\n };\n const pool = new Pool(origin, {\n connections: options.connections,\n clientTtl: options.clientTtl,\n keepAliveTimeout: options.keepAliveTimeout,\n keepAliveMaxTimeout: options.keepAliveTimeout,\n allowH2: options.allowH2,\n pipelining: 1,\n strictContentLength: true,\n maxHeaderSize: 131_072,\n connect,\n });\n return {\n dispatch(request) {\n return new Promise((resolve, reject) => {\n let bodySent = false;\n const bodyKey = request.body.buffer as object;\n const bodyCommit = { deferred: false, commit: request.onBodySent };\n bodyCommits.set(bodyKey, bodyCommit);\n let status = 0;\n let rawHeaders: readonly Uint8Array[] = [];\n const chunks: Uint8Array[] = [];\n let compressedBytes = 0;\n let retainedBytes = 0;\n let truncated = false;\n let abortDispatch: ((error: Error) => void) | undefined;\n const limitError = new Error(\"response body limit exceeded\");\n const abortRequest = () => abortDispatch?.(request.signal.reason instanceof Error ? request.signal.reason : new Error(\"request aborted\"));\n request.signal.addEventListener(\"abort\", abortRequest, { once: true });\n pool.dispatch({\n path: request.path,\n method: \"POST\",\n headers: request.headers,\n body: request.body,\n idempotent: true,\n blocking: false,\n headersTimeout: request.headersTimeout,\n bodyTimeout: request.bodyTimeout,\n }, {\n onConnect(abort) {\n abortDispatch = abort;\n if (request.signal.aborted) abortRequest();\n },\n onBodySent() {\n if (bodySent) return;\n bodySent = true;\n if (!bodyCommit.deferred) {\n bodyCommits.delete(bodyKey);\n request.onBodySent();\n }\n },\n onHeaders(statusCode, headers) {\n status = statusCode;\n rawHeaders = headers.map((value) => new Uint8Array(value));\n const declared = rawHeaderValue(rawHeaders, \"content-length\");\n if (declared !== null && /^(?:0|[1-9][0-9]*)$/u.test(declared) && Number(declared) > request.maxResponseBytes) {\n truncated = true;\n abortDispatch?.(limitError);\n }\n return true;\n },\n onData(chunk) {\n compressedBytes += chunk.length;\n const room = request.maxResponseBytes - retainedBytes;\n if (room > 0) {\n const retained = new Uint8Array(chunk.subarray(0, room));\n chunks.push(retained);\n retainedBytes += retained.length;\n }\n if (compressedBytes > request.maxResponseBytes) {\n truncated = true;\n abortDispatch?.(limitError);\n }\n return true;\n },\n onComplete() {\n request.signal.removeEventListener(\"abort\", abortRequest);\n bodyCommits.delete(bodyKey);\n resolve({ status, rawHeaders, chunks, compressedBytes, truncated });\n },\n onError(error) {\n request.signal.removeEventListener(\"abort\", abortRequest);\n bodyCommits.delete(bodyKey);\n if (error === limitError) resolve({ status, rawHeaders, chunks, compressedBytes, truncated: true });\n else if (status !== 0) resolve({\n status,\n rawHeaders,\n chunks,\n compressedBytes,\n truncated: status < 200 || status >= 300,\n });\n else reject(error);\n },\n });\n });\n },\n close: () => pool.close(),\n };\n}\n\nfunction dnsResolverError(cause: unknown): NodeJS.ErrnoException {\n const error = new Error(\"DNS resolver failed\") as NodeJS.ErrnoException & { cause?: unknown };\n error.code = \"REPOST_DNS_RESOLVER\";\n error.cause = cause;\n return error;\n}\n\nfunction rawHeaderValue(raw: readonly Uint8Array[], target: string): string | null {\n let value: string | null = null;\n for (let index = 0; index + 1 < raw.length; index += 2) {\n if (Buffer.from(raw[index]).toString(\"latin1\").toLowerCase() !== target) continue;\n if (value !== null) return null;\n value = Buffer.from(raw[index + 1]).toString(\"latin1\");\n }\n return value;\n}\n\nfunction installExactH1Framing(\n socket: NonNullable<Parameters<Parameters<ReturnType<typeof buildConnector>>[1]>[1]>,\n bodyCommits: WeakMap<object, { deferred: boolean; commit(): void }>,\n) {\n const write = socket.write.bind(socket);\n let writeChain = Promise.resolve();\n socket.write = ((chunk: string | Uint8Array, encoding?: BufferEncoding, callback?: (error?: Error | null) => void) => {\n if (typeof chunk === \"string\" && chunk.startsWith(\"POST \") && chunk.includes(\" HTTP/1.1\\r\\n\")) {\n chunk = normalizeH1Header(chunk);\n writeChain = writeChain.then(() => new Promise<void>((resolve) => {\n if (socket.destroyed) return resolve();\n write(chunk, encoding, (error?: Error | null) => { callback?.(error); resolve(); });\n }));\n return true;\n }\n if (chunk instanceof Uint8Array && chunk.byteLength > 0) {\n const bodyCommit = bodyCommits.get(chunk.buffer as object);\n if (bodyCommit) {\n bodyCommit.deferred = true;\n writeChain = writeChain\n .then(() => peerResetOpportunity())\n .then(() => new Promise<void>((resolve) => {\n if (socket.destroyed) return resolve();\n write(chunk, encoding, (error?: Error | null) => {\n bodyCommits.delete(chunk.buffer as object);\n if (!error) bodyCommit.commit();\n callback?.(error);\n resolve();\n });\n }));\n return true;\n }\n }\n return write(chunk, encoding, callback);\n }) as typeof socket.write;\n}\n\nfunction peerResetOpportunity(): Promise<void> {\n // Let a peer that rejected the headers close before any body byte is queued.\n // This keeps a header-only reset classified as uncommitted.\n return new Promise((resolve) => setTimeout(resolve, 5));\n}\n\nfunction normalizeH1Header(header: string): string {\n const withoutConnection = header.replace(/^connection: (?:keep-alive|close)\\r\\n/mu, \"\");\n const contentLength = /^content-length: [0-9]+\\r\\n/mu.exec(withoutConnection)?.[0];\n if (!contentLength) return withoutConnection;\n const withoutLength = withoutConnection.replace(contentLength, \"\");\n return withoutLength.replace(/^(host: [^\\r\\n]+\\r\\n)/mu, `$1${contentLength}`);\n}\n","import type { HttpTransportOptions } from \"../transport\";\nimport type { AttemptOutcome, AttemptRequest, Transport } from \"../types\";\nimport { frameRequest } from \"./framing\";\nimport { classifyNetworkFailure, errorCode } from \"./failure\";\nimport { readResponse } from \"./response-reader\";\nimport { createUndiciPool, type UndiciPool } from \"./undici-compat\";\n\nconst RESPONSE_LIMIT_BYTES = 1_048_576;\n\nexport function createNodeTransport(options: HttpTransportOptions = {}): Transport {\n const compressedLimit = (options as HttpTransportOptions & { responseCompressedLimitBytes?: number }).responseCompressedLimitBytes ?? RESPONSE_LIMIT_BYTES;\n const pools = new Map<string, UndiciPool>();\n const poolFor = (origin: string, request: AttemptRequest): UndiciPool => {\n let pool = pools.get(origin);\n if (!pool) {\n pool = createUndiciPool(origin, {\n connections: options.maxConnectionsPerOrigin ?? 32,\n clientTtl: options.connectionLifetimeMs ?? 300_000,\n keepAliveTimeout: options.connectionIdleTimeoutMs ?? 120_000,\n allowH2: options.http2 ?? true,\n connectTimeout: request.connectTimeoutMs,\n tls: options.tls,\n dnsResolver: options.dnsResolver,\n proxy: options.proxy,\n });\n pools.set(origin, pool);\n }\n return pool;\n };\n return {\n async send(request: AttemptRequest): Promise<AttemptOutcome> {\n const framed = frameRequest(request);\n const pool = poolFor(framed.origin, request);\n try {\n const response = await dispatch(pool, framed.path, framed.headers, request, compressedLimit);\n return await readResponse(response.status, response.rawHeaders, response.chunks, response.compressedBytes, response.truncated, compressedLimit);\n } catch (error) {\n return classifyFailure(error, request.commitTracker.committed);\n }\n },\n async close() {\n await Promise.all([...pools.values()].map((pool) => pool.close()));\n pools.clear();\n },\n };\n}\n\nfunction dispatch(pool: UndiciPool, path: string, headers: string[], request: AttemptRequest, compressedLimit: number) {\n return pool.dispatch({\n path,\n headers,\n body: request.bodyBytes,\n headersTimeout: request.attemptTimeoutMs,\n bodyTimeout: request.attemptTimeoutMs,\n signal: request.signal,\n onBodySent: () => request.commitTracker.markCommitted(),\n maxResponseBytes: compressedLimit + 1,\n });\n}\n\nfunction classifyFailure(error: unknown, committed: boolean): AttemptOutcome {\n if (errorCode(error) === \"REPOST_H2_REFUSED\") {\n return { kind: \"failure\", code: \"IO\", reason: \"CONNECTION_RESET\", committed: false };\n }\n const classified = classifyNetworkFailure(error, committed);\n if (classified) return classified;\n if (errorCode(error) === \"ECONNRESET\" || errorCode(error) === \"ERR_HTTP2_STREAM_ERROR\") {\n return { kind: \"failure\", code: \"IO\", reason: \"CONNECTION_RESET\", committed };\n }\n if (errorCode(error) === \"UND_ERR_INFO\" && error instanceof Error && error.message.startsWith(\"HTTP/2:\")) {\n return { kind: \"failure\", code: \"IO\", reason: \"CONNECTION_RESET\", committed };\n }\n return {\n kind: \"failure\",\n code: \"IO\",\n reason: \"UNKNOWN\",\n committed,\n causeCategory: \"HTTP_RUNTIME\",\n };\n}\n"],"names":["connectTls","connect","rawHeaderValue","connectNet","errorCode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"node-CJzpalHQ.mjs","sources":["../../../src/transport/framing.ts","../../../src/transport/response-reader.ts","../../../src/transport/connect-proxy.ts","../../../src/transport/h2.ts","../../../src/transport/tls.ts","../../../src/transport/undici-compat.ts","../../../src/transport/node.ts"],"sourcesContent":["import type { AttemptRequest } from \"../types\";\n\nexport interface FramedRequest {\n readonly origin: string;\n readonly path: string;\n readonly headers: string[];\n}\n\n/** Builds the exact ordered fields used by the Node H1/H2 dispatcher. */\nexport function frameRequest(request: AttemptRequest): FramedRequest {\n const url = new URL(request.url);\n const authority = explicitAuthority(request.url);\n const headers = [\n \"host\", authority,\n \"content-length\", String(request.bodyBytes.byteLength),\n ];\n for (const [name, value] of request.headers) headers.push(name, value);\n return {\n origin: `${url.protocol}//${authority}`,\n path: `${url.pathname}${url.search}`,\n headers,\n };\n}\n\nfunction explicitAuthority(value: string): string {\n const start = value.indexOf(\"://\");\n const authorityStart = start < 0 ? 0 : start + 3;\n const tail = value.slice(authorityStart);\n const authorityEnd = tail.search(/[/?#]/u);\n return tail.slice(0, authorityEnd < 0 ? undefined : authorityEnd);\n}\n","import { gunzip } from \"node:zlib\";\nimport type { AttemptOutcome, BoundedHeaders } from \"../types\";\n\nconst COMPRESSED_LIMIT = 1_048_576;\nconst DECOMPRESSED_LIMIT = 1_048_576;\nconst ERROR_INSPECTION_LIMIT = 65_536;\nconst EXPANSION_RATIO_LIMIT = 100;\nconst HEADER_FIELD_LIMIT = 100;\nconst HEADER_BYTES_LIMIT = 65_536;\nconst HEADER_NAME_LIMIT = 256;\nconst HEADER_VALUE_LIMIT = 8_192;\nconst encoder = new TextEncoder();\nconst asciiOnlyHeaders = new Set([\"content-encoding\", \"content-length\", \"content-type\", \"retry-after\", \"location\"]);\nconst framingHeaders = new Set([\"connection\", \"date\", \"keep-alive\", \"transfer-encoding\"]);\n\ntype ResponseOutcome = Extract<AttemptOutcome, { kind: \"response\" }>;\n\nexport async function readResponse(\n status: number,\n rawHeaders: readonly Uint8Array[],\n chunks: readonly Uint8Array[],\n compressedBytes: number,\n transportTruncated: boolean,\n compressedLimit = COMPRESSED_LIMIT,\n): Promise<ResponseOutcome> {\n const headerSnapshot = snapshotHeaders(rawHeaders);\n const common = {\n kind: \"response\" as const,\n status,\n headers: headerSnapshot.headers,\n compressedBytes,\n responseHeaderFields: headerSnapshot.fields,\n responseHeaderBytes: headerSnapshot.bytes,\n };\n const success = status >= 200 && status <= 299;\n if (headerSnapshot.protocolInvalid || headerSnapshot.limitExceeded) {\n return {\n ...common,\n bodyBytes: new Uint8Array(),\n compressedBytes: 0,\n decompressedBytes: 0,\n truncated: transportTruncated,\n headerLimitExceeded: true,\n ...(headerSnapshot.protocolInvalid ? { protocolError: true } : {}),\n ...(headerSnapshot.limitExceeded ? { limitExceeded: success, nonRetryable: !success } : {}),\n };\n }\n\n const outputLimit = success ? DECOMPRESSED_LIMIT : ERROR_INSPECTION_LIMIT;\n const encoding = contentEncoding(headerSnapshot.headers);\n if (encoding === null) {\n return { ...common, bodyBytes: new Uint8Array(), compressedBytes: 0, decompressedBytes: 0, truncated: false, protocolError: true };\n }\n const declaredLength = singleHeader(headerSnapshot.headers, \"content-length\");\n if (success && declaredLength !== null && (!/^(?:0|[1-9][0-9]*)$/u.test(declaredLength) || Number(declaredLength) > compressedLimit)) {\n return { ...common, bodyBytes: new Uint8Array(), decompressedBytes: 0, truncated: transportTruncated, limitExceeded: true };\n }\n if (transportTruncated || compressedBytes > compressedLimit) {\n if (encoding === \"identity\") {\n const overLimit = compressedBytes > compressedLimit;\n return {\n ...common,\n bodyBytes: concatenate(chunks, Math.min(outputLimit, compressedLimit)),\n decompressedBytes: compressedBytes,\n truncated: overLimit ? false : transportTruncated,\n ...(success && overLimit ? { limitExceeded: true } : {}),\n ...(success && transportTruncated && !overLimit ? { protocolError: true } : {}),\n ...(!success && overLimit ? { nonRetryable: true } : {}),\n };\n }\n return {\n ...common,\n bodyBytes: new Uint8Array(),\n decompressedBytes: 0,\n truncated: transportTruncated,\n protocolError: true,\n };\n }\n const compressed = concatenate(chunks, compressedLimit);\n if (encoding === \"identity\") {\n const truncated = compressed.length > outputLimit;\n const bodyBytes = truncated ? compressed.slice(0, outputLimit) : compressed;\n return { ...common, bodyBytes, decompressedBytes: compressed.length, truncated, limitExceeded: success && truncated };\n }\n\n try {\n const decoded = new Uint8Array(await new Promise<Buffer>((resolve, reject) => {\n gunzip(compressed, { maxOutputLength: outputLimit + 1 }, (error, value) => {\n if (error) reject(error);\n else resolve(value);\n });\n }));\n const ratioExceeded = compressed.length === 0 ? decoded.length > 0 : decoded.length > compressed.length * EXPANSION_RATIO_LIMIT;\n const truncated = decoded.length > outputLimit;\n const bodyBytes = decoded.slice(0, Math.min(decoded.length, outputLimit));\n return {\n ...common,\n bodyBytes,\n decompressedBytes: decoded.length,\n truncated,\n ...(ratioExceeded ? { protocolError: true } : { limitExceeded: success && truncated }),\n };\n } catch (error) {\n const limit = errorCode(error) === \"ERR_BUFFER_TOO_LARGE\";\n return {\n ...common,\n bodyBytes: new Uint8Array(),\n decompressedBytes: limit ? outputLimit + 1 : 0,\n truncated: limit,\n ...(limit ? { limitExceeded: success } : { protocolError: true }),\n };\n }\n}\n\ninterface HeaderSnapshot {\n readonly headers: BoundedHeaders;\n readonly fields: number;\n readonly bytes: number;\n readonly protocolInvalid: boolean;\n readonly limitExceeded: boolean;\n}\n\nfunction snapshotHeaders(raw: readonly Uint8Array[]): HeaderSnapshot {\n const headers: Record<string, string[]> = {};\n let fields = 0;\n let bytes = 0;\n let protocolInvalid = raw.length % 2 !== 0;\n let limitExceeded = false;\n for (let index = 0; index + 1 < raw.length; index += 2) {\n const name = Buffer.from(raw[index]).toString(\"latin1\").toLowerCase();\n const value = Buffer.from(raw[index + 1]).toString(\"latin1\");\n if (framingHeaders.has(name)) continue;\n fields += 1;\n const nameBytes = encoder.encode(name).length;\n const valueBytes = encoder.encode(value).length;\n bytes = saturatingAdd(bytes, nameBytes + 2 + valueBytes + 2);\n if (fields > HEADER_FIELD_LIMIT || bytes > HEADER_BYTES_LIMIT || nameBytes > HEADER_NAME_LIMIT || valueBytes > HEADER_VALUE_LIMIT) limitExceeded = true;\n if (nameBytes < 1\n || !/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/u.test(name)\n || /[\\u0000-\\u0008\\u000b\\u000c\\u000e-\\u001f\\u007f]/u.test(value)\n || (asciiOnlyHeaders.has(name) && /[^\\u0000-\\u007f]/u.test(value))) protocolInvalid = true;\n if (protocolInvalid || limitExceeded) continue;\n (headers[name] ??= []).push(value);\n }\n return { headers, fields, bytes, protocolInvalid, limitExceeded };\n}\n\nfunction contentEncoding(headers: BoundedHeaders): \"identity\" | \"gzip\" | null {\n const values = headers[\"content-encoding\"] ?? [];\n if (values.length === 0) return \"identity\";\n if (values.length !== 1) return null;\n const value = values[0]?.trim().toLowerCase();\n return value === \"identity\" || value === \"gzip\" ? value : null;\n}\n\nfunction singleHeader(headers: BoundedHeaders, name: string): string | null {\n const values = headers[name] ?? [];\n return values.length === 1 ? values[0] ?? null : null;\n}\n\nfunction concatenate(chunks: readonly Uint8Array[], limit: number): Uint8Array {\n const length = Math.min(limit + 1, chunks.reduce((total, chunk) => saturatingAdd(total, chunk.length), 0));\n const bytes = new Uint8Array(length);\n let offset = 0;\n for (const chunk of chunks) {\n const part = chunk.subarray(0, length - offset);\n bytes.set(part, offset);\n offset += part.length;\n if (offset === length) break;\n }\n return bytes;\n}\n\nfunction saturatingAdd(left: number, right: number): number {\n return left > Number.MAX_SAFE_INTEGER - right ? Number.MAX_SAFE_INTEGER : left + right;\n}\n\nfunction errorCode(error: unknown): string {\n return error && typeof error === \"object\" && typeof (error as { code?: unknown }).code === \"string\"\n ? (error as { code: string }).code\n : \"\";\n}\n","import { connect, type Socket } from \"node:net\";\nimport {\n connect as connectTls,\n type ConnectionOptions,\n type TLSSocket,\n} from \"node:tls\";\n\nconst HEADER_LIMIT = 65_536;\n\nexport interface ProxyOptions {\n readonly url: string;\n readonly credentialsProvider?: () =>\n | { username: string; password: string }\n | Promise<{ username: string; password: string }>;\n}\n\nexport interface ProxyTarget {\n readonly hostname: string;\n readonly port: string;\n readonly protocol: string;\n readonly servername?: string;\n}\n\nexport interface ProxyTlsOptions {\n readonly caCertificates?: readonly string[];\n readonly minVersion?: \"TLSv1.2\" | \"TLSv1.3\";\n readonly maxVersion?: \"TLSv1.2\" | \"TLSv1.3\";\n readonly ciphers?: readonly string[];\n readonly clientCertificate?: {\n readonly certificate: string;\n readonly key: string;\n readonly passphrase?: string;\n };\n}\n\nexport async function connectThroughProxy(\n proxy: ProxyOptions,\n target: ProxyTarget,\n tls: ProxyTlsOptions | undefined,\n allowH2: boolean,\n timeoutMs: number,\n): Promise<Socket | TLSSocket> {\n const authority = `${target.hostname}:${target.port}`;\n let authorization: string | undefined;\n if (proxy.credentialsProvider) {\n let credentials: { username: string; password: string };\n try {\n credentials = await proxy.credentialsProvider();\n } catch (cause) {\n throw proxyError(\"REPOST_PROXY_CREDENTIAL_PROVIDER\", cause);\n }\n authorization = `Basic ${Buffer.from(`${credentials.username}:${credentials.password}`, \"utf8\").toString(\"base64\")}`;\n }\n const tunnel = await connectTunnel(\n proxy.url,\n authority,\n authorization,\n timeoutMs,\n );\n if (tunnel.status === 407) {\n tunnel.socket.destroy();\n throw proxyError(\"REPOST_PROXY_AUTH_REQUIRED\");\n }\n if (tunnel.status !== 200) {\n tunnel.socket.destroy();\n throw proxyError(\"REPOST_PROXY_CONNECT_FAILED\");\n }\n if (target.protocol !== \"https:\") return tunnel.socket;\n return secureTunnel(tunnel.socket, target, tls, allowH2, timeoutMs);\n}\n\nasync function connectTunnel(\n proxyValue: string,\n authority: string,\n authorization: string | undefined,\n timeoutMs: number,\n) {\n const proxy = new URL(proxyValue);\n if (\n proxy.protocol !== \"http:\" ||\n proxy.username ||\n proxy.password ||\n proxy.pathname !== \"/\"\n ) {\n throw proxyError(\"REPOST_PROXY_CONNECT_FAILED\");\n }\n const socket = connect({\n host: proxy.hostname,\n port: Number(proxy.port || 80),\n });\n // A late 'error' after our once-handlers detach (timeout teardown racing a\n // peer RST, or a second emission on an already-destroyed socket) would be an\n // uncaught 'error' event and crash the process. One permanent absorber keeps\n // that impossible; every real failure path still rejects via its own handler,\n // and the eventual consumer of the returned socket attaches its own.\n socket.on(\"error\", absorbLateError);\n await socketReady(socket, timeoutMs);\n socket.write(\n `CONNECT ${authority} HTTP/1.1\\r\\n` +\n `host: ${authority}\\r\\n` +\n (authorization ? `proxy-authorization: ${authorization}\\r\\n` : \"\") +\n \"\\r\\n\",\n \"latin1\",\n );\n let response = Buffer.alloc(0);\n while (response.indexOf(\"\\r\\n\\r\\n\") < 0) {\n const chunk = await nextChunk(socket, timeoutMs);\n response = Buffer.concat(\n [response, chunk],\n Math.min(HEADER_LIMIT + 1, response.length + chunk.length),\n );\n if (response.length > HEADER_LIMIT)\n throw proxyError(\"REPOST_PROXY_CONNECT_FAILED\");\n }\n const boundary = response.indexOf(\"\\r\\n\\r\\n\");\n const status = Number(\n /^HTTP\\/1\\.1 ([0-9]{3})/u.exec(\n response.subarray(0, boundary).toString(\"latin1\"),\n )?.[1],\n );\n if (!Number.isInteger(status))\n throw proxyError(\"REPOST_PROXY_CONNECT_FAILED\");\n const remainder = response.subarray(boundary + 4);\n if (remainder.length > 0) socket.unshift(remainder);\n return { socket, status };\n}\n\nfunction secureTunnel(\n socket: Socket,\n target: ProxyTarget,\n tls: ProxyTlsOptions | undefined,\n allowH2: boolean,\n timeoutMs: number,\n): Promise<TLSSocket> {\n const options: ConnectionOptions = {\n socket,\n servername: target.servername ?? target.hostname,\n ALPNProtocols: allowH2 ? [\"h2\", \"http/1.1\"] : [\"http/1.1\"],\n ca: tls?.caCertificates ? [...tls.caCertificates] : undefined,\n minVersion: tls?.minVersion ?? \"TLSv1.2\",\n maxVersion: tls?.maxVersion,\n ciphers: tls?.ciphers?.join(\":\"),\n cert: tls?.clientCertificate?.certificate,\n key: tls?.clientCertificate?.key,\n passphrase: tls?.clientCertificate?.passphrase,\n };\n const secure = connectTls(options);\n secure.on(\"error\", absorbLateError); // same late-error rationale as connectTunnel\n return new Promise((resolve, reject) => {\n const timer = setTimeout(\n () => secure.destroy(proxyError(\"UND_ERR_CONNECT_TIMEOUT\")),\n timeoutMs,\n );\n secure.once(\"secureConnect\", () => {\n clearTimeout(timer);\n resolve(secure);\n });\n secure.once(\"error\", (error) => {\n clearTimeout(timer);\n reject(error);\n });\n });\n}\n\nfunction socketReady(socket: Socket, timeoutMs: number): Promise<void> {\n return new Promise((resolve, reject) => {\n const timer = setTimeout(\n () => socket.destroy(proxyError(\"UND_ERR_CONNECT_TIMEOUT\")),\n timeoutMs,\n );\n socket.once(\"connect\", () => {\n clearTimeout(timer);\n resolve();\n });\n socket.once(\"error\", (error) => {\n clearTimeout(timer);\n reject(error);\n });\n });\n}\n\nfunction nextChunk(socket: Socket, timeoutMs: number): Promise<Buffer> {\n return new Promise((resolve, reject) => {\n const cleanup = () => {\n clearTimeout(timer);\n socket.off(\"error\", onError);\n socket.off(\"data\", onData);\n socket.off(\"end\", onEnd);\n };\n const timer = setTimeout(() => {\n cleanup();\n socket.destroy();\n reject(proxyError(\"UND_ERR_CONNECT_TIMEOUT\"));\n }, timeoutMs);\n const onData = (chunk: Buffer) => {\n cleanup();\n socket.pause();\n resolve(chunk);\n };\n const onError = (error: Error) => {\n cleanup();\n reject(error);\n };\n const onEnd = () => {\n cleanup();\n reject(proxyError(\"REPOST_PROXY_CONNECT_FAILED\"));\n };\n socket.once(\"data\", onData);\n socket.once(\"error\", onError);\n socket.once(\"end\", onEnd);\n socket.resume();\n });\n}\n\nfunction absorbLateError(): void {\n // Intentionally empty — see the attachment sites for why this exists.\n}\n\nfunction proxyError(code: string, cause?: unknown): NodeJS.ErrnoException {\n const error = new Error(\n \"proxy connection failed\",\n ) as NodeJS.ErrnoException & { cause?: unknown };\n error.code = code;\n error.cause = cause;\n return error;\n}\n","import { connect, constants, type ClientHttp2Session, type ClientHttp2Stream, type IncomingHttpHeaders } from \"node:http2\";\nimport type { TLSSocket } from \"node:tls\";\nimport type { UndiciDispatchRequest, UndiciDispatchResponse, UndiciPool } from \"./undici-compat\";\n\nexport function createH2Pool(origin: string, firstSocket: TLSSocket, socketFactory: () => Promise<TLSSocket>): UndiciPool {\n let initial: TLSSocket | null = firstSocket;\n let sessionPromise: Promise<ClientHttp2Session> | null = null;\n\n const session = (): Promise<ClientHttp2Session> => {\n if (sessionPromise) return sessionPromise;\n sessionPromise = (async () => {\n const socket = initial ?? await socketFactory();\n initial = null;\n const client = connect(origin, { createConnection: () => socket });\n client.once(\"goaway\", () => { if (sessionPromise) sessionPromise = null; });\n client.once(\"close\", () => { sessionPromise = null; });\n await new Promise<void>((resolve, reject) => {\n client.once(\"connect\", resolve);\n client.once(\"error\", reject);\n });\n return client;\n })();\n return sessionPromise;\n };\n\n return {\n async dispatch(request) {\n const client = await session();\n return dispatchH2(client, origin, request);\n },\n async close() {\n const client = sessionPromise ? await sessionPromise.catch(() => null) : null;\n client?.close();\n },\n };\n}\n\nfunction dispatchH2(client: ClientHttp2Session, origin: string, request: UndiciDispatchRequest): Promise<UndiciDispatchResponse> {\n return new Promise((resolve, reject) => {\n const authority = headerValue(request.headers, \"host\");\n const headers: Record<string, string> = {\n \":method\": \"POST\",\n \":scheme\": new URL(origin).protocol.slice(0, -1),\n \":authority\": authority,\n \":path\": request.path,\n };\n for (let index = 0; index + 1 < request.headers.length; index += 2) {\n const name = request.headers[index] ?? \"\";\n if (name !== \"host\") headers[name] = request.headers[index + 1] ?? \"\";\n }\n let stream: ClientHttp2Stream;\n try {\n stream = client.request(headers, { endStream: false });\n } catch (error) {\n reject(error);\n return;\n }\n let status = 0;\n let rawHeaders: readonly Uint8Array[] = [];\n const chunks: Uint8Array[] = [];\n let compressedBytes = 0;\n let retainedBytes = 0;\n let truncated = false;\n let settled = false;\n const cleanup = () => {\n request.signal.removeEventListener(\"abort\", abort);\n client.removeListener(\"goaway\", refusedByGoaway);\n };\n const finish = (response: UndiciDispatchResponse) => {\n if (settled) return;\n settled = true;\n cleanup();\n resolve(response);\n };\n const fail = (error: unknown) => {\n if (settled) return;\n settled = true;\n cleanup();\n reject(normalizeH2Error(error));\n };\n const abort = () => stream.close(constants.NGHTTP2_CANCEL);\n const refusedByGoaway = (_errorCode: number, lastStreamId: number) => {\n if (typeof stream.id === \"number\" && stream.id > lastStreamId) {\n fail(Object.assign(new Error(\"HTTP/2 stream refused by GOAWAY\"), { code: \"REPOST_H2_REFUSED\" }));\n }\n };\n request.signal.addEventListener(\"abort\", abort, { once: true });\n client.on(\"goaway\", refusedByGoaway);\n stream.once(\"response\", (responseHeaders) => {\n status = Number(responseHeaders[\":status\"] ?? 0);\n rawHeaders = h2Headers(responseHeaders);\n const declared = rawHeaderValue(rawHeaders, \"content-length\");\n if (declared !== null && /^(?:0|[1-9][0-9]*)$/u.test(declared) && Number(declared) > request.maxResponseBytes) {\n truncated = true;\n stream.close(constants.NGHTTP2_CANCEL);\n finish({ status, rawHeaders, chunks, compressedBytes, truncated });\n }\n });\n stream.on(\"data\", (chunk: Buffer) => {\n compressedBytes += chunk.length;\n const room = request.maxResponseBytes - retainedBytes;\n if (room > 0) {\n const retained = new Uint8Array(chunk.subarray(0, room));\n chunks.push(retained);\n retainedBytes += retained.length;\n }\n if (compressedBytes > request.maxResponseBytes) {\n truncated = true;\n stream.close(constants.NGHTTP2_CANCEL);\n finish({ status, rawHeaders, chunks, compressedBytes, truncated });\n }\n });\n stream.once(\"end\", () => {\n if (status === 0) fail(Object.assign(new Error(\"HTTP/2 stream ended before response\"), { code: \"ECONNRESET\" }));\n else finish({ status, rawHeaders, chunks, compressedBytes, truncated });\n });\n stream.once(\"error\", fail);\n stream.once(\"aborted\", () => fail(Object.assign(new Error(\"HTTP/2 stream reset\"), { code: \"ECONNRESET\" })));\n if (request.signal.aborted) {\n abort();\n return;\n }\n stream.end(request.body, () => {\n if (stream.rstCode === 0) request.onBodySent();\n });\n });\n}\n\nfunction h2Headers(headers: IncomingHttpHeaders): readonly Uint8Array[] {\n return Object.entries(headers).flatMap(([name, values]) => {\n if (name.startsWith(\":\") || values === undefined) return [];\n return (Array.isArray(values) ? values : [String(values)]).flatMap((value) => [Buffer.from(name, \"ascii\"), Buffer.from(value, \"utf8\")]);\n });\n}\n\nfunction headerValue(headers: readonly string[], name: string): string {\n for (let index = 0; index + 1 < headers.length; index += 2) if (headers[index] === name) return headers[index + 1] ?? \"\";\n return \"\";\n}\n\nfunction rawHeaderValue(raw: readonly Uint8Array[], name: string): string | null {\n for (let index = 0; index + 1 < raw.length; index += 2) {\n if (Buffer.from(raw[index]).toString(\"ascii\").toLowerCase() === name) return Buffer.from(raw[index + 1]).toString(\"utf8\");\n }\n return null;\n}\n\nfunction normalizeH2Error(error: unknown): unknown {\n if (error && typeof error === \"object\" && (error as { code?: unknown }).code === \"ERR_HTTP2_STREAM_ERROR\") {\n (error as { code: string }).code = \"ECONNRESET\";\n }\n return error;\n}\n","import { connect as connectNet, isIP, type Socket } from \"node:net\";\nimport { connect as connectTls, type ConnectionOptions, type TLSSocket } from \"node:tls\";\nimport { connectThroughProxy, type ProxyOptions, type ProxyTlsOptions } from \"./connect-proxy\";\n\nexport interface OriginSocketOptions {\n readonly allowH2: boolean;\n readonly connectTimeout: number;\n readonly tls?: ProxyTlsOptions;\n readonly proxy?: ProxyOptions;\n readonly dnsResolver?: (host: string) => Promise<{ address: string; family: 4 | 6 }[]>;\n}\n\nexport async function openOriginSocket(origin: string, options: OriginSocketOptions): Promise<Socket | TLSSocket> {\n const url = new URL(origin);\n const hostname = url.hostname.replace(/^\\[|\\]$/gu, \"\");\n const port = url.port || (url.protocol === \"https:\" ? \"443\" : \"80\");\n if (options.proxy) {\n return connectThroughProxy(options.proxy, { hostname, port, protocol: url.protocol, servername: hostname }, options.tls, options.allowH2, options.connectTimeout);\n }\n const resolved = options.dnsResolver ? await resolveAddress(options.dnsResolver, hostname) : null;\n const host = resolved?.address ?? hostname;\n if (url.protocol === \"http:\") {\n return awaitConnected(connectNet({ host, port: Number(port), family: resolved?.family }), options.connectTimeout);\n }\n const tlsOptions: ConnectionOptions = {\n host,\n port: Number(port),\n servername: isIP(hostname) === 0 ? hostname : undefined,\n ALPNProtocols: options.allowH2 ? [\"h2\", \"http/1.1\"] : [\"http/1.1\"],\n ca: options.tls?.caCertificates ? [...options.tls.caCertificates] : undefined,\n minVersion: options.tls?.minVersion ?? \"TLSv1.2\",\n maxVersion: options.tls?.maxVersion,\n ciphers: options.tls?.ciphers?.join(\":\"),\n cert: options.tls?.clientCertificate?.certificate,\n key: options.tls?.clientCertificate?.key,\n passphrase: options.tls?.clientCertificate?.passphrase,\n };\n return awaitSecure(connectTls(tlsOptions), options.connectTimeout);\n}\n\nasync function resolveAddress(\n resolver: NonNullable<OriginSocketOptions[\"dnsResolver\"]>,\n hostname: string,\n): Promise<{ address: string; family: 4 | 6 }> {\n try {\n const addresses = await resolver(hostname);\n const address = addresses[0];\n if (!address || (address.family !== 4 && address.family !== 6)) throw new Error(\"empty DNS result\");\n return address;\n } catch (cause) {\n const error = new Error(\"DNS resolver failed\") as NodeJS.ErrnoException & { cause?: unknown };\n error.code = \"REPOST_DNS_RESOLVER\";\n error.cause = cause;\n throw error;\n }\n}\n\nfunction awaitConnected(socket: Socket, timeoutMs: number): Promise<Socket> {\n return new Promise((resolve, reject) => {\n const timer = setTimeout(() => socket.destroy(timeoutError()), timeoutMs);\n socket.once(\"connect\", () => { clearTimeout(timer); resolve(socket); });\n socket.once(\"error\", (error) => { clearTimeout(timer); reject(error); });\n });\n}\n\nfunction awaitSecure(socket: TLSSocket, timeoutMs: number): Promise<TLSSocket> {\n return new Promise((resolve, reject) => {\n const timer = setTimeout(() => socket.destroy(timeoutError()), timeoutMs);\n socket.once(\"secureConnect\", () => { clearTimeout(timer); resolve(socket); });\n socket.once(\"error\", (error) => { clearTimeout(timer); reject(error); });\n });\n}\n\nfunction timeoutError(): NodeJS.ErrnoException {\n const error = new Error(\"connection timed out\") as NodeJS.ErrnoException;\n error.code = \"UND_ERR_CONNECT_TIMEOUT\";\n return error;\n}\n","import { Pool, buildConnector } from \"undici\";\nimport type { LookupFunction } from \"node:net\";\nimport type { Socket } from \"node:net\";\nimport type { TLSSocket } from \"node:tls\";\nimport { connectThroughProxy, type ProxyOptions } from \"./connect-proxy\";\nimport { createH2Pool } from \"./h2\";\nimport { openOriginSocket } from \"./tls\";\n\nexport interface UndiciPoolOptions {\n readonly connections: number;\n readonly clientTtl: number;\n readonly keepAliveTimeout: number;\n readonly allowH2: boolean;\n readonly connectTimeout: number;\n readonly tls?: {\n readonly caCertificates?: readonly string[];\n readonly minVersion?: \"TLSv1.2\" | \"TLSv1.3\";\n readonly maxVersion?: \"TLSv1.2\" | \"TLSv1.3\";\n readonly ciphers?: readonly string[];\n readonly clientCertificate?: { readonly certificate: string; readonly key: string; readonly passphrase?: string };\n };\n readonly dnsResolver?: (host: string) => Promise<{ address: string; family: 4 | 6 }[]>;\n readonly proxy?: ProxyOptions;\n}\n\nexport interface UndiciDispatchRequest {\n readonly path: string;\n readonly headers: string[];\n readonly body: Uint8Array;\n readonly headersTimeout: number;\n readonly bodyTimeout: number;\n readonly signal: AbortSignal;\n readonly onBodySent: () => void;\n readonly maxResponseBytes: number;\n}\n\nexport interface UndiciDispatchResponse {\n readonly status: number;\n readonly rawHeaders: readonly Uint8Array[];\n readonly chunks: readonly Uint8Array[];\n readonly compressedBytes: number;\n readonly truncated: boolean;\n}\n\nexport interface UndiciPool {\n dispatch(request: UndiciDispatchRequest): Promise<UndiciDispatchResponse>;\n close(): Promise<void>;\n}\n\n/** The sole Undici compatibility boundary for the SDK. */\nexport function createUndiciPool(origin: string, options: UndiciPoolOptions): UndiciPool {\n if (!options.allowH2 || !origin.startsWith(\"https://\")) return createHttp1Pool(origin, options);\n let lanePromise: Promise<UndiciPool> | null = null;\n const lane = () => {\n lanePromise ??= (async () => {\n const socket = await openOriginSocket(origin, options);\n if (\"alpnProtocol\" in socket && socket.alpnProtocol === \"h2\") {\n return createH2Pool(origin, socket, async () => {\n const next = await openOriginSocket(origin, options);\n if (!(\"alpnProtocol\" in next) || next.alpnProtocol !== \"h2\") {\n next.destroy();\n throw Object.assign(new Error(\"HTTP/2 negotiation failed\"), { code: \"ERR_TLS_ALPN_NEGOTIATION\" });\n }\n return next;\n });\n }\n return createHttp1Pool(origin, { ...options, allowH2: false }, socket);\n })();\n return lanePromise;\n };\n return {\n async dispatch(request) { return (await lane()).dispatch(request); },\n async close() { if (lanePromise) await (await lanePromise).close(); },\n };\n}\n\nfunction createHttp1Pool(origin: string, options: UndiciPoolOptions, initialSocket?: Socket | TLSSocket): UndiciPool {\n const bodyCommits = new WeakMap<object, { deferred: boolean; commit(): void }>();\n const lookup: LookupFunction | undefined = options.dnsResolver\n ? (hostname, lookupOptions, callback) => {\n options.dnsResolver?.(hostname).then(\n (addresses) => callback(null, lookupOptions.all ? addresses : addresses[0]?.address ?? \"\", addresses[0]?.family),\n (error) => callback(dnsResolverError(error), \"\", 0),\n );\n }\n : undefined;\n const connector = buildConnector({\n allowH2: options.allowH2,\n timeout: options.connectTimeout,\n lookup,\n ca: options.tls?.caCertificates ? [...options.tls.caCertificates] : undefined,\n minVersion: options.tls?.minVersion ?? \"TLSv1.2\",\n maxVersion: options.tls?.maxVersion,\n ciphers: options.tls?.ciphers?.join(\":\"),\n cert: options.tls?.clientCertificate?.certificate,\n key: options.tls?.clientCertificate?.key,\n passphrase: options.tls?.clientCertificate?.passphrase,\n });\n const connect = (\n connectOptions: Parameters<typeof connector>[0],\n callback: Parameters<typeof connector>[1],\n ) => {\n if (initialSocket) {\n const socket = initialSocket;\n initialSocket = undefined;\n if (!(\"alpnProtocol\" in socket) || socket.alpnProtocol !== \"h2\") installExactH1Framing(socket, bodyCommits);\n queueMicrotask(() => callback(null, socket));\n return;\n }\n if (options.proxy) {\n connectThroughProxy(options.proxy, connectOptions, options.tls, options.allowH2, options.connectTimeout).then(\n (socket) => {\n if (!(\"alpnProtocol\" in socket) || socket.alpnProtocol !== \"h2\") installExactH1Framing(socket, bodyCommits);\n callback(null, socket);\n },\n (error: Error) => callback(error, null),\n );\n return;\n }\n connector(connectOptions, (error, socket) => {\n if (error) {\n callback(error, null);\n return;\n }\n if (!(\"alpnProtocol\" in socket) || socket.alpnProtocol !== \"h2\") installExactH1Framing(socket, bodyCommits);\n callback(null, socket);\n });\n };\n const pool = new Pool(origin, {\n connections: options.connections,\n clientTtl: options.clientTtl,\n keepAliveTimeout: options.keepAliveTimeout,\n keepAliveMaxTimeout: options.keepAliveTimeout,\n allowH2: options.allowH2,\n pipelining: 1,\n strictContentLength: true,\n maxHeaderSize: 131_072,\n connect,\n });\n return {\n dispatch(request) {\n return new Promise((resolve, reject) => {\n let bodySent = false;\n const bodyKey = request.body.buffer as object;\n const bodyCommit = { deferred: false, commit: request.onBodySent };\n bodyCommits.set(bodyKey, bodyCommit);\n let status = 0;\n let rawHeaders: readonly Uint8Array[] = [];\n const chunks: Uint8Array[] = [];\n let compressedBytes = 0;\n let retainedBytes = 0;\n let truncated = false;\n let abortDispatch: ((error: Error) => void) | undefined;\n const limitError = new Error(\"response body limit exceeded\");\n const abortRequest = () => abortDispatch?.(request.signal.reason instanceof Error ? request.signal.reason : new Error(\"request aborted\"));\n request.signal.addEventListener(\"abort\", abortRequest, { once: true });\n pool.dispatch({\n path: request.path,\n method: \"POST\",\n headers: request.headers,\n body: request.body,\n idempotent: true,\n blocking: false,\n headersTimeout: request.headersTimeout,\n bodyTimeout: request.bodyTimeout,\n }, {\n onConnect(abort) {\n abortDispatch = abort;\n if (request.signal.aborted) abortRequest();\n },\n onBodySent() {\n if (bodySent) return;\n bodySent = true;\n if (!bodyCommit.deferred) {\n bodyCommits.delete(bodyKey);\n request.onBodySent();\n }\n },\n onHeaders(statusCode, headers) {\n status = statusCode;\n rawHeaders = headers.map((value) => new Uint8Array(value));\n const declared = rawHeaderValue(rawHeaders, \"content-length\");\n if (declared !== null && /^(?:0|[1-9][0-9]*)$/u.test(declared) && Number(declared) > request.maxResponseBytes) {\n truncated = true;\n abortDispatch?.(limitError);\n }\n return true;\n },\n onData(chunk) {\n compressedBytes += chunk.length;\n const room = request.maxResponseBytes - retainedBytes;\n if (room > 0) {\n const retained = new Uint8Array(chunk.subarray(0, room));\n chunks.push(retained);\n retainedBytes += retained.length;\n }\n if (compressedBytes > request.maxResponseBytes) {\n truncated = true;\n abortDispatch?.(limitError);\n }\n return true;\n },\n onComplete() {\n request.signal.removeEventListener(\"abort\", abortRequest);\n bodyCommits.delete(bodyKey);\n resolve({ status, rawHeaders, chunks, compressedBytes, truncated });\n },\n onError(error) {\n request.signal.removeEventListener(\"abort\", abortRequest);\n bodyCommits.delete(bodyKey);\n if (error === limitError) resolve({ status, rawHeaders, chunks, compressedBytes, truncated: true });\n else if (status !== 0) resolve({\n status,\n rawHeaders,\n chunks,\n compressedBytes,\n truncated: status < 200 || status >= 300,\n });\n else reject(error);\n },\n });\n });\n },\n close: () => pool.close(),\n };\n}\n\nfunction dnsResolverError(cause: unknown): NodeJS.ErrnoException {\n const error = new Error(\"DNS resolver failed\") as NodeJS.ErrnoException & { cause?: unknown };\n error.code = \"REPOST_DNS_RESOLVER\";\n error.cause = cause;\n return error;\n}\n\nfunction rawHeaderValue(raw: readonly Uint8Array[], target: string): string | null {\n let value: string | null = null;\n for (let index = 0; index + 1 < raw.length; index += 2) {\n if (Buffer.from(raw[index]).toString(\"latin1\").toLowerCase() !== target) continue;\n if (value !== null) return null;\n value = Buffer.from(raw[index + 1]).toString(\"latin1\");\n }\n return value;\n}\n\nfunction installExactH1Framing(\n socket: NonNullable<Parameters<Parameters<ReturnType<typeof buildConnector>>[1]>[1]>,\n bodyCommits: WeakMap<object, { deferred: boolean; commit(): void }>,\n) {\n const write = socket.write.bind(socket);\n let writeChain = Promise.resolve();\n socket.write = ((chunk: string | Uint8Array, encoding?: BufferEncoding, callback?: (error?: Error | null) => void) => {\n if (typeof chunk === \"string\" && chunk.startsWith(\"POST \") && chunk.includes(\" HTTP/1.1\\r\\n\")) {\n chunk = normalizeH1Header(chunk);\n writeChain = writeChain.then(() => new Promise<void>((resolve) => {\n if (socket.destroyed) return resolve();\n write(chunk, encoding, (error?: Error | null) => { callback?.(error); resolve(); });\n }));\n return true;\n }\n if (chunk instanceof Uint8Array && chunk.byteLength > 0) {\n const bodyCommit = bodyCommits.get(chunk.buffer as object);\n if (bodyCommit) {\n bodyCommit.deferred = true;\n writeChain = writeChain\n .then(() => peerResetOpportunity())\n .then(() => new Promise<void>((resolve) => {\n if (socket.destroyed) return resolve();\n write(chunk, encoding, (error?: Error | null) => {\n bodyCommits.delete(chunk.buffer as object);\n if (!error) bodyCommit.commit();\n callback?.(error);\n resolve();\n });\n }));\n return true;\n }\n }\n return write(chunk, encoding, callback);\n }) as typeof socket.write;\n}\n\nfunction peerResetOpportunity(): Promise<void> {\n // Let a peer that rejected the headers close before any body byte is queued.\n // This keeps a header-only reset classified as uncommitted.\n return new Promise((resolve) => setTimeout(resolve, 5));\n}\n\nfunction normalizeH1Header(header: string): string {\n const withoutConnection = header.replace(/^connection: (?:keep-alive|close)\\r\\n/mu, \"\");\n const contentLength = /^content-length: [0-9]+\\r\\n/mu.exec(withoutConnection)?.[0];\n if (!contentLength) return withoutConnection;\n const withoutLength = withoutConnection.replace(contentLength, \"\");\n return withoutLength.replace(/^(host: [^\\r\\n]+\\r\\n)/mu, `$1${contentLength}`);\n}\n","import type { HttpTransportOptions } from \"../transport\";\nimport type { AttemptOutcome, AttemptRequest, Transport } from \"../types\";\nimport { frameRequest } from \"./framing\";\nimport { classifyNetworkFailure, errorCode } from \"./failure\";\nimport { readResponse } from \"./response-reader\";\nimport { createUndiciPool, type UndiciPool } from \"./undici-compat\";\n\nconst RESPONSE_LIMIT_BYTES = 1_048_576;\n\nexport function createNodeTransport(options: HttpTransportOptions = {}): Transport {\n const compressedLimit = (options as HttpTransportOptions & { responseCompressedLimitBytes?: number }).responseCompressedLimitBytes ?? RESPONSE_LIMIT_BYTES;\n const pools = new Map<string, UndiciPool>();\n const poolFor = (origin: string, request: AttemptRequest): UndiciPool => {\n let pool = pools.get(origin);\n if (!pool) {\n pool = createUndiciPool(origin, {\n connections: options.maxConnectionsPerOrigin ?? 32,\n clientTtl: options.connectionLifetimeMs ?? 300_000,\n keepAliveTimeout: options.connectionIdleTimeoutMs ?? 120_000,\n allowH2: options.http2 ?? true,\n connectTimeout: request.connectTimeoutMs,\n tls: options.tls,\n dnsResolver: options.dnsResolver,\n proxy: options.proxy,\n });\n pools.set(origin, pool);\n }\n return pool;\n };\n return {\n async send(request: AttemptRequest): Promise<AttemptOutcome> {\n const framed = frameRequest(request);\n const pool = poolFor(framed.origin, request);\n try {\n const response = await dispatch(pool, framed.path, framed.headers, request, compressedLimit);\n return await readResponse(response.status, response.rawHeaders, response.chunks, response.compressedBytes, response.truncated, compressedLimit);\n } catch (error) {\n return classifyFailure(error, request.commitTracker.committed);\n }\n },\n async close() {\n await Promise.all([...pools.values()].map((pool) => pool.close()));\n pools.clear();\n },\n };\n}\n\nfunction dispatch(pool: UndiciPool, path: string, headers: string[], request: AttemptRequest, compressedLimit: number) {\n return pool.dispatch({\n path,\n headers,\n body: request.bodyBytes,\n headersTimeout: request.attemptTimeoutMs,\n bodyTimeout: request.attemptTimeoutMs,\n signal: request.signal,\n onBodySent: () => request.commitTracker.markCommitted(),\n maxResponseBytes: compressedLimit + 1,\n });\n}\n\nfunction classifyFailure(error: unknown, committed: boolean): AttemptOutcome {\n if (errorCode(error) === \"REPOST_H2_REFUSED\") {\n return { kind: \"failure\", code: \"IO\", reason: \"CONNECTION_RESET\", committed: false };\n }\n const classified = classifyNetworkFailure(error, committed);\n if (classified) return classified;\n if (errorCode(error) === \"ECONNRESET\" || errorCode(error) === \"ERR_HTTP2_STREAM_ERROR\") {\n return { kind: \"failure\", code: \"IO\", reason: \"CONNECTION_RESET\", committed };\n }\n if (errorCode(error) === \"UND_ERR_INFO\" && error instanceof Error && error.message.startsWith(\"HTTP/2:\")) {\n return { kind: \"failure\", code: \"IO\", reason: \"CONNECTION_RESET\", committed };\n }\n return {\n kind: \"failure\",\n code: \"IO\",\n reason: \"UNKNOWN\",\n committed,\n causeCategory: \"HTTP_RUNTIME\",\n };\n}\n"],"names":["connectTls","connect","rawHeaderValue","connectNet","errorCode"],"mappings":"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"}
|
package/dist/esm/otel/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { metrics, trace, context, SpanKind, propagation, SpanStatusCode } from '@opentelemetry/api';
|
|
2
|
-
import { P as PACKAGE_VERSION } from '../version-
|
|
2
|
+
import { P as PACKAGE_VERSION } from '../version-B0GnVwZp.mjs';
|
|
3
3
|
|
|
4
4
|
function openTelemetryRepostMetrics(options = {}) {
|
|
5
5
|
const meter = (options.meterProvider ?? metrics.getMeterProvider()).getMeter("@repost/client", PACKAGE_VERSION);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Package version embedded in runtime identifiers and telemetry instruments. */
|
|
2
|
-
const PACKAGE_VERSION = "1.1.
|
|
2
|
+
const PACKAGE_VERSION = "1.1.1";
|
|
3
3
|
|
|
4
4
|
export { PACKAGE_VERSION as P };
|
|
5
|
-
//# sourceMappingURL=version-
|
|
5
|
+
//# sourceMappingURL=version-B0GnVwZp.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-B0GnVwZp.mjs","sources":["../../../src/version.ts"],"sourcesContent":["/** Package version embedded in runtime identifiers and telemetry instruments. */\nexport const PACKAGE_VERSION = \"1.1.1\";\n"],"names":[],"mappings":"AAAA;AACO,MAAM,eAAe,GAAG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@repost/client",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "Type-safe webhook publishing generated from your Repost schema, with serialization, idempotent retries, and Standard Webhooks envelopes.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "index.js",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"version-ByPLMuBh.cjs","sources":["../../../src/version.ts"],"sourcesContent":["/** Package version embedded in runtime identifiers and telemetry instruments. */\nexport const PACKAGE_VERSION = \"1.1.0\";\n"],"names":[],"mappings":";;AAAA;AACO,MAAM,eAAe,GAAG;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"version-DdhbPM6g.mjs","sources":["../../../src/version.ts"],"sourcesContent":["/** Package version embedded in runtime identifiers and telemetry instruments. */\nexport const PACKAGE_VERSION = \"1.1.0\";\n"],"names":[],"mappings":"AAAA;AACO,MAAM,eAAe,GAAG;;;;"}
|