logixia 2.0.11 → 2.2.0

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 (203) hide show
  1. package/README.md +4 -3
  2. package/dist/{async-context-BGUCdYAa.mjs → async-context-1YMPGgJZ.mjs} +3 -3
  3. package/dist/{async-context-BGUCdYAa.mjs.map → async-context-1YMPGgJZ.mjs.map} +1 -1
  4. package/dist/{async-context-D8um9I5V.js → async-context-CoPhbRG0.js} +4 -4
  5. package/dist/{async-context-D8um9I5V.js.map → async-context-CoPhbRG0.js.map} +1 -1
  6. package/dist/{azure-monitor.transport-CTnfwA0F.mjs → azure-monitor.transport-B_dqSV_o.mjs} +4 -4
  7. package/dist/{azure-monitor.transport-CTnfwA0F.mjs.map → azure-monitor.transport-B_dqSV_o.mjs.map} +1 -1
  8. package/dist/{azure-monitor.transport-C8KdmsSw.js → azure-monitor.transport-Bl3xVvpN.js} +4 -4
  9. package/dist/{azure-monitor.transport-C8KdmsSw.js.map → azure-monitor.transport-Bl3xVvpN.js.map} +1 -1
  10. package/dist/{azure-monitor.transport-CbSHOnNX.d.mts → azure-monitor.transport-C5VjvREZ.d.mts} +2 -2
  11. package/dist/{azure-monitor.transport-CbSHOnNX.d.mts.map → azure-monitor.transport-C5VjvREZ.d.mts.map} +1 -1
  12. package/dist/{azure-monitor.transport-Bvf7Xegt.d.ts → azure-monitor.transport-CyHDjHS-.d.ts} +2 -2
  13. package/dist/{azure-monitor.transport-Bvf7Xegt.d.ts.map → azure-monitor.transport-CyHDjHS-.d.ts.map} +1 -1
  14. package/dist/azure.d.mts +1 -1
  15. package/dist/azure.d.ts +1 -1
  16. package/dist/azure.js +1 -1
  17. package/dist/azure.mjs +1 -1
  18. package/dist/{batch-buffer-BJqzpfpT.mjs → batch-buffer-BnmVCCwI.mjs} +2 -2
  19. package/dist/{batch-buffer-BJqzpfpT.mjs.map → batch-buffer-BnmVCCwI.mjs.map} +1 -1
  20. package/dist/{batch-buffer-BTQdAXwC.js → batch-buffer-C-ETEX3Y.js} +2 -2
  21. package/dist/{batch-buffer-BTQdAXwC.js.map → batch-buffer-C-ETEX3Y.js.map} +1 -1
  22. package/dist/browser.d.mts +2 -0
  23. package/dist/browser.d.mts.map +1 -1
  24. package/dist/browser.d.ts +2 -0
  25. package/dist/browser.d.ts.map +1 -1
  26. package/dist/browser.js +33 -15
  27. package/dist/browser.js.map +1 -1
  28. package/dist/browser.mjs +33 -15
  29. package/dist/browser.mjs.map +1 -1
  30. package/dist/{builder-C6kKEVrU.mjs → builder-CbttbixM.mjs} +158 -279
  31. package/dist/builder-CbttbixM.mjs.map +1 -0
  32. package/dist/{builder-Up4YxX7l.js → builder-Ck1tsC5d.js} +160 -305
  33. package/dist/builder-Ck1tsC5d.js.map +1 -0
  34. package/dist/cloudwatch.d.mts +1 -1
  35. package/dist/cloudwatch.d.ts +1 -1
  36. package/dist/cloudwatch.js +1 -1
  37. package/dist/cloudwatch.mjs +1 -1
  38. package/dist/{cloudwatch.transport-Bl1qzdBx.mjs → cloudwatch.transport-Brh5fmRN.mjs} +5 -5
  39. package/dist/{cloudwatch.transport-Bl1qzdBx.mjs.map → cloudwatch.transport-Brh5fmRN.mjs.map} +1 -1
  40. package/dist/{cloudwatch.transport-BoCyxNKO.js → cloudwatch.transport-DO9e__Z-.js} +5 -5
  41. package/dist/{cloudwatch.transport-BoCyxNKO.js.map → cloudwatch.transport-DO9e__Z-.js.map} +1 -1
  42. package/dist/{cloudwatch.transport-CQyT6U91.d.ts → cloudwatch.transport-DdSjUWvu.d.ts} +2 -2
  43. package/dist/{cloudwatch.transport-CQyT6U91.d.ts.map → cloudwatch.transport-DdSjUWvu.d.ts.map} +1 -1
  44. package/dist/{cloudwatch.transport-CjVrI6S4.d.mts → cloudwatch.transport-_hS7Mcc5.d.mts} +2 -2
  45. package/dist/{cloudwatch.transport-CjVrI6S4.d.mts.map → cloudwatch.transport-_hS7Mcc5.d.mts.map} +1 -1
  46. package/dist/correlation.js +3 -3
  47. package/dist/correlation.mjs +3 -3
  48. package/dist/{entry-fields-CJbeaoBs.js → entry-fields-BSLkzw18.js} +3 -3
  49. package/dist/{entry-fields-CJbeaoBs.js.map → entry-fields-BSLkzw18.js.map} +1 -1
  50. package/dist/{entry-fields-D_aNnjg0.mjs → entry-fields-J1OBi24o.mjs} +2 -2
  51. package/dist/{entry-fields-D_aNnjg0.mjs.map → entry-fields-J1OBi24o.mjs.map} +1 -1
  52. package/dist/error.utils-B8_CwESF.mjs +189 -0
  53. package/dist/error.utils-B8_CwESF.mjs.map +1 -0
  54. package/dist/error.utils-fZkRExam.js +212 -0
  55. package/dist/error.utils-fZkRExam.js.map +1 -0
  56. package/dist/fastify.d.mts +89 -0
  57. package/dist/fastify.d.mts.map +1 -0
  58. package/dist/fastify.d.ts +89 -0
  59. package/dist/fastify.d.ts.map +1 -0
  60. package/dist/fastify.js +265 -0
  61. package/dist/fastify.js.map +1 -0
  62. package/dist/fastify.mjs +263 -0
  63. package/dist/fastify.mjs.map +1 -0
  64. package/dist/gcp.d.mts +1 -1
  65. package/dist/gcp.d.ts +1 -1
  66. package/dist/gcp.js +1 -1
  67. package/dist/gcp.mjs +1 -1
  68. package/dist/{gcp.transport-DOH4bpWM.mjs → gcp.transport-BY1Z3cS0.mjs} +5 -5
  69. package/dist/{gcp.transport-DOH4bpWM.mjs.map → gcp.transport-BY1Z3cS0.mjs.map} +1 -1
  70. package/dist/{gcp.transport-D9SdLPwP.d.mts → gcp.transport-C8VJiEM7.d.mts} +2 -2
  71. package/dist/{gcp.transport-D9SdLPwP.d.mts.map → gcp.transport-C8VJiEM7.d.mts.map} +1 -1
  72. package/dist/{gcp.transport-BCIvdFV-.d.ts → gcp.transport-Ct0BtKFo.d.ts} +2 -2
  73. package/dist/{gcp.transport-BCIvdFV-.d.ts.map → gcp.transport-Ct0BtKFo.d.ts.map} +1 -1
  74. package/dist/{gcp.transport-D_NHVZrw.js → gcp.transport-V9R4dwdT.js} +5 -5
  75. package/dist/{gcp.transport-D_NHVZrw.js.map → gcp.transport-V9R4dwdT.js.map} +1 -1
  76. package/dist/hono.d.mts +66 -0
  77. package/dist/hono.d.mts.map +1 -0
  78. package/dist/hono.d.ts +66 -0
  79. package/dist/hono.d.ts.map +1 -0
  80. package/dist/hono.js +512 -0
  81. package/dist/hono.js.map +1 -0
  82. package/dist/hono.mjs +511 -0
  83. package/dist/hono.mjs.map +1 -0
  84. package/dist/{index-BAkPHp5D.d.mts → index-B3ajtXJd.d.mts} +2 -2
  85. package/dist/{index-BAkPHp5D.d.mts.map → index-B3ajtXJd.d.mts.map} +1 -1
  86. package/dist/{index-e7LowmAu.d.ts → index-oqD3WNxf.d.ts} +2 -2
  87. package/dist/{index-e7LowmAu.d.ts.map → index-oqD3WNxf.d.ts.map} +1 -1
  88. package/dist/index.d.mts +8 -7
  89. package/dist/index.d.mts.map +1 -1
  90. package/dist/index.d.ts +8 -7
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +23 -20
  93. package/dist/index.js.map +1 -1
  94. package/dist/index.mjs +11 -9
  95. package/dist/index.mjs.map +1 -1
  96. package/dist/{logitron-logger-DVUdgmBY.d.ts → logitron-logger-Csn3e6Qu.d.ts} +2 -2
  97. package/dist/{logitron-logger-DVUdgmBY.d.ts.map → logitron-logger-Csn3e6Qu.d.ts.map} +1 -1
  98. package/dist/{logitron-logger-DoWmMjYB.d.mts → logitron-logger-fMOkXr8H.d.mts} +2 -2
  99. package/dist/{logitron-logger-DoWmMjYB.d.mts.map → logitron-logger-fMOkXr8H.d.mts.map} +1 -1
  100. package/dist/middleware.d.mts +1 -1
  101. package/dist/middleware.d.ts +1 -1
  102. package/dist/middleware.js +6 -5
  103. package/dist/middleware.js.map +1 -1
  104. package/dist/middleware.mjs +4 -3
  105. package/dist/middleware.mjs.map +1 -1
  106. package/dist/nest.d.mts +47 -15
  107. package/dist/nest.d.mts.map +1 -1
  108. package/dist/nest.d.ts +47 -15
  109. package/dist/nest.d.ts.map +1 -1
  110. package/dist/nest.js +172 -50
  111. package/dist/nest.js.map +1 -1
  112. package/dist/nest.mjs +168 -46
  113. package/dist/nest.mjs.map +1 -1
  114. package/dist/{otel-DH6-G6DR.js → otel-BrgvxLDW.js} +319 -66
  115. package/dist/otel-BrgvxLDW.js.map +1 -0
  116. package/dist/{otel-DAVxpArV.mjs → otel-C5jBV_l_.mjs} +319 -66
  117. package/dist/otel-C5jBV_l_.mjs.map +1 -0
  118. package/dist/own-property-BWkibepN.js +40 -0
  119. package/dist/own-property-BWkibepN.js.map +1 -0
  120. package/dist/own-property-CjFw9qwZ.mjs +29 -0
  121. package/dist/own-property-CjFw9qwZ.mjs.map +1 -0
  122. package/dist/{request-trace-C7kXMjx5.js → request-trace-6NBSw5lt.js} +14 -3
  123. package/dist/{request-trace-C7kXMjx5.js.map → request-trace-6NBSw5lt.js.map} +1 -1
  124. package/dist/{request-trace-Dekcnenb.mjs → request-trace-txUhyyre.mjs} +9 -4
  125. package/dist/{request-trace-Dekcnenb.mjs.map → request-trace-txUhyyre.mjs.map} +1 -1
  126. package/dist/{safe-stringify-pZOnzGRJ.mjs → safe-stringify-B5p5ktFe.mjs} +2 -2
  127. package/dist/{safe-stringify-pZOnzGRJ.mjs.map → safe-stringify-B5p5ktFe.mjs.map} +1 -1
  128. package/dist/{safe-stringify-CJisLyZ3.js → safe-stringify-J3sh-7YM.js} +5 -5
  129. package/dist/{safe-stringify-CJisLyZ3.js.map → safe-stringify-J3sh-7YM.js.map} +1 -1
  130. package/dist/{search-Crf2IEoA.d.mts → search-B-hJe2N-.d.mts} +7 -3
  131. package/dist/{search-Crf2IEoA.d.mts.map → search-B-hJe2N-.d.mts.map} +1 -1
  132. package/dist/{search-B4eEzrhM.d.ts → search-BlKBLm5D.d.ts} +7 -3
  133. package/dist/{search-B4eEzrhM.d.ts.map → search-BlKBLm5D.d.ts.map} +1 -1
  134. package/dist/{search-CjYl-mo5.mjs → search-CTR4XNHq.mjs} +52 -14
  135. package/dist/search-CTR4XNHq.mjs.map +1 -0
  136. package/dist/{search-CJw_xoQl.js → search-_qx4YzRP.js} +52 -14
  137. package/dist/search-_qx4YzRP.js.map +1 -0
  138. package/dist/search.d.mts +1 -1
  139. package/dist/search.d.ts +1 -1
  140. package/dist/search.js +1 -1
  141. package/dist/search.mjs +1 -1
  142. package/dist/{secret-config-D1F4MW69.mjs → secret-config-Cng7XPLx.mjs} +18 -13
  143. package/dist/secret-config-Cng7XPLx.mjs.map +1 -0
  144. package/dist/{secret-config-6hdODxBb.js → secret-config-OqmIPmpV.js} +21 -16
  145. package/dist/secret-config-OqmIPmpV.js.map +1 -0
  146. package/dist/{sensitive-names-wv27qBQC.mjs → sensitive-names-BiBM6R1X.mjs} +2 -28
  147. package/dist/sensitive-names-BiBM6R1X.mjs.map +1 -0
  148. package/dist/{sensitive-names-CNgHaqv9.js → sensitive-names-NiKIRhp5.js} +1 -39
  149. package/dist/sensitive-names-NiKIRhp5.js.map +1 -0
  150. package/dist/{slack.transport-C6E0l4kw.d.ts → slack.transport-5OPL7H3u.d.mts} +76 -3
  151. package/dist/slack.transport-5OPL7H3u.d.mts.map +1 -0
  152. package/dist/{slack.transport-BDyENuR0.d.mts → slack.transport-BFpBD_Ri.d.ts} +76 -3
  153. package/dist/slack.transport-BFpBD_Ri.d.ts.map +1 -0
  154. package/dist/{slack.transport-YvaLJxNv.mjs → slack.transport-C6dzPJHX.mjs} +226 -9
  155. package/dist/slack.transport-C6dzPJHX.mjs.map +1 -0
  156. package/dist/{slack.transport-CEYBVzUj.js → slack.transport-Ci0swStG.js} +231 -8
  157. package/dist/slack.transport-Ci0swStG.js.map +1 -0
  158. package/dist/testing.d.mts +1 -1
  159. package/dist/testing.d.ts +1 -1
  160. package/dist/{transport.types-CzJq4IrF.d.ts → transport.types-B1ejJJP6.d.mts} +6 -1
  161. package/dist/transport.types-B1ejJJP6.d.mts.map +1 -0
  162. package/dist/{transport.types-CzJq4IrF.d.mts → transport.types-B1ejJJP6.d.ts} +6 -1
  163. package/dist/transport.types-B1ejJJP6.d.ts.map +1 -0
  164. package/dist/transports.d.mts +61 -11
  165. package/dist/transports.d.mts.map +1 -1
  166. package/dist/transports.d.ts +61 -11
  167. package/dist/transports.d.ts.map +1 -1
  168. package/dist/transports.js +7 -6
  169. package/dist/transports.mjs +7 -7
  170. package/dist/worker-entry.js +106 -22
  171. package/dist/worker.d.mts +1 -1
  172. package/dist/worker.d.ts +1 -1
  173. package/dist/worker.js +1 -1
  174. package/dist/worker.mjs +1 -1
  175. package/dist/{worker.transport-B9mCQSM1.d.ts → worker.transport-B7olL1Uh.d.ts} +12 -2
  176. package/dist/worker.transport-B7olL1Uh.d.ts.map +1 -0
  177. package/dist/{worker.transport-CwNpH98o.js → worker.transport-CZOutlxC.js} +40 -2
  178. package/dist/worker.transport-CZOutlxC.js.map +1 -0
  179. package/dist/{worker.transport-DgK_ZXlB.mjs → worker.transport-CxFD8mvS.mjs} +40 -2
  180. package/dist/worker.transport-CxFD8mvS.mjs.map +1 -0
  181. package/dist/{worker.transport-Bl8lFRck.d.mts → worker.transport-DnU0_9Bd.d.mts} +12 -2
  182. package/dist/worker.transport-DnU0_9Bd.d.mts.map +1 -0
  183. package/package.json +37 -2
  184. package/dist/builder-C6kKEVrU.mjs.map +0 -1
  185. package/dist/builder-Up4YxX7l.js.map +0 -1
  186. package/dist/otel-DAVxpArV.mjs.map +0 -1
  187. package/dist/otel-DH6-G6DR.js.map +0 -1
  188. package/dist/search-CJw_xoQl.js.map +0 -1
  189. package/dist/search-CjYl-mo5.mjs.map +0 -1
  190. package/dist/secret-config-6hdODxBb.js.map +0 -1
  191. package/dist/secret-config-D1F4MW69.mjs.map +0 -1
  192. package/dist/sensitive-names-CNgHaqv9.js.map +0 -1
  193. package/dist/sensitive-names-wv27qBQC.mjs.map +0 -1
  194. package/dist/slack.transport-BDyENuR0.d.mts.map +0 -1
  195. package/dist/slack.transport-C6E0l4kw.d.ts.map +0 -1
  196. package/dist/slack.transport-CEYBVzUj.js.map +0 -1
  197. package/dist/slack.transport-YvaLJxNv.mjs.map +0 -1
  198. package/dist/transport.types-CzJq4IrF.d.mts.map +0 -1
  199. package/dist/transport.types-CzJq4IrF.d.ts.map +0 -1
  200. package/dist/worker.transport-B9mCQSM1.d.ts.map +0 -1
  201. package/dist/worker.transport-Bl8lFRck.d.mts.map +0 -1
  202. package/dist/worker.transport-CwNpH98o.js.map +0 -1
  203. package/dist/worker.transport-DgK_ZXlB.mjs.map +0 -1
