@stainlessdev/xray-emitter 0.1.0-branch.pedro-unify.20f830a

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/README.md +79 -0
  2. package/dist/chunk-2NR6RZEP.js +1339 -0
  3. package/dist/chunk-2NR6RZEP.js.map +1 -0
  4. package/dist/chunk-3MVVO5I7.cjs +1339 -0
  5. package/dist/chunk-3MVVO5I7.cjs.map +1 -0
  6. package/dist/chunk-6UH43LVD.js +281 -0
  7. package/dist/chunk-6UH43LVD.js.map +1 -0
  8. package/dist/chunk-AHXNYJ5A.cjs +621 -0
  9. package/dist/chunk-AHXNYJ5A.cjs.map +1 -0
  10. package/dist/chunk-GNSXLLEC.cjs +281 -0
  11. package/dist/chunk-GNSXLLEC.cjs.map +1 -0
  12. package/dist/chunk-JKW6E4L3.cjs +304 -0
  13. package/dist/chunk-JKW6E4L3.cjs.map +1 -0
  14. package/dist/chunk-MPQTI5AX.js +621 -0
  15. package/dist/chunk-MPQTI5AX.js.map +1 -0
  16. package/dist/chunk-QUH3LJ5M.cjs +634 -0
  17. package/dist/chunk-QUH3LJ5M.cjs.map +1 -0
  18. package/dist/chunk-VGRLHYDA.js +634 -0
  19. package/dist/chunk-VGRLHYDA.js.map +1 -0
  20. package/dist/chunk-YVMMCTXW.js +304 -0
  21. package/dist/chunk-YVMMCTXW.js.map +1 -0
  22. package/dist/express.cjs +45 -0
  23. package/dist/express.cjs.map +1 -0
  24. package/dist/express.d.cts +17 -0
  25. package/dist/express.d.ts +17 -0
  26. package/dist/express.js +45 -0
  27. package/dist/express.js.map +1 -0
  28. package/dist/fastify.cjs +64 -0
  29. package/dist/fastify.cjs.map +1 -0
  30. package/dist/fastify.d.cts +21 -0
  31. package/dist/fastify.d.ts +21 -0
  32. package/dist/fastify.js +64 -0
  33. package/dist/fastify.js.map +1 -0
  34. package/dist/fetch.cjs +16 -0
  35. package/dist/fetch.cjs.map +1 -0
  36. package/dist/fetch.d.cts +19 -0
  37. package/dist/fetch.d.ts +19 -0
  38. package/dist/fetch.js +16 -0
  39. package/dist/fetch.js.map +1 -0
  40. package/dist/hono.cjs +71 -0
  41. package/dist/hono.cjs.map +1 -0
  42. package/dist/hono.d.cts +30 -0
  43. package/dist/hono.d.ts +30 -0
  44. package/dist/hono.js +71 -0
  45. package/dist/hono.js.map +1 -0
  46. package/dist/index.cjs +12 -0
  47. package/dist/index.cjs.map +1 -0
  48. package/dist/index.d.cts +7 -0
  49. package/dist/index.d.ts +7 -0
  50. package/dist/index.js +12 -0
  51. package/dist/index.js.map +1 -0
  52. package/dist/internal.cjs +45 -0
  53. package/dist/internal.cjs.map +1 -0
  54. package/dist/internal.d.cts +53 -0
  55. package/dist/internal.d.ts +53 -0
  56. package/dist/internal.js +45 -0
  57. package/dist/internal.js.map +1 -0
  58. package/dist/next.cjs +30 -0
  59. package/dist/next.cjs.map +1 -0
  60. package/dist/next.d.cts +18 -0
  61. package/dist/next.d.ts +18 -0
  62. package/dist/next.js +30 -0
  63. package/dist/next.js.map +1 -0
  64. package/dist/node.cjs +14 -0
  65. package/dist/node.cjs.map +1 -0
  66. package/dist/node.d.cts +20 -0
  67. package/dist/node.d.ts +20 -0
  68. package/dist/node.js +14 -0
  69. package/dist/node.js.map +1 -0
  70. package/dist/remix.cjs +30 -0
  71. package/dist/remix.cjs.map +1 -0
  72. package/dist/remix.d.cts +15 -0
  73. package/dist/remix.d.ts +15 -0
  74. package/dist/remix.js +30 -0
  75. package/dist/remix.js.map +1 -0
  76. package/dist/types-Z1nirh-F.d.cts +149 -0
  77. package/dist/types-Z1nirh-F.d.ts +149 -0
  78. package/package.json +94 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/xray-emitter-js/xray-emitter-js/dist/chunk-AHXNYJ5A.cjs","../src/fetch/emitter.ts","../src/fetch/adapter.ts"],"names":["createEmitter"],"mappings":"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","file":"/home/runner/work/xray-emitter-js/xray-emitter-js/dist/chunk-AHXNYJ5A.cjs","sourcesContent":[null,"// Force the browser/worker exporter to avoid Node http resolution in edge runtimes.\nimport { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-proto/build/src/platform/browser/index.js';\nimport {\n createEmitter as createCoreEmitter,\n normalizeConfig,\n type XrayRuntimeConfig,\n} from '../core/index';\n\nexport function createEmitter(config: XrayRuntimeConfig) {\n if (!config.exporter?.instance) {\n const hasFetch = typeof globalThis !== 'undefined' && typeof globalThis.fetch === 'function';\n if (!hasFetch) {\n throw new Error(\n 'fetch is required to use the default @stainlessdev/xray-fetch exporter; provide exporter.instance or use @stainlessdev/xray-node instead.',\n );\n }\n }\n\n const resolved = normalizeConfig(config);\n const exporter =\n config.exporter?.instance ??\n new OTLPTraceExporter({\n url: resolved.exporter.endpointUrl,\n headers: resolved.exporter.headers ?? {},\n timeoutMillis: resolved.exporter.timeoutMs,\n });\n\n return createCoreEmitter(config, exporter);\n}\n","import type {\n CaptureConfig,\n NormalizedRequest,\n RedactionConfig,\n RequestLog,\n XrayContext,\n XrayEmitter,\n} from '../core/index';\nimport {\n LimitedBuffer,\n bindContextToObject,\n getXrayContextFromObject,\n headerValuesFromFetchHeaders,\n isWebsocketUpgradeFetch,\n logWithLevel,\n makeCapturedBody,\n setCaptureOverride,\n setContextRequestId,\n setContextRoute,\n setRedactionOverride,\n generateRequestId,\n} from '../core/internal';\n\nexport interface WrapOptions {\n route?: string;\n requestId?: string;\n capture?: Partial<CaptureConfig>;\n redaction?: Partial<RedactionConfig>;\n onRequest?: (ctx: XrayContext) => void;\n onResponse?: (ctx: XrayContext, log: RequestLog) => void;\n onError?: (ctx: XrayContext, err: unknown) => void;\n}\n\nexport function wrapFetch(\n handler: (req: Request) => Response | Promise<Response>,\n xray: XrayEmitter,\n options?: WrapOptions,\n): (req: Request) => Promise<Response> {\n return async (req: Request) => {\n const normalizedRequest: NormalizedRequest = {\n method: req.method,\n url: req.url,\n route: options?.route,\n headers: headerValuesFromFetchHeaders(req.headers),\n requestId: options?.requestId,\n startTimeMs: Date.now(),\n };\n\n const ctx = xray.startRequest(normalizedRequest);\n bindContextToObject(req, ctx);\n\n if (options?.requestId) {\n setContextRequestId(ctx, options.requestId);\n }\n if (options?.route) {\n setContextRoute(ctx, options.route);\n }\n if (options?.capture) {\n setCaptureOverride(ctx, options.capture);\n }\n if (options?.redaction) {\n setRedactionOverride(ctx, options.redaction);\n }\n\n if (options?.onRequest) {\n try {\n options.onRequest(ctx);\n } catch (err) {\n logWithLevel(xray.config.logger, 'warn', xray.config.logLevel, 'xray: onRequest failed', {\n error: err instanceof Error ? err.message : String(err),\n });\n }\n }\n\n const capture = options?.capture\n ? { ...xray.config.capture, ...options.capture }\n : xray.config.capture;\n const requestCapture =\n capture.requestBody === 'none' ? null : wrapRequestBody(req, capture.maxBodyBytes);\n const requestForHandler = requestCapture?.request ?? req;\n if (requestForHandler !== req) {\n bindContextToObject(requestForHandler, ctx);\n }\n\n let response: Response;\n try {\n response = await handler(requestForHandler);\n } catch (err) {\n const log = xray.endRequest(\n ctx,\n {\n statusCode: undefined,\n headers: undefined,\n body: undefined,\n endTimeMs: Date.now(),\n },\n err,\n );\n if (options?.onError) {\n try {\n options.onError(ctx, err);\n } catch (errInner) {\n logWithLevel(xray.config.logger, 'warn', xray.config.logLevel, 'xray: onError failed', {\n error: errInner instanceof Error ? errInner.message : String(errInner),\n });\n }\n }\n if (options?.onResponse) {\n try {\n options.onResponse(ctx, log);\n } catch (errInner) {\n logWithLevel(\n xray.config.logger,\n 'warn',\n xray.config.logLevel,\n 'xray: onResponse failed',\n {\n error: errInner instanceof Error ? errInner.message : String(errInner),\n },\n );\n }\n }\n throw err;\n }\n\n if (!(response instanceof Response)) {\n const log = xray.endRequest(ctx, {\n statusCode: undefined,\n headers: undefined,\n body: undefined,\n endTimeMs: Date.now(),\n });\n if (options?.onResponse) {\n try {\n options.onResponse(ctx, log);\n } catch (err) {\n logWithLevel(\n xray.config.logger,\n 'warn',\n xray.config.logLevel,\n 'xray: onResponse failed',\n {\n error: err instanceof Error ? err.message : String(err),\n },\n );\n }\n }\n return response;\n }\n\n const responseHeaders = new Headers(response.headers);\n ensureResponseRequestIdHeaders(responseHeaders, ctx, xray);\n const statusCode = response.status;\n const isUpgrade = isWebsocketUpgradeFetch(statusCode, req.headers, responseHeaders);\n\n if (!response.body || isUpgrade || capture.responseBody === 'none') {\n const log = finalizeResponse(\n ctx,\n xray,\n normalizedRequest,\n capture,\n requestCapture?.capture ?? null,\n responseHeaders,\n statusCode,\n null,\n );\n if (options?.onResponse) {\n try {\n options.onResponse(ctx, log);\n } catch (err) {\n logWithLevel(\n xray.config.logger,\n 'warn',\n xray.config.logLevel,\n 'xray: onResponse failed',\n {\n error: err instanceof Error ? err.message : String(err),\n },\n );\n }\n }\n return new Response(response.body, {\n headers: responseHeaders,\n status: response.status,\n statusText: response.statusText,\n });\n }\n\n const responseCapture = new LimitedBuffer(capture.maxBodyBytes);\n let finished = false;\n const finalize = () => {\n if (finished) {\n return;\n }\n finished = true;\n const log = finalizeResponse(\n ctx,\n xray,\n normalizedRequest,\n capture,\n requestCapture?.capture ?? null,\n responseHeaders,\n statusCode,\n responseCapture,\n );\n if (options?.onResponse) {\n try {\n options.onResponse(ctx, log);\n } catch (err) {\n logWithLevel(\n xray.config.logger,\n 'warn',\n xray.config.logLevel,\n 'xray: onResponse failed',\n {\n error: err instanceof Error ? err.message : String(err),\n },\n );\n }\n }\n };\n\n const wrappedBody = wrapReadableStream(response.body, responseCapture, finalize, () => {\n finalize();\n });\n\n return new Response(wrappedBody, {\n headers: responseHeaders,\n status: response.status,\n statusText: response.statusText,\n });\n };\n}\n\nexport function wrapFetchPreserve(\n handler: (req: Request) => Response | Promise<Response>,\n xray: XrayEmitter,\n options?: WrapOptions,\n): (req: Request) => Promise<Response> {\n return async (req: Request) => {\n const normalizedRequest: NormalizedRequest = {\n method: req.method,\n url: req.url,\n route: options?.route,\n headers: headerValuesFromFetchHeaders(req.headers),\n requestId: options?.requestId,\n startTimeMs: Date.now(),\n };\n\n const ctx = xray.startRequest(normalizedRequest);\n bindContextToObject(req, ctx);\n\n if (options?.requestId) {\n setContextRequestId(ctx, options.requestId);\n }\n if (options?.route) {\n setContextRoute(ctx, options.route);\n }\n if (options?.capture) {\n setCaptureOverride(ctx, options.capture);\n }\n if (options?.redaction) {\n setRedactionOverride(ctx, options.redaction);\n }\n\n if (options?.onRequest) {\n try {\n options.onRequest(ctx);\n } catch (err) {\n logWithLevel(xray.config.logger, 'warn', xray.config.logLevel, 'xray: onRequest failed', {\n error: err instanceof Error ? err.message : String(err),\n });\n }\n }\n\n const capture = options?.capture\n ? { ...xray.config.capture, ...options.capture }\n : xray.config.capture;\n const requestCapturePromise =\n capture.requestBody === 'none'\n ? Promise.resolve(null)\n : captureRequestClone(req, capture.maxBodyBytes, xray);\n\n let response: Response;\n try {\n response = await handler(req);\n } catch (err) {\n const log = xray.endRequest(\n ctx,\n {\n statusCode: undefined,\n headers: undefined,\n body: undefined,\n endTimeMs: Date.now(),\n },\n err,\n );\n if (options?.onError) {\n try {\n options.onError(ctx, err);\n } catch (errInner) {\n logWithLevel(xray.config.logger, 'warn', xray.config.logLevel, 'xray: onError failed', {\n error: errInner instanceof Error ? errInner.message : String(errInner),\n });\n }\n }\n if (options?.onResponse) {\n try {\n options.onResponse(ctx, log);\n } catch (errInner) {\n logWithLevel(\n xray.config.logger,\n 'warn',\n xray.config.logLevel,\n 'xray: onResponse failed',\n {\n error: errInner instanceof Error ? errInner.message : String(errInner),\n },\n );\n }\n }\n throw err;\n }\n\n if (!(response instanceof Response)) {\n const log = xray.endRequest(ctx, {\n statusCode: undefined,\n headers: undefined,\n body: undefined,\n endTimeMs: Date.now(),\n });\n if (options?.onResponse) {\n try {\n options.onResponse(ctx, log);\n } catch (err) {\n logWithLevel(\n xray.config.logger,\n 'warn',\n xray.config.logLevel,\n 'xray: onResponse failed',\n {\n error: err instanceof Error ? err.message : String(err),\n },\n );\n }\n }\n return response;\n }\n\n const responseHeaders = new Headers(response.headers);\n const ensured = ensureResponseRequestIdHeaders(responseHeaders, ctx, xray);\n if (ensured.set) {\n const headerName = canonicalHeaderName(xray.config.requestId.header);\n try {\n response.headers.set(headerName, ensured.value ?? '');\n } catch {\n response = new Response(response.body, {\n headers: responseHeaders,\n status: response.status,\n statusText: response.statusText,\n });\n }\n }\n const statusCode = response.status;\n const isUpgrade = isWebsocketUpgradeFetch(statusCode, req.headers, responseHeaders);\n const responseCapturePromise =\n !response.body || isUpgrade || capture.responseBody === 'none'\n ? Promise.resolve(null)\n : captureResponseClone(response, capture.maxBodyBytes, xray);\n\n void (async () => {\n const [requestCapture, responseCapture] = await Promise.all([\n requestCapturePromise,\n responseCapturePromise,\n ]);\n const log = finalizeResponse(\n ctx,\n xray,\n normalizedRequest,\n capture,\n requestCapture,\n responseHeaders,\n statusCode,\n responseCapture,\n );\n if (options?.onResponse) {\n try {\n options.onResponse(ctx, log);\n } catch (err) {\n logWithLevel(\n xray.config.logger,\n 'warn',\n xray.config.logLevel,\n 'xray: onResponse failed',\n {\n error: err instanceof Error ? err.message : String(err),\n },\n );\n }\n }\n })().catch((err) => {\n logWithLevel(\n xray.config.logger,\n 'warn',\n xray.config.logLevel,\n 'xray: response capture failed',\n {\n error: err instanceof Error ? err.message : String(err),\n },\n );\n });\n\n return response;\n };\n}\n\nexport function getXrayContext(req: Request): XrayContext | undefined {\n return getXrayContextFromObject(req);\n}\n\ntype RequestCapture = {\n buffer: LimitedBuffer;\n read: boolean;\n};\n\nfunction wrapRequestBody(\n request: Request,\n limit: number,\n): { capture: RequestCapture | null; request: Request } {\n if (limit <= 0 || !request.body || request.bodyUsed) {\n return { capture: null, request };\n }\n\n const originalBody = request.body;\n const capture: RequestCapture = {\n buffer: new LimitedBuffer(limit),\n read: false,\n };\n\n let controller: ReadableStreamDefaultController<Uint8Array> | null = null;\n let started = false;\n let reader: ReadableStreamDefaultReader<Uint8Array> | null = null;\n\n const wrappedStream = new ReadableStream<Uint8Array>({\n start(c) {\n controller = c;\n },\n async cancel(reason) {\n if (!started) {\n return;\n }\n try {\n await reader?.cancel(reason);\n } finally {\n // Ignore cancellation.\n }\n },\n });\n\n const startPump = () => {\n if (started) {\n return;\n }\n started = true;\n reader = originalBody.getReader();\n void (async () => {\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n controller?.close();\n return;\n }\n if (value) {\n capture.read = true;\n capture.buffer.write(value);\n controller?.enqueue(value);\n }\n }\n } catch (err) {\n controller?.error(err);\n }\n })();\n };\n\n const originalGetReader = wrappedStream.getReader.bind(wrappedStream);\n (wrappedStream as unknown as { getReader: typeof wrappedStream.getReader }).getReader = (\n ...args: unknown[]\n ) => {\n startPump();\n // @ts-expect-error - preserve built-in `getReader` overloads\n return originalGetReader(...args);\n };\n\n const init: RequestInit & { duplex?: 'half' } = {\n body: wrappedStream,\n cache: request.cache,\n credentials: request.credentials,\n headers: request.headers,\n integrity: request.integrity,\n keepalive: request.keepalive,\n method: request.method,\n mode: request.mode,\n redirect: request.redirect,\n referrer: request.referrer,\n referrerPolicy: request.referrerPolicy,\n signal: request.signal,\n };\n if (isNodeRuntime()) {\n init.duplex = 'half';\n }\n\n const wrappedRequest = new Request(request.url, init);\n return { capture, request: wrappedRequest };\n}\n\nasync function captureRequestClone(\n request: Request,\n limit: number,\n xray: XrayEmitter,\n): Promise<LimitedBuffer | null> {\n if (limit <= 0 || !request.body || request.bodyUsed) {\n return null;\n }\n let clone: Request;\n try {\n clone = request.clone();\n } catch {\n logWithLevel(xray.config.logger, 'warn', xray.config.logLevel, 'xray: request clone failed');\n return null;\n }\n\n const buffer = new LimitedBuffer(limit);\n await readStreamToBuffer(clone.body, buffer);\n return buffer;\n}\n\nasync function captureResponseClone(\n response: Response,\n limit: number,\n xray: XrayEmitter,\n): Promise<LimitedBuffer | null> {\n if (limit <= 0 || !response.body || response.bodyUsed) {\n return null;\n }\n let clone: Response;\n try {\n clone = response.clone();\n } catch {\n logWithLevel(xray.config.logger, 'warn', xray.config.logLevel, 'xray: response clone failed');\n return null;\n }\n\n const buffer = new LimitedBuffer(limit);\n await readStreamToBuffer(clone.body, buffer);\n return buffer;\n}\n\nasync function readStreamToBuffer(\n stream: ReadableStream<Uint8Array> | null,\n buffer: LimitedBuffer,\n): Promise<void> {\n if (!stream) {\n return;\n }\n\n const reader = stream.getReader();\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n return;\n }\n if (value) {\n buffer.write(value);\n }\n }\n } finally {\n try {\n reader.releaseLock();\n } catch {\n // Ignore release failures; reader may already be closed.\n }\n }\n}\n\nfunction wrapReadableStream(\n stream: ReadableStream<Uint8Array>,\n capture: LimitedBuffer,\n onFinish: () => void,\n onError?: (err: unknown) => void,\n): ReadableStream<Uint8Array> {\n const reader = stream.getReader();\n\n return new ReadableStream<Uint8Array>({\n async pull(controller) {\n try {\n const { done, value } = await reader.read();\n if (done) {\n controller.close();\n onFinish();\n try {\n reader.releaseLock();\n } catch {\n // Ignore release failures; reader may already be closed.\n }\n return;\n }\n if (value) {\n capture.write(value);\n controller.enqueue(value);\n }\n } catch (err) {\n controller.error(err);\n onError?.(err);\n onFinish();\n try {\n reader.releaseLock();\n } catch {\n // Ignore release failures; reader may already be closed.\n }\n }\n },\n async cancel(reason) {\n try {\n await reader.cancel(reason);\n } finally {\n onFinish();\n try {\n reader.releaseLock();\n } catch {\n // Ignore release failures; reader may already be closed.\n }\n }\n },\n });\n}\n\nfunction finalizeResponse(\n ctx: XrayContext,\n xray: XrayEmitter,\n normalizedRequest: NormalizedRequest,\n capture: CaptureConfig,\n requestCapture: RequestCapture | LimitedBuffer | null,\n responseHeaders: Headers,\n statusCode: number,\n responseCapture: LimitedBuffer | null,\n): RequestLog {\n if (requestCapture) {\n const buffer = requestCapture instanceof LimitedBuffer ? requestCapture : requestCapture.buffer;\n const read = requestCapture instanceof LimitedBuffer ? true : requestCapture.read;\n if (read) {\n normalizedRequest.body = makeCapturedBody(\n buffer.bytes(),\n buffer.totalBytes(),\n buffer.truncated(),\n capture.requestBody === 'text' ? 'text' : 'base64',\n );\n }\n }\n\n const responseBody = responseCapture\n ? makeCapturedBody(\n responseCapture.bytes(),\n responseCapture.totalBytes(),\n responseCapture.truncated(),\n capture.responseBody === 'text' ? 'text' : 'base64',\n )\n : undefined;\n\n return xray.endRequest(ctx, {\n statusCode,\n headers: headerValuesFromFetchHeaders(responseHeaders),\n body: responseBody,\n endTimeMs: Date.now(),\n });\n}\n\nfunction ensureResponseRequestIdHeaders(\n headers: Headers,\n ctx: XrayContext,\n xray: XrayEmitter,\n): { value?: string; set: boolean } {\n const headerName = xray.config.requestId.header;\n const existing = normalizeRequestIdCandidate(headers.get(headerName) ?? undefined);\n if (existing) {\n return { value: existing, set: false };\n }\n\n const explicit = normalizeRequestIdCandidate(ctx.requestId);\n if (explicit) {\n headers.set(canonicalHeaderName(headerName), explicit);\n return { value: explicit, set: true };\n }\n\n const generated = generateRequestId();\n headers.set(canonicalHeaderName(headerName), generated);\n setContextRequestId(ctx, generated);\n return { value: generated, set: true };\n}\n\nfunction isNodeRuntime(): boolean {\n const maybeProcess = (\n globalThis as typeof globalThis & {\n process?: { versions?: { node?: string } };\n }\n ).process;\n return !!maybeProcess?.versions?.node;\n}\n\nfunction normalizeRequestIdCandidate(value: string | undefined): string | undefined {\n if (!value) {\n return undefined;\n }\n const trimmed = value.trim();\n return trimmed ? trimmed : undefined;\n}\n\nfunction canonicalHeaderName(headerName: string): string {\n return headerName\n .split('-')\n .filter(Boolean)\n .map((part) => (part ? part[0]!.toUpperCase() + part.slice(1) : part))\n .join('-');\n}\n"]}
