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
package/CHANGELOG.md ADDED
@@ -0,0 +1,38 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project are documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). This file is generated from git history by `scripts/gen-changelog.mjs` (run via `yarn changelog`) and refreshed automatically on each release.
6
+
7
+ ## [Unreleased] - 2026-08-29
8
+
9
+ - fix(docs): 更新 GitHub 链接以指向正确的仓库
10
+ - feat: define immutable LogEntry contract and zero-copy IPC transfer
11
+ - feat(logger): 添加异步插件拦截顺序处理,确保传输队列独立,避免阻塞
12
+ - feat: add P1 features (stderrLevels, JSON flatten, serializer/redact presets, env level & namespace filter, OTel trace plugin)
13
+ - feat(logger): 添加全局错误处理和超时机制,确保内部错误不会导致调用方崩溃
14
+ - feat(docs): 更新文档以添加新功能和示例,包括上下文导出、传输器过滤器和生产模式示例
15
+ - feat(sampler): 添加采样器以降低日志量,支持概率采样和限速策略
16
+ - feat(logger): 添加子 logger 支持,合并上下文并允许级别覆盖 feat(otlp): 映射 traceId/spanId 上下文到 OTLP 追踪字段 test: 添加子 logger 和 OTLP 传输器的单元测试
17
+ - feat(transport): 添加 onError 钩子以处理写入失败的情况
18
+ - feat(transport): 添加 OtlpTransport 以支持通过 OTLP HTTP/JSON 转发日志
19
+ - feat(processor): 添加序列化处理器以在格式化前归一化值
20
+ - feat(transport): add optional minimum level for transports to filter log entries
21
+ - feat(core): add crash capture, console bridge and exit auto-flush
22
+ - feat(context): ambient async context via AsyncLocalStorage with browser no-op
23
+ - feat(redact): support path/wildcard redaction over context, metadata and args
24
+ - test: 更新日志文件名称检查以确保包含 Lograil 和文件类型
25
+ - feat: 更新 Electron 运行时以支持主进程和渲染进程的独立日志文件
26
+ - feat: 增加 logo
27
+ - feat: refactor CI and release workflows to use a shared verification pipeline
28
+ - test: increase timeout for daily log rotation test
29
+ - chore: add lint:fix and format scripts to package.json
30
+ - fix: update GitHub token reference in workflows for docs deployment
31
+ - feat: add release workflow for versioned publishing and docs deployment
32
+ - feat: add AGENTS.md for AI coding agent guidance and project setup
33
+ - docs: update repository references from electron-logger to lograil
34
+ - chore: update electron dev deps
35
+ - feat: add .gitattributes for consistent line endings and binary file handling
36
+ - feat: init
37
+ - Create README.md
38
+
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Axetroy
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,40 @@
1
+ <div align="center">
2
+ <img src="./logo.svg" alt="lograil" width="128" height="128" />
3
+ </div>
4
+
5
+ # lograil
6
+
7
+ Structured, secure logging for **Web**, **Node.js**, and **Electron** — three first-class runtimes, one zero-config `logger`, pluggable transports, filters, processors, formatters, and plugins. Extend to any other platform through the plugin and runtime-adapter APIs.
8
+
9
+ The same `import { logger } from 'lograil'` works untouched in every runtime. On Electron, the main process writes logs to the console **and** daily rotating files, and renderer logs are forwarded over IPC automatically; on Node it persists to a rotating file by default; in the browser it speaks the console and any remote transport you add.
10
+
11
+ ## Install
12
+
13
+ ```bash
14
+ npm install lograil
15
+ # yarn / pnpm / bun add lograil
16
+ ```
17
+
18
+ ## Quick start
19
+
20
+ ```ts
21
+ import { logger } from 'lograil';
22
+
23
+ logger.info('app started', { version: '1.0.0' });
24
+ logger.error(new Error('something went wrong'));
25
+ ```
26
+
27
+ Need custom behavior? Use `createLogger({ level, pipeline, transports, runtime })` and the plugin API.
28
+
29
+ ## Documentation
30
+
31
+ Full guides, API reference, and examples are on the **docs site**:
32
+
33
+ **https://axetroy.github.io/lograil/**
34
+
35
+ - Getting started · Configuration · Transports · Plugins
36
+ - Runtimes (Web, Node.js, Electron) & extending to others via plugins
37
+
38
+ ## License
39
+
40
+ MIT
@@ -0,0 +1,16 @@
1
+ export type AmbientContext = Record<string, unknown>;
2
+ /**
3
+ * Browser / non-Node stub. `AsyncLocalStorage` is unavailable here, so ambient
4
+ * context is a no-op — logs are unaffected and no context propagates. The real
5
+ * implementation (`async-context.ts`) is selected over this file in Node builds
6
+ * via the `browser` field in `package.json`.
7
+ */
8
+ export declare const asyncContext: {
9
+ run<T>(fn: () => T, _context: AmbientContext): T;
10
+ runAsync<T>(fn: () => Promise<T>, _context: AmbientContext): Promise<T>;
11
+ get(): AmbientContext;
12
+ supported(): boolean;
13
+ };
14
+ /** Run `fn` with `context` active as the ambient logging context (no-op outside Node). */
15
+ export declare function runWithContext<T>(fn: () => T, _context: AmbientContext): T;
16
+ //# sourceMappingURL=async-context.browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-context.browser.d.ts","sourceRoot":"","sources":["../../../src/context/async-context.browser.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAErD;;;;;GAKG;AACH,eAAO,MAAM,YAAY;QACnB,CAAC,MAAM,MAAM,CAAC,YAAY,cAAc,GAAG,CAAC;aAGvC,CAAC,MAAM,MAAM,OAAO,CAAC,CAAC,CAAC,YAAY,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;WAGhE,cAAc;iBAGR,OAAO;CAGrB,CAAC;AAEF,0FAA0F;AAC1F,wBAAgB,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,cAAc,GAAG,CAAC,CAE1E"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.asyncContext = void 0;
4
+ exports.runWithContext = runWithContext;
5
+ /**
6
+ * Browser / non-Node stub. `AsyncLocalStorage` is unavailable here, so ambient
7
+ * context is a no-op — logs are unaffected and no context propagates. The real
8
+ * implementation (`async-context.ts`) is selected over this file in Node builds
9
+ * via the `browser` field in `package.json`.
10
+ */
11
+ exports.asyncContext = {
12
+ run(fn, _context) {
13
+ return fn();
14
+ },
15
+ runAsync(fn, _context) {
16
+ return fn();
17
+ },
18
+ get() {
19
+ return {};
20
+ },
21
+ supported() {
22
+ return false;
23
+ },
24
+ };
25
+ /** Run `fn` with `context` active as the ambient logging context (no-op outside Node). */
26
+ function runWithContext(fn, _context) {
27
+ return fn();
28
+ }
29
+ //# sourceMappingURL=async-context.browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-context.browser.js","sourceRoot":"","sources":["../../../src/context/async-context.browser.ts"],"names":[],"mappings":";;;AAwBA,wCAEC;AAxBD;;;;;GAKG;AACU,QAAA,YAAY,GAAG;IAC1B,GAAG,CAAI,EAAW,EAAE,QAAwB;QAC1C,OAAO,EAAE,EAAE,CAAC;IACd,CAAC;IACD,QAAQ,CAAI,EAAoB,EAAE,QAAwB;QACxD,OAAO,EAAE,EAAE,CAAC;IACd,CAAC;IACD,GAAG;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,SAAS;QACP,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAC;AAEF,0FAA0F;AAC1F,SAAgB,cAAc,CAAI,EAAW,EAAE,QAAwB;IACrE,OAAO,EAAE,EAAE,CAAC;AACd,CAAC"}
@@ -0,0 +1,10 @@
1
+ export type AmbientContext = Record<string, unknown>;
2
+ export declare const asyncContext: {
3
+ run<T>(fn: () => T, context: AmbientContext): T;
4
+ runAsync<T>(fn: () => Promise<T>, context: AmbientContext): Promise<T>;
5
+ get(): AmbientContext;
6
+ supported(): boolean;
7
+ };
8
+ /** Run `fn` with `context` active as the ambient logging context. */
9
+ export declare function runWithContext<T>(fn: () => T, context: AmbientContext): T;
10
+ //# sourceMappingURL=async-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-context.d.ts","sourceRoot":"","sources":["../../../src/context/async-context.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAerD,eAAO,MAAM,YAAY;QACnB,CAAC,MAAM,MAAM,CAAC,WAAW,cAAc,GAAG,CAAC;aAGtC,CAAC,MAAM,MAAM,OAAO,CAAC,CAAC,CAAC,WAAW,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;WAG/D,cAAc;iBAGR,OAAO;CAGrB,CAAC;AAIF,qEAAqE;AACrE,wBAAgB,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,CAAC,CAEzE"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.asyncContext = void 0;
4
+ exports.runWithContext = runWithContext;
5
+ const node_async_hooks_1 = require("node:async_hooks");
6
+ /**
7
+ * Ambient (request-scoped) context propagation.
8
+ *
9
+ * Built on `AsyncLocalStorage`, so a context set with {@link runWithContext}
10
+ * is automatically visible to **every** log call inside `fn` — including those
11
+ * reached after `await` — without manual plumbing. In non-Node runtimes this
12
+ * module is swapped for `async-context.browser.js` (via `package.json` `browser`)
13
+ * which is a no-op, so the API is safe to call everywhere.
14
+ */
15
+ // Shared frozen empty object returned when no async store is active, so the
16
+ // common (no ambient context) path allocates nothing on every `get()`.
17
+ const EMPTY_AMBIENT = Object.freeze({});
18
+ exports.asyncContext = {
19
+ run(fn, context) {
20
+ return storage.run(context, fn);
21
+ },
22
+ runAsync(fn, context) {
23
+ return storage.run(context, fn);
24
+ },
25
+ get() {
26
+ return storage.getStore() ?? EMPTY_AMBIENT;
27
+ },
28
+ supported() {
29
+ return true;
30
+ },
31
+ };
32
+ const storage = new node_async_hooks_1.AsyncLocalStorage();
33
+ /** Run `fn` with `context` active as the ambient logging context. */
34
+ function runWithContext(fn, context) {
35
+ return exports.asyncContext.run(fn, context);
36
+ }
37
+ //# sourceMappingURL=async-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-context.js","sourceRoot":"","sources":["../../../src/context/async-context.ts"],"names":[],"mappings":";;;AAmCA,wCAEC;AArCD,uDAAqD;AAIrD;;;;;;;;GAQG;AACH,4EAA4E;AAC5E,uEAAuE;AACvE,MAAM,aAAa,GAAmB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAE3C,QAAA,YAAY,GAAG;IAC1B,GAAG,CAAI,EAAW,EAAE,OAAuB;QACzC,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAClC,CAAC;IACD,QAAQ,CAAI,EAAoB,EAAE,OAAuB;QACvD,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAClC,CAAC;IACD,GAAG;QACD,OAAO,OAAO,CAAC,QAAQ,EAAE,IAAI,aAAa,CAAC;IAC7C,CAAC;IACD,SAAS;QACP,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEF,MAAM,OAAO,GAAG,IAAI,oCAAiB,EAAkB,CAAC;AAExD,qEAAqE;AACrE,SAAgB,cAAc,CAAI,EAAW,EAAE,OAAuB;IACpE,OAAO,oBAAY,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Context module.
3
+ *
4
+ * Manages structured contextual data (request id, user id, window id, etc.)
5
+ * that is attached to every log entry. Contexts are hierarchical:
6
+ * a global context provides defaults for all loggers, and child loggers
7
+ * can carry their own scoped context.
8
+ */
9
+ export interface ContextStore {
10
+ /** Read the full context object. */
11
+ get(): Record<string, unknown>;
12
+ /** Set a single key. */
13
+ set(key: string, value: unknown): void;
14
+ /** Merge multiple keys at once. Returns the store for chaining. */
15
+ merge(values: Record<string, unknown>): ContextStore;
16
+ /** Remove a single key. */
17
+ delete(key: string): void;
18
+ /** Reset the store to empty. */
19
+ clear(): void;
20
+ /** Create a child store seeded with the current values. */
21
+ child(): ContextStore;
22
+ }
23
+ /**
24
+ * A shared, frozen empty record. Returned by `ContextStore.get()` when empty
25
+ * and used as the default `metadata` for every entry, so the hot path never
26
+ * allocates an empty object — and `freezeEntry` can recognise it as a sentinel
27
+ * and skip cloning/freezing entirely.
28
+ */
29
+ export declare const EMPTY_RECORD: Record<string, unknown>;
30
+ /** True when the record has no own enumerable keys. */
31
+ export declare function isEmptyRecord(o: Record<string, unknown>): boolean;
32
+ export declare function createContextStore(initial?: Record<string, unknown>): ContextStore;
33
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/context/context.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,wBAAwB;IACxB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACvC,mEAAmE;IACnE,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY,CAAC;IACrD,2BAA2B;IAC3B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gCAAgC;IAChC,KAAK,IAAI,IAAI,CAAC;IACd,2DAA2D;IAC3D,KAAK,IAAI,YAAY,CAAC;CACvB;AAID;;;;;GAKG;AACH,eAAO,MAAM,YAAY,yBAAgB,CAAC;AAE1C,uDAAuD;AACvD,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAGjE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY,CA6BlF"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ /**
3
+ * Context module.
4
+ *
5
+ * Manages structured contextual data (request id, user id, window id, etc.)
6
+ * that is attached to every log entry. Contexts are hierarchical:
7
+ * a global context provides defaults for all loggers, and child loggers
8
+ * can carry their own scoped context.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.EMPTY_RECORD = void 0;
12
+ exports.isEmptyRecord = isEmptyRecord;
13
+ exports.createContextStore = createContextStore;
14
+ const EMPTY_CONTEXT = Object.freeze({});
15
+ /**
16
+ * A shared, frozen empty record. Returned by `ContextStore.get()` when empty
17
+ * and used as the default `metadata` for every entry, so the hot path never
18
+ * allocates an empty object — and `freezeEntry` can recognise it as a sentinel
19
+ * and skip cloning/freezing entirely.
20
+ */
21
+ exports.EMPTY_RECORD = EMPTY_CONTEXT;
22
+ /** True when the record has no own enumerable keys. */
23
+ function isEmptyRecord(o) {
24
+ for (const _k in o)
25
+ return false;
26
+ return true;
27
+ }
28
+ function createContextStore(initial) {
29
+ let data = { ...(initial ?? {}) };
30
+ const store = {
31
+ get() {
32
+ // Avoid cloning (and allocating) when the store is empty — the shared
33
+ // frozen object can never be mutated by callers.
34
+ for (const _k in data)
35
+ return { ...data };
36
+ return EMPTY_CONTEXT;
37
+ },
38
+ set(key, value) {
39
+ data[key] = value;
40
+ },
41
+ merge(values) {
42
+ data = { ...data, ...values };
43
+ return store;
44
+ },
45
+ delete(key) {
46
+ delete data[key];
47
+ },
48
+ clear() {
49
+ data = {};
50
+ },
51
+ child() {
52
+ return createContextStore(data);
53
+ },
54
+ };
55
+ return store;
56
+ }
57
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/context/context.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AA4BH,sCAGC;AAED,gDA6BC;AA7CD,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAA4B,CAAC;AAEnE;;;;;GAKG;AACU,QAAA,YAAY,GAAG,aAAa,CAAC;AAE1C,uDAAuD;AACvD,SAAgB,aAAa,CAAC,CAA0B;IACtD,KAAK,MAAM,EAAE,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACjC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,kBAAkB,CAAC,OAAiC;IAClE,IAAI,IAAI,GAA4B,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;IAE3D,MAAM,KAAK,GAAiB;QAC1B,GAAG;YACD,sEAAsE;YACtE,iDAAiD;YACjD,KAAK,MAAM,EAAE,IAAI,IAAI;gBAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;YAC1C,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,GAAG,CAAC,GAAG,EAAE,KAAK;YACZ,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACpB,CAAC;QACD,KAAK,CAAC,MAAM;YACV,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,CAAC,GAAG;YACR,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QACD,KAAK;YACH,IAAI,GAAG,EAAE,CAAC;QACZ,CAAC;QACD,KAAK;YACH,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;KACF,CAAC;IAEF,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './context.js';
2
+ export * from './async-context.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/context/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./context.js"), exports);
18
+ __exportStar(require("./async-context.js"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/context/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,qDAAmC"}
@@ -0,0 +1,30 @@
1
+ import type { LogEntry } from '../types.js';
2
+ /**
3
+ * An entry that has crossed the immutability boundary: the entry itself and its
4
+ * `context`, `metadata` and `args` containers are frozen. Nested values are
5
+ * intentionally NOT deep-frozen (that would defeat the zero-copy goal) and must
6
+ * be treated as immutable by convention.
7
+ */
8
+ export type FrozenLogEntry = Readonly<LogEntry> & {
9
+ readonly context: Readonly<Record<string, unknown>>;
10
+ readonly metadata: Readonly<Record<string, unknown>>;
11
+ readonly args: readonly unknown[];
12
+ };
13
+ /**
14
+ * Freeze a {@link LogEntry} at its transport boundary so it can be shared by
15
+ * reference (zero-copy) across all transports, plugins and formatters without
16
+ * any of them being able to mutate it.
17
+ *
18
+ * Behaviour:
19
+ * - The entry and its `context` / `metadata` / `args` containers are frozen.
20
+ * - When `context` is the logger's *live* ambient context (not already a frozen,
21
+ * safe object) it is first copied into a fresh frozen snapshot. This prevents
22
+ * us from freezing the logger's shared state and ensures an already-emitted
23
+ * entry can never be mutated by a later `setContext`.
24
+ * - It is a no-op (and idempotent) when the entry is already frozen.
25
+ *
26
+ * Nested values are left unfrozen on purpose: deep-freezing a potentially large
27
+ * object graph on every log call would erase the zero-copy performance benefit.
28
+ */
29
+ export declare function freezeEntry<T extends LogEntry>(entry: T): T & FrozenLogEntry;
30
+ //# sourceMappingURL=entry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../../src/core/entry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG;IAChD,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,CAAC;CACnC,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,cAAc,CAiB5E"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.freezeEntry = freezeEntry;
4
+ const context_js_1 = require("../context/context.js");
5
+ /**
6
+ * Freeze a {@link LogEntry} at its transport boundary so it can be shared by
7
+ * reference (zero-copy) across all transports, plugins and formatters without
8
+ * any of them being able to mutate it.
9
+ *
10
+ * Behaviour:
11
+ * - The entry and its `context` / `metadata` / `args` containers are frozen.
12
+ * - When `context` is the logger's *live* ambient context (not already a frozen,
13
+ * safe object) it is first copied into a fresh frozen snapshot. This prevents
14
+ * us from freezing the logger's shared state and ensures an already-emitted
15
+ * entry can never be mutated by a later `setContext`.
16
+ * - It is a no-op (and idempotent) when the entry is already frozen.
17
+ *
18
+ * Nested values are left unfrozen on purpose: deep-freezing a potentially large
19
+ * object graph on every log call would erase the zero-copy performance benefit.
20
+ */
21
+ function freezeEntry(entry) {
22
+ if (Object.isFrozen(entry))
23
+ return entry;
24
+ const ctx = entry.context;
25
+ const meta = entry.metadata;
26
+ entry.context =
27
+ ctx === context_js_1.EMPTY_RECORD || Object.isFrozen(ctx) ? ctx : Object.freeze({ ...ctx });
28
+ // Skip cloning/freezing when empty: the shared `EMPTY_RECORD` sentinel is
29
+ // already frozen and reused by reference, so the common (no-metadata) path
30
+ // allocates nothing here.
31
+ entry.metadata =
32
+ meta === context_js_1.EMPTY_RECORD || Object.isFrozen(meta) ? meta : Object.freeze({ ...meta });
33
+ if (!Object.isFrozen(entry.args))
34
+ Object.freeze(entry.args);
35
+ return Object.freeze(entry);
36
+ }
37
+ //# sourceMappingURL=entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry.js","sourceRoot":"","sources":["../../../src/core/entry.ts"],"names":[],"mappings":";;AA+BA,kCAiBC;AA/CD,sDAAqD;AAcrD;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,WAAW,CAAqB,KAAQ;IACtD,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAA2B,CAAC;IAE/D,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;IAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC;IAC3B,KAA8C,CAAC,OAAO;QACrD,GAAG,KAAK,yBAAY,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;IAEjF,0EAA0E;IAC1E,2EAA2E;IAC3E,0BAA0B;IACzB,KAA+C,CAAC,QAAQ;QACvD,IAAI,KAAK,yBAAY,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IAErF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE5D,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAuB,CAAC;AACpD,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from './level.js';
2
+ export * from './logger.js';
3
+ export * from './entry.js';
4
+ export * from './printf.js';
5
+ export { Pipeline } from '../pipeline/pipeline.js';
6
+ export type { PipelineOptions } from '../pipeline/pipeline.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.Pipeline = void 0;
18
+ __exportStar(require("./level.js"), exports);
19
+ __exportStar(require("./logger.js"), exports);
20
+ __exportStar(require("./entry.js"), exports);
21
+ __exportStar(require("./printf.js"), exports);
22
+ var pipeline_js_1 = require("../pipeline/pipeline.js");
23
+ Object.defineProperty(exports, "Pipeline", { enumerable: true, get: function () { return pipeline_js_1.Pipeline; } });
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,8CAA4B;AAC5B,6CAA2B;AAC3B,8CAA4B;AAC5B,uDAAmD;AAA1C,uGAAA,QAAQ,OAAA"}
@@ -0,0 +1,12 @@
1
+ import type { LogLevelName, LogLevelValue, LogLevelInput } from '../types.js';
2
+ import { LOG_LEVELS } from '../types.js';
3
+ export { LOG_LEVELS };
4
+ export type { LogLevelName, LogLevelValue, LogLevelInput };
5
+ /**
6
+ * Resolve a level name from a numeric value, falling back to the closest
7
+ * lower-known level when the exact value is not registered.
8
+ */
9
+ export declare function levelNameFromValue(value: LogLevelValue): LogLevelName;
10
+ export declare function compareLevel(a: LogLevelInput, b: LogLevelInput): number;
11
+ export declare function isLevelEnabled(configured: LogLevelInput, candidate: LogLevelInput): boolean;
12
+ //# sourceMappingURL=level.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"level.d.ts","sourceRoot":"","sources":["../../../src/core/level.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAkB,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AAE3D;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,YAAY,CAWrE;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,MAAM,CAEvE;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,GAAG,OAAO,CAE3F"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LOG_LEVELS = void 0;
4
+ exports.levelNameFromValue = levelNameFromValue;
5
+ exports.compareLevel = compareLevel;
6
+ exports.isLevelEnabled = isLevelEnabled;
7
+ const types_js_1 = require("../types.js");
8
+ Object.defineProperty(exports, "LOG_LEVELS", { enumerable: true, get: function () { return types_js_1.LOG_LEVELS; } });
9
+ /**
10
+ * Resolve a level name from a numeric value, falling back to the closest
11
+ * lower-known level when the exact value is not registered.
12
+ */
13
+ function levelNameFromValue(value) {
14
+ let best = 'trace';
15
+ let bestValue = -Infinity;
16
+ for (const name of Object.keys(types_js_1.LOG_LEVELS)) {
17
+ const lv = types_js_1.LOG_LEVELS[name];
18
+ if (lv <= value && lv > bestValue) {
19
+ best = name;
20
+ bestValue = lv;
21
+ }
22
+ }
23
+ return best;
24
+ }
25
+ function compareLevel(a, b) {
26
+ return (0, types_js_1.normalizeLevel)(a) - (0, types_js_1.normalizeLevel)(b);
27
+ }
28
+ function isLevelEnabled(configured, candidate) {
29
+ return (0, types_js_1.normalizeLevel)(candidate) >= (0, types_js_1.normalizeLevel)(configured);
30
+ }
31
+ //# sourceMappingURL=level.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"level.js","sourceRoot":"","sources":["../../../src/core/level.ts"],"names":[],"mappings":";;;AAWA,gDAWC;AAED,oCAEC;AAED,wCAEC;AA7BD,0CAAyD;AAEhD,2FAFA,qBAAU,OAEA;AAInB;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,KAAoB;IACrD,IAAI,IAAI,GAAiB,OAAO,CAAC;IACjC,IAAI,SAAS,GAAG,CAAC,QAAQ,CAAC;IAC1B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,qBAAU,CAAmB,EAAE,CAAC;QAC7D,MAAM,EAAE,GAAG,qBAAU,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,EAAE,IAAI,KAAK,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC;YAClC,IAAI,GAAG,IAAI,CAAC;YACZ,SAAS,GAAG,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,YAAY,CAAC,CAAgB,EAAE,CAAgB;IAC7D,OAAO,IAAA,yBAAc,EAAC,CAAC,CAAC,GAAG,IAAA,yBAAc,EAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,SAAgB,cAAc,CAAC,UAAyB,EAAE,SAAwB;IAChF,OAAO,IAAA,yBAAc,EAAC,SAAS,CAAC,IAAI,IAAA,yBAAc,EAAC,UAAU,CAAC,CAAC;AACjE,CAAC"}