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,175 @@
1
+ import { mkdir, open, rename, stat, truncate } from 'node:fs/promises';
2
+ import { dirname, extname } from 'node:path';
3
+ import { createJsonFormatter } from '../pipeline/formatter.js';
4
+ const DEFAULT_MAX_SIZE = 10 * 1024 * 1024;
5
+ const DEFAULT_MAX_FILES = 5;
6
+ const DEFAULT_MAX_FILES_DAILY = 99;
7
+ function dateStamp(d) {
8
+ const y = d.getFullYear();
9
+ const m = String(d.getMonth() + 1).padStart(2, '0');
10
+ const day = String(d.getDate()).padStart(2, '0');
11
+ return `${y}-${m}-${day}`;
12
+ }
13
+ /**
14
+ * File transport with rotation, for the Electron main process (Node.js).
15
+ *
16
+ * Two modes:
17
+ * - **Daily** (default): the active file is
18
+ * `{name}.{YYYY-MM-DD}.{index}.log`, where `index` runs `01`..`maxFiles`
19
+ * (default 99). When it would pass `maxFiles` it wraps back to `01` and
20
+ * that file is cleared — a `maxFiles`-file ring buffer per day. When the
21
+ * local day changes, the index resets to `01` for the new day.
22
+ */
23
+ export class RotatingFileTransport {
24
+ constructor(options) {
25
+ this.handle = null;
26
+ this.queue = Promise.resolve();
27
+ this.size = 0;
28
+ this.sizeInitialized = false;
29
+ this.index = 1;
30
+ if (!options.path) {
31
+ throw new Error('RotatingFileTransport requires a "path"');
32
+ }
33
+ this.path = options.path;
34
+ this.daily = options.daily ?? true;
35
+ this.maxSize = options.maxSize ?? DEFAULT_MAX_SIZE;
36
+ this.maxFiles = options.maxFiles ?? (this.daily ? DEFAULT_MAX_FILES_DAILY : DEFAULT_MAX_FILES);
37
+ if (!this.daily) {
38
+ this.maxFiles = Math.max(2, this.maxFiles);
39
+ }
40
+ else {
41
+ this.maxFiles = Math.max(1, this.maxFiles);
42
+ }
43
+ this.now = options.now ?? (() => new Date());
44
+ this.name = options.name ?? `rotating-file:${options.path}`;
45
+ this.formatter = options.formatter ?? createJsonFormatter();
46
+ }
47
+ activePath() {
48
+ if (!this.daily) {
49
+ return this.path;
50
+ }
51
+ const ext = extname(this.path);
52
+ const base = ext ? this.path.slice(0, -ext.length) : this.path;
53
+ const idx = String(this.index).padStart(2, '0');
54
+ return `${base}.${this.currentDate}.${idx}${ext}`;
55
+ }
56
+ async ensureHandle() {
57
+ if (!this.handle) {
58
+ await mkdir(dirname(this.activePath()), { recursive: true });
59
+ this.handle = await open(this.activePath(), 'a');
60
+ }
61
+ }
62
+ async ensureSize() {
63
+ if (this.sizeInitialized)
64
+ return;
65
+ try {
66
+ const st = await stat(this.activePath());
67
+ this.size = st.size;
68
+ }
69
+ catch {
70
+ this.size = 0;
71
+ }
72
+ this.sizeInitialized = true;
73
+ }
74
+ async rotateSize() {
75
+ if (this.handle) {
76
+ await this.handle.close();
77
+ this.handle = null;
78
+ }
79
+ const gens = this.maxFiles - 1;
80
+ for (let k = gens; k >= 2; k--) {
81
+ try {
82
+ await rename(`${this.path}.${k - 1}`, `${this.path}.${k}`);
83
+ }
84
+ catch {
85
+ /* generation missing — skip */
86
+ }
87
+ }
88
+ try {
89
+ await rename(this.path, `${this.path}.1`);
90
+ }
91
+ catch {
92
+ /* nothing to rotate yet */
93
+ }
94
+ this.size = 0;
95
+ this.sizeInitialized = true;
96
+ await this.ensureHandle();
97
+ }
98
+ /**
99
+ * Move to a new index file. When `clear` is true the target file is
100
+ * truncated first (used both for normal index advancement and for the
101
+ * wrap-to-01, which must clear the stale `01` slot).
102
+ */
103
+ async rotateToIndex(idx, clear) {
104
+ if (this.handle) {
105
+ await this.handle.close();
106
+ this.handle = null;
107
+ }
108
+ this.index = idx;
109
+ if (clear) {
110
+ try {
111
+ await truncate(this.activePath(), 0);
112
+ }
113
+ catch {
114
+ /* file did not exist yet — fine */
115
+ }
116
+ this.size = 0;
117
+ this.sizeInitialized = true;
118
+ }
119
+ await this.ensureHandle();
120
+ if (!clear) {
121
+ await this.ensureSize();
122
+ }
123
+ }
124
+ write(_entry, formatted) {
125
+ const line = formatted + '\n';
126
+ const bytes = Buffer.byteLength(line, 'utf8');
127
+ const task = this.queue
128
+ .then(async () => {
129
+ if (!this.daily) {
130
+ await this.ensureSize();
131
+ if (this.size + bytes > this.maxSize) {
132
+ await this.rotateSize();
133
+ }
134
+ }
135
+ else {
136
+ const today = dateStamp(this.now());
137
+ if (this.currentDate === undefined || today !== this.currentDate) {
138
+ // First open, or a new day: reset to index 01 (resume/append).
139
+ this.currentDate = today;
140
+ this.index = 1;
141
+ await this.rotateToIndex(1, false);
142
+ }
143
+ else {
144
+ await this.ensureSize();
145
+ if (this.size + bytes > this.maxSize) {
146
+ let next = this.index + 1;
147
+ if (next > this.maxFiles) {
148
+ next = 1; // wrap and clear the 01 slot
149
+ }
150
+ await this.rotateToIndex(next, true);
151
+ }
152
+ }
153
+ }
154
+ await this.ensureHandle();
155
+ await this.handle.write(line);
156
+ this.size += bytes;
157
+ })
158
+ .catch(() => {
159
+ /* swallow write errors to avoid crashing the app */
160
+ });
161
+ this.queue = task;
162
+ return task;
163
+ }
164
+ async flush() {
165
+ await this.queue;
166
+ }
167
+ async close() {
168
+ await this.queue;
169
+ if (this.handle) {
170
+ await this.handle.close();
171
+ this.handle = null;
172
+ }
173
+ }
174
+ }
175
+ //# sourceMappingURL=rotating-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rotating-file.js","sourceRoot":"","sources":["../../../src/transport/rotating-file.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { LogEntry, LogLevelInput } from '../types.js';
2
+ import type { Formatter } from '../pipeline/formatter.js';
3
+ /**
4
+ * A Transport is the final sink of a log entry. Examples: console, file,
5
+ * IPC to the Electron main process, or HTTP remote reporting.
6
+ *
7
+ * `write` may be synchronous or async. When async, the Logger awaits it
8
+ * during a `flush()`.
9
+ */
10
+ export interface Transport {
11
+ /** Unique transport name, used for diagnostics and removal. */
12
+ readonly name: string;
13
+ /** Optional per-transport formatter, overrides the pipeline default. */
14
+ readonly formatter?: Formatter;
15
+ /**
16
+ * Optional minimum level for this transport, as a name (`'info'`) or number.
17
+ * Entries below this level are skipped by this transport (the logger-level
18
+ * filter still applies first). Lets you route, e.g., `error`+ to a remote
19
+ * sink while sending everything to a file.
20
+ */
21
+ readonly level?: LogLevelInput;
22
+ /** Emit a processed entry. */
23
+ write(entry: LogEntry, formatted: string): void | Promise<void>;
24
+ /**
25
+ * Optional hook invoked by the logger when `write` (or the promise it
26
+ * returns) fails, so a broken sink can be reported without throwing out of
27
+ * the caller's `log.*` call. The original entry is passed for context.
28
+ */
29
+ onError?(err: unknown, entry: LogEntry): void;
30
+ /** Optional flush; awaited by `Logger.flush()`. */
31
+ flush?(): void | Promise<void>;
32
+ /** Optional teardown. */
33
+ close?(): void | Promise<void>;
34
+ }
35
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/transport/transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACxB,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC;IAC/B,8BAA8B;IAC9B,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE;;;;OAIG;IACH,OAAO,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC9C,mDAAmD;IACnD,KAAK,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,yBAAyB;IACzB,KAAK,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/transport/transport.ts"],"names":[],"mappings":""}
@@ -0,0 +1,43 @@
1
+ import type { LogEntry } from '../types.js';
2
+ import type { Transport } from './transport.js';
3
+ /** Minimal view of the `postMessage` function available in Web Workers and Node worker_threads. */
4
+ type PostMessageFn = (message: unknown, transfer?: unknown[]) => void;
5
+ /** Minimal view of a Worker-like target that can receive messages. */
6
+ type MessageTarget = {
7
+ postMessage: PostMessageFn;
8
+ };
9
+ export interface WorkerIpcTransportOptions {
10
+ /** Transport name. */
11
+ name?: string;
12
+ }
13
+ /**
14
+ * Worker-side transport that sends entries to the main thread via
15
+ * `self.postMessage()`. Safe to import in non-Worker environments — the write
16
+ * call is a no-op when `self.postMessage` is unavailable.
17
+ */
18
+ export declare class WorkerIpcTransport implements Transport {
19
+ readonly name: string;
20
+ constructor(options?: WorkerIpcTransportOptions);
21
+ write(entry: LogEntry, _formatted: string): void;
22
+ /** Send a cross-process level command to the main thread. */
23
+ sendLevelCommand(level: number): void;
24
+ }
25
+ export interface WorkerReceiverOptions {
26
+ /** Specific Worker instance to listen on. If omitted, listens on `self.onmessage` (shared worker / global). */
27
+ worker?: MessageTarget;
28
+ }
29
+ /**
30
+ * Main-thread helper: listen for worker entries and feed them into the
31
+ * provided `ingest` callback (typically `logger.ingestEntry`). Level-change
32
+ * commands are forwarded to `onLevelCommand` when provided.
33
+ * Returns an unregister function.
34
+ *
35
+ * Works with `Worker` instances (dedicated workers). For a specific worker
36
+ * pass `worker: myWorkerInstance`; otherwise listens on `self.onmessage`
37
+ * for shared-worker / broadcast-channel patterns.
38
+ */
39
+ export declare function registerWorkerReceiver(ingest: (entry: LogEntry) => void, options?: WorkerReceiverOptions & {
40
+ onLevelCommand?: (level: number) => void;
41
+ }): () => void;
42
+ export {};
43
+ //# sourceMappingURL=worker-ipc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-ipc.d.ts","sourceRoot":"","sources":["../../../src/transport/worker-ipc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAKhD,mGAAmG;AACnG,KAAK,aAAa,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAEtE,sEAAsE;AACtE,KAAK,aAAa,GAAG;IACnB,WAAW,EAAE,aAAa,CAAC;CAC5B,CAAC;AAEF,MAAM,WAAW,yBAAyB;IACxC,sBAAsB;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,SAAS;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,OAAO,GAAE,yBAA8B;IAInD,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAWhD,6DAA6D;IAC7D,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAWtC;AAED,MAAM,WAAW,qBAAqB;IACpC,+GAA+G;IAC/G,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,EACjC,OAAO,GAAE,qBAAqB,GAAG;IAAE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAAO,GACjF,MAAM,IAAI,CA8DZ"}
@@ -0,0 +1,101 @@
1
+ import { isLogLevelCommand } from '../types.js';
2
+ import { normalizeLevel } from '../types.js';
3
+ /**
4
+ * Worker-side transport that sends entries to the main thread via
5
+ * `self.postMessage()`. Safe to import in non-Worker environments — the write
6
+ * call is a no-op when `self.postMessage` is unavailable.
7
+ */
8
+ export class WorkerIpcTransport {
9
+ constructor(options = {}) {
10
+ this.name = options.name ?? 'worker-ipc';
11
+ }
12
+ write(entry, _formatted) {
13
+ try {
14
+ const target = self;
15
+ if (typeof target.postMessage === 'function') {
16
+ target.postMessage({ __lograilWorker: true, entry });
17
+ }
18
+ }
19
+ catch {
20
+ /* postMessage unavailable or failed — drop silently */
21
+ }
22
+ }
23
+ /** Send a cross-process level command to the main thread. */
24
+ sendLevelCommand(level) {
25
+ try {
26
+ const target = self;
27
+ if (typeof target.postMessage === 'function') {
28
+ const cmd = { __lograilCmd: true, __lograilCmdType: 'setLevel', level };
29
+ target.postMessage(cmd);
30
+ }
31
+ }
32
+ catch {
33
+ /* postMessage unavailable — drop silently */
34
+ }
35
+ }
36
+ }
37
+ /**
38
+ * Main-thread helper: listen for worker entries and feed them into the
39
+ * provided `ingest` callback (typically `logger.ingestEntry`). Level-change
40
+ * commands are forwarded to `onLevelCommand` when provided.
41
+ * Returns an unregister function.
42
+ *
43
+ * Works with `Worker` instances (dedicated workers). For a specific worker
44
+ * pass `worker: myWorkerInstance`; otherwise listens on `self.onmessage`
45
+ * for shared-worker / broadcast-channel patterns.
46
+ */
47
+ export function registerWorkerReceiver(ingest, options = {}) {
48
+ const onLevelCommand = options.onLevelCommand;
49
+ const handler = (event) => {
50
+ const data = event.data;
51
+ if (data &&
52
+ typeof data === 'object' &&
53
+ '__lograilWorker' in data &&
54
+ data.__lograilWorker === true &&
55
+ 'entry' in data) {
56
+ ingest(data.entry);
57
+ }
58
+ else if (isLogLevelCommand(data)) {
59
+ onLevelCommand?.(normalizeLevel(data.level));
60
+ }
61
+ };
62
+ const worker = options.worker;
63
+ if (worker && typeof worker === 'object') {
64
+ if ('on' in worker && typeof worker.on === 'function') {
65
+ // Node Worker instance — worker.on('message', handler)
66
+ // Node passes raw data (not MessageEvent), so adapt:
67
+ const nodeHandler = (data) => {
68
+ if (data &&
69
+ typeof data === 'object' &&
70
+ '__lograilWorker' in data &&
71
+ data.__lograilWorker === true &&
72
+ 'entry' in data) {
73
+ ingest(data.entry);
74
+ }
75
+ };
76
+ worker.on('message', nodeHandler);
77
+ return () => {
78
+ /* Node Worker doesn't support off(); callers should dispose the Worker */
79
+ };
80
+ }
81
+ if ('onmessage' in worker) {
82
+ // Web Worker — dedicated worker onmessage
83
+ worker.onmessage = handler;
84
+ return () => {
85
+ if (worker.onmessage === handler)
86
+ worker.onmessage = null;
87
+ };
88
+ }
89
+ }
90
+ // Global self.onmessage — shared worker / fallback
91
+ const prev = self.onmessage;
92
+ self.addEventListener('message', handler);
93
+ return () => {
94
+ self.removeEventListener('message', handler);
95
+ // Restore previous handler if it was there
96
+ if (self.onmessage === null && prev !== undefined) {
97
+ self.onmessage = prev;
98
+ }
99
+ };
100
+ }
101
+ //# sourceMappingURL=worker-ipc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-ipc.js","sourceRoot":"","sources":["../../../src/transport/worker-ipc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Shared type definitions for the logging library.
3
+ *
4
+ * These types form the stable contract used across Core, Pipeline,
5
+ * Transport, Runtime and Plugin modules.
6
+ */
7
+ export type LogLevelName = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal';
8
+ export type LogLevelValue = number;
9
+ /**
10
+ * Ordered by severity. Higher value means more severe.
11
+ */
12
+ export declare const LOG_LEVELS: Record<LogLevelName, LogLevelValue>;
13
+ export declare const LOG_LEVEL_NAMES: LogLevelName[];
14
+ export declare function isLogLevelName(value: unknown): value is LogLevelName;
15
+ /**
16
+ * A single structured log record produced by the Logger.
17
+ *
18
+ * **Immutability contract.** Once an entry is handed to the transports it is
19
+ * frozen (see {@link freezeEntry}): the entry itself and its `context`,
20
+ * `metadata` and `args` containers become read-only, and the entry is shared by
21
+ * reference (zero-copy) across every transport, formatter and plugin. Treat
22
+ * nested values as immutable too — they are intentionally NOT deep-frozen so we
23
+ * never pay a serialization/clone cost on the hot path.
24
+ *
25
+ * Across a process boundary (Electron IPC) the entry is serialised once into a
26
+ * transferable `ArrayBuffer` and moved (not copied) to the other process; the
27
+ * receiver deserialises a fresh, independent entry.
28
+ */
29
+ export interface LogEntry {
30
+ /** Numeric severity, see {@link LOG_LEVELS}. */
31
+ level: LogLevelValue;
32
+ /** Human readable level name. */
33
+ levelName: LogLevelName;
34
+ /** Primary message text. */
35
+ message: string;
36
+ /** Extra positional arguments passed to the log call. */
37
+ args: unknown[];
38
+ /** Epoch milliseconds when the entry was created. */
39
+ timestamp: number;
40
+ /** Coarse ISO timestamp for display / serialization. */
41
+ time: string;
42
+ /** Scope / namespace, e.g. child logger name. */
43
+ scope?: string;
44
+ /** Process id when available (Electron main / Node). */
45
+ pid?: number;
46
+ /** Persistent contextual fields (see Context module). */
47
+ context: Record<string, unknown>;
48
+ /** One-off metadata attached to this entry only. */
49
+ metadata: Record<string, unknown>;
50
+ /** Error object when the entry was created from one. */
51
+ error?: Error;
52
+ }
53
+ export type LogFn = (message: unknown, ...args: unknown[]) => void;
54
+ export interface LoggerMethods {
55
+ trace: LogFn;
56
+ debug: LogFn;
57
+ info: LogFn;
58
+ warn: LogFn;
59
+ error: LogFn;
60
+ fatal: LogFn;
61
+ }
62
+ export type LogLevelInput = LogLevelName | LogLevelValue;
63
+ export declare function normalizeLevel(input: LogLevelInput): LogLevelValue;
64
+ /** Cross-process command sent over IPC to change log level. */
65
+ export interface LogLevelCommand {
66
+ __lograilCmd: true;
67
+ __lograilCmdType: 'setLevel';
68
+ level: LogLevelName | LogLevelValue;
69
+ }
70
+ /** Returns true when the value is a {@link LogLevelCommand}. */
71
+ export declare function isLogLevelCommand(value: unknown): value is LogLevelCommand;
72
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEnF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AAEnC;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,aAAa,CAO1D,CAAC;AAEF,eAAO,MAAM,eAAe,EAA8B,YAAY,EAAE,CAAC;AAEzE,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAEpE;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,QAAQ;IACvB,gDAAgD;IAChD,KAAK,EAAE,aAAa,CAAC;IACrB,iCAAiC;IACjC,SAAS,EAAE,YAAY,CAAC;IACxB,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,wDAAwD;IACxD,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAEnE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,KAAK,CAAC;IACZ,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;CACd;AAED,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,aAAa,CAAC;AAEzD,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,aAAa,CASlE;AAED,+DAA+D;AAC/D,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,IAAI,CAAC;IACnB,gBAAgB,EAAE,UAAU,CAAC;IAC7B,KAAK,EAAE,YAAY,GAAG,aAAa,CAAC;CACrC;AAED,gEAAgE;AAChE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAO1E"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Shared type definitions for the logging library.
3
+ *
4
+ * These types form the stable contract used across Core, Pipeline,
5
+ * Transport, Runtime and Plugin modules.
6
+ */
7
+ /**
8
+ * Ordered by severity. Higher value means more severe.
9
+ */
10
+ export const LOG_LEVELS = {
11
+ trace: 10,
12
+ debug: 20,
13
+ info: 30,
14
+ warn: 40,
15
+ error: 50,
16
+ fatal: 60,
17
+ };
18
+ export const LOG_LEVEL_NAMES = Object.keys(LOG_LEVELS);
19
+ export function isLogLevelName(value) {
20
+ return typeof value === 'string' && value in LOG_LEVELS;
21
+ }
22
+ export function normalizeLevel(input) {
23
+ if (typeof input === 'number') {
24
+ return input;
25
+ }
26
+ const value = LOG_LEVELS[input];
27
+ if (value === undefined) {
28
+ throw new Error(`Unknown log level: ${String(input)}`);
29
+ }
30
+ return value;
31
+ }
32
+ /** Returns true when the value is a {@link LogLevelCommand}. */
33
+ export function isLogLevelCommand(value) {
34
+ return (typeof value === 'object' &&
35
+ value !== null &&
36
+ value.__lograilCmd === true &&
37
+ value.__lograilCmdType === 'setLevel');
38
+ }
39
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAwC;IAC7D,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;CACV,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAmB,CAAC;AAEzE,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,UAAU,CAAC;AAC1D,CAAC;AAsDD,MAAM,UAAU,cAAc,CAAC,KAAoB;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AASD,gEAAgE;AAChE,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACb,KAAiC,CAAC,YAAY,KAAK,IAAI;QACvD,KAAiC,CAAC,gBAAgB,KAAK,UAAU,CACnE,CAAC;AACJ,CAAC"}
package/package.json ADDED
@@ -0,0 +1,128 @@
1
+ {
2
+ "name": "lograil",
3
+ "version": "0.1.0",
4
+ "packageManager": "yarn@1.22.22",
5
+ "description": "High-performance, secure universal logging library for Web, Node.js and Electron — first-class runtime support, extensible to other platforms via plugins.",
6
+ "author": "Axetroy <axetroy.dev@gmail.com>",
7
+ "type": "module",
8
+ "main": "./dist/cjs/index.js",
9
+ "module": "./dist/esm/index.js",
10
+ "types": "./dist/esm/index.d.ts",
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/esm/index.d.ts",
14
+ "import": "./dist/esm/index.js",
15
+ "require": "./dist/cjs/index.js"
16
+ },
17
+ "./core": {
18
+ "types": "./dist/esm/core/index.d.ts",
19
+ "import": "./dist/esm/core/index.js",
20
+ "require": "./dist/cjs/core/index.js"
21
+ },
22
+ "./pipeline": {
23
+ "types": "./dist/esm/pipeline/index.d.ts",
24
+ "import": "./dist/esm/pipeline/index.js",
25
+ "require": "./dist/cjs/pipeline/index.js"
26
+ },
27
+ "./transport": {
28
+ "types": "./dist/esm/transport/index.d.ts",
29
+ "import": "./dist/esm/transport/index.js",
30
+ "require": "./dist/cjs/transport/index.js"
31
+ },
32
+ "./runtime": {
33
+ "types": "./dist/esm/runtime/index.d.ts",
34
+ "import": "./dist/esm/runtime/index.js",
35
+ "require": "./dist/cjs/runtime/index.js"
36
+ },
37
+ "./plugin": {
38
+ "types": "./dist/esm/plugin/index.d.ts",
39
+ "import": "./dist/esm/plugin/index.js",
40
+ "require": "./dist/cjs/plugin/index.js"
41
+ },
42
+ "./context": {
43
+ "types": "./dist/esm/context/index.d.ts",
44
+ "import": "./dist/esm/context/index.js",
45
+ "require": "./dist/cjs/context/index.js"
46
+ }
47
+ },
48
+ "browser": {
49
+ "./dist/cjs/runtime/electron-binding.js": "./dist/cjs/runtime/electron-binding.browser.js",
50
+ "./dist/esm/runtime/electron-binding.js": "./dist/esm/runtime/electron-binding.browser.js",
51
+ "./dist/cjs/context/async-context.js": "./dist/cjs/context/async-context.browser.js",
52
+ "./dist/esm/context/async-context.js": "./dist/esm/context/async-context.browser.js",
53
+ "./dist/cjs/shims/index.js": "./dist/cjs/shims/index.browser.js",
54
+ "./dist/esm/shims/index.js": "./dist/esm/shims/index.browser.js",
55
+ "./dist/cjs/runtime/process.js": "./dist/cjs/runtime/process.browser.js",
56
+ "./dist/esm/runtime/process.js": "./dist/esm/runtime/process.browser.js",
57
+ "electron": false,
58
+ "node:fs/promises": "./dist/esm/shims/index.browser.js",
59
+ "node:path": "./dist/esm/shims/index.browser.js",
60
+ "node:os": "./dist/esm/shims/index.browser.js",
61
+ "process": "./dist/esm/runtime/process.browser.js"
62
+ },
63
+ "files": [
64
+ "dist",
65
+ "CHANGELOG.md"
66
+ ],
67
+ "scripts": {
68
+ "build": "tsc -p tsconfig.esm.json && tsc -p tsconfig.cjs.json && node scripts/write-cjs-pkg.mjs",
69
+ "build:esm": "tsc -p tsconfig.esm.json",
70
+ "build:cjs": "tsc -p tsconfig.cjs.json && node scripts/write-cjs-pkg.mjs",
71
+ "test": "vitest run",
72
+ "test:coverage": "vitest run --coverage",
73
+ "bench": "vitest bench",
74
+ "changelog": "node scripts/gen-changelog.mjs",
75
+ "test:watch": "vitest",
76
+ "docs:dev": "vitepress dev docs",
77
+ "docs:build": "vitepress build docs",
78
+ "docs:preview": "vitepress preview docs",
79
+ "typecheck": "tsc -p tsconfig.json --noEmit",
80
+ "typecheck:test": "tsc -p tsconfig.test.json --noEmit",
81
+ "lint": "eslint .",
82
+ "lint:fix": "eslint . --fix",
83
+ "format": "prettier --write .",
84
+ "format:check": "prettier --check .",
85
+ "prepack": "yarn build"
86
+ },
87
+ "keywords": [
88
+ "logger",
89
+ "logging",
90
+ "lograil",
91
+ "universal",
92
+ "web",
93
+ "node",
94
+ "electron",
95
+ "transport",
96
+ "pipeline",
97
+ "plugin"
98
+ ],
99
+ "license": "MIT",
100
+ "peerDependencies": {
101
+ "@opentelemetry/api": "^1.0.0"
102
+ },
103
+ "peerDependenciesMeta": {
104
+ "@opentelemetry/api": {
105
+ "optional": true
106
+ }
107
+ },
108
+ "devDependencies": {
109
+ "@eslint/js": "^9.39.5",
110
+ "@types/node": "^22.20.1",
111
+ "@vitest/coverage-v8": "2.1.9",
112
+ "electron": "^28.0.0",
113
+ "eslint": "^9.39.5",
114
+ "eslint-config-prettier": "^10.1.8",
115
+ "eslint-plugin-prettier": "^5.5.6",
116
+ "jsdom": "25.0.0",
117
+ "mermaid": "^11.17.2",
118
+ "prettier": "^3.9.6",
119
+ "typescript": "^5.6.0",
120
+ "typescript-eslint": "^8.68.0",
121
+ "vitepress": "^1.6.4",
122
+ "vitepress-plugin-mermaid": "^2.0.17",
123
+ "vitest": "^2.1.0"
124
+ },
125
+ "engines": {
126
+ "node": ">=18"
127
+ }
128
+ }