@mecanizou/telemetry-hub 1.3.1 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/dist/core/logger.d.ts +1 -1
- package/dist/core/logger.js +10 -7
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## [1.3.2](https://github.com/mecanizou-eco/telemetry-hub/compare/v1.3.1...v1.3.2) (2026-01-21)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **logger:** f.name and invokation_id ([1213d45](https://github.com/mecanizou-eco/telemetry-hub/commit/1213d45571522b141b6c20d28a5781e3e154698d))
|
|
7
|
+
|
|
1
8
|
## [1.3.1](https://github.com/mecanizou-eco/telemetry-hub/compare/v1.3.0...v1.3.1) (2026-01-21)
|
|
2
9
|
|
|
3
10
|
|
package/dist/core/logger.d.ts
CHANGED
|
@@ -10,8 +10,8 @@ export declare class StandardLogger implements IStandardLogger {
|
|
|
10
10
|
private readonly tracer;
|
|
11
11
|
private readonly defaultAttributes;
|
|
12
12
|
private readonly spanContext;
|
|
13
|
-
private readonly defaultServiceName;
|
|
14
13
|
private readonly environment;
|
|
14
|
+
private defaultServiceName;
|
|
15
15
|
constructor(logger: Logger, tracer: IStandardTracer, scopeAttributes?: Attributes);
|
|
16
16
|
logError(data: LogParams): Promise<void>;
|
|
17
17
|
logInfo(data: LogParams): Promise<void>;
|
package/dist/core/logger.js
CHANGED
|
@@ -33,27 +33,27 @@ class StandardLogger {
|
|
|
33
33
|
}
|
|
34
34
|
logError(data) {
|
|
35
35
|
return __awaiter(this, void 0, void 0, function* () {
|
|
36
|
-
yield this.log(Object.assign(Object.assign(
|
|
36
|
+
yield this.log(Object.assign(Object.assign({ serviceName: this.defaultServiceName, environment: this.environment }, data), { severity: 'ERROR' }));
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
39
|
logInfo(data) {
|
|
40
40
|
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
-
yield this.log(Object.assign(Object.assign(
|
|
41
|
+
yield this.log(Object.assign(Object.assign({ serviceName: this.defaultServiceName, environment: this.environment }, data), { severity: 'INFO' }));
|
|
42
42
|
});
|
|
43
43
|
}
|
|
44
44
|
logWarn(data) {
|
|
45
45
|
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
-
yield this.log(Object.assign(Object.assign(
|
|
46
|
+
yield this.log(Object.assign(Object.assign({ serviceName: this.defaultServiceName, environment: this.environment }, data), { severity: 'WARN' }));
|
|
47
47
|
});
|
|
48
48
|
}
|
|
49
49
|
logDebug(data) {
|
|
50
50
|
return __awaiter(this, void 0, void 0, function* () {
|
|
51
|
-
yield this.log(Object.assign(Object.assign(
|
|
51
|
+
yield this.log(Object.assign(Object.assign({ serviceName: this.defaultServiceName, environment: this.environment }, data), { severity: 'DEBUG' }));
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
54
|
log(data) {
|
|
55
55
|
return __awaiter(this, void 0, void 0, function* () {
|
|
56
|
-
const fullData = Object.assign(Object.assign(
|
|
56
|
+
const fullData = Object.assign(Object.assign({}, data), { serviceName: data.serviceName || this.defaultServiceName, timestamp: new Date().toISOString() });
|
|
57
57
|
const severityMap = {
|
|
58
58
|
ERROR: api_logs_1.SeverityNumber.ERROR,
|
|
59
59
|
WARN: api_logs_1.SeverityNumber.WARN,
|
|
@@ -113,8 +113,11 @@ class StandardLogger {
|
|
|
113
113
|
attributes['aws.request.id'] = data.execution.awsRequestId;
|
|
114
114
|
if (data.execution.functionName)
|
|
115
115
|
attributes['function.name'] = data.execution.functionName;
|
|
116
|
+
this.defaultAttributes['function.name'] = data.execution.functionName;
|
|
116
117
|
if (data.execution.invocationId)
|
|
117
118
|
attributes['function.invocation_id'] = data.execution.invocationId;
|
|
119
|
+
this.defaultAttributes['function.invocation_id'] =
|
|
120
|
+
data.execution.invocationId;
|
|
118
121
|
if (data.execution.controller)
|
|
119
122
|
attributes['controller.name'] = data.execution.controller;
|
|
120
123
|
if (data.execution.controllerMethod)
|
|
@@ -131,8 +134,8 @@ class StandardLogger {
|
|
|
131
134
|
if (data.context) {
|
|
132
135
|
attributes['context'] = JSON.stringify(data.context);
|
|
133
136
|
}
|
|
134
|
-
return Object.fromEntries(Object.entries(Object.assign(Object.assign({},
|
|
137
|
+
return Object.fromEntries(Object.entries(Object.assign(Object.assign({}, this.defaultAttributes), attributes)).filter(([, value]) => value !== undefined && value !== null));
|
|
135
138
|
}
|
|
136
139
|
}
|
|
137
140
|
exports.StandardLogger = StandardLogger;
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvcmUvbG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHNEQUFpRTtBQWVqRSxNQUFhLGNBQWM7SUFRekIsWUFDRSxNQUFjLEVBQ2QsTUFBdUIsRUFDdkIsZUFBNEI7UUFSYixzQkFBaUIsR0FBd0IsRUFBRSxDQUFDO1FBVTNELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWTtZQUNoRCxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZO1lBQzFCLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztRQUV0QixJQUFJLENBQUMsaUJBQWlCLEdBQUc7WUFDdkIsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTztZQUNsRCxTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNO1lBQ2hELGVBQWUsRUFBRSxDQUFBLGVBQWUsYUFBZixlQUFlLHVCQUFmLGVBQWUsQ0FBRyxlQUFlLENBQUMsS0FBSSxrQkFBa0I7WUFDekUsd0JBQXdCLEVBQ3RCLENBQUEsZUFBZSxhQUFmLGVBQWUsdUJBQWYsZUFBZSxDQUFHLHdCQUF3QixDQUFDLEtBQUksdUJBQXVCO1NBQ3pFLENBQUM7UUFFRixJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxhQUFhLENBQUM7UUFDL0MsSUFBSSxLQUFLLEtBQUssTUFBTTtZQUFFLEtBQUssR0FB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QUFVLENBQUM7WUFDNUQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQjtnQkFDakMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQztZQUNwRSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTTtnQkFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDMUUsQ0FBQztRQUdELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVO2dCQUM3QixVQUFVLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7WUFDMUQsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sS0FBSyxTQUFTO2dCQUN4QyxVQUFVLENBQUMsbUJBQW1CLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQztRQUMvRCxDQUFDO1FBR0QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFHRCxPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQ3ZCLE1BQU0sQ0FBQyxPQUFPLGlDQUFNLFVBQVUsR0FBSyxJQUFJLENBQUMsaUJBQWlCLEVBQUcsQ0FBQyxNQUFNLENBQ2pFLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQ3JELENBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXJMRCx3Q0FxTEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXZlcml0eU51bWJlciwgTG9nZ2VyIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvYXBpLWxvZ3MnO1xuaW1wb3J0IHsgSVN0YW5kYXJkTG9nZ2VyLCBTdGFuZGFyZExvZ0RhdGEgfSBmcm9tICcuL2xvZ2dlci10eXBlcyc7XG5pbXBvcnQgeyBJU3RhbmRhcmRUcmFjZXIgfSBmcm9tICcuL3RyYWNlci10eXBlcyc7XG5pbXBvcnQgeyBBdHRyaWJ1dGVzLCBTcGFuIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvYXBpJztcblxuaW50ZXJmYWNlIExvZ1BhcmFtcyBleHRlbmRzIE9taXQ8XG4gIFN0YW5kYXJkTG9nRGF0YSxcbiAgJ3NldmVyaXR5JyB8ICd0aW1lc3RhbXAnIHwgJ3NlcnZpY2VOYW1lJyB8ICdlbnZpcm9ubWVudCdcbj4ge1xuICBlbnZpcm9ubWVudD86IFN0YW5kYXJkTG9nRGF0YVsnZW52aXJvbm1lbnQnXTtcbn1cbi8qKlxuICogTG9nZ2VyIGNvcmUgcXVlIGltcGxlbWVudGEgbyBwYWRyw6NvIGRlIGxvZ3MgZXN0cnV0dXJhZG9zLlxuICogUmVjZWJlIHVtIExvZ2dlclByb3ZpZGVyIGRvIE9wZW5UZWxlbWV0cnkgcGFyYSBlbWl0aXIgb3MgbG9ncy5cbiAqL1xuZXhwb3J0IGNsYXNzIFN0YW5kYXJkTG9nZ2VyIGltcGxlbWVudHMgSVN0YW5kYXJkTG9nZ2VyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IExvZ2dlcjtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFjZXI6IElTdGFuZGFyZFRyYWNlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0QXR0cmlidXRlczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICBwcml2YXRlIHJlYWRvbmx5IHNwYW5Db250ZXh0OiBTcGFuO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRTZXJ2aWNlTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGVudmlyb25tZW50OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbG9nZ2VyOiBMb2dnZXIsXG4gICAgdHJhY2VyOiBJU3RhbmRhcmRUcmFjZXIsXG4gICAgc2NvcGVBdHRyaWJ1dGVzPzogQXR0cmlidXRlc1xuICApIHtcbiAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlcjtcbiAgICB0aGlzLnRyYWNlciA9IHRyYWNlcjtcbiAgICB0aGlzLnNwYW5Db250ZXh0ID0gdGhpcy50cmFjZXIuZ2V0VHJhY2VyKCkuc3RhcnRTcGFuKCdpbml0LWxvZ2dlcicpO1xuICAgIHRoaXMuZGVmYXVsdFNlcnZpY2VOYW1lID0gcHJvY2Vzcy5lbnYuU0VSVklDRV9OQU1FXG4gICAgICA/IHByb2Nlc3MuZW52LlNFUlZJQ0VfTkFNRVxuICAgICAgOiAndW5rbm93bi1zZXJ2aWNlJztcblxuICAgIHRoaXMuZGVmYXVsdEF0dHJpYnV0ZXMgPSB7XG4gICAgICAndHJhY2UuaWQnOiB0aGlzLnNwYW5Db250ZXh0LnNwYW5Db250ZXh0KCkudHJhY2VJZCxcbiAgICAgICdzcGFuLmlkJzogdGhpcy5zcGFuQ29udGV4dC5zcGFuQ29udGV4dCgpLnNwYW5JZCxcbiAgICAgICdmdW5jdGlvbi5uYW1lJzogc2NvcGVBdHRyaWJ1dGVzPy5bJ2Z1bmN0aW9uLm5hbWUnXSB8fCAndW5rbm93bi1mdW5jdGlvbicsXG4gICAgICAnZnVuY3Rpb24uaW52b2NhdGlvbl9pZCc6XG4gICAgICAgIHNjb3BlQXR0cmlidXRlcz8uWydmdW5jdGlvbi5pbnZvY2F0aW9uX2lkJ10gfHwgJ3Vua25vd24taW52b2NhdGlvbi1pZCcsXG4gICAgfTtcblxuICAgIGxldCBzdGFnZSA9IHByb2Nlc3MuZW52LlNUQUdFIHx8ICdkZXZlbG9wbWVudCc7XG4gICAgaWYgKHN0YWdlID09PSAncHJvZCcpIHN0YWdlID0gJ3Byb2R1Y3Rpb24nO1xuXG4gICAgdGhpcy5lbnZpcm9ubWVudCA9IHN0YWdlO1xuICB9XG5cbiAgYXN5bmMgbG9nRXJyb3IoZGF0YTogTG9nUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5sb2coe1xuICAgICAgc2VydmljZU5hbWU6IHRoaXMuZGVmYXVsdFNlcnZpY2VOYW1lLFxuICAgICAgZW52aXJvbm1lbnQ6IHRoaXMuZW52aXJvbm1lbnQsXG4gICAgICAuLi5kYXRhLFxuICAgICAgLi4udGhpcy5kZWZhdWx0QXR0cmlidXRlcyxcbiAgICAgIHNldmVyaXR5OiAnRVJST1InLFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgbG9nSW5mbyhkYXRhOiBMb2dQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmxvZyh7XG4gICAgICBzZXJ2aWNlTmFtZTogdGhpcy5kZWZhdWx0U2VydmljZU5hbWUsXG4gICAgICBlbnZpcm9ubWVudDogdGhpcy5lbnZpcm9ubWVudCxcbiAgICAgIC4uLmRhdGEsXG4gICAgICAuLi50aGlzLmRlZmF1bHRBdHRyaWJ1dGVzLFxuICAgICAgc2V2ZXJpdHk6ICdJTkZPJyxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGxvZ1dhcm4oZGF0YTogTG9nUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5sb2coe1xuICAgICAgc2VydmljZU5hbWU6IHRoaXMuZGVmYXVsdFNlcnZpY2VOYW1lLFxuICAgICAgZW52aXJvbm1lbnQ6IHRoaXMuZW52aXJvbm1lbnQsXG4gICAgICAuLi5kYXRhLFxuICAgICAgLi4udGhpcy5kZWZhdWx0QXR0cmlidXRlcyxcbiAgICAgIHNldmVyaXR5OiAnV0FSTicsXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBsb2dEZWJ1ZyhkYXRhOiBMb2dQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmxvZyh7XG4gICAgICBzZXJ2aWNlTmFtZTogdGhpcy5kZWZhdWx0U2VydmljZU5hbWUsXG4gICAgICBlbnZpcm9ubWVudDogdGhpcy5lbnZpcm9ubWVudCxcbiAgICAgIC4uLmRhdGEsXG4gICAgICAuLi50aGlzLmRlZmF1bHRBdHRyaWJ1dGVzLFxuICAgICAgc2V2ZXJpdHk6ICdERUJVRycsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvZyhcbiAgICBkYXRhOiBPbWl0PFN0YW5kYXJkTG9nRGF0YSwgJ3RpbWVzdGFtcCc+ICYge1xuICAgICAgc2V2ZXJpdHk6IFN0YW5kYXJkTG9nRGF0YVsnc2V2ZXJpdHknXTtcbiAgICB9XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGZ1bGxEYXRhOiBTdGFuZGFyZExvZ0RhdGEgPSB7XG4gICAgICAuLi5kYXRhLFxuICAgICAgLi4udGhpcy5kZWZhdWx0QXR0cmlidXRlcyxcbiAgICAgIHNlcnZpY2VOYW1lOiBkYXRhLnNlcnZpY2VOYW1lIHx8IHRoaXMuZGVmYXVsdFNlcnZpY2VOYW1lLFxuICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgfTtcblxuICAgIGNvbnN0IHNldmVyaXR5TWFwID0ge1xuICAgICAgRVJST1I6IFNldmVyaXR5TnVtYmVyLkVSUk9SLFxuICAgICAgV0FSTjogU2V2ZXJpdHlOdW1iZXIuV0FSTixcbiAgICAgIElORk86IFNldmVyaXR5TnVtYmVyLklORk8sXG4gICAgICBERUJVRzogU2V2ZXJpdHlOdW1iZXIuREVCVUcsXG4gICAgfTtcblxuICAgIGNvbnN0IGxvZ1JlY29yZCA9IHtcbiAgICAgIHNldmVyaXR5TnVtYmVyOiBzZXZlcml0eU1hcFtmdWxsRGF0YS5zZXZlcml0eV0sXG4gICAgICBzZXZlcml0eVRleHQ6IGZ1bGxEYXRhLnNldmVyaXR5LFxuICAgICAgYm9keTogZnVsbERhdGEubWVzc2FnZSxcbiAgICAgIGF0dHJpYnV0ZXM6IHRoaXMuYnVpbGRBdHRyaWJ1dGVzKGZ1bGxEYXRhKSxcbiAgICB9O1xuXG4gICAgdGhpcy5sb2dnZXIuZW1pdChsb2dSZWNvcmQpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEF0dHJpYnV0ZXMoZGF0YTogU3RhbmRhcmRMb2dEYXRhKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgY29uc3QgYXR0cmlidXRlczogUmVjb3JkPHN0cmluZywgYW55PiA9IHtcbiAgICAgIHRpbWVzdGFtcDogZGF0YS50aW1lc3RhbXAsXG4gICAgICAnc2VydmljZS5uYW1lJzogZGF0YS5zZXJ2aWNlTmFtZSxcbiAgICAgICdkZXBsb3ltZW50LmVudmlyb25tZW50Lm5hbWUnOiBkYXRhLmVudmlyb25tZW50LFxuICAgIH07XG5cbiAgICAvLyBJbmZvcm1hw6fDtWVzIGRvIGVycm9cbiAgICBpZiAoZGF0YS5lcnJvcikge1xuICAgICAgYXR0cmlidXRlc1snZXJyb3IudHlwZSddID0gZGF0YS5lcnJvci5uYW1lO1xuICAgICAgYXR0cmlidXRlc1snZXJyb3IubWVzc2FnZSddID0gZGF0YS5lcnJvci5tZXNzYWdlO1xuICAgICAgYXR0cmlidXRlc1snZXJyb3Iuc3RhY2snXSA9IGRhdGEuZXJyb3Iuc3RhY2sgfHwgJyc7XG4gICAgfVxuXG4gICAgLy8gSFRUUFxuICAgIGlmIChkYXRhLmh0dHApIHtcbiAgICAgIGlmIChkYXRhLmh0dHAubWV0aG9kKSBhdHRyaWJ1dGVzWydodHRwLm1ldGhvZCddID0gZGF0YS5odHRwLm1ldGhvZDtcbiAgICAgIGlmIChkYXRhLmh0dHAudXJsKSBhdHRyaWJ1dGVzWydodHRwLnVybCddID0gZGF0YS5odHRwLnVybDtcbiAgICAgIGlmIChkYXRhLmh0dHAuZW5kcG9pbnQpIGF0dHJpYnV0ZXNbJ2h0dHAuZW5kcG9pbnQnXSA9IGRhdGEuaHR0cC5lbmRwb2ludDtcbiAgICAgIGlmIChkYXRhLmh0dHAuc3RhdHVzQ29kZSlcbiAgICAgICAgYXR0cmlidXRlc1snaHR0cC5zdGF0dXNfY29kZSddID0gZGF0YS5odHRwLnN0YXR1c0NvZGU7XG4gICAgICBpZiAoZGF0YS5odHRwLmhlYWRlcnMpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2h0dHAuaGVhZGVycyddID0gSlNPTi5zdHJpbmdpZnkoZGF0YS5odHRwLmhlYWRlcnMpO1xuICAgICAgaWYgKGRhdGEuaHR0cC5ib2R5KVxuICAgICAgICBhdHRyaWJ1dGVzWydodHRwLmJvZHknXSA9IEpTT04uc3RyaW5naWZ5KGRhdGEuaHR0cC5ib2R5KTtcbiAgICAgIGlmIChkYXRhLmh0dHAucGFyYW1zKVxuICAgICAgICBhdHRyaWJ1dGVzWydodHRwLnBhcmFtcyddID0gSlNPTi5zdHJpbmdpZnkoZGF0YS5odHRwLnBhcmFtcyk7XG4gICAgICBpZiAoZGF0YS5odHRwLnF1ZXJ5KVxuICAgICAgICBhdHRyaWJ1dGVzWydodHRwLnF1ZXJ5J10gPSBKU09OLnN0cmluZ2lmeShkYXRhLmh0dHAucXVlcnkpO1xuICAgIH1cblxuICAgIC8vIFVzdcOhcmlvXG4gICAgaWYgKGRhdGEudXNlcikge1xuICAgICAgaWYgKGRhdGEudXNlci5hY2NvdW50VXNlclVpZClcbiAgICAgICAgYXR0cmlidXRlc1snYWNjb3VudFVzZXIudWlkJ10gPSBkYXRhLnVzZXIuYWNjb3VudFVzZXJVaWQ7XG4gICAgICBpZiAoZGF0YS51c2VyLmFjY291bnRVaWQpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2FjY291bnQudWlkJ10gPSBkYXRhLnVzZXIuYWNjb3VudFVpZDtcbiAgICAgIGlmIChkYXRhLnVzZXIuYXBwbGljYXRpb25VaWQpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2FwcGxpY2F0aW9uLnVpZCddID0gZGF0YS51c2VyLmFwcGxpY2F0aW9uVWlkO1xuICAgIH1cblxuICAgIC8vIEV4ZWN1w6fDo29cbiAgICBpZiAoZGF0YS5leGVjdXRpb24pIHtcbiAgICAgIGlmIChkYXRhLmV4ZWN1dGlvbi5yZXF1ZXN0SWQpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ3JlcXVlc3QuaWQnXSA9IGRhdGEuZXhlY3V0aW9uLnJlcXVlc3RJZDtcbiAgICAgIGlmIChkYXRhLmV4ZWN1dGlvbi5hd3NSZXF1ZXN0SWQpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2F3cy5yZXF1ZXN0LmlkJ10gPSBkYXRhLmV4ZWN1dGlvbi5hd3NSZXF1ZXN0SWQ7XG4gICAgICBpZiAoZGF0YS5leGVjdXRpb24uZnVuY3Rpb25OYW1lKVxuICAgICAgICBhdHRyaWJ1dGVzWydmdW5jdGlvbi5uYW1lJ10gPSBkYXRhLmV4ZWN1dGlvbi5mdW5jdGlvbk5hbWU7XG4gICAgICBpZiAoZGF0YS5leGVjdXRpb24uaW52b2NhdGlvbklkKVxuICAgICAgICBhdHRyaWJ1dGVzWydmdW5jdGlvbi5pbnZvY2F0aW9uX2lkJ10gPSBkYXRhLmV4ZWN1dGlvbi5pbnZvY2F0aW9uSWQ7XG4gICAgICBpZiAoZGF0YS5leGVjdXRpb24uY29udHJvbGxlcilcbiAgICAgICAgYXR0cmlidXRlc1snY29udHJvbGxlci5uYW1lJ10gPSBkYXRhLmV4ZWN1dGlvbi5jb250cm9sbGVyO1xuICAgICAgaWYgKGRhdGEuZXhlY3V0aW9uLmNvbnRyb2xsZXJNZXRob2QpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2NvbnRyb2xsZXIubWV0aG9kJ10gPSBkYXRhLmV4ZWN1dGlvbi5jb250cm9sbGVyTWV0aG9kO1xuICAgICAgaWYgKGRhdGEuZXhlY3V0aW9uLm9yaWdpbikgYXR0cmlidXRlc1snb3JpZ2luJ10gPSBkYXRhLmV4ZWN1dGlvbi5vcmlnaW47XG4gICAgfVxuXG4gICAgLy8gUGVyZm9ybWFuY2VcbiAgICBpZiAoZGF0YS5wZXJmb3JtYW5jZSkge1xuICAgICAgaWYgKGRhdGEucGVyZm9ybWFuY2UuZHVyYXRpb25NcylcbiAgICAgICAgYXR0cmlidXRlc1snZHVyYXRpb24ubXMnXSA9IGRhdGEucGVyZm9ybWFuY2UuZHVyYXRpb25NcztcbiAgICAgIGlmIChkYXRhLnBlcmZvcm1hbmNlLnN1Y2Nlc3MgIT09IHVuZGVmaW5lZClcbiAgICAgICAgYXR0cmlidXRlc1snZXhlY3V0aW9uLnN1Y2Nlc3MnXSA9IGRhdGEucGVyZm9ybWFuY2Uuc3VjY2VzcztcbiAgICB9XG5cbiAgICAvLyBDb250ZXh0byBhZGljaW9uYWxcbiAgICBpZiAoZGF0YS5jb250ZXh0KSB7XG4gICAgICBhdHRyaWJ1dGVzWydjb250ZXh0J10gPSBKU09OLnN0cmluZ2lmeShkYXRhLmNvbnRleHQpO1xuICAgIH1cblxuICAgIC8vIEZpbHRyYXIgdmFsb3JlcyB1bmRlZmluZWQvbnVsbFxuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QuZW50cmllcyh7IC4uLmF0dHJpYnV0ZXMsIC4uLnRoaXMuZGVmYXVsdEF0dHJpYnV0ZXMgfSkuZmlsdGVyKFxuICAgICAgICAoWywgdmFsdWVdKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsXG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvcmUvbG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHNEQUFpRTtBQWVqRSxNQUFhLGNBQWM7SUFRekIsWUFDRSxNQUFjLEVBQ2QsTUFBdUIsRUFDdkIsZUFBNEI7UUFSYixzQkFBaUIsR0FBd0IsRUFBRSxDQUFDO1FBVTNELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWTtZQUNoRCxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZO1lBQzFCLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztRQUV0QixJQUFJLENBQUMsaUJBQWlCLEdBQUc7WUFDdkIsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTztZQUNsRCxTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNO1lBQ2hELGVBQWUsRUFBRSxDQUFBLGVBQWUsYUFBZixlQUFlLHVCQUFmLGVBQWUsQ0FBRyxlQUFlLENBQUMsS0FBSSxrQkFBa0I7WUFDekUsd0JBQXdCLEVBQ3RCLENBQUEsZUFBZSxhQUFmLGVBQWUsdUJBQWYsZUFBZSxDQUFHLHdCQUF3QixDQUFDLEtBQUksdUJBQXVCO1NBQ3pFLENBQUM7UUFFRixJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxhQUFhLENBQUM7UUFDL0MsSUFBSSxLQUFLLEtBQUssTUFBTTtZQUFFLEtBQUssR0FB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ZXIgfSBmcm9tICdAb3BlbnRlbGVtZXRyeS9hcGktbG9ncyc7XG5pbXBvcnQgeyBJU3RhbmRhcmRMb2dnZXIsIFN0YW5kYXJkTG9nRGF0YSB9IGZyb20gJy4vbG9nZ2VyLXR5cGVzJztcbmltcG9ydCB7IElTdGFuZGFyZFRyYWNlciB9IGZyb20gJy4vdHJhY2VyLXR5cGVzJztcbmltcG9ydCB7IEF0dHJpYnV0ZXMsIFNwYW4gfSBmcm9tICdAb3BlbnRlbGVtZXRyeS9hcGknO1xuXG5pbnRlcmZhY2UgTG9nUGFyYW1zIGV4dGVuZHMgT21pdDxcbiAgU3RhbmRhcmRMb2dEYXRhLFxuICAnc2V2ZXJpdHknIHwgJ3RpbWVzdGFtcCcgfCAnc2VydmljZU5hbWUnIHwgJ2Vudmlyb25tZW50J1xuPiB7XG4gIGVudmlyb25tZW50PzogU3RhbmRhcmRMb2dEYXRhWydlbnZpcm9ubWVudCddO1xufVxuLyoqXG4gKiBMb2dnZXIgY29yZSBxdWUgaW1wbGVtZW50YSBvIHBhZHLDo28gZGUgbG9ncyBlc3RydXR1cmFkb3MuXG4gKiBSZWNlYmUgdW0gTG9nZ2VyUHJvdmlkZXIgZG8gT3BlblRlbGVtZXRyeSBwYXJhIGVtaXRpciBvcyBsb2dzLlxuICovXG5leHBvcnQgY2xhc3MgU3RhbmRhcmRMb2dnZXIgaW1wbGVtZW50cyBJU3RhbmRhcmRMb2dnZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogTG9nZ2VyO1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYWNlcjogSVN0YW5kYXJkVHJhY2VyO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRBdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gIHByaXZhdGUgcmVhZG9ubHkgc3BhbkNvbnRleHQ6IFNwYW47XG4gIHByaXZhdGUgcmVhZG9ubHkgZW52aXJvbm1lbnQ6IHN0cmluZztcbiAgcHJpdmF0ZSBkZWZhdWx0U2VydmljZU5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBsb2dnZXI6IExvZ2dlcixcbiAgICB0cmFjZXI6IElTdGFuZGFyZFRyYWNlcixcbiAgICBzY29wZUF0dHJpYnV0ZXM/OiBBdHRyaWJ1dGVzXG4gICkge1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyO1xuICAgIHRoaXMudHJhY2VyID0gdHJhY2VyO1xuICAgIHRoaXMuc3BhbkNvbnRleHQgPSB0aGlzLnRyYWNlci5nZXRUcmFjZXIoKS5zdGFydFNwYW4oJ2luaXQtbG9nZ2VyJyk7XG4gICAgdGhpcy5kZWZhdWx0U2VydmljZU5hbWUgPSBwcm9jZXNzLmVudi5TRVJWSUNFX05BTUVcbiAgICAgID8gcHJvY2Vzcy5lbnYuU0VSVklDRV9OQU1FXG4gICAgICA6ICd1bmtub3duLXNlcnZpY2UnO1xuXG4gICAgdGhpcy5kZWZhdWx0QXR0cmlidXRlcyA9IHtcbiAgICAgICd0cmFjZS5pZCc6IHRoaXMuc3BhbkNvbnRleHQuc3BhbkNvbnRleHQoKS50cmFjZUlkLFxuICAgICAgJ3NwYW4uaWQnOiB0aGlzLnNwYW5Db250ZXh0LnNwYW5Db250ZXh0KCkuc3BhbklkLFxuICAgICAgJ2Z1bmN0aW9uLm5hbWUnOiBzY29wZUF0dHJpYnV0ZXM/LlsnZnVuY3Rpb24ubmFtZSddIHx8ICd1bmtub3duLWZ1bmN0aW9uJyxcbiAgICAgICdmdW5jdGlvbi5pbnZvY2F0aW9uX2lkJzpcbiAgICAgICAgc2NvcGVBdHRyaWJ1dGVzPy5bJ2Z1bmN0aW9uLmludm9jYXRpb25faWQnXSB8fCAndW5rbm93bi1pbnZvY2F0aW9uLWlkJyxcbiAgICB9O1xuXG4gICAgbGV0IHN0YWdlID0gcHJvY2Vzcy5lbnYuU1RBR0UgfHwgJ2RldmVsb3BtZW50JztcbiAgICBpZiAoc3RhZ2UgPT09ICdwcm9kJykgc3RhZ2UgPSAncHJvZHVjdGlvbic7XG5cbiAgICB0aGlzLmVudmlyb25tZW50ID0gc3RhZ2U7XG4gIH1cblxuICBhc3luYyBsb2dFcnJvcihkYXRhOiBMb2dQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmxvZyh7XG4gICAgICBzZXJ2aWNlTmFtZTogdGhpcy5kZWZhdWx0U2VydmljZU5hbWUsXG4gICAgICBlbnZpcm9ubWVudDogdGhpcy5lbnZpcm9ubWVudCxcbiAgICAgIC4uLmRhdGEsXG4gICAgICBzZXZlcml0eTogJ0VSUk9SJyxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGxvZ0luZm8oZGF0YTogTG9nUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5sb2coe1xuICAgICAgc2VydmljZU5hbWU6IHRoaXMuZGVmYXVsdFNlcnZpY2VOYW1lLFxuICAgICAgZW52aXJvbm1lbnQ6IHRoaXMuZW52aXJvbm1lbnQsXG4gICAgICAuLi5kYXRhLFxuICAgICAgc2V2ZXJpdHk6ICdJTkZPJyxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGxvZ1dhcm4oZGF0YTogTG9nUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5sb2coe1xuICAgICAgc2VydmljZU5hbWU6IHRoaXMuZGVmYXVsdFNlcnZpY2VOYW1lLFxuICAgICAgZW52aXJvbm1lbnQ6IHRoaXMuZW52aXJvbm1lbnQsXG4gICAgICAuLi5kYXRhLFxuICAgICAgc2V2ZXJpdHk6ICdXQVJOJyxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGxvZ0RlYnVnKGRhdGE6IExvZ1BhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubG9nKHtcbiAgICAgIHNlcnZpY2VOYW1lOiB0aGlzLmRlZmF1bHRTZXJ2aWNlTmFtZSxcbiAgICAgIGVudmlyb25tZW50OiB0aGlzLmVudmlyb25tZW50LFxuICAgICAgLi4uZGF0YSxcbiAgICAgIHNldmVyaXR5OiAnREVCVUcnLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2coXG4gICAgZGF0YTogT21pdDxTdGFuZGFyZExvZ0RhdGEsICd0aW1lc3RhbXAnPiAmIHtcbiAgICAgIHNldmVyaXR5OiBTdGFuZGFyZExvZ0RhdGFbJ3NldmVyaXR5J107XG4gICAgfVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmdWxsRGF0YTogU3RhbmRhcmRMb2dEYXRhID0ge1xuICAgICAgLi4uZGF0YSxcbiAgICAgIHNlcnZpY2VOYW1lOiBkYXRhLnNlcnZpY2VOYW1lIHx8IHRoaXMuZGVmYXVsdFNlcnZpY2VOYW1lLFxuICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgfTtcblxuICAgIGNvbnN0IHNldmVyaXR5TWFwID0ge1xuICAgICAgRVJST1I6IFNldmVyaXR5TnVtYmVyLkVSUk9SLFxuICAgICAgV0FSTjogU2V2ZXJpdHlOdW1iZXIuV0FSTixcbiAgICAgIElORk86IFNldmVyaXR5TnVtYmVyLklORk8sXG4gICAgICBERUJVRzogU2V2ZXJpdHlOdW1iZXIuREVCVUcsXG4gICAgfTtcblxuICAgIGNvbnN0IGxvZ1JlY29yZCA9IHtcbiAgICAgIHNldmVyaXR5TnVtYmVyOiBzZXZlcml0eU1hcFtmdWxsRGF0YS5zZXZlcml0eV0sXG4gICAgICBzZXZlcml0eVRleHQ6IGZ1bGxEYXRhLnNldmVyaXR5LFxuICAgICAgYm9keTogZnVsbERhdGEubWVzc2FnZSxcbiAgICAgIGF0dHJpYnV0ZXM6IHRoaXMuYnVpbGRBdHRyaWJ1dGVzKGZ1bGxEYXRhKSxcbiAgICB9O1xuXG4gICAgdGhpcy5sb2dnZXIuZW1pdChsb2dSZWNvcmQpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEF0dHJpYnV0ZXMoZGF0YTogU3RhbmRhcmRMb2dEYXRhKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgY29uc3QgYXR0cmlidXRlczogUmVjb3JkPHN0cmluZywgYW55PiA9IHtcbiAgICAgIHRpbWVzdGFtcDogZGF0YS50aW1lc3RhbXAsXG4gICAgICAnc2VydmljZS5uYW1lJzogZGF0YS5zZXJ2aWNlTmFtZSxcbiAgICAgICdkZXBsb3ltZW50LmVudmlyb25tZW50Lm5hbWUnOiBkYXRhLmVudmlyb25tZW50LFxuICAgIH07XG5cbiAgICAvLyBJbmZvcm1hw6fDtWVzIGRvIGVycm9cbiAgICBpZiAoZGF0YS5lcnJvcikge1xuICAgICAgYXR0cmlidXRlc1snZXJyb3IudHlwZSddID0gZGF0YS5lcnJvci5uYW1lO1xuICAgICAgYXR0cmlidXRlc1snZXJyb3IubWVzc2FnZSddID0gZGF0YS5lcnJvci5tZXNzYWdlO1xuICAgICAgYXR0cmlidXRlc1snZXJyb3Iuc3RhY2snXSA9IGRhdGEuZXJyb3Iuc3RhY2sgfHwgJyc7XG4gICAgfVxuXG4gICAgLy8gSFRUUFxuICAgIGlmIChkYXRhLmh0dHApIHtcbiAgICAgIGlmIChkYXRhLmh0dHAubWV0aG9kKSBhdHRyaWJ1dGVzWydodHRwLm1ldGhvZCddID0gZGF0YS5odHRwLm1ldGhvZDtcbiAgICAgIGlmIChkYXRhLmh0dHAudXJsKSBhdHRyaWJ1dGVzWydodHRwLnVybCddID0gZGF0YS5odHRwLnVybDtcbiAgICAgIGlmIChkYXRhLmh0dHAuZW5kcG9pbnQpIGF0dHJpYnV0ZXNbJ2h0dHAuZW5kcG9pbnQnXSA9IGRhdGEuaHR0cC5lbmRwb2ludDtcbiAgICAgIGlmIChkYXRhLmh0dHAuc3RhdHVzQ29kZSlcbiAgICAgICAgYXR0cmlidXRlc1snaHR0cC5zdGF0dXNfY29kZSddID0gZGF0YS5odHRwLnN0YXR1c0NvZGU7XG4gICAgICBpZiAoZGF0YS5odHRwLmhlYWRlcnMpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2h0dHAuaGVhZGVycyddID0gSlNPTi5zdHJpbmdpZnkoZGF0YS5odHRwLmhlYWRlcnMpO1xuICAgICAgaWYgKGRhdGEuaHR0cC5ib2R5KVxuICAgICAgICBhdHRyaWJ1dGVzWydodHRwLmJvZHknXSA9IEpTT04uc3RyaW5naWZ5KGRhdGEuaHR0cC5ib2R5KTtcbiAgICAgIGlmIChkYXRhLmh0dHAucGFyYW1zKVxuICAgICAgICBhdHRyaWJ1dGVzWydodHRwLnBhcmFtcyddID0gSlNPTi5zdHJpbmdpZnkoZGF0YS5odHRwLnBhcmFtcyk7XG4gICAgICBpZiAoZGF0YS5odHRwLnF1ZXJ5KVxuICAgICAgICBhdHRyaWJ1dGVzWydodHRwLnF1ZXJ5J10gPSBKU09OLnN0cmluZ2lmeShkYXRhLmh0dHAucXVlcnkpO1xuICAgIH1cblxuICAgIC8vIFVzdcOhcmlvXG4gICAgaWYgKGRhdGEudXNlcikge1xuICAgICAgaWYgKGRhdGEudXNlci5hY2NvdW50VXNlclVpZClcbiAgICAgICAgYXR0cmlidXRlc1snYWNjb3VudFVzZXIudWlkJ10gPSBkYXRhLnVzZXIuYWNjb3VudFVzZXJVaWQ7XG4gICAgICBpZiAoZGF0YS51c2VyLmFjY291bnRVaWQpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2FjY291bnQudWlkJ10gPSBkYXRhLnVzZXIuYWNjb3VudFVpZDtcbiAgICAgIGlmIChkYXRhLnVzZXIuYXBwbGljYXRpb25VaWQpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2FwcGxpY2F0aW9uLnVpZCddID0gZGF0YS51c2VyLmFwcGxpY2F0aW9uVWlkO1xuICAgIH1cblxuICAgIC8vIEV4ZWN1w6fDo29cbiAgICBpZiAoZGF0YS5leGVjdXRpb24pIHtcbiAgICAgIGlmIChkYXRhLmV4ZWN1dGlvbi5yZXF1ZXN0SWQpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ3JlcXVlc3QuaWQnXSA9IGRhdGEuZXhlY3V0aW9uLnJlcXVlc3RJZDtcbiAgICAgIGlmIChkYXRhLmV4ZWN1dGlvbi5hd3NSZXF1ZXN0SWQpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2F3cy5yZXF1ZXN0LmlkJ10gPSBkYXRhLmV4ZWN1dGlvbi5hd3NSZXF1ZXN0SWQ7XG4gICAgICBpZiAoZGF0YS5leGVjdXRpb24uZnVuY3Rpb25OYW1lKVxuICAgICAgICBhdHRyaWJ1dGVzWydmdW5jdGlvbi5uYW1lJ10gPSBkYXRhLmV4ZWN1dGlvbi5mdW5jdGlvbk5hbWU7XG4gICAgICB0aGlzLmRlZmF1bHRBdHRyaWJ1dGVzWydmdW5jdGlvbi5uYW1lJ10gPSBkYXRhLmV4ZWN1dGlvbi5mdW5jdGlvbk5hbWU7XG4gICAgICBpZiAoZGF0YS5leGVjdXRpb24uaW52b2NhdGlvbklkKVxuICAgICAgICBhdHRyaWJ1dGVzWydmdW5jdGlvbi5pbnZvY2F0aW9uX2lkJ10gPSBkYXRhLmV4ZWN1dGlvbi5pbnZvY2F0aW9uSWQ7XG4gICAgICB0aGlzLmRlZmF1bHRBdHRyaWJ1dGVzWydmdW5jdGlvbi5pbnZvY2F0aW9uX2lkJ10gPVxuICAgICAgICBkYXRhLmV4ZWN1dGlvbi5pbnZvY2F0aW9uSWQ7XG4gICAgICBpZiAoZGF0YS5leGVjdXRpb24uY29udHJvbGxlcilcbiAgICAgICAgYXR0cmlidXRlc1snY29udHJvbGxlci5uYW1lJ10gPSBkYXRhLmV4ZWN1dGlvbi5jb250cm9sbGVyO1xuICAgICAgaWYgKGRhdGEuZXhlY3V0aW9uLmNvbnRyb2xsZXJNZXRob2QpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2NvbnRyb2xsZXIubWV0aG9kJ10gPSBkYXRhLmV4ZWN1dGlvbi5jb250cm9sbGVyTWV0aG9kO1xuICAgICAgaWYgKGRhdGEuZXhlY3V0aW9uLm9yaWdpbikgYXR0cmlidXRlc1snb3JpZ2luJ10gPSBkYXRhLmV4ZWN1dGlvbi5vcmlnaW47XG4gICAgfVxuXG4gICAgLy8gUGVyZm9ybWFuY2VcbiAgICBpZiAoZGF0YS5wZXJmb3JtYW5jZSkge1xuICAgICAgaWYgKGRhdGEucGVyZm9ybWFuY2UuZHVyYXRpb25NcylcbiAgICAgICAgYXR0cmlidXRlc1snZHVyYXRpb24ubXMnXSA9IGRhdGEucGVyZm9ybWFuY2UuZHVyYXRpb25NcztcbiAgICAgIGlmIChkYXRhLnBlcmZvcm1hbmNlLnN1Y2Nlc3MgIT09IHVuZGVmaW5lZClcbiAgICAgICAgYXR0cmlidXRlc1snZXhlY3V0aW9uLnN1Y2Nlc3MnXSA9IGRhdGEucGVyZm9ybWFuY2Uuc3VjY2VzcztcbiAgICB9XG5cbiAgICAvLyBDb250ZXh0byBhZGljaW9uYWxcbiAgICBpZiAoZGF0YS5jb250ZXh0KSB7XG4gICAgICBhdHRyaWJ1dGVzWydjb250ZXh0J10gPSBKU09OLnN0cmluZ2lmeShkYXRhLmNvbnRleHQpO1xuICAgIH1cblxuICAgIC8vIEZpbHRyYXIgdmFsb3JlcyB1bmRlZmluZWQvbnVsbFxuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QuZW50cmllcyh7IC4uLnRoaXMuZGVmYXVsdEF0dHJpYnV0ZXMsIC4uLmF0dHJpYnV0ZXMgfSkuZmlsdGVyKFxuICAgICAgICAoWywgdmFsdWVdKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsXG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuIl19
|