@cloudbase/oauth 2.5.22-beta.0 → 2.5.24-beta.0
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/.eslintignore +2 -1
- package/dist/cjs/auth/apis.js +14 -14
- package/dist/cjs/auth/models.d.ts +3 -3
- package/dist/cjs/captcha/captcha.d.ts +1 -1
- package/dist/cjs/captcha/captcha.js +7 -7
- package/dist/cjs/index.js +8 -4
- package/dist/cjs/oauth2client/interface.d.ts +1 -1
- package/dist/cjs/oauth2client/models.d.ts +1 -1
- package/dist/cjs/oauth2client/oauth2client.js +13 -12
- package/dist/cjs/utils/function/single-promise.js +1 -1
- package/dist/esm/auth/apis.js +14 -14
- package/dist/esm/auth/models.d.ts +3 -3
- package/dist/esm/auth/models.js +1 -0
- package/dist/esm/captcha/captcha.d.ts +1 -1
- package/dist/esm/captcha/captcha.js +7 -7
- package/dist/esm/oauth2client/interface.d.ts +1 -1
- package/dist/esm/oauth2client/models.d.ts +1 -1
- package/dist/esm/oauth2client/models.js +1 -0
- package/dist/esm/oauth2client/oauth2client.js +7 -8
- package/dist/esm/utils/function/single-promise.js +1 -1
- package/package.json +3 -8
- package/src/index.d.ts +1 -0
package/.eslintignore
CHANGED
package/dist/cjs/auth/apis.js
CHANGED
|
@@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
14
14
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
15
|
function step(op) {
|
|
16
16
|
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
18
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
19
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
20
|
switch (op[0]) {
|
|
@@ -201,12 +201,12 @@ var Auth = (function () {
|
|
|
201
201
|
return __awaiter(this, void 0, void 0, function () {
|
|
202
202
|
var url, otherParams;
|
|
203
203
|
return __generator(this, function (_a) {
|
|
204
|
-
url = consts_1.ApiUrls.PROVIDER_URI_URL
|
|
204
|
+
url = "".concat(consts_1.ApiUrls.PROVIDER_URI_URL, "?client_id=").concat(this.config.clientId, "&provider_id=").concat(params.provider_id, "&redirect_uri=").concat(encodeURIComponent(params.provider_redirect_uri), "&state=").concat(params.state);
|
|
205
205
|
otherParams = params.other_params;
|
|
206
206
|
if (otherParams) {
|
|
207
207
|
if (typeof otherParams.sign_out_uri === 'string'
|
|
208
208
|
&& otherParams.sign_out_uri.length > 0) {
|
|
209
|
-
url += "&other_params[sign_out_uri]="
|
|
209
|
+
url += "&other_params[sign_out_uri]=".concat(otherParams.sign_out_uri);
|
|
210
210
|
}
|
|
211
211
|
}
|
|
212
212
|
return [2, this.config.request(url, {
|
|
@@ -295,7 +295,7 @@ var Auth = (function () {
|
|
|
295
295
|
return __awaiter(this, void 0, void 0, function () {
|
|
296
296
|
var url;
|
|
297
297
|
return __generator(this, function (_a) {
|
|
298
|
-
url = consts_1.ApiUrls.USER_ME_URL
|
|
298
|
+
url = "".concat(consts_1.ApiUrls.USER_ME_URL, "?").concat(Auth.parseParamsToSearch(params));
|
|
299
299
|
return [2, this.config.request(url, {
|
|
300
300
|
method: 'DELETE',
|
|
301
301
|
withCredentials: true,
|
|
@@ -367,7 +367,7 @@ var Auth = (function () {
|
|
|
367
367
|
Auth.prototype.unbindProvider = function (params) {
|
|
368
368
|
return __awaiter(this, void 0, void 0, function () {
|
|
369
369
|
return __generator(this, function (_a) {
|
|
370
|
-
return [2, this.config.request(consts_1.ApiUrls.PROVIDER_UNBIND_URL
|
|
370
|
+
return [2, this.config.request("".concat(consts_1.ApiUrls.PROVIDER_UNBIND_URL, "/").concat(params.provider_id), {
|
|
371
371
|
method: 'DELETE',
|
|
372
372
|
withCredentials: true,
|
|
373
373
|
})];
|
|
@@ -377,7 +377,7 @@ var Auth = (function () {
|
|
|
377
377
|
Auth.prototype.checkPassword = function (params) {
|
|
378
378
|
return __awaiter(this, void 0, void 0, function () {
|
|
379
379
|
return __generator(this, function (_a) {
|
|
380
|
-
return [2, this.config.request(""
|
|
380
|
+
return [2, this.config.request("".concat(consts_1.ApiUrls.CHECK_PWD_URL), {
|
|
381
381
|
method: 'POST',
|
|
382
382
|
withCredentials: true,
|
|
383
383
|
body: params,
|
|
@@ -388,7 +388,7 @@ var Auth = (function () {
|
|
|
388
388
|
Auth.prototype.bindPhone = function (params) {
|
|
389
389
|
return __awaiter(this, void 0, void 0, function () {
|
|
390
390
|
return __generator(this, function (_a) {
|
|
391
|
-
return [2, this.config.request(""
|
|
391
|
+
return [2, this.config.request("".concat(consts_1.ApiUrls.BIND_CONTACT_URL), {
|
|
392
392
|
method: 'PATCH',
|
|
393
393
|
withCredentials: true,
|
|
394
394
|
body: params,
|
|
@@ -399,7 +399,7 @@ var Auth = (function () {
|
|
|
399
399
|
Auth.prototype.bindEmail = function (params) {
|
|
400
400
|
return __awaiter(this, void 0, void 0, function () {
|
|
401
401
|
return __generator(this, function (_a) {
|
|
402
|
-
return [2, this.config.request(""
|
|
402
|
+
return [2, this.config.request("".concat(consts_1.ApiUrls.BIND_CONTACT_URL), {
|
|
403
403
|
method: 'PATCH',
|
|
404
404
|
withCredentials: true,
|
|
405
405
|
body: params,
|
|
@@ -410,7 +410,7 @@ var Auth = (function () {
|
|
|
410
410
|
Auth.prototype.setPassword = function (params) {
|
|
411
411
|
return __awaiter(this, void 0, void 0, function () {
|
|
412
412
|
return __generator(this, function (_a) {
|
|
413
|
-
return [2, this.config.request(""
|
|
413
|
+
return [2, this.config.request("".concat(consts_1.ApiUrls.AUTH_SET_PASSWORD), {
|
|
414
414
|
method: 'PATCH',
|
|
415
415
|
withCredentials: true,
|
|
416
416
|
body: params,
|
|
@@ -437,7 +437,7 @@ var Auth = (function () {
|
|
|
437
437
|
Auth.prototype.sudo = function (params) {
|
|
438
438
|
return __awaiter(this, void 0, void 0, function () {
|
|
439
439
|
return __generator(this, function (_a) {
|
|
440
|
-
return [2, this.config.request(""
|
|
440
|
+
return [2, this.config.request("".concat(consts_1.ApiUrls.SUDO_URL), {
|
|
441
441
|
method: 'POST',
|
|
442
442
|
withCredentials: true,
|
|
443
443
|
body: params,
|
|
@@ -461,7 +461,7 @@ var Auth = (function () {
|
|
|
461
461
|
Auth.prototype.changeBindedProvider = function (params) {
|
|
462
462
|
return __awaiter(this, void 0, void 0, function () {
|
|
463
463
|
return __generator(this, function (_a) {
|
|
464
|
-
return [2, this.config.request(consts_1.ApiUrls.PROVIDER_LIST
|
|
464
|
+
return [2, this.config.request("".concat(consts_1.ApiUrls.PROVIDER_LIST, "/").concat(params.provider_id, "/trans"), {
|
|
465
465
|
method: 'POST',
|
|
466
466
|
body: {
|
|
467
467
|
provider_trans_token: params.trans_token,
|
|
@@ -487,7 +487,7 @@ var Auth = (function () {
|
|
|
487
487
|
var searchParams;
|
|
488
488
|
return __generator(this, function (_a) {
|
|
489
489
|
searchParams = new URLSearchParams(params);
|
|
490
|
-
return [2, this.config.request(consts_1.ApiUrls.USER_QUERY_URL
|
|
490
|
+
return [2, this.config.request("".concat(consts_1.ApiUrls.USER_QUERY_URL, "?").concat(searchParams.toString()), {
|
|
491
491
|
method: 'GET',
|
|
492
492
|
withCredentials: true,
|
|
493
493
|
})];
|
|
@@ -550,7 +550,7 @@ var Auth = (function () {
|
|
|
550
550
|
var searchParams;
|
|
551
551
|
return __generator(this, function (_a) {
|
|
552
552
|
searchParams = new URLSearchParams(params);
|
|
553
|
-
return [2, this.config.request(consts_1.ApiUrls.CHECK_IF_USER_EXIST
|
|
553
|
+
return [2, this.config.request("".concat(consts_1.ApiUrls.CHECK_IF_USER_EXIST, "?").concat(searchParams.toString()), {
|
|
554
554
|
method: 'GET',
|
|
555
555
|
})];
|
|
556
556
|
});
|
|
@@ -573,4 +573,4 @@ var Auth = (function () {
|
|
|
573
573
|
return Auth;
|
|
574
574
|
}());
|
|
575
575
|
exports.Auth = Auth;
|
|
576
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdXRoL2FwaXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFWixtQ0FBa0M7QUEyQ2xDLDZEQUEyRTtBQUUzRSw4Q0FBNEM7QUFlNUM7SUFrQkUsY0FBWSxJQUFpQjtRQUNyQixJQUFBLE9BQU8sR0FBSyxJQUFJLFFBQVQsQ0FBUztRQUN0QixJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUE7UUFDekMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNqQixJQUFNLFdBQVcsR0FBRztnQkFDbEIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN6QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTzthQUN0QixDQUFBO1lBQ0QsWUFBWSxHQUFHLElBQUksMkJBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQTtTQUM3QztRQUNELElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixJQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtZQUMzRCxJQUFNLE9BQU8sR0FBRyxJQUFJLGlCQUFPLENBQUM7Z0JBQzFCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsT0FBTyxFQUFFLFdBQVc7Z0JBQ3BCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTzthQUN0QixDQUFDLENBQUE7WUFDRixPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7U0FDeEM7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1osU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixPQUFP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LGdCQUFPLENBQUMsY0FBYyxFQUFFO3dCQUNqRCxNQUFNLEVBQUUsS0FBSzt3QkFDYixJQUFJLEVBQUUsTUFBTTt3QkFDWixlQUFlLEVBQUUsSUFBSTtxQkFDdEIsQ0FBQyxFQUFBOzs7S0FDSDtJQUVZLCtCQUFnQixHQUE3QixVQUE4QixNQUErQjs7OztnQkFDckQsWUFBWSxHQUFHLElBQUksZUFBZSxDQUFDLE1BQWEsQ0FBQyxDQUFBO2dCQUV2RCxXQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUE4QixnQkFBTyxDQUFDLG1CQUFtQixTQUFJLFlBQVksQ0FBQyxRQUFRLEVBQUksRUFBRTt3QkFDaEgsTUFBTSxFQUFFLEtBQUs7cUJBQ2QsQ0FBQyxFQUFBOzs7S0FDSDtJQUVZLHlCQUFVLEdBQXZCOzs7Z0JBQ0UsV0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxFQUFBOzs7S0FDaEQ7SUFFWSwwQkFBVyxHQUF4Qjs7O2dCQUNFLFdBQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsRUFBQTs7O0tBQ2pEO0lBQ0gsV0FBQztBQUFELENBQUMsQUFuakJELElBbWpCQztBQW5qQlksb0JBQUkiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCdcblxuaW1wb3J0IHsgQXBpVXJscyB9IGZyb20gJy4vY29uc3RzJ1xuaW1wb3J0IHtcbiAgR2V0VmVyaWZpY2F0aW9uUmVxdWVzdCxcbiAgR2V0VmVyaWZpY2F0aW9uUmVzcG9uc2UsXG4gIFVzZXJQcm9maWxlLFxuICBVc2VySW5mbyxcbiAgU2lnbkluUmVxdWVzdCxcbiAgU2lnblVwUmVxdWVzdCxcbiAgVmVyaWZ5UmVxdWVzdCxcbiAgVmVyaWZ5UmVzcG9uc2UsXG4gIEdlblByb3ZpZGVyUmVkaXJlY3RVcmlSZXF1ZXN0LFxuICBHZW5Qcm92aWRlclJlZGlyZWN0VXJpUmVzcG9uc2UsXG4gIEdyYW50UHJvdmlkZXJUb2tlblJlcXVlc3QsXG4gIEdyYW50UHJvdmlkZXJUb2tlblJlc3BvbnNlLFxuICBQYXRjaFByb3ZpZGVyVG9rZW5SZXF1ZXN0LFxuICBQYXRjaFByb3ZpZGVyVG9rZW5SZXNwb25zZSxcbiAgU2lnbkluV2l0aFByb3ZpZGVyUmVxdWVzdCxcbiAgQmluZFdpdGhQcm92aWRlclJlcXVlc3QsXG4gIFRyYW5zQnlQcm92aWRlclJlcXVlc3QsXG4gIEdyYW50VG9rZW5SZXF1ZXN0LFxuICBVc2VyUHJvZmlsZVByb3ZpZGVyLFxuICBVbmJpbmRQcm92aWRlclJlcXVlc3QsXG4gIENoZWNrUGFzc3dvcmRyUmVxdWVzdCxcbiAgQmluZFBob25lUmVxdWVzdCxcbiAgQmluZEVtYWlsUmVxdWVzdCxcbiAgU2V0UGFzc3dvcmRSZXF1ZXN0LFxuICBDaGFuZ2VCaW5kZWRQcm92aWRlclJlcXVlc3QsXG4gIENoYW5nZUJpbmRlZFByb3ZpZGVyUmVzcG9uc2UsXG4gIFVwZGF0ZVBhc3N3b3JkUmVxdWVzdCxcbiAgU3Vkb1Jlc3BvbnNlLFxuICBTdWRvUmVxdWVzdCxcbiAgR2V0Q3VzdG9tU2lnblRpY2tldEZuLFxuICBRdWVyeVVzZXJQcm9maWxlUmVxdWVzdCxcbiAgUXVlcnlVc2VyUHJvZmlsZVJlc3BvbnNlLFxuICBSZXNldFBhc3N3b3JkUmVxdWVzdCxcbiAgRGV2aWNlQXV0aG9yaXplUmVxdWVzdCxcbiAgRGV2aWNlQXV0aG9yaXplUmVzcG9uc2UsXG4gIENoZWNrVXNlcm5hbWVSZXF1ZXN0LFxuICBDaGVja0lmVXNlckV4aXN0UmVxdWVzdCxcbiAgQ2hlY2tJZlVzZXJFeGlzdFJlc3BvbnNlLFxuICBXaXRoU3Vkb1JlcXVlc3QsXG59IGZyb20gJy4vbW9kZWxzJ1xuaW1wb3J0IHsgU2ltcGxlU3RvcmFnZSwgUmVxdWVzdEZ1bmN0aW9uIH0gZnJvbSAnLi4vb2F1dGgyY2xpZW50L2ludGVyZmFjZSdcbmltcG9ydCB7IE9BdXRoMkNsaWVudCwgZGVmYXVsdFN0b3JhZ2UgfSBmcm9tICcuLi9vYXV0aDJjbGllbnQvb2F1dGgyY2xpZW50J1xuaW1wb3J0IHsgQ3JlZGVudGlhbHMgfSBmcm9tICcuLi9vYXV0aDJjbGllbnQvbW9kZWxzJ1xuaW1wb3J0IHsgQ2FwdGNoYSB9IGZyb20gJy4uL2NhcHRjaGEvY2FwdGNoYSdcblxuXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhPcHRpb25zIHtcbiAgYXBpT3JpZ2luOiBzdHJpbmc7XG4gIGNsaWVudElkOiBzdHJpbmc7XG4gIGNyZWRlbnRpYWxzQ2xpZW50PzogT0F1dGgyQ2xpZW50O1xuICByZXF1ZXN0PzogUmVxdWVzdEZ1bmN0aW9uO1xuICBzdG9yYWdlPzogU2ltcGxlU3RvcmFnZTtcbiAgYW5vbnltb3VzU2lnbkluRnVuYz86IChDcmVkZW50aWFscykgPT4gUHJvbWlzZTxDcmVkZW50aWFscyB8IHZvaWQ+XG59XG5cbi8qKlxuICogQXV0aFxuICovXG5leHBvcnQgY2xhc3MgQXV0aCB7XG4gIHByaXZhdGUgc3RhdGljIHBhcnNlUGFyYW1zVG9TZWFyY2gocGFyYW1zOiBhbnkpOiBzdHJpbmcge1xuICAgIE9iamVjdC5rZXlzKHBhcmFtcykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBpZiAoIXBhcmFtc1trZXldKSB7XG4gICAgICAgIGRlbGV0ZSBwYXJhbXNba2V5XVxuICAgICAgfVxuICAgIH0pXG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhwYXJhbXMgYXMgYW55KVxuICAgIHJldHVybiBzZWFyY2hQYXJhbXMudG9TdHJpbmcoKVxuICB9XG5cbiAgcHJpdmF0ZSBjb25maWc6IEF1dGhPcHRpb25zXG4gIHByaXZhdGUgZ2V0Q3VzdG9tU2lnblRpY2tldEZuPzogR2V0Q3VzdG9tU2lnblRpY2tldEZuXG5cbiAgLyoqXG4gICAqIGNvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSB7QXV0aE9wdGlvbnN9IG9wdHNcbiAgICovXG4gIGNvbnN0cnVjdG9yKG9wdHM6IEF1dGhPcHRpb25zKSB7XG4gICAgbGV0IHsgcmVxdWVzdCB9ID0gb3B0c1xuICAgIGxldCBvQXV0aDJDbGllbnQgPSBvcHRzLmNyZWRlbnRpYWxzQ2xpZW50XG4gICAgaWYgKCFvQXV0aDJDbGllbnQpIHtcbiAgICAgIGNvbnN0IGluaXRPcHRpb25zID0ge1xuICAgICAgICBhcGlPcmlnaW46IG9wdHMuYXBpT3JpZ2luLFxuICAgICAgICBjbGllbnRJZDogb3B0cy5jbGllbnRJZCxcbiAgICAgICAgc3RvcmFnZTogb3B0cy5zdG9yYWdlLFxuICAgICAgfVxuICAgICAgb0F1dGgyQ2xpZW50ID0gbmV3IE9BdXRoMkNsaWVudChpbml0T3B0aW9ucylcbiAgICB9XG4gICAgaWYgKCFyZXF1ZXN0KSB7XG4gICAgICBjb25zdCBiYXNlUmVxdWVzdCA9IG9BdXRoMkNsaWVudC5yZXF1ZXN0LmJpbmQob0F1dGgyQ2xpZW50KVxuICAgICAgY29uc3QgY2FwdGNoYSA9IG5ldyBDYXB0Y2hhKHtcbiAgICAgICAgY2xpZW50SWQ6IG9wdHMuY2xpZW50SWQsXG4gICAgICAgIHJlcXVlc3Q6IGJhc2VSZXF1ZXN0LFxuICAgICAgICBzdG9yYWdlOiBvcHRzLnN0b3JhZ2UsXG4gICAgICB9KVxuICAgICAgcmVxdWVzdCA9IGNhcHRjaGEucmVxdWVzdC5iaW5kKGNhcHRjaGEpXG4gICAgfVxuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgYXBpT3JpZ2luOiBvcHRzLmFwaU9yaWdpbixcbiAgICAgIGNsaWVudElkOiBvcHRzLmNsaWVudElkLFxuICAgICAgcmVxdWVzdCxcbiAgICAgIGNyZWRlbnRpYWxzQ2xpZW50OiBvQXV0aDJDbGllbnQsXG4gICAgICBzdG9yYWdlOiBvcHRzLnN0b3JhZ2UgfHwgZGVmYXVsdFN0b3JhZ2UsXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gaW4uXG4gICAqIEBwYXJhbSB7U2lnbkluUmVxdWVzdH0gcGFyYW1zIEEgU2lnbkluUmVxdWVzdCBPYmplY3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8Q3JlZGVudGlhbHM+fSBBIFByb21pc2U8Q3JlZGVudGlhbHM+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzaWduSW4ocGFyYW1zOiBTaWduSW5SZXF1ZXN0KTogUHJvbWlzZTxDcmVkZW50aWFscz4ge1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzOiBDcmVkZW50aWFscyA9IGF3YWl0IHRoaXMuY29uZmlnLnJlcXVlc3Q8Q3JlZGVudGlhbHM+KFxuICAgICAgQXBpVXJscy5BVVRIX1NJR05fSU5fVVJMLFxuICAgICAge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgYm9keTogcGFyYW1zLFxuICAgICAgfSxcbiAgICApXG4gICAgYXdhaXQgdGhpcy5jb25maWcuY3JlZGVudGlhbHNDbGllbnQuc2V0Q3JlZGVudGlhbHMoY3JlZGVudGlhbHMpXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShjcmVkZW50aWFscylcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIGluIEFub255bW91c2x5XG4gICAqIEByZXR1cm4ge1Byb21pc2U8Q3JlZGVudGlhbHM+fSBBIFByb21pc2U8Q3JlZGVudGlhbHM+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzaWduSW5Bbm9ueW1vdXNseShkYXRhOiB7XG4gICAgcHJvdmlkZXJfdG9rZW4/OiBzdHJpbmdcbiAgfSA9IHt9KTogUHJvbWlzZTxDcmVkZW50aWFscz4ge1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzOiBDcmVkZW50aWFscyA9IGF3YWl0IHRoaXMuY29uZmlnLnJlcXVlc3Q8Q3JlZGVudGlhbHM+KFxuICAgICAgQXBpVXJscy5BVVRIX1NJR05fSU5fQU5PTllNT1VTTFlfVVJMLFxuICAgICAge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgYm9keTogZGF0YSxcbiAgICAgIH0sXG4gICAgKVxuICAgIGF3YWl0IHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LnNldENyZWRlbnRpYWxzKGNyZWRlbnRpYWxzKVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoY3JlZGVudGlhbHMpXG4gIH1cblxuICAvKipcbiAgICogU2lnbiB1cC5cbiAgICogQHBhcmFtIHtTaWduVXBSZXF1ZXN0fSBwYXJhbXMgQSBTaWduVXBSZXF1ZXN0IE9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxDcmVkZW50aWFscz59IEEgUHJvbWlzZTxDcmVkZW50aWFscz4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNpZ25VcChwYXJhbXM6IFNpZ25VcFJlcXVlc3QpOiBQcm9taXNlPENyZWRlbnRpYWxzPiB7XG4gICAgY29uc3QgZGF0YTogQ3JlZGVudGlhbHMgPSBhd2FpdCB0aGlzLmNvbmZpZy5yZXF1ZXN0PENyZWRlbnRpYWxzPihcbiAgICAgIEFwaVVybHMuQVVUSF9TSUdOX1VQX1VSTCxcbiAgICAgIHtcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICAgIH0sXG4gICAgKVxuICAgIGF3YWl0IHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LnNldENyZWRlbnRpYWxzKGRhdGEpXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShkYXRhKVxuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gb3V0LlxuICAgKiBAcmV0dXJuIHtPYmplY3R9IEEgUHJvbWlzZTx2b2lkPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2lnbk91dCgpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IGFjY2Vzc1Rva2VuOiBzdHJpbmcgPSBhd2FpdCB0aGlzLmNvbmZpZy5jcmVkZW50aWFsc0NsaWVudC5nZXRBY2Nlc3NUb2tlbigpXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuY29uZmlnLnJlcXVlc3QoQXBpVXJscy5BVVRIX1JFVk9LRV9VUkwsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keToge1xuICAgICAgICB0b2tlbjogYWNjZXNzVG9rZW4sXG4gICAgICB9LFxuICAgIH0pXG4gICAgYXdhaXQgdGhpcy5jb25maWcuY3JlZGVudGlhbHNDbGllbnQuc2V0Q3JlZGVudGlhbHMoKVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZGF0YSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHZlcmlmaWNhdGlvbi5cbiAgICogQHBhcmFtIHtHZXRWZXJpZmljYXRpb25SZXF1ZXN0fSBwYXJhbXMgQSBHZXRWZXJpZmljYXRpb25SZXF1ZXN0IE9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxHZXRWZXJpZmljYXRpb25SZXNwb25zZT59IEEgUHJvbWlzZTxHZXRWZXJpZmljYXRpb25SZXNwb25zZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFZlcmlmaWNhdGlvbihwYXJhbXM6IEdldFZlcmlmaWNhdGlvblJlcXVlc3QsKTogUHJvbWlzZTxHZXRWZXJpZmljYXRpb25SZXNwb25zZT4ge1xuICAgIGxldCB3aXRoQ3JlZGVudGlhbHMgPSBmYWxzZVxuICAgIC8vIOWPkemAgeefreS/oeaXtu+8jOWmguaenOaXtue7meW9k+WJjeeUqOaIt+WPke+8jOWImemcgOimgeW4puS4iumJtOadg+S/oeaBr1xuICAgIGlmIChwYXJhbXMudGFyZ2V0ID09PSAnQ1VSX1VTRVInKSB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHMgPSB0cnVlXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGhhc0xvZ2luID0gYXdhaXQgdGhpcy5oYXNMb2dpblN0YXRlKClcbiAgICAgIGlmIChoYXNMb2dpbikge1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHMgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PEdldFZlcmlmaWNhdGlvblJlc3BvbnNlPihcbiAgICAgIEFwaVVybHMuVkVSSUZJQ0FUSU9OX1VSTCxcbiAgICAgIHtcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICAgICAgd2l0aENhcHRjaGE6IHRydWUsXG4gICAgICAgIHdpdGhDcmVkZW50aWFscyxcbiAgICAgIH0sXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqICBWZXJpZnkgdGhlIGNvZGVcbiAgICogQHBhcmFtIHtWZXJpZnlSZXF1ZXN0fSBwYXJhbXMgQSBWZXJpZnlSZXF1ZXN0IE9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxWZXJpZnlSZXNwb25zZT59IEEgUHJvbWlzZTxWZXJpZnlSZXNwb25zZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHZlcmlmeShwYXJhbXM6IFZlcmlmeVJlcXVlc3QpOiBQcm9taXNlPFZlcmlmeVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8VmVyaWZ5UmVzcG9uc2U+KEFwaVVybHMuVkVSSUZZX1VSTCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW4gcHJvdmlkZXIgcmVkaXJlY3QgdXJpLlxuICAgKiBAcGFyYW0ge0dlblByb3ZpZGVyUmVkaXJlY3RVcmlSZXF1ZXN0fSBwYXJhbXMgQSBHZW5Qcm92aWRlclJlZGlyZWN0VXJpUmVxdWVzdCBvYmplY3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8R2VuUHJvdmlkZXJSZWRpcmVjdFVyaVJlc3BvbnNlPn0gQSBQcm9taXNlPEdlblByb3ZpZGVyUmVkaXJlY3RVcmlSZXNwb25zZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdlblByb3ZpZGVyUmVkaXJlY3RVcmkocGFyYW1zOiBHZW5Qcm92aWRlclJlZGlyZWN0VXJpUmVxdWVzdCwpOiBQcm9taXNlPEdlblByb3ZpZGVyUmVkaXJlY3RVcmlSZXNwb25zZT4ge1xuICAgIGxldCB1cmwgPSBgJHtBcGlVcmxzLlBST1ZJREVSX1VSSV9VUkx9P2NsaWVudF9pZD0ke3RoaXMuY29uZmlnLmNsaWVudElkXG4gICAgfSZwcm92aWRlcl9pZD0ke3BhcmFtcy5wcm92aWRlcl9pZH0mcmVkaXJlY3RfdXJpPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHBhcmFtcy5wcm92aWRlcl9yZWRpcmVjdF91cmksKX0mc3RhdGU9JHtwYXJhbXMuc3RhdGV9YFxuICAgIGNvbnN0IHsgb3RoZXJfcGFyYW1zOiBvdGhlclBhcmFtcyB9ID0gcGFyYW1zXG4gICAgaWYgKG90aGVyUGFyYW1zKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHR5cGVvZiBvdGhlclBhcmFtcy5zaWduX291dF91cmkgPT09ICdzdHJpbmcnXG4gICAgICAgICYmIG90aGVyUGFyYW1zLnNpZ25fb3V0X3VyaS5sZW5ndGggPiAwXG4gICAgICApIHtcbiAgICAgICAgdXJsICs9IGAmb3RoZXJfcGFyYW1zW3NpZ25fb3V0X3VyaV09JHtvdGhlclBhcmFtcy5zaWduX291dF91cml9YFxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxHZW5Qcm92aWRlclJlZGlyZWN0VXJpUmVzcG9uc2U+KHVybCwge1xuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IHByb3ZpZGVyIHRva2VuLlxuICAgKiBAcGFyYW0ge0dyYW50UHJvdmlkZXJUb2tlblJlcXVlc3R9IHBhcmFtcyBBIEdyYW50UHJvdmlkZXJUb2tlblJlcXVlc3Qgb2JqZWN0LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPEdyYW50UHJvdmlkZXJUb2tlblJlc3BvbnNlPn0gQSBQcm9taXNlPEdyYW50UHJvdmlkZXJUb2tlblJlc3BvbnNlPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ3JhbnRQcm92aWRlclRva2VuKHBhcmFtczogR3JhbnRQcm92aWRlclRva2VuUmVxdWVzdCwpOiBQcm9taXNlPEdyYW50UHJvdmlkZXJUb2tlblJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8R3JhbnRQcm92aWRlclRva2VuUmVzcG9uc2U+KFxuICAgICAgQXBpVXJscy5QUk9WSURFUl9UT0tFTl9VUkwsXG4gICAgICB7XG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICBib2R5OiBwYXJhbXMsXG4gICAgICB9LFxuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCBwcm92aWRlciB0b2tlbi5cbiAgICogQHBhcmFtIHtQYXRjaFByb3ZpZGVyVG9rZW5SZXF1ZXN0fSBwYXJhbXMgQSBQYXRjaFByb3ZpZGVyVG9rZW5SZXF1ZXN0IG9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxQYXRjaFByb3ZpZGVyVG9rZW5SZXNwb25zZT59IEEgUHJvbWlzZTxQYXRjaFByb3ZpZGVyVG9rZW5SZXNwb25zZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHBhdGNoUHJvdmlkZXJUb2tlbihwYXJhbXM6IFBhdGNoUHJvdmlkZXJUb2tlblJlcXVlc3QsKTogUHJvbWlzZTxQYXRjaFByb3ZpZGVyVG9rZW5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PFBhdGNoUHJvdmlkZXJUb2tlblJlc3BvbnNlPihcbiAgICAgIEFwaVVybHMuUFJPVklERVJfVE9LRU5fVVJMLFxuICAgICAge1xuICAgICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICAgIH0sXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIFNpZ25pbiB3aXRoIHByb3ZpZGVyIHJlcXVlc3QuXG4gICAqIEBwYXJhbSB7U2lnbkluV2l0aFByb3ZpZGVyUmVxdWVzdH0gcGFyYW1zIEEgU2lnbkluV2l0aFByb3ZpZGVyUmVxdWVzdCBvYmplY3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8Q3JlZGVudGlhbHM+fSBBIFByb21pc2U8Q3JlZGVudGlhbHM+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzaWduSW5XaXRoUHJvdmlkZXIocGFyYW1zOiBTaWduSW5XaXRoUHJvdmlkZXJSZXF1ZXN0LCk6IFByb21pc2U8Q3JlZGVudGlhbHM+IHtcbiAgICBjb25zdCBjcmVkZW50aWFsczogQ3JlZGVudGlhbHMgPSBhd2FpdCB0aGlzLmNvbmZpZy5yZXF1ZXN0PENyZWRlbnRpYWxzPihcbiAgICAgIEFwaVVybHMuQVVUSF9TSUdOX0lOX1dJVEhfUFJPVklERVJfVVJMLFxuICAgICAge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgYm9keTogcGFyYW1zLFxuICAgICAgfSxcbiAgICApXG4gICAgYXdhaXQgdGhpcy5jb25maWcuY3JlZGVudGlhbHNDbGllbnQuc2V0Q3JlZGVudGlhbHMoY3JlZGVudGlhbHMpXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShjcmVkZW50aWFscylcbiAgfVxuXG4gIC8qKlxuICAgKiBCaW5kIHdpdGggcHJvdmlkZXJcbiAgICogQHBhcmFtIHtCaW5kV2l0aFByb3ZpZGVyUmVxdWVzdH0gcGFyYW1zIEEgQmluZFdpdGhQcm92aWRlclJlcXVlc3Qgb2JqZWN0LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBBIFByb21pc2U8YW55PiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgYmluZFdpdGhQcm92aWRlcihwYXJhbXM6IEJpbmRXaXRoUHJvdmlkZXJSZXF1ZXN0LCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PGFueT4oQXBpVXJscy5QUk9WSURFUl9CSU5EX1VSTCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHVzZXIgcHJvZmlsZS5cbiAgICogQHJldHVybiB7UHJvbWlzZTxVc2VyUHJvZmlsZT59IEEgUHJvbWlzZTxVc2VyUHJvZmlsZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFVzZXJQcm9maWxlKCk6IFByb21pc2U8VXNlclByb2ZpbGU+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRVc2VySW5mbygpXG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB1c2VyIGluZm8uXG4gICAqIEByZXR1cm4ge1Byb21pc2U8VXNlckluZm8+fSBBIFByb21pc2U8VXNlclByb2ZpbGU+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRVc2VySW5mbygpOiBQcm9taXNlPFVzZXJJbmZvPiB7XG4gICAgY29uc3QgdXNlckluZm8gPSBhd2FpdCB0aGlzLmNvbmZpZy5yZXF1ZXN0PFVzZXJJbmZvPihBcGlVcmxzLlVTRVJfTUVfVVJMLCB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pXG5cbiAgICBpZiAodXNlckluZm8uc3ViKSB7XG4gICAgICB1c2VySW5mby51aWQgPSB1c2VySW5mby5zdWJcbiAgICB9XG5cbiAgICByZXR1cm4gdXNlckluZm9cbiAgfVxuXG4gIC8qKlxuICAgICAqIERlbGV0ZSBtZVxuICAgICAqIEBwYXJhbSBwYXJhbXNcbiAgICAgKi9cbiAgcHVibGljIGFzeW5jIGRlbGV0ZU1lKHBhcmFtczogV2l0aFN1ZG9SZXF1ZXN0KTogUHJvbWlzZTxVc2VyUHJvZmlsZT4ge1xuICAgIGNvbnN0IHVybCA9IGAke0FwaVVybHMuVVNFUl9NRV9VUkx9PyR7QXV0aC5wYXJzZVBhcmFtc1RvU2VhcmNoKHBhcmFtcyl9YFxuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PFVzZXJQcm9maWxlPih1cmwsIHtcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBoYXNMb2dpblN0YXRlIGNoZWNrIGlmIGhhcyBsb2dpbiBzdGF0ZVxuICAgKiBAcmV0dXJuIHtQcm9taXNlPGJvb2xlYW4+fSBBIFByb21pc2U8Ym9vbGVhbj4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGhhc0xvZ2luU3RhdGUoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LmdldEFjY2Vzc1Rva2VuKClcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoYXNMb2dpblN0YXRlU3luYygpOiBDcmVkZW50aWFscyB8IG51bGwge1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gdGhpcy5jb25maWcuY3JlZGVudGlhbHNDbGllbnQuZ2V0Q3JlZGVudGlhbHNTeW5jKClcbiAgICByZXR1cm4gY3JlZGVudGlhbHNcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRMb2dpblN0YXRlKCk6IFByb21pc2U8Q3JlZGVudGlhbHMgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LmdldENyZWRlbnRpYWxzQXN5bmMoKVxuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zIGJ5IHByb3ZpZGVyLlxuICAgKiBAcGFyYW0ge1RyYW5zQnlQcm92aWRlclJlcXVlc3R9IHBhcmFtcyBBIFRyYW5zQnlQcm92aWRlclJlcXVlc3Qgb2JqZWN0LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPENyZWRlbnRpYWxzPn0gQSBQcm9taXNlPENyZWRlbnRpYWxzPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgdHJhbnNCeVByb3ZpZGVyKHBhcmFtczogVHJhbnNCeVByb3ZpZGVyUmVxdWVzdCwpOiBQcm9taXNlPENyZWRlbnRpYWxzPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8Q3JlZGVudGlhbHM+KFxuICAgICAgQXBpVXJscy5VU0VSX1RSQU5TX0JZX1BST1ZJREVSX1VSTCxcbiAgICAgIHtcbiAgICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxuICAgICAgICBib2R5OiBwYXJhbXMsXG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IHRva2VuLlxuICAgKiBAcGFyYW0ge0dyYW50VG9rZW5SZXF1ZXN0fSBwYXJhbXMgQSBHcmFudFRva2VuUmVxdWVzdCBvYmplY3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8Q3JlZGVudGlhbHM+fSBBIFByb21pc2U8Q3JlZGVudGlhbHM+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBncmFudFRva2VuKHBhcmFtczogR3JhbnRUb2tlblJlcXVlc3QpOiBQcm9taXNlPENyZWRlbnRpYWxzPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8Q3JlZGVudGlhbHM+KEFwaVVybHMuQVVUSF9UT0tFTl9VUkwsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogcGFyYW1zLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBwcm92aWRlIGxpc3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8VXNlclByb2ZpbGVQcm92aWRlcj59IEEgUHJvbWlzZTxVc2VyUHJvZmlsZVByb3ZpZGVyPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0UHJvdmlkZXJzKCk6IFByb21pc2U8VXNlclByb2ZpbGVQcm92aWRlcj4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PFVzZXJQcm9maWxlUHJvdmlkZXI+KEFwaVVybHMuUFJPVklERVJfTElTVCwge1xuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIHVuYmluZCBwcm92aWRlci5cbiAgICogQHBhcmFtIHtVbmJpbmRQcm92aWRlclJlcXVlc3R9IHBhcmFtc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPGFueT59XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgdW5iaW5kUHJvdmlkZXIocGFyYW1zOiBVbmJpbmRQcm92aWRlclJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxhbnk+KFxuICAgICAgYCR7QXBpVXJscy5QUk9WSURFUl9VTkJJTkRfVVJMfS8ke3BhcmFtcy5wcm92aWRlcl9pZH1gLFxuICAgICAge1xuICAgICAgICBtZXRob2Q6ICdERUxFVEUnLFxuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9LFxuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBjaGVjayBQYXNzd29yZC5cbiAgICogQHBhcmFtIHtDaGVja1Bhc3N3b3JkclJlcXVlc3R9IHBhcmFtc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPGFueT59XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2hlY2tQYXNzd29yZChwYXJhbXM6IENoZWNrUGFzc3dvcmRyUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PGFueT4oYCR7QXBpVXJscy5DSEVDS19QV0RfVVJMfWAsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgYm9keTogcGFyYW1zLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogY2hlY2sgUGFzc3dvcmQuXG4gICAqIEBwYXJhbSB7Q2hlY2tQYXNzd29yZHJSZXF1ZXN0fSBwYXJhbXNcbiAgICogQHJldHVybiB7UHJvbWlzZTxhbnk+fVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGJpbmRQaG9uZShwYXJhbXM6IEJpbmRQaG9uZVJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxhbnk+KGAke0FwaVVybHMuQklORF9DT05UQUNUX1VSTH1gLCB7XG4gICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBjaGVjayBQYXNzd29yZC5cbiAgICogQHBhcmFtIHtDaGVja1Bhc3N3b3JkclJlcXVlc3R9IHBhcmFtc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPGFueT59XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgYmluZEVtYWlsKHBhcmFtczogQmluZEVtYWlsUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PGFueT4oYCR7QXBpVXJscy5CSU5EX0NPTlRBQ1RfVVJMfWAsIHtcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBQYXNzd29yZC5cbiAgICogQHBhcmFtIHtTZXRQYXNzd29yZHJSZXF1ZXN0fSBwYXJhbXNcbiAgICogQHJldHVybiB7UHJvbWlzZTxhbnk+fVxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNldFBhc3N3b3JkKHBhcmFtczogU2V0UGFzc3dvcmRSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8YW55PihgJHtBcGlVcmxzLkFVVEhfU0VUX1BBU1NXT1JEfWAsIHtcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gKiB1cGRhdGVQYXNzd29yZEJ5T2xkIOS9v+eUqOaXp+WvhueggeS/ruaUueWvhuegge+8jOWmguaenOW3sue7j+e7keWumuaJi+acuuWPt++8jOivt+WFiO+8mnN1ZG/vvIzlho3kv67mlLnlr4bnoIFcbiAqIEBwYXJhbSB7U2V0UGFzc3dvcmRyUmVxdWVzdH0gcGFyYW1zXG4gKiBAcmV0dXJuIHtQcm9taXNlPGFueT59XG4gKi9cbiAgcHVibGljIGFzeW5jIHVwZGF0ZVBhc3N3b3JkQnlPbGQocGFyYW1zOiBVcGRhdGVQYXNzd29yZFJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBzdWRvVG9rZW4gPSBhd2FpdCB0aGlzLnN1ZG8oeyBwYXNzd29yZDogcGFyYW1zLm9sZF9wYXNzd29yZCB9KVxuICAgIHJldHVybiB0aGlzLnNldFBhc3N3b3JkKHtcbiAgICAgIHN1ZG9fdG9rZW46IHN1ZG9Ub2tlbi5zdWRvX3Rva2VuLFxuICAgICAgbmV3X3Bhc3N3b3JkOiBwYXJhbXMubmV3X3Bhc3N3b3JkLFxuICAgIH0pXG4gIH1cblxuXG4gIC8qKlxuICAgKiBzdWRvXG4gICAqIEBwYXJhbSB7c3Vkb30gcGFyYW1zXG4gICAqIEByZXR1cm4ge1Byb21pc2U8YW55Pn1cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzdWRvKHBhcmFtczogU3Vkb1JlcXVlc3QpOiBQcm9taXNlPFN1ZG9SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PFN1ZG9SZXNwb25zZT4oYCR7QXBpVXJscy5TVURPX1VSTH1gLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY3VycmVudCB1c2VyIHZlcmlmaWNhdGlvbi5cbiAgICogQHBhcmFtIHtHZXRWZXJpZmljYXRpb25SZXF1ZXN0fSBwYXJhbXMgQSBHZXRWZXJpZmljYXRpb25SZXF1ZXN0IE9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxHZXRWZXJpZmljYXRpb25SZXNwb25zZT59IEEgUHJvbWlzZTxHZXRWZXJpZmljYXRpb25SZXNwb25zZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEN1clVzZXJWZXJpZmljYXRpb24ocGFyYW1zOiBHZXRWZXJpZmljYXRpb25SZXF1ZXN0LCk6IFByb21pc2U8R2V0VmVyaWZpY2F0aW9uUmVzcG9uc2U+IHtcbiAgICBwYXJhbXMudGFyZ2V0ID0gJ0NVUl9VU0VSJ1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PEdldFZlcmlmaWNhdGlvblJlc3BvbnNlPihcbiAgICAgIEFwaVVybHMuVkVSSUZJQ0FUSU9OX1VSTCxcbiAgICAgIHtcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgICB3aXRoQ2FwdGNoYTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIGNoYW5nZSBiaW5kZWQgcHJvdmlkZXIuXG4gICAqIEBwYXJhbSB7R2V0VmVyaWZpY2F0aW9uUmVxdWVzdH0gcGFyYW1zIEEgR2V0VmVyaWZpY2F0aW9uUmVxdWVzdCBPYmplY3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8R2V0VmVyaWZpY2F0aW9uUmVzcG9uc2U+fSBBIFByb21pc2U8R2V0VmVyaWZpY2F0aW9uUmVzcG9uc2U+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VCaW5kZWRQcm92aWRlcihwYXJhbXM6IENoYW5nZUJpbmRlZFByb3ZpZGVyUmVxdWVzdCwpOiBQcm9taXNlPENoYW5nZUJpbmRlZFByb3ZpZGVyUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxDaGFuZ2VCaW5kZWRQcm92aWRlclJlc3BvbnNlPihcbiAgICAgIGAke0FwaVVybHMuUFJPVklERVJfTElTVH0vJHtwYXJhbXMucHJvdmlkZXJfaWR9L3RyYW5zYCxcbiAgICAgIHtcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGJvZHk6IHtcbiAgICAgICAgICBwcm92aWRlcl90cmFuc190b2tlbjogcGFyYW1zLnRyYW5zX3Rva2VuLFxuICAgICAgICB9LFxuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9LFxuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXRjaCB0aGUgdXNlciBwcm9maWxlLlxuICAgKiBAcGFyYW0ge1VzZXJQcm9maWxlfSBwYXJhbXMgQSBVc2VyUHJvZmlsZSBPYmplY3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8VXNlclByb2ZpbGU+fSBBIFByb21pc2U8VXNlclByb2ZpbGU+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzZXRVc2VyUHJvZmlsZShwYXJhbXM6IFVzZXJQcm9maWxlKTogUHJvbWlzZTxVc2VyUHJvZmlsZT4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PFVzZXJQcm9maWxlPihBcGlVcmxzLlVTRVJfUFJJRklMRV9VUkwsIHtcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFBhdGNoIHRoZSB1c2VyIHByb2ZpbGUuXG4gICAqIEBwYXJhbSB7UXVlcnlVc2VyUHJvZmlsZVJlcX0gYXBwZW5kZWRfcGFyYW1zIEEgUXVlcnlVc2VyUHJvZmlsZVJlcSBPYmplY3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8VXNlclByb2ZpbGU+fSBBIFByb21pc2U8VXNlclByb2ZpbGU+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBxdWVyeVVzZXJQcm9maWxlKHBhcmFtczogUXVlcnlVc2VyUHJvZmlsZVJlcXVlc3QsKTogUHJvbWlzZTxRdWVyeVVzZXJQcm9maWxlUmVzcG9uc2U+IHtcbiAgICAvLyBsZXQgdXJsID0gbmV3IFVSTChBcGlVcmxzLlVTRVJfUVVFUllfVVJMKTtcbiAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHBhcmFtcyBhcyBhbnkpXG4gICAgLy8gdXJsLnNlYXJjaCA9IHNlYXJjaFBhcmFtcy50b1N0cmluZygpO1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PFF1ZXJ5VXNlclByb2ZpbGVSZXNwb25zZT4oYCR7QXBpVXJscy5VU0VSX1FVRVJZX1VSTH0/JHtzZWFyY2hQYXJhbXMudG9TdHJpbmcoKX1gLCB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogc2V0Q3VzdG9tU2lnbkZ1bmMgc2V0IHRoZSBnZXQgdGlja2V0IGZ1bmN0aW9uXG4gICAqIEBwYXJhbSBnZXRUaWNrRm5cbiAgICovXG4gIHB1YmxpYyBzZXRDdXN0b21TaWduRnVuYyhnZXRUaWNrRm46IEdldEN1c3RvbVNpZ25UaWNrZXRGbikge1xuICAgIHRoaXMuZ2V0Q3VzdG9tU2lnblRpY2tldEZuID0gZ2V0VGlja0ZuXG4gIH1cblxuICAvKipcbiAgICogU2lnbkluV2l0aEN1c3RvbVRpY2tldCBjdXN0b20gc2lnbkluXG4gICAqIEBjb25zdHJ1Y3RvclxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNpZ25JbldpdGhDdXN0b21UaWNrZXQoKTogUHJvbWlzZTxDcmVkZW50aWFscz4ge1xuICAgIGNvbnN0IGN1c3RvbVRpY2tldCA9IGF3YWl0IHRoaXMuZ2V0Q3VzdG9tU2lnblRpY2tldEZuKClcbiAgICByZXR1cm4gdGhpcy5zaWduSW5XaXRoUHJvdmlkZXIoe1xuICAgICAgcHJvdmlkZXJfaWQ6ICdjdXN0b20nLFxuICAgICAgcHJvdmlkZXJfdG9rZW46IGN1c3RvbVRpY2tldCxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IHBhc3N3b3JkXG4gICAqIEBwYXJhbSB7UmVzZXRQYXNzd29yZFJlcXVlc3R9IHBhcmFtc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICogQG1lbWJlcm9mIEF1dGhcbiAgICovXG4gIHB1YmxpYyBhc3luYyByZXNldFBhc3N3b3JkKHBhcmFtczogUmVzZXRQYXNzd29yZFJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdChBcGlVcmxzLkFVVEhfUkVTRVRfUEFTU1dPUkQsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogcGFyYW1zLFxuICAgICAgLy8gd2l0aENyZWRlbnRpYWxzOiB0cnVlXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBkZXZpY2UgYXV0aG9yaXphdGlvblxuICAgKiBAcGFyYW0ge0RldmljZUF1dGhvcml6ZVJlcXVlc3R9IHBhcmFtc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxEZXZpY2VBdXRob3JpemVSZXNwb25zZT59XG4gICAqIEBtZW1iZXJvZiBBdXRoXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZGV2aWNlQXV0aG9yaXplKHBhcmFtczogRGV2aWNlQXV0aG9yaXplUmVxdWVzdCk6IFByb21pc2U8RGV2aWNlQXV0aG9yaXplUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdChBcGlVcmxzLkFVVEhfR0VUX0RFVklDRV9DT0RFLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGNoZWNrVXNlcm5hbWUocGFyYW1zOiBDaGVja1VzZXJuYW1lUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0KEFwaVVybHMuQ0hFQ0tfVVNFUk5BTUUsIHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSlcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjaGVja0lmVXNlckV4aXN0KHBhcmFtczogQ2hlY2tJZlVzZXJFeGlzdFJlcXVlc3QpOiBQcm9taXNlPENoZWNrSWZVc2VyRXhpc3RSZXNwb25zZT4ge1xuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocGFyYW1zIGFzIGFueSlcblxuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PENoZWNrSWZVc2VyRXhpc3RSZXNwb25zZT4oYCR7QXBpVXJscy5DSEVDS19JRl9VU0VSX0VYSVNUfT8ke3NlYXJjaFBhcmFtcy50b1N0cmluZygpfWAsIHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgfSlcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsb2dpblNjb3BlKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LmdldFNjb3BlKClcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsb2dpbkdyb3VwcygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LmdldEdyb3VwcygpXG4gIH1cbn1cbiJdfQ==
|
|
576
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdXRoL2FwaXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFWixtQ0FBa0M7QUEyQ2xDLDZEQUEyRTtBQUUzRSw4Q0FBNEM7QUFlNUM7SUFrQkUsY0FBWSxJQUFpQjtRQUNyQixJQUFBLE9BQU8sR0FBSyxJQUFJLFFBQVQsQ0FBUztRQUN0QixJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUE7UUFDekMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNqQixJQUFNLFdBQVcsR0FBRztnQkFDbEIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN6QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTzthQUN0QixDQUFBO1lBQ0QsWUFBWSxHQUFHLElBQUksMkJBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQTtTQUM3QztRQUNELElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixJQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtZQUMzRCxJQUFNLE9BQU8sR0FBRyxJQUFJLGlCQUFPLENBQUM7Z0JBQzFCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsT0FBTyxFQUFFLFdBQVc7Z0JBQ3BCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTzthQUN0QixDQUFDLENBQUE7WUFDRixPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7U0FDeEM7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1osU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixPQUFP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QUNIO0lBRVksNEJBQWEsR0FBMUIsVUFBMkIsTUFBNEI7OztnQkFDckQsV0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxnQkFBTyxDQUFDLGNBQWMsRUFBRTt3QkFDakQsTUFBTSxFQUFFLEtBQUs7d0JBQ2IsSUFBSSxFQUFFLE1BQU07d0JBQ1osZUFBZSxFQUFFLElBQUk7cUJBQ3RCLENBQUMsRUFBQTs7O0tBQ0g7SUFFWSwrQkFBZ0IsR0FBN0IsVUFBOEIsTUFBK0I7Ozs7Z0JBQ3JELFlBQVksR0FBRyxJQUFJLGVBQWUsQ0FBQyxNQUFhLENBQUMsQ0FBQTtnQkFFdkQsV0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBMkIsVUFBRyxnQkFBTyxDQUFDLG1CQUFtQixjQUFJLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBRSxFQUFFO3dCQUNoSCxNQUFNLEVBQUUsS0FBSztxQkFDZCxDQUFDLEVBQUE7OztLQUNIO0lBRVkseUJBQVUsR0FBdkI7OztnQkFDRSxXQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLEVBQUE7OztLQUNoRDtJQUVZLDBCQUFXLEdBQXhCOzs7Z0JBQ0UsV0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxFQUFBOzs7S0FDakQ7SUFDSCxXQUFDO0FBQUQsQ0FBQyxBQW5qQkQsSUFtakJDO0FBbmpCWSxvQkFBSSIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG5pbXBvcnQgeyBBcGlVcmxzIH0gZnJvbSAnLi9jb25zdHMnXG5pbXBvcnQge1xuICBHZXRWZXJpZmljYXRpb25SZXF1ZXN0LFxuICBHZXRWZXJpZmljYXRpb25SZXNwb25zZSxcbiAgVXNlclByb2ZpbGUsXG4gIFVzZXJJbmZvLFxuICBTaWduSW5SZXF1ZXN0LFxuICBTaWduVXBSZXF1ZXN0LFxuICBWZXJpZnlSZXF1ZXN0LFxuICBWZXJpZnlSZXNwb25zZSxcbiAgR2VuUHJvdmlkZXJSZWRpcmVjdFVyaVJlcXVlc3QsXG4gIEdlblByb3ZpZGVyUmVkaXJlY3RVcmlSZXNwb25zZSxcbiAgR3JhbnRQcm92aWRlclRva2VuUmVxdWVzdCxcbiAgR3JhbnRQcm92aWRlclRva2VuUmVzcG9uc2UsXG4gIFBhdGNoUHJvdmlkZXJUb2tlblJlcXVlc3QsXG4gIFBhdGNoUHJvdmlkZXJUb2tlblJlc3BvbnNlLFxuICBTaWduSW5XaXRoUHJvdmlkZXJSZXF1ZXN0LFxuICBCaW5kV2l0aFByb3ZpZGVyUmVxdWVzdCxcbiAgVHJhbnNCeVByb3ZpZGVyUmVxdWVzdCxcbiAgR3JhbnRUb2tlblJlcXVlc3QsXG4gIFVzZXJQcm9maWxlUHJvdmlkZXIsXG4gIFVuYmluZFByb3ZpZGVyUmVxdWVzdCxcbiAgQ2hlY2tQYXNzd29yZHJSZXF1ZXN0LFxuICBCaW5kUGhvbmVSZXF1ZXN0LFxuICBCaW5kRW1haWxSZXF1ZXN0LFxuICBTZXRQYXNzd29yZFJlcXVlc3QsXG4gIENoYW5nZUJpbmRlZFByb3ZpZGVyUmVxdWVzdCxcbiAgQ2hhbmdlQmluZGVkUHJvdmlkZXJSZXNwb25zZSxcbiAgVXBkYXRlUGFzc3dvcmRSZXF1ZXN0LFxuICBTdWRvUmVzcG9uc2UsXG4gIFN1ZG9SZXF1ZXN0LFxuICBHZXRDdXN0b21TaWduVGlja2V0Rm4sXG4gIFF1ZXJ5VXNlclByb2ZpbGVSZXF1ZXN0LFxuICBRdWVyeVVzZXJQcm9maWxlUmVzcG9uc2UsXG4gIFJlc2V0UGFzc3dvcmRSZXF1ZXN0LFxuICBEZXZpY2VBdXRob3JpemVSZXF1ZXN0LFxuICBEZXZpY2VBdXRob3JpemVSZXNwb25zZSxcbiAgQ2hlY2tVc2VybmFtZVJlcXVlc3QsXG4gIENoZWNrSWZVc2VyRXhpc3RSZXF1ZXN0LFxuICBDaGVja0lmVXNlckV4aXN0UmVzcG9uc2UsXG4gIFdpdGhTdWRvUmVxdWVzdCxcbn0gZnJvbSAnLi9tb2RlbHMnXG5pbXBvcnQgeyBTaW1wbGVTdG9yYWdlLCBSZXF1ZXN0RnVuY3Rpb24gfSBmcm9tICcuLi9vYXV0aDJjbGllbnQvaW50ZXJmYWNlJ1xuaW1wb3J0IHsgT0F1dGgyQ2xpZW50LCBkZWZhdWx0U3RvcmFnZSB9IGZyb20gJy4uL29hdXRoMmNsaWVudC9vYXV0aDJjbGllbnQnXG5pbXBvcnQgeyBDcmVkZW50aWFscyB9IGZyb20gJy4uL29hdXRoMmNsaWVudC9tb2RlbHMnXG5pbXBvcnQgeyBDYXB0Y2hhIH0gZnJvbSAnLi4vY2FwdGNoYS9jYXB0Y2hhJ1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aE9wdGlvbnMge1xuICBhcGlPcmlnaW46IHN0cmluZztcbiAgY2xpZW50SWQ6IHN0cmluZztcbiAgY3JlZGVudGlhbHNDbGllbnQ/OiBPQXV0aDJDbGllbnQ7XG4gIHJlcXVlc3Q/OiBSZXF1ZXN0RnVuY3Rpb247XG4gIHN0b3JhZ2U/OiBTaW1wbGVTdG9yYWdlO1xuICBhbm9ueW1vdXNTaWduSW5GdW5jPzogKENyZWRlbnRpYWxzKSA9PiBQcm9taXNlPENyZWRlbnRpYWxzIHwgdm9pZD5cbn1cblxuLyoqXG4gKiBBdXRoXG4gKi9cbmV4cG9ydCBjbGFzcyBBdXRoIHtcbiAgcHJpdmF0ZSBzdGF0aWMgcGFyc2VQYXJhbXNUb1NlYXJjaChwYXJhbXM6IGFueSk6IHN0cmluZyB7XG4gICAgT2JqZWN0LmtleXMocGFyYW1zKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGlmICghcGFyYW1zW2tleV0pIHtcbiAgICAgICAgZGVsZXRlIHBhcmFtc1trZXldXG4gICAgICB9XG4gICAgfSlcbiAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHBhcmFtcyBhcyBhbnkpXG4gICAgcmV0dXJuIHNlYXJjaFBhcmFtcy50b1N0cmluZygpXG4gIH1cblxuICBwcml2YXRlIGNvbmZpZzogQXV0aE9wdGlvbnNcbiAgcHJpdmF0ZSBnZXRDdXN0b21TaWduVGlja2V0Rm4/OiBHZXRDdXN0b21TaWduVGlja2V0Rm5cblxuICAvKipcbiAgICogY29uc3RydWN0b3JcbiAgICogQHBhcmFtIHtBdXRoT3B0aW9uc30gb3B0c1xuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0czogQXV0aE9wdGlvbnMpIHtcbiAgICBsZXQgeyByZXF1ZXN0IH0gPSBvcHRzXG4gICAgbGV0IG9BdXRoMkNsaWVudCA9IG9wdHMuY3JlZGVudGlhbHNDbGllbnRcbiAgICBpZiAoIW9BdXRoMkNsaWVudCkge1xuICAgICAgY29uc3QgaW5pdE9wdGlvbnMgPSB7XG4gICAgICAgIGFwaU9yaWdpbjogb3B0cy5hcGlPcmlnaW4sXG4gICAgICAgIGNsaWVudElkOiBvcHRzLmNsaWVudElkLFxuICAgICAgICBzdG9yYWdlOiBvcHRzLnN0b3JhZ2UsXG4gICAgICB9XG4gICAgICBvQXV0aDJDbGllbnQgPSBuZXcgT0F1dGgyQ2xpZW50KGluaXRPcHRpb25zKVxuICAgIH1cbiAgICBpZiAoIXJlcXVlc3QpIHtcbiAgICAgIGNvbnN0IGJhc2VSZXF1ZXN0ID0gb0F1dGgyQ2xpZW50LnJlcXVlc3QuYmluZChvQXV0aDJDbGllbnQpXG4gICAgICBjb25zdCBjYXB0Y2hhID0gbmV3IENhcHRjaGEoe1xuICAgICAgICBjbGllbnRJZDogb3B0cy5jbGllbnRJZCxcbiAgICAgICAgcmVxdWVzdDogYmFzZVJlcXVlc3QsXG4gICAgICAgIHN0b3JhZ2U6IG9wdHMuc3RvcmFnZSxcbiAgICAgIH0pXG4gICAgICByZXF1ZXN0ID0gY2FwdGNoYS5yZXF1ZXN0LmJpbmQoY2FwdGNoYSlcbiAgICB9XG4gICAgdGhpcy5jb25maWcgPSB7XG4gICAgICBhcGlPcmlnaW46IG9wdHMuYXBpT3JpZ2luLFxuICAgICAgY2xpZW50SWQ6IG9wdHMuY2xpZW50SWQsXG4gICAgICByZXF1ZXN0LFxuICAgICAgY3JlZGVudGlhbHNDbGllbnQ6IG9BdXRoMkNsaWVudCxcbiAgICAgIHN0b3JhZ2U6IG9wdHMuc3RvcmFnZSB8fCBkZWZhdWx0U3RvcmFnZSxcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2lnbiBpbi5cbiAgICogQHBhcmFtIHtTaWduSW5SZXF1ZXN0fSBwYXJhbXMgQSBTaWduSW5SZXF1ZXN0IE9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxDcmVkZW50aWFscz59IEEgUHJvbWlzZTxDcmVkZW50aWFscz4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNpZ25JbihwYXJhbXM6IFNpZ25JblJlcXVlc3QpOiBQcm9taXNlPENyZWRlbnRpYWxzPiB7XG4gICAgY29uc3QgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jb25maWcucmVxdWVzdDxDcmVkZW50aWFscz4oXG4gICAgICBBcGlVcmxzLkFVVEhfU0lHTl9JTl9VUkwsXG4gICAgICB7XG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICBib2R5OiBwYXJhbXMsXG4gICAgICB9LFxuICAgIClcbiAgICBhd2FpdCB0aGlzLmNvbmZpZy5jcmVkZW50aWFsc0NsaWVudC5zZXRDcmVkZW50aWFscyhjcmVkZW50aWFscylcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGNyZWRlbnRpYWxzKVxuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gaW4gQW5vbnltb3VzbHlcbiAgICogQHJldHVybiB7UHJvbWlzZTxDcmVkZW50aWFscz59IEEgUHJvbWlzZTxDcmVkZW50aWFscz4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNpZ25JbkFub255bW91c2x5KGRhdGE6IHtcbiAgICBwcm92aWRlcl90b2tlbj86IHN0cmluZ1xuICB9ID0ge30pOiBQcm9taXNlPENyZWRlbnRpYWxzPiB7XG4gICAgY29uc3QgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jb25maWcucmVxdWVzdDxDcmVkZW50aWFscz4oXG4gICAgICBBcGlVcmxzLkFVVEhfU0lHTl9JTl9BTk9OWU1PVVNMWV9VUkwsXG4gICAgICB7XG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICBib2R5OiBkYXRhLFxuICAgICAgfSxcbiAgICApXG4gICAgYXdhaXQgdGhpcy5jb25maWcuY3JlZGVudGlhbHNDbGllbnQuc2V0Q3JlZGVudGlhbHMoY3JlZGVudGlhbHMpXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShjcmVkZW50aWFscylcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIHVwLlxuICAgKiBAcGFyYW0ge1NpZ25VcFJlcXVlc3R9IHBhcmFtcyBBIFNpZ25VcFJlcXVlc3QgT2JqZWN0LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPENyZWRlbnRpYWxzPn0gQSBQcm9taXNlPENyZWRlbnRpYWxzPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2lnblVwKHBhcmFtczogU2lnblVwUmVxdWVzdCk6IFByb21pc2U8Q3JlZGVudGlhbHM+IHtcbiAgICBjb25zdCBkYXRhOiBDcmVkZW50aWFscyA9IGF3YWl0IHRoaXMuY29uZmlnLnJlcXVlc3Q8Q3JlZGVudGlhbHM+KFxuICAgICAgQXBpVXJscy5BVVRIX1NJR05fVVBfVVJMLFxuICAgICAge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgYm9keTogcGFyYW1zLFxuICAgICAgfSxcbiAgICApXG4gICAgYXdhaXQgdGhpcy5jb25maWcuY3JlZGVudGlhbHNDbGllbnQuc2V0Q3JlZGVudGlhbHMoZGF0YSlcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGRhdGEpXG4gIH1cblxuICAvKipcbiAgICogU2lnbiBvdXQuXG4gICAqIEByZXR1cm4ge09iamVjdH0gQSBQcm9taXNlPHZvaWQ+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzaWduT3V0KCk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgYWNjZXNzVG9rZW46IHN0cmluZyA9IGF3YWl0IHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LmdldEFjY2Vzc1Rva2VuKClcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5jb25maWcucmVxdWVzdChBcGlVcmxzLkFVVEhfUkVWT0tFX1VSTCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiB7XG4gICAgICAgIHRva2VuOiBhY2Nlc3NUb2tlbixcbiAgICAgIH0sXG4gICAgfSlcbiAgICBhd2FpdCB0aGlzLmNvbmZpZy5jcmVkZW50aWFsc0NsaWVudC5zZXRDcmVkZW50aWFscygpXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShkYXRhKVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgdmVyaWZpY2F0aW9uLlxuICAgKiBAcGFyYW0ge0dldFZlcmlmaWNhdGlvblJlcXVlc3R9IHBhcmFtcyBBIEdldFZlcmlmaWNhdGlvblJlcXVlc3QgT2JqZWN0LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPEdldFZlcmlmaWNhdGlvblJlc3BvbnNlPn0gQSBQcm9taXNlPEdldFZlcmlmaWNhdGlvblJlc3BvbnNlPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0VmVyaWZpY2F0aW9uKHBhcmFtczogR2V0VmVyaWZpY2F0aW9uUmVxdWVzdCwpOiBQcm9taXNlPEdldFZlcmlmaWNhdGlvblJlc3BvbnNlPiB7XG4gICAgbGV0IHdpdGhDcmVkZW50aWFscyA9IGZhbHNlXG4gICAgLy8g5Y+R6YCB55+t5L+h5pe277yM5aaC5p6c5pe257uZ5b2T5YmN55So5oi35Y+R77yM5YiZ6ZyA6KaB5bim5LiK6Ym05p2D5L+h5oGvXG4gICAgaWYgKHBhcmFtcy50YXJnZXQgPT09ICdDVVJfVVNFUicpIHtcbiAgICAgIHdpdGhDcmVkZW50aWFscyA9IHRydWVcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaGFzTG9naW4gPSBhd2FpdCB0aGlzLmhhc0xvZ2luU3RhdGUoKVxuICAgICAgaWYgKGhhc0xvZ2luKSB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFscyA9IHRydWVcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8R2V0VmVyaWZpY2F0aW9uUmVzcG9uc2U+KFxuICAgICAgQXBpVXJscy5WRVJJRklDQVRJT05fVVJMLFxuICAgICAge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgYm9keTogcGFyYW1zLFxuICAgICAgICB3aXRoQ2FwdGNoYTogdHJ1ZSxcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzLFxuICAgICAgfSxcbiAgICApXG4gIH1cblxuICAvKipcbiAgICogIFZlcmlmeSB0aGUgY29kZVxuICAgKiBAcGFyYW0ge1ZlcmlmeVJlcXVlc3R9IHBhcmFtcyBBIFZlcmlmeVJlcXVlc3QgT2JqZWN0LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFZlcmlmeVJlc3BvbnNlPn0gQSBQcm9taXNlPFZlcmlmeVJlc3BvbnNlPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgdmVyaWZ5KHBhcmFtczogVmVyaWZ5UmVxdWVzdCk6IFByb21pc2U8VmVyaWZ5UmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxWZXJpZnlSZXNwb25zZT4oQXBpVXJscy5WRVJJRllfVVJMLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEdlbiBwcm92aWRlciByZWRpcmVjdCB1cmkuXG4gICAqIEBwYXJhbSB7R2VuUHJvdmlkZXJSZWRpcmVjdFVyaVJlcXVlc3R9IHBhcmFtcyBBIEdlblByb3ZpZGVyUmVkaXJlY3RVcmlSZXF1ZXN0IG9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxHZW5Qcm92aWRlclJlZGlyZWN0VXJpUmVzcG9uc2U+fSBBIFByb21pc2U8R2VuUHJvdmlkZXJSZWRpcmVjdFVyaVJlc3BvbnNlPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2VuUHJvdmlkZXJSZWRpcmVjdFVyaShwYXJhbXM6IEdlblByb3ZpZGVyUmVkaXJlY3RVcmlSZXF1ZXN0LCk6IFByb21pc2U8R2VuUHJvdmlkZXJSZWRpcmVjdFVyaVJlc3BvbnNlPiB7XG4gICAgbGV0IHVybCA9IGAke0FwaVVybHMuUFJPVklERVJfVVJJX1VSTH0/Y2xpZW50X2lkPSR7dGhpcy5jb25maWcuY2xpZW50SWRcbiAgICB9JnByb3ZpZGVyX2lkPSR7cGFyYW1zLnByb3ZpZGVyX2lkfSZyZWRpcmVjdF91cmk9JHtlbmNvZGVVUklDb21wb25lbnQocGFyYW1zLnByb3ZpZGVyX3JlZGlyZWN0X3VyaSwpfSZzdGF0ZT0ke3BhcmFtcy5zdGF0ZX1gXG4gICAgY29uc3QgeyBvdGhlcl9wYXJhbXM6IG90aGVyUGFyYW1zIH0gPSBwYXJhbXNcbiAgICBpZiAob3RoZXJQYXJhbXMpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdHlwZW9mIG90aGVyUGFyYW1zLnNpZ25fb3V0X3VyaSA9PT0gJ3N0cmluZydcbiAgICAgICAgJiYgb3RoZXJQYXJhbXMuc2lnbl9vdXRfdXJpLmxlbmd0aCA+IDBcbiAgICAgICkge1xuICAgICAgICB1cmwgKz0gYCZvdGhlcl9wYXJhbXNbc2lnbl9vdXRfdXJpXT0ke290aGVyUGFyYW1zLnNpZ25fb3V0X3VyaX1gXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PEdlblByb3ZpZGVyUmVkaXJlY3RVcmlSZXNwb25zZT4odXJsLCB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgcHJvdmlkZXIgdG9rZW4uXG4gICAqIEBwYXJhbSB7R3JhbnRQcm92aWRlclRva2VuUmVxdWVzdH0gcGFyYW1zIEEgR3JhbnRQcm92aWRlclRva2VuUmVxdWVzdCBvYmplY3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8R3JhbnRQcm92aWRlclRva2VuUmVzcG9uc2U+fSBBIFByb21pc2U8R3JhbnRQcm92aWRlclRva2VuUmVzcG9uc2U+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBncmFudFByb3ZpZGVyVG9rZW4ocGFyYW1zOiBHcmFudFByb3ZpZGVyVG9rZW5SZXF1ZXN0LCk6IFByb21pc2U8R3JhbnRQcm92aWRlclRva2VuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxHcmFudFByb3ZpZGVyVG9rZW5SZXNwb25zZT4oXG4gICAgICBBcGlVcmxzLlBST1ZJREVSX1RPS0VOX1VSTCxcbiAgICAgIHtcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICAgIH0sXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IHByb3ZpZGVyIHRva2VuLlxuICAgKiBAcGFyYW0ge1BhdGNoUHJvdmlkZXJUb2tlblJlcXVlc3R9IHBhcmFtcyBBIFBhdGNoUHJvdmlkZXJUb2tlblJlcXVlc3Qgb2JqZWN0LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFBhdGNoUHJvdmlkZXJUb2tlblJlc3BvbnNlPn0gQSBQcm9taXNlPFBhdGNoUHJvdmlkZXJUb2tlblJlc3BvbnNlPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcGF0Y2hQcm92aWRlclRva2VuKHBhcmFtczogUGF0Y2hQcm92aWRlclRva2VuUmVxdWVzdCwpOiBQcm9taXNlPFBhdGNoUHJvdmlkZXJUb2tlblJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8UGF0Y2hQcm92aWRlclRva2VuUmVzcG9uc2U+KFxuICAgICAgQXBpVXJscy5QUk9WSURFUl9UT0tFTl9VUkwsXG4gICAgICB7XG4gICAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgICAgYm9keTogcGFyYW1zLFxuICAgICAgfSxcbiAgICApXG4gIH1cblxuICAvKipcbiAgICogU2lnbmluIHdpdGggcHJvdmlkZXIgcmVxdWVzdC5cbiAgICogQHBhcmFtIHtTaWduSW5XaXRoUHJvdmlkZXJSZXF1ZXN0fSBwYXJhbXMgQSBTaWduSW5XaXRoUHJvdmlkZXJSZXF1ZXN0IG9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxDcmVkZW50aWFscz59IEEgUHJvbWlzZTxDcmVkZW50aWFscz4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNpZ25JbldpdGhQcm92aWRlcihwYXJhbXM6IFNpZ25JbldpdGhQcm92aWRlclJlcXVlc3QsKTogUHJvbWlzZTxDcmVkZW50aWFscz4ge1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzOiBDcmVkZW50aWFscyA9IGF3YWl0IHRoaXMuY29uZmlnLnJlcXVlc3Q8Q3JlZGVudGlhbHM+KFxuICAgICAgQXBpVXJscy5BVVRIX1NJR05fSU5fV0lUSF9QUk9WSURFUl9VUkwsXG4gICAgICB7XG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICBib2R5OiBwYXJhbXMsXG4gICAgICB9LFxuICAgIClcbiAgICBhd2FpdCB0aGlzLmNvbmZpZy5jcmVkZW50aWFsc0NsaWVudC5zZXRDcmVkZW50aWFscyhjcmVkZW50aWFscylcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGNyZWRlbnRpYWxzKVxuICB9XG5cbiAgLyoqXG4gICAqIEJpbmQgd2l0aCBwcm92aWRlclxuICAgKiBAcGFyYW0ge0JpbmRXaXRoUHJvdmlkZXJSZXF1ZXN0fSBwYXJhbXMgQSBCaW5kV2l0aFByb3ZpZGVyUmVxdWVzdCBvYmplY3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IEEgUHJvbWlzZTxhbnk+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBiaW5kV2l0aFByb3ZpZGVyKHBhcmFtczogQmluZFdpdGhQcm92aWRlclJlcXVlc3QsKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8YW55PihBcGlVcmxzLlBST1ZJREVSX0JJTkRfVVJMLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgdXNlciBwcm9maWxlLlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFVzZXJQcm9maWxlPn0gQSBQcm9taXNlPFVzZXJQcm9maWxlPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0VXNlclByb2ZpbGUoKTogUHJvbWlzZTxVc2VyUHJvZmlsZT4ge1xuICAgIHJldHVybiB0aGlzLmdldFVzZXJJbmZvKClcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHVzZXIgaW5mby5cbiAgICogQHJldHVybiB7UHJvbWlzZTxVc2VySW5mbz59IEEgUHJvbWlzZTxVc2VyUHJvZmlsZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFVzZXJJbmZvKCk6IFByb21pc2U8VXNlckluZm8+IHtcbiAgICBjb25zdCB1c2VySW5mbyA9IGF3YWl0IHRoaXMuY29uZmlnLnJlcXVlc3Q8VXNlckluZm8+KEFwaVVybHMuVVNFUl9NRV9VUkwsIHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSlcblxuICAgIGlmICh1c2VySW5mby5zdWIpIHtcbiAgICAgIHVzZXJJbmZvLnVpZCA9IHVzZXJJbmZvLnN1YlxuICAgIH1cblxuICAgIHJldHVybiB1c2VySW5mb1xuICB9XG5cbiAgLyoqXG4gICAgICogRGVsZXRlIG1lXG4gICAgICogQHBhcmFtIHBhcmFtc1xuICAgICAqL1xuICBwdWJsaWMgYXN5bmMgZGVsZXRlTWUocGFyYW1zOiBXaXRoU3Vkb1JlcXVlc3QpOiBQcm9taXNlPFVzZXJQcm9maWxlPiB7XG4gICAgY29uc3QgdXJsID0gYCR7QXBpVXJscy5VU0VSX01FX1VSTH0/JHtBdXRoLnBhcnNlUGFyYW1zVG9TZWFyY2gocGFyYW1zKX1gXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8VXNlclByb2ZpbGU+KHVybCwge1xuICAgICAgbWV0aG9kOiAnREVMRVRFJyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIGhhc0xvZ2luU3RhdGUgY2hlY2sgaWYgaGFzIGxvZ2luIHN0YXRlXG4gICAqIEByZXR1cm4ge1Byb21pc2U8Ym9vbGVhbj59IEEgUHJvbWlzZTxib29sZWFuPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaGFzTG9naW5TdGF0ZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5jb25maWcuY3JlZGVudGlhbHNDbGllbnQuZ2V0QWNjZXNzVG9rZW4oKVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhhc0xvZ2luU3RhdGVTeW5jKCk6IENyZWRlbnRpYWxzIHwgbnVsbCB7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSB0aGlzLmNvbmZpZy5jcmVkZW50aWFsc0NsaWVudC5nZXRDcmVkZW50aWFsc1N5bmMoKVxuICAgIHJldHVybiBjcmVkZW50aWFsc1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldExvZ2luU3RhdGUoKTogUHJvbWlzZTxDcmVkZW50aWFscyB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuY3JlZGVudGlhbHNDbGllbnQuZ2V0Q3JlZGVudGlhbHNBc3luYygpXG4gIH1cblxuICAvKipcbiAgICogVHJhbnMgYnkgcHJvdmlkZXIuXG4gICAqIEBwYXJhbSB7VHJhbnNCeVByb3ZpZGVyUmVxdWVzdH0gcGFyYW1zIEEgVHJhbnNCeVByb3ZpZGVyUmVxdWVzdCBvYmplY3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8Q3JlZGVudGlhbHM+fSBBIFByb21pc2U8Q3JlZGVudGlhbHM+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyB0cmFuc0J5UHJvdmlkZXIocGFyYW1zOiBUcmFuc0J5UHJvdmlkZXJSZXF1ZXN0LCk6IFByb21pc2U8Q3JlZGVudGlhbHM+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxDcmVkZW50aWFscz4oXG4gICAgICBBcGlVcmxzLlVTRVJfVFJBTlNfQllfUFJPVklERVJfVVJMLFxuICAgICAge1xuICAgICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApXG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgdG9rZW4uXG4gICAqIEBwYXJhbSB7R3JhbnRUb2tlblJlcXVlc3R9IHBhcmFtcyBBIEdyYW50VG9rZW5SZXF1ZXN0IG9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxDcmVkZW50aWFscz59IEEgUHJvbWlzZTxDcmVkZW50aWFscz4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdyYW50VG9rZW4ocGFyYW1zOiBHcmFudFRva2VuUmVxdWVzdCk6IFByb21pc2U8Q3JlZGVudGlhbHM+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxDcmVkZW50aWFscz4oQXBpVXJscy5BVVRIX1RPS0VOX1VSTCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHByb3ZpZGUgbGlzdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxVc2VyUHJvZmlsZVByb3ZpZGVyPn0gQSBQcm9taXNlPFVzZXJQcm9maWxlUHJvdmlkZXI+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRQcm92aWRlcnMoKTogUHJvbWlzZTxVc2VyUHJvZmlsZVByb3ZpZGVyPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8VXNlclByb2ZpbGVQcm92aWRlcj4oQXBpVXJscy5QUk9WSURFUl9MSVNULCB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogdW5iaW5kIHByb3ZpZGVyLlxuICAgKiBAcGFyYW0ge1VuYmluZFByb3ZpZGVyUmVxdWVzdH0gcGFyYW1zXG4gICAqIEByZXR1cm4ge1Byb21pc2U8YW55Pn1cbiAgICovXG4gIHB1YmxpYyBhc3luYyB1bmJpbmRQcm92aWRlcihwYXJhbXM6IFVuYmluZFByb3ZpZGVyUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PGFueT4oXG4gICAgICBgJHtBcGlVcmxzLlBST1ZJREVSX1VOQklORF9VUkx9LyR7cGFyYW1zLnByb3ZpZGVyX2lkfWAsXG4gICAgICB7XG4gICAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIGNoZWNrIFBhc3N3b3JkLlxuICAgKiBAcGFyYW0ge0NoZWNrUGFzc3dvcmRyUmVxdWVzdH0gcGFyYW1zXG4gICAqIEByZXR1cm4ge1Byb21pc2U8YW55Pn1cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjaGVja1Bhc3N3b3JkKHBhcmFtczogQ2hlY2tQYXNzd29yZHJSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8YW55PihgJHtBcGlVcmxzLkNIRUNLX1BXRF9VUkx9YCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBjaGVjayBQYXNzd29yZC5cbiAgICogQHBhcmFtIHtDaGVja1Bhc3N3b3JkclJlcXVlc3R9IHBhcmFtc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPGFueT59XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgYmluZFBob25lKHBhcmFtczogQmluZFBob25lUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PGFueT4oYCR7QXBpVXJscy5CSU5EX0NPTlRBQ1RfVVJMfWAsIHtcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIGNoZWNrIFBhc3N3b3JkLlxuICAgKiBAcGFyYW0ge0NoZWNrUGFzc3dvcmRyUmVxdWVzdH0gcGFyYW1zXG4gICAqIEByZXR1cm4ge1Byb21pc2U8YW55Pn1cbiAgICovXG4gIHB1YmxpYyBhc3luYyBiaW5kRW1haWwocGFyYW1zOiBCaW5kRW1haWxSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8YW55PihgJHtBcGlVcmxzLkJJTkRfQ09OVEFDVF9VUkx9YCwge1xuICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgYm9keTogcGFyYW1zLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogU2V0IFBhc3N3b3JkLlxuICAgKiBAcGFyYW0ge1NldFBhc3N3b3JkclJlcXVlc3R9IHBhcmFtc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPGFueT59XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2V0UGFzc3dvcmQocGFyYW1zOiBTZXRQYXNzd29yZFJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxhbnk+KGAke0FwaVVybHMuQVVUSF9TRVRfUEFTU1dPUkR9YCwge1xuICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgYm9keTogcGFyYW1zLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAqIHVwZGF0ZVBhc3N3b3JkQnlPbGQg5L2/55So5pen5a+G56CB5L+u5pS55a+G56CB77yM5aaC5p6c5bey57uP57uR5a6a5omL5py65Y+377yM6K+35YWI77yac3Vkb++8jOWGjeS/ruaUueWvhueggVxuICogQHBhcmFtIHtTZXRQYXNzd29yZHJSZXF1ZXN0fSBwYXJhbXNcbiAqIEByZXR1cm4ge1Byb21pc2U8YW55Pn1cbiAqL1xuICBwdWJsaWMgYXN5bmMgdXBkYXRlUGFzc3dvcmRCeU9sZChwYXJhbXM6IFVwZGF0ZVBhc3N3b3JkUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHN1ZG9Ub2tlbiA9IGF3YWl0IHRoaXMuc3Vkbyh7IHBhc3N3b3JkOiBwYXJhbXMub2xkX3Bhc3N3b3JkIH0pXG4gICAgcmV0dXJuIHRoaXMuc2V0UGFzc3dvcmQoe1xuICAgICAgc3Vkb190b2tlbjogc3Vkb1Rva2VuLnN1ZG9fdG9rZW4sXG4gICAgICBuZXdfcGFzc3dvcmQ6IHBhcmFtcy5uZXdfcGFzc3dvcmQsXG4gICAgfSlcbiAgfVxuXG5cbiAgLyoqXG4gICAqIHN1ZG9cbiAgICogQHBhcmFtIHtzdWRvfSBwYXJhbXNcbiAgICogQHJldHVybiB7UHJvbWlzZTxhbnk+fVxuICAgKi9cbiAgcHVibGljIGFzeW5jIHN1ZG8ocGFyYW1zOiBTdWRvUmVxdWVzdCk6IFByb21pc2U8U3Vkb1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8U3Vkb1Jlc3BvbnNlPihgJHtBcGlVcmxzLlNVRE9fVVJMfWAsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgYm9keTogcGFyYW1zLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBjdXJyZW50IHVzZXIgdmVyaWZpY2F0aW9uLlxuICAgKiBAcGFyYW0ge0dldFZlcmlmaWNhdGlvblJlcXVlc3R9IHBhcmFtcyBBIEdldFZlcmlmaWNhdGlvblJlcXVlc3QgT2JqZWN0LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPEdldFZlcmlmaWNhdGlvblJlc3BvbnNlPn0gQSBQcm9taXNlPEdldFZlcmlmaWNhdGlvblJlc3BvbnNlPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0Q3VyVXNlclZlcmlmaWNhdGlvbihwYXJhbXM6IEdldFZlcmlmaWNhdGlvblJlcXVlc3QsKTogUHJvbWlzZTxHZXRWZXJpZmljYXRpb25SZXNwb25zZT4ge1xuICAgIHBhcmFtcy50YXJnZXQgPSAnQ1VSX1VTRVInXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8R2V0VmVyaWZpY2F0aW9uUmVzcG9uc2U+KFxuICAgICAgQXBpVXJscy5WRVJJRklDQVRJT05fVVJMLFxuICAgICAge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgYm9keTogcGFyYW1zLFxuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgIHdpdGhDYXB0Y2hhOiB0cnVlLFxuICAgICAgfSxcbiAgICApXG4gIH1cblxuICAvKipcbiAgICogY2hhbmdlIGJpbmRlZCBwcm92aWRlci5cbiAgICogQHBhcmFtIHtHZXRWZXJpZmljYXRpb25SZXF1ZXN0fSBwYXJhbXMgQSBHZXRWZXJpZmljYXRpb25SZXF1ZXN0IE9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxHZXRWZXJpZmljYXRpb25SZXNwb25zZT59IEEgUHJvbWlzZTxHZXRWZXJpZmljYXRpb25SZXNwb25zZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNoYW5nZUJpbmRlZFByb3ZpZGVyKHBhcmFtczogQ2hhbmdlQmluZGVkUHJvdmlkZXJSZXF1ZXN0LCk6IFByb21pc2U8Q2hhbmdlQmluZGVkUHJvdmlkZXJSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PENoYW5nZUJpbmRlZFByb3ZpZGVyUmVzcG9uc2U+KFxuICAgICAgYCR7QXBpVXJscy5QUk9WSURFUl9MSVNUfS8ke3BhcmFtcy5wcm92aWRlcl9pZH0vdHJhbnNgLFxuICAgICAge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgYm9keToge1xuICAgICAgICAgIHByb3ZpZGVyX3RyYW5zX3Rva2VuOiBwYXJhbXMudHJhbnNfdG9rZW4sXG4gICAgICAgIH0sXG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIFBhdGNoIHRoZSB1c2VyIHByb2ZpbGUuXG4gICAqIEBwYXJhbSB7VXNlclByb2ZpbGV9IHBhcmFtcyBBIFVzZXJQcm9maWxlIE9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxVc2VyUHJvZmlsZT59IEEgUHJvbWlzZTxVc2VyUHJvZmlsZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNldFVzZXJQcm9maWxlKHBhcmFtczogVXNlclByb2ZpbGUpOiBQcm9taXNlPFVzZXJQcm9maWxlPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8VXNlclByb2ZpbGU+KEFwaVVybHMuVVNFUl9QUklGSUxFX1VSTCwge1xuICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxuICAgICAgYm9keTogcGFyYW1zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogUGF0Y2ggdGhlIHVzZXIgcHJvZmlsZS5cbiAgICogQHBhcmFtIHtRdWVyeVVzZXJQcm9maWxlUmVxfSBhcHBlbmRlZF9wYXJhbXMgQSBRdWVyeVVzZXJQcm9maWxlUmVxIE9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxVc2VyUHJvZmlsZT59IEEgUHJvbWlzZTxVc2VyUHJvZmlsZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHF1ZXJ5VXNlclByb2ZpbGUocGFyYW1zOiBRdWVyeVVzZXJQcm9maWxlUmVxdWVzdCwpOiBQcm9taXNlPFF1ZXJ5VXNlclByb2ZpbGVSZXNwb25zZT4ge1xuICAgIC8vIGxldCB1cmwgPSBuZXcgVVJMKEFwaVVybHMuVVNFUl9RVUVSWV9VUkwpO1xuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocGFyYW1zIGFzIGFueSlcbiAgICAvLyB1cmwuc2VhcmNoID0gc2VhcmNoUGFyYW1zLnRvU3RyaW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8UXVlcnlVc2VyUHJvZmlsZVJlc3BvbnNlPihgJHtBcGlVcmxzLlVTRVJfUVVFUllfVVJMfT8ke3NlYXJjaFBhcmFtcy50b1N0cmluZygpfWAsIHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBzZXRDdXN0b21TaWduRnVuYyBzZXQgdGhlIGdldCB0aWNrZXQgZnVuY3Rpb25cbiAgICogQHBhcmFtIGdldFRpY2tGblxuICAgKi9cbiAgcHVibGljIHNldEN1c3RvbVNpZ25GdW5jKGdldFRpY2tGbjogR2V0Q3VzdG9tU2lnblRpY2tldEZuKSB7XG4gICAgdGhpcy5nZXRDdXN0b21TaWduVGlja2V0Rm4gPSBnZXRUaWNrRm5cbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduSW5XaXRoQ3VzdG9tVGlja2V0IGN1c3RvbSBzaWduSW5cbiAgICogQGNvbnN0cnVjdG9yXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2lnbkluV2l0aEN1c3RvbVRpY2tldCgpOiBQcm9taXNlPENyZWRlbnRpYWxzPiB7XG4gICAgY29uc3QgY3VzdG9tVGlja2V0ID0gYXdhaXQgdGhpcy5nZXRDdXN0b21TaWduVGlja2V0Rm4oKVxuICAgIHJldHVybiB0aGlzLnNpZ25JbldpdGhQcm92aWRlcih7XG4gICAgICBwcm92aWRlcl9pZDogJ2N1c3RvbScsXG4gICAgICBwcm92aWRlcl90b2tlbjogY3VzdG9tVGlja2V0LFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgcGFzc3dvcmRcbiAgICogQHBhcmFtIHtSZXNldFBhc3N3b3JkUmVxdWVzdH0gcGFyYW1zXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKiBAbWVtYmVyb2YgQXV0aFxuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlc2V0UGFzc3dvcmQocGFyYW1zOiBSZXNldFBhc3N3b3JkUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0KEFwaVVybHMuQVVUSF9SRVNFVF9QQVNTV09SRCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgICAvLyB3aXRoQ3JlZGVudGlhbHM6IHRydWVcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIGRldmljZSBhdXRob3JpemF0aW9uXG4gICAqIEBwYXJhbSB7RGV2aWNlQXV0aG9yaXplUmVxdWVzdH0gcGFyYW1zXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPERldmljZUF1dGhvcml6ZVJlc3BvbnNlPn1cbiAgICogQG1lbWJlcm9mIEF1dGhcbiAgICovXG4gIHB1YmxpYyBhc3luYyBkZXZpY2VBdXRob3JpemUocGFyYW1zOiBEZXZpY2VBdXRob3JpemVSZXF1ZXN0KTogUHJvbWlzZTxEZXZpY2VBdXRob3JpemVSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0KEFwaVVybHMuQVVUSF9HRVRfREVWSUNFX0NPREUsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogcGFyYW1zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2hlY2tVc2VybmFtZShwYXJhbXM6IENoZWNrVXNlcm5hbWVSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3QoQXBpVXJscy5DSEVDS19VU0VSTkFNRSwge1xuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGNoZWNrSWZVc2VyRXhpc3QocGFyYW1zOiBDaGVja0lmVXNlckV4aXN0UmVxdWVzdCk6IFByb21pc2U8Q2hlY2tJZlVzZXJFeGlzdFJlc3BvbnNlPiB7XG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhwYXJhbXMgYXMgYW55KVxuXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8Q2hlY2tJZlVzZXJFeGlzdFJlc3BvbnNlPihgJHtBcGlVcmxzLkNIRUNLX0lGX1VTRVJfRVhJU1R9PyR7c2VhcmNoUGFyYW1zLnRvU3RyaW5nKCl9YCwge1xuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICB9KVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGxvZ2luU2NvcGUoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuY3JlZGVudGlhbHNDbGllbnQuZ2V0U2NvcGUoKVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGxvZ2luR3JvdXBzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuY3JlZGVudGlhbHNDbGllbnQuZ2V0R3JvdXBzKClcbiAgfVxufVxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
interface BaseRequest {
|
|
2
2
|
client_id?: string;
|
|
3
3
|
}
|
|
4
|
-
export
|
|
4
|
+
export type GetCustomSignTicketFn = () => Promise<string>;
|
|
5
5
|
export interface SignInRequest extends BaseRequest {
|
|
6
6
|
username?: string;
|
|
7
7
|
password?: string;
|
|
@@ -110,7 +110,7 @@ export interface UserProfile {
|
|
|
110
110
|
country?: string;
|
|
111
111
|
city?: string;
|
|
112
112
|
}
|
|
113
|
-
export
|
|
113
|
+
export type UserInfo = UserProfile;
|
|
114
114
|
export interface ProviderProfile {
|
|
115
115
|
provider_id: string;
|
|
116
116
|
phone_number?: string;
|
|
@@ -146,7 +146,7 @@ export interface ChangeBindedProviderRequest extends BaseRequest {
|
|
|
146
146
|
trans_token: string;
|
|
147
147
|
provider_id: string;
|
|
148
148
|
}
|
|
149
|
-
export
|
|
149
|
+
export type ChangeBindedProviderResponse = BaseRequest;
|
|
150
150
|
export interface QueryUserProfileReq extends BaseRequest {
|
|
151
151
|
appended_params: string;
|
|
152
152
|
}
|
|
@@ -6,7 +6,7 @@ export interface CaptchaOptions {
|
|
|
6
6
|
storage: SimpleStorage;
|
|
7
7
|
openURIWithCallback?: OpenURIWithCallbackFuction;
|
|
8
8
|
}
|
|
9
|
-
|
|
9
|
+
type OpenURIWithCallbackFuction = (url: string) => Promise<CaptchaToken>;
|
|
10
10
|
export interface CaptchaToken {
|
|
11
11
|
captcha_token: string;
|
|
12
12
|
expires_in: number;
|
|
@@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
14
14
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
15
|
function step(op) {
|
|
16
16
|
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
18
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
19
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
20
|
switch (op[0]) {
|
|
@@ -48,7 +48,7 @@ var Captcha = (function () {
|
|
|
48
48
|
opts.storage = oauth2client_1.defaultStorage;
|
|
49
49
|
}
|
|
50
50
|
this.config = opts;
|
|
51
|
-
this.tokenSectionName = "captcha_"
|
|
51
|
+
this.tokenSectionName = "captcha_".concat(opts.clientId);
|
|
52
52
|
}
|
|
53
53
|
Captcha.prototype.request = function (url, options) {
|
|
54
54
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -62,7 +62,7 @@ var Captcha = (function () {
|
|
|
62
62
|
if (!options.method) {
|
|
63
63
|
options.method = 'GET';
|
|
64
64
|
}
|
|
65
|
-
state = options.method
|
|
65
|
+
state = "".concat(options.method, ":").concat(url);
|
|
66
66
|
reqURL = url;
|
|
67
67
|
if (!options.withCaptcha) return [3, 2];
|
|
68
68
|
return [4, this.appendCaptchaTokenToURL(url, state, false)];
|
|
@@ -162,7 +162,7 @@ var Captcha = (function () {
|
|
|
162
162
|
}
|
|
163
163
|
_a.label = 2;
|
|
164
164
|
case 2:
|
|
165
|
-
redirectURL = window.location.origin + window.location.pathname
|
|
165
|
+
redirectURL = "".concat(window.location.origin + window.location.pathname, "?__captcha=on");
|
|
166
166
|
return [4, this.config.request(GET_CAPTCHA_URL, {
|
|
167
167
|
method: 'POST',
|
|
168
168
|
body: {
|
|
@@ -200,10 +200,10 @@ var Captcha = (function () {
|
|
|
200
200
|
case 1:
|
|
201
201
|
captchaToken = _a.sent();
|
|
202
202
|
if (url.indexOf('?') > 0) {
|
|
203
|
-
url += "&captcha_token="
|
|
203
|
+
url += "&captcha_token=".concat(captchaToken);
|
|
204
204
|
}
|
|
205
205
|
else {
|
|
206
|
-
url += "?captcha_token="
|
|
206
|
+
url += "?captcha_token=".concat(captchaToken);
|
|
207
207
|
}
|
|
208
208
|
return [2, url];
|
|
209
209
|
}
|
|
@@ -261,4 +261,4 @@ var Captcha = (function () {
|
|
|
261
261
|
return Captcha;
|
|
262
262
|
}());
|
|
263
263
|
exports.Captcha = Captcha;
|
|
264
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwdGNoYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jYXB0Y2hhL2NhcHRjaGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsNkRBQTZEO0FBNEI3RCxJQUFNLGVBQWUsR0FBRyx1QkFBdUIsQ0FBQTtBQUUvQztJQVFFLGlCQUFZLElBQW9CO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDN0IsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFBO1NBQ2hFO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyw2QkFBYyxDQUFBO1NBQzlCO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUE7UUFDbEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGFBQVcsSUFBSSxDQUFDLFFBQVUsQ0FBQTtJQUNwRCxDQUFDO0lBT1kseUJBQU8sR0FBcEIsVUFDRSxHQUFXLEVBQ1gsT0FBK0I7Ozs7Ozt3QkFFL0IsSUFBSSxDQUFDLE9BQU8sRUFBRTs0QkFDWixPQUFPLEdBQUcsRUFBRSxDQUFBO3lCQUNiO3dCQUNELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFOzRCQUNuQixPQUFPLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQTt5QkFDdkI7d0JBQ0ssS0FBSyxHQUFNLE9BQU8sQ0FBQyxNQUFNLFNBQUksR0FBSyxDQUFBO3dCQUNwQyxNQUFNLEdBQUcsR0FBRyxDQUFBOzZCQUNaLE9BQU8sQ0FBQyxXQUFXLEVBQW5CLGNBQW1CO3dCQUNaLFdBQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUE7O3dCQUE5RCxNQUFNLEdBQUcsU0FBcUQsQ0FBQTs7Ozt3QkFLdkQsV0FB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TFksMEJBQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaW1wbGVTdG9yYWdlLCBSZXF1ZXN0RnVuY3Rpb24gfSBmcm9tICcuLi9vYXV0aDJjbGllbnQvaW50ZXJmYWNlJ1xuaW1wb3J0IHsgQXV0aENsaWVudFJlcXVlc3RPcHRpb25zIH0gZnJvbSAnLi4vb2F1dGgyY2xpZW50L21vZGVscydcbmltcG9ydCB7IGRlZmF1bHRTdG9yYWdlIH0gZnJvbSAnLi4vb2F1dGgyY2xpZW50L29hdXRoMmNsaWVudCdcblxuZXhwb3J0IGludGVyZmFjZSBDYXB0Y2hhT3B0aW9ucyB7XG4gIGNsaWVudElkOiBzdHJpbmdcbiAgcmVxdWVzdDogUmVxdWVzdEZ1bmN0aW9uO1xuICBzdG9yYWdlOiBTaW1wbGVTdG9yYWdlO1xuICAvLyDmiZPlvIDnvZHpobXlubbpgJrov4dVUkzlm57osIPojrflj5YgQ2FwdGNoYVRva2Vu77yM6ZKI5a+55LiN6YCa55qE5bmz5Y+w77yM6K+l5Ye95pWw5Y+v5Lul6Ieq5a6a5LmJ5a6e546wLCDpu5jorqTpm4bmiJDmtY/op4jlmajnq6/orqTor4FcbiAgb3BlblVSSVdpdGhDYWxsYmFjaz86IE9wZW5VUklXaXRoQ2FsbGJhY2tGdWN0aW9uO1xufVxuXG50eXBlIE9wZW5VUklXaXRoQ2FsbGJhY2tGdWN0aW9uID0gKHVybDogc3RyaW5nKSA9PiBQcm9taXNlPENhcHRjaGFUb2tlbj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FwdGNoYVRva2VuIHtcbiAgY2FwdGNoYV90b2tlbjogc3RyaW5nXG4gIGV4cGlyZXNfaW46IG51bWJlclxuICBleHBpcmVzX2F0PzogRGF0ZSB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FwdGNoYVJlcXVlc3RPcHRpb25zIGV4dGVuZHMgQXV0aENsaWVudFJlcXVlc3RPcHRpb25zIHtcbiAgd2l0aENhcHRjaGE/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldENhcHRjaGFSZXNwb25zZSB7XG4gIGNhcHRjaGFfdG9rZW4/OiBzdHJpbmdcbiAgZXhwaXJlc19pbj86IG51bWJlclxuICB1cmw/OiBzdHJpbmdcbn1cblxuY29uc3QgR0VUX0NBUFRDSEFfVVJMID0gJy9hdXRoL3YxL2NhcHRjaGEvaW5pdCdcblxuZXhwb3J0IGNsYXNzIENhcHRjaGEge1xuICBwcml2YXRlIGNvbmZpZzogQ2FwdGNoYU9wdGlvbnNcbiAgcHJpdmF0ZSB0b2tlblNlY3Rpb25OYW1lOiBzdHJpbmdcblxuICAvKipcbiAgICogY29uc3RydWN0b3JcbiAgICogQHBhcmFtIHtDYXB0Y2hhT3B0aW9uc30gb3B0c1xuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0czogQ2FwdGNoYU9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdHMub3BlblVSSVdpdGhDYWxsYmFjaykge1xuICAgICAgb3B0cy5vcGVuVVJJV2l0aENhbGxiYWNrID0gdGhpcy5nZXREZWZhdWx0T3BlblVSSVdpdGhDYWxsYmFjaygpXG4gICAgfVxuICAgIGlmICghb3B0cy5zdG9yYWdlKSB7XG4gICAgICBvcHRzLnN0b3JhZ2UgPSBkZWZhdWx0U3RvcmFnZVxuICAgIH1cbiAgICB0aGlzLmNvbmZpZyA9IG9wdHNcbiAgICB0aGlzLnRva2VuU2VjdGlvbk5hbWUgPSBgY2FwdGNoYV8ke29wdHMuY2xpZW50SWR9YFxuICB9XG5cbiAgLyoqXG4gICAqIHJlcXVlc3QgaHR0cCBsaWtlIHNpbXBsZSBmZXRjaCBhcGksIGV4cDpyZXF1ZXN0KCcvdjEvdXNlci9tZScsIHt3aXRoQ3JlZGVudGlhbHM6dHJ1ZX0pXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1cmxcbiAgICogQHBhcmFtIHtBdXRoQ2xpZW50UmVxdWVzdE9wdGlvbnN9IG9wdGlvbnNcbiAgICovXG4gIHB1YmxpYyBhc3luYyByZXF1ZXN0PFQ+KFxuICAgIHVybDogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBDYXB0Y2hhUmVxdWVzdE9wdGlvbnMsXG4gICk6IFByb21pc2U8VD4ge1xuICAgIGlmICghb3B0aW9ucykge1xuICAgICAgb3B0aW9ucyA9IHt9XG4gICAgfVxuICAgIGlmICghb3B0aW9ucy5tZXRob2QpIHtcbiAgICAgIG9wdGlvbnMubWV0aG9kID0gJ0dFVCdcbiAgICB9XG4gICAgY29uc3Qgc3RhdGUgPSBgJHtvcHRpb25zLm1ldGhvZH06JHt1cmx9YFxuICAgIGxldCByZXFVUkwgPSB1cmxcbiAgICBpZiAob3B0aW9ucy53aXRoQ2FwdGNoYSkge1xuICAgICAgcmVxVVJMID0gYXdhaXQgdGhpcy5hcHBlbmRDYXB0Y2hhVG9rZW5Ub1VSTCh1cmwsIHN0YXRlLCBmYWxzZSlcbiAgICB9XG5cbiAgICBsZXQgcmVzcDogVFxuICAgIHRyeSB7XG4gICAgICByZXNwID0gYXdhaXQgdGhpcy5jb25maWcucmVxdWVzdDxUPihyZXFVUkwsIG9wdGlvbnMpXG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpZiAoZXJyLmVycm9yID09PSAnY2FwdGNoYV9yZXF1aXJlZCcgfHwgZXJyLmVycm9yID09PSAnY2FwdGNoYV9pbnZhbGlkJykge1xuICAgICAgICB1cmwgPSBhd2FpdCB0aGlzLmFwcGVuZENhcHRjaGFUb2tlblRvVVJMKHVybCwgc3RhdGUsIGVyci5lcnJvciA9PT0gJ2NhcHRjaGFfaW52YWxpZCcpXG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PFQ+KHVybCwgb3B0aW9ucylcbiAgICAgIH1cbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnIpXG4gICAgfVxuICAgIHJldHVybiByZXNwXG4gIH1cblxuICBwcml2YXRlIGdldERlZmF1bHRPcGVuVVJJV2l0aENhbGxiYWNrKCk6IE9wZW5VUklXaXRoQ2FsbGJhY2tGdWN0aW9uIHtcbiAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaC5pbmRleE9mKCdfX2NhcHRjaGEnKSA+IDApIHtcbiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuZGlzcGxheSA9ICdub25lJ1xuICAgIH1cbiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhcHRjaGFfcGFuZWxfd3JhcCcpID09PSBudWxsKSB7XG4gICAgICBjb25zdCBlbGVtZW50RGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgICAgIGVsZW1lbnREaXYuc3R5bGUuY3NzVGV4dCA9ICAgICAgICAnYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjcpO3Bvc2l0aW9uOiBmaXhlZDtsZWZ0OiAwcHg7cmlnaHQ6IDBweDt0b3A6IDBweDtib3R0b206IDBweDtwYWRkaW5nOiA5dncgMCAwIDA7ZGlzcGxheTogbm9uZTt6LWluZGV4OjEwMDsnXG4gICAgICBlbGVtZW50RGl2LnNldEF0dHJpYnV0ZSgnaWQnLCAnY2FwdGNoYV9wYW5lbF93cmFwJylcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnREaXYpXG4gICAgICB9LCAwKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0T3BlblVSSVdpdGhDYWxsYmFja1xuICB9XG5cbiAgLyoqXG4gICAqIOm7mOiupOmAmui/h+a1j+iniOWZqOaJk+W8gOe9kemhteW5tuiOt+WPluWbnuiwg1xuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBkZWZhdWx0T3BlblVSSVdpdGhDYWxsYmFjayh1cmw6IHN0cmluZyk6IFByb21pc2U8Q2FwdGNoYVRva2VuPiB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhcHRjaGFfcGFuZWxfd3JhcCcpXG4gICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJylcbiAgICB0YXJnZXQuaW5uZXJIVE1MID0gJydcbiAgICBpZnJhbWUuc2V0QXR0cmlidXRlKCdzcmMnLCB1cmwpXG4gICAgaWZyYW1lLnNldEF0dHJpYnV0ZSgnaWQnLCAncmV2aWV3LXBhbmVsLWlmcmFtZScpXG4gICAgaWZyYW1lLnN0eWxlLmNzc1RleHQgPSAnbWluLXdpZHRoOjM1NXB4O2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjM1NXB4O21hcmdpbjowIGF1dG87YmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpO2JvcmRlcjogbm9uZTsnXG4gICAgdGFyZ2V0LmFwcGVuZENoaWxkKGlmcmFtZSlcbiAgICB0YXJnZXQuc3R5bGUuZGlzcGxheSA9ICdibG9jaydcbiAgICByZXR1cm4gbmV3IFByb21pc2U8Q2FwdGNoYVRva2VuPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZnJhbWUub25sb2FkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHdpbmRvd0xvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uXG4gICAgICAgICAgY29uc3QgaWZyYW1lTG9jYXRpb24gPSBpZnJhbWUuY29udGVudFdpbmRvdy5sb2NhdGlvblxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGlmcmFtZUxvY2F0aW9uLmhvc3RcbiAgICAgICAgICAgICsgaWZyYW1lTG9jYXRpb24ucGF0aG5hbWVcbiAgICAgICAgICAgID09PSB3aW5kb3dMb2NhdGlvbi5ob3N0XG4gICAgICAgICAgICArIHdpbmRvd0xvY2F0aW9uLnBhdGhuYW1lXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0YXJnZXQuc3R5bGUuZGlzcGxheSA9ICdub25lJ1xuICAgICAgICAgICAgY29uc3QgaWZyYW1lVXJsUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhpZnJhbWVMb2NhdGlvbi5zZWFyY2gpXG4gICAgICAgICAgICBjb25zdCBjYXB0Y2hUb2tlbiA9IGlmcmFtZVVybFBhcmFtcy5nZXQoJ2NhcHRjaGFfdG9rZW4nKVxuICAgICAgICAgICAgaWYgKGNhcHRjaFRva2VuKSB7XG4gICAgICAgICAgICAgIHJldHVybiByZXNvbHZlKHtcbiAgICAgICAgICAgICAgICBjYXB0Y2hhX3Rva2VuOiBjYXB0Y2hUb2tlbixcbiAgICAgICAgICAgICAgICBleHBpcmVzX2luOiBOdW1iZXIoaWZyYW1lVXJsUGFyYW1zLmdldCgnZXhwaXJlc19pbicpKSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZWplY3Qoe1xuICAgICAgICAgICAgICBlcnJvcjogaWZyYW1lVXJsUGFyYW1zLmdldCgnZXJyb3InKSxcbiAgICAgICAgICAgICAgZXJyb3JfZGVzY3JpcHRpb246IGlmcmFtZVVybFBhcmFtcy5nZXQoJ2Vycm9yX2Rlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgICB0YXJnZXQuc3R5bGUuZGlzcGxheSA9ICdibG9jaydcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICB0YXJnZXQuc3R5bGUuZGlzcGxheSA9ICdibG9jaydcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gIH1cbiAgLyoqXG4gICAqIGdldENhcHRjaGFUb2tlbiDojrflj5ZjYXB0Y2hhVG9rZW5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZ2V0Q2FwdGNoYVRva2VuKGZvcmNlTmV3VG9rZW46IGJvb2xlYW4sIHN0YXRlOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmICghZm9yY2VOZXdUb2tlbikge1xuICAgICAgLy8g5aaC5p6c5pys5Zyw5a2Y5Zyo77yM5YiZ55u05o6l6L+U5ZueXG4gICAgICBjb25zdCBjYXB0Y2hhVG9rZW4gPSBhd2FpdCB0aGlzLmZpbmRDYXB0Y2hhVG9rZW4oKVxuICAgICAgaWYgKGNhcHRjaGFUb2tlbikge1xuICAgICAgICByZXR1cm4gY2FwdGNoYVRva2VuXG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHJlZGlyZWN0VVJMID0gYCR7d2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZX0/X19jYXB0Y2hhPW9uYFxuICAgIGNvbnN0IGNhcHRjaGFUb2tlblJlc3AgPSBhd2FpdCB0aGlzLmNvbmZpZy5yZXF1ZXN0PEdldENhcHRjaGFSZXNwb25zZT4oR0VUX0NBUFRDSEFfVVJMLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IHtcbiAgICAgICAgY2xpZW50X2lkOiB0aGlzLmNvbmZpZy5jbGllbnRJZCxcbiAgICAgICAgcmVkaXJlY3RfdXJpOiByZWRpcmVjdFVSTCxcbiAgICAgICAgc3RhdGUsXG4gICAgICB9LFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiBmYWxzZSxcbiAgICB9KVxuICAgIGlmIChjYXB0Y2hhVG9rZW5SZXNwLmNhcHRjaGFfdG9rZW4pIHtcbiAgICAgIGNvbnN0IGNhcHRjaGFUb2tlbiA9IHtcbiAgICAgICAgY2FwdGNoYV90b2tlbjogY2FwdGNoYVRva2VuUmVzcC5jYXB0Y2hhX3Rva2VuLFxuICAgICAgICBleHBpcmVzX2luOiBjYXB0Y2hhVG9rZW5SZXNwLmV4cGlyZXNfaW4sXG4gICAgICB9XG4gICAgICB0aGlzLnNhdmVDYXB0Y2hhVG9rZW4oY2FwdGNoYVRva2VuKVxuICAgICAgcmV0dXJuIGNhcHRjaGFUb2tlblJlc3AuY2FwdGNoYV90b2tlblxuICAgIH1cbiAgICBjb25zdCBjYXB0Y2hhVG9rZW4gPSBhd2FpdCB0aGlzLmNvbmZpZy5vcGVuVVJJV2l0aENhbGxiYWNrKGNhcHRjaGFUb2tlblJlc3AudXJsKVxuICAgIHRoaXMuc2F2ZUNhcHRjaGFUb2tlbihjYXB0Y2hhVG9rZW4pXG4gICAgcmV0dXJuIGNhcHRjaGFUb2tlbi5jYXB0Y2hhX3Rva2VuXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGFwcGVuZENhcHRjaGFUb2tlblRvVVJMKHVybDogc3RyaW5nLCBzdGF0ZTogc3RyaW5nLCBmb3JjZU5ld1Rva2VuOiBib29sZWFuKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBjYXB0Y2hhVG9rZW4gPSBhd2FpdCB0aGlzLmdldENhcHRjaGFUb2tlbihmb3JjZU5ld1Rva2VuLCBzdGF0ZSlcbiAgICBpZiAodXJsLmluZGV4T2YoJz8nKSA+IDApIHtcbiAgICAgIHVybCArPSBgJmNhcHRjaGFfdG9rZW49JHtjYXB0Y2hhVG9rZW59YFxuICAgIH0gZWxzZSB7XG4gICAgICB1cmwgKz0gYD9jYXB0Y2hhX3Rva2VuPSR7Y2FwdGNoYVRva2VufWBcbiAgICB9XG4gICAgcmV0dXJuIHVybFxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzYXZlQ2FwdGNoYVRva2VuKHRva2VuOiBDYXB0Y2hhVG9rZW4pIHtcbiAgICB0b2tlbi5leHBpcmVzX2F0ID0gbmV3IERhdGUoRGF0ZS5ub3coKSArICh0b2tlbi5leHBpcmVzX2luIC0gMTApICogMTAwMCwpXG4gICAgY29uc3QgdG9rZW5TdHI6IHN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHRva2VuKVxuICAgIGF3YWl0IHRoaXMuY29uZmlnLnN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnRva2VuU2VjdGlvbk5hbWUsIHRva2VuU3RyKVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBmaW5kQ2FwdGNoYVRva2VuKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgdG9rZW5TdHI6IHN0cmluZyA9IGF3YWl0IHRoaXMuY29uZmlnLnN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnRva2VuU2VjdGlvbk5hbWUsKVxuICAgIGlmICh0b2tlblN0ciAhPT0gdW5kZWZpbmVkICYmIHRva2VuU3RyICE9PSBudWxsKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBjYXB0Y2hhVG9rZW4gPSBKU09OLnBhcnNlKHRva2VuU3RyKVxuICAgICAgICBpZiAoY2FwdGNoYVRva2VuPy5leHBpcmVzX2F0KSB7XG4gICAgICAgICAgY2FwdGNoYVRva2VuLmV4cGlyZXNfYXQgPSBuZXcgRGF0ZShjYXB0Y2hhVG9rZW4uZXhwaXJlc19hdClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpc0V4cGlyZWQgPSBjYXB0Y2hhVG9rZW4uZXhwaXJlc19hdCA8IG5ldyBEYXRlKClcbiAgICAgICAgaWYgKGlzRXhwaXJlZCkge1xuICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNhcHRjaGFUb2tlbi5jYXB0Y2hhX3Rva2VuXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBhd2FpdCB0aGlzLmNvbmZpZy5zdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy50b2tlblNlY3Rpb25OYW1lKVxuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG4iXX0=
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwdGNoYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jYXB0Y2hhL2NhcHRjaGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsNkRBQTZEO0FBNEI3RCxJQUFNLGVBQWUsR0FBRyx1QkFBdUIsQ0FBQTtBQUUvQztJQVFFLGlCQUFZLElBQW9CO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDN0IsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFBO1NBQ2hFO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyw2QkFBYyxDQUFBO1NBQzlCO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUE7UUFDbEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGtCQUFXLElBQUksQ0FBQyxRQUFRLENBQUUsQ0FBQTtJQUNwRCxDQUFDO0lBT1kseUJBQU8sR0FBcEIsVUFDRSxHQUFXLEVBQ1gsT0FBK0I7Ozs7Ozt3QkFFL0IsSUFBSSxDQUFDLE9BQU8sRUFBRTs0QkFDWixPQUFPLEdBQUcsRUFBRSxDQUFBO3lCQUNiO3dCQUNELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFOzRCQUNuQixPQUFPLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQTt5QkFDdkI7d0JBQ0ssS0FBSyxHQUFHLFVBQUcsT0FBTyxDQUFDLE1BQU0sY0FBSSxHQUFHLENBQUUsQ0FBQTt3QkFDcEMsTUFBTSxHQUFHLEdBQUcsQ0FBQTs2QkFDWixPQUFPLENBQUMsV0FBVyxFQUFuQixjQUFtQjt3QkFDWixXQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFBOzt3QkFBOUQsTUFBTSxHQUFHLFNBQXFELENB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LGNBQUM7QUFBRCxDQUFDLEFBdExELElBc0xDO0FBdExZLDBCQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2ltcGxlU3RvcmFnZSwgUmVxdWVzdEZ1bmN0aW9uIH0gZnJvbSAnLi4vb2F1dGgyY2xpZW50L2ludGVyZmFjZSdcbmltcG9ydCB7IEF1dGhDbGllbnRSZXF1ZXN0T3B0aW9ucyB9IGZyb20gJy4uL29hdXRoMmNsaWVudC9tb2RlbHMnXG5pbXBvcnQgeyBkZWZhdWx0U3RvcmFnZSB9IGZyb20gJy4uL29hdXRoMmNsaWVudC9vYXV0aDJjbGllbnQnXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FwdGNoYU9wdGlvbnMge1xuICBjbGllbnRJZDogc3RyaW5nXG4gIHJlcXVlc3Q6IFJlcXVlc3RGdW5jdGlvbjtcbiAgc3RvcmFnZTogU2ltcGxlU3RvcmFnZTtcbiAgLy8g5omT5byA572R6aG15bm26YCa6L+HVVJM5Zue6LCD6I635Y+WIENhcHRjaGFUb2tlbu+8jOmSiOWvueS4jemAmueahOW5s+WPsO+8jOivpeWHveaVsOWPr+S7peiHquWumuS5ieWunueOsCwg6buY6K6k6ZuG5oiQ5rWP6KeI5Zmo56uv6K6k6K+BXG4gIG9wZW5VUklXaXRoQ2FsbGJhY2s/OiBPcGVuVVJJV2l0aENhbGxiYWNrRnVjdGlvbjtcbn1cblxudHlwZSBPcGVuVVJJV2l0aENhbGxiYWNrRnVjdGlvbiA9ICh1cmw6IHN0cmluZykgPT4gUHJvbWlzZTxDYXB0Y2hhVG9rZW4+O1xuXG5leHBvcnQgaW50ZXJmYWNlIENhcHRjaGFUb2tlbiB7XG4gIGNhcHRjaGFfdG9rZW46IHN0cmluZ1xuICBleHBpcmVzX2luOiBudW1iZXJcbiAgZXhwaXJlc19hdD86IERhdGUgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhcHRjaGFSZXF1ZXN0T3B0aW9ucyBleHRlbmRzIEF1dGhDbGllbnRSZXF1ZXN0T3B0aW9ucyB7XG4gIHdpdGhDYXB0Y2hhPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRDYXB0Y2hhUmVzcG9uc2Uge1xuICBjYXB0Y2hhX3Rva2VuPzogc3RyaW5nXG4gIGV4cGlyZXNfaW4/OiBudW1iZXJcbiAgdXJsPzogc3RyaW5nXG59XG5cbmNvbnN0IEdFVF9DQVBUQ0hBX1VSTCA9ICcvYXV0aC92MS9jYXB0Y2hhL2luaXQnXG5cbmV4cG9ydCBjbGFzcyBDYXB0Y2hhIHtcbiAgcHJpdmF0ZSBjb25maWc6IENhcHRjaGFPcHRpb25zXG4gIHByaXZhdGUgdG9rZW5TZWN0aW9uTmFtZTogc3RyaW5nXG5cbiAgLyoqXG4gICAqIGNvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSB7Q2FwdGNoYU9wdGlvbnN9IG9wdHNcbiAgICovXG4gIGNvbnN0cnVjdG9yKG9wdHM6IENhcHRjaGFPcHRpb25zKSB7XG4gICAgaWYgKCFvcHRzLm9wZW5VUklXaXRoQ2FsbGJhY2spIHtcbiAgICAgIG9wdHMub3BlblVSSVdpdGhDYWxsYmFjayA9IHRoaXMuZ2V0RGVmYXVsdE9wZW5VUklXaXRoQ2FsbGJhY2soKVxuICAgIH1cbiAgICBpZiAoIW9wdHMuc3RvcmFnZSkge1xuICAgICAgb3B0cy5zdG9yYWdlID0gZGVmYXVsdFN0b3JhZ2VcbiAgICB9XG4gICAgdGhpcy5jb25maWcgPSBvcHRzXG4gICAgdGhpcy50b2tlblNlY3Rpb25OYW1lID0gYGNhcHRjaGFfJHtvcHRzLmNsaWVudElkfWBcbiAgfVxuXG4gIC8qKlxuICAgKiByZXF1ZXN0IGh0dHAgbGlrZSBzaW1wbGUgZmV0Y2ggYXBpLCBleHA6cmVxdWVzdCgnL3YxL3VzZXIvbWUnLCB7d2l0aENyZWRlbnRpYWxzOnRydWV9KVxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsXG4gICAqIEBwYXJhbSB7QXV0aENsaWVudFJlcXVlc3RPcHRpb25zfSBvcHRpb25zXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVxdWVzdDxUPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBvcHRpb25zPzogQ2FwdGNoYVJlcXVlc3RPcHRpb25zLFxuICApOiBQcm9taXNlPFQ+IHtcbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgIG9wdGlvbnMgPSB7fVxuICAgIH1cbiAgICBpZiAoIW9wdGlvbnMubWV0aG9kKSB7XG4gICAgICBvcHRpb25zLm1ldGhvZCA9ICdHRVQnXG4gICAgfVxuICAgIGNvbnN0IHN0YXRlID0gYCR7b3B0aW9ucy5tZXRob2R9OiR7dXJsfWBcbiAgICBsZXQgcmVxVVJMID0gdXJsXG4gICAgaWYgKG9wdGlvbnMud2l0aENhcHRjaGEpIHtcbiAgICAgIHJlcVVSTCA9IGF3YWl0IHRoaXMuYXBwZW5kQ2FwdGNoYVRva2VuVG9VUkwodXJsLCBzdGF0ZSwgZmFsc2UpXG4gICAgfVxuXG4gICAgbGV0IHJlc3A6IFRcbiAgICB0cnkge1xuICAgICAgcmVzcCA9IGF3YWl0IHRoaXMuY29uZmlnLnJlcXVlc3Q8VD4ocmVxVVJMLCBvcHRpb25zKVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKGVyci5lcnJvciA9PT0gJ2NhcHRjaGFfcmVxdWlyZWQnIHx8IGVyci5lcnJvciA9PT0gJ2NhcHRjaGFfaW52YWxpZCcpIHtcbiAgICAgICAgdXJsID0gYXdhaXQgdGhpcy5hcHBlbmRDYXB0Y2hhVG9rZW5Ub1VSTCh1cmwsIHN0YXRlLCBlcnIuZXJyb3IgPT09ICdjYXB0Y2hhX2ludmFsaWQnKVxuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxUPih1cmwsIG9wdGlvbnMpXG4gICAgICB9XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyKVxuICAgIH1cbiAgICByZXR1cm4gcmVzcFxuICB9XG5cbiAgcHJpdmF0ZSBnZXREZWZhdWx0T3BlblVSSVdpdGhDYWxsYmFjaygpOiBPcGVuVVJJV2l0aENhbGxiYWNrRnVjdGlvbiB7XG4gICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guaW5kZXhPZignX19jYXB0Y2hhJykgPiAwKSB7XG4gICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSdcbiAgICB9XG4gICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYXB0Y2hhX3BhbmVsX3dyYXAnKSA9PT0gbnVsbCkge1xuICAgICAgY29uc3QgZWxlbWVudERpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gICAgICBlbGVtZW50RGl2LnN0eWxlLmNzc1RleHQgPSAgICAgICAgJ2JhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KTtwb3NpdGlvbjogZml4ZWQ7bGVmdDogMHB4O3JpZ2h0OiAwcHg7dG9wOiAwcHg7Ym90dG9tOiAwcHg7cGFkZGluZzogOXZ3IDAgMCAwO2Rpc3BsYXk6IG5vbmU7ei1pbmRleDoxMDA7J1xuICAgICAgZWxlbWVudERpdi5zZXRBdHRyaWJ1dGUoJ2lkJywgJ2NhcHRjaGFfcGFuZWxfd3JhcCcpXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50RGl2KVxuICAgICAgfSwgMClcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdE9wZW5VUklXaXRoQ2FsbGJhY2tcbiAgfVxuXG4gIC8qKlxuICAgKiDpu5jorqTpgJrov4fmtY/op4jlmajmiZPlvIDnvZHpobXlubbojrflj5blm57osINcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZGVmYXVsdE9wZW5VUklXaXRoQ2FsbGJhY2sodXJsOiBzdHJpbmcpOiBQcm9taXNlPENhcHRjaGFUb2tlbj4ge1xuICAgIGNvbnN0IHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYXB0Y2hhX3BhbmVsX3dyYXAnKVxuICAgIGNvbnN0IGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpXG4gICAgdGFyZ2V0LmlubmVySFRNTCA9ICcnXG4gICAgaWZyYW1lLnNldEF0dHJpYnV0ZSgnc3JjJywgdXJsKVxuICAgIGlmcmFtZS5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3Jldmlldy1wYW5lbC1pZnJhbWUnKVxuICAgIGlmcmFtZS5zdHlsZS5jc3NUZXh0ID0gJ21pbi13aWR0aDozNTVweDtkaXNwbGF5OmJsb2NrO2hlaWdodDozNTVweDttYXJnaW46MCBhdXRvO2JhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTtib3JkZXI6IG5vbmU7J1xuICAgIHRhcmdldC5hcHBlbmRDaGlsZChpZnJhbWUpXG4gICAgdGFyZ2V0LnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPENhcHRjaGFUb2tlbj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWZyYW1lLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB3aW5kb3dMb2NhdGlvbiA9IHdpbmRvdy5sb2NhdGlvblxuICAgICAgICAgIGNvbnN0IGlmcmFtZUxvY2F0aW9uID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cubG9jYXRpb25cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBpZnJhbWVMb2NhdGlvbi5ob3N0XG4gICAgICAgICAgICArIGlmcmFtZUxvY2F0aW9uLnBhdGhuYW1lXG4gICAgICAgICAgICA9PT0gd2luZG93TG9jYXRpb24uaG9zdFxuICAgICAgICAgICAgKyB3aW5kb3dMb2NhdGlvbi5wYXRobmFtZVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGFyZ2V0LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSdcbiAgICAgICAgICAgIGNvbnN0IGlmcmFtZVVybFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoaWZyYW1lTG9jYXRpb24uc2VhcmNoKVxuICAgICAgICAgICAgY29uc3QgY2FwdGNoVG9rZW4gPSBpZnJhbWVVcmxQYXJhbXMuZ2V0KCdjYXB0Y2hhX3Rva2VuJylcbiAgICAgICAgICAgIGlmIChjYXB0Y2hUb2tlbikge1xuICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZSh7XG4gICAgICAgICAgICAgICAgY2FwdGNoYV90b2tlbjogY2FwdGNoVG9rZW4sXG4gICAgICAgICAgICAgICAgZXhwaXJlc19pbjogTnVtYmVyKGlmcmFtZVVybFBhcmFtcy5nZXQoJ2V4cGlyZXNfaW4nKSksXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVqZWN0KHtcbiAgICAgICAgICAgICAgZXJyb3I6IGlmcmFtZVVybFBhcmFtcy5nZXQoJ2Vycm9yJyksXG4gICAgICAgICAgICAgIGVycm9yX2Rlc2NyaXB0aW9uOiBpZnJhbWVVcmxQYXJhbXMuZ2V0KCdlcnJvcl9kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgICAgdGFyZ2V0LnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgdGFyZ2V0LnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICB9XG4gIC8qKlxuICAgKiBnZXRDYXB0Y2hhVG9rZW4g6I635Y+WY2FwdGNoYVRva2VuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGdldENhcHRjaGFUb2tlbihmb3JjZU5ld1Rva2VuOiBib29sZWFuLCBzdGF0ZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBpZiAoIWZvcmNlTmV3VG9rZW4pIHtcbiAgICAgIC8vIOWmguaenOacrOWcsOWtmOWcqO+8jOWImeebtOaOpei/lOWbnlxuICAgICAgY29uc3QgY2FwdGNoYVRva2VuID0gYXdhaXQgdGhpcy5maW5kQ2FwdGNoYVRva2VuKClcbiAgICAgIGlmIChjYXB0Y2hhVG9rZW4pIHtcbiAgICAgICAgcmV0dXJuIGNhcHRjaGFUb2tlblxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCByZWRpcmVjdFVSTCA9IGAke3dpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWV9P19fY2FwdGNoYT1vbmBcbiAgICBjb25zdCBjYXB0Y2hhVG9rZW5SZXNwID0gYXdhaXQgdGhpcy5jb25maWcucmVxdWVzdDxHZXRDYXB0Y2hhUmVzcG9uc2U+KEdFVF9DQVBUQ0hBX1VSTCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiB7XG4gICAgICAgIGNsaWVudF9pZDogdGhpcy5jb25maWcuY2xpZW50SWQsXG4gICAgICAgIHJlZGlyZWN0X3VyaTogcmVkaXJlY3RVUkwsXG4gICAgICAgIHN0YXRlLFxuICAgICAgfSxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogZmFsc2UsXG4gICAgfSlcbiAgICBpZiAoY2FwdGNoYVRva2VuUmVzcC5jYXB0Y2hhX3Rva2VuKSB7XG4gICAgICBjb25zdCBjYXB0Y2hhVG9rZW4gPSB7XG4gICAgICAgIGNhcHRjaGFfdG9rZW46IGNhcHRjaGFUb2tlblJlc3AuY2FwdGNoYV90b2tlbixcbiAgICAgICAgZXhwaXJlc19pbjogY2FwdGNoYVRva2VuUmVzcC5leHBpcmVzX2luLFxuICAgICAgfVxuICAgICAgdGhpcy5zYXZlQ2FwdGNoYVRva2VuKGNhcHRjaGFUb2tlbilcbiAgICAgIHJldHVybiBjYXB0Y2hhVG9rZW5SZXNwLmNhcHRjaGFfdG9rZW5cbiAgICB9XG4gICAgY29uc3QgY2FwdGNoYVRva2VuID0gYXdhaXQgdGhpcy5jb25maWcub3BlblVSSVdpdGhDYWxsYmFjayhjYXB0Y2hhVG9rZW5SZXNwLnVybClcbiAgICB0aGlzLnNhdmVDYXB0Y2hhVG9rZW4oY2FwdGNoYVRva2VuKVxuICAgIHJldHVybiBjYXB0Y2hhVG9rZW4uY2FwdGNoYV90b2tlblxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBhcHBlbmRDYXB0Y2hhVG9rZW5Ub1VSTCh1cmw6IHN0cmluZywgc3RhdGU6IHN0cmluZywgZm9yY2VOZXdUb2tlbjogYm9vbGVhbik6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgY2FwdGNoYVRva2VuID0gYXdhaXQgdGhpcy5nZXRDYXB0Y2hhVG9rZW4oZm9yY2VOZXdUb2tlbiwgc3RhdGUpXG4gICAgaWYgKHVybC5pbmRleE9mKCc/JykgPiAwKSB7XG4gICAgICB1cmwgKz0gYCZjYXB0Y2hhX3Rva2VuPSR7Y2FwdGNoYVRva2VufWBcbiAgICB9IGVsc2Uge1xuICAgICAgdXJsICs9IGA/Y2FwdGNoYV90b2tlbj0ke2NhcHRjaGFUb2tlbn1gXG4gICAgfVxuICAgIHJldHVybiB1cmxcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2F2ZUNhcHRjaGFUb2tlbih0b2tlbjogQ2FwdGNoYVRva2VuKSB7XG4gICAgdG9rZW4uZXhwaXJlc19hdCA9IG5ldyBEYXRlKERhdGUubm93KCkgKyAodG9rZW4uZXhwaXJlc19pbiAtIDEwKSAqIDEwMDAsKVxuICAgIGNvbnN0IHRva2VuU3RyOiBzdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0b2tlbilcbiAgICBhd2FpdCB0aGlzLmNvbmZpZy5zdG9yYWdlLnNldEl0ZW0odGhpcy50b2tlblNlY3Rpb25OYW1lLCB0b2tlblN0cilcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZmluZENhcHRjaGFUb2tlbigpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHRva2VuU3RyOiBzdHJpbmcgPSBhd2FpdCB0aGlzLmNvbmZpZy5zdG9yYWdlLmdldEl0ZW0odGhpcy50b2tlblNlY3Rpb25OYW1lLClcbiAgICBpZiAodG9rZW5TdHIgIT09IHVuZGVmaW5lZCAmJiB0b2tlblN0ciAhPT0gbnVsbCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY2FwdGNoYVRva2VuID0gSlNPTi5wYXJzZSh0b2tlblN0cilcbiAgICAgICAgaWYgKGNhcHRjaGFUb2tlbj8uZXhwaXJlc19hdCkge1xuICAgICAgICAgIGNhcHRjaGFUb2tlbi5leHBpcmVzX2F0ID0gbmV3IERhdGUoY2FwdGNoYVRva2VuLmV4cGlyZXNfYXQpXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXNFeHBpcmVkID0gY2FwdGNoYVRva2VuLmV4cGlyZXNfYXQgPCBuZXcgRGF0ZSgpXG4gICAgICAgIGlmIChpc0V4cGlyZWQpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjYXB0Y2hhVG9rZW4uY2FwdGNoYV90b2tlblxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5jb25maWcuc3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMudG9rZW5TZWN0aW9uTmFtZSlcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxufVxuIl19
|
package/dist/cjs/index.js
CHANGED
|
@@ -12,7 +12,11 @@ var __assign = (this && this.__assign) || function () {
|
|
|
12
12
|
};
|
|
13
13
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
14
|
if (k2 === undefined) k2 = k;
|
|
15
|
-
Object.
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
16
20
|
}) : (function(o, m, k, k2) {
|
|
17
21
|
if (k2 === undefined) k2 = k;
|
|
18
22
|
o[k2] = m[k];
|
|
@@ -25,12 +29,12 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
25
29
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
26
30
|
if (mod && mod.__esModule) return mod;
|
|
27
31
|
var result = {};
|
|
28
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
32
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
29
33
|
__setModuleDefault(result, mod);
|
|
30
34
|
return result;
|
|
31
35
|
};
|
|
32
36
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33
|
-
exports.CloudbaseOAuth = exports.authModels = void 0;
|
|
37
|
+
exports.CloudbaseOAuth = exports.authModels = exports.Auth = exports.AuthClient = exports.OAuth2Client = exports.generateRequestId = exports.toResponseError = exports.defaultRequest = exports.defaultStorage = exports.ErrorType = exports.Syntax = void 0;
|
|
34
38
|
var oauth2client_1 = require("./oauth2client/oauth2client");
|
|
35
39
|
var apis_1 = require("./auth/apis");
|
|
36
40
|
var authModels = __importStar(require("./auth/models"));
|
|
@@ -63,4 +67,4 @@ var CloudbaseOAuth = (function () {
|
|
|
63
67
|
return CloudbaseOAuth;
|
|
64
68
|
}());
|
|
65
69
|
exports.CloudbaseOAuth = CloudbaseOAuth;
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDREQUEwRDtBQUUxRCxvQ0FBK0M7QUFFL0Msd0RBQTJDO0FBdUJsQyxnQ0FBVTtBQXJCbkIsZ0RBQXlEO0FBQWhELGdHQUFBLE1BQU0sT0FBQTtBQUFFLG1HQUFBLFNBQVMsT0FBQTtBQUUxQiw0REFPb0M7QUFObEMsOEdBQUEsY0FBYyxPQUFBO0FBQ2QsOEdBQUEsY0FBYyxPQUFBO0FBRWQsK0dBQUEsZUFBZSxPQUFBO0FBQ2YsaUhBQUEsaUJBQWlCLE9BQUE7QUFDakIsNEdBQUEsWUFBWSxPQUFBO0FBR2Qsc0RBQW9FO0FBQTNELHVHQUFBLFVBQVUsT0FBQTtBQVNuQixvQ0FBK0M7QUFBekIsNEZBQUEsSUFBSSxPQUFBO0FBSTFCO0lBSUUsd0JBQVksV0FBd0I7UUFDMUIsSUFBQSxTQUFTLEdBQXNELFdBQVcsVUFBakUsRUFBRSxRQUFRLEdBQTRDLFdBQVcsU0FBdkQsRUFBRSxPQUFPLEdBQW1DLFdBQVcsUUFBOUMsRUFBRSxPQUFPLEdBQTBCLFdBQVcsUUFBckMsRUFBRSxtQkFBbUIsR0FBSyxXQUFXLG9CQUFoQixDQUFnQjtRQUNsRixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksMkJBQVksQ0FBQztZQUNuQyxTQUFTLFdBQUE7WUFDVCxRQUFRLFVBQUE7WUFDUixPQUFPLFNBQUE7WUFDUCxXQUFXLEVBQUUsT0FBTztZQUNwQixtQkFBbUIscUJBQUE7U0FDcEIsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLFdBQUkscUJBQ3JCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxZQUFZLElBQ2pDLFdBQVcsS0FFZCxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQ2hGLENBQUE7SUFDSixDQUFDO0lBQ0gscUJBQUM7QUFBRCxDQUFDLEFBckJELElBcUJDO0FBckJZLHdDQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT0F1dGgyQ2xpZW50IH0gZnJvbSAnLi9vYXV0aDJjbGllbnQvb2F1dGgyY2xpZW50J1xuXG5pbXBvcnQgeyBBdXRoT3B0aW9ucywgQXV0aCB9IGZyb20gJy4vYXV0aC9hcGlzJ1xuXG5pbXBvcnQgKiBhcyBhdXRoTW9kZWxzIGZyb20gJy4vYXV0aC9tb2RlbHMnXG5cbmV4cG9ydCB7IFN5bnRheCwgRXJyb3JUeXBlIH0gZnJvbSAnLi9vYXV0aDJjbGllbnQvY29uc3RzJ1xuXG5leHBvcnQge1xuICBkZWZhdWx0U3RvcmFnZSxcbiAgZGVmYXVsdFJlcXVlc3QsXG4gIFRvUmVzcG9uc2VFcnJvck9wdGlvbnMsXG4gIHRvUmVzcG9uc2VFcnJvcixcbiAgZ2VuZXJhdGVSZXF1ZXN0SWQsXG4gIE9BdXRoMkNsaWVudCxcbn0gZnJvbSAnLi9vYXV0aDJjbGllbnQvb2F1dGgyY2xpZW50J1xuXG5leHBvcnQgeyBBdXRoQ2xpZW50LCBTaW1wbGVTdG9yYWdlIH0gZnJvbSAnLi9vYXV0aDJjbGllbnQvaW50ZXJmYWNlJ1xuXG5leHBvcnQge1xuICBDcmVkZW50aWFscyxcbiAgUmVzcG9uc2VFcnJvcixcbiAgT0F1dGgyQ2xpZW50T3B0aW9ucyxcbiAgQXV0aENsaWVudFJlcXVlc3RPcHRpb25zLFxufSBmcm9tICcuL29hdXRoMmNsaWVudC9tb2RlbHMnXG5cbmV4cG9ydCB7IEF1dGhPcHRpb25zLCBBdXRoIH0gZnJvbSAnLi9hdXRoL2FwaXMnXG5leHBvcnQgeyBhdXRoTW9kZWxzIH1cblxuXG5leHBvcnQgY2xhc3MgQ2xvdWRiYXNlT0F1dGgge1xuICBwdWJsaWMgb2F1dGgyY2xpZW50OiBPQXV0aDJDbGllbnRcbiAgcHVibGljIGF1dGhBcGk6IEF1dGhcblxuICBjb25zdHJ1Y3RvcihhdXRoT3B0aW9uczogQXV0aE9wdGlvbnMpIHtcbiAgICBjb25zdCB7IGFwaU9yaWdpbiwgY2xpZW50SWQsIHN0b3JhZ2UsIHJlcXVlc3QsIGFub255bW91c1NpZ25JbkZ1bmMgfSA9IGF1dGhPcHRpb25zXG4gICAgdGhpcy5vYXV0aDJjbGllbnQgPSBuZXcgT0F1dGgyQ2xpZW50KHtcbiAgICAgIGFwaU9yaWdpbixcbiAgICAgIGNsaWVudElkLFxuICAgICAgc3RvcmFnZSxcbiAgICAgIGJhc2VSZXF1ZXN0OiByZXF1ZXN0LFxuICAgICAgYW5vbnltb3VzU2lnbkluRnVuYyxcbiAgICB9KVxuXG4gICAgdGhpcy5hdXRoQXBpID0gbmV3IEF1dGgoe1xuICAgICAgY3JlZGVudGlhbHNDbGllbnQ6IHRoaXMub2F1dGgyY2xpZW50LFxuICAgICAgLi4uYXV0aE9wdGlvbnMsXG4gICAgICAvLyDlhbzlrrnogIHpgLvovpHvvIzmnInlgLzkvKDlhaXliJnkuI3otbBBdXRo5YaF55qE6aqM6K+B56CB6K+35rGC6YC76L6RXG4gICAgICByZXF1ZXN0OiByZXF1ZXN0ID8gdGhpcy5vYXV0aDJjbGllbnQucmVxdWVzdC5iaW5kKHRoaXMub2F1dGgyY2xpZW50KSA6IHVuZGVmaW5lZCxcbiAgICB9KVxuICB9XG59XG5cbiJdfQ==
|
|
@@ -4,7 +4,7 @@ export declare abstract class AuthClient {
|
|
|
4
4
|
abstract setCredentials(credentials?: Credentials): void;
|
|
5
5
|
abstract getAccessToken(): Promise<string>;
|
|
6
6
|
}
|
|
7
|
-
export
|
|
7
|
+
export type RequestFunction = <T>(url: string, options?: AuthClientRequestOptions) => Promise<T>;
|
|
8
8
|
export interface SimpleStorage {
|
|
9
9
|
getItem: (key: string) => Promise<string | null>;
|
|
10
10
|
removeItem: (key: string) => Promise<void>;
|
|
@@ -22,7 +22,7 @@ export interface RequestOptions {
|
|
|
22
22
|
method?: string;
|
|
23
23
|
[key: string]: any;
|
|
24
24
|
}
|
|
25
|
-
export
|
|
25
|
+
export type RequestFunction = <T>(url: string, options?: RequestOptions) => Promise<T>;
|
|
26
26
|
export interface AuthClientRequestOptions extends RequestOptions {
|
|
27
27
|
headers?: {
|
|
28
28
|
'x-request-id'?: string;
|