@mecanizou/telemetry-hub 1.0.1 → 1.0.2
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/CHANGELOG.md +14 -0
- package/dist/core/__tests__/logger-types.test.d.ts +1 -0
- package/dist/core/__tests__/logger-types.test.js +325 -0
- package/dist/core/__tests__/logger.test.d.ts +1 -0
- package/dist/core/__tests__/logger.test.js +337 -0
- package/dist/core/__tests__/tracer.test.d.ts +1 -0
- package/dist/core/__tests__/tracer.test.js +330 -0
- package/dist/core/index.d.ts +3 -1
- package/dist/core/index.js +4 -2
- package/dist/core/logger-types.js +3 -0
- package/dist/core/logger.d.ts +1 -1
- package/dist/core/logger.js +1 -1
- package/dist/core/tracer-types.d.ts +50 -0
- package/dist/core/tracer-types.js +3 -0
- package/dist/core/tracer.d.ts +10 -0
- package/dist/core/tracer.js +114 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.js +4 -2
- package/dist/sst/__tests__/telemetry.test.d.ts +1 -0
- package/dist/sst/__tests__/telemetry.test.js +138 -0
- package/dist/sst/index.js +1 -1
- package/dist/sst/middy/index.js +1 -1
- package/dist/sst/middy/middleware.d.ts +1 -1
- package/dist/sst/middy/middleware.js +54 -69
- package/dist/sst/telemetry.d.ts +2 -1
- package/dist/sst/telemetry.js +12 -2
- package/dist/telemetry/sst/middy/middleware.d.ts +1 -1
- package/dist/telemetry/sst/middy/middleware.js +4 -4
- package/dist/tsed/__tests__/config.test.d.ts +1 -0
- package/dist/tsed/__tests__/config.test.js +146 -0
- package/dist/tsed/__tests__/service.test.d.ts +1 -0
- package/dist/tsed/__tests__/service.test.js +63 -0
- package/dist/tsed/config.d.ts +6 -0
- package/dist/tsed/config.js +65 -12
- package/dist/tsed/index.d.ts +1 -0
- package/dist/tsed/index.js +2 -1
- package/dist/tsed/log-telemetry.js +125 -10
- package/dist/tsed/service.d.ts +2 -0
- package/dist/tsed/service.js +20 -1
- package/dist/tsed/sync-log-record-processor.js +1 -1
- package/package.json +1 -1
- package/dist/check-if-is-working.d.ts +0 -1
- package/dist/check-if-is-working.js +0 -8
- package/dist/core/types.js +0 -3
- package/dist/services/index.d.ts +0 -1
- package/dist/services/index.js +0 -18
- package/dist/services/telemetry/config.d.ts +0 -20
- package/dist/services/telemetry/config.js +0 -113
- package/dist/services/telemetry/external-service.d.ts +0 -20
- package/dist/services/telemetry/external-service.js +0 -69
- package/dist/services/telemetry/index.d.ts +0 -3
- package/dist/services/telemetry/index.js +0 -20
- package/dist/services/telemetry/sync-log-record-processor.d.ts +0 -11
- package/dist/services/telemetry/sync-log-record-processor.js +0 -74
- package/dist/telemetry.d.ts +0 -1
- package/dist/telemetry.js +0 -81
- /package/dist/core/{types.d.ts → logger-types.d.ts} +0 -0
package/dist/core/types.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVsZW1ldHJ5L2NvcmUvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBJbnRlcmZhY2UgcGFkcsOjbyBwYXJhIGxvZ3MgZXN0cnV0dXJhZG9zIGVtIHRvZGEgYSBhcGxpY2HDp8Ojby5cclxuICogQ29tYmluYSBjYW1wb3MgaW1wb3J0YW50ZXMgZGUgYW1iYXMgaW1wbGVtZW50YcOnw7VlcyAoVHNlZCBlIFNTVCkuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFN0YW5kYXJkTG9nRGF0YSB7XHJcbiAgLy8gSW5mb3JtYcOnw7VlcyBkbyBlcnJvL2V2ZW50b1xyXG4gIHNldmVyaXR5OiAnRVJST1InIHwgJ1dBUk4nIHwgJ0lORk8nIHwgJ0RFQlVHJztcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgZXJyb3I/OiBFcnJvcjtcclxuXHJcbiAgLy8gSWRlbnRpZmljYcOnw6NvIGRvIHNlcnZpw6dvXHJcbiAgc2VydmljZU5hbWU6IHN0cmluZztcclxuICBlbnZpcm9ubWVudDogc3RyaW5nOyAvLyBkZXZlbG9wbWVudCwgc3RhZ2luZywgcHJvZHVjdGlvblxyXG5cclxuICAvLyBDb250ZXh0byBkYSByZXF1aXNpw6fDo28gSFRUUFxyXG4gIGh0dHA/OiB7XHJcbiAgICBtZXRob2Q/OiBzdHJpbmc7XHJcbiAgICB1cmw/OiBzdHJpbmc7XHJcbiAgICBlbmRwb2ludD86IHN0cmluZztcclxuICAgIHN0YXR1c0NvZGU/OiBudW1iZXI7XHJcbiAgICBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgYW55PjtcclxuICAgIGJvZHk/OiBhbnk7XHJcbiAgICBwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG4gICAgcXVlcnk/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG4gIH07XHJcblxyXG4gIC8vIElkZW50aWZpY2HDp8OjbyBkbyB1c3XDoXJpby9jb250YVxyXG4gIHVzZXI/OiB7XHJcbiAgICBhY2NvdW50VXNlclVpZD86IHN0cmluZztcclxuICAgIGFjY291bnRVaWQ/OiBzdHJpbmc7XHJcbiAgICBhcHBsaWNhdGlvblVpZD86IHN0cmluZztcclxuICB9O1xyXG5cclxuICAvLyBDb250ZXh0byBkYSBleGVjdcOnw6NvXHJcbiAgZXhlY3V0aW9uPzoge1xyXG4gICAgcmVxdWVzdElkPzogc3RyaW5nO1xyXG4gICAgYXdzUmVxdWVzdElkPzogc3RyaW5nO1xyXG4gICAgZnVuY3Rpb25OYW1lPzogc3RyaW5nO1xyXG4gICAgaW52b2NhdGlvbklkPzogc3RyaW5nO1xyXG4gICAgY29udHJvbGxlcj86IHN0cmluZztcclxuICAgIGNvbnRyb2xsZXJNZXRob2Q/OiBzdHJpbmc7XHJcbiAgICBvcmlnaW4/OiBzdHJpbmc7IC8vIG9yaWdlbSBkYSByZXF1aXNpw6fDo28gKGV4OiB3ZWIsIG1vYmlsZSlcclxuICB9O1xyXG5cclxuICAvLyBQZXJmb3JtYW5jZVxyXG4gIHBlcmZvcm1hbmNlPzoge1xyXG4gICAgZHVyYXRpb25Ncz86IG51bWJlcjtcclxuICAgIHN1Y2Nlc3M/OiBib29sZWFuO1xyXG4gIH07XHJcblxyXG4gIC8vIENvbnRleHRvIGFkaWNpb25hbCBsaXZyZVxyXG4gIGNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG5cclxuICAvLyBUaW1lc3RhbXBcclxuICB0aW1lc3RhbXA6IHN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiAqIEludGVyZmFjZSBwYXJhIG8gbG9nZ2VyIGNvcmVcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVN0YW5kYXJkTG9nZ2VyIHtcclxuICBsb2dFcnJvcihcclxuICAgIGRhdGE6IE9taXQ8U3RhbmRhcmRMb2dEYXRhLCAnc2V2ZXJpdHknIHwgJ3RpbWVzdGFtcCc+XHJcbiAgKTogUHJvbWlzZTx2b2lkPjtcclxuICBsb2dJbmZvKGRhdGE6IE9taXQ8U3RhbmRhcmRMb2dEYXRhLCAnc2V2ZXJpdHknIHwgJ3RpbWVzdGFtcCc+KTogUHJvbWlzZTx2b2lkPjtcclxuICBsb2dXYXJuKGRhdGE6IE9taXQ8U3RhbmRhcmRMb2dEYXRhLCAnc2V2ZXJpdHknIHwgJ3RpbWVzdGFtcCc+KTogUHJvbWlzZTx2b2lkPjtcclxuICBsb2dEZWJ1ZyhcclxuICAgIGRhdGE6IE9taXQ8U3RhbmRhcmRMb2dEYXRhLCAnc2V2ZXJpdHknIHwgJ3RpbWVzdGFtcCc+XHJcbiAgKTogUHJvbWlzZTx2b2lkPjtcclxufVxyXG4iXX0=
|
package/dist/services/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './telemetry';
|
package/dist/services/index.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./telemetry"), exports);
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhDQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGVsZW1ldHJ5JztcclxuIl19
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { LoggerProvider } from '@opentelemetry/sdk-logs';
|
|
2
|
-
export interface TelemetryConfig {
|
|
3
|
-
endpoint: string;
|
|
4
|
-
username: string;
|
|
5
|
-
password: string;
|
|
6
|
-
serviceName?: string;
|
|
7
|
-
serviceVersion?: string;
|
|
8
|
-
enabled?: boolean;
|
|
9
|
-
}
|
|
10
|
-
export declare class TelemetryProvider {
|
|
11
|
-
private loggerProvider;
|
|
12
|
-
private initialized;
|
|
13
|
-
constructor();
|
|
14
|
-
initialize(config: TelemetryConfig): void;
|
|
15
|
-
getLoggerProvider(): LoggerProvider | null;
|
|
16
|
-
isInitialized(): boolean;
|
|
17
|
-
forceFlush(): Promise<void>;
|
|
18
|
-
shutdown(): Promise<void>;
|
|
19
|
-
$onDestroy(): Promise<void>;
|
|
20
|
-
}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.TelemetryProvider = void 0;
|
|
13
|
-
const sdk_logs_1 = require("@opentelemetry/sdk-logs");
|
|
14
|
-
const exporter_logs_otlp_http_1 = require("@opentelemetry/exporter-logs-otlp-http");
|
|
15
|
-
const resources_1 = require("@opentelemetry/resources");
|
|
16
|
-
const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
|
|
17
|
-
const sync_log_record_processor_1 = require("./sync-log-record-processor");
|
|
18
|
-
class TelemetryProvider {
|
|
19
|
-
constructor() {
|
|
20
|
-
this.loggerProvider = null;
|
|
21
|
-
this.initialized = false;
|
|
22
|
-
if (!this.initialized && process.env.OTEL_EXPORTER_OTLP_ENDPOINT) {
|
|
23
|
-
const serviceName = process.env.SERVICE_NAME || 'unknown-service';
|
|
24
|
-
const serviceStage = process.env.STAGE;
|
|
25
|
-
this.initialize({
|
|
26
|
-
endpoint: process.env.OTEL_EXPORTER_OTLP_ENDPOINT || '',
|
|
27
|
-
username: process.env.OTEL_EXPORTER_OTLP_USER || '',
|
|
28
|
-
password: process.env.OTEL_EXPORTER_OTLP_PASS || '',
|
|
29
|
-
serviceName: `${serviceName}-${serviceStage}`,
|
|
30
|
-
serviceVersion: process.env.npm_package_version || '1.0.0',
|
|
31
|
-
enabled: process.env.OTEL_ENABLED !== 'false',
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
initialize(config) {
|
|
36
|
-
if (this.initialized) {
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
if (config.enabled === false) {
|
|
40
|
-
console.log('[Telemetry] OpenTelemetry is disabled');
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
if (!config.endpoint || !config.username || !config.password) {
|
|
44
|
-
if (process.env.NODE_ENV !== 'test' &&
|
|
45
|
-
process.env.OTEL_EXPORTER_OTLP_ENDPOINT) {
|
|
46
|
-
console.error('[Telemetry] Missing required configuration');
|
|
47
|
-
}
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
try {
|
|
51
|
-
const resource = (0, resources_1.resourceFromAttributes)({
|
|
52
|
-
[semantic_conventions_1.ATTR_SERVICE_NAME]: config.serviceName || 'unknown-service',
|
|
53
|
-
[semantic_conventions_1.ATTR_SERVICE_VERSION]: config.serviceVersion || '1.0.0',
|
|
54
|
-
});
|
|
55
|
-
const logExporter = new exporter_logs_otlp_http_1.OTLPLogExporter({
|
|
56
|
-
url: `${config.endpoint}/v1/logs`,
|
|
57
|
-
headers: {
|
|
58
|
-
Authorization: `Basic ${Buffer.from(`${config.username}:${config.password}`).toString('base64')}`,
|
|
59
|
-
},
|
|
60
|
-
timeoutMillis: 5000,
|
|
61
|
-
concurrencyLimit: 1,
|
|
62
|
-
});
|
|
63
|
-
const syncProcessor = new sync_log_record_processor_1.SyncLogRecordProcessor(logExporter);
|
|
64
|
-
this.loggerProvider = new sdk_logs_1.LoggerProvider({
|
|
65
|
-
resource,
|
|
66
|
-
processors: [syncProcessor],
|
|
67
|
-
});
|
|
68
|
-
this.initialized = true;
|
|
69
|
-
console.log('[Telemetry] OpenTelemetry initialized successfully');
|
|
70
|
-
}
|
|
71
|
-
catch (error) {
|
|
72
|
-
console.error('[Telemetry] Failed to initialize OpenTelemetry:', error);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
getLoggerProvider() {
|
|
76
|
-
return this.loggerProvider;
|
|
77
|
-
}
|
|
78
|
-
isInitialized() {
|
|
79
|
-
return this.initialized;
|
|
80
|
-
}
|
|
81
|
-
forceFlush() {
|
|
82
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
83
|
-
if (!this.loggerProvider) {
|
|
84
|
-
console.warn('[Telemetry] forceFlush called but loggerProvider is null');
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
try {
|
|
88
|
-
const startTime = Date.now();
|
|
89
|
-
console.log('[Telemetry] Starting forceFlush...');
|
|
90
|
-
yield this.loggerProvider.forceFlush();
|
|
91
|
-
const duration = Date.now() - startTime;
|
|
92
|
-
console.log(`[Telemetry] forceFlush completed successfully in ${duration}ms`);
|
|
93
|
-
}
|
|
94
|
-
catch (error) {
|
|
95
|
-
console.error('[Telemetry] Failed to force flush logs:', error);
|
|
96
|
-
throw error;
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
shutdown() {
|
|
101
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
102
|
-
if (this.loggerProvider) {
|
|
103
|
-
yield this.loggerProvider.shutdown();
|
|
104
|
-
this.initialized = false;
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
$onDestroy() {
|
|
109
|
-
return this.shutdown();
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
exports.TelemetryProvider = TelemetryProvider;
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3RlbGVtZXRyeS9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsc0RBQXlEO0FBQ3pELG9GQUF5RTtBQUN6RSx3REFBa0U7QUFDbEUsOEVBRzZDO0FBQzdDLDJFQUFxRTtBQVdyRSxNQUFhLGlCQUFpQjtJQUk1QjtRQUhRLG1CQUFjLEdBQTBCLElBQUksQ0FBQztRQUM3QyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUkxQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixFQUFFLENBQUM7WUFDakUsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksaUJBQWlCLENBQUM7WUFDbEUsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQztnQkFDZCxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsSUFBSSxFQUFFO2dCQUN2RCxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsSUFBSSxFQUFFO2dCQUNuRCxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsSUFBSSxFQUFFO2dCQUNuRCxXQUFXLEVBQUUsR0FBRyxXQUFXLElBQUksWUFBWSxFQUFFO2dCQUM3QyxjQUFjLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsSUFBSSxPQUFPO2dCQUMxRCxPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEtBQUssT0FBTzthQUM5QyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVNLFVBQVUsQ0FBQyxNQUF1QjtRQUN2QyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNy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O0tBQUE7SUFFWSxRQUFROztZQUNuQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDeEIsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNyQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUMzQixDQUFDO1FBQ0gsQ0FBQztLQUFBO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7Q0FDRjtBQTFIRCw4Q0EwSEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2dnZXJQcm92aWRlciB9IGZyb20gJ0BvcGVudGVsZW1ldHJ5L3Nkay1sb2dzJztcclxuaW1wb3J0IHsgT1RMUExvZ0V4cG9ydGVyIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvZXhwb3J0ZXItbG9ncy1vdGxwLWh0dHAnO1xyXG5pbXBvcnQgeyByZXNvdXJjZUZyb21BdHRyaWJ1dGVzIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvcmVzb3VyY2VzJztcclxuaW1wb3J0IHtcclxuICBBVFRSX1NFUlZJQ0VfTkFNRSxcclxuICBBVFRSX1NFUlZJQ0VfVkVSU0lPTixcclxufSBmcm9tICdAb3BlbnRlbGVtZXRyeS9zZW1hbnRpYy1jb252ZW50aW9ucyc7XHJcbmltcG9ydCB7IFN5bmNMb2dSZWNvcmRQcm9jZXNzb3IgfSBmcm9tICcuL3N5bmMtbG9nLXJlY29yZC1wcm9jZXNzb3InO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUZWxlbWV0cnlDb25maWcge1xyXG4gIGVuZHBvaW50OiBzdHJpbmc7XHJcbiAgdXNlcm5hbWU6IHN0cmluZztcclxuICBwYXNzd29yZDogc3RyaW5nO1xyXG4gIHNlcnZpY2VOYW1lPzogc3RyaW5nO1xyXG4gIHNlcnZpY2VWZXJzaW9uPzogc3RyaW5nO1xyXG4gIGVuYWJsZWQ/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVGVsZW1ldHJ5UHJvdmlkZXIge1xyXG4gIHByaXZhdGUgbG9nZ2VyUHJvdmlkZXI6IExvZ2dlclByb3ZpZGVyIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIC8vIEF1dG8taW5pdGlhbGl6ZSBzeW5jaHJvbm91c2x5IHdpdGggZW52aXJvbm1lbnQgdmFyaWFibGVzXHJcbiAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQgJiYgcHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX0VORFBPSU5UKSB7XHJcbiAgICAgIGNvbnN0IHNlcnZpY2VOYW1lID0gcHJvY2Vzcy5lbnYuU0VSVklDRV9OQU1FIHx8ICd1bmtub3duLXNlcnZpY2UnO1xyXG4gICAgICBjb25zdCBzZXJ2aWNlU3RhZ2UgPSBwcm9jZXNzLmVudi5TVEFHRTtcclxuICAgICAgdGhpcy5pbml0aWFsaXplKHtcclxuICAgICAgICBlbmRwb2ludDogcHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX0VORFBPSU5UIHx8ICcnLFxyXG4gICAgICAgIHVzZXJuYW1lOiBwcm9jZXNzLmVudi5PVEVMX0VYUE9SVEVSX09UTFBfVVNFUiB8fCAnJyxcclxuICAgICAgICBwYXNzd29yZDogcHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX1BBU1MgfHwgJycsXHJcbiAgICAgICAgc2VydmljZU5hbWU6IGAke3NlcnZpY2VOYW1lfS0ke3NlcnZpY2VTdGFnZX1gLFxyXG4gICAgICAgIHNlcnZpY2VWZXJzaW9uOiBwcm9jZXNzLmVudi5ucG1fcGFja2FnZV92ZXJzaW9uIHx8ICcxLjAuMCcsXHJcbiAgICAgICAgZW5hYmxlZDogcHJvY2Vzcy5lbnYuT1RFTF9FTkFCTEVEICE9PSAnZmFsc2UnLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbml0aWFsaXplKGNvbmZpZzogVGVsZW1ldHJ5Q29uZmlnKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbmZpZy5lbmFibGVkID09PSBmYWxzZSkge1xyXG4gICAgICBjb25zb2xlLmxvZygnW1RlbGVtZXRyeV0gT3BlblRlbGVtZXRyeSBpcyBkaXNhYmxlZCcpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFjb25maWcuZW5kcG9pbnQgfHwgIWNvbmZpZy51c2VybmFtZSB8fCAhY29uZmlnLnBhc3N3b3JkKSB7XHJcbiAgICAgIC8vIE7Do28gbG9nYXIgZXJybyBzZSBlc3RpdmVybW9zIGVtIG1vZG8gZGUgYnVpbGRcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAndGVzdCcgJiZcclxuICAgICAgICBwcm9jZXNzLmVudi5PVEVMX0VYUE9SVEVSX09UTFBfRU5EUE9JTlRcclxuICAgICAgKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignW1RlbGVtZXRyeV0gTWlzc2luZyByZXF1aXJlZCBjb25maWd1cmF0aW9uJyk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIC8vIENyZWF0ZSByZXNvdXJjZSB3aXRoIHNlcnZpY2UgaW5mb3JtYXRpb25cclxuICAgICAgY29uc3QgcmVzb3VyY2UgPSByZXNvdXJjZUZyb21BdHRyaWJ1dGVzKHtcclxuICAgICAgICBbQVRUUl9TRVJWSUNFX05BTUVdOiBjb25maWcuc2VydmljZU5hbWUgfHwgJ3Vua25vd24tc2VydmljZScsXHJcbiAgICAgICAgW0FUVFJfU0VSVklDRV9WRVJTSU9OXTogY29uZmlnLnNlcnZpY2VWZXJzaW9uIHx8ICcxLjAuMCcsXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgLy8gQ3JlYXRlIE9UTFAgZXhwb3J0ZXIgd2l0aCBhdXRoZW50aWNhdGlvbiBhbmQgdGltZW91dCBjb25maWd1cmF0aW9uXHJcbiAgICAgIGNvbnN0IGxvZ0V4cG9ydGVyID0gbmV3IE9UTFBMb2dFeHBvcnRlcih7XHJcbiAgICAgICAgdXJsOiBgJHtjb25maWcuZW5kcG9pbnR9L3YxL2xvZ3NgLFxyXG4gICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgIEF1dGhvcml6YXRpb246IGBCYXNpYyAke0J1ZmZlci5mcm9tKGAke2NvbmZpZy51c2VybmFtZX06JHtjb25maWcucGFzc3dvcmR9YCkudG9TdHJpbmcoJ2Jhc2U2NCcpfWAsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB0aW1lb3V0TWlsbGlzOiA1MDAwLCAvLyA1IHNlY29uZCB0aW1lb3V0IGZvciBleHBvcnRzXHJcbiAgICAgICAgY29uY3VycmVuY3lMaW1pdDogMSwgLy8gUHJvY2VzcyBvbmUgZXhwb3J0IGF0IGEgdGltZVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIC8vIFVzZSBjdXN0b20gU3luY0xvZ1JlY29yZFByb2Nlc3NvciBpbnN0ZWFkIG9mIFNpbXBsZUxvZ1JlY29yZFByb2Nlc3NvclxyXG4gICAgICAvLyBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgYXN5bmMgSFRUUCBleHBvcnQgaXMgcHJvcGVybHkgYXdhaXRlZCBpbiBMYW1iZGFcclxuICAgICAgLy8gZW52aXJvbm1lbnRzIHdoZXJlIGV4ZWN1dGlvbiBjb250ZXh0IGZyZWV6ZXMgYWZ0ZXIgaGFuZGxlciByZXR1cm5zXHJcbiAgICAgIGNvbnN0IHN5bmNQcm9jZXNzb3IgPSBuZXcgU3luY0xvZ1JlY29yZFByb2Nlc3Nvcihsb2dFeHBvcnRlcik7XHJcblxyXG4gICAgICAvLyBDcmVhdGUgbG9nZ2VyIHByb3ZpZGVyIHdpdGggcmVzb3VyY2UgYW5kIHByb2Nlc3NvcnNcclxuICAgICAgdGhpcy5sb2dnZXJQcm92aWRlciA9IG5ldyBMb2dnZXJQcm92aWRlcih7XHJcbiAgICAgICAgcmVzb3VyY2UsXHJcbiAgICAgICAgcHJvY2Vzc29yczogW3N5bmNQcm9jZXNzb3JdLFxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgICBjb25zb2xlLmxvZygnW1RlbGVtZXRyeV0gT3BlblRlbGVtZXRyeSBpbml0aWFsaXplZCBzdWNjZXNzZnVsbHknKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tUZWxlbWV0cnldIEZhaWxlZCB0byBpbml0aWFsaXplIE9wZW5UZWxlbWV0cnk6JywgZXJyb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldExvZ2dlclByb3ZpZGVyKCk6IExvZ2dlclByb3ZpZGVyIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5sb2dnZXJQcm92aWRlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc0luaXRpYWxpemVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGb3JjZSBmbHVzaCBhbGwgcGVuZGluZyBsb2dzIHRvIGVuc3VyZSB0aGV5IGFyZSBzZW50IGJlZm9yZSBMYW1iZGEgZnJlZXplc1xyXG4gICAqIFRoaXMgaXMgY3JpdGljYWwgaW4gQVdTIExhbWJkYSBlbnZpcm9ubWVudHMgd2hlcmUgZXhlY3V0aW9uIGNvbnRleHQgZnJlZXplc1xyXG4gICAqIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBoYW5kbGVyIHJldHVybnMsIHBvdGVudGlhbGx5IGJlZm9yZSBhc3luYyBIVFRQIHJlcXVlc3RzIGNvbXBsZXRlXHJcbiAgICovXHJcbiAgcHVibGljIGFzeW5jIGZvcmNlRmx1c2goKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMubG9nZ2VyUHJvdmlkZXIpIHtcclxuICAgICAgY29uc29sZS53YXJuKCdbVGVsZW1ldHJ5XSBmb3JjZUZsdXNoIGNhbGxlZCBidXQgbG9nZ2VyUHJvdmlkZXIgaXMgbnVsbCcpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3Qgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcclxuICAgICAgY29uc29sZS5sb2coJ1tUZWxlbWV0cnldIFN0YXJ0aW5nIGZvcmNlRmx1c2guLi4nKTtcclxuXHJcbiAgICAgIC8vIGZvcmNlRmx1c2ggZW5zdXJlcyBhbGwgcGVuZGluZyBsb2dzIGFyZSBleHBvcnRlZCBpbW1lZGlhdGVseVxyXG4gICAgICBhd2FpdCB0aGlzLmxvZ2dlclByb3ZpZGVyLmZvcmNlRmx1c2goKTtcclxuXHJcbiAgICAgIGNvbnN0IGR1cmF0aW9uID0gRGF0ZS5ub3coKSAtIHN0YXJ0VGltZTtcclxuICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgYFtUZWxlbWV0cnldIGZvcmNlRmx1c2ggY29tcGxldGVkIHN1Y2Nlc3NmdWxseSBpbiAke2R1cmF0aW9ufW1zYFxyXG4gICAgICApO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5lcnJvcignW1RlbGVtZXRyeV0gRmFpbGVkIHRvIGZvcmNlIGZsdXNoIGxvZ3M6JywgZXJyb3IpO1xyXG4gICAgICB0aHJvdyBlcnJvcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzaHV0ZG93bigpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLmxvZ2dlclByb3ZpZGVyKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMubG9nZ2VyUHJvdmlkZXIuc2h1dGRvd24oKTtcclxuICAgICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJG9uRGVzdHJveSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHJldHVybiB0aGlzLnNodXRkb3duKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { TelemetryProvider } from './config';
|
|
2
|
-
export interface ErrorLogData {
|
|
3
|
-
error: Error;
|
|
4
|
-
context?: Record<string, any>;
|
|
5
|
-
accountUserUid?: string;
|
|
6
|
-
accountUid?: string;
|
|
7
|
-
requestId?: string;
|
|
8
|
-
endpoint?: string;
|
|
9
|
-
method?: string;
|
|
10
|
-
controller?: string;
|
|
11
|
-
controllerMethod?: string;
|
|
12
|
-
applicationUid?: string;
|
|
13
|
-
awsRequestId?: string;
|
|
14
|
-
}
|
|
15
|
-
export declare class TelemetryService {
|
|
16
|
-
private readonly telemetryProvider;
|
|
17
|
-
constructor(telemetryProvider: TelemetryProvider);
|
|
18
|
-
logError(data: ErrorLogData): Promise<void>;
|
|
19
|
-
logException(error: Error, context?: Record<string, any>): Promise<void>;
|
|
20
|
-
}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.TelemetryService = void 0;
|
|
13
|
-
const api_logs_1 = require("@opentelemetry/api-logs");
|
|
14
|
-
class TelemetryService {
|
|
15
|
-
constructor(telemetryProvider) {
|
|
16
|
-
this.telemetryProvider = telemetryProvider;
|
|
17
|
-
}
|
|
18
|
-
logError(data) {
|
|
19
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
20
|
-
if (!this.telemetryProvider.isInitialized()) {
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
const loggerProvider = this.telemetryProvider.getLoggerProvider();
|
|
24
|
-
if (!loggerProvider) {
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
try {
|
|
28
|
-
const logger = loggerProvider.getLogger('cart-service-error-logger', '1.0.0');
|
|
29
|
-
const logRecord = {
|
|
30
|
-
severityNumber: api_logs_1.SeverityNumber.ERROR,
|
|
31
|
-
severityText: 'ERROR',
|
|
32
|
-
body: data.error.message,
|
|
33
|
-
attributes: {
|
|
34
|
-
'error.type': data.error.name,
|
|
35
|
-
'error.message': data.error.message,
|
|
36
|
-
'error.stack': data.error.stack || '',
|
|
37
|
-
'service.name': 'cart-service',
|
|
38
|
-
'accountUser.uid': data.accountUserUid || 'not provided',
|
|
39
|
-
'account.uid': data.accountUid || 'not provided',
|
|
40
|
-
'application.uid': data.applicationUid || 'not provided',
|
|
41
|
-
'request.id': data.requestId || 'not provided',
|
|
42
|
-
'aws.request.id': data.awsRequestId || 'not provided',
|
|
43
|
-
'http.endpoint': data.endpoint || 'not provided',
|
|
44
|
-
'http.method': data.method || 'not provided',
|
|
45
|
-
'controller.name': data.controller || 'not provided',
|
|
46
|
-
'controller.method': data.controllerMethod || 'not provided',
|
|
47
|
-
'error.context': JSON.stringify(data.context) || 'not provided',
|
|
48
|
-
timestamp: new Date().toISOString(),
|
|
49
|
-
},
|
|
50
|
-
};
|
|
51
|
-
logger.emit(logRecord);
|
|
52
|
-
yield this.telemetryProvider.forceFlush();
|
|
53
|
-
}
|
|
54
|
-
catch (error) {
|
|
55
|
-
console.error('[TelemetryService] Failed to log error:', error);
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
logException(error, context) {
|
|
60
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
61
|
-
yield this.logError({
|
|
62
|
-
error,
|
|
63
|
-
context,
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
exports.TelemetryService = TelemetryService;
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy90ZWxlbWV0cnkvZXh0ZXJuYWwtc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxzREFBeUQ7QUFpQnpELE1BQWEsZ0JBQWdCO0lBQzNCLFlBQTZCLGlCQUFvQztRQUFwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO0lBQUcsQ0FBQztJQUV4RCxRQUFRLENBQUMsSUFBa0I7O1lBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztnQkFDNUMsT0FBTztZQUNULENBQUM7WUFFRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNsRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3BCLE9BQU87WUFDVCxDQUFDO1lBRUQsSUFBSSxDQUFDO2dCQUNILE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQ3JDLDJCQUEyQixFQUMzQixPQUFPLENBQ1IsQ0FBQztnQkFFRixNQUFNLFNBQVMsR0FBRztvQkFDaEIsY0FBYyxFQUFFLHlCQUFjLENBQUMsS0FBSztvQkFDcEMsWUFBWSxFQUFFLE9BQU87b0JBQ3JCLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU87b0JBQ3hCLFVBQVUsRUFBRTt3QkFDVixZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJO3dCQUM3QixlQUFlLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPO3dCQUNuQyxhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRTt3QkFDckMsY0FBYyxFQUFFLGNBQWM7d0JBQzlCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxjQUFjLElBQUksY0FBYzt3QkFDeEQsYUFBYSxFQUFFLElBQUksQ0FBQyxVQUFVLElBQUksY0FBYzt3QkFDaEQsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGNBQWMsSUFBSSxjQUFjO3dCQUN4RCxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsSUFBSSxjQUFjO3dCQUM5QyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsWUFBWSxJQUFJLGNBQWM7d0JBQ3JELGVBQWUsRUFBRSxJQUFJLENBQUMsUUFBUSxJQUFJLGNBQWM7d0JBQ2hELGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTSxJQUFJLGNBQWM7d0JBQzVDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxVQUFVLElBQUksY0FBYzt3QkFDcEQsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixJQUFJLGNBQWM7d0JBQzVELGVBQWUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxjQUFjO3dCQUMvRCxTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7cUJBQ3BDO2lCQUNGLENBQUM7Z0JBRUYsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFLdkIsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDNUMsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyx5Q0FBeUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUVsRSxDQUFDO1FBQ0gsQ0FBQztLQUFBO0lBRVksWUFBWSxDQUN2QixLQUFZLEVBQ1osT0FBNkI7O1lBRTdCLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQztnQkFDbEIsS0FBSztnQkFDTCxPQUFPO2FBQ1IsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0NBQ0Y7QUEvREQsNENBK0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2V2ZXJpdHlOdW1iZXIgfSBmcm9tICdAb3BlbnRlbGVtZXRyeS9hcGktbG9ncyc7XHJcbmltcG9ydCB7IFRlbGVtZXRyeVByb3ZpZGVyIH0gZnJvbSAnLi9jb25maWcnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFcnJvckxvZ0RhdGEge1xyXG4gIGVycm9yOiBFcnJvcjtcclxuICBjb250ZXh0PzogUmVjb3JkPHN0cmluZywgYW55PjtcclxuICBhY2NvdW50VXNlclVpZD86IHN0cmluZztcclxuICBhY2NvdW50VWlkPzogc3RyaW5nO1xyXG4gIHJlcXVlc3RJZD86IHN0cmluZztcclxuICBlbmRwb2ludD86IHN0cmluZztcclxuICBtZXRob2Q/OiBzdHJpbmc7XHJcbiAgY29udHJvbGxlcj86IHN0cmluZztcclxuICBjb250cm9sbGVyTWV0aG9kPzogc3RyaW5nO1xyXG4gIGFwcGxpY2F0aW9uVWlkPzogc3RyaW5nO1xyXG4gIGF3c1JlcXVlc3RJZD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRlbGVtZXRyeVNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgdGVsZW1ldHJ5UHJvdmlkZXI6IFRlbGVtZXRyeVByb3ZpZGVyKSB7fVxyXG5cclxuICBwdWJsaWMgYXN5bmMgbG9nRXJyb3IoZGF0YTogRXJyb3JMb2dEYXRhKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMudGVsZW1ldHJ5UHJvdmlkZXIuaXNJbml0aWFsaXplZCgpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBsb2dnZXJQcm92aWRlciA9IHRoaXMudGVsZW1ldHJ5UHJvdmlkZXIuZ2V0TG9nZ2VyUHJvdmlkZXIoKTtcclxuICAgIGlmICghbG9nZ2VyUHJvdmlkZXIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IGxvZ2dlciA9IGxvZ2dlclByb3ZpZGVyLmdldExvZ2dlcihcclxuICAgICAgICAnY2FydC1zZXJ2aWNlLWVycm9yLWxvZ2dlcicsXHJcbiAgICAgICAgJzEuMC4wJ1xyXG4gICAgICApO1xyXG5cclxuICAgICAgY29uc3QgbG9nUmVjb3JkID0ge1xyXG4gICAgICAgIHNldmVyaXR5TnVtYmVyOiBTZXZlcml0eU51bWJlci5FUlJPUixcclxuICAgICAgICBzZXZlcml0eVRleHQ6ICdFUlJPUicsXHJcbiAgICAgICAgYm9keTogZGF0YS5lcnJvci5tZXNzYWdlLFxyXG4gICAgICAgIGF0dHJpYnV0ZXM6IHtcclxuICAgICAgICAgICdlcnJvci50eXBlJzogZGF0YS5lcnJvci5uYW1lLFxyXG4gICAgICAgICAgJ2Vycm9yLm1lc3NhZ2UnOiBkYXRhLmVycm9yLm1lc3NhZ2UsXHJcbiAgICAgICAgICAnZXJyb3Iuc3RhY2snOiBkYXRhLmVycm9yLnN0YWNrIHx8ICcnLFxyXG4gICAgICAgICAgJ3NlcnZpY2UubmFtZSc6ICdjYXJ0LXNlcnZpY2UnLFxyXG4gICAgICAgICAgJ2FjY291bnRVc2VyLnVpZCc6IGRhdGEuYWNjb3VudFVzZXJVaWQgfHwgJ25vdCBwcm92aWRlZCcsXHJcbiAgICAgICAgICAnYWNjb3VudC51aWQnOiBkYXRhLmFjY291bnRVaWQgfHwgJ25vdCBwcm92aWRlZCcsXHJcbiAgICAgICAgICAnYXBwbGljYXRpb24udWlkJzogZGF0YS5hcHBsaWNhdGlvblVpZCB8fCAnbm90IHByb3ZpZGVkJyxcclxuICAgICAgICAgICdyZXF1ZXN0LmlkJzogZGF0YS5yZXF1ZXN0SWQgfHwgJ25vdCBwcm92aWRlZCcsXHJcbiAgICAgICAgICAnYXdzLnJlcXVlc3QuaWQnOiBkYXRhLmF3c1JlcXVlc3RJZCB8fCAnbm90IHByb3ZpZGVkJyxcclxuICAgICAgICAgICdodHRwLmVuZHBvaW50JzogZGF0YS5lbmRwb2ludCB8fCAnbm90IHByb3ZpZGVkJyxcclxuICAgICAgICAgICdodHRwLm1ldGhvZCc6IGRhdGEubWV0aG9kIHx8ICdub3QgcHJvdmlkZWQnLFxyXG4gICAgICAgICAgJ2NvbnRyb2xsZXIubmFtZSc6IGRhdGEuY29udHJvbGxlciB8fCAnbm90IHByb3ZpZGVkJyxcclxuICAgICAgICAgICdjb250cm9sbGVyLm1ldGhvZCc6IGRhdGEuY29udHJvbGxlck1ldGhvZCB8fCAnbm90IHByb3ZpZGVkJyxcclxuICAgICAgICAgICdlcnJvci5jb250ZXh0JzogSlNPTi5zdHJpbmdpZnkoZGF0YS5jb250ZXh0KSB8fCAnbm90IHByb3ZpZGVkJyxcclxuICAgICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH07XHJcblxyXG4gICAgICBsb2dnZXIuZW1pdChsb2dSZWNvcmQpO1xyXG5cclxuICAgICAgLy8gQ1JJVElDQUw6IEZvcmNlIGZsdXNoIHRvIGVuc3VyZSBsb2cgaXMgc2VudCBiZWZvcmUgTGFtYmRhIGZyZWV6ZXNcclxuICAgICAgLy8gV2l0aG91dCB0aGlzLCB0aGUgYXN5bmMgSFRUUCByZXF1ZXN0IG1heSBub3QgY29tcGxldGUgYmVmb3JlXHJcbiAgICAgIC8vIHRoZSBMYW1iZGEgZXhlY3V0aW9uIGNvbnRleHQgZnJlZXplc1xyXG4gICAgICBhd2FpdCB0aGlzLnRlbGVtZXRyeVByb3ZpZGVyLmZvcmNlRmx1c2goKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tUZWxlbWV0cnlTZXJ2aWNlXSBGYWlsZWQgdG8gbG9nIGVycm9yOicsIGVycm9yKTtcclxuICAgICAgLy8gRG9uJ3QgcmUtdGhyb3cgdG8gYXZvaWQgYnJlYWtpbmcgdGhlIGFwcGxpY2F0aW9uIGZsb3dcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBsb2dFeGNlcHRpb24oXHJcbiAgICBlcnJvcjogRXJyb3IsXHJcbiAgICBjb250ZXh0PzogUmVjb3JkPHN0cmluZywgYW55PlxyXG4gICk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgYXdhaXQgdGhpcy5sb2dFcnJvcih7XHJcbiAgICAgIGVycm9yLFxyXG4gICAgICBjb250ZXh0LFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./config"), exports);
|
|
18
|
-
__exportStar(require("./external-service"), exports);
|
|
19
|
-
__exportStar(require("../../telemetry"), exports);
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvdGVsZW1ldHJ5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBeUI7QUFDekIscURBQW1DO0FBQ25DLGtEQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29uZmlnJztcclxuZXhwb3J0ICogZnJvbSAnLi9leHRlcm5hbC1zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi4vLi4vdGVsZW1ldHJ5JztcclxuIl19
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { LogRecordProcessor, ReadableLogRecord } from '@opentelemetry/sdk-logs';
|
|
2
|
-
import { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';
|
|
3
|
-
import { Context } from '@opentelemetry/api';
|
|
4
|
-
export declare class SyncLogRecordProcessor implements LogRecordProcessor {
|
|
5
|
-
private readonly exporter;
|
|
6
|
-
private readonly pendingExports;
|
|
7
|
-
constructor(exporter: OTLPLogExporter);
|
|
8
|
-
onEmit(logRecord: ReadableLogRecord, _context?: Context): void;
|
|
9
|
-
forceFlush(): Promise<void>;
|
|
10
|
-
shutdown(): Promise<void>;
|
|
11
|
-
}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.SyncLogRecordProcessor = void 0;
|
|
13
|
-
class SyncLogRecordProcessor {
|
|
14
|
-
constructor(exporter) {
|
|
15
|
-
this.pendingExports = [];
|
|
16
|
-
this.exporter = exporter;
|
|
17
|
-
}
|
|
18
|
-
onEmit(logRecord, _context) {
|
|
19
|
-
const exportPromise = new Promise((resolve, reject) => {
|
|
20
|
-
this.exporter.export([logRecord], (result) => {
|
|
21
|
-
if (result.code === 0) {
|
|
22
|
-
resolve();
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
console.error('[SyncLogRecordProcessor] Export failed:', result.error);
|
|
26
|
-
reject(result.error instanceof Error
|
|
27
|
-
? result.error
|
|
28
|
-
: new Error(String(result.error)));
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
})
|
|
32
|
-
.then(() => {
|
|
33
|
-
const index = this.pendingExports.indexOf(exportPromise);
|
|
34
|
-
if (index > -1) {
|
|
35
|
-
this.pendingExports.splice(index, 1);
|
|
36
|
-
}
|
|
37
|
-
})
|
|
38
|
-
.catch((error) => {
|
|
39
|
-
console.error('[SyncLogRecordProcessor] Export error:', error);
|
|
40
|
-
const index = this.pendingExports.indexOf(exportPromise);
|
|
41
|
-
if (index > -1) {
|
|
42
|
-
this.pendingExports.splice(index, 1);
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
this.pendingExports.push(exportPromise);
|
|
46
|
-
}
|
|
47
|
-
forceFlush() {
|
|
48
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
-
console.log(`[SyncLogRecordProcessor] forceFlush called with ${this.pendingExports.length} pending exports`);
|
|
50
|
-
if (this.pendingExports.length === 0) {
|
|
51
|
-
console.log('[SyncLogRecordProcessor] No pending exports to flush');
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
try {
|
|
55
|
-
yield Promise.all(this.pendingExports);
|
|
56
|
-
console.log('[SyncLogRecordProcessor] All pending exports completed');
|
|
57
|
-
}
|
|
58
|
-
catch (error) {
|
|
59
|
-
console.error('[SyncLogRecordProcessor] Error during forceFlush:', error);
|
|
60
|
-
throw error;
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
shutdown() {
|
|
65
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
66
|
-
console.log('[SyncLogRecordProcessor] Shutting down...');
|
|
67
|
-
yield this.forceFlush();
|
|
68
|
-
yield this.exporter.shutdown();
|
|
69
|
-
console.log('[SyncLogRecordProcessor] Shutdown complete');
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
exports.SyncLogRecordProcessor = SyncLogRecordProcessor;
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1sb2ctcmVjb3JkLXByb2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy90ZWxlbWV0cnkvc3luYy1sb2ctcmVjb3JkLXByb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFZQSxNQUFhLHNCQUFzQjtJQUlqQyxZQUFZLFFBQXlCO1FBRnBCLG1CQUFjLEdBQW9CLEVBQUUsQ0FBQztRQUdwRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQTRCLEVBQUUsUUFBa0I7UUFJckQsTUFBTSxhQUFhLEdBQUcsSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDMUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUMzQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ3RCLE9BQU8sRUFBRSxDQUFDO2dCQUNaLENBQUM7cUJBQU0sQ0FBQztvQkFDTixPQUFPLENBQUMsS0FBSyxDQUNYLHlDQUF5QyxFQUN6QyxNQUFNLENBQUMsS0FBSyxDQUNiLENBQUM7b0JBQ0YsTUFBTSxDQUNKLE1BQU0sQ0FBQyxLQUFLLFlBQVksS0FBSzt3QkFDM0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLO3dCQUNkLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ3BDLENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO2FBQ0MsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNULE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3pELElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7UUFDSCxDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsQ0FBQyxLQUFjLEVBQUUsRUFBRTtZQUN4QixPQUFPLENBQUMsS0FBSyxDQUFDLHdDQUF3QyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQy9ELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3pELElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFSyxVQUFVOztZQUNkLE9BQU8sQ0FBQyxHQUFHLENBQ1QsbURBQW1ELElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxrQkFBa0IsQ0FDaEcsQ0FBQztZQUVGLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0RBQXNELENBQUMsQ0FBQztnQkFDcEUsT0FBTztZQUNULENBQUM7WUFFRCxJQUFJLENBQUM7Z0JBRUgsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDdkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO1lBQ3hFLENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsbURBQW1ELEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQzFFLE1BQU0sS0FBSyxDQUFDO1lBQ2QsQ0FBQztRQUNILENBQUM7S0FBQTtJQUVLLFFBQVE7O1lBQ1osT0FBTyxDQUFDLEdBQUcsQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1lBQ3pELE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7UUFDNUQsQ0FBQztLQUFBO0NBQ0Y7QUF4RUQsd0RBd0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9nUmVjb3JkUHJvY2Vzc29yLCBSZWFkYWJsZUxvZ1JlY29yZCB9IGZyb20gJ0BvcGVudGVsZW1ldHJ5L3Nkay1sb2dzJztcclxuaW1wb3J0IHsgT1RMUExvZ0V4cG9ydGVyIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvZXhwb3J0ZXItbG9ncy1vdGxwLWh0dHAnO1xyXG5pbXBvcnQgeyBDb250ZXh0IH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvYXBpJztcclxuXHJcbi8qKlxyXG4gKiBDdXN0b20gTG9nUmVjb3JkUHJvY2Vzc29yIHRoYXQgZW5zdXJlcyBzeW5jaHJvbm91cyBleHBvcnQgZm9yIEFXUyBMYW1iZGFcclxuICpcclxuICogVGhpcyBwcm9jZXNzb3Igd3JhcHMgdGhlIE9UTFAgZXhwb3J0ZXIgYW5kIGVuc3VyZXMgdGhhdCBsb2dzIGFyZSBhY3R1YWxseVxyXG4gKiBleHBvcnRlZCBzeW5jaHJvbm91c2x5IGJ5IGltbWVkaWF0ZWx5IGNhbGxpbmcgZXhwb3J0KCkgYW5kIHdhaXRpbmcgZm9yIGl0XHJcbiAqIHRvIGNvbXBsZXRlLCByYXRoZXIgdGhhbiByZWx5aW5nIG9uIFNpbXBsZUxvZ1JlY29yZFByb2Nlc3NvciB3aGljaCBtYXkgbm90XHJcbiAqIHByb3Blcmx5IGF3YWl0IHRoZSBhc3luYyBIVFRQIHJlcXVlc3QgaW4gTGFtYmRhIGVudmlyb25tZW50cy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBTeW5jTG9nUmVjb3JkUHJvY2Vzc29yIGltcGxlbWVudHMgTG9nUmVjb3JkUHJvY2Vzc29yIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IGV4cG9ydGVyOiBPVExQTG9nRXhwb3J0ZXI7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBwZW5kaW5nRXhwb3J0czogUHJvbWlzZTx2b2lkPltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKGV4cG9ydGVyOiBPVExQTG9nRXhwb3J0ZXIpIHtcclxuICAgIHRoaXMuZXhwb3J0ZXIgPSBleHBvcnRlcjtcclxuICB9XHJcblxyXG4gIG9uRW1pdChsb2dSZWNvcmQ6IFJlYWRhYmxlTG9nUmVjb3JkLCBfY29udGV4dD86IENvbnRleHQpOiB2b2lkIHtcclxuICAgIC8vIEV4cG9ydCBpbW1lZGlhdGVseSBhbmQgdHJhY2sgdGhlIHByb21pc2VcclxuICAgIC8vIFRoZSBleHBvcnQgbWV0aG9kIHJldHVybnMgdm9pZCwgYnV0IGludGVybmFsbHkgdHJpZ2dlcnMgYXN5bmMgSFRUUCByZXF1ZXN0XHJcbiAgICAvLyBXZSBuZWVkIHRvIHdyYXAgaXQgdG8gdHJhY2sgY29tcGxldGlvblxyXG4gICAgY29uc3QgZXhwb3J0UHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgdGhpcy5leHBvcnRlci5leHBvcnQoW2xvZ1JlY29yZF0sIChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LmNvZGUgPT09IDApIHtcclxuICAgICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcclxuICAgICAgICAgICAgJ1tTeW5jTG9nUmVjb3JkUHJvY2Vzc29yXSBFeHBvcnQgZmFpbGVkOicsXHJcbiAgICAgICAgICAgIHJlc3VsdC5lcnJvclxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHJlamVjdChcclxuICAgICAgICAgICAgcmVzdWx0LmVycm9yIGluc3RhbmNlb2YgRXJyb3JcclxuICAgICAgICAgICAgICA/IHJlc3VsdC5lcnJvclxyXG4gICAgICAgICAgICAgIDogbmV3IEVycm9yKFN0cmluZyhyZXN1bHQuZXJyb3IpKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSlcclxuICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5wZW5kaW5nRXhwb3J0cy5pbmRleE9mKGV4cG9ydFByb21pc2UpO1xyXG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLnBlbmRpbmdFeHBvcnRzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goKGVycm9yOiB1bmtub3duKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignW1N5bmNMb2dSZWNvcmRQcm9jZXNzb3JdIEV4cG9ydCBlcnJvcjonLCBlcnJvcik7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnBlbmRpbmdFeHBvcnRzLmluZGV4T2YoZXhwb3J0UHJvbWlzZSk7XHJcbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICAgIHRoaXMucGVuZGluZ0V4cG9ydHMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMucGVuZGluZ0V4cG9ydHMucHVzaChleHBvcnRQcm9taXNlKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGZvcmNlRmx1c2goKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zb2xlLmxvZyhcclxuICAgICAgYFtTeW5jTG9nUmVjb3JkUHJvY2Vzc29yXSBmb3JjZUZsdXNoIGNhbGxlZCB3aXRoICR7dGhpcy5wZW5kaW5nRXhwb3J0cy5sZW5ndGh9IHBlbmRpbmcgZXhwb3J0c2BcclxuICAgICk7XHJcblxyXG4gICAgaWYgKHRoaXMucGVuZGluZ0V4cG9ydHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdbU3luY0xvZ1JlY29yZFByb2Nlc3Nvcl0gTm8gcGVuZGluZyBleHBvcnRzIHRvIGZsdXNoJyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0cnkge1xyXG4gICAgICAvLyBXYWl0IGZvciBhbGwgcGVuZGluZyBleHBvcnRzIHRvIGNvbXBsZXRlXHJcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKHRoaXMucGVuZGluZ0V4cG9ydHMpO1xyXG4gICAgICBjb25zb2xlLmxvZygnW1N5bmNMb2dSZWNvcmRQcm9jZXNzb3JdIEFsbCBwZW5kaW5nIGV4cG9ydHMgY29tcGxldGVkJyk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdbU3luY0xvZ1JlY29yZFByb2Nlc3Nvcl0gRXJyb3IgZHVyaW5nIGZvcmNlRmx1c2g6JywgZXJyb3IpO1xyXG4gICAgICB0aHJvdyBlcnJvcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIHNodXRkb3duKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc29sZS5sb2coJ1tTeW5jTG9nUmVjb3JkUHJvY2Vzc29yXSBTaHV0dGluZyBkb3duLi4uJyk7XHJcbiAgICBhd2FpdCB0aGlzLmZvcmNlRmx1c2goKTtcclxuICAgIGF3YWl0IHRoaXMuZXhwb3J0ZXIuc2h1dGRvd24oKTtcclxuICAgIGNvbnNvbGUubG9nKCdbU3luY0xvZ1JlY29yZFByb2Nlc3Nvcl0gU2h1dGRvd24gY29tcGxldGUnKTtcclxuICB9XHJcbn1cclxuIl19
|
package/dist/telemetry.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function LogTelemetry(): (_target: any, _propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
package/dist/telemetry.js
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.LogTelemetry = LogTelemetry;
|
|
13
|
-
const services_1 = require("./services");
|
|
14
|
-
function LogTelemetry() {
|
|
15
|
-
return function (_target, _propertyKey, descriptor) {
|
|
16
|
-
const originalMethod = descriptor.value;
|
|
17
|
-
const methodName = _propertyKey;
|
|
18
|
-
descriptor.value = function (...args) {
|
|
19
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
20
|
-
var _a, _b, _c, _d, _e;
|
|
21
|
-
const $ctx = args.find((arg) => (arg === null || arg === void 0 ? void 0 : arg.request) && (arg === null || arg === void 0 ? void 0 : arg.response));
|
|
22
|
-
let controllerName = 'UnknownController';
|
|
23
|
-
if (((_a = this === null || this === void 0 ? void 0 : this.constructor) === null || _a === void 0 ? void 0 : _a.name) && this.constructor.name !== 'Object') {
|
|
24
|
-
controllerName = this.constructor.name;
|
|
25
|
-
}
|
|
26
|
-
if (!$ctx) {
|
|
27
|
-
console.warn('[LogTelemetry] Context not found, executing without telemetry');
|
|
28
|
-
return yield originalMethod.apply(this, args);
|
|
29
|
-
}
|
|
30
|
-
let telemetryService;
|
|
31
|
-
try {
|
|
32
|
-
if ($ctx.injector) {
|
|
33
|
-
telemetryService = $ctx.injector.get(services_1.TelemetryService);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
catch (error) {
|
|
37
|
-
(_b = $ctx.logger) === null || _b === void 0 ? void 0 : _b.warn({
|
|
38
|
-
'LogTelemetry - Failed to get TelemetryService from injector': error,
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
if (!telemetryService) {
|
|
42
|
-
(_c = $ctx.logger) === null || _c === void 0 ? void 0 : _c.warn('[LogTelemetry] TelemetryService not available, executing without telemetry');
|
|
43
|
-
return yield originalMethod.apply(this, args);
|
|
44
|
-
}
|
|
45
|
-
try {
|
|
46
|
-
const result = yield originalMethod.apply(this, args);
|
|
47
|
-
return result;
|
|
48
|
-
}
|
|
49
|
-
catch (error) {
|
|
50
|
-
(_d = $ctx.logger) === null || _d === void 0 ? void 0 : _d.info('Error caught, sending to telemetry');
|
|
51
|
-
const request = $ctx.request;
|
|
52
|
-
const { loggedUser } = LoggedUserIdentifier.use($ctx);
|
|
53
|
-
yield telemetryService.logError({
|
|
54
|
-
error: error,
|
|
55
|
-
context: {
|
|
56
|
-
statusCode: error.status || 500,
|
|
57
|
-
url: request.url,
|
|
58
|
-
headers: request.headers,
|
|
59
|
-
body: request.body,
|
|
60
|
-
params: request.params,
|
|
61
|
-
query: request.query,
|
|
62
|
-
},
|
|
63
|
-
accountUserUid: loggedUser.uid,
|
|
64
|
-
accountUid: loggedUser.account.uid,
|
|
65
|
-
requestId: $ctx.id,
|
|
66
|
-
awsRequestId: (_e = $ctx.context) === null || _e === void 0 ? void 0 : _e.awsRequestId,
|
|
67
|
-
endpoint: request.url,
|
|
68
|
-
method: request.method,
|
|
69
|
-
controller: controllerName,
|
|
70
|
-
controllerMethod: methodName,
|
|
71
|
-
applicationUid: loggedUser.application.uid,
|
|
72
|
-
});
|
|
73
|
-
$ctx.logger.info('Error sent to telemetry');
|
|
74
|
-
throw error;
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
};
|
|
78
|
-
return descriptor;
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVsZW1ldHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3RlbGVtZXRyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQVFBLG9DQXdGQztBQTFGRCx5Q0FBOEM7QUFFOUMsU0FBZ0IsWUFBWTtJQUMxQixPQUFPLFVBQ0wsT0FBWSxFQUNaLFlBQW9CLEVBQ3BCLFVBQThCO1FBRTlCLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDeEMsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDO1FBRWhDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsVUFBMkIsR0FBRyxJQUFXOzs7Z0JBRTFELE1BQU0sSUFBSSxHQUFzQixJQUFJLENBQUMsSUFBSSxDQUN2QyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsT0FBTyxNQUFJLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxRQUFRLENBQUEsQ0FDdkMsQ0FBQztnQkFHRixJQUFJLGNBQWMsR0FBRyxtQkFBbUIsQ0FBQztnQkFFekMsSUFBSSxDQUFBLE1BQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFdBQVcsMENBQUUsSUFBSSxLQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUNsRSxjQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7Z0JBQ3pDLENBQUM7Z0JBRUQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNWLE9BQU8sQ0FBQyxJQUFJLENBQ1YsK0RBQStELENBQ2hFLENBQUM7b0JBQ0YsT0FBTyxNQUFNLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNoRCxDQUFDO2dCQUdELElBQUksZ0JBQThDLENBQUM7Z0JBQ25ELElBQUksQ0FBQztvQkFDSCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQzt3QkFDbEIsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQ2xDLDJCQUFnQixDQUNHLENBQUM7b0JBQ3hCLENBQUM7Z0JBQ0gsQ0FBQztnQkFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO29CQUNmLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsSUFBSSxDQUFDO3dCQUNoQiw2REFBNkQsRUFBRSxLQUFLO3FCQUNyRSxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFFRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDdEIsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxJQUFJLENBQ2YsNEVBQTRFLENBQzdFLENBQUM7b0JBQ0YsT0FBTyxNQUFNLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNoRCxDQUFDO2dCQUVELElBQUksQ0FBQztvQkFDSCxNQUFNLE1BQU0sR0FBRyxNQUFNLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUN0RCxPQUFPLE1BQU0sQ0FBQztnQkFDaEIsQ0FBQztnQkFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO29CQUNwQixNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLElBQUksQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO29CQUV4RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO29CQUM3QixNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsb0JBQW9CLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUV0RCxNQUFNLGdCQUFnQixDQUFDLFFBQVEsQ0FBQzt3QkFDOUIsS0FBSyxFQUFFLEtBQUs7d0JBQ1osT0FBTyxFQUFFOzRCQUNQLFVBQVUsRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUc7NEJBQy9CLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRzs0QkFDaEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPOzRCQUN4QixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7NEJBQ2xCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTs0QkFDdEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO3lCQUNyQjt3QkFDRCxjQUFjLEVBQUUsVUFBVSxDQUFDLEdBQUc7d0JBQzlCLFVBQVUsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUc7d0JBQ2xDLFNBQVMsRUFBRSxJQUFJLENBQUMsRUFBRTt3QkFDbEIsWUFBWSxFQUFFLE1BQUEsSUFBSSxDQUFDLE9BQU8sMENBQUUsWUFBWTt3QkFDeEMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHO3dCQUNyQixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07d0JBQ3RCLFVBQVUsRUFBRSxjQUFjO3dCQUMxQixnQkFBZ0IsRUFBRSxVQUFVO3dCQUM1QixjQUFjLEVBQUUsVUFBVSxDQUFDLFdBQVcsQ0FBQyxHQUFHO3FCQUMzQyxDQUFDLENBQUM7b0JBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQztvQkFHNUMsTUFBTSxLQUFLLENBQUM7Z0JBQ2QsQ0FBQztZQUNILENBQUM7U0FBQSxDQUFDO1FBRUYsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBEZWNvcmF0b3IgcXVlIGNhcHR1cmEgZXJyb3MgYXV0b21hdGljYW1lbnRlIGUgZW52aWEgcGFyYSB0ZWxlbWV0cmlhXHJcbiAqIFVzbyBubyBjb250cm9sbGVyOlxyXG4gKlxyXG4gKi9cclxuXHJcbmltcG9ydCB7IFRlbGVtZXRyeVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBMb2dUZWxlbWV0cnkoKSB7XHJcbiAgcmV0dXJuIGZ1bmN0aW9uIChcclxuICAgIF90YXJnZXQ6IGFueSxcclxuICAgIF9wcm9wZXJ0eUtleTogc3RyaW5nLFxyXG4gICAgZGVzY3JpcHRvcjogUHJvcGVydHlEZXNjcmlwdG9yXHJcbiAgKSB7XHJcbiAgICBjb25zdCBvcmlnaW5hbE1ldGhvZCA9IGRlc2NyaXB0b3IudmFsdWU7XHJcbiAgICBjb25zdCBtZXRob2ROYW1lID0gX3Byb3BlcnR5S2V5O1xyXG5cclxuICAgIGRlc2NyaXB0b3IudmFsdWUgPSBhc3luYyBmdW5jdGlvbiAodGhpczogYW55LCAuLi5hcmdzOiBhbnlbXSkge1xyXG4gICAgICAvLyBFbmNvbnRyYXIgbyBjb250ZXh0b1xyXG4gICAgICBjb25zdCAkY3R4OiBTZXJ2ZXJsZXNzQ29udGV4dCA9IGFyZ3MuZmluZChcclxuICAgICAgICAoYXJnKSA9PiBhcmc/LnJlcXVlc3QgJiYgYXJnPy5yZXNwb25zZVxyXG4gICAgICApO1xyXG5cclxuICAgICAgLy8gQ2FwdHVyYXIgbyBub21lIGRvIGNvbnRyb2xsZXIgLSB0ZW50YXIgdsOhcmlhcyBmb250ZXNcclxuICAgICAgbGV0IGNvbnRyb2xsZXJOYW1lID0gJ1Vua25vd25Db250cm9sbGVyJztcclxuXHJcbiAgICAgIGlmICh0aGlzPy5jb25zdHJ1Y3Rvcj8ubmFtZSAmJiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgIT09ICdPYmplY3QnKSB7XHJcbiAgICAgICAgY29udHJvbGxlck5hbWUgPSB0aGlzLmNvbnN0cnVjdG9yLm5hbWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICghJGN0eCkge1xyXG4gICAgICAgIGNvbnNvbGUud2FybihcclxuICAgICAgICAgICdbTG9nVGVsZW1ldHJ5XSBDb250ZXh0IG5vdCBmb3VuZCwgZXhlY3V0aW5nIHdpdGhvdXQgdGVsZW1ldHJ5J1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IG9yaWdpbmFsTWV0aG9kLmFwcGx5KHRoaXMsIGFyZ3MpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBCdXNjYXIgbyBUZWxlbWV0cnlTZXJ2aWNlIGRvIEluamVjdG9yU2VydmljZSBkbyBjb250ZXh0b1xyXG4gICAgICBsZXQgdGVsZW1ldHJ5U2VydmljZTogVGVsZW1ldHJ5U2VydmljZSB8IHVuZGVmaW5lZDtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBpZiAoJGN0eC5pbmplY3Rvcikge1xyXG4gICAgICAgICAgdGVsZW1ldHJ5U2VydmljZSA9ICRjdHguaW5qZWN0b3IuZ2V0KFxyXG4gICAgICAgICAgICBUZWxlbWV0cnlTZXJ2aWNlXHJcbiAgICAgICAgICApIGFzIFRlbGVtZXRyeVNlcnZpY2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICRjdHgubG9nZ2VyPy53YXJuKHtcclxuICAgICAgICAgICdMb2dUZWxlbWV0cnkgLSBGYWlsZWQgdG8gZ2V0IFRlbGVtZXRyeVNlcnZpY2UgZnJvbSBpbmplY3Rvcic6IGVycm9yLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoIXRlbGVtZXRyeVNlcnZpY2UpIHtcclxuICAgICAgICAkY3R4LmxvZ2dlcj8ud2FybihcclxuICAgICAgICAgICdbTG9nVGVsZW1ldHJ5XSBUZWxlbWV0cnlTZXJ2aWNlIG5vdCBhdmFpbGFibGUsIGV4ZWN1dGluZyB3aXRob3V0IHRlbGVtZXRyeSdcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBhd2FpdCBvcmlnaW5hbE1ldGhvZC5hcHBseSh0aGlzLCBhcmdzKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBvcmlnaW5hbE1ldGhvZC5hcHBseSh0aGlzLCBhcmdzKTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XHJcbiAgICAgICAgJGN0eC5sb2dnZXI/LmluZm8oJ0Vycm9yIGNhdWdodCwgc2VuZGluZyB0byB0ZWxlbWV0cnknKTtcclxuICAgICAgICAvLyBFeHRyYWlyIGluZm9ybWHDp8O1ZXMgZG8gdXN1w6FyaW9cclxuICAgICAgICBjb25zdCByZXF1ZXN0ID0gJGN0eC5yZXF1ZXN0O1xyXG4gICAgICAgIGNvbnN0IHsgbG9nZ2VkVXNlciB9ID0gTG9nZ2VkVXNlcklkZW50aWZpZXIudXNlKCRjdHgpO1xyXG5cclxuICAgICAgICBhd2FpdCB0ZWxlbWV0cnlTZXJ2aWNlLmxvZ0Vycm9yKHtcclxuICAgICAgICAgIGVycm9yOiBlcnJvcixcclxuICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgc3RhdHVzQ29kZTogZXJyb3Iuc3RhdHVzIHx8IDUwMCxcclxuICAgICAgICAgICAgdXJsOiByZXF1ZXN0LnVybCxcclxuICAgICAgICAgICAgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzLFxyXG4gICAgICAgICAgICBib2R5OiByZXF1ZXN0LmJvZHksXHJcbiAgICAgICAgICAgIHBhcmFtczogcmVxdWVzdC5wYXJhbXMsXHJcbiAgICAgICAgICAgIHF1ZXJ5OiByZXF1ZXN0LnF1ZXJ5LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGFjY291bnRVc2VyVWlkOiBsb2dnZWRVc2VyLnVpZCxcclxuICAgICAgICAgIGFjY291bnRVaWQ6IGxvZ2dlZFVzZXIuYWNjb3VudC51aWQsXHJcbiAgICAgICAgICByZXF1ZXN0SWQ6ICRjdHguaWQsXHJcbiAgICAgICAgICBhd3NSZXF1ZXN0SWQ6ICRjdHguY29udGV4dD8uYXdzUmVxdWVzdElkLFxyXG4gICAgICAgICAgZW5kcG9pbnQ6IHJlcXVlc3QudXJsLFxyXG4gICAgICAgICAgbWV0aG9kOiByZXF1ZXN0Lm1ldGhvZCxcclxuICAgICAgICAgIGNvbnRyb2xsZXI6IGNvbnRyb2xsZXJOYW1lLFxyXG4gICAgICAgICAgY29udHJvbGxlck1ldGhvZDogbWV0aG9kTmFtZSxcclxuICAgICAgICAgIGFwcGxpY2F0aW9uVWlkOiBsb2dnZWRVc2VyLmFwcGxpY2F0aW9uLnVpZCxcclxuICAgICAgICB9KTtcclxuICAgICAgICAkY3R4LmxvZ2dlci5pbmZvKCdFcnJvciBzZW50IHRvIHRlbGVtZXRyeScpO1xyXG5cclxuICAgICAgICAvLyBSZS10aHJvdyBwYXJhIG1hbnRlciBvIGNvbXBvcnRhbWVudG8gbm9ybWFsIGRlIGVycm9cclxuICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gZGVzY3JpcHRvcjtcclxuICB9O1xyXG59XHJcbiJdfQ==
|
|
File without changes
|