logixia 2.0.0 → 2.0.4

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 (231) hide show
  1. package/README.md +46 -29
  2. package/dist/async-context-B05ArHgM.mjs +134 -0
  3. package/dist/async-context-B05ArHgM.mjs.map +1 -0
  4. package/dist/async-context-DTQgi8f7.js +150 -0
  5. package/dist/async-context-DTQgi8f7.js.map +1 -0
  6. package/dist/{azure-monitor.transport-CHnjVRF-.mjs → azure-monitor.transport-BPbgjATu.mjs} +27 -15
  7. package/dist/azure-monitor.transport-BPbgjATu.mjs.map +1 -0
  8. package/dist/{azure-monitor.transport-Cn_3Usvu.d.ts → azure-monitor.transport-C7kYyZUW.d.mts} +3 -6
  9. package/dist/azure-monitor.transport-C7kYyZUW.d.mts.map +1 -0
  10. package/dist/{azure-monitor.transport-CrvfHd9C.js → azure-monitor.transport-CwbOLZHB.js} +32 -20
  11. package/dist/azure-monitor.transport-CwbOLZHB.js.map +1 -0
  12. package/dist/{azure-monitor.transport-D7Da4RAb.d.mts → azure-monitor.transport-DV03Z5P4.d.ts} +3 -6
  13. package/dist/azure-monitor.transport-DV03Z5P4.d.ts.map +1 -0
  14. package/dist/azure.d.mts +1 -2
  15. package/dist/azure.d.ts +1 -2
  16. package/dist/azure.js +3 -6
  17. package/dist/azure.mjs +1 -6
  18. package/dist/{batch-buffer-PGvSgbmd.mjs → batch-buffer-0fgLmIPn.mjs} +21 -7
  19. package/dist/batch-buffer-0fgLmIPn.mjs.map +1 -0
  20. package/dist/{batch-buffer-BY-mRWIK.js → batch-buffer-DT4gdXmf.js} +53 -40
  21. package/dist/batch-buffer-DT4gdXmf.js.map +1 -0
  22. package/dist/browser.d.mts +45 -25
  23. package/dist/browser.d.mts.map +1 -1
  24. package/dist/browser.d.ts +45 -25
  25. package/dist/browser.d.ts.map +1 -1
  26. package/dist/browser.js +420 -53
  27. package/dist/browser.js.map +1 -1
  28. package/dist/browser.mjs +421 -56
  29. package/dist/browser.mjs.map +1 -1
  30. package/dist/{builder-0gEzRopq.mjs → builder-D70z6kjj.mjs} +212 -104
  31. package/dist/builder-D70z6kjj.mjs.map +1 -0
  32. package/dist/{builder-D44QktIo.js → builder-M7NoaugM.js} +355 -249
  33. package/dist/builder-M7NoaugM.js.map +1 -0
  34. package/dist/cli/index.js +59 -59
  35. package/dist/cloudwatch.d.mts +1 -2
  36. package/dist/cloudwatch.d.ts +1 -2
  37. package/dist/cloudwatch.js +3 -7
  38. package/dist/cloudwatch.mjs +1 -7
  39. package/dist/{cloudwatch.transport-BO1ahxw-.js → cloudwatch.transport-B2wKQFF7.js} +61 -36
  40. package/dist/cloudwatch.transport-B2wKQFF7.js.map +1 -0
  41. package/dist/{cloudwatch.transport-DZ6ies7g.mjs → cloudwatch.transport-BTvYfLs9.mjs} +54 -28
  42. package/dist/cloudwatch.transport-BTvYfLs9.mjs.map +1 -0
  43. package/dist/{cloudwatch.transport-DsEq633o.d.ts → cloudwatch.transport-Bf7L4I59.d.ts} +2 -6
  44. package/dist/cloudwatch.transport-Bf7L4I59.d.ts.map +1 -0
  45. package/dist/{cloudwatch.transport-UlyZFWMn.d.mts → cloudwatch.transport-Rj4yTpRn.d.mts} +2 -6
  46. package/dist/cloudwatch.transport-Rj4yTpRn.d.mts.map +1 -0
  47. package/dist/{coerce.utils-Cu6IUTgX.mjs → coerce.utils-B_rEudCn.mjs} +3 -4
  48. package/dist/{coerce.utils-Cu6IUTgX.mjs.map → coerce.utils-B_rEudCn.mjs.map} +1 -1
  49. package/dist/{coerce.utils-B-LilukN.js → coerce.utils-C1C5sIX0.js} +8 -10
  50. package/dist/{coerce.utils-B-LilukN.js.map → coerce.utils-C1C5sIX0.js.map} +1 -1
  51. package/dist/correlation.d.mts +13 -16
  52. package/dist/correlation.d.mts.map +1 -1
  53. package/dist/correlation.d.ts +13 -16
  54. package/dist/correlation.d.ts.map +1 -1
  55. package/dist/correlation.js +58 -9
  56. package/dist/correlation.js.map +1 -1
  57. package/dist/correlation.mjs +56 -6
  58. package/dist/correlation.mjs.map +1 -1
  59. package/dist/{entry-fields-BJkuPnIg.mjs → entry-fields-CGuvT2R0.mjs} +5 -6
  60. package/dist/entry-fields-CGuvT2R0.mjs.map +1 -0
  61. package/dist/{entry-fields-BvOLFlJ4.js → entry-fields-RLd1jCoR.js} +10 -12
  62. package/dist/entry-fields-RLd1jCoR.js.map +1 -0
  63. package/dist/gcp.d.mts +1 -2
  64. package/dist/gcp.d.ts +1 -2
  65. package/dist/gcp.js +3 -7
  66. package/dist/gcp.mjs +1 -7
  67. package/dist/{gcp.transport-B7oc97sG.d.ts → gcp.transport-C5D72b1g.d.mts} +3 -6
  68. package/dist/gcp.transport-C5D72b1g.d.mts.map +1 -0
  69. package/dist/{gcp.transport-GrJurKo8.d.mts → gcp.transport-CFQfdAOK.d.ts} +3 -6
  70. package/dist/gcp.transport-CFQfdAOK.d.ts.map +1 -0
  71. package/dist/{gcp.transport-DBX5TPIy.mjs → gcp.transport-CGKopAhQ.mjs} +55 -16
  72. package/dist/gcp.transport-CGKopAhQ.mjs.map +1 -0
  73. package/dist/{gcp.transport-CHV8MGgz.js → gcp.transport-KZe9hCAR.js} +60 -22
  74. package/dist/gcp.transport-KZe9hCAR.js.map +1 -0
  75. package/dist/{index-DhIoploR.d.ts → index-DwozbmB4.d.ts} +3 -8
  76. package/dist/index-DwozbmB4.d.ts.map +1 -0
  77. package/dist/{index-3mw5gaCw.d.mts → index-xqaJtAZn.d.mts} +3 -8
  78. package/dist/index-xqaJtAZn.d.mts.map +1 -0
  79. package/dist/index.d.mts +106 -165
  80. package/dist/index.d.mts.map +1 -1
  81. package/dist/index.d.ts +105 -164
  82. package/dist/index.d.ts.map +1 -1
  83. package/dist/index.js +164 -261
  84. package/dist/index.js.map +1 -1
  85. package/dist/index.mjs +147 -243
  86. package/dist/index.mjs.map +1 -1
  87. package/dist/internal-log-b0Vp4qrB.js +183 -0
  88. package/dist/internal-log-b0Vp4qrB.js.map +1 -0
  89. package/dist/internal-log-uCSd1PMc.mjs +142 -0
  90. package/dist/internal-log-uCSd1PMc.mjs.map +1 -0
  91. package/dist/{logitron-logger-UVeN-mQm.d.ts → logitron-logger-D2B75Oc7.d.ts} +116 -8
  92. package/dist/logitron-logger-D2B75Oc7.d.ts.map +1 -0
  93. package/dist/{logitron-logger-BFDSO8Io.d.mts → logitron-logger-oEd6wNhf.d.mts} +116 -8
  94. package/dist/logitron-logger-oEd6wNhf.d.mts.map +1 -0
  95. package/dist/middleware.d.mts +10 -12
  96. package/dist/middleware.d.mts.map +1 -1
  97. package/dist/middleware.d.ts +10 -12
  98. package/dist/middleware.d.ts.map +1 -1
  99. package/dist/middleware.js +16 -47
  100. package/dist/middleware.js.map +1 -1
  101. package/dist/middleware.mjs +13 -45
  102. package/dist/middleware.mjs.map +1 -1
  103. package/dist/nest.d.mts +26 -44
  104. package/dist/nest.d.mts.map +1 -1
  105. package/dist/nest.d.ts +26 -44
  106. package/dist/nest.d.ts.map +1 -1
  107. package/dist/nest.js +116 -132
  108. package/dist/nest.js.map +1 -1
  109. package/dist/nest.mjs +59 -73
  110. package/dist/nest.mjs.map +1 -1
  111. package/dist/{trace.utils-CvXgaiQT.mjs → request-trace-C_fvIDv4.mjs} +44 -9
  112. package/dist/request-trace-C_fvIDv4.mjs.map +1 -0
  113. package/dist/{trace.utils-DpBOLDtq.js → request-trace-wTJdKp6-.js} +121 -77
  114. package/dist/request-trace-wTJdKp6-.js.map +1 -0
  115. package/dist/rolldown-runtime-D3PmRqjj.mjs +4 -0
  116. package/dist/{safe-stringify-DJ66tW5I.mjs → safe-stringify-BMRl3EX3.mjs} +3 -4
  117. package/dist/safe-stringify-BMRl3EX3.mjs.map +1 -0
  118. package/dist/{safe-stringify-DWo3aZp_.js → safe-stringify-DLz1Kz3o.js} +23 -25
  119. package/dist/safe-stringify-DLz1Kz3o.js.map +1 -0
  120. package/dist/{search-CNh9uVwR.d.ts → search-BH33XhuU.d.mts} +2 -22
  121. package/dist/search-BH33XhuU.d.mts.map +1 -0
  122. package/dist/{search-BFbu_oVn.mjs → search-CWMVYC-R.mjs} +22 -39
  123. package/dist/search-CWMVYC-R.mjs.map +1 -0
  124. package/dist/{search-DXANsQ2n.d.mts → search-CazwyX5Z.d.ts} +2 -22
  125. package/dist/search-CazwyX5Z.d.ts.map +1 -0
  126. package/dist/{search-C4V0OMEn.js → search-DUfWuzFP.js} +52 -69
  127. package/dist/search-DUfWuzFP.js.map +1 -0
  128. package/dist/search.d.mts +2 -4
  129. package/dist/search.d.ts +2 -4
  130. package/dist/search.js +3 -4
  131. package/dist/search.mjs +1 -4
  132. package/dist/secret-config-BegMLkYl.mjs +209 -0
  133. package/dist/secret-config-BegMLkYl.mjs.map +1 -0
  134. package/dist/secret-config-CBZBs0p1.js +271 -0
  135. package/dist/secret-config-CBZBs0p1.js.map +1 -0
  136. package/dist/{slack.transport-Bzw7sucI.mjs → slack.transport-Ce96JBDk.mjs} +212 -31
  137. package/dist/slack.transport-Ce96JBDk.mjs.map +1 -0
  138. package/dist/{slack.transport-BfJRouB2.js → slack.transport-Dlx3xvb7.js} +234 -41
  139. package/dist/slack.transport-Dlx3xvb7.js.map +1 -0
  140. package/dist/{slack.transport-BZzoXDPn.d.mts → slack.transport-DrirgDNy.d.ts} +56 -9
  141. package/dist/slack.transport-DrirgDNy.d.ts.map +1 -0
  142. package/dist/{slack.transport-CXjQYOes.d.ts → slack.transport-DxHOXlLu.d.mts} +56 -9
  143. package/dist/slack.transport-DxHOXlLu.d.mts.map +1 -0
  144. package/dist/testing.d.mts +3 -8
  145. package/dist/testing.d.mts.map +1 -1
  146. package/dist/testing.d.ts +3 -8
  147. package/dist/testing.d.ts.map +1 -1
  148. package/dist/testing.js +3 -4
  149. package/dist/testing.js.map +1 -1
  150. package/dist/testing.mjs +2 -3
  151. package/dist/testing.mjs.map +1 -1
  152. package/dist/{transport.manager-CXbKKdVE.js → transport.manager-DkcEOlqV.js} +164 -160
  153. package/dist/transport.manager-DkcEOlqV.js.map +1 -0
  154. package/dist/{transport.manager-BiuCAJd2.mjs → transport.manager-eZ_EeC00.mjs} +108 -99
  155. package/dist/transport.manager-eZ_EeC00.mjs.map +1 -0
  156. package/dist/{transport.types-CGoHpWQR.d.ts → transport.types-BJVL1QQl.d.mts} +1 -3
  157. package/dist/transport.types-BJVL1QQl.d.mts.map +1 -0
  158. package/dist/{transport.types-BMnurPcc.d.mts → transport.types-BJVL1QQl.d.ts} +1 -3
  159. package/dist/transport.types-BJVL1QQl.d.ts.map +1 -0
  160. package/dist/transports.d.mts +22 -36
  161. package/dist/transports.d.mts.map +1 -1
  162. package/dist/transports.d.ts +22 -36
  163. package/dist/transports.d.ts.map +1 -1
  164. package/dist/transports.js +10 -13
  165. package/dist/transports.mjs +7 -13
  166. package/dist/worker-entry.js +337 -87
  167. package/dist/worker.d.mts +1 -2
  168. package/dist/worker.d.ts +1 -2
  169. package/dist/worker.js +3 -4
  170. package/dist/worker.mjs +1 -4
  171. package/dist/{worker.transport-CdzSZJmw.d.ts → worker.transport-BuPwBi3d.d.ts} +2 -6
  172. package/dist/worker.transport-BuPwBi3d.d.ts.map +1 -0
  173. package/dist/{worker.transport-BdPxu3PN.js → worker.transport-C6GNl_r2.js} +44 -14
  174. package/dist/worker.transport-C6GNl_r2.js.map +1 -0
  175. package/dist/{worker.transport-lPxO2MVL.mjs → worker.transport-DLVA4y2e.mjs} +39 -9
  176. package/dist/worker.transport-DLVA4y2e.mjs.map +1 -0
  177. package/dist/{worker.transport-JvGPog3C.d.mts → worker.transport-hJay1wxA.d.mts} +2 -6
  178. package/dist/worker.transport-hJay1wxA.d.mts.map +1 -0
  179. package/package.json +19 -11
  180. package/dist/async-context-BzJrbfQs.mjs +0 -72
  181. package/dist/async-context-BzJrbfQs.mjs.map +0 -1
  182. package/dist/async-context-DyQQYq3I.js +0 -92
  183. package/dist/async-context-DyQQYq3I.js.map +0 -1
  184. package/dist/azure-monitor.transport-CHnjVRF-.mjs.map +0 -1
  185. package/dist/azure-monitor.transport-Cn_3Usvu.d.ts.map +0 -1
  186. package/dist/azure-monitor.transport-CrvfHd9C.js.map +0 -1
  187. package/dist/azure-monitor.transport-D7Da4RAb.d.mts.map +0 -1
  188. package/dist/batch-buffer-BY-mRWIK.js.map +0 -1
  189. package/dist/batch-buffer-PGvSgbmd.mjs.map +0 -1
  190. package/dist/builder-0gEzRopq.mjs.map +0 -1
  191. package/dist/builder-D44QktIo.js.map +0 -1
  192. package/dist/chunk-DLSkYcPk.mjs +0 -7
  193. package/dist/chunk-nOFOJqeH.js +0 -30
  194. package/dist/cloudwatch.transport-BO1ahxw-.js.map +0 -1
  195. package/dist/cloudwatch.transport-DZ6ies7g.mjs.map +0 -1
  196. package/dist/cloudwatch.transport-DsEq633o.d.ts.map +0 -1
  197. package/dist/cloudwatch.transport-UlyZFWMn.d.mts.map +0 -1
  198. package/dist/entry-fields-BJkuPnIg.mjs.map +0 -1
  199. package/dist/entry-fields-BvOLFlJ4.js.map +0 -1
  200. package/dist/gcp.transport-B7oc97sG.d.ts.map +0 -1
  201. package/dist/gcp.transport-CHV8MGgz.js.map +0 -1
  202. package/dist/gcp.transport-DBX5TPIy.mjs.map +0 -1
  203. package/dist/gcp.transport-GrJurKo8.d.mts.map +0 -1
  204. package/dist/index-3mw5gaCw.d.mts.map +0 -1
  205. package/dist/index-DhIoploR.d.ts.map +0 -1
  206. package/dist/internal-log-BUJYMZbE.js +0 -70
  207. package/dist/internal-log-BUJYMZbE.js.map +0 -1
  208. package/dist/internal-log-Cm8SOWSV.mjs +0 -52
  209. package/dist/internal-log-Cm8SOWSV.mjs.map +0 -1
  210. package/dist/logitron-logger-BFDSO8Io.d.mts.map +0 -1
  211. package/dist/logitron-logger-UVeN-mQm.d.ts.map +0 -1
  212. package/dist/safe-stringify-DJ66tW5I.mjs.map +0 -1
  213. package/dist/safe-stringify-DWo3aZp_.js.map +0 -1
  214. package/dist/search-BFbu_oVn.mjs.map +0 -1
  215. package/dist/search-C4V0OMEn.js.map +0 -1
  216. package/dist/search-CNh9uVwR.d.ts.map +0 -1
  217. package/dist/search-DXANsQ2n.d.mts.map +0 -1
  218. package/dist/slack.transport-BZzoXDPn.d.mts.map +0 -1
  219. package/dist/slack.transport-BfJRouB2.js.map +0 -1
  220. package/dist/slack.transport-Bzw7sucI.mjs.map +0 -1
  221. package/dist/slack.transport-CXjQYOes.d.ts.map +0 -1
  222. package/dist/trace.utils-CvXgaiQT.mjs.map +0 -1
  223. package/dist/trace.utils-DpBOLDtq.js.map +0 -1
  224. package/dist/transport.manager-BiuCAJd2.mjs.map +0 -1
  225. package/dist/transport.manager-CXbKKdVE.js.map +0 -1
  226. package/dist/transport.types-BMnurPcc.d.mts.map +0 -1
  227. package/dist/transport.types-CGoHpWQR.d.ts.map +0 -1
  228. package/dist/worker.transport-BdPxu3PN.js.map +0 -1
  229. package/dist/worker.transport-CdzSZJmw.d.ts.map +0 -1
  230. package/dist/worker.transport-JvGPog3C.d.mts.map +0 -1
  231. package/dist/worker.transport-lPxO2MVL.mjs.map +0 -1
