logixia 2.0.0 → 2.0.6

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 (239) hide show
  1. package/README.md +172 -2597
  2. package/dist/async-context-2mbUKhcl.mjs +132 -0
  3. package/dist/async-context-2mbUKhcl.mjs.map +1 -0
  4. package/dist/async-context-DUFMDYAr.js +148 -0
  5. package/dist/async-context-DUFMDYAr.js.map +1 -0
  6. package/dist/{azure-monitor.transport-CrvfHd9C.js → azure-monitor.transport-Bu4S2I2q.js} +32 -20
  7. package/dist/azure-monitor.transport-Bu4S2I2q.js.map +1 -0
  8. package/dist/{azure-monitor.transport-Cn_3Usvu.d.ts → azure-monitor.transport-Bvf7Xegt.d.ts} +3 -6
  9. package/dist/azure-monitor.transport-Bvf7Xegt.d.ts.map +1 -0
  10. package/dist/{azure-monitor.transport-CHnjVRF-.mjs → azure-monitor.transport-C1RWAumT.mjs} +27 -15
  11. package/dist/azure-monitor.transport-C1RWAumT.mjs.map +1 -0
  12. package/dist/{azure-monitor.transport-D7Da4RAb.d.mts → azure-monitor.transport-CbSHOnNX.d.mts} +3 -6
  13. package/dist/azure-monitor.transport-CbSHOnNX.d.mts.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-BvXLDPlV.mjs} +21 -7
  19. package/dist/batch-buffer-BvXLDPlV.mjs.map +1 -0
  20. package/dist/{batch-buffer-BY-mRWIK.js → batch-buffer-C7Am4Mw-.js} +53 -40
  21. package/dist/batch-buffer-C7Am4Mw-.js.map +1 -0
  22. package/dist/browser.d.mts +47 -27
  23. package/dist/browser.d.mts.map +1 -1
  24. package/dist/browser.d.ts +47 -27
  25. package/dist/browser.d.ts.map +1 -1
  26. package/dist/browser.js +464 -62
  27. package/dist/browser.js.map +1 -1
  28. package/dist/browser.mjs +465 -65
  29. package/dist/browser.mjs.map +1 -1
  30. package/dist/{builder-0gEzRopq.mjs → builder-DhNhvOkt.mjs} +307 -246
  31. package/dist/builder-DhNhvOkt.mjs.map +1 -0
  32. package/dist/{builder-D44QktIo.js → builder-yFvJrz7o.js} +435 -399
  33. package/dist/builder-yFvJrz7o.js.map +1 -0
  34. package/dist/cli/index.js +216 -125
  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-DsEq633o.d.ts → cloudwatch.transport-CQyT6U91.d.ts} +2 -6
  40. package/dist/cloudwatch.transport-CQyT6U91.d.ts.map +1 -0
  41. package/dist/{cloudwatch.transport-BO1ahxw-.js → cloudwatch.transport-Ch1Uae-0.js} +61 -36
  42. package/dist/cloudwatch.transport-Ch1Uae-0.js.map +1 -0
  43. package/dist/{cloudwatch.transport-UlyZFWMn.d.mts → cloudwatch.transport-CjVrI6S4.d.mts} +2 -6
  44. package/dist/cloudwatch.transport-CjVrI6S4.d.mts.map +1 -0
  45. package/dist/{cloudwatch.transport-DZ6ies7g.mjs → cloudwatch.transport-DZqF2xZO.mjs} +54 -28
  46. package/dist/cloudwatch.transport-DZqF2xZO.mjs.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 +15 -69
  52. package/dist/correlation.d.mts.map +1 -1
  53. package/dist/correlation.d.ts +15 -69
  54. package/dist/correlation.d.ts.map +1 -1
  55. package/dist/correlation.js +69 -20
  56. package/dist/correlation.js.map +1 -1
  57. package/dist/correlation.mjs +67 -17
  58. package/dist/correlation.mjs.map +1 -1
  59. package/dist/{entry-fields-BvOLFlJ4.js → entry-fields-BSLkzw18.js} +16 -13
  60. package/dist/entry-fields-BSLkzw18.js.map +1 -0
  61. package/dist/{entry-fields-BJkuPnIg.mjs → entry-fields-J1OBi24o.mjs} +11 -7
  62. package/dist/entry-fields-J1OBi24o.mjs.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-BCIvdFV-.d.ts} +5 -8
  68. package/dist/gcp.transport-BCIvdFV-.d.ts.map +1 -0
  69. package/dist/{gcp.transport-GrJurKo8.d.mts → gcp.transport-D9SdLPwP.d.mts} +5 -8
  70. package/dist/gcp.transport-D9SdLPwP.d.mts.map +1 -0
  71. package/dist/{gcp.transport-DBX5TPIy.mjs → gcp.transport-DVCmnA3b.mjs} +59 -16
  72. package/dist/gcp.transport-DVCmnA3b.mjs.map +1 -0
  73. package/dist/{gcp.transport-CHV8MGgz.js → gcp.transport-Dy2Lf8FI.js} +64 -22
  74. package/dist/gcp.transport-Dy2Lf8FI.js.map +1 -0
  75. package/dist/http-shapes-BnBkJcid.d.mts +32 -0
  76. package/dist/http-shapes-BnBkJcid.d.mts.map +1 -0
  77. package/dist/http-shapes-BnBkJcid.d.ts +32 -0
  78. package/dist/http-shapes-BnBkJcid.d.ts.map +1 -0
  79. package/dist/{index-3mw5gaCw.d.mts → index-BSTtFcQ6.d.mts} +142 -13
  80. package/dist/index-BSTtFcQ6.d.mts.map +1 -0
  81. package/dist/{index-DhIoploR.d.ts → index-CFDGkI8n.d.ts} +142 -13
  82. package/dist/index-CFDGkI8n.d.ts.map +1 -0
  83. package/dist/index.d.mts +114 -217
  84. package/dist/index.d.mts.map +1 -1
  85. package/dist/index.d.ts +113 -216
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/index.js +182 -279
  88. package/dist/index.js.map +1 -1
  89. package/dist/index.mjs +160 -256
  90. package/dist/index.mjs.map +1 -1
  91. package/dist/internal-log-Bg4V1cPg.mjs +170 -0
  92. package/dist/internal-log-Bg4V1cPg.mjs.map +1 -0
  93. package/dist/internal-log-By4Govmu.js +223 -0
  94. package/dist/internal-log-By4Govmu.js.map +1 -0
  95. package/dist/{logitron-logger-UVeN-mQm.d.ts → logitron-logger-D22Yb61K.d.mts} +121 -100
  96. package/dist/logitron-logger-D22Yb61K.d.mts.map +1 -0
  97. package/dist/{logitron-logger-BFDSO8Io.d.mts → logitron-logger-D_MYYrQt.d.ts} +121 -100
  98. package/dist/logitron-logger-D_MYYrQt.d.ts.map +1 -0
  99. package/dist/middleware.d.mts +13 -28
  100. package/dist/middleware.d.mts.map +1 -1
  101. package/dist/middleware.d.ts +13 -28
  102. package/dist/middleware.d.ts.map +1 -1
  103. package/dist/middleware.js +20 -81
  104. package/dist/middleware.js.map +1 -1
  105. package/dist/middleware.mjs +17 -79
  106. package/dist/middleware.mjs.map +1 -1
  107. package/dist/nest.d.mts +37 -48
  108. package/dist/nest.d.mts.map +1 -1
  109. package/dist/nest.d.ts +37 -48
  110. package/dist/nest.d.ts.map +1 -1
  111. package/dist/nest.js +124 -135
  112. package/dist/nest.js.map +1 -1
  113. package/dist/nest.mjs +69 -78
  114. package/dist/nest.mjs.map +1 -1
  115. package/dist/{transport.manager-BiuCAJd2.mjs → otel-Dt5riXuE.mjs} +275 -117
  116. package/dist/otel-Dt5riXuE.mjs.map +1 -0
  117. package/dist/{transport.manager-CXbKKdVE.js → otel-DyeH6DVR.js} +373 -178
  118. package/dist/otel-DyeH6DVR.js.map +1 -0
  119. package/dist/own-property-BWkibepN.js +40 -0
  120. package/dist/own-property-BWkibepN.js.map +1 -0
  121. package/dist/own-property-CjFw9qwZ.mjs +29 -0
  122. package/dist/own-property-CjFw9qwZ.mjs.map +1 -0
  123. package/dist/{trace.utils-CvXgaiQT.mjs → request-trace-BgNykH9M.mjs} +40 -9
  124. package/dist/request-trace-BgNykH9M.mjs.map +1 -0
  125. package/dist/{trace.utils-DpBOLDtq.js → request-trace-ByujsUZk.js} +117 -77
  126. package/dist/request-trace-ByujsUZk.js.map +1 -0
  127. package/dist/rolldown-runtime-D3PmRqjj.mjs +4 -0
  128. package/dist/{safe-stringify-DJ66tW5I.mjs → safe-stringify-B5p5ktFe.mjs} +39 -15
  129. package/dist/safe-stringify-B5p5ktFe.mjs.map +1 -0
  130. package/dist/{safe-stringify-DWo3aZp_.js → safe-stringify-J3sh-7YM.js} +59 -36
  131. package/dist/safe-stringify-J3sh-7YM.js.map +1 -0
  132. package/dist/{search-C4V0OMEn.js → search-CRjhHxe9.js} +319 -92
  133. package/dist/search-CRjhHxe9.js.map +1 -0
  134. package/dist/{search-CNh9uVwR.d.ts → search-DA3ft3X5.d.mts} +5 -22
  135. package/dist/search-DA3ft3X5.d.mts.map +1 -0
  136. package/dist/{search-BFbu_oVn.mjs → search-DAXKE-P9.mjs} +289 -62
  137. package/dist/search-DAXKE-P9.mjs.map +1 -0
  138. package/dist/{search-DXANsQ2n.d.mts → search-DEl3Pe47.d.ts} +5 -22
  139. package/dist/search-DEl3Pe47.d.ts.map +1 -0
  140. package/dist/search.d.mts +2 -4
  141. package/dist/search.d.ts +2 -4
  142. package/dist/search.js +3 -4
  143. package/dist/search.mjs +1 -4
  144. package/dist/secret-config-CmK2wVkr.js +272 -0
  145. package/dist/secret-config-CmK2wVkr.js.map +1 -0
  146. package/dist/secret-config-Dhb6pqTU.mjs +210 -0
  147. package/dist/secret-config-Dhb6pqTU.mjs.map +1 -0
  148. package/dist/{slack.transport-CXjQYOes.d.ts → slack.transport-BDyENuR0.d.mts} +56 -9
  149. package/dist/slack.transport-BDyENuR0.d.mts.map +1 -0
  150. package/dist/{slack.transport-Bzw7sucI.mjs → slack.transport-BTEwsREY.mjs} +263 -31
  151. package/dist/slack.transport-BTEwsREY.mjs.map +1 -0
  152. package/dist/{slack.transport-BZzoXDPn.d.mts → slack.transport-C6E0l4kw.d.ts} +56 -9
  153. package/dist/slack.transport-C6E0l4kw.d.ts.map +1 -0
  154. package/dist/{slack.transport-BfJRouB2.js → slack.transport-UbYvOdKx.js} +286 -42
  155. package/dist/slack.transport-UbYvOdKx.js.map +1 -0
  156. package/dist/testing.d.mts +13 -11
  157. package/dist/testing.d.mts.map +1 -1
  158. package/dist/testing.d.ts +13 -11
  159. package/dist/testing.d.ts.map +1 -1
  160. package/dist/testing.js +41 -7
  161. package/dist/testing.js.map +1 -1
  162. package/dist/testing.mjs +40 -6
  163. package/dist/testing.mjs.map +1 -1
  164. package/dist/{transport.types-CGoHpWQR.d.ts → transport.types-CzJq4IrF.d.mts} +14 -5
  165. package/dist/transport.types-CzJq4IrF.d.mts.map +1 -0
  166. package/dist/{transport.types-BMnurPcc.d.mts → transport.types-CzJq4IrF.d.ts} +14 -5
  167. package/dist/transport.types-CzJq4IrF.d.ts.map +1 -0
  168. package/dist/transports.d.mts +39 -41
  169. package/dist/transports.d.mts.map +1 -1
  170. package/dist/transports.d.ts +39 -41
  171. package/dist/transports.d.ts.map +1 -1
  172. package/dist/transports.js +19 -22
  173. package/dist/transports.mjs +7 -13
  174. package/dist/worker-entry.js +438 -107
  175. package/dist/worker.d.mts +1 -2
  176. package/dist/worker.d.ts +1 -2
  177. package/dist/worker.js +3 -4
  178. package/dist/worker.mjs +1 -4
  179. package/dist/{worker.transport-JvGPog3C.d.mts → worker.transport-B9mCQSM1.d.ts} +7 -6
  180. package/dist/worker.transport-B9mCQSM1.d.ts.map +1 -0
  181. package/dist/{worker.transport-CdzSZJmw.d.ts → worker.transport-Bl8lFRck.d.mts} +7 -6
  182. package/dist/worker.transport-Bl8lFRck.d.mts.map +1 -0
  183. package/dist/{worker.transport-lPxO2MVL.mjs → worker.transport-BmmOKb1-.mjs} +43 -10
  184. package/dist/worker.transport-BmmOKb1-.mjs.map +1 -0
  185. package/dist/{worker.transport-BdPxu3PN.js → worker.transport-DxxbqQCG.js} +48 -15
  186. package/dist/worker.transport-DxxbqQCG.js.map +1 -0
  187. package/package.json +51 -75
  188. package/dist/async-context-BzJrbfQs.mjs +0 -72
  189. package/dist/async-context-BzJrbfQs.mjs.map +0 -1
  190. package/dist/async-context-DyQQYq3I.js +0 -92
  191. package/dist/async-context-DyQQYq3I.js.map +0 -1
  192. package/dist/azure-monitor.transport-CHnjVRF-.mjs.map +0 -1
  193. package/dist/azure-monitor.transport-Cn_3Usvu.d.ts.map +0 -1
  194. package/dist/azure-monitor.transport-CrvfHd9C.js.map +0 -1
  195. package/dist/azure-monitor.transport-D7Da4RAb.d.mts.map +0 -1
  196. package/dist/batch-buffer-BY-mRWIK.js.map +0 -1
  197. package/dist/batch-buffer-PGvSgbmd.mjs.map +0 -1
  198. package/dist/builder-0gEzRopq.mjs.map +0 -1
  199. package/dist/builder-D44QktIo.js.map +0 -1
  200. package/dist/chunk-DLSkYcPk.mjs +0 -7
  201. package/dist/chunk-nOFOJqeH.js +0 -30
  202. package/dist/cloudwatch.transport-BO1ahxw-.js.map +0 -1
  203. package/dist/cloudwatch.transport-DZ6ies7g.mjs.map +0 -1
  204. package/dist/cloudwatch.transport-DsEq633o.d.ts.map +0 -1
  205. package/dist/cloudwatch.transport-UlyZFWMn.d.mts.map +0 -1
  206. package/dist/entry-fields-BJkuPnIg.mjs.map +0 -1
  207. package/dist/entry-fields-BvOLFlJ4.js.map +0 -1
  208. package/dist/gcp.transport-B7oc97sG.d.ts.map +0 -1
  209. package/dist/gcp.transport-CHV8MGgz.js.map +0 -1
  210. package/dist/gcp.transport-DBX5TPIy.mjs.map +0 -1
  211. package/dist/gcp.transport-GrJurKo8.d.mts.map +0 -1
  212. package/dist/index-3mw5gaCw.d.mts.map +0 -1
  213. package/dist/index-DhIoploR.d.ts.map +0 -1
  214. package/dist/internal-log-BUJYMZbE.js +0 -70
  215. package/dist/internal-log-BUJYMZbE.js.map +0 -1
  216. package/dist/internal-log-Cm8SOWSV.mjs +0 -52
  217. package/dist/internal-log-Cm8SOWSV.mjs.map +0 -1
  218. package/dist/logitron-logger-BFDSO8Io.d.mts.map +0 -1
  219. package/dist/logitron-logger-UVeN-mQm.d.ts.map +0 -1
  220. package/dist/safe-stringify-DJ66tW5I.mjs.map +0 -1
  221. package/dist/safe-stringify-DWo3aZp_.js.map +0 -1
  222. package/dist/search-BFbu_oVn.mjs.map +0 -1
  223. package/dist/search-C4V0OMEn.js.map +0 -1
  224. package/dist/search-CNh9uVwR.d.ts.map +0 -1
  225. package/dist/search-DXANsQ2n.d.mts.map +0 -1
  226. package/dist/slack.transport-BZzoXDPn.d.mts.map +0 -1
  227. package/dist/slack.transport-BfJRouB2.js.map +0 -1
  228. package/dist/slack.transport-Bzw7sucI.mjs.map +0 -1
  229. package/dist/slack.transport-CXjQYOes.d.ts.map +0 -1
  230. package/dist/trace.utils-CvXgaiQT.mjs.map +0 -1
  231. package/dist/trace.utils-DpBOLDtq.js.map +0 -1
  232. package/dist/transport.manager-BiuCAJd2.mjs.map +0 -1
  233. package/dist/transport.manager-CXbKKdVE.js.map +0 -1
  234. package/dist/transport.types-BMnurPcc.d.mts.map +0 -1
  235. package/dist/transport.types-CGoHpWQR.d.ts.map +0 -1
  236. package/dist/worker.transport-BdPxu3PN.js.map +0 -1
  237. package/dist/worker.transport-CdzSZJmw.d.ts.map +0 -1
  238. package/dist/worker.transport-JvGPog3C.d.mts.map +0 -1
  239. package/dist/worker.transport-lPxO2MVL.mjs.map +0 -1
