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
@@ -1,16 +1,16 @@
1
- import { t as __require } from "./chunk-DLSkYcPk.mjs";
2
- import { n as internalLog, r as internalWarn, t as internalError } from "./internal-log-Cm8SOWSV.mjs";
3
- import { i as stringifyForLog } from "./safe-stringify-DJ66tW5I.mjs";
4
- import { t as mergeCoreFields } from "./entry-fields-BJkuPnIg.mjs";
5
- import { t as safeToString } from "./coerce.utils-Cu6IUTgX.mjs";
6
- import * as fs from "node:fs";
7
- import * as path$1 from "node:path";
1
+ import { t as __require } from "./rolldown-runtime-D3PmRqjj.mjs";
2
+ import { n as internalLog, r as internalWarn, t as internalError } from "./internal-log-uCSd1PMc.mjs";
3
+ import { n as protectSecrets, o as urlSecrets, r as scrubError, t as collectSecrets } from "./secret-config-BegMLkYl.mjs";
4
+ import { t as safeToString } from "./coerce.utils-B_rEudCn.mjs";
5
+ import { i as stringifyForLog } from "./safe-stringify-BMRl3EX3.mjs";
6
+ import { t as mergeCoreFields } from "./entry-fields-CGuvT2R0.mjs";
8
7
  import { EventEmitter } from "node:events";
9
8
  import { promisify } from "node:util";
10
9
  import { createGzip, gzip } from "node:zlib";
10
+ import * as fs from "node:fs";
11
+ import * as path$1 from "node:path";
11
12
  import { pipeline } from "node:stream/promises";
12
-
13
- //#region src/utils/sanitize.utils.ts
13
+ // src/utils/sanitize.utils.ts
14
14
  /**
15
15
  * Control-character stripping for text-mode log output.
16
16
  *
@@ -26,9 +26,7 @@ const VISIBLE_ESCAPES = {
26
26
  function stripControlChars(value) {
27
27
  return value.replace(CONTROL_CHARS_RE, (ch) => VISIBLE_ESCAPES[ch] ?? "");
28
28
  }
29
-
30
- //#endregion
31
- //#region src/transports/console.transport.ts
29
+ // src/transports/console.transport.ts
32
30
  /**
33
31
  * Writes log entries to stdout (info/debug/verbose) and stderr (error/warn).
34
32
  *
@@ -38,26 +36,6 @@ function stripControlChars(value) {
38
36
  * transports: { console: { format: 'json' } }
39
37
  */
40
38
  var ConsoleTransport = class ConsoleTransport {
41
- static #_ = this.COLORS = new Map([
42
- ["black", "\x1B[30m"],
43
- ["red", "\x1B[31m"],
44
- ["green", "\x1B[32m"],
45
- ["yellow", "\x1B[33m"],
46
- ["blue", "\x1B[34m"],
47
- ["magenta", "\x1B[35m"],
48
- ["cyan", "\x1B[36m"],
49
- ["white", "\x1B[37m"],
50
- ["gray", "\x1B[90m"],
51
- ["grey", "\x1B[90m"],
52
- ["brightred", "\x1B[91m"],
53
- ["brightgreen", "\x1B[92m"],
54
- ["brightyellow", "\x1B[93m"],
55
- ["brightblue", "\x1B[94m"],
56
- ["brightmagenta", "\x1B[95m"],
57
- ["brightcyan", "\x1B[96m"],
58
- ["brightwhite", "\x1B[97m"],
59
- ["reset", "\x1B[0m"]
60
- ]);
61
39
  static sanitize(value) {
62
40
  return stripControlChars(safeToString(value));
63
41
  }
@@ -126,10 +104,28 @@ var ConsoleTransport = class ConsoleTransport {
126
104
  close() {
127
105
  return Promise.resolve();
128
106
  }
107
+ static #_ = () => this.COLORS = /* @__PURE__ */ new Map([
108
+ ["black", "\x1B[30m"],
109
+ ["red", "\x1B[31m"],
110
+ ["green", "\x1B[32m"],
111
+ ["yellow", "\x1B[33m"],
112
+ ["blue", "\x1B[34m"],
113
+ ["magenta", "\x1B[35m"],
114
+ ["cyan", "\x1B[36m"],
115
+ ["white", "\x1B[37m"],
116
+ ["gray", "\x1B[90m"],
117
+ ["grey", "\x1B[90m"],
118
+ ["brightred", "\x1B[91m"],
119
+ ["brightgreen", "\x1B[92m"],
120
+ ["brightyellow", "\x1B[93m"],
121
+ ["brightblue", "\x1B[94m"],
122
+ ["brightmagenta", "\x1B[95m"],
123
+ ["brightcyan", "\x1B[96m"],
124
+ ["brightwhite", "\x1B[97m"],
125
+ ["reset", "\x1B[0m"]
126
+ ]);
129
127
  };
