@vibesdotdev/logging 0.0.1

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 (393) hide show
  1. package/README.md +80 -0
  2. package/SPEC.md +65 -0
  3. package/dist/audit/audit.descriptor.d.ts +11 -0
  4. package/dist/audit/audit.descriptor.d.ts.map +1 -0
  5. package/dist/audit/audit.descriptor.js +40 -0
  6. package/dist/audit/audit.descriptor.js.map +1 -0
  7. package/dist/audit/audit.storage.schema.d.ts +79 -0
  8. package/dist/audit/audit.storage.schema.d.ts.map +1 -0
  9. package/dist/audit/audit.storage.schema.js +33 -0
  10. package/dist/audit/audit.storage.schema.js.map +1 -0
  11. package/dist/audit/index.d.ts +2 -0
  12. package/dist/audit/index.d.ts.map +1 -0
  13. package/dist/audit/index.js +2 -0
  14. package/dist/audit/index.js.map +1 -0
  15. package/dist/cli/logs.descriptor.d.ts +9 -0
  16. package/dist/cli/logs.descriptor.d.ts.map +1 -0
  17. package/dist/cli/logs.descriptor.js +16 -0
  18. package/dist/cli/logs.descriptor.js.map +1 -0
  19. package/dist/cli/logs.list.descriptor.d.ts +9 -0
  20. package/dist/cli/logs.list.descriptor.d.ts.map +1 -0
  21. package/dist/cli/logs.list.descriptor.js +23 -0
  22. package/dist/cli/logs.list.descriptor.js.map +1 -0
  23. package/dist/cli/logs.list.impl.d.ts +13 -0
  24. package/dist/cli/logs.list.impl.d.ts.map +1 -0
  25. package/dist/cli/logs.list.impl.js +81 -0
  26. package/dist/cli/logs.list.impl.js.map +1 -0
  27. package/dist/cli/logs.rotate.descriptor.d.ts +9 -0
  28. package/dist/cli/logs.rotate.descriptor.d.ts.map +1 -0
  29. package/dist/cli/logs.rotate.descriptor.js +34 -0
  30. package/dist/cli/logs.rotate.descriptor.js.map +1 -0
  31. package/dist/cli/logs.rotate.impl.d.ts +17 -0
  32. package/dist/cli/logs.rotate.impl.d.ts.map +1 -0
  33. package/dist/cli/logs.rotate.impl.js +48 -0
  34. package/dist/cli/logs.rotate.impl.js.map +1 -0
  35. package/dist/cli/logs.search.descriptor.d.ts +9 -0
  36. package/dist/cli/logs.search.descriptor.d.ts.map +1 -0
  37. package/dist/cli/logs.search.descriptor.js +55 -0
  38. package/dist/cli/logs.search.descriptor.js.map +1 -0
  39. package/dist/cli/logs.search.impl.d.ts +22 -0
  40. package/dist/cli/logs.search.impl.d.ts.map +1 -0
  41. package/dist/cli/logs.search.impl.js +145 -0
  42. package/dist/cli/logs.search.impl.js.map +1 -0
  43. package/dist/cli/logs.tail.descriptor.d.ts +9 -0
  44. package/dist/cli/logs.tail.descriptor.d.ts.map +1 -0
  45. package/dist/cli/logs.tail.descriptor.js +43 -0
  46. package/dist/cli/logs.tail.descriptor.js.map +1 -0
  47. package/dist/cli/logs.tail.impl.d.ts +19 -0
  48. package/dist/cli/logs.tail.impl.d.ts.map +1 -0
  49. package/dist/cli/logs.tail.impl.js +78 -0
  50. package/dist/cli/logs.tail.impl.js.map +1 -0
  51. package/dist/cli/logs.view.descriptor.d.ts +9 -0
  52. package/dist/cli/logs.view.descriptor.d.ts.map +1 -0
  53. package/dist/cli/logs.view.descriptor.js +51 -0
  54. package/dist/cli/logs.view.descriptor.js.map +1 -0
  55. package/dist/cli/logs.view.impl.d.ts +21 -0
  56. package/dist/cli/logs.view.impl.d.ts.map +1 -0
  57. package/dist/cli/logs.view.impl.js +85 -0
  58. package/dist/cli/logs.view.impl.js.map +1 -0
  59. package/dist/cli/types.d.ts +57 -0
  60. package/dist/cli/types.d.ts.map +1 -0
  61. package/dist/cli/types.js +9 -0
  62. package/dist/cli/types.js.map +1 -0
  63. package/dist/contexts/audit.d.ts +34 -0
  64. package/dist/contexts/audit.d.ts.map +1 -0
  65. package/dist/contexts/audit.js +13 -0
  66. package/dist/contexts/audit.js.map +1 -0
  67. package/dist/contexts/fallback-logger.d.ts +3 -0
  68. package/dist/contexts/fallback-logger.d.ts.map +1 -0
  69. package/dist/contexts/fallback-logger.js +67 -0
  70. package/dist/contexts/fallback-logger.js.map +1 -0
  71. package/dist/contexts/index.d.ts +8 -0
  72. package/dist/contexts/index.d.ts.map +1 -0
  73. package/dist/contexts/index.js +9 -0
  74. package/dist/contexts/index.js.map +1 -0
  75. package/dist/contexts/logger.d.ts +26 -0
  76. package/dist/contexts/logger.d.ts.map +1 -0
  77. package/dist/contexts/logger.js +88 -0
  78. package/dist/contexts/logger.js.map +1 -0
  79. package/dist/core/index.d.ts +9 -0
  80. package/dist/core/index.d.ts.map +1 -0
  81. package/dist/core/index.js +10 -0
  82. package/dist/core/index.js.map +1 -0
  83. package/dist/core/logger.d.ts +3 -0
  84. package/dist/core/logger.d.ts.map +1 -0
  85. package/dist/core/logger.js +118 -0
  86. package/dist/core/logger.js.map +1 -0
  87. package/dist/core/namespace.d.ts +69 -0
  88. package/dist/core/namespace.d.ts.map +1 -0
  89. package/dist/core/namespace.js +136 -0
  90. package/dist/core/namespace.js.map +1 -0
  91. package/dist/core/parsing.d.ts +3 -0
  92. package/dist/core/parsing.d.ts.map +1 -0
  93. package/dist/core/parsing.js +25 -0
  94. package/dist/core/parsing.js.map +1 -0
  95. package/dist/core/types.d.ts +69 -0
  96. package/dist/core/types.d.ts.map +1 -0
  97. package/dist/core/types.js +7 -0
  98. package/dist/core/types.js.map +1 -0
  99. package/dist/docs/levels.docs.descriptor.d.ts +4 -0
  100. package/dist/docs/levels.docs.descriptor.d.ts.map +1 -0
  101. package/dist/docs/levels.docs.descriptor.js +342 -0
  102. package/dist/docs/levels.docs.descriptor.js.map +1 -0
  103. package/dist/docs/structured.docs.descriptor.d.ts +4 -0
  104. package/dist/docs/structured.docs.descriptor.d.ts.map +1 -0
  105. package/dist/docs/structured.docs.descriptor.js +442 -0
  106. package/dist/docs/structured.docs.descriptor.js.map +1 -0
  107. package/dist/docs/transports.docs.descriptor.d.ts +4 -0
  108. package/dist/docs/transports.docs.descriptor.d.ts.map +1 -0
  109. package/dist/docs/transports.docs.descriptor.js +426 -0
  110. package/dist/docs/transports.docs.descriptor.js.map +1 -0
  111. package/dist/formatters/index.d.ts +7 -0
  112. package/dist/formatters/index.d.ts.map +1 -0
  113. package/dist/formatters/index.js +8 -0
  114. package/dist/formatters/index.js.map +1 -0
  115. package/dist/formatters/json/json.formatters.descriptor.d.ts +9 -0
  116. package/dist/formatters/json/json.formatters.descriptor.d.ts.map +1 -0
  117. package/dist/formatters/json/json.formatters.descriptor.js +22 -0
  118. package/dist/formatters/json/json.formatters.descriptor.js.map +1 -0
  119. package/dist/formatters/json/json.impl.d.ts +22 -0
  120. package/dist/formatters/json/json.impl.d.ts.map +1 -0
  121. package/dist/formatters/json/json.impl.js +32 -0
  122. package/dist/formatters/json/json.impl.js.map +1 -0
  123. package/dist/formatters/json5/json5.descriptor.d.ts +9 -0
  124. package/dist/formatters/json5/json5.descriptor.d.ts.map +1 -0
  125. package/dist/formatters/json5/json5.descriptor.js +22 -0
  126. package/dist/formatters/json5/json5.descriptor.js.map +1 -0
  127. package/dist/formatters/json5/json5.impl.d.ts +23 -0
  128. package/dist/formatters/json5/json5.impl.d.ts.map +1 -0
  129. package/dist/formatters/json5/json5.impl.js +34 -0
  130. package/dist/formatters/json5/json5.impl.js.map +1 -0
  131. package/dist/formatters/jsonl/jsonl.descriptor.d.ts +10 -0
  132. package/dist/formatters/jsonl/jsonl.descriptor.d.ts.map +1 -0
  133. package/dist/formatters/jsonl/jsonl.descriptor.js +23 -0
  134. package/dist/formatters/jsonl/jsonl.descriptor.js.map +1 -0
  135. package/dist/formatters/jsonl/jsonl.impl.d.ts +21 -0
  136. package/dist/formatters/jsonl/jsonl.impl.d.ts.map +1 -0
  137. package/dist/formatters/jsonl/jsonl.impl.js +30 -0
  138. package/dist/formatters/jsonl/jsonl.impl.js.map +1 -0
  139. package/dist/formatters/pretty/pretty.descriptor.d.ts +9 -0
  140. package/dist/formatters/pretty/pretty.descriptor.d.ts.map +1 -0
  141. package/dist/formatters/pretty/pretty.descriptor.js +23 -0
  142. package/dist/formatters/pretty/pretty.descriptor.js.map +1 -0
  143. package/dist/formatters/pretty/pretty.impl.cli.d.ts +23 -0
  144. package/dist/formatters/pretty/pretty.impl.cli.d.ts.map +1 -0
  145. package/dist/formatters/pretty/pretty.impl.cli.js +81 -0
  146. package/dist/formatters/pretty/pretty.impl.cli.js.map +1 -0
  147. package/dist/index.d.ts +67 -0
  148. package/dist/index.d.ts.map +1 -0
  149. package/dist/index.js +97 -0
  150. package/dist/index.js.map +1 -0
  151. package/dist/kinds/audit.d.ts +85 -0
  152. package/dist/kinds/audit.d.ts.map +1 -0
  153. package/dist/kinds/audit.js +71 -0
  154. package/dist/kinds/audit.js.map +1 -0
  155. package/dist/kinds/contexts.d.ts +21 -0
  156. package/dist/kinds/contexts.d.ts.map +1 -0
  157. package/dist/kinds/contexts.js +8 -0
  158. package/dist/kinds/contexts.js.map +1 -0
  159. package/dist/kinds/formatter.d.ts +42 -0
  160. package/dist/kinds/formatter.d.ts.map +1 -0
  161. package/dist/kinds/formatter.js +69 -0
  162. package/dist/kinds/formatter.js.map +1 -0
  163. package/dist/kinds/index.d.ts +13 -0
  164. package/dist/kinds/index.d.ts.map +1 -0
  165. package/dist/kinds/index.js +13 -0
  166. package/dist/kinds/index.js.map +1 -0
  167. package/dist/kinds/logger.contracts.d.ts +16 -0
  168. package/dist/kinds/logger.contracts.d.ts.map +1 -0
  169. package/dist/kinds/logger.contracts.js +9 -0
  170. package/dist/kinds/logger.contracts.js.map +1 -0
  171. package/dist/kinds/logger.d.ts +15 -0
  172. package/dist/kinds/logger.d.ts.map +1 -0
  173. package/dist/kinds/logger.impl.d.ts +40 -0
  174. package/dist/kinds/logger.impl.d.ts.map +1 -0
  175. package/dist/kinds/logger.impl.js +139 -0
  176. package/dist/kinds/logger.impl.js.map +1 -0
  177. package/dist/kinds/logger.js +28 -0
  178. package/dist/kinds/logger.js.map +1 -0
  179. package/dist/kinds/logger.utils.d.ts +15 -0
  180. package/dist/kinds/logger.utils.d.ts.map +1 -0
  181. package/dist/kinds/logger.utils.js +55 -0
  182. package/dist/kinds/logger.utils.js.map +1 -0
  183. package/dist/kinds/output.contracts.d.ts +50 -0
  184. package/dist/kinds/output.contracts.d.ts.map +1 -0
  185. package/dist/kinds/output.contracts.js +10 -0
  186. package/dist/kinds/output.contracts.js.map +1 -0
  187. package/dist/kinds/output.d.ts +20 -0
  188. package/dist/kinds/output.d.ts.map +1 -0
  189. package/dist/kinds/output.impl.d.ts +22 -0
  190. package/dist/kinds/output.impl.d.ts.map +1 -0
  191. package/dist/kinds/output.impl.js +84 -0
  192. package/dist/kinds/output.impl.js.map +1 -0
  193. package/dist/kinds/output.js +29 -0
  194. package/dist/kinds/output.js.map +1 -0
  195. package/dist/kinds/output.types.d.ts +92 -0
  196. package/dist/kinds/output.types.d.ts.map +1 -0
  197. package/dist/kinds/output.types.js +7 -0
  198. package/dist/kinds/output.types.js.map +1 -0
  199. package/dist/kinds/sink.d.ts +40 -0
  200. package/dist/kinds/sink.d.ts.map +1 -0
  201. package/dist/kinds/sink.js +61 -0
  202. package/dist/kinds/sink.js.map +1 -0
  203. package/dist/logger.context.descriptor.d.ts +21 -0
  204. package/dist/logger.context.descriptor.d.ts.map +1 -0
  205. package/dist/logger.context.descriptor.js +12 -0
  206. package/dist/logger.context.descriptor.js.map +1 -0
  207. package/dist/logging.cli.plugin.d.ts +20 -0
  208. package/dist/logging.cli.plugin.d.ts.map +1 -0
  209. package/dist/logging.cli.plugin.js +39 -0
  210. package/dist/logging.cli.plugin.js.map +1 -0
  211. package/dist/logging.plugin.d.ts +16 -0
  212. package/dist/logging.plugin.d.ts.map +1 -0
  213. package/dist/logging.plugin.js +83 -0
  214. package/dist/logging.plugin.js.map +1 -0
  215. package/dist/outputs/index.d.ts +7 -0
  216. package/dist/outputs/index.d.ts.map +1 -0
  217. package/dist/outputs/index.js +8 -0
  218. package/dist/outputs/index.js.map +1 -0
  219. package/dist/outputs/remote/remote.descriptor.d.ts +10 -0
  220. package/dist/outputs/remote/remote.descriptor.d.ts.map +1 -0
  221. package/dist/outputs/remote/remote.descriptor.js +24 -0
  222. package/dist/outputs/remote/remote.descriptor.js.map +1 -0
  223. package/dist/outputs/remote/remote.impl.d.ts +50 -0
  224. package/dist/outputs/remote/remote.impl.d.ts.map +1 -0
  225. package/dist/outputs/remote/remote.impl.js +178 -0
  226. package/dist/outputs/remote/remote.impl.js.map +1 -0
  227. package/dist/outputs.context.descriptor.d.ts +19 -0
  228. package/dist/outputs.context.descriptor.d.ts.map +1 -0
  229. package/dist/outputs.context.descriptor.js +9 -0
  230. package/dist/outputs.context.descriptor.js.map +1 -0
  231. package/dist/outputs.context.impl.d.ts +9 -0
  232. package/dist/outputs.context.impl.d.ts.map +1 -0
  233. package/dist/outputs.context.impl.js +18 -0
  234. package/dist/outputs.context.impl.js.map +1 -0
  235. package/dist/paths.d.ts +8 -0
  236. package/dist/paths.d.ts.map +1 -0
  237. package/dist/paths.js +10 -0
  238. package/dist/paths.js.map +1 -0
  239. package/dist/schemas/audit.d.ts +133 -0
  240. package/dist/schemas/audit.d.ts.map +1 -0
  241. package/dist/schemas/audit.js +80 -0
  242. package/dist/schemas/audit.js.map +1 -0
  243. package/dist/schemas/entry.d.ts +74 -0
  244. package/dist/schemas/entry.d.ts.map +1 -0
  245. package/dist/schemas/entry.js +62 -0
  246. package/dist/schemas/entry.js.map +1 -0
  247. package/dist/schemas/formatter.d.ts +46 -0
  248. package/dist/schemas/formatter.d.ts.map +1 -0
  249. package/dist/schemas/formatter.js +31 -0
  250. package/dist/schemas/formatter.js.map +1 -0
  251. package/dist/schemas/index.d.ts +12 -0
  252. package/dist/schemas/index.d.ts.map +1 -0
  253. package/dist/schemas/index.js +18 -0
  254. package/dist/schemas/index.js.map +1 -0
  255. package/dist/schemas/logger.d.ts +48 -0
  256. package/dist/schemas/logger.d.ts.map +1 -0
  257. package/dist/schemas/logger.js +27 -0
  258. package/dist/schemas/logger.js.map +1 -0
  259. package/dist/schemas/output.d.ts +68 -0
  260. package/dist/schemas/output.d.ts.map +1 -0
  261. package/dist/schemas/output.js +48 -0
  262. package/dist/schemas/output.js.map +1 -0
  263. package/dist/schemas/sink.d.ts +52 -0
  264. package/dist/schemas/sink.d.ts.map +1 -0
  265. package/dist/schemas/sink.js +30 -0
  266. package/dist/schemas/sink.js.map +1 -0
  267. package/dist/sinks/buffer/buffer.descriptor.d.ts +4 -0
  268. package/dist/sinks/buffer/buffer.descriptor.d.ts.map +1 -0
  269. package/dist/sinks/buffer/buffer.descriptor.js +11 -0
  270. package/dist/sinks/buffer/buffer.descriptor.js.map +1 -0
  271. package/dist/sinks/buffer/buffer.impl.cli.d.ts +21 -0
  272. package/dist/sinks/buffer/buffer.impl.cli.d.ts.map +1 -0
  273. package/dist/sinks/buffer/buffer.impl.cli.js +34 -0
  274. package/dist/sinks/buffer/buffer.impl.cli.js.map +1 -0
  275. package/dist/sinks/console/console.descriptor.d.ts +10 -0
  276. package/dist/sinks/console/console.descriptor.d.ts.map +1 -0
  277. package/dist/sinks/console/console.descriptor.js +17 -0
  278. package/dist/sinks/console/console.descriptor.js.map +1 -0
  279. package/dist/sinks/console/console.impl.browser.d.ts +21 -0
  280. package/dist/sinks/console/console.impl.browser.d.ts.map +1 -0
  281. package/dist/sinks/console/console.impl.browser.js +57 -0
  282. package/dist/sinks/console/console.impl.browser.js.map +1 -0
  283. package/dist/sinks/console/console.impl.cli.d.ts +21 -0
  284. package/dist/sinks/console/console.impl.cli.d.ts.map +1 -0
  285. package/dist/sinks/console/console.impl.cli.js +57 -0
  286. package/dist/sinks/console/console.impl.cli.js.map +1 -0
  287. package/dist/sinks/index.d.ts +8 -0
  288. package/dist/sinks/index.d.ts.map +1 -0
  289. package/dist/sinks/index.js +8 -0
  290. package/dist/sinks/index.js.map +1 -0
  291. package/dist/sinks/memory/memory.descriptor.d.ts +10 -0
  292. package/dist/sinks/memory/memory.descriptor.d.ts.map +1 -0
  293. package/dist/sinks/memory/memory.descriptor.js +17 -0
  294. package/dist/sinks/memory/memory.descriptor.js.map +1 -0
  295. package/dist/sinks/memory/memory.impl.d.ts +50 -0
  296. package/dist/sinks/memory/memory.impl.d.ts.map +1 -0
  297. package/dist/sinks/memory/memory.impl.js +88 -0
  298. package/dist/sinks/memory/memory.impl.js.map +1 -0
  299. package/dist/sinks/stdout/stdout.descriptor.d.ts +4 -0
  300. package/dist/sinks/stdout/stdout.descriptor.d.ts.map +1 -0
  301. package/dist/sinks/stdout/stdout.descriptor.js +11 -0
  302. package/dist/sinks/stdout/stdout.descriptor.js.map +1 -0
  303. package/dist/sinks/stdout/stdout.impl.cli.d.ts +10 -0
  304. package/dist/sinks/stdout/stdout.impl.cli.d.ts.map +1 -0
  305. package/dist/sinks/stdout/stdout.impl.cli.js +21 -0
  306. package/dist/sinks/stdout/stdout.impl.cli.js.map +1 -0
  307. package/dist/sinks.context.descriptor.d.ts +19 -0
  308. package/dist/sinks.context.descriptor.d.ts.map +1 -0
  309. package/dist/sinks.context.descriptor.js +9 -0
  310. package/dist/sinks.context.descriptor.js.map +1 -0
  311. package/dist/sinks.context.impl.d.ts +9 -0
  312. package/dist/sinks.context.impl.d.ts.map +1 -0
  313. package/dist/sinks.context.impl.js +18 -0
  314. package/dist/sinks.context.impl.js.map +1 -0
  315. package/package.json +331 -0
  316. package/src/audit/audit.descriptor.ts +45 -0
  317. package/src/audit/audit.storage.schema.ts +57 -0
  318. package/src/audit/index.ts +8 -0
  319. package/src/cli/logs.descriptor.ts +19 -0
  320. package/src/cli/logs.list.descriptor.ts +28 -0
  321. package/src/cli/logs.list.impl.ts +93 -0
  322. package/src/cli/logs.rotate.descriptor.ts +40 -0
  323. package/src/cli/logs.rotate.impl.ts +61 -0
  324. package/src/cli/logs.search.descriptor.ts +61 -0
  325. package/src/cli/logs.search.impl.ts +173 -0
  326. package/src/cli/logs.tail.descriptor.ts +49 -0
  327. package/src/cli/logs.tail.impl.ts +105 -0
  328. package/src/cli/logs.view.descriptor.ts +57 -0
  329. package/src/cli/logs.view.impl.ts +108 -0
  330. package/src/cli/types.ts +59 -0
  331. package/src/contexts/audit.ts +36 -0
  332. package/src/contexts/fallback-logger.ts +80 -0
  333. package/src/contexts/index.ts +23 -0
  334. package/src/contexts/logger.ts +119 -0
  335. package/src/core/index.ts +32 -0
  336. package/src/core/logger.ts +150 -0
  337. package/src/core/namespace.ts +195 -0
  338. package/src/core/parsing.ts +21 -0
  339. package/src/core/types.ts +82 -0
  340. package/src/docs/levels.docs.descriptor.ts +344 -0
  341. package/src/docs/structured.docs.descriptor.ts +444 -0
  342. package/src/docs/transports.docs.descriptor.ts +428 -0
  343. package/src/formatters/index.ts +6 -0
  344. package/src/formatters/json/json.formatters.descriptor.ts +25 -0
  345. package/src/formatters/json/json.impl.ts +41 -0
  346. package/src/formatters/json5/json5.descriptor.ts +25 -0
  347. package/src/formatters/json5/json5.impl.ts +43 -0
  348. package/src/formatters/jsonl/jsonl.descriptor.ts +26 -0
  349. package/src/formatters/jsonl/jsonl.impl.ts +39 -0
  350. package/src/formatters/pretty/pretty.descriptor.ts +26 -0
  351. package/src/formatters/pretty/pretty.impl.cli.ts +101 -0
  352. package/src/index.ts +190 -0
  353. package/src/kinds/audit.ts +169 -0
  354. package/src/kinds/contexts.ts +22 -0
  355. package/src/kinds/formatter.ts +117 -0
  356. package/src/kinds/index.ts +25 -0
  357. package/src/kinds/logger.contracts.ts +17 -0
  358. package/src/kinds/logger.impl.ts +206 -0
  359. package/src/kinds/logger.ts +46 -0
  360. package/src/kinds/logger.utils.ts +91 -0
  361. package/src/kinds/output.contracts.ts +54 -0
  362. package/src/kinds/output.impl.ts +118 -0
  363. package/src/kinds/output.ts +59 -0
  364. package/src/kinds/output.types.ts +105 -0
  365. package/src/kinds/sink.ts +100 -0
  366. package/src/logger.context.descriptor.ts +13 -0
  367. package/src/logging.cli.plugin.ts +43 -0
  368. package/src/logging.plugin.ts +93 -0
  369. package/src/outputs/index.ts +6 -0
  370. package/src/outputs/remote/remote.descriptor.ts +27 -0
  371. package/src/outputs/remote/remote.impl.ts +218 -0
  372. package/src/outputs.context.descriptor.ts +10 -0
  373. package/src/outputs.context.impl.ts +30 -0
  374. package/src/paths.ts +10 -0
  375. package/src/schemas/audit.ts +98 -0
  376. package/src/schemas/entry.ts +88 -0
  377. package/src/schemas/formatter.ts +37 -0
  378. package/src/schemas/index.ts +80 -0
  379. package/src/schemas/logger.ts +38 -0
  380. package/src/schemas/output.ts +62 -0
  381. package/src/schemas/sink.ts +39 -0
  382. package/src/sinks/buffer/buffer.descriptor.ts +13 -0
  383. package/src/sinks/buffer/buffer.impl.cli.ts +49 -0
  384. package/src/sinks/console/console.descriptor.ts +20 -0
  385. package/src/sinks/console/console.impl.browser.ts +69 -0
  386. package/src/sinks/console/console.impl.cli.ts +71 -0
  387. package/src/sinks/index.ts +8 -0
  388. package/src/sinks/memory/memory.descriptor.ts +20 -0
  389. package/src/sinks/memory/memory.impl.ts +119 -0
  390. package/src/sinks/stdout/stdout.descriptor.ts +13 -0
  391. package/src/sinks/stdout/stdout.impl.cli.ts +27 -0
  392. package/src/sinks.context.descriptor.ts +10 -0
  393. package/src/sinks.context.impl.ts +30 -0
