@blyp/core 0.1.2 → 0.1.22
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/README.md +273 -14
- package/STABILITY.md +56 -0
- package/dist/ai/anthropic/index.d.ts +3 -0
- package/dist/ai/anthropic/normalize.d.ts +9 -0
- package/dist/ai/anthropic/stream.d.ts +3 -0
- package/dist/ai/anthropic/wrap.d.ts +13 -0
- package/dist/ai/anthropic.js +701 -0
- package/dist/ai/anthropic.mjs +701 -0
- package/dist/ai/fetch.js +701 -0
- package/dist/ai/fetch.mjs +701 -0
- package/dist/ai/openai/index.d.ts +3 -0
- package/dist/ai/openai/normalize.d.ts +10 -0
- package/dist/ai/openai/stream.d.ts +3 -0
- package/dist/ai/openai/wrap.d.ts +24 -0
- package/dist/ai/openai.js +701 -0
- package/dist/ai/openai.mjs +701 -0
- package/dist/ai/shared/fetch.d.ts +5 -0
- package/dist/ai/shared/index.d.ts +2 -0
- package/dist/ai/shared/normalize.d.ts +17 -0
- package/dist/ai/shared/redaction.d.ts +6 -0
- package/dist/ai/shared/stream.d.ts +7 -0
- package/dist/ai/shared/trace.d.ts +116 -0
- package/dist/ai/shared/types.d.ts +161 -0
- package/dist/ai/shared.js +701 -0
- package/dist/ai/shared.mjs +701 -0
- package/dist/ai/vercel/index.d.ts +3 -0
- package/dist/ai/vercel/middleware.d.ts +3 -0
- package/dist/ai/vercel/model.d.ts +3 -0
- package/dist/ai/vercel.js +701 -0
- package/dist/ai/vercel.mjs +701 -0
- package/dist/astro.js +701 -0
- package/dist/astro.mjs +701 -0
- package/dist/client.js +1 -1132
- package/dist/client.mjs +1 -1125
- package/dist/connectors/betterstack.js +9 -1508
- package/dist/connectors/betterstack.mjs +9 -1483
- package/dist/connectors/databuddy/index.d.ts +7 -0
- package/dist/connectors/databuddy/sender.d.ts +5 -0
- package/dist/connectors/databuddy.js +9 -0
- package/dist/connectors/databuddy.mjs +9 -0
- package/dist/connectors/delivery/backoff.d.ts +2 -0
- package/dist/connectors/delivery/manager.d.ts +44 -0
- package/dist/connectors/delivery/queue-path.d.ts +1 -0
- package/dist/connectors/delivery/sqlite-adapter-bun.d.ts +1 -0
- package/dist/connectors/delivery/sqlite-adapter-node.d.ts +1 -0
- package/dist/connectors/delivery/sqlite-client.d.ts +37 -0
- package/dist/connectors/delivery/sqlite-worker.d.ts +1 -0
- package/dist/connectors/delivery/studio-queue.d.ts +12 -0
- package/dist/connectors/delivery/types.d.ts +98 -0
- package/dist/connectors/otlp/index.d.ts +1 -0
- package/dist/connectors/otlp.js +9 -1347
- package/dist/connectors/otlp.mjs +9 -1344
- package/dist/connectors/posthog/properties.d.ts +4 -0
- package/dist/connectors/posthog/sender.d.ts +0 -1
- package/dist/connectors/posthog.js +10 -1503
- package/dist/connectors/posthog.mjs +10 -1498
- package/dist/connectors/sentry.js +9 -1356
- package/dist/connectors/sentry.mjs +9 -1333
- package/dist/core/config.d.ts +7 -2
- package/dist/core/log-record.d.ts +5 -4
- package/dist/core/logger.d.ts +5 -0
- package/dist/core/optional-module.d.ts +1 -0
- package/dist/core/pino-pretty-loader.d.ts +4 -0
- package/dist/database.js +1 -24
- package/dist/database.mjs +1 -21
- package/dist/elysia.js +621 -4100
- package/dist/elysia.mjs +622 -4073
- package/dist/expo.js +1 -719
- package/dist/expo.mjs +1 -717
- package/dist/express.js +616 -4085
- package/dist/express.mjs +616 -4056
- package/dist/fastify.js +618 -4104
- package/dist/fastify.mjs +618 -4075
- package/dist/frameworks/astro/index.d.ts +2 -0
- package/dist/frameworks/astro/logger.d.ts +3 -0
- package/dist/frameworks/elysia/index.d.ts +1 -1
- package/dist/frameworks/elysia/logger.d.ts +2 -35
- package/dist/frameworks/nestjs/helpers.d.ts +2 -0
- package/dist/frameworks/nitro/index.d.ts +2 -0
- package/dist/frameworks/nitro/logger.d.ts +6 -0
- package/dist/frameworks/nuxt/index.d.ts +2 -0
- package/dist/frameworks/nuxt/logger.d.ts +3 -0
- package/dist/frameworks/react-router/index.d.ts +2 -0
- package/dist/frameworks/react-router/logger.d.ts +3 -0
- package/dist/frameworks/shared/h3.d.ts +19 -0
- package/dist/frameworks/shared/http.d.ts +3 -2
- package/dist/frameworks/shared/index.d.ts +2 -1
- package/dist/frameworks/shared/logger.d.ts +2 -0
- package/dist/frameworks/shared/request-context.d.ts +2 -0
- package/dist/frameworks/shared/trace.d.ts +6 -0
- package/dist/hono.js +624 -4079
- package/dist/hono.mjs +626 -4053
- package/dist/index.d.ts +57 -17
- package/dist/index.js +616 -6494
- package/dist/index.mjs +619 -6410
- package/dist/nestjs.js +626 -4574
- package/dist/nestjs.mjs +622 -4542
- package/dist/nextjs.js +625 -4107
- package/dist/nextjs.mjs +627 -4081
- package/dist/nitro.js +701 -0
- package/dist/nitro.mjs +701 -0
- package/dist/nuxt.js +701 -0
- package/dist/nuxt.mjs +701 -0
- package/dist/react-router.js +701 -0
- package/dist/react-router.mjs +701 -0
- package/dist/shared/redaction.d.ts +17 -0
- package/dist/standalone.js +606 -3258
- package/dist/standalone.mjs +611 -3234
- package/dist/sveltekit.js +625 -4106
- package/dist/sveltekit.mjs +626 -4079
- package/dist/tanstack-start.js +624 -4105
- package/dist/tanstack-start.mjs +626 -4079
- package/dist/types/connectors/databuddy.d.ts +52 -0
- package/dist/types/core/config.d.ts +89 -0
- package/dist/types/core/logger.d.ts +5 -0
- package/dist/types/core/structured-log.d.ts +2 -0
- package/dist/types/database.d.ts +1 -0
- package/dist/types/frameworks/astro.d.ts +33 -0
- package/dist/types/frameworks/client.d.ts +2 -0
- package/dist/types/frameworks/elysia.d.ts +2 -0
- package/dist/types/frameworks/express.d.ts +1 -0
- package/dist/types/frameworks/fastify.d.ts +1 -0
- package/dist/types/frameworks/hono.d.ts +1 -0
- package/dist/types/frameworks/http.d.ts +1 -0
- package/dist/types/frameworks/nestjs.d.ts +2 -0
- package/dist/types/frameworks/nextjs.d.ts +1 -0
- package/dist/types/frameworks/nitro.d.ts +63 -0
- package/dist/types/frameworks/nuxt.d.ts +12 -0
- package/dist/types/frameworks/react-router.d.ts +35 -0
- package/dist/types/frameworks/request-context.d.ts +1 -0
- package/dist/types/frameworks/shared.d.ts +28 -1
- package/dist/types/frameworks/standalone.d.ts +3 -2
- package/dist/types/frameworks/sveltekit.d.ts +1 -0
- package/dist/types/frameworks/tanstack-start.d.ts +9 -3
- package/dist/types/frameworks/workers.d.ts +3 -0
- package/dist/types/shared/client-log.d.ts +2 -1
- package/dist/workers.js +2 -626
- package/dist/workers.mjs +2 -623
- package/package.json +273 -143
- package/dist/client.js.map +0 -1
- package/dist/client.mjs.map +0 -1
- package/dist/connectors/betterstack.js.map +0 -1
- package/dist/connectors/betterstack.mjs.map +0 -1
- package/dist/connectors/otlp.js.map +0 -1
- package/dist/connectors/otlp.mjs.map +0 -1
- package/dist/connectors/posthog.js.map +0 -1
- package/dist/connectors/posthog.mjs.map +0 -1
- package/dist/connectors/sentry.js.map +0 -1
- package/dist/connectors/sentry.mjs.map +0 -1
- package/dist/database.js.map +0 -1
- package/dist/database.mjs.map +0 -1
- package/dist/elysia.js.map +0 -1
- package/dist/elysia.mjs.map +0 -1
- package/dist/expo.js.map +0 -1
- package/dist/expo.mjs.map +0 -1
- package/dist/express.js.map +0 -1
- package/dist/express.mjs.map +0 -1
- package/dist/fastify.js.map +0 -1
- package/dist/fastify.mjs.map +0 -1
- package/dist/hono.js.map +0 -1
- package/dist/hono.mjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/nestjs.js.map +0 -1
- package/dist/nestjs.mjs.map +0 -1
- package/dist/nextjs.js.map +0 -1
- package/dist/nextjs.mjs.map +0 -1
- package/dist/standalone.js.map +0 -1
- package/dist/standalone.mjs.map +0 -1
- package/dist/sveltekit.js.map +0 -1
- package/dist/sveltekit.mjs.map +0 -1
- package/dist/tanstack-start.js.map +0 -1
- package/dist/tanstack-start.mjs.map +0 -1
- package/dist/workers.js.map +0 -1
- package/dist/workers.mjs.map +0 -1
- package/exports/client.js +0 -3
- package/exports/client.mjs +0 -3
- package/exports/connectors/betterstack.js +0 -1
- package/exports/connectors/betterstack.mjs +0 -1
- package/exports/connectors/otlp.js +0 -1
- package/exports/connectors/otlp.mjs +0 -1
- package/exports/connectors/posthog.js +0 -1
- package/exports/connectors/posthog.mjs +0 -1
- package/exports/connectors/sentry.js +0 -1
- package/exports/connectors/sentry.mjs +0 -1
- package/exports/database.js +0 -1
- package/exports/database.mjs +0 -1
- package/exports/expo.js +0 -1
- package/exports/expo.mjs +0 -1
- package/exports/frameworks/elysia.js +0 -1
- package/exports/frameworks/elysia.mjs +0 -1
- package/exports/frameworks/express.js +0 -1
- package/exports/frameworks/express.mjs +0 -1
- package/exports/frameworks/fastify.js +0 -1
- package/exports/frameworks/fastify.mjs +0 -1
- package/exports/frameworks/hono.js +0 -1
- package/exports/frameworks/hono.mjs +0 -1
- package/exports/frameworks/nestjs.js +0 -1
- package/exports/frameworks/nestjs.mjs +0 -1
- package/exports/frameworks/nextjs.js +0 -1
- package/exports/frameworks/nextjs.mjs +0 -1
- package/exports/frameworks/standalone.js +0 -1
- package/exports/frameworks/standalone.mjs +0 -1
- package/exports/frameworks/sveltekit.js +0 -1
- package/exports/frameworks/sveltekit.mjs +0 -1
- package/exports/frameworks/tanstack-start.js +0 -1
- package/exports/frameworks/tanstack-start.mjs +0 -1
- package/exports/workers.js +0 -1
- package/exports/workers.mjs +0 -1
- package/types/client.d.ts +0 -34
- package/types/connectors/betterstack.d.ts +0 -1
- package/types/connectors/otlp.d.ts +0 -1
- package/types/connectors/posthog.d.ts +0 -1
- package/types/connectors/sentry.d.ts +0 -1
- package/types/database.d.ts +0 -1
- package/types/expo.d.ts +0 -17
- package/types/frameworks/client.d.ts +0 -160
- package/types/frameworks/elysia.d.ts +0 -1
- package/types/frameworks/expo.d.ts +0 -50
- package/types/frameworks/express.d.ts +0 -1
- package/types/frameworks/fastify.d.ts +0 -1
- package/types/frameworks/hono.d.ts +0 -1
- package/types/frameworks/nestjs.d.ts +0 -1
- package/types/frameworks/nextjs.d.ts +0 -1
- package/types/frameworks/standalone.d.ts +0 -1
- package/types/frameworks/sveltekit.d.ts +0 -1
- package/types/frameworks/tanstack-start.d.ts +0 -1
- package/types/frameworks/workers.d.ts +0 -115
- package/types/index.d.ts +0 -1
- package/types/workers.d.ts +0 -13
package/dist/workers.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/colors.ts","../src/frameworks/shared/http.ts","../src/core/structured-log.ts","../src/frameworks/workers/logger.ts"],"names":["direct","serializeMessage","resolveEmitStatus"],"mappings":"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","file":"workers.js","sourcesContent":["export function getMethodColor(method: string): string {\n const colors: Record<string, string> = {\n GET: '\\x1b[32m',\n POST: '\\x1b[36m',\n PUT: '\\x1b[33m',\n PATCH: '\\x1b[34m',\n DELETE: '\\x1b[31m',\n };\n const reset = '\\x1b[0m';\n return `${colors[method.toUpperCase()] || ''}${method}${reset}`;\n}\n\nexport function getStatusColor(statusCode: number): string {\n const reset = '\\x1b[0m';\n if (statusCode >= 500) return `\\x1b[31m${statusCode}${reset}`;\n if (statusCode >= 400) return `\\x1b[33m${statusCode}${reset}`;\n if (statusCode >= 300) return `\\x1b[36m${statusCode}${reset}`;\n if (statusCode >= 200) return `\\x1b[32m${statusCode}${reset}`;\n return `\\x1b[37m${statusCode}${reset}`;\n}\n\nexport function getArrowForMethod(method: string): string {\n const arrows: Record<string, string> = {\n GET: '→',\n POST: '↑',\n PUT: '⇑',\n PATCH: '↗',\n DELETE: '✕',\n };\n return arrows[method.toUpperCase()] || '•';\n}\n\nexport function getResponseTimeColor(ms: number): string {\n const reset = '\\x1b[0m';\n if (ms < 100) return `\\x1b[32m${ms}ms${reset}`;\n if (ms < 300) return `\\x1b[33m${ms}ms${reset}`;\n if (ms < 1000) return `\\x1b[31m${ms}ms${reset}`;\n return `\\x1b[41m\\x1b[37m${ms}ms${reset}`;\n}\n\nexport function getColoredLevel(level: string): string {\n const colors: Record<string, string> = {\n error: '\\x1b[31m',\n critical: '\\x1b[35m',\n warning: '\\x1b[33m',\n info: '\\x1b[34m',\n success: '\\x1b[32m',\n debug: '\\x1b[36m',\n };\n const reset = '\\x1b[0m';\n return `${colors[level.toLowerCase()] || ''}${level.toUpperCase()}${reset}`;\n}\n\nexport const colors = {\n reset: '\\x1b[0m',\n bright: '\\x1b[1m',\n dim: '\\x1b[2m',\n underscore: '\\x1b[4m',\n blink: '\\x1b[5m',\n reverse: '\\x1b[7m',\n hidden: '\\x1b[8m',\n black: '\\x1b[30m',\n red: '\\x1b[31m',\n green: '\\x1b[32m',\n yellow: '\\x1b[33m',\n blue: '\\x1b[34m',\n magenta: '\\x1b[35m',\n cyan: '\\x1b[36m',\n white: '\\x1b[37m',\n bgBlack: '\\x1b[40m',\n bgRed: '\\x1b[41m',\n bgGreen: '\\x1b[42m',\n bgYellow: '\\x1b[43m',\n bgBlue: '\\x1b[44m',\n bgMagenta: '\\x1b[45m',\n bgCyan: '\\x1b[46m',\n bgWhite: '\\x1b[47m',\n};\n","import { getArrowForMethod, getMethodColor, getResponseTimeColor, getStatusColor } from '../../core/colors';\nimport type {\n ErrorLike,\n HeaderRecord,\n HttpRequestLog,\n RequestLike,\n} from '../../types/frameworks/http';\n\nexport type { ErrorLike, HeaderRecord, HttpRequestLog, RequestLike, ResolveLike } from '../../types/frameworks/http';\n\nexport function getHeaderValue(\n headers: RequestLike['headers'],\n name: string\n): string | undefined {\n if (!headers) {\n return undefined;\n }\n\n if (headers instanceof Headers) {\n return headers.get(name) ?? headers.get(name.toLowerCase()) ?? undefined;\n }\n\n if (typeof (headers as { get?: unknown }).get === 'function') {\n const direct = (headers as { get(name: string): string | null }).get(name);\n return direct ?? (headers as { get(name: string): string | null }).get(name.toLowerCase()) ?? undefined;\n }\n\n const record = headers as HeaderRecord;\n const direct = record[name] ?? record[name.toLowerCase()];\n if (Array.isArray(direct)) {\n return direct[0];\n }\n\n return direct;\n}\n\nfunction parseForwardedHeader(value: string | undefined): string[] {\n if (!value) {\n return [];\n }\n\n return value\n .split(',')\n .map((entry) => entry.trim())\n .filter(Boolean)\n .map((entry) => {\n const match = entry.match(/for=\"?(\\[[^\\]]+\\]|[^;,\\s\"]+)/i);\n return match?.[1]?.replace(/^\"|\"$/g, '') ?? '';\n })\n .map((entry) => entry.replace(/^\\[|\\]$/g, ''))\n .filter(Boolean);\n}\n\nfunction parseForwardedFor(value: string | undefined): string[] {\n if (!value) {\n return [];\n }\n\n return value\n .split(',')\n .map((entry) => entry.trim())\n .filter(Boolean);\n}\n\nfunction stripPort(host: string): string {\n if (host.startsWith('[')) {\n const endIndex = host.indexOf(']');\n return endIndex >= 0 ? host.slice(1, endIndex) : host;\n }\n\n return host.replace(/:\\d+$/, '');\n}\n\nfunction detectBrowser(userAgent: string): string {\n if (/edg\\//i.test(userAgent)) return 'Edge';\n if (/opr\\//i.test(userAgent) || /opera/i.test(userAgent)) return 'Opera';\n if (/chrome\\//i.test(userAgent) && !/edg\\//i.test(userAgent)) return 'Chrome';\n if (/firefox\\//i.test(userAgent)) return 'Firefox';\n if (/safari\\//i.test(userAgent) && !/chrome\\//i.test(userAgent)) return 'Safari';\n if (/curl\\//i.test(userAgent)) return 'curl';\n if (/postmanruntime/i.test(userAgent)) return 'Postman';\n return 'Unknown';\n}\n\nfunction detectOperatingSystem(userAgent: string): string {\n if (/windows/i.test(userAgent)) return 'Windows';\n if (/android/i.test(userAgent)) return 'Android';\n if (/iphone|ipad|ipod/i.test(userAgent)) return 'iOS';\n if (/mac os x|macintosh/i.test(userAgent)) return 'macOS';\n if (/linux/i.test(userAgent)) return 'Linux';\n return 'Unknown';\n}\n\nfunction detectDeviceType(userAgent: string): 'desktop' | 'mobile' | 'tablet' | 'bot' | 'unknown' {\n if (!userAgent) return 'unknown';\n if (/bot|crawler|spider|curl|wget|postmanruntime/i.test(userAgent)) return 'bot';\n if (/ipad|tablet/i.test(userAgent)) return 'tablet';\n if (/mobi|iphone|android/i.test(userAgent)) return 'mobile';\n return 'desktop';\n}\n\nexport function extractPathname(requestUrl: string, fallbackPath: string = '/'): string {\n if (!requestUrl) {\n return fallbackPath;\n }\n\n if (requestUrl.startsWith('http://') || requestUrl.startsWith('https://')) {\n try {\n return new URL(requestUrl).pathname || fallbackPath;\n } catch {\n return fallbackPath;\n }\n }\n\n if (requestUrl.startsWith('/')) {\n const queryIndex = requestUrl.indexOf('?');\n return queryIndex >= 0 ? requestUrl.slice(0, queryIndex) : requestUrl;\n }\n\n try {\n return new URL(requestUrl, 'http://localhost').pathname || fallbackPath;\n } catch {\n return fallbackPath;\n }\n}\n\nexport function createRequestLike(\n method: string,\n url: string,\n headers?: RequestLike['headers']\n): RequestLike {\n return { method, url, headers };\n}\n\nexport function buildClientDetails(\n request: RequestLike,\n fallbackPath?: string\n): Omit<HttpRequestLog, 'type' | 'method' | 'url' | 'statusCode' | 'responseTime' | 'error' | 'stack'> {\n const pathname = fallbackPath ?? extractPathname(request.url);\n const urlObject = (() => {\n try {\n return new URL(request.url);\n } catch {\n try {\n return new URL(pathname, 'http://localhost');\n } catch {\n return null;\n }\n }\n })();\n\n const hostHeader =\n getHeaderValue(request.headers, 'x-forwarded-host') ??\n getHeaderValue(request.headers, 'host') ??\n urlObject?.host ??\n undefined;\n const hostname = hostHeader ? stripPort(hostHeader) : urlObject?.hostname;\n const port = hostHeader?.match(/:(\\d+)$/)?.[1] ?? (urlObject?.port || undefined);\n const xForwardedFor = parseForwardedFor(getHeaderValue(request.headers, 'x-forwarded-for'));\n const forwardedFor = parseForwardedHeader(getHeaderValue(request.headers, 'forwarded'));\n const ipCandidates = [\n getHeaderValue(request.headers, 'cf-connecting-ip'),\n getHeaderValue(request.headers, 'true-client-ip'),\n getHeaderValue(request.headers, 'fly-client-ip'),\n getHeaderValue(request.headers, 'x-real-ip'),\n getHeaderValue(request.headers, 'x-client-ip'),\n xForwardedFor[0],\n forwardedFor[0],\n ].filter((value): value is string => Boolean(value));\n const userAgent = getHeaderValue(request.headers, 'user-agent');\n const platform =\n getHeaderValue(request.headers, 'sec-ch-ua-platform')?.replace(/^\"|\"$/g, '') ??\n undefined;\n const deviceType = detectDeviceType(userAgent ?? '');\n\n return {\n hostname,\n ip: ipCandidates[0],\n forwardedFor: [...xForwardedFor, ...forwardedFor].filter((value, index, values) => {\n return values.indexOf(value) === index;\n }),\n protocol:\n getHeaderValue(request.headers, 'x-forwarded-proto') ??\n (urlObject?.protocol ? urlObject.protocol.replace(/:$/, '') : undefined),\n port,\n userAgent,\n origin: getHeaderValue(request.headers, 'origin'),\n referer: getHeaderValue(request.headers, 'referer'),\n acceptLanguage: getHeaderValue(request.headers, 'accept-language'),\n client: {\n ip: ipCandidates[0],\n hostname,\n browser: userAgent ? detectBrowser(userAgent) : undefined,\n os: userAgent ? detectOperatingSystem(userAgent) : undefined,\n deviceType,\n platform,\n isMobile: deviceType === 'mobile',\n },\n };\n}\n\nexport function buildRequestLogData(\n request: RequestLike,\n type: 'http_request' | 'http_error',\n path: string,\n statusCode: number,\n responseTime: number,\n extra: Record<string, unknown> = {}\n): HttpRequestLog {\n return {\n type,\n method: request.method,\n url: path,\n statusCode,\n responseTime,\n ...buildClientDetails(request, path),\n ...extra,\n };\n}\n\nexport function buildInfoLogMessage(\n method: string,\n statusCode: number,\n url: string,\n responseTime: number\n): string {\n const methodColor = getMethodColor(method);\n const statusColor = getStatusColor(statusCode);\n const timeColor = getResponseTimeColor(responseTime);\n const arrow = getArrowForMethod(method);\n return `${methodColor} ${arrow} ${statusColor} ${url} ${timeColor}`;\n}\n\nexport function toErrorLike(error: unknown, fallbackStatusCode?: number): ErrorLike | undefined {\n if (error === undefined || error === null) {\n return fallbackStatusCode === undefined\n ? undefined\n : { statusCode: fallbackStatusCode, message: `HTTP ${fallbackStatusCode}` };\n }\n\n if (error instanceof Error) {\n const errorWithStatus = error as ErrorLike;\n return {\n status: errorWithStatus.status,\n statusCode: errorWithStatus.statusCode ?? fallbackStatusCode,\n code: errorWithStatus.code,\n message: error.message,\n stack: error.stack,\n why: errorWithStatus.why,\n fix: errorWithStatus.fix,\n link: errorWithStatus.link,\n details: errorWithStatus.details,\n cause: errorWithStatus.cause,\n };\n }\n\n if (typeof error === 'object') {\n const record = error as Record<string, unknown>;\n return {\n status: typeof record.status === 'number' ? record.status : undefined,\n statusCode:\n typeof record.statusCode === 'number'\n ? record.statusCode\n : fallbackStatusCode,\n code:\n typeof record.code === 'string' || typeof record.code === 'number'\n ? record.code\n : undefined,\n message: typeof record.message === 'string' ? record.message : `HTTP ${fallbackStatusCode ?? 500}`,\n stack: typeof record.stack === 'string' ? record.stack : undefined,\n why: typeof record.why === 'string' ? record.why : undefined,\n fix: typeof record.fix === 'string' ? record.fix : undefined,\n link: typeof record.link === 'string' ? record.link : undefined,\n details:\n record.details !== null && typeof record.details === 'object' && !Array.isArray(record.details)\n ? record.details as Record<string, unknown>\n : undefined,\n cause: record.cause,\n };\n }\n\n return {\n statusCode: fallbackStatusCode,\n message: typeof error === 'string' ? error : `HTTP ${fallbackStatusCode ?? 500}`,\n };\n}\n\nexport function isErrorStatus(statusCode: number): boolean {\n return statusCode >= 400;\n}\n","import type {\n CreateStructuredLogOptions,\n StructuredLog,\n StructuredLogError,\n StructuredLogEvent,\n StructuredLogEmitOptions,\n StructuredLogLevel,\n StructuredLogPayload,\n} from '../types/core/structured-log';\n\nexport type {\n CreateStructuredLogOptions,\n StructuredLog,\n StructuredLogError,\n StructuredLogEvent,\n StructuredLogEmitOptions,\n StructuredLogLevel,\n StructuredLogPayload,\n} from '../types/core/structured-log';\n\nfunction serializeMessage(message: unknown): string {\n if (typeof message === 'string') {\n return message;\n }\n\n if (message !== null && typeof message === 'object') {\n try {\n return JSON.stringify(\n message,\n (_key, value) => {\n if (typeof value === 'function') {\n return `[Function: ${value.name || 'anonymous'}]`;\n }\n\n if (value === undefined) {\n return '[undefined]';\n }\n\n if (typeof value === 'symbol') {\n return value.toString();\n }\n\n return value;\n },\n 2\n );\n } catch {\n return '[Object]';\n }\n }\n\n return String(message);\n}\n\nfunction normalizeEventData(message: unknown, args: unknown[]): unknown {\n if (typeof message === 'string') {\n if (args.length === 0) {\n return undefined;\n }\n\n return args.length === 1 ? args[0] : args;\n }\n\n const values = [message, ...args];\n return values.length === 1 ? values[0] : values;\n}\n\nfunction normalizeDetails(value: unknown): Record<string, unknown> | undefined {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return undefined;\n }\n\n return value as Record<string, unknown>;\n}\n\nfunction normalizeError(error: unknown, fallbackStatus?: number): StructuredLogError | undefined {\n if (error === undefined || error === null) {\n return fallbackStatus === undefined || fallbackStatus < 400\n ? undefined\n : {\n message: `HTTP ${fallbackStatus}`,\n code: fallbackStatus,\n type: 'HttpError',\n };\n }\n\n if (error instanceof Error) {\n const errorLike = error as Error & {\n code?: string | number;\n why?: string;\n fix?: string;\n link?: string;\n details?: unknown;\n cause?: unknown;\n type?: string;\n };\n\n return {\n message: error.message,\n code: errorLike.code,\n type: errorLike.type ?? error.name ?? error.constructor?.name,\n stack: error.stack,\n why: errorLike.why,\n fix: errorLike.fix,\n link: errorLike.link,\n details: normalizeDetails(errorLike.details),\n cause: errorLike.cause,\n };\n }\n\n if (typeof error === 'object') {\n const record = error as Record<string, unknown>;\n const statusCode =\n typeof record.statusCode === 'number'\n ? record.statusCode\n : typeof record.status === 'number'\n ? record.status\n : fallbackStatus;\n\n return {\n message:\n typeof record.message === 'string'\n ? record.message\n : `HTTP ${statusCode ?? 500}`,\n code:\n typeof record.code === 'string' || typeof record.code === 'number'\n ? record.code\n : statusCode,\n type:\n typeof record.type === 'string'\n ? record.type\n : typeof record.name === 'string'\n ? record.name\n : 'Error',\n stack: typeof record.stack === 'string' ? record.stack : undefined,\n why: typeof record.why === 'string' ? record.why : undefined,\n fix: typeof record.fix === 'string' ? record.fix : undefined,\n link: typeof record.link === 'string' ? record.link : undefined,\n details: normalizeDetails(record.details),\n cause: record.cause,\n };\n }\n\n return {\n message: String(error),\n code: fallbackStatus,\n type: typeof error,\n };\n}\n\nfunction resolveEmitStatus(options: StructuredLogEmitOptions): number | undefined {\n if (options.response && typeof options.response.status === 'number') {\n return options.response.status;\n }\n\n if (typeof options.status === 'number') {\n return options.status;\n }\n\n if (\n options.error &&\n typeof options.error === 'object' &&\n options.error !== null &&\n typeof (options.error as { statusCode?: unknown }).statusCode === 'number'\n ) {\n return (options.error as { statusCode: number }).statusCode;\n }\n\n if (\n options.error &&\n typeof options.error === 'object' &&\n options.error !== null &&\n typeof (options.error as { status?: unknown }).status === 'number'\n ) {\n return (options.error as { status: number }).status;\n }\n\n return options.error ? 500 : undefined;\n}\n\nexport function createStructuredLog(\n groupId: string,\n options: CreateStructuredLogOptions\n): StructuredLog<Record<string, unknown>> {\n const startedAt = performance.now();\n const fields = { ...(options.initialFields ?? {}) };\n const events: StructuredLogEvent[] = [];\n let emittedPayload: StructuredLogPayload<Record<string, unknown>> | undefined;\n\n options.onCreate?.();\n\n const appendEvent = (\n level: StructuredLogLevel,\n message: unknown,\n args: unknown[]\n ): StructuredLog<Record<string, unknown>> => {\n events.push({\n level,\n message: serializeMessage(message),\n timestamp: new Date().toISOString(),\n ...(normalizeEventData(message, args) === undefined\n ? {}\n : { data: normalizeEventData(message, args) }),\n });\n\n return structuredLog;\n };\n\n const structuredLog: StructuredLog<Record<string, unknown>> = {\n set<TNextFields extends Record<string, unknown>>(extraFields: TNextFields) {\n Object.assign(fields, extraFields);\n return structuredLog as StructuredLog<Record<string, unknown> & TNextFields>;\n },\n\n debug(message, ...args) {\n return appendEvent('debug', message, args);\n },\n\n info(message, ...args) {\n return appendEvent('info', message, args);\n },\n\n warn(message, ...args) {\n return appendEvent('warn', message, args);\n },\n\n warning(message, ...args) {\n return appendEvent('warning', message, args);\n },\n\n error(message, ...args) {\n return appendEvent('error', message, args);\n },\n\n success(message, ...args) {\n return appendEvent('success', message, args);\n },\n\n critical(message, ...args) {\n return appendEvent('critical', message, args);\n },\n\n table(message, data) {\n return appendEvent('table', message, data === undefined ? [] : [data]);\n },\n\n emit(emitOptions = {}) {\n if (emittedPayload) {\n return emittedPayload;\n }\n\n const defaultFields = options.resolveDefaultFields?.() ?? {};\n const status = resolveEmitStatus(emitOptions);\n const error = normalizeError(emitOptions.error, status);\n const level = emitOptions.level ?? (error ? 'error' : 'info');\n const payload: StructuredLogPayload<Record<string, unknown>> = {\n ...defaultFields,\n ...fields,\n groupId,\n timestamp: new Date().toISOString(),\n level,\n duration: Math.round(performance.now() - startedAt),\n ...(typeof status === 'number' ? { status } : {}),\n ...(events.length > 0 ? { events: [...events] } : {}),\n ...(error ? { error } : {}),\n };\n\n options.write(payload, emitOptions.message ?? 'structured_log');\n emittedPayload = payload;\n options.onEmit?.(payload);\n return payload;\n },\n };\n\n return structuredLog;\n}\n","import {\n buildClientDetails,\n buildInfoLogMessage,\n buildRequestLogData,\n createRequestLike,\n extractPathname,\n isErrorStatus,\n toErrorLike,\n type HttpRequestLog,\n type RequestLike,\n} from '../shared/http';\nimport { createStructuredLog } from '../../core/structured-log';\nimport type {\n WorkersConsoleMethod,\n WorkersEmitOptions,\n WorkersLoggerConfig,\n WorkersLogLevel,\n WorkersRequestLogger,\n WorkersLoggerState,\n} from '../../types/frameworks/workers';\n\nlet workersLoggerState: WorkersLoggerState = {};\n\nfunction serializeMessage(message: unknown): string {\n if (typeof message === 'string') {\n return message;\n }\n\n if (message !== null && typeof message === 'object') {\n try {\n return JSON.stringify(message, (_key, value) => {\n if (typeof value === 'function') {\n return `[Function: ${value.name || 'anonymous'}]`;\n }\n\n if (value === undefined) {\n return '[undefined]';\n }\n\n if (typeof value === 'symbol') {\n return value.toString();\n }\n\n return value;\n }, 2);\n } catch {\n return '[Object]';\n }\n }\n\n return String(message);\n}\n\nfunction normalizeStructuredData(message: unknown, args: unknown[]): unknown {\n if (typeof message === 'string') {\n if (args.length === 0) {\n return undefined;\n }\n\n return args.length === 1 ? args[0] : args;\n }\n\n const values = [message, ...args];\n return values.length === 1 ? values[0] : values;\n}\n\nfunction getConsoleMethod(level: WorkersLogLevel): WorkersConsoleMethod {\n switch (level) {\n case 'debug':\n return 'debug';\n case 'warn':\n case 'warning':\n return 'warn';\n case 'error':\n case 'critical':\n return 'error';\n case 'success':\n return 'log';\n case 'info':\n default:\n return 'info';\n }\n}\n\nfunction writeConsole(method: WorkersConsoleMethod, message: string, payload?: unknown): void {\n if (typeof console === 'undefined') {\n return;\n }\n\n const logger = console[method] ?? console.info;\n if (payload === undefined) {\n logger.call(console, message);\n return;\n }\n\n logger.call(console, message, payload);\n}\n\nfunction writeStructuredConsole(\n level: WorkersLogLevel,\n message: string,\n payload: Record<string, unknown>\n): void {\n writeConsole(getConsoleMethod(level), message, payload);\n}\n\nfunction buildRequestMetadata(request: RequestLike, path: string): Record<string, unknown> {\n return {\n method: request.method,\n url: path,\n ...buildClientDetails(request, path),\n };\n}\n\nfunction createScopedPayload(\n request: RequestLike,\n path: string,\n fields: Record<string, unknown>,\n data: unknown\n): Record<string, unknown> {\n return {\n request: buildRequestMetadata(request, path),\n ...fields,\n ...(data === undefined ? {} : { data }),\n };\n}\n\nfunction emitScopedLog(\n level: WorkersLogLevel,\n request: RequestLike,\n path: string,\n fields: Record<string, unknown>,\n message: unknown,\n args: unknown[]\n): void {\n writeConsole(\n getConsoleMethod(level),\n serializeMessage(message),\n createScopedPayload(request, path, fields, normalizeStructuredData(message, args))\n );\n}\n\nfunction resolveEmitStatus(options: WorkersEmitOptions): number {\n return options.response?.status ?? options.status ?? (options.error ? 500 : 200);\n}\n\nfunction createEmitPayload(\n request: RequestLike,\n path: string,\n fields: Record<string, unknown>,\n startTime: number,\n options: WorkersEmitOptions\n): HttpRequestLog {\n const statusCode = resolveEmitStatus(options);\n const errorLike = toErrorLike(options.error, statusCode);\n\n return buildRequestLogData(\n request,\n options.error || isErrorStatus(statusCode) ? 'http_error' : 'http_request',\n path,\n statusCode,\n Math.round(performance.now() - startTime),\n {\n ...fields,\n ...(errorLike\n ? {\n error: errorLike.message,\n stack: errorLike.stack,\n code: errorLike.code,\n why: errorLike.why,\n fix: errorLike.fix,\n link: errorLike.link,\n details: errorLike.details,\n }\n : {}),\n }\n );\n}\n\nfunction createScopedFields(request: Request): Record<string, unknown> {\n return {\n ...(workersLoggerState.env ?? {}),\n ...(workersLoggerState.customProps?.(request) ?? {}),\n };\n}\n\nexport function initWorkersLogger(config: WorkersLoggerConfig = {}): void {\n workersLoggerState = {\n env: config.env ? { ...config.env } : undefined,\n customProps: config.customProps,\n };\n}\n\nexport function createWorkersLogger(request: Request): WorkersRequestLogger {\n const startTime = performance.now();\n const requestLike = createRequestLike(request.method, request.url, request.headers);\n const path = extractPathname(request.url);\n const fields = createScopedFields(request);\n let emittedRecord: HttpRequestLog | undefined;\n\n const logger: WorkersRequestLogger = {\n set(extraFields) {\n Object.assign(fields, extraFields);\n return logger;\n },\n\n emit(options: WorkersEmitOptions = {}) {\n if (emittedRecord) {\n return emittedRecord;\n }\n\n emittedRecord = createEmitPayload(requestLike, path, fields, startTime, options);\n writeConsole(\n emittedRecord.type === 'http_error' ? 'error' : 'info',\n buildInfoLogMessage(\n requestLike.method,\n emittedRecord.statusCode,\n path,\n emittedRecord.responseTime\n ),\n emittedRecord\n );\n\n return emittedRecord;\n },\n\n debug(message, ...args) {\n emitScopedLog('debug', requestLike, path, fields, message, args);\n },\n\n info(message, ...args) {\n emitScopedLog('info', requestLike, path, fields, message, args);\n },\n\n warn(message, ...args) {\n emitScopedLog('warn', requestLike, path, fields, message, args);\n },\n\n warning(message, ...args) {\n emitScopedLog('warning', requestLike, path, fields, message, args);\n },\n\n error(message, ...args) {\n emitScopedLog('error', requestLike, path, fields, message, args);\n },\n\n success(message, ...args) {\n emitScopedLog('success', requestLike, path, fields, message, args);\n },\n\n critical(message, ...args) {\n emitScopedLog('critical', requestLike, path, fields, message, args);\n },\n\n table(message, data) {\n writeConsole('log', message, createScopedPayload(requestLike, path, fields, data));\n\n if (typeof console !== 'undefined' && typeof console.table === 'function' && data !== undefined) {\n console.table(data);\n }\n },\n\n createStructuredLog(groupId, initial) {\n return createStructuredLog(groupId, {\n initialFields: initial,\n resolveDefaultFields: () => ({\n method: requestLike.method,\n path,\n ...fields,\n }),\n write: (payload, message) => {\n const writeLevel = payload.level === 'warning' ? 'warning' : payload.level;\n writeStructuredConsole(\n writeLevel === 'table'\n ? 'info'\n : (writeLevel as Exclude<WorkersLogLevel, 'warn'>),\n message,\n payload\n );\n },\n });\n },\n };\n\n return logger;\n}\n"]}
|
package/dist/workers.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/colors.ts","../src/frameworks/shared/http.ts","../src/core/structured-log.ts","../src/frameworks/workers/logger.ts"],"names":["direct","serializeMessage","resolveEmitStatus"],"mappings":"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","file":"workers.mjs","sourcesContent":["export function getMethodColor(method: string): string {\n const colors: Record<string, string> = {\n GET: '\\x1b[32m',\n POST: '\\x1b[36m',\n PUT: '\\x1b[33m',\n PATCH: '\\x1b[34m',\n DELETE: '\\x1b[31m',\n };\n const reset = '\\x1b[0m';\n return `${colors[method.toUpperCase()] || ''}${method}${reset}`;\n}\n\nexport function getStatusColor(statusCode: number): string {\n const reset = '\\x1b[0m';\n if (statusCode >= 500) return `\\x1b[31m${statusCode}${reset}`;\n if (statusCode >= 400) return `\\x1b[33m${statusCode}${reset}`;\n if (statusCode >= 300) return `\\x1b[36m${statusCode}${reset}`;\n if (statusCode >= 200) return `\\x1b[32m${statusCode}${reset}`;\n return `\\x1b[37m${statusCode}${reset}`;\n}\n\nexport function getArrowForMethod(method: string): string {\n const arrows: Record<string, string> = {\n GET: '→',\n POST: '↑',\n PUT: '⇑',\n PATCH: '↗',\n DELETE: '✕',\n };\n return arrows[method.toUpperCase()] || '•';\n}\n\nexport function getResponseTimeColor(ms: number): string {\n const reset = '\\x1b[0m';\n if (ms < 100) return `\\x1b[32m${ms}ms${reset}`;\n if (ms < 300) return `\\x1b[33m${ms}ms${reset}`;\n if (ms < 1000) return `\\x1b[31m${ms}ms${reset}`;\n return `\\x1b[41m\\x1b[37m${ms}ms${reset}`;\n}\n\nexport function getColoredLevel(level: string): string {\n const colors: Record<string, string> = {\n error: '\\x1b[31m',\n critical: '\\x1b[35m',\n warning: '\\x1b[33m',\n info: '\\x1b[34m',\n success: '\\x1b[32m',\n debug: '\\x1b[36m',\n };\n const reset = '\\x1b[0m';\n return `${colors[level.toLowerCase()] || ''}${level.toUpperCase()}${reset}`;\n}\n\nexport const colors = {\n reset: '\\x1b[0m',\n bright: '\\x1b[1m',\n dim: '\\x1b[2m',\n underscore: '\\x1b[4m',\n blink: '\\x1b[5m',\n reverse: '\\x1b[7m',\n hidden: '\\x1b[8m',\n black: '\\x1b[30m',\n red: '\\x1b[31m',\n green: '\\x1b[32m',\n yellow: '\\x1b[33m',\n blue: '\\x1b[34m',\n magenta: '\\x1b[35m',\n cyan: '\\x1b[36m',\n white: '\\x1b[37m',\n bgBlack: '\\x1b[40m',\n bgRed: '\\x1b[41m',\n bgGreen: '\\x1b[42m',\n bgYellow: '\\x1b[43m',\n bgBlue: '\\x1b[44m',\n bgMagenta: '\\x1b[45m',\n bgCyan: '\\x1b[46m',\n bgWhite: '\\x1b[47m',\n};\n","import { getArrowForMethod, getMethodColor, getResponseTimeColor, getStatusColor } from '../../core/colors';\nimport type {\n ErrorLike,\n HeaderRecord,\n HttpRequestLog,\n RequestLike,\n} from '../../types/frameworks/http';\n\nexport type { ErrorLike, HeaderRecord, HttpRequestLog, RequestLike, ResolveLike } from '../../types/frameworks/http';\n\nexport function getHeaderValue(\n headers: RequestLike['headers'],\n name: string\n): string | undefined {\n if (!headers) {\n return undefined;\n }\n\n if (headers instanceof Headers) {\n return headers.get(name) ?? headers.get(name.toLowerCase()) ?? undefined;\n }\n\n if (typeof (headers as { get?: unknown }).get === 'function') {\n const direct = (headers as { get(name: string): string | null }).get(name);\n return direct ?? (headers as { get(name: string): string | null }).get(name.toLowerCase()) ?? undefined;\n }\n\n const record = headers as HeaderRecord;\n const direct = record[name] ?? record[name.toLowerCase()];\n if (Array.isArray(direct)) {\n return direct[0];\n }\n\n return direct;\n}\n\nfunction parseForwardedHeader(value: string | undefined): string[] {\n if (!value) {\n return [];\n }\n\n return value\n .split(',')\n .map((entry) => entry.trim())\n .filter(Boolean)\n .map((entry) => {\n const match = entry.match(/for=\"?(\\[[^\\]]+\\]|[^;,\\s\"]+)/i);\n return match?.[1]?.replace(/^\"|\"$/g, '') ?? '';\n })\n .map((entry) => entry.replace(/^\\[|\\]$/g, ''))\n .filter(Boolean);\n}\n\nfunction parseForwardedFor(value: string | undefined): string[] {\n if (!value) {\n return [];\n }\n\n return value\n .split(',')\n .map((entry) => entry.trim())\n .filter(Boolean);\n}\n\nfunction stripPort(host: string): string {\n if (host.startsWith('[')) {\n const endIndex = host.indexOf(']');\n return endIndex >= 0 ? host.slice(1, endIndex) : host;\n }\n\n return host.replace(/:\\d+$/, '');\n}\n\nfunction detectBrowser(userAgent: string): string {\n if (/edg\\//i.test(userAgent)) return 'Edge';\n if (/opr\\//i.test(userAgent) || /opera/i.test(userAgent)) return 'Opera';\n if (/chrome\\//i.test(userAgent) && !/edg\\//i.test(userAgent)) return 'Chrome';\n if (/firefox\\//i.test(userAgent)) return 'Firefox';\n if (/safari\\//i.test(userAgent) && !/chrome\\//i.test(userAgent)) return 'Safari';\n if (/curl\\//i.test(userAgent)) return 'curl';\n if (/postmanruntime/i.test(userAgent)) return 'Postman';\n return 'Unknown';\n}\n\nfunction detectOperatingSystem(userAgent: string): string {\n if (/windows/i.test(userAgent)) return 'Windows';\n if (/android/i.test(userAgent)) return 'Android';\n if (/iphone|ipad|ipod/i.test(userAgent)) return 'iOS';\n if (/mac os x|macintosh/i.test(userAgent)) return 'macOS';\n if (/linux/i.test(userAgent)) return 'Linux';\n return 'Unknown';\n}\n\nfunction detectDeviceType(userAgent: string): 'desktop' | 'mobile' | 'tablet' | 'bot' | 'unknown' {\n if (!userAgent) return 'unknown';\n if (/bot|crawler|spider|curl|wget|postmanruntime/i.test(userAgent)) return 'bot';\n if (/ipad|tablet/i.test(userAgent)) return 'tablet';\n if (/mobi|iphone|android/i.test(userAgent)) return 'mobile';\n return 'desktop';\n}\n\nexport function extractPathname(requestUrl: string, fallbackPath: string = '/'): string {\n if (!requestUrl) {\n return fallbackPath;\n }\n\n if (requestUrl.startsWith('http://') || requestUrl.startsWith('https://')) {\n try {\n return new URL(requestUrl).pathname || fallbackPath;\n } catch {\n return fallbackPath;\n }\n }\n\n if (requestUrl.startsWith('/')) {\n const queryIndex = requestUrl.indexOf('?');\n return queryIndex >= 0 ? requestUrl.slice(0, queryIndex) : requestUrl;\n }\n\n try {\n return new URL(requestUrl, 'http://localhost').pathname || fallbackPath;\n } catch {\n return fallbackPath;\n }\n}\n\nexport function createRequestLike(\n method: string,\n url: string,\n headers?: RequestLike['headers']\n): RequestLike {\n return { method, url, headers };\n}\n\nexport function buildClientDetails(\n request: RequestLike,\n fallbackPath?: string\n): Omit<HttpRequestLog, 'type' | 'method' | 'url' | 'statusCode' | 'responseTime' | 'error' | 'stack'> {\n const pathname = fallbackPath ?? extractPathname(request.url);\n const urlObject = (() => {\n try {\n return new URL(request.url);\n } catch {\n try {\n return new URL(pathname, 'http://localhost');\n } catch {\n return null;\n }\n }\n })();\n\n const hostHeader =\n getHeaderValue(request.headers, 'x-forwarded-host') ??\n getHeaderValue(request.headers, 'host') ??\n urlObject?.host ??\n undefined;\n const hostname = hostHeader ? stripPort(hostHeader) : urlObject?.hostname;\n const port = hostHeader?.match(/:(\\d+)$/)?.[1] ?? (urlObject?.port || undefined);\n const xForwardedFor = parseForwardedFor(getHeaderValue(request.headers, 'x-forwarded-for'));\n const forwardedFor = parseForwardedHeader(getHeaderValue(request.headers, 'forwarded'));\n const ipCandidates = [\n getHeaderValue(request.headers, 'cf-connecting-ip'),\n getHeaderValue(request.headers, 'true-client-ip'),\n getHeaderValue(request.headers, 'fly-client-ip'),\n getHeaderValue(request.headers, 'x-real-ip'),\n getHeaderValue(request.headers, 'x-client-ip'),\n xForwardedFor[0],\n forwardedFor[0],\n ].filter((value): value is string => Boolean(value));\n const userAgent = getHeaderValue(request.headers, 'user-agent');\n const platform =\n getHeaderValue(request.headers, 'sec-ch-ua-platform')?.replace(/^\"|\"$/g, '') ??\n undefined;\n const deviceType = detectDeviceType(userAgent ?? '');\n\n return {\n hostname,\n ip: ipCandidates[0],\n forwardedFor: [...xForwardedFor, ...forwardedFor].filter((value, index, values) => {\n return values.indexOf(value) === index;\n }),\n protocol:\n getHeaderValue(request.headers, 'x-forwarded-proto') ??\n (urlObject?.protocol ? urlObject.protocol.replace(/:$/, '') : undefined),\n port,\n userAgent,\n origin: getHeaderValue(request.headers, 'origin'),\n referer: getHeaderValue(request.headers, 'referer'),\n acceptLanguage: getHeaderValue(request.headers, 'accept-language'),\n client: {\n ip: ipCandidates[0],\n hostname,\n browser: userAgent ? detectBrowser(userAgent) : undefined,\n os: userAgent ? detectOperatingSystem(userAgent) : undefined,\n deviceType,\n platform,\n isMobile: deviceType === 'mobile',\n },\n };\n}\n\nexport function buildRequestLogData(\n request: RequestLike,\n type: 'http_request' | 'http_error',\n path: string,\n statusCode: number,\n responseTime: number,\n extra: Record<string, unknown> = {}\n): HttpRequestLog {\n return {\n type,\n method: request.method,\n url: path,\n statusCode,\n responseTime,\n ...buildClientDetails(request, path),\n ...extra,\n };\n}\n\nexport function buildInfoLogMessage(\n method: string,\n statusCode: number,\n url: string,\n responseTime: number\n): string {\n const methodColor = getMethodColor(method);\n const statusColor = getStatusColor(statusCode);\n const timeColor = getResponseTimeColor(responseTime);\n const arrow = getArrowForMethod(method);\n return `${methodColor} ${arrow} ${statusColor} ${url} ${timeColor}`;\n}\n\nexport function toErrorLike(error: unknown, fallbackStatusCode?: number): ErrorLike | undefined {\n if (error === undefined || error === null) {\n return fallbackStatusCode === undefined\n ? undefined\n : { statusCode: fallbackStatusCode, message: `HTTP ${fallbackStatusCode}` };\n }\n\n if (error instanceof Error) {\n const errorWithStatus = error as ErrorLike;\n return {\n status: errorWithStatus.status,\n statusCode: errorWithStatus.statusCode ?? fallbackStatusCode,\n code: errorWithStatus.code,\n message: error.message,\n stack: error.stack,\n why: errorWithStatus.why,\n fix: errorWithStatus.fix,\n link: errorWithStatus.link,\n details: errorWithStatus.details,\n cause: errorWithStatus.cause,\n };\n }\n\n if (typeof error === 'object') {\n const record = error as Record<string, unknown>;\n return {\n status: typeof record.status === 'number' ? record.status : undefined,\n statusCode:\n typeof record.statusCode === 'number'\n ? record.statusCode\n : fallbackStatusCode,\n code:\n typeof record.code === 'string' || typeof record.code === 'number'\n ? record.code\n : undefined,\n message: typeof record.message === 'string' ? record.message : `HTTP ${fallbackStatusCode ?? 500}`,\n stack: typeof record.stack === 'string' ? record.stack : undefined,\n why: typeof record.why === 'string' ? record.why : undefined,\n fix: typeof record.fix === 'string' ? record.fix : undefined,\n link: typeof record.link === 'string' ? record.link : undefined,\n details:\n record.details !== null && typeof record.details === 'object' && !Array.isArray(record.details)\n ? record.details as Record<string, unknown>\n : undefined,\n cause: record.cause,\n };\n }\n\n return {\n statusCode: fallbackStatusCode,\n message: typeof error === 'string' ? error : `HTTP ${fallbackStatusCode ?? 500}`,\n };\n}\n\nexport function isErrorStatus(statusCode: number): boolean {\n return statusCode >= 400;\n}\n","import type {\n CreateStructuredLogOptions,\n StructuredLog,\n StructuredLogError,\n StructuredLogEvent,\n StructuredLogEmitOptions,\n StructuredLogLevel,\n StructuredLogPayload,\n} from '../types/core/structured-log';\n\nexport type {\n CreateStructuredLogOptions,\n StructuredLog,\n StructuredLogError,\n StructuredLogEvent,\n StructuredLogEmitOptions,\n StructuredLogLevel,\n StructuredLogPayload,\n} from '../types/core/structured-log';\n\nfunction serializeMessage(message: unknown): string {\n if (typeof message === 'string') {\n return message;\n }\n\n if (message !== null && typeof message === 'object') {\n try {\n return JSON.stringify(\n message,\n (_key, value) => {\n if (typeof value === 'function') {\n return `[Function: ${value.name || 'anonymous'}]`;\n }\n\n if (value === undefined) {\n return '[undefined]';\n }\n\n if (typeof value === 'symbol') {\n return value.toString();\n }\n\n return value;\n },\n 2\n );\n } catch {\n return '[Object]';\n }\n }\n\n return String(message);\n}\n\nfunction normalizeEventData(message: unknown, args: unknown[]): unknown {\n if (typeof message === 'string') {\n if (args.length === 0) {\n return undefined;\n }\n\n return args.length === 1 ? args[0] : args;\n }\n\n const values = [message, ...args];\n return values.length === 1 ? values[0] : values;\n}\n\nfunction normalizeDetails(value: unknown): Record<string, unknown> | undefined {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return undefined;\n }\n\n return value as Record<string, unknown>;\n}\n\nfunction normalizeError(error: unknown, fallbackStatus?: number): StructuredLogError | undefined {\n if (error === undefined || error === null) {\n return fallbackStatus === undefined || fallbackStatus < 400\n ? undefined\n : {\n message: `HTTP ${fallbackStatus}`,\n code: fallbackStatus,\n type: 'HttpError',\n };\n }\n\n if (error instanceof Error) {\n const errorLike = error as Error & {\n code?: string | number;\n why?: string;\n fix?: string;\n link?: string;\n details?: unknown;\n cause?: unknown;\n type?: string;\n };\n\n return {\n message: error.message,\n code: errorLike.code,\n type: errorLike.type ?? error.name ?? error.constructor?.name,\n stack: error.stack,\n why: errorLike.why,\n fix: errorLike.fix,\n link: errorLike.link,\n details: normalizeDetails(errorLike.details),\n cause: errorLike.cause,\n };\n }\n\n if (typeof error === 'object') {\n const record = error as Record<string, unknown>;\n const statusCode =\n typeof record.statusCode === 'number'\n ? record.statusCode\n : typeof record.status === 'number'\n ? record.status\n : fallbackStatus;\n\n return {\n message:\n typeof record.message === 'string'\n ? record.message\n : `HTTP ${statusCode ?? 500}`,\n code:\n typeof record.code === 'string' || typeof record.code === 'number'\n ? record.code\n : statusCode,\n type:\n typeof record.type === 'string'\n ? record.type\n : typeof record.name === 'string'\n ? record.name\n : 'Error',\n stack: typeof record.stack === 'string' ? record.stack : undefined,\n why: typeof record.why === 'string' ? record.why : undefined,\n fix: typeof record.fix === 'string' ? record.fix : undefined,\n link: typeof record.link === 'string' ? record.link : undefined,\n details: normalizeDetails(record.details),\n cause: record.cause,\n };\n }\n\n return {\n message: String(error),\n code: fallbackStatus,\n type: typeof error,\n };\n}\n\nfunction resolveEmitStatus(options: StructuredLogEmitOptions): number | undefined {\n if (options.response && typeof options.response.status === 'number') {\n return options.response.status;\n }\n\n if (typeof options.status === 'number') {\n return options.status;\n }\n\n if (\n options.error &&\n typeof options.error === 'object' &&\n options.error !== null &&\n typeof (options.error as { statusCode?: unknown }).statusCode === 'number'\n ) {\n return (options.error as { statusCode: number }).statusCode;\n }\n\n if (\n options.error &&\n typeof options.error === 'object' &&\n options.error !== null &&\n typeof (options.error as { status?: unknown }).status === 'number'\n ) {\n return (options.error as { status: number }).status;\n }\n\n return options.error ? 500 : undefined;\n}\n\nexport function createStructuredLog(\n groupId: string,\n options: CreateStructuredLogOptions\n): StructuredLog<Record<string, unknown>> {\n const startedAt = performance.now();\n const fields = { ...(options.initialFields ?? {}) };\n const events: StructuredLogEvent[] = [];\n let emittedPayload: StructuredLogPayload<Record<string, unknown>> | undefined;\n\n options.onCreate?.();\n\n const appendEvent = (\n level: StructuredLogLevel,\n message: unknown,\n args: unknown[]\n ): StructuredLog<Record<string, unknown>> => {\n events.push({\n level,\n message: serializeMessage(message),\n timestamp: new Date().toISOString(),\n ...(normalizeEventData(message, args) === undefined\n ? {}\n : { data: normalizeEventData(message, args) }),\n });\n\n return structuredLog;\n };\n\n const structuredLog: StructuredLog<Record<string, unknown>> = {\n set<TNextFields extends Record<string, unknown>>(extraFields: TNextFields) {\n Object.assign(fields, extraFields);\n return structuredLog as StructuredLog<Record<string, unknown> & TNextFields>;\n },\n\n debug(message, ...args) {\n return appendEvent('debug', message, args);\n },\n\n info(message, ...args) {\n return appendEvent('info', message, args);\n },\n\n warn(message, ...args) {\n return appendEvent('warn', message, args);\n },\n\n warning(message, ...args) {\n return appendEvent('warning', message, args);\n },\n\n error(message, ...args) {\n return appendEvent('error', message, args);\n },\n\n success(message, ...args) {\n return appendEvent('success', message, args);\n },\n\n critical(message, ...args) {\n return appendEvent('critical', message, args);\n },\n\n table(message, data) {\n return appendEvent('table', message, data === undefined ? [] : [data]);\n },\n\n emit(emitOptions = {}) {\n if (emittedPayload) {\n return emittedPayload;\n }\n\n const defaultFields = options.resolveDefaultFields?.() ?? {};\n const status = resolveEmitStatus(emitOptions);\n const error = normalizeError(emitOptions.error, status);\n const level = emitOptions.level ?? (error ? 'error' : 'info');\n const payload: StructuredLogPayload<Record<string, unknown>> = {\n ...defaultFields,\n ...fields,\n groupId,\n timestamp: new Date().toISOString(),\n level,\n duration: Math.round(performance.now() - startedAt),\n ...(typeof status === 'number' ? { status } : {}),\n ...(events.length > 0 ? { events: [...events] } : {}),\n ...(error ? { error } : {}),\n };\n\n options.write(payload, emitOptions.message ?? 'structured_log');\n emittedPayload = payload;\n options.onEmit?.(payload);\n return payload;\n },\n };\n\n return structuredLog;\n}\n","import {\n buildClientDetails,\n buildInfoLogMessage,\n buildRequestLogData,\n createRequestLike,\n extractPathname,\n isErrorStatus,\n toErrorLike,\n type HttpRequestLog,\n type RequestLike,\n} from '../shared/http';\nimport { createStructuredLog } from '../../core/structured-log';\nimport type {\n WorkersConsoleMethod,\n WorkersEmitOptions,\n WorkersLoggerConfig,\n WorkersLogLevel,\n WorkersRequestLogger,\n WorkersLoggerState,\n} from '../../types/frameworks/workers';\n\nlet workersLoggerState: WorkersLoggerState = {};\n\nfunction serializeMessage(message: unknown): string {\n if (typeof message === 'string') {\n return message;\n }\n\n if (message !== null && typeof message === 'object') {\n try {\n return JSON.stringify(message, (_key, value) => {\n if (typeof value === 'function') {\n return `[Function: ${value.name || 'anonymous'}]`;\n }\n\n if (value === undefined) {\n return '[undefined]';\n }\n\n if (typeof value === 'symbol') {\n return value.toString();\n }\n\n return value;\n }, 2);\n } catch {\n return '[Object]';\n }\n }\n\n return String(message);\n}\n\nfunction normalizeStructuredData(message: unknown, args: unknown[]): unknown {\n if (typeof message === 'string') {\n if (args.length === 0) {\n return undefined;\n }\n\n return args.length === 1 ? args[0] : args;\n }\n\n const values = [message, ...args];\n return values.length === 1 ? values[0] : values;\n}\n\nfunction getConsoleMethod(level: WorkersLogLevel): WorkersConsoleMethod {\n switch (level) {\n case 'debug':\n return 'debug';\n case 'warn':\n case 'warning':\n return 'warn';\n case 'error':\n case 'critical':\n return 'error';\n case 'success':\n return 'log';\n case 'info':\n default:\n return 'info';\n }\n}\n\nfunction writeConsole(method: WorkersConsoleMethod, message: string, payload?: unknown): void {\n if (typeof console === 'undefined') {\n return;\n }\n\n const logger = console[method] ?? console.info;\n if (payload === undefined) {\n logger.call(console, message);\n return;\n }\n\n logger.call(console, message, payload);\n}\n\nfunction writeStructuredConsole(\n level: WorkersLogLevel,\n message: string,\n payload: Record<string, unknown>\n): void {\n writeConsole(getConsoleMethod(level), message, payload);\n}\n\nfunction buildRequestMetadata(request: RequestLike, path: string): Record<string, unknown> {\n return {\n method: request.method,\n url: path,\n ...buildClientDetails(request, path),\n };\n}\n\nfunction createScopedPayload(\n request: RequestLike,\n path: string,\n fields: Record<string, unknown>,\n data: unknown\n): Record<string, unknown> {\n return {\n request: buildRequestMetadata(request, path),\n ...fields,\n ...(data === undefined ? {} : { data }),\n };\n}\n\nfunction emitScopedLog(\n level: WorkersLogLevel,\n request: RequestLike,\n path: string,\n fields: Record<string, unknown>,\n message: unknown,\n args: unknown[]\n): void {\n writeConsole(\n getConsoleMethod(level),\n serializeMessage(message),\n createScopedPayload(request, path, fields, normalizeStructuredData(message, args))\n );\n}\n\nfunction resolveEmitStatus(options: WorkersEmitOptions): number {\n return options.response?.status ?? options.status ?? (options.error ? 500 : 200);\n}\n\nfunction createEmitPayload(\n request: RequestLike,\n path: string,\n fields: Record<string, unknown>,\n startTime: number,\n options: WorkersEmitOptions\n): HttpRequestLog {\n const statusCode = resolveEmitStatus(options);\n const errorLike = toErrorLike(options.error, statusCode);\n\n return buildRequestLogData(\n request,\n options.error || isErrorStatus(statusCode) ? 'http_error' : 'http_request',\n path,\n statusCode,\n Math.round(performance.now() - startTime),\n {\n ...fields,\n ...(errorLike\n ? {\n error: errorLike.message,\n stack: errorLike.stack,\n code: errorLike.code,\n why: errorLike.why,\n fix: errorLike.fix,\n link: errorLike.link,\n details: errorLike.details,\n }\n : {}),\n }\n );\n}\n\nfunction createScopedFields(request: Request): Record<string, unknown> {\n return {\n ...(workersLoggerState.env ?? {}),\n ...(workersLoggerState.customProps?.(request) ?? {}),\n };\n}\n\nexport function initWorkersLogger(config: WorkersLoggerConfig = {}): void {\n workersLoggerState = {\n env: config.env ? { ...config.env } : undefined,\n customProps: config.customProps,\n };\n}\n\nexport function createWorkersLogger(request: Request): WorkersRequestLogger {\n const startTime = performance.now();\n const requestLike = createRequestLike(request.method, request.url, request.headers);\n const path = extractPathname(request.url);\n const fields = createScopedFields(request);\n let emittedRecord: HttpRequestLog | undefined;\n\n const logger: WorkersRequestLogger = {\n set(extraFields) {\n Object.assign(fields, extraFields);\n return logger;\n },\n\n emit(options: WorkersEmitOptions = {}) {\n if (emittedRecord) {\n return emittedRecord;\n }\n\n emittedRecord = createEmitPayload(requestLike, path, fields, startTime, options);\n writeConsole(\n emittedRecord.type === 'http_error' ? 'error' : 'info',\n buildInfoLogMessage(\n requestLike.method,\n emittedRecord.statusCode,\n path,\n emittedRecord.responseTime\n ),\n emittedRecord\n );\n\n return emittedRecord;\n },\n\n debug(message, ...args) {\n emitScopedLog('debug', requestLike, path, fields, message, args);\n },\n\n info(message, ...args) {\n emitScopedLog('info', requestLike, path, fields, message, args);\n },\n\n warn(message, ...args) {\n emitScopedLog('warn', requestLike, path, fields, message, args);\n },\n\n warning(message, ...args) {\n emitScopedLog('warning', requestLike, path, fields, message, args);\n },\n\n error(message, ...args) {\n emitScopedLog('error', requestLike, path, fields, message, args);\n },\n\n success(message, ...args) {\n emitScopedLog('success', requestLike, path, fields, message, args);\n },\n\n critical(message, ...args) {\n emitScopedLog('critical', requestLike, path, fields, message, args);\n },\n\n table(message, data) {\n writeConsole('log', message, createScopedPayload(requestLike, path, fields, data));\n\n if (typeof console !== 'undefined' && typeof console.table === 'function' && data !== undefined) {\n console.table(data);\n }\n },\n\n createStructuredLog(groupId, initial) {\n return createStructuredLog(groupId, {\n initialFields: initial,\n resolveDefaultFields: () => ({\n method: requestLike.method,\n path,\n ...fields,\n }),\n write: (payload, message) => {\n const writeLevel = payload.level === 'warning' ? 'warning' : payload.level;\n writeStructuredConsole(\n writeLevel === 'table'\n ? 'info'\n : (writeLevel as Exclude<WorkersLogLevel, 'warn'>),\n message,\n payload\n );\n },\n });\n },\n };\n\n return logger;\n}\n"]}
|
package/exports/client.js
DELETED
package/exports/client.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('../../dist/connectors/betterstack.js');
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '../../dist/connectors/betterstack.mjs';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('../../dist/connectors/otlp.js');
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '../../dist/connectors/otlp.mjs';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('../../dist/connectors/posthog.js');
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '../../dist/connectors/posthog.mjs';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('../../dist/connectors/sentry.js');
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '../../dist/connectors/sentry.mjs';
|
package/exports/database.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('../dist/database.js');
|
package/exports/database.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '../dist/database.mjs';
|
package/exports/expo.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('../dist/expo.js');
|
package/exports/expo.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '../dist/expo.mjs';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('../../dist/elysia.js');
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '../../dist/elysia.mjs';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('../../dist/express.js');
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '../../dist/express.mjs';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('../../dist/fastify.js');
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '../../dist/fastify.mjs';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('../../dist/hono.js');
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '../../dist/hono.mjs';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('../../dist/nestjs.js');
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '../../dist/nestjs.mjs';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('../../dist/nextjs.js');
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '../../dist/nextjs.mjs';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('../../dist/standalone.js');
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '../../dist/standalone.mjs';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('../../dist/sveltekit.js');
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '../../dist/sveltekit.mjs';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('../../dist/tanstack-start.js');
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '../../dist/tanstack-start.mjs';
|
package/exports/workers.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('../dist/workers.js');
|
package/exports/workers.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '../dist/workers.mjs';
|
package/types/client.d.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/// <reference lib="dom" />
|
|
2
|
-
|
|
3
|
-
export {
|
|
4
|
-
BlypError,
|
|
5
|
-
HTTP_CODES,
|
|
6
|
-
getHttpCode,
|
|
7
|
-
parseError,
|
|
8
|
-
} from '../dist/index';
|
|
9
|
-
export type {
|
|
10
|
-
BlypErrorCode,
|
|
11
|
-
BlypErrorCodeDefinition,
|
|
12
|
-
BlypErrorLike,
|
|
13
|
-
ErrorLogLevel,
|
|
14
|
-
ErrorLoggerLike,
|
|
15
|
-
ParseErrorOptions,
|
|
16
|
-
ParseableErrorPayload,
|
|
17
|
-
} from '../dist/index';
|
|
18
|
-
export { createClientLogger, logger } from './frameworks/client';
|
|
19
|
-
export type {
|
|
20
|
-
ClientLogger,
|
|
21
|
-
ClientLoggerConfig,
|
|
22
|
-
ClientLogBrowserContext,
|
|
23
|
-
ClientConnectorRequest,
|
|
24
|
-
ClientLogDeviceContext,
|
|
25
|
-
ClientLogEvent,
|
|
26
|
-
ClientLogLevel,
|
|
27
|
-
ClientLogPageContext,
|
|
28
|
-
RemoteDeliveryConfig,
|
|
29
|
-
RemoteDeliveryDropContext,
|
|
30
|
-
RemoteDeliveryFailureContext,
|
|
31
|
-
RemoteDeliveryFailureReason,
|
|
32
|
-
RemoteDeliveryRetryContext,
|
|
33
|
-
RemoteDeliverySuccessContext,
|
|
34
|
-
} from './frameworks/client';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '../../dist/connectors/betterstack';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '../../dist/connectors/otlp';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '../../dist/connectors/posthog';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '../../dist/connectors/sentry';
|
package/types/database.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '../dist/database';
|
package/types/expo.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export { createExpoLogger } from './frameworks/expo';
|
|
2
|
-
export type {
|
|
3
|
-
ClientLogBrowserContext,
|
|
4
|
-
ClientConnectorRequest,
|
|
5
|
-
ClientLogDeviceContext,
|
|
6
|
-
ClientLogEvent,
|
|
7
|
-
ClientLogLevel,
|
|
8
|
-
ClientLogPageContext,
|
|
9
|
-
ExpoLogger,
|
|
10
|
-
ExpoLoggerConfig,
|
|
11
|
-
RemoteDeliveryConfig,
|
|
12
|
-
RemoteDeliveryDropContext,
|
|
13
|
-
RemoteDeliveryFailureContext,
|
|
14
|
-
RemoteDeliveryFailureReason,
|
|
15
|
-
RemoteDeliveryRetryContext,
|
|
16
|
-
RemoteDeliverySuccessContext,
|
|
17
|
-
} from './frameworks/expo';
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
/// <reference lib="dom" />
|
|
2
|
-
|
|
3
|
-
import type {
|
|
4
|
-
BlypErrorCode,
|
|
5
|
-
BlypErrorCodeDefinition,
|
|
6
|
-
BlypErrorLike,
|
|
7
|
-
ErrorLogLevel,
|
|
8
|
-
ErrorLoggerLike,
|
|
9
|
-
ParseErrorOptions,
|
|
10
|
-
ParseableErrorPayload,
|
|
11
|
-
} from '../../dist/index';
|
|
12
|
-
|
|
13
|
-
export interface ClientLogPageContext {
|
|
14
|
-
hash?: string;
|
|
15
|
-
pathname?: string;
|
|
16
|
-
search?: string;
|
|
17
|
-
url?: string;
|
|
18
|
-
title?: string;
|
|
19
|
-
referrer?: string;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export interface ClientLogBrowserContext {
|
|
23
|
-
userAgent?: string;
|
|
24
|
-
language?: string;
|
|
25
|
-
platform?: string;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export interface ClientLogDeviceContext {
|
|
29
|
-
runtime?: 'expo' | 'browser';
|
|
30
|
-
network?: {
|
|
31
|
-
type?: string;
|
|
32
|
-
isConnected?: boolean;
|
|
33
|
-
isInternetReachable?: boolean;
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export type ClientLogLevel =
|
|
38
|
-
| 'debug'
|
|
39
|
-
| 'info'
|
|
40
|
-
| 'warning'
|
|
41
|
-
| 'error'
|
|
42
|
-
| 'critical'
|
|
43
|
-
| 'success'
|
|
44
|
-
| 'table';
|
|
45
|
-
|
|
46
|
-
export interface ClientLogEvent {
|
|
47
|
-
type: 'client_log';
|
|
48
|
-
source: 'client';
|
|
49
|
-
id: string;
|
|
50
|
-
level: ClientLogLevel;
|
|
51
|
-
message: string;
|
|
52
|
-
data?: unknown;
|
|
53
|
-
bindings?: Record<string, unknown>;
|
|
54
|
-
clientTimestamp: string;
|
|
55
|
-
page?: ClientLogPageContext;
|
|
56
|
-
browser?: ClientLogBrowserContext;
|
|
57
|
-
device?: ClientLogDeviceContext;
|
|
58
|
-
session?: {
|
|
59
|
-
pageId?: string;
|
|
60
|
-
sessionId?: string;
|
|
61
|
-
};
|
|
62
|
-
metadata?: Record<string, unknown>;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
export type RemoteDeliveryRuntime = 'browser' | 'expo';
|
|
66
|
-
|
|
67
|
-
export type RemoteDeliveryTransport = 'fetch' | 'beacon';
|
|
68
|
-
|
|
69
|
-
export type RemoteDeliveryFailureReason =
|
|
70
|
-
| 'offline'
|
|
71
|
-
| 'network_error'
|
|
72
|
-
| 'response_status'
|
|
73
|
-
| 'invalid_endpoint'
|
|
74
|
-
| 'missing_transport'
|
|
75
|
-
| 'queue_overflow';
|
|
76
|
-
|
|
77
|
-
export interface RemoteDeliverySuccessContext {
|
|
78
|
-
runtime: RemoteDeliveryRuntime;
|
|
79
|
-
event: ClientLogEvent;
|
|
80
|
-
attempt: number;
|
|
81
|
-
status?: number;
|
|
82
|
-
transport: RemoteDeliveryTransport;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
export interface RemoteDeliveryRetryContext {
|
|
86
|
-
runtime: RemoteDeliveryRuntime;
|
|
87
|
-
event: ClientLogEvent;
|
|
88
|
-
attempt: number;
|
|
89
|
-
retriesRemaining: number;
|
|
90
|
-
nextRetryAt: string;
|
|
91
|
-
reason: 'offline' | 'network_error' | 'response_status';
|
|
92
|
-
status?: number;
|
|
93
|
-
error?: string;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
export interface RemoteDeliveryFailureContext {
|
|
97
|
-
runtime: RemoteDeliveryRuntime;
|
|
98
|
-
event: ClientLogEvent;
|
|
99
|
-
attempt: number;
|
|
100
|
-
reason: RemoteDeliveryFailureReason;
|
|
101
|
-
status?: number;
|
|
102
|
-
error?: string;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
export interface RemoteDeliveryDropContext {
|
|
106
|
-
runtime: RemoteDeliveryRuntime;
|
|
107
|
-
droppedEvent: ClientLogEvent;
|
|
108
|
-
replacementEvent: ClientLogEvent;
|
|
109
|
-
maxQueueSize: number;
|
|
110
|
-
reason: 'queue_overflow';
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
export interface RemoteDeliveryConfig {
|
|
114
|
-
maxRetries?: number;
|
|
115
|
-
retryDelayMs?: number;
|
|
116
|
-
maxQueueSize?: number;
|
|
117
|
-
warnOnFailure?: boolean;
|
|
118
|
-
onSuccess?: (ctx: RemoteDeliverySuccessContext) => void;
|
|
119
|
-
onRetry?: (ctx: RemoteDeliveryRetryContext) => void;
|
|
120
|
-
onFailure?: (ctx: RemoteDeliveryFailureContext) => void;
|
|
121
|
-
onDrop?: (ctx: RemoteDeliveryDropContext) => void;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
export interface ClientLoggerConfig {
|
|
125
|
-
endpoint?: string;
|
|
126
|
-
headers?: Record<string, string>;
|
|
127
|
-
credentials?: RequestCredentials;
|
|
128
|
-
localConsole?: boolean;
|
|
129
|
-
remoteSync?: boolean;
|
|
130
|
-
metadata?: Record<string, unknown> | (() => Record<string, unknown>);
|
|
131
|
-
delivery?: RemoteDeliveryConfig;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
export interface ClientLogger {
|
|
135
|
-
success: (message: unknown, ...args: unknown[]) => void;
|
|
136
|
-
critical: (message: unknown, ...args: unknown[]) => void;
|
|
137
|
-
warning: (message: unknown, ...args: unknown[]) => void;
|
|
138
|
-
info: (message: unknown, ...args: unknown[]) => void;
|
|
139
|
-
debug: (message: unknown, ...args: unknown[]) => void;
|
|
140
|
-
error: (message: unknown, ...args: unknown[]) => void;
|
|
141
|
-
warn: (message: unknown, ...args: unknown[]) => void;
|
|
142
|
-
table: (message: string, data?: unknown) => void;
|
|
143
|
-
child: (bindings: Record<string, unknown>) => ClientLogger;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
export declare function createClientLogger(config?: ClientLoggerConfig): ClientLogger;
|
|
147
|
-
export declare const logger: ClientLogger;
|
|
148
|
-
export type {
|
|
149
|
-
ClientLogDeviceContext,
|
|
150
|
-
};
|
|
151
|
-
|
|
152
|
-
export type {
|
|
153
|
-
BlypErrorCode,
|
|
154
|
-
BlypErrorCodeDefinition,
|
|
155
|
-
BlypErrorLike,
|
|
156
|
-
ErrorLogLevel,
|
|
157
|
-
ErrorLoggerLike,
|
|
158
|
-
ParseErrorOptions,
|
|
159
|
-
ParseableErrorPayload,
|
|
160
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '../../dist/frameworks/elysia';
|