130
-
131
- //#endregion
132
- //#region src/transports/buffer-cap.ts
128
+ // src/transports/buffer-cap.ts
133
129
  const DEFAULT_BUFFER_CAP = 1e4;
134
130
  const DROP_WARN_INTERVAL_MS$1 = 5e3;
135
131
  /**
@@ -145,8 +141,10 @@ var BufferCap = class {
145
141
  this.dropped = 0;
146
142
  this.lastWarning = 0;
147
143
  let max = fallback;
148
- if (requested !== void 0) if (Number.isInteger(requested) && requested >= 1) max = requested;
149
- else internalWarn(`${name}: maxBufferSize ${String(requested)} is not a positive integer; using ${fallback}`);
144
+ if (requested !== void 0) {
145
+ if (Number.isInteger(requested) && requested >= 1) max = requested;
146
+ else internalWarn(`${name}: maxBufferSize ${String(requested)} is not a positive integer; using ${fallback}`);
147
+ }
150
148
  this.max = Math.max(max, batchSize);
151
149
  }
152
150
  /** Drops the oldest items beyond the cap, in place. */
@@ -168,9 +166,7 @@ var BufferCap = class {
168
166
  this.lastWarning = now;
169
167
  }
170
168
  };
171
-
172
- //#endregion
173
- //#region src/transports/database.transport.ts
169
+ // src/transports/database.transport.ts
174
170
  /**
175
171
  * Validates that a SQL identifier (table/index name) contains only safe characters.
176
172
  * Prevents SQL injection via user-supplied table names.
@@ -193,7 +189,7 @@ const PG_DATA_CLASSES = [
193
189
  "23",
194
190
  "54"
195
191
  ];
196
- const MYSQL_DATA_CODES = new Set([
192
+ const MYSQL_DATA_CODES = /* @__PURE__ */ new Set([
197
193
  "ER_DATA_TOO_LONG",
198
194
  "ER_TRUNCATED_WRONG_VALUE",
199
195
  "ER_TRUNCATED_WRONG_VALUE_FOR_FIELD",
@@ -203,7 +199,7 @@ const MYSQL_DATA_CODES = new Set([
203
199
  "ER_INVALID_JSON_TEXT",
204
200
  "ER_INVALID_CHARACTER_STRING"
205
201
  ]);
206
- const MYSQL_DATA_ERRNOS = new Set([
202
+ const MYSQL_DATA_ERRNOS = /* @__PURE__ */ new Set([
207
203
  1048,
208
204
  1062,
209
205
  1264,
@@ -212,12 +208,12 @@ const MYSQL_DATA_ERRNOS = new Set([
212
208
  1406,
213
209
  3140
214
210
  ]);
215
- const SQLITE_DATA_CODES = new Set([
211
+ const SQLITE_DATA_CODES = /* @__PURE__ */ new Set([
216
212
  "SQLITE_CONSTRAINT",
217
213
  "SQLITE_TOOBIG",
218
214
  "SQLITE_MISMATCH"
219
215
  ]);
220
- const MONGO_DATA_CODES = new Set([
216
+ const MONGO_DATA_CODES = /* @__PURE__ */ new Set([
221
217
  2,
222
218
  121,
223
219
  10334,
@@ -279,6 +275,7 @@ var DatabaseTransport = class {
279
275
  this.name = "database";
280
276
  this.batch = [];
281
277
  this.isConnected = false;
278
+ protectSecrets(this, ["config", "connection"]);
282
279
  this.batchSize = config.batchSize || 100;
283
280
  this.flushInterval = config.flushInterval || 5e3;
284
281
  this.cap = new BufferCap("DatabaseTransport", config.maxBufferSize, this.batchSize);
@@ -286,6 +283,14 @@ var DatabaseTransport = class {
286
283
  if (config.table) validateSqlIdentifier(config.table, "table");
287
284
  this.setupFlushTimer();
288
285
  }
286
+ secretValues() {
287
+ const { connectionString, password } = this.config;
288
+ return [
289
+ connectionString,
290
+ password,
291
+ ...connectionString ? urlSecrets(connectionString) : []
292
+ ];
293
+ }
289
294
  async write(entry) {
290
295
  if (!this.isConnected) await this.connect();
291
296
  this.addToBatch(entry);
@@ -346,6 +351,13 @@ var DatabaseTransport = class {
346
351
  this.cap.enforce(this.batch);
347
352
  }
348
353
  async writeEntries(entries) {
354
+ try {
355
+ await this.writeEntriesUnscrubbed(entries);
356
+ } catch (error) {
357
+ throw scrubError(error, this.secretValues());
358
+ }
359
+ }
360
+ async writeEntriesUnscrubbed(entries) {
349
361
  switch (this.config.type) {
350
362
  case "mongodb":
351
363
  await this.flushToMongoDB(entries);
@@ -424,13 +436,12 @@ var DatabaseTransport = class {
424
436
  case "mysql":
425
437
  await this.connectMySQL();
426
438
  break;
427
- case "sqlite":
428
- await this.connectSQLite();
429
- break;
439
+ case "sqlite": await this.connectSQLite();
430
440
  }
431
441
  this.isConnected = true;
432
442
  } catch (error) {
433
443
  this.isConnected = false;
444
+ scrubError(error, this.secretValues());
434
445
  throw new Error(`Database connection failed: ${error}`, { cause: error });
435
446
  }
436
447
  }
@@ -439,7 +450,8 @@ var DatabaseTransport = class {
439
450
  const { MongoClient } = await import("mongodb").catch(() => {
440
451
  throw new Error("MongoDB driver not installed. Run: npm install mongodb");
441
452
  });
442
- this.connection = new MongoClient(this.config.connectionString || `mongodb://${this.config.host}:${this.config.port}/${this.config.database}`);
453
+ const connectionString = this.config.connectionString || `mongodb://${this.config.host}:${this.config.port}/${this.config.database}`;
454
+ this.connection = new MongoClient(connectionString);
443
455
  await this.connection.connect();
444
456
  await this.connection.db(this.config.database).admin().ping();
445
457
  } catch (error) {
@@ -551,12 +563,13 @@ var DatabaseTransport = class {
551
563
  entry.environment
552
564
  ].map((value, column) => stripNul(column === 3 ? stripJsonNulEscape(value) : value))), POSTGRES_ROWS_PER_INSERT);
553
565
  const insertChunk = async (rows) => {
566
+ const placeholders = rows.map((_, i) => {
567
+ return `(${Array.from({ length: POSTGRES_COLUMNS }, (_unused, c) => `$${i * POSTGRES_COLUMNS + c + 1}`).join(", ")})`;
568
+ }).join(", ");
554
569
  const query = `
555
570
  INSERT INTO ${tableName}
556
571
  (timestamp, level, message, payload, context, trace_id, app_name, environment)
557
- VALUES ${rows.map((_, i) => {
558
- return `(${Array.from({ length: POSTGRES_COLUMNS }, (_unused, c) => `$${i * POSTGRES_COLUMNS + c + 1}`).join(", ")})`;
559
- }).join(", ")}
572
+ VALUES ${placeholders}
560
573
  `;
561
574
  await this.connection.query(query, rows.flat());
562
575
  };
@@ -720,9 +733,7 @@ var DatabaseTransport = class {
720
733
  case "mysql":
721
734
  await this.connection.end();
722
735
  break;
723
- case "sqlite":
724
- await this.connection.close();
725
- break;
736
+ case "sqlite": await this.connection.close();
726
737
  }
727
738
  this.isConnected = false;
728
739
  }
@@ -763,9 +774,7 @@ var DatabaseTransport = class {
763
774
  }
764
775
  }
765
776
  };
766
-
767
- //#endregion
768
- //#region src/transports/analytics.transport.ts
777
+ // src/transports/analytics.transport.ts
769
778
  /**
770
779
  * Thrown by sendBatch() when part of a batch was already delivered. drain()
771
780
  * requeues only `unsent`, so delivered entries are not sent twice.
@@ -789,16 +798,25 @@ var AnalyticsTransport = class {
789
798
  enableEventTracking: true,
790
799
  ...config
791
800
  };
801
+ protectSecrets(this, ["config"]);
792
802
  this.level = config.level;
793
803
  this.batchSize = this.config.batchSize || 50;
794
804
  this.flushInterval = this.config.flushInterval || 1e4;
795
805
  this.cap = new BufferCap(name, config.maxBufferSize, this.batchSize);
796
806
  }
807
+ /** Secret strings to scrub from errors: everything secret-looking in the config. Override to add more. */
808
+ secretValues() {
809
+ return collectSecrets(this.config);
810
+ }
797
811
  async write(entry) {
798
- if (!this.isReady) await this.ensureReady();
799
- if (this.shouldSkipEntry(entry)) return;
800
- if (this.config.batchSize && this.config.batchSize > 1) this.addToBatch(entry);
801
- else await this.sendEntry(entry);
812
+ try {
813
+ if (!this.isReady) await this.ensureReady();
814
+ if (this.shouldSkipEntry(entry)) return;
815
+ if (this.config.batchSize && this.config.batchSize > 1) this.addToBatch(entry);
816
+ else await this.sendEntry(entry);
817
+ } catch (error) {
818
+ throw scrubError(error, this.secretValues());
819
+ }
802
820
  }
803
821
  addToBatch(entry) {
804
822
  this.batch.push(entry);
@@ -836,6 +854,7 @@ var AnalyticsTransport = class {
836
854
  try {
837
855
  await this.sendBatch(entriesToSend);
838
856
  } catch (error) {
857
+ scrubError(error, this.secretValues());
839
858
  internalError(`Analytics transport ${this.name} flush failed`, error);
840
859
  this.batch.unshift(...error instanceof PartialBatchError ? error.unsent : entriesToSend);
841
860
  this.cap.enforce(this.batch);
@@ -897,9 +916,7 @@ var AnalyticsTransport = class {
897
916
  await this.ensureReady();
898
917
  }
899
918
  };
900
-
901
- //#endregion
902
- //#region src/transports/datadog.transport.ts
919
+ // src/transports/datadog.transport.ts
903
920
  const gzipAsync = promisify(gzip);
904
921
  const MAX_LOGS_PER_REQUEST = 1e3;
905
922
  const MAX_LOGS_PAYLOAD_BYTES = 5e6;
@@ -979,6 +996,7 @@ var DataDogTransport = class extends AnalyticsTransport {
979
996
  this.baseUrl = `https://api.${site}`;
980
997
  this.logsUrl = `https://http-intake.logs.${site}`;
981
998
  this.metricsUrl = `https://api.${site}`;
999
+ protectSecrets(this, ["datadogConfig"]);
982
1000
  }
983
1001
  async initialize() {
984
1002
  try {
@@ -1014,9 +1032,9 @@ var DataDogTransport = class extends AnalyticsTransport {
1014
1032
  }));
1015
1033
  const chunks = this.chunkLogs(items);
1016
1034
  for (let i = 0; i < chunks.length; i += 1) {
1017
- const chunk$1 = chunks[i];
1035
+ const chunk = chunks[i];
1018
1036
  try {
1019
- await this.makeLogsRequest("/api/v2/logs", `[${chunk$1.map((item) => item.json).join(",")}]`);
1037
+ await this.makeLogsRequest("/api/v2/logs", `[${chunk.map((item) => item.json).join(",")}]`);
1020
1038
  } catch (error) {
1021
1039
  if (i === 0) throw error;
1022
1040
  const unsent = chunks.slice(i).flatMap((c) => c.map((item) => item.entry));
@@ -1205,9 +1223,7 @@ var DataDogTransport = class extends AnalyticsTransport {
1205
1223
  }
1206
1224
  }
1207
1225
  };
1208
-
1209
- //#endregion
1210
- //#region src/transports/file.transport.ts
1226
+ // src/transports/file.transport.ts
1211
1227
  const appendFile = promisify(fs.appendFile);
1212
1228
  const rename = promisify(fs.rename);
1213
1229
  const unlink = promisify(fs.unlink);
@@ -1470,7 +1486,6 @@ var FileTransport = class {
1470
1486
  csvField(entry.traceId),
1471
1487
  csvField(stringifyForLog(entry.data || {}))
1472
1488
  ].join(",");
1473
- case "text":
1474
1489
  default: return `${entry.timestamp.toISOString()} [${stripControlChars(safeToString(entry.level)).toUpperCase()}] ${stripControlChars(safeToString(entry.message))}${entry.data ? " " + stringifyForLog(entry.data) : ""}`;
1475
1490
  }
1476
1491
  }
@@ -1496,22 +1511,22 @@ var FileTransport = class {
1496
1511
  await this.append(content);
1497
1512
  return;
1498
1513
  }
1499
- let chunk$1 = "";
1514
+ let chunk = "";
1500
1515
  let chunkBytes = 0;
1501
1516
  for (const entry of entries) {
1502
1517
  const line = this.formatEntry(entry) + "\n";
1503
1518
  const lineBytes = Buffer.byteLength(line);
1504
1519
  const used = this.bytesWritten + chunkBytes;
1505
1520
  if (used > 0 && used + lineBytes > this.maxBytes) {
1506
- if (chunk$1) await this.append(chunk$1, chunkBytes);
1507
- chunk$1 = "";
1521
+ if (chunk) await this.append(chunk, chunkBytes);
1522
+ chunk = "";
1508
1523
  chunkBytes = 0;
1509
1524
  await this.rotateFile();
1510
1525
  }
1511
- chunk$1 += line;
1526
+ chunk += line;
1512
1527
  chunkBytes += lineBytes;
1513
1528
  }
1514
- if (chunk$1) await this.append(chunk$1, chunkBytes);
1529
+ if (chunk) await this.append(chunk, chunkBytes);
1515
1530
  }
1516
1531
  async append(content, bytes = Buffer.byteLength(content)) {
1517
1532
  await appendFile(this.currentFilePath, content, { mode: this.fileMode });
@@ -1540,7 +1555,7 @@ var FileTransport = class {
1540
1555
  }
1541
1556
  parseInterval(interval) {
1542
1557
  const match = /^(\d{1,6})([hdwmy])$/i.exec(interval.trim());
1543
- if (!match) return 1440 * 60 * 1e3;
1558
+ if (!match) return 864e5;
1544
1559
  const value = Number.parseInt(match[1] || "1", 10);
1545
1560
  switch ((match[2] || "h").toLowerCase()) {
1546
1561
  case "h": return value * 60 * 60 * 1e3;
@@ -1655,9 +1670,7 @@ var FileTransport = class {
1655
1670
  this.reportDropped(0);
1656
1671
  }
1657
1672
  };
1658
-
1659
- //#endregion
1660
- //#region src/transports/google-analytics.transport.ts
1673
+ // src/transports/google-analytics.transport.ts
1661
1674
  /**
1662
1675
  * Sends log entries as Google Analytics 4 Measurement Protocol events.
1663
1676
  *
@@ -1672,6 +1685,7 @@ var GoogleAnalyticsTransport = class extends AnalyticsTransport {
1672
1685
  this.baseUrl = "https://www.google-analytics.com/mp/collect";
1673
1686
  this.debugUrl = "https://www.google-analytics.com/debug/mp/collect";
1674
1687
  this.gaConfig = config;
1688
+ protectSecrets(this, ["gaConfig"]);
1675
1689
  }
1676
1690
  async initialize() {
1677
1691
  try {
@@ -1759,10 +1773,10 @@ var GoogleAnalyticsTransport = class extends AnalyticsTransport {
1759
1773
  }
1760
1774
  async sendEvents(events) {
1761
1775
  const chunks = this.chunkArray(events, 25);
1762
- for (const chunk$1 of chunks) {
1776
+ for (const chunk of chunks) {
1763
1777
  const payload = {
1764
1778
  client_id: this.gaConfig.clientId || this.generateClientId(),
1765
- events: chunk$1
1779
+ events: chunk
1766
1780
  };
1767
1781
  await this.makeRequest(payload);
1768
1782
  }
@@ -1883,9 +1897,7 @@ var GoogleAnalyticsTransport = class extends AnalyticsTransport {
1883
1897
  await this.sendEvent(event);
1884
1898
  }
1885
1899
  };
1886
-
1887
- //#endregion
1888
- //#region src/transports/mixpanel.transport.ts
1900
+ // src/transports/mixpanel.transport.ts
1889
1901
  /**
1890
1902
  * Sends log entries as Mixpanel events via the Track and Engage HTTP APIs.
1891
1903
  *
@@ -1897,6 +1909,7 @@ var MixpanelTransport = class extends AnalyticsTransport {
1897
1909
  super("mixpanel", config);
1898
1910
  this.baseUrl = "https://api.mixpanel.com";
1899
1911
  this.mixpanelConfig = config;
1912
+ protectSecrets(this, ["mixpanelConfig"]);
1900
1913
  }
1901
1914
  async initialize() {
1902
1915
  try {
@@ -2022,9 +2035,7 @@ var MixpanelTransport = class extends AnalyticsTransport {
2022
2035
  await this.makeRequest("/track", [payload]);
2023
2036
  }
2024
2037
  };
2025
-
2026
- //#endregion
2027
- //#region src/version.ts
2038
+ // src/version.ts
2028
2039
  /**
2029
2040
  * The published version of this package.
2030
2041
  *
@@ -2033,9 +2044,7 @@ var MixpanelTransport = class extends AnalyticsTransport {
2033
2044
  * free of a JSON import that bundlers and consumers would have to resolve.
2034
2045
  */
2035
2046
  const LOGIXIA_VERSION = "1.12.0";
2036
-
2037
- //#endregion
2038
- //#region src/transports/segment.transport.ts
2047
+ // src/transports/segment.transport.ts
2039
2048
  /**
2040
2049
  * Sends log entries as Segment track/identify events via the HTTP Tracking API.
2041
2050
  *
@@ -2053,6 +2062,10 @@ var SegmentTransport = class extends AnalyticsTransport {
2053
2062
  ...config
2054
2063
  };
2055
2064
  this.baseUrl = config.dataPlaneUrl || "https://api.segment.io";
2065
+ protectSecrets(this, ["segmentConfig", "baseUrl"]);
2066
+ }
2067
+ secretValues() {
2068
+ return [...super.secretValues(), Buffer.from(`${this.segmentConfig.writeKey}:`).toString("base64")];
2056
2069
  }
2057
2070
  async initialize() {
2058
2071
  try {
@@ -2120,8 +2133,8 @@ var SegmentTransport = class extends AnalyticsTransport {
2120
2133
  }
2121
2134
  async batchTrack(events) {
2122
2135
  const chunks = this.chunkArray(events, this.segmentConfig.maxBatchSize || 100);
2123
- for (const chunk$1 of chunks) {
2124
- const payload = { batch: chunk$1 };
2136
+ for (const chunk of chunks) {
2137
+ const payload = { batch: chunk };
2125
2138
  await this.makeRequest("/v1/batch", payload);
2126
2139
  }
2127
2140
  }
@@ -2298,9 +2311,7 @@ var SegmentTransport = class extends AnalyticsTransport {
2298
2311
  await this.makeRequest("/v1/track", payload);
2299
2312
  }
2300
2313
  };
2301
-
2302
- //#endregion
2303
- //#region src/transports/transport.manager.ts
2314
+ // src/transports/transport.manager.ts
2304
2315
  function _sleep(ms) {
2305
2316
  return new Promise((resolve) => setTimeout(resolve, ms));
2306
2317
  }
@@ -2495,7 +2506,6 @@ var TransportManager = class extends EventEmitter {
2495
2506
  case "linear":
2496
2507
  wait = baseDelay * (attempt + 1);
2497
2508
  break;
2498
- case "exponential":
2499
2509
  default: wait = Math.min(baseDelay * Math.pow(2, attempt), maxDelay);
2500
2510
  }
2501
2511
  this.emit("transport:retry", transport.name, attempt + 1, maxRetries, wait);
@@ -2649,7 +2659,6 @@ var TransportManager = class extends EventEmitter {
2649
2659
  internalLog("Transport level preferences cleared");
2650
2660
  }
2651
2661
  };
2652
-
2653
- //#endregion
2654
2662
  export { FileTransport as a, DatabaseTransport as c, stripControlChars as d, GoogleAnalyticsTransport as i, BufferCap as l, SegmentTransport as n, DataDogTransport as o, MixpanelTransport as r, AnalyticsTransport as s, TransportManager as t, ConsoleTransport as u };
2655
- //# sourceMappingURL=transport.manager-BiuCAJd2.mjs.map
2663
+
2664
+ //# sourceMappingURL=transport.manager-eZ_EeC00.mjs.map