@@ -0,0 +1,442 @@
1
+ const descriptor = {
2
+ kind: 'docs/topic',
3
+ id: 'logging.structured',
4
+ title: 'Structured Logging',
5
+ summary: 'Structured logging with context, formatters, and best practices',
6
+ body: {
7
+ type: 'markdown',
8
+ sourceType: 'raw',
9
+ source: `---
10
+ title: Structured Logging
11
+ summary: Structured logging with context, formatters, and best practices
12
+ tags: [logging, structured, context, formatters, json, best-practices]
13
+ parent: logging
14
+ order: 3
15
+ surfaces: [cli, web, in-app]
16
+ hardware: [consumer, cloud]
17
+ ---
18
+
19
+ # Structured Logging
20
+
21
+ Structured logging captures log entries as machine-readable data with consistent fields. This enables powerful querying, aggregation, and analysis.
22
+
23
+ ## Why Structured Logging
24
+
25
+ ### Unstructured (Traditional)
26
+
27
+ \`\`\`
28
+ 2024-01-01 12:00:00 INFO User john@example.com logged in from 192.168.1.1
29
+ \`\`\`
30
+
31
+ **Problems:**
32
+ - Hard to parse programmatically
33
+ - Inconsistent format
34
+ - Difficult to aggregate
35
+ - No schema enforcement
36
+
37
+ ### Structured
38
+
39
+ \`\`\`json
40
+ {
41
+ "timestamp": "2024-01-01T12:00:00.000Z",
42
+ "level": "info",
43
+ "namespace": "app:auth",
44
+ "message": "User logged in",
45
+ "context": {
46
+ "email": "john@example.com",
47
+ "ipAddress": "192.168.1.1",
48
+ "userId": "usr_123"
49
+ }
50
+ }
51
+ \`\`\`
52
+
53
+ **Benefits:**
54
+ - Machine-parseable
55
+ - Consistent schema
56
+ - Easy aggregation
57
+ - Queryable fields
58
+
59
+ ## Log Entry Structure
60
+
61
+ ### Standard Fields
62
+
63
+ \`\`\`ts
64
+ interface LogEntry {
65
+ timestamp: string; // ISO 8601 timestamp
66
+ level: string; // trace, debug, info, warn, error
67
+ namespace: string; // e.g., "app:auth"
68
+ message: string; // Human-readable message
69
+ context?: Record<string, unknown>; // Structured data
70
+ metadata?: {
71
+ requestId?: string;
72
+ userId?: string;
73
+ sessionId?: string;
74
+ };
75
+ }
76
+ \`\`\`
77
+
78
+ ### Example Entry
79
+
80
+ \`\`\`ts
81
+ logger.info('Payment processed', {
82
+ context: {
83
+ userId: 'usr_123',
84
+ amount: 99.99,
85
+ currency: 'USD',
86
+ paymentMethod: 'card'
87
+ },
88
+ metadata: {
89
+ requestId: 'req_456',
90
+ sessionId: 'ses_789'
91
+ }
92
+ });
93
+ \`\`\`
94
+
95
+ **Output:**
96
+ \`\`\`json
97
+ {
98
+ "timestamp": "2024-01-01T12:00:00.000Z",
99
+ "level": "info",
100
+ "namespace": "app:payments",
101
+ "message": "Payment processed",
102
+ "context": {
103
+ "userId": "usr_123",
104
+ "amount": 99.99,
105
+ "currency": "USD",
106
+ "paymentMethod": "card"
107
+ },
108
+ "metadata": {
109
+ "requestId": "req_456",
110
+ "sessionId": "ses_789"
111
+ }
112
+ }
113
+ \`\`\`
114
+
115
+ ## Context Objects
116
+
117
+ ### Basic Context
118
+
119
+ \`\`\`ts
120
+ logger.info('User action', {
121
+ action: 'login',
122
+ userId: 'usr_123',
123
+ success: true
124
+ });
125
+ \`\`\`
126
+
127
+ ### Nested Context
128
+
129
+ \`\`\`ts
130
+ logger.info('API request', {
131
+ request: {
132
+ method: 'POST',
133
+ path: '/api/users',
134
+ headers: {
135
+ 'content-type': 'application/json'
136
+ }
137
+ },
138
+ response: {
139
+ status: 201,
140
+ duration: 45
141
+ }
142
+ });
143
+ \`\`\`
144
+
145
+ ### Array Context
146
+
147
+ \`\`\`ts
148
+ logger.info('Batch operation', {
149
+ items: [
150
+ { id: 1, status: 'success' },
151
+ { id: 2, status: 'failed', error: 'Not found' },
152
+ { id: 3, status: 'success' }
153
+ ],
154
+ summary: {
155
+ total: 3,
156
+ success: 2,
157
+ failed: 1
158
+ }
159
+ });
160
+ \`\`\`
161
+
162
+ ## Formatters
163
+
164
+ ### Pretty Formatter
165
+
166
+ Human-readable output for development:
167
+
168
+ \`\`\`ts
169
+ import { prettyFormatter } from '@vibesdotdev/logging';
170
+
171
+ const formatted = prettyFormatter.format({
172
+ timestamp: '2024-01-01T12:00:00.000Z',
173
+ level: 'info',
174
+ namespace: 'app:server',
175
+ message: 'Server started',
176
+ context: { port: 3000 }
177
+ });
178
+
179
+ console.log(formatted);
180
+ // [INFO] [app:server] Server started { port: 3000 }
181
+ \`\`\`
182
+
183
+ ### JSON Formatter
184
+
185
+ Machine-readable output:
186
+
187
+ \`\`\`ts
188
+ import { jsonFormatter } from '@vibesdotdev/logging';
189
+
190
+ const formatted = jsonFormatter.format(entry);
191
+ // {"timestamp":"2024-01-01T12:00:00.000Z","level":"info",...}
192
+ \`\`\`
193
+
194
+ ### Custom Formatter
195
+
196
+ \`\`\`ts
197
+ import type { FormatterImplementation } from '@vibesdotdev/logging';
198
+
199
+ class CustomFormatter implements FormatterImplementation {
200
+ format(entry: LogEntry): string {
201
+ return \`[\${entry.level.toUpperCase()}] \${entry.timestamp} - \${entry.message}\`;
202
+ }
203
+ }
204
+ \`\`\`
205
+
206
+ ## Correlation IDs
207
+
208
+ ### Request Tracking
209
+
210
+ \`\`\`ts
211
+ import { logger } from '@vibesdotdev/logging';
212
+
213
+ // Generate correlation ID
214
+ const requestId = crypto.randomUUID();
215
+
216
+ // Include in all logs for this request
217
+ logger.setRequestContext({ requestId });
218
+
219
+ logger.info('Request started');
220
+ // ... handle request ...
221
+ logger.info('Request completed');
222
+
223
+ // All logs include requestId for correlation
224
+ \`\`\`
225
+
226
+ ### Distributed Tracing
227
+
228
+ \`\`\`ts
229
+ // Parent request
230
+ const requestId = 'req_123';
231
+ logger.setRequestContext({ requestId });
232
+
233
+ // Child span
234
+ const spanId = 'span_456';
235
+ logger.setRequestContext({ requestId, spanId });
236
+
237
+ logger.info('Database query');
238
+ // Links to parent request via requestId
239
+ \`\`\`
240
+
241
+ ## Error Logging
242
+
243
+ ### Error Context
244
+
245
+ \`\`\`ts
246
+ try {
247
+ await db.query(sql);
248
+ } catch (error) {
249
+ logger.error('Database query failed', {
250
+ context: {
251
+ query: sql,
252
+ parameters: params,
253
+ error: {
254
+ name: error.name,
255
+ message: error.message,
256
+ stack: error.stack
257
+ }
258
+ },
259
+ metadata: {
260
+ requestId
261
+ }
262
+ });
263
+ }
264
+ \`\`\`
265
+
266
+ ### Error Serialization
267
+
268
+ \`\`\`ts
269
+ import { serializeError } from '@vibesdotdev/logging';
270
+
271
+ logger.error('Operation failed', {
272
+ error: serializeError(error)
273
+ });
274
+
275
+ // Output:
276
+ // {
277
+ // "name": "Error",
278
+ // "message": "Something went wrong",
279
+ // "stack": "...",
280
+ // "code": "ECONNREFUSED"
281
+ // }
282
+ \`\`\`
283
+
284
+ ## Performance Logging
285
+
286
+ ### Duration Tracking
287
+
288
+ \`\`\`ts
289
+ const start = performance.now();
290
+ await expensiveOperation();
291
+ const duration = performance.now() - start;
292
+
293
+ logger.info('Operation completed', {
294
+ context: {
295
+ operation: 'expensiveOperation',
296
+ duration: Math.round(duration * 100) / 100 // ms
297
+ }
298
+ });
299
+ \`\`\`
300
+
301
+ ### Metrics Collection
302
+
303
+ \`\`\`ts
304
+ logger.info('Metrics', {
305
+ context: {
306
+ type: 'performance',
307
+ metrics: {
308
+ cpu: process.cpuUsage(),
309
+ memory: process.memoryUsage(),
310
+ requests: activeRequests
311
+ }
312
+ }
313
+ });
314
+ \`\`\`
315
+
316
+ ## Security Logging
317
+
318
+ ### Sanitize Sensitive Data
319
+
320
+ \`\`\`ts
321
+ import { sanitizeForLogging } from '@vibesdotdev/logging';
322
+
323
+ const userData = {
324
+ email: 'user@example.com',
325
+ password: 'secret123', // Will be redacted
326
+ token: 'abc123' // Will be redacted
327
+ };
328
+
329
+ logger.info('User data', {
330
+ context: sanitizeForLogging(userData, ['password', 'token'])
331
+ });
332
+
333
+ // Output:
334
+ // { "email": "user@example.com", "password": "[REDACTED]", "token": "[REDACTED]" }
335
+ \`\`\`
336
+
337
+ ### Audit Logging
338
+
339
+ \`\`\`ts
340
+ import { auditLogger } from '@vibesdotdev/logging';
341
+
342
+ auditLogger.authentication({
343
+ userId: 'usr_123',
344
+ action: 'login',
345
+ success: true,
346
+ ipAddress: '192.168.1.1',
347
+ userAgent: 'Mozilla/5.0...'
348
+ });
349
+
350
+ auditLogger.authorization({
351
+ userId: 'usr_123',
352
+ resource: 'users/456',
353
+ action: 'delete',
354
+ allowed: false,
355
+ reason: 'Insufficient permissions'
356
+ });
357
+ \`\`\`
358
+
359
+ ## Best Practices
360
+
361
+ ### DO
362
+
363
+ \`\`\`ts
364
+ // ✅ Use structured context
365
+ logger.info('User created', {
366
+ context: { userId: 'usr_123', email: 'user@example.com' }
367
+ });
368
+
369
+ // ✅ Include correlation IDs
370
+ logger.setRequestContext({ requestId: 'req_123' });
371
+
372
+ // ✅ Use appropriate levels
373
+ logger.debug('Debug info');
374
+ logger.error('Error with context', { error: error.message });
375
+
376
+ // ✅ Sanitize sensitive data
377
+ logger.info('Auth attempt', {
378
+ context: { username, password: '[REDACTED]' }
379
+ });
380
+ \`\`\`
381
+
382
+ ### DON'T
383
+
384
+ \`\`\`ts
385
+ // ❌ String concatenation
386
+ logger.info('User ' + userId + ' logged in');
387
+
388
+ // ❌ Logging sensitive data
389
+ logger.info('Auth', { password, token });
390
+
391
+ // ❌ Logging everything as error
392
+ logger.error('User logged in'); // This is info level!
393
+
394
+ // ❌ Unstructured messages
395
+ logger.info('Something happened with user ' + userId + ' at ' + new Date());
396
+ \`\`\`
397
+
398
+ ## Query Examples
399
+
400
+ ### Log Aggregation Queries
401
+
402
+ \`\`\`sql
403
+ -- Count errors by namespace
404
+ SELECT namespace, COUNT(*) as error_count
405
+ FROM logs
406
+ WHERE level = 'error'
407
+ GROUP BY namespace;
408
+
409
+ -- Average response time by endpoint
410
+ SELECT
411
+ context->>'endpoint' as endpoint,
412
+ AVG(context->>'duration') as avg_duration
413
+ FROM logs
414
+ WHERE message = 'API request completed'
415
+ GROUP BY endpoint;
416
+
417
+ -- User activity timeline
418
+ SELECT
419
+ context->>'userId' as user_id,
420
+ timestamp,
421
+ message
422
+ FROM logs
423
+ WHERE context->>'userId' = 'usr_123'
424
+ ORDER BY timestamp;
425
+ \`\`\`
426
+
427
+ :::card{title="See also"}
428
+ - [\`logging.levels\`](logging.levels) — Log levels
429
+ - [\`logging.transports\`](logging.transports) — Transport layers
430
+ - [\`config.environment\`](config.environment) — Environment configuration
431
+ :::
432
+ `
433
+ },
434
+ parent: 'logging',
435
+ order: 3,
436
+ tags: ['logging', 'structured', 'context', 'formatters', 'json', 'best-practices'],
437
+ surfaces: ['cli', 'web', 'in-app'],
438
+ hardware: ['consumer', 'cloud'],
439
+ enabled: true
440
+ };
441
+ export default descriptor;
442
+ //# sourceMappingURL=structured.docs.descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structured.docs.descriptor.js","sourceRoot":"","sources":["../../src/docs/structured.docs.descriptor.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAAwB;IACvC,IAAI,EAAE,YAAY;IAClB,EAAE,EAAE,oBAAoB;IACxB,KAAK,EAAE,oBAAoB;IAC3B,OAAO,EAAE,iEAAiE;IAC1E,IAAI,EAAE;QACL,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuaT;KACC;IACD,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,CAAC;IAClF,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC;IAClC,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;IAC/B,OAAO,EAAE,IAAI;CACb,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { DocsTopicDescriptor } from '@vibesdotdev/docs';
2
+ declare const descriptor: DocsTopicDescriptor;
3
+ export default descriptor;
4
+ //# sourceMappingURL=transports.docs.descriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transports.docs.descriptor.d.ts","sourceRoot":"","sources":["../../src/docs/transports.docs.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,QAAA,MAAM,UAAU,EAAE,mBAuajB,CAAC;AAEF,eAAe,UAAU,CAAC"}