@bloomneo/appkit 1.2.9

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 (262) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +902 -0
  3. package/bin/appkit.js +71 -0
  4. package/bin/commands/generate.js +1050 -0
  5. package/bin/templates/backend/README.md.template +39 -0
  6. package/bin/templates/backend/api.http.template +0 -0
  7. package/bin/templates/backend/docs/APPKIT_CLI.md +507 -0
  8. package/bin/templates/backend/docs/APPKIT_COMMENTS_GUIDELINES.md +61 -0
  9. package/bin/templates/backend/docs/APPKIT_LLM_GUIDE.md +2539 -0
  10. package/bin/templates/backend/package.json.template +34 -0
  11. package/bin/templates/backend/src/api/features/welcome/welcome.http.template +29 -0
  12. package/bin/templates/backend/src/api/features/welcome/welcome.route.ts.template +36 -0
  13. package/bin/templates/backend/src/api/features/welcome/welcome.service.ts.template +88 -0
  14. package/bin/templates/backend/src/api/features/welcome/welcome.types.ts.template +18 -0
  15. package/bin/templates/backend/src/api/lib/api-router.ts.template +84 -0
  16. package/bin/templates/backend/src/api/server.ts.template +188 -0
  17. package/bin/templates/backend/tsconfig.api.json.template +24 -0
  18. package/bin/templates/backend/tsconfig.json.template +40 -0
  19. package/bin/templates/feature/feature.http.template +63 -0
  20. package/bin/templates/feature/feature.route.ts.template +36 -0
  21. package/bin/templates/feature/feature.service.ts.template +81 -0
  22. package/bin/templates/feature/feature.types.ts.template +23 -0
  23. package/bin/templates/feature-db/feature.http.template +63 -0
  24. package/bin/templates/feature-db/feature.model.ts.template +74 -0
  25. package/bin/templates/feature-db/feature.route.ts.template +58 -0
  26. package/bin/templates/feature-db/feature.service.ts.template +231 -0
  27. package/bin/templates/feature-db/feature.types.ts.template +25 -0
  28. package/bin/templates/feature-db/schema-addition.prisma.template +9 -0
  29. package/bin/templates/feature-db/seeding/README.md.template +57 -0
  30. package/bin/templates/feature-db/seeding/feature.seed.js.template +67 -0
  31. package/bin/templates/feature-user/schema-addition.prisma.template +19 -0
  32. package/bin/templates/feature-user/user.http.template +157 -0
  33. package/bin/templates/feature-user/user.model.ts.template +244 -0
  34. package/bin/templates/feature-user/user.route.ts.template +379 -0
  35. package/bin/templates/feature-user/user.seed.js.template +182 -0
  36. package/bin/templates/feature-user/user.service.ts.template +426 -0
  37. package/bin/templates/feature-user/user.types.ts.template +127 -0
  38. package/dist/auth/auth.d.ts +182 -0
  39. package/dist/auth/auth.d.ts.map +1 -0
  40. package/dist/auth/auth.js +477 -0
  41. package/dist/auth/auth.js.map +1 -0
  42. package/dist/auth/defaults.d.ts +104 -0
  43. package/dist/auth/defaults.d.ts.map +1 -0
  44. package/dist/auth/defaults.js +374 -0
  45. package/dist/auth/defaults.js.map +1 -0
  46. package/dist/auth/index.d.ts +70 -0
  47. package/dist/auth/index.d.ts.map +1 -0
  48. package/dist/auth/index.js +94 -0
  49. package/dist/auth/index.js.map +1 -0
  50. package/dist/cache/cache.d.ts +118 -0
  51. package/dist/cache/cache.d.ts.map +1 -0
  52. package/dist/cache/cache.js +249 -0
  53. package/dist/cache/cache.js.map +1 -0
  54. package/dist/cache/defaults.d.ts +63 -0
  55. package/dist/cache/defaults.d.ts.map +1 -0
  56. package/dist/cache/defaults.js +193 -0
  57. package/dist/cache/defaults.js.map +1 -0
  58. package/dist/cache/index.d.ts +101 -0
  59. package/dist/cache/index.d.ts.map +1 -0
  60. package/dist/cache/index.js +203 -0
  61. package/dist/cache/index.js.map +1 -0
  62. package/dist/cache/strategies/memory.d.ts +138 -0
  63. package/dist/cache/strategies/memory.d.ts.map +1 -0
  64. package/dist/cache/strategies/memory.js +348 -0
  65. package/dist/cache/strategies/memory.js.map +1 -0
  66. package/dist/cache/strategies/redis.d.ts +105 -0
  67. package/dist/cache/strategies/redis.d.ts.map +1 -0
  68. package/dist/cache/strategies/redis.js +318 -0
  69. package/dist/cache/strategies/redis.js.map +1 -0
  70. package/dist/config/config.d.ts +62 -0
  71. package/dist/config/config.d.ts.map +1 -0
  72. package/dist/config/config.js +107 -0
  73. package/dist/config/config.js.map +1 -0
  74. package/dist/config/defaults.d.ts +44 -0
  75. package/dist/config/defaults.d.ts.map +1 -0
  76. package/dist/config/defaults.js +217 -0
  77. package/dist/config/defaults.js.map +1 -0
  78. package/dist/config/index.d.ts +105 -0
  79. package/dist/config/index.d.ts.map +1 -0
  80. package/dist/config/index.js +163 -0
  81. package/dist/config/index.js.map +1 -0
  82. package/dist/database/adapters/mongoose.d.ts +106 -0
  83. package/dist/database/adapters/mongoose.d.ts.map +1 -0
  84. package/dist/database/adapters/mongoose.js +480 -0
  85. package/dist/database/adapters/mongoose.js.map +1 -0
  86. package/dist/database/adapters/prisma.d.ts +106 -0
  87. package/dist/database/adapters/prisma.d.ts.map +1 -0
  88. package/dist/database/adapters/prisma.js +494 -0
  89. package/dist/database/adapters/prisma.js.map +1 -0
  90. package/dist/database/defaults.d.ts +87 -0
  91. package/dist/database/defaults.d.ts.map +1 -0
  92. package/dist/database/defaults.js +271 -0
  93. package/dist/database/defaults.js.map +1 -0
  94. package/dist/database/index.d.ts +137 -0
  95. package/dist/database/index.d.ts.map +1 -0
  96. package/dist/database/index.js +490 -0
  97. package/dist/database/index.js.map +1 -0
  98. package/dist/email/defaults.d.ts +100 -0
  99. package/dist/email/defaults.d.ts.map +1 -0
  100. package/dist/email/defaults.js +400 -0
  101. package/dist/email/defaults.js.map +1 -0
  102. package/dist/email/email.d.ts +139 -0
  103. package/dist/email/email.d.ts.map +1 -0
  104. package/dist/email/email.js +316 -0
  105. package/dist/email/email.js.map +1 -0
  106. package/dist/email/index.d.ts +176 -0
  107. package/dist/email/index.d.ts.map +1 -0
  108. package/dist/email/index.js +251 -0
  109. package/dist/email/index.js.map +1 -0
  110. package/dist/email/strategies/console.d.ts +90 -0
  111. package/dist/email/strategies/console.d.ts.map +1 -0
  112. package/dist/email/strategies/console.js +268 -0
  113. package/dist/email/strategies/console.js.map +1 -0
  114. package/dist/email/strategies/resend.d.ts +84 -0
  115. package/dist/email/strategies/resend.d.ts.map +1 -0
  116. package/dist/email/strategies/resend.js +266 -0
  117. package/dist/email/strategies/resend.js.map +1 -0
  118. package/dist/email/strategies/smtp.d.ts +77 -0
  119. package/dist/email/strategies/smtp.d.ts.map +1 -0
  120. package/dist/email/strategies/smtp.js +286 -0
  121. package/dist/email/strategies/smtp.js.map +1 -0
  122. package/dist/error/defaults.d.ts +40 -0
  123. package/dist/error/defaults.d.ts.map +1 -0
  124. package/dist/error/defaults.js +75 -0
  125. package/dist/error/defaults.js.map +1 -0
  126. package/dist/error/error.d.ts +140 -0
  127. package/dist/error/error.d.ts.map +1 -0
  128. package/dist/error/error.js +200 -0
  129. package/dist/error/error.js.map +1 -0
  130. package/dist/error/index.d.ts +145 -0
  131. package/dist/error/index.d.ts.map +1 -0
  132. package/dist/error/index.js +145 -0
  133. package/dist/error/index.js.map +1 -0
  134. package/dist/event/defaults.d.ts +111 -0
  135. package/dist/event/defaults.d.ts.map +1 -0
  136. package/dist/event/defaults.js +378 -0
  137. package/dist/event/defaults.js.map +1 -0
  138. package/dist/event/event.d.ts +171 -0
  139. package/dist/event/event.d.ts.map +1 -0
  140. package/dist/event/event.js +391 -0
  141. package/dist/event/event.js.map +1 -0
  142. package/dist/event/index.d.ts +173 -0
  143. package/dist/event/index.d.ts.map +1 -0
  144. package/dist/event/index.js +302 -0
  145. package/dist/event/index.js.map +1 -0
  146. package/dist/event/strategies/memory.d.ts +122 -0
  147. package/dist/event/strategies/memory.d.ts.map +1 -0
  148. package/dist/event/strategies/memory.js +331 -0
  149. package/dist/event/strategies/memory.js.map +1 -0
  150. package/dist/event/strategies/redis.d.ts +115 -0
  151. package/dist/event/strategies/redis.d.ts.map +1 -0
  152. package/dist/event/strategies/redis.js +434 -0
  153. package/dist/event/strategies/redis.js.map +1 -0
  154. package/dist/index.d.ts +58 -0
  155. package/dist/index.d.ts.map +1 -0
  156. package/dist/index.js +72 -0
  157. package/dist/index.js.map +1 -0
  158. package/dist/logger/defaults.d.ts +67 -0
  159. package/dist/logger/defaults.d.ts.map +1 -0
  160. package/dist/logger/defaults.js +213 -0
  161. package/dist/logger/defaults.js.map +1 -0
  162. package/dist/logger/index.d.ts +84 -0
  163. package/dist/logger/index.d.ts.map +1 -0
  164. package/dist/logger/index.js +101 -0
  165. package/dist/logger/index.js.map +1 -0
  166. package/dist/logger/logger.d.ts +165 -0
  167. package/dist/logger/logger.d.ts.map +1 -0
  168. package/dist/logger/logger.js +843 -0
  169. package/dist/logger/logger.js.map +1 -0
  170. package/dist/logger/transports/console.d.ts +102 -0
  171. package/dist/logger/transports/console.d.ts.map +1 -0
  172. package/dist/logger/transports/console.js +276 -0
  173. package/dist/logger/transports/console.js.map +1 -0
  174. package/dist/logger/transports/database.d.ts +153 -0
  175. package/dist/logger/transports/database.d.ts.map +1 -0
  176. package/dist/logger/transports/database.js +539 -0
  177. package/dist/logger/transports/database.js.map +1 -0
  178. package/dist/logger/transports/file.d.ts +146 -0
  179. package/dist/logger/transports/file.d.ts.map +1 -0
  180. package/dist/logger/transports/file.js +464 -0
  181. package/dist/logger/transports/file.js.map +1 -0
  182. package/dist/logger/transports/http.d.ts +128 -0
  183. package/dist/logger/transports/http.d.ts.map +1 -0
  184. package/dist/logger/transports/http.js +401 -0
  185. package/dist/logger/transports/http.js.map +1 -0
  186. package/dist/logger/transports/webhook.d.ts +152 -0
  187. package/dist/logger/transports/webhook.d.ts.map +1 -0
  188. package/dist/logger/transports/webhook.js +485 -0
  189. package/dist/logger/transports/webhook.js.map +1 -0
  190. package/dist/queue/defaults.d.ts +66 -0
  191. package/dist/queue/defaults.d.ts.map +1 -0
  192. package/dist/queue/defaults.js +205 -0
  193. package/dist/queue/defaults.js.map +1 -0
  194. package/dist/queue/index.d.ts +124 -0
  195. package/dist/queue/index.d.ts.map +1 -0
  196. package/dist/queue/index.js +116 -0
  197. package/dist/queue/index.js.map +1 -0
  198. package/dist/queue/queue.d.ts +156 -0
  199. package/dist/queue/queue.d.ts.map +1 -0
  200. package/dist/queue/queue.js +387 -0
  201. package/dist/queue/queue.js.map +1 -0
  202. package/dist/queue/transports/database.d.ts +165 -0
  203. package/dist/queue/transports/database.d.ts.map +1 -0
  204. package/dist/queue/transports/database.js +595 -0
  205. package/dist/queue/transports/database.js.map +1 -0
  206. package/dist/queue/transports/memory.d.ts +143 -0
  207. package/dist/queue/transports/memory.d.ts.map +1 -0
  208. package/dist/queue/transports/memory.js +415 -0
  209. package/dist/queue/transports/memory.js.map +1 -0
  210. package/dist/queue/transports/redis.d.ts +203 -0
  211. package/dist/queue/transports/redis.d.ts.map +1 -0
  212. package/dist/queue/transports/redis.js +744 -0
  213. package/dist/queue/transports/redis.js.map +1 -0
  214. package/dist/security/defaults.d.ts +64 -0
  215. package/dist/security/defaults.d.ts.map +1 -0
  216. package/dist/security/defaults.js +159 -0
  217. package/dist/security/defaults.js.map +1 -0
  218. package/dist/security/index.d.ts +110 -0
  219. package/dist/security/index.d.ts.map +1 -0
  220. package/dist/security/index.js +160 -0
  221. package/dist/security/index.js.map +1 -0
  222. package/dist/security/security.d.ts +138 -0
  223. package/dist/security/security.d.ts.map +1 -0
  224. package/dist/security/security.js +419 -0
  225. package/dist/security/security.js.map +1 -0
  226. package/dist/storage/defaults.d.ts +79 -0
  227. package/dist/storage/defaults.d.ts.map +1 -0
  228. package/dist/storage/defaults.js +358 -0
  229. package/dist/storage/defaults.js.map +1 -0
  230. package/dist/storage/index.d.ts +153 -0
  231. package/dist/storage/index.d.ts.map +1 -0
  232. package/dist/storage/index.js +242 -0
  233. package/dist/storage/index.js.map +1 -0
  234. package/dist/storage/storage.d.ts +151 -0
  235. package/dist/storage/storage.d.ts.map +1 -0
  236. package/dist/storage/storage.js +439 -0
  237. package/dist/storage/storage.js.map +1 -0
  238. package/dist/storage/strategies/local.d.ts +117 -0
  239. package/dist/storage/strategies/local.d.ts.map +1 -0
  240. package/dist/storage/strategies/local.js +368 -0
  241. package/dist/storage/strategies/local.js.map +1 -0
  242. package/dist/storage/strategies/r2.d.ts +130 -0
  243. package/dist/storage/strategies/r2.d.ts.map +1 -0
  244. package/dist/storage/strategies/r2.js +470 -0
  245. package/dist/storage/strategies/r2.js.map +1 -0
  246. package/dist/storage/strategies/s3.d.ts +121 -0
  247. package/dist/storage/strategies/s3.d.ts.map +1 -0
  248. package/dist/storage/strategies/s3.js +461 -0
  249. package/dist/storage/strategies/s3.js.map +1 -0
  250. package/dist/util/defaults.d.ts +77 -0
  251. package/dist/util/defaults.d.ts.map +1 -0
  252. package/dist/util/defaults.js +193 -0
  253. package/dist/util/defaults.js.map +1 -0
  254. package/dist/util/index.d.ts +97 -0
  255. package/dist/util/index.d.ts.map +1 -0
  256. package/dist/util/index.js +165 -0
  257. package/dist/util/index.js.map +1 -0
  258. package/dist/util/util.d.ts +145 -0
  259. package/dist/util/util.d.ts.map +1 -0
  260. package/dist/util/util.js +481 -0
  261. package/dist/util/util.js.map +1 -0
  262. package/package.json +234 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Console transport with smart formatting, minimal mode support, and visual error enhancement
