@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.
Files changed (57) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/core/__tests__/logger-types.test.d.ts +1 -0
  3. package/dist/core/__tests__/logger-types.test.js +325 -0
  4. package/dist/core/__tests__/logger.test.d.ts +1 -0
  5. package/dist/core/__tests__/logger.test.js +337 -0
  6. package/dist/core/__tests__/tracer.test.d.ts +1 -0
  7. package/dist/core/__tests__/tracer.test.js +330 -0
  8. package/dist/core/index.d.ts +3 -1
  9. package/dist/core/index.js +4 -2
  10. package/dist/core/logger-types.js +3 -0
  11. package/dist/core/logger.d.ts +1 -1
  12. package/dist/core/logger.js +1 -1
  13. package/dist/core/tracer-types.d.ts +50 -0
  14. package/dist/core/tracer-types.js +3 -0
  15. package/dist/core/tracer.d.ts +10 -0
  16. package/dist/core/tracer.js +114 -0
  17. package/dist/index.d.ts +3 -1
  18. package/dist/index.js +4 -2
  19. package/dist/sst/__tests__/telemetry.test.d.ts +1 -0
  20. package/dist/sst/__tests__/telemetry.test.js +138 -0
  21. package/dist/sst/index.js +1 -1
  22. package/dist/sst/middy/index.js +1 -1
  23. package/dist/sst/middy/middleware.d.ts +1 -1
  24. package/dist/sst/middy/middleware.js +54 -69
  25. package/dist/sst/telemetry.d.ts +2 -1
  26. package/dist/sst/telemetry.js +12 -2
  27. package/dist/telemetry/sst/middy/middleware.d.ts +1 -1
  28. package/dist/telemetry/sst/middy/middleware.js +4 -4
  29. package/dist/tsed/__tests__/config.test.d.ts +1 -0
  30. package/dist/tsed/__tests__/config.test.js +146 -0
  31. package/dist/tsed/__tests__/service.test.d.ts +1 -0
  32. package/dist/tsed/__tests__/service.test.js +63 -0
  33. package/dist/tsed/config.d.ts +6 -0
  34. package/dist/tsed/config.js +65 -12
  35. package/dist/tsed/index.d.ts +1 -0
  36. package/dist/tsed/index.js +2 -1
  37. package/dist/tsed/log-telemetry.js +125 -10
  38. package/dist/tsed/service.d.ts +2 -0
  39. package/dist/tsed/service.js +20 -1
  40. package/dist/tsed/sync-log-record-processor.js +1 -1
  41. package/package.json +1 -1
  42. package/dist/check-if-is-working.d.ts +0 -1
  43. package/dist/check-if-is-working.js +0 -8
  44. package/dist/core/types.js +0 -3
  45. package/dist/services/index.d.ts +0 -1
  46. package/dist/services/index.js +0 -18
  47. package/dist/services/telemetry/config.d.ts +0 -20
  48. package/dist/services/telemetry/config.js +0 -113
  49. package/dist/services/telemetry/external-service.d.ts +0 -20
  50. package/dist/services/telemetry/external-service.js +0 -69
  51. package/dist/services/telemetry/index.d.ts +0 -3
  52. package/dist/services/telemetry/index.js +0 -20
  53. package/dist/services/telemetry/sync-log-record-processor.d.ts +0 -11
  54. package/dist/services/telemetry/sync-log-record-processor.js +0 -74
  55. package/dist/telemetry.d.ts +0 -1
  56. package/dist/telemetry.js +0 -81
  57. /package/dist/core/{types.d.ts → logger-types.d.ts} +0 -0
@@ -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
- yield this.loggerProvider.forceFlush();
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 logs:', error);
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
- yield this.loggerProvider.shutdown();
104
- this.initialized = false;
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==
@@ -1,3 +1,4 @@
1
1
  export * from './config';
2
2
  export * from './service';
3
3
  export * from './log-telemetry';
