lograil 0.1.1 → 0.1.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 (122) hide show
  1. package/CHANGELOG.md +105 -1
  2. package/dist/cjs/context/async-context.browser.d.ts +1 -7
  3. package/dist/cjs/context/async-context.browser.d.ts.map +1 -1
  4. package/dist/cjs/context/async-context.browser.js +4 -1
  5. package/dist/cjs/context/async-context.browser.js.map +1 -1
  6. package/dist/cjs/context/context.js +1 -1
  7. package/dist/cjs/context/context.js.map +1 -1
  8. package/dist/cjs/core/logger.d.ts +2 -0
  9. package/dist/cjs/core/logger.d.ts.map +1 -1
  10. package/dist/cjs/core/logger.js +11 -1
  11. package/dist/cjs/core/logger.js.map +1 -1
  12. package/dist/cjs/pipeline/formatter.d.ts.map +1 -1
  13. package/dist/cjs/pipeline/formatter.js +37 -21
  14. package/dist/cjs/pipeline/formatter.js.map +1 -1
  15. package/dist/cjs/pipeline/pipeline.d.ts.map +1 -1
  16. package/dist/cjs/pipeline/pipeline.js +2 -1
  17. package/dist/cjs/pipeline/pipeline.js.map +1 -1
  18. package/dist/cjs/pipeline/sampler.d.ts.map +1 -1
  19. package/dist/cjs/pipeline/sampler.js +5 -0
  20. package/dist/cjs/pipeline/sampler.js.map +1 -1
  21. package/dist/cjs/plugin/otel-trace.d.ts.map +1 -1
  22. package/dist/cjs/plugin/otel-trace.js +4 -7
  23. package/dist/cjs/plugin/otel-trace.js.map +1 -1
  24. package/dist/cjs/runtime/electron-binding.d.ts +4 -0
  25. package/dist/cjs/runtime/electron-binding.d.ts.map +1 -1
  26. package/dist/cjs/runtime/electron-binding.js +24 -2
  27. package/dist/cjs/runtime/electron-binding.js.map +1 -1
  28. package/dist/cjs/runtime/electron.d.ts.map +1 -1
  29. package/dist/cjs/runtime/electron.js +7 -1
  30. package/dist/cjs/runtime/electron.js.map +1 -1
  31. package/dist/cjs/runtime/process-lifecycle.d.ts.map +1 -1
  32. package/dist/cjs/runtime/process-lifecycle.js +11 -0
  33. package/dist/cjs/runtime/process-lifecycle.js.map +1 -1
  34. package/dist/cjs/transport/cluster-ipc.d.ts +2 -0
  35. package/dist/cjs/transport/cluster-ipc.d.ts.map +1 -1
  36. package/dist/cjs/transport/cluster-ipc.js +53 -5
  37. package/dist/cjs/transport/cluster-ipc.js.map +1 -1
  38. package/dist/cjs/transport/console.d.ts.map +1 -1
  39. package/dist/cjs/transport/console.js +10 -9
  40. package/dist/cjs/transport/console.js.map +1 -1
  41. package/dist/cjs/transport/electron-ipc.d.ts +4 -17
  42. package/dist/cjs/transport/electron-ipc.d.ts.map +1 -1
  43. package/dist/cjs/transport/electron-ipc.js +42 -73
  44. package/dist/cjs/transport/electron-ipc.js.map +1 -1
  45. package/dist/cjs/transport/file.d.ts +3 -1
  46. package/dist/cjs/transport/file.d.ts.map +1 -1
  47. package/dist/cjs/transport/file.js +10 -4
  48. package/dist/cjs/transport/file.js.map +1 -1
  49. package/dist/cjs/transport/live.js +1 -1
  50. package/dist/cjs/transport/live.js.map +1 -1
  51. package/dist/cjs/transport/worker-ipc.d.ts +2 -0
  52. package/dist/cjs/transport/worker-ipc.d.ts.map +1 -1
  53. package/dist/cjs/transport/worker-ipc.js +69 -9
  54. package/dist/cjs/transport/worker-ipc.js.map +1 -1
  55. package/dist/cjs/types.d.ts +2 -0
  56. package/dist/cjs/types.d.ts.map +1 -1
  57. package/dist/cjs/types.js.map +1 -1
  58. package/dist/esm/context/async-context.browser.d.ts +1 -7
  59. package/dist/esm/context/async-context.browser.d.ts.map +1 -1
  60. package/dist/esm/context/async-context.browser.js +4 -1
  61. package/dist/esm/context/async-context.browser.js.map +1 -1
  62. package/dist/esm/context/context.js +1 -1
  63. package/dist/esm/context/context.js.map +1 -1
  64. package/dist/esm/core/logger.d.ts +2 -0
  65. package/dist/esm/core/logger.d.ts.map +1 -1
  66. package/dist/esm/core/logger.js +11 -1
  67. package/dist/esm/core/logger.js.map +1 -1
  68. package/dist/esm/pipeline/formatter.d.ts.map +1 -1
  69. package/dist/esm/pipeline/formatter.js +37 -21
  70. package/dist/esm/pipeline/formatter.js.map +1 -1
  71. package/dist/esm/pipeline/pipeline.d.ts.map +1 -1
  72. package/dist/esm/pipeline/pipeline.js +2 -1
  73. package/dist/esm/pipeline/pipeline.js.map +1 -1
  74. package/dist/esm/pipeline/sampler.d.ts.map +1 -1
  75. package/dist/esm/pipeline/sampler.js +5 -0
  76. package/dist/esm/pipeline/sampler.js.map +1 -1
  77. package/dist/esm/plugin/otel-trace.d.ts.map +1 -1
  78. package/dist/esm/plugin/otel-trace.js +4 -7
  79. package/dist/esm/plugin/otel-trace.js.map +1 -1
  80. package/dist/esm/runtime/electron-binding.d.ts +4 -0
  81. package/dist/esm/runtime/electron-binding.d.ts.map +1 -1
  82. package/dist/esm/runtime/electron-binding.js +24 -2
  83. package/dist/esm/runtime/electron-binding.js.map +1 -1
  84. package/dist/esm/runtime/electron.d.ts.map +1 -1
  85. package/dist/esm/runtime/electron.js +7 -1
  86. package/dist/esm/runtime/electron.js.map +1 -1
  87. package/dist/esm/runtime/process-lifecycle.d.ts.map +1 -1
  88. package/dist/esm/runtime/process-lifecycle.js +11 -0
  89. package/dist/esm/runtime/process-lifecycle.js.map +1 -1
  90. package/dist/esm/transport/cluster-ipc.d.ts +2 -0
  91. package/dist/esm/transport/cluster-ipc.d.ts.map +1 -1
  92. package/dist/esm/transport/cluster-ipc.js +52 -5
  93. package/dist/esm/transport/cluster-ipc.js.map +1 -1
  94. package/dist/esm/transport/console.d.ts.map +1 -1
  95. package/dist/esm/transport/console.js +10 -9
  96. package/dist/esm/transport/console.js.map +1 -1
  97. package/dist/esm/transport/electron-ipc.d.ts +4 -17
  98. package/dist/esm/transport/electron-ipc.d.ts.map +1 -1
  99. package/dist/esm/transport/electron-ipc.js +42 -71
  100. package/dist/esm/transport/electron-ipc.js.map +1 -1
  101. package/dist/esm/transport/file.d.ts +3 -1
  102. package/dist/esm/transport/file.d.ts.map +1 -1
  103. package/dist/esm/transport/file.js +10 -4
  104. package/dist/esm/transport/file.js.map +1 -1
  105. package/dist/esm/transport/live.js +1 -1
  106. package/dist/esm/transport/live.js.map +1 -1
  107. package/dist/esm/transport/worker-ipc.d.ts +2 -0
  108. package/dist/esm/transport/worker-ipc.d.ts.map +1 -1
  109. package/dist/esm/transport/worker-ipc.js +68 -9
  110. package/dist/esm/transport/worker-ipc.js.map +1 -1
  111. package/dist/esm/types.d.ts +2 -0
  112. package/dist/esm/types.d.ts.map +1 -1
  113. package/dist/esm/types.js.map +1 -1
  114. package/package.json +12 -3
  115. package/dist/cjs/transport/rotating-file.d.ts +0 -67
  116. package/dist/cjs/transport/rotating-file.d.ts.map +0 -1
  117. package/dist/cjs/transport/rotating-file.js +0 -179
  118. package/dist/cjs/transport/rotating-file.js.map +0 -1
  119. package/dist/esm/transport/rotating-file.d.ts +0 -67
  120. package/dist/esm/transport/rotating-file.d.ts.map +0 -1
  121. package/dist/esm/transport/rotating-file.js +0 -175
  122. package/dist/esm/transport/rotating-file.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"worker-ipc.d.ts","sourceRoot":"","sources":["../../../src/transport/worker-ipc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAKhD,mGAAmG;AACnG,KAAK,aAAa,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAEtE,sEAAsE;AACtE,KAAK,aAAa,GAAG;IACnB,WAAW,EAAE,aAAa,CAAC;CAC5B,CAAC;AAEF,MAAM,WAAW,yBAAyB;IACxC,sBAAsB;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,SAAS;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,OAAO,GAAE,yBAA8B;IAInD,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAWhD,6DAA6D;IAC7D,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAYrC,KAAK,IAAI,IAAI;CAGd;AAED,MAAM,WAAW,qBAAqB;IACpC,+GAA+G;IAC/G,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,EACjC,OAAO,GAAE,qBAAqB,GAAG;IAAE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAAO,GACjF,MAAM,IAAI,CAmEZ"}