3
+ * @module @bloomneo/appkit/loggier
4
+ * @file src/logger/transports/console.ts
5
+ *
6
+ * @llm-rule WHEN: Need console output for development or production monitoring
7
+ * @llm-rule AVOID: Using console.log directly - this handles levels, colors, and formatting
8
+ * @llm-rule NOTE: Auto-detects production/development mode and adjusts formatting accordingly
9
+ * @llm-rule NOTE: Enhanced to work with visual error formatting from loggerClass.error() method
10
+ */
11
+ import type { LogEntry, Transport } from '../logger.js';
12
+ import type { LoggingConfig } from '../defaults.js';
13
+ /**
14
+ * Console transport with automatic formatting and smart minimal mode
15
+ */
16
+ export declare class ConsoleTransport implements Transport {
17
+ private colorize;
18
+ private timestamps;
19
+ private prettyPrint;
20
+ private minimal;
21
+ /**
22
+ * Creates console transport with direct environment access (like auth pattern)
23
+ * @llm-rule WHEN: Logger initialization - gets config from environment defaults
24
+ * @llm-rule AVOID: Manual configuration - environment detection handles this
25
+ */
26
+ constructor(config: LoggingConfig);
27
+ /**
28
+ * Write log entry to console with smart formatting
29
+ * @llm-rule WHEN: Outputting logs to console for development or production
30
+ * @llm-rule AVOID: Calling directly - logger routes entries automatically
31
+ * @llm-rule NOTE: Skips visual error entries since they're handled by loggerClass.error() method directly
32
+ */
33
+ write(entry: LogEntry): void;
34
+ /**
35
+ * Check if entry should be skipped because it was already visually displayed
36
+ * @llm-rule WHEN: Enhanced error() method has already shown visual formatting
37
+ * @llm-rule AVOID: Double-displaying errors that have visual formatting
38
+ */
39
+ private shouldSkipVisualEntry;
40
+ /**
41
+ * Format for minimal mode - clean and simple, all logs visible
42
+ * @llm-rule WHEN: Development mode with minimal scope for clean console
43
+ * @llm-rule AVOID: Adding JSON metadata - defeats purpose of minimal mode
44
+ * @llm-rule NOTE: Shows all logs but with clean formatting, no filtering
45
+ */
46
+ private formatMinimal;
47
+ /**
48
+ * Format for pretty development mode - full detail with JSON structure
49
+ * @llm-rule WHEN: Development mode with full scope for detailed debugging
50
+ * @llm-rule AVOID: In production - too verbose for production logs
51
+ */
52
+ private formatPretty;
53
+ /**
54
+ * Format for standard/production mode - structured but compact
55
+ * @llm-rule WHEN: Production or when structured logs needed for parsing
56
+ * @llm-rule AVOID: For development debugging - pretty mode is better
57
+ */
58
+ private formatStandard;
59
+ /**
60
+ * Get level label with emoji for visual identification
61
+ * @llm-rule WHEN: Pretty or minimal formatting needs visual level indicators
62
+ * @llm-rule AVOID: In production structured logs - use level text instead
63
+ */
64
+ private getLevelLabel;
65
+ /**
66
+ * Apply ANSI color codes for terminal output
67
+ * @llm-rule WHEN: Development mode or when terminal supports colors
68
+ * @llm-rule AVOID: In CI/CD or when colors not supported
69
+ */
70
+ private applyColor;
71
+ /**
72
+ * Output to appropriate console method based on level
73
+ * @llm-rule WHEN: Final console output step
74
+ * @llm-rule AVOID: Always using console.log - different levels use different methods
75
+ */
76
+ private outputToConsole;
77
+ /**
78
+ * Get numeric value for log level comparison
79
+ * @llm-rule WHEN: Comparing log levels for filtering
80
+ * @llm-rule AVOID: String comparison - numeric is more reliable
81
+ */
82
+ private getLevelValue;
83
+ /**
84
+ * Check if this transport should log the given level
85
+ * @llm-rule WHEN: Logger asks if transport handles this level
86
+ * @llm-rule AVOID: Complex level logic - simple comparison is sufficient
87
+ */
88
+ shouldLog(level: string, configLevel: string): boolean;
89
+ /**
90
+ * Flush pending logs (no-op for console - immediate output)
91
+ * @llm-rule WHEN: Logger cleanup or app shutdown
92
+ * @llm-rule AVOID: Expecting async behavior - console writes immediately
93
+ */
94
+ flush(): Promise<void>;
95
+ /**
96
+ * Close transport (no-op for console - no resources to cleanup)
97
+ * @llm-rule WHEN: Logger shutdown or transport cleanup
98
+ * @llm-rule AVOID: Expecting cleanup behavior - console has no resources
99
+ */
100
+ close(): Promise<void>;
101
+ }
102
+ //# sourceMappingURL=console.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../../src/logger/transports/console.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;GAEG;AACH,qBAAa,gBAAiB,YAAW,SAAS;IAChD,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,OAAO,CAAU;IAEzB;;;;OAIG;gBACS,MAAM,EAAE,aAAa;IAQjC;;;;;OAKG;IACH,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAiC5B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAsDrB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAyBpB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAoBtB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAUrB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAYlB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAoBvB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAOrB;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;IAOtD;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAI7B"}
@@ -0,0 +1,276 @@
1
+ /**
2
+ * Console transport with smart formatting, minimal mode support, and visual error enhancement
3
+ * @module @bloomneo/appkit/loggier
4
+ * @file src/logger/transports/console.ts
5
+ *
6
+ * @llm-rule WHEN: Need console output for development or production monitoring
7
+ * @llm-rule AVOID: Using console.log directly - this handles levels, colors, and formatting
8
+ * @llm-rule NOTE: Auto-detects production/development mode and adjusts formatting accordingly
9
+ * @llm-rule NOTE: Enhanced to work with visual error formatting from loggerClass.error() method
10
+ */
11
+ /**
12
+ * Console transport with automatic formatting and smart minimal mode
13
+ */
14
+ export class ConsoleTransport {
15
+ colorize;
16
+ timestamps;
17
+ prettyPrint;
18
+ minimal;
19
+ /**
20
+ * Creates console transport with direct environment access (like auth pattern)
21
+ * @llm-rule WHEN: Logger initialization - gets config from environment defaults
22
+ * @llm-rule AVOID: Manual configuration - environment detection handles this
23
+ */
24
+ constructor(config) {
25
+ // Direct access to config (like auth module pattern)
26
+ this.colorize = config.console.colorize;
27
+ this.timestamps = config.console.timestamps;
28
+ this.prettyPrint = config.console.prettyPrint;
29
+ this.minimal = config.minimal;
30
+ }
31
+ /**
32
+ * Write log entry to console with smart formatting
33
+ * @llm-rule WHEN: Outputting logs to console for development or production
34
+ * @llm-rule AVOID: Calling directly - logger routes entries automatically
35
+ * @llm-rule NOTE: Skips visual error entries since they're handled by loggerClass.error() method directly
36
+ */
37
+ write(entry) {
38
+ try {
39
+ // Skip entries that have already been visually displayed by enhanced error() method
40
+ if (this.shouldSkipVisualEntry(entry)) {
41
+ return;
42
+ }
43
+ // Format based on mode
44
+ let output;
45
+ if (this.minimal) {
46
+ // Minimal: clean format, no JSON metadata, all logs visible
47
+ output = this.formatMinimal(entry);
48
+ }
49
+ else if (this.prettyPrint) {
50
+ // Full scope with pretty JSON metadata for debugging
51
+ output = this.formatPretty(entry);
52
+ }
53
+ else {
54
+ // Standard format with compact JSON for production
55
+ output = this.formatStandard(entry);
56
+ }
57
+ // Apply colors if enabled
58
+ if (this.colorize) {
59
+ output = this.applyColor(output, entry.level);
60
+ }
61
+ // Output to appropriate console method
62
+ this.outputToConsole(output, entry.level);
63
+ }
64
+ catch (error) {
65
+ // Never let logging break the application
66
+ console.error('Console transport error:', error.message);
67
+ }
68
+ }
69
+ /**
70
+ * Check if entry should be skipped because it was already visually displayed
71
+ * @llm-rule WHEN: Enhanced error() method has already shown visual formatting
72
+ * @llm-rule AVOID: Double-displaying errors that have visual formatting
73
+ */
74
+ shouldSkipVisualEntry(entry) {
75
+ // Skip error entries in development that have visual formatting metadata
76
+ const isDevelopment = process.env.NODE_ENV === 'development';
77
+ const hasVisualFormatting = entry.level === 'error' &&
78
+ (entry.errorType === 'DISPLAY_ERROR' ||
79
+ entry.category ||
80
+ entry.feature);
81
+ // In development, if the enhanced error() method showed visual formatting,
82
+ // we can skip the regular console output to avoid duplication
83
+ const shouldShowVisual = isDevelopment ||
84
+ !this.minimal ||
85
+ process.env.VOILA_VISUAL_ERRORS === 'true';
86
+ return shouldShowVisual && hasVisualFormatting;
87
+ }
88
+ /**
89
+ * Format for minimal mode - clean and simple, all logs visible
90
+ * @llm-rule WHEN: Development mode with minimal scope for clean console
91
+ * @llm-rule AVOID: Adding JSON metadata - defeats purpose of minimal mode
92
+ * @llm-rule NOTE: Shows all logs but with clean formatting, no filtering
93
+ */
94
+ formatMinimal(entry) {
95
+ const { level, message, component, error, _location, timestamp } = entry;
96
+ // Clean timestamp - just time, no date or timezone
97
+ const cleanTime = new Date(timestamp).toLocaleTimeString('en-US', {
98
+ hour12: false,
99
+ hour: '2-digit',
100
+ minute: '2-digit',
101
+ second: '2-digit'
102
+ });
103
+ // Special handling for VoilaJSX startup messages (keep them prominent)
104
+ if (message && (message.includes('✨') || message.includes('🚀') || message.includes('👋'))) {
105
+ return `${cleanTime} ${message}`;
106
+ }
107
+ // Errors and warnings get enhanced formatting
108
+ if (level === 'error' || level === 'warn') {
109
+ let formatted = `${cleanTime} ${this.getLevelLabel(level)} ${message}`;
110
+ // Show location for errors/warnings
111
+ if (_location) {
112
+ formatted += ` (${_location})`;
113
+ }
114
+ if (component) {
115
+ formatted += ` [${component}]`;
116
+ }
117
+ // Add error details if present
118
+ if (error) {
119
+ const errorMsg = typeof error === 'object' ? error.message || error : error;
120
+ formatted += `\n ${errorMsg}`;
121
+ }
122
+ return formatted;
123
+ }
124
+ // For info/debug logs - clean format with essential info
125
+ let formatted = `${cleanTime} ${message}`;
126
+ // Add location for debugging (shows exactly where log came from)
127
+ if (_location) {
128
+ formatted += ` (${_location})`;
129
+ }
130
+ // Add component tag for filtering/context
131
+ if (component) {
132
+ formatted += ` [${component}]`;
133
+ }
134
+ return formatted;
135
+ }
136
+ /**
137
+ * Format for pretty development mode - full detail with JSON structure
138
+ * @llm-rule WHEN: Development mode with full scope for detailed debugging
139
+ * @llm-rule AVOID: In production - too verbose for production logs
140
+ */
141
+ formatPretty(entry) {
142
+ const { timestamp, level, message, ...meta } = entry;
143
+ let formatted = '';
144
+ if (this.timestamps) {
145
+ formatted += `${timestamp} `;
146
+ }
147
+ formatted += `${this.getLevelLabel(level)} ${message}`;
148
+ // Show location in pretty format for errors
149
+ if (level === 'error' && entry._location) {
150
+ formatted += `\n 📍 ${entry._location}`;
151
+ }
152
+ // Add pretty-printed metadata if present (excluding internal fields)
153
+ const { _location, errorType, ...displayMeta } = meta;
154
+ const metaKeys = Object.keys(displayMeta);
155
+ if (metaKeys.length > 0) {
156
+ formatted += '\n' + JSON.stringify(displayMeta, null, 2);
157
+ }
158
+ return formatted;
159
+ }
160
+ /**
161
+ * Format for standard/production mode - structured but compact
162
+ * @llm-rule WHEN: Production or when structured logs needed for parsing
163
+ * @llm-rule AVOID: For development debugging - pretty mode is better
164
+ */
165
+ formatStandard(entry) {
166
+ const { timestamp, level, message, ...meta } = entry;
167
+ let formatted = '';
168
+ if (this.timestamps) {
169
+ formatted += `${timestamp} `;
170
+ }
171
+ formatted += `[${level.toUpperCase()}] ${message}`;
172
+ // Add compact metadata if present (excluding internal fields)
173
+ const { _location, errorType, ...displayMeta } = meta;
174
+ const metaKeys = Object.keys(displayMeta);
175
+ if (metaKeys.length > 0) {
176
+ formatted += ` ${JSON.stringify(displayMeta)}`;
177
+ }
178
+ return formatted;
179
+ }
180
+ /**
181
+ * Get level label with emoji for visual identification
182
+ * @llm-rule WHEN: Pretty or minimal formatting needs visual level indicators
183
+ * @llm-rule AVOID: In production structured logs - use level text instead
184
+ */
185
+ getLevelLabel(level) {
186
+ const labels = {
187
+ error: '❌ ERROR',
188
+ warn: '⚠️ WARN',
189
+ info: 'ℹ️ INFO',
190
+ debug: '🐛 DEBUG',
191
+ };
192
+ return labels[level] || level.toUpperCase();
193
+ }
194
+ /**
195
+ * Apply ANSI color codes for terminal output
196
+ * @llm-rule WHEN: Development mode or when terminal supports colors
197
+ * @llm-rule AVOID: In CI/CD or when colors not supported
198
+ */
199
+ applyColor(output, level) {
200
+ const colors = {
201
+ error: '\x1b[31m', // Red
202
+ warn: '\x1b[33m', // Yellow
203
+ info: '\x1b[36m', // Cyan
204
+ debug: '\x1b[90m', // Gray
205
+ };
206
+ const reset = '\x1b[0m';
207
+ const color = colors[level] || '';
208
+ return `${color}${output}${reset}`;
209
+ }
210
+ /**
211
+ * Output to appropriate console method based on level
212
+ * @llm-rule WHEN: Final console output step
213
+ * @llm-rule AVOID: Always using console.log - different levels use different methods
214
+ */
215
+ outputToConsole(output, level) {
216
+ switch (level) {
217
+ case 'error':
218
+ console.error(output);
219
+ break;
220
+ case 'warn':
221
+ console.warn(output);
222
+ break;
223
+ case 'debug':
224
+ if (typeof console.debug === 'function') {
225
+ console.debug(output);
226
+ }
227
+ else {
228
+ console.log(output);
229
+ }
230
+ break;
231
+ default:
232
+ console.log(output);
233
+ }
234
+ }
235
+ /**
236
+ * Get numeric value for log level comparison
237
+ * @llm-rule WHEN: Comparing log levels for filtering
238
+ * @llm-rule AVOID: String comparison - numeric is more reliable
239
+ */
240
+ getLevelValue(level) {
241
+ const levels = {
242
+ error: 0, warn: 1, info: 2, debug: 3
243
+ };
244
+ return levels[level] || 3;
245
+ }
246
+ /**
247
+ * Check if this transport should log the given level
248
+ * @llm-rule WHEN: Logger asks if transport handles this level
249
+ * @llm-rule AVOID: Complex level logic - simple comparison is sufficient
250
+ */
251
+ shouldLog(level, configLevel) {
252
+ const levels = {
253
+ error: 0, warn: 1, info: 2, debug: 3
254
+ };
255
+ return levels[level] <= levels[configLevel];
256
+ }
257
+ /**
258
+ * Flush pending logs (no-op for console - immediate output)
259
+ * @llm-rule WHEN: Logger cleanup or app shutdown
260
+ * @llm-rule AVOID: Expecting async behavior - console writes immediately
261
+ */
262
+ async flush() {
263
+ // Console transport writes immediately, no buffering
264
+ return Promise.resolve();
265
+ }
266
+ /**
267
+ * Close transport (no-op for console - no resources to cleanup)
268
+ * @llm-rule WHEN: Logger shutdown or transport cleanup
269
+ * @llm-rule AVOID: Expecting cleanup behavior - console has no resources
270
+ */
271
+ async close() {
272
+ // Console transport has no resources to clean up
273
+ return Promise.resolve();
274
+ }
275
+ }
276
+ //# sourceMappingURL=console.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console.js","sourceRoot":"","sources":["../../../src/logger/transports/console.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Database transport with automatic connection management and batch processing
3
+ * @module @bloomneo/appkit/logger
4
+ * @file src/logger/transports/database.ts
5
+ *
6
+ * @llm-rule WHEN: Need centralized log storage with database persistence
7
+ * @llm-rule AVOID: Manual database setup - auto-detects from DATABASE_URL and creates tables
8
+ * @llm-rule NOTE: Supports PostgreSQL, MySQL, SQLite with automatic batching and retry logic
9
+ */
10
+ import type { LogEntry, Transport } from '../logger.js';
11
+ import type { LoggingConfig } from '../defaults.js';
12
+ /**
13
+ * Database transport with automatic connection and table management
14
+ */
15
+ export declare class DatabaseTransport implements Transport {
16
+ private url;
17
+ private table;
18
+ private batchSize;
19
+ private minimal;
20
+ private client;
21
+ private connected;
22
+ private batch;
23
+ private flushTimer;
24
+ private dbType;
25
+ /**
26
+ * Creates database transport with direct environment access (like auth pattern)
27
+ * @llm-rule WHEN: Logger initialization with DATABASE_URL environment variable
28
+ * @llm-rule AVOID: Manual database configuration - environment detection handles this
29
+ * @llm-rule NOTE: Auto-detects database type from URL and creates appropriate connection
30
+ */
31
+ constructor(config: LoggingConfig);
32
+ /**
33
+ * Detect database type from connection URL
34
+ * @llm-rule WHEN: Determining which database client to use
35
+ * @llm-rule AVOID: Manual database type configuration - URL detection is automatic
36
+ */
37
+ private detectDatabaseType;
38
+ /**
39
+ * Initialize database transport with connection and table setup
40
+ * @llm-rule WHEN: Transport creation - establishes connection and ensures table exists
41
+ * @llm-rule AVOID: Calling manually - constructor handles initialization
42
+ */
43
+ private initialize;
44
+ /**
45
+ * Write log entry to database via batching
46
+ * @llm-rule WHEN: Storing logs to database for centralized logging
47
+ * @llm-rule AVOID: Calling directly - logger routes entries automatically
48
+ */
49
+ write(entry: LogEntry): void;
50
+ /**
51
+ * Optimize log entry for database storage
52
+ * @llm-rule WHEN: Reducing database storage size and improving query performance
53
+ * @llm-rule AVOID: Always using full entries - minimal scope reduces storage significantly
54
+ */
55
+ private optimizeEntry;
56
+ /**
57
+ * Filter metadata for essential correlation fields
58
+ * @llm-rule WHEN: Keeping database size manageable while preserving correlation data
59
+ * @llm-rule AVOID: Storing all metadata - focus on correlation and debugging fields
60
+ */
61
+ private filterEssentialMeta;
62
+ /**
63
+ * Connect to database with appropriate client
64
+ * @llm-rule WHEN: Establishing database connection based on detected type
65
+ * @llm-rule AVOID: Manual connection setup - auto-detection handles client selection
66
+ */
67
+ private connect;
68
+ /**
69
+ * Connect to PostgreSQL database
70
+ * @llm-rule WHEN: DATABASE_URL starts with postgres:// or postgresql://
71
+ * @llm-rule AVOID: Manual PostgreSQL setup - uses standard pg client
72
+ */
73
+ private connectPostgres;
74
+ /**
75
+ * Connect to MySQL database
76
+ * @llm-rule WHEN: DATABASE_URL starts with mysql://
77
+ * @llm-rule AVOID: Manual MySQL setup - uses standard mysql2 client
78
+ */
79
+ private connectMySQL;
80
+ /**
81
+ * Connect to SQLite database
82
+ * @llm-rule WHEN: DATABASE_URL starts with sqlite://
83
+ * @llm-rule AVOID: Manual SQLite setup - uses standard sqlite3 client
84
+ */
85
+ private connectSQLite;
86
+ /**
87
+ * Ensure logs table exists with optimized schema
88
+ * @llm-rule WHEN: Database connection established - creates table if needed
89
+ * @llm-rule AVOID: Manual table creation - automatic schema handles different databases
90
+ */
91
+ private ensureTableExists;
92
+ /**
93
+ * Get CREATE TABLE SQL for current database type
94
+ * @llm-rule WHEN: Creating logs table with database-specific optimizations
95
+ * @llm-rule AVOID: Generic SQL - each database has optimal data types and indexes
96
+ */
97
+ private getCreateTableSQL;
98
+ /**
99
+ * Execute database query with error handling
100
+ * @llm-rule WHEN: Running SQL queries against the database
101
+ * @llm-rule AVOID: Direct client usage - this handles database-specific differences
102
+ */
103
+ private executeQuery;
104
+ /**
105
+ * Setup automatic batch flushing
106
+ * @llm-rule WHEN: Transport initialization - ensures logs are written regularly
107
+ * @llm-rule AVOID: Manual flushing - automatic batching improves performance
108
+ */
109
+ private setupBatchFlush;
110
+ /**
111
+ * Flush current batch to database
112
+ * @llm-rule WHEN: Batch is full or timer triggers
113
+ * @llm-rule AVOID: Individual inserts - batching significantly improves performance
114
+ */
115
+ private flushBatch;
116
+ /**
117
+ * Insert batch of log entries efficiently
118
+ * @llm-rule WHEN: Batch flush with multiple log entries
119
+ * @llm-rule AVOID: Individual inserts - batch inserts are much faster
120
+ */
121
+ private insertBatch;
122
+ /**
123
+ * Insert batch for PostgreSQL with parameter placeholders
124
+ */
125
+ private insertBatchPostgres;
126
+ /**
127
+ * Insert batch for MySQL with question mark placeholders
128
+ */
129
+ private insertBatchMySQL;
130
+ /**
131
+ * Insert batch for SQLite with individual statements
132
+ */
133
+ private insertBatchSQLite;
134
+ /**
135
+ * Check if this transport should log the given level
136
+ * @llm-rule WHEN: Logger asks if transport handles this level
137
+ * @llm-rule AVOID: Complex level logic - simple comparison is sufficient
138
+ */
139
+ shouldLog(level: string, configLevel: string): boolean;
140
+ /**
141
+ * Flush pending logs to database
142
+ * @llm-rule WHEN: App shutdown or ensuring logs are persisted
143
+ * @llm-rule AVOID: Frequent flushing - impacts performance
144
+ */
145
+ flush(): Promise<void>;
146
+ /**
147
+ * Close database transport and cleanup resources
148
+ * @llm-rule WHEN: App shutdown or logger cleanup
149
+ * @llm-rule AVOID: Abrupt shutdown - graceful close prevents data loss
150
+ */
151
+ close(): Promise<void>;
152
+ }
153
+ //# sourceMappingURL=database.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../src/logger/transports/database.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;GAEG;AACH,qBAAa,iBAAkB,YAAW,SAAS;IACjD,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAU;IAGzB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,MAAM,CAA+C;IAE7D;;;;;OAKG;gBACS,MAAM,EAAE,aAAa;IAcjC;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;;;OAIG;YACW,UAAU;IAUxB;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAiB5B;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAiErB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAwB3B;;;;OAIG;YACW,OAAO;IAsBrB;;;;OAIG;YACW,eAAe;IAa7B;;;;OAIG;YACW,YAAY;IAS1B;;;;OAIG;YACW,aAAa;IAiB3B;;;;OAIG;YACW,iBAAiB;IAW/B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAyFzB;;;;OAIG;YACW,YAAY;IAyB1B;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAQvB;;;;OAIG;YACW,UAAU;IAkBxB;;;;OAIG;YACW,WAAW;IAsBzB;;OAEG;YACW,mBAAmB;IAiBjC;;OAEG;YACW,gBAAgB;IAY9B;;OAEG;YACW,iBAAiB;IAa/B;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;IAOtD;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CA8B7B"}