agenticpool 1.0.15 → 1.0.17
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/dist/api/ApiClient.js +13 -1
- package/dist/auth/AuthHelper.d.ts +1 -0
- package/dist/auth/AuthHelper.js +45 -9
- package/package.json +1 -1
package/dist/api/ApiClient.js
CHANGED
|
@@ -62,6 +62,9 @@ class ApiClient {
|
|
|
62
62
|
return this.parseResponse(response.data);
|
|
63
63
|
}
|
|
64
64
|
catch (e) {
|
|
65
|
+
if (e.response && e.response.data) {
|
|
66
|
+
return this.parseResponse(e.response.data);
|
|
67
|
+
}
|
|
65
68
|
return { success: false, error: { code: 'REQUEST_FAILED', message: e instanceof Error ? e.message : 'Unknown error' } };
|
|
66
69
|
}
|
|
67
70
|
}
|
|
@@ -76,6 +79,9 @@ class ApiClient {
|
|
|
76
79
|
return this.parseResponse(response.data);
|
|
77
80
|
}
|
|
78
81
|
catch (e) {
|
|
82
|
+
if (e.response && e.response.data) {
|
|
83
|
+
return this.parseResponse(e.response.data);
|
|
84
|
+
}
|
|
79
85
|
return { success: false, error: { code: 'REQUEST_FAILED', message: e instanceof Error ? e.message : 'Unknown error' } };
|
|
80
86
|
}
|
|
81
87
|
}
|
|
@@ -90,6 +96,9 @@ class ApiClient {
|
|
|
90
96
|
return this.parseResponse(response.data);
|
|
91
97
|
}
|
|
92
98
|
catch (e) {
|
|
99
|
+
if (e.response && e.response.data) {
|
|
100
|
+
return this.parseResponse(e.response.data);
|
|
101
|
+
}
|
|
93
102
|
return { success: false, error: { code: 'REQUEST_FAILED', message: e instanceof Error ? e.message : 'Unknown error' } };
|
|
94
103
|
}
|
|
95
104
|
}
|
|
@@ -100,6 +109,9 @@ class ApiClient {
|
|
|
100
109
|
return this.parseResponse(response.data);
|
|
101
110
|
}
|
|
102
111
|
catch (e) {
|
|
112
|
+
if (e.response && e.response.data) {
|
|
113
|
+
return this.parseResponse(e.response.data);
|
|
114
|
+
}
|
|
103
115
|
return { success: false, error: { code: 'REQUEST_FAILED', message: e instanceof Error ? e.message : 'Unknown error' } };
|
|
104
116
|
}
|
|
105
117
|
}
|
|
@@ -145,4 +157,4 @@ class ApiClient {
|
|
|
145
157
|
}
|
|
146
158
|
}
|
|
147
159
|
exports.ApiClient = ApiClient;
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpQ2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9BcGlDbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQWlFO0FBQ2pFLHNDQUF3RDtBQUN4RCw0Q0FBeUM7QUFDekMsNENBQThDO0FBYzlDLE1BQWEsU0FBUztJQUlwQixZQUFZLE9BQWU7UUFGbkIsV0FBTSxHQUFvQixNQUFNLENBQUM7UUFHdkMsZUFBTSxDQUFDLEtBQUssQ0FBQyx3Q0FBd0MsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsTUFBTSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7WUFDekIsT0FBTyxFQUFFLE9BQU87WUFDaEIsT0FBTyxFQUFFLEtBQUs7U0FDZixDQUFDLENBQUM7UUFFSCxzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM1QyxlQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixNQUFNLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxJQUFJLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQzNFLElBQUksTUFBTSxDQUFDLE1BQU07Z0JBQUUsZUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM1RSxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztRQUVILHVDQUF1QztRQUN2QyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUNuQyxRQUFRLENBQUMsRUFBRTtZQUNULGVBQU0sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3hFLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUMsRUFDRCxLQUFLLENBQUMsRUFBRTtZQUNOLGVBQU0sQ0FBQyxLQUFLLENBQUMsY0FBYyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUM1QyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbkIsZUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztnQkFDakQsZUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDL0QsQ0FBQztZQUNELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU07UUFDakIsZUFBTSxDQUFDLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQWEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNyRCxNQUFNLE1BQU0sR0FBRyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDO1FBQ3JDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBYTtRQUN4QixlQUFNLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxVQUFVLEtBQUssRUFBRSxDQUFDO0lBQzNFLENBQUM7SUFFRCxjQUFjO1FBQ1osZUFBTSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQXVCO1FBQy9CLGVBQU0sQ0FBQyxLQUFLLENBQUMsc0JBQXNCLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFHLENBQUksSUFBWSxFQUFFLE1BQWdDO1FBQ3pELE1BQU0sTUFBTSxHQUF1QixFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUNsRixJQUFJLENBQUM7WUFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNyRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxDQUFDLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO1FBQzFILENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBSSxJQUFZLEVBQUUsSUFBYztRQUN4QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxLQUFLLE1BQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUEsa0JBQU0sRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRixNQUFNLE1BQU0sR0FBdUI7WUFDakMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDL0IsT0FBTyxFQUFFLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRTtTQUMxQyxDQUFDO1FBQ0YsSUFBSSxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzVELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBSSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLENBQUMsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7UUFDMUgsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRyxDQUFJLElBQVksRUFBRSxJQUFjO1FBQ3ZDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBQSxrQkFBTSxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xGLE1BQU0sTUFBTSxHQUF1QjtZQUNqQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUMvQixPQUFPLEVBQUUsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFO1NBQzFDLENBQUM7UUFDRixJQUFJLENBQUM7WUFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDM0QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsQ0FBQyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztRQUMxSCxDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUksSUFBWTtRQUMxQixNQUFNLE1BQU0sR0FBdUIsRUFBRSxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDdkUsSUFBSSxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDeEQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsQ0FBQyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztRQUMxSCxDQUFDO0lBQ0gsQ0FBQztJQUVPLGFBQWEsQ0FBSSxJQUFxQjtRQUM1QyxlQUFNLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxPQUFPLElBQUksR0FBRyxDQUFDLENBQUM7UUFDN0QsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM3QixPQUFPLElBQXNCLENBQUM7UUFDaEMsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUU1QixJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZELElBQUksQ0FBQztnQkFDSCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFtQixDQUFDO1lBQy9DLENBQUM7WUFBQyxNQUFNLENBQUM7Z0JBQ1AsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsRUFBRSxDQUFDO1lBQ3RHLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUMvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxFQUFFLENBQUM7UUFDOUcsQ0FBQztRQUVELElBQUksQ0FBQztZQUNILE9BQU8sSUFBQSxrQkFBTSxFQUFpQixPQUFPLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsSUFBSSxDQUFDO2dCQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQW1CLENBQUM7WUFDL0MsQ0FBQztZQUFDLE1BQU0sQ0FBQztnQkFDUCxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxFQUFFLENBQUM7WUFDakcsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxZQVlqQjtRQUNDLElBQUksQ0FBQztZQUNILE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDckIsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQztRQUM1QixDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsK0NBQStDO1FBQ2pELENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUEvSkQsOEJBK0pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zLCB7IEF4aW9zSW5zdGFuY2UsIEF4aW9zUmVxdWVzdENvbmZpZyB9IGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IGNvbmZpZ01hbmFnZXIsIEdsb2JhbENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi91dGlscy9sb2dnZXInO1xuaW1wb3J0IHsgZW5jb2RlLCBkZWNvZGUgfSBmcm9tICcuLi9kYXRhbW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwaUVycm9yIHtcbiAgY29kZTogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIGRldGFpbHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcGlSZXNwb25zZTxUPiB7XG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG4gIGRhdGE/OiBUO1xuICBlcnJvcj86IEFwaUVycm9yO1xufVxuXG5leHBvcnQgY2xhc3MgQXBpQ2xpZW50IHtcbiAgcHJpdmF0ZSBjbGllbnQ6IEF4aW9zSW5zdGFuY2U7XG4gIHByaXZhdGUgZm9ybWF0OiAndG9vbicgfCAnanNvbicgPSAndG9vbic7XG5cbiAgY29uc3RydWN0b3IoYmFzZVVybDogc3RyaW5nKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBJbml0aWFsaXppbmcgQXBpQ2xpZW50IHdpdGggYmFzZVVybDogJHtiYXNlVXJsfWApO1xuICAgIHRoaXMuY2xpZW50ID0gYXhpb3MuY3JlYXRlKHtcbiAgICAgIGJhc2VVUkw6IGJhc2VVcmwsXG4gICAgICB0aW1lb3V0OiAzMDAwMFxuICAgIH0pO1xuXG4gICAgLy8gQWRkIHJlcXVlc3QgaW50ZXJjZXB0b3IgZm9yIGxvZ2dpbmdcbiAgICB0aGlzLmNsaWVudC5pbnRlcmNlcHRvcnMucmVxdWVzdC51c2UoY29uZmlnID0+IHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhgQVBJIFJlcXVlc3Q6ICR7Y29uZmlnLm1ldGhvZD8udG9VcHBlckNhc2UoKX0gJHtjb25maWcudXJsfWApO1xuICAgICAgaWYgKGNvbmZpZy5wYXJhbXMpIGxvZ2dlci5kZWJ1ZyhgUGFyYW1zOiAke0pTT04uc3RyaW5naWZ5KGNvbmZpZy5wYXJhbXMpfWApO1xuICAgICAgcmV0dXJuIGNvbmZpZztcbiAgICB9KTtcblxuICAgIC8vIEFkZCByZXNwb25zZSBpbnRlcmNlcHRvciBmb3IgbG9nZ2luZ1xuICAgIHRoaXMuY2xpZW50LmludGVyY2VwdG9ycy5yZXNwb25zZS51c2UoXG4gICAgICByZXNwb25zZSA9PiB7XG4gICAgICAgIGxvZ2dlci5kZWJ1ZyhgQVBJIFJlc3BvbnNlOiAke3Jlc3BvbnNlLnN0YXR1c30gJHtyZXNwb25zZS5jb25maWcudXJsfWApO1xuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICB9LFxuICAgICAgZXJyb3IgPT4ge1xuICAgICAgICBsb2dnZXIuZGVidWcoYEFQSSBFcnJvcjogJHtlcnJvci5tZXNzYWdlfWApO1xuICAgICAgICBpZiAoZXJyb3IucmVzcG9uc2UpIHtcbiAgICAgICAgICBsb2dnZXIuZGVidWcoYFN0YXR1czogJHtlcnJvci5yZXNwb25zZS5zdGF0dXN9YCk7XG4gICAgICAgICAgbG9nZ2VyLmRlYnVnKGBEYXRhOiAke0pTT04uc3RyaW5naWZ5KGVycm9yLnJlc3BvbnNlLmRhdGEpfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBjcmVhdGUoKTogUHJvbWlzZTxBcGlDbGllbnQ+IHtcbiAgICBsb2dnZXIuZGVidWcoJ0FwaUNsaWVudC5jcmVhdGUoKSBjYWxsZWQnKTtcbiAgICBjb25zdCBjb25maWcgPSBhd2FpdCBjb25maWdNYW5hZ2VyLmdldEdsb2JhbENvbmZpZygpO1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBBcGlDbGllbnQoY29uZmlnLmFwaVVybCk7XG4gICAgY2xpZW50LmZvcm1hdCA9IGNvbmZpZy5kZWZhdWx0Rm9ybWF0O1xuICAgIHJldHVybiBjbGllbnQ7XG4gIH1cblxuICBzZXRBdXRoVG9rZW4odG9rZW46IHN0cmluZyk6IHZvaWQge1xuICAgIGxvZ2dlci5kZWJ1ZygnU2V0dGluZyBBdXRoIFRva2VuJyk7XG4gICAgdGhpcy5jbGllbnQuZGVmYXVsdHMuaGVhZGVycy5jb21tb25bJ0F1dGhvcml6YXRpb24nXSA9IGBCZWFyZXIgJHt0b2tlbn1gO1xuICB9XG5cbiAgY2xlYXJBdXRoVG9rZW4oKTogdm9pZCB7XG4gICAgbG9nZ2VyLmRlYnVnKCdDbGVhcmluZyBBdXRoIFRva2VuJyk7XG4gICAgZGVsZXRlIHRoaXMuY2xpZW50LmRlZmF1bHRzLmhlYWRlcnMuY29tbW9uWydBdXRob3JpemF0aW9uJ107XG4gIH1cblxuICBzZXRGb3JtYXQoZm9ybWF0OiAndG9vbicgfCAnanNvbicpOiB2b2lkIHtcbiAgICBsb2dnZXIuZGVidWcoYFNldHRpbmcgZm9ybWF0IHRvOiAke2Zvcm1hdH1gKTtcbiAgICB0aGlzLmZvcm1hdCA9IGZvcm1hdDtcbiAgfVxuXG4gIGFzeW5jIGdldDxUPihwYXRoOiBzdHJpbmcsIHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogUHJvbWlzZTxBcGlSZXNwb25zZTxUPj4ge1xuICAgIGNvbnN0IGNvbmZpZzogQXhpb3NSZXF1ZXN0Q29uZmlnID0geyBwYXJhbXM6IHsgLi4ucGFyYW1zLCBmb3JtYXQ6IHRoaXMuZm9ybWF0IH0gfTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5nZXQocGF0aCwgY29uZmlnKTtcbiAgICAgIHJldHVybiB0aGlzLnBhcnNlUmVzcG9uc2U8VD4ocmVzcG9uc2UuZGF0YSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiB7IGNvZGU6ICdSRVFVRVNUX0ZBSUxFRCcsIG1lc3NhZ2U6IGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyB9IH07XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcG9zdDxUPihwYXRoOiBzdHJpbmcsIGRhdGE/OiB1bmtub3duKTogUHJvbWlzZTxBcGlSZXNwb25zZTxUPj4ge1xuICAgIGNvbnN0IGJvZHkgPSB0aGlzLmZvcm1hdCA9PT0gJ3Rvb24nICYmIGRhdGEgPyBlbmNvZGUoZGF0YSkgOiBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgICBjb25zdCBjb25maWc6IEF4aW9zUmVxdWVzdENvbmZpZyA9IHsgXG4gICAgICBwYXJhbXM6IHsgZm9ybWF0OiB0aGlzLmZvcm1hdCB9LFxuICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ3RleHQvcGxhaW4nIH1cbiAgICB9O1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnBvc3QocGF0aCwgYm9keSwgY29uZmlnKTtcbiAgICAgIHJldHVybiB0aGlzLnBhcnNlUmVzcG9uc2U8VD4ocmVzcG9uc2UuZGF0YSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiB7IGNvZGU6ICdSRVFVRVNUX0ZBSUxFRCcsIG1lc3NhZ2U6IGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyB9IH07XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcHV0PFQ+KHBhdGg6IHN0cmluZywgZGF0YT86IHVua25vd24pOiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PiB7XG4gICAgY29uc3QgYm9keSA9IHRoaXMuZm9ybWF0ID09PSAndG9vbicgJiYgZGF0YSA/IGVuY29kZShkYXRhKSA6IEpTT04uc3RyaW5naWZ5KGRhdGEpO1xuICAgIGNvbnN0IGNvbmZpZzogQXhpb3NSZXF1ZXN0Q29uZmlnID0geyBcbiAgICAgIHBhcmFtczogeyBmb3JtYXQ6IHRoaXMuZm9ybWF0IH0sXG4gICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAndGV4dC9wbGFpbicgfVxuICAgIH07XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQucHV0KHBhdGgsIGJvZHksIGNvbmZpZyk7XG4gICAgICByZXR1cm4gdGhpcy5wYXJzZVJlc3BvbnNlPFQ+KHJlc3BvbnNlLmRhdGEpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogeyBjb2RlOiAnUkVRVUVTVF9GQUlMRUQnLCBtZXNzYWdlOiBlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicgfSB9O1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZTxUPihwYXRoOiBzdHJpbmcpOiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PiB7XG4gICAgY29uc3QgY29uZmlnOiBBeGlvc1JlcXVlc3RDb25maWcgPSB7IHBhcmFtczogeyBmb3JtYXQ6IHRoaXMuZm9ybWF0IH0gfTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5kZWxldGUocGF0aCwgY29uZmlnKTtcbiAgICAgIHJldHVybiB0aGlzLnBhcnNlUmVzcG9uc2U8VD4ocmVzcG9uc2UuZGF0YSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiB7IGNvZGU6ICdSRVFVRVNUX0ZBSUxFRCcsIG1lc3NhZ2U6IGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyB9IH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZVJlc3BvbnNlPFQ+KGRhdGE6IHN0cmluZyB8IG9iamVjdCk6IEFwaVJlc3BvbnNlPFQ+IHtcbiAgICBsb2dnZXIuZGVidWcoYFBhcnNpbmcgcmVzcG9uc2UgZGF0YSAodHlwZTogJHt0eXBlb2YgZGF0YX0pYCk7XG4gICAgaWYgKHR5cGVvZiBkYXRhICE9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGRhdGEgYXMgQXBpUmVzcG9uc2U8VD47XG4gICAgfVxuXG4gICAgY29uc3QgdHJpbW1lZCA9IGRhdGEudHJpbSgpO1xuXG4gICAgaWYgKHRyaW1tZWQuc3RhcnRzV2l0aCgneycpIHx8IHRyaW1tZWQuc3RhcnRzV2l0aCgnWycpKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh0cmltbWVkKSBhcyBBcGlSZXNwb25zZTxUPjtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm4geyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6IHsgY29kZTogJ1BBUlNFX0VSUk9SJywgbWVzc2FnZTogJ0ZhaWxlZCB0byBwYXJzZSBKU09OIHJlc3BvbnNlJyB9IH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRyaW1tZWQuc3RhcnRzV2l0aCgnPCcpIHx8IHRyaW1tZWQuc3RhcnRzV2l0aCgnPCFET0NUWVBFJykpIHtcbiAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogeyBjb2RlOiAnUEFSU0VfRVJST1InLCBtZXNzYWdlOiAnUmVjZWl2ZWQgSFRNTCBpbnN0ZWFkIG9mIEFQSSByZXNwb25zZScgfSB9O1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZGVjb2RlPEFwaVJlc3BvbnNlPFQ+Pih0cmltbWVkKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKHRyaW1tZWQpIGFzIEFwaVJlc3BvbnNlPFQ+O1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogeyBjb2RlOiAnUEFSU0VfRVJST1InLCBtZXNzYWdlOiAnRmFpbGVkIHRvIHBhcnNlIHJlc3BvbnNlJyB9IH07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcmVwb3J0RXJyb3IoZXJyb3JDb250ZXh0OiB7XG4gICAgY29tbWFuZDogc3RyaW5nO1xuICAgIGVycm9yQ29kZTogc3RyaW5nO1xuICAgIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICAgIHN0YWNrVHJhY2U/OiBzdHJpbmc7XG4gICAgY2xpVmVyc2lvbjogc3RyaW5nO1xuICAgIG5vZGVWZXJzaW9uOiBzdHJpbmc7XG4gICAgb3M6IHN0cmluZztcbiAgICBhcmNoOiBzdHJpbmc7XG4gICAgYWdlbnRNb2RlbD86IHN0cmluZztcbiAgICBhZ2VudE5hbWU/OiBzdHJpbmc7XG4gICAgdGFncz86IHN0cmluZ1tdO1xuICB9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNhdmVkRm9ybWF0ID0gdGhpcy5mb3JtYXQ7XG4gICAgICB0aGlzLmZvcm1hdCA9ICdqc29uJztcbiAgICAgIGF3YWl0IHRoaXMucG9zdCgnL3YxL2Vycm9ycycsIGVycm9yQ29udGV4dCk7XG4gICAgICB0aGlzLmZvcm1hdCA9IHNhdmVkRm9ybWF0O1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gU2lsZW50IOKAlCBuZXZlciBibG9jayBDTEkgZm9yIGVycm9yIHJlcG9ydGluZ1xuICAgIH1cbiAgfVxufVxuIl19
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpQ2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9BcGlDbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQWlFO0FBQ2pFLHNDQUF3RDtBQUN4RCw0Q0FBeUM7QUFDekMsNENBQThDO0FBYzlDLE1BQWEsU0FBUztJQUlwQixZQUFZLE9BQWU7UUFGbkIsV0FBTSxHQUFvQixNQUFNLENBQUM7UUFHdkMsZUFBTSxDQUFDLEtBQUssQ0FBQyx3Q0FBd0MsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsTUFBTSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7WUFDekIsT0FBTyxFQUFFLE9BQU87WUFDaEIsT0FBTyxFQUFFLEtBQUs7U0FDZixDQUFDLENBQUM7UUFFSCxzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM1QyxlQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixNQUFNLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxJQUFJLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQzNFLElBQUksTUFBTSxDQUFDLE1BQU07Z0JBQUUsZUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM1RSxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztRQUVILHVDQUF1QztRQUN2QyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUNuQyxRQUFRLENBQUMsRUFBRTtZQUNULGVBQU0sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lB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bmZpZyB9IGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IGNvbmZpZ01hbmFnZXIsIEdsb2JhbENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi91dGlscy9sb2dnZXInO1xuaW1wb3J0IHsgZW5jb2RlLCBkZWNvZGUgfSBmcm9tICcuLi9kYXRhbW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwaUVycm9yIHtcbiAgY29kZTogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIGRldGFpbHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcGlSZXNwb25zZTxUPiB7XG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG4gIGRhdGE/OiBUO1xuICBlcnJvcj86IEFwaUVycm9yO1xufVxuXG5leHBvcnQgY2xhc3MgQXBpQ2xpZW50IHtcbiAgcHJpdmF0ZSBjbGllbnQ6IEF4aW9zSW5zdGFuY2U7XG4gIHByaXZhdGUgZm9ybWF0OiAndG9vbicgfCAnanNvbicgPSAndG9vbic7XG5cbiAgY29uc3RydWN0b3IoYmFzZVVybDogc3RyaW5nKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBJbml0aWFsaXppbmcgQXBpQ2xpZW50IHdpdGggYmFzZVVybDogJHtiYXNlVXJsfWApO1xuICAgIHRoaXMuY2xpZW50ID0gYXhpb3MuY3JlYXRlKHtcbiAgICAgIGJhc2VVUkw6IGJhc2VVcmwsXG4gICAgICB0aW1lb3V0OiAzMDAwMFxuICAgIH0pO1xuXG4gICAgLy8gQWRkIHJlcXVlc3QgaW50ZXJjZXB0b3IgZm9yIGxvZ2dpbmdcbiAgICB0aGlzLmNsaWVudC5pbnRlcmNlcHRvcnMucmVxdWVzdC51c2UoY29uZmlnID0+IHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhgQVBJIFJlcXVlc3Q6ICR7Y29uZmlnLm1ldGhvZD8udG9VcHBlckNhc2UoKX0gJHtjb25maWcudXJsfWApO1xuICAgICAgaWYgKGNvbmZpZy5wYXJhbXMpIGxvZ2dlci5kZWJ1ZyhgUGFyYW1zOiAke0pTT04uc3RyaW5naWZ5KGNvbmZpZy5wYXJhbXMpfWApO1xuICAgICAgcmV0dXJuIGNvbmZpZztcbiAgICB9KTtcblxuICAgIC8vIEFkZCByZXNwb25zZSBpbnRlcmNlcHRvciBmb3IgbG9nZ2luZ1xuICAgIHRoaXMuY2xpZW50LmludGVyY2VwdG9ycy5yZXNwb25zZS51c2UoXG4gICAgICByZXNwb25zZSA9PiB7XG4gICAgICAgIGxvZ2dlci5kZWJ1ZyhgQVBJIFJlc3BvbnNlOiAke3Jlc3BvbnNlLnN0YXR1c30gJHtyZXNwb25zZS5jb25maWcudXJsfWApO1xuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICB9LFxuICAgICAgZXJyb3IgPT4ge1xuICAgICAgICBsb2dnZXIuZGVidWcoYEFQSSBFcnJvcjogJHtlcnJvci5tZXNzYWdlfWApO1xuICAgICAgICBpZiAoZXJyb3IucmVzcG9uc2UpIHtcbiAgICAgICAgICBsb2dnZXIuZGVidWcoYFN0YXR1czogJHtlcnJvci5yZXNwb25zZS5zdGF0dXN9YCk7XG4gICAgICAgICAgbG9nZ2VyLmRlYnVnKGBEYXRhOiAke0pTT04uc3RyaW5naWZ5KGVycm9yLnJlc3BvbnNlLmRhdGEpfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBjcmVhdGUoKTogUHJvbWlzZTxBcGlDbGllbnQ+IHtcbiAgICBsb2dnZXIuZGVidWcoJ0FwaUNsaWVudC5jcmVhdGUoKSBjYWxsZWQnKTtcbiAgICBjb25zdCBjb25maWcgPSBhd2FpdCBjb25maWdNYW5hZ2VyLmdldEdsb2JhbENvbmZpZygpO1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBBcGlDbGllbnQoY29uZmlnLmFwaVVybCk7XG4gICAgY2xpZW50LmZvcm1hdCA9IGNvbmZpZy5kZWZhdWx0Rm9ybWF0O1xuICAgIHJldHVybiBjbGllbnQ7XG4gIH1cblxuICBzZXRBdXRoVG9rZW4odG9rZW46IHN0cmluZyk6IHZvaWQge1xuICAgIGxvZ2dlci5kZWJ1ZygnU2V0dGluZyBBdXRoIFRva2VuJyk7XG4gICAgdGhpcy5jbGllbnQuZGVmYXVsdHMuaGVhZGVycy5jb21tb25bJ0F1dGhvcml6YXRpb24nXSA9IGBCZWFyZXIgJHt0b2tlbn1gO1xuICB9XG5cbiAgY2xlYXJBdXRoVG9rZW4oKTogdm9pZCB7XG4gICAgbG9nZ2VyLmRlYnVnKCdDbGVhcmluZyBBdXRoIFRva2VuJyk7XG4gICAgZGVsZXRlIHRoaXMuY2xpZW50LmRlZmF1bHRzLmhlYWRlcnMuY29tbW9uWydBdXRob3JpemF0aW9uJ107XG4gIH1cblxuICBzZXRGb3JtYXQoZm9ybWF0OiAndG9vbicgfCAnanNvbicpOiB2b2lkIHtcbiAgICBsb2dnZXIuZGVidWcoYFNldHRpbmcgZm9ybWF0IHRvOiAke2Zvcm1hdH1gKTtcbiAgICB0aGlzLmZvcm1hdCA9IGZvcm1hdDtcbiAgfVxuXG4gIGFzeW5jIGdldDxUPihwYXRoOiBzdHJpbmcsIHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogUHJvbWlzZTxBcGlSZXNwb25zZTxUPj4ge1xuICAgIGNvbnN0IGNvbmZpZzogQXhpb3NSZXF1ZXN0Q29uZmlnID0geyBwYXJhbXM6IHsgLi4ucGFyYW1zLCBmb3JtYXQ6IHRoaXMuZm9ybWF0IH0gfTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5nZXQocGF0aCwgY29uZmlnKTtcbiAgICAgIHJldHVybiB0aGlzLnBhcnNlUmVzcG9uc2U8VD4ocmVzcG9uc2UuZGF0YSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBpZiAoZS5yZXNwb25zZSAmJiBlLnJlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VSZXNwb25zZTxUPihlLnJlc3BvbnNlLmRhdGEpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiB7IGNvZGU6ICdSRVFVRVNUX0ZBSUxFRCcsIG1lc3NhZ2U6IGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyB9IH07XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcG9zdDxUPihwYXRoOiBzdHJpbmcsIGRhdGE/OiB1bmtub3duKTogUHJvbWlzZTxBcGlSZXNwb25zZTxUPj4ge1xuICAgIGNvbnN0IGJvZHkgPSB0aGlzLmZvcm1hdCA9PT0gJ3Rvb24nICYmIGRhdGEgPyBlbmNvZGUoZGF0YSkgOiBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgICBjb25zdCBjb25maWc6IEF4aW9zUmVxdWVzdENvbmZpZyA9IHsgXG4gICAgICBwYXJhbXM6IHsgZm9ybWF0OiB0aGlzLmZvcm1hdCB9LFxuICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ3RleHQvcGxhaW4nIH1cbiAgICB9O1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnBvc3QocGF0aCwgYm9keSwgY29uZmlnKTtcbiAgICAgIHJldHVybiB0aGlzLnBhcnNlUmVzcG9uc2U8VD4ocmVzcG9uc2UuZGF0YSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBpZiAoZS5yZXNwb25zZSAmJiBlLnJlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VSZXNwb25zZTxUPihlLnJlc3BvbnNlLmRhdGEpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiB7IGNvZGU6ICdSRVFVRVNUX0ZBSUxFRCcsIG1lc3NhZ2U6IGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyB9IH07XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcHV0PFQ+KHBhdGg6IHN0cmluZywgZGF0YT86IHVua25vd24pOiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PiB7XG4gICAgY29uc3QgYm9keSA9IHRoaXMuZm9ybWF0ID09PSAndG9vbicgJiYgZGF0YSA/IGVuY29kZShkYXRhKSA6IEpTT04uc3RyaW5naWZ5KGRhdGEpO1xuICAgIGNvbnN0IGNvbmZpZzogQXhpb3NSZXF1ZXN0Q29uZmlnID0geyBcbiAgICAgIHBhcmFtczogeyBmb3JtYXQ6IHRoaXMuZm9ybWF0IH0sXG4gICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAndGV4dC9wbGFpbicgfVxuICAgIH07XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQucHV0KHBhdGgsIGJvZHksIGNvbmZpZyk7XG4gICAgICByZXR1cm4gdGhpcy5wYXJzZVJlc3BvbnNlPFQ+KHJlc3BvbnNlLmRhdGEpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgaWYgKGUucmVzcG9uc2UgJiYgZS5yZXNwb25zZS5kYXRhKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcnNlUmVzcG9uc2U8VD4oZS5yZXNwb25zZS5kYXRhKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogeyBjb2RlOiAnUkVRVUVTVF9GQUlMRUQnLCBtZXNzYWdlOiBlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicgfSB9O1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZTxUPihwYXRoOiBzdHJpbmcpOiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PiB7XG4gICAgY29uc3QgY29uZmlnOiBBeGlvc1JlcXVlc3RDb25maWcgPSB7IHBhcmFtczogeyBmb3JtYXQ6IHRoaXMuZm9ybWF0IH0gfTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5kZWxldGUocGF0aCwgY29uZmlnKTtcbiAgICAgIHJldHVybiB0aGlzLnBhcnNlUmVzcG9uc2U8VD4ocmVzcG9uc2UuZGF0YSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBpZiAoZS5yZXNwb25zZSAmJiBlLnJlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VSZXNwb25zZTxUPihlLnJlc3BvbnNlLmRhdGEpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiB7IGNvZGU6ICdSRVFVRVNUX0ZBSUxFRCcsIG1lc3NhZ2U6IGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyB9IH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZVJlc3BvbnNlPFQ+KGRhdGE6IHN0cmluZyB8IG9iamVjdCk6IEFwaVJlc3BvbnNlPFQ+IHtcbiAgICBsb2dnZXIuZGVidWcoYFBhcnNpbmcgcmVzcG9uc2UgZGF0YSAodHlwZTogJHt0eXBlb2YgZGF0YX0pYCk7XG4gICAgaWYgKHR5cGVvZiBkYXRhICE9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGRhdGEgYXMgQXBpUmVzcG9uc2U8VD47XG4gICAgfVxuXG4gICAgY29uc3QgdHJpbW1lZCA9IGRhdGEudHJpbSgpO1xuXG4gICAgaWYgKHRyaW1tZWQuc3RhcnRzV2l0aCgneycpIHx8IHRyaW1tZWQuc3RhcnRzV2l0aCgnWycpKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh0cmltbWVkKSBhcyBBcGlSZXNwb25zZTxUPjtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm4geyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6IHsgY29kZTogJ1BBUlNFX0VSUk9SJywgbWVzc2FnZTogJ0ZhaWxlZCB0byBwYXJzZSBKU09OIHJlc3BvbnNlJyB9IH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRyaW1tZWQuc3RhcnRzV2l0aCgnPCcpIHx8IHRyaW1tZWQuc3RhcnRzV2l0aCgnPCFET0NUWVBFJykpIHtcbiAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogeyBjb2RlOiAnUEFSU0VfRVJST1InLCBtZXNzYWdlOiAnUmVjZWl2ZWQgSFRNTCBpbnN0ZWFkIG9mIEFQSSByZXNwb25zZScgfSB9O1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZGVjb2RlPEFwaVJlc3BvbnNlPFQ+Pih0cmltbWVkKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKHRyaW1tZWQpIGFzIEFwaVJlc3BvbnNlPFQ+O1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogeyBjb2RlOiAnUEFSU0VfRVJST1InLCBtZXNzYWdlOiAnRmFpbGVkIHRvIHBhcnNlIHJlc3BvbnNlJyB9IH07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcmVwb3J0RXJyb3IoZXJyb3JDb250ZXh0OiB7XG4gICAgY29tbWFuZDogc3RyaW5nO1xuICAgIGVycm9yQ29kZTogc3RyaW5nO1xuICAgIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICAgIHN0YWNrVHJhY2U/OiBzdHJpbmc7XG4gICAgY2xpVmVyc2lvbjogc3RyaW5nO1xuICAgIG5vZGVWZXJzaW9uOiBzdHJpbmc7XG4gICAgb3M6IHN0cmluZztcbiAgICBhcmNoOiBzdHJpbmc7XG4gICAgYWdlbnRNb2RlbD86IHN0cmluZztcbiAgICBhZ2VudE5hbWU/OiBzdHJpbmc7XG4gICAgdGFncz86IHN0cmluZ1tdO1xuICB9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNhdmVkRm9ybWF0ID0gdGhpcy5mb3JtYXQ7XG4gICAgICB0aGlzLmZvcm1hdCA9ICdqc29uJztcbiAgICAgIGF3YWl0IHRoaXMucG9zdCgnL3YxL2Vycm9ycycsIGVycm9yQ29udGV4dCk7XG4gICAgICB0aGlzLmZvcm1hdCA9IHNhdmVkRm9ybWF0O1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gU2lsZW50IOKAlCBuZXZlciBibG9jayBDTEkgZm9yIGVycm9yIHJlcG9ydGluZ1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -7,6 +7,7 @@ export interface AuthResult {
|
|
|
7
7
|
}
|
|
8
8
|
export declare class AuthHelper {
|
|
9
9
|
static ensureAuthenticated(networkId: string, reason?: string): Promise<AuthResult>;
|
|
10
|
+
private static handleAuthResponse;
|
|
10
11
|
static getApiClient(): Promise<ApiClient>;
|
|
11
12
|
static getAuthenticatedClient(networkId: string, reason?: string): Promise<ApiClient>;
|
|
12
13
|
static getFirstAuthenticatedClient(): Promise<{
|
package/dist/auth/AuthHelper.js
CHANGED
|
@@ -37,6 +37,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.AuthHelper = void 0;
|
|
40
|
+
const logger_1 = require("../utils/logger");
|
|
40
41
|
const path = __importStar(require("path"));
|
|
41
42
|
const os = __importStar(require("os"));
|
|
42
43
|
const fs = __importStar(require("fs-extra"));
|
|
@@ -114,18 +115,53 @@ class AuthHelper {
|
|
|
114
115
|
reason
|
|
115
116
|
});
|
|
116
117
|
if (registerResponse.success && registerResponse.data) {
|
|
117
|
-
|
|
118
|
+
return this.handleAuthResponse(networkId, keys, registerResponse.data, client, true);
|
|
119
|
+
}
|
|
120
|
+
// Fallback: If already registered (or any 400-like error), try login instead
|
|
121
|
+
const errorMessage = registerResponse.error?.message || '';
|
|
122
|
+
const isAlreadyRegistered = errorMessage.toLowerCase().includes('already registered');
|
|
123
|
+
if (isAlreadyRegistered || !registerResponse.success) {
|
|
124
|
+
console.log(colors_1.default.gray(` Registration failed (likely already registered). Attempting login for ${networkId}...`));
|
|
125
|
+
const loginResponse = await client.post('/v1/auth/login', {
|
|
126
|
+
networkId,
|
|
118
127
|
publicToken: keys.publicToken,
|
|
119
128
|
privateKey: keys.privateKey,
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
129
|
+
reason
|
|
130
|
+
});
|
|
131
|
+
if (loginResponse.success && loginResponse.data) {
|
|
132
|
+
return this.handleAuthResponse(networkId, keys, loginResponse.data, client, false);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
throw new Error(registerResponse.error?.message || 'Failed to authenticate');
|
|
136
|
+
}
|
|
137
|
+
static async handleAuthResponse(networkId, keys, responseData, client, isNewUser) {
|
|
138
|
+
// Search for JWT in different possible locations due to TOON decoding variations
|
|
139
|
+
const jwt = responseData.jwt ||
|
|
140
|
+
(responseData.data && responseData.data.jwt) ||
|
|
141
|
+
(responseData.tokens && responseData.tokens.jwt) ||
|
|
142
|
+
(responseData.data && responseData.data.tokens && responseData.data.tokens.jwt);
|
|
143
|
+
const expiresAt = responseData.expiresAt ||
|
|
144
|
+
(responseData.data && responseData.data.expiresAt) ||
|
|
145
|
+
(responseData.tokens && responseData.tokens.expiresAt);
|
|
146
|
+
if (!jwt) {
|
|
147
|
+
logger_1.logger.debug('Auth Response Data:', JSON.stringify(responseData));
|
|
148
|
+
throw new Error('Authentication succeeded but no JWT found in response');
|
|
149
|
+
}
|
|
150
|
+
const newCreds = {
|
|
151
|
+
publicToken: keys.publicToken,
|
|
152
|
+
privateKey: keys.privateKey,
|
|
153
|
+
jwt: jwt,
|
|
154
|
+
expiresAt: expiresAt || (Date.now() + 24 * 3600 * 1000) // Default 24h if missing
|
|
155
|
+
};
|
|
156
|
+
await ConfigManager_1.configManager.saveCredentials(networkId, newCreds);
|
|
157
|
+
client.setAuthToken(jwt);
|
|
158
|
+
if (isNewUser) {
|
|
125
159
|
console.log(colors_1.default.green(` ✓ Auto-registered in network: ${networkId}`));
|
|
126
|
-
return { client, credentials: newCreds, isNewUser: true };
|
|
127
160
|
}
|
|
128
|
-
|
|
161
|
+
else {
|
|
162
|
+
console.log(colors_1.default.green(` ✓ Logged into network: ${networkId}`));
|
|
163
|
+
}
|
|
164
|
+
return { client, credentials: newCreds, isNewUser };
|
|
129
165
|
}
|
|
130
166
|
static async getApiClient() {
|
|
131
167
|
const config = await ConfigManager_1.configManager.getGlobalConfig();
|
|
@@ -158,4 +194,4 @@ class AuthHelper {
|
|
|
158
194
|
}
|
|
159
195
|
}
|
|
160
196
|
exports.AuthHelper = AuthHelper;
|
|
161
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0aEhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdXRoL0F1dGhIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQTZCO0FBQzdCLHVDQUF5QjtBQUN6Qiw2Q0FBK0I7QUFDL0IsZ0RBQTZDO0FBQzdDLDJEQUE0RTtBQUM1RSw2REFBb0M7QUFRcEMsTUFBYSxVQUFVO0lBQ3JCLE1BQU0sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsU0FBaUIsRUFBRSxNQUFlO1FBQ2pFLE1BQU0sTUFBTSxHQUFHLE1BQU0sNkJBQWEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNyRCxNQUFNLE1BQU0sR0FBRyxJQUFJLHFCQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXZDLE1BQU0sYUFBYSxHQUFHLE1BQU0sNkJBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFcEUsSUFBSSxhQUFhLElBQUksYUFBYSxDQUFDLEdBQUcsSUFBSSxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEUsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFDakMsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hELE1BQU0sQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUNYLElBQUksQ0FBQzt3QkFDSCxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7NEJBQ2xDLFNBQVM7NEJBQ1QsV0FBVyxFQUFFLGFBQWEs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QU0sQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsMkJBQTJCO1FBQ3RDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLGNBQWMsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUU5RSxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzNDLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0ZBQWdGLENBQUMsQ0FBQztRQUNwRyxDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFekQsS0FBSyxNQUFNLElBQUksSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUM3QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3pELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQztZQUM5QyxDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLFNBQVM7WUFDWCxDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsK0VBQStFLENBQUMsQ0FBQztJQUNuRyxDQUFDO0NBQ0Y7QUFySUQsZ0NBcUlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB7IEFwaUNsaWVudCB9IGZyb20gJy4uL2FwaS9BcGlDbGllbnQnO1xuaW1wb3J0IHsgY29uZmlnTWFuYWdlciwgTmV0d29ya0NyZWRlbnRpYWxzIH0gZnJvbSAnLi4vY29uZmlnL0NvbmZpZ01hbmFnZXInO1xuaW1wb3J0IGNoYWxrIGZyb20gJy4uL3V0aWxzL2NvbG9ycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aFJlc3VsdCB7XG4gIGNsaWVudDogQXBpQ2xpZW50O1xuICBjcmVkZW50aWFsczogTmV0d29ya0NyZWRlbnRpYWxzO1xuICBpc05ld1VzZXI6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBBdXRoSGVscGVyIHtcbiAgc3RhdGljIGFzeW5jIGVuc3VyZUF1dGhlbnRpY2F0ZWQobmV0d29ya0lkOiBzdHJpbmcsIHJlYXNvbj86IHN0cmluZyk6IFByb21pc2U8QXV0aFJlc3VsdD4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IGNvbmZpZ01hbmFnZXIuZ2V0R2xvYmFsQ29uZmlnKCk7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IEFwaUNsaWVudChjb25maWcuYXBpVXJsKTtcbiAgICBjbGllbnQuc2V0Rm9ybWF0KGNvbmZpZy5kZWZhdWx0Rm9ybWF0KTtcblxuICAgIGNvbnN0IGV4aXN0aW5nQ3JlZHMgPSBhd2FpdCBjb25maWdNYW5hZ2VyLmdldENyZWRlbnRpYWxzKG5ldHdvcmtJZCk7XG4gICAgXG4gICAgaWYgKGV4aXN0aW5nQ3JlZHMgJiYgZXhpc3RpbmdDcmVkcy5qd3QgJiYgZXhpc3RpbmdDcmVkcy5leHBpcmVzQXQpIHtcbiAgICAgIGNvbnN0IGJ1ZmZlclRpbWUgPSA1ICogNjAgKiAxMDAwO1xuICAgICAgaWYgKERhdGUubm93KCkgPCAoZXhpc3RpbmdDcmVkcy5leHBpcmVzQXQgLSBidWZmZXJUaW1lKSkge1xuICAgICAgICBjbGllbnQuc2V0QXV0aFRva2VuKGV4aXN0aW5nQ3JlZHMuand0KTtcbiAgICAgICAgaWYgKHJlYXNvbikge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCBjbGllbnQucG9zdCgnL3YxL2F1dGgvbG9naW4nLCB7XG4gICAgICAgICAgICAgIG5ldHdvcmtJZCxcbiAgICAgICAgICAgICAgcHVibGljVG9rZW46IGV4aXN0aW5nQ3JlZHMucHVibGljVG9rZW4sXG4gICAgICAgICAgICAgIHByaXZhdGVLZXk6IGV4aXN0aW5nQ3JlZHMucHJpdmF0ZUtleSxcbiAgICAgICAgICAgICAgcmVhc29uXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgYmFja2dyb3VuZCByZWFzb24gdXBkYXRlIGZhaWx1cmVzXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGNsaWVudCwgY3JlZGVudGlhbHM6IGV4aXN0aW5nQ3JlZHMsIGlzTmV3VXNlcjogZmFsc2UgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZXhpc3RpbmdDcmVkcyAmJiBleGlzdGluZ0NyZWRzLnByaXZhdGVLZXkpIHtcbiAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoYCAgQXR0ZW1wdGluZyBsb2dpbiBmb3IgJHtuZXR3b3JrSWR9Li4uYCkpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdDx7IGp3dDogc3RyaW5nOyBleHBpcmVzQXQ6IG51bWJlcjsgcHVibGljVG9rZW46IHN0cmluZyB9PignL3YxL2F1dGgvbG9naW4nLCB7XG4gICAgICAgICAgbmV0d29ya0lkLFxuICAgICAgICAgIHB1YmxpY1Rva2VuOiBleGlzdGluZ0NyZWRzLnB1YmxpY1Rva2VuLFxuICAgICAgICAgIHByaXZhdGVLZXk6IGV4aXN0aW5nQ3JlZHMucHJpdmF0ZUtleSxcbiAgICAgICAgICByZWFzb25cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MgJiYgcmVzcG9uc2UuZGF0YSkge1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRDcmVkczogTmV0d29ya0NyZWRlbnRpYWxzID0ge1xuICAgICAgICAgICAgLi4uZXhpc3RpbmdDcmVkcyxcbiAgICAgICAgICAgIGp3dDogcmVzcG9uc2UuZGF0YS5qd3QsXG4gICAgICAgICAgICBleHBpcmVzQXQ6IHJlc3BvbnNlLmRhdGEuZXhwaXJlc0F0XG4gICAgICAgICAgfTtcbiAgICAgICAgICBcbiAgICAgICAgICBhd2FpdCBjb25maWdNYW5hZ2VyLnNhdmVDcmVkZW50aWFscyhuZXR3b3JrSWQsIHVwZGF0ZWRDcmVkcyk7XG4gICAgICAgICAgY2xpZW50LnNldEF1dGhUb2tlbihyZXNwb25zZS5kYXRhLmp3dCk7XG4gICAgICAgICAgXG4gICAgICAgICAgcmV0dXJuIHsgY2xpZW50LCBjcmVkZW50aWFsczogdXBkYXRlZENyZWRzLCBpc05ld1VzZXI6IGZhbHNlIH07XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIC8vIExvZ2luIGZhaWxlZCwgd2lsbCB0cnkgdG8gcmVnaXN0ZXJcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUcnkgdG8gdXNlIGdsb2JhbCBpZGVudGl0eSBpZiBpdCBleGlzdHNcbiAgICBjb25zdCBkZWZhdWx0SWRlbnRpdHkgPSBhd2FpdCBjb25maWdNYW5hZ2VyLmdldERlZmF1bHRJZGVudGl0eSgpO1xuICAgIGxldCBrZXlzID0gZGVmYXVsdElkZW50aXR5O1xuXG4gICAgaWYgKCFrZXlzKSB7XG4gICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCcgIEdlbmVyYXRpbmcgbmV3IGlkZW50aXR5IGtleXMuLi4nKSk7XG4gICAgICBjb25zdCBrZXlzUmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PHsgcHVibGljVG9rZW46IHN0cmluZzsgcHJpdmF0ZUtleTogc3RyaW5nIH0+KCcvdjEvYXV0aC9nZW5lcmF0ZS1rZXlzJyk7XG4gICAgICBcbiAgICAgIGlmICgha2V5c1Jlc3BvbnNlLnN1Y2Nlc3MgfHwgIWtleXNSZXNwb25zZS5kYXRhKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGdlbmVyYXRlIGtleXMnKTtcbiAgICAgIH1cblxuICAgICAga2V5cyA9IGtleXNSZXNwb25zZS5kYXRhO1xuICAgICAgLy8gU2F2ZSBhcyBkZWZhdWx0IGZvciBmdXR1cmUgdXNlXG4gICAgICBhd2FpdCBjb25maWdNYW5hZ2VyLnNhdmVEZWZhdWx0SWRlbnRpdHkoa2V5cyk7XG4gICAgfVxuXG4gICAgY29uc29sZS5sb2coY2hhbGsuZ3JheShgICBSZWdpc3RlcmluZyBpbiBuZXR3b3JrICR7bmV0d29ya0lkfS4uLmApKTtcblxuICAgIGNvbnN0IHJlZ2lzdGVyUmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdDx7IG1lbWJlcjogYW55OyB0b2tlbnM6IHsgand0OiBzdHJpbmc7IGV4cGlyZXNBdDogbnVtYmVyOyBwdWJsaWNUb2tlbjogc3RyaW5nIH0gfT4oJy92MS9hdXRoL3JlZ2lzdGVyJywge1xuICAgICAgbmV0d29ya0lkLFxuICAgICAgcHVibGljVG9rZW46IGtleXMucHVibGljVG9rZW4sXG4gICAgICBwcml2YXRlS2V5OiBrZXlzLnByaXZhdGVLZXksXG4gICAgICByZWFzb25cbiAgICB9KTtcblxuICAgIGlmIChyZWdpc3RlclJlc3BvbnNlLnN1Y2Nlc3MgJiYgcmVnaXN0ZXJSZXNwb25zZS5kYXRhKSB7XG4gICAgICBjb25zdCBuZXdDcmVkczogTmV0d29ya0NyZWRlbnRpYWxzID0ge1xuICAgICAgICBwdWJsaWNUb2tlbjoga2V5cy5wdWJsaWNUb2tlbixcbiAgICAgICAgcHJpdmF0ZUtleToga2V5cy5wcml2YXRlS2V5LFxuICAgICAgICBqd3Q6IHJlZ2lzdGVyUmVzcG9uc2UuZGF0YS50b2tlbnMuand0LFxuICAgICAgICBleHBpcmVzQXQ6IHJlZ2lzdGVyUmVzcG9uc2UuZGF0YS50b2tlbnMuZXhwaXJlc0F0XG4gICAgICB9O1xuXG4gICAgICBhd2FpdCBjb25maWdNYW5hZ2VyLnNhdmVDcmVkZW50aWFscyhuZXR3b3JrSWQsIG5ld0NyZWRzKTtcbiAgICAgIGNsaWVudC5zZXRBdXRoVG9rZW4ocmVnaXN0ZXJSZXNwb25zZS5kYXRhLnRva2Vucy5qd3QpO1xuXG4gICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmVlbihgICDinJMgQXV0by1yZWdpc3RlcmVkIGluIG5ldHdvcms6ICR7bmV0d29ya0lkfWApKTtcbiAgICAgIHJldHVybiB7IGNsaWVudCwgY3JlZGVudGlhbHM6IG5ld0NyZWRzLCBpc05ld1VzZXI6IHRydWUgfTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBhdXRoZW50aWNhdGUnKTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBnZXRBcGlDbGllbnQoKTogUHJvbWlzZTxBcGlDbGllbnQ+IHtcbiAgICBjb25zdCBjb25maWcgPSBhd2FpdCBjb25maWdNYW5hZ2VyLmdldEdsb2JhbENvbmZpZygpO1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBBcGlDbGllbnQoY29uZmlnLmFwaVVybCk7XG4gICAgY2xpZW50LnNldEZvcm1hdChjb25maWcuZGVmYXVsdEZvcm1hdCk7XG4gICAgcmV0dXJuIGNsaWVudDtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBnZXRBdXRoZW50aWNhdGVkQ2xpZW50KG5ldHdvcmtJZDogc3RyaW5nLCByZWFzb24/OiBzdHJpbmcpOiBQcm9taXNlPEFwaUNsaWVudD4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZW5zdXJlQXV0aGVudGljYXRlZChuZXR3b3JrSWQsIHJlYXNvbik7XG4gICAgcmV0dXJuIHJlc3VsdC5jbGllbnQ7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZ2V0Rmlyc3RBdXRoZW50aWNhdGVkQ2xpZW50KCk6IFByb21pc2U8eyBjbGllbnQ6IEFwaUNsaWVudDsgbmV0d29ya0lkOiBzdHJpbmcgfT4ge1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzRGlyID0gcGF0aC5qb2luKG9zLmhvbWVkaXIoKSwgJy5hZ2VudGljcG9vbCcsICdjcmVkZW50aWFscycpO1xuICAgIFxuICAgIGlmICghKGF3YWl0IGZzLnBhdGhFeGlzdHMoY3JlZGVudGlhbHNEaXIpKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBzdG9yZWQgY3JlZGVudGlhbHMgZm91bmQuIFJ1biBcImFnZW50aWNwb29sIGF1dGggY29ubmVjdCA8bmV0d29ya0lkPlwiIGZpcnN0LicpO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbGVzID0gYXdhaXQgZnMucmVhZGRpcihjcmVkZW50aWFsc0Rpcik7XG4gICAgY29uc3QganNvbkZpbGVzID0gZmlsZXMuZmlsdGVyKGYgPT4gZi5lbmRzV2l0aCgnLmpzb24nKSk7XG5cbiAgICBmb3IgKGNvbnN0IGZpbGUgb2YganNvbkZpbGVzKSB7XG4gICAgICBjb25zdCBuZXR3b3JrSWQgPSBmaWxlLnJlcGxhY2UoJy5qc29uJywgJycpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5lbnN1cmVBdXRoZW50aWNhdGVkKG5ldHdvcmtJZCk7XG4gICAgICAgIHJldHVybiB7IGNsaWVudDogcmVzdWx0LmNsaWVudCwgbmV0d29ya0lkIH07XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdObyB2YWxpZCBjcmVkZW50aWFscyBmb3VuZC4gUnVuIFwiYWdlbnRpY3Bvb2wgYXV0aCBjb25uZWN0IDxuZXR3b3JrSWQ+XCIgZmlyc3QuJyk7XG4gIH1cbn1cbiJdfQ==
|
|
197
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0aEhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdXRoL0F1dGhIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQXlDO0FBQ3pDLDJDQUE2QjtBQUM3Qix1Q0FBeUI7QUFDekIsNkNBQStCO0FBQy9CLGdEQUE2QztBQUM3QywyREFBNEU7QUFDNUUsNkRBQW9DO0FBUXBDLE1BQWEsVUFBVTtJQUNyQixNQUFNLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLFNBQWlCLEVBQUUsTUFBZTtRQUNqRSxNQUFNLE1BQU0sR0FBRyxNQUFNLDZCQUFhLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDckQsTUFBTSxNQUFNLEdBQUcsSUFBSSxxQkFBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV2QyxNQUFNLGFBQWEsR0FBRyxNQUFNLDZCQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXBFLElBQUksYUFBYSxJQUFJLGFBQWEsQ0FBQyxHQUFHLElBQUksYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2xFLE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO1lBQ2pDLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUN4RCxNQUFNLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdkMsSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDWCxJQUFJLENBQUM7d0JBQ0gsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFOzRCQUNsQyxTQUFTOzRCQUNULFdB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LElBQUksS0FBSyxDQUFDLGdGQUFnRixDQUFDLENBQUM7UUFDcEcsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRXpELEtBQUssTUFBTSxJQUFJLElBQUksU0FBUyxFQUFFLENBQUM7WUFDN0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDO2dCQUNILE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUM7WUFDOUMsQ0FBQztZQUFDLE1BQU0sQ0FBQztnQkFDUCxTQUFTO1lBQ1gsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLCtFQUErRSxDQUFDLENBQUM7SUFDbkcsQ0FBQztDQUNGO0FBckxELGdDQXFMQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uL3V0aWxzL2xvZ2dlcic7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHsgQXBpQ2xpZW50IH0gZnJvbSAnLi4vYXBpL0FwaUNsaWVudCc7XG5pbXBvcnQgeyBjb25maWdNYW5hZ2VyLCBOZXR3b3JrQ3JlZGVudGlhbHMgfSBmcm9tICcuLi9jb25maWcvQ29uZmlnTWFuYWdlcic7XG5pbXBvcnQgY2hhbGsgZnJvbSAnLi4vdXRpbHMvY29sb3JzJztcblxuZXhwb3J0IGludGVyZmFjZSBBdXRoUmVzdWx0IHtcbiAgY2xpZW50OiBBcGlDbGllbnQ7XG4gIGNyZWRlbnRpYWxzOiBOZXR3b3JrQ3JlZGVudGlhbHM7XG4gIGlzTmV3VXNlcjogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIEF1dGhIZWxwZXIge1xuICBzdGF0aWMgYXN5bmMgZW5zdXJlQXV0aGVudGljYXRlZChuZXR3b3JrSWQ6IHN0cmluZywgcmVhc29uPzogc3RyaW5nKTogUHJvbWlzZTxBdXRoUmVzdWx0PiB7XG4gICAgY29uc3QgY29uZmlnID0gYXdhaXQgY29uZmlnTWFuYWdlci5nZXRHbG9iYWxDb25maWcoKTtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQXBpQ2xpZW50KGNvbmZpZy5hcGlVcmwpO1xuICAgIGNsaWVudC5zZXRGb3JtYXQoY29uZmlnLmRlZmF1bHRGb3JtYXQpO1xuXG4gICAgY29uc3QgZXhpc3RpbmdDcmVkcyA9IGF3YWl0IGNvbmZpZ01hbmFnZXIuZ2V0Q3JlZGVudGlhbHMobmV0d29ya0lkKTtcbiAgICBcbiAgICBpZiAoZXhpc3RpbmdDcmVkcyAmJiBleGlzdGluZ0NyZWRzLmp3dCAmJiBleGlzdGluZ0NyZWRzLmV4cGlyZXNBdCkge1xuICAgICAgY29uc3QgYnVmZmVyVGltZSA9IDUgKiA2MCAqIDEwMDA7XG4gICAgICBpZiAoRGF0ZS5ub3coKSA8IChleGlzdGluZ0NyZWRzLmV4cGlyZXNBdCAtIGJ1ZmZlclRpbWUpKSB7XG4gICAgICAgIGNsaWVudC5zZXRBdXRoVG9rZW4oZXhpc3RpbmdDcmVkcy5qd3QpO1xuICAgICAgICBpZiAocmVhc29uKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IGNsaWVudC5wb3N0KCcvdjEvYXV0aC9sb2dpbicsIHtcbiAgICAgICAgICAgICAgbmV0d29ya0lkLFxuICAgICAgICAgICAgICBwdWJsaWNUb2tlbjogZXhpc3RpbmdDcmVkcy5wdWJsaWNUb2tlbixcbiAgICAgICAgICAgICAgcHJpdmF0ZUtleTogZXhpc3RpbmdDcmVkcy5wcml2YXRlS2V5LFxuICAgICAgICAgICAgICByZWFzb25cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIC8vIElnbm9yZSBiYWNrZ3JvdW5kIHJlYXNvbiB1cGRhdGUgZmFpbHVyZXNcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgY2xpZW50LCBjcmVkZW50aWFsczogZXhpc3RpbmdDcmVkcywgaXNOZXdVc2VyOiBmYWxzZSB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChleGlzdGluZ0NyZWRzICYmIGV4aXN0aW5nQ3JlZHMucHJpdmF0ZUtleSkge1xuICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheShgICBBdHRlbXB0aW5nIGxvZ2luIGZvciAke25ldHdvcmtJZH0uLi5gKSk7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0PHsgand0OiBzdHJpbmc7IGV4cGlyZXNBdDogbnVtYmVyOyBwdWJsaWNUb2tlbjogc3RyaW5nIH0+KCcvdjEvYXV0aC9sb2dpbicsIHtcbiAgICAgICAgICBuZXR3b3JrSWQsXG4gICAgICAgICAgcHVibGljVG9rZW46IGV4aXN0aW5nQ3JlZHMucHVibGljVG9rZW4sXG4gICAgICAgICAgcHJpdmF0ZUtleTogZXhpc3RpbmdDcmVkcy5wcml2YXRlS2V5LFxuICAgICAgICAgIHJlYXNvblxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2VzcyAmJiByZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZENyZWRzOiBOZXR3b3JrQ3JlZGVudGlhbHMgPSB7XG4gICAgICAgICAgICAuLi5leGlzdGluZ0NyZWRzLFxuICAgICAgICAgICAgand0OiByZXNwb25zZS5kYXRhLmp3dCxcbiAgICAgICAgICAgIGV4cGlyZXNBdDogcmVzcG9uc2UuZGF0YS5leHBpcmVzQXRcbiAgICAgICAgICB9O1xuICAgICAgICAgIFxuICAgICAgICAgIGF3YWl0IGNvbmZpZ01hbmFnZXIuc2F2ZUNyZWRlbnRpYWxzKG5ldHdvcmtJZCwgdXBkYXRlZENyZWRzKTtcbiAgICAgICAgICBjbGllbnQuc2V0QXV0aFRva2VuKHJlc3BvbnNlLmRhdGEuand0KTtcbiAgICAgICAgICBcbiAgICAgICAgICByZXR1cm4geyBjbGllbnQsIGNyZWRlbnRpYWxzOiB1cGRhdGVkQ3JlZHMsIGlzTmV3VXNlcjogZmFsc2UgfTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gTG9naW4gZmFpbGVkLCB3aWxsIHRyeSB0byByZWdpc3RlclxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRyeSB0byB1c2UgZ2xvYmFsIGlkZW50aXR5IGlmIGl0IGV4aXN0c1xuICAgIGNvbnN0IGRlZmF1bHRJZGVudGl0eSA9IGF3YWl0IGNvbmZpZ01hbmFnZXIuZ2V0RGVmYXVsdElkZW50aXR5KCk7XG4gICAgbGV0IGtleXMgPSBkZWZhdWx0SWRlbnRpdHk7XG5cbiAgICBpZiAoIWtleXMpIHtcbiAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJyAgR2VuZXJhdGluZyBuZXcgaWRlbnRpdHkga2V5cy4uLicpKTtcbiAgICAgIGNvbnN0IGtleXNSZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQ8eyBwdWJsaWNUb2tlbjogc3RyaW5nOyBwcml2YXRlS2V5OiBzdHJpbmcgfT4oJy92MS9hdXRoL2dlbmVyYXRlLWtleXMnKTtcbiAgICAgIFxuICAgICAgaWYgKCFrZXlzUmVzcG9uc2Uuc3VjY2VzcyB8fCAha2V5c1Jlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZ2VuZXJhdGUga2V5cycpO1xuICAgICAgfVxuXG4gICAgICBrZXlzID0ga2V5c1Jlc3BvbnNlLmRhdGE7XG4gICAgICAvLyBTYXZlIGFzIGRlZmF1bHQgZm9yIGZ1dHVyZSB1c2VcbiAgICAgIGF3YWl0IGNvbmZpZ01hbmFnZXIuc2F2ZURlZmF1bHRJZGVudGl0eShrZXlzKTtcbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KGAgIFJlZ2lzdGVyaW5nIGluIG5ldHdvcmsgJHtuZXR3b3JrSWR9Li4uYCkpO1xuXG4gICAgY29uc3QgcmVnaXN0ZXJSZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0PGFueT4oJy92MS9hdXRoL3JlZ2lzdGVyJywge1xuICAgICAgbmV0d29ya0lkLFxuICAgICAgcHVibGljVG9rZW46IGtleXMucHVibGljVG9rZW4sXG4gICAgICBwcml2YXRlS2V5OiBrZXlzLnByaXZhdGVLZXksXG4gICAgICByZWFzb25cbiAgICB9KTtcblxuICAgIGlmIChyZWdpc3RlclJlc3BvbnNlLnN1Y2Nlc3MgJiYgcmVnaXN0ZXJSZXNwb25zZS5kYXRhKSB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVBdXRoUmVzcG9uc2UobmV0d29ya0lkLCBrZXlzLCByZWdpc3RlclJlc3BvbnNlLmRhdGEsIGNsaWVudCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgLy8gRmFsbGJhY2s6IElmIGFscmVhZHkgcmVnaXN0ZXJlZCAob3IgYW55IDQwMC1saWtlIGVycm9yKSwgdHJ5IGxvZ2luIGluc3RlYWRcbiAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSByZWdpc3RlclJlc3BvbnNlLmVycm9yPy5tZXNzYWdlIHx8ICcnO1xuICAgIGNvbnN0IGlzQWxyZWFkeVJlZ2lzdGVyZWQgPSBlcnJvck1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnYWxyZWFkeSByZWdpc3RlcmVkJyk7XG4gICAgXG4gICAgaWYgKGlzQWxyZWFkeVJlZ2lzdGVyZWQgfHwgIXJlZ2lzdGVyUmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheShgICBSZWdpc3RyYXRpb24gZmFpbGVkIChsaWtlbHkgYWxyZWFkeSByZWdpc3RlcmVkKS4gQXR0ZW1wdGluZyBsb2dpbiBmb3IgJHtuZXR3b3JrSWR9Li4uYCkpO1xuICAgICAgY29uc3QgbG9naW5SZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0PGFueT4oJy92MS9hdXRoL2xvZ2luJywge1xuICAgICAgICBuZXR3b3JrSWQsXG4gICAgICAgIHB1YmxpY1Rva2VuOiBrZXlzLnB1YmxpY1Rva2VuLFxuICAgICAgICBwcml2YXRlS2V5OiBrZXlzLnByaXZhdGVLZXksXG4gICAgICAgIHJlYXNvblxuICAgICAgfSk7XG5cbiAgICAgIGlmIChsb2dpblJlc3BvbnNlLnN1Y2Nlc3MgJiYgbG9naW5SZXNwb25zZS5kYXRhKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUF1dGhSZXNwb25zZShuZXR3b3JrSWQsIGtleXMsIGxvZ2luUmVzcG9uc2UuZGF0YSwgY2xpZW50LCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKHJlZ2lzdGVyUmVzcG9uc2UuZXJyb3I/Lm1lc3NhZ2UgfHwgJ0ZhaWxlZCB0byBhdXRoZW50aWNhdGUnKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGFzeW5jIGhhbmRsZUF1dGhSZXNwb25zZShcbiAgICBuZXR3b3JrSWQ6IHN0cmluZywgXG4gICAga2V5czogeyBwdWJsaWNUb2tlbjogc3RyaW5nOyBwcml2YXRlS2V5OiBzdHJpbmcgfSwgXG4gICAgcmVzcG9uc2VEYXRhOiBhbnksIFxuICAgIGNsaWVudDogQXBpQ2xpZW50LFxuICAgIGlzTmV3VXNlcjogYm9vbGVhblxuICApOiBQcm9taXNlPEF1dGhSZXN1bHQ+IHtcbiAgICAvLyBTZWFyY2ggZm9yIEpXVCBpbiBkaWZmZXJlbnQgcG9zc2libGUgbG9jYXRpb25zIGR1ZSB0byBUT09OIGRlY29kaW5nIHZhcmlhdGlvbnNcbiAgICBjb25zdCBqd3QgPSByZXNwb25zZURhdGEuand0IHx8IFxuICAgICAgICAgICAgICAgIChyZXNwb25zZURhdGEuZGF0YSAmJiByZXNwb25zZURhdGEuZGF0YS5qd3QpIHx8IFxuICAgICAgICAgICAgICAgIChyZXNwb25zZURhdGEudG9rZW5zICYmIHJlc3BvbnNlRGF0YS50b2tlbnMuand0KSB8fFxuICAgICAgICAgICAgICAgIChyZXNwb25zZURhdGEuZGF0YSAmJiByZXNwb25zZURhdGEuZGF0YS50b2tlbnMgJiYgcmVzcG9uc2VEYXRhLmRhdGEudG9rZW5zLmp3dCk7XG4gICAgXG4gICAgY29uc3QgZXhwaXJlc0F0ID0gcmVzcG9uc2VEYXRhLmV4cGlyZXNBdCB8fCBcbiAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2VEYXRhLmRhdGEgJiYgcmVzcG9uc2VEYXRhLmRhdGEuZXhwaXJlc0F0KSB8fCBcbiAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2VEYXRhLnRva2VucyAmJiByZXNwb25zZURhdGEudG9rZW5zLmV4cGlyZXNBdCk7XG5cbiAgICBpZiAoIWp3dCkge1xuICAgICAgbG9nZ2VyLmRlYnVnKCdBdXRoIFJlc3BvbnNlIERhdGE6JywgSlNPTi5zdHJpbmdpZnkocmVzcG9uc2VEYXRhKSk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F1dGhlbnRpY2F0aW9uIHN1Y2NlZWRlZCBidXQgbm8gSldUIGZvdW5kIGluIHJlc3BvbnNlJyk7XG4gICAgfVxuXG4gICAgY29uc3QgbmV3Q3JlZHM6IE5ldHdvcmtDcmVkZW50aWFscyA9IHtcbiAgICAgIHB1YmxpY1Rva2VuOiBrZXlzLnB1YmxpY1Rva2VuLFxuICAgICAgcHJpdmF0ZUtleToga2V5cy5wcml2YXRlS2V5LFxuICAgICAgand0OiBqd3QsXG4gICAgICBleHBpcmVzQXQ6IGV4cGlyZXNBdCB8fCAoRGF0ZS5ub3coKSArIDI0ICogMzYwMCAqIDEwMDApIC8vIERlZmF1bHQgMjRoIGlmIG1pc3NpbmdcbiAgICB9O1xuXG4gICAgYXdhaXQgY29uZmlnTWFuYWdlci5zYXZlQ3JlZGVudGlhbHMobmV0d29ya0lkLCBuZXdDcmVkcyk7XG4gICAgY2xpZW50LnNldEF1dGhUb2tlbihqd3QpO1xuXG4gICAgaWYgKGlzTmV3VXNlcikge1xuICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oYCAg4pyTIEF1dG8tcmVnaXN0ZXJlZCBpbiBuZXR3b3JrOiAke25ldHdvcmtJZH1gKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyZWVuKGAgIOKckyBMb2dnZWQgaW50byBuZXR3b3JrOiAke25ldHdvcmtJZH1gKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgY2xpZW50LCBjcmVkZW50aWFsczogbmV3Q3JlZHMsIGlzTmV3VXNlciB9O1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGdldEFwaUNsaWVudCgpOiBQcm9taXNlPEFwaUNsaWVudD4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IGNvbmZpZ01hbmFnZXIuZ2V0R2xvYmFsQ29uZmlnKCk7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IEFwaUNsaWVudChjb25maWcuYXBpVXJsKTtcbiAgICBjbGllbnQuc2V0Rm9ybWF0KGNvbmZpZy5kZWZhdWx0Rm9ybWF0KTtcbiAgICByZXR1cm4gY2xpZW50O1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGdldEF1dGhlbnRpY2F0ZWRDbGllbnQobmV0d29ya0lkOiBzdHJpbmcsIHJlYXNvbj86IHN0cmluZyk6IFByb21pc2U8QXBpQ2xpZW50PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5lbnN1cmVBdXRoZW50aWNhdGVkKG5ldHdvcmtJZCwgcmVhc29uKTtcbiAgICByZXR1cm4gcmVzdWx0LmNsaWVudDtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBnZXRGaXJzdEF1dGhlbnRpY2F0ZWRDbGllbnQoKTogUHJvbWlzZTx7IGNsaWVudDogQXBpQ2xpZW50OyBuZXR3b3JrSWQ6IHN0cmluZyB9PiB7XG4gICAgY29uc3QgY3JlZGVudGlhbHNEaXIgPSBwYXRoLmpvaW4ob3MuaG9tZWRpcigpLCAnLmFnZW50aWNwb29sJywgJ2NyZWRlbnRpYWxzJyk7XG4gICAgXG4gICAgaWYgKCEoYXdhaXQgZnMucGF0aEV4aXN0cyhjcmVkZW50aWFsc0RpcikpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHN0b3JlZCBjcmVkZW50aWFscyBmb3VuZC4gUnVuIFwiYWdlbnRpY3Bvb2wgYXV0aCBjb25uZWN0IDxuZXR3b3JrSWQ+XCIgZmlyc3QuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgZmlsZXMgPSBhd2FpdCBmcy5yZWFkZGlyKGNyZWRlbnRpYWxzRGlyKTtcbiAgICBjb25zdCBqc29uRmlsZXMgPSBmaWxlcy5maWx0ZXIoZiA9PiBmLmVuZHNXaXRoKCcuanNvbicpKTtcblxuICAgIGZvciAoY29uc3QgZmlsZSBvZiBqc29uRmlsZXMpIHtcbiAgICAgIGNvbnN0IG5ldHdvcmtJZCA9IGZpbGUucmVwbGFjZSgnLmpzb24nLCAnJyk7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmVuc3VyZUF1dGhlbnRpY2F0ZWQobmV0d29ya0lkKTtcbiAgICAgICAgcmV0dXJuIHsgY2xpZW50OiByZXN1bHQuY2xpZW50LCBuZXR3b3JrSWQgfTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHZhbGlkIGNyZWRlbnRpYWxzIGZvdW5kLiBSdW4gXCJhZ2VudGljcG9vbCBhdXRoIGNvbm5lY3QgPG5ldHdvcmtJZD5cIiBmaXJzdC4nKTtcbiAgfVxufVxuIl19
|