@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,91 @@
1
+ export type ClientLogLevel = 'debug' | 'info' | 'warning' | 'error' | 'critical' | 'success' | 'table';
2
+ export interface ClientLogPageContext {
3
+ url?: string;
4
+ pathname?: string;
5
+ search?: string;
6
+ hash?: string;
7
+ title?: string;
8
+ referrer?: string;
9
+ }
10
+ export interface ClientLogBrowserContext {
11
+ userAgent?: string;
12
+ language?: string;
13
+ platform?: string;
14
+ }
15
+ export interface ClientLogDeviceContext {
16
+ runtime?: 'expo' | 'browser';
17
+ network?: {
18
+ type?: string;
19
+ isConnected?: boolean;
20
+ isInternetReachable?: boolean;
21
+ };
22
+ }
23
+ export interface ClientLogSessionContext {
24
+ pageId: string;
25
+ sessionId: string;
26
+ }
27
+ export type ClientConnectorRequest = 'betterstack' | 'posthog' | 'sentry' | {
28
+ type: 'otlp';
29
+ name: string;
30
+ };
31
+ export interface ClientLogEvent {
32
+ type: 'client_log';
33
+ source: 'client';
34
+ id: string;
35
+ level: ClientLogLevel;
36
+ message: string;
37
+ connector?: ClientConnectorRequest;
38
+ data?: unknown;
39
+ bindings?: Record<string, unknown>;
40
+ clientTimestamp: string;
41
+ page: ClientLogPageContext;
42
+ browser: ClientLogBrowserContext;
43
+ device?: ClientLogDeviceContext;
44
+ session: ClientLogSessionContext;
45
+ metadata?: Record<string, unknown>;
46
+ }
47
+ export type RemoteDeliveryRuntime = 'browser' | 'expo';
48
+ export type RemoteDeliveryTransport = 'fetch' | 'beacon';
49
+ export type RemoteDeliveryFailureReason = 'offline' | 'network_error' | 'response_status' | 'invalid_endpoint' | 'missing_transport' | 'queue_overflow';
50
+ export interface RemoteDeliverySuccessContext {
51
+ runtime: RemoteDeliveryRuntime;
52
+ event: ClientLogEvent;
53
+ attempt: number;
54
+ status?: number;
55
+ transport: RemoteDeliveryTransport;
56
+ }
57
+ export interface RemoteDeliveryRetryContext {
58
+ runtime: RemoteDeliveryRuntime;
59
+ event: ClientLogEvent;
60
+ attempt: number;
61
+ retriesRemaining: number;
62
+ nextRetryAt: string;
63
+ reason: 'offline' | 'network_error' | 'response_status';
64
+ status?: number;
65
+ error?: string;
66
+ }
67
+ export interface RemoteDeliveryFailureContext {
68
+ runtime: RemoteDeliveryRuntime;
69
+ event: ClientLogEvent;
70
+ attempt: number;
71
+ reason: RemoteDeliveryFailureReason;
72
+ status?: number;
73
+ error?: string;
74
+ }
75
+ export interface RemoteDeliveryDropContext {
76
+ runtime: RemoteDeliveryRuntime;
77
+ droppedEvent: ClientLogEvent;
78
+ replacementEvent: ClientLogEvent;
79
+ maxQueueSize: number;
80
+ reason: 'queue_overflow';
81
+ }
82
+ export interface RemoteDeliveryConfig {
83
+ maxRetries?: number;
84
+ retryDelayMs?: number;
85
+ maxQueueSize?: number;
86
+ warnOnFailure?: boolean;
87
+ onSuccess?: (ctx: RemoteDeliverySuccessContext) => void;
88
+ onRetry?: (ctx: RemoteDeliveryRetryContext) => void;
89
+ onFailure?: (ctx: RemoteDeliveryFailureContext) => void;
90
+ onDrop?: (ctx: RemoteDeliveryDropContext) => void;
91
+ }
@@ -0,0 +1,75 @@
1
+ export type ErrorLogLevel = 'debug' | 'info' | 'warning' | 'error' | 'critical';
2
+ export interface ErrorLoggerLike {
3
+ debug: (message: unknown, ...args: unknown[]) => void;
4
+ info: (message: unknown, ...args: unknown[]) => void;
5
+ warning: (message: unknown, ...args: unknown[]) => void;
6
+ error: (message: unknown, ...args: unknown[]) => void;
7
+ critical: (message: unknown, ...args: unknown[]) => void;
8
+ }
9
+ export interface BlypErrorLike {
10
+ status?: number;
11
+ statusCode?: number;
12
+ code?: string | number;
13
+ message?: string;
14
+ stack?: string;
15
+ why?: string;
16
+ fix?: string;
17
+ link?: string;
18
+ details?: Record<string, unknown>;
19
+ cause?: unknown;
20
+ logLevel?: ErrorLogLevel;
21
+ }
22
+ export interface BlypErrorCodeDefinition {
23
+ key: string;
24
+ status: number;
25
+ message: string;
26
+ code?: string;
27
+ why?: string;
28
+ fix?: string;
29
+ link?: string;
30
+ details?: Record<string, unknown>;
31
+ logLevel?: ErrorLogLevel;
32
+ }
33
+ export interface BlypErrorCodeCreateOptions extends Omit<BlypErrorLike, 'statusCode'> {
34
+ logger?: ErrorLoggerLike;
35
+ skipLogging?: boolean;
36
+ }
37
+ export interface BlypErrorCode extends Readonly<BlypErrorCodeDefinition> {
38
+ readonly statusCode: number;
39
+ create(overrides?: BlypErrorCodeCreateOptions): BlypErrorLike;
40
+ extend(definition: {
41
+ code: string;
42
+ message?: string;
43
+ why?: string;
44
+ fix?: string;
45
+ link?: string;
46
+ details?: Record<string, unknown>;
47
+ logLevel?: ErrorLogLevel;
48
+ }): BlypErrorCode;
49
+ }
50
+ export type ParseableErrorPayload = BlypErrorLike | Error | string | Record<string, unknown> | null | undefined;
51
+ export interface ParseErrorOptions {
52
+ logger?: ErrorLoggerLike;
53
+ logLevel?: ErrorLogLevel;
54
+ fallbackStatus?: number;
55
+ }
56
+ export interface ResolvedErrorConfig {
57
+ status: number;
58
+ statusCode: number;
59
+ message: string;
60
+ code?: string | number;
61
+ why?: string;
62
+ fix?: string;
63
+ link?: string;
64
+ details?: Record<string, unknown>;
65
+ cause?: unknown;
66
+ stack?: string;
67
+ logLevel: ErrorLogLevel;
68
+ }
69
+ export interface ErrorConstructionInput extends BlypErrorLike {
70
+ status?: number;
71
+ logger?: ErrorLoggerLike;
72
+ skipLogging?: boolean;
73
+ }
74
+ export type HttpCodeRegistry<TKeys extends string = string> = Readonly<Record<TKeys, BlypErrorCode>>;
75
+ export type CreateCodeFunction = (definition: BlypErrorCodeDefinition, overrides?: BlypErrorCodeCreateOptions) => BlypErrorLike;
@@ -0,0 +1,4 @@
1
+ export * from './errors';
2
+ export * from './client-log';
3
+ export * from './once';
4
+ export * from './remote-delivery';
@@ -0,0 +1,2 @@
1
+ export type ConsoleOnceLogger = (key: string, message: string, error?: unknown) => void;
2
+ export type ConsoleMethod = 'warn' | 'error';
@@ -0,0 +1,32 @@
1
+ import type { ClientLogEvent, RemoteDeliveryConfig, RemoteDeliveryFailureReason, RemoteDeliveryRuntime, RemoteDeliveryTransport } from './client-log';
2
+ export type RetryReason = 'offline' | 'network_error' | 'response_status';
3
+ export interface QueueItem {
4
+ event: ClientLogEvent;
5
+ attempt: number;
6
+ nextAttemptAt: number;
7
+ }
8
+ export interface DeliveryAttemptSuccess {
9
+ outcome: 'success';
10
+ transport: RemoteDeliveryTransport;
11
+ status?: number;
12
+ }
13
+ export interface DeliveryAttemptRetry {
14
+ outcome: 'retry';
15
+ reason: RetryReason;
16
+ status?: number;
17
+ error?: string;
18
+ }
19
+ export interface DeliveryAttemptFailure {
20
+ outcome: 'failure';
21
+ reason: Exclude<RemoteDeliveryFailureReason, 'queue_overflow'>;
22
+ status?: number;
23
+ error?: string;
24
+ suppressWarning?: boolean;
25
+ }
26
+ export type DeliveryAttemptResult = DeliveryAttemptSuccess | DeliveryAttemptRetry | DeliveryAttemptFailure;
27
+ export interface RemoteDeliveryManagerOptions {
28
+ runtime: RemoteDeliveryRuntime;
29
+ delivery?: RemoteDeliveryConfig;
30
+ send: (event: ClientLogEvent) => Promise<DeliveryAttemptResult>;
31
+ subscribeToResume?: (resume: () => void) => (() => void) | void;
32
+ }