package/dist/azure.js CHANGED
@@ -1,6 +1,3 @@
1
- require('./internal-log-BUJYMZbE.js');
2
- require('./safe-stringify-DWo3aZp_.js');
3
- require('./batch-buffer-BY-mRWIK.js');
4
- const require_azure_monitor_transport = require('./azure-monitor.transport-CrvfHd9C.js');
5
-
6
- exports.AzureMonitorTransport = require_azure_monitor_transport.AzureMonitorTransport;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_azure_monitor_transport = require("./azure-monitor.transport-Bu4S2I2q.js");
3
+ exports.AzureMonitorTransport = require_azure_monitor_transport.AzureMonitorTransport;
package/dist/azure.mjs CHANGED
@@ -1,6 +1 @@
1
- import "./internal-log-Cm8SOWSV.mjs";
2
- import "./safe-stringify-DJ66tW5I.mjs";
3
- import "./batch-buffer-PGvSgbmd.mjs";
4
- import { t as AzureMonitorTransport } from "./azure-monitor.transport-CHnjVRF-.mjs";
5
-
6
- export { AzureMonitorTransport };
1
+ export { t as AzureMonitorTransport } from "./azure-monitor.transport-C1RWAumT.mjs";
@@ -1,8 +1,18 @@
1
- import { r as internalWarn, t as internalError } from "./internal-log-Cm8SOWSV.mjs";
1
+ import { r as internalWarn, t as internalError } from "./internal-log-Bg4V1cPg.mjs";
2
+ import { a as scrubbing, r as scrubError } from "./secret-config-Dhb6pqTU.mjs";
2
3
  import * as http from "node:http";
