lograil 0.1.0

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 (373) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/LICENSE +21 -0
  3. package/README.md +40 -0
  4. package/dist/cjs/context/async-context.browser.d.ts +16 -0
  5. package/dist/cjs/context/async-context.browser.d.ts.map +1 -0
  6. package/dist/cjs/context/async-context.browser.js +29 -0
  7. package/dist/cjs/context/async-context.browser.js.map +1 -0
  8. package/dist/cjs/context/async-context.d.ts +10 -0
  9. package/dist/cjs/context/async-context.d.ts.map +1 -0
  10. package/dist/cjs/context/async-context.js +37 -0
  11. package/dist/cjs/context/async-context.js.map +1 -0
  12. package/dist/cjs/context/context.d.ts +33 -0
  13. package/dist/cjs/context/context.d.ts.map +1 -0
  14. package/dist/cjs/context/context.js +57 -0
  15. package/dist/cjs/context/context.js.map +1 -0
  16. package/dist/cjs/context/index.d.ts +3 -0
  17. package/dist/cjs/context/index.d.ts.map +1 -0
  18. package/dist/cjs/context/index.js +19 -0
  19. package/dist/cjs/context/index.js.map +1 -0
  20. package/dist/cjs/core/entry.d.ts +30 -0
  21. package/dist/cjs/core/entry.d.ts.map +1 -0
  22. package/dist/cjs/core/entry.js +37 -0
  23. package/dist/cjs/core/entry.js.map +1 -0
  24. package/dist/cjs/core/index.d.ts +7 -0
  25. package/dist/cjs/core/index.d.ts.map +1 -0
  26. package/dist/cjs/core/index.js +24 -0
  27. package/dist/cjs/core/index.js.map +1 -0
  28. package/dist/cjs/core/level.d.ts +12 -0
  29. package/dist/cjs/core/level.d.ts.map +1 -0
  30. package/dist/cjs/core/level.js +31 -0
  31. package/dist/cjs/core/level.js.map +1 -0
  32. package/dist/cjs/core/logger.d.ts +271 -0
  33. package/dist/cjs/core/logger.d.ts.map +1 -0
  34. package/dist/cjs/core/logger.js +751 -0
  35. package/dist/cjs/core/logger.js.map +1 -0
  36. package/dist/cjs/core/printf.d.ts +34 -0
  37. package/dist/cjs/core/printf.d.ts.map +1 -0
  38. package/dist/cjs/core/printf.js +133 -0
  39. package/dist/cjs/core/printf.js.map +1 -0
  40. package/dist/cjs/index.d.ts +40 -0
  41. package/dist/cjs/index.d.ts.map +1 -0
  42. package/dist/cjs/index.js +56 -0
  43. package/dist/cjs/index.js.map +1 -0
  44. package/dist/cjs/package.json +1 -0
  45. package/dist/cjs/pipeline/filter.d.ts +10 -0
  46. package/dist/cjs/pipeline/filter.d.ts.map +1 -0
  47. package/dist/cjs/pipeline/filter.js +16 -0
  48. package/dist/cjs/pipeline/filter.js.map +1 -0
  49. package/dist/cjs/pipeline/formatter.d.ts +19 -0
  50. package/dist/cjs/pipeline/formatter.d.ts.map +1 -0
  51. package/dist/cjs/pipeline/formatter.js +183 -0
  52. package/dist/cjs/pipeline/formatter.js.map +1 -0
  53. package/dist/cjs/pipeline/index.d.ts +6 -0
  54. package/dist/cjs/pipeline/index.d.ts.map +1 -0
  55. package/dist/cjs/pipeline/index.js +22 -0
  56. package/dist/cjs/pipeline/index.js.map +1 -0
  57. package/dist/cjs/pipeline/pipeline.d.ts +45 -0
  58. package/dist/cjs/pipeline/pipeline.d.ts.map +1 -0
  59. package/dist/cjs/pipeline/pipeline.js +80 -0
  60. package/dist/cjs/pipeline/pipeline.js.map +1 -0
  61. package/dist/cjs/pipeline/processor.d.ts +67 -0
  62. package/dist/cjs/pipeline/processor.d.ts.map +1 -0
  63. package/dist/cjs/pipeline/processor.js +284 -0
  64. package/dist/cjs/pipeline/processor.js.map +1 -0
  65. package/dist/cjs/pipeline/sampler.d.ts +45 -0
  66. package/dist/cjs/pipeline/sampler.d.ts.map +1 -0
  67. package/dist/cjs/pipeline/sampler.js +62 -0
  68. package/dist/cjs/pipeline/sampler.js.map +1 -0
  69. package/dist/cjs/plugin/index.d.ts +4 -0
  70. package/dist/cjs/plugin/index.d.ts.map +1 -0
  71. package/dist/cjs/plugin/index.js +20 -0
  72. package/dist/cjs/plugin/index.js.map +1 -0
  73. package/dist/cjs/plugin/manager.d.ts +38 -0
  74. package/dist/cjs/plugin/manager.d.ts.map +1 -0
  75. package/dist/cjs/plugin/manager.js +79 -0
  76. package/dist/cjs/plugin/manager.js.map +1 -0
  77. package/dist/cjs/plugin/otel-trace.d.ts +19 -0
  78. package/dist/cjs/plugin/otel-trace.d.ts.map +1 -0
  79. package/dist/cjs/plugin/otel-trace.js +91 -0
  80. package/dist/cjs/plugin/otel-trace.js.map +1 -0
  81. package/dist/cjs/plugin/plugin.d.ts +41 -0
  82. package/dist/cjs/plugin/plugin.d.ts.map +1 -0
  83. package/dist/cjs/plugin/plugin.js +3 -0
  84. package/dist/cjs/plugin/plugin.js.map +1 -0
  85. package/dist/cjs/runtime/adapter.d.ts +81 -0
  86. package/dist/cjs/runtime/adapter.d.ts.map +1 -0
  87. package/dist/cjs/runtime/adapter.js +3 -0
  88. package/dist/cjs/runtime/adapter.js.map +1 -0
  89. package/dist/cjs/runtime/defaults.d.ts +27 -0
  90. package/dist/cjs/runtime/defaults.d.ts.map +1 -0
  91. package/dist/cjs/runtime/defaults.js +30 -0
  92. package/dist/cjs/runtime/defaults.js.map +1 -0
  93. package/dist/cjs/runtime/electron-binding.browser.d.ts +10 -0
  94. package/dist/cjs/runtime/electron-binding.browser.d.ts.map +1 -0
  95. package/dist/cjs/runtime/electron-binding.browser.js +18 -0
  96. package/dist/cjs/runtime/electron-binding.browser.js.map +1 -0
  97. package/dist/cjs/runtime/electron-binding.d.ts +24 -0
  98. package/dist/cjs/runtime/electron-binding.d.ts.map +1 -0
  99. package/dist/cjs/runtime/electron-binding.js +49 -0
  100. package/dist/cjs/runtime/electron-binding.js.map +1 -0
  101. package/dist/cjs/runtime/electron-lifecycle.d.ts +17 -0
  102. package/dist/cjs/runtime/electron-lifecycle.d.ts.map +1 -0
  103. package/dist/cjs/runtime/electron-lifecycle.js +47 -0
  104. package/dist/cjs/runtime/electron-lifecycle.js.map +1 -0
  105. package/dist/cjs/runtime/electron-main.d.ts +24 -0
  106. package/dist/cjs/runtime/electron-main.d.ts.map +1 -0
  107. package/dist/cjs/runtime/electron-main.js +102 -0
  108. package/dist/cjs/runtime/electron-main.js.map +1 -0
  109. package/dist/cjs/runtime/electron-renderer.d.ts +26 -0
  110. package/dist/cjs/runtime/electron-renderer.d.ts.map +1 -0
  111. package/dist/cjs/runtime/electron-renderer.js +33 -0
  112. package/dist/cjs/runtime/electron-renderer.js.map +1 -0
  113. package/dist/cjs/runtime/electron.d.ts +20 -0
  114. package/dist/cjs/runtime/electron.d.ts.map +1 -0
  115. package/dist/cjs/runtime/electron.js +27 -0
  116. package/dist/cjs/runtime/electron.js.map +1 -0
  117. package/dist/cjs/runtime/index.d.ts +21 -0
  118. package/dist/cjs/runtime/index.d.ts.map +1 -0
  119. package/dist/cjs/runtime/index.js +41 -0
  120. package/dist/cjs/runtime/index.js.map +1 -0
  121. package/dist/cjs/runtime/node.d.ts +27 -0
  122. package/dist/cjs/runtime/node.d.ts.map +1 -0
  123. package/dist/cjs/runtime/node.js +126 -0
  124. package/dist/cjs/runtime/node.js.map +1 -0
  125. package/dist/cjs/runtime/process-lifecycle.d.ts +13 -0
  126. package/dist/cjs/runtime/process-lifecycle.d.ts.map +1 -0
  127. package/dist/cjs/runtime/process-lifecycle.js +80 -0
  128. package/dist/cjs/runtime/process-lifecycle.js.map +1 -0
  129. package/dist/cjs/runtime/web-lifecycle.d.ts +13 -0
  130. package/dist/cjs/runtime/web-lifecycle.d.ts.map +1 -0
  131. package/dist/cjs/runtime/web-lifecycle.js +39 -0
  132. package/dist/cjs/runtime/web-lifecycle.js.map +1 -0
  133. package/dist/cjs/runtime/web.d.ts +14 -0
  134. package/dist/cjs/runtime/web.d.ts.map +1 -0
  135. package/dist/cjs/runtime/web.js +61 -0
  136. package/dist/cjs/runtime/web.js.map +1 -0
  137. package/dist/cjs/shims/index.browser.d.ts +26 -0
  138. package/dist/cjs/shims/index.browser.d.ts.map +1 -0
  139. package/dist/cjs/shims/index.browser.js +67 -0
  140. package/dist/cjs/shims/index.browser.js.map +1 -0
  141. package/dist/cjs/shims/index.d.ts +15 -0
  142. package/dist/cjs/shims/index.d.ts.map +1 -0
  143. package/dist/cjs/shims/index.js +39 -0
  144. package/dist/cjs/shims/index.js.map +1 -0
  145. package/dist/cjs/transport/cluster-ipc.d.ts +36 -0
  146. package/dist/cjs/transport/cluster-ipc.d.ts.map +1 -0
  147. package/dist/cjs/transport/cluster-ipc.js +76 -0
  148. package/dist/cjs/transport/cluster-ipc.js.map +1 -0
  149. package/dist/cjs/transport/console.d.ts +28 -0
  150. package/dist/cjs/transport/console.d.ts.map +1 -0
  151. package/dist/cjs/transport/console.js +48 -0
  152. package/dist/cjs/transport/console.js.map +1 -0
  153. package/dist/cjs/transport/electron-ipc.d.ts +69 -0
  154. package/dist/cjs/transport/electron-ipc.d.ts.map +1 -0
  155. package/dist/cjs/transport/electron-ipc.js +153 -0
  156. package/dist/cjs/transport/electron-ipc.js.map +1 -0
  157. package/dist/cjs/transport/file.d.ts +190 -0
  158. package/dist/cjs/transport/file.d.ts.map +1 -0
  159. package/dist/cjs/transport/file.js +666 -0
  160. package/dist/cjs/transport/file.js.map +1 -0
  161. package/dist/cjs/transport/index.d.ts +9 -0
  162. package/dist/cjs/transport/index.d.ts.map +1 -0
  163. package/dist/cjs/transport/index.js +25 -0
  164. package/dist/cjs/transport/index.js.map +1 -0
  165. package/dist/cjs/transport/live.d.ts +72 -0
  166. package/dist/cjs/transport/live.d.ts.map +1 -0
  167. package/dist/cjs/transport/live.js +104 -0
  168. package/dist/cjs/transport/live.js.map +1 -0
  169. package/dist/cjs/transport/otlp.d.ts +97 -0
  170. package/dist/cjs/transport/otlp.d.ts.map +1 -0
  171. package/dist/cjs/transport/otlp.js +194 -0
  172. package/dist/cjs/transport/otlp.js.map +1 -0
  173. package/dist/cjs/transport/rotating-file.d.ts +67 -0
  174. package/dist/cjs/transport/rotating-file.d.ts.map +1 -0
  175. package/dist/cjs/transport/rotating-file.js +179 -0
  176. package/dist/cjs/transport/rotating-file.js.map +1 -0
  177. package/dist/cjs/transport/transport.d.ts +35 -0
  178. package/dist/cjs/transport/transport.d.ts.map +1 -0
  179. package/dist/cjs/transport/transport.js +3 -0
  180. package/dist/cjs/transport/transport.js.map +1 -0
  181. package/dist/cjs/transport/worker-ipc.d.ts +43 -0
  182. package/dist/cjs/transport/worker-ipc.d.ts.map +1 -0
  183. package/dist/cjs/transport/worker-ipc.js +106 -0
  184. package/dist/cjs/transport/worker-ipc.js.map +1 -0
  185. package/dist/cjs/types.d.ts +72 -0
  186. package/dist/cjs/types.d.ts.map +1 -0
  187. package/dist/cjs/types.js +45 -0
  188. package/dist/cjs/types.js.map +1 -0
  189. package/dist/esm/context/async-context.browser.d.ts +16 -0
  190. package/dist/esm/context/async-context.browser.d.ts.map +1 -0
  191. package/dist/esm/context/async-context.browser.js +25 -0
  192. package/dist/esm/context/async-context.browser.js.map +1 -0
  193. package/dist/esm/context/async-context.d.ts +10 -0
  194. package/dist/esm/context/async-context.d.ts.map +1 -0
  195. package/dist/esm/context/async-context.js +33 -0
  196. package/dist/esm/context/async-context.js.map +1 -0
  197. package/dist/esm/context/context.d.ts +33 -0
  198. package/dist/esm/context/context.d.ts.map +1 -0
  199. package/dist/esm/context/context.js +52 -0
  200. package/dist/esm/context/context.js.map +1 -0
  201. package/dist/esm/context/index.d.ts +3 -0
  202. package/dist/esm/context/index.d.ts.map +1 -0
  203. package/dist/esm/context/index.js +3 -0
  204. package/dist/esm/context/index.js.map +1 -0
  205. package/dist/esm/core/entry.d.ts +30 -0
  206. package/dist/esm/core/entry.d.ts.map +1 -0
  207. package/dist/esm/core/entry.js +34 -0
  208. package/dist/esm/core/entry.js.map +1 -0
  209. package/dist/esm/core/index.d.ts +7 -0
  210. package/dist/esm/core/index.d.ts.map +1 -0
  211. package/dist/esm/core/index.js +6 -0
  212. package/dist/esm/core/index.js.map +1 -0
  213. package/dist/esm/core/level.d.ts +12 -0
  214. package/dist/esm/core/level.d.ts.map +1 -0
  215. package/dist/esm/core/level.js +25 -0
  216. package/dist/esm/core/level.js.map +1 -0
  217. package/dist/esm/core/logger.d.ts +271 -0
  218. package/dist/esm/core/logger.d.ts.map +1 -0
  219. package/dist/esm/core/logger.js +747 -0
  220. package/dist/esm/core/logger.js.map +1 -0
  221. package/dist/esm/core/printf.d.ts +34 -0
  222. package/dist/esm/core/printf.d.ts.map +1 -0
  223. package/dist/esm/core/printf.js +129 -0
  224. package/dist/esm/core/printf.js.map +1 -0
  225. package/dist/esm/index.d.ts +40 -0
  226. package/dist/esm/index.d.ts.map +1 -0
  227. package/dist/esm/index.js +38 -0
  228. package/dist/esm/index.js.map +1 -0
  229. package/dist/esm/pipeline/filter.d.ts +10 -0
  230. package/dist/esm/pipeline/filter.d.ts.map +1 -0
  231. package/dist/esm/pipeline/filter.js +11 -0
  232. package/dist/esm/pipeline/filter.js.map +1 -0
  233. package/dist/esm/pipeline/formatter.d.ts +19 -0
  234. package/dist/esm/pipeline/formatter.d.ts.map +1 -0
  235. package/dist/esm/pipeline/formatter.js +179 -0
  236. package/dist/esm/pipeline/formatter.js.map +1 -0
  237. package/dist/esm/pipeline/index.d.ts +6 -0
  238. package/dist/esm/pipeline/index.d.ts.map +1 -0
  239. package/dist/esm/pipeline/index.js +6 -0
  240. package/dist/esm/pipeline/index.js.map +1 -0
  241. package/dist/esm/pipeline/pipeline.d.ts +45 -0
  242. package/dist/esm/pipeline/pipeline.d.ts.map +1 -0
  243. package/dist/esm/pipeline/pipeline.js +76 -0
  244. package/dist/esm/pipeline/pipeline.js.map +1 -0
  245. package/dist/esm/pipeline/processor.d.ts +67 -0
  246. package/dist/esm/pipeline/processor.d.ts.map +1 -0
  247. package/dist/esm/pipeline/processor.js +277 -0
  248. package/dist/esm/pipeline/processor.js.map +1 -0
  249. package/dist/esm/pipeline/sampler.d.ts +45 -0
  250. package/dist/esm/pipeline/sampler.d.ts.map +1 -0
  251. package/dist/esm/pipeline/sampler.js +59 -0
  252. package/dist/esm/pipeline/sampler.js.map +1 -0
  253. package/dist/esm/plugin/index.d.ts +4 -0
  254. package/dist/esm/plugin/index.d.ts.map +1 -0
  255. package/dist/esm/plugin/index.js +4 -0
  256. package/dist/esm/plugin/index.js.map +1 -0
  257. package/dist/esm/plugin/manager.d.ts +38 -0
  258. package/dist/esm/plugin/manager.d.ts.map +1 -0
  259. package/dist/esm/plugin/manager.js +75 -0
  260. package/dist/esm/plugin/manager.js.map +1 -0
  261. package/dist/esm/plugin/otel-trace.d.ts +19 -0
  262. package/dist/esm/plugin/otel-trace.d.ts.map +1 -0
  263. package/dist/esm/plugin/otel-trace.js +55 -0
  264. package/dist/esm/plugin/otel-trace.js.map +1 -0
  265. package/dist/esm/plugin/plugin.d.ts +41 -0
  266. package/dist/esm/plugin/plugin.d.ts.map +1 -0
  267. package/dist/esm/plugin/plugin.js +2 -0
  268. package/dist/esm/plugin/plugin.js.map +1 -0
  269. package/dist/esm/runtime/adapter.d.ts +81 -0
  270. package/dist/esm/runtime/adapter.d.ts.map +1 -0
  271. package/dist/esm/runtime/adapter.js +2 -0
  272. package/dist/esm/runtime/adapter.js.map +1 -0
  273. package/dist/esm/runtime/defaults.d.ts +27 -0
  274. package/dist/esm/runtime/defaults.d.ts.map +1 -0
  275. package/dist/esm/runtime/defaults.js +27 -0
  276. package/dist/esm/runtime/defaults.js.map +1 -0
  277. package/dist/esm/runtime/electron-binding.browser.d.ts +10 -0
  278. package/dist/esm/runtime/electron-binding.browser.d.ts.map +1 -0
  279. package/dist/esm/runtime/electron-binding.browser.js +13 -0
  280. package/dist/esm/runtime/electron-binding.browser.js.map +1 -0
  281. package/dist/esm/runtime/electron-binding.d.ts +24 -0
  282. package/dist/esm/runtime/electron-binding.d.ts.map +1 -0
  283. package/dist/esm/runtime/electron-binding.js +44 -0
  284. package/dist/esm/runtime/electron-binding.js.map +1 -0
  285. package/dist/esm/runtime/electron-lifecycle.d.ts +17 -0
  286. package/dist/esm/runtime/electron-lifecycle.d.ts.map +1 -0
  287. package/dist/esm/runtime/electron-lifecycle.js +44 -0
  288. package/dist/esm/runtime/electron-lifecycle.js.map +1 -0
  289. package/dist/esm/runtime/electron-main.d.ts +24 -0
  290. package/dist/esm/runtime/electron-main.d.ts.map +1 -0
  291. package/dist/esm/runtime/electron-main.js +99 -0
  292. package/dist/esm/runtime/electron-main.js.map +1 -0
  293. package/dist/esm/runtime/electron-renderer.d.ts +26 -0
  294. package/dist/esm/runtime/electron-renderer.d.ts.map +1 -0
  295. package/dist/esm/runtime/electron-renderer.js +30 -0
  296. package/dist/esm/runtime/electron-renderer.js.map +1 -0
  297. package/dist/esm/runtime/electron.d.ts +20 -0
  298. package/dist/esm/runtime/electron.d.ts.map +1 -0
  299. package/dist/esm/runtime/electron.js +21 -0
  300. package/dist/esm/runtime/electron.js.map +1 -0
  301. package/dist/esm/runtime/index.d.ts +21 -0
  302. package/dist/esm/runtime/index.d.ts.map +1 -0
  303. package/dist/esm/runtime/index.js +29 -0
  304. package/dist/esm/runtime/index.js.map +1 -0
  305. package/dist/esm/runtime/node.d.ts +27 -0
  306. package/dist/esm/runtime/node.d.ts.map +1 -0
  307. package/dist/esm/runtime/node.js +123 -0
  308. package/dist/esm/runtime/node.js.map +1 -0
  309. package/dist/esm/runtime/process-lifecycle.d.ts +13 -0
  310. package/dist/esm/runtime/process-lifecycle.d.ts.map +1 -0
  311. package/dist/esm/runtime/process-lifecycle.js +77 -0
  312. package/dist/esm/runtime/process-lifecycle.js.map +1 -0
  313. package/dist/esm/runtime/web-lifecycle.d.ts +13 -0
  314. package/dist/esm/runtime/web-lifecycle.d.ts.map +1 -0
  315. package/dist/esm/runtime/web-lifecycle.js +36 -0
  316. package/dist/esm/runtime/web-lifecycle.js.map +1 -0
  317. package/dist/esm/runtime/web.d.ts +14 -0
  318. package/dist/esm/runtime/web.d.ts.map +1 -0
  319. package/dist/esm/runtime/web.js +58 -0
  320. package/dist/esm/runtime/web.js.map +1 -0
  321. package/dist/esm/shims/index.browser.d.ts +26 -0
  322. package/dist/esm/shims/index.browser.d.ts.map +1 -0
  323. package/dist/esm/shims/index.browser.js +54 -0
  324. package/dist/esm/shims/index.browser.js.map +1 -0
  325. package/dist/esm/shims/index.d.ts +15 -0
  326. package/dist/esm/shims/index.d.ts.map +1 -0
  327. package/dist/esm/shims/index.js +22 -0
  328. package/dist/esm/shims/index.js.map +1 -0
  329. package/dist/esm/transport/cluster-ipc.d.ts +36 -0
  330. package/dist/esm/transport/cluster-ipc.d.ts.map +1 -0
  331. package/dist/esm/transport/cluster-ipc.js +71 -0
  332. package/dist/esm/transport/cluster-ipc.js.map +1 -0
  333. package/dist/esm/transport/console.d.ts +28 -0
  334. package/dist/esm/transport/console.d.ts.map +1 -0
  335. package/dist/esm/transport/console.js +44 -0
  336. package/dist/esm/transport/console.js.map +1 -0
  337. package/dist/esm/transport/electron-ipc.d.ts +69 -0
  338. package/dist/esm/transport/electron-ipc.d.ts.map +1 -0
  339. package/dist/esm/transport/electron-ipc.js +146 -0
  340. package/dist/esm/transport/electron-ipc.js.map +1 -0
  341. package/dist/esm/transport/file.d.ts +190 -0
  342. package/dist/esm/transport/file.d.ts.map +1 -0
  343. package/dist/esm/transport/file.js +662 -0
  344. package/dist/esm/transport/file.js.map +1 -0
  345. package/dist/esm/transport/index.d.ts +9 -0
  346. package/dist/esm/transport/index.d.ts.map +1 -0
  347. package/dist/esm/transport/index.js +9 -0
  348. package/dist/esm/transport/index.js.map +1 -0
  349. package/dist/esm/transport/live.d.ts +72 -0
  350. package/dist/esm/transport/live.d.ts.map +1 -0
  351. package/dist/esm/transport/live.js +100 -0
  352. package/dist/esm/transport/live.js.map +1 -0
  353. package/dist/esm/transport/otlp.d.ts +97 -0
  354. package/dist/esm/transport/otlp.d.ts.map +1 -0
  355. package/dist/esm/transport/otlp.js +190 -0
  356. package/dist/esm/transport/otlp.js.map +1 -0
  357. package/dist/esm/transport/rotating-file.d.ts +67 -0
  358. package/dist/esm/transport/rotating-file.d.ts.map +1 -0
  359. package/dist/esm/transport/rotating-file.js +175 -0
  360. package/dist/esm/transport/rotating-file.js.map +1 -0
  361. package/dist/esm/transport/transport.d.ts +35 -0
  362. package/dist/esm/transport/transport.d.ts.map +1 -0
  363. package/dist/esm/transport/transport.js +2 -0
  364. package/dist/esm/transport/transport.js.map +1 -0
  365. package/dist/esm/transport/worker-ipc.d.ts +43 -0
  366. package/dist/esm/transport/worker-ipc.d.ts.map +1 -0
  367. package/dist/esm/transport/worker-ipc.js +101 -0
  368. package/dist/esm/transport/worker-ipc.js.map +1 -0
  369. package/dist/esm/types.d.ts +72 -0
  370. package/dist/esm/types.d.ts.map +1 -0
  371. package/dist/esm/types.js +39 -0
  372. package/dist/esm/types.js.map +1 -0
  373. package/package.json +128 -0
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createProcessLifecycle = createProcessLifecycle;
4
+ function getProcess() {
5
+ if (typeof process === 'undefined' || typeof process.on !== 'function') {
6
+ return undefined;
7
+ }
8
+ return process;
9
+ }
10
+ /**
11
+ * Lifecycle hooks backed by the Node/Electron `process` event surface. Shared
12
+ * by the Node runtime and both Electron process types — they all expose the
13
+ * same `process` events.
14
+ *
15
+ * The flush callback is supplied by the logger; this module only decides
16
+ * *when* to call it and owns the `process.exit()` that follows a signal or a
17
+ * fatal, uncaught crash. It never touches `window`, so it is safe to import in
18
+ * any runtime (the `process` probe just returns `undefined` where absent).
19
+ */
20
+ function createProcessLifecycle() {
21
+ return {
22
+ onFlushBeforeExit(cb) {
23
+ const proc = getProcess();
24
+ if (!proc)
25
+ return () => { };
26
+ // Normal event-loop drain: flush pending writes; the process exits on
27
+ // its own once the loop empties. `beforeExit` re-fires while async writes
28
+ // keep it alive, so the queue keeps draining until empty.
29
+ const onBeforeExit = () => {
30
+ void cb();
31
+ };
32
+ // A signal must force an exit after flushing — but never hang shutdown on
33
+ // a stalled transport (the logger's flush timeout bounds it).
34
+ const onSignal = (code) => {
35
+ void Promise.resolve(cb()).finally(() => {
36
+ try {
37
+ proc.exit(code);
38
+ }
39
+ catch {
40
+ /* ignore */
41
+ }
42
+ });
43
+ };
44
+ const onSigInt = () => onSignal(130);
45
+ const onSigTerm = () => onSignal(143);
46
+ proc.on('beforeExit', onBeforeExit);
47
+ proc.on('SIGINT', onSigInt);
48
+ proc.on('SIGTERM', onSigTerm);
49
+ return () => {
50
+ proc.removeListener('beforeExit', onBeforeExit);
51
+ proc.removeListener('SIGINT', onSigInt);
52
+ proc.removeListener('SIGTERM', onSigTerm);
53
+ };
54
+ },
55
+ onUncaughtError(cb) {
56
+ const proc = getProcess();
57
+ if (!proc)
58
+ return () => { };
59
+ // Log the crash at fatal level, flush, then exit(1) — but never hang on a
60
+ // stalled transport (the logger's flush timeout bounds the flush).
61
+ const onErr = (err) => {
62
+ void Promise.resolve(cb(err)).finally(() => {
63
+ try {
64
+ proc.exit(1);
65
+ }
66
+ catch {
67
+ /* ignore */
68
+ }
69
+ });
70
+ };
71
+ proc.on('uncaughtException', onErr);
72
+ proc.on('unhandledRejection', onErr);
73
+ return () => {
74
+ proc.removeListener('uncaughtException', onErr);
75
+ proc.removeListener('unhandledRejection', onErr);
76
+ };
77
+ },
78
+ };
79
+ }
80
+ //# sourceMappingURL=process-lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-lifecycle.js","sourceRoot":"","sources":["../../../src/runtime/process-lifecycle.ts"],"names":[],"mappings":";;AA0BA,wDA2DC;AA5ED,SAAS,UAAU;IACjB,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAQ,OAA4B,CAAC,EAAE,KAAK,UAAU,EAAE,CAAC;QAC7F,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,OAA0B,CAAC;AACpC,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,sBAAsB;IACpC,OAAO;QACL,iBAAiB,CAAC,EAAE;YAClB,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI;gBAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;YAE3B,sEAAsE;YACtE,0EAA0E;YAC1E,0DAA0D;YAC1D,MAAM,YAAY,GAAG,GAAS,EAAE;gBAC9B,KAAK,EAAE,EAAE,CAAC;YACZ,CAAC,CAAC;YACF,0EAA0E;YAC1E,8DAA8D;YAC9D,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAQ,EAAE;gBACtC,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;oBACtC,IAAI,CAAC;wBACH,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAClB,CAAC;oBAAC,MAAM,CAAC;wBACP,YAAY;oBACd,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC;YACF,MAAM,QAAQ,GAAG,GAAS,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,SAAS,GAAG,GAAS,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAE5C,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;YACpC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC5B,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAC9B,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;gBAChD,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACxC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAC5C,CAAC,CAAC;QACJ,CAAC;QAED,eAAe,CAAC,EAAE;YAChB,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI;gBAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;YAE3B,0EAA0E;YAC1E,mEAAmE;YACnE,MAAM,KAAK,GAAG,CAAC,GAAY,EAAQ,EAAE;gBACnC,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;oBACzC,IAAI,CAAC;wBACH,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACf,CAAC;oBAAC,MAAM,CAAC;wBACP,YAAY;oBACd,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC;YACF,IAAI,CAAC,EAAE,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,EAAE,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;YACrC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;gBAChD,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;YACnD,CAAC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { LifecycleHooks } from './adapter.js';
2
+ /**
3
+ * Web lifecycle: flush pending entries when the page is being unloaded. There
4
+ * is no `process.exit` and no `uncaughtException` concept in a browser, so this
5
+ * only implements the "flush before close" hook (via `pagehide` /
6
+ * `visibilitychange`) and intentionally omits `onUncaughtError`.
7
+ *
8
+ * The flush is best-effort: the browser terminates the page after the unload
9
+ * event regardless, so the logger's own flush timeout is what bounds how long
10
+ * we wait.
11
+ */
12
+ export declare function createWebLifecycle(): LifecycleHooks;
13
+ //# sourceMappingURL=web-lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-lifecycle.d.ts","sourceRoot":"","sources":["../../../src/runtime/web-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAanD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,CAmBnD"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createWebLifecycle = createWebLifecycle;
4
+ function getWindow() {
5
+ if (typeof window === 'undefined')
6
+ return undefined;
7
+ return window;
8
+ }
9
+ /**
10
+ * Web lifecycle: flush pending entries when the page is being unloaded. There
11
+ * is no `process.exit` and no `uncaughtException` concept in a browser, so this
12
+ * only implements the "flush before close" hook (via `pagehide` /
13
+ * `visibilitychange`) and intentionally omits `onUncaughtError`.
14
+ *
15
+ * The flush is best-effort: the browser terminates the page after the unload
16
+ * event regardless, so the logger's own flush timeout is what bounds how long
17
+ * we wait.
18
+ */
19
+ function createWebLifecycle() {
20
+ return {
21
+ onFlushBeforeExit(cb) {
22
+ const win = getWindow();
23
+ if (!win)
24
+ return () => { };
25
+ const onHide = () => {
26
+ void cb();
27
+ };
28
+ // `pagehide` fires on tab close / navigation. `visibilitychange` covers
29
+ // the backgrounded / mobile case where the page may be discarded.
30
+ win.addEventListener('pagehide', onHide);
31
+ win.addEventListener('visibilitychange', onHide);
32
+ return () => {
33
+ win.removeEventListener('pagehide', onHide);
34
+ win.removeEventListener('visibilitychange', onHide);
35
+ };
36
+ },
37
+ };
38
+ }
39
+ //# sourceMappingURL=web-lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-lifecycle.js","sourceRoot":"","sources":["../../../src/runtime/web-lifecycle.ts"],"names":[],"mappings":";;AAuBA,gDAmBC;AAlCD,SAAS,SAAS;IAChB,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IACpD,OAAO,MAAwB,CAAC;AAClC,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,kBAAkB;IAChC,OAAO;QACL,iBAAiB,CAAC,EAAE;YAClB,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG;gBAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;YAE1B,MAAM,MAAM,GAAG,GAAS,EAAE;gBACxB,KAAK,EAAE,EAAE,CAAC;YACZ,CAAC,CAAC;YACF,wEAAwE;YACxE,kEAAkE;YAClE,GAAG,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACzC,GAAG,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;YACjD,OAAO,GAAG,EAAE;gBACV,GAAG,CAAC,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBAC5C,GAAG,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;YACtD,CAAC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { RuntimeAdapter } from './adapter.js';
2
+ /**
3
+ * Web runtime (browsers + Node worker_threads). No process id, no filesystem,
4
+ * console only by default. Remote HTTP transports can be added by the
5
+ * application.
6
+ *
7
+ * **Worker support.** When running inside a Web Worker or Node worker_threads
8
+ * worker, the runtime automatically detects the Worker context and sends
9
+ * entries to the main/parent thread via `postMessage()`. The parent thread
10
+ * receives them via `registerWorkerReceiver()` (attached automatically by
11
+ * `createWebRuntime()`).
12
+ */
13
+ export declare function createWebRuntime(): RuntimeAdapter;
14
+ //# sourceMappingURL=web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../../src/runtime/web.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AA8BnD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,IAAI,cAAc,CAuBjD"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createWebRuntime = createWebRuntime;
4
+ const console_js_1 = require("../transport/console.js");
5
+ const worker_ipc_js_1 = require("../transport/worker-ipc.js");
6
+ const web_lifecycle_js_1 = require("./web-lifecycle.js");
7
+ /**
8
+ * Detect whether the current context is a Web Worker or Node worker_threads.
9
+ * Uses `typeof` checks that are safe in all environments (returns false in
10
+ * non-worker contexts).
11
+ */
12
+ function isWorkerThread() {
13
+ // Web Worker: WorkerGlobalScope exists and there's no document (rules out window)
14
+ if (typeof WorkerGlobalScope !== 'undefined' &&
15
+ typeof self !== 'undefined' &&
16
+ typeof self.document === 'undefined') {
17
+ return true;
18
+ }
19
+ // Node worker_threads: parentPort exists with postMessage
20
+ if (typeof globalThis !== 'undefined' &&
21
+ typeof globalThis.parentPort?.postMessage ===
22
+ 'function') {
23
+ return true;
24
+ }
25
+ return false;
26
+ }
27
+ /**
28
+ * Web runtime (browsers + Node worker_threads). No process id, no filesystem,
29
+ * console only by default. Remote HTTP transports can be added by the
30
+ * application.
31
+ *
32
+ * **Worker support.** When running inside a Web Worker or Node worker_threads
33
+ * worker, the runtime automatically detects the Worker context and sends
34
+ * entries to the main/parent thread via `postMessage()`. The parent thread
35
+ * receives them via `registerWorkerReceiver()` (attached automatically by
36
+ * `createWebRuntime()`).
37
+ */
38
+ function createWebRuntime() {
39
+ if (isWorkerThread()) {
40
+ // ── Worker: no file, send to parent via postMessage ──
41
+ return {
42
+ name: 'web',
43
+ now: () => Date.now(),
44
+ pid: () => undefined,
45
+ hasFileSystem: () => false,
46
+ defaultTransports: () => [new console_js_1.ConsoleTransport(), new worker_ipc_js_1.WorkerIpcTransport()],
47
+ lifecycle: (0, web_lifecycle_js_1.createWebLifecycle)(),
48
+ };
49
+ }
50
+ // ── Main/parent thread: console only + receives worker logs ──
51
+ return {
52
+ name: 'web',
53
+ now: () => Date.now(),
54
+ pid: () => undefined,
55
+ hasFileSystem: () => false,
56
+ defaultTransports: () => [new console_js_1.ConsoleTransport()],
57
+ attachReceiver: (ingest) => (0, worker_ipc_js_1.registerWorkerReceiver)(ingest),
58
+ lifecycle: (0, web_lifecycle_js_1.createWebLifecycle)(),
59
+ };
60
+ }
61
+ //# sourceMappingURL=web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../../src/runtime/web.ts"],"names":[],"mappings":";;AA2CA,4CAuBC;AAlED,wDAA2D;AAC3D,8DAAwF;AAExF,yDAAwD;AAIxD;;;;GAIG;AACH,SAAS,cAAc;IACrB,kFAAkF;IAClF,IACE,OAAO,iBAAiB,KAAK,WAAW;QACxC,OAAO,IAAI,KAAK,WAAW;QAC3B,OAAQ,IAA+B,CAAC,QAAQ,KAAK,WAAW,EAChE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,0DAA0D;IAC1D,IACE,OAAO,UAAU,KAAK,WAAW;QACjC,OAAQ,UAAwD,CAAC,UAAU,EAAE,WAAW;YACtF,UAAU,EACZ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,gBAAgB;IAC9B,IAAI,cAAc,EAAE,EAAE,CAAC;QACrB,wDAAwD;QACxD,OAAO;YACL,IAAI,EAAE,KAAK;YACX,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YACrB,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS;YACpB,aAAa,EAAE,GAAG,EAAE,CAAC,KAAK;YAC1B,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,6BAAgB,EAAE,EAAE,IAAI,kCAAkB,EAAE,CAAC;YAC3E,SAAS,EAAE,IAAA,qCAAkB,GAAE;SAChC,CAAC;IACJ,CAAC;IAED,gEAAgE;IAChE,OAAO;QACL,IAAI,EAAE,KAAK;QACX,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QACrB,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS;QACpB,aAAa,EAAE,GAAG,EAAE,CAAC,KAAK;QAC1B,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,6BAAgB,EAAE,CAAC;QACjD,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,sCAAsB,EAAC,MAAM,CAAC;QAC1D,SAAS,EAAE,IAAA,qCAAkB,GAAE;KAChC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Browser stub for all Node built-in modules used by lograil.
3
+ * Selected over `index.ts` via the `browser` field in `package.json`.
4
+ *
5
+ * Functions that are never called in browser builds (FileTransport) throw
6
+ * descriptive errors. Functions that have reasonable browser defaults
7
+ * (tmpdir) return sensible values.
8
+ */
9
+ export declare function tmpdir(): string;
10
+ export declare function isClusterWorker(): boolean;
11
+ export declare function basename(p: string, ext?: string): string;
12
+ export declare function dirname(p: string): string;
13
+ export declare function join(...segments: string[]): string;
14
+ export declare function mkdir(_path: string, _options?: unknown): Promise<void>;
15
+ export declare function open(_path: string, _flags?: string): Promise<{
16
+ fd: number;
17
+ close(): Promise<void>;
18
+ }>;
19
+ export declare function rename(_oldPath: string, _newPath: string): Promise<void>;
20
+ export declare function rm(_path: string, _options?: unknown): Promise<void>;
21
+ export declare function stat(_path: string): Promise<{
22
+ size: number;
23
+ mtimeMs: number;
24
+ }>;
25
+ export declare function readdir(_path: string): Promise<string[]>;
26
+ //# sourceMappingURL=index.browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../../../src/shims/index.browser.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,wBAAgB,MAAM,IAAI,MAAM,CAE/B;AAGD,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAGD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAQxD;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAGzC;AAED,wBAAgB,IAAI,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAElD;AAKD,wBAAsB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5E;AAED,wBAAsB,IAAI,CACxB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CAEjD;AAED,wBAAsB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9E;AAED,wBAAsB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzE;AAED,wBAAsB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAEpF;AAED,wBAAsB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAE9D"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ /**
3
+ * Browser stub for all Node built-in modules used by lograil.
4
+ * Selected over `index.ts` via the `browser` field in `package.json`.
5
+ *
6
+ * Functions that are never called in browser builds (FileTransport) throw
7
+ * descriptive errors. Functions that have reasonable browser defaults
8
+ * (tmpdir) return sensible values.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.tmpdir = tmpdir;
12
+ exports.isClusterWorker = isClusterWorker;
13
+ exports.basename = basename;
14
+ exports.dirname = dirname;
15
+ exports.join = join;
16
+ exports.mkdir = mkdir;
17
+ exports.open = open;
18
+ exports.rename = rename;
19
+ exports.rm = rm;
20
+ exports.stat = stat;
21
+ exports.readdir = readdir;
22
+ // --- os ---
23
+ function tmpdir() {
24
+ return '/tmp';
25
+ }
26
+ // --- cluster ---
27
+ function isClusterWorker() {
28
+ return false;
29
+ }
30
+ // --- path ---
31
+ function basename(p, ext) {
32
+ const seg = p
33
+ .replace(/[/\\]$/, '')
34
+ .split(/[/\\]/)
35
+ .pop() ?? '';
36
+ if (!ext)
37
+ return seg;
38
+ return seg.endsWith(ext) ? seg.slice(0, -ext.length) : seg;
39
+ }
40
+ function dirname(p) {
41
+ const idx = Math.max(p.lastIndexOf('/'), p.lastIndexOf('\\'));
42
+ return idx <= 0 ? '.' : p.slice(0, idx);
43
+ }
44
+ function join(...segments) {
45
+ return segments.filter(Boolean).join('/');
46
+ }
47
+ // --- fs/promises ---
48
+ const NOT_AVAILABLE = 'File system APIs are not available in browser builds';
49
+ async function mkdir(_path, _options) {
50
+ throw new Error(NOT_AVAILABLE);
51
+ }
52
+ async function open(_path, _flags) {
53
+ throw new Error(NOT_AVAILABLE);
54
+ }
55
+ async function rename(_oldPath, _newPath) {
56
+ throw new Error(NOT_AVAILABLE);
57
+ }
58
+ async function rm(_path, _options) {
59
+ throw new Error(NOT_AVAILABLE);
60
+ }
61
+ async function stat(_path) {
62
+ throw new Error(NOT_AVAILABLE);
63
+ }
64
+ async function readdir(_path) {
65
+ throw new Error(NOT_AVAILABLE);
66
+ }
67
+ //# sourceMappingURL=index.browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.browser.js","sourceRoot":"","sources":["../../../src/shims/index.browser.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAGH,wBAEC;AAGD,0CAEC;AAGD,4BAQC;AAED,0BAGC;AAED,oBAEC;AAKD,sBAEC;AAED,oBAKC;AAED,wBAEC;AAED,gBAEC;AAED,oBAEC;AAED,0BAEC;AA1DD,aAAa;AACb,SAAgB,MAAM;IACpB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,kBAAkB;AAClB,SAAgB,eAAe;IAC7B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,eAAe;AACf,SAAgB,QAAQ,CAAC,CAAS,EAAE,GAAY;IAC9C,MAAM,GAAG,GACP,CAAC;SACE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;SACrB,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,EAAE,IAAI,EAAE,CAAC;IACjB,IAAI,CAAC,GAAG;QAAE,OAAO,GAAG,CAAC;IACrB,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC7D,CAAC;AAED,SAAgB,OAAO,CAAC,CAAS;IAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC1C,CAAC;AAED,SAAgB,IAAI,CAAC,GAAG,QAAkB;IACxC,OAAO,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,sBAAsB;AACtB,MAAM,aAAa,GAAG,sDAAsD,CAAC;AAEtE,KAAK,UAAU,KAAK,CAAC,KAAa,EAAE,QAAkB;IAC3D,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;AACjC,CAAC;AAEM,KAAK,UAAU,IAAI,CACxB,KAAa,EACb,MAAe;IAEf,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;AACjC,CAAC;AAEM,KAAK,UAAU,MAAM,CAAC,QAAgB,EAAE,QAAgB;IAC7D,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;AACjC,CAAC;AAEM,KAAK,UAAU,EAAE,CAAC,KAAa,EAAE,QAAkB;IACxD,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;AACjC,CAAC;AAEM,KAAK,UAAU,IAAI,CAAC,KAAa;IACtC,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;AACjC,CAAC;AAEM,KAAK,UAAU,OAAO,CAAC,KAAa;IACzC,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;AACjC,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Node.js API shims — the single entry point for all Node built-in module
3
+ * access in lograil. Every consumer imports from this module instead of
4
+ * `node:*` directly, so browser builds can swap the whole file at once
5
+ * via the `browser` field in `package.json`.
6
+ *
7
+ * If you need a new Node API, add the re-export here **and** the matching
8
+ * stub in `index.browser.ts`. ESLint will flag any direct `node:*` import
9
+ * outside this file.
10
+ */
11
+ export { tmpdir } from 'node:os';
12
+ export { basename, dirname, join } from 'node:path';
13
+ export { mkdir, open, rename, rm, stat, readdir } from 'node:fs/promises';
14
+ export declare function isClusterWorker(): boolean;
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shims/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGjC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGpD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAI1E,wBAAgB,eAAe,IAAI,OAAO,CAEzC"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ /**
3
+ * Node.js API shims — the single entry point for all Node built-in module
4
+ * access in lograil. Every consumer imports from this module instead of
5
+ * `node:*` directly, so browser builds can swap the whole file at once
6
+ * via the `browser` field in `package.json`.
7
+ *
8
+ * If you need a new Node API, add the re-export here **and** the matching
9
+ * stub in `index.browser.ts`. ESLint will flag any direct `node:*` import
10
+ * outside this file.
11
+ */
12
+ var __importDefault = (this && this.__importDefault) || function (mod) {
13
+ return (mod && mod.__esModule) ? mod : { "default": mod };
14
+ };
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.readdir = exports.stat = exports.rm = exports.rename = exports.mkdir = exports.join = exports.dirname = exports.basename = exports.tmpdir = void 0;
17
+ exports.isClusterWorker = isClusterWorker;
18
+ // --- os ---
19
+ var node_os_1 = require("node:os");
20
+ Object.defineProperty(exports, "tmpdir", { enumerable: true, get: function () { return node_os_1.tmpdir; } });
21
+ // --- path ---
22
+ var node_path_1 = require("node:path");
23
+ Object.defineProperty(exports, "basename", { enumerable: true, get: function () { return node_path_1.basename; } });
24
+ Object.defineProperty(exports, "dirname", { enumerable: true, get: function () { return node_path_1.dirname; } });
25
+ Object.defineProperty(exports, "join", { enumerable: true, get: function () { return node_path_1.join; } });
26
+ // --- fs/promises ---
27
+ var promises_1 = require("node:fs/promises");
28
+ Object.defineProperty(exports, "mkdir", { enumerable: true, get: function () { return promises_1.mkdir; } });
29
+ Object.defineProperty(exports, "open", { enumerable: true, get: function () { return promises_1.open; } });
30
+ Object.defineProperty(exports, "rename", { enumerable: true, get: function () { return promises_1.rename; } });
31
+ Object.defineProperty(exports, "rm", { enumerable: true, get: function () { return promises_1.rm; } });
32
+ Object.defineProperty(exports, "stat", { enumerable: true, get: function () { return promises_1.stat; } });
33
+ Object.defineProperty(exports, "readdir", { enumerable: true, get: function () { return promises_1.readdir; } });
34
+ // --- cluster ---
35
+ const node_cluster_1 = __importDefault(require("node:cluster"));
36
+ function isClusterWorker() {
37
+ return node_cluster_1.default.isWorker === true;
38
+ }
39
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shims/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;AAaH,0CAEC;AAbD,aAAa;AACb,mCAAiC;AAAxB,iGAAA,MAAM,OAAA;AAEf,eAAe;AACf,uCAAoD;AAA3C,qGAAA,QAAQ,OAAA;AAAE,oGAAA,OAAO,OAAA;AAAE,iGAAA,IAAI,OAAA;AAEhC,sBAAsB;AACtB,6CAA0E;AAAjE,iGAAA,KAAK,OAAA;AAAE,gGAAA,IAAI,OAAA;AAAE,kGAAA,MAAM,OAAA;AAAE,8FAAA,EAAE,OAAA;AAAE,gGAAA,IAAI,OAAA;AAAE,mGAAA,OAAO,OAAA;AAE/C,kBAAkB;AAClB,gEAAmC;AACnC,SAAgB,eAAe;IAC7B,OAAO,sBAAO,CAAC,QAAQ,KAAK,IAAI,CAAC;AACnC,CAAC"}
@@ -0,0 +1,36 @@
1
+ import type { LogEntry } from '../types.js';
2
+ import type { Transport } from './transport.js';
3
+ /** IPC channel for cluster worker → primary communication. */
4
+ export declare const CLUSTER_IPC_CHANNEL = "lograil:cluster:log";
5
+ export interface ClusterIpcTransportOptions {
6
+ /** IPC channel used to reach the primary process. */
7
+ channel?: string;
8
+ /** Transport name. */
9
+ name?: string;
10
+ }
11
+ /**
12
+ * Worker-side transport that sends entries to the primary process via
13
+ * `process.send()`. Safe to import in non-cluster environments — the write
14
+ * call is a no-op when `process.send` is unavailable.
15
+ */
16
+ export declare class ClusterIpcTransport implements Transport {
17
+ readonly name: string;
18
+ constructor(options?: ClusterIpcTransportOptions);
19
+ write(entry: LogEntry, _formatted: string): void;
20
+ /** Send a cross-process level command to the primary process. */
21
+ sendLevelCommand(level: number): void;
22
+ }
23
+ export interface ClusterReceiverOptions {
24
+ /** Reserved for future use. Currently all cluster messages share one channel. */
25
+ channel?: string;
26
+ }
27
+ /**
28
+ * Primary-side helper: listen on the cluster IPC channel and feed received
29
+ * worker entries into the provided `ingest` callback (typically
30
+ * `logger.ingestEntry`). Level-change commands are forwarded to
31
+ * `onLevelCommand` when provided. Returns an unregister function.
32
+ */
33
+ export declare function registerClusterReceiver(ingest: (entry: LogEntry) => void, options?: ClusterReceiverOptions & {
34
+ onLevelCommand?: (level: number) => void;
35
+ }): () => void;
36
+ //# sourceMappingURL=cluster-ipc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cluster-ipc.d.ts","sourceRoot":"","sources":["../../../src/transport/cluster-ipc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIhD,8DAA8D;AAC9D,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAEzD,MAAM,WAAW,0BAA0B;IACzC,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sBAAsB;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,qBAAa,mBAAoB,YAAW,SAAS;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,OAAO,GAAE,0BAA+B;IAIpD,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAiBhD,iEAAiE;IACjE,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAatC;AAED,MAAM,WAAW,sBAAsB;IACrC,iFAAiF;IACjF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,EACjC,OAAO,GAAE,sBAAsB,GAAG;IAAE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAAO,GAClF,MAAM,IAAI,CA6BZ"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClusterIpcTransport = exports.CLUSTER_IPC_CHANNEL = void 0;
4
+ exports.registerClusterReceiver = registerClusterReceiver;
5
+ const types_js_1 = require("../types.js");
6
+ /** IPC channel for cluster worker → primary communication. */
7
+ exports.CLUSTER_IPC_CHANNEL = 'lograil:cluster:log';
8
+ /**
9
+ * Worker-side transport that sends entries to the primary process via
10
+ * `process.send()`. Safe to import in non-cluster environments — the write
11
+ * call is a no-op when `process.send` is unavailable.
12
+ */
13
+ class ClusterIpcTransport {
14
+ constructor(options = {}) {
15
+ this.name = options.name ?? 'cluster-ipc';
16
+ }
17
+ write(entry, _formatted) {
18
+ try {
19
+ const proc = process;
20
+ if (typeof proc.send === 'function') {
21
+ proc.send(entry, (err) => {
22
+ if (err) {
23
+ /* primary gone or channel closed — drop silently */
24
+ }
25
+ });
26
+ }
27
+ }
28
+ catch {
29
+ /* process.send unavailable — drop silently */
30
+ }
31
+ }
32
+ /** Send a cross-process level command to the primary process. */
33
+ sendLevelCommand(level) {
34
+ try {
35
+ const proc = process;
36
+ if (typeof proc.send === 'function') {
37
+ const cmd = { __lograilCmd: true, __lograilCmdType: 'setLevel', level };
38
+ proc.send(cmd);
39
+ }
40
+ }
41
+ catch {
42
+ /* process.send unavailable — drop silently */
43
+ }
44
+ }
45
+ }
46
+ exports.ClusterIpcTransport = ClusterIpcTransport;
47
+ /**
48
+ * Primary-side helper: listen on the cluster IPC channel and feed received
49
+ * worker entries into the provided `ingest` callback (typically
50
+ * `logger.ingestEntry`). Level-change commands are forwarded to
51
+ * `onLevelCommand` when provided. Returns an unregister function.
52
+ */
53
+ function registerClusterReceiver(ingest, options = {}) {
54
+ const onLevelCommand = options.onLevelCommand;
55
+ const proc = process;
56
+ if (!proc.on || !proc.removeListener)
57
+ return () => { };
58
+ const handler = (message) => {
59
+ if ((0, types_js_1.isLogLevelCommand)(message)) {
60
+ onLevelCommand?.((0, types_js_1.normalizeLevel)(message.level));
61
+ return;
62
+ }
63
+ if (message &&
64
+ typeof message === 'object' &&
65
+ 'level' in message &&
66
+ 'message' in message &&
67
+ 'timestamp' in message) {
68
+ ingest(message);
69
+ }
70
+ };
71
+ proc.on('message', handler);
72
+ return () => {
73
+ proc.removeListener?.('message', handler);
74
+ };
75
+ }
76
+ //# sourceMappingURL=cluster-ipc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cluster-ipc.js","sourceRoot":"","sources":["../../../src/transport/cluster-ipc.ts"],"names":[],"mappings":";;;AAuEA,0DAgCC;AApGD,0CAAgE;AAEhE,8DAA8D;AACjD,QAAA,mBAAmB,GAAG,qBAAqB,CAAC;AASzD;;;;GAIG;AACH,MAAa,mBAAmB;IAG9B,YAAY,UAAsC,EAAE;QAClD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,aAAa,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,KAAe,EAAE,UAAkB;QACvC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,OAEZ,CAAC;YACF,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACpC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE;oBAC/B,IAAI,GAAG,EAAE,CAAC;wBACR,oDAAoD;oBACtD,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,8CAA8C;QAChD,CAAC;IACH,CAAC;IAED,iEAAiE;IACjE,gBAAgB,CAAC,KAAa;QAC5B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,OAEZ,CAAC;YACF,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACpC,MAAM,GAAG,GAAoB,EAAE,YAAY,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;gBACzF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,8CAA8C;QAChD,CAAC;IACH,CAAC;CACF;AAtCD,kDAsCC;AAOD;;;;;GAKG;AACH,SAAgB,uBAAuB,CACrC,MAAiC,EACjC,UAAiF,EAAE;IAEnF,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAC9C,MAAM,IAAI,GAAG,OAGZ,CAAC;IAEF,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc;QAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAEtD,MAAM,OAAO,GAAG,CAAC,OAAgB,EAAQ,EAAE;QACzC,IAAI,IAAA,4BAAiB,EAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,cAAc,EAAE,CAAC,IAAA,yBAAc,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QACD,IACE,OAAO;YACP,OAAO,OAAO,KAAK,QAAQ;YAC3B,OAAO,IAAI,OAAO;YAClB,SAAS,IAAI,OAAO;YACpB,WAAW,IAAI,OAAO,EACtB,CAAC;YACD,MAAM,CAAC,OAAmB,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC5B,OAAO,GAAG,EAAE;QACV,IAAI,CAAC,cAAc,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { LogEntry, LogLevelName } from '../types.js';
2
+ import type { Formatter } from '../pipeline/formatter.js';
3
+ import type { Transport } from './transport.js';
4
+ export interface ConsoleTransportOptions {
5
+ name?: string;
6
+ formatter?: Formatter;
7
+ /** Map a level to the console method used. */
8
+ methodMap?: Partial<Record<string, (...args: unknown[]) => void>>;
9
+ /**
10
+ * Levels that should be written to `stderr` (via `console.error`). Any level
11
+ * listed here is routed to `console.error` even if `methodMap` maps it
12
+ * elsewhere. Defaults to `['error', 'fatal']` (matching the previous
13
+ * behaviour); add `'warn'` to also send warnings to stderr.
14
+ */
15
+ stderrLevels?: LogLevelName[];
16
+ }
17
+ /**
18
+ * Writes log entries to the global `console`. Suitable for both Web and
19
+ * Node/Electron runtimes.
20
+ */
21
+ export declare class ConsoleTransport implements Transport {
22
+ readonly name: string;
23
+ readonly formatter: Formatter;
24
+ private methodMap;
25
+ constructor(options?: ConsoleTransportOptions);
26
+ write(entry: LogEntry, formatted: string): void;
27
+ }
28
+ //# sourceMappingURL=console.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../../src/transport/console.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAchD,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;IAClE;;;;;OAKG;IACH,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;CAC/B;AAED;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,SAAS;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAE9B,OAAO,CAAC,SAAS,CAA+C;gBAEpD,OAAO,GAAE,uBAA4B;IAsBjD,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAIhD"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConsoleTransport = void 0;
4
+ const formatter_js_1 = require("../pipeline/formatter.js");
5
+ // Snapshot the real console methods at module load so that, even if something
6
+ // later redirects the global `console` (see `Logger.redirectConsole`), this
7
+ // transport keeps writing to the original console and never recurses.
8
+ const realConsole = {
9
+ trace: console.trace.bind(console),
10
+ debug: console.debug.bind(console),
11
+ info: console.info.bind(console),
12
+ warn: console.warn.bind(console),
13
+ error: console.error.bind(console),
14
+ log: console.log.bind(console),
15
+ };
16
+ /**
17
+ * Writes log entries to the global `console`. Suitable for both Web and
18
+ * Node/Electron runtimes.
19
+ */
20
+ class ConsoleTransport {
21
+ constructor(options = {}) {
22
+ this.name = options.name ?? 'console';
23
+ this.formatter = options.formatter ?? (0, formatter_js_1.createLineFormatter)();
24
+ this.methodMap = {
25
+ trace: realConsole.trace,
26
+ debug: realConsole.debug,
27
+ info: realConsole.info,
28
+ warn: realConsole.warn,
29
+ error: realConsole.error,
30
+ fatal: realConsole.error,
31
+ ...options.methodMap,
32
+ };
33
+ // Route the requested levels to stderr (console.error). Applied after
34
+ // `methodMap` so an explicitly provided method for a level is not silently
35
+ // overridden. Defaults to empty — the default `methodMap` already sends
36
+ // `error`/`fatal` to stderr, so opt in with e.g. `stderrLevels: ['warn']`.
37
+ const stderrLevels = options.stderrLevels ?? [];
38
+ for (const level of stderrLevels) {
39
+ this.methodMap[level] = realConsole.error;
40
+ }
41
+ }
42
+ write(entry, formatted) {
43
+ const fn = this.methodMap[entry.levelName] ?? realConsole.log;
44
+ fn(formatted);
45
+ }
46
+ }
47
+ exports.ConsoleTransport = ConsoleTransport;
48
+ //# sourceMappingURL=console.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console.js","sourceRoot":"","sources":["../../../src/transport/console.ts"],"names":[],"mappings":";;;AAEA,2DAA+D;AAG/D,8EAA8E;AAC9E,4EAA4E;AAC5E,sEAAsE;AACtE,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;IAClC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;IAClC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAChC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAChC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;IAClC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;CAC/B,CAAC;AAgBF;;;GAGG;AACH,MAAa,gBAAgB;IAM3B,YAAY,UAAmC,EAAE;QAC/C,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAA,kCAAmB,GAAE,CAAC;QAC5D,IAAI,CAAC,SAAS,GAAG;YACf,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,GAAG,OAAO,CAAC,SAAS;SACrB,CAAC;QACF,sEAAsE;QACtE,2EAA2E;QAC3E,wEAAwE;QACxE,2EAA2E;QAC3E,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;QAChD,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAe,EAAE,SAAiB;QACtC,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC;QAC9D,EAAE,CAAC,SAAS,CAAC,CAAC;IAChB,CAAC;CACF;AAhCD,4CAgCC"}