package/dist/index.mjs CHANGED
@@ -1,17 +1,14 @@
1
- import { n as internalLog, r as internalWarn } from "./internal-log-Cm8SOWSV.mjs";
2
- import { i as stringifyForLog, n as retrocycle, r as safeStringify, t as decycleValue } from "./safe-stringify-DJ66tW5I.mjs";
3
- import { i as HttpError, n as DEFAULT_MAX_BUFFER_SIZE, r as DEFAULT_REQUEST_TIMEOUT_MS, t as BatchBuffer } from "./batch-buffer-PGvSgbmd.mjs";
4
- import "./entry-fields-BJkuPnIg.mjs";
5
- import { a as _setActiveContextKey, c as getCurrentTraceId, d as sanitizeIncomingId, f as setTraceId, i as TraceContext, l as getTraceContextKey, n as MAX_INCOMING_ID_LENGTH, o as createTraceMiddleware, p as traceStorage, r as TRACE_CONTEXT_KEY, s as extractTraceId, t as DEFAULT_TRACE_HEADERS, u as runWithTraceId } from "./trace.utils-CvXgaiQT.mjs";
6
- import { n as createExpressContextMiddleware, r as createFastifyContextHook, t as LogixiaContext } from "./async-context-BzJrbfQs.mjs";
7
- import { C as globalPluginRegistry, D as DEFAULT_LOG_LEVELS, E as DEFAULT_LOG_COLORS, O as LogLevel, S as PluginRegistry, T as DEFAULT_CONFIG, _ as getOtelMetaFields, a as isLogixiaException, b as normalizeError, c as _shutdownRegistrySize, d as registerForShutdown, f as resetShutdownHandlers, g as getActiveOtelContext, h as disableOtelBridge, i as LogixiaException, l as deregisterFromShutdown, m as redactObject, n as generateRequestId, o as LogixiaLogger, p as applyRedaction, r as generateTraceId, s as createLogger$1, t as ErrorResponseBuilder, u as flushOnExit, v as initOtelBridge, w as usePlugin, x as serializeError, y as isError } from "./builder-0gEzRopq.mjs";
8
- import { t as safeToString } from "./coerce.utils-Cu6IUTgX.mjs";
9
- import { d as stripControlChars } from "./transport.manager-BiuCAJd2.mjs";
10
- import { n as DiscordTransport, t as SlackTransport } from "./slack.transport-Bzw7sucI.mjs";
11
- import { a as BasicSearchEngine, i as CorrelationEngine, n as PatternRecognitionEngine, o as BasicLogIndexer, r as NLPSearchEngine, t as SearchManager } from "./search-BFbu_oVn.mjs";
1
+ import { C as globalPluginRegistry, D as DEFAULT_LOG_LEVELS, E as DEFAULT_LOG_COLORS, O as LogLevel, S as PluginRegistry, T as DEFAULT_CONFIG, _ as getOtelMetaFields, a as isLogixiaException, b as normalizeError, c as _shutdownRegistrySize, d as registerForShutdown, f as resetShutdownHandlers, g as getActiveOtelContext, h as disableOtelBridge, i as LogixiaException, l as deregisterFromShutdown, m as redactObject, n as generateRequestId, o as LogixiaLogger, p as applyRedaction, r as generateTraceId, s as createLogger$1, t as ErrorResponseBuilder, u as flushOnExit, v as initOtelBridge, w as usePlugin, x as serializeError, y as isError } from "./builder-D70z6kjj.mjs";
2
+ import { a as TRACE_CONTEXT_KEY, c as createTraceMiddleware, d as getTraceContextKey, f as runWithTraceId, h as traceStorage, i as MAX_INCOMING_ID_LENGTH, l as extractTraceId, m as setTraceId, o as TraceContext, p as sanitizeIncomingId, r as DEFAULT_TRACE_HEADERS, s as _setActiveContextKey, u as getCurrentTraceId } from "./request-trace-C_fvIDv4.mjs";
3
+ import { n as createExpressContextMiddleware, r as createFastifyContextHook, t as LogixiaContext } from "./async-context-B05ArHgM.mjs";
4
+ import { n as internalLog, r as internalWarn } from "./internal-log-uCSd1PMc.mjs";
5
+ import { t as safeToString } from "./coerce.utils-B_rEudCn.mjs";
6
+ import { i as stringifyForLog, n as retrocycle, r as safeStringify, t as decycleValue } from "./safe-stringify-BMRl3EX3.mjs";
7
+ import { d as stripControlChars } from "./transport.manager-eZ_EeC00.mjs";
8
+ import { i as toOtelSeverity, n as DiscordTransport, r as OtlpLogTransport, t as SlackTransport } from "./slack.transport-Ce96JBDk.mjs";
9
+ import { a as BasicSearchEngine, i as CorrelationEngine, n as PatternRecognitionEngine, o as BasicLogIndexer, r as NLPSearchEngine, t as SearchManager } from "./search-CWMVYC-R.mjs";
12
10
  import { AsyncLocalStorage } from "node:async_hooks";
