@blyp/core 0.1.21 → 0.1.23

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 (248) hide show
  1. package/README.md +54 -522
  2. package/STABILITY.md +56 -0
  3. package/dist/ai/anthropic/index.d.ts +3 -0
  4. package/dist/ai/anthropic/normalize.d.ts +9 -0
  5. package/dist/ai/anthropic/stream.d.ts +3 -0
  6. package/dist/ai/anthropic/wrap.d.ts +13 -0
  7. package/dist/ai/anthropic.js +701 -0
  8. package/dist/ai/anthropic.mjs +701 -0
  9. package/dist/ai/better-agent/index.d.ts +3 -0
  10. package/dist/ai/better-agent/normalize.d.ts +18 -0
  11. package/dist/ai/better-agent/plugin.d.ts +3 -0
  12. package/dist/ai/better-agent/tracker.d.ts +35 -0
  13. package/dist/ai/better-agent.js +701 -0
  14. package/dist/ai/better-agent.mjs +701 -0
  15. package/dist/ai/fetch.js +701 -0
  16. package/dist/ai/fetch.mjs +701 -0
  17. package/dist/ai/openai/index.d.ts +3 -0
  18. package/dist/ai/openai/normalize.d.ts +10 -0
  19. package/dist/ai/openai/stream.d.ts +3 -0
  20. package/dist/ai/openai/wrap.d.ts +24 -0
  21. package/dist/ai/openai.js +701 -0
  22. package/dist/ai/openai.mjs +701 -0
  23. package/dist/ai/shared/fetch.d.ts +5 -0
  24. package/dist/ai/shared/index.d.ts +2 -0
  25. package/dist/ai/shared/normalize.d.ts +17 -0
  26. package/dist/ai/shared/redaction.d.ts +6 -0
  27. package/dist/ai/shared/stream.d.ts +7 -0
  28. package/dist/ai/shared/trace.d.ts +119 -0
  29. package/dist/ai/shared/types.d.ts +171 -0
  30. package/dist/ai/shared.js +701 -0
  31. package/dist/ai/shared.mjs +701 -0
  32. package/dist/ai/vercel/index.d.ts +3 -0
  33. package/dist/ai/vercel/middleware.d.ts +3 -0
  34. package/dist/ai/vercel/model.d.ts +3 -0
  35. package/dist/ai/vercel.js +701 -0
  36. package/dist/ai/vercel.mjs +701 -0
  37. package/dist/astro.js +618 -4519
  38. package/dist/astro.mjs +618 -4491
  39. package/dist/client.js +1 -1139
  40. package/dist/client.mjs +1 -1132
  41. package/dist/connectors/betterstack.js +9 -1532
  42. package/dist/connectors/betterstack.mjs +9 -1507
  43. package/dist/connectors/databuddy.js +9 -1456
  44. package/dist/connectors/databuddy.mjs +9 -1451
  45. package/dist/connectors/delivery/backoff.d.ts +2 -0
  46. package/dist/connectors/delivery/manager.d.ts +44 -0
  47. package/dist/connectors/delivery/queue-path.d.ts +1 -0
  48. package/dist/connectors/delivery/sqlite-adapter-bun.d.ts +1 -0
  49. package/dist/connectors/delivery/sqlite-adapter-node.d.ts +1 -0
  50. package/dist/connectors/delivery/sqlite-client.d.ts +37 -0
  51. package/dist/connectors/delivery/sqlite-worker.d.ts +1 -0
  52. package/dist/connectors/delivery/studio-queue.d.ts +12 -0
  53. package/dist/connectors/delivery/types.d.ts +98 -0
  54. package/dist/connectors/otlp/index.d.ts +1 -0
  55. package/dist/connectors/otlp.js +9 -1371
  56. package/dist/connectors/otlp.mjs +9 -1368
  57. package/dist/connectors/posthog/properties.d.ts +4 -0
  58. package/dist/connectors/posthog/sender.d.ts +0 -1
  59. package/dist/connectors/posthog.js +10 -1527
  60. package/dist/connectors/posthog.mjs +10 -1522
  61. package/dist/connectors/sentry.js +9 -1380
  62. package/dist/connectors/sentry.mjs +9 -1357
  63. package/dist/core/config.d.ts +7 -2
  64. package/dist/core/log-record.d.ts +5 -4
  65. package/dist/core/logger.d.ts +2 -0
  66. package/dist/core/optional-module.d.ts +1 -0
  67. package/dist/core/pino-pretty-loader.d.ts +4 -0
  68. package/dist/database.js +1 -24
  69. package/dist/database.mjs +1 -21
  70. package/dist/elysia.js +613 -4517
  71. package/dist/elysia.mjs +615 -4491
  72. package/dist/expo.js +1 -726
  73. package/dist/expo.mjs +1 -724
  74. package/dist/express.js +613 -4507
  75. package/dist/express.mjs +615 -4480
  76. package/dist/fastify.js +615 -4526
  77. package/dist/fastify.mjs +617 -4499
  78. package/dist/frameworks/elysia/index.d.ts +1 -1
  79. package/dist/frameworks/elysia/logger.d.ts +2 -35
  80. package/dist/frameworks/nestjs/helpers.d.ts +2 -0
  81. package/dist/frameworks/shared/http.d.ts +3 -2
  82. package/dist/frameworks/shared/index.d.ts +2 -1
  83. package/dist/frameworks/shared/logger.d.ts +2 -0
  84. package/dist/frameworks/shared/request-context.d.ts +2 -0
  85. package/dist/frameworks/shared/trace.d.ts +6 -0
  86. package/dist/hono.js +616 -4496
  87. package/dist/hono.mjs +618 -4470
  88. package/dist/index.d.ts +49 -19
  89. package/dist/index.js +615 -7557
  90. package/dist/index.mjs +618 -7465
  91. package/dist/nestjs.js +626 -4999
  92. package/dist/nestjs.mjs +621 -4966
  93. package/dist/nextjs.js +618 -4525
  94. package/dist/nextjs.mjs +620 -4499
  95. package/dist/nitro.js +617 -4642
  96. package/dist/nitro.mjs +619 -4616
  97. package/dist/nuxt.js +617 -4649
  98. package/dist/nuxt.mjs +619 -4623
  99. package/dist/react-router.js +616 -4559
  100. package/dist/react-router.mjs +618 -4533
  101. package/dist/shared/redaction.d.ts +17 -0
  102. package/dist/standalone.js +606 -3628
  103. package/dist/standalone.mjs +610 -3603
  104. package/dist/sveltekit.js +617 -4523
  105. package/dist/sveltekit.mjs +619 -4497
  106. package/dist/tanstack-start.js +616 -4522
  107. package/dist/tanstack-start.mjs +618 -4496
  108. package/dist/types/core/config.d.ts +57 -0
  109. package/dist/types/core/logger.d.ts +3 -0
  110. package/dist/types/core/structured-log.d.ts +2 -0
  111. package/dist/types/database.d.ts +1 -0
  112. package/dist/types/frameworks/astro.d.ts +1 -0
  113. package/dist/types/frameworks/client.d.ts +2 -0
  114. package/dist/types/frameworks/elysia.d.ts +2 -0
  115. package/dist/types/frameworks/express.d.ts +1 -0
  116. package/dist/types/frameworks/fastify.d.ts +1 -0
  117. package/dist/types/frameworks/hono.d.ts +1 -0
  118. package/dist/types/frameworks/http.d.ts +1 -0
  119. package/dist/types/frameworks/nestjs.d.ts +2 -0
  120. package/dist/types/frameworks/nextjs.d.ts +1 -0
  121. package/dist/types/frameworks/nitro.d.ts +1 -0
  122. package/dist/types/frameworks/react-router.d.ts +2 -0
  123. package/dist/types/frameworks/request-context.d.ts +1 -0
  124. package/dist/types/frameworks/shared.d.ts +4 -1
  125. package/dist/types/frameworks/standalone.d.ts +3 -2
  126. package/dist/types/frameworks/sveltekit.d.ts +1 -0
  127. package/dist/types/frameworks/tanstack-start.d.ts +9 -3
  128. package/dist/types/frameworks/workers.d.ts +3 -0
  129. package/dist/types/shared/client-log.d.ts +1 -0
  130. package/dist/workers.js +2 -626
  131. package/dist/workers.mjs +2 -623
  132. package/package.json +259 -173
  133. package/dist/astro.js.map +0 -1
  134. package/dist/astro.mjs.map +0 -1
  135. package/dist/client.js.map +0 -1
  136. package/dist/client.mjs.map +0 -1
  137. package/dist/connectors/betterstack.js.map +0 -1
  138. package/dist/connectors/betterstack.mjs.map +0 -1
  139. package/dist/connectors/databuddy.js.map +0 -1
  140. package/dist/connectors/databuddy.mjs.map +0 -1
  141. package/dist/connectors/otlp.js.map +0 -1
  142. package/dist/connectors/otlp.mjs.map +0 -1
  143. package/dist/connectors/posthog.js.map +0 -1
  144. package/dist/connectors/posthog.mjs.map +0 -1
  145. package/dist/connectors/sentry.js.map +0 -1
  146. package/dist/connectors/sentry.mjs.map +0 -1
  147. package/dist/database.js.map +0 -1
  148. package/dist/database.mjs.map +0 -1
  149. package/dist/elysia.js.map +0 -1
  150. package/dist/elysia.mjs.map +0 -1
  151. package/dist/expo.js.map +0 -1
  152. package/dist/expo.mjs.map +0 -1
  153. package/dist/express.js.map +0 -1
  154. package/dist/express.mjs.map +0 -1
  155. package/dist/fastify.js.map +0 -1
  156. package/dist/fastify.mjs.map +0 -1
  157. package/dist/hono.js.map +0 -1
  158. package/dist/hono.mjs.map +0 -1
  159. package/dist/index.js.map +0 -1
  160. package/dist/index.mjs.map +0 -1
  161. package/dist/nestjs.js.map +0 -1
  162. package/dist/nestjs.mjs.map +0 -1
  163. package/dist/nextjs.js.map +0 -1
  164. package/dist/nextjs.mjs.map +0 -1
  165. package/dist/nitro.js.map +0 -1
  166. package/dist/nitro.mjs.map +0 -1
  167. package/dist/nuxt.js.map +0 -1
  168. package/dist/nuxt.mjs.map +0 -1
  169. package/dist/react-router.js.map +0 -1
  170. package/dist/react-router.mjs.map +0 -1
  171. package/dist/standalone.js.map +0 -1
  172. package/dist/standalone.mjs.map +0 -1
  173. package/dist/sveltekit.js.map +0 -1
  174. package/dist/sveltekit.mjs.map +0 -1
  175. package/dist/tanstack-start.js.map +0 -1
  176. package/dist/tanstack-start.mjs.map +0 -1
  177. package/dist/workers.js.map +0 -1
  178. package/dist/workers.mjs.map +0 -1
  179. package/exports/client.js +0 -3
  180. package/exports/client.mjs +0 -3
  181. package/exports/connectors/betterstack.js +0 -1
  182. package/exports/connectors/betterstack.mjs +0 -1
  183. package/exports/connectors/databuddy.js +0 -1
  184. package/exports/connectors/databuddy.mjs +0 -1
  185. package/exports/connectors/otlp.js +0 -1
  186. package/exports/connectors/otlp.mjs +0 -1
  187. package/exports/connectors/posthog.js +0 -1
  188. package/exports/connectors/posthog.mjs +0 -1
  189. package/exports/connectors/sentry.js +0 -1
  190. package/exports/connectors/sentry.mjs +0 -1
  191. package/exports/database.js +0 -1
  192. package/exports/database.mjs +0 -1
  193. package/exports/expo.js +0 -1
  194. package/exports/expo.mjs +0 -1
  195. package/exports/frameworks/astro.js +0 -1
  196. package/exports/frameworks/astro.mjs +0 -1
  197. package/exports/frameworks/elysia.js +0 -1
  198. package/exports/frameworks/elysia.mjs +0 -1
  199. package/exports/frameworks/express.js +0 -1
  200. package/exports/frameworks/express.mjs +0 -1
  201. package/exports/frameworks/fastify.js +0 -1
  202. package/exports/frameworks/fastify.mjs +0 -1
  203. package/exports/frameworks/hono.js +0 -1
  204. package/exports/frameworks/hono.mjs +0 -1
  205. package/exports/frameworks/nestjs.js +0 -1
  206. package/exports/frameworks/nestjs.mjs +0 -1
  207. package/exports/frameworks/nextjs.js +0 -1
  208. package/exports/frameworks/nextjs.mjs +0 -1
  209. package/exports/frameworks/nitro.js +0 -1
  210. package/exports/frameworks/nitro.mjs +0 -1
  211. package/exports/frameworks/nuxt.js +0 -1
  212. package/exports/frameworks/nuxt.mjs +0 -1
  213. package/exports/frameworks/react-router.js +0 -1
  214. package/exports/frameworks/react-router.mjs +0 -1
  215. package/exports/frameworks/standalone.js +0 -1
  216. package/exports/frameworks/standalone.mjs +0 -1
  217. package/exports/frameworks/sveltekit.js +0 -1
  218. package/exports/frameworks/sveltekit.mjs +0 -1
  219. package/exports/frameworks/tanstack-start.js +0 -1
  220. package/exports/frameworks/tanstack-start.mjs +0 -1
  221. package/exports/workers.js +0 -1
  222. package/exports/workers.mjs +0 -1
  223. package/types/client.d.ts +0 -34
  224. package/types/connectors/betterstack.d.ts +0 -1
  225. package/types/connectors/databuddy.d.ts +0 -1
  226. package/types/connectors/otlp.d.ts +0 -1
  227. package/types/connectors/posthog.d.ts +0 -1
  228. package/types/connectors/sentry.d.ts +0 -1
  229. package/types/database.d.ts +0 -1
  230. package/types/expo.d.ts +0 -17
  231. package/types/frameworks/astro.d.ts +0 -1
  232. package/types/frameworks/client.d.ts +0 -160
  233. package/types/frameworks/elysia.d.ts +0 -1
  234. package/types/frameworks/expo.d.ts +0 -50
  235. package/types/frameworks/express.d.ts +0 -1
  236. package/types/frameworks/fastify.d.ts +0 -1
  237. package/types/frameworks/hono.d.ts +0 -1
  238. package/types/frameworks/nestjs.d.ts +0 -1
  239. package/types/frameworks/nextjs.d.ts +0 -1
  240. package/types/frameworks/nitro.d.ts +0 -1
  241. package/types/frameworks/nuxt.d.ts +0 -1
  242. package/types/frameworks/react-router.d.ts +0 -1
  243. package/types/frameworks/standalone.d.ts +0 -1
  244. package/types/frameworks/sveltekit.d.ts +0 -1
  245. package/types/frameworks/tanstack-start.d.ts +0 -1
  246. package/types/frameworks/workers.d.ts +0 -115
  247. package/types/index.d.ts +0 -1
  248. package/types/workers.d.ts +0 -13
@@ -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"]}
@@ -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
@@ -1,3 +0,0 @@
1
- 'use client';
2
-
3
- module.exports = require('../dist/client.js');
@@ -1,3 +0,0 @@
1
- 'use client';
2
-
3
- export * from '../dist/client.mjs';
@@ -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/databuddy.js');
@@ -1 +0,0 @@
1
- export * from '../../dist/connectors/databuddy.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';
@@ -1 +0,0 @@
1
- module.exports = require('../dist/database.js');
@@ -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/astro.js');
@@ -1 +0,0 @@
1
- export * from '../../dist/astro.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/nitro.js');
@@ -1 +0,0 @@
1
- export * from '../../dist/nitro.mjs';
@@ -1 +0,0 @@
1
- module.exports = require('../../dist/nuxt.js');
@@ -1 +0,0 @@
1
- export * from '../../dist/nuxt.mjs';
@@ -1 +0,0 @@
1
- module.exports = require('../../dist/react-router.js');
@@ -1 +0,0 @@
1
- export * from '../../dist/react-router.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';
@@ -1 +0,0 @@
1
- module.exports = require('../dist/workers.js');
@@ -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/databuddy';
@@ -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';
@@ -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 +0,0 @@
1
- export * from '../../dist/frameworks/astro';