@blyp/core 0.1.2

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 (235) hide show
  1. package/README.md +533 -0
  2. package/dist/client.js +1132 -0
  3. package/dist/client.js.map +1 -0
  4. package/dist/client.mjs +1125 -0
  5. package/dist/client.mjs.map +1 -0
  6. package/dist/connectors/betterstack/index.d.ts +7 -0
  7. package/dist/connectors/betterstack/sender.d.ts +5 -0
  8. package/dist/connectors/betterstack.js +1508 -0
  9. package/dist/connectors/betterstack.js.map +1 -0
  10. package/dist/connectors/betterstack.mjs +1483 -0
  11. package/dist/connectors/betterstack.mjs.map +1 -0
  12. package/dist/connectors/otlp/index.d.ts +5 -0
  13. package/dist/connectors/otlp/sender.d.ts +7 -0
  14. package/dist/connectors/otlp.js +1347 -0
  15. package/dist/connectors/otlp.js.map +1 -0
  16. package/dist/connectors/otlp.mjs +1344 -0
  17. package/dist/connectors/otlp.mjs.map +1 -0
  18. package/dist/connectors/posthog/index.d.ts +7 -0
  19. package/dist/connectors/posthog/sender.d.ts +11 -0
  20. package/dist/connectors/posthog.js +1503 -0
  21. package/dist/connectors/posthog.js.map +1 -0
  22. package/dist/connectors/posthog.mjs +1498 -0
  23. package/dist/connectors/posthog.mjs.map +1 -0
  24. package/dist/connectors/sentry/index.d.ts +5 -0
  25. package/dist/connectors/sentry/sender.d.ts +5 -0
  26. package/dist/connectors/sentry.js +1356 -0
  27. package/dist/connectors/sentry.js.map +1 -0
  28. package/dist/connectors/sentry.mjs +1333 -0
  29. package/dist/connectors/sentry.mjs.map +1 -0
  30. package/dist/connectors/shared.d.ts +8 -0
  31. package/dist/core/colors.d.ts +30 -0
  32. package/dist/core/config.d.ts +18 -0
  33. package/dist/core/errors.d.ts +8 -0
  34. package/dist/core/file-logger.d.ts +19 -0
  35. package/dist/core/helpers.d.ts +5 -0
  36. package/dist/core/index.d.ts +8 -0
  37. package/dist/core/log-reader.d.ts +5 -0
  38. package/dist/core/log-record.d.ts +14 -0
  39. package/dist/core/logger.d.ts +20 -0
  40. package/dist/core/primary-sink.d.ts +10 -0
  41. package/dist/core/runtime.d.ts +4 -0
  42. package/dist/core/sinks/database-primary-sink.d.ts +25 -0
  43. package/dist/core/sinks/file-primary-sink.d.ts +14 -0
  44. package/dist/core/structured-log.d.ts +3 -0
  45. package/dist/database/adapters/drizzle.d.ts +7 -0
  46. package/dist/database/adapters/prisma.d.ts +9 -0
  47. package/dist/database/helpers.d.ts +5 -0
  48. package/dist/database/index.d.ts +3 -0
  49. package/dist/database.js +24 -0
  50. package/dist/database.js.map +1 -0
  51. package/dist/database.mjs +21 -0
  52. package/dist/database.mjs.map +1 -0
  53. package/dist/elysia.js +4180 -0
  54. package/dist/elysia.js.map +1 -0
  55. package/dist/elysia.mjs +4152 -0
  56. package/dist/elysia.mjs.map +1 -0
  57. package/dist/expo.js +719 -0
  58. package/dist/expo.js.map +1 -0
  59. package/dist/expo.mjs +717 -0
  60. package/dist/expo.mjs.map +1 -0
  61. package/dist/express.js +4170 -0
  62. package/dist/express.js.map +1 -0
  63. package/dist/express.mjs +4141 -0
  64. package/dist/express.mjs.map +1 -0
  65. package/dist/fastify.js +4187 -0
  66. package/dist/fastify.js.map +1 -0
  67. package/dist/fastify.mjs +4158 -0
  68. package/dist/fastify.mjs.map +1 -0
  69. package/dist/frameworks/client/index.d.ts +3 -0
  70. package/dist/frameworks/client/logger.d.ts +4 -0
  71. package/dist/frameworks/elysia/index.d.ts +2 -0
  72. package/dist/frameworks/elysia/logger.d.ts +35 -0
  73. package/dist/frameworks/expo/index.d.ts +2 -0
  74. package/dist/frameworks/expo/logger.d.ts +3 -0
  75. package/dist/frameworks/expo/network.d.ts +7 -0
  76. package/dist/frameworks/express/index.d.ts +2 -0
  77. package/dist/frameworks/express/logger.d.ts +5 -0
  78. package/dist/frameworks/fastify/index.d.ts +2 -0
  79. package/dist/frameworks/fastify/logger.d.ts +4 -0
  80. package/dist/frameworks/hono/index.d.ts +2 -0
  81. package/dist/frameworks/hono/logger.d.ts +4 -0
  82. package/dist/frameworks/nestjs/constants.d.ts +2 -0
  83. package/dist/frameworks/nestjs/filter.d.ts +8 -0
  84. package/dist/frameworks/nestjs/helpers.d.ts +25 -0
  85. package/dist/frameworks/nestjs/index.d.ts +3 -0
  86. package/dist/frameworks/nestjs/interceptor.d.ts +8 -0
  87. package/dist/frameworks/nestjs/logger.d.ts +6 -0
  88. package/dist/frameworks/nestjs/middleware.d.ts +8 -0
  89. package/dist/frameworks/nestjs/module.d.ts +5 -0
  90. package/dist/frameworks/nextjs/index.d.ts +2 -0
  91. package/dist/frameworks/nextjs/logger.d.ts +3 -0
  92. package/dist/frameworks/shared/http.d.ts +10 -0
  93. package/dist/frameworks/shared/index.d.ts +5 -0
  94. package/dist/frameworks/shared/logger.d.ts +35 -0
  95. package/dist/frameworks/shared/request-context.d.ts +12 -0
  96. package/dist/frameworks/shared/request-logger.d.ts +4 -0
  97. package/dist/frameworks/standalone/index.d.ts +3 -0
  98. package/dist/frameworks/standalone/logger.d.ts +5 -0
  99. package/dist/frameworks/sveltekit/index.d.ts +2 -0
  100. package/dist/frameworks/sveltekit/logger.d.ts +3 -0
  101. package/dist/frameworks/tanstack-start/index.d.ts +2 -0
  102. package/dist/frameworks/tanstack-start/logger.d.ts +3 -0
  103. package/dist/frameworks/workers/index.d.ts +2 -0
  104. package/dist/frameworks/workers/logger.d.ts +3 -0
  105. package/dist/hono.js +4156 -0
  106. package/dist/hono.js.map +1 -0
  107. package/dist/hono.mjs +4128 -0
  108. package/dist/hono.mjs.map +1 -0
  109. package/dist/index.d.ts +47 -0
  110. package/dist/index.js +6581 -0
  111. package/dist/index.js.map +1 -0
  112. package/dist/index.mjs +6494 -0
  113. package/dist/index.mjs.map +1 -0
  114. package/dist/nestjs.js +4649 -0
  115. package/dist/nestjs.js.map +1 -0
  116. package/dist/nestjs.mjs +4621 -0
  117. package/dist/nestjs.mjs.map +1 -0
  118. package/dist/nextjs.js +4183 -0
  119. package/dist/nextjs.js.map +1 -0
  120. package/dist/nextjs.mjs +4155 -0
  121. package/dist/nextjs.mjs.map +1 -0
  122. package/dist/shared/client-log.d.ts +14 -0
  123. package/dist/shared/errors.d.ts +296 -0
  124. package/dist/shared/log-value.d.ts +3 -0
  125. package/dist/shared/once.d.ts +4 -0
  126. package/dist/shared/remote-delivery.d.ts +6 -0
  127. package/dist/shared/validation.d.ts +7 -0
  128. package/dist/standalone.js +3353 -0
  129. package/dist/standalone.js.map +1 -0
  130. package/dist/standalone.mjs +3324 -0
  131. package/dist/standalone.mjs.map +1 -0
  132. package/dist/sveltekit.js +4182 -0
  133. package/dist/sveltekit.js.map +1 -0
  134. package/dist/sveltekit.mjs +4154 -0
  135. package/dist/sveltekit.mjs.map +1 -0
  136. package/dist/tanstack-start.js +4182 -0
  137. package/dist/tanstack-start.js.map +1 -0
  138. package/dist/tanstack-start.mjs +4154 -0
  139. package/dist/tanstack-start.mjs.map +1 -0
  140. package/dist/types/connectors/betterstack.d.ts +54 -0
  141. package/dist/types/connectors/mode.d.ts +2 -0
  142. package/dist/types/connectors/otlp.d.ts +50 -0
  143. package/dist/types/connectors/posthog.d.ts +75 -0
  144. package/dist/types/connectors/sentry.d.ts +48 -0
  145. package/dist/types/core/config.d.ts +152 -0
  146. package/dist/types/core/errors.d.ts +16 -0
  147. package/dist/types/core/file-logger.d.ts +29 -0
  148. package/dist/types/core/helpers.d.ts +8 -0
  149. package/dist/types/core/index.d.ts +8 -0
  150. package/dist/types/core/log-reader.d.ts +4 -0
  151. package/dist/types/core/log-record.d.ts +1 -0
  152. package/dist/types/core/logger.d.ts +40 -0
  153. package/dist/types/core/structured-log.d.ts +57 -0
  154. package/dist/types/database.d.ts +73 -0
  155. package/dist/types/frameworks/client.d.ts +32 -0
  156. package/dist/types/frameworks/elysia.d.ts +33 -0
  157. package/dist/types/frameworks/expo.d.ts +44 -0
  158. package/dist/types/frameworks/express.d.ts +24 -0
  159. package/dist/types/frameworks/fastify.d.ts +22 -0
  160. package/dist/types/frameworks/hono.d.ts +13 -0
  161. package/dist/types/frameworks/http.d.ts +47 -0
  162. package/dist/types/frameworks/nestjs.d.ts +37 -0
  163. package/dist/types/frameworks/nextjs.d.ts +27 -0
  164. package/dist/types/frameworks/request-context.d.ts +8 -0
  165. package/dist/types/frameworks/request-logger.d.ts +8 -0
  166. package/dist/types/frameworks/shared.d.ts +154 -0
  167. package/dist/types/frameworks/standalone.d.ts +64 -0
  168. package/dist/types/frameworks/sveltekit.d.ts +37 -0
  169. package/dist/types/frameworks/tanstack-start.d.ts +28 -0
  170. package/dist/types/frameworks/workers.d.ts +33 -0
  171. package/dist/types/shared/client-log.d.ts +91 -0
  172. package/dist/types/shared/errors.d.ts +75 -0
  173. package/dist/types/shared/index.d.ts +4 -0
  174. package/dist/types/shared/once.d.ts +2 -0
  175. package/dist/types/shared/remote-delivery.d.ts +32 -0
  176. package/dist/workers.js +626 -0
  177. package/dist/workers.js.map +1 -0
  178. package/dist/workers.mjs +623 -0
  179. package/dist/workers.mjs.map +1 -0
  180. package/exports/client.js +3 -0
  181. package/exports/client.mjs +3 -0
  182. package/exports/connectors/betterstack.js +1 -0
  183. package/exports/connectors/betterstack.mjs +1 -0
  184. package/exports/connectors/otlp.js +1 -0
  185. package/exports/connectors/otlp.mjs +1 -0
  186. package/exports/connectors/posthog.js +1 -0
  187. package/exports/connectors/posthog.mjs +1 -0
  188. package/exports/connectors/sentry.js +1 -0
  189. package/exports/connectors/sentry.mjs +1 -0
  190. package/exports/database.js +1 -0
  191. package/exports/database.mjs +1 -0
  192. package/exports/expo.js +1 -0
  193. package/exports/expo.mjs +1 -0
  194. package/exports/frameworks/elysia.js +1 -0
  195. package/exports/frameworks/elysia.mjs +1 -0
  196. package/exports/frameworks/express.js +1 -0
  197. package/exports/frameworks/express.mjs +1 -0
  198. package/exports/frameworks/fastify.js +1 -0
  199. package/exports/frameworks/fastify.mjs +1 -0
  200. package/exports/frameworks/hono.js +1 -0
  201. package/exports/frameworks/hono.mjs +1 -0
  202. package/exports/frameworks/nestjs.js +1 -0
  203. package/exports/frameworks/nestjs.mjs +1 -0
  204. package/exports/frameworks/nextjs.js +1 -0
  205. package/exports/frameworks/nextjs.mjs +1 -0
  206. package/exports/frameworks/standalone.js +1 -0
  207. package/exports/frameworks/standalone.mjs +1 -0
  208. package/exports/frameworks/sveltekit.js +1 -0
  209. package/exports/frameworks/sveltekit.mjs +1 -0
  210. package/exports/frameworks/tanstack-start.js +1 -0
  211. package/exports/frameworks/tanstack-start.mjs +1 -0
  212. package/exports/workers.js +1 -0
  213. package/exports/workers.mjs +1 -0
  214. package/package.json +291 -0
  215. package/types/client.d.ts +34 -0
  216. package/types/connectors/betterstack.d.ts +1 -0
  217. package/types/connectors/otlp.d.ts +1 -0
  218. package/types/connectors/posthog.d.ts +1 -0
  219. package/types/connectors/sentry.d.ts +1 -0
  220. package/types/database.d.ts +1 -0
  221. package/types/expo.d.ts +17 -0
  222. package/types/frameworks/client.d.ts +160 -0
  223. package/types/frameworks/elysia.d.ts +1 -0
  224. package/types/frameworks/expo.d.ts +50 -0
  225. package/types/frameworks/express.d.ts +1 -0
  226. package/types/frameworks/fastify.d.ts +1 -0
  227. package/types/frameworks/hono.d.ts +1 -0
  228. package/types/frameworks/nestjs.d.ts +1 -0
  229. package/types/frameworks/nextjs.d.ts +1 -0
  230. package/types/frameworks/standalone.d.ts +1 -0
  231. package/types/frameworks/sveltekit.d.ts +1 -0
  232. package/types/frameworks/tanstack-start.d.ts +1 -0
  233. package/types/frameworks/workers.d.ts +115 -0
  234. package/types/index.d.ts +1 -0
  235. package/types/workers.d.ts +13 -0
