@burdenoff/be-sdk 2026.510.79

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 (220) hide show
  1. package/README.md +173 -0
  2. package/configs/eslint/index.js +492 -0
  3. package/configs/tsconfig/tsconfig.json +53 -0
  4. package/dist/EventQueueFactory-6NMSGECR.js +8 -0
  5. package/dist/EventQueueFactory-6NMSGECR.js.map +1 -0
  6. package/dist/auth/index.d.ts +66 -0
  7. package/dist/auth/index.js +8 -0
  8. package/dist/auth/index.js.map +1 -0
  9. package/dist/cache/index.d.ts +2 -0
  10. package/dist/cache/index.js +6 -0
  11. package/dist/cache/index.js.map +1 -0
  12. package/dist/captcha/index.d.ts +1 -0
  13. package/dist/captcha/index.js +4 -0
  14. package/dist/captcha/index.js.map +1 -0
  15. package/dist/chunk-2HANKZZM.js +245 -0
  16. package/dist/chunk-2HANKZZM.js.map +1 -0
  17. package/dist/chunk-2SD5L2F2.js +816 -0
  18. package/dist/chunk-2SD5L2F2.js.map +1 -0
  19. package/dist/chunk-3O2RQOPV.js +1068 -0
  20. package/dist/chunk-3O2RQOPV.js.map +1 -0
  21. package/dist/chunk-4B43DZIS.js +560 -0
  22. package/dist/chunk-4B43DZIS.js.map +1 -0
  23. package/dist/chunk-4XAEES25.js +2444 -0
  24. package/dist/chunk-4XAEES25.js.map +1 -0
  25. package/dist/chunk-4XGGWW36.js +1405 -0
  26. package/dist/chunk-4XGGWW36.js.map +1 -0
  27. package/dist/chunk-5LXDPGDH.js +245 -0
  28. package/dist/chunk-5LXDPGDH.js.map +1 -0
  29. package/dist/chunk-AI7L22ZJ.js +472 -0
  30. package/dist/chunk-AI7L22ZJ.js.map +1 -0
  31. package/dist/chunk-CBZNP6RF.js +286 -0
  32. package/dist/chunk-CBZNP6RF.js.map +1 -0
  33. package/dist/chunk-ELLX3K54.js +613 -0
  34. package/dist/chunk-ELLX3K54.js.map +1 -0
  35. package/dist/chunk-F5XEAGHQ.js +1875 -0
  36. package/dist/chunk-F5XEAGHQ.js.map +1 -0
  37. package/dist/chunk-FNZEQOJY.js +628 -0
  38. package/dist/chunk-FNZEQOJY.js.map +1 -0
  39. package/dist/chunk-GTEMQXCA.js +516 -0
  40. package/dist/chunk-GTEMQXCA.js.map +1 -0
  41. package/dist/chunk-HIWTWIGQ.js +226 -0
  42. package/dist/chunk-HIWTWIGQ.js.map +1 -0
  43. package/dist/chunk-IYE2NTRX.js +764 -0
  44. package/dist/chunk-IYE2NTRX.js.map +1 -0
  45. package/dist/chunk-J26YGR2U.js +1484 -0
  46. package/dist/chunk-J26YGR2U.js.map +1 -0
  47. package/dist/chunk-JG2FTZPI.js +509 -0
  48. package/dist/chunk-JG2FTZPI.js.map +1 -0
  49. package/dist/chunk-JVBTNSPG.js +1551 -0
  50. package/dist/chunk-JVBTNSPG.js.map +1 -0
  51. package/dist/chunk-L7ZMN2FJ.js +12 -0
  52. package/dist/chunk-L7ZMN2FJ.js.map +1 -0
  53. package/dist/chunk-M5IMU3US.js +473 -0
  54. package/dist/chunk-M5IMU3US.js.map +1 -0
  55. package/dist/chunk-MLW2HPS5.js +1267 -0
  56. package/dist/chunk-MLW2HPS5.js.map +1 -0
  57. package/dist/chunk-MNCGUYLJ.js +269 -0
  58. package/dist/chunk-MNCGUYLJ.js.map +1 -0
  59. package/dist/chunk-MOCUBSTW.js +373 -0
  60. package/dist/chunk-MOCUBSTW.js.map +1 -0
  61. package/dist/chunk-NGMEI42S.js +103 -0
  62. package/dist/chunk-NGMEI42S.js.map +1 -0
  63. package/dist/chunk-NUB5GQTU.js +270 -0
  64. package/dist/chunk-NUB5GQTU.js.map +1 -0
  65. package/dist/chunk-OVSYMNCI.js +145 -0
  66. package/dist/chunk-OVSYMNCI.js.map +1 -0
  67. package/dist/chunk-QLVKMWFA.js +94 -0
  68. package/dist/chunk-QLVKMWFA.js.map +1 -0
  69. package/dist/chunk-SAG6ZYWQ.js +89 -0
  70. package/dist/chunk-SAG6ZYWQ.js.map +1 -0
  71. package/dist/chunk-SAK2JCA7.js +198 -0
  72. package/dist/chunk-SAK2JCA7.js.map +1 -0
  73. package/dist/chunk-SBS4S2PJ.js +100 -0
  74. package/dist/chunk-SBS4S2PJ.js.map +1 -0
  75. package/dist/chunk-SNEOLWXT.js +148 -0
  76. package/dist/chunk-SNEOLWXT.js.map +1 -0
  77. package/dist/chunk-TKBD2ONF.js +564 -0
  78. package/dist/chunk-TKBD2ONF.js.map +1 -0
  79. package/dist/chunk-UBXFIIAW.js +127 -0
  80. package/dist/chunk-UBXFIIAW.js.map +1 -0
  81. package/dist/chunk-VI4VSNTI.js +57 -0
  82. package/dist/chunk-VI4VSNTI.js.map +1 -0
  83. package/dist/chunk-VWCN5PMD.js +268 -0
  84. package/dist/chunk-VWCN5PMD.js.map +1 -0
  85. package/dist/chunk-XC2YD6CF.js +913 -0
  86. package/dist/chunk-XC2YD6CF.js.map +1 -0
  87. package/dist/chunk-XE4OXN2W.js +10 -0
  88. package/dist/chunk-XE4OXN2W.js.map +1 -0
  89. package/dist/chunk-YMZEUTD2.js +110 -0
  90. package/dist/chunk-YMZEUTD2.js.map +1 -0
  91. package/dist/chunk-Z4IRLBWO.js +758 -0
  92. package/dist/chunk-Z4IRLBWO.js.map +1 -0
  93. package/dist/client/internal-client.d.ts +7 -0
  94. package/dist/client/internal-client.js +5 -0
  95. package/dist/client/internal-client.js.map +1 -0
  96. package/dist/client-CSjIrYKS.d.ts +77 -0
  97. package/dist/config-UKE2E3BW.js +4 -0
  98. package/dist/config-UKE2E3BW.js.map +1 -0
  99. package/dist/crypto/index.d.ts +1 -0
  100. package/dist/crypto/index.js +4 -0
  101. package/dist/crypto/index.js.map +1 -0
  102. package/dist/database/index.d.ts +117 -0
  103. package/dist/database/index.js +7 -0
  104. package/dist/database/index.js.map +1 -0
  105. package/dist/dataloader/index.d.ts +1 -0
  106. package/dist/dataloader/index.js +4 -0
  107. package/dist/dataloader/index.js.map +1 -0
  108. package/dist/esm-K6H7EIWK.js +1450 -0
  109. package/dist/esm-K6H7EIWK.js.map +1 -0
  110. package/dist/event-queue/index.d.ts +6 -0
  111. package/dist/event-queue/index.js +10 -0
  112. package/dist/event-queue/index.js.map +1 -0
  113. package/dist/export/index.d.ts +2 -0
  114. package/dist/export/index.js +9 -0
  115. package/dist/export/index.js.map +1 -0
  116. package/dist/feature-flags/index.d.ts +1 -0
  117. package/dist/feature-flags/index.js +4 -0
  118. package/dist/feature-flags/index.js.map +1 -0
  119. package/dist/gateway/index.d.ts +4 -0
  120. package/dist/gateway/index.js +8 -0
  121. package/dist/gateway/index.js.map +1 -0
  122. package/dist/gateway/security/index.d.ts +2 -0
  123. package/dist/gateway/security/index.js +5 -0
  124. package/dist/gateway/security/index.js.map +1 -0
  125. package/dist/graph/index.d.ts +9 -0
  126. package/dist/graph/index.js +13 -0
  127. package/dist/graph/index.js.map +1 -0
  128. package/dist/graph-emitter-Bk0FqD53.d.ts +47 -0
  129. package/dist/graphql/index.d.ts +2 -0
  130. package/dist/graphql/index.js +7 -0
  131. package/dist/graphql/index.js.map +1 -0
  132. package/dist/graphql/services/index.d.ts +24 -0
  133. package/dist/graphql/services/index.js +5 -0
  134. package/dist/graphql/services/index.js.map +1 -0
  135. package/dist/graphql-BAVrUgBF.d.ts +22 -0
  136. package/dist/i18n/index.d.ts +2 -0
  137. package/dist/i18n/index.js +5 -0
  138. package/dist/i18n/index.js.map +1 -0
  139. package/dist/i18n-DA6IPnYy.d.ts +101 -0
  140. package/dist/index-4gKQKZ2B.d.ts +71 -0
  141. package/dist/index-B18rrFru.d.ts +42 -0
  142. package/dist/index-B70b5mYS.d.ts +33 -0
  143. package/dist/index-BMq3lFjj.d.ts +247 -0
  144. package/dist/index-BODgvRtL.d.ts +316 -0
  145. package/dist/index-BS2idbnr.d.ts +874 -0
  146. package/dist/index-BV3G48cH.d.ts +124 -0
  147. package/dist/index-CHbVw5M7.d.ts +73 -0
  148. package/dist/index-Cq_xNjcv.d.ts +602 -0
  149. package/dist/index-CrQgidpx.d.ts +77 -0
  150. package/dist/index-CyVEg86m.d.ts +309 -0
  151. package/dist/index-DOcBnmMe.d.ts +166 -0
  152. package/dist/index-DSOpj8DI.d.ts +17 -0
  153. package/dist/index-DW9q22GH.d.ts +75 -0
  154. package/dist/index-DlFDFyWD.d.ts +55 -0
  155. package/dist/index-DoK0bjhH.d.ts +607 -0
  156. package/dist/index-Dtf6FBaD.d.ts +199 -0
  157. package/dist/index-KVWGHMbS.d.ts +415 -0
  158. package/dist/index-PaojfSdd.d.ts +71 -0
  159. package/dist/index-RU_M5c74.d.ts +163 -0
  160. package/dist/index-UhkH2eaB.d.ts +192 -0
  161. package/dist/index-e_18DzAg.d.ts +18 -0
  162. package/dist/index-jOuh_TKn.d.ts +59 -0
  163. package/dist/index.d.ts +584 -0
  164. package/dist/index.js +2626 -0
  165. package/dist/index.js.map +1 -0
  166. package/dist/init/index.d.ts +2 -0
  167. package/dist/init/index.js +12 -0
  168. package/dist/init/index.js.map +1 -0
  169. package/dist/instrumentation/index.d.ts +3 -0
  170. package/dist/instrumentation/index.js +5 -0
  171. package/dist/instrumentation/index.js.map +1 -0
  172. package/dist/layer/index.d.ts +2 -0
  173. package/dist/layer/index.js +6 -0
  174. package/dist/layer/index.js.map +1 -0
  175. package/dist/layer-DDip18KY.d.ts +67 -0
  176. package/dist/logger/index.d.ts +2 -0
  177. package/dist/logger/index.js +4 -0
  178. package/dist/logger/index.js.map +1 -0
  179. package/dist/middleware/index.d.ts +3 -0
  180. package/dist/middleware/index.js +5 -0
  181. package/dist/middleware/index.js.map +1 -0
  182. package/dist/notifications/index.d.ts +4 -0
  183. package/dist/notifications/index.js +7 -0
  184. package/dist/notifications/index.js.map +1 -0
  185. package/dist/observability/index.d.ts +3 -0
  186. package/dist/observability/index.js +5 -0
  187. package/dist/observability/index.js.map +1 -0
  188. package/dist/pino-logger-RYLGXPHZ.js +5 -0
  189. package/dist/pino-logger-RYLGXPHZ.js.map +1 -0
  190. package/dist/prisma/generator/index.d.ts +1 -0
  191. package/dist/prisma/generator/index.js +228 -0
  192. package/dist/prisma/generator/index.js.map +1 -0
  193. package/dist/prisma/index.d.ts +5 -0
  194. package/dist/prisma/index.js +12 -0
  195. package/dist/prisma/index.js.map +1 -0
  196. package/dist/prisma-extension-krXnYnrN.d.ts +30 -0
  197. package/dist/rbac/index.d.ts +116 -0
  198. package/dist/rbac/index.js +7 -0
  199. package/dist/rbac/index.js.map +1 -0
  200. package/dist/sdk-THO3IWEE.js +136 -0
  201. package/dist/sdk-THO3IWEE.js.map +1 -0
  202. package/dist/server/index.d.ts +359 -0
  203. package/dist/server/index.js +884 -0
  204. package/dist/server/index.js.map +1 -0
  205. package/dist/telemetry/index.d.ts +83 -0
  206. package/dist/telemetry/index.js +209 -0
  207. package/dist/telemetry/index.js.map +1 -0
  208. package/dist/temporal/index.d.ts +148 -0
  209. package/dist/temporal/index.js +6 -0
  210. package/dist/temporal/index.js.map +1 -0
  211. package/dist/tracker/index.d.ts +5 -0
  212. package/dist/tracker/index.js +9 -0
  213. package/dist/tracker/index.js.map +1 -0
  214. package/dist/types-Bo2wkjSP.d.ts +35 -0
  215. package/dist/utils/index.d.ts +1 -0
  216. package/dist/utils/index.js +4 -0
  217. package/dist/utils/index.js.map +1 -0
  218. package/dist/workspace-guard-LHBNK4TG.js +5 -0
  219. package/dist/workspace-guard-LHBNK4TG.js.map +1 -0
  220. package/package.json +241 -0
