@rudderstack/integrations-lib 0.2.50 → 0.2.51
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axios_client.d.ts","sourceRoot":"","sources":["../../../src/network/clients/axios_client.ts"],"names":[],"mappings":"AACA,OAAc,EAAE,kBAAkB,EAA6B,MAAM,OAAO,CAAC;AAI7E,OAAO,
|
|
1
|
+
{"version":3,"file":"axios_client.d.ts","sourceRoot":"","sources":["../../../src/network/clients/axios_client.ts"],"names":[],"mappings":"AACA,OAAc,EAAE,kBAAkB,EAA6B,MAAM,OAAO,CAAC;AAI7E,OAAO,EACL,WAAW,EACX,UAAU,EACV,cAAc,EACd,8BAA8B,EAI/B,MAAM,SAAS,CAAC;AAGjB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,WAAY,YAAW,UAAU;IAC5C,OAAO,CAAC,OAAO,CAAqB;IAEpC,OAAO,CAAC,QAAQ,CAAgB;IAEhC,OAAO,CAAC,mBAAmB,CAAiC;gBAEhD,OAAO,CAAC,EAAE,kBAAkB,EAAE,mBAAmB,CAAC,EAAE,8BAA8B;YA4BhF,WAAW;IA0JZ,GAAG,CAAC,CAAC,EAChB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,kBAAkB,EAC5B,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAWb,IAAI,CAAC,CAAC,EACjB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,kBAAkB,EAC5B,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAYb,GAAG,CAAC,CAAC,EAChB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,kBAAkB,EAC5B,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAYb,KAAK,CAAC,CAAC,EAClB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,kBAAkB,EAC5B,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAYb,MAAM,CAAC,CAAC,EACnB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,kBAAkB,EAC5B,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;CAY3B"}
|
|
@@ -66,17 +66,22 @@ class AxiosClient {
|
|
|
66
66
|
// Extract metadata for logging/metrics
|
|
67
67
|
const method = config.method?.toUpperCase() || 'UNKNOWN';
|
|
68
68
|
const url = config.url || 'unknown';
|
|
69
|
+
const body = config.data || undefined;
|
|
69
70
|
const statTags = {
|
|
70
71
|
requestMethod: method,
|
|
71
72
|
endpointPath: url,
|
|
72
73
|
...this.observabilityConfig.defaultStatTags,
|
|
73
74
|
};
|
|
74
75
|
// Optional request logging
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
76
|
+
const requestLogParams = {
|
|
77
|
+
requestDetails: {
|
|
78
|
+
method: method || 'undefined',
|
|
79
|
+
url: url || 'undefined',
|
|
80
|
+
body: body || 'undefined',
|
|
81
|
+
},
|
|
82
|
+
metadata: statTags.metadata || {},
|
|
83
|
+
};
|
|
84
|
+
this.observabilityConfig.logger?.requestLog(`[HTTP] ${method} ${url} request`, requestLogParams);
|
|
80
85
|
try {
|
|
81
86
|
const requestConfig = config;
|
|
82
87
|
const response = await this.instance.request(requestConfig);
|
|
@@ -88,11 +93,15 @@ class AxiosClient {
|
|
|
88
93
|
statusCode: status,
|
|
89
94
|
};
|
|
90
95
|
// Optional response logging
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
+
const responseLogParams = {
|
|
97
|
+
responseDetails: {
|
|
98
|
+
status: status || 0,
|
|
99
|
+
body: data || 'undefined',
|
|
100
|
+
headers: headers || 'undefined',
|
|
101
|
+
},
|
|
102
|
+
metadata: statTags.metadata || {},
|
|
103
|
+
};
|
|
104
|
+
this.observabilityConfig.logger?.responseLog(`[HTTP] ${method} ${url} response`, responseLogParams);
|
|
96
105
|
// Optional success metrics
|
|
97
106
|
this.observabilityConfig.statsClient?.timing('outgoing_request_latency', duration, successStatTags);
|
|
98
107
|
this.observabilityConfig.statsClient?.increment('outgoing_request_count', 1, successStatTags);
|
|
@@ -232,4 +241,4 @@ class AxiosClient {
|
|
|
232
241
|
}
|
|
233
242
|
}
|
|
234
243
|
exports.AxiosClient = AxiosClient;
|
|
235
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpb3NfY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25ldHdvcmsvY2xpZW50cy9heGlvc19jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0NBQWtDO0FBQ2xDLGtEQUE2RTtBQUM3RSxnREFBd0I7QUFDeEIsa0RBQTBCO0FBQzFCLCtDQUF5RDtBQUV6RCx1Q0FBeUM7QUFFekM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBQ0gsTUFBYSxXQUFXO0lBT3RCLFlBQVksT0FBNEIsRUFBRSxtQkFBb0Q7UUFDNUYsTUFBTSxjQUFjLEdBQUc7WUFDckIsT0FBTyxFQUFFLElBQUksR0FBRyxFQUFFO1lBQ2xCLGlIQUFpSDtZQUNqSCxlQUFlLEVBQUUsS0FBSztZQUN0QixzRkFBc0Y7WUFDdEYsZ0JBQWdCLEVBQUUsTUFBTTtZQUN4Qix3R0FBd0c7WUFDeEcsYUFBYSxFQUFFLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRTtZQUMvQiwrRUFBK0U7WUFDL0UsWUFBWSxFQUFFLENBQUM7WUFDZixxRkFBcUY7WUFDckYsU0FBUyxFQUFFLElBQUksY0FBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUM5QyxrSUFBa0k7WUFDbEksVUFBVSxFQUFFLElBQUksZUFBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUNqRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsY0FBYyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDakQsSUFBSSxDQUFDLFFBQVEsR0FBRyxlQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUzQyxxREFBcUQ7UUFDckQsTUFBTSwwQkFBMEIsR0FBbUM7WUFDakUsTUFBTSxFQUFFLFNBQVM7WUFDakIsV0FBVyxFQUFFLFNBQVM7WUFDdEIsZUFBZSxFQUFFLEVBQUU7U0FDcEIsQ0FBQztRQUNGLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLEdBQUcsMEJBQTBCLEVBQUUsR0FBRyxtQkFBbUIsRUFBRSxDQUFDO0lBQ3ZGLENBQUM7SUFFTyxLQUFLLENBQUMsV0FBVyxDQUN2QixNQUEwQixFQUMxQixjQUFrQztRQUVsQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsdUNBQXVDO1FBQ3ZDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLElBQUksU0FBUyxDQUFDO1FBQ3pELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLElBQUksU0FBUyxDQUFDO1FBQ3BDLE1BQU0sUUFBUSxHQUFHO1lBQ2YsYUFBYSxFQUFFLE1BQU07WUFDckIsWUFBWSxFQUFFLEdBQUc7WUFDakIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZTtTQUM1QyxDQUFDO1FBRUYsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLFVBQVUsTUFBTSxJQUFJLEdBQUcsVUFBVSxFQUFFO1lBQzdFLE1BQU07WUFDTixHQUFHO1lBQ0gsUUFBUTtTQUNULENBQUMsQ0FBQztRQUVILElBQUksQ0FBQztZQUNILE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQztZQUM3QixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzVELE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLFFBQVEsQ0FBQztZQUMzQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsU0FBUyxDQUFDO1lBRXhDLHVEQUF1RDtZQUN2RCxNQUFNLGVBQWUsR0FBRztnQkFDdEIsR0FBRyxRQUFRO2dCQUNYLFVBQVUsRUFBRSxNQUFNO2FBQ25CLENBQUM7WUFFRiw0QkFBNEI7WUFDNUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsVUFBVSxNQUFNLElBQUksR0FBRyxXQUFXLEVBQUU7Z0JBQy9FLFVBQVUsRUFBRSxNQUFNO2dCQUNsQixRQUFRO2dCQUNSLFFBQVEsRUFBRSxlQUFlO2FBQzFCLENBQUMsQ0FBQztZQUVILDJCQUEyQjtZQUMzQixJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FDMUMsMEJBQTBCLEVBQzFCLFFBQVEsRUFDUixlQUFlLENBQ2hCLENBQUM7WUFDRixJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLEVBQUUsZUFBZSxDQUFDLENBQUM7WUFFOUYsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxDQUFDO29CQUNILE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDeEMsT0FBTzt3QkFDTCxJQUFJLEVBQUUsU0FBUzt3QkFDZixVQUFVLEVBQUUsTUFBTTt3QkFDbEIsWUFBWSxFQUFFLFVBQVU7d0JBQ3hCLE9BQU87cUJBQ1IsQ0FBQztnQkFDSixDQUFDO2dCQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7b0JBQ2YsTUFBTSxZQUFZLEdBQUcsS0FBYyxDQUFDO29CQUNwQyxPQUFPO3dCQUNMLElBQUksRUFBRSxjQUFjO3dCQUNwQixxQ0FBcUM7d0JBQ3JDLFVBQVUsRUFBRSxZQUFZLENBQUMsTUFBTSxJQUFJLEdBQUc7d0JBQ3RDLE9BQU8sRUFBRSxrQ0FBa0MsWUFBWSxDQUFDLE9BQU8sRUFBRTtxQkFDbEUsQ0FBQztnQkFDSixDQUFDO1lBQ0gsQ0FBQztZQUNELE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUM5RSxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUM7WUFFeEMsMENBQTBDO1lBQzFDLElBQUksZUFBZSxHQUFHLEdBQUcsQ0FBQyxDQUFDLDRDQUE0QztZQUN2RSxJQUFJLGVBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDOUIsTUFBTSxVQUFVLEdBQUcsS0FBbUIsQ0FBQztnQkFDdkMsSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ3hCLGVBQWUsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDL0MsQ0FBQztZQUNILENBQUM7WUFFRCxzRUFBc0U7WUFDdEUsTUFBTSxhQUFhLEdBQUc7Z0JBQ3BCLEdBQUcsUUFBUTtnQkFDWCxVQUFVLEVBQUUsZUFBZTtnQkFDM0IsS0FBSyxFQUFFLElBQUk7YUFDWixDQUFDO1lBRUYseUJBQXlCO1lBQ3pCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsVUFBVSxNQUFNLElBQUksR0FBRyxRQUFRLEVBQUU7Z0JBQ3hFLEtBQUssRUFBRyxLQUFlLENBQUMsT0FBTztnQkFDL0IsUUFBUTtnQkFDUixRQUFRLEVBQUUsYUFBYTthQUN4QixDQUFDLENBQUM7WUFFSCx5QkFBeUI7WUFDekIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxNQUFNLENBQzFDLDBCQUEwQixFQUMxQixRQUFRLEVBQ1IsYUFBYSxDQUNkLENBQUM7WUFDRixJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFFNUYsSUFBSSxlQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQzlCLE1BQU0sVUFBVSxHQUFHLEtBQW1CLENBQUM7Z0JBQ3ZDLElBQUksVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUN4QixNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsVUFBVSxDQUFDO29CQUNoQyxPQUFPO3dCQUNMLElBQUksRUFBRSxtQkFBbUI7d0JBQ3pCLFVBQVUsRUFBRSxRQUFRLENBQUMsTUFBTTt3QkFDM0IsT0FBTyxFQUFFLFFBQVEsQ0FBQyxVQUFVO3dCQUM1QixZQUFZLEVBQUUsUUFBUSxDQUFDLElBQUk7d0JBQzNCLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztxQkFDMUIsQ0FBQztnQkFDSixDQUFDO2dCQUNELElBQUksVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNwQixNQUFNLElBQUksR0FBRyxrQ0FBc0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3JELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzt3QkFDVixPQUFPOzRCQUNMLElBQUksRUFBRSxjQUFjOzRCQUNwQixVQUFVLEVBQUUsR0FBRzs0QkFDZixPQUFPLEVBQUUsaUJBQWlCLFVBQVUsQ0FBQyxPQUFPLEVBQUU7eUJBQy9DLENBQUM7b0JBQ0osQ0FBQztvQkFDRCxPQUFPO3dCQUNMLElBQUksRUFBRSxjQUFjO3dCQUNwQixVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU07d0JBQ3ZCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztxQkFDdEIsQ0FBQztnQkFDSixDQUFDO1lBQ0gsQ0FBQztZQUVELE1BQU0sWUFBWSxHQUFHLEtBQWMsQ0FBQztZQUNwQyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUM7WUFDbkIsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLE9BQU8sSUFBSSxlQUFlLENBQUM7WUFFeEQsT0FBTyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUMvRCxDQUFDO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxHQUFHLENBQ2QsR0FBVyxFQUNYLE9BQTRCLEVBQzVCLGNBQWtDO1FBRWxDLElBQUksTUFBTSxHQUF1QjtZQUMvQixNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUc7U0FDSixDQUFDO1FBQ0YsSUFBSSxJQUFBLGtCQUFVLEVBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsRUFBRSxHQUFHLE1BQU0sRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQ3JDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUksTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTSxLQUFLLENBQUMsSUFBSSxDQUNmLEdBQVcsRUFDWCxJQUFjLEVBQ2QsT0FBNEIsRUFDNUIsY0FBa0M7UUFFbEMsSUFBSSxNQUFNLEdBQXVCO1lBQy9CLE1BQU0sRUFBRSxNQUFNO1lBQ2QsR0FBRztZQUNILElBQUk7U0FDTCxDQUFDO1FBQ0YsSUFBSSxJQUFBLGtCQUFVLEVBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsRUFBRSxHQUFHLE1BQU0sRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQ3JDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUksTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTSxLQUFLLENBQUMsR0FBRyxDQUNkLEdBQVcsRUFDWCxJQUFjLEVBQ2QsT0FBNEIsRUFDNUIsY0FBa0M7UUFFbEMsSUFBSSxNQUFNLEdBQXVCO1lBQy9CLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRztZQUNILElBQUk7U0FDTCxDQUFDO1FBQ0YsSUFBSSxJQUFBLGtCQUFVLEVBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsRUFBRSxHQUFHLE1BQU0sRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQ3JDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUksTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSyxDQUNoQixHQUFXLEVBQ1gsSUFBYyxFQUNkLE9BQTRCLEVBQzVCLGNBQWtDO1FBRWxDLElBQUksTUFBTSxHQUF1QjtZQUMvQixNQUFNLEVBQUUsT0FBTztZQUNmLEdBQUc7WUFDSCxJQUFJO1NBQ0wsQ0FBQztRQUNGLElBQUksSUFBQSxrQkFBVSxFQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDeEIsTUFBTSxHQUFHLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUNyQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFJLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU0sS0FBSyxDQUFDLE1BQU0sQ0FDakIsR0FBVyxFQUNYLE9BQTRCLEVBQzVCLGNBQWtDO1FBRWxDLElBQUksTUFBTSxHQUF1QjtZQUMvQixNQUFNLEVBQUUsUUFBUTtZQUNoQixHQUFHO1NBQ0osQ0FBQztRQUNGLElBQUksSUFBQSxrQkFBVSxFQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDeEIsTUFBTSxHQUFHLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUNyQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFJLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBR0Y7QUFoUUQsa0NBZ1FDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVxdWlyZS1hd2FpdCAqL1xuaW1wb3J0IGF4aW9zLCB7IEF4aW9zUmVxdWVzdENvbmZpZywgQXhpb3NFcnJvciwgQXhpb3NJbnN0YW5jZSB9IGZyb20gJ2F4aW9zJztcbmltcG9ydCBodHRwIGZyb20gJ2h0dHAnO1xuaW1wb3J0IGh0dHBzIGZyb20gJ2h0dHBzJztcbmltcG9ydCB7IE5FVFdPUktfU1RBVFVTX0VSUl9NQVAgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQXBpUmVzcG9uc2UsIEh0dHBDbGllbnQsIFJlc3BvbnNlUGFyc2VyLCBBeGlvc0NsaWVudE9ic2VydmFiaWxpdHlDb25maWcgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGlzTm90RW1wdHkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbi8qKlxuICogQSB3cmFwcGVyIGFyb3VuZCBheGlvcyB0byBtYWtlIGh0dHAgcmVxdWVzdHNcbiAqXG4gKiBAY2xhc3MgQXhpb3NDbGllbnRcbiAqIEBjbGFzc2Rlc2NcbiAqIFRoZSBgQXhpb3NDbGllbnRgIGNsYXNzIGlzIGEgd3JhcHBlciBhcm91bmQgdGhlIGF4aW9zIGxpYnJhcnkgdGhhdCBwcm92aWRlcyBhIHNpbXBsaWZpZWQgaW50ZXJmYWNlIGZvciBtYWtpbmcgSFRUUCByZXF1ZXN0cy4gSXQgaGFuZGxlcyB2YXJpb3VzIHR5cGVzIG9mIGVycm9ycyBhbmQgcHJvdmlkZXMgYSBjb25zaXN0ZW50IHJlc3BvbnNlIGZvcm1hdC5cbiAqXG4gKiBAcGFyYW0ge0F4aW9zUmVxdWVzdENvbmZpZ30gb3B0aW9ucyAtIFRoZSBkZWZhdWx0IG9wdGlvbnMgZm9yIHRoZSBodHRwIGNsaWVudFxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBheGlvc0NsaWVudCA9IG5ldyBBeGlvc0NsaWVudCh7IHRpbWVvdXQ6IDEwMDAgKiAxMCB9KTtcbiAqIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXhpb3NDbGllbnQucG9zdChcImh0dHBzOi8vZXhhbXBsZS5jb21cIiwgeyBmb286IFwiYmFyXCIgfSk7XG4gKiBpZiAocmVzcG9uc2UudHlwZSA9PT0gXCJzdWNjZXNzXCIpIHtcbiAqICAgY29uc29sZS5sb2cocmVzcG9uc2Uuc3RhdHVzQ29kZSk7XG4gKiAgIGNvbnNvbGUubG9nKHJlc3BvbnNlLnJlc3BvbnNlQm9keSk7XG4gKiB9IGVsc2UgaWYgKHJlc3BvbnNlLnR5cGUgPT09IFwiYXBwbGljYXRpb24tZXJyb3JcIikge1xuICogICBjb25zb2xlLmxvZyhyZXNwb25zZS5zdGF0dXNDb2RlKTtcbiAqICAgY29uc29sZS5sb2cocmVzcG9uc2UubWVzc2FnZSk7XG4gKiAgIGNvbnNvbGUubG9nKHJlc3BvbnNlLnJlc3BvbnNlQm9keSk7XG4gKiB9IGVsc2UgaWYgKHJlc3BvbnNlLnR5cGUgPT09IFwiY2xpZW50LWVycm9yXCIpIHtcbiAqICAgY29uc29sZS5sb2cocmVzcG9uc2Uuc3RhdHVzQ29kZSk7XG4gKiAgIGNvbnNvbGUubG9nKHJlc3BvbnNlLm1lc3NhZ2UpO1xuICogfVxuICovXG5leHBvcnQgY2xhc3MgQXhpb3NDbGllbnQgaW1wbGVtZW50cyBIdHRwQ2xpZW50IHtcbiAgcHJpdmF0ZSBvcHRpb25zOiBBeGlvc1JlcXVlc3RDb25maWc7XG5cbiAgcHJpdmF0ZSBpbnN0YW5jZTogQXhpb3NJbnN0YW5jZTtcblxuICBwcml2YXRlIG9ic2VydmFiaWxpdHlDb25maWc6IEF4aW9zQ2xpZW50T2JzZXJ2YWJpbGl0eUNvbmZpZztcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zPzogQXhpb3NSZXF1ZXN0Q29uZmlnLCBvYnNlcnZhYmlsaXR5Q29uZmlnPzogQXhpb3NDbGllbnRPYnNlcnZhYmlsaXR5Q29uZmlnKSB7XG4gICAgY29uc3QgZGVmYXVsdE9wdGlvbnMgPSB7XG4gICAgICB0aW1lb3V0OiAxMDAwICogMTAsXG4gICAgICAvLyBgd2l0aENyZWRlbnRpYWxzYCBpbmRpY2F0ZXMgd2hldGhlciBvciBub3QgY3Jvc3Mtc2l0ZSBBY2Nlc3MtQ29udHJvbCByZXF1ZXN0cyBzaG91bGQgYmUgbWFkZSB1c2luZyBjcmVkZW50aWFsc1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiBmYWxzZSxcbiAgICAgIC8vIGByZXNwb25zZUVuY29kaW5nYCBpbmRpY2F0ZXMgZW5jb2RpbmcgdG8gdXNlIGZvciBkZWNvZGluZyByZXNwb25zZXMgKE5vZGUuanMgb25seSksXG4gICAgICByZXNwb25zZUVuY29kaW5nOiAndXRmOCcsXG4gICAgICAvLyBgbWF4Qm9keUxlbmd0aGAgKE5vZGUgb25seSBvcHRpb24pIGRlZmluZXMgdGhlIG1heCBzaXplIG9mIHRoZSBodHRwIHJlcXVlc3QgY29udGVudCBpbiBieXRlcyBhbGxvd2VkLFxuICAgICAgbWF4Qm9keUxlbmd0aDogMTAwMCAqIDEwMDAgKiAxMCxcbiAgICAgIC8vIGBtYXhSZWRpcmVjdHNgIGRlZmluZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlZGlyZWN0cyB0byBmb2xsb3cgaW4gbm9kZS5qcyxcbiAgICAgIG1heFJlZGlyZWN0czogNSxcbiAgICAgIC8vIGBodHRwQWdlbnRgIGFuZCBgaHR0cHNBZ2VudGAgZGVmaW5lIGEgY3VzdG9tIGFnZW50IHRvIGJlIHVzZWQgd2hlbiBwZXJmb3JtaW5nIGh0dHBcbiAgICAgIGh0dHBBZ2VudDogbmV3IGh0dHAuQWdlbnQoeyBrZWVwQWxpdmU6IHRydWUgfSksXG4gICAgICAvLyBhbmQgaHR0cHMgcmVxdWVzdHMsIHJlc3BlY3RpdmVseSwgaW4gbm9kZS5qcy4gVGhpcyBhbGxvd3Mgb3B0aW9ucyB0byBiZSBhZGRlZCBsaWtlIGBrZWVwQWxpdmVgIHRoYXQgYXJlIG5vdCBlbmFibGVkIGJ5IGRlZmF1bHQuXG4gICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoeyBrZWVwQWxpdmU6IHRydWUgfSksXG4gICAgfTtcbiAgICB0aGlzLm9wdGlvbnMgPSB7IC4uLmRlZmF1bHRPcHRpb25zLCAuLi5vcHRpb25zIH07XG4gICAgdGhpcy5pbnN0YW5jZSA9IGF4aW9zLmNyZWF0ZSh0aGlzLm9wdGlvbnMpO1xuXG4gICAgLy8gTWVyZ2Ugd2l0aCBkZWZhdWx0IGNvbmZpZyB0byBlbGltaW5hdGUgbnVsbCBjaGVja3NcbiAgICBjb25zdCBkZWZhdWx0T2JzZXJ2YWJpbGl0eUNvbmZpZzogQXhpb3NDbGllbnRPYnNlcnZhYmlsaXR5Q29uZmlnID0ge1xuICAgICAgbG9nZ2VyOiB1bmRlZmluZWQsXG4gICAgICBzdGF0c0NsaWVudDogdW5kZWZpbmVkLFxuICAgICAgZGVmYXVsdFN0YXRUYWdzOiB7fSxcbiAgICB9O1xuICAgIHRoaXMub2JzZXJ2YWJpbGl0eUNvbmZpZyA9IHsgLi4uZGVmYXVsdE9ic2VydmFiaWxpdHlDb25maWcsIC4uLm9ic2VydmFiaWxpdHlDb25maWcgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbWFrZVJlcXVlc3Q8VD4oXG4gICAgY29uZmlnOiBBeGlvc1JlcXVlc3RDb25maWcsXG4gICAgcmVzcG9uc2VQYXJzZXI/OiBSZXNwb25zZVBhcnNlcjxUPixcbiAgKTogUHJvbWlzZTxBcGlSZXNwb25zZTxUPj4ge1xuICAgIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgLy8gRXh0cmFjdCBtZXRhZGF0YSBmb3IgbG9nZ2luZy9tZXRyaWNzXG4gICAgY29uc3QgbWV0aG9kID0gY29uZmlnLm1ldGhvZD8udG9VcHBlckNhc2UoKSB8fCAnVU5LTk9XTic7XG4gICAgY29uc3QgdXJsID0gY29uZmlnLnVybCB8fCAndW5rbm93bic7XG4gICAgY29uc3Qgc3RhdFRhZ3MgPSB7XG4gICAgICByZXF1ZXN0TWV0aG9kOiBtZXRob2QsXG4gICAgICBlbmRwb2ludFBhdGg6IHVybCxcbiAgICAgIC4uLnRoaXMub2JzZXJ2YWJpbGl0eUNvbmZpZy5kZWZhdWx0U3RhdFRhZ3MsXG4gICAgfTtcblxuICAgIC8vIE9wdGlvbmFsIHJlcXVlc3QgbG9nZ2luZ1xuICAgIHRoaXMub2JzZXJ2YWJpbGl0eUNvbmZpZy5sb2dnZXI/LnJlcXVlc3RMb2coYFtIVFRQXSAke21ldGhvZH0gJHt1cmx9IHJlcXVlc3RgLCB7XG4gICAgICBtZXRob2QsXG4gICAgICB1cmwsXG4gICAgICBzdGF0VGFncyxcbiAgICB9KTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXF1ZXN0Q29uZmlnID0gY29uZmlnO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmluc3RhbmNlLnJlcXVlc3QocmVxdWVzdENvbmZpZyk7XG4gICAgICBjb25zdCB7IHN0YXR1cywgZGF0YSwgaGVhZGVycyB9ID0gcmVzcG9uc2U7XG4gICAgICBjb25zdCBkdXJhdGlvbiA9IERhdGUubm93KCkgLSBzdGFydFRpbWU7XG5cbiAgICAgIC8vIEFkZCBzdGF0dXMgY29kZSB0byBzdGF0VGFncyBmb3IgYmV0dGVyIG9ic2VydmFiaWxpdHlcbiAgICAgIGNvbnN0IHN1Y2Nlc3NTdGF0VGFncyA9IHtcbiAgICAgICAgLi4uc3RhdFRhZ3MsXG4gICAgICAgIHN0YXR1c0NvZGU6IHN0YXR1cyxcbiAgICAgIH07XG5cbiAgICAgIC8vIE9wdGlvbmFsIHJlc3BvbnNlIGxvZ2dpbmdcbiAgICAgIHRoaXMub2JzZXJ2YWJpbGl0eUNvbmZpZy5sb2dnZXI/LnJlc3BvbnNlTG9nKGBbSFRUUF0gJHttZXRob2R9ICR7dXJsfSByZXNwb25zZWAsIHtcbiAgICAgICAgc3RhdHVzQ29kZTogc3RhdHVzLFxuICAgICAgICBkdXJhdGlvbixcbiAgICAgICAgc3RhdFRhZ3M6IHN1Y2Nlc3NTdGF0VGFncyxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBPcHRpb25hbCBzdWNjZXNzIG1ldHJpY3NcbiAgICAgIHRoaXMub2JzZXJ2YWJpbGl0eUNvbmZpZy5zdGF0c0NsaWVudD8udGltaW5nKFxuICAgICAgICAnb3V0Z29pbmdfcmVxdWVzdF9sYXRlbmN5JyxcbiAgICAgICAgZHVyYXRpb24sXG4gICAgICAgIHN1Y2Nlc3NTdGF0VGFncyxcbiAgICAgICk7XG4gICAgICB0aGlzLm9ic2VydmFiaWxpdHlDb25maWcuc3RhdHNDbGllbnQ/LmluY3JlbWVudCgnb3V0Z29pbmdfcmVxdWVzdF9jb3VudCcsIDEsIHN1Y2Nlc3NTdGF0VGFncyk7XG5cbiAgICAgIGlmIChyZXNwb25zZVBhcnNlcikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHBhcnNlZERhdGEgPSByZXNwb25zZVBhcnNlcihkYXRhKTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgc3RhdHVzQ29kZTogc3RhdHVzLFxuICAgICAgICAgICAgcmVzcG9uc2VCb2R5OiBwYXJzZWREYXRhLFxuICAgICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgICB9O1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnN0IHVua25vd25FcnJvciA9IGVycm9yIGFzIEVycm9yO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiAnY2xpZW50LWVycm9yJyxcbiAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IEVycm9yIGhhcyBzdGF0dXNcbiAgICAgICAgICAgIHN0YXR1c0NvZGU6IHVua25vd25FcnJvci5zdGF0dXMgfHwgNTAwLFxuICAgICAgICAgICAgbWVzc2FnZTogYEZhaWxlZCB0byBwYXJzZSByZXNwb25zZSBkYXRhOiAke3Vua25vd25FcnJvci5tZXNzYWdlfWAsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHsgdHlwZTogJ3N1Y2Nlc3MnLCBzdGF0dXNDb2RlOiBzdGF0dXMsIHJlc3BvbnNlQm9keTogZGF0YSwgaGVhZGVycyB9O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zdCBkdXJhdGlvbiA9IERhdGUubm93KCkgLSBzdGFydFRpbWU7XG5cbiAgICAgIC8vIERldGVybWluZSBzdGF0dXMgY29kZSBmb3IgZXJyb3IgbWV0cmljc1xuICAgICAgbGV0IGVycm9yU3RhdHVzQ29kZSA9IDUwMDsgLy8gRGVmYXVsdCB0byA1MDAgZm9yIG5ldHdvcmsvdW5rbm93biBlcnJvcnNcbiAgICAgIGlmIChheGlvcy5pc0F4aW9zRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgIGNvbnN0IGF4aW9zRXJyb3IgPSBlcnJvciBhcyBBeGlvc0Vycm9yO1xuICAgICAgICBpZiAoYXhpb3NFcnJvci5yZXNwb25zZSkge1xuICAgICAgICAgIGVycm9yU3RhdHVzQ29kZSA9IGF4aW9zRXJyb3IucmVzcG9uc2Uuc3RhdHVzO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEFkZCBzdGF0dXMgY29kZSBhbmQgZXJyb3IgZmxhZyB0byBzdGF0VGFncyBmb3IgYmV0dGVyIG9ic2VydmFiaWxpdHlcbiAgICAgIGNvbnN0IGVycm9yU3RhdFRhZ3MgPSB7XG4gICAgICAgIC4uLnN0YXRUYWdzLFxuICAgICAgICBzdGF0dXNDb2RlOiBlcnJvclN0YXR1c0NvZGUsXG4gICAgICAgIGVycm9yOiB0cnVlLFxuICAgICAgfTtcblxuICAgICAgLy8gT3B0aW9uYWwgZXJyb3IgbG9nZ2luZ1xuICAgICAgdGhpcy5vYnNlcnZhYmlsaXR5Q29uZmlnLmxvZ2dlcj8uZXJyb3I/LihgW0hUVFBdICR7bWV0aG9kfSAke3VybH0gZXJyb3JgLCB7XG4gICAgICAgIGVycm9yOiAoZXJyb3IgYXMgRXJyb3IpLm1lc3NhZ2UsXG4gICAgICAgIGR1cmF0aW9uLFxuICAgICAgICBzdGF0VGFnczogZXJyb3JTdGF0VGFncyxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBPcHRpb25hbCBlcnJvciBtZXRyaWNzXG4gICAgICB0aGlzLm9ic2VydmFiaWxpdHlDb25maWcuc3RhdHNDbGllbnQ/LnRpbWluZyhcbiAgICAgICAgJ291dGdvaW5nX3JlcXVlc3RfbGF0ZW5jeScsXG4gICAgICAgIGR1cmF0aW9uLFxuICAgICAgICBlcnJvclN0YXRUYWdzLFxuICAgICAgKTtcbiAgICAgIHRoaXMub2JzZXJ2YWJpbGl0eUNvbmZpZy5zdGF0c0NsaWVudD8uaW5jcmVtZW50KCdvdXRnb2luZ19yZXF1ZXN0X2NvdW50JywgMSwgZXJyb3JTdGF0VGFncyk7XG5cbiAgICAgIGlmIChheGlvcy5pc0F4aW9zRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgIGNvbnN0IGF4aW9zRXJyb3IgPSBlcnJvciBhcyBBeGlvc0Vycm9yO1xuICAgICAgICBpZiAoYXhpb3NFcnJvci5yZXNwb25zZSkge1xuICAgICAgICAgIGNvbnN0IHsgcmVzcG9uc2UgfSA9IGF4aW9zRXJyb3I7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6ICdhcHBsaWNhdGlvbi1lcnJvcicsXG4gICAgICAgICAgICBzdGF0dXNDb2RlOiByZXNwb25zZS5zdGF0dXMsXG4gICAgICAgICAgICBtZXNzYWdlOiByZXNwb25zZS5zdGF0dXNUZXh0LFxuICAgICAgICAgICAgcmVzcG9uc2VCb2R5OiByZXNwb25zZS5kYXRhLFxuICAgICAgICAgICAgaGVhZGVyczogcmVzcG9uc2UuaGVhZGVycyxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChheGlvc0Vycm9yLmNvZGUpIHtcbiAgICAgICAgICBjb25zdCByZXNwID0gTkVUV09SS19TVEFUVVNfRVJSX01BUFtheGlvc0Vycm9yLmNvZGVdO1xuICAgICAgICAgIGlmICghcmVzcCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgdHlwZTogJ2NsaWVudC1lcnJvcicsXG4gICAgICAgICAgICAgIHN0YXR1c0NvZGU6IDUwMCxcbiAgICAgICAgICAgICAgbWVzc2FnZTogYFVua25vd24gRXJyb3I6JHtheGlvc0Vycm9yLm1lc3NhZ2V9YCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiAnY2xpZW50LWVycm9yJyxcbiAgICAgICAgICAgIHN0YXR1c0NvZGU6IHJlc3Auc3RhdHVzLFxuICAgICAgICAgICAgbWVzc2FnZTogcmVzcC5tZXNzYWdlLFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgdW5rbm93bkVycm9yID0gZXJyb3IgYXMgRXJyb3I7XG4gICAgICBjb25zdCBzdGF0dXMgPSA1MDA7XG4gICAgICBjb25zdCBtZXNzYWdlID0gdW5rbm93bkVycm9yLm1lc3NhZ2UgfHwgJ1Vua25vd24gRXJyb3InO1xuXG4gICAgICByZXR1cm4geyB0eXBlOiAnY2xpZW50LWVycm9yJywgc3RhdHVzQ29kZTogc3RhdHVzLCBtZXNzYWdlIH07XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldDxUPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBvcHRpb25zPzogQXhpb3NSZXF1ZXN0Q29uZmlnLFxuICAgIHJlc3BvbnNlUGFyc2VyPzogUmVzcG9uc2VQYXJzZXI8VD4sXG4gICk6IFByb21pc2U8QXBpUmVzcG9uc2U8VD4+IHtcbiAgICBsZXQgY29uZmlnOiBBeGlvc1JlcXVlc3RDb25maWcgPSB7XG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgdXJsLFxuICAgIH07XG4gICAgaWYgKGlzTm90RW1wdHkob3B0aW9ucykpIHtcbiAgICAgIGNvbmZpZyA9IHsgLi4uY29uZmlnLCAuLi5vcHRpb25zIH07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm1ha2VSZXF1ZXN0PFQ+KGNvbmZpZywgcmVzcG9uc2VQYXJzZXIpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHBvc3Q8VD4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgZGF0YT86IHVua25vd24sXG4gICAgb3B0aW9ucz86IEF4aW9zUmVxdWVzdENvbmZpZyxcbiAgICByZXNwb25zZVBhcnNlcj86IFJlc3BvbnNlUGFyc2VyPFQ+LFxuICApOiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PiB7XG4gICAgbGV0IGNvbmZpZzogQXhpb3NSZXF1ZXN0Q29uZmlnID0ge1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmwsXG4gICAgICBkYXRhLFxuICAgIH07XG4gICAgaWYgKGlzTm90RW1wdHkob3B0aW9ucykpIHtcbiAgICAgIGNvbmZpZyA9IHsgLi4uY29uZmlnLCAuLi5vcHRpb25zIH07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm1ha2VSZXF1ZXN0PFQ+KGNvbmZpZywgcmVzcG9uc2VQYXJzZXIpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHB1dDxUPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBkYXRhPzogdW5rbm93bixcbiAgICBvcHRpb25zPzogQXhpb3NSZXF1ZXN0Q29uZmlnLFxuICAgIHJlc3BvbnNlUGFyc2VyPzogUmVzcG9uc2VQYXJzZXI8VD4sXG4gICk6IFByb21pc2U8QXBpUmVzcG9uc2U8VD4+IHtcbiAgICBsZXQgY29uZmlnOiBBeGlvc1JlcXVlc3RDb25maWcgPSB7XG4gICAgICBtZXRob2Q6ICdwdXQnLFxuICAgICAgdXJsLFxuICAgICAgZGF0YSxcbiAgICB9O1xuICAgIGlmIChpc05vdEVtcHR5KG9wdGlvbnMpKSB7XG4gICAgICBjb25maWcgPSB7IC4uLmNvbmZpZywgLi4ub3B0aW9ucyB9O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5tYWtlUmVxdWVzdDxUPihjb25maWcsIHJlc3BvbnNlUGFyc2VyKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwYXRjaDxUPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBkYXRhPzogdW5rbm93bixcbiAgICBvcHRpb25zPzogQXhpb3NSZXF1ZXN0Q29uZmlnLFxuICAgIHJlc3BvbnNlUGFyc2VyPzogUmVzcG9uc2VQYXJzZXI8VD4sXG4gICk6IFByb21pc2U8QXBpUmVzcG9uc2U8VD4+IHtcbiAgICBsZXQgY29uZmlnOiBBeGlvc1JlcXVlc3RDb25maWcgPSB7XG4gICAgICBtZXRob2Q6ICdwYXRjaCcsXG4gICAgICB1cmwsXG4gICAgICBkYXRhLFxuICAgIH07XG4gICAgaWYgKGlzTm90RW1wdHkob3B0aW9ucykpIHtcbiAgICAgIGNvbmZpZyA9IHsgLi4uY29uZmlnLCAuLi5vcHRpb25zIH07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm1ha2VSZXF1ZXN0PFQ+KGNvbmZpZywgcmVzcG9uc2VQYXJzZXIpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRlbGV0ZTxUPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBvcHRpb25zPzogQXhpb3NSZXF1ZXN0Q29uZmlnLFxuICAgIHJlc3BvbnNlUGFyc2VyPzogUmVzcG9uc2VQYXJzZXI8VD4sXG4gICk6IFByb21pc2U8QXBpUmVzcG9uc2U8VD4+IHtcbiAgICBsZXQgY29uZmlnOiBBeGlvc1JlcXVlc3RDb25maWcgPSB7XG4gICAgICBtZXRob2Q6ICdkZWxldGUnLFxuICAgICAgdXJsLFxuICAgIH07XG4gICAgaWYgKGlzTm90RW1wdHkob3B0aW9ucykpIHtcbiAgICAgIGNvbmZpZyA9IHsgLi4uY29uZmlnLCAuLi5vcHRpb25zIH07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm1ha2VSZXF1ZXN0PFQ+KGNvbmZpZywgcmVzcG9uc2VQYXJzZXIpO1xuICB9XG5cbiAgLy8gQWRkIG90aGVyIEhUVFAgbWV0aG9kcyBhcyBuZWVkZWRcbn1cbiJdfQ==
|
|
244
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpb3NfY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25ldHdvcmsvY2xpZW50cy9heGlvc19jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0NBQWtDO0FBQ2xDLGtEQUE2RTtBQUM3RSxnREFBd0I7QUFDeEIsa0RBQTBCO0FBQzFCLCtDQUF5RDtBQVV6RCx1Q0FBeUM7QUFFekM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBQ0gsTUFBYSxXQUFXO0lBT3RCLFlBQVksT0FBNEIsRUFBRSxtQkFBb0Q7UUFDNUYsTUFBTSxjQUFjLEdBQUc7WUFDckIsT0FBTyxFQUFFLElBQUksR0FBRyxFQUFFO1lBQ2xCLGlIQUFpSDtZQUNqSCxlQUFlLEVBQUUsS0FBSztZQUN0QixzRkFBc0Y7WUFDdEYsZ0JBQWdCLEVBQUUsTUFBTTtZQUN4Qix3R0FBd0c7WUFDeEcsYUFBYSxFQUFFLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRTtZQUMvQiwrRUFBK0U7WUFDL0UsWUFBWSxFQUFFLENBQUM7WUFDZixxRkFBcUY7WUFDckYsU0FBUyxFQUFFLElBQUksY0FBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUM5QyxrSUFBa0k7WUFDbEksVUFBVSxFQUFFLElBQUksZUFBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUNqRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsY0FBYyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDakQsSUFBSSxDQUFDLFFBQVEsR0FBRyxlQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUzQyxxREFBcUQ7UUFDckQsTUFBTSwwQkFBMEIsR0FBbUM7WUFDakUsTUFBTSxFQUFFLFNBQVM7WUFDakIsV0FBVyxFQUFFLFNBQVM7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c291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVxdWlyZS1hd2FpdCAqL1xuaW1wb3J0IGF4aW9zLCB7IEF4aW9zUmVxdWVzdENvbmZpZywgQXhpb3NFcnJvciwgQXhpb3NJbnN0YW5jZSB9IGZyb20gJ2F4aW9zJztcbmltcG9ydCBodHRwIGZyb20gJ2h0dHAnO1xuaW1wb3J0IGh0dHBzIGZyb20gJ2h0dHBzJztcbmltcG9ydCB7IE5FVFdPUktfU1RBVFVTX0VSUl9NQVAgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgQXBpUmVzcG9uc2UsXG4gIEh0dHBDbGllbnQsXG4gIFJlc3BvbnNlUGFyc2VyLFxuICBBeGlvc0NsaWVudE9ic2VydmFiaWxpdHlDb25maWcsXG4gIFN0YXRUYWdzLFxuICBSZXF1ZXN0TG9nUGFyYW1zLFxuICBSZXNwb25zZUxvZ1BhcmFtcyxcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBpc05vdEVtcHR5IH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG4vKipcbiAqIEEgd3JhcHBlciBhcm91bmQgYXhpb3MgdG8gbWFrZSBodHRwIHJlcXVlc3RzXG4gKlxuICogQGNsYXNzIEF4aW9zQ2xpZW50XG4gKiBAY2xhc3NkZXNjXG4gKiBUaGUgYEF4aW9zQ2xpZW50YCBjbGFzcyBpcyBhIHdyYXBwZXIgYXJvdW5kIHRoZSBheGlvcyBsaWJyYXJ5IHRoYXQgcHJvdmlkZXMgYSBzaW1wbGlmaWVkIGludGVyZmFjZSBmb3IgbWFraW5nIEhUVFAgcmVxdWVzdHMuIEl0IGhhbmRsZXMgdmFyaW91cyB0eXBlcyBvZiBlcnJvcnMgYW5kIHByb3ZpZGVzIGEgY29uc2lzdGVudCByZXNwb25zZSBmb3JtYXQuXG4gKlxuICogQHBhcmFtIHtBeGlvc1JlcXVlc3RDb25maWd9IG9wdGlvbnMgLSBUaGUgZGVmYXVsdCBvcHRpb25zIGZvciB0aGUgaHR0cCBjbGllbnRcbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgYXhpb3NDbGllbnQgPSBuZXcgQXhpb3NDbGllbnQoeyB0aW1lb3V0OiAxMDAwICogMTAgfSk7XG4gKiBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF4aW9zQ2xpZW50LnBvc3QoXCJodHRwczovL2V4YW1wbGUuY29tXCIsIHsgZm9vOiBcImJhclwiIH0pO1xuICogaWYgKHJlc3BvbnNlLnR5cGUgPT09IFwic3VjY2Vzc1wiKSB7XG4gKiAgIGNvbnNvbGUubG9nKHJlc3BvbnNlLnN0YXR1c0NvZGUpO1xuICogICBjb25zb2xlLmxvZyhyZXNwb25zZS5yZXNwb25zZUJvZHkpO1xuICogfSBlbHNlIGlmIChyZXNwb25zZS50eXBlID09PSBcImFwcGxpY2F0aW9uLWVycm9yXCIpIHtcbiAqICAgY29uc29sZS5sb2cocmVzcG9uc2Uuc3RhdHVzQ29kZSk7XG4gKiAgIGNvbnNvbGUubG9nKHJlc3BvbnNlLm1lc3NhZ2UpO1xuICogICBjb25zb2xlLmxvZyhyZXNwb25zZS5yZXNwb25zZUJvZHkpO1xuICogfSBlbHNlIGlmIChyZXNwb25zZS50eXBlID09PSBcImNsaWVudC1lcnJvclwiKSB7XG4gKiAgIGNvbnNvbGUubG9nKHJlc3BvbnNlLnN0YXR1c0NvZGUpO1xuICogICBjb25zb2xlLmxvZyhyZXNwb25zZS5tZXNzYWdlKTtcbiAqIH1cbiAqL1xuZXhwb3J0IGNsYXNzIEF4aW9zQ2xpZW50IGltcGxlbWVudHMgSHR0cENsaWVudCB7XG4gIHByaXZhdGUgb3B0aW9uczogQXhpb3NSZXF1ZXN0Q29uZmlnO1xuXG4gIHByaXZhdGUgaW5zdGFuY2U6IEF4aW9zSW5zdGFuY2U7XG5cbiAgcHJpdmF0ZSBvYnNlcnZhYmlsaXR5Q29uZmlnOiBBeGlvc0NsaWVudE9ic2VydmFiaWxpdHlDb25maWc7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9ucz86IEF4aW9zUmVxdWVzdENvbmZpZywgb2JzZXJ2YWJpbGl0eUNvbmZpZz86IEF4aW9zQ2xpZW50T2JzZXJ2YWJpbGl0eUNvbmZpZykge1xuICAgIGNvbnN0IGRlZmF1bHRPcHRpb25zID0ge1xuICAgICAgdGltZW91dDogMTAwMCAqIDEwLFxuICAgICAgLy8gYHdpdGhDcmVkZW50aWFsc2AgaW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IGNyb3NzLXNpdGUgQWNjZXNzLUNvbnRyb2wgcmVxdWVzdHMgc2hvdWxkIGJlIG1hZGUgdXNpbmcgY3JlZGVudGlhbHNcbiAgICAgIHdpdGhDcmVkZW50aWFsczogZmFsc2UsXG4gICAgICAvLyBgcmVzcG9uc2VFbmNvZGluZ2AgaW5kaWNhdGVzIGVuY29kaW5nIHRvIHVzZSBmb3IgZGVjb2RpbmcgcmVzcG9uc2VzIChOb2RlLmpzIG9ubHkpLFxuICAgICAgcmVzcG9uc2VFbmNvZGluZzogJ3V0ZjgnLFxuICAgICAgLy8gYG1heEJvZHlMZW5ndGhgIChOb2RlIG9ubHkgb3B0aW9uKSBkZWZpbmVzIHRoZSBtYXggc2l6ZSBvZiB0aGUgaHR0cCByZXF1ZXN0IGNvbnRlbnQgaW4gYnl0ZXMgYWxsb3dlZCxcbiAgICAgIG1heEJvZHlMZW5ndGg6IDEwMDAgKiAxMDAwICogMTAsXG4gICAgICAvLyBgbWF4UmVkaXJlY3RzYCBkZWZpbmVzIHRoZSBtYXhpbXVtIG51bWJlciBvZiByZWRpcmVjdHMgdG8gZm9sbG93IGluIG5vZGUuanMsXG4gICAgICBtYXhSZWRpcmVjdHM6IDUsXG4gICAgICAvLyBgaHR0cEFnZW50YCBhbmQgYGh0dHBzQWdlbnRgIGRlZmluZSBhIGN1c3RvbSBhZ2VudCB0byBiZSB1c2VkIHdoZW4gcGVyZm9ybWluZyBodHRwXG4gICAgICBodHRwQWdlbnQ6IG5ldyBodHRwLkFnZW50KHsga2VlcEFsaXZlOiB0cnVlIH0pLFxuICAgICAgLy8gYW5kIGh0dHBzIHJlcXVlc3RzLCByZXNwZWN0aXZlbHksIGluIG5vZGUuanMuIFRoaXMgYWxsb3dzIG9wdGlvbnMgdG8gYmUgYWRkZWQgbGlrZSBga2VlcEFsaXZlYCB0aGF0IGFyZSBub3QgZW5hYmxlZCBieSBkZWZhdWx0LlxuICAgICAgaHR0cHNBZ2VudDogbmV3IGh0dHBzLkFnZW50KHsga2VlcEFsaXZlOiB0cnVlIH0pLFxuICAgIH07XG4gICAgdGhpcy5vcHRpb25zID0geyAuLi5kZWZhdWx0T3B0aW9ucywgLi4ub3B0aW9ucyB9O1xuICAgIHRoaXMuaW5zdGFuY2UgPSBheGlvcy5jcmVhdGUodGhpcy5vcHRpb25zKTtcblxuICAgIC8vIE1lcmdlIHdpdGggZGVmYXVsdCBjb25maWcgdG8gZWxpbWluYXRlIG51bGwgY2hlY2tzXG4gICAgY29uc3QgZGVmYXVsdE9ic2VydmFiaWxpdHlDb25maWc6IEF4aW9zQ2xpZW50T2JzZXJ2YWJpbGl0eUNvbmZpZyA9IHtcbiAgICAgIGxvZ2dlcjogdW5kZWZpbmVkLFxuICAgICAgc3RhdHNDbGllbnQ6IHVuZGVmaW5lZCxcbiAgICAgIGRlZmF1bHRTdGF0VGFnczoge30sXG4gICAgfTtcbiAgICB0aGlzLm9ic2VydmFiaWxpdHlDb25maWcgPSB7IC4uLmRlZmF1bHRPYnNlcnZhYmlsaXR5Q29uZmlnLCAuLi5vYnNlcnZhYmlsaXR5Q29uZmlnIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIG1ha2VSZXF1ZXN0PFQ+KFxuICAgIGNvbmZpZzogQXhpb3NSZXF1ZXN0Q29uZmlnLFxuICAgIHJlc3BvbnNlUGFyc2VyPzogUmVzcG9uc2VQYXJzZXI8VD4sXG4gICk6IFByb21pc2U8QXBpUmVzcG9uc2U8VD4+IHtcbiAgICBjb25zdCBzdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuICAgIC8vIEV4dHJhY3QgbWV0YWRhdGEgZm9yIGxvZ2dpbmcvbWV0cmljc1xuICAgIGNvbnN0IG1ldGhvZCA9IGNvbmZpZy5tZXRob2Q/LnRvVXBwZXJDYXNlKCkgfHwgJ1VOS05PV04nO1xuICAgIGNvbnN0IHVybCA9IGNvbmZpZy51cmwgfHwgJ3Vua25vd24nO1xuICAgIGNvbnN0IGJvZHkgPSBjb25maWcuZGF0YSB8fCB1bmRlZmluZWQ7XG4gICAgY29uc3Qgc3RhdFRhZ3M6IFN0YXRUYWdzID0ge1xuICAgICAgcmVxdWVzdE1ldGhvZDogbWV0aG9kLFxuICAgICAgZW5kcG9pbnRQYXRoOiB1cmwsXG4gICAgICAuLi50aGlzLm9ic2VydmFiaWxpdHlDb25maWcuZGVmYXVsdFN0YXRUYWdzLFxuICAgIH07XG5cbiAgICAvLyBPcHRpb25hbCByZXF1ZXN0IGxvZ2dpbmdcbiAgICBjb25zdCByZXF1ZXN0TG9nUGFyYW1zOiBSZXF1ZXN0TG9nUGFyYW1zID0ge1xuICAgICAgcmVxdWVzdERldGFpbHM6IHtcbiAgICAgICAgbWV0aG9kOiBtZXRob2QgfHwgJ3VuZGVmaW5lZCcsXG4gICAgICAgIHVybDogdXJsIHx8ICd1bmRlZmluZWQnLFxuICAgICAgICBib2R5OiBib2R5IHx8ICd1bmRlZmluZWQnLFxuICAgICAgfSxcbiAgICAgIG1ldGFkYXRhOiBzdGF0VGFncy5tZXRhZGF0YSB8fCB7fSxcbiAgICB9O1xuICAgIHRoaXMub2JzZXJ2YWJpbGl0eUNvbmZpZy5sb2dnZXI/LnJlcXVlc3RMb2coXG4gICAgICBgW0hUVFBdICR7bWV0aG9kfSAke3VybH0gcmVxdWVzdGAsXG4gICAgICByZXF1ZXN0TG9nUGFyYW1zLFxuICAgICk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVxdWVzdENvbmZpZyA9IGNvbmZpZztcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5pbnN0YW5jZS5yZXF1ZXN0KHJlcXVlc3RDb25maWcpO1xuICAgICAgY29uc3QgeyBzdGF0dXMsIGRhdGEsIGhlYWRlcnMgfSA9IHJlc3BvbnNlO1xuICAgICAgY29uc3QgZHVyYXRpb24gPSBEYXRlLm5vdygpIC0gc3RhcnRUaW1lO1xuXG4gICAgICAvLyBBZGQgc3RhdHVzIGNvZGUgdG8gc3RhdFRhZ3MgZm9yIGJldHRlciBvYnNlcnZhYmlsaXR5XG4gICAgICBjb25zdCBzdWNjZXNzU3RhdFRhZ3MgPSB7XG4gICAgICAgIC4uLnN0YXRUYWdzLFxuICAgICAgICBzdGF0dXNDb2RlOiBzdGF0dXMsXG4gICAgICB9O1xuXG4gICAgICAvLyBPcHRpb25hbCByZXNwb25zZSBsb2dnaW5nXG4gICAgICBjb25zdCByZXNwb25zZUxvZ1BhcmFtczogUmVzcG9uc2VMb2dQYXJhbXMgPSB7XG4gICAgICAgIHJlc3BvbnNlRGV0YWlsczoge1xuICAgICAgICAgIHN0YXR1czogc3RhdHVzIHx8IDAsXG4gICAgICAgICAgYm9keTogZGF0YSB8fCAndW5kZWZpbmVkJyxcbiAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzIHx8ICd1bmRlZmluZWQnLFxuICAgICAgICB9LFxuICAgICAgICBtZXRhZGF0YTogc3RhdFRhZ3MubWV0YWRhdGEgfHwge30sXG4gICAgICB9O1xuICAgICAgdGhpcy5vYnNlcnZhYmlsaXR5Q29uZmlnLmxvZ2dlcj8ucmVzcG9uc2VMb2coXG4gICAgICAgIGBbSFRUUF0gJHttZXRob2R9ICR7dXJsfSByZXNwb25zZWAsXG4gICAgICAgIHJlc3BvbnNlTG9nUGFyYW1zLFxuICAgICAgKTtcblxuICAgICAgLy8gT3B0aW9uYWwgc3VjY2VzcyBtZXRyaWNzXG4gICAgICB0aGlzLm9ic2VydmFiaWxpdHlDb25maWcuc3RhdHNDbGllbnQ/LnRpbWluZyhcbiAgICAgICAgJ291dGdvaW5nX3JlcXVlc3RfbGF0ZW5jeScsXG4gICAgICAgIGR1cmF0aW9uLFxuICAgICAgICBzdWNjZXNzU3RhdFRhZ3MsXG4gICAgICApO1xuICAgICAgdGhpcy5vYnNlcnZhYmlsaXR5Q29uZmlnLnN0YXRzQ2xpZW50Py5pbmNyZW1lbnQoJ291dGdvaW5nX3JlcXVlc3RfY291bnQnLCAxLCBzdWNjZXNzU3RhdFRhZ3MpO1xuXG4gICAgICBpZiAocmVzcG9uc2VQYXJzZXIpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBwYXJzZWREYXRhID0gcmVzcG9uc2VQYXJzZXIoZGF0YSk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcbiAgICAgICAgICAgIHN0YXR1c0NvZGU6IHN0YXR1cyxcbiAgICAgICAgICAgIHJlc3BvbnNlQm9keTogcGFyc2VkRGF0YSxcbiAgICAgICAgICAgIGhlYWRlcnMsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjb25zdCB1bmtub3duRXJyb3IgPSBlcnJvciBhcyBFcnJvcjtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogJ2NsaWVudC1lcnJvcicsXG4gICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBFcnJvciBoYXMgc3RhdHVzXG4gICAgICAgICAgICBzdGF0dXNDb2RlOiB1bmtub3duRXJyb3Iuc3RhdHVzIHx8IDUwMCxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGBGYWlsZWQgdG8gcGFyc2UgcmVzcG9uc2UgZGF0YTogJHt1bmtub3duRXJyb3IubWVzc2FnZX1gLFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7IHR5cGU6ICdzdWNjZXNzJywgc3RhdHVzQ29kZTogc3RhdHVzLCByZXNwb25zZUJvZHk6IGRhdGEsIGhlYWRlcnMgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc3QgZHVyYXRpb24gPSBEYXRlLm5vdygpIC0gc3RhcnRUaW1lO1xuXG4gICAgICAvLyBEZXRlcm1pbmUgc3RhdHVzIGNvZGUgZm9yIGVycm9yIG1ldHJpY3NcbiAgICAgIGxldCBlcnJvclN0YXR1c0NvZGUgPSA1MDA7IC8vIERlZmF1bHQgdG8gNTAwIGZvciBuZXR3b3JrL3Vua25vd24gZXJyb3JzXG4gICAgICBpZiAoYXhpb3MuaXNBeGlvc0Vycm9yKGVycm9yKSkge1xuICAgICAgICBjb25zdCBheGlvc0Vycm9yID0gZXJyb3IgYXMgQXhpb3NFcnJvcjtcbiAgICAgICAgaWYgKGF4aW9zRXJyb3IucmVzcG9uc2UpIHtcbiAgICAgICAgICBlcnJvclN0YXR1c0NvZGUgPSBheGlvc0Vycm9yLnJlc3BvbnNlLnN0YXR1cztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBBZGQgc3RhdHVzIGNvZGUgYW5kIGVycm9yIGZsYWcgdG8gc3RhdFRhZ3MgZm9yIGJldHRlciBvYnNlcnZhYmlsaXR5XG4gICAgICBjb25zdCBlcnJvclN0YXRUYWdzID0ge1xuICAgICAgICAuLi5zdGF0VGFncyxcbiAgICAgICAgc3RhdHVzQ29kZTogZXJyb3JTdGF0dXNDb2RlLFxuICAgICAgICBlcnJvcjogdHJ1ZSxcbiAgICAgIH07XG5cbiAgICAgIC8vIE9wdGlvbmFsIGVycm9yIGxvZ2dpbmdcbiAgICAgIHRoaXMub2JzZXJ2YWJpbGl0eUNvbmZpZy5sb2dnZXI/LmVycm9yPy4oYFtIVFRQXSAke21ldGhvZH0gJHt1cmx9IGVycm9yYCwge1xuICAgICAgICBlcnJvcjogKGVycm9yIGFzIEVycm9yKS5tZXNzYWdlLFxuICAgICAgICBkdXJhdGlvbixcbiAgICAgICAgc3RhdFRhZ3M6IGVycm9yU3RhdFRhZ3MsXG4gICAgICB9KTtcblxuICAgICAgLy8gT3B0aW9uYWwgZXJyb3IgbWV0cmljc1xuICAgICAgdGhpcy5vYnNlcnZhYmlsaXR5Q29uZmlnLnN0YXRzQ2xpZW50Py50aW1pbmcoXG4gICAgICAgICdvdXRnb2luZ19yZXF1ZXN0X2xhdGVuY3knLFxuICAgICAgICBkdXJhdGlvbixcbiAgICAgICAgZXJyb3JTdGF0VGFncyxcbiAgICAgICk7XG4gICAgICB0aGlzLm9ic2VydmFiaWxpdHlDb25maWcuc3RhdHNDbGllbnQ/LmluY3JlbWVudCgnb3V0Z29pbmdfcmVxdWVzdF9jb3VudCcsIDEsIGVycm9yU3RhdFRhZ3MpO1xuXG4gICAgICBpZiAoYXhpb3MuaXNBeGlvc0Vycm9yKGVycm9yKSkge1xuICAgICAgICBjb25zdCBheGlvc0Vycm9yID0gZXJyb3IgYXMgQXhpb3NFcnJvcjtcbiAgICAgICAgaWYgKGF4aW9zRXJyb3IucmVzcG9uc2UpIHtcbiAgICAgICAgICBjb25zdCB7IHJlc3BvbnNlIH0gPSBheGlvc0Vycm9yO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiAnYXBwbGljYXRpb24tZXJyb3InLFxuICAgICAgICAgICAgc3RhdHVzQ29kZTogcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgICAgICAgbWVzc2FnZTogcmVzcG9uc2Uuc3RhdHVzVGV4dCxcbiAgICAgICAgICAgIHJlc3BvbnNlQm9keTogcmVzcG9uc2UuZGF0YSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHJlc3BvbnNlLmhlYWRlcnMsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYXhpb3NFcnJvci5jb2RlKSB7XG4gICAgICAgICAgY29uc3QgcmVzcCA9IE5FVFdPUktfU1RBVFVTX0VSUl9NQVBbYXhpb3NFcnJvci5jb2RlXTtcbiAgICAgICAgICBpZiAoIXJlc3ApIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdjbGllbnQtZXJyb3InLFxuICAgICAgICAgICAgICBzdGF0dXNDb2RlOiA1MDAsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGBVbmtub3duIEVycm9yOiR7YXhpb3NFcnJvci5tZXNzYWdlfWAsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogJ2NsaWVudC1lcnJvcicsXG4gICAgICAgICAgICBzdGF0dXNDb2RlOiByZXNwLnN0YXR1cyxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHJlc3AubWVzc2FnZSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHVua25vd25FcnJvciA9IGVycm9yIGFzIEVycm9yO1xuICAgICAgY29uc3Qgc3RhdHVzID0gNTAwO1xuICAgICAgY29uc3QgbWVzc2FnZSA9IHVua25vd25FcnJvci5tZXNzYWdlIHx8ICdVbmtub3duIEVycm9yJztcblxuICAgICAgcmV0dXJuIHsgdHlwZTogJ2NsaWVudC1lcnJvcicsIHN0YXR1c0NvZGU6IHN0YXR1cywgbWVzc2FnZSB9O1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXQ8VD4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IEF4aW9zUmVxdWVzdENvbmZpZyxcbiAgICByZXNwb25zZVBhcnNlcj86IFJlc3BvbnNlUGFyc2VyPFQ+LFxuICApOiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PiB7XG4gICAgbGV0IGNvbmZpZzogQXhpb3NSZXF1ZXN0Q29uZmlnID0ge1xuICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgIHVybCxcbiAgICB9O1xuICAgIGlmIChpc05vdEVtcHR5KG9wdGlvbnMpKSB7XG4gICAgICBjb25maWcgPSB7IC4uLmNvbmZpZywgLi4ub3B0aW9ucyB9O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5tYWtlUmVxdWVzdDxUPihjb25maWcsIHJlc3BvbnNlUGFyc2VyKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwb3N0PFQ+KFxuICAgIHVybDogc3RyaW5nLFxuICAgIGRhdGE/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBBeGlvc1JlcXVlc3RDb25maWcsXG4gICAgcmVzcG9uc2VQYXJzZXI/OiBSZXNwb25zZVBhcnNlcjxUPixcbiAgKTogUHJvbWlzZTxBcGlSZXNwb25zZTxUPj4ge1xuICAgIGxldCBjb25maWc6IEF4aW9zUmVxdWVzdENvbmZpZyA9IHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsLFxuICAgICAgZGF0YSxcbiAgICB9O1xuICAgIGlmIChpc05vdEVtcHR5KG9wdGlvbnMpKSB7XG4gICAgICBjb25maWcgPSB7IC4uLmNvbmZpZywgLi4ub3B0aW9ucyB9O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5tYWtlUmVxdWVzdDxUPihjb25maWcsIHJlc3BvbnNlUGFyc2VyKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwdXQ8VD4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgZGF0YT86IHVua25vd24sXG4gICAgb3B0aW9ucz86IEF4aW9zUmVxdWVzdENvbmZpZyxcbiAgICByZXNwb25zZVBhcnNlcj86IFJlc3BvbnNlUGFyc2VyPFQ+LFxuICApOiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PiB7XG4gICAgbGV0IGNvbmZpZzogQXhpb3NSZXF1ZXN0Q29uZmlnID0ge1xuICAgICAgbWV0aG9kOiAncHV0JyxcbiAgICAgIHVybCxcbiAgICAgIGRhdGEsXG4gICAgfTtcbiAgICBpZiAoaXNOb3RFbXB0eShvcHRpb25zKSkge1xuICAgICAgY29uZmlnID0geyAuLi5jb25maWcsIC4uLm9wdGlvbnMgfTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubWFrZVJlcXVlc3Q8VD4oY29uZmlnLCByZXNwb25zZVBhcnNlcik7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcGF0Y2g8VD4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgZGF0YT86IHVua25vd24sXG4gICAgb3B0aW9ucz86IEF4aW9zUmVxdWVzdENvbmZpZyxcbiAgICByZXNwb25zZVBhcnNlcj86IFJlc3BvbnNlUGFyc2VyPFQ+LFxuICApOiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PiB7XG4gICAgbGV0IGNvbmZpZzogQXhpb3NSZXF1ZXN0Q29uZmlnID0ge1xuICAgICAgbWV0aG9kOiAncGF0Y2gnLFxuICAgICAgdXJsLFxuICAgICAgZGF0YSxcbiAgICB9O1xuICAgIGlmIChpc05vdEVtcHR5KG9wdGlvbnMpKSB7XG4gICAgICBjb25maWcgPSB7IC4uLmNvbmZpZywgLi4ub3B0aW9ucyB9O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5tYWtlUmVxdWVzdDxUPihjb25maWcsIHJlc3BvbnNlUGFyc2VyKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkZWxldGU8VD4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IEF4aW9zUmVxdWVzdENvbmZpZyxcbiAgICByZXNwb25zZVBhcnNlcj86IFJlc3BvbnNlUGFyc2VyPFQ+LFxuICApOiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PiB7XG4gICAgbGV0IGNvbmZpZzogQXhpb3NSZXF1ZXN0Q29uZmlnID0ge1xuICAgICAgbWV0aG9kOiAnZGVsZXRlJyxcbiAgICAgIHVybCxcbiAgICB9O1xuICAgIGlmIChpc05vdEVtcHR5KG9wdGlvbnMpKSB7XG4gICAgICBjb25maWcgPSB7IC4uLmNvbmZpZywgLi4ub3B0aW9ucyB9O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5tYWtlUmVxdWVzdDxUPihjb25maWcsIHJlc3BvbnNlUGFyc2VyKTtcbiAgfVxuXG4gIC8vIEFkZCBvdGhlciBIVFRQIG1ldGhvZHMgYXMgbmVlZGVkXG59XG4iXX0=
|
|
@@ -25,9 +25,37 @@ export type RequestConfig = AxiosRequestConfig;
|
|
|
25
25
|
* HTTP Logger interface compatible with transformer's logger pattern
|
|
26
26
|
* Provides request/response logging capabilities for HTTP wrapper
|
|
27
27
|
*/
|
|
28
|
+
export type Metadata = {
|
|
29
|
+
destinationId?: string;
|
|
30
|
+
sourceId?: string;
|
|
31
|
+
workspaceId?: string;
|
|
32
|
+
destType?: string;
|
|
33
|
+
destinationType?: string;
|
|
34
|
+
module?: string;
|
|
35
|
+
implementation?: string;
|
|
36
|
+
feature?: string;
|
|
37
|
+
};
|
|
38
|
+
export type RequestLogParams = {
|
|
39
|
+
metadata?: Metadata | Metadata[] | undefined;
|
|
40
|
+
requestDetails: {
|
|
41
|
+
url?: string;
|
|
42
|
+
body?: unknown;
|
|
43
|
+
method?: string;
|
|
44
|
+
[key: string]: unknown;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
export type ResponseLogParams = {
|
|
48
|
+
metadata?: Metadata | Metadata[] | undefined;
|
|
49
|
+
responseDetails: {
|
|
50
|
+
body?: unknown;
|
|
51
|
+
status?: number;
|
|
52
|
+
headers?: Record<string, string> | unknown;
|
|
53
|
+
[key: string]: unknown;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
28
56
|
export interface IHttpLogger {
|
|
29
|
-
requestLog(message: string, data?:
|
|
30
|
-
responseLog(message: string, data?:
|
|
57
|
+
requestLog(message: string, data?: RequestLogParams): void;
|
|
58
|
+
responseLog(message: string, data?: ResponseLogParams): void;
|
|
31
59
|
error?(message: string, data?: unknown): void;
|
|
32
60
|
warn?(message: string, data?: unknown): void;
|
|
33
61
|
info?(message: string, data?: unknown): void;
|
|
@@ -56,7 +84,7 @@ export interface StatTags {
|
|
|
56
84
|
endpointPath?: string;
|
|
57
85
|
requestMethod?: string;
|
|
58
86
|
module?: string;
|
|
59
|
-
metadata?:
|
|
87
|
+
metadata?: Metadata | Metadata[];
|
|
60
88
|
}
|
|
61
89
|
/**
|
|
62
90
|
* HTTP Client Configuration interface with optional dependencies
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/network/clients/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,OAAO,CAAC;AAE1F,KAAK,eAAe,GAAG,uBAAuB,GAAG,oBAAoB,GAAG,SAAS,CAAC;AAClF,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,KAAK,CAAC,CAAC;AAC7D,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI;IACrC,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,CAAC,CAAC;IAChB,OAAO,EAAE,eAAe,CAAC;CAC1B,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,cAAc,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AACF,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,eAAe,CAAC;CAC1B,CAAC;AACF,MAAM,MAAM,WAAW,CAAC,CAAC,IACrB,qBAAqB,CAAC,CAAC,CAAC,GACxB,sBAAsB,GACtB,2BAA2B,CAAC;AAGhC,MAAM,MAAM,aAAa,GAAG,kBAAkB,CAAC;AAE/C;;;GAGG;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/network/clients/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbmV0d29yay9jbGllbnRzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBeGlvc1JlcXVlc3RDb25maWcsIEF4aW9zUmVzcG9uc2VIZWFkZXJzLCBSYXdBeGlvc1Jlc3BvbnNlSGVhZGVycyB9IGZyb20gJ2F4aW9zJztcblxudHlwZSBSZXNwb25zZUhlYWRlcnMgPSBSYXdBeGlvc1Jlc3BvbnNlSGVhZGVycyB8IEF4aW9zUmVzcG9uc2VIZWFkZXJzIHwgdW5kZWZpbmVkO1xuZXhwb3J0IHR5cGUgUmVzcG9uc2VQYXJzZXI8VD4gPSAocmVzcG9uc2VEYXRhOiB1bmtub3duKSA9PiBUO1xuZXhwb3J0IHR5cGUgU3VjY2Vzc2Z1bEFwaVJlc3BvbnNlPFQ+ID0ge1xuICB0eXBlOiAnc3VjY2Vzcyc7XG4gIHN0YXR1c0NvZGU6IG51bWJlcjtcbiAgcmVzcG9uc2VCb2R5OiBUO1xuICBoZWFkZXJzOiBSZXNwb25zZUhlYWRlcnM7XG59O1xuZXhwb3J0IHR5cGUgQ2xpZW50RXJyb3JBcGlSZXNwb25zZSA9IHtcbiAgdHlwZTogJ2NsaWVudC1lcnJvcic7XG4gIHN0YXR1c0NvZGU6IG51bWJlcjtcbiAgbWVzc2FnZTogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIEFwcGxpY2F0aW9uRXJyb3JBcGlSZXNwb25zZSA9IHtcbiAgdHlwZTogJ2FwcGxpY2F0aW9uLWVycm9yJztcbiAgc3RhdHVzQ29kZTogbnVtYmVyO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHJlc3BvbnNlQm9keTogdW5rbm93bjtcbiAgaGVhZGVyczogUmVzcG9uc2VIZWFkZXJzO1xufTtcbmV4cG9ydCB0eXBlIEFwaVJlc3BvbnNlPFQ+
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbmV0d29yay9jbGllbnRzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBeGlvc1JlcXVlc3RDb25maWcsIEF4aW9zUmVzcG9uc2VIZWFkZXJzLCBSYXdBeGlvc1Jlc3BvbnNlSGVhZGVycyB9IGZyb20gJ2F4aW9zJztcblxudHlwZSBSZXNwb25zZUhlYWRlcnMgPSBSYXdBeGlvc1Jlc3BvbnNlSGVhZGVycyB8IEF4aW9zUmVzcG9uc2VIZWFkZXJzIHwgdW5kZWZpbmVkO1xuZXhwb3J0IHR5cGUgUmVzcG9uc2VQYXJzZXI8VD4gPSAocmVzcG9uc2VEYXRhOiB1bmtub3duKSA9PiBUO1xuZXhwb3J0IHR5cGUgU3VjY2Vzc2Z1bEFwaVJlc3BvbnNlPFQ+ID0ge1xuICB0eXBlOiAnc3VjY2Vzcyc7XG4gIHN0YXR1c0NvZGU6IG51bWJlcjtcbiAgcmVzcG9uc2VCb2R5OiBUO1xuICBoZWFkZXJzOiBSZXNwb25zZUhlYWRlcnM7XG59O1xuZXhwb3J0IHR5cGUgQ2xpZW50RXJyb3JBcGlSZXNwb25zZSA9IHtcbiAgdHlwZTogJ2NsaWVudC1lcnJvcic7XG4gIHN0YXR1c0NvZGU6IG51bWJlcjtcbiAgbWVzc2FnZTogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIEFwcGxpY2F0aW9uRXJyb3JBcGlSZXNwb25zZSA9IHtcbiAgdHlwZTogJ2FwcGxpY2F0aW9uLWVycm9yJztcbiAgc3RhdHVzQ29kZTogbnVtYmVyO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHJlc3BvbnNlQm9keTogdW5rbm93bjtcbiAgaGVhZGVyczogUmVzcG9uc2VIZWFkZXJzO1xufTtcbmV4cG9ydCB0eXBlIEFwaVJlc3BvbnNlPFQ+ID1cbiAgfCBTdWNjZXNzZnVsQXBpUmVzcG9uc2U8VD5cbiAgfCBDbGllbnRFcnJvckFwaVJlc3BvbnNlXG4gIHwgQXBwbGljYXRpb25FcnJvckFwaVJlc3BvbnNlO1xuXG4vLyBPdGhlciBjbGllbnQgUmVxdXNldCBjb25maWcgdHlwZXMgdG8gYmUgYWRkZWQgaGVyZVxuZXhwb3J0IHR5cGUgUmVxdWVzdENvbmZpZyA9IEF4aW9zUmVxdWVzdENvbmZpZztcblxuLyoqXG4gKiBIVFRQIExvZ2dlciBpbnRlcmZhY2UgY29tcGF0aWJsZSB3aXRoIHRyYW5zZm9ybWVyJ3MgbG9nZ2VyIHBhdHRlcm5cbiAqIFByb3ZpZGVzIHJlcXVlc3QvcmVzcG9uc2UgbG9nZ2luZyBjYXBhYmlsaXRpZXMgZm9yIEhUVFAgd3JhcHBlclxuICovXG5cbmV4cG9ydCB0eXBlIE1ldGFkYXRhID0ge1xuICBkZXN0aW5hdGlvbklkPzogc3RyaW5nO1xuICBzb3VyY2VJZD86IHN0cmluZztcbiAgd29ya3NwYWNlSWQ/OiBzdHJpbmc7XG4gIGRlc3RUeXBlPzogc3RyaW5nO1xuICBkZXN0aW5hdGlvblR5cGU/OiBzdHJpbmc7XG4gIG1vZHVsZT86IHN0cmluZztcbiAgaW1wbGVtZW50YXRpb24/OiBzdHJpbmc7XG4gIGZlYXR1cmU/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBSZXF1ZXN0TG9nUGFyYW1zID0ge1xuICBtZXRhZGF0YT86IE1ldGFkYXRhIHwgTWV0YWRhdGFbXSB8IHVuZGVmaW5lZDtcbiAgcmVxdWVzdERldGFpbHM6IHtcbiAgICB1cmw/OiBzdHJpbmc7XG4gICAgYm9keT86IHVua25vd247XG4gICAgbWV0aG9kPzogc3RyaW5nO1xuICAgIFtrZXk6IHN0cmluZ106IHVua25vd247XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBSZXNwb25zZUxvZ1BhcmFtcyA9IHtcbiAgbWV0YWRhdGE/OiBNZXRhZGF0YSB8IE1ldGFkYXRhW10gfCB1bmRlZmluZWQ7XG4gIHJlc3BvbnNlRGV0YWlsczoge1xuICAgIGJvZHk/OiB1bmtub3duO1xuICAgIHN0YXR1cz86IG51bWJlcjtcbiAgICBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHVua25vd247XG4gICAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbiAgfTtcbn07XG5leHBvcnQgaW50ZXJmYWNlIElIdHRwTG9nZ2VyIHtcbiAgLy8gUmVxdWlyZWQgbWV0aG9kcyBmb3IgSFRUUCByZXF1ZXN0L3Jlc3BvbnNlIGxvZ2dpbmdcbiAgcmVxdWVzdExvZyhtZXNzYWdlOiBzdHJpbmcsIGRhdGE/OiBSZXF1ZXN0TG9nUGFyYW1zKTogdm9pZDtcbiAgcmVzcG9uc2VMb2cobWVzc2FnZTogc3RyaW5nLCBkYXRhPzogUmVzcG9uc2VMb2dQYXJhbXMpOiB2b2lkO1xuXG4gIC8vIE9wdGlvbmFsIHN0YW5kYXJkIGxvZ2dpbmcgbWV0aG9kc1xuICBlcnJvcj8obWVzc2FnZTogc3RyaW5nLCBkYXRhPzogdW5rbm93bik6IHZvaWQ7XG4gIHdhcm4/KG1lc3NhZ2U6IHN0cmluZywgZGF0YT86IHVua25vd24pOiB2b2lkO1xuICBpbmZvPyhtZXNzYWdlOiBzdHJpbmcsIGRhdGE/OiB1bmtub3duKTogdm9pZDtcbiAgZGVidWc/KG1lc3NhZ2U6IHN0cmluZywgZGF0YT86IHVua25vd24pOiB2b2lkO1xufVxuXG4vKipcbiAqIEhUVFAgU3RhdHMgQ2xpZW50IGludGVyZmFjZSBjb21wYXRpYmxlIHdpdGggdHJhbnNmb3JtZXIncyBzdGF0cyBwYXR0ZXJuXG4gKiBQcm92aWRlcyBtZXRyaWNzIGNvbGxlY3Rpb24gY2FwYWJpbGl0aWVzIGZvciBIVFRQIHdyYXBwZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJSHR0cFN0YXRzQ2xpZW50IHtcbiAgLy8gUmVxdWlyZWQgbWV0aG9kcyBmb3IgSFRUUCBtZXRyaWNzXG4gIHRpbWluZyhuYW1lOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIsIHRhZ3M/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHZvaWQ7XG4gIGluY3JlbWVudChuYW1lOiBzdHJpbmcsIHZhbHVlPzogbnVtYmVyLCB0YWdzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiB2b2lkO1xuICBjb3VudGVyKG5hbWU6IHN0cmluZywgdmFsdWU6IG51bWJlciwgdGFncz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogdm9pZDtcblxuICAvLyBPcHRpb25hbCBhZHZhbmNlZCBtZXRyaWNzIG1ldGhvZHNcbiAgdGltaW5nU3VtbWFyeT8obmFtZTogc3RyaW5nLCB2YWx1ZTogbnVtYmVyLCB0YWdzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiB2b2lkO1xuICBnYXVnZT8obmFtZTogc3RyaW5nLCB2YWx1ZTogbnVtYmVyLCB0YWdzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiB2b2lkO1xuICBoaXN0b2dyYW0/KG5hbWU6IHN0cmluZywgdmFsdWU6IG51bWJlciwgdGFncz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogdm9pZDtcbn1cblxuLyoqXG4gKiBTdGF0VGFncyBpbnRlcmZhY2UgZm9yIG1ldGFkYXRhIGFuZCBtZXRyaWNzIHRhZ2dpbmdcbiAqIENvbXBhdGlibGUgd2l0aCB0cmFuc2Zvcm1lcidzIHN0YXRUYWdzIHN0cnVjdHVyZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRUYWdzIHtcbiAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbiAgZGVzdFR5cGU/OiBzdHJpbmc7XG4gIGZlYXR1cmU/OiBzdHJpbmc7XG4gIGVuZHBvaW50UGF0aD86IHN0cmluZztcbiAgcmVxdWVzdE1ldGhvZD86IHN0cmluZztcbiAgbW9kdWxlPzogc3RyaW5nO1xuICBtZXRhZGF0YT86IE1ldGFkYXRhIHwgTWV0YWRhdGFbXTtcbn1cblxuLyoqXG4gKiBIVFRQIENsaWVudCBDb25maWd1cmF0aW9uIGludGVyZmFjZSB3aXRoIG9wdGlvbmFsIGRlcGVuZGVuY2llc1xuICogRW5hYmxlcyBmbGV4aWJsZSBjb25maWd1cmF0aW9uIGZvciBkaWZmZXJlbnQgdXNhZ2Ugc2NlbmFyaW9zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cENsaWVudENvbmZpZyB7XG4gIC8vIE9wdGlvbmFsIGRlcGVuZGVuY2llcyAtIGJhY2t3YXJkIGNvbXBhdGlibGVcbiAgbG9nZ2VyPzogSUh0dHBMb2dnZXI7XG4gIHN0YXRzQ2xpZW50PzogSUh0dHBTdGF0c0NsaWVudDtcblxuICAvLyBEZWZhdWx0IHNldHRpbmdzXG4gIGRlZmF1bHRUaW1lb3V0PzogbnVtYmVyO1xuICBkZWZhdWx0U3RhdFRhZ3M/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqXG4gKiBBeGlvc0NsaWVudCBPYnNlcnZhYmlsaXR5IENvbmZpZ3VyYXRpb24gaW50ZXJmYWNlIGZvciBvcHRpb25hbCBtZXRyaWNzIGFuZCBsb2dnaW5nXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXhpb3NDbGllbnRPYnNlcnZhYmlsaXR5Q29uZmlnIHtcbiAgLy8gVG8gZW5hYmxlIG1ldHJpY3MsIHByb3ZpZGUgYSBzdGF0c0NsaWVudFxuICBzdGF0c0NsaWVudD86IElIdHRwU3RhdHNDbGllbnQ7XG5cbiAgLy8gVG8gZW5hYmxlIHJlcXVlc3QvcmVzcG9uc2UgbG9nZ2luZywgcHJvdmlkZSBhIGxvZ2dlclxuICBsb2dnZXI/OiBJSHR0cExvZ2dlcjtcbiAgZGVmYXVsdFN0YXRUYWdzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIEF4aW9zQ2xpZW50T2JzZXJ2YWJpbGl0eUNvbmZpZyBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXhpb3NDbGllbnRDb25maWcgZXh0ZW5kcyBBeGlvc0NsaWVudE9ic2VydmFiaWxpdHlDb25maWcge31cblxuZXhwb3J0IGludGVyZmFjZSBIdHRwQ2xpZW50IHtcbiAgcG9zdDogPFQ+KFxuICAgIHVybDogc3RyaW5nLFxuICAgIGRhdGE6IHVua25vd24sXG4gICAgb3B0aW9ucz86IFJlcXVlc3RDb25maWcsXG4gICAgcmVzcG9uc2VQYXJzZXI/OiBSZXNwb25zZVBhcnNlcjxUPixcbiAgKSA9PiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PjtcbiAgZ2V0OiA8VD4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IFJlcXVlc3RDb25maWcsXG4gICAgcmVzcG9uc2VQYXJzZXI/OiBSZXNwb25zZVBhcnNlcjxUPixcbiAgKSA9PiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PjtcblxuICBwdXQ6IDxUPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBkYXRhOiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBSZXF1ZXN0Q29uZmlnLFxuICAgIHJlc3BvbnNlUGFyc2VyPzogUmVzcG9uc2VQYXJzZXI8VD4sXG4gICkgPT4gUHJvbWlzZTxBcGlSZXNwb25zZTxUPj47XG5cbiAgcGF0Y2g6IDxUPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBkYXRhOiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBSZXF1ZXN0Q29uZmlnLFxuICAgIHJlc3BvbnNlUGFyc2VyPzogUmVzcG9uc2VQYXJzZXI8VD4sXG4gICkgPT4gUHJvbWlzZTxBcGlSZXNwb25zZTxUPj47XG5cbiAgZGVsZXRlOiA8VD4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IFJlcXVlc3RDb25maWcsXG4gICAgcmVzcG9uc2VQYXJzZXI/OiBSZXNwb25zZVBhcnNlcjxUPixcbiAgKSA9PiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+Pjtcbn1cbiJdfQ==
|