@@ -0,0 +1,33 @@
1
+ import type { BlypErrorLike } from '../shared/errors';
2
+ import type { ResolveCtx } from '../core/helpers';
3
+ import type { ClientLogIngestionConfig as SharedClientLogIngestionConfig, HttpRequestLog, ServerLoggerConfig } from './shared';
4
+ export interface ElysiaContext {
5
+ startTime?: number;
6
+ request: Request;
7
+ path: string;
8
+ params?: Record<string, string>;
9
+ query?: Record<string, string>;
10
+ headers: Record<string, string | undefined>;
11
+ set: {
12
+ status?: number | string;
13
+ headers?: Record<string, string>;
14
+ redirect?: string;
15
+ cookie?: Record<string, unknown>;
16
+ };
17
+ error?: BlypErrorLike;
18
+ code?: string;
19
+ body?: unknown;
20
+ cookie?: Record<string, unknown>;
21
+ [key: string]: unknown;
22
+ }
23
+ export type { ResolveCtx, HttpRequestLog };
24
+ export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
25
+ export interface ArrowMapping {
26
+ [key: string]: string;
27
+ }
28
+ export interface ElysiaLoggerConfig extends ServerLoggerConfig<ElysiaContext> {
29
+ }
30
+ export interface ElysiaClientLogIngestionConfig extends SharedClientLogIngestionConfig<ElysiaContext> {
31
+ }
32
+ export type LoggerConfig = ElysiaLoggerConfig;
33
+ export type ClientLogIngestionConfig = ElysiaClientLogIngestionConfig;
@@ -0,0 +1,44 @@
1
+ import type { ClientConnectorRequest, ClientLogBrowserContext, ClientLogDeviceContext, ClientLogEvent, ClientLogLevel, ClientLogPageContext, RemoteDeliveryConfig, RemoteDeliveryDropContext, RemoteDeliveryFailureContext, RemoteDeliveryFailureReason, RemoteDeliveryRetryContext, RemoteDeliverySuccessContext } from '../shared/client-log';
2
+ export interface ExpoLoggerState {
3
+ readonly pageId: string;
4
+ readonly sessionId: string;
5
+ readonly bindings: Record<string, unknown>;
6
+ readonly delivery?: {
7
+ enqueue: (event: ClientLogEvent) => void;
8
+ };
9
+ }
10
+ export type ExpoLogLevel = 'warn' | 'debug' | 'info' | 'warning' | 'error' | 'critical' | 'success' | 'table';
11
+ export interface ExpoNetworkSubscription {
12
+ remove: () => void;
13
+ }
14
+ export interface ExpoNetworkState {
15
+ type?: unknown;
16
+ isConnected?: unknown;
17
+ isInternetReachable?: unknown;
18
+ }
19
+ export interface ExpoNetworkModule {
20
+ getNetworkStateAsync: () => Promise<ExpoNetworkState>;
21
+ addNetworkStateListener?: (listener: (event: ExpoNetworkState) => void) => ExpoNetworkSubscription;
22
+ }
23
+ export type ExpoNetworkLoader = () => Promise<ExpoNetworkModule | null>;
24
+ export interface ExpoLoggerConfig {
25
+ endpoint: string;
26
+ headers?: Record<string, string>;
27
+ localConsole?: boolean;
28
+ remoteSync?: boolean;
29
+ connector?: ClientConnectorRequest;
30
+ metadata?: Record<string, unknown> | (() => Record<string, unknown>);
31
+ delivery?: RemoteDeliveryConfig;
32
+ }
33
+ export interface ExpoLogger {
34
+ success: (message: unknown, ...args: unknown[]) => void;
35
+ critical: (message: unknown, ...args: unknown[]) => void;
36
+ warning: (message: unknown, ...args: unknown[]) => void;
37
+ info: (message: unknown, ...args: unknown[]) => void;
38
+ debug: (message: unknown, ...args: unknown[]) => void;
39
+ error: (message: unknown, ...args: unknown[]) => void;
40
+ warn: (message: unknown, ...args: unknown[]) => void;
41
+ table: (message: string, data?: unknown) => void;
42
+ child: (bindings: Record<string, unknown>) => ExpoLogger;
43
+ }
44
+ export type { ClientLogBrowserContext, ClientConnectorRequest, ClientLogDeviceContext, ClientLogEvent, ClientLogLevel, ClientLogPageContext, RemoteDeliveryConfig, RemoteDeliveryDropContext, RemoteDeliveryFailureContext, RemoteDeliveryFailureReason, RemoteDeliveryRetryContext, RemoteDeliverySuccessContext, };
@@ -0,0 +1,24 @@
1
+ import type { ErrorRequestHandler, Request, RequestHandler, Response } from 'express';
2
+ import type { BlypLogger } from '../../core/logger';
3
+ import type { ClientLogIngestionConfig as SharedClientLogIngestionConfig, HttpRequestLog, ServerLoggerConfig } from './shared';
4
+ export interface ExpressLoggerContext {
5
+ req: Request;
6
+ res: Response;
7
+ error?: unknown;
8
+ }
9
+ export interface ExpressLoggerConfig extends ServerLoggerConfig<ExpressLoggerContext> {
10
+ }
11
+ export interface ExpressClientLogIngestionConfig extends SharedClientLogIngestionConfig<ExpressLoggerContext> {
12
+ }
13
+ export type ExpressLoggerMiddleware = RequestHandler;
14
+ export type ExpressErrorLoggerMiddleware = ErrorRequestHandler;
15
+ export type { HttpRequestLog };
16
+ declare module 'express-serve-static-core' {
17
+ interface Request {
18
+ blypLog: BlypLogger;
19
+ }
20
+ interface Locals {
21
+ blypStartTime?: number;
22
+ blypError?: unknown;
23
+ }
24
+ }
@@ -0,0 +1,22 @@
1
+ import type { FastifyPluginAsync } from 'fastify';
2
+ import type { BlypLogger } from '../../core/logger';
3
+ import type { ClientLogIngestionConfig as SharedClientLogIngestionConfig, HttpRequestLog, ServerLoggerConfig } from './shared';
4
+ export interface FastifyLoggerContext {
5
+ request: import('fastify').FastifyRequest;
6
+ reply: import('fastify').FastifyReply;
7
+ error?: unknown;
8
+ }
9
+ export interface FastifyLoggerConfig extends ServerLoggerConfig<FastifyLoggerContext> {
10
+ }
11
+ export interface FastifyClientLogIngestionConfig extends SharedClientLogIngestionConfig<FastifyLoggerContext> {
12
+ }
13
+ export type FastifyLoggerPlugin = FastifyPluginAsync;
14
+ export type { HttpRequestLog };
15
+ declare module 'fastify' {
16
+ interface FastifyRequest {
17
+ blypLog: BlypLogger;
18
+ blypStartTime?: number;
19
+ blypError?: unknown;
20
+ blypStructuredLogEmitted?: boolean;
21
+ }
22
+ }
@@ -0,0 +1,13 @@
1
+ import type { Context, MiddlewareHandler } from 'hono';
2
+ import type { BlypLogger } from '../../core/logger';
3
+ import type { ClientLogIngestionConfig as SharedClientLogIngestionConfig, HttpRequestLog, ServerLoggerConfig } from './shared';
4
+ export interface HonoLoggerVariables {
5
+ blypLog: BlypLogger;
6
+ blypStartTime?: number;
7
+ }
8
+ export interface HonoLoggerConfig extends ServerLoggerConfig<Context> {
9
+ }
10
+ export interface HonoClientLogIngestionConfig extends SharedClientLogIngestionConfig<Context> {
11
+ }
12
+ export type HonoLoggerMiddleware = MiddlewareHandler;
13
+ export type { HttpRequestLog };
@@ -0,0 +1,47 @@
1
+ import type { BlypErrorLike } from '../shared/errors';
2
+ export type HeaderRecord = Record<string, string | string[] | undefined>;
3
+ export interface RequestLike {
4
+ method: string;
5
+ url: string;
6
+ headers?: Headers | HeaderRecord | {
7
+ get(name: string): string | null;
8
+ };
9
+ }
10
+ export interface ErrorLike extends BlypErrorLike {
11
+ }
12
+ export interface ResolveLike {
13
+ set?: {
14
+ status?: number | string;
15
+ };
16
+ error?: ErrorLike;
17
+ code?: string | number;
18
+ statusCode?: number;
19
+ }
20
+ export interface HttpRequestLog {
21
+ type: 'http_request' | 'http_error';
22
+ method: string;
23
+ url: string;
24
+ statusCode: number;
25
+ responseTime: number;
26
+ hostname?: string;
27
+ ip?: string;
28
+ forwardedFor?: string[];
29
+ protocol?: string;
30
+ port?: string;
31
+ userAgent?: string;
32
+ origin?: string;
33
+ referer?: string;
34
+ acceptLanguage?: string;
35
+ client?: {
36
+ ip?: string;
37
+ hostname?: string;
38
+ browser?: string;
39
+ os?: string;
40
+ deviceType?: 'desktop' | 'mobile' | 'tablet' | 'bot' | 'unknown';
41
+ platform?: string;
42
+ isMobile?: boolean;
43
+ };
44
+ error?: string;
45
+ stack?: string;
46
+ [key: string]: unknown;
47
+ }
@@ -0,0 +1,37 @@
1
+ import type { ExecutionContext } from '@nestjs/common';
2
+ import type { BlypLogger } from '../core/logger';
3
+ import type { StandaloneLogger } from './standalone';
4
+ import type { ClientLogIngestionConfig as SharedClientLogIngestionConfig, HttpRequestLog, ResolvedServerLogger, ServerLoggerConfig } from './shared';
5
+ export type NestAdapterType = 'express' | 'fastify';
6
+ export type NestHeaderRecord = Record<string, string | string[] | undefined>;
7
+ export interface NestLoggerState extends Omit<ResolvedServerLogger<NestLoggerContext>, 'logger'> {
8
+ logger: StandaloneLogger;
9
+ }
10
+ export interface NestLoggerContext {
11
+ request: unknown;
12
+ response: unknown;
13
+ adapterType: NestAdapterType;
14
+ executionContext?: ExecutionContext;
15
+ error?: unknown;
16
+ controllerName?: string;
17
+ handlerName?: string;
18
+ }
19
+ export interface NestLoggerConfig extends ServerLoggerConfig<NestLoggerContext> {
20
+ }
21
+ export interface NestClientLogIngestionConfig extends SharedClientLogIngestionConfig<NestLoggerContext> {
22
+ }
23
+ export type { HttpRequestLog };
24
+ declare module 'express-serve-static-core' {
25
+ interface Request {
26
+ blypLog: BlypLogger;
27
+ blypStartTime?: number;
28
+ blypStructuredLogEmitted?: boolean;
29
+ }
30
+ }
31
+ declare module 'fastify' {
32
+ interface FastifyRequest {
33
+ blypLog: BlypLogger;
34
+ blypStartTime?: number;
35
+ blypStructuredLogEmitted?: boolean;
36
+ }
37
+ }
@@ -0,0 +1,27 @@
1
+ import type { BlypLogger } from '../../core/logger';
2
+ import type { ClientLogIngestionConfig as SharedClientLogIngestionConfig, HttpRequestLog, ServerLoggerConfig } from './shared';
3
+ export interface NextJsRouteContext {
4
+ params?: Record<string, string> | Promise<Record<string, string>>;
5
+ [key: string]: unknown;
6
+ }
7
+ export interface NextJsLoggerHelpers {
8
+ log: BlypLogger;
9
+ }
10
+ export interface NextJsLoggerContext {
11
+ request: Request;
12
+ context?: NextJsRouteContext;
13
+ response?: Response;
14
+ error?: unknown;
15
+ }
16
+ export interface NextJsLoggerConfig extends ServerLoggerConfig<NextJsLoggerContext> {
17
+ }
18
+ export interface NextJsClientLogIngestionConfig extends SharedClientLogIngestionConfig<NextJsLoggerContext> {
19
+ }
20
+ export type NextJsWrappedHandler<Ctx extends NextJsRouteContext = NextJsRouteContext> = (request: Request, context: Ctx) => Response | Promise<Response>;
21
+ export type NextJsHandlerWithLogger<Ctx extends NextJsRouteContext = NextJsRouteContext> = (request: Request, context: Ctx, helpers: NextJsLoggerHelpers) => Response | Promise<Response>;
22
+ export interface NextJsLoggerFactory {
23
+ logger: BlypLogger;
24
+ withLogger: <Ctx extends NextJsRouteContext = NextJsRouteContext>(handler: NextJsHandlerWithLogger<Ctx>) => NextJsWrappedHandler<Ctx>;
25
+ clientLogHandler: (request: Request) => Promise<Response>;
26
+ }
27
+ export type { HttpRequestLog };
@@ -0,0 +1,8 @@
1
+ import type { BlypLogger } from '../core/logger';
2
+ export interface BlypRequestContextStore {
3
+ requestScopedLoggerActive: boolean;
4
+ structuredCollectorActive: boolean;
5
+ structuredLogEmitted: boolean;
6
+ mixedLoggerWarningShown: boolean;
7
+ activeLogger?: BlypLogger;
8
+ }
@@ -0,0 +1,8 @@
1
+ export interface RequestScopedLoggerOptions {
2
+ resolveStructuredFields?: () => Record<string, unknown>;
3
+ onStructuredEmit?: () => void;
4
+ }
5
+ export interface HttpErrorCaptureContext {
6
+ error?: unknown;
7
+ distinctId?: string;
8
+ }
@@ -0,0 +1,154 @@
1
+ import type { BlypConfig, BlypConnectorsConfig, BlypDestination, DatabaseLoggerConfig, LogFileConfig } from '../core/config';
2
+ import type { BlypLogger } from '../core/logger';
3
+ import type { ClientLogEvent } from '../shared/client-log';
4
+ import type { ConnectorMode } from '../connectors/mode';
5
+ export interface ClientLogIngestionConfig<Ctx> {
6
+ path?: string;
7
+ validate?: (ctx: Ctx, payload: ClientLogEvent) => boolean | Promise<boolean>;
8
+ enrich?: (ctx: Ctx, payload: ClientLogEvent) => Record<string, unknown> | Promise<Record<string, unknown>>;
9
+ }
10
+ export interface ServerLoggerConfig<Ctx> {
11
+ level?: string;
12
+ pretty?: boolean;
13
+ destination?: BlypDestination;
14
+ logDir?: string;
15
+ file?: LogFileConfig;
16
+ database?: DatabaseLoggerConfig;
17
+ autoLogging?: boolean | {
18
+ ignore?: (ctx: Ctx) => boolean;
19
+ };
20
+ customProps?: (ctx: Ctx) => Record<string, unknown>;
21
+ logErrors?: boolean;
22
+ ignorePaths?: string[];
23
+ clientLogging?: boolean | ClientLogIngestionConfig<Ctx>;
24
+ connectors?: BlypConnectorsConfig;
25
+ }
26
+ export interface ResolvedPostHogConnector {
27
+ enabled: boolean;
28
+ ready: boolean;
29
+ mode: ConnectorMode;
30
+ serviceName: string;
31
+ host: string;
32
+ status: 'enabled' | 'missing';
33
+ errorTracking: {
34
+ enabled: boolean;
35
+ ready: boolean;
36
+ mode: ConnectorMode;
37
+ status: 'enabled' | 'missing';
38
+ enableExceptionAutocapture: boolean;
39
+ };
40
+ shouldAutoCaptureExceptions: () => boolean;
41
+ send: (record: {
42
+ timestamp: string;
43
+ level: string;
44
+ message: string;
45
+ [key: string]: unknown;
46
+ }, options?: {
47
+ source?: 'server' | 'client';
48
+ warnIfUnavailable?: boolean;
49
+ }) => void;
50
+ captureException: (error: unknown, options?: {
51
+ source?: 'server' | 'client';
52
+ warnIfUnavailable?: boolean;
53
+ distinctId?: string;
54
+ properties?: Record<string, unknown>;
55
+ }) => void;
56
+ }
57
+ export interface ResolvedBetterStackConnector {
58
+ enabled: boolean;
59
+ ready: boolean;
60
+ mode: ConnectorMode;
61
+ serviceName: string;
62
+ ingestingHost?: string;
63
+ status: 'enabled' | 'missing';
64
+ errorTracking: {
65
+ enabled: boolean;
66
+ ready: boolean;
67
+ status: 'enabled' | 'missing';
68
+ dsn?: string;
69
+ tracesSampleRate: number;
70
+ environment?: string;
71
+ release?: string;
72
+ };
73
+ shouldAutoCaptureExceptions: () => boolean;
74
+ send: (record: {
75
+ timestamp: string;
76
+ level: string;
77
+ message: string;
78
+ [key: string]: unknown;
79
+ }, options?: {
80
+ source?: 'server' | 'client';
81
+ warnIfUnavailable?: boolean;
82
+ }) => void;
83
+ captureException: (error: unknown, options?: {
84
+ source?: 'server' | 'client';
85
+ warnIfUnavailable?: boolean;
86
+ context?: Record<string, unknown>;
87
+ }) => void;
88
+ }
89
+ export interface ResolvedSentryConnector {
90
+ enabled: boolean;
91
+ ready: boolean;
92
+ mode: ConnectorMode;
93
+ status: 'enabled' | 'missing';
94
+ send: (record: {
95
+ timestamp: string;
96
+ level: string;
97
+ message: string;
98
+ [key: string]: unknown;
99
+ }, options?: {
100
+ source?: 'server' | 'client';
101
+ warnIfUnavailable?: boolean;
102
+ }) => void;
103
+ }
104
+ export interface ResolvedOTLPConnector {
105
+ name: string;
106
+ enabled: boolean;
107
+ ready: boolean;
108
+ mode: ConnectorMode;
109
+ serviceName: string;
110
+ endpoint?: string;
111
+ status: 'enabled' | 'missing';
112
+ send: (record: {
113
+ timestamp: string;
114
+ level: string;
115
+ message: string;
116
+ [key: string]: unknown;
117
+ }, options?: {
118
+ source?: 'server' | 'client';
119
+ warnIfUnavailable?: boolean;
120
+ }) => void;
121
+ }
122
+ export interface ResolvedOTLPRegistry {
123
+ get: (name: string) => ResolvedOTLPConnector;
124
+ getAutoForwardTargets: () => ResolvedOTLPConnector[];
125
+ send: (name: string, record: {
126
+ timestamp: string;
127
+ level: string;
128
+ message: string;
129
+ [key: string]: unknown;
130
+ }, options?: {
131
+ source?: 'server' | 'client';
132
+ warnIfUnavailable?: boolean;
133
+ }) => void;
134
+ flush: () => Promise<void>;
135
+ }
136
+ export interface ResolvedServerLogger<Ctx> {
137
+ logger: BlypLogger;
138
+ betterstack: ResolvedBetterStackConnector;
139
+ posthog: ResolvedPostHogConnector;
140
+ sentry: ResolvedSentryConnector;
141
+ otlp: ResolvedOTLPRegistry;
142
+ resolvedConfig: BlypConfig;
143
+ level: string;
144
+ pretty: boolean;
145
+ logDir?: string;
146
+ file?: LogFileConfig;
147
+ autoLogging: ServerLoggerConfig<Ctx>['autoLogging'];
148
+ customProps?: (ctx: Ctx) => Record<string, unknown>;
149
+ logErrors: boolean;
150
+ resolvedIgnorePaths?: string[];
151
+ resolvedClientLogging: ClientLogIngestionConfig<Ctx> | null;
152
+ ingestionPath: string;
153
+ }
154
+ export type { HttpRequestLog } from './http';
@@ -0,0 +1,64 @@
1
+ import type { BlypLogger } from '../core/logger';
2
+ import type { BlypDestination, BlypConnectorsConfig, ClientLoggingConfig, DatabaseLoggerConfig, LogFileConfig, LogRotationConfig } from '../core/config';
3
+ export type LogLevel = 'error' | 'critical' | 'warning' | 'info' | 'success' | 'debug' | 'table';
4
+ export interface StandaloneLoggerConfig {
5
+ pretty?: boolean;
6
+ level?: string;
7
+ destination?: BlypDestination;
8
+ logDir?: string;
9
+ file?: LogFileConfig;
10
+ database?: DatabaseLoggerConfig;
11
+ clientLogging?: ClientLoggingConfig;
12
+ connectors?: BlypConnectorsConfig;
13
+ }
14
+ export interface StandaloneLogger extends BlypLogger {
15
+ success: (message: string | unknown, meta?: unknown) => void;
16
+ critical: (message: string | unknown, meta?: unknown) => void;
17
+ table: (message: string, data?: unknown) => void;
18
+ warn: (message: unknown, ...args: unknown[]) => void;
19
+ warning: (message: unknown, ...args: unknown[]) => void;
20
+ }
21
+ export type { BlypConnectorsConfig, BlypDestination, ClientLoggingConfig, DatabaseLoggerConfig, LogFileConfig, LogRotationConfig, };
22
+ export type RuntimeType = 'bun' | 'node';
23
+ export interface RuntimeAdapter {
24
+ readonly type: RuntimeType;
25
+ readonly isBun: boolean;
26
+ readonly isNode: boolean;
27
+ file: {
28
+ existsSync: (path: string) => boolean;
29
+ mkdirSync: (path: string, options?: {
30
+ recursive?: boolean;
31
+ }) => void;
32
+ writeFileSync: (path: string, data: string) => void;
33
+ };
34
+ path: {
35
+ join: (...paths: string[]) => string;
36
+ };
37
+ env: {
38
+ get: (key: string) => string | undefined;
39
+ };
40
+ cwd: () => string;
41
+ }
42
+ export interface LogLevels {
43
+ error: 0;
44
+ critical: 1;
45
+ warning: 2;
46
+ info: 3;
47
+ success: 4;
48
+ debug: 5;
49
+ table: 6;
50
+ [key: string]: number;
51
+ }
52
+ export interface ColorConfig {
53
+ error: string;
54
+ critical: string;
55
+ warning: string;
56
+ info: string;
57
+ success: string;
58
+ debug: string;
59
+ table: string;
60
+ }
61
+ export interface CallerLocation {
62
+ file: string;
63
+ line: number | null;
64
+ }
@@ -0,0 +1,37 @@
1
+ import type { BlypLogger } from '../../core/logger';
2
+ import type { ClientLogIngestionConfig as SharedClientLogIngestionConfig, HttpRequestLog, ServerLoggerConfig } from './shared';
3
+ export interface SvelteKitLocals {
4
+ blypLog?: BlypLogger;
5
+ [key: string]: unknown;
6
+ }
7
+ export interface SvelteKitRequestEvent {
8
+ request: Request;
9
+ url: URL;
10
+ params?: Record<string, string>;
11
+ route?: {
12
+ id?: string | null;
13
+ };
14
+ locals: SvelteKitLocals;
15
+ [key: string]: unknown;
16
+ }
17
+ export type SvelteKitResolve = (event: SvelteKitRequestEvent) => Response | Promise<Response>;
18
+ export type SvelteKitHandle = (input: {
19
+ event: SvelteKitRequestEvent;
20
+ resolve: SvelteKitResolve;
21
+ }) => Response | Promise<Response>;
22
+ export type SvelteKitRequestHandler = (event: SvelteKitRequestEvent) => Response | Promise<Response>;
23
+ export interface SvelteKitLoggerContext {
24
+ event: SvelteKitRequestEvent;
25
+ response?: Response;
26
+ error?: unknown;
27
+ }
28
+ export interface SvelteKitLoggerConfig extends ServerLoggerConfig<SvelteKitLoggerContext> {
29
+ }
30
+ export interface SvelteKitClientLogIngestionConfig extends SharedClientLogIngestionConfig<SvelteKitLoggerContext> {
31
+ }
32
+ export interface SvelteKitLoggerFactory {
33
+ logger: BlypLogger;
34
+ handle: SvelteKitHandle;
35
+ clientLogHandler: SvelteKitRequestHandler;
36
+ }
37
+ export type { HttpRequestLog };
@@ -0,0 +1,28 @@
1
+ import type { BlypLogger } from '../../core/logger';
2
+ import type { ClientLogIngestionConfig as SharedClientLogIngestionConfig, HttpRequestLog, ServerLoggerConfig } from './shared';
3
+ export interface TanStackStartMiddlewareContext {
4
+ request: Request;
5
+ context: Record<string, unknown>;
6
+ next: (options?: {
7
+ context?: Record<string, unknown>;
8
+ }) => Promise<Response>;
9
+ }
10
+ export interface TanStackStartLoggerContext {
11
+ request: Request;
12
+ context: Record<string, unknown>;
13
+ response?: Response;
14
+ error?: unknown;
15
+ }
16
+ export interface TanStackStartLoggerConfig extends ServerLoggerConfig<TanStackStartLoggerContext> {
17
+ }
18
+ export interface TanStackStartClientLogIngestionConfig extends SharedClientLogIngestionConfig<TanStackStartLoggerContext> {
19
+ }
20
+ export interface TanStackStartClientLogHandlers {
21
+ POST: (request: Request) => Promise<Response>;
22
+ }
23
+ export interface TanStackStartLoggerFactory {
24
+ logger: BlypLogger;
25
+ requestMiddleware: (input: TanStackStartMiddlewareContext) => Promise<Response>;
26
+ clientLogHandlers: TanStackStartClientLogHandlers;
27
+ }
28
+ export type { HttpRequestLog };
@@ -0,0 +1,33 @@
1
+ import type { HttpRequestLog } from './http';
2
+ import type { StructuredLog } from '../core/structured-log';
3
+ export interface WorkersLoggerConfig {
4
+ env?: Record<string, unknown>;
5
+ customProps?: (request: Request) => Record<string, unknown>;
6
+ }
7
+ export interface WorkersLoggerState {
8
+ env?: Record<string, unknown>;
9
+ customProps?: (request: Request) => Record<string, unknown>;
10
+ }
11
+ export type WorkersConsoleMethod = 'debug' | 'info' | 'warn' | 'error' | 'log';
12
+ export type WorkersLogLevel = 'debug' | 'info' | 'warn' | 'warning' | 'error' | 'success' | 'critical';
13
+ export interface WorkersEmitOptions {
14
+ response?: Response | {
15
+ status: number;
16
+ };
17
+ status?: number;
18
+ error?: unknown;
19
+ }
20
+ export interface WorkersRequestLogger {
21
+ set(fields: Record<string, unknown>): WorkersRequestLogger;
22
+ emit(options?: WorkersEmitOptions): HttpRequestLog;
23
+ debug(message: unknown, ...args: unknown[]): void;
24
+ info(message: unknown, ...args: unknown[]): void;
25
+ warn(message: unknown, ...args: unknown[]): void;
26
+ warning(message: unknown, ...args: unknown[]): void;
27
+ error(message: unknown, ...args: unknown[]): void;
28
+ success(message: unknown, ...args: unknown[]): void;
29
+ critical(message: unknown, ...args: unknown[]): void;
30
+ table(message: string, data?: unknown): void;
31
+ createStructuredLog(groupId: string, initial?: Record<string, unknown>): StructuredLog;
32
+ }
33
+ export type { HttpRequestLog, StructuredLog };