package/dist/nest.js CHANGED
@@ -1,10 +1,12 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_secret_config = require("./secret-config-6hdODxBb.js");
3
- const require_builder = require("./builder-Up4YxX7l.js");
4
- const require_sensitive_names = require("./sensitive-names-CNgHaqv9.js");
5
- const require_request_trace = require("./request-trace-C7kXMjx5.js");
2
+ const require_secret_config = require("./secret-config-OqmIPmpV.js");
3
+ const require_builder = require("./builder-Ck1tsC5d.js");
4
+ const require_own_property = require("./own-property-BWkibepN.js");
5
+ const require_request_trace = require("./request-trace-6NBSw5lt.js");
6
+ const require_sensitive_names = require("./sensitive-names-NiKIRhp5.js");
6
7
  const require_internal_log = require("./internal-log-DwqTjhpb.js");
7
8
  const require_csv_utils = require("./csv.utils-CbVHY1pd.js");
9
+ const require_error_utils = require("./error.utils-fZkRExam.js");
8
10
  let _nestjs_common = require("@nestjs/common");
9
11
  let rxjs = require("rxjs");
10
12
  // \0@oxc-project+runtime@0.155.0/helpers/esm/decorateMetadata.js
@@ -20,12 +22,37 @@ function __decorate(decorators, target, key, desc) {
20
22
  }