4
+ export * from './sync-log-record-processor';
@@ -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
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVsZW1ldHJ5L3RzZWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUF5QjtBQUN6Qiw0Q0FBMEI7QUFDMUIsa0RBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb25maWcnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xvZy10ZWxlbWV0cnknO1xyXG4iXX0=
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('[LogTelemetry] Context not found, executing without telemetry');
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
- 'LogTelemetry - Failed to get TelemetryService from injector': error,
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('[LogTelemetry] TelemetryService not available, executing without telemetry');
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
- (_d = $ctx.logger) === null || _d === void 0 ? void 0 : _d.info('Error caught, sending to telemetry');
51
- const request = $ctx.request;
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: (_e = loggedUser === null || loggedUser === void 0 ? void 0 : loggedUser.account) === null || _e === void 0 ? void 0 : _e.uid,
59
- applicationUid: (_f = loggedUser === null || loggedUser === void 0 ? void 0 : loggedUser.application) === null || _f === void 0 ? void 0 : _f.uid,
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
- } }, userInfo), { requestId: $ctx.id, awsRequestId: (_g = $ctx.context) === null || _g === void 0 ? void 0 : _g.awsRequestId, endpoint: request.url, method: request.method, controller: controllerName, controllerMethod: methodName }));
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
@@ -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
  }
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90c2VkL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaUNBQTZEO0FBQzdELG1FQUE4RDtBQUM5RCxxQ0FBaUQ7QUFDakQsa0NBQXlEO0FBQ3pELDRDQUFvRDtBQWlCN0MsSUFBTSxvQkFBb0IsR0FBMUIsTUFBTSxvQkFBb0I7SUFLL0IsWUFFRSxpQkFBeUQ7UUFBeEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF1QjtRQUxuRCxtQkFBYyxHQUEwQixJQUFJLENBQUM7UUFDN0MsbUJBQWMsR0FBMEIsSUFBSSxDQUFDO0lBS2xELENBQUM7SUFFSSxTQUFTOztRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUM1QyxNQUFBLElBQUksQ0FBQyxJQUFJLDBDQUFFLE1BQU0sQ0FBQyxJQUFJLENBQ3BCLHFEQUFxRCxDQUN0RCxDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNsRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3BCLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUVELE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQ3pDLHFCQUFxQixFQUNyQixPQUFPLENBQ1IsQ0FBQztZQUdGLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLGNBQWMsQ0FBQztZQUMvRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUkscUJBQWMsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBRU8sU0FBUzs7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7WUFDNUMsTUFBQSxJQUFJLENBQUMsSUFBSSwwQ0FBRSxNQUFNLENBQUMsSUFBSSxDQUNwQix1REFBdUQsQ0FDeEQsQ0FBQztZQUNGLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDbEUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUNwQixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFFRCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksSUFBSSxjQUFjLENBQUM7WUFDL0QsTUFBTSxVQUFVLEdBQUcsV0FBSyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLHFCQUFjLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3BFLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVZLFFBQVEsQ0FBQyxJQUFrQjs7O1lBQ3RDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ1osT0FBTztZQUNULENBQUM7WUFFRCxJQUFJLENBQUM7Z0JBQ0gsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksYUFBYSxDQUFDO2dCQUMvQyxJQUFJLEtBQUssS0FBSyxNQUFNO29CQUFFLEtBQUssR0FBRyxZQUFZLENBQUM7Z0JBRTNDLE1BQUEsSUFBSSxDQUFDLElBQUksMENBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO2dCQUV2RCxNQUFNLE1BQU0sQ0FBQyxRQUFRLENBQUM7b0JBQ3BCLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU87b0JBQzNCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztvQkFDakIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLGNBQWM7b0JBQ3ZELFdBQVcsRUFBRSxLQUFLO29CQUNsQixJQUFJLEVBQUU7d0JBQ0osUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO3dCQUN2QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07d0JBQ25CLFVBQVUsRUFBRyxJQUFJLENBQUMsS0FBYSxDQUFDLE1BQU0sSUFBSSxHQUFHO3FCQUM5QztvQkFDRCxJQUFJLEVBQUU7d0JBQ0osY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO3dCQUNuQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7d0JBQzNCLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztxQkFDcEM7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUzt3QkFDekIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO3dCQUMvQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7d0JBQzNCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7cUJBQ3hDO29CQUNELE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztpQkFDdEIsQ0FBQyxDQUFDO2dCQUdILE1BQUEsSUFBSSxDQUFDLElBQUksMENBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO2dCQUN2RCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBRWxDLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUUxQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsY0FBYyxDQUFDO2dCQUVsRCxNQUFBLElBQUksQ0FBQyxJQUFJLDBDQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUM7b0JBQ3JCLG1DQUFtQyxFQUFFO3dCQUNuQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJO3dCQUMxQixPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPO3dCQUMzQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7d0JBQ3ZCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTt3QkFDM0IsTUFBTSxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7d0JBQzdCLGVBQWUsRUFBRSxhQUFhO3FCQUMvQjtpQkFDRixDQUFDLENBQUM7WUFDTCxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixNQUFBLElBQUksQ0FBQyxJQUFJLDBDQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUM7b0JBQ3RCLGtEQUFrRCxFQUFFO3dCQUNsRCxhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPO3dCQUNqQyxjQUFjLEVBQ1osS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQzt3QkFDeEQsS0FBSyxFQUFFLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVM7cUJBQ3hEO2lCQUNGLENBQUMsQ0FBQztZQUVMLENBQUM7UUFDSCxDQUFDO0tBQUE7SUFFWSxZQUFZLENBQ3ZCLEtBQVksRUFDWixPQUE2Qjs7WUFFN0IsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUNsQixLQUFLO2dCQUNMLE9BQU87YUFDUixDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7Q0FDRixDQUFBO0FBdklZLG9EQUFvQjtBQUNKO0lBQTFCLElBQUEsa0JBQWEsR0FBRTs4QkFBaUIsdUNBQWlCO2tEQUFDOytCQUR4QyxvQkFBb0I7SUFEaEMsSUFBQSxlQUFVLEdBQUU7SUFPUixXQUFBLElBQUEsV0FBTSxHQUFFLENBQUE7cUNBQzJCLDhCQUFxQjtHQVBoRCxvQkFBb0IsQ0F1SWhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBJbmplY3RDb250ZXh0IH0gZnJvbSAnQHRzZWQvZGknO1xyXG5pbXBvcnQgeyBTZXJ2ZXJsZXNzQ29udGV4dCB9IGZyb20gJ0B0c2VkL3BsYXRmb3JtLXNlcnZlcmxlc3MnO1xyXG5pbXBvcnQgeyBUc2VkVGVsZW1ldHJ5UHJvdmlkZXIgfSBmcm9tICcuL2NvbmZpZyc7XHJcbmltcG9ydCB7IFN0YW5kYXJkTG9nZ2VyLCBTdGFuZGFyZFRyYWNlciB9IGZyb20gJy4uL2NvcmUnO1xyXG5pbXBvcnQgeyB0cmFjZSwgbWV0cmljcyB9IGZyb20gJ0BvcGVudGVsZW1ldHJ5L2FwaSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yTG9nRGF0YSB7XHJcbiAgZXJyb3I6IEVycm9yO1xyXG4gIGNvbnRleHQ/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1sb2ctcmVjb3JkLXByb2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZWxlbWV0cnkvdHNlZC9zeW5jLWxvZy1yZWNvcmQtcHJvY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQVlBLE1BQWEsMEJBQTBCO0lBSXJDLFlBQVksUUFBeUI7UUFGcEIsbUJBQWMsR0FBb0IsRUFBRSxDQUFDO1FBR3BELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBNEIsRUFBRSxRQUFrQjtRQUlyRCxNQUFNLGFBQWEsR0FBRyxJQUFJLE9BQU8sQ0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUMxRCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQzNDLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDdEIsT0FBTyxFQUFFLENBQUM7Z0JBQ1osQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU8sQ0FBQyxLQUFLLENBQ1gseUNBQXlDLEVBQ3pDLE1BQU0sQ0FBQyxLQUFLLENBQ2IsQ0FBQztvQkFDRixNQUFNLENBQ0osTUFBTSxDQUFDLEtBQUssWUFBWSxLQUFLO3dCQUMzQixDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUs7d0JBQ2QsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDcEMsQ0FBQztnQkFDSixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7YUFDQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDZixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdkMsQ0FBQztRQUNILENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxDQUFDLEtBQWMsRUFBRSxFQUFFO1lBQ3hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0NBQXdDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDL0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDZixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdkMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVLLFVBQVU7O1lBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FDVCxtREFBbUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLGtCQUFrQixDQUNoRyxDQUFDO1lBRUYsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO2dCQUNwRSxPQUFPO1lBQ1QsQ0FBQztZQUVELElBQUksQ0FBQztnQkFFSCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUN2QyxPQUFPLENBQUMsR0FBRyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7WUFDeEUsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxtREFBbUQsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDMUUsTUFBTSxLQUFLLENBQUM7WUFDZCxDQUFDO1FBQ0gsQ0FBQztLQUFBO0lBRUssUUFBUTs7WUFDWixPQUFPLENBQUMsR0FBRyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7WUFDekQsTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDeEIsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQy9CLE9BQU8sQ0FBQyxHQUFHLENBQUMsNENBQTRDLENBQUMsQ0FBQztRQUM1RCxDQUFDO0tBQUE7Q0FDRjtBQXhFRCxnRUF3RUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2dSZWNvcmRQcm9jZXNzb3IsIFJlYWRhYmxlTG9nUmVjb3JkIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvc2RrLWxvZ3MnO1xyXG5pbXBvcnQgeyBPVExQTG9nRXhwb3J0ZXIgfSBmcm9tICdAb3BlbnRlbGVtZXRyeS9leHBvcnRlci1sb2dzLW90bHAtaHR0cCc7XHJcbmltcG9ydCB7IENvbnRleHQgfSBmcm9tICdAb3BlbnRlbGVtZXRyeS9hcGknO1xyXG5cclxuLyoqXHJcbiAqIEN1c3RvbSBMb2dSZWNvcmRQcm9jZXNzb3IgdGhhdCBlbnN1cmVzIHN5bmNocm9ub3VzIGV4cG9ydCBmb3IgQVdTIExhbWJkYVxyXG4gKlxyXG4gKiBUaGlzIHByb2Nlc3NvciB3cmFwcyB0aGUgT1RMUCBleHBvcnRlciBhbmQgZW5zdXJlcyB0aGF0IGxvZ3MgYXJlIGFjdHVhbGx5XHJcbiAqIGV4cG9ydGVkIHN5bmNocm9ub3VzbHkgYnkgaW1tZWRpYXRlbHkgY2FsbGluZyBleHBvcnQoKSBhbmQgd2FpdGluZyBmb3IgaXRcclxuICogdG8gY29tcGxldGUsIHJhdGhlciB0aGFuIHJlbHlpbmcgb24gU2ltcGxlTG9nUmVjb3JkUHJvY2Vzc29yIHdoaWNoIG1heSBub3RcclxuICogcHJvcGVybHkgYXdhaXQgdGhlIGFzeW5jIEhUVFAgcmVxdWVzdCBpbiBMYW1iZGEgZW52aXJvbm1lbnRzLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFRzZWRTeW5jTG9nUmVjb3JkUHJvY2Vzc29yIGltcGxlbWVudHMgTG9nUmVjb3JkUHJvY2Vzc29yIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IGV4cG9ydGVyOiBPVExQTG9nRXhwb3J0ZXI7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBwZW5kaW5nRXhwb3J0czogUHJvbWlzZTx2b2lkPltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKGV4cG9ydGVyOiBPVExQTG9nRXhwb3J0ZXIpIHtcclxuICAgIHRoaXMuZXhwb3J0ZXIgPSBleHBvcnRlcjtcclxuICB9XHJcblxyXG4gIG9uRW1pdChsb2dSZWNvcmQ6IFJlYWRhYmxlTG9nUmVjb3JkLCBfY29udGV4dD86IENvbnRleHQpOiB2b2lkIHtcclxuICAgIC8vIEV4cG9ydCBpbW1lZGlhdGVseSBhbmQgdHJhY2sgdGhlIHByb21pc2VcclxuICAgIC8vIFRoZSBleHBvcnQgbWV0aG9kIHJldHVybnMgdm9pZCwgYnV0IGludGVybmFsbHkgdHJpZ2dlcnMgYXN5bmMgSFRUUCByZXF1ZXN0XHJcbiAgICAvLyBXZSBuZWVkIHRvIHdyYXAgaXQgdG8gdHJhY2sgY29tcGxldGlvblxyXG4gICAgY29uc3QgZXhwb3J0UHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgdGhpcy5leHBvcnRlci5leHBvcnQoW2xvZ1JlY29yZF0sIChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LmNvZGUgPT09IDApIHtcclxuICAgICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcclxuICAgICAgICAgICAgJ1tTeW5jTG9nUmVjb3JkUHJvY2Vzc29yXSBFeHBvcnQgZmFpbGVkOicsXHJcbiAgICAgICAgICAgIHJlc3VsdC5lcnJvclxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHJlamVjdChcclxuICAgICAgICAgICAgcmVzdWx0LmVycm9yIGluc3RhbmNlb2YgRXJyb3JcclxuICAgICAgICAgICAgICA/IHJlc3VsdC5lcnJvclxyXG4gICAgICAgICAgICAgIDogbmV3IEVycm9yKFN0cmluZyhyZXN1bHQuZXJyb3IpKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSlcclxuICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5wZW5kaW5nRXhwb3J0cy5pbmRleE9mKGV4cG9ydFByb21pc2UpO1xyXG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLnBlbmRpbmdFeHBvcnRzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goKGVycm9yOiB1bmtub3duKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignW1N5bmNMb2dSZWNvcmRQcm9jZXNzb3JdIEV4cG9ydCBlcnJvcjonLCBlcnJvcik7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnBlbmRpbmdFeHBvcnRzLmluZGV4T2YoZXhwb3J0UHJvbWlzZSk7XHJcbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICAgIHRoaXMucGVuZGluZ0V4cG9ydHMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMucGVuZGluZ0V4cG9ydHMucHVzaChleHBvcnRQcm9taXNlKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGZvcmNlRmx1c2goKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zb2xlLmxvZyhcclxuICAgICAgYFtTeW5jTG9nUmVjb3JkUHJvY2Vzc29yXSBmb3JjZUZsdXNoIGNhbGxlZCB3aXRoICR7dGhpcy5wZW5kaW5nRXhwb3J0cy5sZW5ndGh9IHBlbmRpbmcgZXhwb3J0c2BcclxuICAgICk7XHJcblxyXG4gICAgaWYgKHRoaXMucGVuZGluZ0V4cG9ydHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdbU3luY0xvZ1JlY29yZFByb2Nlc3Nvcl0gTm8gcGVuZGluZyBleHBvcnRzIHRvIGZsdXNoJyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0cnkge1xyXG4gICAgICAvLyBXYWl0IGZvciBhbGwgcGVuZGluZyBleHBvcnRzIHRvIGNvbXBsZXRlXHJcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKHRoaXMucGVuZGluZ0V4cG9ydHMpO1xyXG4gICAgICBjb25zb2xlLmxvZygnW1N5bmNMb2dSZWNvcmRQcm9jZXNzb3JdIEFsbCBwZW5kaW5nIGV4cG9ydHMgY29tcGxldGVkJyk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdbU3luY0xvZ1JlY29yZFByb2Nlc3Nvcl0gRXJyb3IgZHVyaW5nIGZvcmNlRmx1c2g6JywgZXJyb3IpO1xyXG4gICAgICB0aHJvdyBlcnJvcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIHNodXRkb3duKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc29sZS5sb2coJ1tTeW5jTG9nUmVjb3JkUHJvY2Vzc29yXSBTaHV0dGluZyBkb3duLi4uJyk7XHJcbiAgICBhd2FpdCB0aGlzLmZvcmNlRmx1c2goKTtcclxuICAgIGF3YWl0IHRoaXMuZXhwb3J0ZXIuc2h1dGRvd24oKTtcclxuICAgIGNvbnNvbGUubG9nKCdbU3luY0xvZ1JlY29yZFByb2Nlc3Nvcl0gU2h1dGRvd24gY29tcGxldGUnKTtcclxuICB9XHJcbn1cclxuIl19
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1sb2ctcmVjb3JkLXByb2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90c2VkL3N5bmMtbG9nLXJlY29yZC1wcm9jZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBWUEsTUFBYSwwQkFBMEI7SUFJckMsWUFBWSxRQUF5QjtRQUZwQixtQkFBYyxHQUFvQixFQUFFLENBQUM7UUFHcEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUE0QixFQUFFLFFBQWtCO1FBSXJELE1BQU0sYUFBYSxHQUFHLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzFELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDM0MsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUN0QixPQUFPLEVBQUUsQ0FBQztnQkFDWixDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxDQUFDLEtBQUssQ0FDWCx5Q0FBeUMsRUFDekMsTUFBTSxDQUFDLEtBQUssQ0FDYixDQUFDO29CQUNGLE1BQU0sQ0FDSixNQUFNLENBQUMsS0FBSyxZQUFZLEtBQUs7d0JBQzNCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSzt3QkFDZCxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUNwQyxDQUFDO2dCQUNKLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQzthQUNDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDVCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN6RCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN2QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLENBQUMsS0FBYyxFQUFFLEVBQUU7WUFDeEIsT0FBTyxDQUFDLEtBQUssQ0FBQyx3Q0FBd0MsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMvRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN6RCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN2QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFTCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUssVUFBVTs7WUFDZCxPQUFPLENBQUMsR0FBRyxDQUNULG1EQUFtRCxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sa0JBQWtCLENBQ2hHLENBQUM7WUFFRixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxPQUFPLENBQUMsR0FBRyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7Z0JBQ3BFLE9BQU87WUFDVCxDQUFDO1lBRUQsSUFBSSxDQUFDO2dCQUVILE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQ3ZDLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0RBQXdELENBQUMsQ0FBQztZQUN4RSxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLG1EQUFtRCxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUMxRSxNQUFNLEtBQUssQ0FBQztZQUNkLENBQUM7UUFDSCxDQUFDO0tBQUE7SUFFSyxRQUFROztZQUNaLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkNBQTJDLENBQUMsQ0FBQztZQUN6RCxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDL0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1FBQzVELENBQUM7S0FBQTtDQUNGO0FBeEVELGdFQXdFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvZ1JlY29yZFByb2Nlc3NvciwgUmVhZGFibGVMb2dSZWNvcmQgfSBmcm9tICdAb3BlbnRlbGVtZXRyeS9zZGstbG9ncyc7XHJcbmltcG9ydCB7IE9UTFBMb2dFeHBvcnRlciB9IGZyb20gJ0BvcGVudGVsZW1ldHJ5L2V4cG9ydGVyLWxvZ3Mtb3RscC1odHRwJztcclxuaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gJ0BvcGVudGVsZW1ldHJ5L2FwaSc7XHJcblxyXG4vKipcclxuICogQ3VzdG9tIExvZ1JlY29yZFByb2Nlc3NvciB0aGF0IGVuc3VyZXMgc3luY2hyb25vdXMgZXhwb3J0IGZvciBBV1MgTGFtYmRhXHJcbiAqXHJcbiAqIFRoaXMgcHJvY2Vzc29yIHdyYXBzIHRoZSBPVExQIGV4cG9ydGVyIGFuZCBlbnN1cmVzIHRoYXQgbG9ncyBhcmUgYWN0dWFsbHlcclxuICogZXhwb3J0ZWQgc3luY2hyb25vdXNseSBieSBpbW1lZGlhdGVseSBjYWxsaW5nIGV4cG9ydCgpIGFuZCB3YWl0aW5nIGZvciBpdFxyXG4gKiB0byBjb21wbGV0ZSwgcmF0aGVyIHRoYW4gcmVseWluZyBvbiBTaW1wbGVMb2dSZWNvcmRQcm9jZXNzb3Igd2hpY2ggbWF5IG5vdFxyXG4gKiBwcm9wZXJseSBhd2FpdCB0aGUgYXN5bmMgSFRUUCByZXF1ZXN0IGluIExhbWJkYSBlbnZpcm9ubWVudHMuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgVHNlZFN5bmNMb2dSZWNvcmRQcm9jZXNzb3IgaW1wbGVtZW50cyBMb2dSZWNvcmRQcm9jZXNzb3Ige1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZXhwb3J0ZXI6IE9UTFBMb2dFeHBvcnRlcjtcclxuICBwcml2YXRlIHJlYWRvbmx5IHBlbmRpbmdFeHBvcnRzOiBQcm9taXNlPHZvaWQ+W10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoZXhwb3J0ZXI6IE9UTFBMb2dFeHBvcnRlcikge1xyXG4gICAgdGhpcy5leHBvcnRlciA9IGV4cG9ydGVyO1xyXG4gIH1cclxuXHJcbiAgb25FbWl0KGxvZ1JlY29yZDogUmVhZGFibGVMb2dSZWNvcmQsIF9jb250ZXh0PzogQ29udGV4dCk6IHZvaWQge1xyXG4gICAgLy8gRXhwb3J0IGltbWVkaWF0ZWx5IGFuZCB0cmFjayB0aGUgcHJvbWlzZVxyXG4gICAgLy8gVGhlIGV4cG9ydCBtZXRob2QgcmV0dXJucyB2b2lkLCBidXQgaW50ZXJuYWxseSB0cmlnZ2VycyBhc3luYyBIVFRQIHJlcXVlc3RcclxuICAgIC8vIFdlIG5lZWQgdG8gd3JhcCBpdCB0byB0cmFjayBjb21wbGV0aW9uXHJcbiAgICBjb25zdCBleHBvcnRQcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICB0aGlzLmV4cG9ydGVyLmV4cG9ydChbbG9nUmVjb3JkXSwgKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQuY29kZSA9PT0gMCkge1xyXG4gICAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxyXG4gICAgICAgICAgICAnW1N5bmNMb2dSZWNvcmRQcm9jZXNzb3JdIEV4cG9ydCBmYWlsZWQ6JyxcclxuICAgICAgICAgICAgcmVzdWx0LmVycm9yXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgcmVqZWN0KFxyXG4gICAgICAgICAgICByZXN1bHQuZXJyb3IgaW5zdGFuY2VvZiBFcnJvclxyXG4gICAgICAgICAgICAgID8gcmVzdWx0LmVycm9yXHJcbiAgICAgICAgICAgICAgOiBuZXcgRXJyb3IoU3RyaW5nKHJlc3VsdC5lcnJvcikpXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KVxyXG4gICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnBlbmRpbmdFeHBvcnRzLmluZGV4T2YoZXhwb3J0UHJvbWlzZSk7XHJcbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICAgIHRoaXMucGVuZGluZ0V4cG9ydHMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIC5jYXRjaCgoZXJyb3I6IHVua25vd24pID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdbU3luY0xvZ1JlY29yZFByb2Nlc3Nvcl0gRXhwb3J0IGVycm9yOicsIGVycm9yKTtcclxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMucGVuZGluZ0V4cG9ydHMuaW5kZXhPZihleHBvcnRQcm9taXNlKTtcclxuICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICAgICAgdGhpcy5wZW5kaW5nRXhwb3J0cy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgdGhpcy5wZW5kaW5nRXhwb3J0cy5wdXNoKGV4cG9ydFByb21pc2UpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZm9yY2VGbHVzaCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICBgW1N5bmNMb2dSZWNvcmRQcm9jZXNzb3JdIGZvcmNlRmx1c2ggY2FsbGVkIHdpdGggJHt0aGlzLnBlbmRpbmdFeHBvcnRzLmxlbmd0aH0gcGVuZGluZyBleHBvcnRzYFxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAodGhpcy5wZW5kaW5nRXhwb3J0cy5sZW5ndGggPT09IDApIHtcclxuICAgICAgY29uc29sZS5sb2coJ1tTeW5jTG9nUmVjb3JkUHJvY2Vzc29yXSBObyBwZW5kaW5nIGV4cG9ydHMgdG8gZmx1c2gnKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIC8vIFdhaXQgZm9yIGFsbCBwZW5kaW5nIGV4cG9ydHMgdG8gY29tcGxldGVcclxuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5wZW5kaW5nRXhwb3J0cyk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdbU3luY0xvZ1JlY29yZFByb2Nlc3Nvcl0gQWxsIHBlbmRpbmcgZXhwb3J0cyBjb21wbGV0ZWQnKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tTeW5jTG9nUmVjb3JkUHJvY2Vzc29yXSBFcnJvciBkdXJpbmcgZm9yY2VGbHVzaDonLCBlcnJvcik7XHJcbiAgICAgIHRocm93IGVycm9yO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgc2h1dGRvd24oKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zb2xlLmxvZygnW1N5bmNMb2dSZWNvcmRQcm9jZXNzb3JdIFNodXR0aW5nIGRvd24uLi4nKTtcclxuICAgIGF3YWl0IHRoaXMuZm9yY2VGbHVzaCgpO1xyXG4gICAgYXdhaXQgdGhpcy5leHBvcnRlci5zaHV0ZG93bigpO1xyXG4gICAgY29uc29sZS5sb2coJ1tTeW5jTG9nUmVjb3JkUHJvY2Vzc29yXSBTaHV0ZG93biBjb21wbGV0ZScpO1xyXG4gIH1cclxufVxyXG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mecanizou/telemetry-hub",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "Mecanizou telemetry lib",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -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=