logixia 1.13.3 → 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 (229) hide show
  1. package/README.md +117 -44
  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-BDFO4F-i.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-D5wQEH04.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 +52 -23
  23. package/dist/browser.d.mts.map +1 -1
  24. package/dist/browser.d.ts +52 -23
  25. package/dist/browser.d.ts.map +1 -1
  26. package/dist/browser.js +460 -62
  27. package/dist/browser.js.map +1 -1
  28. package/dist/browser.mjs +461 -65
  29. package/dist/browser.mjs.map +1 -1
  30. package/dist/{nestjs-extras-ImbuDhs1.mjs → builder-D70z6kjj.mjs} +279 -965
  31. package/dist/builder-D70z6kjj.mjs.map +1 -0
  32. package/dist/{nestjs-extras-DnJ6vrIC.js → builder-M7NoaugM.js} +421 -1177
  33. package/dist/builder-M7NoaugM.js.map +1 -0
  34. package/dist/cli/index.js +86 -67
  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-B00st6Xv.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-Blc7Gtxt.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-m4fVw0b1.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-zzNyIoih.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-nZEeCr3X.d.ts → index-DwozbmB4.d.ts} +3 -8
  76. package/dist/index-DwozbmB4.d.ts.map +1 -0
  77. package/dist/{index-BPwEisy4.d.mts → index-xqaJtAZn.d.mts} +3 -8
  78. package/dist/index-xqaJtAZn.d.mts.map +1 -0
  79. package/dist/index.d.mts +141 -203
  80. package/dist/index.d.mts.map +1 -1
  81. package/dist/index.d.ts +140 -202
  82. package/dist/index.d.ts.map +1 -1
  83. package/dist/index.js +196 -381
  84. package/dist/index.js.map +1 -1
  85. package/dist/index.mjs +145 -294
  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-D2B75Oc7.d.ts +365 -0
  92. package/dist/logitron-logger-D2B75Oc7.d.ts.map +1 -0
  93. package/dist/logitron-logger-oEd6wNhf.d.mts +365 -0
  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 +467 -10
  104. package/dist/nest.d.mts.map +1 -1
  105. package/dist/nest.d.ts +467 -10
  106. package/dist/nest.d.ts.map +1 -1
  107. package/dist/nest.js +889 -43
  108. package/dist/nest.js.map +1 -0
  109. package/dist/nest.mjs +850 -9
  110. package/dist/nest.mjs.map +1 -0
  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-CHUZPl0h.d.ts → search-BH33XhuU.d.mts} +2 -22
  121. package/dist/search-BH33XhuU.d.mts.map +1 -0
  122. package/dist/{search-DjXSn6v5.mjs → search-CWMVYC-R.mjs} +34 -41
  123. package/dist/search-CWMVYC-R.mjs.map +1 -0
  124. package/dist/{search-BfBzDIT9.d.mts → search-CazwyX5Z.d.ts} +2 -22
  125. package/dist/search-CazwyX5Z.d.ts.map +1 -0
  126. package/dist/{search-B0MH1SJJ.js → search-DUfWuzFP.js} +64 -71
  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-Ce96JBDk.mjs +824 -0
  137. package/dist/slack.transport-Ce96JBDk.mjs.map +1 -0
  138. package/dist/slack.transport-Dlx3xvb7.js +847 -0
  139. package/dist/slack.transport-Dlx3xvb7.js.map +1 -0
  140. package/dist/slack.transport-DrirgDNy.d.ts +159 -0
  141. package/dist/slack.transport-DrirgDNy.d.ts.map +1 -0
  142. package/dist/slack.transport-DxHOXlLu.d.mts +159 -0
  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-Crau3Rle.js → transport.manager-DkcEOlqV.js} +331 -234
  153. package/dist/transport.manager-DkcEOlqV.js.map +1 -0
  154. package/dist/{transport.manager-CpdVHEGP.mjs → transport.manager-eZ_EeC00.mjs} +274 -178
  155. package/dist/transport.manager-eZ_EeC00.mjs.map +1 -0
  156. package/dist/{transport.types-CtNr3D7S.d.mts → transport.types-BJVL1QQl.d.mts} +5 -4
  157. package/dist/transport.types-BJVL1QQl.d.mts.map +1 -0
  158. package/dist/{transport.types-DqVLZTyf.d.ts → transport.types-BJVL1QQl.d.ts} +5 -4
  159. package/dist/transport.types-BJVL1QQl.d.ts.map +1 -0
  160. package/dist/transports.d.mts +32 -41
  161. package/dist/transports.d.mts.map +1 -1
  162. package/dist/transports.d.ts +32 -41
  163. package/dist/transports.d.ts.map +1 -1
  164. package/dist/transports.js +12 -12
  165. package/dist/transports.mjs +7 -12
  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-Bj-i0P9V.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-JP8YHBuU.js → worker.transport-C6GNl_r2.js} +44 -14
  174. package/dist/worker.transport-C6GNl_r2.js.map +1 -0
  175. package/dist/{worker.transport-otwhJ_Et.mjs → worker.transport-DLVA4y2e.mjs} +39 -9
  176. package/dist/worker.transport-DLVA4y2e.mjs.map +1 -0
  177. package/dist/{worker.transport-Bgv9heDI.d.mts → worker.transport-hJay1wxA.d.mts} +2 -6
  178. package/dist/worker.transport-hJay1wxA.d.mts.map +1 -0
  179. package/package.json +36 -19
  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-BDFO4F-i.d.ts.map +0 -1
  185. package/dist/azure-monitor.transport-CHnjVRF-.mjs.map +0 -1
  186. package/dist/azure-monitor.transport-CrvfHd9C.js.map +0 -1
  187. package/dist/azure-monitor.transport-D5wQEH04.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/chunk-DLSkYcPk.mjs +0 -7
  191. package/dist/chunk-nOFOJqeH.js +0 -30
  192. package/dist/cloudwatch.transport-B00st6Xv.d.ts.map +0 -1
  193. package/dist/cloudwatch.transport-BO1ahxw-.js.map +0 -1
  194. package/dist/cloudwatch.transport-Blc7Gtxt.d.mts.map +0 -1
  195. package/dist/cloudwatch.transport-DZ6ies7g.mjs.map +0 -1
  196. package/dist/entry-fields-BJkuPnIg.mjs.map +0 -1
  197. package/dist/entry-fields-BvOLFlJ4.js.map +0 -1
  198. package/dist/gcp.transport-CHV8MGgz.js.map +0 -1
  199. package/dist/gcp.transport-DBX5TPIy.mjs.map +0 -1
  200. package/dist/gcp.transport-m4fVw0b1.d.ts.map +0 -1
  201. package/dist/gcp.transport-zzNyIoih.d.mts.map +0 -1
  202. package/dist/index-BPwEisy4.d.mts.map +0 -1
  203. package/dist/index-nZEeCr3X.d.ts.map +0 -1
  204. package/dist/internal-log-BUJYMZbE.js +0 -70
  205. package/dist/internal-log-BUJYMZbE.js.map +0 -1
  206. package/dist/internal-log-Cm8SOWSV.mjs +0 -52
  207. package/dist/internal-log-Cm8SOWSV.mjs.map +0 -1
  208. package/dist/nestjs-extras-DnJ6vrIC.js.map +0 -1
  209. package/dist/nestjs-extras-ImbuDhs1.mjs.map +0 -1
  210. package/dist/nestjs-extras-OkC796py.d.mts +0 -725
  211. package/dist/nestjs-extras-OkC796py.d.mts.map +0 -1
  212. package/dist/nestjs-extras-mKrHE9S6.d.ts +0 -725
  213. package/dist/nestjs-extras-mKrHE9S6.d.ts.map +0 -1
  214. package/dist/safe-stringify-DJ66tW5I.mjs.map +0 -1
  215. package/dist/safe-stringify-DWo3aZp_.js.map +0 -1
  216. package/dist/search-B0MH1SJJ.js.map +0 -1
  217. package/dist/search-BfBzDIT9.d.mts.map +0 -1
  218. package/dist/search-CHUZPl0h.d.ts.map +0 -1
  219. package/dist/search-DjXSn6v5.mjs.map +0 -1
  220. package/dist/trace.utils-CvXgaiQT.mjs.map +0 -1
  221. package/dist/trace.utils-DpBOLDtq.js.map +0 -1
  222. package/dist/transport.manager-CpdVHEGP.mjs.map +0 -1
  223. package/dist/transport.manager-Crau3Rle.js.map +0 -1
  224. package/dist/transport.types-CtNr3D7S.d.mts.map +0 -1
  225. package/dist/transport.types-DqVLZTyf.d.ts.map +0 -1
  226. package/dist/worker.transport-Bgv9heDI.d.mts.map +0 -1
  227. package/dist/worker.transport-Bj-i0P9V.d.ts.map +0 -1
  228. package/dist/worker.transport-JP8YHBuU.js.map +0 -1
  229. package/dist/worker.transport-otwhJ_Et.mjs.map +0 -1