1
+ {"version":3,"file":"worker-ipc.d.ts","sourceRoot":"","sources":["../../../src/transport/worker-ipc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIhD,mGAAmG;AACnG,KAAK,aAAa,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AACtE,sEAAsE;AACtE,KAAK,aAAa,GAAG;IACnB,WAAW,EAAE,aAAa,CAAC;CAC5B,CAAC;AACF,MAAM,WAAW,yBAAyB;IACxC,sBAAsB;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AACD;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,SAAS;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACV,OAAO,GAAE,yBAA8B;IAGnD,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAUhD,6DAA6D;IAC7D,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAWrC,KAAK,IAAI,IAAI;CAGd;AACD,MAAM,WAAW,qBAAqB;IACpC,+GAA+G;IAC/G,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAmBD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,EACjC,OAAO,GAAE,qBAAqB,GAAG;IAAE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAAO,GACjF,MAAM,IAAI,CAuGZ;AACD,wCAAwC;AACxC,wBAAgB,yBAAyB,IAAI,IAAI,CAKhD"}
@@ -37,6 +37,19 @@ export class WorkerIpcTransport {
37
37
  /* No-op. Worker lifecycle is managed by the Worker instance itself. */
38
38
  }
39
39
  }
40
+ /**
41
+ * Shared dedup state on globalThis so that multiple bundled copies of this
42
+ * module all share the same registration flag and callbacks.
43
+ */
44
+ const _DEDUP_WORKER = Symbol('lograil:worker-ipc:dedup');
45
+ function _getWorkerState() {
46
+ if (typeof globalThis !== 'undefined' && _DEDUP_WORKER in globalThis)
47
+ return globalThis[_DEDUP_WORKER];
48
+ const s = { registered: false, ingest: null, onLevelCommand: null };
49
+ if (typeof globalThis !== 'undefined')
50
+ globalThis[_DEDUP_WORKER] = s;
51
+ return s;
52
+ }
40
53
  /**
41
54
  * Main-thread helper: listen for worker entries and feed them into the
42
55
  * provided `ingest` callback (typically `logger.ingestEntry`). Level-change
@@ -86,7 +99,7 @@ export function registerWorkerReceiver(ingest, options = {}) {
86
99
  };
87
100
  }
88
101
  if ('onmessage' in worker) {
89
- // Web Worker — dedicated worker onmessage
102
+ // Web Worker — dedicated worker onmessage (single handler, no dedup needed)
90
103
  worker.onmessage = handler;
91
104
  return () => {
92
105
  if (worker.onmessage === handler)
@@ -95,15 +108,61 @@ export function registerWorkerReceiver(ingest, options = {}) {
95
108
  }
96
109
  }
97
110
  // Global self.onmessage — shared worker / fallback
98
- const prevOnMessage = self.onmessage;
99
- self.addEventListener('message', handler);
100
- return () => {
101
- self.removeEventListener('message', handler);
102
- // Restore previous onmessage handler only if it hasn't been replaced
103
- // by another listener in the meantime.
104
- if (self.onmessage === handler || self.onmessage === prevOnMessage) {
105
- self.onmessage = prevOnMessage;
111
+ // Guard against duplicate registration on the global scope.
112
+ // Use globalThis-based state so multiple bundled copies share the same flag.
113
+ const state = _getWorkerState();
114
+ if (state.registered) {
115
+ // Update the callback so the existing handler processes new loggers
116
+ state.ingest = ingest;
117
+ state.onLevelCommand = onLevelCommand ?? null;
118
+ return () => {
119
+ if (state.ingest === ingest) {
120
+ state.ingest = null;
121
+ state.onLevelCommand = null;
122
+ }
123
+ };
124
+ }
125
+ state.registered = true;
126
+ state.ingest = ingest;
127
+ state.onLevelCommand = onLevelCommand ?? null;
128
+ const globalHandler = (event) => {
129
+ const data = event.data;
130
+ if (data &&
131
+ typeof data === 'object' &&
132
+ '__lograilWorker' in data &&
133
+ data.__lograilWorker === true &&
134
+ 'entry' in data) {
135
+ if (state.ingest) {
136
+ state.ingest(data.entry);
137
+ }
138
+ }
139
+ else if (isLogLevelCommand(data) && state.onLevelCommand) {
140
+ state.onLevelCommand(normalizeLevel(data.level));
106
141
  }
107
142
  };
143
+ // Safe access to self — only in environments where self exists
144
+ const targetSelf = typeof self !== 'undefined' ? self : null;
145
+ if (targetSelf) {
146
+ const prevOnMessage = targetSelf.onmessage;
147
+ targetSelf.addEventListener('message', globalHandler);
148
+ return () => {
149
+ state.registered = false;
150
+ state.ingest = null;
151
+ state.onLevelCommand = null;
152
+ targetSelf.removeEventListener('message', globalHandler);
153
+ if (targetSelf.onmessage === globalHandler || targetSelf.onmessage === prevOnMessage) {
154
+ targetSelf.onmessage = prevOnMessage;
155
+ }
156
+ };
157
+ }
158
+ // Fallback for Node environments without self — no-op
159
+ return () => { };
160
+ }
161
+ /** Reset internal state for testing. */
162
+ export function _resetWorkerReceiverState() {
163
+ const state = _getWorkerState();
164
+ state.registered = false;
165
+ state.ingest = null;
166
+ state.onLevelCommand = null;
108
167
  }