13
-
14
- //#region src/formatters/json.formatter.ts
11
+ // src/formatters/json.formatter.ts
15
12
  /**
16
13
  * Build a JSON.stringify replacer that replaces circular references with the
17
14
  * string '[Circular]' instead of throwing. A fresh replacer must be created per
@@ -75,9 +72,7 @@ var JsonFormatter = class {
75
72
  return serialized;
76
73
  }
77
74
  };
78
-
79
- //#endregion
80
- //#region src/formatters/text.formatter.ts
75
+ // src/formatters/text.formatter.ts
81
76
  const stripControls = (value) => stripControlChars(safeToString(value));
82
77
  var TextFormatter = class TextFormatter {
83
78
  constructor(options = {}) {
@@ -139,7 +134,6 @@ var TextFormatter = class TextFormatter {
139
134
  switch (this.timestampFormat) {
140
135
  case "iso": return date.toISOString();
141
136
  case "short": return date.toLocaleTimeString();
142
- case "locale":
143
137
  default: return date.toLocaleString();
144
138
  }
145
139
  }
@@ -197,9 +191,7 @@ var TextFormatter = class TextFormatter {
197
191
  });
198
192
  }
199
193
  };
200
-
201
- //#endregion
202
- //#region src/utils/runtime-control.ts
194
+ // src/utils/runtime-control.ts
203
195
  const DEFAULT_CYCLE = [
204
196
  "error",
205
197
  "warn",
@@ -216,13 +208,14 @@ const DEFAULT_CYCLE = [
216
208
  * memorizable command (`kill -USR2 <pid>`) is enough to ratchet verbosity up
217
209
  * while chasing a bug and back down again — no value to remember.
218
210
  */