@@ -0,0 +1,281 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
2
+
3
+
4
+
5
+ var _chunkJKW6E4L3cjs = require('./chunk-JKW6E4L3.cjs');
6
+
7
+ // src/core/limited_buffer.ts
8
+ var LimitedBuffer = class {
9
+ constructor(limit) {
10
+ const normalized = Number.isFinite(limit) ? Math.max(0, limit) : 0;
11
+ const initialCap = Math.min(normalized, 32 * 1024);
12
+ this.buffer = new Uint8Array(initialCap);
13
+ this.length = 0;
14
+ this.limit = normalized;
15
+ this.truncatedFlag = false;
16
+ this.total = 0;
17
+ }
18
+ bytes() {
19
+ return this.buffer.slice(0, this.length);
20
+ }
21
+ capturedBytes() {
22
+ return this.length;
23
+ }
24
+ totalBytes() {
25
+ return this.total;
26
+ }
27
+ truncated() {
28
+ return this.truncatedFlag;
29
+ }
30
+ write(chunk) {
31
+ if (!chunk || chunk.length === 0) {
32
+ return;
33
+ }
34
+ this.total += chunk.length;
35
+ if (this.limit <= 0) {
36
+ this.truncatedFlag = true;
37
+ return;
38
+ }
39
+ const remaining = this.limit - this.length;
40
+ if (remaining <= 0) {
41
+ this.truncatedFlag = true;
42
+ return;
43
+ }
44
+ const toCopy = Math.min(remaining, chunk.length);
45
+ this.ensureCapacity(this.length + toCopy);
46
+ this.buffer.set(chunk.subarray(0, toCopy), this.length);
47
+ this.length += toCopy;
48
+ if (toCopy < chunk.length) {
49
+ this.truncatedFlag = true;
50
+ }
51
+ }
52
+ ensureCapacity(size) {
53
+ if (this.buffer.length >= size) {
54
+ return;
55
+ }
56
+ let nextSize = this.buffer.length;
57
+ if (nextSize === 0) {
58
+ nextSize = 1;
59
+ }
60
+ while (nextSize < size) {
61
+ nextSize *= 2;
62
+ }
63
+ if (nextSize > this.limit) {
64
+ nextSize = this.limit;
65
+ }
66
+ const next = new Uint8Array(nextSize);
67
+ next.set(this.buffer.subarray(0, this.length));
68
+ this.buffer = next;
69
+ }
70
+ };
71
+
72
+ // src/core/headers.ts
73
+ function headerValuesFromNodeHeaders(headers) {
74
+ const result = {};
75
+ for (const [key, value] of Object.entries(headers)) {
76
+ if (value == null) {
77
+ continue;
78
+ }
79
+ const name = key.trim();
80
+ if (!name) {
81
+ continue;
82
+ }
83
+ if (Array.isArray(value)) {
84
+ const entries = value.map((item) => `${item}`);
85
+ if (entries.length > 0) {
86
+ result[name] = entries.length === 1 ? entries[0] : entries;
87
+ }
88
+ } else {
89
+ result[name] = `${value}`;
90
+ }
91
+ }
92
+ return Object.keys(result).length === 0 ? {} : result;
93
+ }
94
+ function headerValuesFromFetchHeaders(headers) {
95
+ return headerValuesFromFetchHeadersWithLimit(headers, Number.POSITIVE_INFINITY).headers;
96
+ }
97
+ function headerValuesFromFetchHeadersWithLimit(headers, maxBytes) {
98
+ const result = {};
99
+ let truncated = false;
100
+ let remaining = Number.isFinite(maxBytes) ? Math.max(0, maxBytes) : Number.POSITIVE_INFINITY;
101
+ const setCookie = getSetCookie(headers);
102
+ if (setCookie) {
103
+ const values = takeHeaderValues("set-cookie", setCookie, remaining);
104
+ remaining = values.remaining;
105
+ if (values.truncated) {
106
+ truncated = true;
107
+ }
108
+ if (values.values.length > 0) {
109
+ result["set-cookie"] = values.values.length === 1 ? values.values[0] : values.values;
110
+ }
111
+ }
112
+ headers.forEach((value, key) => {
113
+ const name = key.trim();
114
+ if (!name) {
115
+ return;
116
+ }
117
+ if (name.toLowerCase() === "set-cookie" && setCookie) {
118
+ return;
119
+ }
120
+ const values = takeHeaderValues(name, [value], remaining);
121
+ remaining = values.remaining;
122
+ if (values.truncated) {
123
+ truncated = true;
124
+ }
125
+ if (values.values.length > 0) {
126
+ result[name] = values.values.length === 1 ? values.values[0] : values.values;
127
+ }
128
+ });
129
+ return {
130
+ headers: Object.keys(result).length === 0 ? {} : result,
131
+ truncated
132
+ };
133
+ }
134
+ function headerTokenList(values) {
135
+ if (!values) {
136
+ return [];
137
+ }
138
+ if (Array.isArray(values)) {
139
+ return splitTokens(values);
140
+ }
141
+ return splitTokens([values]);
142
+ }
143
+ function splitTokens(values) {
144
+ const tokens = [];
145
+ for (const value of values) {
146
+ if (!value) {
147
+ continue;
148
+ }
149
+ for (const part of value.split(",")) {
150
+ const trimmed = part.trim();
151
+ if (trimmed) {
152
+ tokens.push(trimmed);
153
+ }
154
+ }
155
+ }
156
+ return tokens;
157
+ }
158
+ function getSetCookie(headers) {
159
+ const maybe = headers;
160
+ if (typeof maybe.getSetCookie === "function") {
161
+ const values = maybe.getSetCookie();
162
+ return values.length > 0 ? values : null;
163
+ }
164
+ return null;
165
+ }
166
+ function takeHeaderValues(name, values, remaining) {
167
+ if (remaining <= 0) {
168
+ return { remaining: 0, truncated: true, values: [] };
169
+ }
170
+ const taken = [];
171
+ let used = 0;
172
+ for (const value of values) {
173
+ if (!value) {
174
+ continue;
175
+ }
176
+ const size = name.length + value.length;
177
+ if (used + size > remaining) {
178
+ return { remaining: Math.max(0, remaining - used), truncated: true, values: taken };
179
+ }
180
+ used += size;
181
+ taken.push(value);
182
+ }
183
+ return { remaining: Math.max(0, remaining - used), truncated: false, values: taken };
184
+ }
185
+
186
+ // src/core/websocket.ts
187
+ function isWebsocketUpgrade(statusCode, requestHeaders, responseHeaders) {
188
+ if (statusCode !== 101) {
189
+ return false;
190
+ }
191
+ if (headerHasToken(responseHeaders, "upgrade", "websocket")) {
192
+ return true;
193
+ }
194
+ return headerHasToken(requestHeaders, "upgrade", "websocket");
195
+ }
196
+ function isWebsocketUpgradeFetch(statusCode, requestHeaders, responseHeaders) {
197
+ if (statusCode !== 101) {
198
+ return false;
199
+ }
200
+ if (headerHasTokenFetch(responseHeaders, "upgrade", "websocket")) {
201
+ return true;
202
+ }
203
+ return headerHasTokenFetch(requestHeaders, "upgrade", "websocket");
204
+ }
205
+ function headerHasToken(headers, name, token) {
206
+ if (!headers) {
207
+ return false;
208
+ }
209
+ const values = _nullishCoalesce(_nullishCoalesce(headers[name], () => ( headers[name.toLowerCase()])), () => ( headers[name.toUpperCase()]));
210
+ if (!values) {
211
+ return false;
212
+ }
213
+ const tokens = headerTokenList(values);
214
+ return tokens.some((value) => value.toLowerCase() === token.toLowerCase());
215
+ }
216
+ function headerHasTokenFetch(headers, name, token) {
217
+ const value = headers.get(name);
218
+ if (!value) {
219
+ return false;
220
+ }
221
+ return value.split(",").some((part) => part.trim().toLowerCase() === token.toLowerCase());
222
+ }
223
+
224
+ // src/core/internal.ts
225
+ function bindContextToObject(target, ctx) {
226
+ const state = _chunkJKW6E4L3cjs.getContextState.call(void 0, ctx);
227
+ if (!state) {
228
+ return;
229
+ }
230
+ _chunkJKW6E4L3cjs.bindObject.call(void 0, target, state);
231
+ }
232
+ function getXrayContextFromObject(target) {
233
+ return _chunkJKW6E4L3cjs.getContextFromObject.call(void 0, target);
234
+ }
235
+ function setContextRoute(ctx, route) {
236
+ const state = _chunkJKW6E4L3cjs.getContextState.call(void 0, ctx);
237
+ if (!state) {
238
+ return;
239
+ }
240
+ const normalized = state.config.route.normalize && state.config.route.normalizer ? state.config.route.normalizer(route) : route;
241
+ state.request.route = normalized;
242
+ }
243
+ function setContextRequestId(ctx, requestId) {
244
+ const state = _chunkJKW6E4L3cjs.getContextState.call(void 0, ctx);
245
+ if (!state) {
246
+ return;
247
+ }
248
+ state.request.requestId = requestId;
249
+ state.context.requestId = requestId;
250
+ }
251
+ function setCaptureOverride(ctx, capture) {
252
+ const state = _chunkJKW6E4L3cjs.getContextState.call(void 0, ctx);
253
+ if (!state || !capture) {
254
+ return;
255
+ }
256
+ state.captureOverride = capture;
257
+ }
258
+ function setRedactionOverride(ctx, redaction) {
259
+ const state = _chunkJKW6E4L3cjs.getContextState.call(void 0, ctx);
260
+ if (!state || !redaction) {
261
+ return;
262
+ }
263
+ state.redactionOverride = redaction;
264
+ }
265
+
266
+
267
+
268
+
269
+
270
+
271
+
272
+
273
+
274
+
275
+
276
+
277
+
278
+
279
+
280
+ exports.LimitedBuffer = LimitedBuffer; exports.headerValuesFromNodeHeaders = headerValuesFromNodeHeaders; exports.headerValuesFromFetchHeaders = headerValuesFromFetchHeaders; exports.headerValuesFromFetchHeadersWithLimit = headerValuesFromFetchHeadersWithLimit; exports.headerTokenList = headerTokenList; exports.isWebsocketUpgrade = isWebsocketUpgrade; exports.isWebsocketUpgradeFetch = isWebsocketUpgradeFetch; exports.bindContextToObject = bindContextToObject; exports.getXrayContextFromObject = getXrayContextFromObject; exports.setContextRoute = setContextRoute; exports.setContextRequestId = setContextRequestId; exports.setCaptureOverride = setCaptureOverride; exports.setRedactionOverride = setRedactionOverride;
281
+ //# sourceMappingURL=chunk-GNSXLLEC.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/xray-emitter-js/xray-emitter-js/dist/chunk-GNSXLLEC.cjs","../src/core/limited_buffer.ts","../src/core/headers.ts","../src/core/websocket.ts","../src/core/internal.ts"],"names":[],"mappings":"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","file":"/home/runner/work/xray-emitter-js/xray-emitter-js/dist/chunk-GNSXLLEC.cjs","sourcesContent":[null,"export class LimitedBuffer {\n private buffer: Uint8Array;\n private length: number;\n private readonly limit: number;\n private truncatedFlag: boolean;\n private total: number;\n\n constructor(limit: number) {\n const normalized = Number.isFinite(limit) ? Math.max(0, limit) : 0;\n const initialCap = Math.min(normalized, 32 * 1024);\n this.buffer = new Uint8Array(initialCap);\n this.length = 0;\n this.limit = normalized;\n this.truncatedFlag = false;\n this.total = 0;\n }\n\n bytes(): Uint8Array {\n return this.buffer.slice(0, this.length);\n }\n\n capturedBytes(): number {\n return this.length;\n }\n\n totalBytes(): number {\n return this.total;\n }\n\n truncated(): boolean {\n return this.truncatedFlag;\n }\n\n write(chunk: Uint8Array): void {\n if (!chunk || chunk.length === 0) {\n return;\n }\n\n this.total += chunk.length;\n if (this.limit <= 0) {\n this.truncatedFlag = true;\n return;\n }\n\n const remaining = this.limit - this.length;\n if (remaining <= 0) {\n this.truncatedFlag = true;\n return;\n }\n\n const toCopy = Math.min(remaining, chunk.length);\n this.ensureCapacity(this.length + toCopy);\n this.buffer.set(chunk.subarray(0, toCopy), this.length);\n this.length += toCopy;\n if (toCopy < chunk.length) {\n this.truncatedFlag = true;\n }\n }\n\n private ensureCapacity(size: number): void {\n if (this.buffer.length >= size) {\n return;\n }\n\n let nextSize = this.buffer.length;\n if (nextSize === 0) {\n nextSize = 1;\n }\n while (nextSize < size) {\n nextSize *= 2;\n }\n if (nextSize > this.limit) {\n nextSize = this.limit;\n }\n const next = new Uint8Array(nextSize);\n next.set(this.buffer.subarray(0, this.length));\n this.buffer = next;\n }\n}\n","export type HeaderCapture = {\n headers: Record<string, string | string[]>;\n truncated: boolean;\n};\n\nexport function headerValuesFromNodeHeaders(\n headers: Record<string, string | string[] | number | undefined>,\n): Record<string, string | string[]> {\n const result: Record<string, string | string[]> = {};\n for (const [key, value] of Object.entries(headers)) {\n if (value == null) {\n continue;\n }\n const name = key.trim();\n if (!name) {\n continue;\n }\n if (Array.isArray(value)) {\n const entries = value.map((item) => `${item}`);\n if (entries.length > 0) {\n result[name] = entries.length === 1 ? entries[0]! : entries;\n }\n } else {\n result[name] = `${value}`;\n }\n }\n return Object.keys(result).length === 0 ? {} : result;\n}\n\nexport function headerValuesFromFetchHeaders(headers: Headers): Record<string, string | string[]> {\n return headerValuesFromFetchHeadersWithLimit(headers, Number.POSITIVE_INFINITY).headers;\n}\n\nexport function headerValuesFromFetchHeadersWithLimit(\n headers: Headers,\n maxBytes: number,\n): HeaderCapture {\n const result: Record<string, string | string[]> = {};\n let truncated = false;\n let remaining = Number.isFinite(maxBytes) ? Math.max(0, maxBytes) : Number.POSITIVE_INFINITY;\n const setCookie = getSetCookie(headers);\n if (setCookie) {\n const values = takeHeaderValues('set-cookie', setCookie, remaining);\n remaining = values.remaining;\n if (values.truncated) {\n truncated = true;\n }\n if (values.values.length > 0) {\n result['set-cookie'] = values.values.length === 1 ? values.values[0]! : values.values;\n }\n }\n\n headers.forEach((value, key) => {\n const name = key.trim();\n if (!name) {\n return;\n }\n if (name.toLowerCase() === 'set-cookie' && setCookie) {\n return;\n }\n const values = takeHeaderValues(name, [value], remaining);\n remaining = values.remaining;\n if (values.truncated) {\n truncated = true;\n }\n if (values.values.length > 0) {\n result[name] = values.values.length === 1 ? values.values[0]! : values.values;\n }\n });\n\n return {\n headers: Object.keys(result).length === 0 ? {} : result,\n truncated,\n };\n}\n\nexport function headerTokenList(values: string[] | string | undefined): string[] {\n if (!values) {\n return [];\n }\n if (Array.isArray(values)) {\n return splitTokens(values);\n }\n return splitTokens([values]);\n}\n\nfunction splitTokens(values: string[]): string[] {\n const tokens: string[] = [];\n for (const value of values) {\n if (!value) {\n continue;\n }\n for (const part of value.split(',')) {\n const trimmed = part.trim();\n if (trimmed) {\n tokens.push(trimmed);\n }\n }\n }\n return tokens;\n}\n\nfunction getSetCookie(headers: Headers): string[] | null {\n const maybe = headers as Headers & { getSetCookie?: () => string[] };\n if (typeof maybe.getSetCookie === 'function') {\n const values = maybe.getSetCookie();\n return values.length > 0 ? values : null;\n }\n return null;\n}\n\nfunction takeHeaderValues(\n name: string,\n values: string[],\n remaining: number,\n): { values: string[]; remaining: number; truncated: boolean } {\n if (remaining <= 0) {\n return { remaining: 0, truncated: true, values: [] };\n }\n\n const taken: string[] = [];\n let used = 0;\n for (const value of values) {\n if (!value) {\n continue;\n }\n const size = name.length + value.length;\n if (used + size > remaining) {\n return { remaining: Math.max(0, remaining - used), truncated: true, values: taken };\n }\n used += size;\n taken.push(value);\n }\n\n return { remaining: Math.max(0, remaining - used), truncated: false, values: taken };\n}\n","import { headerTokenList } from './headers';\n\ntype HeaderValues = Record<string, string | string[]>;\n\nexport function isWebsocketUpgrade(\n statusCode: number,\n requestHeaders: HeaderValues | undefined,\n responseHeaders: HeaderValues | undefined,\n): boolean {\n if (statusCode !== 101) {\n return false;\n }\n\n if (headerHasToken(responseHeaders, 'upgrade', 'websocket')) {\n return true;\n }\n return headerHasToken(requestHeaders, 'upgrade', 'websocket');\n}\n\nexport function isWebsocketUpgradeFetch(\n statusCode: number,\n requestHeaders: Headers,\n responseHeaders: Headers,\n): boolean {\n if (statusCode !== 101) {\n return false;\n }\n\n if (headerHasTokenFetch(responseHeaders, 'upgrade', 'websocket')) {\n return true;\n }\n return headerHasTokenFetch(requestHeaders, 'upgrade', 'websocket');\n}\n\nfunction headerHasToken(headers: HeaderValues | undefined, name: string, token: string): boolean {\n if (!headers) {\n return false;\n }\n const values = headers[name] ?? headers[name.toLowerCase()] ?? headers[name.toUpperCase()];\n if (!values) {\n return false;\n }\n const tokens = headerTokenList(values);\n return tokens.some((value) => value.toLowerCase() === token.toLowerCase());\n}\n\nfunction headerHasTokenFetch(headers: Headers, name: string, token: string): boolean {\n const value = headers.get(name);\n if (!value) {\n return false;\n }\n return value.split(',').some((part) => part.trim().toLowerCase() === token.toLowerCase());\n}\n","import type { CaptureConfig, RedactionConfig } from './config';\nimport type { XrayContext } from './types';\nimport { bindObject, getContextFromObject, getContextState } from './state';\n\nexport { LimitedBuffer } from './limited_buffer';\nexport {\n headerValuesFromFetchHeaders,\n headerValuesFromFetchHeadersWithLimit,\n headerValuesFromNodeHeaders,\n headerTokenList,\n} from './headers';\nexport { isWebsocketUpgrade, isWebsocketUpgradeFetch } from './websocket';\nexport { makeCapturedBody } from './request_log';\nexport { logWithLevel } from './logger';\nexport { generateRequestId, uuidv7, uuidv7base48, uuidv7base62 } from './uuid';\n\nexport function bindContextToObject(target: object, ctx: XrayContext): void {\n const state = getContextState(ctx);\n if (!state) {\n return;\n }\n bindObject(target, state);\n}\n\nexport function getXrayContextFromObject(target: unknown): XrayContext | undefined {\n return getContextFromObject(target);\n}\n\nexport function setContextRoute(ctx: XrayContext, route: string): void {\n const state = getContextState(ctx);\n if (!state) {\n return;\n }\n const normalized =\n state.config.route.normalize && state.config.route.normalizer\n ? state.config.route.normalizer(route)\n : route;\n state.request.route = normalized;\n}\n\nexport function setContextRequestId(ctx: XrayContext, requestId: string): void {\n const state = getContextState(ctx);\n if (!state) {\n return;\n }\n state.request.requestId = requestId;\n state.context.requestId = requestId;\n}\n\nexport function setCaptureOverride(\n ctx: XrayContext,\n capture: Partial<CaptureConfig> | undefined,\n): void {\n const state = getContextState(ctx);\n if (!state || !capture) {\n return;\n }\n state.captureOverride = capture;\n}\n\nexport function setRedactionOverride(\n ctx: XrayContext,\n redaction: Partial<RedactionConfig> | undefined,\n): void {\n const state = getContextState(ctx);\n if (!state || !redaction) {\n return;\n }\n state.redactionOverride = redaction;\n}\n"]}