@@ -1,4 +1,3 @@
1
- //#region src/utils/otel.d.ts
2
1
  /**
3
2
  * logixia — OpenTelemetry auto trace-log correlation
4
3
  *
@@ -75,7 +74,7 @@ interface OtelBridgeOptions {
75
74
  * - No active span exists (root context)
76
75
  * - The span context is invalid (all-zeros)
77
76
  */
78
- declare function getActiveOtelContext(opts?: OtelBridgeOptions): OtelSpanContext | undefined;
77
+ export declare function getActiveOtelContext(opts?: OtelBridgeOptions): OtelSpanContext | undefined;
79
78
  /**
80
79
  * Returns a metadata object with OTel context fields ready to merge into a log call,
81
80
  * using the configured field names.
@@ -90,7 +89,7 @@ declare function getActiveOtelContext(opts?: OtelBridgeOptions): OtelSpanContext
90
89
  * });
91
90
  * ```
92
91
  */
93
- declare function getOtelMetaFields(opts?: OtelBridgeOptions): Record<string, unknown>;
92
+ export declare function getOtelMetaFields(opts?: OtelBridgeOptions): Record<string, unknown>;
94
93
  /**
95
94
  * Initialise the global OTel bridge.
96
95
  *
@@ -104,13 +103,11 @@ declare function getOtelMetaFields(opts?: OtelBridgeOptions): Record<string, unk
104
103
  * initOtelBridge();
105
104
  * ```
106
105
  */