219
- function registerLevelSignal(logger$1, options = {}) {
211
+ function registerLevelSignal(logger, options = {}) {
220
212
  const signal = options.signal ?? "SIGUSR2";
221
213
  const cycle = options.cycle && options.cycle.length > 0 ? options.cycle : [...DEFAULT_CYCLE];
222
214
  const handler = () => {
223
- const current = logger$1.getLevel();
224
- const next = cycle[(cycle.indexOf(current) + 1) % cycle.length];
225
- logger$1.setLevel(next);
215
+ const current = logger.getLevel();
216
+ const idx = cycle.indexOf(current);
217
+ const next = cycle[(idx + 1) % cycle.length];
218
+ logger.setLevel(next);
226
219
  internalLog(`runtime level changed via ${signal}: ${current} → ${next}`);
227
220
  };
228
221
  process.on(signal, handler);
@@ -231,7 +224,7 @@ function registerLevelSignal(logger$1, options = {}) {
231
224
  };
232
225
  }
233
226
  /** Maximum accepted request body size for the level control handler. */
234
- const MAX_BODY_BYTES = 16 * 1024;
227
+ const MAX_BODY_BYTES = 16384;
235
228
  function isJsonContentType(req) {
236
229
  var _req$headers;
237
230
  const raw = (_req$headers = req.headers) === null || _req$headers === void 0 ? void 0 : _req$headers["content-type"];
@@ -239,7 +232,7 @@ function isJsonContentType(req) {
239
232
  if (typeof value !== "string") return false;
240
233
  return value.split(";")[0].trim().toLowerCase() === "application/json";
241
234
  }
242
- const VALID_LEVELS = new Set([
235
+ const VALID_LEVELS = /* @__PURE__ */ new Set([
243
236
  "error",
244
237
  "warn",
245
238
  "info",
@@ -268,13 +261,13 @@ const VALID_LEVELS = new Set([
268
261
  * which also keeps cross-site form posts out) and a body of at most 16 KB
269
262
  * (otherwise 413).
270
263
  */
271
- function createLevelControlHandler(logger$1, options = {}) {
264
+ function createLevelControlHandler(logger, options = {}) {
272
265
  const allowed = options.allowedLevels && options.allowedLevels.length > 0 ? new Set(options.allowedLevels.map((l) => l.toLowerCase())) : VALID_LEVELS;
273
266
  const snapshot = () => {
274
267
  var _logger$getNamespaceL;
275
268
  return {
276
- level: logger$1.getLevel(),
277
- namespaceLevels: ((_logger$getNamespaceL = logger$1.getNamespaceLevels) === null || _logger$getNamespaceL === void 0 ? void 0 : _logger$getNamespaceL.call(logger$1)) ?? {}
269
+ level: logger.getLevel(),
270
+ namespaceLevels: ((_logger$getNamespaceL = logger.getNamespaceLevels) === null || _logger$getNamespaceL === void 0 ? void 0 : _logger$getNamespaceL.call(logger)) ?? {}
278
271
  };
279
272
  };
280
273
  const send = (res, status, body) => {
@@ -300,7 +293,7 @@ function createLevelControlHandler(logger$1, options = {}) {
300
293
  });
301
294
  return;
302
295
  }
303
- logger$1.setLevel(lvl);
296
+ logger.setLevel(lvl);
304
297
  }
305
298
  if (parsed.namespaceLevels !== void 0) {
306
299
  if (typeof parsed.namespaceLevels !== "object" || parsed.namespaceLevels === null || Array.isArray(parsed.namespaceLevels)) {
@@ -312,9 +305,9 @@ function createLevelControlHandler(logger$1, options = {}) {
312
305
  send(res, 400, { error: `unknown level "${String(lvl)}" for namespace "${pat}"` });
313
306
  return;
314
307
  }
315
- if (logger$1.setNamespaceLevels) {
308
+ if (logger.setNamespaceLevels) {
316
309
  const coerced = Object.fromEntries(Object.entries(nl).map(([pat, lvl]) => [pat, String(lvl).toLowerCase()]));
317
- logger$1.setNamespaceLevels(coerced);
310
+ logger.setNamespaceLevels(coerced);
318
311
  } else internalWarn("level control: logger does not support setNamespaceLevels — ignored");
319
312
  }
320
313
  send(res, 200, snapshot());
@@ -376,9 +369,54 @@ function createLevelControlHandler(logger$1, options = {}) {
376
369
  send(res, 405, { error: `method ${method} not allowed` });
377
370
  };
378
371
  }
379
-
380
- //#endregion
381
- //#region src/utils/typed-logger.ts
372
+ // src/utils/typed-logger.ts
373
+ /**
374
+ * logixia — TypeScript typed log fields
375
+ *
376
+ * Solves the type-safety gap: standard `Record<string, unknown>` metadata gives
377
+ * zero IDE autocomplete and lets typos slip silently into production logs.
378
+ *
379
+ * Two complementary utilities:
380
+ *
381
+ * 1. `createTypedLogger<TFields>()` — wraps any IBaseLogger so that the second
382
+ * argument of every log method is constrained to `TFields` (a typed object).
383
+ * Compile-time safety, zero runtime overhead.
384
+ *
385
+ * 2. `defineLogSchema<TFields>(schema)` — declares expected fields with optional
386
+ * validators. In development (NODE_ENV !== 'production') every log call is
387
+ * validated against the schema and a warning is emitted for missing required
388
+ * fields or type mismatches.
389
+ *
390
+ * @example
391
+ * ```ts
392
+ * import { createTypedLogger, defineLogSchema } from 'logixia';
393
+ *
394
+ * interface OrderFields {
395
+ * orderId: string;
396
+ * userId: string;
397
+ * amount?: number;
398
+ * currency?: string;
399
+ * }
400
+ *
401
+ * const schema = defineLogSchema<OrderFields>({
402
+ * orderId: { type: 'string', required: true },
403
+ * userId: { type: 'string', required: true },
404
+ * amount: { type: 'number' },
405
+ * currency: { type: 'string' },
406
+ * });
407
+ *
408
+ * const orderLogger = createTypedLogger<OrderFields>(baseLogger, schema);
409
+ * await orderLogger.info('Order created', { orderId: 'ord_123', userId: 'usr_456', amount: 99.99 });
410
+ * // ^^^^ fully typed autocomplete ^^^^
411
+ * ```
412
+ */
413
+ function isProduction() {
414
+ try {
415
+ return process.env.NODE_ENV === "production";
416
+ } catch {
417
+ return false;
418
+ }
419
+ }
382
420
  /**
383
421
  * Define a typed schema for a category of log entries.
384
422
  *
@@ -389,7 +427,7 @@ function defineLogSchema(fields) {
389
427
  return {
390
428
  fields,
391
429
  validate(payload) {
392
- if (process.env["NODE_ENV"] === "production") return [];
430
+ if (isProduction()) return [];
393
431
  const warnings = [];
394
432
  for (const [key, def] of Object.entries(fields)) {
395
433
  const value = payload[key];
@@ -416,7 +454,7 @@ function defineLogSchema(fields) {
416
454
  * @param logger Any object that implements `IBaseLogger` (e.g. the result of `createLogger()`)
417
455
  * @param schema Optional schema for dev-time validation. Created with `defineLogSchema()`.
418
456
  */
419
- function createTypedLogger(logger$1, schema) {
457
+ function createTypedLogger(logger, schema) {
420
458
  function withValidation(level, fn, message, data) {
421
459
  if (schema && data) {
422
460
  const warnings = schema.validate(data);
@@ -425,25 +463,56 @@ function createTypedLogger(logger$1, schema) {
425
463
  return fn(message, data);
426
464
  }
427
465
  return {
428
- raw: logger$1,
466
+ raw: logger,
429
467
  error(messageOrError, data) {
430
468
  if (schema && data) {
431
469
  const warnings = schema.validate(data);
432
470
  const display = messageOrError instanceof Error ? messageOrError.message : messageOrError;
433
471
  for (const w of warnings) internalWarn(`[logixia/schema] ${w} — level=error message="${display}"`);
434
472
  }
435
- return logger$1.error(messageOrError, data);
473
+ return logger.error(messageOrError, data);
436
474
  },
437
- warn: (m, d) => withValidation("warn", logger$1.warn.bind(logger$1), m, d),
438
- info: (m, d) => withValidation("info", logger$1.info.bind(logger$1), m, d),
439
- debug: (m, d) => withValidation("debug", logger$1.debug.bind(logger$1), m, d),
440
- verbose: (m, d) => withValidation("verbose", (logger$1.verbose ?? logger$1.debug).bind(logger$1), m, d),
441
- trace: (m, d) => withValidation("trace", (logger$1.trace ?? logger$1.debug).bind(logger$1), m, d)
475
+ warn: (m, d) => withValidation("warn", logger.warn.bind(logger), m, d),
476
+ info: (m, d) => withValidation("info", logger.info.bind(logger), m, d),
477
+ debug: (m, d) => withValidation("debug", logger.debug.bind(logger), m, d),
478
+ verbose: (m, d) => withValidation("verbose", (logger.verbose ?? logger.debug).bind(logger), m, d),
479
+ trace: (m, d) => withValidation("trace", (logger.trace ?? logger.debug).bind(logger), m, d)
442
480
  };
443
481
  }
444
-
445
- //#endregion
446
- //#region src/wide-events.ts
482
+ // src/wide-events.ts
483
+ /**
484
+ * logixia — Canonical Log Lines / Wide Events.
485
+ *
486
+ * Emit ONE dense, structured event per unit of work (usually a request) instead
487
+ * of scattering details across many narrow log lines. Fields are accumulated as
488
+ * the request flows through middleware and business logic, then the whole event
489
+ * is emitted ONCE — in a `finally`/teardown path so it fires even on errors.
490
+ *
491
+ * This is the "canonical log line" pattern (Stripe) / "wide events" /
492
+ * "Observability 2.0" (Honeycomb): one pre-joined, queryable record per request,
493
+ * so operators never JOIN across log lines during an incident. It composes with
494
+ * logixia's existing trace correlation — when a trace is active, the event
495
+ * carries `traceId`/`spanId`, making it OTel-friendly.
496
+ *
497
+ * @example Manual scope
498
+ * ```ts
499
+ * import { withWideEvent, addEventFields } from 'logixia';
500
+ *
501
+ * await withWideEvent(logger, { route: '/checkout' }, async () => {
502
+ * addEventFields({ userId, planTier }); // from anywhere in the call tree
503
+ * addEventFields({ dbQueries: 4, cacheHit });
504
+ * // ...one wide event is emitted automatically when this callback settles,
505
+ * // even if it throws.
506
+ * });
507
+ * ```
508
+ *
509
+ * @example Express middleware (auto-emit on response finish/close)
510
+ * ```ts
511
+ * import { wideEventMiddleware } from 'logixia';
512
+ * app.use(wideEventMiddleware(logger));
513
+ * app.get('/x', (req, res) => { addEventFields({ handled: 'x' }); res.json({}); });
514
+ * ```
515
+ */
447
516
  const _storage = new AsyncLocalStorage();
448
517
  /**
449
518
  * Merge fields into the wide event for the current async scope. No-op (with no
@@ -464,7 +533,7 @@ function getEventFields() {
464
533
  const state = _storage.getStore();
465
534
  return state ? { ...state.fields } : void 0;
466
535
  }
467
- function emit(logger$1, state, options, extra) {
536
+ function emit(logger, state, options, extra) {
468
537
  if (state.emitted) return;
469
538
  state.emitted = true;
470
539
  const level = options.level ?? "info";
@@ -478,7 +547,7 @@ function emit(logger$1, state, options, extra) {
478
547
  const traceId = getCurrentTraceId();
479
548
  if (traceId !== void 0 && payload["traceId"] === void 0) payload["traceId"] = traceId;
480
549
  }
481
- const p = logger$1.logLevel(level, message, payload);
550
+ const p = logger.logLevel(level, message, payload);
482
551
  if (p && typeof p.catch === "function") p.catch(() => {});
483
552
  }
484
553
  /**
@@ -487,7 +556,7 @@ function emit(logger$1, state, options, extra) {
487
556
  * when the callback settles — on success OR error (the canonical "emit in
488
557
  * finally" guarantee). On error, `error` + `errorMessage` fields are added.
489
558
  */
490
- async function withWideEvent(logger$1, initialFields, callback, options = {}) {
559
+ async function withWideEvent(logger, initialFields, callback, options = {}) {
491
560
  const state = {
492
561
  fields: { ...initialFields },
493
562
  startMs: Date.now(),
@@ -496,10 +565,10 @@ async function withWideEvent(logger$1, initialFields, callback, options = {}) {
496
565
  return _storage.run(state, async () => {
497
566
  try {
498
567
  const result = await callback();
499
- emit(logger$1, state, options);
568
+ emit(logger, state, options);
500
569
  return result;
501
570
  } catch (error) {
502
- emit(logger$1, state, options, {
571
+ emit(logger, state, options, {
503
572
  error: true,
504
573
  errorMessage: error instanceof Error ? error.message : String(error)
505
574
  });
@@ -514,7 +583,7 @@ async function withWideEvent(logger$1, initialFields, callback, options = {}) {
514
583
  * more via `addEventFields`. The completion event includes `statusCode` and the
515
584
  * request duration.
516
585
  */
517
- function wideEventMiddleware(logger$1, options = {}) {
586
+ function wideEventMiddleware(logger, options = {}) {
518
587
  return function logixiaWideEventMiddleware(req, res, next) {
519
588
  var _options$skip, _req$socket, _res$once, _res$once2;
520
589
  if ((_options$skip = options.skip) === null || _options$skip === void 0 ? void 0 : _options$skip.call(options, req)) {
@@ -532,192 +601,14 @@ function wideEventMiddleware(logger$1, options = {}) {
532
601
  emitted: false
533
602
  };
534
603
  const finalize = () => {
535
- emit(logger$1, state, options, { statusCode: res.statusCode ?? 0 });
604
+ emit(logger, state, options, { statusCode: res.statusCode ?? 0 });
536
605
  };
537
606
  (_res$once = res.once) === null || _res$once === void 0 || _res$once.call(res, "finish", finalize);
538
607
  (_res$once2 = res.once) === null || _res$once2 === void 0 || _res$once2.call(res, "close", finalize);
539
608
  _storage.run(state, () => next());
540
609
  };
541
610
  }
542
-
543
- //#endregion
544
- //#region src/transports/otlp.transport.ts
545
- const HEX_32 = /^[0-9a-f]{32}$/;
546
- /**
547
- * OTLP JSON wants a 32-char lowercase hex trace id. Dashed UUIDs are
548
- * normalised; anything else (or all zeros) returns undefined.
549
- */
550
- function toOtlpTraceId(id) {
551
- const hex = id.replace(/-/g, "").toLowerCase();
552
- return HEX_32.test(hex) && hex !== "0".repeat(32) ? hex : void 0;
553
- }
554
- /**
555
- * Map a logixia level name to an OTel SeverityNumber (1–24) and text.
556
- * Per the OTel logs SDK spec: TRACE=1, DEBUG=5, INFO=9, WARN=13, ERROR=17,
557
- * FATAL=21. Custom/unknown levels fall back to INFO (9).
558
- */
559
- function toOtelSeverity(level) {
560
- switch (level.toLowerCase()) {
561
- case "trace": return {
562
- number: 1,
563
- text: "TRACE"
564
- };
565
- case "verbose": return {
566
- number: 5,
567
- text: "DEBUG"
568
- };
569
- case "debug": return {
570
- number: 5,
571
- text: "DEBUG"
572
- };
573
- case "info": return {
574
- number: 9,
575
- text: "INFO"
576
- };
577
- case "warn":
578
- case "warning": return {
579
- number: 13,
580
- text: "WARN"
581
- };
582
- case "error": return {
583
- number: 17,
584
- text: "ERROR"
585
- };
586
- case "fatal": return {
587
- number: 21,
588
- text: "FATAL"
589
- };
590
- default: return {
591
- number: 9,
592
- text: "INFO"
593
- };
594
- }
595
- }
596
- /** Coerce a JS value into an OTLP AnyValue. */
597
- function toAnyValue(value) {
598
- if (typeof value === "string") return { stringValue: value };
599
- if (typeof value === "boolean") return { boolValue: value };
600
- if (typeof value === "number") return Number.isInteger(value) ? { intValue: value } : { doubleValue: value };
601
- if (typeof value === "bigint") return { stringValue: value.toString() };
602
- if (value === null || value === void 0) return { stringValue: "" };
603
- try {
604
- return { stringValue: stringifyForLog(value) };
605
- } catch {
606
- return { stringValue: String(value) };
607
- }
608
- }
609
- /** Build the OTLP KeyValue attribute list from a flat record. */
610
- function toAttributes(rec) {
611
- return Object.entries(rec).map(([key, value]) => ({
612
- key,
613
- value: toAnyValue(value)
614
- }));
615
- }
616
- var OtlpLogTransport = class {
617
- constructor(config) {
618
- this.name = "otlp";
619
- this.flushTimer = null;
620
- this.url = config.url;
621
- this.headers = config.headers ?? {};
622
- this.batchSize = config.batchSize ?? 100;
623
- this.flushIntervalMs = config.flushIntervalMs ?? 5e3;
624
- this.requestTimeoutMs = config.requestTimeoutMs ?? DEFAULT_REQUEST_TIMEOUT_MS;
625
- this.level = config.level;
626
- this.buffer = new BatchBuffer({
627
- name: "OtlpLogTransport",
628
- batchSize: this.batchSize,
629
- maxBufferSize: config.maxBufferSize ?? DEFAULT_MAX_BUFFER_SIZE,
630
- send: (entries) => this.send(entries)
631
- });
632
- this.resourceAttrs = toAttributes({
633
- "service.name": config.serviceName ?? "logixia",
634
- ...config.serviceVersion ? { "service.version": config.serviceVersion } : {},
635
- ...config.environment ? { "deployment.environment": config.environment } : {},
636
- ...config.resourceAttributes ?? {}
637
- });
638
- this.flushTimer = setInterval(() => {
639
- this.flush().catch(() => {});
640
- }, this.flushIntervalMs);
641
- if (this.flushTimer.unref) this.flushTimer.unref();
642
- }
643
- write(entry) {
644
- this.buffer.push(entry);
645
- this.buffer.flushIfFull();
646
- }
647
- /** Convert one entry into an OTLP LogRecord. */
648
- toLogRecord(entry) {
649
- const sev = toOtelSeverity(entry.level);
650
- const tsNanos = String(entry.timestamp.getTime() * 1e6);
651
- const attrs = { ...entry.data ?? {} };
652
- if (entry.context !== void 0) attrs["context"] = entry.context;
653
- if (entry.appName !== void 0) attrs["app.name"] = entry.appName;
654
- if (entry.environment !== void 0) attrs["deployment.environment"] = entry.environment;
655
- const record = {
656
- timeUnixNano: tsNanos,
657
- observedTimeUnixNano: tsNanos,
658
- severityNumber: sev.number,
659
- severityText: sev.text,
660
- body: { stringValue: entry.message },
661
- attributes: toAttributes(attrs)
662
- };
663
- if (entry.traceId) {
664
- const traceId = toOtlpTraceId(entry.traceId);
665
- if (traceId) record["traceId"] = traceId;
666
- else record["attributes"].push({
667
- key: "trace_id",
668
- value: { stringValue: entry.traceId }
669
- });
670
- }
671
- return record;
672
- }
673
- buildPayload(entries) {
674
- return stringifyForLog({ resourceLogs: [{
675
- resource: { attributes: this.resourceAttrs },
676
- scopeLogs: [{
677
- scope: { name: "logixia" },
678
- logRecords: entries.map((e) => this.toLogRecord(e))
679
- }]
680
- }] });
681
- }
682
- flush() {
683
- return this.buffer.flush();
684
- }
685
- async send(entries) {
686
- if (typeof fetch !== "function") {
687
- internalWarn("OtlpLogTransport: global fetch unavailable — cannot export logs");
688
- return;
689
- }
690
- const controller = new AbortController();
691
- const timer = setTimeout(() => controller.abort(), this.requestTimeoutMs);
692
- try {
693
- const res = await fetch(this.url, {
694
- method: "POST",
695
- headers: {
696
- "Content-Type": "application/json",
697
- ...this.headers
698
- },
699
- body: this.buildPayload(entries),
700
- signal: controller.signal
701
- });
702
- if (!res.ok) throw new HttpError(res.status, "", "OTLP export");
703
- } catch (err) {
704
- if (controller.signal.aborted) throw new Error(`OTLP export timed out after ${this.requestTimeoutMs}ms`, { cause: err });
705
- throw err;
706
- } finally {
707
- clearTimeout(timer);
708
- }
709
- }
710
- async close() {
711
- if (this.flushTimer) {
712
- clearInterval(this.flushTimer);
713
- this.flushTimer = null;
714
- }
715
- await this.buffer.close();
716
- }
717
- };
718
-
719
- //#endregion
720
- //#region src/metrics.ts
611
+ // src/metrics.ts
721
612
  const DEFAULT_BUCKETS = [
722
613
  1,
723
614
  5,
@@ -859,9 +750,10 @@ var MetricsPlugin = class {
859
750
  const helpText = config.help ?? rawName.replace(/_/g, " ");
860
751
  lines.push(`# HELP ${metricName} ${helpText}`);
861
752
  lines.push(`# TYPE ${metricName} ${config.type}`);
862
- if (state.type === "counter") if (state.values.size === 0) lines.push(`${metricName} 0`);
863
- else for (const [labelKey, count] of state.values) lines.push(`${metricName}${renderLabels(labelKey)} ${count}`);
864
- else if (state.type === "histogram") for (const [labelKey, bucketCounts] of state.counts) {
753
+ if (state.type === "counter") {
754
+ if (state.values.size === 0) lines.push(`${metricName} 0`);
755
+ else for (const [labelKey, count] of state.values) lines.push(`${metricName}${renderLabels(labelKey)} ${count}`);
756
+ } else if (state.type === "histogram") for (const [labelKey, bucketCounts] of state.counts) {
865
757
  const labelSuffix = renderLabels(labelKey);
866
758
  const baseObj = labelKey === "{}" ? {} : JSON.parse(labelKey);
867
759
  for (let i = 0; i < state.buckets.length; i++) {
@@ -879,8 +771,10 @@ var MetricsPlugin = class {
879
771
  lines.push(`${metricName}_sum${labelSuffix} ${state.sums.get(labelKey) ?? 0}`);
880
772
  lines.push(`${metricName}_count${labelSuffix} ${state.observations.get(labelKey) ?? 0}`);
881
773
  }
882
- else if (state.type === "gauge") if (state.values.size === 0) lines.push(`${metricName} 0`);
883
- else for (const [labelKey, val] of state.values) lines.push(`${metricName}${renderLabels(labelKey)} ${val}`);
774
+ else if (state.type === "gauge") {
775
+ if (state.values.size === 0) lines.push(`${metricName} 0`);
776
+ else for (const [labelKey, val] of state.values) lines.push(`${metricName}${renderLabels(labelKey)} ${val}`);
777
+ }
884
778
  }
885
779
  return `${lines.join("\n")}\n`;
886
780
  }
@@ -997,9 +891,20 @@ var MetricsPlugin = class {
997
891
  function createMetricsPlugin(map, options) {
998
892
  return new MetricsPlugin(map, options);
999
893
  }
1000
-
1001
- //#endregion
1002
- //#region src/index.ts
894
+ // src/index.ts
895
+ /**
896
+ * Logixia - Advanced TypeScript Logger
897
+ *
898
+ * A comprehensive logging library with support for:
899
+ * - Multiple output formats (console, file, JSON)
900
+ * - Trace ID tracking
901
+ * - Performance monitoring
902
+ * - NestJS integration
903
+ * - Customizable log levels and colors
904
+ * - Intelligent log search and aggregation
905
+ * - Natural language query processing
906
+ * - Pattern recognition and anomaly detection
907
+ */
1003
908
  /**
1004
909
  * Create a new Logixia logger instance with TypeScript support for custom levels
1005
910
  * @param config - Logger configuration
@@ -1013,7 +918,6 @@ const logger = new LogixiaLogger(DEFAULT_CONFIG);
1013
918
  /**
1014
919
  * Export default configuration for reference
1015
920
  */
1016
-
1017
- //#endregion
1018
921
  export { BasicLogIndexer, BasicSearchEngine, CorrelationEngine, DEFAULT_CONFIG, DEFAULT_LOG_COLORS, DEFAULT_LOG_LEVELS, DEFAULT_TRACE_HEADERS, DiscordTransport, ErrorResponseBuilder, JsonFormatter, LogLevel, LogixiaContext, LogixiaException, LogixiaLogger, MAX_INCOMING_ID_LENGTH, MetricsPlugin, NLPSearchEngine, OVERFLOW_LABEL_VALUE, OtlpLogTransport, PatternRecognitionEngine, PluginRegistry, SearchManager, SlackTransport, TRACE_CONTEXT_KEY, TextFormatter, TraceContext, _setActiveContextKey, _shutdownRegistrySize, addEventFields, applyRedaction, createExpressContextMiddleware, createFastifyContextHook, createLevelControlHandler, createLogger, createMetricsPlugin, createTraceMiddleware, createTypedLogger, decycleValue, defineLogSchema, deregisterFromShutdown, disableOtelBridge, extractTraceId, flushOnExit, generateRequestId, generateTraceId, getActiveOtelContext, getCurrentTraceId, getEventFields, getOtelMetaFields, getTraceContextKey, globalPluginRegistry, initOtelBridge, isError, isLogixiaException, logger, normalizeError, redactObject, registerForShutdown, registerLevelSignal, resetShutdownHandlers, retrocycle, runWithTraceId, safeStringify, sanitizeIncomingId, serializeError, setEventField, setTraceId, stringifyForLog, toOtelSeverity, traceStorage, usePlugin, wideEventMiddleware, withWideEvent };
922
+
1019
923
  //# sourceMappingURL=index.mjs.map