@mecanizou/telemetry-hub 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/core/__tests__/logger-types.test.d.ts +1 -0
- package/dist/core/__tests__/logger-types.test.js +325 -0
- package/dist/core/__tests__/logger.test.d.ts +1 -0
- package/dist/core/__tests__/logger.test.js +337 -0
- package/dist/core/__tests__/tracer.test.d.ts +1 -0
- package/dist/core/__tests__/tracer.test.js +330 -0
- package/dist/core/index.d.ts +3 -1
- package/dist/core/index.js +4 -2
- package/dist/core/logger-types.js +3 -0
- package/dist/core/logger.d.ts +1 -1
- package/dist/core/logger.js +1 -1
- package/dist/core/tracer-types.d.ts +50 -0
- package/dist/core/tracer-types.js +3 -0
- package/dist/core/tracer.d.ts +10 -0
- package/dist/core/tracer.js +114 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.js +4 -2
- package/dist/sst/__tests__/telemetry.test.d.ts +1 -0
- package/dist/sst/__tests__/telemetry.test.js +138 -0
- package/dist/sst/index.js +1 -1
- package/dist/sst/middy/index.js +1 -1
- package/dist/sst/middy/middleware.d.ts +1 -1
- package/dist/sst/middy/middleware.js +54 -69
- package/dist/sst/telemetry.d.ts +2 -1
- package/dist/sst/telemetry.js +12 -2
- package/dist/telemetry/sst/middy/middleware.d.ts +1 -1
- package/dist/telemetry/sst/middy/middleware.js +4 -4
- package/dist/tsed/__tests__/config.test.d.ts +1 -0
- package/dist/tsed/__tests__/config.test.js +146 -0
- package/dist/tsed/__tests__/service.test.d.ts +1 -0
- package/dist/tsed/__tests__/service.test.js +63 -0
- package/dist/tsed/config.d.ts +6 -0
- package/dist/tsed/config.js +65 -12
- package/dist/tsed/index.d.ts +1 -0
- package/dist/tsed/index.js +2 -1
- package/dist/tsed/log-telemetry.js +125 -10
- package/dist/tsed/service.d.ts +2 -0
- package/dist/tsed/service.js +20 -1
- package/dist/tsed/sync-log-record-processor.js +1 -1
- package/package.json +1 -1
- package/dist/check-if-is-working.d.ts +0 -1
- package/dist/check-if-is-working.js +0 -8
- package/dist/core/types.js +0 -3
- package/dist/services/index.d.ts +0 -1
- package/dist/services/index.js +0 -18
- package/dist/services/telemetry/config.d.ts +0 -20
- package/dist/services/telemetry/config.js +0 -113
- package/dist/services/telemetry/external-service.d.ts +0 -20
- package/dist/services/telemetry/external-service.js +0 -69
- package/dist/services/telemetry/index.d.ts +0 -3
- package/dist/services/telemetry/index.js +0 -20
- package/dist/services/telemetry/sync-log-record-processor.d.ts +0 -11
- package/dist/services/telemetry/sync-log-record-processor.js +0 -74
- package/dist/telemetry.d.ts +0 -1
- package/dist/telemetry.js +0 -81
- /package/dist/core/{types.d.ts → logger-types.d.ts} +0 -0
package/dist/tsed/config.js
CHANGED
|
@@ -12,12 +12,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.TsedTelemetryProvider = void 0;
|
|
13
13
|
const sdk_logs_1 = require("@opentelemetry/sdk-logs");
|
|
14
14
|
const exporter_logs_otlp_http_1 = require("@opentelemetry/exporter-logs-otlp-http");
|
|
15
|
+
const exporter_trace_otlp_http_1 = require("@opentelemetry/exporter-trace-otlp-http");
|
|
16
|
+
const exporter_metrics_otlp_http_1 = require("@opentelemetry/exporter-metrics-otlp-http");
|
|
15
17
|
const resources_1 = require("@opentelemetry/resources");
|
|
16
18
|
const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
|
|
17
19
|
const sync_log_record_processor_1 = require("./sync-log-record-processor");
|
|
20
|
+
const sdk_trace_node_1 = require("@opentelemetry/sdk-trace-node");
|
|
21
|
+
const sdk_metrics_1 = require("@opentelemetry/sdk-metrics");
|
|
22
|
+
const api_1 = require("@opentelemetry/api");
|
|
18
23
|
class TsedTelemetryProvider {
|
|
19
24
|
constructor() {
|
|
20
25
|
this.loggerProvider = null;
|
|
26
|
+
this.tracerProvider = null;
|
|
27
|
+
this.meterProvider = null;
|
|
21
28
|
this.initialized = false;
|
|
22
29
|
if (!this.initialized && process.env.OTEL_EXPORTER_OTLP_ENDPOINT) {
|
|
23
30
|
const serviceName = process.env.SERVICE_NAME || 'unknown-service';
|
|
@@ -52,19 +59,45 @@ class TsedTelemetryProvider {
|
|
|
52
59
|
[semantic_conventions_1.ATTR_SERVICE_NAME]: config.serviceName || 'unknown-service',
|
|
53
60
|
[semantic_conventions_1.ATTR_SERVICE_VERSION]: config.serviceVersion || '1.0.0',
|
|
54
61
|
});
|
|
62
|
+
const basicAuth = `Basic ${Buffer.from(`${config.username}:${config.password}`).toString('base64')}`;
|
|
63
|
+
const headers = {
|
|
64
|
+
Authorization: basicAuth,
|
|
65
|
+
'Content-Type': 'application/json',
|
|
66
|
+
};
|
|
55
67
|
const logExporter = new exporter_logs_otlp_http_1.OTLPLogExporter({
|
|
56
68
|
url: `${config.endpoint}/v1/logs`,
|
|
57
|
-
headers
|
|
58
|
-
Authorization: `Basic ${Buffer.from(`${config.username}:${config.password}`).toString('base64')}`,
|
|
59
|
-
},
|
|
69
|
+
headers,
|
|
60
70
|
timeoutMillis: 5000,
|
|
61
71
|
concurrencyLimit: 1,
|
|
62
72
|
});
|
|
73
|
+
const traceExporter = new exporter_trace_otlp_http_1.OTLPTraceExporter({
|
|
74
|
+
url: `${config.endpoint}/v1/traces`,
|
|
75
|
+
headers,
|
|
76
|
+
});
|
|
77
|
+
const metricExporter = new exporter_metrics_otlp_http_1.OTLPMetricExporter({
|
|
78
|
+
url: `${config.endpoint}/v1/metrics`,
|
|
79
|
+
headers,
|
|
80
|
+
});
|
|
63
81
|
const syncProcessor = new sync_log_record_processor_1.TsedSyncLogRecordProcessor(logExporter);
|
|
64
82
|
this.loggerProvider = new sdk_logs_1.LoggerProvider({
|
|
65
83
|
resource,
|
|
66
84
|
});
|
|
67
85
|
this.loggerProvider.addLogRecordProcessor(syncProcessor);
|
|
86
|
+
this.tracerProvider = new sdk_trace_node_1.NodeTracerProvider({
|
|
87
|
+
resource,
|
|
88
|
+
});
|
|
89
|
+
this.tracerProvider.addSpanProcessor(new sdk_trace_node_1.BatchSpanProcessor(traceExporter));
|
|
90
|
+
this.tracerProvider.register();
|
|
91
|
+
api_1.trace.setGlobalTracerProvider(this.tracerProvider);
|
|
92
|
+
const metricReader = new sdk_metrics_1.PeriodicExportingMetricReader({
|
|
93
|
+
exporter: metricExporter,
|
|
94
|
+
exportIntervalMillis: 1000,
|
|
95
|
+
});
|
|
96
|
+
this.meterProvider = new sdk_metrics_1.MeterProvider({
|
|
97
|
+
resource,
|
|
98
|
+
readers: [metricReader],
|
|
99
|
+
});
|
|
100
|
+
api_1.metrics.setGlobalMeterProvider(this.meterProvider);
|
|
68
101
|
this.initialized = true;
|
|
69
102
|
console.log('[Telemetry] OpenTelemetry initialized successfully');
|
|
70
103
|
}
|
|
@@ -75,34 +108,54 @@ class TsedTelemetryProvider {
|
|
|
75
108
|
getLoggerProvider() {
|
|
76
109
|
return this.loggerProvider;
|
|
77
110
|
}
|
|
111
|
+
getTracerProvider() {
|
|
112
|
+
return this.tracerProvider;
|
|
113
|
+
}
|
|
114
|
+
getMeterProvider() {
|
|
115
|
+
return this.meterProvider;
|
|
116
|
+
}
|
|
78
117
|
isInitialized() {
|
|
79
118
|
return this.initialized;
|
|
80
119
|
}
|
|
81
120
|
forceFlush() {
|
|
82
121
|
return __awaiter(this, void 0, void 0, function* () {
|
|
83
|
-
if (!this.loggerProvider) {
|
|
84
|
-
console.warn('[Telemetry] forceFlush called but loggerProvider is null');
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
122
|
try {
|
|
88
123
|
const startTime = Date.now();
|
|
89
124
|
console.log('[Telemetry] Starting forceFlush...');
|
|
90
|
-
|
|
125
|
+
const promises = [];
|
|
126
|
+
if (this.loggerProvider) {
|
|
127
|
+
promises.push(this.loggerProvider.forceFlush());
|
|
128
|
+
}
|
|
129
|
+
if (this.tracerProvider) {
|
|
130
|
+
promises.push(this.tracerProvider.forceFlush());
|
|
131
|
+
}
|
|
132
|
+
if (this.meterProvider) {
|
|
133
|
+
promises.push(this.meterProvider.forceFlush());
|
|
134
|
+
}
|
|
135
|
+
yield Promise.all(promises);
|
|
91
136
|
const duration = Date.now() - startTime;
|
|
92
137
|
console.log(`[Telemetry] forceFlush completed successfully in ${duration}ms`);
|
|
93
138
|
}
|
|
94
139
|
catch (error) {
|
|
95
|
-
console.error('[Telemetry] Failed to force flush
|
|
140
|
+
console.error('[Telemetry] Failed to force flush telemetry:', error);
|
|
96
141
|
throw error;
|
|
97
142
|
}
|
|
98
143
|
});
|
|
99
144
|
}
|
|
100
145
|
shutdown() {
|
|
101
146
|
return __awaiter(this, void 0, void 0, function* () {
|
|
147
|
+
const promises = [];
|
|
102
148
|
if (this.loggerProvider) {
|
|
103
|
-
|
|
104
|
-
|
|
149
|
+
promises.push(this.loggerProvider.shutdown());
|
|
150
|
+
}
|
|
151
|
+
if (this.tracerProvider) {
|
|
152
|
+
promises.push(this.tracerProvider.shutdown());
|
|
153
|
+
}
|
|
154
|
+
if (this.meterProvider) {
|
|
155
|
+
promises.push(this.meterProvider.shutdown());
|
|
105
156
|
}
|
|
157
|
+
yield Promise.all(promises);
|
|
158
|
+
this.initialized = false;
|
|
106
159
|
});
|
|
107
160
|
}
|
|
108
161
|
$onDestroy() {
|
|
@@ -110,4 +163,4 @@ class TsedTelemetryProvider {
|
|
|
110
163
|
}
|
|
111
164
|
}
|
|
112
165
|
exports.TsedTelemetryProvider = TsedTelemetryProvider;
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RlbGVtZXRyeS90c2VkL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxzREFBeUQ7QUFDekQsb0ZBQXlFO0FBQ3pFLHdEQUFvRDtBQUNwRCw4RUFHNkM7QUFDN0MsMkVBQXlFO0FBV3pFLE1BQWEscUJBQXFCO0lBSWhDO1FBSFEsbUJBQWMsR0FBMEIsSUFBSSxDQUFDO1FBQzdDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBSTFCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztZQUNqRSxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksSUFBSSxpQkFBaUIsQ0FBQztZQUNsRSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUN2QyxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUNkLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixJQUFJLEVBQUU7Z0JBQ3ZELFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixJQUFJLEVBQUU7Z0JBQ25ELFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixJQUFJLEVBQUU7Z0JBQ25ELFdBQVcsRUFBRSxHQUFHLFdBQVcsSUFBSSxZQUFZLEVBQUU7Z0JBQzdDLGNBQWMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixJQUFJLE9BQU87Z0JBQzFELE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksS0FBSyxPQUFPO2FBQzlDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRU0sVUFBVSxDQUFDLE1BQTJCO1FBQzNDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLE9BQU87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QUFDO1FBQ0gsQ0FBQztLQUFBO0lBRVksUUFBUTs7WUFDbkIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3hCLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDckMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUM7S0FBQTtJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN6QixDQUFDO0NBQ0Y7QUE1SEQsc0RBNEhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9nZ2VyUHJvdmlkZXIgfSBmcm9tICdAb3BlbnRlbGVtZXRyeS9zZGstbG9ncyc7XHJcbmltcG9ydCB7IE9UTFBMb2dFeHBvcnRlciB9IGZyb20gJ0BvcGVudGVsZW1ldHJ5L2V4cG9ydGVyLWxvZ3Mtb3RscC1odHRwJztcclxuaW1wb3J0IHsgUmVzb3VyY2UgfSBmcm9tICdAb3BlbnRlbGVtZXRyeS9yZXNvdXJjZXMnO1xyXG5pbXBvcnQge1xyXG4gIEFUVFJfU0VSVklDRV9OQU1FLFxyXG4gIEFUVFJfU0VSVklDRV9WRVJTSU9OLFxyXG59IGZyb20gJ0BvcGVudGVsZW1ldHJ5L3NlbWFudGljLWNvbnZlbnRpb25zJztcclxuaW1wb3J0IHsgVHNlZFN5bmNMb2dSZWNvcmRQcm9jZXNzb3IgfSBmcm9tICcuL3N5bmMtbG9nLXJlY29yZC1wcm9jZXNzb3InO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUc2VkVGVsZW1ldHJ5Q29uZmlnIHtcclxuICBlbmRwb2ludDogc3RyaW5nO1xyXG4gIHVzZXJuYW1lOiBzdHJpbmc7XHJcbiAgcGFzc3dvcmQ6IHN0cmluZztcclxuICBzZXJ2aWNlTmFtZT86IHN0cmluZztcclxuICBzZXJ2aWNlVmVyc2lvbj86IHN0cmluZztcclxuICBlbmFibGVkPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRzZWRUZWxlbWV0cnlQcm92aWRlciB7XHJcbiAgcHJpdmF0ZSBsb2dnZXJQcm92aWRlcjogTG9nZ2VyUHJvdmlkZXIgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIGluaXRpYWxpemVkID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgLy8gQXV0by1pbml0aWFsaXplIHN5bmNocm9ub3VzbHkgd2l0aCBlbnZpcm9ubWVudCB2YXJpYWJsZXNcclxuICAgIGlmICghdGhpcy5pbml0aWFsaXplZCAmJiBwcm9jZXNzLmVudi5PVEVMX0VYUE9SVEVSX09UTFBfRU5EUE9JTlQpIHtcclxuICAgICAgY29uc3Qgc2VydmljZU5hbWUgPSBwcm9jZXNzLmVudi5TRVJWSUNFX05BTUUgfHwgJ3Vua25vd24tc2VydmljZSc7XHJcbiAgICAgIGNvbnN0IHNlcnZpY2VTdGFnZSA9IHByb2Nlc3MuZW52LlNUQUdFO1xyXG4gICAgICB0aGlzLmluaXRpYWxpemUoe1xyXG4gICAgICAgIGVuZHBvaW50OiBwcm9jZXNzLmVudi5PVEVMX0VYUE9SVEVSX09UTFBfRU5EUE9JTlQgfHwgJycsXHJcbiAgICAgICAgdXNlcm5hbWU6IHByb2Nlc3MuZW52Lk9URUxfRVhQT1JURVJfT1RMUF9VU0VSIHx8ICcnLFxyXG4gICAgICAgIHBhc3N3b3JkOiBwcm9jZXNzLmVudi5PVEVMX0VYUE9SVEVSX09UTFBfUEFTUyB8fCAnJyxcclxuICAgICAgICBzZXJ2aWNlTmFtZTogYCR7c2VydmljZU5hbWV9LSR7c2VydmljZVN0YWdlfWAsXHJcbiAgICAgICAgc2VydmljZVZlcnNpb246IHByb2Nlc3MuZW52Lm5wbV9wYWNrYWdlX3ZlcnNpb24gfHwgJzEuMC4wJyxcclxuICAgICAgICBlbmFibGVkOiBwcm9jZXNzLmVudi5PVEVMX0VOQUJMRUQgIT09ICdmYWxzZScsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGluaXRpYWxpemUoY29uZmlnOiBUc2VkVGVsZW1ldHJ5Q29uZmlnKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbmZpZy5lbmFibGVkID09PSBmYWxzZSkge1xyXG4gICAgICBjb25zb2xlLmxvZygnW1RlbGVtZXRyeV0gT3BlblRlbGVtZXRyeSBpcyBkaXNhYmxlZCcpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFjb25maWcuZW5kcG9pbnQgfHwgIWNvbmZpZy51c2VybmFtZSB8fCAhY29uZmlnLnBhc3N3b3JkKSB7XHJcbiAgICAgIC8vIE7Do28gbG9nYXIgZXJybyBzZSBlc3RpdmVybW9zIGVtIG1vZG8gZGUgYnVpbGRcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAndGVzdCcgJiZcclxuICAgICAgICBwcm9jZXNzLmVudi5PVEVMX0VYUE9SVEVSX09UTFBfRU5EUE9JTlRcclxuICAgICAgKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignW1RlbGVtZXRyeV0gTWlzc2luZyByZXF1aXJlZCBjb25maWd1cmF0aW9uJyk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIC8vIENyZWF0ZSByZXNvdXJjZSB3aXRoIHNlcnZpY2UgaW5mb3JtYXRpb25cclxuICAgICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgUmVzb3VyY2Uoe1xyXG4gICAgICAgIFtBVFRSX1NFUlZJQ0VfTkFNRV06IGNvbmZpZy5zZXJ2aWNlTmFtZSB8fCAndW5rbm93bi1zZXJ2aWNlJyxcclxuICAgICAgICBbQVRUUl9TRVJWSUNFX1ZFUlNJT05dOiBjb25maWcuc2VydmljZVZlcnNpb24gfHwgJzEuMC4wJyxcclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvLyBDcmVhdGUgT1RMUCBleHBvcnRlciB3aXRoIGF1dGhlbnRpY2F0aW9uIGFuZCB0aW1lb3V0IGNvbmZpZ3VyYXRpb25cclxuICAgICAgY29uc3QgbG9nRXhwb3J0ZXIgPSBuZXcgT1RMUExvZ0V4cG9ydGVyKHtcclxuICAgICAgICB1cmw6IGAke2NvbmZpZy5lbmRwb2ludH0vdjEvbG9nc2AsXHJcbiAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJhc2ljICR7QnVmZmVyLmZyb20oYCR7Y29uZmlnLnVzZXJuYW1lfToke2NvbmZpZy5wYXNzd29yZH1gKS50b1N0cmluZygnYmFzZTY0Jyl9YCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHRpbWVvdXRNaWxsaXM6IDUwMDAsIC8vIDUgc2Vjb25kIHRpbWVvdXQgZm9yIGV4cG9ydHNcclxuICAgICAgICBjb25jdXJyZW5jeUxpbWl0OiAxLCAvLyBQcm9jZXNzIG9uZSBleHBvcnQgYXQgYSB0aW1lXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgLy8gVXNlIGN1c3RvbSBTeW5jTG9nUmVjb3JkUHJvY2Vzc29yIGluc3RlYWQgb2YgU2ltcGxlTG9nUmVjb3JkUHJvY2Vzc29yXHJcbiAgICAgIC8vIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBhc3luYyBIVFRQIGV4cG9ydCBpcyBwcm9wZXJseSBhd2FpdGVkIGluIExhbWJkYVxyXG4gICAgICAvLyBlbnZpcm9ubWVudHMgd2hlcmUgZXhlY3V0aW9uIGNvbnRleHQgZnJlZXplcyBhZnRlciBoYW5kbGVyIHJldHVybnNcclxuICAgICAgY29uc3Qgc3luY1Byb2Nlc3NvciA9IG5ldyBUc2VkU3luY0xvZ1JlY29yZFByb2Nlc3Nvcihsb2dFeHBvcnRlcik7XHJcblxyXG4gICAgICAvLyBDcmVhdGUgbG9nZ2VyIHByb3ZpZGVyIHdpdGggcmVzb3VyY2UgYW5kIHByb2Nlc3NvcnNcclxuICAgICAgdGhpcy5sb2dnZXJQcm92aWRlciA9IG5ldyBMb2dnZXJQcm92aWRlcih7XHJcbiAgICAgICAgcmVzb3VyY2UsXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgLy8gQWRkIHByb2Nlc3NvciBhZnRlciBjcmVhdGlvblxyXG4gICAgICB0aGlzLmxvZ2dlclByb3ZpZGVyLmFkZExvZ1JlY29yZFByb2Nlc3NvcihzeW5jUHJvY2Vzc29yKTtcclxuXHJcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgICBjb25zb2xlLmxvZygnW1RlbGVtZXRyeV0gT3BlblRlbGVtZXRyeSBpbml0aWFsaXplZCBzdWNjZXNzZnVsbHknKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tUZWxlbWV0cnldIEZhaWxlZCB0byBpbml0aWFsaXplIE9wZW5UZWxlbWV0cnk6JywgZXJyb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldExvZ2dlclByb3ZpZGVyKCk6IExvZ2dlclByb3ZpZGVyIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5sb2dnZXJQcm92aWRlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc0luaXRpYWxpemVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGb3JjZSBmbHVzaCBhbGwgcGVuZGluZyBsb2dzIHRvIGVuc3VyZSB0aGV5IGFyZSBzZW50IGJlZm9yZSBMYW1iZGEgZnJlZXplc1xyXG4gICAqIFRoaXMgaXMgY3JpdGljYWwgaW4gQVdTIExhbWJkYSBlbnZpcm9ubWVudHMgd2hlcmUgZXhlY3V0aW9uIGNvbnRleHQgZnJlZXplc1xyXG4gICAqIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBoYW5kbGVyIHJldHVybnMsIHBvdGVudGlhbGx5IGJlZm9yZSBhc3luYyBIVFRQIHJlcXVlc3RzIGNvbXBsZXRlXHJcbiAgICovXHJcbiAgcHVibGljIGFzeW5jIGZvcmNlRmx1c2goKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMubG9nZ2VyUHJvdmlkZXIpIHtcclxuICAgICAgY29uc29sZS53YXJuKCdbVGVsZW1ldHJ5XSBmb3JjZUZsdXNoIGNhbGxlZCBidXQgbG9nZ2VyUHJvdmlkZXIgaXMgbnVsbCcpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3Qgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcclxuICAgICAgY29uc29sZS5sb2coJ1tUZWxlbWV0cnldIFN0YXJ0aW5nIGZvcmNlRmx1c2guLi4nKTtcclxuXHJcbiAgICAgIC8vIGZvcmNlRmx1c2ggZW5zdXJlcyBhbGwgcGVuZGluZyBsb2dzIGFyZSBleHBvcnRlZCBpbW1lZGlhdGVseVxyXG4gICAgICBhd2FpdCB0aGlzLmxvZ2dlclByb3ZpZGVyLmZvcmNlRmx1c2goKTtcclxuXHJcbiAgICAgIGNvbnN0IGR1cmF0aW9uID0gRGF0ZS5ub3coKSAtIHN0YXJ0VGltZTtcclxuICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgYFtUZWxlbWV0cnldIGZvcmNlRmx1c2ggY29tcGxldGVkIHN1Y2Nlc3NmdWxseSBpbiAke2R1cmF0aW9ufW1zYFxyXG4gICAgICApO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5lcnJvcignW1RlbGVtZXRyeV0gRmFpbGVkIHRvIGZvcmNlIGZsdXNoIGxvZ3M6JywgZXJyb3IpO1xyXG4gICAgICB0aHJvdyBlcnJvcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzaHV0ZG93bigpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLmxvZ2dlclByb3ZpZGVyKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMubG9nZ2VyUHJvdmlkZXIuc2h1dGRvd24oKTtcclxuICAgICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJG9uRGVzdHJveSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHJldHVybiB0aGlzLnNodXRkb3duKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RzZWQvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHNEQUF5RDtBQUN6RCxvRkFBeUU7QUFDekUsc0ZBQTRFO0FBQzVFLDBGQUErRTtBQUMvRSx3REFBb0Q7QUFDcEQsOEVBRzZDO0FBQzdDLDJFQUF5RTtBQUN6RSxrRUFHdUM7QUFDdkMsNERBR29DO0FBQ3BDLDRDQUFvRDtBQVdwRCxNQUFhLHFCQUFxQjtJQU1oQztRQUxRLG1CQUFjLEdBQTBCLElBQUksQ0FBQztRQUM3QyxtQkFBYyxHQUE4QixJQUFJLENBQUM7UUFDakQsa0JBQWEsR0FBeUIsSUFBSSxDQUFDO1FBQzNDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBSTFCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztZQUNqRSxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksSUFBSSxpQkFBaUIsQ0FBQztZQUNsRSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUN2QyxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUNkLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixJQUFJLEVBQUU7Z0JBQ3ZELFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixJQUFJLEVBQUU7Z0JBQ25ELFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixJQUFJLEVBQUU7Z0JBQ25ELFdBQVcsRUFBRSxHQUFHLFdBQVcsSUFBSSxZQUFZLEVBQUU7Z0JBQzdDLGNBQWMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixJQUFJLE9BQU87Z0JBQzFELE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksS0FB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USxFQUFFLENBQUM7SUFDekIsQ0FBQztDQUNGO0FBbk1ELHNEQW1NQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvZ2dlclByb3ZpZGVyIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvc2RrLWxvZ3MnO1xyXG5pbXBvcnQgeyBPVExQTG9nRXhwb3J0ZXIgfSBmcm9tICdAb3BlbnRlbGVtZXRyeS9leHBvcnRlci1sb2dzLW90bHAtaHR0cCc7XHJcbmltcG9ydCB7IE9UTFBUcmFjZUV4cG9ydGVyIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvZXhwb3J0ZXItdHJhY2Utb3RscC1odHRwJztcclxuaW1wb3J0IHsgT1RMUE1ldHJpY0V4cG9ydGVyIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvZXhwb3J0ZXItbWV0cmljcy1vdGxwLWh0dHAnO1xyXG5pbXBvcnQgeyBSZXNvdXJjZSB9IGZyb20gJ0BvcGVudGVsZW1ldHJ5L3Jlc291cmNlcyc7XHJcbmltcG9ydCB7XHJcbiAgQVRUUl9TRVJWSUNFX05BTUUsXHJcbiAgQVRUUl9TRVJWSUNFX1ZFUlNJT04sXHJcbn0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvc2VtYW50aWMtY29udmVudGlvbnMnO1xyXG5pbXBvcnQgeyBUc2VkU3luY0xvZ1JlY29yZFByb2Nlc3NvciB9IGZyb20gJy4vc3luYy1sb2ctcmVjb3JkLXByb2Nlc3Nvcic7XHJcbmltcG9ydCB7XHJcbiAgTm9kZVRyYWNlclByb3ZpZGVyLFxyXG4gIEJhdGNoU3BhblByb2Nlc3NvcixcclxufSBmcm9tICdAb3BlbnRlbGVtZXRyeS9zZGstdHJhY2Utbm9kZSc7XHJcbmltcG9ydCB7XHJcbiAgTWV0ZXJQcm92aWRlcixcclxuICBQZXJpb2RpY0V4cG9ydGluZ01ldHJpY1JlYWRlcixcclxufSBmcm9tICdAb3BlbnRlbGVtZXRyeS9zZGstbWV0cmljcyc7XHJcbmltcG9ydCB7IHRyYWNlLCBtZXRyaWNzIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvYXBpJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVHNlZFRlbGVtZXRyeUNvbmZpZyB7XHJcbiAgZW5kcG9pbnQ6IHN0cmluZztcclxuICB1c2VybmFtZTogc3RyaW5nO1xyXG4gIHBhc3N3b3JkOiBzdHJpbmc7XHJcbiAgc2VydmljZU5hbWU/OiBzdHJpbmc7XHJcbiAgc2VydmljZVZlcnNpb24/OiBzdHJpbmc7XHJcbiAgZW5hYmxlZD86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUc2VkVGVsZW1ldHJ5UHJvdmlkZXIge1xyXG4gIHByaXZhdGUgbG9nZ2VyUHJvdmlkZXI6IExvZ2dlclByb3ZpZGVyIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSB0cmFjZXJQcm92aWRlcjogTm9kZVRyYWNlclByb3ZpZGVyIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBtZXRlclByb3ZpZGVyOiBNZXRlclByb3ZpZGVyIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIC8vIEF1dG8taW5pdGlhbGl6ZSBzeW5jaHJvbm91c2x5IHdpdGggZW52aXJvbm1lbnQgdmFyaWFibGVzXHJcbiAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQgJiYgcHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX0VORFBPSU5UKSB7XHJcbiAgICAgIGNvbnN0IHNlcnZpY2VOYW1lID0gcHJvY2Vzcy5lbnYuU0VSVklDRV9OQU1FIHx8ICd1bmtub3duLXNlcnZpY2UnO1xyXG4gICAgICBjb25zdCBzZXJ2aWNlU3RhZ2UgPSBwcm9jZXNzLmVudi5TVEFHRTtcclxuICAgICAgdGhpcy5pbml0aWFsaXplKHtcclxuICAgICAgICBlbmRwb2ludDogcHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX0VORFBPSU5UIHx8ICcnLFxyXG4gICAgICAgIHVzZXJuYW1lOiBwcm9jZXNzLmVudi5PVEVMX0VYUE9SVEVSX09UTFBfVVNFUiB8fCAnJyxcclxuICAgICAgICBwYXNzd29yZDogcHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX1BBU1MgfHwgJycsXHJcbiAgICAgICAgc2VydmljZU5hbWU6IGAke3NlcnZpY2VOYW1lfS0ke3NlcnZpY2VTdGFnZX1gLFxyXG4gICAgICAgIHNlcnZpY2VWZXJzaW9uOiBwcm9jZXNzLmVudi5ucG1fcGFja2FnZV92ZXJzaW9uIHx8ICcxLjAuMCcsXHJcbiAgICAgICAgZW5hYmxlZDogcHJvY2Vzcy5lbnYuT1RFTF9FTkFCTEVEICE9PSAnZmFsc2UnLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbml0aWFsaXplKGNvbmZpZzogVHNlZFRlbGVtZXRyeUNvbmZpZyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb25maWcuZW5hYmxlZCA9PT0gZmFsc2UpIHtcclxuICAgICAgY29uc29sZS5sb2coJ1tUZWxlbWV0cnldIE9wZW5UZWxlbWV0cnkgaXMgZGlzYWJsZWQnKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghY29uZmlnLmVuZHBvaW50IHx8ICFjb25maWcudXNlcm5hbWUgfHwgIWNvbmZpZy5wYXNzd29yZCkge1xyXG4gICAgICAvLyBOw6NvIGxvZ2FyIGVycm8gc2UgZXN0aXZlcm1vcyBlbSBtb2RvIGRlIGJ1aWxkXHJcbiAgICAgIGlmIChcclxuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Rlc3QnICYmXHJcbiAgICAgICAgcHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX0VORFBPSU5UXHJcbiAgICAgICkge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1tUZWxlbWV0cnldIE1pc3NpbmcgcmVxdWlyZWQgY29uZmlndXJhdGlvbicpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0cnkge1xyXG4gICAgICAvLyBDcmVhdGUgcmVzb3VyY2Ugd2l0aCBzZXJ2aWNlIGluZm9ybWF0aW9uXHJcbiAgICAgIGNvbnN0IHJlc291cmNlID0gbmV3IFJlc291cmNlKHtcclxuICAgICAgICBbQVRUUl9TRVJWSUNFX05BTUVdOiBjb25maWcuc2VydmljZU5hbWUgfHwgJ3Vua25vd24tc2VydmljZScsXHJcbiAgICAgICAgW0FUVFJfU0VSVklDRV9WRVJTSU9OXTogY29uZmlnLnNlcnZpY2VWZXJzaW9uIHx8ICcxLjAuMCcsXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgY29uc3QgYmFzaWNBdXRoID0gYEJhc2ljICR7QnVmZmVyLmZyb20oYCR7Y29uZmlnLnVzZXJuYW1lfToke2NvbmZpZy5wYXNzd29yZH1gKS50b1N0cmluZygnYmFzZTY0Jyl9YDtcclxuICAgICAgY29uc3QgaGVhZGVycyA9IHtcclxuICAgICAgICBBdXRob3JpemF0aW9uOiBiYXNpY0F1dGgsXHJcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgfTtcclxuXHJcbiAgICAgIC8vIENyZWF0ZSBPVExQIGV4cG9ydGVycyB3aXRoIGF1dGhlbnRpY2F0aW9uIGFuZCB0aW1lb3V0IGNvbmZpZ3VyYXRpb25cclxuICAgICAgY29uc3QgbG9nRXhwb3J0ZXIgPSBuZXcgT1RMUExvZ0V4cG9ydGVyKHtcclxuICAgICAgICB1cmw6IGAke2NvbmZpZy5lbmRwb2ludH0vdjEvbG9nc2AsXHJcbiAgICAgICAgaGVhZGVycyxcclxuICAgICAgICB0aW1lb3V0TWlsbGlzOiA1MDAwLCAvLyA1IHNlY29uZCB0aW1lb3V0IGZvciBleHBvcnRzXHJcbiAgICAgICAgY29uY3VycmVuY3lMaW1pdDogMSwgLy8gUHJvY2VzcyBvbmUgZXhwb3J0IGF0IGEgdGltZVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGNvbnN0IHRyYWNlRXhwb3J0ZXIgPSBuZXcgT1RMUFRyYWNlRXhwb3J0ZXIoe1xyXG4gICAgICAgIHVybDogYCR7Y29uZmlnLmVuZHBvaW50fS92MS90cmFjZXNgLFxyXG4gICAgICAgIGhlYWRlcnMsXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgY29uc3QgbWV0cmljRXhwb3J0ZXIgPSBuZXcgT1RMUE1ldHJpY0V4cG9ydGVyKHtcclxuICAgICAgICB1cmw6IGAke2NvbmZpZy5lbmRwb2ludH0vdjEvbWV0cmljc2AsXHJcbiAgICAgICAgaGVhZGVycyxcclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvLyBVc2UgY3VzdG9tIFN5bmNMb2dSZWNvcmRQcm9jZXNzb3IgaW5zdGVhZCBvZiBTaW1wbGVMb2dSZWNvcmRQcm9jZXNzb3JcclxuICAgICAgLy8gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIGFzeW5jIEhUVFAgZXhwb3J0IGlzIHByb3Blcmx5IGF3YWl0ZWQgaW4gTGFtYmRhXHJcbiAgICAgIC8vIGVudmlyb25tZW50cyB3aGVyZSBleGVjdXRpb24gY29udGV4dCBmcmVlemVzIGFmdGVyIGhhbmRsZXIgcmV0dXJuc1xyXG4gICAgICBjb25zdCBzeW5jUHJvY2Vzc29yID0gbmV3IFRzZWRTeW5jTG9nUmVjb3JkUHJvY2Vzc29yKGxvZ0V4cG9ydGVyKTtcclxuXHJcbiAgICAgIC8vIENyZWF0ZSBsb2dnZXIgcHJvdmlkZXIgd2l0aCByZXNvdXJjZSBhbmQgcHJvY2Vzc29yc1xyXG4gICAgICB0aGlzLmxvZ2dlclByb3ZpZGVyID0gbmV3IExvZ2dlclByb3ZpZGVyKHtcclxuICAgICAgICByZXNvdXJjZSxcclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvLyBBZGQgcHJvY2Vzc29yIGFmdGVyIGNyZWF0aW9uXHJcbiAgICAgIHRoaXMubG9nZ2VyUHJvdmlkZXIuYWRkTG9nUmVjb3JkUHJvY2Vzc29yKHN5bmNQcm9jZXNzb3IpO1xyXG5cclxuICAgICAgLy8gQ3JlYXRlIHRyYWNlciBwcm92aWRlclxyXG4gICAgICB0aGlzLnRyYWNlclByb3ZpZGVyID0gbmV3IE5vZGVUcmFjZXJQcm92aWRlcih7XHJcbiAgICAgICAgcmVzb3VyY2UsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnRyYWNlclByb3ZpZGVyLmFkZFNwYW5Qcm9jZXNzb3IoXHJcbiAgICAgICAgbmV3IEJhdGNoU3BhblByb2Nlc3Nvcih0cmFjZUV4cG9ydGVyKVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnRyYWNlclByb3ZpZGVyLnJlZ2lzdGVyKCk7XHJcblxyXG4gICAgICAvLyBTZXQgZ2xvYmFsIHRyYWNlciBwcm92aWRlclxyXG4gICAgICB0cmFjZS5zZXRHbG9iYWxUcmFjZXJQcm92aWRlcih0aGlzLnRyYWNlclByb3ZpZGVyKTtcclxuXHJcbiAgICAgIC8vIENyZWF0ZSBtZXRlciBwcm92aWRlclxyXG4gICAgICBjb25zdCBtZXRyaWNSZWFkZXIgPSBuZXcgUGVyaW9kaWNFeHBvcnRpbmdNZXRyaWNSZWFkZXIoe1xyXG4gICAgICAgIGV4cG9ydGVyOiBtZXRyaWNFeHBvcnRlcixcclxuICAgICAgICBleHBvcnRJbnRlcnZhbE1pbGxpczogMTAwMCxcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLm1ldGVyUHJvdmlkZXIgPSBuZXcgTWV0ZXJQcm92aWRlcih7XHJcbiAgICAgICAgcmVzb3VyY2UsXHJcbiAgICAgICAgcmVhZGVyczogW21ldHJpY1JlYWRlcl0sXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgLy8gU2V0IGdsb2JhbCBtZXRlciBwcm92aWRlclxyXG4gICAgICBtZXRyaWNzLnNldEdsb2JhbE1ldGVyUHJvdmlkZXIodGhpcy5tZXRlclByb3ZpZGVyKTtcclxuXHJcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgICBjb25zb2xlLmxvZygnW1RlbGVtZXRyeV0gT3BlblRlbGVtZXRyeSBpbml0aWFsaXplZCBzdWNjZXNzZnVsbHknKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tUZWxlbWV0cnldIEZhaWxlZCB0byBpbml0aWFsaXplIE9wZW5UZWxlbWV0cnk6JywgZXJyb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldExvZ2dlclByb3ZpZGVyKCk6IExvZ2dlclByb3ZpZGVyIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5sb2dnZXJQcm92aWRlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRUcmFjZXJQcm92aWRlcigpOiBOb2RlVHJhY2VyUHJvdmlkZXIgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLnRyYWNlclByb3ZpZGVyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldE1ldGVyUHJvdmlkZXIoKTogTWV0ZXJQcm92aWRlciB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMubWV0ZXJQcm92aWRlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc0luaXRpYWxpemVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGb3JjZSBmbHVzaCBhbGwgcGVuZGluZyBsb2dzLCB0cmFjZXMgYW5kIG1ldHJpY3MgdG8gZW5zdXJlIHRoZXkgYXJlIHNlbnQgYmVmb3JlIExhbWJkYSBmcmVlemVzXHJcbiAgICogVGhpcyBpcyBjcml0aWNhbCBpbiBBV1MgTGFtYmRhIGVudmlyb25tZW50cyB3aGVyZSBleGVjdXRpb24gY29udGV4dCBmcmVlemVzXHJcbiAgICogaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGhhbmRsZXIgcmV0dXJucywgcG90ZW50aWFsbHkgYmVmb3JlIGFzeW5jIEhUVFAgcmVxdWVzdHMgY29tcGxldGVcclxuICAgKi9cclxuICBwdWJsaWMgYXN5bmMgZm9yY2VGbHVzaCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdbVGVsZW1ldHJ5XSBTdGFydGluZyBmb3JjZUZsdXNoLi4uJyk7XHJcblxyXG4gICAgICAvLyBGb3JjZSBmbHVzaCBhbGwgcHJvdmlkZXJzIGluIHBhcmFsbGVsXHJcbiAgICAgIGNvbnN0IHByb21pc2VzOiBQcm9taXNlPHZvaWQ+W10gPSBbXTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmxvZ2dlclByb3ZpZGVyKSB7XHJcbiAgICAgICAgcHJvbWlzZXMucHVzaCh0aGlzLmxvZ2dlclByb3ZpZGVyLmZvcmNlRmx1c2goKSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLnRyYWNlclByb3ZpZGVyKSB7XHJcbiAgICAgICAgcHJvbWlzZXMucHVzaCh0aGlzLnRyYWNlclByb3ZpZGVyLmZvcmNlRmx1c2goKSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLm1ldGVyUHJvdmlkZXIpIHtcclxuICAgICAgICBwcm9taXNlcy5wdXNoKHRoaXMubWV0ZXJQcm92aWRlci5mb3JjZUZsdXNoKCkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XHJcblxyXG4gICAgICBjb25zdCBkdXJhdGlvbiA9IERhdGUubm93KCkgLSBzdGFydFRpbWU7XHJcbiAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgIGBbVGVsZW1ldHJ5XSBmb3JjZUZsdXNoIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkgaW4gJHtkdXJhdGlvbn1tc2BcclxuICAgICAgKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tUZWxlbWV0cnldIEZhaWxlZCB0byBmb3JjZSBmbHVzaCB0ZWxlbWV0cnk6JywgZXJyb3IpO1xyXG4gICAgICB0aHJvdyBlcnJvcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzaHV0ZG93bigpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHByb21pc2VzOiBQcm9taXNlPHZvaWQ+W10gPSBbXTtcclxuXHJcbiAgICBpZiAodGhpcy5sb2dnZXJQcm92aWRlcikge1xyXG4gICAgICBwcm9taXNlcy5wdXNoKHRoaXMubG9nZ2VyUHJvdmlkZXIuc2h1dGRvd24oKSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMudHJhY2VyUHJvdmlkZXIpIHtcclxuICAgICAgcHJvbWlzZXMucHVzaCh0aGlzLnRyYWNlclByb3ZpZGVyLnNodXRkb3duKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLm1ldGVyUHJvdmlkZXIpIHtcclxuICAgICAgcHJvbWlzZXMucHVzaCh0aGlzLm1ldGVyUHJvdmlkZXIuc2h1dGRvd24oKSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xyXG4gICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgJG9uRGVzdHJveSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHJldHVybiB0aGlzLnNodXRkb3duKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
package/dist/tsed/index.d.ts
CHANGED
package/dist/tsed/index.js
CHANGED
|
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./config"), exports);
|
|
18
18
|
__exportStar(require("./service"), exports);
|
|
19
19
|
__exportStar(require("./log-telemetry"), exports);
|
|
20
|
-
|
|
20
|
+
__exportStar(require("./sync-log-record-processor"), exports);
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHNlZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXlCO0FBQ3pCLDRDQUEwQjtBQUMxQixrREFBZ0M7QUFDaEMsOERBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb25maWcnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xvZy10ZWxlbWV0cnknO1xyXG5leHBvcnQgKiBmcm9tICcuL3N5bmMtbG9nLXJlY29yZC1wcm9jZXNzb3InO1xyXG4iXX0=
|
|
@@ -11,20 +11,23 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.TsedLogTelemetry = TsedLogTelemetry;
|
|
13
13
|
const service_1 = require("./service");
|
|
14
|
+
const api_1 = require("@opentelemetry/api");
|
|
15
|
+
const perf_hooks_1 = require("perf_hooks");
|
|
14
16
|
function TsedLogTelemetry() {
|
|
15
17
|
return function (_target, _propertyKey, descriptor) {
|
|
16
18
|
const originalMethod = descriptor.value;
|
|
17
19
|
const methodName = _propertyKey;
|
|
18
20
|
descriptor.value = function (...args) {
|
|
19
21
|
return __awaiter(this, void 0, void 0, function* () {
|
|
20
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
22
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
23
|
+
const startTime = perf_hooks_1.performance.now();
|
|
21
24
|
const $ctx = args.find((arg) => (arg === null || arg === void 0 ? void 0 : arg.request) && (arg === null || arg === void 0 ? void 0 : arg.response));
|
|
22
25
|
let controllerName = 'UnknownController';
|
|
23
26
|
if (((_a = this === null || this === void 0 ? void 0 : this.constructor) === null || _a === void 0 ? void 0 : _a.name) && this.constructor.name !== 'Object') {
|
|
24
27
|
controllerName = this.constructor.name;
|
|
25
28
|
}
|
|
26
29
|
if (!$ctx) {
|
|
27
|
-
console.warn('[
|
|
30
|
+
console.warn('[TsedLogTelemetry] Context not found, executing without telemetry');
|
|
28
31
|
return yield originalMethod.apply(this, args);
|
|
29
32
|
}
|
|
30
33
|
let telemetryService;
|
|
@@ -35,28 +38,135 @@ function TsedLogTelemetry() {
|
|
|
35
38
|
}
|
|
36
39
|
catch (error) {
|
|
37
40
|
(_b = $ctx.logger) === null || _b === void 0 ? void 0 : _b.warn({
|
|
38
|
-
'
|
|
41
|
+
'TsedLogTelemetry - Failed to get TelemetryService from injector': error,
|
|
39
42
|
});
|
|
40
43
|
}
|
|
41
44
|
if (!telemetryService) {
|
|
42
|
-
(_c = $ctx.logger) === null || _c === void 0 ? void 0 : _c.warn('[
|
|
45
|
+
(_c = $ctx.logger) === null || _c === void 0 ? void 0 : _c.warn('[TsedLogTelemetry] TelemetryService not available, executing without telemetry');
|
|
43
46
|
return yield originalMethod.apply(this, args);
|
|
44
47
|
}
|
|
48
|
+
const request = $ctx.request;
|
|
49
|
+
const serviceName = process.env.SERVICE_NAME || 'tsed-service';
|
|
50
|
+
let stage = process.env.STAGE || 'development';
|
|
51
|
+
if (stage === 'prod')
|
|
52
|
+
stage = 'production';
|
|
53
|
+
const queryStringParameters = request.query || {};
|
|
54
|
+
const origin = queryStringParameters.origin || 'web';
|
|
55
|
+
const tracer = telemetryService.getTracer();
|
|
56
|
+
let spanResult = null;
|
|
57
|
+
if (tracer) {
|
|
58
|
+
spanResult = tracer.startSpan({
|
|
59
|
+
spanName: `${controllerName}.${methodName}`,
|
|
60
|
+
serviceName,
|
|
61
|
+
environment: stage,
|
|
62
|
+
execution: {
|
|
63
|
+
controller: controllerName,
|
|
64
|
+
controllerMethod: methodName,
|
|
65
|
+
requestId: $ctx.id,
|
|
66
|
+
awsRequestId: (_d = $ctx.context) === null || _d === void 0 ? void 0 : _d.awsRequestId,
|
|
67
|
+
origin,
|
|
68
|
+
},
|
|
69
|
+
http: {
|
|
70
|
+
method: request.method,
|
|
71
|
+
url: request.url,
|
|
72
|
+
endpoint: request.url,
|
|
73
|
+
},
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
const meter = api_1.metrics.getMeter(origin);
|
|
77
|
+
const executionTimeHistogram = meter.createHistogram('tsed_execution_duration', {
|
|
78
|
+
description: 'Tempo total de execução do método Tsed em ms',
|
|
79
|
+
unit: 'ms',
|
|
80
|
+
valueType: api_1.ValueType.DOUBLE,
|
|
81
|
+
});
|
|
82
|
+
const successCounter = meter.createCounter('tsed_successful_requests', {
|
|
83
|
+
description: 'Total de requisições bem-sucedidas',
|
|
84
|
+
});
|
|
85
|
+
const failureCounter = meter.createCounter('tsed_failed_requests', {
|
|
86
|
+
description: 'Total de requisições com falha',
|
|
87
|
+
});
|
|
45
88
|
try {
|
|
46
89
|
const result = yield originalMethod.apply(this, args);
|
|
90
|
+
const durationMs = perf_hooks_1.performance.now() - startTime;
|
|
91
|
+
if (spanResult) {
|
|
92
|
+
spanResult.setSuccess(true);
|
|
93
|
+
}
|
|
94
|
+
successCounter.add(1, {
|
|
95
|
+
origin,
|
|
96
|
+
controller: controllerName,
|
|
97
|
+
method: methodName,
|
|
98
|
+
'service.name': serviceName,
|
|
99
|
+
'deployment.environment.name': stage,
|
|
100
|
+
});
|
|
101
|
+
executionTimeHistogram.record(durationMs, {
|
|
102
|
+
origin,
|
|
103
|
+
status: 'success',
|
|
104
|
+
controller: controllerName,
|
|
105
|
+
method: methodName,
|
|
106
|
+
'service.name': serviceName,
|
|
107
|
+
'deployment.environment.name': stage,
|
|
108
|
+
});
|
|
109
|
+
const logger = telemetryService.getLogger();
|
|
110
|
+
if (logger) {
|
|
111
|
+
yield logger.logInfo({
|
|
112
|
+
message: 'Request completed successfully',
|
|
113
|
+
serviceName,
|
|
114
|
+
environment: stage,
|
|
115
|
+
execution: {
|
|
116
|
+
controller: controllerName,
|
|
117
|
+
controllerMethod: methodName,
|
|
118
|
+
requestId: $ctx.id,
|
|
119
|
+
awsRequestId: (_e = $ctx.context) === null || _e === void 0 ? void 0 : _e.awsRequestId,
|
|
120
|
+
origin,
|
|
121
|
+
},
|
|
122
|
+
http: {
|
|
123
|
+
method: request.method,
|
|
124
|
+
url: request.url,
|
|
125
|
+
endpoint: request.url,
|
|
126
|
+
statusCode: ((_f = $ctx.response) === null || _f === void 0 ? void 0 : _f.statusCode) || 200,
|
|
127
|
+
},
|
|
128
|
+
performance: {
|
|
129
|
+
durationMs,
|
|
130
|
+
success: true,
|
|
131
|
+
},
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
if (spanResult) {
|
|
135
|
+
spanResult.end();
|
|
136
|
+
}
|
|
137
|
+
yield telemetryService.telemetryProvider.forceFlush();
|
|
47
138
|
return result;
|
|
48
139
|
}
|
|
49
140
|
catch (error) {
|
|
50
|
-
|
|
51
|
-
|
|
141
|
+
const durationMs = perf_hooks_1.performance.now() - startTime;
|
|
142
|
+
(_g = $ctx.logger) === null || _g === void 0 ? void 0 : _g.info('Error caught, sending to telemetry');
|
|
143
|
+
if (spanResult) {
|
|
144
|
+
spanResult.setError(error);
|
|
145
|
+
}
|
|
146
|
+
failureCounter.add(1, {
|
|
147
|
+
origin,
|
|
148
|
+
error_type: ((_h = error === null || error === void 0 ? void 0 : error.constructor) === null || _h === void 0 ? void 0 : _h.name) || 'UnknownError',
|
|
149
|
+
controller: controllerName,
|
|
150
|
+
method: methodName,
|
|
151
|
+
'service.name': serviceName,
|
|
152
|
+
'deployment.environment.name': stage,
|
|
153
|
+
});
|
|
154
|
+
executionTimeHistogram.record(durationMs, {
|
|
155
|
+
origin,
|
|
156
|
+
status: 'error',
|
|
157
|
+
controller: controllerName,
|
|
158
|
+
method: methodName,
|
|
159
|
+
'service.name': serviceName,
|
|
160
|
+
'deployment.environment.name': stage,
|
|
161
|
+
});
|
|
52
162
|
let userInfo = {};
|
|
53
163
|
try {
|
|
54
164
|
if (typeof LoggedUserIdentifier !== 'undefined') {
|
|
55
165
|
const { loggedUser } = LoggedUserIdentifier.use($ctx);
|
|
56
166
|
userInfo = {
|
|
57
167
|
accountUserUid: loggedUser === null || loggedUser === void 0 ? void 0 : loggedUser.uid,
|
|
58
|
-
accountUid: (
|
|
59
|
-
applicationUid: (
|
|
168
|
+
accountUid: (_j = loggedUser === null || loggedUser === void 0 ? void 0 : loggedUser.account) === null || _j === void 0 ? void 0 : _j.uid,
|
|
169
|
+
applicationUid: (_k = loggedUser === null || loggedUser === void 0 ? void 0 : loggedUser.application) === null || _k === void 0 ? void 0 : _k.uid,
|
|
60
170
|
};
|
|
61
171
|
}
|
|
62
172
|
}
|
|
@@ -69,7 +179,12 @@ function TsedLogTelemetry() {
|
|
|
69
179
|
body: request.body,
|
|
70
180
|
params: request.params,
|
|
71
181
|
query: request.query,
|
|
72
|
-
|
|
182
|
+
errorType: (_l = error === null || error === void 0 ? void 0 : error.constructor) === null || _l === void 0 ? void 0 : _l.name,
|
|
183
|
+
} }, userInfo), { requestId: $ctx.id, awsRequestId: (_m = $ctx.context) === null || _m === void 0 ? void 0 : _m.awsRequestId, endpoint: request.url, method: request.method, controller: controllerName, controllerMethod: methodName }));
|
|
184
|
+
if (spanResult) {
|
|
185
|
+
spanResult.end();
|
|
186
|
+
}
|
|
187
|
+
yield telemetryService.telemetryProvider.forceFlush();
|
|
73
188
|
$ctx.logger.info('Error sent to telemetry');
|
|
74
189
|
throw error;
|
|
75
190
|
}
|
|
@@ -78,4 +193,4 @@ function TsedLogTelemetry() {
|
|
|
78
193
|
return descriptor;
|
|
79
194
|
};
|
|
80
195
|
}
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLXRlbGVtZXRyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZWxlbWV0cnkvdHNlZC9sb2ctdGVsZW1ldHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBWUEsNENBdUdDO0FBekdELHVDQUFpRDtBQUVqRCxTQUFnQixnQkFBZ0I7SUFDOUIsT0FBTyxVQUNMLE9BQVksRUFDWixZQUFvQixFQUNwQixVQUE4QjtRQUU5QixNQUFNLGNBQWMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQ3hDLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQztRQUVoQyxVQUFVLENBQUMsS0FBSyxHQUFHLFVBQTJCLEdBQUcsSUFBVzs7O2dCQUUxRCxNQUFNLElBQUksR0FBc0IsSUFBSSxDQUFDLElBQUksQ0FDdkMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLE9BQU8sTUFBSSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsUUFBUSxDQUFBLENBQ3ZDLENBQUM7Z0JBR0YsSUFBSSxjQUFjLEdBQUcsbUJBQW1CLENBQUM7Z0JBRXpDLElBQUksQ0FBQSxNQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxXQUFXLDBDQUFFLElBQUksS0FBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztvQkFDbEUsY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2dCQUN6QyxDQUFDO2dCQUVELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDVixPQUFPLENBQUMsSUFBSSxDQUNWLCtEQUErRCxDQUNoRSxDQUFDO29CQUNGLE9BQU8sTUFBTSxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDaEQsQ0FBQztnQkFHRCxJQUFJLGdCQUFrRCxDQUFDO2dC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b3MgYXV0b21hdGljYW1lbnRlIGUgZW52aWEgcGFyYSB0ZWxlbWV0cmlhXHJcbiAqIFVzbyBubyBjb250cm9sbGVyOlxyXG4gKlxyXG4gKiBATG9nVGVsZW1ldHJ5KClcclxuICogYXN5bmMgZ2V0Q2hlY2tvdXQoQENvbnRleHQoKSAkY3R4OiBTZXJ2ZXJsZXNzQ29udGV4dCwgLi4uKSB7XHJcbiAqICAgcmV0dXJuIGF3YWl0IHRoaXMuc2VydmljZS5leGVjdXRlKHBhcmFtcyk7XHJcbiAqIH1cclxuICovXHJcbmltcG9ydCB7IFNlcnZlcmxlc3NDb250ZXh0IH0gZnJvbSAnQHRzZWQvcGxhdGZvcm0tc2VydmVybGVzcyc7XHJcbmltcG9ydCB7IFRzZWRUZWxlbWV0cnlTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBUc2VkTG9nVGVsZW1ldHJ5KCkge1xyXG4gIHJldHVybiBmdW5jdGlvbiAoXHJcbiAgICBfdGFyZ2V0OiBhbnksXHJcbiAgICBfcHJvcGVydHlLZXk6IHN0cmluZyxcclxuICAgIGRlc2NyaXB0b3I6IFByb3BlcnR5RGVzY3JpcHRvclxyXG4gICkge1xyXG4gICAgY29uc3Qgb3JpZ2luYWxNZXRob2QgPSBkZXNjcmlwdG9yLnZhbHVlO1xyXG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IF9wcm9wZXJ0eUtleTtcclxuXHJcbiAgICBkZXNjcmlwdG9yLnZhbHVlID0gYXN5bmMgZnVuY3Rpb24gKHRoaXM6IGFueSwgLi4uYXJnczogYW55W10pIHtcclxuICAgICAgLy8gRW5jb250cmFyIG8gY29udGV4dG9cclxuICAgICAgY29uc3QgJGN0eDogU2VydmVybGVzc0NvbnRleHQgPSBhcmdzLmZpbmQoXHJcbiAgICAgICAgKGFyZykgPT4gYXJnPy5yZXF1ZXN0ICYmIGFyZz8ucmVzcG9uc2VcclxuICAgICAgKTtcclxuXHJcbiAgICAgIC8vIENhcHR1cmFyIG8gbm9tZSBkbyBjb250cm9sbGVyIC0gdGVudGFyIHbDoXJpYXMgZm9udGVzXHJcbiAgICAgIGxldCBjb250cm9sbGVyTmFtZSA9ICdVbmtub3duQ29udHJvbGxlcic7XHJcblxyXG4gICAgICBpZiAodGhpcz8uY29uc3RydWN0b3I/Lm5hbWUgJiYgdGhpcy5jb25zdHJ1Y3Rvci5uYW1lICE9PSAnT2JqZWN0Jykge1xyXG4gICAgICAgIGNvbnRyb2xsZXJOYW1lID0gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoISRjdHgpIHtcclxuICAgICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgICAnW0xvZ1RlbGVtZXRyeV0gQ29udGV4dCBub3QgZm91bmQsIGV4ZWN1dGluZyB3aXRob3V0IHRlbGVtZXRyeSdcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBhd2FpdCBvcmlnaW5hbE1ldGhvZC5hcHBseSh0aGlzLCBhcmdzKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gQnVzY2FyIG8gVGVsZW1ldHJ5U2VydmljZSBkbyBJbmplY3RvclNlcnZpY2UgZG8gY29udGV4dG9cclxuICAgICAgbGV0IHRlbGVtZXRyeVNlcnZpY2U6IFRzZWRUZWxlbWV0cnlTZXJ2aWNlIHwgdW5kZWZpbmVkO1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGlmICgkY3R4LmluamVjdG9yKSB7XHJcbiAgICAgICAgICB0ZWxlbWV0cnlTZXJ2aWNlID0gJGN0eC5pbmplY3Rvci5nZXQoXHJcbiAgICAgICAgICAgIFRzZWRUZWxlbWV0cnlTZXJ2aWNlXHJcbiAgICAgICAgICApIGFzIFRzZWRUZWxlbWV0cnlTZXJ2aWNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAkY3R4LmxvZ2dlcj8ud2Fybih7XHJcbiAgICAgICAgICAnTG9nVGVsZW1ldHJ5IC0gRmFpbGVkIHRvIGdldCBUZWxlbWV0cnlTZXJ2aWNlIGZyb20gaW5qZWN0b3InOiBlcnJvcixcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCF0ZWxlbWV0cnlTZXJ2aWNlKSB7XHJcbiAgICAgICAgJGN0eC5sb2dnZXI/Lndhcm4oXHJcbiAgICAgICAgICAnW0xvZ1RlbGVtZXRyeV0gVGVsZW1ldHJ5U2VydmljZSBub3QgYXZhaWxhYmxlLCBleGVjdXRpbmcgd2l0aG91dCB0ZWxlbWV0cnknXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gYXdhaXQgb3JpZ2luYWxNZXRob2QuYXBwbHkodGhpcywgYXJncyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgb3JpZ2luYWxNZXRob2QuYXBwbHkodGhpcywgYXJncyk7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xyXG4gICAgICAgICRjdHgubG9nZ2VyPy5pbmZvKCdFcnJvciBjYXVnaHQsIHNlbmRpbmcgdG8gdGVsZW1ldHJ5Jyk7XHJcbiAgICAgICAgLy8gRXh0cmFpciBpbmZvcm1hw6fDtWVzIGRvIHVzdcOhcmlvXHJcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICRjdHgucmVxdWVzdDtcclxuXHJcbiAgICAgICAgLy8gVGVudGFyIGV4dHJhaXIgZGFkb3MgZG8gdXN1w6FyaW8gc2UgZGlzcG9uw612ZWxcclxuICAgICAgICAvLyBMb2dnZWRVc2VySWRlbnRpZmllciBkZXZlIHNlciBmb3JuZWNpZG8gcGVsYSBhcGxpY2HDp8Ojb1xyXG4gICAgICAgIGxldCB1c2VySW5mbzogYW55ID0ge307XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIC8vIEB0cy1pZ25vcmUgLSBMb2dnZWRVc2VySWRlbnRpZmllciDDqSBlc3BlY8OtZmljbyBkYSBhcGxpY2HDp8Ojb1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiBMb2dnZWRVc2VySWRlbnRpZmllciAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICBjb25zdCB7IGxvZ2dlZFVzZXIgfSA9IExvZ2dlZFVzZXJJZGVudGlmaWVyLnVzZSgkY3R4KTtcclxuICAgICAgICAgICAgdXNlckluZm8gPSB7XHJcbiAgICAgICAgICAgICAgYWNjb3VudFVzZXJVaWQ6IGxvZ2dlZFVzZXI/LnVpZCxcclxuICAgICAgICAgICAgICBhY2NvdW50VWlkOiBsb2dnZWRVc2VyPy5hY2NvdW50Py51aWQsXHJcbiAgICAgICAgICAgICAgYXBwbGljYXRpb25VaWQ6IGxvZ2dlZFVzZXI/LmFwcGxpY2F0aW9uPy51aWQsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgLy8gTG9nZ2VkVXNlcklkZW50aWZpZXIgbsOjbyBlc3TDoSBkaXNwb27DrXZlbCwgY29udGludWFyIHNlbSB1c2VyIGluZm9cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGF3YWl0IHRlbGVtZXRyeVNlcnZpY2UubG9nRXJyb3Ioe1xyXG4gICAgICAgICAgZXJyb3I6IGVycm9yLFxyXG4gICAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICBzdGF0dXNDb2RlOiBlcnJvci5zdGF0dXMgfHwgNTAwLFxyXG4gICAgICAgICAgICB1cmw6IHJlcXVlc3QudXJsLFxyXG4gICAgICAgICAgICBoZWFkZXJzOiByZXF1ZXN0LmhlYWRlcnMsXHJcbiAgICAgICAgICAgIGJvZHk6IHJlcXVlc3QuYm9keSxcclxuICAgICAgICAgICAgcGFyYW1zOiByZXF1ZXN0LnBhcmFtcyxcclxuICAgICAgICAgICAgcXVlcnk6IHJlcXVlc3QucXVlcnksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4udXNlckluZm8sXHJcbiAgICAgICAgICByZXF1ZXN0SWQ6ICRjdHguaWQsXHJcbiAgICAgICAgICBhd3NSZXF1ZXN0SWQ6ICRjdHguY29udGV4dD8uYXdzUmVxdWVzdElkLFxyXG4gICAgICAgICAgZW5kcG9pbnQ6IHJlcXVlc3QudXJsLFxyXG4gICAgICAgICAgbWV0aG9kOiByZXF1ZXN0Lm1ldGhvZCxcclxuICAgICAgICAgIGNvbnRyb2xsZXI6IGNvbnRyb2xsZXJOYW1lLFxyXG4gICAgICAgICAgY29udHJvbGxlck1ldGhvZDogbWV0aG9kTmFtZSxcclxuICAgICAgICB9KTtcclxuICAgICAgICAkY3R4LmxvZ2dlci5pbmZvKCdFcnJvciBzZW50IHRvIHRlbGVtZXRyeScpO1xyXG5cclxuICAgICAgICAvLyBSZS10aHJvdyBwYXJhIG1hbnRlciBvIGNvbXBvcnRhbWVudG8gbm9ybWFsIGRlIGVycm9cclxuICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gZGVzY3JpcHRvcjtcclxuICB9O1xyXG59XHJcbiJdfQ==
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLXRlbGVtZXRyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90c2VkL2xvZy10ZWxlbWV0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFnQkEsNENBd1BDO0FBNVBELHVDQUFpRDtBQUNqRCw0Q0FBd0Q7QUFDeEQsMkNBQXlDO0FBRXpDLFNBQWdCLGdCQUFnQjtJQUM5QixPQUFPLFVBQ0wsT0FBWSxFQUNaLFlBQW9CLEVBQ3BCLFVBQThCO1FBRTlCLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDeEMsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDO1FBRWhDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsVUFBMkIsR0FBRyxJQUFXOzs7Z0JBQzFELE1BQU0sU0FBUyxHQUFHLHdCQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBR3BDLE1BQU0sSUFBSSxHQUFzQixJQUFJLENBQUMsSUFBSSxDQUN2QyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsT0FBTyxNQUFJLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxRQUFRLENBQUEsQ0FDdkMsQ0FBQztnQkFHRixJQUFJLGNBQWMsR0FBRyxtQkFBbUIsQ0FBQztnQkFDekMsSUFBSSxDQUFBLE1BQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFdBQVcsMENBQUUsSUFBSSxLQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUNsRSxjQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7Z0JBQ3pDLENBQUM7Z0JBRUQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNWLE9BQU8sQ0FBQyxJQUFJLENBQ1YsbUVBQW1FLENBQ3BFLENBQUM7b0JBQ0YsT0FBTyxNQUFNLGNBQWMsQ0FBQyxLQUFLLENB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QVksRUFBRSxNQUFBLElBQUksQ0FBQyxPQUFPLDBDQUFFLFlBQVksRUFDeEMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQ3JCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxFQUN0QixVQUFVLEVBQUUsY0FBYyxFQUMxQixnQkFBZ0IsRUFBRSxVQUFVLElBQzVCLENBQUM7b0JBR0gsSUFBSSxVQUFVLEVBQUUsQ0FBQzt3QkFDZixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQ25CLENBQUM7b0JBQ0QsTUFBTyxnQkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFFL0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQztvQkFHNUMsTUFBTSxLQUFLLENBQUM7Z0JBQ2QsQ0FBQztZQUNILENBQUM7U0FBQSxDQUFDO1FBRUYsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBEZWNvcmF0b3IgcXVlIGNhcHR1cmEgZXJyb3MgYXV0b21hdGljYW1lbnRlLCBjcmlhIHNwYW5zIGUgZW52aWEgcGFyYSB0ZWxlbWV0cmlhXHJcbiAqIEFsaW5oYWRvIGNvbSBhIGltcGxlbWVudGHDp8OjbyBkbyBTU1QgbWlkZGxld2FyZSBwYXJhIGdhcmFudGlyIGNvbnNpc3TDqm5jaWFcclxuICpcclxuICogVXNvIG5vIGNvbnRyb2xsZXI6XHJcbiAqXHJcbiAqIEBUc2VkTG9nVGVsZW1ldHJ5KClcclxuICogYXN5bmMgZ2V0Q2hlY2tvdXQoQENvbnRleHQoKSAkY3R4OiBTZXJ2ZXJsZXNzQ29udGV4dCwgLi4uKSB7XHJcbiAqICAgcmV0dXJuIGF3YWl0IHRoaXMuc2VydmljZS5leGVjdXRlKHBhcmFtcyk7XHJcbiAqIH1cclxuICovXHJcbmltcG9ydCB7IFNlcnZlcmxlc3NDb250ZXh0IH0gZnJvbSAnQHRzZWQvcGxhdGZvcm0tc2VydmVybGVzcyc7XHJcbmltcG9ydCB7IFRzZWRUZWxlbWV0cnlTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlJztcclxuaW1wb3J0IHsgbWV0cmljcywgVmFsdWVUeXBlIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvYXBpJztcclxuaW1wb3J0IHsgcGVyZm9ybWFuY2UgfSBmcm9tICdwZXJmX2hvb2tzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBUc2VkTG9nVGVsZW1ldHJ5KCkge1xyXG4gIHJldHVybiBmdW5jdGlvbiAoXHJcbiAgICBfdGFyZ2V0OiBhbnksXHJcbiAgICBfcHJvcGVydHlLZXk6IHN0cmluZyxcclxuICAgIGRlc2NyaXB0b3I6IFByb3BlcnR5RGVzY3JpcHRvclxyXG4gICkge1xyXG4gICAgY29uc3Qgb3JpZ2luYWxNZXRob2QgPSBkZXNjcmlwdG9yLnZhbHVlO1xyXG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IF9wcm9wZXJ0eUtleTtcclxuXHJcbiAgICBkZXNjcmlwdG9yLnZhbHVlID0gYXN5bmMgZnVuY3Rpb24gKHRoaXM6IGFueSwgLi4uYXJnczogYW55W10pIHtcclxuICAgICAgY29uc3Qgc3RhcnRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XHJcblxyXG4gICAgICAvLyBFbmNvbnRyYXIgbyBjb250ZXh0b1xyXG4gICAgICBjb25zdCAkY3R4OiBTZXJ2ZXJsZXNzQ29udGV4dCA9IGFyZ3MuZmluZChcclxuICAgICAgICAoYXJnKSA9PiBhcmc/LnJlcXVlc3QgJiYgYXJnPy5yZXNwb25zZVxyXG4gICAgICApO1xyXG5cclxuICAgICAgLy8gQ2FwdHVyYXIgbyBub21lIGRvIGNvbnRyb2xsZXJcclxuICAgICAgbGV0IGNvbnRyb2xsZXJOYW1lID0gJ1Vua25vd25Db250cm9sbGVyJztcclxuICAgICAgaWYgKHRoaXM/LmNvbnN0cnVjdG9yPy5uYW1lICYmIHRoaXMuY29uc3RydWN0b3IubmFtZSAhPT0gJ09iamVjdCcpIHtcclxuICAgICAgICBjb250cm9sbGVyTmFtZSA9IHRoaXMuY29uc3RydWN0b3IubmFtZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCEkY3R4KSB7XHJcbiAgICAgICAgY29uc29sZS53YXJuKFxyXG4gICAgICAgICAgJ1tUc2VkTG9nVGVsZW1ldHJ5XSBDb250ZXh0IG5vdCBmb3VuZCwgZXhlY3V0aW5nIHdpdGhvdXQgdGVsZW1ldHJ5J1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IG9yaWdpbmFsTWV0aG9kLmFwcGx5KHRoaXMsIGFyZ3MpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBCdXNjYXIgbyBUZWxlbWV0cnlTZXJ2aWNlIGRvIGluamVjdG9yXHJcbiAgICAgIGxldCB0ZWxlbWV0cnlTZXJ2aWNlOiBUc2VkVGVsZW1ldHJ5U2VydmljZSB8IHVuZGVmaW5lZDtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBpZiAoJGN0eC5pbmplY3Rvcikge1xyXG4gICAgICAgICAgdGVsZW1ldHJ5U2VydmljZSA9ICRjdHguaW5qZWN0b3IuZ2V0KFxyXG4gICAgICAgICAgICBUc2VkVGVsZW1ldHJ5U2VydmljZVxyXG4gICAgICAgICAgKSBhcyBUc2VkVGVsZW1ldHJ5U2VydmljZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgJGN0eC5sb2dnZXI/Lndhcm4oe1xyXG4gICAgICAgICAgJ1RzZWRMb2dUZWxlbWV0cnkgLSBGYWlsZWQgdG8gZ2V0IFRlbGVtZXRyeVNlcnZpY2UgZnJvbSBpbmplY3Rvcic6XHJcbiAgICAgICAgICAgIGVycm9yLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoIXRlbGVtZXRyeVNlcnZpY2UpIHtcclxuICAgICAgICAkY3R4LmxvZ2dlcj8ud2FybihcclxuICAgICAgICAgICdbVHNlZExvZ1RlbGVtZXRyeV0gVGVsZW1ldHJ5U2VydmljZSBub3QgYXZhaWxhYmxlLCBleGVjdXRpbmcgd2l0aG91dCB0ZWxlbWV0cnknXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gYXdhaXQgb3JpZ2luYWxNZXRob2QuYXBwbHkodGhpcywgYXJncyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIEV4dHJhaXIgaW5mb3JtYcOnw7VlcyBiw6FzaWNhc1xyXG4gICAgICBjb25zdCByZXF1ZXN0ID0gJGN0eC5yZXF1ZXN0O1xyXG4gICAgICBjb25zdCBzZXJ2aWNlTmFtZSA9IHByb2Nlc3MuZW52LlNFUlZJQ0VfTkFNRSB8fCAndHNlZC1zZXJ2aWNlJztcclxuICAgICAgbGV0IHN0YWdlID0gcHJvY2Vzcy5lbnYuU1RBR0UgfHwgJ2RldmVsb3BtZW50JztcclxuICAgICAgaWYgKHN0YWdlID09PSAncHJvZCcpIHN0YWdlID0gJ3Byb2R1Y3Rpb24nO1xyXG5cclxuICAgICAgY29uc3QgcXVlcnlTdHJpbmdQYXJhbWV0ZXJzID0gcmVxdWVzdC5xdWVyeSB8fCB7fTtcclxuICAgICAgY29uc3Qgb3JpZ2luID0gcXVlcnlTdHJpbmdQYXJhbWV0ZXJzLm9yaWdpbiB8fCAnd2ViJztcclxuXHJcbiAgICAgIC8vIENyaWFyIHNwYW4gdXNhbmRvIFN0YW5kYXJkVHJhY2VyIChzaW1pbGFyIGFvIFNTVCBtaWRkbGV3YXJlKVxyXG4gICAgICBjb25zdCB0cmFjZXIgPSAodGVsZW1ldHJ5U2VydmljZSBhcyBhbnkpLmdldFRyYWNlcigpO1xyXG4gICAgICBsZXQgc3BhblJlc3VsdDogYW55ID0gbnVsbDtcclxuXHJcbiAgICAgIGlmICh0cmFjZXIpIHtcclxuICAgICAgICBzcGFuUmVzdWx0ID0gdHJhY2VyLnN0YXJ0U3Bhbih7XHJcbiAgICAgICAgICBzcGFuTmFtZTogYCR7Y29udHJvbGxlck5hbWV9LiR7bWV0aG9kTmFtZX1gLFxyXG4gICAgICAgICAgc2VydmljZU5hbWUsXHJcbiAgICAgICAgICBlbnZpcm9ubWVudDogc3RhZ2UsXHJcbiAgICAgICAgICBleGVjdXRpb246IHtcclxuICAgICAgICAgICAgY29udHJvbGxlcjogY29udHJvbGxlck5hbWUsXHJcbiAgICAgICAgICAgIGNvbnRyb2xsZXJNZXRob2Q6IG1ldGhvZE5hbWUsXHJcbiAgICAgICAgICAgIHJlcXVlc3RJZDogJGN0eC5pZCxcclxuICAgICAgICAgICAgYXdzUmVxdWVzdElkOiAkY3R4LmNvbnRleHQ/LmF3c1JlcXVlc3RJZCxcclxuICAgICAgICAgICAgb3JpZ2luLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGh0dHA6IHtcclxuICAgICAgICAgICAgbWV0aG9kOiByZXF1ZXN0Lm1ldGhvZCxcclxuICAgICAgICAgICAgdXJsOiByZXF1ZXN0LnVybCxcclxuICAgICAgICAgICAgZW5kcG9pbnQ6IHJlcXVlc3QudXJsLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gQ3JpYXIgbcOpdHJpY2FzIChzaW1pbGFyIGFvIFNTVCBtaWRkbGV3YXJlKVxyXG4gICAgICBjb25zdCBtZXRlciA9IG1ldHJpY3MuZ2V0TWV0ZXIob3JpZ2luKTtcclxuICAgICAgY29uc3QgZXhlY3V0aW9uVGltZUhpc3RvZ3JhbSA9IG1ldGVyLmNyZWF0ZUhpc3RvZ3JhbShcclxuICAgICAgICAndHNlZF9leGVjdXRpb25fZHVyYXRpb24nLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVGVtcG8gdG90YWwgZGUgZXhlY3XDp8OjbyBkbyBtw6l0b2RvIFRzZWQgZW0gbXMnLFxyXG4gICAgICAgICAgdW5pdDogJ21zJyxcclxuICAgICAgICAgIHZhbHVlVHlwZTogVmFsdWVUeXBlLkRPVUJMRSxcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICAgIGNvbnN0IHN1Y2Nlc3NDb3VudGVyID0gbWV0ZXIuY3JlYXRlQ291bnRlcigndHNlZF9zdWNjZXNzZnVsX3JlcXVlc3RzJywge1xyXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVG90YWwgZGUgcmVxdWlzacOnw7VlcyBiZW0tc3VjZWRpZGFzJyxcclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnN0IGZhaWx1cmVDb3VudGVyID0gbWV0ZXIuY3JlYXRlQ291bnRlcigndHNlZF9mYWlsZWRfcmVxdWVzdHMnLCB7XHJcbiAgICAgICAgZGVzY3JpcHRpb246ICdUb3RhbCBkZSByZXF1aXNpw6fDtWVzIGNvbSBmYWxoYScsXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBvcmlnaW5hbE1ldGhvZC5hcHBseSh0aGlzLCBhcmdzKTtcclxuXHJcbiAgICAgICAgLy8gU1VDRVNTTyAtIFNpbWlsYXIgYW8gJ2FmdGVyJyBkbyBTU1QgbWlkZGxld2FyZVxyXG4gICAgICAgIGNvbnN0IGR1cmF0aW9uTXMgPSBwZXJmb3JtYW5jZS5ub3coKSAtIHN0YXJ0VGltZTtcclxuXHJcbiAgICAgICAgLy8gTWFyY2FyIHNwYW4gY29tbyBzdWNlc3NvXHJcbiAgICAgICAgaWYgKHNwYW5SZXN1bHQpIHtcclxuICAgICAgICAgIHNwYW5SZXN1bHQuc2V0U3VjY2Vzcyh0cnVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIE3DqXRyaWNhcyBkZSBzdWNlc3NvXHJcbiAgICAgICAgc3VjY2Vzc0NvdW50ZXIuYWRkKDEsIHtcclxuICAgICAgICAgIG9yaWdpbixcclxuICAgICAgICAgIGNvbnRyb2xsZXI6IGNvbnRyb2xsZXJOYW1lLFxyXG4gICAgICAgICAgbWV0aG9kOiBtZXRob2ROYW1lLFxyXG4gICAgICAgICAgJ3NlcnZpY2UubmFtZSc6IHNlcnZpY2VOYW1lLFxyXG4gICAgICAgICAgJ2RlcGxveW1lbnQuZW52aXJvbm1lbnQubmFtZSc6IHN0YWdlLFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBleGVjdXRpb25UaW1lSGlzdG9ncmFtLnJlY29yZChkdXJhdGlvbk1zLCB7XHJcbiAgICAgICAgICBvcmlnaW4sXHJcbiAgICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJyxcclxuICAgICAgICAgIGNvbnRyb2xsZXI6IGNvbnRyb2xsZXJOYW1lLFxyXG4gICAgICAgICAgbWV0aG9kOiBtZXRob2ROYW1lLFxyXG4gICAgICAgICAgJ3NlcnZpY2UubmFtZSc6IHNlcnZpY2VOYW1lLFxyXG4gICAgICAgICAgJ2RlcGxveW1lbnQuZW52aXJvbm1lbnQubmFtZSc6IHN0YWdlLFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvLyBMb2cgZGUgc3VjZXNzbyAoc2ltaWxhciBhbyBTU1QpXHJcbiAgICAgICAgY29uc3QgbG9nZ2VyID0gKHRlbGVtZXRyeVNlcnZpY2UgYXMgYW55KS5nZXRMb2dnZXIoKTtcclxuICAgICAgICBpZiAobG9nZ2VyKSB7XHJcbiAgICAgICAgICBhd2FpdCBsb2dnZXIubG9nSW5mbyh7XHJcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdSZXF1ZXN0IGNvbXBsZXRlZCBzdWNjZXNzZnVsbHknLFxyXG4gICAgICAgICAgICBzZXJ2aWNlTmFtZSxcclxuICAgICAgICAgICAgZW52aXJvbm1lbnQ6IHN0YWdlLFxyXG4gICAgICAgICAgICBleGVjdXRpb246IHtcclxuICAgICAgICAgICAgICBjb250cm9sbGVyOiBjb250cm9sbGVyTmFtZSxcclxuICAgICAgICAgICAgICBjb250cm9sbGVyTWV0aG9kOiBtZXRob2ROYW1lLFxyXG4gICAgICAgICAgICAgIHJlcXVlc3RJZDogJGN0eC5pZCxcclxuICAgICAgICAgICAgICBhd3NSZXF1ZXN0SWQ6ICRjdHguY29udGV4dD8uYXdzUmVxdWVzdElkLFxyXG4gICAgICAgICAgICAgIG9yaWdpbixcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaHR0cDoge1xyXG4gICAgICAgICAgICAgIG1ldGhvZDogcmVxdWVzdC5tZXRob2QsXHJcbiAgICAgICAgICAgICAgdXJsOiByZXF1ZXN0LnVybCxcclxuICAgICAgICAgICAgICBlbmRwb2ludDogcmVxdWVzdC51cmwsXHJcbiAgICAgICAgICAgICAgc3RhdHVzQ29kZTogJGN0eC5yZXNwb25zZT8uc3RhdHVzQ29kZSB8fCAyMDAsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHBlcmZvcm1hbmNlOiB7XHJcbiAgICAgICAgICAgICAgZHVyYXRpb25NcyxcclxuICAgICAgICAgICAgICBzdWNjZXNzOiB0cnVlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBGaW5hbGl6YXIgc3BhbiBlIGZvcmNlIGZsdXNoXHJcbiAgICAgICAgaWYgKHNwYW5SZXN1bHQpIHtcclxuICAgICAgICAgIHNwYW5SZXN1bHQuZW5kKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGF3YWl0ICh0ZWxlbWV0cnlTZXJ2aWNlIGFzIGFueSkudGVsZW1ldHJ5UHJvdmlkZXIuZm9yY2VGbHVzaCgpO1xyXG5cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XHJcbiAgICAgICAgLy8gRVJSTyAtIFNpbWlsYXIgYW8gJ29uRXJyb3InIGRvIFNTVCBtaWRkbGV3YXJlXHJcbiAgICAgICAgY29uc3QgZHVyYXRpb25NcyA9IHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lO1xyXG5cclxuICAgICAgICAkY3R4LmxvZ2dlcj8uaW5mbygnRXJyb3IgY2F1Z2h0LCBzZW5kaW5nIHRvIHRlbGVtZXRyeScpO1xyXG5cclxuICAgICAgICAvLyBNYXJjYXIgc3BhbiBjb21vIGVycm9cclxuICAgICAgICBpZiAoc3BhblJlc3VsdCkge1xyXG4gICAgICAgICAgc3BhblJlc3VsdC5zZXRFcnJvcihlcnJvcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBNw6l0cmljYXMgZGUgZXJyb1xyXG4gICAgICAgIGZhaWx1cmVDb3VudGVyLmFkZCgxLCB7XHJcbiAgICAgICAgICBvcmlnaW4sXHJcbiAgICAgICAgICBlcnJvcl90eXBlOiBlcnJvcj8uY29uc3RydWN0b3I/Lm5hbWUgfHwgJ1Vua25vd25FcnJvcicsXHJcbiAgICAgICAgICBjb250cm9sbGVyOiBjb250cm9sbGVyTmFtZSxcclxuICAgICAgICAgIG1ldGhvZDogbWV0aG9kTmFtZSxcclxuICAgICAgICAgICdzZXJ2aWNlLm5hbWUnOiBzZXJ2aWNlTmFtZSxcclxuICAgICAgICAgICdkZXBsb3ltZW50LmVudmlyb25tZW50Lm5hbWUnOiBzdGFnZSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgZXhlY3V0aW9uVGltZUhpc3RvZ3JhbS5yZWNvcmQoZHVyYXRpb25Ncywge1xyXG4gICAgICAgICAgb3JpZ2luLFxyXG4gICAgICAgICAgc3RhdHVzOiAnZXJyb3InLFxyXG4gICAgICAgICAgY29udHJvbGxlcjogY29udHJvbGxlck5hbWUsXHJcbiAgICAgICAgICBtZXRob2Q6IG1ldGhvZE5hbWUsXHJcbiAgICAgICAgICAnc2VydmljZS5uYW1lJzogc2VydmljZU5hbWUsXHJcbiAgICAgICAgICAnZGVwbG95bWVudC5lbnZpcm9ubWVudC5uYW1lJzogc3RhZ2UsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIEV4dHJhaXIgaW5mb3JtYcOnw7VlcyBkbyB1c3XDoXJpb1xyXG4gICAgICAgIGxldCB1c2VySW5mbzogYW55ID0ge307XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIC8vIEB0cy1pZ25vcmUgLSBMb2dnZWRVc2VySWRlbnRpZmllciDDqSBlc3BlY8OtZmljbyBkYSBhcGxpY2HDp8Ojb1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiBMb2dnZWRVc2VySWRlbnRpZmllciAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICBjb25zdCB7IGxvZ2dlZFVzZXIgfSA9IExvZ2dlZFVzZXJJZGVudGlmaWVyLnVzZSgkY3R4KTtcclxuICAgICAgICAgICAgdXNlckluZm8gPSB7XHJcbiAgICAgICAgICAgICAgYWNjb3VudFVzZXJVaWQ6IGxvZ2dlZFVzZXI/LnVpZCxcclxuICAgICAgICAgICAgICBhY2NvdW50VWlkOiBsb2dnZWRVc2VyPy5hY2NvdW50Py51aWQsXHJcbiAgICAgICAgICAgICAgYXBwbGljYXRpb25VaWQ6IGxvZ2dlZFVzZXI/LmFwcGxpY2F0aW9uPy51aWQsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgLy8gTG9nZ2VkVXNlcklkZW50aWZpZXIgbsOjbyBlc3TDoSBkaXNwb27DrXZlbFxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gTG9nIGRlIGVycm8gKHNpbWlsYXIgYW8gU1NUKVxyXG4gICAgICAgIGF3YWl0IHRlbGVtZXRyeVNlcnZpY2UubG9nRXJyb3Ioe1xyXG4gICAgICAgICAgZXJyb3I6IGVycm9yLFxyXG4gICAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICBzdGF0dXNDb2RlOiBlcnJvci5zdGF0dXMgfHwgNTAwLFxyXG4gICAgICAgICAgICB1cmw6IHJlcXVlc3QudXJsLFxyXG4gICAgICAgICAgICBoZWFkZXJzOiByZXF1ZXN0LmhlYWRlcnMsXHJcbiAgICAgICAgICAgIGJvZHk6IHJlcXVlc3QuYm9keSxcclxuICAgICAgICAgICAgcGFyYW1zOiByZXF1ZXN0LnBhcmFtcyxcclxuICAgICAgICAgICAgcXVlcnk6IHJlcXVlc3QucXVlcnksXHJcbiAgICAgICAgICAgIGVycm9yVHlwZTogZXJyb3I/LmNvbnN0cnVjdG9yPy5uYW1lLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC4uLnVzZXJJbmZvLFxyXG4gICAgICAgICAgcmVxdWVzdElkOiAkY3R4LmlkLFxyXG4gICAgICAgICAgYXdzUmVxdWVzdElkOiAkY3R4LmNvbnRleHQ/LmF3c1JlcXVlc3RJZCxcclxuICAgICAgICAgIGVuZHBvaW50OiByZXF1ZXN0LnVybCxcclxuICAgICAgICAgIG1ldGhvZDogcmVxdWVzdC5tZXRob2QsXHJcbiAgICAgICAgICBjb250cm9sbGVyOiBjb250cm9sbGVyTmFtZSxcclxuICAgICAgICAgIGNvbnRyb2xsZXJNZXRob2Q6IG1ldGhvZE5hbWUsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIEZpbmFsaXphciBzcGFuIGUgZm9yY2UgZmx1c2hcclxuICAgICAgICBpZiAoc3BhblJlc3VsdCkge1xyXG4gICAgICAgICAgc3BhblJlc3VsdC5lbmQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYXdhaXQgKHRlbGVtZXRyeVNlcnZpY2UgYXMgYW55KS50ZWxlbWV0cnlQcm92aWRlci5mb3JjZUZsdXNoKCk7XHJcblxyXG4gICAgICAgICRjdHgubG9nZ2VyLmluZm8oJ0Vycm9yIHNlbnQgdG8gdGVsZW1ldHJ5Jyk7XHJcblxyXG4gICAgICAgIC8vIFJlLXRocm93IHBhcmEgbWFudGVyIG8gY29tcG9ydGFtZW50byBub3JtYWwgZGUgZXJyb1xyXG4gICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBkZXNjcmlwdG9yO1xyXG4gIH07XHJcbn1cclxuIl19
|
package/dist/tsed/service.d.ts
CHANGED
|
@@ -17,8 +17,10 @@ export declare class TsedTelemetryService {
|
|
|
17
17
|
private readonly telemetryProvider;
|
|
18
18
|
protected $ctx: ServerlessContext;
|
|
19
19
|
private standardLogger;
|
|
20
|
+
private standardTracer;
|
|
20
21
|
constructor(telemetryProvider: TsedTelemetryProvider);
|
|
21
22
|
private getLogger;
|
|
23
|
+
private getTracer;
|
|
22
24
|
logError(data: ErrorLogData): Promise<void>;
|
|
23
25
|
logException(error: Error, context?: Record<string, any>): Promise<void>;
|
|
24
26
|
}
|
package/dist/tsed/service.js
CHANGED
|
@@ -26,10 +26,12 @@ const di_1 = require("@tsed/di");
|
|
|
26
26
|
const platform_serverless_1 = require("@tsed/platform-serverless");
|
|
27
27
|
const config_1 = require("./config");
|
|
28
28
|
const core_1 = require("../core");
|
|
29
|
+
const api_1 = require("@opentelemetry/api");
|
|
29
30
|
let TsedTelemetryService = class TsedTelemetryService {
|
|
30
31
|
constructor(telemetryProvider) {
|
|
31
32
|
this.telemetryProvider = telemetryProvider;
|
|
32
33
|
this.standardLogger = null;
|
|
34
|
+
this.standardTracer = null;
|
|
33
35
|
}
|
|
34
36
|
getLogger() {
|
|
35
37
|
var _a;
|
|
@@ -48,6 +50,23 @@ let TsedTelemetryService = class TsedTelemetryService {
|
|
|
48
50
|
}
|
|
49
51
|
return this.standardLogger;
|
|
50
52
|
}
|
|
53
|
+
getTracer() {
|
|
54
|
+
var _a;
|
|
55
|
+
if (!this.telemetryProvider.isInitialized()) {
|
|
56
|
+
(_a = this.$ctx) === null || _a === void 0 ? void 0 : _a.logger.warn('[Telemetry] Telemetry not initialized, skipping trace');
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
if (!this.standardTracer) {
|
|
60
|
+
const tracerProvider = this.telemetryProvider.getTracerProvider();
|
|
61
|
+
if (!tracerProvider) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
const serviceName = process.env.SERVICE_NAME || 'tsed-service';
|
|
65
|
+
const otelTracer = api_1.trace.getTracer(serviceName, '1.0.0');
|
|
66
|
+
this.standardTracer = new core_1.StandardTracer(otelTracer, serviceName);
|
|
67
|
+
}
|
|
68
|
+
return this.standardTracer;
|
|
69
|
+
}
|
|
51
70
|
logError(data) {
|
|
52
71
|
return __awaiter(this, void 0, void 0, function* () {
|
|
53
72
|
var _a, _b, _c, _d;
|
|
@@ -128,4 +147,4 @@ exports.TsedTelemetryService = TsedTelemetryService = __decorate([
|
|
|
128
147
|
__param(0, (0, di_1.Inject)()),
|
|
129
148
|
__metadata("design:paramtypes", [config_1.TsedTelemetryProvider])
|
|
130
149
|
], TsedTelemetryService);
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZWxlbWV0cnkvdHNlZC9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlDQUE2RDtBQUM3RCxtRUFBOEQ7QUFDOUQscUNBQWlEO0FBQ2pELGtDQUF5QztBQWlCbEMsSUFBTSxvQkFBb0IsR0FBMUIsTUFBTSxvQkFBb0I7SUFJL0IsWUFFRSxpQkFBeUQ7UUFBeEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF1QjtRQUpuRCxtQkFBYyxHQUEwQixJQUFJLENBQUM7SUFLbEQsQ0FBQztJQUVJLFNBQVM7O1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO1lBQzVDLE1BQUEsSUFBSSxDQUFDLElBQUksMENBQUUsTUFBTSxDQUFDLElBQUksQ0FDcEIscURBQXFELENBQ3RELENBQUM7WUFDRixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ2xFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDcEIsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1lBRUQsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLFNBQVMsQ0FDekMscUJBQXFCLEVBQ3JCLE9BQU8sQ0FDUixDQUFDO1lBR0YsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksY0FBYyxDQUFDO1lBQy9ELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxxQkFBYyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNwRSxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENB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Q0FBQyxTQUFTO3FCQUN4RDtpQkFDRixDQUFDLENBQUM7WUFFTCxDQUFDO1FBQ0gsQ0FBQztLQUFBO0lBRVksWUFBWSxDQUN2QixLQUFZLEVBQ1osT0FBNkI7O1lBRTdCLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQztnQkFDbEIsS0FBSztnQkFDTCxPQUFPO2FBQ1IsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0NBQ0YsQ0FBQTtBQWhIWSxvREFBb0I7QUFDSjtJQUExQixJQUFBLGtCQUFhLEdBQUU7OEJBQWlCLHVDQUFpQjtrREFBQzsrQkFEeEMsb0JBQW9CO0lBRGhDLElBQUEsZUFBVSxHQUFFO0lBTVIsV0FBQSxJQUFBLFdBQU0sR0FBRSxDQUFBO3FDQUMyQiw4QkFBcUI7R0FOaEQsb0JBQW9CLENBZ0hoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgSW5qZWN0Q29udGV4dCB9IGZyb20gJ0B0c2VkL2RpJztcclxuaW1wb3J0IHsgU2VydmVybGVzc0NvbnRleHQgfSBmcm9tICdAdHNlZC9wbGF0Zm9ybS1zZXJ2ZXJsZXNzJztcclxuaW1wb3J0IHsgVHNlZFRlbGVtZXRyeVByb3ZpZGVyIH0gZnJvbSAnLi9jb25maWcnO1xyXG5pbXBvcnQgeyBTdGFuZGFyZExvZ2dlciB9IGZyb20gJy4uL2NvcmUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFcnJvckxvZ0RhdGEge1xyXG4gIGVycm9yOiBFcnJvcjtcclxuICBjb250ZXh0PzogUmVjb3JkPHN0cmluZywgYW55PjtcclxuICBhY2NvdW50VXNlclVpZD86IHN0cmluZztcclxuICBhY2NvdW50VWlkPzogc3RyaW5nO1xyXG4gIHJlcXVlc3RJZD86IHN0cmluZztcclxuICBlbmRwb2ludD86IHN0cmluZztcclxuICBtZXRob2Q/OiBzdHJpbmc7XHJcbiAgY29udHJvbGxlcj86IHN0cmluZztcclxuICBjb250cm9sbGVyTWV0aG9kPzogc3RyaW5nO1xyXG4gIGFwcGxpY2F0aW9uVWlkPzogc3RyaW5nO1xyXG4gIGF3c1JlcXVlc3RJZD86IHN0cmluZztcclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVHNlZFRlbGVtZXRyeVNlcnZpY2Uge1xyXG4gIEBJbmplY3RDb250ZXh0KCkgcHJvdGVjdGVkICRjdHg6IFNlcnZlcmxlc3NDb250ZXh0O1xyXG4gIHByaXZhdGUgc3RhbmRhcmRMb2dnZXI6IFN0YW5kYXJkTG9nZ2VyIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdCgpXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRlbGVtZXRyeVByb3ZpZGVyOiBUc2VkVGVsZW1ldHJ5UHJvdmlkZXJcclxuICApIHt9XHJcblxyXG4gIHByaXZhdGUgZ2V0TG9nZ2VyKCk6IFN0YW5kYXJkTG9nZ2VyIHwgbnVsbCB7XHJcbiAgICBpZiAoIXRoaXMudGVsZW1ldHJ5UHJvdmlkZXIuaXNJbml0aWFsaXplZCgpKSB7XHJcbiAgICAgIHRoaXMuJGN0eD8ubG9nZ2VyLndhcm4oXHJcbiAgICAgICAgJ1tUZWxlbWV0cnldIFRlbGVtZXRyeSBub3QgaW5pdGlhbGl6ZWQsIHNraXBwaW5nIGxvZydcclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLnN0YW5kYXJkTG9nZ2VyKSB7XHJcbiAgICAgIGNvbnN0IGxvZ2dlclByb3ZpZGVyID0gdGhpcy50ZWxlbWV0cnlQcm92aWRlci5nZXRMb2dnZXJQcm92aWRlcigpO1xyXG4gICAgICBpZiAoIWxvZ2dlclByb3ZpZGVyKSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IG90ZWxMb2dnZXIgPSBsb2dnZXJQcm92aWRlci5nZXRMb2dnZXIoXHJcbiAgICAgICAgJ3RzZWQtc2VydmljZS1sb2dnZXInLFxyXG4gICAgICAgICcxLjAuMCdcclxuICAgICAgKTtcclxuXHJcbiAgICAgIC8vIFBlZ2EgbyBzZXJ2aWNlIG5hbWUgZG8gYW1iaWVudGUgb3UgdXNhIGRlZmF1bHRcclxuICAgICAgY29uc3Qgc2VydmljZU5hbWUgPSBwcm9jZXNzLmVudi5TRVJWSUNFX05BTUUgfHwgJ3RzZWQtc2VydmljZSc7XHJcbiAgICAgIHRoaXMuc3RhbmRhcmRMb2dnZXIgPSBuZXcgU3RhbmRhcmRMb2dnZXIob3RlbExvZ2dlciwgc2VydmljZU5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLnN0YW5kYXJkTG9nZ2VyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGxvZ0Vycm9yKGRhdGE6IEVycm9yTG9nRGF0YSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgbG9nZ2VyID0gdGhpcy5nZXRMb2dnZXIoKTtcclxuICAgIGlmICghbG9nZ2VyKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBsZXQgc3RhZ2UgPSBwcm9jZXNzLmVudi5TVEFHRSB8fCAnZGV2ZWxvcG1lbnQnO1xyXG4gICAgICBpZiAoc3RhZ2UgPT09ICdwcm9kJykgc3RhZ2UgPSAncHJvZHVjdGlvbic7XHJcblxyXG4gICAgICB0aGlzLiRjdHg/LmxvZ2dlci5pbmZvKCdbVGVsZW1ldHJ5XSBMb2dnaW5nIGVycm9yLi4uJyk7XHJcblxyXG4gICAgICBhd2FpdCBsb2dnZXIubG9nRXJyb3Ioe1xyXG4gICAgICAgIG1lc3NhZ2U6IGRhdGEuZXJyb3IubWVzc2FnZSxcclxuICAgICAgICBlcnJvcjogZGF0YS5lcnJvcixcclxuICAgICAgICBzZXJ2aWNlTmFtZTogcHJvY2Vzcy5lbnYuU0VSVklDRV9OQU1FIHx8ICd0c2VkLXNlcnZpY2UnLFxyXG4gICAgICAgIGVudmlyb25tZW50OiBzdGFnZSxcclxuICAgICAgICBodHRwOiB7XHJcbiAgICAgICAgICBlbmRwb2ludDogZGF0YS5lbmRwb2ludCxcclxuICAgICAgICAgIG1ldGhvZDogZGF0YS5tZXRob2QsXHJcbiAgICAgICAgICBzdGF0dXNDb2RlOiAoZGF0YS5lcnJvciBhcyBhbnkpLnN0YXR1cyB8fCA1MDAsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB1c2VyOiB7XHJcbiAgICAgICAgICBhY2NvdW50VXNlclVpZDogZGF0YS5hY2NvdW50VXNlclVpZCxcclxuICAgICAgICAgIGFjY291bnRVaWQ6IGRhdGEuYWNjb3VudFVpZCxcclxuICAgICAgICAgIGFwcGxpY2F0aW9uVWlkOiBkYXRhLmFwcGxpY2F0aW9uVWlkLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXhlY3V0aW9uOiB7XHJcbiAgICAgICAgICByZXF1ZXN0SWQ6IGRhdGEucmVxdWVzdElkLFxyXG4gICAgICAgICAgYXdzUmVxdWVzdElkOiBkYXRhLmF3c1JlcXVlc3RJZCxcclxuICAgICAgICAgIGNvbnRyb2xsZXI6IGRhdGEuY29udHJvbGxlcixcclxuICAgICAgICAgIGNvbnRyb2xsZXJNZXRob2Q6IGRhdGEuY29udHJvbGxlck1ldGhvZCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbnRleHQ6IGRhdGEuY29udGV4dCxcclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvLyBDUklUSUNBTDogRm9yY2UgZmx1c2ggdG8gZW5zdXJlIGxvZyBpcyBzZW50IGJlZm9yZSBMYW1iZGEgZnJlZXplc1xyXG4gICAgICB0aGlzLiRjdHg/LmxvZ2dlci5pbmZvKCdbVGVsZW1ldHJ5XSBGb3JjaW5nIGZsdXNoLi4uJyk7XHJcbiAgICAgIGNvbnN0IGZsdXNoU3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcclxuXHJcbiAgICAgIGF3YWl0IHRoaXMudGVsZW1ldHJ5UHJvdmlkZXIuZm9yY2VGbHVzaCgpO1xyXG5cclxuICAgICAgY29uc3QgZmx1c2hEdXJhdGlvbiA9IERhdGUubm93KCkgLSBmbHVzaFN0YXJ0VGltZTtcclxuXHJcbiAgICAgIHRoaXMuJGN0eD8ubG9nZ2VyLmluZm8oe1xyXG4gICAgICAgICdUZWxlbWV0cnkgLSBMb2cgc2VudCBzdWNjZXNzZnVsbHknOiB7XHJcbiAgICAgICAgICBlcnJvclR5cGU6IGRhdGEuZXJyb3IubmFtZSxcclxuICAgICAgICAgIG1lc3NhZ2U6IGRhdGEuZXJyb3IubWVzc2FnZSxcclxuICAgICAgICAgIGVuZHBvaW50OiBkYXRhLmVuZHBvaW50LFxyXG4gICAgICAgICAgY29udHJvbGxlcjogZGF0YS5jb250cm9sbGVyLFxyXG4gICAgICAgICAgbWV0aG9kOiBkYXRhLmNvbnRyb2xsZXJNZXRob2QsXHJcbiAgICAgICAgICBmbHVzaER1cmF0aW9uTXM6IGZsdXNoRHVyYXRpb24sXHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICB0aGlzLiRjdHg/LmxvZ2dlci5lcnJvcih7XHJcbiAgICAgICAgJ1RlbGVtZXRyeSAtIENSSVRJQ0FMIEVSUk9SIC0gRmFpbGVkIHRvIGxvZyBlcnJvcic6IHtcclxuICAgICAgICAgIG9yaWdpbmFsRXJyb3I6IGRhdGEuZXJyb3IubWVzc2FnZSxcclxuICAgICAgICAgIHRlbGVtZXRyeUVycm9yOlxyXG4gICAgICAgICAgICBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvciksXHJcbiAgICAgICAgICBzdGFjazogZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLnN0YWNrIDogdW5kZWZpbmVkLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgICAvLyBEb24ndCByZS10aHJvdyB0byBhdm9pZCBicmVha2luZyB0aGUgYXBwbGljYXRpb24gZmxvd1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGxvZ0V4Y2VwdGlvbihcclxuICAgIGVycm9yOiBFcnJvcixcclxuICAgIGNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XHJcbiAgKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBhd2FpdCB0aGlzLmxvZ0Vycm9yKHtcclxuICAgICAgZXJyb3IsXHJcbiAgICAgIGNvbnRleHQsXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90c2VkL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaUNBQTZEO0FBQzdELG1FQUE4RDtBQUM5RCxxQ0FBaUQ7QUFDakQsa0NBQXlEO0FBQ3pELDRDQUFvRDtBQWlCN0MsSUFBTSxvQkFBb0IsR0FBMUIsTUFBTSxvQkFBb0I7SUFLL0IsWUFFRSxpQkFBeUQ7UUFBeEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF1QjtRQUxuRCxtQkFBYyxHQUEwQixJQUFJLENBQUM7UUFDN0MsbUJBQWMsR0FBMEIsSUFBSSxDQUFDO0lBS2xELENBQUM7SUFFSSxTQUFTOztRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUM1QyxNQUFBLElBQUksQ0FBQyxJQUFJLDBDQUFFLE1BQU0sQ0FBQyxJQUFJLENBQ3BCLHFEQUFxRCxDQUN0RCxDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNsRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3BCLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUVELE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQ3pDLHFCQUFxQixFQUNyQixPQUFPLENBQ1IsQ0FBQztZQUdGLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLGNBQWMsQ0FBQztZQUMvRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUkscUJBQWMsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUVELE9B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QUEsV0FBTSxHQUFFLENBQUE7cUNBQzJCLDhCQUFxQjtHQVBoRCxvQkFBb0IsQ0F1SWhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBJbmplY3RDb250ZXh0IH0gZnJvbSAnQHRzZWQvZGknO1xyXG5pbXBvcnQgeyBTZXJ2ZXJsZXNzQ29udGV4dCB9IGZyb20gJ0B0c2VkL3BsYXRmb3JtLXNlcnZlcmxlc3MnO1xyXG5pbXBvcnQgeyBUc2VkVGVsZW1ldHJ5UHJvdmlkZXIgfSBmcm9tICcuL2NvbmZpZyc7XHJcbmltcG9ydCB7IFN0YW5kYXJkTG9nZ2VyLCBTdGFuZGFyZFRyYWNlciB9IGZyb20gJy4uL2NvcmUnO1xyXG5pbXBvcnQgeyB0cmFjZSwgbWV0cmljcyB9IGZyb20gJ0BvcGVudGVsZW1ldHJ5L2FwaSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yTG9nRGF0YSB7XHJcbiAgZXJyb3I6IEVycm9yO1xyXG4gIGNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG4gIGFjY291bnRVc2VyVWlkPzogc3RyaW5nO1xyXG4gIGFjY291bnRVaWQ/OiBzdHJpbmc7XHJcbiAgcmVxdWVzdElkPzogc3RyaW5nO1xyXG4gIGVuZHBvaW50Pzogc3RyaW5nO1xyXG4gIG1ldGhvZD86IHN0cmluZztcclxuICBjb250cm9sbGVyPzogc3RyaW5nO1xyXG4gIGNvbnRyb2xsZXJNZXRob2Q/OiBzdHJpbmc7XHJcbiAgYXBwbGljYXRpb25VaWQ/OiBzdHJpbmc7XHJcbiAgYXdzUmVxdWVzdElkPzogc3RyaW5nO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBUc2VkVGVsZW1ldHJ5U2VydmljZSB7XHJcbiAgQEluamVjdENvbnRleHQoKSBwcm90ZWN0ZWQgJGN0eDogU2VydmVybGVzc0NvbnRleHQ7XHJcbiAgcHJpdmF0ZSBzdGFuZGFyZExvZ2dlcjogU3RhbmRhcmRMb2dnZXIgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIHN0YW5kYXJkVHJhY2VyOiBTdGFuZGFyZFRyYWNlciB8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoKVxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZWxlbWV0cnlQcm92aWRlcjogVHNlZFRlbGVtZXRyeVByb3ZpZGVyXHJcbiAgKSB7fVxyXG5cclxuICBwcml2YXRlIGdldExvZ2dlcigpOiBTdGFuZGFyZExvZ2dlciB8IG51bGwge1xyXG4gICAgaWYgKCF0aGlzLnRlbGVtZXRyeVByb3ZpZGVyLmlzSW5pdGlhbGl6ZWQoKSkge1xyXG4gICAgICB0aGlzLiRjdHg/LmxvZ2dlci53YXJuKFxyXG4gICAgICAgICdbVGVsZW1ldHJ5XSBUZWxlbWV0cnkgbm90IGluaXRpYWxpemVkLCBza2lwcGluZyBsb2cnXHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5zdGFuZGFyZExvZ2dlcikge1xyXG4gICAgICBjb25zdCBsb2dnZXJQcm92aWRlciA9IHRoaXMudGVsZW1ldHJ5UHJvdmlkZXIuZ2V0TG9nZ2VyUHJvdmlkZXIoKTtcclxuICAgICAgaWYgKCFsb2dnZXJQcm92aWRlcikge1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBvdGVsTG9nZ2VyID0gbG9nZ2VyUHJvdmlkZXIuZ2V0TG9nZ2VyKFxyXG4gICAgICAgICd0c2VkLXNlcnZpY2UtbG9nZ2VyJyxcclxuICAgICAgICAnMS4wLjAnXHJcbiAgICAgICk7XHJcblxyXG4gICAgICAvLyBQZWdhIG8gc2VydmljZSBuYW1lIGRvIGFtYmllbnRlIG91IHVzYSBkZWZhdWx0XHJcbiAgICAgIGNvbnN0IHNlcnZpY2VOYW1lID0gcHJvY2Vzcy5lbnYuU0VSVklDRV9OQU1FIHx8ICd0c2VkLXNlcnZpY2UnO1xyXG4gICAgICB0aGlzLnN0YW5kYXJkTG9nZ2VyID0gbmV3IFN0YW5kYXJkTG9nZ2VyKG90ZWxMb2dnZXIsIHNlcnZpY2VOYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5zdGFuZGFyZExvZ2dlcjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0VHJhY2VyKCk6IFN0YW5kYXJkVHJhY2VyIHwgbnVsbCB7XHJcbiAgICBpZiAoIXRoaXMudGVsZW1ldHJ5UHJvdmlkZXIuaXNJbml0aWFsaXplZCgpKSB7XHJcbiAgICAgIHRoaXMuJGN0eD8ubG9nZ2VyLndhcm4oXHJcbiAgICAgICAgJ1tUZWxlbWV0cnldIFRlbGVtZXRyeSBub3QgaW5pdGlhbGl6ZWQsIHNraXBwaW5nIHRyYWNlJ1xyXG4gICAgICApO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuc3RhbmRhcmRUcmFjZXIpIHtcclxuICAgICAgY29uc3QgdHJhY2VyUHJvdmlkZXIgPSB0aGlzLnRlbGVtZXRyeVByb3ZpZGVyLmdldFRyYWNlclByb3ZpZGVyKCk7XHJcbiAgICAgIGlmICghdHJhY2VyUHJvdmlkZXIpIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3Qgc2VydmljZU5hbWUgPSBwcm9jZXNzLmVudi5TRVJWSUNFX05BTUUgfHwgJ3RzZWQtc2VydmljZSc7XHJcbiAgICAgIGNvbnN0IG90ZWxUcmFjZXIgPSB0cmFjZS5nZXRUcmFjZXIoc2VydmljZU5hbWUsICcxLjAuMCcpO1xyXG4gICAgICB0aGlzLnN0YW5kYXJkVHJhY2VyID0gbmV3IFN0YW5kYXJkVHJhY2VyKG90ZWxUcmFjZXIsIHNlcnZpY2VOYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5zdGFuZGFyZFRyYWNlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBsb2dFcnJvcihkYXRhOiBFcnJvckxvZ0RhdGEpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IGxvZ2dlciA9IHRoaXMuZ2V0TG9nZ2VyKCk7XHJcbiAgICBpZiAoIWxvZ2dlcikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgbGV0IHN0YWdlID0gcHJvY2Vzcy5lbnYuU1RBR0UgfHwgJ2RldmVsb3BtZW50JztcclxuICAgICAgaWYgKHN0YWdlID09PSAncHJvZCcpIHN0YWdlID0gJ3Byb2R1Y3Rpb24nO1xyXG5cclxuICAgICAgdGhpcy4kY3R4Py5sb2dnZXIuaW5mbygnW1RlbGVtZXRyeV0gTG9nZ2luZyBlcnJvci4uLicpO1xyXG5cclxuICAgICAgYXdhaXQgbG9nZ2VyLmxvZ0Vycm9yKHtcclxuICAgICAgICBtZXNzYWdlOiBkYXRhLmVycm9yLm1lc3NhZ2UsXHJcbiAgICAgICAgZXJyb3I6IGRhdGEuZXJyb3IsXHJcbiAgICAgICAgc2VydmljZU5hbWU6IHByb2Nlc3MuZW52LlNFUlZJQ0VfTkFNRSB8fCAndHNlZC1zZXJ2aWNlJyxcclxuICAgICAgICBlbnZpcm9ubWVudDogc3RhZ2UsXHJcbiAgICAgICAgaHR0cDoge1xyXG4gICAgICAgICAgZW5kcG9pbnQ6IGRhdGEuZW5kcG9pbnQsXHJcbiAgICAgICAgICBtZXRob2Q6IGRhdGEubWV0aG9kLFxyXG4gICAgICAgICAgc3RhdHVzQ29kZTogKGRhdGEuZXJyb3IgYXMgYW55KS5zdGF0dXMgfHwgNTAwLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdXNlcjoge1xyXG4gICAgICAgICAgYWNjb3VudFVzZXJVaWQ6IGRhdGEuYWNjb3VudFVzZXJVaWQsXHJcbiAgICAgICAgICBhY2NvdW50VWlkOiBkYXRhLmFjY291bnRVaWQsXHJcbiAgICAgICAgICBhcHBsaWNhdGlvblVpZDogZGF0YS5hcHBsaWNhdGlvblVpZCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGV4ZWN1dGlvbjoge1xyXG4gICAgICAgICAgcmVxdWVzdElkOiBkYXRhLnJlcXVlc3RJZCxcclxuICAgICAgICAgIGF3c1JlcXVlc3RJZDogZGF0YS5hd3NSZXF1ZXN0SWQsXHJcbiAgICAgICAgICBjb250cm9sbGVyOiBkYXRhLmNvbnRyb2xsZXIsXHJcbiAgICAgICAgICBjb250cm9sbGVyTWV0aG9kOiBkYXRhLmNvbnRyb2xsZXJNZXRob2QsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb250ZXh0OiBkYXRhLmNvbnRleHQsXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgLy8gQ1JJVElDQUw6IEZvcmNlIGZsdXNoIHRvIGVuc3VyZSBsb2cgaXMgc2VudCBiZWZvcmUgTGFtYmRhIGZyZWV6ZXNcclxuICAgICAgdGhpcy4kY3R4Py5sb2dnZXIuaW5mbygnW1RlbGVtZXRyeV0gRm9yY2luZyBmbHVzaC4uLicpO1xyXG4gICAgICBjb25zdCBmbHVzaFN0YXJ0VGltZSA9IERhdGUubm93KCk7XHJcblxyXG4gICAgICBhd2FpdCB0aGlzLnRlbGVtZXRyeVByb3ZpZGVyLmZvcmNlRmx1c2goKTtcclxuXHJcbiAgICAgIGNvbnN0IGZsdXNoRHVyYXRpb24gPSBEYXRlLm5vdygpIC0gZmx1c2hTdGFydFRpbWU7XHJcblxyXG4gICAgICB0aGlzLiRjdHg/LmxvZ2dlci5pbmZvKHtcclxuICAgICAgICAnVGVsZW1ldHJ5IC0gTG9nIHNlbnQgc3VjY2Vzc2Z1bGx5Jzoge1xyXG4gICAgICAgICAgZXJyb3JUeXBlOiBkYXRhLmVycm9yLm5hbWUsXHJcbiAgICAgICAgICBtZXNzYWdlOiBkYXRhLmVycm9yLm1lc3NhZ2UsXHJcbiAgICAgICAgICBlbmRwb2ludDogZGF0YS5lbmRwb2ludCxcclxuICAgICAgICAgIGNvbnRyb2xsZXI6IGRhdGEuY29udHJvbGxlcixcclxuICAgICAgICAgIG1ldGhvZDogZGF0YS5jb250cm9sbGVyTWV0aG9kLFxyXG4gICAgICAgICAgZmx1c2hEdXJhdGlvbk1zOiBmbHVzaER1cmF0aW9uLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgdGhpcy4kY3R4Py5sb2dnZXIuZXJyb3Ioe1xyXG4gICAgICAgICdUZWxlbWV0cnkgLSBDUklUSUNBTCBFUlJPUiAtIEZhaWxlZCB0byBsb2cgZXJyb3InOiB7XHJcbiAgICAgICAgICBvcmlnaW5hbEVycm9yOiBkYXRhLmVycm9yLm1lc3NhZ2UsXHJcbiAgICAgICAgICB0ZWxlbWV0cnlFcnJvcjpcclxuICAgICAgICAgICAgZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpLFxyXG4gICAgICAgICAgc3RhY2s6IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5zdGFjayA6IHVuZGVmaW5lZCxcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgICAgLy8gRG9uJ3QgcmUtdGhyb3cgdG8gYXZvaWQgYnJlYWtpbmcgdGhlIGFwcGxpY2F0aW9uIGZsb3dcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBsb2dFeGNlcHRpb24oXHJcbiAgICBlcnJvcjogRXJyb3IsXHJcbiAgICBjb250ZXh0PzogUmVjb3JkPHN0cmluZywgYW55PlxyXG4gICk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgYXdhaXQgdGhpcy5sb2dFcnJvcih7XHJcbiAgICAgIGVycm9yLFxyXG4gICAgICBjb250ZXh0LFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -71,4 +71,4 @@ class TsedSyncLogRecordProcessor {
|
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
exports.TsedSyncLogRecordProcessor = TsedSyncLogRecordProcessor;
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1sb2ctcmVjb3JkLXByb2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90c2VkL3N5bmMtbG9nLXJlY29yZC1wcm9jZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBWUEsTUFBYSwwQkFBMEI7SUFJckMsWUFBWSxRQUF5QjtRQUZwQixtQkFBYyxHQUFvQixFQUFFLENBQUM7UUFHcEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUE0QixFQUFFLFFBQWtCO1FBSXJELE1BQU0sYUFBYSxHQUFHLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzFELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDM0MsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUN0QixPQUFPLEVBQUUsQ0FBQztnQkFDWixDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxDQUFDLEtBQUssQ0FDWCx5Q0FBeUMsRUFDekMsTUFBTSxDQUFDLEtBQUssQ0FDYixDQUFDO29CQUNGLE1BQU0sQ0FDSixNQUFNLENBQUMsS0FBSyxZQUFZLEtBQUs7d0JBQzNCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSzt3QkFDZCxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUNwQyxDQUFDO2dCQUNKLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQzthQUNDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDVCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN6RCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN2QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLENBQUMsS0FBYyxFQUFFLEVBQUU7WUFDeEIsT0FBTyxDQUFDLEtBQUssQ0FBQyx3Q0FBd0MsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMvRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN6RCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN2QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFTCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUssVUFBVTs7WUFDZCxPQUFPLENBQUMsR0FBRyxDQUNULG1EQUFtRCxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sa0JBQWtCLENBQ2hHLENBQUM7WUFFRixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxPQUFPLENBQUMsR0FBRyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7Z0JBQ3BFLE9BQU87WUFDVCxDQUFDO1lBRUQsSUFBSSxDQUFDO2dCQUVILE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQ3ZDLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0RBQXdELENBQUMsQ0FBQztZQUN4RSxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLG1EQUFtRCxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUMxRSxNQUFNLEtBQUssQ0FBQztZQUNkLENBQUM7UUFDSCxDQUFDO0tBQUE7SUFFSyxRQUFROztZQUNaLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkNBQTJDLENBQUMsQ0FBQztZQUN6RCxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDL0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1FBQzVELENBQUM7S0FBQTtDQUNGO0FBeEVELGdFQXdFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvZ1JlY29yZFByb2Nlc3NvciwgUmVhZGFibGVMb2dSZWNvcmQgfSBmcm9tICdAb3BlbnRlbGVtZXRyeS9zZGstbG9ncyc7XHJcbmltcG9ydCB7IE9UTFBMb2dFeHBvcnRlciB9IGZyb20gJ0BvcGVudGVsZW1ldHJ5L2V4cG9ydGVyLWxvZ3Mtb3RscC1odHRwJztcclxuaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gJ0BvcGVudGVsZW1ldHJ5L2FwaSc7XHJcblxyXG4vKipcclxuICogQ3VzdG9tIExvZ1JlY29yZFByb2Nlc3NvciB0aGF0IGVuc3VyZXMgc3luY2hyb25vdXMgZXhwb3J0IGZvciBBV1MgTGFtYmRhXHJcbiAqXHJcbiAqIFRoaXMgcHJvY2Vzc29yIHdyYXBzIHRoZSBPVExQIGV4cG9ydGVyIGFuZCBlbnN1cmVzIHRoYXQgbG9ncyBhcmUgYWN0dWFsbHlcclxuICogZXhwb3J0ZWQgc3luY2hyb25vdXNseSBieSBpbW1lZGlhdGVseSBjYWxsaW5nIGV4cG9ydCgpIGFuZCB3YWl0aW5nIGZvciBpdFxyXG4gKiB0byBjb21wbGV0ZSwgcmF0aGVyIHRoYW4gcmVseWluZyBvbiBTaW1wbGVMb2dSZWNvcmRQcm9jZXNzb3Igd2hpY2ggbWF5IG5vdFxyXG4gKiBwcm9wZXJseSBhd2FpdCB0aGUgYXN5bmMgSFRUUCByZXF1ZXN0IGluIExhbWJkYSBlbnZpcm9ubWVudHMuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgVHNlZFN5bmNMb2dSZWNvcmRQcm9jZXNzb3IgaW1wbGVtZW50cyBMb2dSZWNvcmRQcm9jZXNzb3Ige1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZXhwb3J0ZXI6IE9UTFBMb2dFeHBvcnRlcjtcclxuICBwcml2YXRlIHJlYWRvbmx5IHBlbmRpbmdFeHBvcnRzOiBQcm9taXNlPHZvaWQ+W10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoZXhwb3J0ZXI6IE9UTFBMb2dFeHBvcnRlcikge1xyXG4gICAgdGhpcy5leHBvcnRlciA9IGV4cG9ydGVyO1xyXG4gIH1cclxuXHJcbiAgb25FbWl0KGxvZ1JlY29yZDogUmVhZGFibGVMb2dSZWNvcmQsIF9jb250ZXh0PzogQ29udGV4dCk6IHZvaWQge1xyXG4gICAgLy8gRXhwb3J0IGltbWVkaWF0ZWx5IGFuZCB0cmFjayB0aGUgcHJvbWlzZVxyXG4gICAgLy8gVGhlIGV4cG9ydCBtZXRob2QgcmV0dXJucyB2b2lkLCBidXQgaW50ZXJuYWxseSB0cmlnZ2VycyBhc3luYyBIVFRQIHJlcXVlc3RcclxuICAgIC8vIFdlIG5lZWQgdG8gd3JhcCBpdCB0byB0cmFjayBjb21wbGV0aW9uXHJcbiAgICBjb25zdCBleHBvcnRQcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICB0aGlzLmV4cG9ydGVyLmV4cG9ydChbbG9nUmVjb3JkXSwgKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQuY29kZSA9PT0gMCkge1xyXG4gICAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxyXG4gICAgICAgICAgICAnW1N5bmNMb2dSZWNvcmRQcm9jZXNzb3JdIEV4cG9ydCBmYWlsZWQ6JyxcclxuICAgICAgICAgICAgcmVzdWx0LmVycm9yXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgcmVqZWN0KFxyXG4gICAgICAgICAgICByZXN1bHQuZXJyb3IgaW5zdGFuY2VvZiBFcnJvclxyXG4gICAgICAgICAgICAgID8gcmVzdWx0LmVycm9yXHJcbiAgICAgICAgICAgICAgOiBuZXcgRXJyb3IoU3RyaW5nKHJlc3VsdC5lcnJvcikpXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KVxyXG4gICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnBlbmRpbmdFeHBvcnRzLmluZGV4T2YoZXhwb3J0UHJvbWlzZSk7XHJcbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICAgIHRoaXMucGVuZGluZ0V4cG9ydHMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIC5jYXRjaCgoZXJyb3I6IHVua25vd24pID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdbU3luY0xvZ1JlY29yZFByb2Nlc3Nvcl0gRXhwb3J0IGVycm9yOicsIGVycm9yKTtcclxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMucGVuZGluZ0V4cG9ydHMuaW5kZXhPZihleHBvcnRQcm9taXNlKTtcclxuICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICAgICAgdGhpcy5wZW5kaW5nRXhwb3J0cy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgdGhpcy5wZW5kaW5nRXhwb3J0cy5wdXNoKGV4cG9ydFByb21pc2UpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZm9yY2VGbHVzaCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICBgW1N5bmNMb2dSZWNvcmRQcm9jZXNzb3JdIGZvcmNlRmx1c2ggY2FsbGVkIHdpdGggJHt0aGlzLnBlbmRpbmdFeHBvcnRzLmxlbmd0aH0gcGVuZGluZyBleHBvcnRzYFxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAodGhpcy5wZW5kaW5nRXhwb3J0cy5sZW5ndGggPT09IDApIHtcclxuICAgICAgY29uc29sZS5sb2coJ1tTeW5jTG9nUmVjb3JkUHJvY2Vzc29yXSBObyBwZW5kaW5nIGV4cG9ydHMgdG8gZmx1c2gnKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIC8vIFdhaXQgZm9yIGFsbCBwZW5kaW5nIGV4cG9ydHMgdG8gY29tcGxldGVcclxuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5wZW5kaW5nRXhwb3J0cyk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdbU3luY0xvZ1JlY29yZFByb2Nlc3Nvcl0gQWxsIHBlbmRpbmcgZXhwb3J0cyBjb21wbGV0ZWQnKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tTeW5jTG9nUmVjb3JkUHJvY2Vzc29yXSBFcnJvciBkdXJpbmcgZm9yY2VGbHVzaDonLCBlcnJvcik7XHJcbiAgICAgIHRocm93IGVycm9yO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgc2h1dGRvd24oKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zb2xlLmxvZygnW1N5bmNMb2dSZWNvcmRQcm9jZXNzb3JdIFNodXR0aW5nIGRvd24uLi4nKTtcclxuICAgIGF3YWl0IHRoaXMuZm9yY2VGbHVzaCgpO1xyXG4gICAgYXdhaXQgdGhpcy5leHBvcnRlci5zaHV0ZG93bigpO1xyXG4gICAgY29uc29sZS5sb2coJ1tTeW5jTG9nUmVjb3JkUHJvY2Vzc29yXSBTaHV0ZG93biBjb21wbGV0ZScpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function checkIfIsWorking(): string;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.checkIfIsWorking = checkIfIsWorking;
|
|
4
|
-
function checkIfIsWorking() {
|
|
5
|
-
console.log('I am working');
|
|
6
|
-
return 'I am working';
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2staWYtaXMtd29ya2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jaGVjay1pZi1pcy13b3JraW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNENBR0M7QUFIRCxTQUFnQixnQkFBZ0I7SUFDOUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM1QixPQUFPLGNBQWMsQ0FBQztBQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNoZWNrSWZJc1dvcmtpbmcoKSB7XHJcbiAgY29uc29sZS5sb2coJ0kgYW0gd29ya2luZycpO1xyXG4gIHJldHVybiAnSSBhbSB3b3JraW5nJztcclxufVxyXG4iXX0=
|