21
23
  // src/core/logitron-nestjs.service.ts
22
24
  var _LogixiaLoggerService;
25
+ const looksLikeStack = (value) => value.includes("\n at ");
26
+ const NEST_LEVEL_TO_LOGIXIA = {
27
+ fatal: require_builder.LogLevel.ERROR,
28
+ error: require_builder.LogLevel.ERROR,
29
+ warn: require_builder.LogLevel.WARN,
30
+ log: require_builder.LogLevel.INFO,
31
+ debug: require_builder.LogLevel.DEBUG,
32
+ verbose: require_builder.LogLevel.TRACE
33
+ };
34
+ const LEVEL_VERBOSITY = [
35
+ require_builder.LogLevel.ERROR,
36
+ require_builder.LogLevel.WARN,
37
+ require_builder.LogLevel.INFO,
38
+ require_builder.LogLevel.DEBUG,
39
+ require_builder.LogLevel.TRACE
40
+ ];
41
+ function isPlainObject(value) {
42
+ if (typeof value !== "object" || value === null) return false;
43
+ const proto = Object.getPrototypeOf(value);
44
+ return proto === Object.prototype || proto === null;
45
+ }
46
+ function describeObject(value) {
47
+ var _value$constructor;
48
+ return Array.isArray(value) ? require_csv_utils.safeToString(value) : `[${((_value$constructor = value.constructor) === null || _value$constructor === void 0 ? void 0 : _value$constructor.name) ?? "Object"}]`;
49
+ }
23
50
  let LogixiaLoggerService = _LogixiaLoggerService = class LogixiaLoggerService {
24
51
  logger;
25
52
  context;
26
53
  _mergedConfig;
27
54
  constructor(config) {
28
- const defaultConfig = {
55
+ const mergedConfig = {
29
56
  appName: "NestJS-App",
30
57
  environment: "development",
31
58
  traceId: true,
@@ -60,37 +87,40 @@ let LogixiaLoggerService = _LogixiaLoggerService = class LogixiaLoggerService {
60
87
  message: "[message]",
61
88
  payload: "[payload]",
62
89
  timeTaken: "[time_taken_MS]"
63
- }
64
- };
65
- require_secret_config.protectSecrets(this, ["_mergedConfig"]);
66
- this._mergedConfig = {
67
- ...defaultConfig,
90
+ },
68
91
  ...config
69
92
  };
70
- this.logger = new require_builder.LogixiaLogger(this._mergedConfig);
93
+ this._attach(mergedConfig, new require_builder.LogixiaLogger(mergedConfig));
94
+ }
95
+ _attach(mergedConfig, logger) {
96
+ require_secret_config.protectSecrets(this, ["_mergedConfig"]);
97
+ this._mergedConfig = mergedConfig;
98
+ this.logger = logger;
71
99
  this._createCustomLevelMethods();
72
100
  }
73
101
  _createCustomLevelMethods() {
74
102
  var _this$_mergedConfig$l;
75
103
  const levels = (_this$_mergedConfig$l = this._mergedConfig.levelOptions) === null || _this$_mergedConfig$l === void 0 ? void 0 : _this$_mergedConfig$l.levels;
76
104
  if (!levels) return;
77
- for (const levelName of Object.keys(levels)) {
78
- const lower = levelName.toLowerCase();
79
- if (typeof this[lower] !== "undefined") continue;
80
- this[lower] = async (message, data) => {
81
- return this.logger.logLevel(lower, message, data);
82
- };
83
- }
105
+ const self = this;
106
+ const define = (method, levelName) => {
107
+ if (typeof self[method] !== "undefined") return;
108
+ self[method] = async (message, data) => this.logger.logLevel(levelName, message, data);
109
+ };
110
+ const names = Object.keys(levels);
111
+ for (const levelName of names) define(levelName, levelName);
112
+ for (const levelName of names) define(levelName.toLowerCase(), levelName);
84
113
  }
85
114
  /**
86
- * NestJS `LoggerService.log` — void, string context.
87
- * Maps internally to `info`.
115
+ * NestJS `LoggerService.log` — void. Maps internally to `info`.
116
+ * A trailing string is the context for this call only; object params are merged into the payload.
88
117
  *
89
118
  * @example `logger.log('User signed up', 'AuthService')`
119
+ * @example `logger.log('User signed up', { userId: 'u_abc' }, 'AuthService')`
90
120
  */
91
- log(message, context) {
92
- this.setContextIfProvided(context);
93
- this.logger.info(this.formatMessage(message)).catch((err) => require_internal_log.internalError("LogixiaLoggerService.log failed", err));
121
+ log(message, ...optionalParams) {
122
+ const { context, data } = this.parseParams(optionalParams);
123
+ this.reportFailure("log", this.withContext(context, () => this.logger.info(this.formatMessage(message), data)));
94
124
  }
95
125
  /**
96
126
  * Native async `info` — structured data, returns `Promise<void>`.
@@ -100,27 +130,49 @@ let LogixiaLoggerService = _LogixiaLoggerService = class LogixiaLoggerService {
100
130
  async info(message, data) {
101
131
  return this.logger.info(message, data);
102
132
  }
103
- error(message, dataOrTrace, context) {
104
- if (typeof dataOrTrace === "object" && dataOrTrace !== null) return message instanceof Error ? this.logger.error(message, dataOrTrace) : this.logger.error(this.formatMessage(message), dataOrTrace);
105
- this.setContextIfProvided(context);
106
- const errorData = {};
107
- if (typeof dataOrTrace === "string" && dataOrTrace) errorData.stack = dataOrTrace;
108
- (message instanceof Error ? this.logger.error(message, errorData) : this.logger.error(this.formatMessage(message), errorData)).catch((err) => require_internal_log.internalError("LogixiaLoggerService.error failed", err));
133
+ error(message, ...optionalParams) {
134
+ const only = optionalParams[0];
135
+ if (optionalParams.length === 1 && typeof only === "object" && only !== null) {
136
+ const data = only;
137
+ return message instanceof Error ? this.logger.error(message, data) : this.logger.error(this.formatMessage(message), data);
138
+ }
139
+ const { context, data } = this.parseParams(optionalParams, true);
140
+ this.reportFailure("error", this.withContext(context, () => message instanceof Error ? this.logger.error(message, data) : this.logger.error(this.formatMessage(message), data)));
109
141
  }
110
- warn(message, dataOrContext) {
111
- if (typeof dataOrContext === "object" && dataOrContext !== null) return this.logger.warn(this.formatMessage(message), dataOrContext);
112
- this.setContextIfProvided(typeof dataOrContext === "string" ? dataOrContext : void 0);
113
- this.logger.warn(this.formatMessage(message)).catch((err) => require_internal_log.internalError("LogixiaLoggerService.warn failed", err));
142
+ /**
143
+ * NestJS `LoggerService.fatal`. logixia has no level above `error`, so this logs
144
+ * at `error` with `fatal: true` in the payload, or at a custom `fatal` level when
145
+ * one is configured.
146
+ *
147
+ * @example `logger.fatal('Cannot reach the database, shutting down', 'Bootstrap')`
148
+ */
149
+ fatal(message, ...optionalParams) {
150
+ var _this$_mergedConfig$l2;
151
+ const { context, data } = this.parseParams(optionalParams, true);
152
+ const text = this.formatMessage(message);
153
+ const hasFatalLevel = ((_this$_mergedConfig$l2 = this._mergedConfig.levelOptions) === null || _this$_mergedConfig$l2 === void 0 || (_this$_mergedConfig$l2 = _this$_mergedConfig$l2.levels) === null || _this$_mergedConfig$l2 === void 0 ? void 0 : _this$_mergedConfig$l2["fatal"]) !== void 0;
154
+ this.reportFailure("fatal", this.withContext(context, () => hasFatalLevel ? this.logger.logLevel("fatal", text, data) : this.logger.error(text, {
155
+ ...data,
156
+ fatal: true
157
+ })));
114
158
  }
115
- debug(message, dataOrContext) {
116
- if (typeof dataOrContext === "object" && dataOrContext !== null) return this.logger.debug(this.formatMessage(message), dataOrContext);
117
- this.setContextIfProvided(typeof dataOrContext === "string" ? dataOrContext : void 0);
118
- this.logger.debug(this.formatMessage(message)).catch((err) => require_internal_log.internalError("LogixiaLoggerService.debug failed", err));
159
+ warn(message, ...optionalParams) {
160
+ const only = optionalParams[0];
161
+ if (optionalParams.length === 1 && typeof only === "object" && only !== null) return this.logger.warn(this.formatMessage(message), only);
162
+ const { context, data } = this.parseParams(optionalParams);
163
+ this.reportFailure("warn", this.withContext(context, () => this.logger.warn(this.formatMessage(message), data)));
119
164
  }
120
- verbose(message, dataOrContext) {
121
- if (typeof dataOrContext === "object" && dataOrContext !== null) return this.logger.trace(this.formatMessage(message), dataOrContext);
122
- this.setContextIfProvided(typeof dataOrContext === "string" ? dataOrContext : void 0);
123
- this.logger.trace(this.formatMessage(message)).catch((err) => require_internal_log.internalError("LogixiaLoggerService.verbose failed", err));
165
+ debug(message, ...optionalParams) {
166
+ const only = optionalParams[0];
167
+ if (optionalParams.length === 1 && typeof only === "object" && only !== null) return this.logger.debug(this.formatMessage(message), only);
168
+ const { context, data } = this.parseParams(optionalParams);
169
+ this.reportFailure("debug", this.withContext(context, () => this.logger.debug(this.formatMessage(message), data)));
170
+ }
171
+ verbose(message, ...optionalParams) {
172
+ const only = optionalParams[0];
173
+ if (optionalParams.length === 1 && typeof only === "object" && only !== null) return this.logger.trace(this.formatMessage(message), only);
174
+ const { context, data } = this.parseParams(optionalParams);
175
+ this.reportFailure("verbose", this.withContext(context, () => this.logger.trace(this.formatMessage(message), data)));
124
176
  }
125
177
  /**
126
178
  * Native async `trace` — lowest verbosity level, structured data.
@@ -157,9 +209,30 @@ let LogixiaLoggerService = _LogixiaLoggerService = class LogixiaLoggerService {
157
209
  getLevel() {
158
210
  return this.logger.getLevel();
159
211
  }
212
+ /**
213
+ * NestJS `LoggerService.setLogLevels`. logixia filters by a minimum level, not a
214
+ * set, so the most verbose of `levels` becomes the threshold and everything more
215
+ * severe stays on (`['log', 'error']` also enables `warn`). Unknown names are
216
+ * ignored, and an empty list is ignored too: use `silent` to turn logging off.
217
+ *
218
+ * @example `logger.setLogLevels(['error', 'warn'])`
219
+ */
220
+ setLogLevels(levels) {
221
+ let threshold;
222
+ let verbosity = -1;
223
+ for (const name of levels) {
224
+ const level = NEST_LEVEL_TO_LOGIXIA[name];
225
+ const rank = level === void 0 ? -1 : LEVEL_VERBOSITY.indexOf(level);
226
+ if (rank > verbosity) {
227
+ verbosity = rank;
228
+ threshold = level;
229
+ }
230
+ }
231
+ if (threshold !== void 0) this.setLevel(threshold);
232
+ }
160
233
  child(context, data) {
161
- const childService = new _LogixiaLoggerService(this._mergedConfig);
162
- childService.logger = this.logger.child(context, data);
234
+ const childService = Object.create(_LogixiaLoggerService.prototype);
235
+ childService._attach(this._mergedConfig, this.logger.child(context, data));
163
236
  childService.context = context;
164
237
  return childService;
165
238
  }
@@ -179,9 +252,58 @@ let LogixiaLoggerService = _LogixiaLoggerService = class LogixiaLoggerService {
179
252
  getLogger() {
180
253
  return this.logger;
181
254
  }
182
- setContextIfProvided(context) {
183
- if (typeof context !== "string" || context.length === 0) return;
184
- if (context !== this.context) this.setContext(context);
255
+ withContext(context, fn) {
256
+ if (context === void 0 || context === this.logger.getContext()) return fn();
257
+ const previous = this.logger.getContext() ?? "";
258
+ this.logger.setContext(context);
259
+ try {
260
+ return fn();
261
+ } finally {
262
+ this.logger.setContext(previous);
263
+ }
264
+ }
265
+ /**
266
+ * Split NestJS `...optionalParams` into a per-call context and a payload.
267
+ * A trailing string is the context; plain objects are merged into the payload and
268
+ * an Error goes under `error`. For `error()` (`withStack`), a leading string is the stack
269
+ * trace, and a lone string is the stack only if it looks like one, since Nest's own
270
+ * `Logger` appends the context as the last param. Anything else is listed under `params`.
271
+ */
272
+ parseParams(params, withStack = false) {
273
+ if (params.length === 0) return {};
274
+ let rest = params;
275
+ let context;
276
+ const last = params[params.length - 1];
277
+ if (typeof last === "string" && !(withStack && params.length === 1 && looksLikeStack(last))) {
278
+ context = last.length > 0 ? last : void 0;
279
+ rest = params.slice(0, -1);
280
+ }
281
+ let data;
282
+ const extras = [];
283
+ for (const param of rest) if (withStack && typeof param === "string" && (data === null || data === void 0 ? void 0 : data["stack"]) === void 0) data = {
284
+ ...data,
285
+ stack: param
286
+ };
287
+ else if (param instanceof Error) data = {
288
+ ...data,
289
+ error: param
290
+ };
291
+ else if (isPlainObject(param)) data = {
292
+ ...data,
293
+ ...param
294
+ };
295
+ else if (param !== void 0) extras.push(typeof param === "object" && param !== null ? describeObject(param) : param);
296
+ if (extras.length > 0) data = {
297
+ ...data,
298
+ params: extras
299
+ };
300
+ return context === void 0 ? { data } : {
301
+ context,
302
+ data
303
+ };
304
+ }
305
+ reportFailure(method, result) {
306
+ result.catch((err) => require_internal_log.internalError(`LogixiaLoggerService.${method} failed`, err));
185
307
  }
186
308
  formatMessage(message) {
187
309
  if (typeof message === "string") return message;
@@ -823,7 +945,7 @@ function scrubSerialized(value, clean, depth, seen) {
823
945
  try {
824
946
  if (Array.isArray(value)) return value.map((item) => scrubSerialized(item, clean, depth + 1, seen));
825
947
  const out = {};
826
- for (const [key, item] of Object.entries(value)) require_sensitive_names.assignOwn(out, key, scrubSerialized(item, clean, depth + 1, seen));
948
+ for (const [key, item] of Object.entries(value)) require_own_property.assignOwn(out, key, scrubSerialized(item, clean, depth + 1, seen));
827
949
  return out;
828
950
  } finally {
829
951
  seen.delete(value);
@@ -841,7 +963,7 @@ function fallbackError(exception, clean) {
841
963
  } catch {}
842
964
  const copy = new Error(message);
843
965
  copy.name = name;
844
- require_sensitive_names.assignOwn(copy, "serialization", "[Unserializable]");
966
+ require_own_property.assignOwn(copy, "serialization", "[Unserializable]");
845
967
  return copy;
846
968
  }
847
969
  /**
@@ -853,7 +975,7 @@ function fallbackError(exception, clean) {
853
975
  function sanitizedError(exception, clean) {
854
976
  try {
855
977
  if (!(exception instanceof Error)) return new Error(clean(String(exception)));
856
- const scrubbed = scrubSerialized(require_builder.serializeError(exception), clean, 0, /* @__PURE__ */ new WeakSet());
978
+ const scrubbed = scrubSerialized(require_error_utils.serializeError(exception), clean, 0, /* @__PURE__ */ new WeakSet());
857
979
  const copy = new Error(String(scrubbed["message"] ?? ""));
858
980
  for (const [key, value] of Object.entries(scrubbed)) {
859
981
  if (key === "message") continue;
@@ -862,7 +984,7 @@ function sanitizedError(exception, clean) {
862
984
  writable: true,
863
985
  configurable: true
864
986
  });
865
- else require_sensitive_names.assignOwn(copy, key, value);
987
+ else require_own_property.assignOwn(copy, key, value);
866
988
  }
867
989
  return copy;
868
990
  } catch {