@@ -0,0 +1,286 @@
1
+ import { __export, __name } from './chunk-XE4OXN2W.js';
2
+
3
+ // src/logger/index.ts
4
+ var logger_exports = {};
5
+ __export(logger_exports, {
6
+ Logger: () => Logger,
7
+ debug: () => debug,
8
+ error: () => error,
9
+ log: () => log,
10
+ logger: () => logger,
11
+ redactSensitiveFields: () => redactSensitiveFields,
12
+ warn: () => warn
13
+ });
14
+ var REDACTED_VALUE = "[REDACTED]";
15
+ var SENSITIVE_KEY_PATTERN = /(token|password|secret|authorization|api[-_]?key|client[-_]?secret|cookie|session)/i;
16
+ function isPlainObject(value) {
17
+ return typeof value === "object" && value !== null && !Array.isArray(value) && !(value instanceof Date);
18
+ }
19
+ __name(isPlainObject, "isPlainObject");
20
+ function redactValue(key, value) {
21
+ if (key && SENSITIVE_KEY_PATTERN.test(key)) {
22
+ return REDACTED_VALUE;
23
+ }
24
+ if (Array.isArray(value)) {
25
+ return value.map((item) => redactValue(void 0, item));
26
+ }
27
+ if (isPlainObject(value)) {
28
+ return Object.fromEntries(Object.entries(value).map(([entryKey, entryValue]) => [
29
+ entryKey,
30
+ redactValue(entryKey, entryValue)
31
+ ]));
32
+ }
33
+ return value;
34
+ }
35
+ __name(redactValue, "redactValue");
36
+ function redactSensitiveFields(value) {
37
+ return redactValue(void 0, value);
38
+ }
39
+ __name(redactSensitiveFields, "redactSensitiveFields");
40
+ var Logger = class _Logger {
41
+ static {
42
+ __name(this, "Logger");
43
+ }
44
+ level;
45
+ enableConsole;
46
+ context;
47
+ transport;
48
+ constructor(config = {
49
+ level: "info",
50
+ console: true
51
+ }) {
52
+ this.level = config.level;
53
+ this.enableConsole = config.console;
54
+ this.transport = config.transport;
55
+ }
56
+ /**
57
+ * Set context for all future log entries
58
+ */
59
+ setContext(context) {
60
+ this.context = context;
61
+ }
62
+ /**
63
+ * Get current context
64
+ */
65
+ getContext() {
66
+ return this.context;
67
+ }
68
+ /**
69
+ * Debug level logging
70
+ */
71
+ debug(message, ...args) {
72
+ const { metadata, error: error2 } = this.parseArgs(args);
73
+ this.logInternal("debug", message, metadata, error2);
74
+ }
75
+ /**
76
+ * Info level logging
77
+ */
78
+ info(message, ...args) {
79
+ const { metadata, error: error2 } = this.parseArgs(args);
80
+ this.logInternal("info", message, metadata, error2);
81
+ }
82
+ /**
83
+ * Warning level logging
84
+ */
85
+ warn(message, ...args) {
86
+ const { metadata, error: error2 } = this.parseArgs(args);
87
+ this.logInternal("warn", message, metadata, error2);
88
+ }
89
+ /**
90
+ * Error level logging
91
+ */
92
+ error(message, ...args) {
93
+ const { metadata, error: error2 } = this.parseArgs(args);
94
+ this.logInternal("error", message, metadata, error2);
95
+ }
96
+ /**
97
+ * Generic log method (console-compatible)
98
+ */
99
+ log(message, ...args) {
100
+ const { metadata, error: error2 } = this.parseArgs(args);
101
+ this.logInternal("info", message, metadata, error2);
102
+ }
103
+ /**
104
+ * Trace level logging (alias for debug)
105
+ */
106
+ trace(message, ...args) {
107
+ this.debug(message, ...args);
108
+ }
109
+ /**
110
+ * Parse variadic arguments into metadata and error
111
+ */
112
+ parseArgs(args) {
113
+ const metadata = {};
114
+ let error2;
115
+ for (const arg of args) {
116
+ if (arg instanceof Error) {
117
+ error2 = arg;
118
+ } else if (typeof arg === "object" && arg !== null) {
119
+ Object.assign(metadata, arg);
120
+ } else if (arg !== void 0 && arg !== null) {
121
+ metadata["data"] = arg;
122
+ }
123
+ }
124
+ return {
125
+ metadata: Object.keys(metadata).length > 0 ? metadata : {},
126
+ error: error2
127
+ };
128
+ }
129
+ /**
130
+ * Internal log method
131
+ */
132
+ logInternal(level, message, meta, error2) {
133
+ if (!this.shouldLog(level)) {
134
+ return;
135
+ }
136
+ const redactedMeta = meta ? redactSensitiveFields(meta) : void 0;
137
+ const redactedContext = this.context ? redactSensitiveFields(this.context) : void 0;
138
+ const logEntry = {
139
+ level,
140
+ message,
141
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
142
+ ...redactedMeta,
143
+ context: redactedMeta && redactedMeta["context"] || redactedContext,
144
+ ...error2 ? {
145
+ error: error2.message,
146
+ stack: error2.stack
147
+ } : {}
148
+ };
149
+ if (this.enableConsole) {
150
+ this.logToConsole(level, logEntry);
151
+ }
152
+ if (this.transport) {
153
+ this.transport.log(level, message, logEntry);
154
+ }
155
+ }
156
+ /**
157
+ * Log to console with appropriate method
158
+ */
159
+ logToConsole(level, entry) {
160
+ const output = JSON.stringify(entry, null, 2);
161
+ if (level === "error") {
162
+ console.error(output);
163
+ } else if (level === "warn") {
164
+ console.warn(output);
165
+ } else {
166
+ console.info(output);
167
+ }
168
+ }
169
+ /**
170
+ * Check if log level should be logged
171
+ */
172
+ shouldLog(level) {
173
+ const levels = [
174
+ "debug",
175
+ "info",
176
+ "warn",
177
+ "error"
178
+ ];
179
+ return levels.indexOf(level) >= levels.indexOf(this.level);
180
+ }
181
+ /**
182
+ * Create child logger with additional context
183
+ */
184
+ createChild(childContext) {
185
+ const child = new _Logger({
186
+ level: this.level,
187
+ console: this.enableConsole,
188
+ transport: this.transport
189
+ });
190
+ child.setContext({
191
+ ...this.context,
192
+ ...childContext
193
+ });
194
+ return child;
195
+ }
196
+ /**
197
+ * Create child logger (alias for createChild, accepts string context)
198
+ */
199
+ child(context) {
200
+ return this.createChild({
201
+ module: context
202
+ });
203
+ }
204
+ /**
205
+ * Create logger with metadata context
206
+ */
207
+ withMetadata(metadata) {
208
+ return {
209
+ log: /* @__PURE__ */ __name((message, ...args) => this.log(message, metadata, ...args), "log"),
210
+ error: /* @__PURE__ */ __name((message, ...args) => this.error(message, metadata, ...args), "error"),
211
+ warn: /* @__PURE__ */ __name((message, ...args) => this.warn(message, metadata, ...args), "warn"),
212
+ info: /* @__PURE__ */ __name((message, ...args) => this.info(message, metadata, ...args), "info"),
213
+ debug: /* @__PURE__ */ __name((message, ...args) => this.debug(message, metadata, ...args), "debug"),
214
+ trace: /* @__PURE__ */ __name((message, ...args) => this.trace(message, metadata, ...args), "trace")
215
+ };
216
+ }
217
+ /**
218
+ * Close logger and cleanup resources
219
+ */
220
+ async close() {
221
+ if (this.transport && "close" in this.transport && typeof this.transport.close === "function") {
222
+ await this.transport.close();
223
+ }
224
+ }
225
+ /**
226
+ * Change log level
227
+ */
228
+ setLevel(level) {
229
+ this.level = level;
230
+ }
231
+ /**
232
+ * Get current log level
233
+ */
234
+ getLevel() {
235
+ return this.level;
236
+ }
237
+ /**
238
+ * Enable or disable console output
239
+ */
240
+ setConsoleEnabled(enabled) {
241
+ this.enableConsole = enabled;
242
+ }
243
+ /**
244
+ * Check if console output is enabled
245
+ */
246
+ isConsoleEnabled() {
247
+ return this.enableConsole;
248
+ }
249
+ /**
250
+ * Add a custom transport
251
+ */
252
+ addTransport(transport) {
253
+ this.transport = transport;
254
+ }
255
+ /**
256
+ * Remove custom transport
257
+ */
258
+ removeTransport() {
259
+ this.transport = void 0;
260
+ }
261
+ };
262
+ var logger = new Logger();
263
+ var log = /* @__PURE__ */ __name((message, ...args) => {
264
+ logger.info(message, {
265
+ args
266
+ });
267
+ }, "log");
268
+ var warn = /* @__PURE__ */ __name((message, ...args) => {
269
+ logger.warn(message, {
270
+ args
271
+ });
272
+ }, "warn");
273
+ var error = /* @__PURE__ */ __name((message, ...args) => {
274
+ logger.error(message, {
275
+ args
276
+ });
277
+ }, "error");
278
+ var debug = /* @__PURE__ */ __name((message, ...args) => {
279
+ logger.debug(message, {
280
+ args
281
+ });
282
+ }, "debug");
283
+
284
+ export { Logger, debug, error, log, logger, logger_exports, redactSensitiveFields, warn };
285
+ //# sourceMappingURL=chunk-CBZNP6RF.js.map
286
+ //# sourceMappingURL=chunk-CBZNP6RF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/logger/index.ts"],"names":["REDACTED_VALUE","SENSITIVE_KEY_PATTERN","isPlainObject","value","Array","isArray","Date","redactValue","key","test","map","item","undefined","Object","fromEntries","entries","entryKey","entryValue","redactSensitiveFields","Logger","level","enableConsole","context","transport","config","console","setContext","getContext","debug","message","args","metadata","error","parseArgs","logInternal","info","warn","log","trace","arg","Error","assign","keys","length","meta","shouldLog","redactedMeta","redactedContext","logEntry","timestamp","toISOString","stack","logToConsole","entry","output","JSON","stringify","levels","indexOf","createChild","childContext","child","module","withMetadata","close","setLevel","getLevel","setConsoleEnabled","enabled","isConsoleEnabled","addTransport","removeTransport","logger"],"mappings":"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","file":"chunk-CBZNP6RF.js","sourcesContent":["/**\n * Logger Module\n * Structured logging compatible with console statements\n * 100% drop-in replacement for console.log/warn/error\n */\n\nimport type { SDKContext } from '../types/index.js';\n\nconst REDACTED_VALUE = '[REDACTED]';\nconst SENSITIVE_KEY_PATTERN = /(token|password|secret|authorization|api[-_]?key|client[-_]?secret|cookie|session)/i;\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value) && !(value instanceof Date);\n}\n\nfunction redactValue(key: string | undefined, value: unknown): unknown {\n if (key && SENSITIVE_KEY_PATTERN.test(key)) {\n return REDACTED_VALUE;\n }\n\n if (Array.isArray(value)) {\n return value.map((item) => redactValue(undefined, item));\n }\n\n if (isPlainObject(value)) {\n return Object.fromEntries(\n Object.entries(value).map(([entryKey, entryValue]) => [entryKey, redactValue(entryKey, entryValue)])\n );\n }\n\n return value;\n}\n\nexport function redactSensitiveFields<T>(value: T): T {\n return redactValue(undefined, value) as T;\n}\n\nexport type LogLevel = 'debug' | 'info' | 'warn' | 'error';\n\nexport interface LogMeta {\n [key: string]: unknown;\n context?: SDKContext;\n timestamp?: string;\n correlationId?: string;\n}\n\nexport interface LoggerConfig {\n level: LogLevel;\n console: boolean;\n transport?: LoggerTransport;\n}\n\nexport interface LoggerTransport {\n log(level: string, message: string, meta?: Record<string, unknown>): void;\n}\n\n/**\n * Logger class with structured logging support\n */\nexport class Logger {\n private level: LogLevel;\n private enableConsole: boolean;\n private context?: SDKContext;\n private transport?: LoggerTransport;\n\n constructor(config: LoggerConfig = { level: 'info', console: true }) {\n this.level = config.level;\n this.enableConsole = config.console;\n this.transport = config.transport;\n }\n\n /**\n * Set context for all future log entries\n */\n public setContext(context: SDKContext): void {\n this.context = context;\n }\n\n /**\n * Get current context\n */\n public getContext(): SDKContext | undefined {\n return this.context;\n }\n\n /**\n * Debug level logging\n */\n public debug(message: string, ...args: unknown[]): void {\n const { metadata, error } = this.parseArgs(args);\n this.logInternal('debug', message, metadata, error);\n }\n\n /**\n * Info level logging\n */\n public info(message: string, ...args: unknown[]): void {\n const { metadata, error } = this.parseArgs(args);\n this.logInternal('info', message, metadata, error);\n }\n\n /**\n * Warning level logging\n */\n public warn(message: string, ...args: unknown[]): void {\n const { metadata, error } = this.parseArgs(args);\n this.logInternal('warn', message, metadata, error);\n }\n\n /**\n * Error level logging\n */\n public error(message: string, ...args: unknown[]): void {\n const { metadata, error } = this.parseArgs(args);\n this.logInternal('error', message, metadata, error);\n }\n\n /**\n * Generic log method (console-compatible)\n */\n public log(message: string, ...args: unknown[]): void {\n const { metadata, error } = this.parseArgs(args);\n this.logInternal('info', message, metadata, error);\n }\n\n /**\n * Trace level logging (alias for debug)\n */\n public trace(message: string, ...args: unknown[]): void {\n this.debug(message, ...args);\n }\n\n /**\n * Parse variadic arguments into metadata and error\n */\n private parseArgs(args: unknown[]): {\n metadata: Record<string, unknown>;\n error?: Error;\n } {\n const metadata: Record<string, unknown> = {};\n let error: Error | undefined;\n\n for (const arg of args) {\n if (arg instanceof Error) {\n error = arg;\n } else if (typeof arg === 'object' && arg !== null) {\n Object.assign(metadata, arg as Record<string, unknown>);\n } else if (arg !== undefined && arg !== null) {\n // Convert primitive to metadata\n metadata['data'] = arg;\n }\n }\n\n return { metadata: Object.keys(metadata).length > 0 ? metadata : {}, error };\n }\n\n /**\n * Internal log method\n */\n private logInternal(level: LogLevel, message: string, meta?: Record<string, unknown>, error?: Error): void {\n if (!this.shouldLog(level)) {\n return;\n }\n\n const redactedMeta = meta ? redactSensitiveFields(meta) : undefined;\n const redactedContext = this.context ? redactSensitiveFields(this.context) : undefined;\n\n const logEntry = {\n level,\n message,\n timestamp: new Date().toISOString(),\n ...redactedMeta,\n context: (redactedMeta && redactedMeta['context']) || redactedContext,\n ...(error ? { error: error.message, stack: error.stack } : {}),\n };\n\n // Console output\n if (this.enableConsole) {\n this.logToConsole(level, logEntry);\n }\n\n // Custom transport\n if (this.transport) {\n this.transport.log(level, message, logEntry);\n }\n }\n\n /**\n * Log to console with appropriate method\n */\n private logToConsole(level: LogLevel, entry: Record<string, unknown>): void {\n const output = JSON.stringify(entry, null, 2);\n\n if (level === 'error') {\n console.error(output);\n } else if (level === 'warn') {\n console.warn(output);\n } else {\n console.info(output);\n }\n }\n\n /**\n * Check if log level should be logged\n */\n private shouldLog(level: LogLevel): boolean {\n const levels: LogLevel[] = ['debug', 'info', 'warn', 'error'];\n return levels.indexOf(level) >= levels.indexOf(this.level);\n }\n\n /**\n * Create child logger with additional context\n */\n public createChild(childContext: Partial<SDKContext>): Logger {\n const child = new Logger({\n level: this.level,\n console: this.enableConsole,\n transport: this.transport,\n });\n child.setContext({ ...this.context, ...childContext });\n return child;\n }\n\n /**\n * Create child logger (alias for createChild, accepts string context)\n */\n public child(context: string): Logger {\n return this.createChild({ module: context });\n }\n\n /**\n * Create logger with metadata context\n */\n public withMetadata(metadata: Record<string, unknown>): {\n log: (message: string, ...args: unknown[]) => void;\n error: (message: string, ...args: unknown[]) => void;\n warn: (message: string, ...args: unknown[]) => void;\n info: (message: string, ...args: unknown[]) => void;\n debug: (message: string, ...args: unknown[]) => void;\n trace: (message: string, ...args: unknown[]) => void;\n } {\n return {\n log: (message: string, ...args: unknown[]) => this.log(message, metadata, ...args),\n error: (message: string, ...args: unknown[]) => this.error(message, metadata, ...args),\n warn: (message: string, ...args: unknown[]) => this.warn(message, metadata, ...args),\n info: (message: string, ...args: unknown[]) => this.info(message, metadata, ...args),\n debug: (message: string, ...args: unknown[]) => this.debug(message, metadata, ...args),\n trace: (message: string, ...args: unknown[]) => this.trace(message, metadata, ...args),\n };\n }\n\n /**\n * Close logger and cleanup resources\n */\n public async close(): Promise<void> {\n // Close custom transport if it has a close method\n if (this.transport && 'close' in this.transport && typeof this.transport.close === 'function') {\n await (this.transport.close as () => Promise<void>)();\n }\n }\n\n /**\n * Change log level\n */\n public setLevel(level: LogLevel): void {\n this.level = level;\n }\n\n /**\n * Get current log level\n */\n public getLevel(): LogLevel {\n return this.level;\n }\n\n /**\n * Enable or disable console output\n */\n public setConsoleEnabled(enabled: boolean): void {\n this.enableConsole = enabled;\n }\n\n /**\n * Check if console output is enabled\n */\n public isConsoleEnabled(): boolean {\n return this.enableConsole;\n }\n\n /**\n * Add a custom transport\n */\n public addTransport(transport: LoggerTransport): void {\n this.transport = transport;\n }\n\n /**\n * Remove custom transport\n */\n public removeTransport(): void {\n this.transport = undefined;\n }\n}\n\n/**\n * Default logger instance\n */\nexport const logger = new Logger();\n\n/**\n * Console-compatible wrapper functions\n */\nexport const log = (message: string, ...args: unknown[]): void => {\n logger.info(message, { args });\n};\n\nexport const warn = (message: string, ...args: unknown[]): void => {\n logger.warn(message, { args });\n};\n\nexport const error = (message: string, ...args: unknown[]): void => {\n logger.error(message, { args });\n};\n\nexport const debug = (message: string, ...args: unknown[]): void => {\n logger.debug(message, { args });\n};\n"]}