@mecanizou/telemetry-hub 1.1.0 → 1.1.1
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 +8 -0
- package/dist/core/__tests__/logger.test.js +18 -5
- package/dist/core/logger.d.ts +6 -2
- package/dist/core/logger.js +17 -8
- package/dist/core/tracer-types.d.ts +2 -1
- package/dist/core/tracer-types.js +1 -1
- package/dist/core/tracer.d.ts +1 -0
- package/dist/core/tracer.js +6 -2
- package/dist/sst/middy/middleware.js +3 -3
- package/dist/sst/telemetry.js +3 -2
- package/dist/tsed/service.js +2 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
## [1.1.1](https://github.com/mecanizou-eco/telemetry-hub/compare/v1.1.0...v1.1.1) (2026-01-20)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* attr and inject tracer on logger ([818cdfb](https://github.com/mecanizou-eco/telemetry-hub/commit/818cdfb4b5e6529e213f660456979900977f9a22))
|
|
7
|
+
* typo and tests ([47cb4c2](https://github.com/mecanizou-eco/telemetry-hub/commit/47cb4c2ee160c982a528264d73a3d71a500fcff4))
|
|
8
|
+
|
|
1
9
|
# [1.1.0](https://github.com/mecanizou-eco/telemetry-hub/compare/v1.0.6...v1.1.0) (2026-01-20)
|
|
2
10
|
|
|
3
11
|
|
|
@@ -14,12 +14,24 @@ const logger_1 = require("../logger");
|
|
|
14
14
|
const api_logs_1 = require("@opentelemetry/api-logs");
|
|
15
15
|
(0, vitest_1.describe)('StandardLogger', () => {
|
|
16
16
|
let mockLogger;
|
|
17
|
+
let mockTracer;
|
|
17
18
|
let standardLogger;
|
|
18
19
|
(0, vitest_1.beforeEach)(() => {
|
|
20
|
+
process.env.SERVICE_NAME = 'test-service';
|
|
19
21
|
mockLogger = {
|
|
20
22
|
emit: vitest_1.vi.fn(),
|
|
21
23
|
};
|
|
22
|
-
|
|
24
|
+
mockTracer = {
|
|
25
|
+
getTracer: vitest_1.vi.fn().mockReturnValue({
|
|
26
|
+
startSpan: vitest_1.vi.fn().mockReturnValue({
|
|
27
|
+
spanContext: () => ({
|
|
28
|
+
traceId: 'test-trace-id',
|
|
29
|
+
spanId: 'test-span-id',
|
|
30
|
+
}),
|
|
31
|
+
}),
|
|
32
|
+
}),
|
|
33
|
+
};
|
|
34
|
+
standardLogger = new logger_1.StandardLogger(mockLogger, mockTracer);
|
|
23
35
|
});
|
|
24
36
|
(0, vitest_1.describe)('logError', () => {
|
|
25
37
|
(0, vitest_1.it)('deve emitir log com severity ERROR', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -311,7 +323,7 @@ const api_logs_1 = require("@opentelemetry/api-logs");
|
|
|
311
323
|
});
|
|
312
324
|
(0, vitest_1.describe)('construtor', () => {
|
|
313
325
|
(0, vitest_1.it)('deve aceitar serviceName padrão personalizado', () => {
|
|
314
|
-
const customLogger = new logger_1.StandardLogger(mockLogger,
|
|
326
|
+
const customLogger = new logger_1.StandardLogger(mockLogger, mockTracer);
|
|
315
327
|
const logData = {
|
|
316
328
|
message: 'Test',
|
|
317
329
|
serviceName: '',
|
|
@@ -319,10 +331,11 @@ const api_logs_1 = require("@opentelemetry/api-logs");
|
|
|
319
331
|
};
|
|
320
332
|
customLogger.logInfo(logData);
|
|
321
333
|
const emittedLog = mockLogger.emit.mock.calls[0][0];
|
|
322
|
-
(0, vitest_1.expect)(emittedLog.attributes['service.name']).toBe('
|
|
334
|
+
(0, vitest_1.expect)(emittedLog.attributes['service.name']).toBe('test-service');
|
|
323
335
|
});
|
|
324
336
|
(0, vitest_1.it)('deve usar "unknown-service" como padrão quando não especificado', () => {
|
|
325
|
-
|
|
337
|
+
process.env.SERVICE_NAME = '';
|
|
338
|
+
const defaultLogger = new logger_1.StandardLogger(mockLogger, mockTracer);
|
|
326
339
|
const logData = {
|
|
327
340
|
message: 'Test',
|
|
328
341
|
serviceName: '',
|
|
@@ -334,4 +347,4 @@ const api_logs_1 = require("@opentelemetry/api-logs");
|
|
|
334
347
|
});
|
|
335
348
|
});
|
|
336
349
|
});
|
|
337
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9fX3Rlc3RzX18vbG9nZ2VyLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBOEQ7QUFDOUQsc0NBQTJDO0FBQzNDLHNEQUF5RDtBQUV6RCxJQUFBLGlCQUFRLEVBQUMsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFO0lBQzlCLElBQUksVUFBZSxDQUFDO0lBQ3BCLElBQUksY0FBOEIsQ0FBQztJQUVuQyxJQUFBLG1CQUFVLEVBQUMsR0FBRyxFQUFFO1FBQ2QsVUFBVSxHQUFHO1lBQ1gsSUFBSSxFQUFFLFdBQUUsQ0FBQyxFQUFFLEVBQUU7U0FDZCxDQUFDO1FBQ0YsY0FBYyxHQUFHLElBQUksdUJBQWMsQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDbEUsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFBLGlCQUFRLEVBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRTtRQUN4QixJQUFBLFdBQUUsRUFBQyxvQ0FBb0MsRUFBRSxHQUFTLEVBQUU7WUFDbEQsTUFBTSxTQUFTLEdBQUc7Z0JBQ2hCLE9BQU8sRUFBRSxvQkFBb0I7Z0JBQzdCLFdBQVcsRUFBRSxjQUFjO2dCQUMzQixXQUFXLEVBQUUsTUFBTTthQUNwQixDQUFDO1lBRUYsTUFBTSxjQUFjLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRXpDLElBQUEsZUFBTSxFQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqRCxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEQsSUFBQSxlQUFNLEVBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyx5QkFBYyxDQUFDLEtB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QUFhLEdBQUcsSUFBSSx1QkFBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3JELE1BQU0sT0FBTyxHQUFHO2dCQUNkLE9BQU8sRUFBRSxNQUFNO2dCQUNmLFdBQVcsRUFBRSxFQUFFO2dCQUNmLFdBQVcsRUFBRSxNQUFNO2FBQ3BCLENBQUM7WUFFRixhQUFhLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRS9CLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwRCxJQUFBLGVBQU0sRUFBQyxVQUFVLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDeEUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVzY3JpYmUsIGl0LCBleHBlY3QsIHZpLCBiZWZvcmVFYWNoIH0gZnJvbSAndml0ZXN0JztcbmltcG9ydCB7IFN0YW5kYXJkTG9nZ2VyIH0gZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCB7IFNldmVyaXR5TnVtYmVyIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvYXBpLWxvZ3MnO1xuXG5kZXNjcmliZSgnU3RhbmRhcmRMb2dnZXInLCAoKSA9PiB7XG4gIGxldCBtb2NrTG9nZ2VyOiBhbnk7XG4gIGxldCBzdGFuZGFyZExvZ2dlcjogU3RhbmRhcmRMb2dnZXI7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgbW9ja0xvZ2dlciA9IHtcbiAgICAgIGVtaXQ6IHZpLmZuKCksXG4gICAgfTtcbiAgICBzdGFuZGFyZExvZ2dlciA9IG5ldyBTdGFuZGFyZExvZ2dlcihtb2NrTG9nZ2VyLCAndGVzdC1zZXJ2aWNlJyk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdsb2dFcnJvcicsICgpID0+IHtcbiAgICBpdCgnZGV2ZSBlbWl0aXIgbG9nIGNvbSBzZXZlcml0eSBFUlJPUicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGVycm9yRGF0YSA9IHtcbiAgICAgICAgbWVzc2FnZTogJ1Rlc3QgZXJyb3IgbWVzc2FnZScsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAndGVzdC1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICd0ZXN0JyxcbiAgICAgIH07XG5cbiAgICAgIGF3YWl0IHN0YW5kYXJkTG9nZ2VyLmxvZ0Vycm9yKGVycm9yRGF0YSk7XG5cbiAgICAgIGV4cGVjdChtb2NrTG9nZ2VyLmVtaXQpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLnNldmVyaXR5TnVtYmVyKS50b0JlKFNldmVyaXR5TnVtYmVyLkVSUk9SKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLnNldmVyaXR5VGV4dCkudG9CZSgnRVJST1InKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmJvZHkpLnRvQmUoJ1Rlc3QgZXJyb3IgbWVzc2FnZScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RldmUgaW5jbHVpciBpbmZvcm1hw6fDtWVzIGRvIGVycm8gcXVhbmRvIGZvcm5lY2lkbycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKCdDdXN0b20gZXJyb3InKTtcbiAgICAgIGNvbnN0IGVycm9yRGF0YSA9IHtcbiAgICAgICAgbWVzc2FnZTogJ0Vycm9yIG9jY3VycmVkJyxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAndGVzdC1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJyxcbiAgICAgIH07XG5cbiAgICAgIGF3YWl0IHN0YW5kYXJkTG9nZ2VyLmxvZ0Vycm9yKGVycm9yRGF0YSk7XG5cbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2Vycm9yLnR5cGUnXSkudG9CZSgnRXJyb3InKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2Vycm9yLm1lc3NhZ2UnXSkudG9CZSgnQ3VzdG9tIGVycm9yJyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydlcnJvci5zdGFjayddKS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RldmUgaW5jbHVpciBjb250ZXh0byBIVFRQIHF1YW5kbyBmb3JuZWNpZG8nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBlcnJvckRhdGEgPSB7XG4gICAgICAgIG1lc3NhZ2U6ICdIVFRQIGVycm9yJyxcbiAgICAgICAgc2VydmljZU5hbWU6ICd0ZXN0LXNlcnZpY2UnLFxuICAgICAgICBlbnZpcm9ubWVudDogJ3Byb2R1Y3Rpb24nLFxuICAgICAgICBodHRwOiB7XG4gICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgdXJsOiAnL2FwaS90ZXN0JyxcbiAgICAgICAgICBlbmRwb2ludDogJy9hcGkvdGVzdCcsXG4gICAgICAgICAgc3RhdHVzQ29kZTogNTAwLFxuICAgICAgICAgIGhlYWRlcnM6IHsgJ2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LFxuICAgICAgICAgIGJvZHk6IHsgdGVzdDogJ2RhdGEnIH0sXG4gICAgICAgICAgcGFyYW1zOiB7IGlkOiAnMTIzJyB9LFxuICAgICAgICAgIHF1ZXJ5OiB7IGZpbHRlcjogJ2FjdGl2ZScgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGF3YWl0IHN0YW5kYXJkTG9nZ2VyLmxvZ0Vycm9yKGVycm9yRGF0YSk7XG5cbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2h0dHAubWV0aG9kJ10pLnRvQmUoJ1BPU1QnKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2h0dHAudXJsJ10pLnRvQmUoJy9hcGkvdGVzdCcpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snaHR0cC5lbmRwb2ludCddKS50b0JlKCcvYXBpL3Rlc3QnKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2h0dHAuc3RhdHVzX2NvZGUnXSkudG9CZSg1MDApO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snaHR0cC5oZWFkZXJzJ10pLnRvQmUoXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHsgJ2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KVxuICAgICAgKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2h0dHAuYm9keSddKS50b0JlKFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh7IHRlc3Q6ICdkYXRhJyB9KVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdkZXZlIGluY2x1aXIgaW5mb3JtYcOnw7VlcyBkZSB1c3XDoXJpbyBxdWFuZG8gZm9ybmVjaWRvJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZXJyb3JEYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiAnVXNlciBlcnJvcicsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAndGVzdC1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJyxcbiAgICAgICAgdXNlcjoge1xuICAgICAgICAgIGFjY291bnRVc2VyVWlkOiAndXNlci0xMjMnLFxuICAgICAgICAgIGFjY291bnRVaWQ6ICdhY2NvdW50LTQ1NicsXG4gICAgICAgICAgYXBwbGljYXRpb25VaWQ6ICdhcHAtNzg5JyxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGF3YWl0IHN0YW5kYXJkTG9nZ2VyLmxvZ0Vycm9yKGVycm9yRGF0YSk7XG5cbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2FjY291bnRVc2VyLnVpZCddKS50b0JlKCd1c2VyLTEyMycpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snYWNjb3VudC51aWQnXSkudG9CZSgnYWNjb3VudC00NTYnKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2FwcGxpY2F0aW9uLnVpZCddKS50b0JlKCdhcHAtNzg5Jyk7XG4gICAgfSk7XG5cbiAgICBpdCgnZGV2ZSBpbmNsdWlyIGluZm9ybWHDp8O1ZXMgZGUgZXhlY3XDp8OjbyBxdWFuZG8gZm9ybmVjaWRvJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZXJyb3JEYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiAnRXhlY3V0aW9uIGVycm9yJyxcbiAgICAgICAgc2VydmljZU5hbWU6ICd0ZXN0LXNlcnZpY2UnLFxuICAgICAgICBlbnZpcm9ubWVudDogJ3Byb2R1Y3Rpb24nLFxuICAgICAgICBleGVjdXRpb246IHtcbiAgICAgICAgICByZXF1ZXN0SWQ6ICdyZXEtMTIzJyxcbiAgICAgICAgICBhd3NSZXF1ZXN0SWQ6ICdhd3MtNDU2JyxcbiAgICAgICAgICBmdW5jdGlvbk5hbWU6ICd0ZXN0RnVuY3Rpb24nLFxuICAgICAgICAgIGludm9jYXRpb25JZDogJ2ludi03ODknLFxuICAgICAgICAgIGNvbnRyb2xsZXI6ICdUZXN0Q29udHJvbGxlcicsXG4gICAgICAgICAgY29udHJvbGxlck1ldGhvZDogJ3Rlc3RNZXRob2QnLFxuICAgICAgICAgIG9yaWdpbjogJ21vYmlsZScsXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBhd2FpdCBzdGFuZGFyZExvZ2dlci5sb2dFcnJvcihlcnJvckRhdGEpO1xuXG4gICAgICBjb25zdCBlbWl0dGVkTG9nID0gbW9ja0xvZ2dlci5lbWl0Lm1vY2suY2FsbHNbMF1bMF07XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydyZXF1ZXN0LmlkJ10pLnRvQmUoJ3JlcS0xMjMnKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2F3cy5yZXF1ZXN0LmlkJ10pLnRvQmUoJ2F3cy00NTYnKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2Z1bmN0aW9uLm5hbWUnXSkudG9CZSgndGVzdEZ1bmN0aW9uJyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydmdW5jdGlvbi5pbnZvY2F0aW9uX2lkJ10pLnRvQmUoJ2ludi03ODknKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2NvbnRyb2xsZXIubmFtZSddKS50b0JlKCdUZXN0Q29udHJvbGxlcicpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snY29udHJvbGxlci5tZXRob2QnXSkudG9CZSgndGVzdE1ldGhvZCcpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snb3JpZ2luJ10pLnRvQmUoJ21vYmlsZScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RldmUgaW5jbHVpciBtw6l0cmljYXMgZGUgcGVyZm9ybWFuY2UgcXVhbmRvIGZvcm5lY2lkbycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGVycm9yRGF0YSA9IHtcbiAgICAgICAgbWVzc2FnZTogJ1BlcmZvcm1hbmNlIGVycm9yJyxcbiAgICAgICAgc2VydmljZU5hbWU6ICd0ZXN0LXNlcnZpY2UnLFxuICAgICAgICBlbnZpcm9ubWVudDogJ3Byb2R1Y3Rpb24nLFxuICAgICAgICBwZXJmb3JtYW5jZToge1xuICAgICAgICAgIGR1cmF0aW9uTXM6IDE1MDAsXG4gICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBhd2FpdCBzdGFuZGFyZExvZ2dlci5sb2dFcnJvcihlcnJvckRhdGEpO1xuXG4gICAgICBjb25zdCBlbWl0dGVkTG9nID0gbW9ja0xvZ2dlci5lbWl0Lm1vY2suY2FsbHNbMF1bMF07XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydkdXJhdGlvbi5tcyddKS50b0JlKDE1MDApO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snZXhlY3V0aW9uLnN1Y2Nlc3MnXSkudG9CZShmYWxzZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnZGV2ZSBpbmNsdWlyIGNvbnRleHRvIGFkaWNpb25hbCBxdWFuZG8gZm9ybmVjaWRvJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZXJyb3JEYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiAnQ29udGV4dCBlcnJvcicsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAndGVzdC1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJyxcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgIGFkZGl0aW9uYWxJbmZvOiAnc29tZSBkYXRhJyxcbiAgICAgICAgICBuZXN0ZWQ6IHsgdmFsdWU6IDEyMyB9LFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgYXdhaXQgc3RhbmRhcmRMb2dnZXIubG9nRXJyb3IoZXJyb3JEYXRhKTtcblxuICAgICAgY29uc3QgZW1pdHRlZExvZyA9IG1vY2tMb2dnZXIuZW1pdC5tb2NrLmNhbGxzWzBdWzBdO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snY29udGV4dCddKS50b0JlKFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh7IGFkZGl0aW9uYWxJbmZvOiAnc29tZSBkYXRhJywgbmVzdGVkOiB7IHZhbHVlOiAxMjMgfSB9KVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdkZXZlIHVzYXIgc2VydmljZU5hbWUgcGFkcsOjbyBxdWFuZG8gbsOjbyBmb3JuZWNpZG8nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBlcnJvckRhdGEgPSB7XG4gICAgICAgIG1lc3NhZ2U6ICdEZWZhdWx0IHNlcnZpY2UgZXJyb3InLFxuICAgICAgICBzZXJ2aWNlTmFtZTogJycsIC8vIEVtcHR5IHN0cmluZyBwYXJhIHRlc3RhciBmYWxsYmFja1xuICAgICAgICBlbnZpcm9ubWVudDogJ3Byb2R1Y3Rpb24nLFxuICAgICAgfTtcblxuICAgICAgYXdhaXQgc3RhbmRhcmRMb2dnZXIubG9nRXJyb3IoZXJyb3JEYXRhKTtcblxuICAgICAgY29uc3QgZW1pdHRlZExvZyA9IG1vY2tMb2dnZXIuZW1pdC5tb2NrLmNhbGxzWzBdWzBdO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snc2VydmljZS5uYW1lJ10pLnRvQmUoJ3Rlc3Qtc2VydmljZScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RldmUgYWRpY2lvbmFyIHRpbWVzdGFtcCBhdXRvbWF0aWNhbWVudGUnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBlcnJvckRhdGEgPSB7XG4gICAgICAgIG1lc3NhZ2U6ICdUaW1lc3RhbXAgdGVzdCcsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAndGVzdC1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJyxcbiAgICAgIH07XG5cbiAgICAgIGF3YWl0IHN0YW5kYXJkTG9nZ2VyLmxvZ0Vycm9yKGVycm9yRGF0YSk7XG5cbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ3RpbWVzdGFtcCddKS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1sndGltZXN0YW1wJ10pLnRvTWF0Y2goXG4gICAgICAgIC9eXFxkezR9LVxcZHsyfS1cXGR7Mn1UXFxkezJ9OlxcZHsyfTpcXGR7Mn1cXC5cXGR7M31aJC9cbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnZGV2ZSBmaWx0cmFyIHZhbG9yZXMgdW5kZWZpbmVkIGUgbnVsbCBkb3MgYXRyaWJ1dG9zJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZXJyb3JEYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiAnRmlsdGVyIHRlc3QnLFxuICAgICAgICBzZXJ2aWNlTmFtZTogJ3Rlc3Qtc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAncHJvZHVjdGlvbicsXG4gICAgICAgIHVzZXI6IHtcbiAgICAgICAgICBhY2NvdW50VXNlclVpZDogJ3VzZXItMTIzJyxcbiAgICAgICAgICBhY2NvdW50VWlkOiB1bmRlZmluZWQgYXMgYW55LFxuICAgICAgICAgIGFwcGxpY2F0aW9uVWlkOiB1bmRlZmluZWQgYXMgYW55LFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgYXdhaXQgc3RhbmRhcmRMb2dnZXIubG9nRXJyb3IoZXJyb3JEYXRhKTtcblxuICAgICAgY29uc3QgZW1pdHRlZExvZyA9IG1vY2tMb2dnZXIuZW1pdC5tb2NrLmNhbGxzWzBdWzBdO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snYWNjb3VudFVzZXIudWlkJ10pLnRvQmUoJ3VzZXItMTIzJyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydhY2NvdW50LnVpZCddKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydhcHBsaWNhdGlvbi51aWQnXSkudG9CZVVuZGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnbG9nSW5mbycsICgpID0+IHtcbiAgICBpdCgnZGV2ZSBlbWl0aXIgbG9nIGNvbSBzZXZlcml0eSBJTkZPJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5mb0RhdGEgPSB7XG4gICAgICAgIG1lc3NhZ2U6ICdJbmZvIG1lc3NhZ2UnLFxuICAgICAgICBzZXJ2aWNlTmFtZTogJ3Rlc3Qtc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAncHJvZHVjdGlvbicsXG4gICAgICB9O1xuXG4gICAgICBhd2FpdCBzdGFuZGFyZExvZ2dlci5sb2dJbmZvKGluZm9EYXRhKTtcblxuICAgICAgZXhwZWN0KG1vY2tMb2dnZXIuZW1pdCkudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuICAgICAgY29uc3QgZW1pdHRlZExvZyA9IG1vY2tMb2dnZXIuZW1pdC5tb2NrLmNhbGxzWzBdWzBdO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuc2V2ZXJpdHlOdW1iZXIpLnRvQmUoU2V2ZXJpdHlOdW1iZXIuSU5GTyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5zZXZlcml0eVRleHQpLnRvQmUoJ0lORk8nKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmJvZHkpLnRvQmUoJ0luZm8gbWVzc2FnZScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RldmUgaW5jbHVpciBkYWRvcyBkZSBwZXJmb3JtYW5jZSBlbSBsb2cgZGUgc3VjZXNzbycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGluZm9EYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiAnUmVxdWVzdCBjb21wbGV0ZWQnLFxuICAgICAgICBzZXJ2aWNlTmFtZTogJ3Rlc3Qtc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAncHJvZHVjdGlvbicsXG4gICAgICAgIHBlcmZvcm1hbmNlOiB7XG4gICAgICAgICAgZHVyYXRpb25NczogMjUwLFxuICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBhd2FpdCBzdGFuZGFyZExvZ2dlci5sb2dJbmZvKGluZm9EYXRhKTtcblxuICAgICAgY29uc3QgZW1pdHRlZExvZyA9IG1vY2tMb2dnZXIuZW1pdC5tb2NrLmNhbGxzWzBdWzBdO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snZHVyYXRpb24ubXMnXSkudG9CZSgyNTApO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snZXhlY3V0aW9uLnN1Y2Nlc3MnXSkudG9CZSh0cnVlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2xvZ1dhcm4nLCAoKSA9PiB7XG4gICAgaXQoJ2RldmUgZW1pdGlyIGxvZyBjb20gc2V2ZXJpdHkgV0FSTicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHdhcm5EYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiAnV2FybmluZyBtZXNzYWdlJyxcbiAgICAgICAgc2VydmljZU5hbWU6ICd0ZXN0LXNlcnZpY2UnLFxuICAgICAgICBlbnZpcm9ubWVudDogJ3Byb2R1Y3Rpb24nLFxuICAgICAgfTtcblxuICAgICAgYXdhaXQgc3RhbmRhcmRMb2dnZXIubG9nV2Fybih3YXJuRGF0YSk7XG5cbiAgICAgIGV4cGVjdChtb2NrTG9nZ2VyLmVtaXQpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLnNldmVyaXR5TnVtYmVyKS50b0JlKFNldmVyaXR5TnVtYmVyLldBUk4pO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuc2V2ZXJpdHlUZXh0KS50b0JlKCdXQVJOJyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5ib2R5KS50b0JlKCdXYXJuaW5nIG1lc3NhZ2UnKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2xvZ0RlYnVnJywgKCkgPT4ge1xuICAgIGl0KCdkZXZlIGVtaXRpciBsb2cgY29tIHNldmVyaXR5IERFQlVHJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZGVidWdEYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiAnRGVidWcgbWVzc2FnZScsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAndGVzdC1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICdkZXZlbG9wbWVudCcsXG4gICAgICB9O1xuXG4gICAgICBhd2FpdCBzdGFuZGFyZExvZ2dlci5sb2dEZWJ1ZyhkZWJ1Z0RhdGEpO1xuXG4gICAgICBleHBlY3QobW9ja0xvZ2dlci5lbWl0KS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG4gICAgICBjb25zdCBlbWl0dGVkTG9nID0gbW9ja0xvZ2dlci5lbWl0Lm1vY2suY2FsbHNbMF1bMF07XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5zZXZlcml0eU51bWJlcikudG9CZShTZXZlcml0eU51bWJlci5ERUJVRyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5zZXZlcml0eVRleHQpLnRvQmUoJ0RFQlVHJyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5ib2R5KS50b0JlKCdEZWJ1ZyBtZXNzYWdlJyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdidWlsZEF0dHJpYnV0ZXMnLCAoKSA9PiB7XG4gICAgaXQoJ2RldmUgY29uc3RydWlyIGF0cmlidXRvcyBjb21wbGV0b3MgY29tIHRvZG9zIG9zIGNhbXBvcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGZ1bGxEYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiAnQ29tcGxldGUgbG9nJyxcbiAgICAgICAgc2VydmljZU5hbWU6ICdjb21wbGV0ZS1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJyxcbiAgICAgICAgZXJyb3I6IG5ldyBFcnJvcignVGVzdCBlcnJvcicpLFxuICAgICAgICBodHRwOiB7XG4gICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICB1cmw6ICcvYXBpL3VzZXJzJyxcbiAgICAgICAgICBlbmRwb2ludDogJy9hcGkvdXNlcnMnLFxuICAgICAgICAgIHN0YXR1c0NvZGU6IDIwMCxcbiAgICAgICAgfSxcbiAgICAgICAgdXNlcjoge1xuICAgICAgICAgIGFjY291bnRVc2VyVWlkOiAndXNlci1hYmMnLFxuICAgICAgICAgIGFjY291bnRVaWQ6ICdhY2NvdW50LXh5eicsXG4gICAgICAgICAgYXBwbGljYXRpb25VaWQ6ICdhcHAtMTIzJyxcbiAgICAgICAgfSxcbiAgICAgICAgZXhlY3V0aW9uOiB7XG4gICAgICAgICAgcmVxdWVzdElkOiAncmVxLTAwMScsXG4gICAgICAgICAgYXdzUmVxdWVzdElkOiAnYXdzLTAwMicsXG4gICAgICAgICAgZnVuY3Rpb25OYW1lOiAnZ2V0VXNlcnMnLFxuICAgICAgICAgIGludm9jYXRpb25JZDogJ2ludi0wMDMnLFxuICAgICAgICAgIGNvbnRyb2xsZXI6ICdVc2VyQ29udHJvbGxlcicsXG4gICAgICAgICAgY29udHJvbGxlck1ldGhvZDogJ2dldEFsbCcsXG4gICAgICAgICAgb3JpZ2luOiAnd2ViJyxcbiAgICAgICAgfSxcbiAgICAgICAgcGVyZm9ybWFuY2U6IHtcbiAgICAgICAgICBkdXJhdGlvbk1zOiAzMDAsXG4gICAgICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgIGN1c3RvbTogJ2RhdGEnLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgYXdhaXQgc3RhbmRhcmRMb2dnZXIubG9nSW5mbyhmdWxsRGF0YSk7XG5cbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGNvbnN0IGF0dHJzID0gZW1pdHRlZExvZy5hdHRyaWJ1dGVzO1xuXG4gICAgICAvLyBWZXJpZmljYXIgdG9kb3Mgb3MgY2FtcG9zXG4gICAgICBleHBlY3QoYXR0cnNbJ3NlcnZpY2UubmFtZSddKS50b0JlKCdjb21wbGV0ZS1zZXJ2aWNlJyk7XG4gICAgICBleHBlY3QoYXR0cnNbJ2RlcGxveW1lbnQuZW52aXJvbm1lbnQubmFtZSddKS50b0JlKCdwcm9kdWN0aW9uJyk7XG4gICAgICBleHBlY3QoYXR0cnNbJ2Vycm9yLnR5cGUnXSkudG9CZSgnRXJyb3InKTtcbiAgICAgIGV4cGVjdChhdHRyc1snaHR0cC5tZXRob2QnXSkudG9CZSgnR0VUJyk7XG4gICAgICBleHBlY3QoYXR0cnNbJ2FjY291bnRVc2VyLnVpZCddKS50b0JlKCd1c2VyLWFiYycpO1xuICAgICAgZXhwZWN0KGF0dHJzWydyZXF1ZXN0LmlkJ10pLnRvQmUoJ3JlcS0wMDEnKTtcbiAgICAgIGV4cGVjdChhdHRyc1snZHVyYXRpb24ubXMnXSkudG9CZSgzMDApO1xuICAgICAgZXhwZWN0KGF0dHJzWydjb250ZXh0J10pLnRvQmUoSlNPTi5zdHJpbmdpZnkoeyBjdXN0b206ICdkYXRhJyB9KSk7XG4gICAgfSk7XG5cbiAgICBpdCgnZGV2ZSBsaWRhciBjb20gY2FtcG9zIEhUVFAgcGFyY2lhaXMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBwYXJ0aWFsSHR0cERhdGEgPSB7XG4gICAgICAgIG1lc3NhZ2U6ICdQYXJ0aWFsIEhUVFAnLFxuICAgICAgICBzZXJ2aWNlTmFtZTogJ3Rlc3Qtc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAncHJvZHVjdGlvbicsXG4gICAgICAgIGh0dHA6IHtcbiAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICBlbmRwb2ludDogJy9hcGkvdGVzdCcsXG4gICAgICAgICAgLy8gdXJsLCBzdGF0dXNDb2RlLCBoZWFkZXJzLCBldGMgbsOjbyBmb3JuZWNpZG9zXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBhd2FpdCBzdGFuZGFyZExvZ2dlci5sb2dJbmZvKHBhcnRpYWxIdHRwRGF0YSk7XG5cbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2h0dHAubWV0aG9kJ10pLnRvQmUoJ1BPU1QnKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2h0dHAuZW5kcG9pbnQnXSkudG9CZSgnL2FwaS90ZXN0Jyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydodHRwLnVybCddKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydodHRwLnN0YXR1c19jb2RlJ10pLnRvQmVVbmRlZmluZWQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2NvbnN0cnV0b3InLCAoKSA9PiB7XG4gICAgaXQoJ2RldmUgYWNlaXRhciBzZXJ2aWNlTmFtZSBwYWRyw6NvIHBlcnNvbmFsaXphZG8nLCAoKSA9PiB7XG4gICAgICBjb25zdCBjdXN0b21Mb2dnZXIgPSBuZXcgU3RhbmRhcmRMb2dnZXIobW9ja0xvZ2dlciwgJ2N1c3RvbS1zZXJ2aWNlJyk7XG4gICAgICBjb25zdCBsb2dEYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiAnVGVzdCcsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAnJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICd0ZXN0JyxcbiAgICAgIH07XG5cbiAgICAgIGN1c3RvbUxvZ2dlci5sb2dJbmZvKGxvZ0RhdGEpO1xuXG4gICAgICBjb25zdCBlbWl0dGVkTG9nID0gbW9ja0xvZ2dlci5lbWl0Lm1vY2suY2FsbHNbMF1bMF07XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydzZXJ2aWNlLm5hbWUnXSkudG9CZSgnY3VzdG9tLXNlcnZpY2UnKTtcbiAgICB9KTtcblxuICAgIGl0KCdkZXZlIHVzYXIgXCJ1bmtub3duLXNlcnZpY2VcIiBjb21vIHBhZHLDo28gcXVhbmRvIG7Do28gZXNwZWNpZmljYWRvJywgKCkgPT4ge1xuICAgICAgY29uc3QgZGVmYXVsdExvZ2dlciA9IG5ldyBTdGFuZGFyZExvZ2dlcihtb2NrTG9nZ2VyKTtcbiAgICAgIGNvbnN0IGxvZ0RhdGEgPSB7XG4gICAgICAgIG1lc3NhZ2U6ICdUZXN0JyxcbiAgICAgICAgc2VydmljZU5hbWU6ICcnLFxuICAgICAgICBlbnZpcm9ubWVudDogJ3Rlc3QnLFxuICAgICAgfTtcblxuICAgICAgZGVmYXVsdExvZ2dlci5sb2dJbmZvKGxvZ0RhdGEpO1xuXG4gICAgICBjb25zdCBlbWl0dGVkTG9nID0gbW9ja0xvZ2dlci5lbWl0Lm1vY2suY2FsbHNbMF1bMF07XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydzZXJ2aWNlLm5hbWUnXSkudG9CZSgndW5rbm93bi1zZXJ2aWNlJyk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
350
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9fX3Rlc3RzX18vbG9nZ2VyLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBOEQ7QUFDOUQsc0NBQTJDO0FBQzNDLHNEQUF5RDtBQUV6RCxJQUFBLGlCQUFRLEVBQUMsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFO0lBQzlCLElBQUksVUFBZSxDQUFDO0lBQ3BCLElBQUksVUFBZSxDQUFDO0lBQ3BCLElBQUksY0FBOEIsQ0FBQztJQUVuQyxJQUFBLG1CQUFVLEVBQUMsR0FBRyxFQUFFO1FBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEdBQUcsY0FBYyxDQUFDO1FBQzFDLFVBQVUsR0FBRztZQUNYLElBQUksRUFBRSxXQUFFLENBQUMsRUFBRSxFQUFFO1NBQ2QsQ0FBQztRQUNGLFVBQVUsR0FBRztZQUNYLFNBQVMsRUFBRSxXQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDO2dCQUNqQyxTQUFTLEVBQUUsV0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDakMsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7d0JBQ2xCLE9BQU8sRUFBRSxlQUFlO3dCQUN4QixNQUFNLEVBQUUsY0FBYztxQkFDdkIsQ0FBQztpQkFDSCxDQUFDO2FBQ0gsQ0FBQztTQUNILENBQUM7UUFDRixjQUFjLEdBQUcsSUFBSSx1QkFBYyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM5RCxDQUFDLENBQUMsQ0FBQztJQUVILElBQUEsaUJBQVEsRUFBQyxVQUFVLEVBQUUsR0FBRyxFQUFFO1FBQ3hCLElBQUEsV0FBRSxFQUFDLG9DQUFvQyxFQUFFLEdBQVMsRUFBRTtZQUNsRCxNQUFNLFNBQVMsR0FBRztnQkFDaEIsT0FBTyxFQUFFLG9CQUFvQjtnQkFDN0IsV0FBVyxFQUFFLGNBQWM7Z0JB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O2FBQ3BCLENBQUM7WUFFRixZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRTlCLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwRCxJQUFBLGVBQU0sRUFBQyxVQUFVLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3JFLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBQSxXQUFFLEVBQUMsaUVBQWlFLEVBQUUsR0FBRyxFQUFFO1lBQ3pFLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztZQUM5QixNQUFNLGFBQWEsR0FBRyxJQUFJLHVCQUFjLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ2pFLE1BQU0sT0FBTyxHQUFHO2dCQUNkLE9BQU8sRUFBRSxNQUFNO2dCQUNmLFdBQVcsRUFBRSxFQUFFO2dCQUNmLFdBQVcsRUFBRSxNQUFNO2FBQ3BCLENBQUM7WUFFRixhQUFhLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRS9CLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwRCxJQUFBLGVBQU0sRUFBQyxVQUFVLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDeEUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVzY3JpYmUsIGl0LCBleHBlY3QsIHZpLCBiZWZvcmVFYWNoIH0gZnJvbSAndml0ZXN0JztcbmltcG9ydCB7IFN0YW5kYXJkTG9nZ2VyIH0gZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCB7IFNldmVyaXR5TnVtYmVyIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvYXBpLWxvZ3MnO1xuXG5kZXNjcmliZSgnU3RhbmRhcmRMb2dnZXInLCAoKSA9PiB7XG4gIGxldCBtb2NrTG9nZ2VyOiBhbnk7XG4gIGxldCBtb2NrVHJhY2VyOiBhbnk7XG4gIGxldCBzdGFuZGFyZExvZ2dlcjogU3RhbmRhcmRMb2dnZXI7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgcHJvY2Vzcy5lbnYuU0VSVklDRV9OQU1FID0gJ3Rlc3Qtc2VydmljZSc7XG4gICAgbW9ja0xvZ2dlciA9IHtcbiAgICAgIGVtaXQ6IHZpLmZuKCksXG4gICAgfTtcbiAgICBtb2NrVHJhY2VyID0ge1xuICAgICAgZ2V0VHJhY2VyOiB2aS5mbigpLm1vY2tSZXR1cm5WYWx1ZSh7XG4gICAgICAgIHN0YXJ0U3BhbjogdmkuZm4oKS5tb2NrUmV0dXJuVmFsdWUoe1xuICAgICAgICAgIHNwYW5Db250ZXh0OiAoKSA9PiAoe1xuICAgICAgICAgICAgdHJhY2VJZDogJ3Rlc3QtdHJhY2UtaWQnLFxuICAgICAgICAgICAgc3BhbklkOiAndGVzdC1zcGFuLWlkJyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSksXG4gICAgICB9KSxcbiAgICB9O1xuICAgIHN0YW5kYXJkTG9nZ2VyID0gbmV3IFN0YW5kYXJkTG9nZ2VyKG1vY2tMb2dnZXIsIG1vY2tUcmFjZXIpO1xuICB9KTtcblxuICBkZXNjcmliZSgnbG9nRXJyb3InLCAoKSA9PiB7XG4gICAgaXQoJ2RldmUgZW1pdGlyIGxvZyBjb20gc2V2ZXJpdHkgRVJST1InLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBlcnJvckRhdGEgPSB7XG4gICAgICAgIG1lc3NhZ2U6ICdUZXN0IGVycm9yIG1lc3NhZ2UnLFxuICAgICAgICBzZXJ2aWNlTmFtZTogJ3Rlc3Qtc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAndGVzdCcsXG4gICAgICB9O1xuXG4gICAgICBhd2FpdCBzdGFuZGFyZExvZ2dlci5sb2dFcnJvcihlcnJvckRhdGEpO1xuXG4gICAgICBleHBlY3QobW9ja0xvZ2dlci5lbWl0KS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG4gICAgICBjb25zdCBlbWl0dGVkTG9nID0gbW9ja0xvZ2dlci5lbWl0Lm1vY2suY2FsbHNbMF1bMF07XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5zZXZlcml0eU51bWJlcikudG9CZShTZXZlcml0eU51bWJlci5FUlJPUik7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5zZXZlcml0eVRleHQpLnRvQmUoJ0VSUk9SJyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5ib2R5KS50b0JlKCdUZXN0IGVycm9yIG1lc3NhZ2UnKTtcbiAgICB9KTtcblxuICAgIGl0KCdkZXZlIGluY2x1aXIgaW5mb3JtYcOnw7VlcyBkbyBlcnJvIHF1YW5kbyBmb3JuZWNpZG8nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcignQ3VzdG9tIGVycm9yJyk7XG4gICAgICBjb25zdCBlcnJvckRhdGEgPSB7XG4gICAgICAgIG1lc3NhZ2U6ICdFcnJvciBvY2N1cnJlZCcsXG4gICAgICAgIGVycm9yLFxuICAgICAgICBzZXJ2aWNlTmFtZTogJ3Rlc3Qtc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAncHJvZHVjdGlvbicsXG4gICAgICB9O1xuXG4gICAgICBhd2FpdCBzdGFuZGFyZExvZ2dlci5sb2dFcnJvcihlcnJvckRhdGEpO1xuXG4gICAgICBjb25zdCBlbWl0dGVkTG9nID0gbW9ja0xvZ2dlci5lbWl0Lm1vY2suY2FsbHNbMF1bMF07XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydlcnJvci50eXBlJ10pLnRvQmUoJ0Vycm9yJyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydlcnJvci5tZXNzYWdlJ10pLnRvQmUoJ0N1c3RvbSBlcnJvcicpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snZXJyb3Iuc3RhY2snXSkudG9CZURlZmluZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdkZXZlIGluY2x1aXIgY29udGV4dG8gSFRUUCBxdWFuZG8gZm9ybmVjaWRvJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZXJyb3JEYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiAnSFRUUCBlcnJvcicsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAndGVzdC1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJyxcbiAgICAgICAgaHR0cDoge1xuICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgIHVybDogJy9hcGkvdGVzdCcsXG4gICAgICAgICAgZW5kcG9pbnQ6ICcvYXBpL3Rlc3QnLFxuICAgICAgICAgIHN0YXR1c0NvZGU6IDUwMCxcbiAgICAgICAgICBoZWFkZXJzOiB7ICdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSxcbiAgICAgICAgICBib2R5OiB7IHRlc3Q6ICdkYXRhJyB9LFxuICAgICAgICAgIHBhcmFtczogeyBpZDogJzEyMycgfSxcbiAgICAgICAgICBxdWVyeTogeyBmaWx0ZXI6ICdhY3RpdmUnIH0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBhd2FpdCBzdGFuZGFyZExvZ2dlci5sb2dFcnJvcihlcnJvckRhdGEpO1xuXG4gICAgICBjb25zdCBlbWl0dGVkTG9nID0gbW9ja0xvZ2dlci5lbWl0Lm1vY2suY2FsbHNbMF1bMF07XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydodHRwLm1ldGhvZCddKS50b0JlKCdQT1NUJyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydodHRwLnVybCddKS50b0JlKCcvYXBpL3Rlc3QnKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2h0dHAuZW5kcG9pbnQnXSkudG9CZSgnL2FwaS90ZXN0Jyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydodHRwLnN0YXR1c19jb2RlJ10pLnRvQmUoNTAwKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2h0dHAuaGVhZGVycyddKS50b0JlKFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh7ICdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSlcbiAgICAgICk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydodHRwLmJvZHknXSkudG9CZShcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyB0ZXN0OiAnZGF0YScgfSlcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnZGV2ZSBpbmNsdWlyIGluZm9ybWHDp8O1ZXMgZGUgdXN1w6FyaW8gcXVhbmRvIGZvcm5lY2lkbycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGVycm9yRGF0YSA9IHtcbiAgICAgICAgbWVzc2FnZTogJ1VzZXIgZXJyb3InLFxuICAgICAgICBzZXJ2aWNlTmFtZTogJ3Rlc3Qtc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAncHJvZHVjdGlvbicsXG4gICAgICAgIHVzZXI6IHtcbiAgICAgICAgICBhY2NvdW50VXNlclVpZDogJ3VzZXItMTIzJyxcbiAgICAgICAgICBhY2NvdW50VWlkOiAnYWNjb3VudC00NTYnLFxuICAgICAgICAgIGFwcGxpY2F0aW9uVWlkOiAnYXBwLTc4OScsXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBhd2FpdCBzdGFuZGFyZExvZ2dlci5sb2dFcnJvcihlcnJvckRhdGEpO1xuXG4gICAgICBjb25zdCBlbWl0dGVkTG9nID0gbW9ja0xvZ2dlci5lbWl0Lm1vY2suY2FsbHNbMF1bMF07XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydhY2NvdW50VXNlci51aWQnXSkudG9CZSgndXNlci0xMjMnKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2FjY291bnQudWlkJ10pLnRvQmUoJ2FjY291bnQtNDU2Jyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydhcHBsaWNhdGlvbi51aWQnXSkudG9CZSgnYXBwLTc4OScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RldmUgaW5jbHVpciBpbmZvcm1hw6fDtWVzIGRlIGV4ZWN1w6fDo28gcXVhbmRvIGZvcm5lY2lkbycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGVycm9yRGF0YSA9IHtcbiAgICAgICAgbWVzc2FnZTogJ0V4ZWN1dGlvbiBlcnJvcicsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAndGVzdC1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJyxcbiAgICAgICAgZXhlY3V0aW9uOiB7XG4gICAgICAgICAgcmVxdWVzdElkOiAncmVxLTEyMycsXG4gICAgICAgICAgYXdzUmVxdWVzdElkOiAnYXdzLTQ1NicsXG4gICAgICAgICAgZnVuY3Rpb25OYW1lOiAndGVzdEZ1bmN0aW9uJyxcbiAgICAgICAgICBpbnZvY2F0aW9uSWQ6ICdpbnYtNzg5JyxcbiAgICAgICAgICBjb250cm9sbGVyOiAnVGVzdENvbnRyb2xsZXInLFxuICAgICAgICAgIGNvbnRyb2xsZXJNZXRob2Q6ICd0ZXN0TWV0aG9kJyxcbiAgICAgICAgICBvcmlnaW46ICdtb2JpbGUnLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgYXdhaXQgc3RhbmRhcmRMb2dnZXIubG9nRXJyb3IoZXJyb3JEYXRhKTtcblxuICAgICAgY29uc3QgZW1pdHRlZExvZyA9IG1vY2tMb2dnZXIuZW1pdC5tb2NrLmNhbGxzWzBdWzBdO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1sncmVxdWVzdC5pZCddKS50b0JlKCdyZXEtMTIzJyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydhd3MucmVxdWVzdC5pZCddKS50b0JlKCdhd3MtNDU2Jyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydmdW5jdGlvbi5uYW1lJ10pLnRvQmUoJ3Rlc3RGdW5jdGlvbicpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snZnVuY3Rpb24uaW52b2NhdGlvbl9pZCddKS50b0JlKCdpbnYtNzg5Jyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydjb250cm9sbGVyLm5hbWUnXSkudG9CZSgnVGVzdENvbnRyb2xsZXInKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2NvbnRyb2xsZXIubWV0aG9kJ10pLnRvQmUoJ3Rlc3RNZXRob2QnKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ29yaWdpbiddKS50b0JlKCdtb2JpbGUnKTtcbiAgICB9KTtcblxuICAgIGl0KCdkZXZlIGluY2x1aXIgbcOpdHJpY2FzIGRlIHBlcmZvcm1hbmNlIHF1YW5kbyBmb3JuZWNpZG8nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBlcnJvckRhdGEgPSB7XG4gICAgICAgIG1lc3NhZ2U6ICdQZXJmb3JtYW5jZSBlcnJvcicsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAndGVzdC1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJyxcbiAgICAgICAgcGVyZm9ybWFuY2U6IHtcbiAgICAgICAgICBkdXJhdGlvbk1zOiAxNTAwLFxuICAgICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgYXdhaXQgc3RhbmRhcmRMb2dnZXIubG9nRXJyb3IoZXJyb3JEYXRhKTtcblxuICAgICAgY29uc3QgZW1pdHRlZExvZyA9IG1vY2tMb2dnZXIuZW1pdC5tb2NrLmNhbGxzWzBdWzBdO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snZHVyYXRpb24ubXMnXSkudG9CZSgxNTAwKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2V4ZWN1dGlvbi5zdWNjZXNzJ10pLnRvQmUoZmFsc2UpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RldmUgaW5jbHVpciBjb250ZXh0byBhZGljaW9uYWwgcXVhbmRvIGZvcm5lY2lkbycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGVycm9yRGF0YSA9IHtcbiAgICAgICAgbWVzc2FnZTogJ0NvbnRleHQgZXJyb3InLFxuICAgICAgICBzZXJ2aWNlTmFtZTogJ3Rlc3Qtc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAncHJvZHVjdGlvbicsXG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICBhZGRpdGlvbmFsSW5mbzogJ3NvbWUgZGF0YScsXG4gICAgICAgICAgbmVzdGVkOiB7IHZhbHVlOiAxMjMgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGF3YWl0IHN0YW5kYXJkTG9nZ2VyLmxvZ0Vycm9yKGVycm9yRGF0YSk7XG5cbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2NvbnRleHQnXSkudG9CZShcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyBhZGRpdGlvbmFsSW5mbzogJ3NvbWUgZGF0YScsIG5lc3RlZDogeyB2YWx1ZTogMTIzIH0gfSlcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnZGV2ZSB1c2FyIHNlcnZpY2VOYW1lIHBhZHLDo28gcXVhbmRvIG7Do28gZm9ybmVjaWRvJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZXJyb3JEYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiAnRGVmYXVsdCBzZXJ2aWNlIGVycm9yJyxcbiAgICAgICAgc2VydmljZU5hbWU6ICcnLCAvLyBFbXB0eSBzdHJpbmcgcGFyYSB0ZXN0YXIgZmFsbGJhY2tcbiAgICAgICAgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJyxcbiAgICAgIH07XG5cbiAgICAgIGF3YWl0IHN0YW5kYXJkTG9nZ2VyLmxvZ0Vycm9yKGVycm9yRGF0YSk7XG5cbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ3NlcnZpY2UubmFtZSddKS50b0JlKCd0ZXN0LXNlcnZpY2UnKTtcbiAgICB9KTtcblxuICAgIGl0KCdkZXZlIGFkaWNpb25hciB0aW1lc3RhbXAgYXV0b21hdGljYW1lbnRlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZXJyb3JEYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiAnVGltZXN0YW1wIHRlc3QnLFxuICAgICAgICBzZXJ2aWNlTmFtZTogJ3Rlc3Qtc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAncHJvZHVjdGlvbicsXG4gICAgICB9O1xuXG4gICAgICBhd2FpdCBzdGFuZGFyZExvZ2dlci5sb2dFcnJvcihlcnJvckRhdGEpO1xuXG4gICAgICBjb25zdCBlbWl0dGVkTG9nID0gbW9ja0xvZ2dlci5lbWl0Lm1vY2suY2FsbHNbMF1bMF07XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWyd0aW1lc3RhbXAnXSkudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ3RpbWVzdGFtcCddKS50b01hdGNoKFxuICAgICAgICAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9VFxcZHsyfTpcXGR7Mn06XFxkezJ9XFwuXFxkezN9WiQvXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RldmUgZmlsdHJhciB2YWxvcmVzIHVuZGVmaW5lZCBlIG51bGwgZG9zIGF0cmlidXRvcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGVycm9yRGF0YSA9IHtcbiAgICAgICAgbWVzc2FnZTogJ0ZpbHRlciB0ZXN0JyxcbiAgICAgICAgc2VydmljZU5hbWU6ICd0ZXN0LXNlcnZpY2UnLFxuICAgICAgICBlbnZpcm9ubWVudDogJ3Byb2R1Y3Rpb24nLFxuICAgICAgICB1c2VyOiB7XG4gICAgICAgICAgYWNjb3VudFVzZXJVaWQ6ICd1c2VyLTEyMycsXG4gICAgICAgICAgYWNjb3VudFVpZDogdW5kZWZpbmVkIGFzIGFueSxcbiAgICAgICAgICBhcHBsaWNhdGlvblVpZDogdW5kZWZpbmVkIGFzIGFueSxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGF3YWl0IHN0YW5kYXJkTG9nZ2VyLmxvZ0Vycm9yKGVycm9yRGF0YSk7XG5cbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2FjY291bnRVc2VyLnVpZCddKS50b0JlKCd1c2VyLTEyMycpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snYWNjb3VudC51aWQnXSkudG9CZVVuZGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snYXBwbGljYXRpb24udWlkJ10pLnRvQmVVbmRlZmluZWQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2xvZ0luZm8nLCAoKSA9PiB7XG4gICAgaXQoJ2RldmUgZW1pdGlyIGxvZyBjb20gc2V2ZXJpdHkgSU5GTycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGluZm9EYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiAnSW5mbyBtZXNzYWdlJyxcbiAgICAgICAgc2VydmljZU5hbWU6ICd0ZXN0LXNlcnZpY2UnLFxuICAgICAgICBlbnZpcm9ubWVudDogJ3Byb2R1Y3Rpb24nLFxuICAgICAgfTtcblxuICAgICAgYXdhaXQgc3RhbmRhcmRMb2dnZXIubG9nSW5mbyhpbmZvRGF0YSk7XG5cbiAgICAgIGV4cGVjdChtb2NrTG9nZ2VyLmVtaXQpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLnNldmVyaXR5TnVtYmVyKS50b0JlKFNldmVyaXR5TnVtYmVyLklORk8pO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuc2V2ZXJpdHlUZXh0KS50b0JlKCdJTkZPJyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5ib2R5KS50b0JlKCdJbmZvIG1lc3NhZ2UnKTtcbiAgICB9KTtcblxuICAgIGl0KCdkZXZlIGluY2x1aXIgZGFkb3MgZGUgcGVyZm9ybWFuY2UgZW0gbG9nIGRlIHN1Y2Vzc28nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbmZvRGF0YSA9IHtcbiAgICAgICAgbWVzc2FnZTogJ1JlcXVlc3QgY29tcGxldGVkJyxcbiAgICAgICAgc2VydmljZU5hbWU6ICd0ZXN0LXNlcnZpY2UnLFxuICAgICAgICBlbnZpcm9ubWVudDogJ3Byb2R1Y3Rpb24nLFxuICAgICAgICBwZXJmb3JtYW5jZToge1xuICAgICAgICAgIGR1cmF0aW9uTXM6IDI1MCxcbiAgICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgYXdhaXQgc3RhbmRhcmRMb2dnZXIubG9nSW5mbyhpbmZvRGF0YSk7XG5cbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2R1cmF0aW9uLm1zJ10pLnRvQmUoMjUwKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2V4ZWN1dGlvbi5zdWNjZXNzJ10pLnRvQmUodHJ1ZSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdsb2dXYXJuJywgKCkgPT4ge1xuICAgIGl0KCdkZXZlIGVtaXRpciBsb2cgY29tIHNldmVyaXR5IFdBUk4nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB3YXJuRGF0YSA9IHtcbiAgICAgICAgbWVzc2FnZTogJ1dhcm5pbmcgbWVzc2FnZScsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAndGVzdC1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJyxcbiAgICAgIH07XG5cbiAgICAgIGF3YWl0IHN0YW5kYXJkTG9nZ2VyLmxvZ1dhcm4od2FybkRhdGEpO1xuXG4gICAgICBleHBlY3QobW9ja0xvZ2dlci5lbWl0KS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG4gICAgICBjb25zdCBlbWl0dGVkTG9nID0gbW9ja0xvZ2dlci5lbWl0Lm1vY2suY2FsbHNbMF1bMF07XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5zZXZlcml0eU51bWJlcikudG9CZShTZXZlcml0eU51bWJlci5XQVJOKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLnNldmVyaXR5VGV4dCkudG9CZSgnV0FSTicpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYm9keSkudG9CZSgnV2FybmluZyBtZXNzYWdlJyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdsb2dEZWJ1ZycsICgpID0+IHtcbiAgICBpdCgnZGV2ZSBlbWl0aXIgbG9nIGNvbSBzZXZlcml0eSBERUJVRycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGRlYnVnRGF0YSA9IHtcbiAgICAgICAgbWVzc2FnZTogJ0RlYnVnIG1lc3NhZ2UnLFxuICAgICAgICBzZXJ2aWNlTmFtZTogJ3Rlc3Qtc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAnZGV2ZWxvcG1lbnQnLFxuICAgICAgfTtcblxuICAgICAgYXdhaXQgc3RhbmRhcmRMb2dnZXIubG9nRGVidWcoZGVidWdEYXRhKTtcblxuICAgICAgZXhwZWN0KG1vY2tMb2dnZXIuZW1pdCkudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuICAgICAgY29uc3QgZW1pdHRlZExvZyA9IG1vY2tMb2dnZXIuZW1pdC5tb2NrLmNhbGxzWzBdWzBdO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuc2V2ZXJpdHlOdW1iZXIpLnRvQmUoU2V2ZXJpdHlOdW1iZXIuREVCVUcpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuc2V2ZXJpdHlUZXh0KS50b0JlKCdERUJVRycpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYm9keSkudG9CZSgnRGVidWcgbWVzc2FnZScpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnYnVpbGRBdHRyaWJ1dGVzJywgKCkgPT4ge1xuICAgIGl0KCdkZXZlIGNvbnN0cnVpciBhdHJpYnV0b3MgY29tcGxldG9zIGNvbSB0b2RvcyBvcyBjYW1wb3MnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBmdWxsRGF0YSA9IHtcbiAgICAgICAgbWVzc2FnZTogJ0NvbXBsZXRlIGxvZycsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAnY29tcGxldGUtc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAncHJvZHVjdGlvbicsXG4gICAgICAgIGVycm9yOiBuZXcgRXJyb3IoJ1Rlc3QgZXJyb3InKSxcbiAgICAgICAgaHR0cDoge1xuICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgdXJsOiAnL2FwaS91c2VycycsXG4gICAgICAgICAgZW5kcG9pbnQ6ICcvYXBpL3VzZXJzJyxcbiAgICAgICAgICBzdGF0dXNDb2RlOiAyMDAsXG4gICAgICAgIH0sXG4gICAgICAgIHVzZXI6IHtcbiAgICAgICAgICBhY2NvdW50VXNlclVpZDogJ3VzZXItYWJjJyxcbiAgICAgICAgICBhY2NvdW50VWlkOiAnYWNjb3VudC14eXonLFxuICAgICAgICAgIGFwcGxpY2F0aW9uVWlkOiAnYXBwLTEyMycsXG4gICAgICAgIH0sXG4gICAgICAgIGV4ZWN1dGlvbjoge1xuICAgICAgICAgIHJlcXVlc3RJZDogJ3JlcS0wMDEnLFxuICAgICAgICAgIGF3c1JlcXVlc3RJZDogJ2F3cy0wMDInLFxuICAgICAgICAgIGZ1bmN0aW9uTmFtZTogJ2dldFVzZXJzJyxcbiAgICAgICAgICBpbnZvY2F0aW9uSWQ6ICdpbnYtMDAzJyxcbiAgICAgICAgICBjb250cm9sbGVyOiAnVXNlckNvbnRyb2xsZXInLFxuICAgICAgICAgIGNvbnRyb2xsZXJNZXRob2Q6ICdnZXRBbGwnLFxuICAgICAgICAgIG9yaWdpbjogJ3dlYicsXG4gICAgICAgIH0sXG4gICAgICAgIHBlcmZvcm1hbmNlOiB7XG4gICAgICAgICAgZHVyYXRpb25NczogMzAwLFxuICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICBjdXN0b206ICdkYXRhJyxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGF3YWl0IHN0YW5kYXJkTG9nZ2VyLmxvZ0luZm8oZnVsbERhdGEpO1xuXG4gICAgICBjb25zdCBlbWl0dGVkTG9nID0gbW9ja0xvZ2dlci5lbWl0Lm1vY2suY2FsbHNbMF1bMF07XG4gICAgICBjb25zdCBhdHRycyA9IGVtaXR0ZWRMb2cuYXR0cmlidXRlcztcblxuICAgICAgLy8gVmVyaWZpY2FyIHRvZG9zIG9zIGNhbXBvc1xuICAgICAgZXhwZWN0KGF0dHJzWydzZXJ2aWNlLm5hbWUnXSkudG9CZSgnY29tcGxldGUtc2VydmljZScpO1xuICAgICAgZXhwZWN0KGF0dHJzWydkZXBsb3ltZW50LmVudmlyb25tZW50Lm5hbWUnXSkudG9CZSgncHJvZHVjdGlvbicpO1xuICAgICAgZXhwZWN0KGF0dHJzWydlcnJvci50eXBlJ10pLnRvQmUoJ0Vycm9yJyk7XG4gICAgICBleHBlY3QoYXR0cnNbJ2h0dHAubWV0aG9kJ10pLnRvQmUoJ0dFVCcpO1xuICAgICAgZXhwZWN0KGF0dHJzWydhY2NvdW50VXNlci51aWQnXSkudG9CZSgndXNlci1hYmMnKTtcbiAgICAgIGV4cGVjdChhdHRyc1sncmVxdWVzdC5pZCddKS50b0JlKCdyZXEtMDAxJyk7XG4gICAgICBleHBlY3QoYXR0cnNbJ2R1cmF0aW9uLm1zJ10pLnRvQmUoMzAwKTtcbiAgICAgIGV4cGVjdChhdHRyc1snY29udGV4dCddKS50b0JlKEpTT04uc3RyaW5naWZ5KHsgY3VzdG9tOiAnZGF0YScgfSkpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RldmUgbGlkYXIgY29tIGNhbXBvcyBIVFRQIHBhcmNpYWlzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcGFydGlhbEh0dHBEYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiAnUGFydGlhbCBIVFRQJyxcbiAgICAgICAgc2VydmljZU5hbWU6ICd0ZXN0LXNlcnZpY2UnLFxuICAgICAgICBlbnZpcm9ubWVudDogJ3Byb2R1Y3Rpb24nLFxuICAgICAgICBodHRwOiB7XG4gICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgZW5kcG9pbnQ6ICcvYXBpL3Rlc3QnLFxuICAgICAgICAgIC8vIHVybCwgc3RhdHVzQ29kZSwgaGVhZGVycywgZXRjIG7Do28gZm9ybmVjaWRvc1xuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgYXdhaXQgc3RhbmRhcmRMb2dnZXIubG9nSW5mbyhwYXJ0aWFsSHR0cERhdGEpO1xuXG4gICAgICBjb25zdCBlbWl0dGVkTG9nID0gbW9ja0xvZ2dlci5lbWl0Lm1vY2suY2FsbHNbMF1bMF07XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydodHRwLm1ldGhvZCddKS50b0JlKCdQT1NUJyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydodHRwLmVuZHBvaW50J10pLnRvQmUoJy9hcGkvdGVzdCcpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snaHR0cC51cmwnXSkudG9CZVVuZGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snaHR0cC5zdGF0dXNfY29kZSddKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdjb25zdHJ1dG9yJywgKCkgPT4ge1xuICAgIGl0KCdkZXZlIGFjZWl0YXIgc2VydmljZU5hbWUgcGFkcsOjbyBwZXJzb25hbGl6YWRvJywgKCkgPT4ge1xuICAgICAgY29uc3QgY3VzdG9tTG9nZ2VyID0gbmV3IFN0YW5kYXJkTG9nZ2VyKG1vY2tMb2dnZXIsIG1vY2tUcmFjZXIpO1xuICAgICAgY29uc3QgbG9nRGF0YSA9IHtcbiAgICAgICAgbWVzc2FnZTogJ1Rlc3QnLFxuICAgICAgICBzZXJ2aWNlTmFtZTogJycsXG4gICAgICAgIGVudmlyb25tZW50OiAndGVzdCcsXG4gICAgICB9O1xuXG4gICAgICBjdXN0b21Mb2dnZXIubG9nSW5mbyhsb2dEYXRhKTtcblxuICAgICAgY29uc3QgZW1pdHRlZExvZyA9IG1vY2tMb2dnZXIuZW1pdC5tb2NrLmNhbGxzWzBdWzBdO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snc2VydmljZS5uYW1lJ10pLnRvQmUoJ3Rlc3Qtc2VydmljZScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RldmUgdXNhciBcInVua25vd24tc2VydmljZVwiIGNvbW8gcGFkcsOjbyBxdWFuZG8gbsOjbyBlc3BlY2lmaWNhZG8nLCAoKSA9PiB7XG4gICAgICBwcm9jZXNzLmVudi5TRVJWSUNFX05BTUUgPSAnJztcbiAgICAgIGNvbnN0IGRlZmF1bHRMb2dnZXIgPSBuZXcgU3RhbmRhcmRMb2dnZXIobW9ja0xvZ2dlciwgbW9ja1RyYWNlcik7XG4gICAgICBjb25zdCBsb2dEYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiAnVGVzdCcsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAnJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICd0ZXN0JyxcbiAgICAgIH07XG5cbiAgICAgIGRlZmF1bHRMb2dnZXIubG9nSW5mbyhsb2dEYXRhKTtcblxuICAgICAgY29uc3QgZW1pdHRlZExvZyA9IG1vY2tMb2dnZXIuZW1pdC5tb2NrLmNhbGxzWzBdWzBdO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snc2VydmljZS5uYW1lJ10pLnRvQmUoJ3Vua25vd24tc2VydmljZScpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
package/dist/core/logger.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { Logger } from '@opentelemetry/api-logs';
|
|
2
2
|
import { IStandardLogger, StandardLogData } from './logger-types';
|
|
3
|
+
import { IStandardTracer } from './tracer-types';
|
|
3
4
|
export declare class StandardLogger implements IStandardLogger {
|
|
5
|
+
private readonly logger;
|
|
6
|
+
private readonly tracer;
|
|
7
|
+
private readonly defaultAtributes;
|
|
8
|
+
private readonly spanContext;
|
|
4
9
|
private readonly defaultServiceName;
|
|
5
|
-
|
|
6
|
-
constructor(logger: Logger, defaultServiceName?: string);
|
|
10
|
+
constructor(logger: Logger, tracer: IStandardTracer);
|
|
7
11
|
logError(data: Omit<StandardLogData, 'severity' | 'timestamp'>): Promise<void>;
|
|
8
12
|
logInfo(data: Omit<StandardLogData, 'severity' | 'timestamp'>): Promise<void>;
|
|
9
13
|
logWarn(data: Omit<StandardLogData, 'severity' | 'timestamp'>): Promise<void>;
|
package/dist/core/logger.js
CHANGED
|
@@ -12,33 +12,42 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.StandardLogger = void 0;
|
|
13
13
|
const api_logs_1 = require("@opentelemetry/api-logs");
|
|
14
14
|
class StandardLogger {
|
|
15
|
-
constructor(logger,
|
|
16
|
-
this.
|
|
15
|
+
constructor(logger, tracer) {
|
|
16
|
+
this.defaultAtributes = {};
|
|
17
17
|
this.logger = logger;
|
|
18
|
+
this.tracer = tracer;
|
|
19
|
+
this.spanContext = this.tracer.getTracer().startSpan('init-logger');
|
|
20
|
+
this.defaultServiceName = process.env.SERVICE_NAME
|
|
21
|
+
? process.env.SERVICE_NAME
|
|
22
|
+
: 'unknown-service';
|
|
23
|
+
this.defaultAtributes = {
|
|
24
|
+
'trace.id': this.spanContext.spanContext().traceId,
|
|
25
|
+
'span.id': this.spanContext.spanContext().spanId,
|
|
26
|
+
};
|
|
18
27
|
}
|
|
19
28
|
logError(data) {
|
|
20
29
|
return __awaiter(this, void 0, void 0, function* () {
|
|
21
|
-
yield this.log(Object.assign(Object.assign({}, data), { severity: 'ERROR' }));
|
|
30
|
+
yield this.log(Object.assign(Object.assign(Object.assign({}, data), this.defaultAtributes), { severity: 'ERROR' }));
|
|
22
31
|
});
|
|
23
32
|
}
|
|
24
33
|
logInfo(data) {
|
|
25
34
|
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
-
yield this.log(Object.assign(Object.assign({}, data), { severity: 'INFO' }));
|
|
35
|
+
yield this.log(Object.assign(Object.assign(Object.assign({}, data), this.defaultAtributes), { severity: 'INFO' }));
|
|
27
36
|
});
|
|
28
37
|
}
|
|
29
38
|
logWarn(data) {
|
|
30
39
|
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
-
yield this.log(Object.assign(Object.assign({}, data), { severity: 'WARN' }));
|
|
40
|
+
yield this.log(Object.assign(Object.assign(Object.assign({}, data), this.defaultAtributes), { severity: 'WARN' }));
|
|
32
41
|
});
|
|
33
42
|
}
|
|
34
43
|
logDebug(data) {
|
|
35
44
|
return __awaiter(this, void 0, void 0, function* () {
|
|
36
|
-
yield this.log(Object.assign(Object.assign({}, data), { severity: 'DEBUG' }));
|
|
45
|
+
yield this.log(Object.assign(Object.assign(Object.assign({}, data), this.defaultAtributes), { severity: 'DEBUG' }));
|
|
37
46
|
});
|
|
38
47
|
}
|
|
39
48
|
log(data) {
|
|
40
49
|
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
-
const fullData = Object.assign(Object.assign({}, data), { timestamp: new Date().toISOString(), serviceName: data.serviceName || this.defaultServiceName });
|
|
50
|
+
const fullData = Object.assign(Object.assign(Object.assign({}, data), this.defaultAtributes), { timestamp: new Date().toISOString(), serviceName: data.serviceName || this.defaultServiceName });
|
|
42
51
|
const severityMap = {
|
|
43
52
|
ERROR: api_logs_1.SeverityNumber.ERROR,
|
|
44
53
|
WARN: api_logs_1.SeverityNumber.WARN,
|
|
@@ -120,4 +129,4 @@ class StandardLogger {
|
|
|
120
129
|
}
|
|
121
130
|
}
|
|
122
131
|
exports.StandardLogger = StandardLogger;
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvcmUvbG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHNEQUFpRTtBQU9qRSxNQUFhLGNBQWM7SUFHekIsWUFDRSxNQUFjLEVBQ0cscUJBQTZCLGlCQUFpQjtRQUE5Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQTRCO1FBRS9ELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFSyxRQUFRLENBQ1osSUFBcUQ7O1lBRXJELE1BQU0sSUFBSSxDQUFDLEdBQUcsaUNBQU0sSUFBSSxLQUFFLFFBQVEsRUFBRSxPQUFPLElBQUcsQ0FBQztRQUNqRCxDQUFDO0tBQUE7SUFFSyxPQUFPLENBQ1gsSUFBcUQ7O1lBRXJELE1BQU0sSUFBSSxDQUFDLEdBQUcsaUNBQU0sSUFBSSxLQUFFLFFBQVEsRUFBRSxNQUFNLElBQUcsQ0FBQztRQUNoRCxDQUFDO0tBQUE7SUFFSyxPQUFPLENBQ1gsSUFBcUQ7O1lBRXJELE1BQU0sSUFBSSxDQUFDLEdBQUcsaUNBQU0sSUFBSSxLQUFFLFFBQVEsRUFBRSxNQUFNLElBQUcsQ0FBQztRQUNoRCxDQUFDO0tBQUE7SUFFSyxRQUFRLENBQ1osSUFBcUQ7O1lBRXJELE1BQU0sSUFBSSxDQUFDLEdBQUcsaUNBQU0sSUFBSSxLQUFFLFFBQVEsRUFBRSxPQUFPLElBQUcsQ0FBQztRQUNqRCxDQUFDO0tBQUE7SUFFYSxHQUFHLENBQ2YsSUFFQzs7WUFFRCxNQUFNLFFBQVEsbUNBQ1QsSUFBSSxLQUNQLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUNuQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEdBQ3pELENBQUM7WUFFRixNQUFNLFdBQVcsR0FBRztnQkFDbEIsS0FBSyxFQUFFLHlCQUFjLENBQUMsS0FBSztnQkFDM0Is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QUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDMUUsQ0FBQztRQUdELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVO2dCQUM3QixVQUFVLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7WUFDMUQsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sS0FBSyxTQUFTO2dCQUN4QyxVQUFVLENBQUMsbUJBQW1CLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQztRQUMvRCxDQUFDO1FBR0QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFHRCxPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQ3ZCLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUMvQixDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUNyRCxDQUNGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUE1SUQsd0NBNElDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2V2ZXJpdHlOdW1iZXIsIExvZ2dlciB9IGZyb20gJ0BvcGVudGVsZW1ldHJ5L2FwaS1sb2dzJztcbmltcG9ydCB7IElTdGFuZGFyZExvZ2dlciwgU3RhbmRhcmRMb2dEYXRhIH0gZnJvbSAnLi9sb2dnZXItdHlwZXMnO1xuXG4vKipcbiAqIExvZ2dlciBjb3JlIHF1ZSBpbXBsZW1lbnRhIG8gcGFkcsOjbyBkZSBsb2dzIGVzdHJ1dHVyYWRvcy5cbiAqIFJlY2ViZSB1bSBMb2dnZXJQcm92aWRlciBkbyBPcGVuVGVsZW1ldHJ5IHBhcmEgZW1pdGlyIG9zIGxvZ3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGFuZGFyZExvZ2dlciBpbXBsZW1lbnRzIElTdGFuZGFyZExvZ2dlciB7XG4gIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbG9nZ2VyOiBMb2dnZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0U2VydmljZU5hbWU6IHN0cmluZyA9ICd1bmtub3duLXNlcnZpY2UnXG4gICkge1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyO1xuICB9XG5cbiAgYXN5bmMgbG9nRXJyb3IoXG4gICAgZGF0YTogT21pdDxTdGFuZGFyZExvZ0RhdGEsICdzZXZlcml0eScgfCAndGltZXN0YW1wJz5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5sb2coeyAuLi5kYXRhLCBzZXZlcml0eTogJ0VSUk9SJyB9KTtcbiAgfVxuXG4gIGFzeW5jIGxvZ0luZm8oXG4gICAgZGF0YTogT21pdDxTdGFuZGFyZExvZ0RhdGEsICdzZXZlcml0eScgfCAndGltZXN0YW1wJz5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5sb2coeyAuLi5kYXRhLCBzZXZlcml0eTogJ0lORk8nIH0pO1xuICB9XG5cbiAgYXN5bmMgbG9nV2FybihcbiAgICBkYXRhOiBPbWl0PFN0YW5kYXJkTG9nRGF0YSwgJ3NldmVyaXR5JyB8ICd0aW1lc3RhbXAnPlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmxvZyh7IC4uLmRhdGEsIHNldmVyaXR5OiAnV0FSTicgfSk7XG4gIH1cblxuICBhc3luYyBsb2dEZWJ1ZyhcbiAgICBkYXRhOiBPbWl0PFN0YW5kYXJkTG9nRGF0YSwgJ3NldmVyaXR5JyB8ICd0aW1lc3RhbXAnPlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmxvZyh7IC4uLmRhdGEsIHNldmVyaXR5OiAnREVCVUcnIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2coXG4gICAgZGF0YTogT21pdDxTdGFuZGFyZExvZ0RhdGEsICd0aW1lc3RhbXAnPiAmIHtcbiAgICAgIHNldmVyaXR5OiBTdGFuZGFyZExvZ0RhdGFbJ3NldmVyaXR5J107XG4gICAgfVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmdWxsRGF0YTogU3RhbmRhcmRMb2dEYXRhID0ge1xuICAgICAgLi4uZGF0YSxcbiAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgc2VydmljZU5hbWU6IGRhdGEuc2VydmljZU5hbWUgfHwgdGhpcy5kZWZhdWx0U2VydmljZU5hbWUsXG4gICAgfTtcblxuICAgIGNvbnN0IHNldmVyaXR5TWFwID0ge1xuICAgICAgRVJST1I6IFNldmVyaXR5TnVtYmVyLkVSUk9SLFxuICAgICAgV0FSTjogU2V2ZXJpdHlOdW1iZXIuV0FSTixcbiAgICAgIElORk86IFNldmVyaXR5TnVtYmVyLklORk8sXG4gICAgICBERUJVRzogU2V2ZXJpdHlOdW1iZXIuREVCVUcsXG4gICAgfTtcblxuICAgIGNvbnN0IGxvZ1JlY29yZCA9IHtcbiAgICAgIHNldmVyaXR5TnVtYmVyOiBzZXZlcml0eU1hcFtmdWxsRGF0YS5zZXZlcml0eV0sXG4gICAgICBzZXZlcml0eVRleHQ6IGZ1bGxEYXRhLnNldmVyaXR5LFxuICAgICAgYm9keTogZnVsbERhdGEubWVzc2FnZSxcbiAgICAgIGF0dHJpYnV0ZXM6IHRoaXMuYnVpbGRBdHRyaWJ1dGVzKGZ1bGxEYXRhKSxcbiAgICB9O1xuXG4gICAgdGhpcy5sb2dnZXIuZW1pdChsb2dSZWNvcmQpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEF0dHJpYnV0ZXMoZGF0YTogU3RhbmRhcmRMb2dEYXRhKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgY29uc3QgYXR0cmlidXRlczogUmVjb3JkPHN0cmluZywgYW55PiA9IHtcbiAgICAgIHRpbWVzdGFtcDogZGF0YS50aW1lc3RhbXAsXG4gICAgICAnc2VydmljZS5uYW1lJzogZGF0YS5zZXJ2aWNlTmFtZSxcbiAgICAgICdkZXBsb3ltZW50LmVudmlyb25tZW50Lm5hbWUnOiBkYXRhLmVudmlyb25tZW50LFxuICAgIH07XG5cbiAgICAvLyBJbmZvcm1hw6fDtWVzIGRvIGVycm9cbiAgICBpZiAoZGF0YS5lcnJvcikge1xuICAgICAgYXR0cmlidXRlc1snZXJyb3IudHlwZSddID0gZGF0YS5lcnJvci5uYW1lO1xuICAgICAgYXR0cmlidXRlc1snZXJyb3IubWVzc2FnZSddID0gZGF0YS5lcnJvci5tZXNzYWdlO1xuICAgICAgYXR0cmlidXRlc1snZXJyb3Iuc3RhY2snXSA9IGRhdGEuZXJyb3Iuc3RhY2sgfHwgJyc7XG4gICAgfVxuXG4gICAgLy8gSFRUUFxuICAgIGlmIChkYXRhLmh0dHApIHtcbiAgICAgIGlmIChkYXRhLmh0dHAubWV0aG9kKSBhdHRyaWJ1dGVzWydodHRwLm1ldGhvZCddID0gZGF0YS5odHRwLm1ldGhvZDtcbiAgICAgIGlmIChkYXRhLmh0dHAudXJsKSBhdHRyaWJ1dGVzWydodHRwLnVybCddID0gZGF0YS5odHRwLnVybDtcbiAgICAgIGlmIChkYXRhLmh0dHAuZW5kcG9pbnQpIGF0dHJpYnV0ZXNbJ2h0dHAuZW5kcG9pbnQnXSA9IGRhdGEuaHR0cC5lbmRwb2ludDtcbiAgICAgIGlmIChkYXRhLmh0dHAuc3RhdHVzQ29kZSlcbiAgICAgICAgYXR0cmlidXRlc1snaHR0cC5zdGF0dXNfY29kZSddID0gZGF0YS5odHRwLnN0YXR1c0NvZGU7XG4gICAgICBpZiAoZGF0YS5odHRwLmhlYWRlcnMpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2h0dHAuaGVhZGVycyddID0gSlNPTi5zdHJpbmdpZnkoZGF0YS5odHRwLmhlYWRlcnMpO1xuICAgICAgaWYgKGRhdGEuaHR0cC5ib2R5KVxuICAgICAgICBhdHRyaWJ1dGVzWydodHRwLmJvZHknXSA9IEpTT04uc3RyaW5naWZ5KGRhdGEuaHR0cC5ib2R5KTtcbiAgICAgIGlmIChkYXRhLmh0dHAucGFyYW1zKVxuICAgICAgICBhdHRyaWJ1dGVzWydodHRwLnBhcmFtcyddID0gSlNPTi5zdHJpbmdpZnkoZGF0YS5odHRwLnBhcmFtcyk7XG4gICAgICBpZiAoZGF0YS5odHRwLnF1ZXJ5KVxuICAgICAgICBhdHRyaWJ1dGVzWydodHRwLnF1ZXJ5J10gPSBKU09OLnN0cmluZ2lmeShkYXRhLmh0dHAucXVlcnkpO1xuICAgIH1cblxuICAgIC8vIFVzdcOhcmlvXG4gICAgaWYgKGRhdGEudXNlcikge1xuICAgICAgaWYgKGRhdGEudXNlci5hY2NvdW50VXNlclVpZClcbiAgICAgICAgYXR0cmlidXRlc1snYWNjb3VudFVzZXIudWlkJ10gPSBkYXRhLnVzZXIuYWNjb3VudFVzZXJVaWQ7XG4gICAgICBpZiAoZGF0YS51c2VyLmFjY291bnRVaWQpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2FjY291bnQudWlkJ10gPSBkYXRhLnVzZXIuYWNjb3VudFVpZDtcbiAgICAgIGlmIChkYXRhLnVzZXIuYXBwbGljYXRpb25VaWQpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2FwcGxpY2F0aW9uLnVpZCddID0gZGF0YS51c2VyLmFwcGxpY2F0aW9uVWlkO1xuICAgIH1cblxuICAgIC8vIEV4ZWN1w6fDo29cbiAgICBpZiAoZGF0YS5leGVjdXRpb24pIHtcbiAgICAgIGlmIChkYXRhLmV4ZWN1dGlvbi5yZXF1ZXN0SWQpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ3JlcXVlc3QuaWQnXSA9IGRhdGEuZXhlY3V0aW9uLnJlcXVlc3RJZDtcbiAgICAgIGlmIChkYXRhLmV4ZWN1dGlvbi5hd3NSZXF1ZXN0SWQpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2F3cy5yZXF1ZXN0LmlkJ10gPSBkYXRhLmV4ZWN1dGlvbi5hd3NSZXF1ZXN0SWQ7XG4gICAgICBpZiAoZGF0YS5leGVjdXRpb24uZnVuY3Rpb25OYW1lKVxuICAgICAgICBhdHRyaWJ1dGVzWydmdW5jdGlvbi5uYW1lJ10gPSBkYXRhLmV4ZWN1dGlvbi5mdW5jdGlvbk5hbWU7XG4gICAgICBpZiAoZGF0YS5leGVjdXRpb24uaW52b2NhdGlvbklkKVxuICAgICAgICBhdHRyaWJ1dGVzWydmdW5jdGlvbi5pbnZvY2F0aW9uX2lkJ10gPSBkYXRhLmV4ZWN1dGlvbi5pbnZvY2F0aW9uSWQ7XG4gICAgICBpZiAoZGF0YS5leGVjdXRpb24uY29udHJvbGxlcilcbiAgICAgICAgYXR0cmlidXRlc1snY29udHJvbGxlci5uYW1lJ10gPSBkYXRhLmV4ZWN1dGlvbi5jb250cm9sbGVyO1xuICAgICAgaWYgKGRhdGEuZXhlY3V0aW9uLmNvbnRyb2xsZXJNZXRob2QpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2NvbnRyb2xsZXIubWV0aG9kJ10gPSBkYXRhLmV4ZWN1dGlvbi5jb250cm9sbGVyTWV0aG9kO1xuICAgICAgaWYgKGRhdGEuZXhlY3V0aW9uLm9yaWdpbikgYXR0cmlidXRlc1snb3JpZ2luJ10gPSBkYXRhLmV4ZWN1dGlvbi5vcmlnaW47XG4gICAgfVxuXG4gICAgLy8gUGVyZm9ybWFuY2VcbiAgICBpZiAoZGF0YS5wZXJmb3JtYW5jZSkge1xuICAgICAgaWYgKGRhdGEucGVyZm9ybWFuY2UuZHVyYXRpb25NcylcbiAgICAgICAgYXR0cmlidXRlc1snZHVyYXRpb24ubXMnXSA9IGRhdGEucGVyZm9ybWFuY2UuZHVyYXRpb25NcztcbiAgICAgIGlmIChkYXRhLnBlcmZvcm1hbmNlLnN1Y2Nlc3MgIT09IHVuZGVmaW5lZClcbiAgICAgICAgYXR0cmlidXRlc1snZXhlY3V0aW9uLnN1Y2Nlc3MnXSA9IGRhdGEucGVyZm9ybWFuY2Uuc3VjY2VzcztcbiAgICB9XG5cbiAgICAvLyBDb250ZXh0byBhZGljaW9uYWxcbiAgICBpZiAoZGF0YS5jb250ZXh0KSB7XG4gICAgICBhdHRyaWJ1dGVzWydjb250ZXh0J10gPSBKU09OLnN0cmluZ2lmeShkYXRhLmNvbnRleHQpO1xuICAgIH1cblxuICAgIC8vIEZpbHRyYXIgdmFsb3JlcyB1bmRlZmluZWQvbnVsbFxuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QuZW50cmllcyhhdHRyaWJ1dGVzKS5maWx0ZXIoXG4gICAgICAgIChbLCB2YWx1ZV0pID0+IHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGxcbiAgICAgIClcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvcmUvbG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHNEQUFpRTtBQVNqRSxNQUFhLGNBQWM7SUFPekIsWUFBWSxNQUFjLEVBQUUsTUFBdUI7UUFKbEMscUJBQWdCLEdBQXdCLEVBQUUsQ0FBQztRQUsxRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVk7WUFDaEQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWTtZQUMxQixDQUFDLENBQUMsaUJBQWlCLENBQUM7UUFFdEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHO1lBQ3RCLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU87WUFDbEQsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsTUFBTTtTQUNqRCxDQUFDO0lBQ0osQ0FBQztJQUVLLFFBQVEsQ0FDWixJQUFxRDs7WUFFckQsTUFBTSxJQUFJLENBQUMsR0FBRywrQ0FBTSxJQUFJLEdBQUssSUFBSSxDQUFDLGdCQUFnQixLQUFFLFFBQVEsRUFBRSxPQUFPLElBQUcsQ0FBQztRQUMzRSxDQUFDO0tBQUE7SUFFSyxPQUFPLENBQ1gsSUFBcUQ7O1lBRXJELE1BQU0sSUFBSSxDQUFDLEdBQUcsK0NBQU0sSUFBSSxHQUFLLElBQUksQ0FBQyxnQkFBZ0IsS0FBRSxRQUFRLEVBQUUsTUFBTSxJQUFHLENBQUM7UUFDMUUsQ0FBQztLQUFB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QUMsT0FBTyxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUdELE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FDdkIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQy9CLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQ3JELENBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXhKRCx3Q0F3SkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXZlcml0eU51bWJlciwgTG9nZ2VyIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvYXBpLWxvZ3MnO1xuaW1wb3J0IHsgSVN0YW5kYXJkTG9nZ2VyLCBTdGFuZGFyZExvZ0RhdGEgfSBmcm9tICcuL2xvZ2dlci10eXBlcyc7XG5pbXBvcnQgeyBJU3RhbmRhcmRUcmFjZXIgfSBmcm9tICcuL3RyYWNlci10eXBlcyc7XG5pbXBvcnQgeyBTcGFuIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvYXBpJztcblxuLyoqXG4gKiBMb2dnZXIgY29yZSBxdWUgaW1wbGVtZW50YSBvIHBhZHLDo28gZGUgbG9ncyBlc3RydXR1cmFkb3MuXG4gKiBSZWNlYmUgdW0gTG9nZ2VyUHJvdmlkZXIgZG8gT3BlblRlbGVtZXRyeSBwYXJhIGVtaXRpciBvcyBsb2dzLlxuICovXG5leHBvcnQgY2xhc3MgU3RhbmRhcmRMb2dnZXIgaW1wbGVtZW50cyBJU3RhbmRhcmRMb2dnZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogTG9nZ2VyO1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYWNlcjogSVN0YW5kYXJkVHJhY2VyO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRBdHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgcHJpdmF0ZSByZWFkb25seSBzcGFuQ29udGV4dDogU3BhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0U2VydmljZU5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihsb2dnZXI6IExvZ2dlciwgdHJhY2VyOiBJU3RhbmRhcmRUcmFjZXIpIHtcbiAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlcjtcbiAgICB0aGlzLnRyYWNlciA9IHRyYWNlcjtcbiAgICB0aGlzLnNwYW5Db250ZXh0ID0gdGhpcy50cmFjZXIuZ2V0VHJhY2VyKCkuc3RhcnRTcGFuKCdpbml0LWxvZ2dlcicpO1xuICAgIHRoaXMuZGVmYXVsdFNlcnZpY2VOYW1lID0gcHJvY2Vzcy5lbnYuU0VSVklDRV9OQU1FXG4gICAgICA/IHByb2Nlc3MuZW52LlNFUlZJQ0VfTkFNRVxuICAgICAgOiAndW5rbm93bi1zZXJ2aWNlJztcblxuICAgIHRoaXMuZGVmYXVsdEF0cmlidXRlcyA9IHtcbiAgICAgICd0cmFjZS5pZCc6IHRoaXMuc3BhbkNvbnRleHQuc3BhbkNvbnRleHQoKS50cmFjZUlkLFxuICAgICAgJ3NwYW4uaWQnOiB0aGlzLnNwYW5Db250ZXh0LnNwYW5Db250ZXh0KCkuc3BhbklkLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBsb2dFcnJvcihcbiAgICBkYXRhOiBPbWl0PFN0YW5kYXJkTG9nRGF0YSwgJ3NldmVyaXR5JyB8ICd0aW1lc3RhbXAnPlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmxvZyh7IC4uLmRhdGEsIC4uLnRoaXMuZGVmYXVsdEF0cmlidXRlcywgc2V2ZXJpdHk6ICdFUlJPUicgfSk7XG4gIH1cblxuICBhc3luYyBsb2dJbmZvKFxuICAgIGRhdGE6IE9taXQ8U3RhbmRhcmRMb2dEYXRhLCAnc2V2ZXJpdHknIHwgJ3RpbWVzdGFtcCc+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubG9nKHsgLi4uZGF0YSwgLi4udGhpcy5kZWZhdWx0QXRyaWJ1dGVzLCBzZXZlcml0eTogJ0lORk8nIH0pO1xuICB9XG5cbiAgYXN5bmMgbG9nV2FybihcbiAgICBkYXRhOiBPbWl0PFN0YW5kYXJkTG9nRGF0YSwgJ3NldmVyaXR5JyB8ICd0aW1lc3RhbXAnPlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmxvZyh7IC4uLmRhdGEsIC4uLnRoaXMuZGVmYXVsdEF0cmlidXRlcywgc2V2ZXJpdHk6ICdXQVJOJyB9KTtcbiAgfVxuXG4gIGFzeW5jIGxvZ0RlYnVnKFxuICAgIGRhdGE6IE9taXQ8U3RhbmRhcmRMb2dEYXRhLCAnc2V2ZXJpdHknIHwgJ3RpbWVzdGFtcCc+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubG9nKHsgLi4uZGF0YSwgLi4udGhpcy5kZWZhdWx0QXRyaWJ1dGVzLCBzZXZlcml0eTogJ0RFQlVHJyB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9nKFxuICAgIGRhdGE6IE9taXQ8U3RhbmRhcmRMb2dEYXRhLCAndGltZXN0YW1wJz4gJiB7XG4gICAgICBzZXZlcml0eTogU3RhbmRhcmRMb2dEYXRhWydzZXZlcml0eSddO1xuICAgIH1cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZnVsbERhdGE6IFN0YW5kYXJkTG9nRGF0YSA9IHtcbiAgICAgIC4uLmRhdGEsXG4gICAgICAuLi50aGlzLmRlZmF1bHRBdHJpYnV0ZXMsXG4gICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgIHNlcnZpY2VOYW1lOiBkYXRhLnNlcnZpY2VOYW1lIHx8IHRoaXMuZGVmYXVsdFNlcnZpY2VOYW1lLFxuICAgIH07XG5cbiAgICBjb25zdCBzZXZlcml0eU1hcCA9IHtcbiAgICAgIEVSUk9SOiBTZXZlcml0eU51bWJlci5FUlJPUixcbiAgICAgIFdBUk46IFNldmVyaXR5TnVtYmVyLldBUk4sXG4gICAgICBJTkZPOiBTZXZlcml0eU51bWJlci5JTkZPLFxuICAgICAgREVCVUc6IFNldmVyaXR5TnVtYmVyLkRFQlVHLFxuICAgIH07XG5cbiAgICBjb25zdCBsb2dSZWNvcmQgPSB7XG4gICAgICBzZXZlcml0eU51bWJlcjogc2V2ZXJpdHlNYXBbZnVsbERhdGEuc2V2ZXJpdHldLFxuICAgICAgc2V2ZXJpdHlUZXh0OiBmdWxsRGF0YS5zZXZlcml0eSxcbiAgICAgIGJvZHk6IGZ1bGxEYXRhLm1lc3NhZ2UsXG4gICAgICBhdHRyaWJ1dGVzOiB0aGlzLmJ1aWxkQXR0cmlidXRlcyhmdWxsRGF0YSksXG4gICAgfTtcblxuICAgIHRoaXMubG9nZ2VyLmVtaXQobG9nUmVjb3JkKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRBdHRyaWJ1dGVzKGRhdGE6IFN0YW5kYXJkTG9nRGF0YSk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIGNvbnN0IGF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7XG4gICAgICB0aW1lc3RhbXA6IGRhdGEudGltZXN0YW1wLFxuICAgICAgJ3NlcnZpY2UubmFtZSc6IGRhdGEuc2VydmljZU5hbWUsXG4gICAgICAnZGVwbG95bWVudC5lbnZpcm9ubWVudC5uYW1lJzogZGF0YS5lbnZpcm9ubWVudCxcbiAgICB9O1xuXG4gICAgLy8gSW5mb3JtYcOnw7VlcyBkbyBlcnJvXG4gICAgaWYgKGRhdGEuZXJyb3IpIHtcbiAgICAgIGF0dHJpYnV0ZXNbJ2Vycm9yLnR5cGUnXSA9IGRhdGEuZXJyb3IubmFtZTtcbiAgICAgIGF0dHJpYnV0ZXNbJ2Vycm9yLm1lc3NhZ2UnXSA9IGRhdGEuZXJyb3IubWVzc2FnZTtcbiAgICAgIGF0dHJpYnV0ZXNbJ2Vycm9yLnN0YWNrJ10gPSBkYXRhLmVycm9yLnN0YWNrIHx8ICcnO1xuICAgIH1cblxuICAgIC8vIEhUVFBcbiAgICBpZiAoZGF0YS5odHRwKSB7XG4gICAgICBpZiAoZGF0YS5odHRwLm1ldGhvZCkgYXR0cmlidXRlc1snaHR0cC5tZXRob2QnXSA9IGRhdGEuaHR0cC5tZXRob2Q7XG4gICAgICBpZiAoZGF0YS5odHRwLnVybCkgYXR0cmlidXRlc1snaHR0cC51cmwnXSA9IGRhdGEuaHR0cC51cmw7XG4gICAgICBpZiAoZGF0YS5odHRwLmVuZHBvaW50KSBhdHRyaWJ1dGVzWydodHRwLmVuZHBvaW50J10gPSBkYXRhLmh0dHAuZW5kcG9pbnQ7XG4gICAgICBpZiAoZGF0YS5odHRwLnN0YXR1c0NvZGUpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2h0dHAuc3RhdHVzX2NvZGUnXSA9IGRhdGEuaHR0cC5zdGF0dXNDb2RlO1xuICAgICAgaWYgKGRhdGEuaHR0cC5oZWFkZXJzKVxuICAgICAgICBhdHRyaWJ1dGVzWydodHRwLmhlYWRlcnMnXSA9IEpTT04uc3RyaW5naWZ5KGRhdGEuaHR0cC5oZWFkZXJzKTtcbiAgICAgIGlmIChkYXRhLmh0dHAuYm9keSlcbiAgICAgICAgYXR0cmlidXRlc1snaHR0cC5ib2R5J10gPSBKU09OLnN0cmluZ2lmeShkYXRhLmh0dHAuYm9keSk7XG4gICAgICBpZiAoZGF0YS5odHRwLnBhcmFtcylcbiAgICAgICAgYXR0cmlidXRlc1snaHR0cC5wYXJhbXMnXSA9IEpTT04uc3RyaW5naWZ5KGRhdGEuaHR0cC5wYXJhbXMpO1xuICAgICAgaWYgKGRhdGEuaHR0cC5xdWVyeSlcbiAgICAgICAgYXR0cmlidXRlc1snaHR0cC5xdWVyeSddID0gSlNPTi5zdHJpbmdpZnkoZGF0YS5odHRwLnF1ZXJ5KTtcbiAgICB9XG5cbiAgICAvLyBVc3XDoXJpb1xuICAgIGlmIChkYXRhLnVzZXIpIHtcbiAgICAgIGlmIChkYXRhLnVzZXIuYWNjb3VudFVzZXJVaWQpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2FjY291bnRVc2VyLnVpZCddID0gZGF0YS51c2VyLmFjY291bnRVc2VyVWlkO1xuICAgICAgaWYgKGRhdGEudXNlci5hY2NvdW50VWlkKVxuICAgICAgICBhdHRyaWJ1dGVzWydhY2NvdW50LnVpZCddID0gZGF0YS51c2VyLmFjY291bnRVaWQ7XG4gICAgICBpZiAoZGF0YS51c2VyLmFwcGxpY2F0aW9uVWlkKVxuICAgICAgICBhdHRyaWJ1dGVzWydhcHBsaWNhdGlvbi51aWQnXSA9IGRhdGEudXNlci5hcHBsaWNhdGlvblVpZDtcbiAgICB9XG5cbiAgICAvLyBFeGVjdcOnw6NvXG4gICAgaWYgKGRhdGEuZXhlY3V0aW9uKSB7XG4gICAgICBpZiAoZGF0YS5leGVjdXRpb24ucmVxdWVzdElkKVxuICAgICAgICBhdHRyaWJ1dGVzWydyZXF1ZXN0LmlkJ10gPSBkYXRhLmV4ZWN1dGlvbi5yZXF1ZXN0SWQ7XG4gICAgICBpZiAoZGF0YS5leGVjdXRpb24uYXdzUmVxdWVzdElkKVxuICAgICAgICBhdHRyaWJ1dGVzWydhd3MucmVxdWVzdC5pZCddID0gZGF0YS5leGVjdXRpb24uYXdzUmVxdWVzdElkO1xuICAgICAgaWYgKGRhdGEuZXhlY3V0aW9uLmZ1bmN0aW9uTmFtZSlcbiAgICAgICAgYXR0cmlidXRlc1snZnVuY3Rpb24ubmFtZSddID0gZGF0YS5leGVjdXRpb24uZnVuY3Rpb25OYW1lO1xuICAgICAgaWYgKGRhdGEuZXhlY3V0aW9uLmludm9jYXRpb25JZClcbiAgICAgICAgYXR0cmlidXRlc1snZnVuY3Rpb24uaW52b2NhdGlvbl9pZCddID0gZGF0YS5leGVjdXRpb24uaW52b2NhdGlvbklkO1xuICAgICAgaWYgKGRhdGEuZXhlY3V0aW9uLmNvbnRyb2xsZXIpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2NvbnRyb2xsZXIubmFtZSddID0gZGF0YS5leGVjdXRpb24uY29udHJvbGxlcjtcbiAgICAgIGlmIChkYXRhLmV4ZWN1dGlvbi5jb250cm9sbGVyTWV0aG9kKVxuICAgICAgICBhdHRyaWJ1dGVzWydjb250cm9sbGVyLm1ldGhvZCddID0gZGF0YS5leGVjdXRpb24uY29udHJvbGxlck1ldGhvZDtcbiAgICAgIGlmIChkYXRhLmV4ZWN1dGlvbi5vcmlnaW4pIGF0dHJpYnV0ZXNbJ29yaWdpbiddID0gZGF0YS5leGVjdXRpb24ub3JpZ2luO1xuICAgIH1cblxuICAgIC8vIFBlcmZvcm1hbmNlXG4gICAgaWYgKGRhdGEucGVyZm9ybWFuY2UpIHtcbiAgICAgIGlmIChkYXRhLnBlcmZvcm1hbmNlLmR1cmF0aW9uTXMpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2R1cmF0aW9uLm1zJ10gPSBkYXRhLnBlcmZvcm1hbmNlLmR1cmF0aW9uTXM7XG4gICAgICBpZiAoZGF0YS5wZXJmb3JtYW5jZS5zdWNjZXNzICE9PSB1bmRlZmluZWQpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2V4ZWN1dGlvbi5zdWNjZXNzJ10gPSBkYXRhLnBlcmZvcm1hbmNlLnN1Y2Nlc3M7XG4gICAgfVxuXG4gICAgLy8gQ29udGV4dG8gYWRpY2lvbmFsXG4gICAgaWYgKGRhdGEuY29udGV4dCkge1xuICAgICAgYXR0cmlidXRlc1snY29udGV4dCddID0gSlNPTi5zdHJpbmdpZnkoZGF0YS5jb250ZXh0KTtcbiAgICB9XG5cbiAgICAvLyBGaWx0cmFyIHZhbG9yZXMgdW5kZWZpbmVkL251bGxcbiAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgT2JqZWN0LmVudHJpZXMoYXR0cmlidXRlcykuZmlsdGVyKFxuICAgICAgICAoWywgdmFsdWVdKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsXG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Span } from '@opentelemetry/api';
|
|
1
|
+
import { Span, Tracer } from '@opentelemetry/api';
|
|
2
2
|
export interface StandardTraceData {
|
|
3
3
|
spanName: string;
|
|
4
4
|
serviceName: string;
|
|
@@ -47,4 +47,5 @@ export interface StandardSpanResult {
|
|
|
47
47
|
export interface IStandardTracer {
|
|
48
48
|
startSpan(data: StandardTraceData): StandardSpanResult;
|
|
49
49
|
recordException(span: Span, error: Error): void;
|
|
50
|
+
getTracer(): Tracer;
|
|
50
51
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2VyLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvcmUvdHJhY2VyLXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTcGFuLCBUcmFjZXIgfSBmcm9tICdAb3BlbnRlbGVtZXRyeS9hcGknO1xuXG4vKipcbiAqIEludGVyZmFjZSBwYWRyw6NvIHBhcmEgZGFkb3MgZGUgdHJhY2VzIGVtIHRvZGEgYSBhcGxpY2HDp8Ojby5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFuZGFyZFRyYWNlRGF0YSB7XG4gIC8vIElkZW50aWZpY2HDp8OjbyBkbyBzcGFuXG4gIHNwYW5OYW1lOiBzdHJpbmc7XG4gIHNlcnZpY2VOYW1lOiBzdHJpbmc7XG4gIGVudmlyb25tZW50OiBzdHJpbmc7XG5cbiAgLy8gQ29udGV4dG8gZGEgZXhlY3XDp8Ojb1xuICBleGVjdXRpb24/OiB7XG4gICAgZnVuY3Rpb25OYW1lPzogc3RyaW5nO1xuICAgIGludm9jYXRpb25JZD86IHN0cmluZztcbiAgICBhd3NSZXF1ZXN0SWQ/OiBzdHJpbmc7XG4gICAgcmVxdWVzdElkPzogc3RyaW5nO1xuICAgIGNvbnRyb2xsZXI/OiBzdHJpbmc7XG4gICAgY29udHJvbGxlck1ldGhvZD86IHN0cmluZztcbiAgICBvcmlnaW4/OiBzdHJpbmc7XG4gIH07XG5cbiAgLy8gQ29udGV4dG8gSFRUUFxuICBodHRwPzoge1xuICAgIG1ldGhvZD86IHN0cmluZztcbiAgICB1cmw/OiBzdHJpbmc7XG4gICAgZW5kcG9pbnQ/OiBzdHJpbmc7XG4gICAgc3RhdHVzQ29kZT86IG51bWJlcjtcbiAgICB0YXJnZXQ/OiBzdHJpbmc7XG4gICAgc2NoZW1lPzogc3RyaW5nO1xuICAgIGhvc3Q/OiBzdHJpbmc7XG4gIH07XG5cbiAgLy8gSWRlbnRpZmljYcOnw6NvIGRvIHVzdcOhcmlvXG4gIHVzZXI/OiB7XG4gICAgYWNjb3VudFVzZXJVaWQ/OiBzdHJpbmc7XG4gICAgYWNjb3VudFVpZD86IHN0cmluZztcbiAgICBhcHBsaWNhdGlvblVpZD86IHN0cmluZztcbiAgfTtcblxuICAvLyBQZXJmb3JtYW5jZVxuICBwZXJmb3JtYW5jZT86IHtcbiAgICBkdXJhdGlvbk1zPzogbnVtYmVyO1xuICAgIHN1Y2Nlc3M/OiBib29sZWFuO1xuICB9O1xuXG4gIC8vIEluZm9ybWHDp8O1ZXMgZGUgZXJyb1xuICBlcnJvcj86IHtcbiAgICB0eXBlPzogc3RyaW5nO1xuICAgIG1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgc3RhY2s/OiBzdHJpbmc7XG4gIH07XG5cbiAgLy8gQXRyaWJ1dG9zIGN1c3RvbWl6YWRvcyBhZGljaW9uYWlzXG4gIGF0dHJpYnV0ZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuPjtcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgcGFyYSByZXN1bHRhZG8gZGUgc3BhbiBjcmlhZG9cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFuZGFyZFNwYW5SZXN1bHQge1xuICBzcGFuOiBTcGFuO1xuICBlbmQ6ICgpID0+IHZvaWQ7XG4gIHNldFN1Y2Nlc3M6IChzdWNjZXNzOiBib29sZWFuKSA9PiB2b2lkO1xuICBzZXRFcnJvcjogKGVycm9yOiBFcnJvcikgPT4gdm9pZDtcbiAgc2V0QXR0cmlidXRlOiAoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuKSA9PiB2b2lkO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSBwYXJhIG8gdHJhY2VyIHBhZHJvbml6YWRvXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVN0YW5kYXJkVHJhY2VyIHtcbiAgc3RhcnRTcGFuKGRhdGE6IFN0YW5kYXJkVHJhY2VEYXRhKTogU3RhbmRhcmRTcGFuUmVzdWx0O1xuICByZWNvcmRFeGNlcHRpb24oc3BhbjogU3BhbiwgZXJyb3I6IEVycm9yKTogdm9pZDtcbiAgZ2V0VHJhY2VyKCk6IFRyYWNlcjtcbn1cbiJdfQ==
|
package/dist/core/tracer.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export declare class StandardTracer implements IStandardTracer {
|
|
|
4
4
|
private readonly tracer;
|
|
5
5
|
private readonly defaultServiceName;
|
|
6
6
|
constructor(tracer: Tracer, defaultServiceName?: string);
|
|
7
|
+
getTracer(): Tracer;
|
|
7
8
|
startSpan(data: StandardTraceData): StandardSpanResult;
|
|
8
9
|
recordException(span: Span, error: Error): void;
|
|
9
10
|
private buildAttributes;
|
package/dist/core/tracer.js
CHANGED
|
@@ -3,10 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.StandardTracer = void 0;
|
|
4
4
|
const api_1 = require("@opentelemetry/api");
|
|
5
5
|
class StandardTracer {
|
|
6
|
-
constructor(tracer, defaultServiceName =
|
|
6
|
+
constructor(tracer, defaultServiceName = process.env.SERVICE_NAME ||
|
|
7
|
+
'unknown-service') {
|
|
7
8
|
this.tracer = tracer;
|
|
8
9
|
this.defaultServiceName = defaultServiceName;
|
|
9
10
|
}
|
|
11
|
+
getTracer() {
|
|
12
|
+
return this.tracer;
|
|
13
|
+
}
|
|
10
14
|
startSpan(data) {
|
|
11
15
|
const attributes = this.buildAttributes(data);
|
|
12
16
|
const span = this.tracer.startSpan(data.spanName, {
|
|
@@ -111,4 +115,4 @@ class StandardTracer {
|
|
|
111
115
|
}
|
|
112
116
|
}
|
|
113
117
|
exports.StandardTracer = StandardTracer;
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvcmUvdHJhY2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDRDQUE0RTtBQVc1RSxNQUFhLGNBQWM7SUFDekIsWUFDbUIsTUFBYyxFQUNkLHFCQUE2QixpQkFBaUI7UUFEOUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBNEI7SUFDOUQsQ0FBQztJQUtKLFNBQVMsQ0FBQyxJQUF1QjtRQUMvQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTlDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDaEQsSUFBSSxFQUFFLGNBQVEsQ0FBQyxNQUFNO1lBQ3JCLFVBQVU7U0FDWCxDQUFDLENBQUM7UUFFSCxPQUFPO1lBQ0wsSUFBSTtZQUNKLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ3JCLFVBQVUsRUFBRSxDQUFDLE9BQWdCLEVBQUUsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLFNBQVMsQ0FBQztvQkFDYixJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxvQkFBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsb0JBQWMsQ0FBQyxLQUFLO2lCQUN6RCxDQUFDLENBQUM7WUFDTCxDQUFDO1lBQ0QsUUFBUSxFQUFFLENBQUMsS0FBWSxFQUFFLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNsQyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUM5QyxJQUFJ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SSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUk7Z0JBQUUsVUFBVSxDQUFDLFlBQVksQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ2hFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPO2dCQUFFLFVBQVUsQ0FBQyxlQUFlLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUN6RSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSztnQkFBRSxVQUFVLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDckUsQ0FBQztRQUdELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7Z0JBQ3ZELElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFLENBQUM7b0JBQzFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQzFCLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFHRCxPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQ3ZCLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUMvQixDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUNyRCxDQUNGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFsSUQsd0NBa0lDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3BhbiwgU3BhblN0YXR1c0NvZGUsIFRyYWNlciwgU3BhbktpbmQgfSBmcm9tICdAb3BlbnRlbGVtZXRyeS9hcGknO1xuaW1wb3J0IHtcbiAgSVN0YW5kYXJkVHJhY2VyLFxuICBTdGFuZGFyZFRyYWNlRGF0YSxcbiAgU3RhbmRhcmRTcGFuUmVzdWx0LFxufSBmcm9tICcuL3RyYWNlci10eXBlcyc7XG5cbi8qKlxuICogVHJhY2VyIHBhZHJvbml6YWRvIHF1ZSBnYXJhbnRlIGNvbnNpc3TDqm5jaWEgbm9zIHRyYWNlcy5cbiAqIENvbXBsZW1lbnRhIG8gU3RhbmRhcmRMb2dnZXIgcGFyYSBvYnNlcnZhYmlsaWRhZGUgY29tcGxldGEuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGFuZGFyZFRyYWNlciBpbXBsZW1lbnRzIElTdGFuZGFyZFRyYWNlciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhY2VyOiBUcmFjZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0U2VydmljZU5hbWU6IHN0cmluZyA9ICd1bmtub3duLXNlcnZpY2UnXG4gICkge31cblxuICAvKipcbiAgICogSW5pY2lhIHVtIG5vdm8gc3BhbiBjb20gYXRyaWJ1dG9zIHBhZHJvbml6YWRvc1xuICAgKi9cbiAgc3RhcnRTcGFuKGRhdGE6IFN0YW5kYXJkVHJhY2VEYXRhKTogU3RhbmRhcmRTcGFuUmVzdWx0IHtcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gdGhpcy5idWlsZEF0dHJpYnV0ZXMoZGF0YSk7XG5cbiAgICBjb25zdCBzcGFuID0gdGhpcy50cmFjZXIuc3RhcnRTcGFuKGRhdGEuc3Bhbk5hbWUsIHtcbiAgICAgIGtpbmQ6IFNwYW5LaW5kLlNFUlZFUixcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3BhbixcbiAgICAgIGVuZDogKCkgPT4gc3Bhbi5lbmQoKSxcbiAgICAgIHNldFN1Y2Nlc3M6IChzdWNjZXNzOiBib29sZWFuKSA9PiB7XG4gICAgICAgIHNwYW4uc2V0QXR0cmlidXRlKCdleGVjdXRpb24uc3VjY2VzcycsIHN1Y2Nlc3MpO1xuICAgICAgICBzcGFuLnNldFN0YXR1cyh7XG4gICAgICAgICAgY29kZTogc3VjY2VzcyA/IFNwYW5TdGF0dXNDb2RlLk9LIDogU3BhblN0YXR1c0NvZGUuRVJST1IsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIHNldEVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMucmVjb3JkRXhjZXB0aW9uKHNwYW4sIGVycm9yKTtcbiAgICAgICAgc3Bhbi5zZXRBdHRyaWJ1dGUoJ2V4ZWN1dGlvbi5zdWNjZXNzJywgZmFsc2UpO1xuICAgICAgICBzcGFuLnNldFN0YXR1cyh7XG4gICAgICAgICAgY29kZTogU3BhblN0YXR1c0NvZGUuRVJST1IsXG4gICAgICAgICAgbWVzc2FnZTogZXJyb3IubWVzc2FnZSxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgc2V0QXR0cmlidXRlOiAoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuKSA9PiB7XG4gICAgICAgIHNwYW4uc2V0QXR0cmlidXRlKGtleSwgdmFsdWUpO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdHJhIHVtYSBleGNlw6fDo28gbm8gc3BhblxuICAgKi9cbiAgcmVjb3JkRXhjZXB0aW9uKHNwYW46IFNwYW4sIGVycm9yOiBFcnJvcik6IHZvaWQge1xuICAgIHNwYW4ucmVjb3JkRXhjZXB0aW9uKGVycm9yKTtcbiAgICBzcGFuLnNldEF0dHJpYnV0ZSgnZXJyb3IudHlwZScsIGVycm9yLm5hbWUpO1xuICAgIHNwYW4uc2V0QXR0cmlidXRlKCdlcnJvci5tZXNzYWdlJywgZXJyb3IubWVzc2FnZSk7XG4gICAgaWYgKGVycm9yLnN0YWNrKSB7XG4gICAgICBzcGFuLnNldEF0dHJpYnV0ZSgnZXJyb3Iuc3RhY2snLCBlcnJvci5zdGFjayk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENvbnN0csOzaSBhdHJpYnV0b3MgcGFkcm9uaXphZG9zIHBhcmEgbyBzcGFuXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkQXR0cmlidXRlcyhkYXRhOiBTdGFuZGFyZFRyYWNlRGF0YSk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIGNvbnN0IGF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7XG4gICAgICAnc2VydmljZS5uYW1lJzogZGF0YS5zZXJ2aWNlTmFtZSB8fCB0aGlzLmRlZmF1bHRTZXJ2aWNlTmFtZSxcbiAgICAgICdkZXBsb3ltZW50LmVudmlyb25tZW50Lm5hbWUnOiBkYXRhLmVudmlyb25tZW50LFxuICAgIH07XG5cbiAgICAvLyBFeGVjdcOnw6NvXG4gICAgaWYgKGRhdGEuZXhlY3V0aW9uKSB7XG4gICAgICBpZiAoZGF0YS5leGVjdXRpb24uZnVuY3Rpb25OYW1lKVxuICAgICAgICBhdHRyaWJ1dGVzWydmdW5jdGlvbi5uYW1lJ10gPSBkYXRhLmV4ZWN1dGlvbi5mdW5jdGlvbk5hbWU7XG4gICAgICBpZiAoZGF0YS5leGVjdXRpb24uaW52b2NhdGlvbklkKVxuICAgICAgICBhdHRyaWJ1dGVzWydmdW5jdGlvbi5pbnZvY2F0aW9uX2lkJ10gPSBkYXRhLmV4ZWN1dGlvbi5pbnZvY2F0aW9uSWQ7XG4gICAgICBpZiAoZGF0YS5leGVjdXRpb24uYXdzUmVxdWVzdElkKVxuICAgICAgICBhdHRyaWJ1dGVzWydhd3MucmVxdWVzdC5pZCddID0gZGF0YS5leGVjdXRpb24uYXdzUmVxdWVzdElkO1xuICAgICAgaWYgKGRhdGEuZXhlY3V0aW9uLnJlcXVlc3RJZClcbiAgICAgICAgYXR0cmlidXRlc1sncmVxdWVzdC5pZCddID0gZGF0YS5leGVjdXRpb24ucmVxdWVzdElkO1xuICAgICAgaWYgKGRhdGEuZXhlY3V0aW9uLmNvbnRyb2xsZXIpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2NvbnRyb2xsZXIubmFtZSddID0gZGF0YS5leGVjdXRpb24uY29udHJvbGxlcjtcbiAgICAgIGlmIChkYXRhLmV4ZWN1dGlvbi5jb250cm9sbGVyTWV0aG9kKVxuICAgICAgICBhdHRyaWJ1dGVzWydjb250cm9sbGVyLm1ldGhvZCddID0gZGF0YS5leGVjdXRpb24uY29udHJvbGxlck1ldGhvZDtcbiAgICAgIGlmIChkYXRhLmV4ZWN1dGlvbi5vcmlnaW4pIGF0dHJpYnV0ZXNbJ29yaWdpbiddID0gZGF0YS5leGVjdXRpb24ub3JpZ2luO1xuICAgIH1cblxuICAgIC8vIEhUVFBcbiAgICBpZiAoZGF0YS5odHRwKSB7XG4gICAgICBpZiAoZGF0YS5odHRwLm1ldGhvZCkgYXR0cmlidXRlc1snaHR0cC5tZXRob2QnXSA9IGRhdGEuaHR0cC5tZXRob2Q7XG4gICAgICBpZiAoZGF0YS5odHRwLnVybCkgYXR0cmlidXRlc1snaHR0cC51cmwnXSA9IGRhdGEuaHR0cC51cmw7XG4gICAgICBpZiAoZGF0YS5odHRwLmVuZHBvaW50KSBhdHRyaWJ1dGVzWydodHRwLnRhcmdldCddID0gZGF0YS5odHRwLmVuZHBvaW50O1xuICAgICAgaWYgKGRhdGEuaHR0cC5zdGF0dXNDb2RlKVxuICAgICAgICBhdHRyaWJ1dGVzWydodHRwLnN0YXR1c19jb2RlJ10gPSBkYXRhLmh0dHAuc3RhdHVzQ29kZTtcbiAgICAgIGlmIChkYXRhLmh0dHAuc2NoZW1lKSBhdHRyaWJ1dGVzWydodHRwLnNjaGVtZSddID0gZGF0YS5odHRwLnNjaGVtZTtcbiAgICAgIGlmIChkYXRhLmh0dHAuaG9zdCkgYXR0cmlidXRlc1snaHR0cC5ob3N0J10gPSBkYXRhLmh0dHAuaG9zdDtcbiAgICB9XG5cbiAgICAvLyBVc3XDoXJpb1xuICAgIGlmIChkYXRhLnVzZXIpIHtcbiAgICAgIGlmIChkYXRhLnVzZXIuYWNjb3VudFVzZXJVaWQpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2FjY291bnRVc2VyLnVpZCddID0gZGF0YS51c2VyLmFjY291bnRVc2VyVWlkO1xuICAgICAgaWYgKGRhdGEudXNlci5hY2NvdW50VWlkKVxuICAgICAgICBhdHRyaWJ1dGVzWydhY2NvdW50LnVpZCddID0gZGF0YS51c2VyLmFjY291bnRVaWQ7XG4gICAgICBpZiAoZGF0YS51c2VyLmFwcGxpY2F0aW9uVWlkKVxuICAgICAgICBhdHRyaWJ1dGVzWydhcHBsaWNhdGlvbi51aWQnXSA9IGRhdGEudXNlci5hcHBsaWNhdGlvblVpZDtcbiAgICB9XG5cbiAgICAvLyBQZXJmb3JtYW5jZVxuICAgIGlmIChkYXRhLnBlcmZvcm1hbmNlKSB7XG4gICAgICBpZiAoZGF0YS5wZXJmb3JtYW5jZS5kdXJhdGlvbk1zKVxuICAgICAgICBhdHRyaWJ1dGVzWydkdXJhdGlvbi5tcyddID0gZGF0YS5wZXJmb3JtYW5jZS5kdXJhdGlvbk1zO1xuICAgICAgaWYgKGRhdGEucGVyZm9ybWFuY2Uuc3VjY2VzcyAhPT0gdW5kZWZpbmVkKVxuICAgICAgICBhdHRyaWJ1dGVzWydleGVjdXRpb24uc3VjY2VzcyddID0gZGF0YS5wZXJmb3JtYW5jZS5zdWNjZXNzO1xuICAgIH1cblxuICAgIC8vIEVycm9cbiAgICBpZiAoZGF0YS5lcnJvcikge1xuICAgICAgaWYgKGRhdGEuZXJyb3IudHlwZSkgYXR0cmlidXRlc1snZXJyb3IudHlwZSddID0gZGF0YS5lcnJvci50eXBlO1xuICAgICAgaWYgKGRhdGEuZXJyb3IubWVzc2FnZSkgYXR0cmlidXRlc1snZXJyb3IubWVzc2FnZSddID0gZGF0YS5lcnJvci5tZXNzYWdlO1xuICAgICAgaWYgKGRhdGEuZXJyb3Iuc3RhY2spIGF0dHJpYnV0ZXNbJ2Vycm9yLnN0YWNrJ10gPSBkYXRhLmVycm9yLnN0YWNrO1xuICAgIH1cblxuICAgIC8vIEF0cmlidXRvcyBjdXN0b21pemFkb3NcbiAgICBpZiAoZGF0YS5hdHRyaWJ1dGVzKSB7XG4gICAgICBPYmplY3QuZW50cmllcyhkYXRhLmF0dHJpYnV0ZXMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgIGF0dHJpYnV0ZXNba2V5XSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBGaWx0cmFyIHZhbG9yZXMgdW5kZWZpbmVkL251bGxcbiAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgT2JqZWN0LmVudHJpZXMoYXR0cmlidXRlcykuZmlsdGVyKFxuICAgICAgICAoWywgdmFsdWVdKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsXG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvcmUvdHJhY2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDRDQUE0RTtBQVc1RSxNQUFhLGNBQWM7SUFDekIsWUFDbUIsTUFBYyxFQUNkLHFCQUE2QixPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVk7UUFDcEUsaUJBQWlCO1FBRkYsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FDaEI7SUFDbEIsQ0FBQztJQUVKLFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUtELFNBQVMsQ0FBQyxJQUF1QjtRQUMvQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTlDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDaEQsSUFBSSxFQUFFLGNBQVEsQ0FBQyxNQUFNO1lBQ3JCLFVBQVU7U0FDWCxDQUFDLENBQUM7UUFFSCxPQUFPO1lBQ0wsSUFBSTtZQUNKLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ3JCLFVBQVUsRUFBRSxDQUFDLE9BQWdCLEVBQUUsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLFNBQVMsQ0FBQztvQkFDYixJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxvQkFBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsb0JBQWMsQ0FBQyxLQUFLO2lCQUN6RCxDQUFDLENBQUM7WUFDTCxDQUFDO1lBQ0QsUUFBUSxFQUFFLENBQUMsS0FBWSxFQUFFLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFF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YWNlciwgU3BhbktpbmQgfSBmcm9tICdAb3BlbnRlbGVtZXRyeS9hcGknO1xuaW1wb3J0IHtcbiAgSVN0YW5kYXJkVHJhY2VyLFxuICBTdGFuZGFyZFRyYWNlRGF0YSxcbiAgU3RhbmRhcmRTcGFuUmVzdWx0LFxufSBmcm9tICcuL3RyYWNlci10eXBlcyc7XG5cbi8qKlxuICogVHJhY2VyIHBhZHJvbml6YWRvIHF1ZSBnYXJhbnRlIGNvbnNpc3TDqm5jaWEgbm9zIHRyYWNlcy5cbiAqIENvbXBsZW1lbnRhIG8gU3RhbmRhcmRMb2dnZXIgcGFyYSBvYnNlcnZhYmlsaWRhZGUgY29tcGxldGEuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGFuZGFyZFRyYWNlciBpbXBsZW1lbnRzIElTdGFuZGFyZFRyYWNlciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhY2VyOiBUcmFjZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0U2VydmljZU5hbWU6IHN0cmluZyA9IHByb2Nlc3MuZW52LlNFUlZJQ0VfTkFNRSB8fFxuICAgICAgJ3Vua25vd24tc2VydmljZSdcbiAgKSB7fVxuXG4gIGdldFRyYWNlcigpOiBUcmFjZXIge1xuICAgIHJldHVybiB0aGlzLnRyYWNlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmljaWEgdW0gbm92byBzcGFuIGNvbSBhdHJpYnV0b3MgcGFkcm9uaXphZG9zXG4gICAqL1xuICBzdGFydFNwYW4oZGF0YTogU3RhbmRhcmRUcmFjZURhdGEpOiBTdGFuZGFyZFNwYW5SZXN1bHQge1xuICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSB0aGlzLmJ1aWxkQXR0cmlidXRlcyhkYXRhKTtcblxuICAgIGNvbnN0IHNwYW4gPSB0aGlzLnRyYWNlci5zdGFydFNwYW4oZGF0YS5zcGFuTmFtZSwge1xuICAgICAga2luZDogU3BhbktpbmQuU0VSVkVSLFxuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBzcGFuLFxuICAgICAgZW5kOiAoKSA9PiBzcGFuLmVuZCgpLFxuICAgICAgc2V0U3VjY2VzczogKHN1Y2Nlc3M6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgc3Bhbi5zZXRBdHRyaWJ1dGUoJ2V4ZWN1dGlvbi5zdWNjZXNzJywgc3VjY2Vzcyk7XG4gICAgICAgIHNwYW4uc2V0U3RhdHVzKHtcbiAgICAgICAgICBjb2RlOiBzdWNjZXNzID8gU3BhblN0YXR1c0NvZGUuT0sgOiBTcGFuU3RhdHVzQ29kZS5FUlJPUixcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgc2V0RXJyb3I6IChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5yZWNvcmRFeGNlcHRpb24oc3BhbiwgZXJyb3IpO1xuICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZSgnZXhlY3V0aW9uLnN1Y2Nlc3MnLCBmYWxzZSk7XG4gICAgICAgIHNwYW4uc2V0U3RhdHVzKHtcbiAgICAgICAgICBjb2RlOiBTcGFuU3RhdHVzQ29kZS5FUlJPUixcbiAgICAgICAgICBtZXNzYWdlOiBlcnJvci5tZXNzYWdlLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBzZXRBdHRyaWJ1dGU6IChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4pID0+IHtcbiAgICAgICAgc3Bhbi5zZXRBdHRyaWJ1dGUoa2V5LCB2YWx1ZSk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0cmEgdW1hIGV4Y2XDp8OjbyBubyBzcGFuXG4gICAqL1xuICByZWNvcmRFeGNlcHRpb24oc3BhbjogU3BhbiwgZXJyb3I6IEVycm9yKTogdm9pZCB7XG4gICAgc3Bhbi5yZWNvcmRFeGNlcHRpb24oZXJyb3IpO1xuICAgIHNwYW4uc2V0QXR0cmlidXRlKCdlcnJvci50eXBlJywgZXJyb3IubmFtZSk7XG4gICAgc3Bhbi5zZXRBdHRyaWJ1dGUoJ2Vycm9yLm1lc3NhZ2UnLCBlcnJvci5tZXNzYWdlKTtcbiAgICBpZiAoZXJyb3Iuc3RhY2spIHtcbiAgICAgIHNwYW4uc2V0QXR0cmlidXRlKCdlcnJvci5zdGFjaycsIGVycm9yLnN0YWNrKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29uc3Ryw7NpIGF0cmlidXRvcyBwYWRyb25pemFkb3MgcGFyYSBvIHNwYW5cbiAgICovXG4gIHByaXZhdGUgYnVpbGRBdHRyaWJ1dGVzKGRhdGE6IFN0YW5kYXJkVHJhY2VEYXRhKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgY29uc3QgYXR0cmlidXRlczogUmVjb3JkPHN0cmluZywgYW55PiA9IHtcbiAgICAgICdzZXJ2aWNlLm5hbWUnOiBkYXRhLnNlcnZpY2VOYW1lIHx8IHRoaXMuZGVmYXVsdFNlcnZpY2VOYW1lLFxuICAgICAgJ2RlcGxveW1lbnQuZW52aXJvbm1lbnQubmFtZSc6IGRhdGEuZW52aXJvbm1lbnQsXG4gICAgfTtcblxuICAgIC8vIEV4ZWN1w6fDo29cbiAgICBpZiAoZGF0YS5leGVjdXRpb24pIHtcbiAgICAgIGlmIChkYXRhLmV4ZWN1dGlvbi5mdW5jdGlvbk5hbWUpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2Z1bmN0aW9uLm5hbWUnXSA9IGRhdGEuZXhlY3V0aW9uLmZ1bmN0aW9uTmFtZTtcbiAgICAgIGlmIChkYXRhLmV4ZWN1dGlvbi5pbnZvY2F0aW9uSWQpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2Z1bmN0aW9uLmludm9jYXRpb25faWQnXSA9IGRhdGEuZXhlY3V0aW9uLmludm9jYXRpb25JZDtcbiAgICAgIGlmIChkYXRhLmV4ZWN1dGlvbi5hd3NSZXF1ZXN0SWQpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2F3cy5yZXF1ZXN0LmlkJ10gPSBkYXRhLmV4ZWN1dGlvbi5hd3NSZXF1ZXN0SWQ7XG4gICAgICBpZiAoZGF0YS5leGVjdXRpb24ucmVxdWVzdElkKVxuICAgICAgICBhdHRyaWJ1dGVzWydyZXF1ZXN0LmlkJ10gPSBkYXRhLmV4ZWN1dGlvbi5yZXF1ZXN0SWQ7XG4gICAgICBpZiAoZGF0YS5leGVjdXRpb24uY29udHJvbGxlcilcbiAgICAgICAgYXR0cmlidXRlc1snY29udHJvbGxlci5uYW1lJ10gPSBkYXRhLmV4ZWN1dGlvbi5jb250cm9sbGVyO1xuICAgICAgaWYgKGRhdGEuZXhlY3V0aW9uLmNvbnRyb2xsZXJNZXRob2QpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2NvbnRyb2xsZXIubWV0aG9kJ10gPSBkYXRhLmV4ZWN1dGlvbi5jb250cm9sbGVyTWV0aG9kO1xuICAgICAgaWYgKGRhdGEuZXhlY3V0aW9uLm9yaWdpbikgYXR0cmlidXRlc1snb3JpZ2luJ10gPSBkYXRhLmV4ZWN1dGlvbi5vcmlnaW47XG4gICAgfVxuXG4gICAgLy8gSFRUUFxuICAgIGlmIChkYXRhLmh0dHApIHtcbiAgICAgIGlmIChkYXRhLmh0dHAubWV0aG9kKSBhdHRyaWJ1dGVzWydodHRwLm1ldGhvZCddID0gZGF0YS5odHRwLm1ldGhvZDtcbiAgICAgIGlmIChkYXRhLmh0dHAudXJsKSBhdHRyaWJ1dGVzWydodHRwLnVybCddID0gZGF0YS5odHRwLnVybDtcbiAgICAgIGlmIChkYXRhLmh0dHAuZW5kcG9pbnQpIGF0dHJpYnV0ZXNbJ2h0dHAudGFyZ2V0J10gPSBkYXRhLmh0dHAuZW5kcG9pbnQ7XG4gICAgICBpZiAoZGF0YS5odHRwLnN0YXR1c0NvZGUpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2h0dHAuc3RhdHVzX2NvZGUnXSA9IGRhdGEuaHR0cC5zdGF0dXNDb2RlO1xuICAgICAgaWYgKGRhdGEuaHR0cC5zY2hlbWUpIGF0dHJpYnV0ZXNbJ2h0dHAuc2NoZW1lJ10gPSBkYXRhLmh0dHAuc2NoZW1lO1xuICAgICAgaWYgKGRhdGEuaHR0cC5ob3N0KSBhdHRyaWJ1dGVzWydodHRwLmhvc3QnXSA9IGRhdGEuaHR0cC5ob3N0O1xuICAgIH1cblxuICAgIC8vIFVzdcOhcmlvXG4gICAgaWYgKGRhdGEudXNlcikge1xuICAgICAgaWYgKGRhdGEudXNlci5hY2NvdW50VXNlclVpZClcbiAgICAgICAgYXR0cmlidXRlc1snYWNjb3VudFVzZXIudWlkJ10gPSBkYXRhLnVzZXIuYWNjb3VudFVzZXJVaWQ7XG4gICAgICBpZiAoZGF0YS51c2VyLmFjY291bnRVaWQpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2FjY291bnQudWlkJ10gPSBkYXRhLnVzZXIuYWNjb3VudFVpZDtcbiAgICAgIGlmIChkYXRhLnVzZXIuYXBwbGljYXRpb25VaWQpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2FwcGxpY2F0aW9uLnVpZCddID0gZGF0YS51c2VyLmFwcGxpY2F0aW9uVWlkO1xuICAgIH1cblxuICAgIC8vIFBlcmZvcm1hbmNlXG4gICAgaWYgKGRhdGEucGVyZm9ybWFuY2UpIHtcbiAgICAgIGlmIChkYXRhLnBlcmZvcm1hbmNlLmR1cmF0aW9uTXMpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2R1cmF0aW9uLm1zJ10gPSBkYXRhLnBlcmZvcm1hbmNlLmR1cmF0aW9uTXM7XG4gICAgICBpZiAoZGF0YS5wZXJmb3JtYW5jZS5zdWNjZXNzICE9PSB1bmRlZmluZWQpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2V4ZWN1dGlvbi5zdWNjZXNzJ10gPSBkYXRhLnBlcmZvcm1hbmNlLnN1Y2Nlc3M7XG4gICAgfVxuXG4gICAgLy8gRXJyb1xuICAgIGlmIChkYXRhLmVycm9yKSB7XG4gICAgICBpZiAoZGF0YS5lcnJvci50eXBlKSBhdHRyaWJ1dGVzWydlcnJvci50eXBlJ10gPSBkYXRhLmVycm9yLnR5cGU7XG4gICAgICBpZiAoZGF0YS5lcnJvci5tZXNzYWdlKSBhdHRyaWJ1dGVzWydlcnJvci5tZXNzYWdlJ10gPSBkYXRhLmVycm9yLm1lc3NhZ2U7XG4gICAgICBpZiAoZGF0YS5lcnJvci5zdGFjaykgYXR0cmlidXRlc1snZXJyb3Iuc3RhY2snXSA9IGRhdGEuZXJyb3Iuc3RhY2s7XG4gICAgfVxuXG4gICAgLy8gQXRyaWJ1dG9zIGN1c3RvbWl6YWRvc1xuICAgIGlmIChkYXRhLmF0dHJpYnV0ZXMpIHtcbiAgICAgIE9iamVjdC5lbnRyaWVzKGRhdGEuYXR0cmlidXRlcykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgYXR0cmlidXRlc1trZXldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIEZpbHRyYXIgdmFsb3JlcyB1bmRlZmluZWQvbnVsbFxuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QuZW50cmllcyhhdHRyaWJ1dGVzKS5maWx0ZXIoXG4gICAgICAgIChbLCB2YWx1ZV0pID0+IHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGxcbiAgICAgIClcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -92,7 +92,7 @@ const middyTelemetryMiddleware = (options) => ({
|
|
|
92
92
|
'service.name': serviceName,
|
|
93
93
|
'deployment.environment.name': environment,
|
|
94
94
|
});
|
|
95
|
-
const standardLogger = (0, telemetry_1.getStandardLogger)(spanResult
|
|
95
|
+
const standardLogger = (0, telemetry_1.getStandardLogger)(spanResult);
|
|
96
96
|
yield standardLogger.logInfo({
|
|
97
97
|
message: 'Request completed successfully',
|
|
98
98
|
serviceName,
|
|
@@ -140,7 +140,7 @@ const middyTelemetryMiddleware = (options) => ({
|
|
|
140
140
|
'service.name': serviceName,
|
|
141
141
|
'deployment.environment.name': environment,
|
|
142
142
|
});
|
|
143
|
-
const standardLogger = (0, telemetry_1.getStandardLogger)(spanResult
|
|
143
|
+
const standardLogger = (0, telemetry_1.getStandardLogger)(spanResult);
|
|
144
144
|
yield standardLogger.logError({
|
|
145
145
|
message: (error === null || error === void 0 ? void 0 : error.message) || 'Unknown error occurred',
|
|
146
146
|
error: error || undefined,
|
|
@@ -169,4 +169,4 @@ const middyTelemetryMiddleware = (options) => ({
|
|
|
169
169
|
}),
|
|
170
170
|
});
|
|
171
171
|
exports.middyTelemetryMiddleware = middyTelemetryMiddleware;
|
|
172
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zc3QvbWlkZHkvbWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFDQSw0Q0FBd0Q7QUFDeEQsNENBQWdGO0FBQ2hGLDJDQUF5QztBQUlsQyxNQUFNLHdCQUF3QixHQUFHLENBQ3RDLE9BQWdDLEVBQ1gsRUFBRSxDQUFDLENBQUM7SUFDekIsTUFBTSxFQUFFLENBQU8sT0FBTyxFQUFFLEVBQUU7UUFDeEIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxTQUFTLEdBQUcsd0JBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUVwQyxNQUFNLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxHQUFHLE9BQU8sQ0FBQztZQUMzQyxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDO1lBQ2hELE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQUM7WUFDaEQsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksYUFBYSxDQUFDO1lBQzlELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFZLENBQUM7WUFDbkMsTUFBTSxxQkFBcUIsR0FBRyxDQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxxQkFBcUIsS0FBSSxFQUFFLENBQUM7WUFDakUsTUFBTSxNQUFNLEdBQUcscUJBQXFCLENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQztZQUN6RCxJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxhQUFhLENBQUM7WUFDL0MsSUFBSSxLQUFLLEtBQUssTUFBTTtnQkFBRSxLQUFLLEdBQUcsWUFBWSxDQUFDO1lBRzNDLE1BQU0sY0FBYyxHQUFHLElBQUEsNkJBQWlCLEdBQUUsQ0FBQztZQUMzQyxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsU0FBUyxDQUFDO2dCQUMx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UDtnQkFDRCxXQUFXLEVBQUU7b0JBQ1gsVUFBVTtvQkFDVixPQUFPLEVBQUUsS0FBSztpQkFDZjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsU0FBUyxFQUFFLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFdBQVcsMENBQUUsSUFBSTtpQkFDcEM7YUFDRixDQUFDLENBQUM7WUFHSCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFBLHNCQUFVLEdBQUUsQ0FBQztRQUNyQixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsaURBQWlELEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDMUUsQ0FBQztJQUNILENBQUMsQ0FBQTtDQUNGLENBQUMsQ0FBQztBQWpOVSxRQUFBLHdCQUF3Qiw0QkFpTmxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1pZGR5IGZyb20gJ0BtaWRkeS9jb3JlJztcbmltcG9ydCB7IG1ldHJpY3MsIFZhbHVlVHlwZSB9IGZyb20gJ0BvcGVudGVsZW1ldHJ5L2FwaSc7XG5pbXBvcnQgeyBmb3JjZUZsdXNoLCBnZXRTdGFuZGFyZExvZ2dlciwgZ2V0U3RhbmRhcmRUcmFjZXIgfSBmcm9tICcuLi90ZWxlbWV0cnknO1xuaW1wb3J0IHsgcGVyZm9ybWFuY2UgfSBmcm9tICdwZXJmX2hvb2tzJztcblxuaW50ZXJmYWNlIE1pZGR5TWlkZGxld2FyZU9wdGlvbnMge31cblxuZXhwb3J0IGNvbnN0IG1pZGR5VGVsZW1ldHJ5TWlkZGxld2FyZSA9IChcbiAgb3B0aW9ucz86IE1pZGR5TWlkZGxld2FyZU9wdGlvbnNcbik6IG1pZGR5Lk1pZGRsZXdhcmVPYmogPT4gKHtcbiAgYmVmb3JlOiBhc3luYyAocmVxdWVzdCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdGFydFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcblxuICAgICAgY29uc3QgeyBjb250ZXh0OiBsYW1iZGFDb250ZXh0IH0gPSByZXF1ZXN0O1xuICAgICAgY29uc3QgZnVuY3Rpb25OYW1lID0gbGFtYmRhQ29udGV4dC5mdW5jdGlvbk5hbWU7XG4gICAgICBjb25zdCBpbnZvY2F0aW9uSWQgPSBsYW1iZGFDb250ZXh0LmF3c1JlcXVlc3RJZDtcbiAgICAgIGNvbnN0IHNlcnZpY2VOYW1lID0gcHJvY2Vzcy5lbnYuU0VSVklDRV9OQU1FIHx8ICdzc3Qtc2VydmljZSc7XG4gICAgICBjb25zdCBldmVudCA9IHJlcXVlc3QuZXZlbnQgYXMgYW55O1xuICAgICAgY29uc3QgcXVlcnlTdHJpbmdQYXJhbWV0ZXJzID0gZXZlbnQ/LnF1ZXJ5U3RyaW5nUGFyYW1ldGVycyB8fCB7fTtcbiAgICAgIGNvbnN0IG9yaWdpbiA9IHF1ZXJ5U3RyaW5nUGFyYW1ldGVycy5vcmlnaW4gfHwgJ3Vua25vd24nO1xuICAgICAgbGV0IHN0YWdlID0gcHJvY2Vzcy5lbnYuU1RBR0UgfHwgJ2RldmVsb3BtZW50JztcbiAgICAgIGlmIChzdGFnZSA9PT0gJ3Byb2QnKSBzdGFnZSA9ICdwcm9kdWN0aW9uJztcblxuICAgICAgLy8gVXNhciBTdGFuZGFyZFRyYWNlciBwYXJhIGNyaWFyIHNwYW4gY29tIGF0cmlidXRvcyBwYWRyb25pemFkb3NcbiAgICAgIGNvbnN0IHN0YW5kYXJkVHJhY2VyID0gZ2V0U3RhbmRhcmRUcmFjZXIoKTtcbiAgICAgIGNvbnN0IHNwYW5SZXN1bHQgPSBzdGFuZGFyZFRyYWNlci5zdGFydFNwYW4oe1xuICAgICAgICBzcGFuTmFtZTogZnVuY3Rpb25OYW1lLFxuICAgICAgICBzZXJ2aWNlTmFtZSxcbiAgICAgICAgZW52aXJvbm1lbnQ6IHN0YWdlLFxuICAgICAgICBleGVjdXRpb246IHtcbiAgICAgICAgICBmdW5jdGlvbk5hbWUsXG4gICAgICAgICAgaW52b2NhdGlvbklkLFxuICAgICAgICAgIGF3c1JlcXVlc3RJZDogaW52b2NhdGlvbklkLFxuICAgICAgICAgIG9yaWdpbixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBtZXRlciA9IG1ldHJpY3MuZ2V0TWV0ZXIob3JpZ2luKTtcblxuICAgICAgY29uc3QgZXhlY3V0aW9uVGltZUhpc3RvZ3JhbSA9IG1ldGVyLmNyZWF0ZUhpc3RvZ3JhbShcbiAgICAgICAgJ2xhbWJkYV9leGVjdXRpb25fZHVyYXRpb24nLFxuICAgICAgICB7XG4gICAgICAgICAgZGVzY3JpcHRpb246ICdUZW1wbyB0b3RhbCBkZSBleGVjdcOnw6NvIGRvIExhbWJkYSBlbSBtcycsXG4gICAgICAgICAgdW5pdDogJ21zJyxcbiAgICAgICAgICB2YWx1ZVR5cGU6IFZhbHVlVHlwZS5ET1VCTEUsXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICBjb25zdCBzdWNjZXNzQ291bnRlciA9IG1ldGVyLmNyZWF0ZUNvdW50ZXIoJ3RvdGFsX3N1Y2Nlc3NmdWxfcHVyY2hhc2VzJywge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ1RvdGFsIGRlIGNvbXByYXMgYmVtLXN1Y2VkaWRhcycsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGZhaWx1cmVDb3VudGVyID0gbWV0ZXIuY3JlYXRlQ291bnRlcigndG90YWxfZmFpbGVkX3B1cmNoYXNlcycsIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdUb3RhbCBkZSBjb21wcmFzIGNvbSBmYWxoYScsXG4gICAgICB9KTtcblxuICAgICAgKHJlcXVlc3QuY29udGV4dCBhcyBhbnkpLm90ZWwgPSB7XG4gICAgICAgIHNwYW5SZXN1bHQsXG4gICAgICAgIG1ldGVyLFxuICAgICAgICBleGVjdXRpb25UaW1lSGlzdG9ncmFtLFxuICAgICAgICBzdWNjZXNzQ291bnRlcixcbiAgICAgICAgZmFpbHVyZUNvdW50ZXIsXG4gICAgICAgIHN0YXJ0VGltZSxcbiAgICAgICAgc2VydmljZU5hbWUsXG4gICAgICAgIGVudmlyb25tZW50OiBzdGFnZSxcbiAgICAgICAgb3JpZ2luLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gbWlkZHlUZWxlbWV0cnlNaWRkbGV3YXJlIGJlZm9yZSBob29rOicsIGVycm9yKTtcbiAgICB9XG4gIH0sXG5cbiAgYWZ0ZXI6IGFzeW5jIChyZXF1ZXN0KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG90ZWxEYXRhID0gKHJlcXVlc3QuY29udGV4dCBhcyBhbnkpLm90ZWw7XG4gICAgICBpZiAoIW90ZWxEYXRhKSByZXR1cm47XG4gICAgICBjb25zdCBldmVudCA9IHJlcXVlc3QuZXZlbnQgYXMgYW55O1xuXG4gICAgICBjb25zdCBxdWVyeVN0cmluZ1BhcmFtZXRlcnMgPSBldmVudD8ucXVlcnlTdHJpbmdQYXJhbWV0ZXJzIHx8IHt9O1xuICAgICAgY29uc3Qgb3JpZ2luID0gcXVlcnlTdHJpbmdQYXJhbWV0ZXJzLm9yaWdpbiB8fCAndW5rbm93bic7XG5cbiAgICAgIGNvbnN0IHtcbiAgICAgICAgc3BhblJlc3VsdCxcbiAgICAgICAgc3VjY2Vzc0NvdW50ZXIsXG4gICAgICAgIGV4ZWN1dGlvblRpbWVIaXN0b2dyYW0sXG4gICAgICAgIHN0YXJ0VGltZSxcbiAgICAgICAgc2VydmljZU5hbWUsXG4gICAgICAgIGVudmlyb25tZW50LFxuICAgICAgfSA9IG90ZWxEYXRhO1xuXG4gICAgICAvLyBNYXJjYXIgc3BhbiBjb21vIHN1Y2Vzc28gdXNhbmRvIFN0YW5kYXJkVHJhY2VyXG4gICAgICBzcGFuUmVzdWx0LnNldFN1Y2Nlc3ModHJ1ZSk7XG5cbiAgICAgIC8vIE3DqXRyaWNhc1xuICAgICAgc3VjY2Vzc0NvdW50ZXIuYWRkKDEsIHtcbiAgICAgICAgb3JpZ2luLFxuICAgICAgICAnZnVuY3Rpb24ubmFtZSc6XG4gICAgICAgICAgc3BhblJlc3VsdC5zcGFuLmF0dHJpYnV0ZXM/LlsnZnVuY3Rpb24ubmFtZSddIHx8ICd1bmtub3duJyxcbiAgICAgICAgJ3NlcnZpY2UubmFtZSc6IHNlcnZpY2VOYW1lLFxuICAgICAgICAnZGVwbG95bWVudC5lbnZpcm9ubWVudC5uYW1lJzogZW52aXJvbm1lbnQsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgZHVyYXRpb25NcyA9IHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lO1xuXG4gICAgICBleGVjdXRpb25UaW1lSGlzdG9ncmFtLnJlY29yZChkdXJhdGlvbk1zLCB7XG4gICAgICAgIG9yaWdpbixcbiAgICAgICAgc3RhdHVzOiAnc3VjY2VzcycsXG4gICAgICAgICdmdW5jdGlvbi5uYW1lJzpcbiAgICAgICAgICBzcGFuUmVzdWx0LnNwYW4uYXR0cmlidXRlcz8uWydmdW5jdGlvbi5uYW1lJ10gfHwgJ3Vua25vd24nLFxuICAgICAgICAnc2VydmljZS5uYW1lJzogc2VydmljZU5hbWUsXG4gICAgICAgICdkZXBsb3ltZW50LmVudmlyb25tZW50Lm5hbWUnOiBlbnZpcm9ubWVudCxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBMb2cgZXN0cnV0dXJhZG8gZGUgc3VjZXNzb1xuICAgICAgY29uc3Qgc3RhbmRhcmRMb2dnZXIgPSBnZXRTdGFuZGFyZExvZ2dlcihzcGFuUmVzdWx0LnNwYW4uYXR0cmlidXRlcyk7XG5cbiAgICAgIGF3YWl0IHN0YW5kYXJkTG9nZ2VyLmxvZ0luZm8oe1xuICAgICAgICBtZXNzYWdlOiAnUmVxdWVzdCBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5JyxcbiAgICAgICAgc2VydmljZU5hbWUsXG4gICAgICAgIGVudmlyb25tZW50LFxuICAgICAgICBleGVjdXRpb246IHtcbiAgICAgICAgICBmdW5jdGlvbk5hbWU6IHNwYW5SZXN1bHQuc3Bhbi5hdHRyaWJ1dGVzPy5bJ2Z1bmN0aW9uLm5hbWUnXSBhcyBzdHJpbmcsXG4gICAgICAgICAgaW52b2NhdGlvbklkOiBzcGFuUmVzdWx0LnNwYW4uYXR0cmlidXRlcz8uW1xuICAgICAgICAgICAgJ2Z1bmN0aW9uLmludm9jYXRpb25faWQnXG4gICAgICAgICAgXSBhcyBzdHJpbmcsXG4gICAgICAgICAgb3JpZ2luLFxuICAgICAgICB9LFxuICAgICAgICBwZXJmb3JtYW5jZToge1xuICAgICAgICAgIGR1cmF0aW9uTXMsXG4gICAgICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBGaW5hbGl6YXIgc3BhblxuICAgICAgc3BhblJlc3VsdC5lbmQoKTtcbiAgICAgIGF3YWl0IGZvcmNlRmx1c2goKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gbWlkZHlUZWxlbWV0cnlNaWRkbGV3YXJlIGFmdGVyIGhvb2s6JywgZXJyb3IpO1xuICAgIH1cbiAgfSxcblxuICBvbkVycm9yOiBhc3luYyAocmVxdWVzdCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBvdGVsRGF0YSA9IChyZXF1ZXN0LmNvbnRleHQgYXMgYW55KS5vdGVsO1xuICAgICAgaWYgKCFvdGVsRGF0YSkgcmV0dXJuO1xuXG4gICAgICBjb25zdCB7XG4gICAgICAgIHNwYW5SZXN1bHQsXG4gICAgICAgIGZhaWx1cmVDb3VudGVyLFxuICAgICAgICBleGVjdXRpb25UaW1lSGlzdG9ncmFtLFxuICAgICAgICBzdGFydFRpbWUsXG4gICAgICAgIHNlcnZpY2VOYW1lLFxuICAgICAgICBlbnZpcm9ubWVudCxcbiAgICAgICAgb3JpZ2luLFxuICAgICAgfSA9IG90ZWxEYXRhO1xuICAgICAgY29uc3QgZXJyb3IgPSByZXF1ZXN0LmVycm9yO1xuXG4gICAgICAvLyBNYXJjYXIgc3BhbiBjb21vIGVycm8gdXNhbmRvIFN0YW5kYXJkVHJhY2VyXG4gICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgc3BhblJlc3VsdC5zZXRFcnJvcihlcnJvcik7XG4gICAgICB9XG5cbiAgICAgIC8vIE3DqXRyaWNhc1xuICAgICAgZmFpbHVyZUNvdW50ZXIuYWRkKDEsIHtcbiAgICAgICAgb3JpZ2luLFxuICAgICAgICBlcnJvcl90eXBlOiBlcnJvcj8uY29uc3RydWN0b3I/Lm5hbWUgfHwgJ1Vua25vd25FcnJvcicsXG4gICAgICAgICdmdW5jdGlvbi5uYW1lJzpcbiAgICAgICAgICBzcGFuUmVzdWx0LnNwYW4uYXR0cmlidXRlcz8uWydmdW5jdGlvbi5uYW1lJ10gfHwgJ3Vua25vd24nLFxuICAgICAgICAnc2VydmljZS5uYW1lJzogc2VydmljZU5hbWUsXG4gICAgICAgICdkZXBsb3ltZW50LmVudmlyb25tZW50Lm5hbWUnOiBlbnZpcm9ubWVudCxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBkdXJhdGlvbk1zID0gcGVyZm9ybWFuY2Uubm93KCkgLSBzdGFydFRpbWU7XG5cbiAgICAgIGV4ZWN1dGlvblRpbWVIaXN0b2dyYW0ucmVjb3JkKGR1cmF0aW9uTXMsIHtcbiAgICAgICAgb3JpZ2luLFxuICAgICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICAgICdmdW5jdGlvbi5uYW1lJzpcbiAgICAgICAgICBzcGFuUmVzdWx0LnNwYW4uYXR0cmlidXRlcz8uWydmdW5jdGlvbi5uYW1lJ10gfHwgJ3Vua25vd24nLFxuICAgICAgICAnc2VydmljZS5uYW1lJzogc2VydmljZU5hbWUsXG4gICAgICAgICdkZXBsb3ltZW50LmVudmlyb25tZW50Lm5hbWUnOiBlbnZpcm9ubWVudCxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBMb2cgZXN0cnV0dXJhZG8gZGUgZXJyb1xuICAgICAgY29uc3Qgc3RhbmRhcmRMb2dnZXIgPSBnZXRTdGFuZGFyZExvZ2dlcihzcGFuUmVzdWx0LnNwYW4uYXR0cmlidXRlcyk7XG5cbiAgICAgIGF3YWl0IHN0YW5kYXJkTG9nZ2VyLmxvZ0Vycm9yKHtcbiAgICAgICAgbWVzc2FnZTogZXJyb3I/Lm1lc3NhZ2UgfHwgJ1Vua25vd24gZXJyb3Igb2NjdXJyZWQnLFxuICAgICAgICBlcnJvcjogZXJyb3IgfHwgdW5kZWZpbmVkLFxuICAgICAgICBzZXJ2aWNlTmFtZSxcbiAgICAgICAgZW52aXJvbm1lbnQsXG4gICAgICAgIGV4ZWN1dGlvbjoge1xuICAgICAgICAgIGZ1bmN0aW9uTmFtZTogc3BhblJlc3VsdC5zcGFuLmF0dHJpYnV0ZXM/LlsnZnVuY3Rpb24ubmFtZSddIGFzIHN0cmluZyxcbiAgICAgICAgICBpbnZvY2F0aW9uSWQ6IHNwYW5SZXN1bHQuc3Bhbi5hdHRyaWJ1dGVzPy5bXG4gICAgICAgICAgICAnZnVuY3Rpb24uaW52b2NhdGlvbl9pZCdcbiAgICAgICAgICBdIGFzIHN0cmluZyxcbiAgICAgICAgICBhd3NSZXF1ZXN0SWQ6IHNwYW5SZXN1bHQuc3Bhbi5hdHRyaWJ1dGVzPy5bXG4gICAgICAgICAgICAnZnVuY3Rpb24uaW52b2NhdGlvbl9pZCdcbiAgICAgICAgICBdIGFzIHN0cmluZyxcbiAgICAgICAgICBvcmlnaW4sXG4gICAgICAgIH0sXG4gICAgICAgIHBlcmZvcm1hbmNlOiB7XG4gICAgICAgICAgZHVyYXRpb25NcyxcbiAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgIGVycm9yVHlwZTogZXJyb3I/LmNvbnN0cnVjdG9yPy5uYW1lLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIC8vIEZpbmFsaXphciBzcGFuXG4gICAgICBzcGFuUmVzdWx0LmVuZCgpO1xuICAgICAgYXdhaXQgZm9yY2VGbHVzaCgpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBtaWRkeVRlbGVtZXRyeU1pZGRsZXdhcmUgb25FcnJvciBob29rOicsIGVycm9yKTtcbiAgICB9XG4gIH0sXG59KTtcbiJdfQ==
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zc3QvbWlkZHkvbWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFDQSw0Q0FBd0Q7QUFDeEQsNENBQWdGO0FBQ2hGLDJDQUF5QztBQUlsQyxNQUFNLHdCQUF3QixHQUFHLENBQ3RDLE9BQWdDLEVBQ1gsRUFBRSxDQUFDLENBQUM7SUFDekIsTUFBTSxFQUFFLENBQU8sT0FBTyxFQUFFLEVBQUU7UUFDeEIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxTQUFTLEdBQUcsd0JBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUVwQyxNQUFNLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxHQUFHLE9BQU8sQ0FBQztZQUMzQyxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDO1lBQ2hELE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQUM7WUFDaEQsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksYUFBYSxDQUFDO1lBQzlELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFZLENBQUM7WUFDbkMsTUFBTSxxQkFBcUIsR0FBRyxDQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxxQkFBcUIsS0FBSSxFQUFFLENBQUM7WUFDakUsTUFBTSxNQUFNLEdBQUcscUJBQXFCLENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQztZQUN6RCxJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxhQUFhLENBQUM7WUFDL0MsSUFBSSxLQUFLLEtBQUssTUFBTTtnQkFBRSxLQUFLLEdBQUcsWUFBWSxDQUFDO1lBRzNDLE1BQU0sY0FBYyxHQUFHLElBQUEsNkJBQWlCLEdBQUUsQ0FBQztZQUMzQyxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsU0FBUyxDQUFDO2dCQUMx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RUFBRSxLQUFLO2lCQUNmO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxTQUFTLEVBQUUsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsV0FBVywwQ0FBRSxJQUFJO2lCQUNwQzthQUNGLENBQUMsQ0FBQztZQUdILFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUEsc0JBQVUsR0FBRSxDQUFDO1FBQ3JCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxpREFBaUQsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMxRSxDQUFDO0lBQ0gsQ0FBQyxDQUFBO0NBQ0YsQ0FBQyxDQUFDO0FBak5VLFFBQUEsd0JBQXdCLDRCQWlObEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbWlkZHkgZnJvbSAnQG1pZGR5L2NvcmUnO1xuaW1wb3J0IHsgbWV0cmljcywgVmFsdWVUeXBlIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvYXBpJztcbmltcG9ydCB7IGZvcmNlRmx1c2gsIGdldFN0YW5kYXJkTG9nZ2VyLCBnZXRTdGFuZGFyZFRyYWNlciB9IGZyb20gJy4uL3RlbGVtZXRyeSc7XG5pbXBvcnQgeyBwZXJmb3JtYW5jZSB9IGZyb20gJ3BlcmZfaG9va3MnO1xuXG5pbnRlcmZhY2UgTWlkZHlNaWRkbGV3YXJlT3B0aW9ucyB7fVxuXG5leHBvcnQgY29uc3QgbWlkZHlUZWxlbWV0cnlNaWRkbGV3YXJlID0gKFxuICBvcHRpb25zPzogTWlkZHlNaWRkbGV3YXJlT3B0aW9uc1xuKTogbWlkZHkuTWlkZGxld2FyZU9iaiA9PiAoe1xuICBiZWZvcmU6IGFzeW5jIChyZXF1ZXN0KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xuXG4gICAgICBjb25zdCB7IGNvbnRleHQ6IGxhbWJkYUNvbnRleHQgfSA9IHJlcXVlc3Q7XG4gICAgICBjb25zdCBmdW5jdGlvbk5hbWUgPSBsYW1iZGFDb250ZXh0LmZ1bmN0aW9uTmFtZTtcbiAgICAgIGNvbnN0IGludm9jYXRpb25JZCA9IGxhbWJkYUNvbnRleHQuYXdzUmVxdWVzdElkO1xuICAgICAgY29uc3Qgc2VydmljZU5hbWUgPSBwcm9jZXNzLmVudi5TRVJWSUNFX05BTUUgfHwgJ3NzdC1zZXJ2aWNlJztcbiAgICAgIGNvbnN0IGV2ZW50ID0gcmVxdWVzdC5ldmVudCBhcyBhbnk7XG4gICAgICBjb25zdCBxdWVyeVN0cmluZ1BhcmFtZXRlcnMgPSBldmVudD8ucXVlcnlTdHJpbmdQYXJhbWV0ZXJzIHx8IHt9O1xuICAgICAgY29uc3Qgb3JpZ2luID0gcXVlcnlTdHJpbmdQYXJhbWV0ZXJzLm9yaWdpbiB8fCAndW5rbm93bic7XG4gICAgICBsZXQgc3RhZ2UgPSBwcm9jZXNzLmVudi5TVEFHRSB8fCAnZGV2ZWxvcG1lbnQnO1xuICAgICAgaWYgKHN0YWdlID09PSAncHJvZCcpIHN0YWdlID0gJ3Byb2R1Y3Rpb24nO1xuXG4gICAgICAvLyBVc2FyIFN0YW5kYXJkVHJhY2VyIHBhcmEgY3JpYXIgc3BhbiBjb20gYXRyaWJ1dG9zIHBhZHJvbml6YWRvc1xuICAgICAgY29uc3Qgc3RhbmRhcmRUcmFjZXIgPSBnZXRTdGFuZGFyZFRyYWNlcigpO1xuICAgICAgY29uc3Qgc3BhblJlc3VsdCA9IHN0YW5kYXJkVHJhY2VyLnN0YXJ0U3Bhbih7XG4gICAgICAgIHNwYW5OYW1lOiBmdW5jdGlvbk5hbWUsXG4gICAgICAgIHNlcnZpY2VOYW1lLFxuICAgICAgICBlbnZpcm9ubWVudDogc3RhZ2UsXG4gICAgICAgIGV4ZWN1dGlvbjoge1xuICAgICAgICAgIGZ1bmN0aW9uTmFtZSxcbiAgICAgICAgICBpbnZvY2F0aW9uSWQsXG4gICAgICAgICAgYXdzUmVxdWVzdElkOiBpbnZvY2F0aW9uSWQsXG4gICAgICAgICAgb3JpZ2luLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IG1ldGVyID0gbWV0cmljcy5nZXRNZXRlcihvcmlnaW4pO1xuXG4gICAgICBjb25zdCBleGVjdXRpb25UaW1lSGlzdG9ncmFtID0gbWV0ZXIuY3JlYXRlSGlzdG9ncmFtKFxuICAgICAgICAnbGFtYmRhX2V4ZWN1dGlvbl9kdXJhdGlvbicsXG4gICAgICAgIHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ1RlbXBvIHRvdGFsIGRlIGV4ZWN1w6fDo28gZG8gTGFtYmRhIGVtIG1zJyxcbiAgICAgICAgICB1bml0OiAnbXMnLFxuICAgICAgICAgIHZhbHVlVHlwZTogVmFsdWVUeXBlLkRPVUJMRSxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIGNvbnN0IHN1Y2Nlc3NDb3VudGVyID0gbWV0ZXIuY3JlYXRlQ291bnRlcigndG90YWxfc3VjY2Vzc2Z1bF9wdXJjaGFzZXMnLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVG90YWwgZGUgY29tcHJhcyBiZW0tc3VjZWRpZGFzJyxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZmFpbHVyZUNvdW50ZXIgPSBtZXRlci5jcmVhdGVDb3VudGVyKCd0b3RhbF9mYWlsZWRfcHVyY2hhc2VzJywge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ1RvdGFsIGRlIGNvbXByYXMgY29tIGZhbGhhJyxcbiAgICAgIH0pO1xuXG4gICAgICAocmVxdWVzdC5jb250ZXh0IGFzIGFueSkub3RlbCA9IHtcbiAgICAgICAgc3BhblJlc3VsdCxcbiAgICAgICAgbWV0ZXIsXG4gICAgICAgIGV4ZWN1dGlvblRpbWVIaXN0b2dyYW0sXG4gICAgICAgIHN1Y2Nlc3NDb3VudGVyLFxuICAgICAgICBmYWlsdXJlQ291bnRlcixcbiAgICAgICAgc3RhcnRUaW1lLFxuICAgICAgICBzZXJ2aWNlTmFtZSxcbiAgICAgICAgZW52aXJvbm1lbnQ6IHN0YWdlLFxuICAgICAgICBvcmlnaW4sXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBtaWRkeVRlbGVtZXRyeU1pZGRsZXdhcmUgYmVmb3JlIGhvb2s6JywgZXJyb3IpO1xuICAgIH1cbiAgfSxcblxuICBhZnRlcjogYXN5bmMgKHJlcXVlc3QpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgb3RlbERhdGEgPSAocmVxdWVzdC5jb250ZXh0IGFzIGFueSkub3RlbDtcbiAgICAgIGlmICghb3RlbERhdGEpIHJldHVybjtcbiAgICAgIGNvbnN0IGV2ZW50ID0gcmVxdWVzdC5ldmVudCBhcyBhbnk7XG5cbiAgICAgIGNvbnN0IHF1ZXJ5U3RyaW5nUGFyYW1ldGVycyA9IGV2ZW50Py5xdWVyeVN0cmluZ1BhcmFtZXRlcnMgfHwge307XG4gICAgICBjb25zdCBvcmlnaW4gPSBxdWVyeVN0cmluZ1BhcmFtZXRlcnMub3JpZ2luIHx8ICd1bmtub3duJztcblxuICAgICAgY29uc3Qge1xuICAgICAgICBzcGFuUmVzdWx0LFxuICAgICAgICBzdWNjZXNzQ291bnRlcixcbiAgICAgICAgZXhlY3V0aW9uVGltZUhpc3RvZ3JhbSxcbiAgICAgICAgc3RhcnRUaW1lLFxuICAgICAgICBzZXJ2aWNlTmFtZSxcbiAgICAgICAgZW52aXJvbm1lbnQsXG4gICAgICB9ID0gb3RlbERhdGE7XG5cbiAgICAgIC8vIE1hcmNhciBzcGFuIGNvbW8gc3VjZXNzbyB1c2FuZG8gU3RhbmRhcmRUcmFjZXJcbiAgICAgIHNwYW5SZXN1bHQuc2V0U3VjY2Vzcyh0cnVlKTtcblxuICAgICAgLy8gTcOpdHJpY2FzXG4gICAgICBzdWNjZXNzQ291bnRlci5hZGQoMSwge1xuICAgICAgICBvcmlnaW4sXG4gICAgICAgICdmdW5jdGlvbi5uYW1lJzpcbiAgICAgICAgICBzcGFuUmVzdWx0LnNwYW4uYXR0cmlidXRlcz8uWydmdW5jdGlvbi5uYW1lJ10gfHwgJ3Vua25vd24nLFxuICAgICAgICAnc2VydmljZS5uYW1lJzogc2VydmljZU5hbWUsXG4gICAgICAgICdkZXBsb3ltZW50LmVudmlyb25tZW50Lm5hbWUnOiBlbnZpcm9ubWVudCxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBkdXJhdGlvbk1zID0gcGVyZm9ybWFuY2Uubm93KCkgLSBzdGFydFRpbWU7XG5cbiAgICAgIGV4ZWN1dGlvblRpbWVIaXN0b2dyYW0ucmVjb3JkKGR1cmF0aW9uTXMsIHtcbiAgICAgICAgb3JpZ2luLFxuICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJyxcbiAgICAgICAgJ2Z1bmN0aW9uLm5hbWUnOlxuICAgICAgICAgIHNwYW5SZXN1bHQuc3Bhbi5hdHRyaWJ1dGVzPy5bJ2Z1bmN0aW9uLm5hbWUnXSB8fCAndW5rbm93bicsXG4gICAgICAgICdzZXJ2aWNlLm5hbWUnOiBzZXJ2aWNlTmFtZSxcbiAgICAgICAgJ2RlcGxveW1lbnQuZW52aXJvbm1lbnQubmFtZSc6IGVudmlyb25tZW50LFxuICAgICAgfSk7XG5cbiAgICAgIC8vIExvZyBlc3RydXR1cmFkbyBkZSBzdWNlc3NvXG4gICAgICBjb25zdCBzdGFuZGFyZExvZ2dlciA9IGdldFN0YW5kYXJkTG9nZ2VyKHNwYW5SZXN1bHQpO1xuXG4gICAgICBhd2FpdCBzdGFuZGFyZExvZ2dlci5sb2dJbmZvKHtcbiAgICAgICAgbWVzc2FnZTogJ1JlcXVlc3QgY29tcGxldGVkIHN1Y2Nlc3NmdWxseScsXG4gICAgICAgIHNlcnZpY2VOYW1lLFxuICAgICAgICBlbnZpcm9ubWVudCxcbiAgICAgICAgZXhlY3V0aW9uOiB7XG4gICAgICAgICAgZnVuY3Rpb25OYW1lOiBzcGFuUmVzdWx0LnNwYW4uYXR0cmlidXRlcz8uWydmdW5jdGlvbi5uYW1lJ10gYXMgc3RyaW5nLFxuICAgICAgICAgIGludm9jYXRpb25JZDogc3BhblJlc3VsdC5zcGFuLmF0dHJpYnV0ZXM/LltcbiAgICAgICAgICAgICdmdW5jdGlvbi5pbnZvY2F0aW9uX2lkJ1xuICAgICAgICAgIF0gYXMgc3RyaW5nLFxuICAgICAgICAgIG9yaWdpbixcbiAgICAgICAgfSxcbiAgICAgICAgcGVyZm9ybWFuY2U6IHtcbiAgICAgICAgICBkdXJhdGlvbk1zLFxuICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgLy8gRmluYWxpemFyIHNwYW5cbiAgICAgIHNwYW5SZXN1bHQuZW5kKCk7XG4gICAgICBhd2FpdCBmb3JjZUZsdXNoKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIG1pZGR5VGVsZW1ldHJ5TWlkZGxld2FyZSBhZnRlciBob29rOicsIGVycm9yKTtcbiAgICB9XG4gIH0sXG5cbiAgb25FcnJvcjogYXN5bmMgKHJlcXVlc3QpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgb3RlbERhdGEgPSAocmVxdWVzdC5jb250ZXh0IGFzIGFueSkub3RlbDtcbiAgICAgIGlmICghb3RlbERhdGEpIHJldHVybjtcblxuICAgICAgY29uc3Qge1xuICAgICAgICBzcGFuUmVzdWx0LFxuICAgICAgICBmYWlsdXJlQ291bnRlcixcbiAgICAgICAgZXhlY3V0aW9uVGltZUhpc3RvZ3JhbSxcbiAgICAgICAgc3RhcnRUaW1lLFxuICAgICAgICBzZXJ2aWNlTmFtZSxcbiAgICAgICAgZW52aXJvbm1lbnQsXG4gICAgICAgIG9yaWdpbixcbiAgICAgIH0gPSBvdGVsRGF0YTtcbiAgICAgIGNvbnN0IGVycm9yID0gcmVxdWVzdC5lcnJvcjtcblxuICAgICAgLy8gTWFyY2FyIHNwYW4gY29tbyBlcnJvIHVzYW5kbyBTdGFuZGFyZFRyYWNlclxuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIHNwYW5SZXN1bHQuc2V0RXJyb3IoZXJyb3IpO1xuICAgICAgfVxuXG4gICAgICAvLyBNw6l0cmljYXNcbiAgICAgIGZhaWx1cmVDb3VudGVyLmFkZCgxLCB7XG4gICAgICAgIG9yaWdpbixcbiAgICAgICAgZXJyb3JfdHlwZTogZXJyb3I/LmNvbnN0cnVjdG9yPy5uYW1lIHx8ICdVbmtub3duRXJyb3InLFxuICAgICAgICAnZnVuY3Rpb24ubmFtZSc6XG4gICAgICAgICAgc3BhblJlc3VsdC5zcGFuLmF0dHJpYnV0ZXM/LlsnZnVuY3Rpb24ubmFtZSddIHx8ICd1bmtub3duJyxcbiAgICAgICAgJ3NlcnZpY2UubmFtZSc6IHNlcnZpY2VOYW1lLFxuICAgICAgICAnZGVwbG95bWVudC5lbnZpcm9ubWVudC5uYW1lJzogZW52aXJvbm1lbnQsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgZHVyYXRpb25NcyA9IHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lO1xuXG4gICAgICBleGVjdXRpb25UaW1lSGlzdG9ncmFtLnJlY29yZChkdXJhdGlvbk1zLCB7XG4gICAgICAgIG9yaWdpbixcbiAgICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgICAnZnVuY3Rpb24ubmFtZSc6XG4gICAgICAgICAgc3BhblJlc3VsdC5zcGFuLmF0dHJpYnV0ZXM/LlsnZnVuY3Rpb24ubmFtZSddIHx8ICd1bmtub3duJyxcbiAgICAgICAgJ3NlcnZpY2UubmFtZSc6IHNlcnZpY2VOYW1lLFxuICAgICAgICAnZGVwbG95bWVudC5lbnZpcm9ubWVudC5uYW1lJzogZW52aXJvbm1lbnQsXG4gICAgICB9KTtcblxuICAgICAgLy8gTG9nIGVzdHJ1dHVyYWRvIGRlIGVycm9cbiAgICAgIGNvbnN0IHN0YW5kYXJkTG9nZ2VyID0gZ2V0U3RhbmRhcmRMb2dnZXIoc3BhblJlc3VsdCk7XG5cbiAgICAgIGF3YWl0IHN0YW5kYXJkTG9nZ2VyLmxvZ0Vycm9yKHtcbiAgICAgICAgbWVzc2FnZTogZXJyb3I/Lm1lc3NhZ2UgfHwgJ1Vua25vd24gZXJyb3Igb2NjdXJyZWQnLFxuICAgICAgICBlcnJvcjogZXJyb3IgfHwgdW5kZWZpbmVkLFxuICAgICAgICBzZXJ2aWNlTmFtZSxcbiAgICAgICAgZW52aXJvbm1lbnQsXG4gICAgICAgIGV4ZWN1dGlvbjoge1xuICAgICAgICAgIGZ1bmN0aW9uTmFtZTogc3BhblJlc3VsdC5zcGFuLmF0dHJpYnV0ZXM/LlsnZnVuY3Rpb24ubmFtZSddIGFzIHN0cmluZyxcbiAgICAgICAgICBpbnZvY2F0aW9uSWQ6IHNwYW5SZXN1bHQuc3Bhbi5hdHRyaWJ1dGVzPy5bXG4gICAgICAgICAgICAnZnVuY3Rpb24uaW52b2NhdGlvbl9pZCdcbiAgICAgICAgICBdIGFzIHN0cmluZyxcbiAgICAgICAgICBhd3NSZXF1ZXN0SWQ6IHNwYW5SZXN1bHQuc3Bhbi5hdHRyaWJ1dGVzPy5bXG4gICAgICAgICAgICAnZnVuY3Rpb24uaW52b2NhdGlvbl9pZCdcbiAgICAgICAgICBdIGFzIHN0cmluZyxcbiAgICAgICAgICBvcmlnaW4sXG4gICAgICAgIH0sXG4gICAgICAgIHBlcmZvcm1hbmNlOiB7XG4gICAgICAgICAgZHVyYXRpb25NcyxcbiAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgIGVycm9yVHlwZTogZXJyb3I/LmNvbnN0cnVjdG9yPy5uYW1lLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIC8vIEZpbmFsaXphciBzcGFuXG4gICAgICBzcGFuUmVzdWx0LmVuZCgpO1xuICAgICAgYXdhaXQgZm9yY2VGbHVzaCgpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBtaWRkeVRlbGVtZXRyeU1pZGRsZXdhcmUgb25FcnJvciBob29rOicsIGVycm9yKTtcbiAgICB9XG4gIH0sXG59KTtcbiJdfQ==
|
package/dist/sst/telemetry.js
CHANGED
|
@@ -98,11 +98,12 @@ let standardLogger = null;
|
|
|
98
98
|
let standardTracer = null;
|
|
99
99
|
const getStandardLogger = (scopeAttributes) => {
|
|
100
100
|
if (!standardLogger) {
|
|
101
|
+
const tracer = (0, exports.getStandardTracer)();
|
|
101
102
|
const logger = loggerProvider.getLogger('sst-middleware-logger', '1.0.0', {
|
|
102
103
|
includeTraceContext: true,
|
|
103
104
|
scopeAttributes,
|
|
104
105
|
});
|
|
105
|
-
standardLogger = new core_1.StandardLogger(logger,
|
|
106
|
+
standardLogger = new core_1.StandardLogger(logger, tracer);
|
|
106
107
|
}
|
|
107
108
|
return standardLogger;
|
|
108
109
|
};
|
|
@@ -121,4 +122,4 @@ const forceFlush = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
121
122
|
yield loggerProvider.forceFlush();
|
|
122
123
|
});
|
|
123
124
|
exports.forceFlush = forceFlush;
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVsZW1ldHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NzdC90ZWxlbWV0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0RBQWtEO0FBQ2xELHNGQUE0RTtBQUM1RSwwRkFBK0U7QUFDL0Usb0ZBQXlFO0FBQ3pFLDREQUEyRTtBQUMzRSw4REFBZ0Q7QUFDaEQsb0VBQXNEO0FBQ3RELDhFQUF3RTtBQUN4RSw0Q0FBdUQ7QUFDdkQsa0NBQXlEO0FBRXpELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUM7QUFDakQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQztBQUVyRCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBRXhFLE1BQU0sT0FBTyxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsS0FBSyxDQUFDO0FBRWhFLE1BQU0sYUFBYSxHQUFHLElBQUksNENBQWlCLENBQUM7SUFDMUMsR0FBRyxFQUFFLEdBQUcsT0FBTyxTQUFTO0lBQ3hCLE9BQU8sRUFBRTtRQUNQLGFBQWEsRUFBRSxTQUFTLFNBQVMsRUFBRTtRQUNuQyxjQUFjLEVBQUUsa0JBQWtCO0tBQ25DO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsTUFBTSxjQUFjLEdBQUcsSUFBSSwrQ0FBa0IsQ0FBQztJQUM1QyxHQUFHLEVBQUUsR0FBRyxPQUFPLFVBQVU7SUFDekIsT0FBTyxFQUFFO1FBQ1AsYUFBYSxFQUFFLFNBQVMsU0FBUyxFQUFFO1FBQ25DLGNBQWMsRUFBRSxrQkFBa0I7S0FDbkM7Q0FDRixDQUFDLENBQUM7QUFFSCxNQUFNLFdBQVcsR0FBRyxJQUFJLHlDQUFlLENBQUM7SUFDdEMsR0FBRyxFQUFFLEdBQUcsT0FBTyxPQUFPO0lBQ3RCLE9BQU8sRUFBRTtRQUNQLGFBQWEsRUFBRSxTQUFTLFNBQVMsRUFBRTtRQUNuQyxjQUFjLEVBQUUsa0JBQWtCO0tBQ25DO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsTUFBTSxZQUFZLEdBQUcsSUFBSSwyQ0FBNkIsQ0FBQztJQUNyRCxRQUFRLEVBQUUsY0FBYztJQUN4QixvQkFBb0IsRUFBRSxJQUFJO0NBQzNCLENBQUMsQ0FBQztBQUdILE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLGFBQWEsQ0FBQztBQUM5RCxNQUFNLFFBQVEsR0FBRyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUM7SUFDdEMsQ0FBQyx3Q0FBaUIsQ0FBQyxFQUFFLFdBQVc7Q0FDakMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxjQUFjLEdBQUcsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztBQUM3RCxNQUFNLGtCQUFrQixHQUFHLElBQUksSUFBSSxDQUFDLHVCQUF1QixDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ3pFLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBRXpELE1BQU0sR0FBRyxHQUFHLElBQUksa0JBQU8sQ0FBQztJQUN0QixhQUFhO0lBQ2IsWUFBWSxFQUFFLFlBQW1CO0NBQ2xDLENBQUMsQ0FBQztBQUVILEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUdaLElBQUksY0FBYyxHQUEwQixJQUFJLENBQUM7QUFDakQsSUFBSSxjQUFjLEdBQTBCLElBQUksQ0FBQztBQUUxQyxNQUFNLGlCQUFpQixHQUFHLENBQy9CLGVBQTRCLEVBQ1osRUFBRTtJQUNsQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEIsTUFBTSxNQUFNLEdBQUcsSUFBQSx5QkFBaUIsR0FBRSxDQUFDO1FBQ25DLE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUMsdUJBQXVCLEVBQUUsT0FBTyxFQUFFO1lBQ3hFLG1CQUFtQixFQUFFLElBQUk7WUFDekIsZUFBZTtTQUNoQixDQUFDLENBQUM7UUFDSCxjQUFjLEdBQUcsSUFBSSxxQkFBYyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0QsT0FBTyxjQUFjLENBQUM7QUFDeEIsQ0FBQyxDQUFDO0FBWlcsUUFBQSxpQkFBaUIscUJBWTVCO0FBRUssTUFBTSxpQkFBaUIsR0FBRyxHQUFtQixFQUFFO0lBQ3BELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNwQixNQUFNLE1BQU0sR0FBRyxXQUFLLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNyRCxjQUFjLEdBQUcsSUFBSSxxQkFBYyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ0QsT0FBTyxjQUFjLENBQUM7QUFDeEIsQ0FBQyxDQUFDO0FBTlcsUUFBQSxpQkFBaUIscUJBTTVCO0FBRUssTUFBTSxVQUFVLEdBQUcsR0FBUyxFQUFFO0lBQ25DLE1BQU0sWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ2hDLE1BQU0sYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ2pDLE1BQU0sY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ3BDLENBQUMsQ0FBQSxDQUFDO0FBSlcsUUFBQSxVQUFVLGNBSXJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm9kZVNESyB9IGZyb20gJ0BvcGVudGVsZW1ldHJ5L3Nkay1ub2RlJztcbmltcG9ydCB7IE9UTFBUcmFjZUV4cG9ydGVyIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvZXhwb3J0ZXItdHJhY2Utb3RscC1odHRwJztcbmltcG9ydCB7IE9UTFBNZXRyaWNFeHBvcnRlciB9IGZyb20gJ0BvcGVudGVsZW1ldHJ5L2V4cG9ydGVyLW1ldHJpY3Mtb3RscC1odHRwJztcbmltcG9ydCB7IE9UTFBMb2dFeHBvcnRlciB9IGZyb20gJ0BvcGVudGVsZW1ldHJ5L2V4cG9ydGVyLWxvZ3Mtb3RscC1odHRwJztcbmltcG9ydCB7IFBlcmlvZGljRXhwb3J0aW5nTWV0cmljUmVhZGVyIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvc2RrLW1ldHJpY3MnO1xuaW1wb3J0ICogYXMgbG9ncyBmcm9tICdAb3BlbnRlbGVtZXRyeS9zZGstbG9ncyc7XG5pbXBvcnQgKiBhcyByZXNvdXJjZXMgZnJvbSAnQG9wZW50ZWxlbWV0cnkvcmVzb3VyY2VzJztcbmltcG9ydCB7IEFUVFJfU0VSVklDRV9OQU1FIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvc2VtYW50aWMtY29udmVudGlvbnMnO1xuaW1wb3J0IHsgQXR0cmlidXRlcywgdHJhY2UgfSBmcm9tICdAb3BlbnRlbGVtZXRyeS9hcGknO1xuaW1wb3J0IHsgU3RhbmRhcmRMb2dnZXIsIFN0YW5kYXJkVHJhY2VyIH0gZnJvbSAnLi4vY29yZSc7XG5cbmNvbnN0IHVzZXIgPSBwcm9jZXNzLmVudi5PVEVMX0VYUE9SVEVSX09UTFBfVVNFUjtcbmNvbnN0IHBhc3N3b3JkID0gcHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX1BBU1M7XG5cbmNvbnN0IGJhc2ljQXV0aCA9IEJ1ZmZlci5mcm9tKGAke3VzZXJ9OiR7cGFzc3dvcmR9YCkudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuXG5jb25zdCBiYXNlVXJsID0gYCR7cHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX0VORFBPSU5UfS92MWA7XG5cbmNvbnN0IHRyYWNlRXhwb3J0ZXIgPSBuZXcgT1RMUFRyYWNlRXhwb3J0ZXIoe1xuICB1cmw6IGAke2Jhc2VVcmx9L3RyYWNlc2AsXG4gIGhlYWRlcnM6IHtcbiAgICBBdXRob3JpemF0aW9uOiBgQmFzaWMgJHtiYXNpY0F1dGh9YCxcbiAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICB9LFxufSk7XG5cbmNvbnN0IG1ldHJpY0V4cG9ydGVyID0gbmV3IE9UTFBNZXRyaWNFeHBvcnRlcih7XG4gIHVybDogYCR7YmFzZVVybH0vbWV0cmljc2AsXG4gIGhlYWRlcnM6IHtcbiAgICBBdXRob3JpemF0aW9uOiBgQmFzaWMgJHtiYXNpY0F1dGh9YCxcbiAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICB9LFxufSk7XG5cbmNvbnN0IGxvZ0V4cG9ydGVyID0gbmV3IE9UTFBMb2dFeHBvcnRlcih7XG4gIHVybDogYCR7YmFzZVVybH0vbG9nc2AsXG4gIGhlYWRlcnM6IHtcbiAgICBBdXRob3JpemF0aW9uOiBgQmFzaWMgJHtiYXNpY0F1dGh9YCxcbiAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICB9LFxufSk7XG5cbmNvbnN0IG1ldHJpY1JlYWRlciA9IG5ldyBQZXJpb2RpY0V4cG9ydGluZ01ldHJpY1JlYWRlcih7XG4gIGV4cG9ydGVyOiBtZXRyaWNFeHBvcnRlcixcbiAgZXhwb3J0SW50ZXJ2YWxNaWxsaXM6IDEwMDAsXG59KTtcblxuLy8gQ29uZmlndXJhciBMb2dnZXJQcm92aWRlclxuY29uc3Qgc2VydmljZU5hbWUgPSBwcm9jZXNzLmVudi5TRVJWSUNFX05BTUUgfHwgJ3NzdC1zZXJ2aWNlJztcbmNvbnN0IHJlc291cmNlID0gbmV3IHJlc291cmNlcy5SZXNvdXJjZSh7XG4gIFtBVFRSX1NFUlZJQ0VfTkFNRV06IHNlcnZpY2VOYW1lLFxufSk7XG5cbmNvbnN0IGxvZ2dlclByb3ZpZGVyID0gbmV3IGxvZ3MuTG9nZ2VyUHJvdmlkZXIoeyByZXNvdXJjZSB9KTtcbmNvbnN0IGxvZ1JlY29yZFByb2Nlc3NvciA9IG5ldyBsb2dzLkJhdGNoTG9nUmVjb3JkUHJvY2Vzc29yKGxvZ0V4cG9ydGVyKTtcbmxvZ2dlclByb3ZpZGVyLmFkZExvZ1JlY29yZFByb2Nlc3Nvcihsb2dSZWNvcmRQcm9jZXNzb3IpO1xuXG5jb25zdCBzZGsgPSBuZXcgTm9kZVNESyh7XG4gIHRyYWNlRXhwb3J0ZXIsXG4gIG1ldHJpY1JlYWRlcjogbWV0cmljUmVhZGVyIGFzIGFueSwgLy8gVHlwZSBjb21wYXRpYmlsaXR5IHdvcmthcm91bmRcbn0pO1xuXG5zZGsuc3RhcnQoKTtcblxuLy8gQ3JpYXIgU3RhbmRhcmRMb2dnZXIgcGFyYSBzZXIgdXNhZG8gbm9zIG1pZGRsZXdhcmVzXG5sZXQgc3RhbmRhcmRMb2dnZXI6IFN0YW5kYXJkTG9nZ2VyIHwgbnVsbCA9IG51bGw7XG5sZXQgc3RhbmRhcmRUcmFjZXI6IFN0YW5kYXJkVHJhY2VyIHwgbnVsbCA9IG51bGw7XG5cbmV4cG9ydCBjb25zdCBnZXRTdGFuZGFyZExvZ2dlciA9IChcbiAgc2NvcGVBdHRyaWJ1dGVzPzogQXR0cmlidXRlc1xuKTogU3RhbmRhcmRMb2dnZXIgPT4ge1xuICBpZiAoIXN0YW5kYXJkTG9nZ2VyKSB7XG4gICAgY29uc3QgdHJhY2VyID0gZ2V0U3RhbmRhcmRUcmFjZXIoKTtcbiAgICBjb25zdCBsb2dnZXIgPSBsb2dnZXJQcm92aWRlci5nZXRMb2dnZXIoJ3NzdC1taWRkbGV3YXJlLWxvZ2dlcicsICcxLjAuMCcsIHtcbiAgICAgIGluY2x1ZGVUcmFjZUNvbnRleHQ6IHRydWUsXG4gICAgICBzY29wZUF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgc3RhbmRhcmRMb2dnZXIgPSBuZXcgU3RhbmRhcmRMb2dnZXIobG9nZ2VyLCB0cmFjZXIpO1xuICB9XG4gIHJldHVybiBzdGFuZGFyZExvZ2dlcjtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTdGFuZGFyZFRyYWNlciA9ICgpOiBTdGFuZGFyZFRyYWNlciA9PiB7XG4gIGlmICghc3RhbmRhcmRUcmFjZXIpIHtcbiAgICBjb25zdCB0cmFjZXIgPSB0cmFjZS5nZXRUcmFjZXIoc2VydmljZU5hbWUsICcxLjAuMCcpO1xuICAgIHN0YW5kYXJkVHJhY2VyID0gbmV3IFN0YW5kYXJkVHJhY2VyKHRyYWNlciwgc2VydmljZU5hbWUpO1xuICB9XG4gIHJldHVybiBzdGFuZGFyZFRyYWNlcjtcbn07XG5cbmV4cG9ydCBjb25zdCBmb3JjZUZsdXNoID0gYXN5bmMgKCkgPT4ge1xuICBhd2FpdCBtZXRyaWNSZWFkZXIuZm9yY2VGbHVzaCgpO1xuICBhd2FpdCB0cmFjZUV4cG9ydGVyLmZvcmNlRmx1c2goKTtcbiAgYXdhaXQgbG9nZ2VyUHJvdmlkZXIuZm9yY2VGbHVzaCgpO1xufTtcbiJdfQ==
|
package/dist/tsed/service.js
CHANGED
|
@@ -45,8 +45,7 @@ let TsedTelemetryService = class TsedTelemetryService {
|
|
|
45
45
|
return null;
|
|
46
46
|
}
|
|
47
47
|
const otelLogger = loggerProvider.getLogger('tsed-service-logger', '1.0.0');
|
|
48
|
-
|
|
49
|
-
this.standardLogger = new core_1.StandardLogger(otelLogger, serviceName);
|
|
48
|
+
this.standardLogger = new core_1.StandardLogger(otelLogger, this.getTracer());
|
|
50
49
|
}
|
|
51
50
|
return this.standardLogger;
|
|
52
51
|
}
|
|
@@ -147,4 +146,4 @@ exports.TsedTelemetryService = TsedTelemetryService = __decorate([
|
|
|
147
146
|
__param(0, (0, di_1.Inject)()),
|
|
148
147
|
__metadata("design:paramtypes", [config_1.TsedTelemetryProvider])
|
|
149
148
|
], TsedTelemetryService);
|
|
150
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90c2VkL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaUNBQTZEO0FBQzdELG1FQUE4RDtBQUM5RCxxQ0FBaUQ7QUFDakQsa0NBQXlEO0FBQ3pELDRDQUFvRDtBQWlCN0MsSUFBTSxvQkFBb0IsR0FBMUIsTUFBTSxvQkFBb0I7SUFLL0IsWUFFRSxpQkFBeUQ7UUFBeEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF1QjtRQUxuRCxtQkFBYyxHQUEwQixJQUFJLENBQUM7UUFDN0MsbUJBQWMsR0FBMEIsSUFBSSxDQUFDO0lBS2xELENBQUM7SUFFSSxTQUFTOztRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUM1QyxNQUFBLElBQUksQ0FBQyxJQUFJLDBDQUFFLE1BQU0sQ0FBQyxJQUFJLENBQ3BCLHFEQUFxRCxDQUN0RCxDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNsRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3BCLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUVELE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQ3pDLHFCQUFxQixFQUNyQixPQUFPLENBQ1IsQ0FBQztZQUdGLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLGNBQWMsQ0FBQztZQUMvRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUkscUJBQWMsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUVELE9B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QUEsV0FBTSxHQUFFLENBQUE7cUNBQzJCLDhCQUFxQjtHQVBoRCxvQkFBb0IsQ0F1SWhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBJbmplY3RDb250ZXh0IH0gZnJvbSAnQHRzZWQvZGknO1xuaW1wb3J0IHsgU2VydmVybGVzc0NvbnRleHQgfSBmcm9tICdAdHNlZC9wbGF0Zm9ybS1zZXJ2ZXJsZXNzJztcbmltcG9ydCB7IFRzZWRUZWxlbWV0cnlQcm92aWRlciB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7IFN0YW5kYXJkTG9nZ2VyLCBTdGFuZGFyZFRyYWNlciB9IGZyb20gJy4uL2NvcmUnO1xuaW1wb3J0IHsgdHJhY2UsIG1ldHJpY3MgfSBmcm9tICdAb3BlbnRlbGVtZXRyeS9hcGknO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yTG9nRGF0YSB7XG4gIGVycm9yOiBFcnJvcjtcbiAgY29udGV4dD86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIGFjY291bnRVc2VyVWlkPzogc3RyaW5nO1xuICBhY2NvdW50VWlkPzogc3RyaW5nO1xuICByZXF1ZXN0SWQ/OiBzdHJpbmc7XG4gIGVuZHBvaW50Pzogc3RyaW5nO1xuICBtZXRob2Q/OiBzdHJpbmc7XG4gIGNvbnRyb2xsZXI/OiBzdHJpbmc7XG4gIGNvbnRyb2xsZXJNZXRob2Q/OiBzdHJpbmc7XG4gIGFwcGxpY2F0aW9uVWlkPzogc3RyaW5nO1xuICBhd3NSZXF1ZXN0SWQ/OiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUc2VkVGVsZW1ldHJ5U2VydmljZSB7XG4gIEBJbmplY3RDb250ZXh0KCkgcHJvdGVjdGVkICRjdHg6IFNlcnZlcmxlc3NDb250ZXh0O1xuICBwcml2YXRlIHN0YW5kYXJkTG9nZ2VyOiBTdGFuZGFyZExvZ2dlciB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHN0YW5kYXJkVHJhY2VyOiBTdGFuZGFyZFRyYWNlciB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGVsZW1ldHJ5UHJvdmlkZXI6IFRzZWRUZWxlbWV0cnlQcm92aWRlclxuICApIHt9XG5cbiAgcHJpdmF0ZSBnZXRMb2dnZXIoKTogU3RhbmRhcmRMb2dnZXIgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMudGVsZW1ldHJ5UHJvdmlkZXIuaXNJbml0aWFsaXplZCgpKSB7XG4gICAgICB0aGlzLiRjdHg/LmxvZ2dlci53YXJuKFxuICAgICAgICAnW1RlbGVtZXRyeV0gVGVsZW1ldHJ5IG5vdCBpbml0aWFsaXplZCwgc2tpcHBpbmcgbG9nJ1xuICAgICAgKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5zdGFuZGFyZExvZ2dlcikge1xuICAgICAgY29uc3QgbG9nZ2VyUHJvdmlkZXIgPSB0aGlzLnRlbGVtZXRyeVByb3ZpZGVyLmdldExvZ2dlclByb3ZpZGVyKCk7XG4gICAgICBpZiAoIWxvZ2dlclByb3ZpZGVyKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBvdGVsTG9nZ2VyID0gbG9nZ2VyUHJvdmlkZXIuZ2V0TG9nZ2VyKFxuICAgICAgICAndHNlZC1zZXJ2aWNlLWxvZ2dlcicsXG4gICAgICAgICcxLjAuMCdcbiAgICAgICk7XG5cbiAgICAgIC8vIFBlZ2EgbyBzZXJ2aWNlIG5hbWUgZG8gYW1iaWVudGUgb3UgdXNhIGRlZmF1bHRcbiAgICAgIGNvbnN0IHNlcnZpY2VOYW1lID0gcHJvY2Vzcy5lbnYuU0VSVklDRV9OQU1FIHx8ICd0c2VkLXNlcnZpY2UnO1xuICAgICAgdGhpcy5zdGFuZGFyZExvZ2dlciA9IG5ldyBTdGFuZGFyZExvZ2dlcihvdGVsTG9nZ2VyLCBzZXJ2aWNlTmFtZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc3RhbmRhcmRMb2dnZXI7XG4gIH1cblxuICBwcml2YXRlIGdldFRyYWNlcigpOiBTdGFuZGFyZFRyYWNlciB8IG51bGwge1xuICAgIGlmICghdGhpcy50ZWxlbWV0cnlQcm92aWRlci5pc0luaXRpYWxpemVkKCkpIHtcbiAgICAgIHRoaXMuJGN0eD8ubG9nZ2VyLndhcm4oXG4gICAgICAgICdbVGVsZW1ldHJ5XSBUZWxlbWV0cnkgbm90IGluaXRpYWxpemVkLCBza2lwcGluZyB0cmFjZSdcbiAgICAgICk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuc3RhbmRhcmRUcmFjZXIpIHtcbiAgICAgIGNvbnN0IHRyYWNlclByb3ZpZGVyID0gdGhpcy50ZWxlbWV0cnlQcm92aWRlci5nZXRUcmFjZXJQcm92aWRlcigpO1xuICAgICAgaWYgKCF0cmFjZXJQcm92aWRlcikge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc2VydmljZU5hbWUgPSBwcm9jZXNzLmVudi5TRVJWSUNFX05BTUUgfHwgJ3RzZWQtc2VydmljZSc7XG4gICAgICBjb25zdCBvdGVsVHJhY2VyID0gdHJhY2UuZ2V0VHJhY2VyKHNlcnZpY2VOYW1lLCAnMS4wLjAnKTtcbiAgICAgIHRoaXMuc3RhbmRhcmRUcmFjZXIgPSBuZXcgU3RhbmRhcmRUcmFjZXIob3RlbFRyYWNlciwgc2VydmljZU5hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnN0YW5kYXJkVHJhY2VyO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGxvZ0Vycm9yKGRhdGE6IEVycm9yTG9nRGF0YSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGxvZ2dlciA9IHRoaXMuZ2V0TG9nZ2VyKCk7XG4gICAgaWYgKCFsb2dnZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgbGV0IHN0YWdlID0gcHJvY2Vzcy5lbnYuU1RBR0UgfHwgJ2RldmVsb3BtZW50JztcbiAgICAgIGlmIChzdGFnZSA9PT0gJ3Byb2QnKSBzdGFnZSA9ICdwcm9kdWN0aW9uJztcblxuICAgICAgdGhpcy4kY3R4Py5sb2dnZXIuaW5mbygnW1RlbGVtZXRyeV0gTG9nZ2luZyBlcnJvci4uLicpO1xuXG4gICAgICBhd2FpdCBsb2dnZXIubG9nRXJyb3Ioe1xuICAgICAgICBtZXNzYWdlOiBkYXRhLmVycm9yLm1lc3NhZ2UsXG4gICAgICAgIGVycm9yOiBkYXRhLmVycm9yLFxuICAgICAgICBzZXJ2aWNlTmFtZTogcHJvY2Vzcy5lbnYuU0VSVklDRV9OQU1FIHx8ICd0c2VkLXNlcnZpY2UnLFxuICAgICAgICBlbnZpcm9ubWVudDogc3RhZ2UsXG4gICAgICAgIGh0dHA6IHtcbiAgICAgICAgICBlbmRwb2ludDogZGF0YS5lbmRwb2ludCxcbiAgICAgICAgICBtZXRob2Q6IGRhdGEubWV0aG9kLFxuICAgICAgICAgIHN0YXR1c0NvZGU6IChkYXRhLmVycm9yIGFzIGFueSkuc3RhdHVzIHx8IDUwMCxcbiAgICAgICAgfSxcbiAgICAgICAgdXNlcjoge1xuICAgICAgICAgIGFjY291bnRVc2VyVWlkOiBkYXRhLmFjY291bnRVc2VyVWlkLFxuICAgICAgICAgIGFjY291bnRVaWQ6IGRhdGEuYWNjb3VudFVpZCxcbiAgICAgICAgICBhcHBsaWNhdGlvblVpZDogZGF0YS5hcHBsaWNhdGlvblVpZCxcbiAgICAgICAgfSxcbiAgICAgICAgZXhlY3V0aW9uOiB7XG4gICAgICAgICAgcmVxdWVzdElkOiBkYXRhLnJlcXVlc3RJZCxcbiAgICAgICAgICBhd3NSZXF1ZXN0SWQ6IGRhdGEuYXdzUmVxdWVzdElkLFxuICAgICAgICAgIGNvbnRyb2xsZXI6IGRhdGEuY29udHJvbGxlcixcbiAgICAgICAgICBjb250cm9sbGVyTWV0aG9kOiBkYXRhLmNvbnRyb2xsZXJNZXRob2QsXG4gICAgICAgIH0sXG4gICAgICAgIGNvbnRleHQ6IGRhdGEuY29udGV4dCxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBDUklUSUNBTDogRm9yY2UgZmx1c2ggdG8gZW5zdXJlIGxvZyBpcyBzZW50IGJlZm9yZSBMYW1iZGEgZnJlZXplc1xuICAgICAgdGhpcy4kY3R4Py5sb2dnZXIuaW5mbygnW1RlbGVtZXRyeV0gRm9yY2luZyBmbHVzaC4uLicpO1xuICAgICAgY29uc3QgZmx1c2hTdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuXG4gICAgICBhd2FpdCB0aGlzLnRlbGVtZXRyeVByb3ZpZGVyLmZvcmNlRmx1c2goKTtcblxuICAgICAgY29uc3QgZmx1c2hEdXJhdGlvbiA9IERhdGUubm93KCkgLSBmbHVzaFN0YXJ0VGltZTtcblxuICAgICAgdGhpcy4kY3R4Py5sb2dnZXIuaW5mbyh7XG4gICAgICAgICdUZWxlbWV0cnkgLSBMb2cgc2VudCBzdWNjZXNzZnVsbHknOiB7XG4gICAgICAgICAgZXJyb3JUeXBlOiBkYXRhLmVycm9yLm5hbWUsXG4gICAgICAgICAgbWVzc2FnZTogZGF0YS5lcnJvci5tZXNzYWdlLFxuICAgICAgICAgIGVuZHBvaW50OiBkYXRhLmVuZHBvaW50LFxuICAgICAgICAgIGNvbnRyb2xsZXI6IGRhdGEuY29udHJvbGxlcixcbiAgICAgICAgICBtZXRob2Q6IGRhdGEuY29udHJvbGxlck1ldGhvZCxcbiAgICAgICAgICBmbHVzaER1cmF0aW9uTXM6IGZsdXNoRHVyYXRpb24sXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy4kY3R4Py5sb2dnZXIuZXJyb3Ioe1xuICAgICAgICAnVGVsZW1ldHJ5IC0gQ1JJVElDQUwgRVJST1IgLSBGYWlsZWQgdG8gbG9nIGVycm9yJzoge1xuICAgICAgICAgIG9yaWdpbmFsRXJyb3I6IGRhdGEuZXJyb3IubWVzc2FnZSxcbiAgICAgICAgICB0ZWxlbWV0cnlFcnJvcjpcbiAgICAgICAgICAgIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKSxcbiAgICAgICAgICBzdGFjazogZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLnN0YWNrIDogdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICAvLyBEb24ndCByZS10aHJvdyB0byBhdm9pZCBicmVha2luZyB0aGUgYXBwbGljYXRpb24gZmxvd1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsb2dFeGNlcHRpb24oXG4gICAgZXJyb3I6IEVycm9yLFxuICAgIGNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubG9nRXJyb3Ioe1xuICAgICAgZXJyb3IsXG4gICAgICBjb250ZXh0LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90c2VkL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaUNBQTZEO0FBQzdELG1FQUE4RDtBQUM5RCxxQ0FBaUQ7QUFDakQsa0NBQXlEO0FBQ3pELDRDQUFvRDtBQWlCN0MsSUFBTSxvQkFBb0IsR0FBMUIsTUFBTSxvQkFBb0I7SUFLL0IsWUFFRSxpQkFBeUQ7UUFBeEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF1QjtRQUxuRCxtQkFBYyxHQUEwQixJQUFJLENBQUM7UUFDN0MsbUJBQWMsR0FBMEIsSUFBSSxDQUFDO0lBS2xELENBQUM7SUFFSSxTQUFTOztRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUM1QyxNQUFBLElBQUksQ0FBQyxJQUFJLDBDQUFFLE1BQU0sQ0FBQyxJQUFJLENBQ3BCLHFEQUFxRCxDQUN0RCxDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNsRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3BCLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUVELE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQ3pDLHFCQUFxQixFQUNyQixPQUFPLENBQ1IsQ0FBQztZQUdGLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxxQkFBYyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFHLENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFTyxTQUFTOztR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QXNJaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIEluamVjdENvbnRleHQgfSBmcm9tICdAdHNlZC9kaSc7XG5pbXBvcnQgeyBTZXJ2ZXJsZXNzQ29udGV4dCB9IGZyb20gJ0B0c2VkL3BsYXRmb3JtLXNlcnZlcmxlc3MnO1xuaW1wb3J0IHsgVHNlZFRlbGVtZXRyeVByb3ZpZGVyIH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHsgU3RhbmRhcmRMb2dnZXIsIFN0YW5kYXJkVHJhY2VyIH0gZnJvbSAnLi4vY29yZSc7XG5pbXBvcnQgeyB0cmFjZSwgbWV0cmljcyB9IGZyb20gJ0BvcGVudGVsZW1ldHJ5L2FwaSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JMb2dEYXRhIHtcbiAgZXJyb3I6IEVycm9yO1xuICBjb250ZXh0PzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgYWNjb3VudFVzZXJVaWQ/OiBzdHJpbmc7XG4gIGFjY291bnRVaWQ/OiBzdHJpbmc7XG4gIHJlcXVlc3RJZD86IHN0cmluZztcbiAgZW5kcG9pbnQ/OiBzdHJpbmc7XG4gIG1ldGhvZD86IHN0cmluZztcbiAgY29udHJvbGxlcj86IHN0cmluZztcbiAgY29udHJvbGxlck1ldGhvZD86IHN0cmluZztcbiAgYXBwbGljYXRpb25VaWQ/OiBzdHJpbmc7XG4gIGF3c1JlcXVlc3RJZD86IHN0cmluZztcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRzZWRUZWxlbWV0cnlTZXJ2aWNlIHtcbiAgQEluamVjdENvbnRleHQoKSBwcm90ZWN0ZWQgJGN0eDogU2VydmVybGVzc0NvbnRleHQ7XG4gIHByaXZhdGUgc3RhbmRhcmRMb2dnZXI6IFN0YW5kYXJkTG9nZ2VyIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgc3RhbmRhcmRUcmFjZXI6IFN0YW5kYXJkVHJhY2VyIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdCgpXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZWxlbWV0cnlQcm92aWRlcjogVHNlZFRlbGVtZXRyeVByb3ZpZGVyXG4gICkge31cblxuICBwcml2YXRlIGdldExvZ2dlcigpOiBTdGFuZGFyZExvZ2dlciB8IG51bGwge1xuICAgIGlmICghdGhpcy50ZWxlbWV0cnlQcm92aWRlci5pc0luaXRpYWxpemVkKCkpIHtcbiAgICAgIHRoaXMuJGN0eD8ubG9nZ2VyLndhcm4oXG4gICAgICAgICdbVGVsZW1ldHJ5XSBUZWxlbWV0cnkgbm90IGluaXRpYWxpemVkLCBza2lwcGluZyBsb2cnXG4gICAgICApO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnN0YW5kYXJkTG9nZ2VyKSB7XG4gICAgICBjb25zdCBsb2dnZXJQcm92aWRlciA9IHRoaXMudGVsZW1ldHJ5UHJvdmlkZXIuZ2V0TG9nZ2VyUHJvdmlkZXIoKTtcbiAgICAgIGlmICghbG9nZ2VyUHJvdmlkZXIpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG90ZWxMb2dnZXIgPSBsb2dnZXJQcm92aWRlci5nZXRMb2dnZXIoXG4gICAgICAgICd0c2VkLXNlcnZpY2UtbG9nZ2VyJyxcbiAgICAgICAgJzEuMC4wJ1xuICAgICAgKTtcblxuICAgICAgLy8gUGVnYSBvIHNlcnZpY2UgbmFtZSBkbyBhbWJpZW50ZSBvdSB1c2EgZGVmYXVsdFxuICAgICAgdGhpcy5zdGFuZGFyZExvZ2dlciA9IG5ldyBTdGFuZGFyZExvZ2dlcihvdGVsTG9nZ2VyLCB0aGlzLmdldFRyYWNlcigpISk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc3RhbmRhcmRMb2dnZXI7XG4gIH1cblxuICBwcml2YXRlIGdldFRyYWNlcigpOiBTdGFuZGFyZFRyYWNlciB8IG51bGwge1xuICAgIGlmICghdGhpcy50ZWxlbWV0cnlQcm92aWRlci5pc0luaXRpYWxpemVkKCkpIHtcbiAgICAgIHRoaXMuJGN0eD8ubG9nZ2VyLndhcm4oXG4gICAgICAgICdbVGVsZW1ldHJ5XSBUZWxlbWV0cnkgbm90IGluaXRpYWxpemVkLCBza2lwcGluZyB0cmFjZSdcbiAgICAgICk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuc3RhbmRhcmRUcmFjZXIpIHtcbiAgICAgIGNvbnN0IHRyYWNlclByb3ZpZGVyID0gdGhpcy50ZWxlbWV0cnlQcm92aWRlci5nZXRUcmFjZXJQcm92aWRlcigpO1xuICAgICAgaWYgKCF0cmFjZXJQcm92aWRlcikge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc2VydmljZU5hbWUgPSBwcm9jZXNzLmVudi5TRVJWSUNFX05BTUUgfHwgJ3RzZWQtc2VydmljZSc7XG4gICAgICBjb25zdCBvdGVsVHJhY2VyID0gdHJhY2UuZ2V0VHJhY2VyKHNlcnZpY2VOYW1lLCAnMS4wLjAnKTtcbiAgICAgIHRoaXMuc3RhbmRhcmRUcmFjZXIgPSBuZXcgU3RhbmRhcmRUcmFjZXIob3RlbFRyYWNlciwgc2VydmljZU5hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnN0YW5kYXJkVHJhY2VyO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGxvZ0Vycm9yKGRhdGE6IEVycm9yTG9nRGF0YSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGxvZ2dlciA9IHRoaXMuZ2V0TG9nZ2VyKCk7XG4gICAgaWYgKCFsb2dnZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgbGV0IHN0YWdlID0gcHJvY2Vzcy5lbnYuU1RBR0UgfHwgJ2RldmVsb3BtZW50JztcbiAgICAgIGlmIChzdGFnZSA9PT0gJ3Byb2QnKSBzdGFnZSA9ICdwcm9kdWN0aW9uJztcblxuICAgICAgdGhpcy4kY3R4Py5sb2dnZXIuaW5mbygnW1RlbGVtZXRyeV0gTG9nZ2luZyBlcnJvci4uLicpO1xuXG4gICAgICBhd2FpdCBsb2dnZXIubG9nRXJyb3Ioe1xuICAgICAgICBtZXNzYWdlOiBkYXRhLmVycm9yLm1lc3NhZ2UsXG4gICAgICAgIGVycm9yOiBkYXRhLmVycm9yLFxuICAgICAgICBzZXJ2aWNlTmFtZTogcHJvY2Vzcy5lbnYuU0VSVklDRV9OQU1FIHx8ICd0c2VkLXNlcnZpY2UnLFxuICAgICAgICBlbnZpcm9ubWVudDogc3RhZ2UsXG4gICAgICAgIGh0dHA6IHtcbiAgICAgICAgICBlbmRwb2ludDogZGF0YS5lbmRwb2ludCxcbiAgICAgICAgICBtZXRob2Q6IGRhdGEubWV0aG9kLFxuICAgICAgICAgIHN0YXR1c0NvZGU6IChkYXRhLmVycm9yIGFzIGFueSkuc3RhdHVzIHx8IDUwMCxcbiAgICAgICAgfSxcbiAgICAgICAgdXNlcjoge1xuICAgICAgICAgIGFjY291bnRVc2VyVWlkOiBkYXRhLmFjY291bnRVc2VyVWlkLFxuICAgICAgICAgIGFjY291bnRVaWQ6IGRhdGEuYWNjb3VudFVpZCxcbiAgICAgICAgICBhcHBsaWNhdGlvblVpZDogZGF0YS5hcHBsaWNhdGlvblVpZCxcbiAgICAgICAgfSxcbiAgICAgICAgZXhlY3V0aW9uOiB7XG4gICAgICAgICAgcmVxdWVzdElkOiBkYXRhLnJlcXVlc3RJZCxcbiAgICAgICAgICBhd3NSZXF1ZXN0SWQ6IGRhdGEuYXdzUmVxdWVzdElkLFxuICAgICAgICAgIGNvbnRyb2xsZXI6IGRhdGEuY29udHJvbGxlcixcbiAgICAgICAgICBjb250cm9sbGVyTWV0aG9kOiBkYXRhLmNvbnRyb2xsZXJNZXRob2QsXG4gICAgICAgIH0sXG4gICAgICAgIGNvbnRleHQ6IGRhdGEuY29udGV4dCxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBDUklUSUNBTDogRm9yY2UgZmx1c2ggdG8gZW5zdXJlIGxvZyBpcyBzZW50IGJlZm9yZSBMYW1iZGEgZnJlZXplc1xuICAgICAgdGhpcy4kY3R4Py5sb2dnZXIuaW5mbygnW1RlbGVtZXRyeV0gRm9yY2luZyBmbHVzaC4uLicpO1xuICAgICAgY29uc3QgZmx1c2hTdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuXG4gICAgICBhd2FpdCB0aGlzLnRlbGVtZXRyeVByb3ZpZGVyLmZvcmNlRmx1c2goKTtcblxuICAgICAgY29uc3QgZmx1c2hEdXJhdGlvbiA9IERhdGUubm93KCkgLSBmbHVzaFN0YXJ0VGltZTtcblxuICAgICAgdGhpcy4kY3R4Py5sb2dnZXIuaW5mbyh7XG4gICAgICAgICdUZWxlbWV0cnkgLSBMb2cgc2VudCBzdWNjZXNzZnVsbHknOiB7XG4gICAgICAgICAgZXJyb3JUeXBlOiBkYXRhLmVycm9yLm5hbWUsXG4gICAgICAgICAgbWVzc2FnZTogZGF0YS5lcnJvci5tZXNzYWdlLFxuICAgICAgICAgIGVuZHBvaW50OiBkYXRhLmVuZHBvaW50LFxuICAgICAgICAgIGNvbnRyb2xsZXI6IGRhdGEuY29udHJvbGxlcixcbiAgICAgICAgICBtZXRob2Q6IGRhdGEuY29udHJvbGxlck1ldGhvZCxcbiAgICAgICAgICBmbHVzaER1cmF0aW9uTXM6IGZsdXNoRHVyYXRpb24sXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy4kY3R4Py5sb2dnZXIuZXJyb3Ioe1xuICAgICAgICAnVGVsZW1ldHJ5IC0gQ1JJVElDQUwgRVJST1IgLSBGYWlsZWQgdG8gbG9nIGVycm9yJzoge1xuICAgICAgICAgIG9yaWdpbmFsRXJyb3I6IGRhdGEuZXJyb3IubWVzc2FnZSxcbiAgICAgICAgICB0ZWxlbWV0cnlFcnJvcjpcbiAgICAgICAgICAgIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKSxcbiAgICAgICAgICBzdGFjazogZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLnN0YWNrIDogdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICAvLyBEb24ndCByZS10aHJvdyB0byBhdm9pZCBicmVha2luZyB0aGUgYXBwbGljYXRpb24gZmxvd1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsb2dFeGNlcHRpb24oXG4gICAgZXJyb3I6IEVycm9yLFxuICAgIGNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubG9nRXJyb3Ioe1xuICAgICAgZXJyb3IsXG4gICAgICBjb250ZXh0LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|