107
- declare function initOtelBridge(opts?: OtelBridgeOptions): void;
106
+ export declare function initOtelBridge(opts?: OtelBridgeOptions): void;
108
107
  /**
109
108
  * Disable the OTel bridge (useful for tests).
110
109
  */
111
- declare function disableOtelBridge(): void;
112
- //#endregion
113
- //#region src/utils/typed-logger.d.ts
110
+ export declare function disableOtelBridge(): void;
114
111
  /**
115
112
  * logixia — TypeScript typed log fields
116
113
  *
@@ -159,7 +156,7 @@ interface LogFieldDef {
159
156
  /** Custom validator — return a string to emit it as a warning message. */
160
157
  validate?: (value: unknown) => string | undefined;
161
158
  }
162
- type LogSchema<TFields extends Record<string, unknown>> = { [K in keyof TFields]: LogFieldDef };
159
+ type LogSchema<TFields extends Record<string, unknown>> = { [K in keyof TFields]: LogFieldDef; };
163
160
  interface CompiledSchema<TFields extends Record<string, unknown>> {
164
161
  readonly fields: LogSchema<TFields>;
165
162
  /**
@@ -175,7 +172,7 @@ interface CompiledSchema<TFields extends Record<string, unknown>> {
175
172
  * Call this once at module initialisation and pass it to `createTypedLogger`.
176
173
  * In development, every log call is validated against the schema.
177
174
  */
178
- declare function defineLogSchema<TFields extends Record<string, unknown>>(fields: LogSchema<TFields>): CompiledSchema<TFields>;
175
+ export declare function defineLogSchema<TFields extends Record<string, unknown>>(fields: LogSchema<TFields>): CompiledSchema<TFields>;
179
176
  /** IBaseLogger-compatible subset used by TypedLogger */
180
177
  interface LoggerLike {
181
178
  error(message: string | Error, data?: Record<string, unknown>): Promise<void>;
@@ -208,9 +205,7 @@ interface TypedLogger<TFields extends Record<string, unknown>> {
208
205
  * @param logger Any object that implements `IBaseLogger` (e.g. the result of `createLogger()`)
209
206
  * @param schema Optional schema for dev-time validation. Created with `defineLogSchema()`.
210
207
  */
211
- declare function createTypedLogger<TFields extends Record<string, unknown>>(logger: LoggerLike, schema?: CompiledSchema<TFields>): TypedLogger<TFields>;
212
- //#endregion
213
- //#region src/browser.d.ts
208
+ export declare function createTypedLogger<TFields extends Record<string, unknown>>(logger: LoggerLike, schema?: CompiledSchema<TFields>): TypedLogger<TFields>;
214
209
  /**
215
210
  * logixia — Browser / Edge Runtime entry point
216
211
  *
@@ -246,8 +241,8 @@ declare function createTypedLogger<TFields extends Record<string, unknown>>(logg
246
241
  * });
247
242
  * ```
248
243
  */
249
- type BrowserLogLevel = 'verbose' | 'debug' | 'info' | 'warn' | 'error' | 'critical';
250
- interface BrowserLogEntry {
244
+ export type BrowserLogLevel = 'verbose' | 'debug' | 'info' | 'warn' | 'error' | 'critical';
245
+ export interface BrowserLogEntry {
251
246
  timestamp: string;
252
247
  level: BrowserLogLevel;
253
248
  appName: string;
@@ -256,7 +251,7 @@ interface BrowserLogEntry {
256
251
  traceId?: string;
257
252
  context?: string;
258
253
  }
259
- interface BrowserLoggerConfig {
254
+ export interface BrowserLoggerConfig {
260
255
  /** Application name shown in every log entry. @default 'App' */
261
256
  appName?: string;
262
257
  /** Minimum log level to emit. @default 'info' */
@@ -277,7 +272,7 @@ interface BrowserLoggerConfig {
277
272
  /** Static context fields merged into every log entry. */
278
273
  context?: Record<string, unknown>;
279
274
  }
280
- interface IBrowserTransport {
275
+ export interface IBrowserTransport {
281
276
  name: string;
282
277
  level?: BrowserLogLevel;
283
278
  write(entry: BrowserLogEntry): void;
@@ -293,7 +288,7 @@ interface IBrowserTransport {
293
288
  * In JSON mode:
294
289
  * - Emits compact JSON strings via `console.log` / `console.error`
295
290
  */
296
- declare class BrowserConsoleTransport implements IBrowserTransport {
291
+ export declare class BrowserConsoleTransport implements IBrowserTransport {
297
292
  readonly name = "browser-console";
298
293
  readonly level?: BrowserLogLevel;
299
294
  private readonly json;
@@ -323,7 +318,7 @@ declare class BrowserConsoleTransport implements IBrowserTransport {
323
318
  * });
324
319
  * ```
325
320
  */
326
- declare class BrowserRemoteTransport implements IBrowserTransport {
321
+ export declare class BrowserRemoteTransport implements IBrowserTransport {
327
322
  readonly name = "browser-remote";
328
323
  readonly level?: BrowserLogLevel;
329
324
  private readonly url;
@@ -332,8 +327,17 @@ declare class BrowserRemoteTransport implements IBrowserTransport {
332
327
  private readonly maxBufferSize;
333
328
  private readonly headers;
334
329
  private batch;
330
+ private keepaliveSupported;
331
+ private failedFlushCount;
332
+ private lastFlushError;
335
333
  private timer;
336
334
  private droppedEntries;
335
+ private readonly silent;
336
+ private readonly onError;
337
+ private reporting;
338
+ private failureReported;
339
+ private lastReportAt;
340
+ private lastRecoveryAt;
337
341
  constructor(options: {
338
342
  /** Endpoint URL to POST batched log entries to. */
339
343
  url: string;
@@ -353,6 +357,20 @@ declare class BrowserRemoteTransport implements IBrowserTransport {
353
357
  */
354
358
  maxBufferSize?: number;
355
359
  level?: BrowserLogLevel;
360
+ /**
361
+ * Suppress the console report of failed flushes (`onError` still fires).
362
+ * Defaults to `true` in real browser pages (so end users' consoles stay
363
+ * clean) and `false` elsewhere (edge runtimes, SSR, Node). Reports are
364
+ * throttled to one per minute and never include the URL or error text.
365
+ */
366
+ silent?: boolean;
367
+ /**
368
+ * Called on every failed flush (network error or non-OK HTTP status) with the
369
+ * raw error. Runs inside the transport's re-entrancy guard: entries written
370
+ * to this transport from inside the callback are dropped (and counted in
371
+ * `dropped`). Route failures somewhere else.
372
+ */
373
+ onError?: (error: unknown) => void;
356
374
  });
357
375
  /**
358
376
  * Number of entries dropped without delivery — either because the buffer
@@ -360,8 +378,20 @@ declare class BrowserRemoteTransport implements IBrowserTransport {
360
378
  * non-retryable HTTP status (a 4xx other than 429).
361
379
  */
362
380
  get dropped(): number;
381
+ /** Number of flush attempts that failed (network error or non-OK HTTP status). */
382
+ get failedFlushes(): number;
383
+ /**
384
+ * The most recent failure from a flush, if any: the raw fetch error (which on
385
+ * some runtimes embeds the request URL, so do not log it blindly) or an
386
+ * `Error` carrying only the HTTP status.
387
+ */
388
+ get lastError(): unknown;
363
389
  write(entry: BrowserLogEntry): void;
364
390
  flush(): Promise<void>;
391
+ private send;
392
+ private recordFailure;
393
+ private reportRecovery;
394
+ private guarded;
365
395
  private scheduleFlush;
366
396
  /**
367
397
  * Stop the flush timer and flush remaining entries. Without the final flush,
@@ -376,7 +406,7 @@ declare class BrowserRemoteTransport implements IBrowserTransport {
376
406
  * Unlike the Node.js `LogixiaLogger`, this implementation has **zero**
377
407
  * Node.js dependencies. It can be bundled for any runtime.
378
408
  */
379
- declare class BrowserLogger {
409
+ export declare class BrowserLogger {
380
410
  private readonly config;
381
411
  private readonly transports;
382
412
  constructor(config?: BrowserLoggerConfig);
@@ -411,7 +441,7 @@ declare class BrowserLogger {
411
441
  * logger.info('Cart updated', { itemCount: 3, total: 49.99 });
412
442
  * ```
413
443
  */
414
- declare function createBrowserLogger(config?: BrowserLoggerConfig): BrowserLogger;
444
+ export declare function createBrowserLogger(config?: BrowserLoggerConfig): BrowserLogger;
415
445
  /**
416
446
  * Default browser logger instance (singleton, console transport, info level).
417
447
  *
@@ -421,7 +451,6 @@ declare function createBrowserLogger(config?: BrowserLoggerConfig): BrowserLogge
421
451
  * browserLogger.info('Hello from browser');
422
452
  * ```
423
453
  */
424
- declare const browserLogger: BrowserLogger;
425
- //#endregion
426
- export { BrowserConsoleTransport, BrowserLogEntry, BrowserLogLevel, BrowserLogger, BrowserLoggerConfig, BrowserRemoteTransport, type CompiledSchema, IBrowserTransport, type LogFieldDef, type LogFieldType, type LogSchema, type LoggerLike, type OtelBridgeOptions, type OtelSpanContext, type TypedLogger, browserLogger, createBrowserLogger, createTypedLogger, defineLogSchema, disableOtelBridge, getActiveOtelContext, getOtelMetaFields, initOtelBridge };
454
+ export declare const browserLogger: BrowserLogger;
455
+ export type { CompiledSchema, LogFieldDef, LogFieldType, LogSchema, LoggerLike, OtelBridgeOptions, OtelSpanContext, TypedLogger };
427
456
  //# sourceMappingURL=browser.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.mts","names":[],"sources":["../src/utils/otel.ts","../src/utils/typed-logger.ts","../src/browser.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.d.mts","names":[],"sources":["../src/utils/otel.ts","../src/utils/typed-logger.ts","../src/browser.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAsCiB;;EAEf;;EAEA;;EAEA;;EAEA;;UAGe;;;;;EAKf;;;;;EAKA;;;;;EAKA;;;;;EAKA;;;;;;;;;;;wBA0Cc,qBAAqB,OAAM,oBAAyB;;;;;;;;;;;;;;;wBA2CpD,kBAAkB,OAAM,oBAAyB;;;;;;;;;;;;;;wBA8BjD,eAAe,OAAM;;;;wBA2BrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KCtKJ;UAEK;EACf,MAAM;;EAEN;;EAEA,YAAY;;KAGF,UAAU,gBAAgB,8BACnC,WAAW,UAAU;UAGP,eAAe,gBAAgB;WACrC,QAAQ,UAAU;;;;;;EAM3B,SAAS,SAAS,QAAQ;;;;;;;;wBAqBZ,gBAAgB,gBAAgB,yBAC9C,QAAQ,UAAU,WACjB,eAAe;;UAqCD;EACf,MAAM,kBAAkB,OAAO,OAAO,0BAA0B;EAChE,KAAK,iBAAiB,OAAO,0BAA0B;EACvD,KAAK,iBAAiB,OAAO,0BAA0B;EACvD,MAAM,iBAAiB,OAAO,0BAA0B;EACxD,SAAS,iBAAiB,OAAO,0BAA0B;EAC3D,OAAO,iBAAiB,OAAO,0BAA0B;;;;;;;;UAS1C,YAAY,gBAAgB;EAC3C,MAAM,OAAO,OAAO,OAAO,QAAQ,WAAW;EAC9C,MAAM,iBAAiB,OAAO,QAAQ,WAAW;EACjD,KAAK,iBAAiB,OAAO,QAAQ,WAAW;EAChD,KAAK,iBAAiB,OAAO,QAAQ,WAAW;EAChD,MAAM,iBAAiB,OAAO,QAAQ,WAAW;EACjD,QAAQ,iBAAiB,OAAO,QAAQ,WAAW;EACnD,MAAM,iBAAiB,OAAO,QAAQ,WAAW;;WAExC,KAAK;;;;;;;;wBASA,kBAAkB,gBAAgB,yBAChD,QAAQ,YACR,SAAS,eAAe,WACvB,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YCxHH;iBAEK;EACf;EACA,OAAO;EACP;EACA;EACA,UAAU;EACV;EACA;;iBAGe;;EAEf;;EAEA,QAAQ;;;;;;EAMR;;;;;EAKA,aAAa;;EAEb;;EAEA,UAAU;;iBAGK;EACf;EACA,QAAQ;EACR,MAAM,OAAO;;;;;;;;;;;;;qBA+BF,mCAAmC;WAC9B;WACA,QAAQ;mBAEP;EAEL,YAAA;IAAW;IAAgB,QAAQ;;EAK/C,MAAM,OAAO;UASL;UAmBA;UAuCA;;;;;;;;;;;;;;;;;;;qBAgGG,kCAAkC;WAC7B;WACA,QAAQ;mBAEP;mBACA;mBACA;mBACA;mBACA;UAET;UACA;UACA;UACA;UACA;UACA;mBACS;mBACA;UACT;UACA;UACA;UACA;EAEI,YAAA;;IAEV;;IAEA,UAAU;;IAEV;;;;;;IAMA;;;;;IAKA;IACA,QAAQ;;;;;;;IAOR;;;;;;;IAOA,WAAW;;;;;;;MAmBT;;MAKA;;;;;;MASA;EAIJ,MAAM,OAAO;EAmBP,SAAS;UA8CP;UASA;UAuBA;UAcA;UASA;;;;;;EAiBR;;;;;;;;qBAiBW;mBACM;mBAKA;EAEL,YAAA,SAAQ;EAmBpB,QAAQ,iBAAiB,UAAU;EAInC,MAAM,iBAAiB,UAAU;EAIjC,KAAK,iBAAiB,UAAU;EAIhC,IAAI,iBAAiB,UAAU;EAI/B,KAAK,iBAAiB,UAAU;EAIhC,MAAM,iBAAiB,UAAU;EAIjC,SAAS,iBAAiB,UAAU;;;;;;;;;;;EAcpC,MAAM,cAAc,0BAA0B;UAgBtC;;;;;;;;;;;;;wBAiCM,oBAAoB,SAAS,sBAAsB;;;;;;;;;;qBAmCtD,eAAa"}
package/dist/browser.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- //#region src/utils/otel.d.ts
2
1
  /**
3
2
  * logixia — OpenTelemetry auto trace-log correlation
4
3
  *
@@ -75,7 +74,7 @@ interface OtelBridgeOptions {
75
74
  * - No active span exists (root context)
76
75
  * - The span context is invalid (all-zeros)
77
76
  */
78
- declare function getActiveOtelContext(opts?: OtelBridgeOptions): OtelSpanContext | undefined;
77
+ export declare function getActiveOtelContext(opts?: OtelBridgeOptions): OtelSpanContext | undefined;
79
78
  /**
80
79
  * Returns a metadata object with OTel context fields ready to merge into a log call,
81
80
  * using the configured field names.
@@ -90,7 +89,7 @@ declare function getActiveOtelContext(opts?: OtelBridgeOptions): OtelSpanContext
90
89
  * });
91
90
  * ```
92
91
  */
93
- declare function getOtelMetaFields(opts?: OtelBridgeOptions): Record<string, unknown>;
92
+ export declare function getOtelMetaFields(opts?: OtelBridgeOptions): Record<string, unknown>;
94
93
  /**
95
94
  * Initialise the global OTel bridge.
96
95
  *
@@ -104,13 +103,11 @@ declare function getOtelMetaFields(opts?: OtelBridgeOptions): Record<string, unk
104
103
  * initOtelBridge();
105
104
  * ```
106
105
  */
107
- declare function initOtelBridge(opts?: OtelBridgeOptions): void;
106
+ export declare function initOtelBridge(opts?: OtelBridgeOptions): void;
108
107
  /**
109
108
  * Disable the OTel bridge (useful for tests).
110
109
  */
111
- declare function disableOtelBridge(): void;
112
- //#endregion
113
- //#region src/utils/typed-logger.d.ts
110
+ export declare function disableOtelBridge(): void;
114
111
  /**
115
112
  * logixia — TypeScript typed log fields
116
113
  *
@@ -159,7 +156,7 @@ interface LogFieldDef {
159
156
  /** Custom validator — return a string to emit it as a warning message. */
160
157
  validate?: (value: unknown) => string | undefined;
161
158
  }
162
- type LogSchema<TFields extends Record<string, unknown>> = { [K in keyof TFields]: LogFieldDef };
159
+ type LogSchema<TFields extends Record<string, unknown>> = { [K in keyof TFields]: LogFieldDef; };
163
160
  interface CompiledSchema<TFields extends Record<string, unknown>> {
164
161
  readonly fields: LogSchema<TFields>;
165
162
  /**
@@ -175,7 +172,7 @@ interface CompiledSchema<TFields extends Record<string, unknown>> {
175
172
  * Call this once at module initialisation and pass it to `createTypedLogger`.
176
173
  * In development, every log call is validated against the schema.
177
174
  */
178
- declare function defineLogSchema<TFields extends Record<string, unknown>>(fields: LogSchema<TFields>): CompiledSchema<TFields>;
175
+ export declare function defineLogSchema<TFields extends Record<string, unknown>>(fields: LogSchema<TFields>): CompiledSchema<TFields>;
179
176
  /** IBaseLogger-compatible subset used by TypedLogger */
180
177
  interface LoggerLike {
181
178
  error(message: string | Error, data?: Record<string, unknown>): Promise<void>;
@@ -208,9 +205,7 @@ interface TypedLogger<TFields extends Record<string, unknown>> {
208
205
  * @param logger Any object that implements `IBaseLogger` (e.g. the result of `createLogger()`)
209
206
  * @param schema Optional schema for dev-time validation. Created with `defineLogSchema()`.
210
207
  */
211
- declare function createTypedLogger<TFields extends Record<string, unknown>>(logger: LoggerLike, schema?: CompiledSchema<TFields>): TypedLogger<TFields>;
212
- //#endregion
213
- //#region src/browser.d.ts
208
+ export declare function createTypedLogger<TFields extends Record<string, unknown>>(logger: LoggerLike, schema?: CompiledSchema<TFields>): TypedLogger<TFields>;
214
209
  /**
215
210
  * logixia — Browser / Edge Runtime entry point
216
211
  *
@@ -246,8 +241,8 @@ declare function createTypedLogger<TFields extends Record<string, unknown>>(logg
246
241
  * });
247
242
  * ```
248
243
  */
249
- type BrowserLogLevel = 'verbose' | 'debug' | 'info' | 'warn' | 'error' | 'critical';
250
- interface BrowserLogEntry {
244
+ export type BrowserLogLevel = 'verbose' | 'debug' | 'info' | 'warn' | 'error' | 'critical';
245
+ export interface BrowserLogEntry {
251
246
  timestamp: string;
252
247
  level: BrowserLogLevel;
253
248
  appName: string;
@@ -256,7 +251,7 @@ interface BrowserLogEntry {
256
251
  traceId?: string;
257
252
  context?: string;
258
253
  }
259
- interface BrowserLoggerConfig {
254
+ export interface BrowserLoggerConfig {
260
255
  /** Application name shown in every log entry. @default 'App' */
261
256
  appName?: string;
262
257
  /** Minimum log level to emit. @default 'info' */
@@ -277,7 +272,7 @@ interface BrowserLoggerConfig {
277
272
  /** Static context fields merged into every log entry. */
278
273
  context?: Record<string, unknown>;
279
274
  }
280
- interface IBrowserTransport {
275
+ export interface IBrowserTransport {
281
276
  name: string;
282
277
  level?: BrowserLogLevel;
283
278
  write(entry: BrowserLogEntry): void;
@@ -293,7 +288,7 @@ interface IBrowserTransport {
293
288
  * In JSON mode:
294
289
  * - Emits compact JSON strings via `console.log` / `console.error`
295
290
  */
296
- declare class BrowserConsoleTransport implements IBrowserTransport {
291
+ export declare class BrowserConsoleTransport implements IBrowserTransport {
297
292
  readonly name = "browser-console";
298
293
  readonly level?: BrowserLogLevel;
299
294
  private readonly json;
@@ -323,7 +318,7 @@ declare class BrowserConsoleTransport implements IBrowserTransport {
323
318
  * });
324
319
  * ```
325
320
  */
326
- declare class BrowserRemoteTransport implements IBrowserTransport {
321
+ export declare class BrowserRemoteTransport implements IBrowserTransport {
327
322
  readonly name = "browser-remote";
328
323
  readonly level?: BrowserLogLevel;
329
324
  private readonly url;
@@ -332,8 +327,17 @@ declare class BrowserRemoteTransport implements IBrowserTransport {
332
327
  private readonly maxBufferSize;
333
328
  private readonly headers;
334
329
  private batch;
330
+ private keepaliveSupported;
331
+ private failedFlushCount;
332
+ private lastFlushError;
335
333
  private timer;
336
334
  private droppedEntries;
335
+ private readonly silent;
336
+ private readonly onError;
337
+ private reporting;
338
+ private failureReported;
339
+ private lastReportAt;
340
+ private lastRecoveryAt;
337
341
  constructor(options: {
338
342
  /** Endpoint URL to POST batched log entries to. */
339
343
  url: string;
@@ -353,6 +357,20 @@ declare class BrowserRemoteTransport implements IBrowserTransport {
353
357
  */
354
358
  maxBufferSize?: number;
355
359
  level?: BrowserLogLevel;
360
+ /**
361
+ * Suppress the console report of failed flushes (`onError` still fires).
362
+ * Defaults to `true` in real browser pages (so end users' consoles stay
363
+ * clean) and `false` elsewhere (edge runtimes, SSR, Node). Reports are
364
+ * throttled to one per minute and never include the URL or error text.
365
+ */
366
+ silent?: boolean;
367
+ /**
368
+ * Called on every failed flush (network error or non-OK HTTP status) with the
369
+ * raw error. Runs inside the transport's re-entrancy guard: entries written
370
+ * to this transport from inside the callback are dropped (and counted in
371
+ * `dropped`). Route failures somewhere else.
372
+ */
373
+ onError?: (error: unknown) => void;
356
374
  });
357
375
  /**
358
376
  * Number of entries dropped without delivery — either because the buffer
@@ -360,8 +378,20 @@ declare class BrowserRemoteTransport implements IBrowserTransport {
360
378
  * non-retryable HTTP status (a 4xx other than 429).
361
379
  */
362
380
  get dropped(): number;
381
+ /** Number of flush attempts that failed (network error or non-OK HTTP status). */
382
+ get failedFlushes(): number;
383
+ /**
384
+ * The most recent failure from a flush, if any: the raw fetch error (which on
385
+ * some runtimes embeds the request URL, so do not log it blindly) or an
386
+ * `Error` carrying only the HTTP status.
387
+ */
388
+ get lastError(): unknown;
363
389
  write(entry: BrowserLogEntry): void;
364
390
  flush(): Promise<void>;
391
+ private send;
392
+ private recordFailure;
393
+ private reportRecovery;
394
+ private guarded;
365
395
  private scheduleFlush;
366
396
  /**
367
397
  * Stop the flush timer and flush remaining entries. Without the final flush,
@@ -376,7 +406,7 @@ declare class BrowserRemoteTransport implements IBrowserTransport {
376
406
  * Unlike the Node.js `LogixiaLogger`, this implementation has **zero**
377
407
  * Node.js dependencies. It can be bundled for any runtime.
378
408
  */
379
- declare class BrowserLogger {
409
+ export declare class BrowserLogger {
380
410
  private readonly config;
381
411
  private readonly transports;
382
412
  constructor(config?: BrowserLoggerConfig);
@@ -411,7 +441,7 @@ declare class BrowserLogger {
411
441
  * logger.info('Cart updated', { itemCount: 3, total: 49.99 });
412
442
  * ```
413
443
  */
414
- declare function createBrowserLogger(config?: BrowserLoggerConfig): BrowserLogger;
444
+ export declare function createBrowserLogger(config?: BrowserLoggerConfig): BrowserLogger;
415
445
  /**
416
446
  * Default browser logger instance (singleton, console transport, info level).
417
447
  *
@@ -421,7 +451,6 @@ declare function createBrowserLogger(config?: BrowserLoggerConfig): BrowserLogge
421
451
  * browserLogger.info('Hello from browser');
422
452
  * ```
423
453
  */
424
- declare const browserLogger: BrowserLogger;
425
- //#endregion
426
- export { BrowserConsoleTransport, BrowserLogEntry, BrowserLogLevel, BrowserLogger, BrowserLoggerConfig, BrowserRemoteTransport, type CompiledSchema, IBrowserTransport, type LogFieldDef, type LogFieldType, type LogSchema, type LoggerLike, type OtelBridgeOptions, type OtelSpanContext, type TypedLogger, browserLogger, createBrowserLogger, createTypedLogger, defineLogSchema, disableOtelBridge, getActiveOtelContext, getOtelMetaFields, initOtelBridge };
454
+ export declare const browserLogger: BrowserLogger;
455
+ export type { CompiledSchema, LogFieldDef, LogFieldType, LogSchema, LoggerLike, OtelBridgeOptions, OtelSpanContext, TypedLogger };
427
456
  //# sourceMappingURL=browser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","names":[],"sources":["../src/utils/otel.ts","../src/utils/typed-logger.ts","../src/browser.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.d.ts","names":[],"sources":["../src/utils/otel.ts","../src/utils/typed-logger.ts","../src/browser.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAsCiB;;EAEf;;EAEA;;EAEA;;EAEA;;UAGe;;;;;EAKf;;;;;EAKA;;;;;EAKA;;;;;EAKA;;;;;;;;;;;wBA0Cc,qBAAqB,OAAM,oBAAyB;;;;;;;;;;;;;;;wBA2CpD,kBAAkB,OAAM,oBAAyB;;;;;;;;;;;;;;wBA8BjD,eAAe,OAAM;;;;wBA2BrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KCtKJ;UAEK;EACf,MAAM;;EAEN;;EAEA,YAAY;;KAGF,UAAU,gBAAgB,8BACnC,WAAW,UAAU;UAGP,eAAe,gBAAgB;WACrC,QAAQ,UAAU;;;;;;EAM3B,SAAS,SAAS,QAAQ;;;;;;;;wBAqBZ,gBAAgB,gBAAgB,yBAC9C,QAAQ,UAAU,WACjB,eAAe;;UAqCD;EACf,MAAM,kBAAkB,OAAO,OAAO,0BAA0B;EAChE,KAAK,iBAAiB,OAAO,0BAA0B;EACvD,KAAK,iBAAiB,OAAO,0BAA0B;EACvD,MAAM,iBAAiB,OAAO,0BAA0B;EACxD,SAAS,iBAAiB,OAAO,0BAA0B;EAC3D,OAAO,iBAAiB,OAAO,0BAA0B;;;;;;;;UAS1C,YAAY,gBAAgB;EAC3C,MAAM,OAAO,OAAO,OAAO,QAAQ,WAAW;EAC9C,MAAM,iBAAiB,OAAO,QAAQ,WAAW;EACjD,KAAK,iBAAiB,OAAO,QAAQ,WAAW;EAChD,KAAK,iBAAiB,OAAO,QAAQ,WAAW;EAChD,MAAM,iBAAiB,OAAO,QAAQ,WAAW;EACjD,QAAQ,iBAAiB,OAAO,QAAQ,WAAW;EACnD,MAAM,iBAAiB,OAAO,QAAQ,WAAW;;WAExC,KAAK;;;;;;;;wBASA,kBAAkB,gBAAgB,yBAChD,QAAQ,YACR,SAAS,eAAe,WACvB,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YCxHH;iBAEK;EACf;EACA,OAAO;EACP;EACA;EACA,UAAU;EACV;EACA;;iBAGe;;EAEf;;EAEA,QAAQ;;;;;;EAMR;;;;;EAKA,aAAa;;EAEb;;EAEA,UAAU;;iBAGK;EACf;EACA,QAAQ;EACR,MAAM,OAAO;;;;;;;;;;;;;qBA+BF,mCAAmC;WAC9B;WACA,QAAQ;mBAEP;EAEL,YAAA;IAAW;IAAgB,QAAQ;;EAK/C,MAAM,OAAO;UASL;UAmBA;UAuCA;;;;;;;;;;;;;;;;;;;qBAgGG,kCAAkC;WAC7B;WACA,QAAQ;mBAEP;mBACA;mBACA;mBACA;mBACA;UAET;UACA;UACA;UACA;UACA;UACA;mBACS;mBACA;UACT;UACA;UACA;UACA;EAEI,YAAA;;IAEV;;IAEA,UAAU;;IAEV;;;;;;IAMA;;;;;IAKA;IACA,QAAQ;;;;;;;IAOR;;;;;;;IAOA,WAAW;;;;;;;MAmBT;;MAKA;;;;;;MASA;EAIJ,MAAM,OAAO;EAmBP,SAAS;UA8CP;UASA;UAuBA;UAcA;UASA;;;;;;EAiBR;;;;;;;;qBAiBW;mBACM;mBAKA;EAEL,YAAA,SAAQ;EAmBpB,QAAQ,iBAAiB,UAAU;EAInC,MAAM,iBAAiB,UAAU;EAIjC,KAAK,iBAAiB,UAAU;EAIhC,IAAI,iBAAiB,UAAU;EAI/B,KAAK,iBAAiB,UAAU;EAIhC,MAAM,iBAAiB,UAAU;EAIjC,SAAS,iBAAiB,UAAU;;;;;;;;;;;EAcpC,MAAM,cAAc,0BAA0B;UAgBtC;;;;;;;;;;;;;wBAiCM,oBAAoB,SAAS,sBAAsB;;;;;;;;;;qBAmCtD,eAAa"}