109
168
  //# sourceMappingURL=worker-ipc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker-ipc.js","sourceRoot":"","sources":["../../../src/transport/worker-ipc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-ipc.js","sourceRoot":"","sources":["../../../src/transport/worker-ipc.ts"],"names":[],"mappings":"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"}
@@ -63,6 +63,8 @@ export interface LoggerMethods {
63
63
  trace: LogFn;
64
64
  debug: LogFn;
65
65
  info: LogFn;
66
+ /** Alias for {@link info}. */
67
+ log: LogFn;
66
68
  warn: LogFn;
67
69
  error: LogFn;
68
70
  fatal: LogFn;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEnF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AAEnC;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,aAAa,CAO1D,CAAC;AAEF,gBAAgB;AAChB,eAAO,MAAM,eAAe,EAA8B,YAAY,EAAE,CAAC;AAEzE,gBAAgB;AAChB,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAEpE;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,QAAQ;IACvB,gDAAgD;IAChD,KAAK,EAAE,aAAa,CAAC;IACrB,iCAAiC;IACjC,SAAS,EAAE,YAAY,CAAC;IACxB,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC;;oEAEgE;IAChE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAEnE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,KAAK,CAAC;IACZ,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;CACd;AAED,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,aAAa,CAAC;AAEzD,gBAAgB;AAChB,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,aAAa,CASlE;AAED,yEAAyE;AACzE,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,IAAI,CAAC;IACnB,gBAAgB,EAAE,UAAU,CAAC;IAC7B,KAAK,EAAE,YAAY,GAAG,aAAa,CAAC;CACrC;AAED,0EAA0E;AAC1E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAO1E"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEnF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AAEnC;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,aAAa,CAO1D,CAAC;AAEF,gBAAgB;AAChB,eAAO,MAAM,eAAe,EAA8B,YAAY,EAAE,CAAC;AAEzE,gBAAgB;AAChB,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAEpE;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,QAAQ;IACvB,gDAAgD;IAChD,KAAK,EAAE,aAAa,CAAC;IACrB,iCAAiC;IACjC,SAAS,EAAE,YAAY,CAAC;IACxB,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC;;oEAEgE;IAChE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAEnE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,KAAK,CAAC;IACZ,8BAA8B;IAC9B,GAAG,EAAE,KAAK,CAAC;IACX,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;CACd;AAED,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,aAAa,CAAC;AAEzD,gBAAgB;AAChB,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,aAAa,CASlE;AAED,yEAAyE;AACzE,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,IAAI,CAAC;IACnB,gBAAgB,EAAE,UAAU,CAAC;IAC7B,KAAK,EAAE,YAAY,GAAG,aAAa,CAAC;CACrC;AAED,0EAA0E;AAC1E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAO1E"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAwC;IAC7D,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;CACV,CAAC;AAEF,gBAAgB;AAChB,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAmB,CAAC;AAEzE,gBAAgB;AAChB,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,UAAU,CAAC;AAC1D,CAAC;AA2DD,gBAAgB;AAChB,MAAM,UAAU,cAAc,CAAC,KAAoB;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AASD,0EAA0E;AAC1E,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACb,KAAiC,CAAC,YAAY,KAAK,IAAI;QACvD,KAAiC,CAAC,gBAAgB,KAAK,UAAU,CACnE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAwC;IAC7D,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;CACV,CAAC;AAEF,gBAAgB;AAChB,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAmB,CAAC;AAEzE,gBAAgB;AAChB,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,UAAU,CAAC;AAC1D,CAAC;AA6DD,gBAAgB;AAChB,MAAM,UAAU,cAAc,CAAC,KAAoB;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AASD,0EAA0E;AAC1E,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACb,KAAiC,CAAC,YAAY,KAAK,IAAI;QACvD,KAAiC,CAAC,gBAAgB,KAAK,UAAU,CACnE,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,9 +1,17 @@
1
1
  {
2
2
  "name": "lograil",
3
- "version": "0.1.1",
3
+ "version": "0.1.4",
4
4
  "packageManager": "yarn@1.22.22",
5
5
  "description": "High-performance, secure universal logging library for Web, Node.js and Electron — first-class runtime support, extensible to other platforms via plugins.",
6
6
  "author": "Axetroy <axetroy.dev@gmail.com>",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/axetroy/lograil.git"
10
+ },
11
+ "homepage": "https://github.com/axetroy/lograil#readme",
12
+ "bugs": {
13
+ "url": "https://github.com/axetroy/lograil/issues"
14
+ },
7
15
  "type": "module",
8
16
  "main": "./dist/cjs/index.js",
9
17
  "module": "./dist/esm/index.js",
@@ -98,7 +106,7 @@
98
106
  ],