3
4
  import * as https from "node:https";
4
-
5
- //#region src/transports/batch-buffer.ts
5
+ // src/transports/batch-buffer.ts
6
+ /**
7
+ * Shared batching core for the network transports (OTLP, CloudWatch, GCP, Azure).
8
+ *
9
+ * - one send in flight at a time; flush() and close() join it instead of
10
+ * racing it, so close() cannot return while a request is still on the wire
11
+ * - a failed batch goes back to the front in its original order
12
+ * - 4xx responses other than 429 drop the batch with a warning instead of
13
+ * retrying a request the server will never accept
14
+ * - the buffer is capped; when full the oldest entries are dropped
15
+ */
6
16
  const DEFAULT_REQUEST_TIMEOUT_MS = 1e4;
7
17
  const DEFAULT_MAX_BUFFER_SIZE = 1e4;
8
18
  const WARN_INTERVAL_MS = 1e4;
@@ -22,6 +32,9 @@ function isPermanentHttpError(err) {
22
32
  }
23
33
  /** One request with a hard timeout. Rejects with HttpError on any non-2xx status. */
24
34
  function httpRequest(opts) {
35
+ return sendRequest(opts).catch(scrubbing(opts.secrets ?? (() => [])));
36
+ }
37
+ function sendRequest(opts) {
25
38
  const { url, method = "POST", headers = {}, body, timeoutMs, label } = opts;
26
39
  const transport = url.protocol === "http:" ? http : https;
27
40
  return new Promise((resolve, reject) => {
@@ -99,6 +112,8 @@ var BatchBuffer = class {
99
112
  await this.opts.send(batch);
100
113
  this.failures = 0;
101
114
  } catch (err) {
115
+ var _this$opts$secrets, _this$opts;
116
+ scrubError(err, ((_this$opts$secrets = (_this$opts = this.opts).secrets) === null || _this$opts$secrets === void 0 ? void 0 : _this$opts$secrets.call(_this$opts)) ?? []);
102
117
  if (!(this.opts.shouldRetry ? this.opts.shouldRetry(err) : !isPermanentHttpError(err))) {
103
118
  internalWarn(`${this.opts.name}: dropping ${batch.length} entr${batch.length === 1 ? "y" : "ies"} the server rejected (${err instanceof Error ? err.message : String(err)})`);
104
119
  continue;
@@ -113,7 +128,7 @@ var BatchBuffer = class {
113
128
  }
114
129
  }
115
130
  enforceCap() {
116
- const max = this.opts.maxBufferSize ?? DEFAULT_MAX_BUFFER_SIZE;
131
+ const max = this.opts.maxBufferSize ?? 1e4;
117
132
  const excess = this.items.length - max;
118
133
  if (excess <= 0) return;
119
134
  this.items.splice(0, excess);
@@ -126,7 +141,6 @@ var BatchBuffer = class {
126
141
  }
127
142
  }
128
143
  };
129
-
130
- //#endregion
131
144
  export { httpRequest as a, HttpError as i, DEFAULT_MAX_BUFFER_SIZE as n, isPermanentHttpError as o, DEFAULT_REQUEST_TIMEOUT_MS as r, BatchBuffer as t };
132
- //# sourceMappingURL=batch-buffer-PGvSgbmd.mjs.map
145
+
146
+ //# sourceMappingURL=batch-buffer-BvXLDPlV.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-buffer-BvXLDPlV.mjs","names":[],"sources":["../src/transports/batch-buffer.ts"],"sourcesContent":["/**\n * Shared batching core for the network transports (OTLP, CloudWatch, GCP, Azure).\n *\n * - one send in flight at a time; flush() and close() join it instead of\n * racing it, so close() cannot return while a request is still on the wire\n * - a failed batch goes back to the front in its original order\n * - 4xx responses other than 429 drop the batch with a warning instead of\n * retrying a request the server will never accept\n * - the buffer is capped; when full the oldest entries are dropped\n */\n\nimport * as http from 'node:http';\nimport * as https from 'node:https';\n\nimport { internalError, internalWarn } from '../utils/internal-log';\nimport { scrubbing, scrubError } from './secret-config';\n\nexport const DEFAULT_REQUEST_TIMEOUT_MS = 10_000;\nexport const DEFAULT_MAX_BUFFER_SIZE = 10_000;\nconst WARN_INTERVAL_MS = 10_000;\nconst MAX_ERROR_BODY = 500;\nconst MAX_BACKOFF_MS = 30_000;\n\nexport class HttpError extends Error {\n constructor(\n public readonly status: number,\n public readonly body: string,\n label: string\n ) {\n const detail = body ? `: ${body.slice(0, MAX_ERROR_BODY)}` : '';\n super(`${label} returned HTTP ${status}${detail}`);\n this.name = 'HttpError';\n }\n}\n\nexport function isPermanentHttpError(err: unknown): boolean {\n return err instanceof HttpError && err.status >= 400 && err.status < 500 && err.status !== 429;\n}\n\nexport interface HttpRequestOptions {\n url: URL;\n method?: string;\n headers?: Record<string, string>;\n body?: string;\n timeoutMs: number;\n label: string;\n /** Secret values to scrub from any error this request raises. URL userinfo is always scrubbed. */\n secrets?: () => (string | undefined)[];\n}\n\nexport interface HttpResult {\n status: number;\n body: string;\n}\n\n/** One request with a hard timeout. Rejects with HttpError on any non-2xx status. */\nexport function httpRequest(opts: HttpRequestOptions): Promise<HttpResult> {\n return sendRequest(opts).catch(scrubbing(opts.secrets ?? (() => [])));\n}\n\nfunction sendRequest(opts: HttpRequestOptions): Promise<HttpResult> {\n const { url, method = 'POST', headers = {}, body, timeoutMs, label } = opts;\n const transport = url.protocol === 'http:' ? http : https;\n return new Promise<HttpResult>((resolve, reject) => {\n const req = transport.request(\n {\n protocol: url.protocol,\n hostname: url.hostname,\n port: url.port || undefined,\n path: `${url.pathname}${url.search}`,\n method,\n headers:\n body === undefined ? headers : { ...headers, 'Content-Length': Buffer.byteLength(body) },\n },\n (res) => {\n let raw = '';\n res.on('data', (c: Buffer) => (raw += c.toString()));\n res.on('end', () => {\n const status = res.statusCode ?? 0;\n if (status >= 200 && status < 300) resolve({ status, body: raw });\n else reject(new HttpError(status, raw, label));\n });\n res.on('error', reject);\n }\n );\n req.setTimeout(timeoutMs, () => {\n req.destroy(new Error(`${label} timed out after ${timeoutMs}ms`));\n });\n req.on('error', reject);\n if (body !== undefined) req.write(body);\n req.end();\n });\n}\n\nexport interface BatchBufferOptions<T> {\n name: string;\n batchSize: number;\n maxBufferSize?: number;\n send: (items: T[]) => Promise<void>;\n /** Secret values to scrub from send errors before they are stored or logged. */\n secrets?: () => (string | undefined)[];\n /** Overrides the default drop-on-4xx rule. Return true to keep and retry the batch. */\n shouldRetry?: (err: unknown) => boolean;\n}\n\nexport class BatchBuffer<T> {\n private items: T[] = [];\n private inFlight: Promise<void> | undefined;\n private dropped = 0;\n private lastDropWarn = 0;\n private failures = 0;\n private retryAfter = 0;\n\n constructor(private readonly opts: BatchBufferOptions<T>) {}\n\n get length(): number {\n return this.items.length;\n }\n\n get batchSize(): number {\n return this.opts.batchSize;\n }\n\n push(item: T): void {\n this.items.push(item);\n this.enforceCap();\n }\n\n /** Threshold flush for write(): skipped while a send is running or the endpoint is backing off. */\n flushIfFull(): void {\n if (this.items.length < this.opts.batchSize || this.inFlight || Date.now() < this.retryAfter) {\n return;\n }\n this.flush().catch(() => {});\n }\n\n flush(): Promise<void> {\n if (!this.inFlight) {\n this.inFlight = this.drain().finally(() => {\n this.inFlight = undefined;\n });\n }\n return this.inFlight;\n }\n\n /** Flush up to `attempts` times, then report whatever is still undelivered. */\n async close(attempts = 3): Promise<void> {\n await this.inFlight;\n for (let i = 0; i < attempts && this.items.length > 0; i += 1) {\n await this.flush();\n }\n if (this.items.length > 0) {\n internalError(\n `${this.opts.name} closing with ${this.items.length} undelivered entr${this.items.length === 1 ? 'y' : 'ies'}`\n );\n }\n }\n\n private async drain(): Promise<void> {\n while (this.items.length > 0) {\n const batch = this.items.splice(0, this.opts.batchSize);\n try {\n await this.opts.send(batch);\n this.failures = 0;\n } catch (err) {\n scrubError(err, this.opts.secrets?.() ?? []);\n const retry = this.opts.shouldRetry\n ? this.opts.shouldRetry(err)\n : !isPermanentHttpError(err);\n if (!retry) {\n internalWarn(\n `${this.opts.name}: dropping ${batch.length} entr${batch.length === 1 ? 'y' : 'ies'} the server rejected (${err instanceof Error ? err.message : String(err)})`\n );\n continue;\n }\n internalError(`${this.opts.name} flush error`, err);\n this.items.unshift(...batch);\n this.enforceCap();\n this.failures += 1;\n this.retryAfter = Date.now() + Math.min(MAX_BACKOFF_MS, 1000 * 2 ** (this.failures - 1));\n return;\n }\n }\n }\n\n private enforceCap(): void {\n const max = this.opts.maxBufferSize ?? DEFAULT_MAX_BUFFER_SIZE;\n const excess = this.items.length - max;\n if (excess <= 0) return;\n this.items.splice(0, excess);\n this.dropped += excess;\n const now = Date.now();\n if (now - this.lastDropWarn >= WARN_INTERVAL_MS) {\n internalWarn(\n `${this.opts.name}: buffer full (${max}), dropped ${this.dropped} oldest entr${this.dropped === 1 ? 'y' : 'ies'}`\n );\n this.dropped = 0;\n this.lastDropWarn = now;\n }\n }\n}\n"],"mappings":"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"}
@@ -1,11 +1,20 @@
1
- const require_chunk = require('./chunk-nOFOJqeH.js');
2
- const require_internal_log = require('./internal-log-BUJYMZbE.js');
1
+ const require_secret_config = require("./secret-config-CmK2wVkr.js");
2
+ const require_internal_log = require("./internal-log-By4Govmu.js");
3
3
  let node_http = require("node:http");
4
- node_http = require_chunk.__toESM(node_http);
4
+ node_http = require_secret_config.__toESM(node_http);
5
5
  let node_https = require("node:https");
6
- node_https = require_chunk.__toESM(node_https);
7
-
8
- //#region src/transports/batch-buffer.ts
6
+ node_https = require_secret_config.__toESM(node_https);
7
+ // src/transports/batch-buffer.ts
8
+ /**
9
+ * Shared batching core for the network transports (OTLP, CloudWatch, GCP, Azure).
10
+ *
11
+ * - one send in flight at a time; flush() and close() join it instead of
12
+ * racing it, so close() cannot return while a request is still on the wire
13
+ * - a failed batch goes back to the front in its original order
14
+ * - 4xx responses other than 429 drop the batch with a warning instead of
15
+ * retrying a request the server will never accept
16
+ * - the buffer is capped; when full the oldest entries are dropped
17
+ */
9
18
  const DEFAULT_REQUEST_TIMEOUT_MS = 1e4;
10
19
  const DEFAULT_MAX_BUFFER_SIZE = 1e4;
11
20
  const WARN_INTERVAL_MS = 1e4;
@@ -25,6 +34,9 @@ function isPermanentHttpError(err) {
25
34
  }
26
35
  /** One request with a hard timeout. Rejects with HttpError on any non-2xx status. */
27
36
  function httpRequest(opts) {
37
+ return sendRequest(opts).catch(require_secret_config.scrubbing(opts.secrets ?? (() => [])));
38
+ }
39
+ function sendRequest(opts) {
28
40
  const { url, method = "POST", headers = {}, body, timeoutMs, label } = opts;
29
41
  const transport = url.protocol === "http:" ? node_http : node_https;
30
42
  return new Promise((resolve, reject) => {
@@ -102,6 +114,8 @@ var BatchBuffer = class {
102
114
  await this.opts.send(batch);
103
115
  this.failures = 0;
104
116
  } catch (err) {
117
+ var _this$opts$secrets, _this$opts;
118
+ require_secret_config.scrubError(err, ((_this$opts$secrets = (_this$opts = this.opts).secrets) === null || _this$opts$secrets === void 0 ? void 0 : _this$opts$secrets.call(_this$opts)) ?? []);
105
119
  if (!(this.opts.shouldRetry ? this.opts.shouldRetry(err) : !isPermanentHttpError(err))) {
106
120
  require_internal_log.internalWarn(`${this.opts.name}: dropping ${batch.length} entr${batch.length === 1 ? "y" : "ies"} the server rejected (${err instanceof Error ? err.message : String(err)})`);
107
121
  continue;
@@ -116,7 +130,7 @@ var BatchBuffer = class {
116
130
  }
117
131
  }
118
132
  enforceCap() {
119
- const max = this.opts.maxBufferSize ?? DEFAULT_MAX_BUFFER_SIZE;
133
+ const max = this.opts.maxBufferSize ?? 1e4;
120
134
  const excess = this.items.length - max;
121
135
  if (excess <= 0) return;
122
136
  this.items.splice(0, excess);
@@ -129,42 +143,41 @@ var BatchBuffer = class {
129
143
  }
130
144
  }
131
145
  };
132
-
133
- //#endregion
134
- Object.defineProperty(exports, 'BatchBuffer', {
135
- enumerable: true,
136
- get: function () {
137
- return BatchBuffer;
138
- }
146
+ Object.defineProperty(exports, "BatchBuffer", {
147
+ enumerable: true,
148
+ get: function() {
149
+ return BatchBuffer;
150
+ }
139
151
  });
140
- Object.defineProperty(exports, 'DEFAULT_MAX_BUFFER_SIZE', {
141
- enumerable: true,
142
- get: function () {
143
- return DEFAULT_MAX_BUFFER_SIZE;
144
- }
152
+ Object.defineProperty(exports, "DEFAULT_MAX_BUFFER_SIZE", {
153
+ enumerable: true,
154
+ get: function() {
155
+ return DEFAULT_MAX_BUFFER_SIZE;
156
+ }
145
157
  });
146
- Object.defineProperty(exports, 'DEFAULT_REQUEST_TIMEOUT_MS', {
147
- enumerable: true,
148
- get: function () {
149
- return DEFAULT_REQUEST_TIMEOUT_MS;
150
- }
158
+ Object.defineProperty(exports, "DEFAULT_REQUEST_TIMEOUT_MS", {
159
+ enumerable: true,
160
+ get: function() {
161
+ return DEFAULT_REQUEST_TIMEOUT_MS;
162
+ }
151
163
  });
152
- Object.defineProperty(exports, 'HttpError', {
153
- enumerable: true,
154
- get: function () {
155
- return HttpError;
156
- }
164
+ Object.defineProperty(exports, "HttpError", {
165
+ enumerable: true,
166
+ get: function() {
167
+ return HttpError;
168
+ }
157
169
  });
158
- Object.defineProperty(exports, 'httpRequest', {
159
- enumerable: true,
160
- get: function () {
161
- return httpRequest;
162
- }
170
+ Object.defineProperty(exports, "httpRequest", {
171
+ enumerable: true,
172
+ get: function() {
173
+ return httpRequest;
174
+ }
163
175
  });
164
- Object.defineProperty(exports, 'isPermanentHttpError', {
165
- enumerable: true,
166
- get: function () {
167
- return isPermanentHttpError;
168
- }
176
+ Object.defineProperty(exports, "isPermanentHttpError", {
177
+ enumerable: true,
178
+ get: function() {
179
+ return isPermanentHttpError;
180
+ }
169
181
  });
170
- //# sourceMappingURL=batch-buffer-BY-mRWIK.js.map
182
+
183
+ //# sourceMappingURL=batch-buffer-C7Am4Mw-.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-buffer-C7Am4Mw-.js","names":["scrubbing","http","https"],"sources":["../src/transports/batch-buffer.ts"],"sourcesContent":["/**\n * Shared batching core for the network transports (OTLP, CloudWatch, GCP, Azure).\n *\n * - one send in flight at a time; flush() and close() join it instead of\n * racing it, so close() cannot return while a request is still on the wire\n * - a failed batch goes back to the front in its original order\n * - 4xx responses other than 429 drop the batch with a warning instead of\n * retrying a request the server will never accept\n * - the buffer is capped; when full the oldest entries are dropped\n */\n\nimport * as http from 'node:http';\nimport * as https from 'node:https';\n\nimport { internalError, internalWarn } from '../utils/internal-log';\nimport { scrubbing, scrubError } from './secret-config';\n\nexport const DEFAULT_REQUEST_TIMEOUT_MS = 10_000;\nexport const DEFAULT_MAX_BUFFER_SIZE = 10_000;\nconst WARN_INTERVAL_MS = 10_000;\nconst MAX_ERROR_BODY = 500;\nconst MAX_BACKOFF_MS = 30_000;\n\nexport class HttpError extends Error {\n constructor(\n public readonly status: number,\n public readonly body: string,\n label: string\n ) {\n const detail = body ? `: ${body.slice(0, MAX_ERROR_BODY)}` : '';\n super(`${label} returned HTTP ${status}${detail}`);\n this.name = 'HttpError';\n }\n}\n\nexport function isPermanentHttpError(err: unknown): boolean {\n return err instanceof HttpError && err.status >= 400 && err.status < 500 && err.status !== 429;\n}\n\nexport interface HttpRequestOptions {\n url: URL;\n method?: string;\n headers?: Record<string, string>;\n body?: string;\n timeoutMs: number;\n label: string;\n /** Secret values to scrub from any error this request raises. URL userinfo is always scrubbed. */\n secrets?: () => (string | undefined)[];\n}\n\nexport interface HttpResult {\n status: number;\n body: string;\n}\n\n/** One request with a hard timeout. Rejects with HttpError on any non-2xx status. */\nexport function httpRequest(opts: HttpRequestOptions): Promise<HttpResult> {\n return sendRequest(opts).catch(scrubbing(opts.secrets ?? (() => [])));\n}\n\nfunction sendRequest(opts: HttpRequestOptions): Promise<HttpResult> {\n const { url, method = 'POST', headers = {}, body, timeoutMs, label } = opts;\n const transport = url.protocol === 'http:' ? http : https;\n return new Promise<HttpResult>((resolve, reject) => {\n const req = transport.request(\n {\n protocol: url.protocol,\n hostname: url.hostname,\n port: url.port || undefined,\n path: `${url.pathname}${url.search}`,\n method,\n headers:\n body === undefined ? headers : { ...headers, 'Content-Length': Buffer.byteLength(body) },\n },\n (res) => {\n let raw = '';\n res.on('data', (c: Buffer) => (raw += c.toString()));\n res.on('end', () => {\n const status = res.statusCode ?? 0;\n if (status >= 200 && status < 300) resolve({ status, body: raw });\n else reject(new HttpError(status, raw, label));\n });\n res.on('error', reject);\n }\n );\n req.setTimeout(timeoutMs, () => {\n req.destroy(new Error(`${label} timed out after ${timeoutMs}ms`));\n });\n req.on('error', reject);\n if (body !== undefined) req.write(body);\n req.end();\n });\n}\n\nexport interface BatchBufferOptions<T> {\n name: string;\n batchSize: number;\n maxBufferSize?: number;\n send: (items: T[]) => Promise<void>;\n /** Secret values to scrub from send errors before they are stored or logged. */\n secrets?: () => (string | undefined)[];\n /** Overrides the default drop-on-4xx rule. Return true to keep and retry the batch. */\n shouldRetry?: (err: unknown) => boolean;\n}\n\nexport class BatchBuffer<T> {\n private items: T[] = [];\n private inFlight: Promise<void> | undefined;\n private dropped = 0;\n private lastDropWarn = 0;\n private failures = 0;\n private retryAfter = 0;\n\n constructor(private readonly opts: BatchBufferOptions<T>) {}\n\n get length(): number {\n return this.items.length;\n }\n\n get batchSize(): number {\n return this.opts.batchSize;\n }\n\n push(item: T): void {\n this.items.push(item);\n this.enforceCap();\n }\n\n /** Threshold flush for write(): skipped while a send is running or the endpoint is backing off. */\n flushIfFull(): void {\n if (this.items.length < this.opts.batchSize || this.inFlight || Date.now() < this.retryAfter) {\n return;\n }\n this.flush().catch(() => {});\n }\n\n flush(): Promise<void> {\n if (!this.inFlight) {\n this.inFlight = this.drain().finally(() => {\n this.inFlight = undefined;\n });\n }\n return this.inFlight;\n }\n\n /** Flush up to `attempts` times, then report whatever is still undelivered. */\n async close(attempts = 3): Promise<void> {\n await this.inFlight;\n for (let i = 0; i < attempts && this.items.length > 0; i += 1) {\n await this.flush();\n }\n if (this.items.length > 0) {\n internalError(\n `${this.opts.name} closing with ${this.items.length} undelivered entr${this.items.length === 1 ? 'y' : 'ies'}`\n );\n }\n }\n\n private async drain(): Promise<void> {\n while (this.items.length > 0) {\n const batch = this.items.splice(0, this.opts.batchSize);\n try {\n await this.opts.send(batch);\n this.failures = 0;\n } catch (err) {\n scrubError(err, this.opts.secrets?.() ?? []);\n const retry = this.opts.shouldRetry\n ? this.opts.shouldRetry(err)\n : !isPermanentHttpError(err);\n if (!retry) {\n internalWarn(\n `${this.opts.name}: dropping ${batch.length} entr${batch.length === 1 ? 'y' : 'ies'} the server rejected (${err instanceof Error ? err.message : String(err)})`\n );\n continue;\n }\n internalError(`${this.opts.name} flush error`, err);\n this.items.unshift(...batch);\n this.enforceCap();\n this.failures += 1;\n this.retryAfter = Date.now() + Math.min(MAX_BACKOFF_MS, 1000 * 2 ** (this.failures - 1));\n return;\n }\n }\n }\n\n private enforceCap(): void {\n const max = this.opts.maxBufferSize ?? DEFAULT_MAX_BUFFER_SIZE;\n const excess = this.items.length - max;\n if (excess <= 0) return;\n this.items.splice(0, excess);\n this.dropped += excess;\n const now = Date.now();\n if (now - this.lastDropWarn >= WARN_INTERVAL_MS) {\n internalWarn(\n `${this.opts.name}: buffer full (${max}), dropped ${this.dropped} oldest entr${this.dropped === 1 ? 'y' : 'ies'}`\n );\n this.dropped = 0;\n this.lastDropWarn = now;\n }\n }\n}\n"],"mappings":"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"}
@@ -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,8 +156,8 @@ 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 };
163
- interface CompiledSchema<TFields extends Record<string, unknown>> {
159
+ type LogSchema<TFields extends object> = { [K in keyof TFields]: LogFieldDef; };
160
+ interface CompiledSchema<TFields extends object> {
164
161
  readonly fields: LogSchema<TFields>;
165
162
  /**
166
163
  * Validate a payload against the schema.
@@ -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 object>(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>;
@@ -191,7 +188,7 @@ interface LoggerLike {
191
188
  * The `error` overload still accepts a plain `Error` object as the first arg
192
189
  * (with optional `TFields` data) so the typed logger remains a drop-in replacement.
193
190
  */
194
- interface TypedLogger<TFields extends Record<string, unknown>> {
191
+ interface TypedLogger<TFields extends object> {
195
192
  error(error: Error, data?: Partial<TFields>): Promise<void>;
196
193
  error(message: string, data?: Partial<TFields>): Promise<void>;
197
194
  warn(message: string, data?: Partial<TFields>): 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 object>(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;
@@ -337,6 +332,12 @@ declare class BrowserRemoteTransport implements IBrowserTransport {
337
332
  private lastFlushError;
338
333
  private timer;
339
334
  private droppedEntries;
335
+ private readonly silent;
336
+ private readonly onError;
337
+ private reporting;
338
+ private failureReported;
339
+ private lastReportAt;
340
+ private lastRecoveryAt;
340
341
  constructor(options: {
341
342
  /** Endpoint URL to POST batched log entries to. */
342
343
  url: string;
@@ -356,6 +357,20 @@ declare class BrowserRemoteTransport implements IBrowserTransport {
356
357
  */
357
358
  maxBufferSize?: number;
358
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;
359
374
  });
360
375
  /**
361
376
  * Number of entries dropped without delivery — either because the buffer
@@ -363,14 +378,20 @@ declare class BrowserRemoteTransport implements IBrowserTransport {
363
378
  * non-retryable HTTP status (a 4xx other than 429).
364
379
  */
365
380
  get dropped(): number;
366
- /** Number of flush attempts that failed with a network error and were re-buffered. */
381
+ /** Number of flush attempts that failed (network error or non-OK HTTP status). */
367
382
  get failedFlushes(): number;
368
- /** The most recent network error from a failed flush, if any. */
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
+ */
369
388
  get lastError(): unknown;
370
389
  write(entry: BrowserLogEntry): void;
371
390
  flush(): Promise<void>;
372
391
  private send;
373
392
  private recordFailure;
393
+ private reportRecovery;
394
+ private guarded;
374
395
  private scheduleFlush;
375
396
  /**
376
397
  * Stop the flush timer and flush remaining entries. Without the final flush,
@@ -385,7 +406,7 @@ declare class BrowserRemoteTransport implements IBrowserTransport {
385
406
  * Unlike the Node.js `LogixiaLogger`, this implementation has **zero**
386
407
  * Node.js dependencies. It can be bundled for any runtime.
387
408
  */
388
- declare class BrowserLogger {
409
+ export declare class BrowserLogger {
389
410
  private readonly config;
390
411
  private readonly transports;
391
412
  constructor(config?: BrowserLoggerConfig);
@@ -420,7 +441,7 @@ declare class BrowserLogger {
420
441
  * logger.info('Cart updated', { itemCount: 3, total: 49.99 });
421
442
  * ```
422
443
  */
423
- declare function createBrowserLogger(config?: BrowserLoggerConfig): BrowserLogger;
444
+ export declare function createBrowserLogger(config?: BrowserLoggerConfig): BrowserLogger;
424
445
  /**
425
446
  * Default browser logger instance (singleton, console transport, info level).
426
447
  *
@@ -430,7 +451,6 @@ declare function createBrowserLogger(config?: BrowserLoggerConfig): BrowserLogge
430
451
  * browserLogger.info('Hello from browser');
431
452
  * ```
432
453
  */
433
- declare const browserLogger: BrowserLogger;
434
- //#endregion
435
- 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 };
436
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;;;;;;;;;;;wBA4Cc,qBAAqB,OAAM,oBAAyB;;;;;;;;;;;;;;;wBA0CpD,kBAAkB,OAAM,oBAAyB;;;;;;;;;;;;;;wBA8BjD,eAAe,OAAM;;;;wBAyCrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KCrLJ;UAEK;EACf,MAAM;;EAEN;;EAEA,YAAY;;KAGF,UAAU,6BACnB,WAAW,UAAU;UAGP,eAAe;WACrB,QAAQ,UAAU;;;;;;EAM3B,SAAS,SAAS,QAAQ;;;;;;;;wBAqBZ,gBAAgB,wBAC9B,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;EAC3B,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,wBAChC,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"}