@shellicar/winston-azure-application-insights 6.0.4 → 6.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.
- package/README.md +261 -8
- package/dist/cjs/index.cjs +454 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/esm/index.js +454 -0
- package/dist/esm/index.js.map +1 -0
- package/package.json +23 -19
- package/dist/index.cjs +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +0 -1
- /package/dist/{index.d.cts → cjs/index.d.cts} +0 -0
- /package/dist/{index.d.ts → esm/index.d.ts} +0 -0
|
@@ -0,0 +1,454 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
|
|
4
|
+
// src/private/ApplicationInsightsTransport.ts
|
|
5
|
+
import TransportStream from "winston-transport";
|
|
6
|
+
|
|
7
|
+
// src/public/enums.ts
|
|
8
|
+
var TelemetrySeverity = /* @__PURE__ */ ((TelemetrySeverity2) => {
|
|
9
|
+
TelemetrySeverity2["Verbose"] = "Verbose";
|
|
10
|
+
TelemetrySeverity2["Information"] = "Information";
|
|
11
|
+
TelemetrySeverity2["Warning"] = "Warning";
|
|
12
|
+
TelemetrySeverity2["Error"] = "Error";
|
|
13
|
+
TelemetrySeverity2["Critical"] = "Critical";
|
|
14
|
+
return TelemetrySeverity2;
|
|
15
|
+
})(TelemetrySeverity || {});
|
|
16
|
+
var ApplicationInsightsVersion = /* @__PURE__ */ ((ApplicationInsightsVersion2) => {
|
|
17
|
+
ApplicationInsightsVersion2["V2"] = "2.x";
|
|
18
|
+
ApplicationInsightsVersion2["V3"] = "3.x";
|
|
19
|
+
return ApplicationInsightsVersion2;
|
|
20
|
+
})(ApplicationInsightsVersion || {});
|
|
21
|
+
|
|
22
|
+
// src/private/consts.ts
|
|
23
|
+
var defaultSeverityMapping = {
|
|
24
|
+
error: "Error" /* Error */,
|
|
25
|
+
warn: "Warning" /* Warning */,
|
|
26
|
+
info: "Information" /* Information */,
|
|
27
|
+
verbose: "Verbose" /* Verbose */
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
// src/private/extractErrorsStep.ts
|
|
31
|
+
import { SPLAT } from "triple-beam";
|
|
32
|
+
|
|
33
|
+
// src/private/convertNullPrototypeToRegularObject.ts
|
|
34
|
+
var convertNullPrototypeToRegularObject = /* @__PURE__ */ __name((value) => {
|
|
35
|
+
if (value != null && typeof value === "object" && value.constructor === void 0) {
|
|
36
|
+
return { ...value };
|
|
37
|
+
}
|
|
38
|
+
return value;
|
|
39
|
+
}, "convertNullPrototypeToRegularObject");
|
|
40
|
+
|
|
41
|
+
// src/private/extractErrorsStep.ts
|
|
42
|
+
var extractErrorProperties = /* @__PURE__ */ __name((error, ...additionalIgnore) => {
|
|
43
|
+
const ignore = ["message", "name", "stack", ...additionalIgnore];
|
|
44
|
+
const properties = {};
|
|
45
|
+
for (const key of Object.keys(error)) {
|
|
46
|
+
if (!ignore.includes(key)) {
|
|
47
|
+
const value = error[key];
|
|
48
|
+
properties[key] = convertNullPrototypeToRegularObject(value);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return properties;
|
|
52
|
+
}, "extractErrorProperties");
|
|
53
|
+
var extractErrorsStep = /* @__PURE__ */ __name((info, isError2) => {
|
|
54
|
+
const exceptions = [];
|
|
55
|
+
if (isError2(info)) {
|
|
56
|
+
exceptions.push({
|
|
57
|
+
exception: info,
|
|
58
|
+
properties: extractErrorProperties(info, "level")
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
const splat = info[SPLAT];
|
|
62
|
+
if (splat != null) {
|
|
63
|
+
for (const item of splat) {
|
|
64
|
+
if (isError2(item)) {
|
|
65
|
+
exceptions.push({
|
|
66
|
+
exception: item,
|
|
67
|
+
properties: extractErrorProperties(item)
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return exceptions;
|
|
73
|
+
}, "extractErrorsStep");
|
|
74
|
+
|
|
75
|
+
// src/private/extractMessageStep.ts
|
|
76
|
+
import { SPLAT as SPLAT2 } from "triple-beam";
|
|
77
|
+
var getMessageAsString = /* @__PURE__ */ __name((info) => {
|
|
78
|
+
let messageAsString = String(info.message);
|
|
79
|
+
const splat = info[SPLAT2] ?? [];
|
|
80
|
+
const meta = splat[0];
|
|
81
|
+
if (meta?.message !== void 0) {
|
|
82
|
+
const expectedSuffix = ` ${meta.message}`;
|
|
83
|
+
if (messageAsString.endsWith(expectedSuffix)) {
|
|
84
|
+
messageAsString = messageAsString.slice(0, -expectedSuffix.length);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return { messageAsString, splat };
|
|
88
|
+
}, "getMessageAsString");
|
|
89
|
+
var extractMessageStepInternal = /* @__PURE__ */ __name((info) => {
|
|
90
|
+
const { messageAsString, splat } = getMessageAsString(info);
|
|
91
|
+
const strings = splat.filter((x) => typeof x === "string");
|
|
92
|
+
return [messageAsString, ...strings].join(" ");
|
|
93
|
+
}, "extractMessageStepInternal");
|
|
94
|
+
var extractMessageStep = /* @__PURE__ */ __name((info) => {
|
|
95
|
+
const result = extractMessageStepInternal(info);
|
|
96
|
+
return result;
|
|
97
|
+
}, "extractMessageStep");
|
|
98
|
+
|
|
99
|
+
// src/private/extractPropertiesStep.ts
|
|
100
|
+
import { SPLAT as SPLAT3 } from "triple-beam";
|
|
101
|
+
|
|
102
|
+
// src/private/isPlainObject.ts
|
|
103
|
+
var isPlainObject = /* @__PURE__ */ __name((obj) => {
|
|
104
|
+
if (obj == null || typeof obj !== "object") {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
const proto = Object.getPrototypeOf(obj);
|
|
108
|
+
return proto === Object.prototype || proto === null;
|
|
109
|
+
}, "isPlainObject");
|
|
110
|
+
|
|
111
|
+
// src/private/extractPropertiesStep.ts
|
|
112
|
+
var extractNonSymbolProps = /* @__PURE__ */ __name((obj) => {
|
|
113
|
+
const entries = Object.entries(obj);
|
|
114
|
+
if (entries.length === 0) {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
const result = {};
|
|
118
|
+
for (const [key, value] of entries) {
|
|
119
|
+
result[key] = convertNullPrototypeToRegularObject(value);
|
|
120
|
+
}
|
|
121
|
+
return result;
|
|
122
|
+
}, "extractNonSymbolProps");
|
|
123
|
+
var extractDefaultMeta = /* @__PURE__ */ __name((info, isError2) => {
|
|
124
|
+
if (isError2(info)) {
|
|
125
|
+
const { level: level2, message: message2, ...rest2 } = info;
|
|
126
|
+
return extractNonSymbolProps(rest2);
|
|
127
|
+
}
|
|
128
|
+
const { level, name, message, stack, cause, ...rest } = info;
|
|
129
|
+
return extractNonSymbolProps(rest);
|
|
130
|
+
}, "extractDefaultMeta");
|
|
131
|
+
var extractPropertiesStep = /* @__PURE__ */ __name((info, isError2 = (x) => x instanceof Error) => {
|
|
132
|
+
const defaultMeta = extractDefaultMeta(info, isError2);
|
|
133
|
+
const splat = info[SPLAT3];
|
|
134
|
+
if (splat == null) {
|
|
135
|
+
return defaultMeta ?? {};
|
|
136
|
+
}
|
|
137
|
+
const nonErrorItems = splat.filter((item) => !isError2(item));
|
|
138
|
+
const firstObject = nonErrorItems[0];
|
|
139
|
+
if (firstObject != null && isPlainObject(firstObject)) {
|
|
140
|
+
return { ...defaultMeta, ...firstObject };
|
|
141
|
+
}
|
|
142
|
+
return defaultMeta ?? {};
|
|
143
|
+
}, "extractPropertiesStep");
|
|
144
|
+
|
|
145
|
+
// src/private/extractSeverityStep.ts
|
|
146
|
+
var extractSeverityStep = /* @__PURE__ */ __name((info, severityMapping, levels) => {
|
|
147
|
+
const directMapping = severityMapping[info.level];
|
|
148
|
+
if (directMapping != null) {
|
|
149
|
+
return directMapping;
|
|
150
|
+
}
|
|
151
|
+
if (levels != null) {
|
|
152
|
+
const currentPriority = levels[info.level];
|
|
153
|
+
if (currentPriority != null) {
|
|
154
|
+
const sortedLevels = Object.entries(levels).map((x) => ({ levelName: x[0], priority: x[1] })).filter((x) => currentPriority < x.priority).sort((a, b) => a.priority - b.priority);
|
|
155
|
+
for (const { levelName } of sortedLevels) {
|
|
156
|
+
const severity = severityMapping[levelName];
|
|
157
|
+
if (severity) {
|
|
158
|
+
return severity;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
return "Verbose" /* Verbose */;
|
|
164
|
+
}, "extractSeverityStep");
|
|
165
|
+
|
|
166
|
+
// src/private/isError.ts
|
|
167
|
+
var isError = /* @__PURE__ */ __name((item) => item instanceof Error, "isError");
|
|
168
|
+
|
|
169
|
+
// src/private/ApplicationInsightsTransport.ts
|
|
170
|
+
var ApplicationInsightsTransport = class extends TransportStream {
|
|
171
|
+
static {
|
|
172
|
+
__name(this, "ApplicationInsightsTransport");
|
|
173
|
+
}
|
|
174
|
+
telemetryHandler;
|
|
175
|
+
options;
|
|
176
|
+
levels;
|
|
177
|
+
constructor(options) {
|
|
178
|
+
super({
|
|
179
|
+
level: options.level
|
|
180
|
+
});
|
|
181
|
+
this.options = {
|
|
182
|
+
telemetryHandler: options.telemetryHandler,
|
|
183
|
+
severityMapping: options.severityMapping ?? defaultSeverityMapping,
|
|
184
|
+
isError: options.isError ?? isError,
|
|
185
|
+
traceFilter: options.traceFilter ?? (() => true),
|
|
186
|
+
exceptionFilter: options.exceptionFilter ?? (() => true)
|
|
187
|
+
};
|
|
188
|
+
this.telemetryHandler = options.telemetryHandler;
|
|
189
|
+
}
|
|
190
|
+
log(info, next) {
|
|
191
|
+
const exceptions = this.getExceptions(info);
|
|
192
|
+
const trace = this.getTrace(info, exceptions);
|
|
193
|
+
this.telemetryHandler.handleTelemetry({
|
|
194
|
+
trace,
|
|
195
|
+
exceptions
|
|
196
|
+
});
|
|
197
|
+
next();
|
|
198
|
+
}
|
|
199
|
+
getTrace(info, filteredExceptions) {
|
|
200
|
+
const trace = this.extractTrace(info, filteredExceptions);
|
|
201
|
+
if (trace != null && this.options.traceFilter(trace)) {
|
|
202
|
+
return trace;
|
|
203
|
+
}
|
|
204
|
+
return null;
|
|
205
|
+
}
|
|
206
|
+
getExceptions(info) {
|
|
207
|
+
const exceptions = extractErrorsStep(info, this.options.isError);
|
|
208
|
+
const filtered = exceptions.filter(this.options.exceptionFilter);
|
|
209
|
+
return filtered;
|
|
210
|
+
}
|
|
211
|
+
extractTrace(info, errors) {
|
|
212
|
+
const shouldSendOnlyException = errors.length > 0 && this.options.isError(info);
|
|
213
|
+
if (shouldSendOnlyException) {
|
|
214
|
+
return null;
|
|
215
|
+
}
|
|
216
|
+
const message = extractMessageStep(info);
|
|
217
|
+
const properties = extractPropertiesStep(info, this.options.isError);
|
|
218
|
+
const severity = extractSeverityStep(info, this.options.severityMapping, this.levels);
|
|
219
|
+
return {
|
|
220
|
+
message,
|
|
221
|
+
properties,
|
|
222
|
+
severity
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
};
|
|
226
|
+
|
|
227
|
+
// src/private/ApplicationInsightsV2TelemetryHandler.ts
|
|
228
|
+
var ApplicationInsightsV2TelemetryHandler = class {
|
|
229
|
+
static {
|
|
230
|
+
__name(this, "ApplicationInsightsV2TelemetryHandler");
|
|
231
|
+
}
|
|
232
|
+
client;
|
|
233
|
+
severityMapping = {
|
|
234
|
+
["Verbose" /* Verbose */]: 0 /* Verbose */,
|
|
235
|
+
["Information" /* Information */]: 1 /* Information */,
|
|
236
|
+
["Warning" /* Warning */]: 2 /* Warning */,
|
|
237
|
+
["Error" /* Error */]: 3 /* Error */,
|
|
238
|
+
["Critical" /* Critical */]: 4 /* Critical */
|
|
239
|
+
};
|
|
240
|
+
constructor(options) {
|
|
241
|
+
this.client = options.client;
|
|
242
|
+
}
|
|
243
|
+
handleTelemetry(telemetry) {
|
|
244
|
+
if (telemetry.trace != null) {
|
|
245
|
+
const trace = {
|
|
246
|
+
message: telemetry.trace.message,
|
|
247
|
+
severity: this.mapSeverity(telemetry.trace.severity),
|
|
248
|
+
properties: telemetry.trace.properties
|
|
249
|
+
};
|
|
250
|
+
this.client.trackTrace(trace);
|
|
251
|
+
}
|
|
252
|
+
for (const error of telemetry.exceptions) {
|
|
253
|
+
const exceptionTelemetry = {
|
|
254
|
+
exception: error.exception,
|
|
255
|
+
properties: error.properties
|
|
256
|
+
};
|
|
257
|
+
this.client.trackException(exceptionTelemetry);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
mapSeverity(severity) {
|
|
261
|
+
return this.severityMapping[severity];
|
|
262
|
+
}
|
|
263
|
+
};
|
|
264
|
+
|
|
265
|
+
// src/private/ApplicationInsightsV3TelemetryHandler.ts
|
|
266
|
+
import { KnownSeverityLevel } from "applicationinsightsv3";
|
|
267
|
+
var ApplicationInsightsV3TelemetryHandler = class {
|
|
268
|
+
static {
|
|
269
|
+
__name(this, "ApplicationInsightsV3TelemetryHandler");
|
|
270
|
+
}
|
|
271
|
+
client;
|
|
272
|
+
severityMapping = {
|
|
273
|
+
["Verbose" /* Verbose */]: KnownSeverityLevel.Verbose,
|
|
274
|
+
["Information" /* Information */]: KnownSeverityLevel.Information,
|
|
275
|
+
["Warning" /* Warning */]: KnownSeverityLevel.Warning,
|
|
276
|
+
["Error" /* Error */]: KnownSeverityLevel.Error,
|
|
277
|
+
["Critical" /* Critical */]: KnownSeverityLevel.Critical
|
|
278
|
+
};
|
|
279
|
+
constructor(options) {
|
|
280
|
+
this.client = options.client;
|
|
281
|
+
}
|
|
282
|
+
handleTelemetry(telemetry) {
|
|
283
|
+
if (telemetry.trace != null) {
|
|
284
|
+
const trace = {
|
|
285
|
+
message: telemetry.trace.message,
|
|
286
|
+
severity: this.mapSeverity(telemetry.trace.severity),
|
|
287
|
+
properties: telemetry.trace.properties
|
|
288
|
+
};
|
|
289
|
+
this.client.trackTrace(trace);
|
|
290
|
+
}
|
|
291
|
+
for (const error of telemetry.exceptions) {
|
|
292
|
+
const exceptionTelemetry = {
|
|
293
|
+
exception: error.exception,
|
|
294
|
+
properties: error.properties
|
|
295
|
+
};
|
|
296
|
+
this.client.trackException(exceptionTelemetry);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
mapSeverity(severity) {
|
|
300
|
+
return this.severityMapping[severity];
|
|
301
|
+
}
|
|
302
|
+
};
|
|
303
|
+
|
|
304
|
+
// src/public/createTelemetryHandler.ts
|
|
305
|
+
var createTelemetryHandler = /* @__PURE__ */ __name((options) => {
|
|
306
|
+
switch (options.version) {
|
|
307
|
+
case "2.x" /* V2 */: {
|
|
308
|
+
return new ApplicationInsightsV2TelemetryHandler({
|
|
309
|
+
client: options.client
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
case "3.x" /* V3 */: {
|
|
313
|
+
return new ApplicationInsightsV3TelemetryHandler({
|
|
314
|
+
client: options.client
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
default: {
|
|
318
|
+
return options.telemetryHandler;
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
}, "createTelemetryHandler");
|
|
322
|
+
|
|
323
|
+
// src/public/createApplicationInsightsTransport.ts
|
|
324
|
+
var createApplicationInsightsTransport = /* @__PURE__ */ __name((options) => {
|
|
325
|
+
const telemetryHandler = createTelemetryHandler(options);
|
|
326
|
+
const transport = new ApplicationInsightsTransport({
|
|
327
|
+
telemetryHandler,
|
|
328
|
+
severityMapping: options.severityMapping,
|
|
329
|
+
exceptionFilter: options.exceptionFilter,
|
|
330
|
+
traceFilter: options.traceFilter,
|
|
331
|
+
isError: options.isError,
|
|
332
|
+
level: options.level
|
|
333
|
+
});
|
|
334
|
+
return transport;
|
|
335
|
+
}, "createApplicationInsightsTransport");
|
|
336
|
+
|
|
337
|
+
// src/public/createWinstonLogger.ts
|
|
338
|
+
import winston2 from "winston";
|
|
339
|
+
|
|
340
|
+
// src/private/createWinstonFormat.ts
|
|
341
|
+
import { MESSAGE } from "triple-beam";
|
|
342
|
+
import winston from "winston";
|
|
343
|
+
var unescapeColorCodes = /* @__PURE__ */ __name((info) => {
|
|
344
|
+
const message = info[MESSAGE];
|
|
345
|
+
return message.replaceAll(/\\u001b/g, "\x1B");
|
|
346
|
+
}, "unescapeColorCodes");
|
|
347
|
+
var unescapeColorCodesFormat = /* @__PURE__ */ __name(() => winston.format.printf(unescapeColorCodes), "unescapeColorCodesFormat");
|
|
348
|
+
var createWinstonFormat = /* @__PURE__ */ __name((config) => {
|
|
349
|
+
if (Array.isArray(config)) {
|
|
350
|
+
return winston.format.combine(...config);
|
|
351
|
+
}
|
|
352
|
+
const formats = [];
|
|
353
|
+
if (config.timestamp === true) {
|
|
354
|
+
formats.push(winston.format.timestamp());
|
|
355
|
+
} else if (typeof config.timestamp === "object") {
|
|
356
|
+
formats.push(winston.format.timestamp(config.timestamp));
|
|
357
|
+
}
|
|
358
|
+
if (config.errors === true) {
|
|
359
|
+
formats.push(winston.format.errors({ stack: true }));
|
|
360
|
+
} else if (typeof config.errors === "object") {
|
|
361
|
+
formats.push(winston.format.errors(config.errors));
|
|
362
|
+
}
|
|
363
|
+
if (config.colorize === true) {
|
|
364
|
+
formats.push(winston.format.colorize({ all: true }));
|
|
365
|
+
} else if (typeof config.colorize === "object") {
|
|
366
|
+
formats.push(winston.format.colorize(config.colorize));
|
|
367
|
+
}
|
|
368
|
+
if (config.output === "simple") {
|
|
369
|
+
formats.push(winston.format.simple());
|
|
370
|
+
}
|
|
371
|
+
if (config.output === "json") {
|
|
372
|
+
formats.push(winston.format.json());
|
|
373
|
+
if (config.colorize === true || typeof config.colorize === "object") {
|
|
374
|
+
formats.push(unescapeColorCodesFormat());
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
return winston.format.combine(...formats);
|
|
378
|
+
}, "createWinstonFormat");
|
|
379
|
+
|
|
380
|
+
// src/public/isRunningInAzure.ts
|
|
381
|
+
import { env } from "node:process";
|
|
382
|
+
var isRunningInAzure = /* @__PURE__ */ __name(() => {
|
|
383
|
+
return env.WEBSITE_INSTANCE_ID !== void 0;
|
|
384
|
+
}, "isRunningInAzure");
|
|
385
|
+
|
|
386
|
+
// src/public/isRunningLocally.ts
|
|
387
|
+
var isRunningLocally = /* @__PURE__ */ __name(() => {
|
|
388
|
+
return !isRunningInAzure();
|
|
389
|
+
}, "isRunningLocally");
|
|
390
|
+
|
|
391
|
+
// src/public/createWinstonLogger.ts
|
|
392
|
+
var createWinstonLogger = /* @__PURE__ */ __name((options) => {
|
|
393
|
+
const { severityMapping, exceptionFilter, traceFilter, isError: isError2, ...rest } = options.insights;
|
|
394
|
+
const telemetryHandler = createTelemetryHandler(rest);
|
|
395
|
+
const transports = [];
|
|
396
|
+
const consoleEnabled = options.winston?.console?.enabled ?? isRunningLocally();
|
|
397
|
+
if (consoleEnabled) {
|
|
398
|
+
let consoleFormatConfig;
|
|
399
|
+
if (Array.isArray(options.winston?.console?.format)) {
|
|
400
|
+
consoleFormatConfig = options.winston.console.format;
|
|
401
|
+
} else {
|
|
402
|
+
const userFormat = options.winston?.console?.format ?? {};
|
|
403
|
+
consoleFormatConfig = {
|
|
404
|
+
output: userFormat.output ?? "json",
|
|
405
|
+
timestamp: userFormat.timestamp ?? true,
|
|
406
|
+
errors: userFormat.errors ?? { stack: true },
|
|
407
|
+
colorize: userFormat.colorize ?? true
|
|
408
|
+
};
|
|
409
|
+
}
|
|
410
|
+
const consoleFormat = createWinstonFormat(consoleFormatConfig);
|
|
411
|
+
transports.push(
|
|
412
|
+
new winston2.transports.Console({
|
|
413
|
+
format: consoleFormat,
|
|
414
|
+
level: options.winston?.console?.level,
|
|
415
|
+
stderrLevels: ["error", "crit", "alert", "emerg"],
|
|
416
|
+
consoleWarnLevels: ["warn", "warning"]
|
|
417
|
+
})
|
|
418
|
+
);
|
|
419
|
+
}
|
|
420
|
+
const insightsEnabled = options.winston?.insights?.enabled ?? true;
|
|
421
|
+
if (insightsEnabled) {
|
|
422
|
+
const transport = createApplicationInsightsTransport({
|
|
423
|
+
telemetryHandler,
|
|
424
|
+
severityMapping,
|
|
425
|
+
exceptionFilter,
|
|
426
|
+
traceFilter,
|
|
427
|
+
isError: isError2,
|
|
428
|
+
level: options.winston?.insights?.level
|
|
429
|
+
});
|
|
430
|
+
transports.push(transport);
|
|
431
|
+
}
|
|
432
|
+
const level = options.winston?.defaults?.level ?? "info";
|
|
433
|
+
const levels = options.winston?.levels ?? winston2.config.npm.levels;
|
|
434
|
+
const globalFormats = options.winston?.defaults?.format ?? [];
|
|
435
|
+
const format = winston2.format.combine(...globalFormats);
|
|
436
|
+
return winston2.createLogger({
|
|
437
|
+
...options.winston?.options,
|
|
438
|
+
level,
|
|
439
|
+
levels,
|
|
440
|
+
format,
|
|
441
|
+
transports,
|
|
442
|
+
defaultMeta: options.winston?.defaults?.defaultMeta
|
|
443
|
+
});
|
|
444
|
+
}, "createWinstonLogger");
|
|
445
|
+
export {
|
|
446
|
+
ApplicationInsightsVersion,
|
|
447
|
+
TelemetrySeverity,
|
|
448
|
+
createApplicationInsightsTransport,
|
|
449
|
+
createTelemetryHandler,
|
|
450
|
+
createWinstonLogger,
|
|
451
|
+
isRunningInAzure,
|
|
452
|
+
isRunningLocally
|
|
453
|
+
};
|
|
454
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/private/ApplicationInsightsTransport.ts","../../src/public/enums.ts","../../src/private/consts.ts","../../src/private/extractErrorsStep.ts","../../src/private/convertNullPrototypeToRegularObject.ts","../../src/private/extractMessageStep.ts","../../src/private/extractPropertiesStep.ts","../../src/private/isPlainObject.ts","../../src/private/extractSeverityStep.ts","../../src/private/isError.ts","../../src/private/ApplicationInsightsV2TelemetryHandler.ts","../../src/private/ApplicationInsightsV3TelemetryHandler.ts","../../src/public/createTelemetryHandler.ts","../../src/public/createApplicationInsightsTransport.ts","../../src/public/createWinstonLogger.ts","../../src/private/createWinstonFormat.ts","../../src/public/isRunningInAzure.ts","../../src/public/isRunningLocally.ts"],"sourcesContent":["import TransportStream from 'winston-transport';\nimport type { TelemetryDataException, TelemetryHandler, WinstonLevels } from '../public/types';\nimport { defaultSeverityMapping } from './consts';\nimport { extractErrorsStep } from './extractErrorsStep';\nimport { extractMessageStep } from './extractMessageStep';\nimport { extractPropertiesStep } from './extractPropertiesStep';\nimport { extractSeverityStep } from './extractSeverityStep';\nimport { isError } from './isError';\nimport type { ApplicationInsightsTransportOptions, RequiredOptions, WinstonInfo } from './types';\n\nexport class ApplicationInsightsTransport extends TransportStream {\n private readonly telemetryHandler: TelemetryHandler;\n private readonly options: RequiredOptions;\n\n public levels?: WinstonLevels;\n\n constructor(options: ApplicationInsightsTransportOptions) {\n super({\n level: options.level,\n });\n this.options = {\n telemetryHandler: options.telemetryHandler,\n severityMapping: options.severityMapping ?? defaultSeverityMapping,\n isError: options.isError ?? isError,\n traceFilter: options.traceFilter ?? (() => true),\n exceptionFilter: options.exceptionFilter ?? (() => true),\n };\n this.telemetryHandler = options.telemetryHandler;\n }\n\n public override log(info: WinstonInfo, next: () => void) {\n const exceptions = this.getExceptions(info);\n const trace = this.getTrace(info, exceptions);\n\n this.telemetryHandler.handleTelemetry({\n trace,\n exceptions,\n });\n\n next();\n }\n\n private getTrace(info: WinstonInfo, filteredExceptions: TelemetryDataException[]) {\n const trace = this.extractTrace(info, filteredExceptions);\n if (trace != null && this.options.traceFilter(trace)) {\n return trace;\n }\n return null;\n }\n\n private getExceptions(info: WinstonInfo) {\n const exceptions = extractErrorsStep(info, this.options.isError);\n const filtered = exceptions.filter(this.options.exceptionFilter);\n return filtered;\n }\n\n private extractTrace(info: WinstonInfo, errors: TelemetryDataException[]) {\n const shouldSendOnlyException = errors.length > 0 && this.options.isError(info);\n\n if (shouldSendOnlyException) {\n return null;\n }\n\n const message = extractMessageStep(info);\n const properties = extractPropertiesStep(info, this.options.isError);\n const severity = extractSeverityStep(info, this.options.severityMapping, this.levels);\n\n return {\n message: message,\n properties,\n severity,\n };\n }\n}\n","export enum TelemetrySeverity {\n Verbose = 'Verbose',\n Information = 'Information',\n Warning = 'Warning',\n Error = 'Error',\n Critical = 'Critical',\n}\n\nexport enum ApplicationInsightsVersion {\n V2 = '2.x',\n V3 = '3.x',\n}\n","import { TelemetrySeverity } from '../public/enums';\nimport type { SeverityMapping } from '../public/types';\n\nexport const defaultSeverityMapping: SeverityMapping = {\n error: TelemetrySeverity.Error,\n warn: TelemetrySeverity.Warning,\n info: TelemetrySeverity.Information,\n verbose: TelemetrySeverity.Verbose,\n};\n","import { SPLAT } from 'triple-beam';\nimport type { IsError, TelemetryDataException } from '../public/types';\nimport { convertNullPrototypeToRegularObject } from './convertNullPrototypeToRegularObject';\nimport type { WinstonInfo } from './types';\n\nconst extractErrorProperties = (error: Error, ...additionalIgnore: string[]): Record<string, unknown> => {\n const ignore = ['message', 'name', 'stack', ...additionalIgnore];\n const properties: Record<string, unknown> = {};\n for (const key of Object.keys(error) as (keyof Error)[]) {\n if (!ignore.includes(key)) {\n const value = error[key];\n properties[key] = convertNullPrototypeToRegularObject(value);\n }\n }\n return properties;\n};\n\nexport const extractErrorsStep = (info: WinstonInfo, isError: IsError): TelemetryDataException[] => {\n const exceptions: TelemetryDataException[] = [];\n\n if (isError(info)) {\n exceptions.push({\n exception: info,\n properties: extractErrorProperties(info, 'level'),\n });\n }\n\n const splat = info[SPLAT];\n if (splat != null) {\n for (const item of splat) {\n if (isError(item)) {\n exceptions.push({\n exception: item,\n properties: extractErrorProperties(item),\n });\n }\n }\n }\n\n return exceptions;\n};\n","/**\n * Ensures that the object returned has a constructor to avoid a {@link TypeError} from the `applicationinsights` library.\n * @param value\n * @returns\n */\nexport const convertNullPrototypeToRegularObject = (value: unknown): unknown => {\n if (value != null && typeof value === 'object' && value.constructor === undefined) {\n return { ...value };\n }\n return value;\n};\n","import { SPLAT } from 'triple-beam';\nimport type { WinstonInfo } from './types';\n\nconst getMessageAsString = (info: WinstonInfo) => {\n let messageAsString = String(info.message);\n const splat = info[SPLAT] ?? [];\n const meta = splat[0] as { message?: unknown };\n\n if (meta?.message !== undefined) {\n const expectedSuffix = ` ${meta.message}`;\n if (messageAsString.endsWith(expectedSuffix)) {\n messageAsString = messageAsString.slice(0, -expectedSuffix.length);\n }\n }\n\n return { messageAsString, splat };\n};\n\nconst extractMessageStepInternal = (info: WinstonInfo): string => {\n const { messageAsString, splat } = getMessageAsString(info);\n const strings = splat.filter((x) => typeof x === 'string');\n return [messageAsString, ...strings].join(' ');\n};\n\nexport const extractMessageStep = (info: WinstonInfo): string => {\n const result = extractMessageStepInternal(info);\n return result;\n};\n","import { SPLAT } from 'triple-beam';\nimport type { IsError, TelemetryDataProperties } from '../public/types';\nimport { convertNullPrototypeToRegularObject } from './convertNullPrototypeToRegularObject';\nimport { isPlainObject } from './isPlainObject';\nimport type { WinstonInfo } from './types';\n\nconst extractNonSymbolProps = (obj: Record<string | symbol, unknown>): Record<string, unknown> | null => {\n const entries = Object.entries(obj);\n if (entries.length === 0) {\n return null;\n }\n\n const result: Record<string, unknown> = {};\n for (const [key, value] of entries) {\n result[key] = convertNullPrototypeToRegularObject(value);\n }\n return result;\n};\n\nconst extractDefaultMeta = (info: WinstonInfo, isError: IsError): Record<string, unknown> | null => {\n if (isError(info)) {\n const { level, message, ...rest } = info;\n return extractNonSymbolProps(rest);\n }\n const { level, name, message, stack, cause, ...rest } = info;\n return extractNonSymbolProps(rest);\n};\n\nexport const extractPropertiesStep = (info: WinstonInfo, isError: IsError = (x) => x instanceof Error): TelemetryDataProperties => {\n const defaultMeta = extractDefaultMeta(info, isError);\n\n const splat = info[SPLAT];\n if (splat == null) {\n return defaultMeta ?? {};\n }\n\n const nonErrorItems = splat.filter((item) => !isError(item));\n const firstObject = nonErrorItems[0];\n if (firstObject != null && isPlainObject(firstObject)) {\n return { ...defaultMeta, ...firstObject };\n }\n return defaultMeta ?? {};\n};\n","export const isPlainObject = (obj: unknown): obj is Record<string, unknown> => {\n if (obj == null || typeof obj !== 'object') {\n return false;\n }\n const proto = Object.getPrototypeOf(obj);\n return proto === Object.prototype || proto === null;\n};\n","import { TelemetrySeverity } from '../public/enums';\nimport type { SeverityMapping, WinstonLevels } from '../public/types';\nimport type { WinstonInfo } from './types';\n\nexport const extractSeverityStep = (info: WinstonInfo, severityMapping: SeverityMapping, levels?: WinstonLevels): TelemetrySeverity => {\n const directMapping = severityMapping[info.level];\n if (directMapping != null) {\n return directMapping;\n }\n\n if (levels != null) {\n const currentPriority = levels[info.level];\n\n if (currentPriority != null) {\n const sortedLevels = Object.entries(levels)\n .map((x) => ({ levelName: x[0], priority: x[1] }))\n .filter((x) => currentPriority < x.priority)\n .sort((a, b) => a.priority - b.priority);\n\n for (const { levelName } of sortedLevels) {\n const severity = severityMapping[levelName];\n if (severity) {\n return severity;\n }\n }\n }\n }\n\n return TelemetrySeverity.Verbose;\n};\n","export const isError = (item: unknown): item is Error => item instanceof Error;\n","import type { ExceptionTelemetry, TraceTelemetry } from 'applicationinsightsv2/out/Declarations/Contracts';\nimport { TelemetrySeverity } from '../public/enums';\nimport type { ITelemetryClientV2 } from '../public/ITelemetryClientV2';\nimport type { TelemetryData, TelemetryHandler } from '../public/types';\n\n// From application insights\n// Declare locally to avoid importing the library\nenum SeverityLevel {\n Verbose = 0,\n Information = 1,\n Warning = 2,\n Error = 3,\n Critical = 4,\n}\n\nexport interface ApplicationInsightsV2TelemetryHandlerOptions {\n client: ITelemetryClientV2;\n}\n\nexport class ApplicationInsightsV2TelemetryHandler implements TelemetryHandler {\n private readonly client: ITelemetryClientV2;\n private readonly severityMapping: Record<TelemetrySeverity, SeverityLevel> = {\n [TelemetrySeverity.Verbose]: SeverityLevel.Verbose,\n [TelemetrySeverity.Information]: SeverityLevel.Information,\n [TelemetrySeverity.Warning]: SeverityLevel.Warning,\n [TelemetrySeverity.Error]: SeverityLevel.Error,\n [TelemetrySeverity.Critical]: SeverityLevel.Critical,\n };\n\n constructor(options: ApplicationInsightsV2TelemetryHandlerOptions) {\n this.client = options.client;\n }\n\n public handleTelemetry(telemetry: TelemetryData): void {\n if (telemetry.trace != null) {\n const trace: TraceTelemetry = {\n message: telemetry.trace.message,\n severity: this.mapSeverity(telemetry.trace.severity),\n properties: telemetry.trace.properties,\n };\n this.client.trackTrace(trace);\n }\n\n for (const error of telemetry.exceptions) {\n const exceptionTelemetry = {\n exception: error.exception,\n properties: error.properties,\n } satisfies ExceptionTelemetry;\n\n this.client.trackException(exceptionTelemetry);\n }\n }\n\n private mapSeverity(severity: TelemetrySeverity): SeverityLevel {\n return this.severityMapping[severity];\n }\n}\n","import type { ExceptionTelemetry, TraceTelemetry } from 'applicationinsightsv3';\nimport { KnownSeverityLevel } from 'applicationinsightsv3';\nimport { TelemetrySeverity } from '../public/enums';\nimport type { ITelemetryClientV3 } from '../public/ITelemetryClientV3';\nimport type { TelemetryData, TelemetryHandler } from '../public/types';\n\nexport interface ApplicationInsightsV3TelemetryHandlerOptions {\n client: ITelemetryClientV3;\n}\n\nexport class ApplicationInsightsV3TelemetryHandler implements TelemetryHandler {\n private readonly client: ITelemetryClientV3;\n private readonly severityMapping: Record<TelemetrySeverity, KnownSeverityLevel> = {\n [TelemetrySeverity.Verbose]: KnownSeverityLevel.Verbose,\n [TelemetrySeverity.Information]: KnownSeverityLevel.Information,\n [TelemetrySeverity.Warning]: KnownSeverityLevel.Warning,\n [TelemetrySeverity.Error]: KnownSeverityLevel.Error,\n [TelemetrySeverity.Critical]: KnownSeverityLevel.Critical,\n };\n\n constructor(options: ApplicationInsightsV3TelemetryHandlerOptions) {\n this.client = options.client;\n }\n\n public handleTelemetry(telemetry: TelemetryData): void {\n if (telemetry.trace != null) {\n const trace: TraceTelemetry = {\n message: telemetry.trace.message,\n severity: this.mapSeverity(telemetry.trace.severity),\n properties: telemetry.trace.properties,\n };\n this.client.trackTrace(trace);\n }\n\n for (const error of telemetry.exceptions) {\n const exceptionTelemetry = {\n exception: error.exception,\n properties: error.properties,\n } satisfies ExceptionTelemetry;\n\n this.client.trackException(exceptionTelemetry);\n }\n }\n\n private mapSeverity(severity: TelemetrySeverity): KnownSeverityLevel {\n return this.severityMapping[severity];\n }\n}\n","import { ApplicationInsightsV2TelemetryHandler } from '../private/ApplicationInsightsV2TelemetryHandler';\nimport { ApplicationInsightsV3TelemetryHandler } from '../private/ApplicationInsightsV3TelemetryHandler';\nimport { ApplicationInsightsVersion } from './enums';\nimport type { CreateTelemetryHandlerOptions, TelemetryHandler } from './types';\n\nexport const createTelemetryHandler = (options: CreateTelemetryHandlerOptions): TelemetryHandler => {\n switch (options.version) {\n case ApplicationInsightsVersion.V2: {\n return new ApplicationInsightsV2TelemetryHandler({\n client: options.client,\n });\n }\n case ApplicationInsightsVersion.V3: {\n return new ApplicationInsightsV3TelemetryHandler({\n client: options.client,\n });\n }\n default: {\n return options.telemetryHandler;\n }\n }\n};\n","import type TransportStream from 'winston-transport';\nimport { ApplicationInsightsTransport } from '../private/ApplicationInsightsTransport';\nimport { createTelemetryHandler } from './createTelemetryHandler';\nimport type { CreateApplicationInsightsTransportOptions } from './types';\n\nexport const createApplicationInsightsTransport = (options: CreateApplicationInsightsTransportOptions): TransportStream => {\n const telemetryHandler = createTelemetryHandler(options);\n\n const transport = new ApplicationInsightsTransport({\n telemetryHandler,\n severityMapping: options.severityMapping,\n exceptionFilter: options.exceptionFilter,\n traceFilter: options.traceFilter,\n isError: options.isError,\n level: options.level,\n });\n\n return transport;\n};\n","import winston from 'winston';\nimport type TransportStream from 'winston-transport';\nimport { type CreateWinstonFormatOptions, createWinstonFormat } from '../private/createWinstonFormat';\nimport { createApplicationInsightsTransport } from './createApplicationInsightsTransport';\nimport { createTelemetryHandler } from './createTelemetryHandler';\nimport { isRunningLocally } from './isRunningLocally';\nimport type { CreateWinstonLoggerOptions } from './types';\n\nexport const createWinstonLogger = (options: CreateWinstonLoggerOptions): winston.Logger => {\n const { severityMapping, exceptionFilter, traceFilter, isError, ...rest } = options.insights;\n\n const telemetryHandler = createTelemetryHandler(rest);\n\n const transports: TransportStream[] = [];\n\n const consoleEnabled = options.winston?.console?.enabled ?? isRunningLocally();\n if (consoleEnabled) {\n let consoleFormatConfig: CreateWinstonFormatOptions | undefined;\n\n if (Array.isArray(options.winston?.console?.format)) {\n consoleFormatConfig = options.winston.console.format;\n } else {\n const userFormat = options.winston?.console?.format ?? {};\n consoleFormatConfig = {\n output: userFormat.output ?? 'json',\n timestamp: userFormat.timestamp ?? true,\n errors: userFormat.errors ?? { stack: true },\n colorize: userFormat.colorize ?? true,\n };\n }\n\n const consoleFormat = createWinstonFormat(consoleFormatConfig);\n\n transports.push(\n new winston.transports.Console({\n format: consoleFormat,\n level: options.winston?.console?.level,\n stderrLevels: ['error', 'crit', 'alert', 'emerg'],\n consoleWarnLevels: ['warn', 'warning'],\n }),\n );\n }\n\n // Insights transport\n const insightsEnabled = options.winston?.insights?.enabled ?? true;\n if (insightsEnabled) {\n const transport = createApplicationInsightsTransport({\n telemetryHandler,\n severityMapping,\n exceptionFilter,\n traceFilter,\n isError,\n level: options.winston?.insights?.level,\n });\n transports.push(transport);\n }\n\n // Merge defaults with logger-level options\n const level = options.winston?.defaults?.level ?? 'info';\n const levels = options.winston?.levels ?? winston.config.npm.levels;\n const globalFormats = options.winston?.defaults?.format ?? [];\n\n const format = winston.format.combine(...globalFormats);\n\n return winston.createLogger({\n ...options.winston?.options,\n level,\n levels,\n format,\n transports,\n defaultMeta: options.winston?.defaults?.defaultMeta,\n });\n};\n","import type { ColorizeOptions, Format, TimestampOptions, TransformableInfo } from 'logform';\nimport { MESSAGE } from 'triple-beam';\nimport winston from 'winston';\n\n/**\n * Converts escaped ANSI color codes back to actual ANSI escape sequences.\n * Specifically converts `\\\\u001b` (escaped) to `\\u001b` (ESC character, ^[ or 0x1B).\n * @see https://github.com/winstonjs/logform#colorize\n */\nconst unescapeColorCodes = (info: TransformableInfo) => {\n const message = info[MESSAGE] as string;\n return message.replaceAll(/\\\\u001b/g, '\\u001b');\n};\n\nconst unescapeColorCodesFormat = () => winston.format.printf(unescapeColorCodes);\n\nexport type CreateWinstonFormatOptions =\n | Format[]\n | {\n output: 'json' | 'simple';\n errors: boolean | { stack?: boolean };\n timestamp: boolean | TimestampOptions;\n colorize: boolean | ColorizeOptions;\n };\n\nexport const createWinstonFormat = (config: CreateWinstonFormatOptions): Format => {\n if (Array.isArray(config)) {\n return winston.format.combine(...config);\n }\n\n const formats: Format[] = [];\n\n if (config.timestamp === true) {\n formats.push(winston.format.timestamp());\n } else if (typeof config.timestamp === 'object') {\n formats.push(winston.format.timestamp(config.timestamp));\n }\n\n if (config.errors === true) {\n formats.push(winston.format.errors({ stack: true }));\n } else if (typeof config.errors === 'object') {\n formats.push(winston.format.errors(config.errors));\n }\n\n if (config.colorize === true) {\n formats.push(winston.format.colorize({ all: true }));\n } else if (typeof config.colorize === 'object') {\n formats.push(winston.format.colorize(config.colorize));\n }\n\n if (config.output === 'simple') {\n formats.push(winston.format.simple());\n }\n if (config.output === 'json') {\n formats.push(winston.format.json());\n\n if (config.colorize === true || typeof config.colorize === 'object') {\n formats.push(unescapeColorCodesFormat());\n }\n }\n\n return winston.format.combine(...formats);\n};\n","import { env } from 'node:process';\n\nexport const isRunningInAzure = () => {\n return env.WEBSITE_INSTANCE_ID !== undefined;\n};\n","import { isRunningInAzure } from './isRunningInAzure';\n\nexport const isRunningLocally = () => {\n return !isRunningInAzure();\n};\n"],"mappings":"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","names":["TelemetrySeverity","ApplicationInsightsVersion","isError","SPLAT","SPLAT","SPLAT","isError","level","message","rest","SPLAT","winston","isError","winston"]}
|
package/package.json
CHANGED
|
@@ -1,28 +1,31 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shellicar/winston-azure-application-insights",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.6",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Azure Application Insights transport for Winston",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"files": [
|
|
8
8
|
"dist"
|
|
9
9
|
],
|
|
10
|
-
"main": "./dist/index.cjs",
|
|
11
|
-
"module": "./dist/index.js",
|
|
12
|
-
"types": "./dist/index.d.ts",
|
|
10
|
+
"main": "./dist/cjs/index.cjs",
|
|
11
|
+
"module": "./dist/esm/index.js",
|
|
12
|
+
"types": "./dist/esm/index.d.ts",
|
|
13
13
|
"exports": {
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
"
|
|
20
|
-
|
|
14
|
+
".": {
|
|
15
|
+
"import": {
|
|
16
|
+
"types": "./dist/esm/index.d.ts",
|
|
17
|
+
"default": "./dist/esm/index.js"
|
|
18
|
+
},
|
|
19
|
+
"require": {
|
|
20
|
+
"types": "./dist/cjs/index.d.cts",
|
|
21
|
+
"default": "./dist/cjs/index.cjs"
|
|
22
|
+
}
|
|
21
23
|
}
|
|
22
24
|
},
|
|
23
25
|
"repository": {
|
|
24
26
|
"type": "git",
|
|
25
|
-
"url": "git+https://github.com/shellicar/
|
|
27
|
+
"url": "git+https://github.com/shellicar/ecosystem.git",
|
|
28
|
+
"directory": "packages/winston-azure-application-insights"
|
|
26
29
|
},
|
|
27
30
|
"keywords": [
|
|
28
31
|
"winston",
|
|
@@ -40,28 +43,29 @@
|
|
|
40
43
|
],
|
|
41
44
|
"license": "MIT",
|
|
42
45
|
"devDependencies": {
|
|
43
|
-
"@types/node": "^25.
|
|
46
|
+
"@types/node": "^25.6.2",
|
|
44
47
|
"@types/triple-beam": "^1.3.5",
|
|
45
|
-
"@vitest/coverage-v8": "^4.
|
|
48
|
+
"@vitest/coverage-v8": "^4.1.5",
|
|
46
49
|
"logform": "^2.7.0",
|
|
47
|
-
"terser": "^5.46.
|
|
50
|
+
"terser": "^5.46.2",
|
|
48
51
|
"testdouble": "^3.20.2",
|
|
49
52
|
"triple-beam": "^1.4.1",
|
|
50
53
|
"tsup": "^8.5.1",
|
|
51
54
|
"tsx": "^4.21.0",
|
|
52
55
|
"typescript": "^5.9.3",
|
|
53
|
-
"vitest": "^4.
|
|
56
|
+
"vitest": "^4.1.5",
|
|
54
57
|
"winston": "^3.19.0",
|
|
55
|
-
"winston-transport": "^4.9.0"
|
|
58
|
+
"winston-transport": "^4.9.0",
|
|
59
|
+
"@shellicar/typescript-config": "^1.0.0"
|
|
56
60
|
},
|
|
57
61
|
"optionalDependencies": {
|
|
58
62
|
"applicationinsightsv2": "npm:applicationinsights@^2",
|
|
59
63
|
"applicationinsightsv3": "npm:applicationinsights@^3"
|
|
60
64
|
},
|
|
61
65
|
"bugs": {
|
|
62
|
-
"url": "https://github.com/shellicar/
|
|
66
|
+
"url": "https://github.com/shellicar/ecosystem/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22pkg%3A%20winston-azure-application-insights%22"
|
|
63
67
|
},
|
|
64
|
-
"homepage": "https://github.com/shellicar/winston-azure-application-insights#readme",
|
|
68
|
+
"homepage": "https://github.com/shellicar/ecosystem/tree/main/packages/winston-azure-application-insights#readme",
|
|
65
69
|
"peerDependencies": {
|
|
66
70
|
"triple-beam": "^1.4.1",
|
|
67
71
|
"winston": "^3.0.0",
|
package/dist/index.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var e=require("winston-transport"),t=require("triple-beam"),r=require("applicationinsightsv3"),n=require("winston"),o=require("process");function s(e){return e&&e.__esModule?e:{default:e}}var i=s(e),l=s(n),a=Object.defineProperty,c=(e,t)=>a(e,"name",{value:t,configurable:!0}),p=(e=>(e.Verbose="Verbose",e.Information="Information",e.Warning="Warning",e.Error="Error",e.Critical="Critical",e))(p||{}),u=(e=>(e.V2="2.x",e.V3="3.x",e))(u||{}),f={error:"Error",warn:"Warning",info:"Information",verbose:"Verbose"},m=c(e=>null!=e&&"object"==typeof e&&void 0===e.constructor?{...e}:e,"convertNullPrototypeToRegularObject"),g=c((e,...t)=>{const r=["message","name","stack",...t],n={};for(const t of Object.keys(e))if(!r.includes(t)){const r=e[t];n[t]=m(r)}return n},"extractErrorProperties"),v=c((e,r)=>{const n=[];r(e)&&n.push({exception:e,properties:g(e,"level")});const o=e[t.SPLAT];if(null!=o)for(const e of o)r(e)&&n.push({exception:e,properties:g(e)});return n},"extractErrorsStep"),y=c(e=>{let r=String(e.message);const n=e[t.SPLAT]??[],o=n[0];if(void 0!==o?.message){const e=` ${o.message}`;r.endsWith(e)&&(r=r.slice(0,-e.length))}return{messageAsString:r,splat:n}},"getMessageAsString"),h=c(e=>{const{messageAsString:t,splat:r}=y(e);return[t,...r.filter(e=>"string"==typeof e)].join(" ")},"extractMessageStepInternal"),d=c(e=>h(e),"extractMessageStep"),x=c(e=>{if(null==e||"object"!=typeof e)return!1;const t=Object.getPrototypeOf(e);return t===Object.prototype||null===t},"isPlainObject"),b=c(e=>{const t=Object.entries(e);if(0===t.length)return null;const r={};for(const[e,n]of t)r[e]=m(n);return r},"extractNonSymbolProps"),E=c((e,t)=>{if(t(e)){const{level:t,message:r,...n}=e;return b(n)}const{level:r,name:n,message:o,stack:s,cause:i,...l}=e;return b(l)},"extractDefaultMeta"),S=c((e,r=e=>e instanceof Error)=>{const n=E(e,r),o=e[t.SPLAT];if(null==o)return n??{};const s=o.filter(e=>!r(e))[0];return null!=s&&x(s)?{...n,...s}:n??{}},"extractPropertiesStep"),w=c((e,t,r)=>{const n=t[e.level];if(null!=n)return n;if(null!=r){const n=r[e.level];if(null!=n){const e=Object.entries(r).map(e=>({levelName:e[0],priority:e[1]})).filter(e=>n<e.priority).sort((e,t)=>e.priority-t.priority);for(const{levelName:r}of e){const e=t[r];if(e)return e}}}return"Verbose"},"extractSeverityStep"),T=c(e=>e instanceof Error,"isError"),A=class extends i.default{static{c(this,"ApplicationInsightsTransport")}telemetryHandler;options;levels;constructor(e){super({level:e.level}),this.options={telemetryHandler:e.telemetryHandler,severityMapping:e.severityMapping??f,isError:e.isError??T,traceFilter:e.traceFilter??(()=>!0),exceptionFilter:e.exceptionFilter??(()=>!0)},this.telemetryHandler=e.telemetryHandler}log(e,t){const r=this.getExceptions(e),n=this.getTrace(e,r);this.telemetryHandler.handleTelemetry({trace:n,exceptions:r}),t()}getTrace(e,t){const r=this.extractTrace(e,t);return null!=r&&this.options.traceFilter(r)?r:null}getExceptions(e){return v(e,this.options.isError).filter(this.options.exceptionFilter)}extractTrace(e,t){if(t.length>0&&this.options.isError(e))return null;return{message:d(e),properties:S(e,this.options.isError),severity:w(e,this.options.severityMapping,this.levels)}}},M=class{static{c(this,"ApplicationInsightsV2TelemetryHandler")}client;severityMapping={Verbose:0,Information:1,Warning:2,Error:3,Critical:4};constructor(e){this.client=e.client}handleTelemetry(e){if(null!=e.trace){const t={message:e.trace.message,severity:this.mapSeverity(e.trace.severity),properties:e.trace.properties};this.client.trackTrace(t)}for(const t of e.exceptions){const e={exception:t.exception,properties:t.properties};this.client.trackException(e)}}mapSeverity(e){return this.severityMapping[e]}},j=class{static{c(this,"ApplicationInsightsV3TelemetryHandler")}client;severityMapping={Verbose:r.KnownSeverityLevel.Verbose,Information:r.KnownSeverityLevel.Information,Warning:r.KnownSeverityLevel.Warning,Error:r.KnownSeverityLevel.Error,Critical:r.KnownSeverityLevel.Critical};constructor(e){this.client=e.client}handleTelemetry(e){if(null!=e.trace){const t={message:e.trace.message,severity:this.mapSeverity(e.trace.severity),properties:e.trace.properties};this.client.trackTrace(t)}for(const t of e.exceptions){const e={exception:t.exception,properties:t.properties};this.client.trackException(e)}}mapSeverity(e){return this.severityMapping[e]}},I=c(e=>{switch(e.version){case"2.x":return new M({client:e.client});case"3.x":return new j({client:e.client});default:return e.telemetryHandler}},"createTelemetryHandler"),F=c(e=>{const t=I(e);return new A({telemetryHandler:t,severityMapping:e.severityMapping,exceptionFilter:e.exceptionFilter,traceFilter:e.traceFilter,isError:e.isError,level:e.level})},"createApplicationInsightsTransport"),L=c(e=>e[t.MESSAGE].replaceAll(/\\u001b/g,""),"unescapeColorCodes"),H=c(()=>l.default.format.printf(L),"unescapeColorCodesFormat"),V=c(e=>{if(Array.isArray(e))return l.default.format.combine(...e);const t=[];return!0===e.timestamp?t.push(l.default.format.timestamp()):"object"==typeof e.timestamp&&t.push(l.default.format.timestamp(e.timestamp)),!0===e.errors?t.push(l.default.format.errors({stack:!0})):"object"==typeof e.errors&&t.push(l.default.format.errors(e.errors)),!0===e.colorize?t.push(l.default.format.colorize({all:!0})):"object"==typeof e.colorize&&t.push(l.default.format.colorize(e.colorize)),"simple"===e.output&&t.push(l.default.format.simple()),"json"===e.output&&(t.push(l.default.format.json()),!0!==e.colorize&&"object"!=typeof e.colorize||t.push(H())),l.default.format.combine(...t)},"createWinstonFormat"),W=c(()=>void 0!==o.env.WEBSITE_INSTANCE_ID,"isRunningInAzure"),z=c(()=>!W(),"isRunningLocally"),C=c(e=>{const{severityMapping:t,exceptionFilter:r,traceFilter:n,isError:o,...s}=e.insights,i=I(s),a=[];if(e.winston?.console?.enabled??z()){let t;if(Array.isArray(e.winston?.console?.format))t=e.winston.console.format;else{const r=e.winston?.console?.format??{};t={output:r.output??"json",timestamp:r.timestamp??!0,errors:r.errors??{stack:!0},colorize:r.colorize??!0}}const r=V(t);a.push(new l.default.transports.Console({format:r,level:e.winston?.console?.level,stderrLevels:["error","crit","alert","emerg"],consoleWarnLevels:["warn","warning"]}))}if(e.winston?.insights?.enabled??!0){const s=F({telemetryHandler:i,severityMapping:t,exceptionFilter:r,traceFilter:n,isError:o,level:e.winston?.insights?.level});a.push(s)}const c=e.winston?.defaults?.level??"info",p=e.winston?.levels??l.default.config.npm.levels,u=e.winston?.defaults?.format??[],f=l.default.format.combine(...u);return l.default.createLogger({...e.winston?.options,level:c,levels:p,format:f,transports:a,defaultMeta:e.winston?.defaults?.defaultMeta})},"createWinstonLogger");exports.ApplicationInsightsVersion=u,exports.TelemetrySeverity=p,exports.createApplicationInsightsTransport=F,exports.createTelemetryHandler=I,exports.createWinstonLogger=C,exports.isRunningInAzure=W,exports.isRunningLocally=z;//# sourceMappingURL=index.cjs.map
|