99
107
  "license": "MIT",
100
108
  "peerDependencies": {
101
- "@opentelemetry/api": "^1.0.0"
109
+ "@opentelemetry/api": "^1.9.1"
102
110
  },
103
111
  "peerDependenciesMeta": {
104
112
  "@opentelemetry/api": {
@@ -107,7 +115,8 @@
107
115
  },
108
116
  "devDependencies": {
109
117
  "@eslint/js": "^9.39.5",
110
- "@types/node": "^22.20.1",
118
+ "@opentelemetry/api": "^1.9.1",
119
+ "@types/node": "^26.4.1",
111
120
  "@vitest/coverage-v8": "2.1.9",
112
121
  "electron": "^28.0.0",
113
122
  "eslint": "^9.39.5",
@@ -1,67 +0,0 @@
1
- import type { LogEntry } from '../types.js';
2
- import type { Formatter } from '../pipeline/formatter.js';
3
- import type { Transport } from './transport.js';
4
- export interface RotatingFileTransportOptions {
5
- /** Active (or current-day) log file path, e.g. `/var/log/app.log`. */
6
- path: string;
7
- /** Size mode: rotate once the active file exceeds this size in bytes. */
8
- maxSize?: number;
9
- /**
10
- * Maximum number of files in the rotation set.
11
- * - Size mode: `app.log` + `app.1.log` … (generations). Minimum 2.
12
- * - Daily mode: `{name}.{YYYY-MM-DD}.01..{maxFiles}.log` per day; when the
13
- * index would pass `maxFiles` it wraps back to `01` and clears that file.
14
- * Defaults to 5 (size) or 99 (daily).
15
- */
16
- maxFiles?: number;
17
- /**
18
- * Daily mode (default `true`): one dated file per day, split into
19
- * `01`..`{maxFiles}` indexes. Set `false` for plain size-based generation
20
- * rotation (`app.log` → `app.1.log` → …) without dates.
21
- */
22
- daily?: boolean;
23
- /** Override the clock (mainly for testing). Defaults to `new Date()`. */
24
- now?: () => Date;
25
- formatter?: Formatter;
26
- name?: string;
27
- }
28
- /**
29
- * File transport with rotation, for the Electron main process (Node.js).
30
- *
31
- * Two modes:
32
- * - **Daily** (default): the active file is
33
- * `{name}.{YYYY-MM-DD}.{index}.log`, where `index` runs `01`..`maxFiles`
34
- * (default 99). When it would pass `maxFiles` it wraps back to `01` and
35
- * that file is cleared — a `maxFiles`-file ring buffer per day. When the
36
- * local day changes, the index resets to `01` for the new day.
37
- */
38
- export declare class RotatingFileTransport implements Transport {
39
- readonly name: string;
40
- readonly formatter: Formatter;
41
- private readonly path;
42
- private readonly maxSize;
43
- private readonly maxFiles;
44
- private readonly daily;
45
- private readonly now;
46
- private handle;
47
- private queue;
48
- private size;
49
- private sizeInitialized;
50
- private currentDate;
51
- private index;
52
- constructor(options: RotatingFileTransportOptions);
53
- private activePath;
54
- private ensureHandle;
55
- private ensureSize;
56
- private rotateSize;
57
- /**
58
- * Move to a new index file. When `clear` is true the target file is
59
- * truncated first (used both for normal index advancement and for the
60
- * wrap-to-01, which must clear the stale `01` slot).
61
- */
62
- private rotateToIndex;
63
- write(_entry: LogEntry, formatted: string): void | Promise<void>;
64
- flush(): Promise<void>;
65
- close(): Promise<void>;
66
- }
67
- //# sourceMappingURL=rotating-file.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rotating-file.d.ts","sourceRoot":"","sources":["../../../src/transport/rotating-file.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,WAAW,4BAA4B;IAC3C,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAaD;;;;;;;;;GASG;AACH,qBAAa,qBAAsB,YAAW,SAAS;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,MAAM,CAAiD;IAC/D,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,KAAK,CAAK;gBAEN,OAAO,EAAE,4BAA4B;IAkBjD,OAAO,CAAC,UAAU;YAUJ,YAAY;YAOZ,UAAU;YAWV,UAAU;IAuBxB;;;;OAIG;YACW,aAAa;IAqB3B,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAuC1D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B"}
@@ -1,179 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RotatingFileTransport = void 0;
4
- const promises_1 = require("node:fs/promises");
5
- const node_path_1 = require("node:path");
6
- const formatter_js_1 = require("../pipeline/formatter.js");
7
- const DEFAULT_MAX_SIZE = 10 * 1024 * 1024;
8
- const DEFAULT_MAX_FILES = 5;
9
- const DEFAULT_MAX_FILES_DAILY = 99;
10
- function dateStamp(d) {
11
- const y = d.getFullYear();
12
- const m = String(d.getMonth() + 1).padStart(2, '0');
13
- const day = String(d.getDate()).padStart(2, '0');
14
- return `${y}-${m}-${day}`;
15
- }
16
- /**
17
- * File transport with rotation, for the Electron main process (Node.js).
18
- *
19
- * Two modes:
20
- * - **Daily** (default): the active file is
21
- * `{name}.{YYYY-MM-DD}.{index}.log`, where `index` runs `01`..`maxFiles`
22
- * (default 99). When it would pass `maxFiles` it wraps back to `01` and
23
- * that file is cleared — a `maxFiles`-file ring buffer per day. When the
24
- * local day changes, the index resets to `01` for the new day.
25
- */
26
- class RotatingFileTransport {
27
- constructor(options) {
28
- this.handle = null;
29
- this.queue = Promise.resolve();
30
- this.size = 0;
31
- this.sizeInitialized = false;
32
- this.index = 1;
33
- if (!options.path) {
34
- throw new Error('RotatingFileTransport requires a "path"');
35
- }
36
- this.path = options.path;
37
- this.daily = options.daily ?? true;
38
- this.maxSize = options.maxSize ?? DEFAULT_MAX_SIZE;
39
- this.maxFiles = options.maxFiles ?? (this.daily ? DEFAULT_MAX_FILES_DAILY : DEFAULT_MAX_FILES);
40
- if (!this.daily) {
41
- this.maxFiles = Math.max(2, this.maxFiles);
42
- }
43
- else {
44
- this.maxFiles = Math.max(1, this.maxFiles);
45
- }
46
- this.now = options.now ?? (() => new Date());
47
- this.name = options.name ?? `rotating-file:${options.path}`;
48
- this.formatter = options.formatter ?? (0, formatter_js_1.createJsonFormatter)();
49
- }
50
- activePath() {
51
- if (!this.daily) {
52
- return this.path;
53
- }
54
- const ext = (0, node_path_1.extname)(this.path);
55
- const base = ext ? this.path.slice(0, -ext.length) : this.path;
56
- const idx = String(this.index).padStart(2, '0');
57
- return `${base}.${this.currentDate}.${idx}${ext}`;
58
- }
59
- async ensureHandle() {
60
- if (!this.handle) {
61
- await (0, promises_1.mkdir)((0, node_path_1.dirname)(this.activePath()), { recursive: true });
62
- this.handle = await (0, promises_1.open)(this.activePath(), 'a');
63
- }
64
- }
65
- async ensureSize() {
66
- if (this.sizeInitialized)
67
- return;
68
- try {
69
- const st = await (0, promises_1.stat)(this.activePath());
70
- this.size = st.size;
71
- }
72
- catch {
73
- this.size = 0;
74
- }
75
- this.sizeInitialized = true;
76
- }
77
- async rotateSize() {
78
- if (this.handle) {
79
- await this.handle.close();
80
- this.handle = null;
81
- }
82
- const gens = this.maxFiles - 1;
83
- for (let k = gens; k >= 2; k--) {
84
- try {
85
- await (0, promises_1.rename)(`${this.path}.${k - 1}`, `${this.path}.${k}`);
86
- }
87
- catch {
88
- /* generation missing — skip */
89
- }
90
- }
91
- try {
92
- await (0, promises_1.rename)(this.path, `${this.path}.1`);
93
- }
94
- catch {
95
- /* nothing to rotate yet */
96
- }
97
- this.size = 0;
98
- this.sizeInitialized = true;
99
- await this.ensureHandle();
100
- }
101
- /**
102
- * Move to a new index file. When `clear` is true the target file is
103
- * truncated first (used both for normal index advancement and for the
104
- * wrap-to-01, which must clear the stale `01` slot).
105
- */
106
- async rotateToIndex(idx, clear) {
107
- if (this.handle) {
108
- await this.handle.close();
109
- this.handle = null;
110
- }
111
- this.index = idx;
112
- if (clear) {
113
- try {
114
- await (0, promises_1.truncate)(this.activePath(), 0);
115
- }
116
- catch {
117
- /* file did not exist yet — fine */
118
- }
119
- this.size = 0;
120
- this.sizeInitialized = true;
121
- }
122
- await this.ensureHandle();
123
- if (!clear) {
124
- await this.ensureSize();
125
- }
126
- }
127
- write(_entry, formatted) {
128
- const line = formatted + '\n';
129
- const bytes = Buffer.byteLength(line, 'utf8');
130
- const task = this.queue
131
- .then(async () => {
132
- if (!this.daily) {
133
- await this.ensureSize();
134
- if (this.size + bytes > this.maxSize) {
135
- await this.rotateSize();
136
- }
137
- }
138
- else {
139
- const today = dateStamp(this.now());
140
- if (this.currentDate === undefined || today !== this.currentDate) {
141
- // First open, or a new day: reset to index 01 (resume/append).
142
- this.currentDate = today;
143
- this.index = 1;
144
- await this.rotateToIndex(1, false);
145
- }
146
- else {
147
- await this.ensureSize();
148
- if (this.size + bytes > this.maxSize) {
149
- let next = this.index + 1;
150
- if (next > this.maxFiles) {
151
- next = 1; // wrap and clear the 01 slot
152
- }
153
- await this.rotateToIndex(next, true);
154
- }
155
- }
156
- }
157
- await this.ensureHandle();
158
- await this.handle.write(line);
159
- this.size += bytes;
160
- })
161
- .catch(() => {
162
- /* swallow write errors to avoid crashing the app */
163
- });
164
- this.queue = task;
165
- return task;
166
- }
167
- async flush() {
168
- await this.queue;
169
- }
170
- async close() {
171
- await this.queue;
172
- if (this.handle) {
173
- await this.handle.close();
174
- this.handle = null;
175
- }
176
- }
177
- }
178
- exports.RotatingFileTransport = RotatingFileTransport;
179
- //# sourceMappingURL=rotating-file.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rotating-file.js","sourceRoot":"","sources":["../../../src/transport/rotating-file.ts"],"names":[],"mappings":"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"}
@@ -1,67 +0,0 @@
1
- import type { LogEntry } from '../types.js';
2
- import type { Formatter } from '../pipeline/formatter.js';
3
- import type { Transport } from './transport.js';
4
- export interface RotatingFileTransportOptions {
5
- /** Active (or current-day) log file path, e.g. `/var/log/app.log`. */
6
- path: string;
7
- /** Size mode: rotate once the active file exceeds this size in bytes. */
8
- maxSize?: number;
9
- /**
10
- * Maximum number of files in the rotation set.
11
- * - Size mode: `app.log` + `app.1.log` … (generations). Minimum 2.
12
- * - Daily mode: `{name}.{YYYY-MM-DD}.01..{maxFiles}.log` per day; when the
13
- * index would pass `maxFiles` it wraps back to `01` and clears that file.
14
- * Defaults to 5 (size) or 99 (daily).
15
- */
16
- maxFiles?: number;
17
- /**
18
- * Daily mode (default `true`): one dated file per day, split into
19
- * `01`..`{maxFiles}` indexes. Set `false` for plain size-based generation
20
- * rotation (`app.log` → `app.1.log` → …) without dates.
21
- */
22
- daily?: boolean;
23
- /** Override the clock (mainly for testing). Defaults to `new Date()`. */
24
- now?: () => Date;
25
- formatter?: Formatter;
26
- name?: string;
27
- }
28
- /**
29
- * File transport with rotation, for the Electron main process (Node.js).
30
- *
31
- * Two modes:
32
- * - **Daily** (default): the active file is
33
- * `{name}.{YYYY-MM-DD}.{index}.log`, where `index` runs `01`..`maxFiles`
34
- * (default 99). When it would pass `maxFiles` it wraps back to `01` and
35
- * that file is cleared — a `maxFiles`-file ring buffer per day. When the
36
- * local day changes, the index resets to `01` for the new day.
37
- */
38
- export declare class RotatingFileTransport implements Transport {
39
- readonly name: string;
40
- readonly formatter: Formatter;
41
- private readonly path;
42
- private readonly maxSize;
43
- private readonly maxFiles;
44
- private readonly daily;
45
- private readonly now;
46
- private handle;
47
- private queue;
48
- private size;
49
- private sizeInitialized;
50
- private currentDate;
51
- private index;
52
- constructor(options: RotatingFileTransportOptions);
53
- private activePath;
54
- private ensureHandle;
55
- private ensureSize;
56
- private rotateSize;
57
- /**
58
- * Move to a new index file. When `clear` is true the target file is
59
- * truncated first (used both for normal index advancement and for the
60
- * wrap-to-01, which must clear the stale `01` slot).
61
- */
62
- private rotateToIndex;
63
- write(_entry: LogEntry, formatted: string): void | Promise<void>;
64
- flush(): Promise<void>;
65
- close(): Promise<void>;
66
- }
67
- //# sourceMappingURL=rotating-file.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rotating-file.d.ts","sourceRoot":"","sources":["../../../src/transport/rotating-file.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,WAAW,4BAA4B;IAC3C,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAaD;;;;;;;;;GASG;AACH,qBAAa,qBAAsB,YAAW,SAAS;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,MAAM,CAAiD;IAC/D,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,KAAK,CAAK;gBAEN,OAAO,EAAE,4BAA4B;IAkBjD,OAAO,CAAC,UAAU;YAUJ,YAAY;YAOZ,UAAU;YAWV,UAAU;IAuBxB;;;;OAIG;YACW,aAAa;IAqB3B,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAuC1D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B"}