UNPKG

@schoolbelle/common

Version:

Demo library to showcase Angular packaging format

347 lines (339 loc) 26.8 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@schoolbelle/common/tokens'), require('@angular/common/http'), require('@schoolbelle/common/services/storage'), require('rxjs/add/operator/toPromise')) : typeof define === 'function' && define.amd ? define('@schoolbelle/common/services/auth', ['exports', '@angular/core', '@schoolbelle/common/tokens', '@angular/common/http', '@schoolbelle/common/services/storage', 'rxjs/add/operator/toPromise'], factory) : (factory((global.schoolbelle = global.schoolbelle || {}, global.schoolbelle.common = global.schoolbelle.common || {}, global.schoolbelle.common.services = global.schoolbelle.common.services || {}, global.schoolbelle.common.services.auth = {}),global.ng.core,global.schoolbelle.common.tokens,global.ng.common.http,global.schoolbelle.common.services.storage)); }(this, (function (exports,core,tokens,http,storage) { 'use strict'; /** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ var AuthService = (function () { function AuthService(http$$1, storageService, serverHost) { this.http = http$$1; this.storageService = storageService; this.serverHost = serverHost; var /** @type {?} */ type = (this.storageService.get('sbe-auth.session.type', 'session')); var /** @type {?} */ intltel = this.storageService.get('sbe-auth.session.intltel', 'session'); var /** @type {?} */ verificationCode = this.storageService.get('sbe-auth.session.verificationCode', 'session'); if (type) this.type = type; if (intltel) this.intltel = intltel; if (verificationCode) this.verificationCode = verificationCode; } Object.defineProperty(AuthService.prototype, "type", { get: /** * @return {?} */ function () { return this._type; }, set: /** * @param {?} v * @return {?} */ function (v) { this._type = v; if (v) { this.storageService.set('sbe-auth.session.type', v, 'session'); } else { this.storageService.remove('sbe-auth.session.type', 'session'); } }, enumerable: true, configurable: true }); Object.defineProperty(AuthService.prototype, "intltel", { get: /** * @return {?} */ function () { return this._intltel; }, set: /** * @param {?} v * @return {?} */ function (v) { this._intltel = v; if (v) { this.storageService.set('sbe-auth.session.intltel', v, 'session'); } else { this.storageService.remove('sbe-auth.session.intltel', 'session'); } }, enumerable: true, configurable: true }); Object.defineProperty(AuthService.prototype, "verificationCode", { get: /** * @return {?} */ function () { return this._verificationCode; }, set: /** * @param {?} v * @return {?} */ function (v) { this._verificationCode = v; if (v) { this.storageService.set('sbe-auth.session.verificationCode', v, 'session'); } else { this.storageService.remove('sbe-auth.session.verificationCode', 'session'); } }, enumerable: true, configurable: true }); /** * @return {?} */ AuthService.prototype.clear = /** * @return {?} */ function () { this.type = undefined; this.intltel = undefined; this.verificationCode = undefined; }; /** * @param {?} idtoken * @return {?} */ AuthService.prototype.saveToken = /** * @param {?} idtoken * @return {?} */ function (idtoken) { if (idtoken) { this.storageService.set(AuthService.localStorageIdTokenKey, idtoken, 'local'); } else { this.storageService.remove(AuthService.localStorageIdTokenKey, 'local'); } }; /** * @param {?=} type * @param {?=} countryDialCode * @param {?=} tel * @return {?} */ AuthService.prototype.requestCode = /** * @param {?=} type * @param {?=} countryDialCode * @param {?=} tel * @return {?} */ function (type, countryDialCode, tel) { if (type === void 0) { type = 'register'; } var /** @type {?} */ url = this.serverHost + "/verification/request_code"; return this.http .post(url, { type: type, countryDialCode: countryDialCode, tel: tel }, { responseType: 'text' }) .toPromise(); }; /** * @param {?=} type * @param {?=} countryDialCode * @param {?=} tel * @param {?=} verificationCode * @param {?=} callback_url * @return {?} */ AuthService.prototype.verifyCode = /** * @param {?=} type * @param {?=} countryDialCode * @param {?=} tel * @param {?=} verificationCode * @param {?=} callback_url * @return {?} */ function (type, countryDialCode, tel, verificationCode, callback_url) { var _this = this; if (type === void 0) { type = 'register'; } if (callback_url === void 0) { callback_url = undefined; } var /** @type {?} */ url = this.serverHost + "/verification/verify_code"; return this.http .post(url, { type: type, countryDialCode: countryDialCode, tel: tel, code: verificationCode, callback_url: callback_url }, { responseType: 'text' }) .toPromise() .then(function (token) { if (type === 'tmp' && token) { _this.saveToken(token); } return token; }); }; /** * @param {?} countryDialCode * @param {?} tel * @param {?} password * @param {?=} callback_url * @return {?} */ AuthService.prototype.login = /** * @param {?} countryDialCode * @param {?} tel * @param {?} password * @param {?=} callback_url * @return {?} */ function (countryDialCode, tel, password, callback_url) { var _this = this; if (callback_url === void 0) { callback_url = undefined; } var /** @type {?} */ url = this.serverHost + "/login"; return this.http .post(url, { countryDialCode: countryDialCode, tel: tel, password: password, callback_url: callback_url }, { responseType: 'text' }) .toPromise() .then(function (token) { _this.saveToken(token); return token; }); }; /** * @param {?} countryDialCode * @param {?} tel * @param {?} verificationCode * @param {?} name * @param {?} password * @param {?=} callback_url * @return {?} */ AuthService.prototype.register = /** * @param {?} countryDialCode * @param {?} tel * @param {?} verificationCode * @param {?} name * @param {?} password * @param {?=} callback_url * @return {?} */ function (countryDialCode, tel, verificationCode, name, password, callback_url) { var _this = this; if (callback_url === void 0) { callback_url = undefined; } var /** @type {?} */ url = this.serverHost + "/register"; return this.http .post(url, { countryDialCode: countryDialCode, tel: tel, code: verificationCode, name: name, password: password }) .toPromise() .then(function () { return _this.login(countryDialCode, tel, password, callback_url); }); }; /** * @return {?} */ AuthService.prototype.getTermsOfUse = /** * @return {?} */ function () { var /** @type {?} */ url = this.serverHost + "/legal/user_agreement"; return this.http.get(url, { responseType: 'text' }).toPromise(); }; /** * @return {?} */ AuthService.prototype.getPrivacyPolicy = /** * @return {?} */ function () { var /** @type {?} */ url = this.serverHost + "/legal/privacy_policy"; return this.http.get(url, { responseType: 'text' }).toPromise(); }; /** * @param {?} countryDialCode * @param {?} tel * @param {?} password * @return {?} */ AuthService.prototype.agreeToTerms = /** * @param {?} countryDialCode * @param {?} tel * @param {?} password * @return {?} */ function (countryDialCode, tel, password) { var /** @type {?} */ url = this.serverHost + "/legal/agree_to_terms"; return this.http .post(url, { countryDialCode: countryDialCode, tel: tel, password: password }) .toPromise(); }; AuthService.localStorageIdTokenKey = 'sbe-auth.idToken'; AuthService.decorators = [ { type: core.Injectable }, ]; /** @nocollapse */ AuthService.ctorParameters = function () { return [ { type: http.HttpClient, }, { type: storage.StorageService, }, { type: undefined, decorators: [{ type: core.Inject, args: [tokens.REST_SERVER_HOST,] },] }, ]; }; return AuthService; }()); /** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ var AuthServiceModule = (function () { function AuthServiceModule() { } /** * @return {?} */ AuthServiceModule.forRoot = /** * @return {?} */ function () { return { ngModule: AuthServiceModule, providers: [AuthService] }; }; AuthServiceModule.decorators = [ { type: core.NgModule, args: [{ imports: [http.HttpClientModule, storage.StorageServiceModule] },] }, ]; return AuthServiceModule; }()); /** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ /** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ exports.AuthService = AuthService; exports.AuthServiceModule = AuthServiceModule; Object.defineProperty(exports, '__esModule', { value: true }); }))); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nob29sYmVsbGUtY29tbW9uLXNlcnZpY2VzLWF1dGgudW1kLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9Ac2Nob29sYmVsbGUvY29tbW9uL3NlcnZpY2VzL2F1dGgvYXV0aC5zZXJ2aWNlLnRzIiwibmc6Ly9Ac2Nob29sYmVsbGUvY29tbW9uL3NlcnZpY2VzL2F1dGgvYXV0aC1zZXJ2aWNlLm1vZHVsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJFU1RfU0VSVkVSX0hPU1QgfSBmcm9tICdAc2Nob29sYmVsbGUvY29tbW9uL3Rva2Vucyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICdAc2Nob29sYmVsbGUvY29tbW9uL3NlcnZpY2VzL3N0b3JhZ2UnO1xuaW1wb3J0ICdyeGpzL2FkZC9vcGVyYXRvci90b1Byb21pc2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXV0aFNlcnZpY2Uge1xuICBzdGF0aWMgbG9jYWxTdG9yYWdlSWRUb2tlbktleSA9ICdzYmUtYXV0aC5pZFRva2VuJztcblxuICBwcml2YXRlIF90eXBlOiAncmVnaXN0ZXInIHwgJ2ZpbmRwYXNzd29yZCcgfCAndG1wJztcbiAgcHJpdmF0ZSBfaW50bHRlbDtcbiAgcHJpdmF0ZSBfdmVyaWZpY2F0aW9uQ29kZTtcbiAgZ2V0IHR5cGUoKTogJ3JlZ2lzdGVyJyB8ICdmaW5kcGFzc3dvcmQnIHwgJ3RtcCcge1xuICAgIHJldHVybiB0aGlzLl90eXBlO1xuICB9XG4gIHNldCB0eXBlKHY6ICdyZWdpc3RlcicgfCAnZmluZHBhc3N3b3JkJyB8ICd0bXAnKSB7XG4gICAgdGhpcy5fdHlwZSA9IHY7XG4gICAgaWYgKHYpIHtcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0KCdzYmUtYXV0aC5zZXNzaW9uLnR5cGUnLCB2LCAnc2Vzc2lvbicpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnJlbW92ZSgnc2JlLWF1dGguc2Vzc2lvbi50eXBlJywgJ3Nlc3Npb24nKTtcbiAgICB9XG4gIH1cbiAgZ2V0IGludGx0ZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ludGx0ZWw7XG4gIH1cbiAgc2V0IGludGx0ZWwodikge1xuICAgIHRoaXMuX2ludGx0ZWwgPSB2O1xuICAgIGlmICh2KSB7XG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldCgnc2JlLWF1dGguc2Vzc2lvbi5pbnRsdGVsJywgdiwgJ3Nlc3Npb24nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5yZW1vdmUoJ3NiZS1hdXRoLnNlc3Npb24uaW50bHRlbCcsICdzZXNzaW9uJyk7XG4gICAgfVxuICB9XG4gIGdldCB2ZXJpZmljYXRpb25Db2RlKCkge1xuICAgIHJldHVybiB0aGlzLl92ZXJpZmljYXRpb25Db2RlO1xuICB9XG4gIHNldCB2ZXJpZmljYXRpb25Db2RlKHYpIHtcbiAgICB0aGlzLl92ZXJpZmljYXRpb25Db2RlID0gdjtcbiAgICBpZiAodikge1xuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXQoXG4gICAgICAgICdzYmUtYXV0aC5zZXNzaW9uLnZlcmlmaWNhdGlvbkNvZGUnLFxuICAgICAgICB2LFxuICAgICAgICAnc2Vzc2lvbidcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UucmVtb3ZlKFxuICAgICAgICAnc2JlLWF1dGguc2Vzc2lvbi52ZXJpZmljYXRpb25Db2RlJyxcbiAgICAgICAgJ3Nlc3Npb24nXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyKCkge1xuICAgIHRoaXMudHlwZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmludGx0ZWwgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy52ZXJpZmljYXRpb25Db2RlID0gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHB1YmxpYyBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UsXG4gICAgQEluamVjdChSRVNUX1NFUlZFUl9IT1NUKSBwcml2YXRlIHNlcnZlckhvc3Q6IHN0cmluZ1xuICApIHtcbiAgICBsZXQgdHlwZSA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0KCdzYmUtYXV0aC5zZXNzaW9uLnR5cGUnLCAnc2Vzc2lvbicpIGFzXG4gICAgICB8ICdyZWdpc3RlcidcbiAgICAgIHwgJ2ZpbmRwYXNzd29yZCdcbiAgICAgIHwgJ3RtcCc7XG4gICAgbGV0IGludGx0ZWwgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldChcbiAgICAgICdzYmUtYXV0aC5zZXNzaW9uLmludGx0ZWwnLFxuICAgICAgJ3Nlc3Npb24nXG4gICAgKTtcbiAgICBsZXQgdmVyaWZpY2F0aW9uQ29kZSA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0KFxuICAgICAgJ3NiZS1hdXRoLnNlc3Npb24udmVyaWZpY2F0aW9uQ29kZScsXG4gICAgICAnc2Vzc2lvbidcbiAgICApO1xuICAgIGlmICh0eXBlKSB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIGlmIChpbnRsdGVsKSB0aGlzLmludGx0ZWwgPSBpbnRsdGVsO1xuICAgIGlmICh2ZXJpZmljYXRpb25Db2RlKSB0aGlzLnZlcmlmaWNhdGlvbkNvZGUgPSB2ZXJpZmljYXRpb25Db2RlO1xuICB9XG5cbiAgcHJpdmF0ZSBzYXZlVG9rZW4oaWR0b2tlbikge1xuICAgIGlmIChpZHRva2VuKSB7XG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldChcbiAgICAgICAgQXV0aFNlcnZpY2UubG9jYWxTdG9yYWdlSWRUb2tlbktleSxcbiAgICAgICAgaWR0b2tlbixcbiAgICAgICAgJ2xvY2FsJ1xuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5yZW1vdmUoQXV0aFNlcnZpY2UubG9jYWxTdG9yYWdlSWRUb2tlbktleSwgJ2xvY2FsJyk7XG4gICAgfVxuICB9XG4gIHJlcXVlc3RDb2RlKFxuICAgIHR5cGU6ICdyZWdpc3RlcicgfCAnZmluZHBhc3N3b3JkJyB8ICd0bXAnID0gJ3JlZ2lzdGVyJyxcbiAgICBjb3VudHJ5RGlhbENvZGUsXG4gICAgdGVsOiBzdHJpbmdcbiAgKSB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5zZXJ2ZXJIb3N0fS92ZXJpZmljYXRpb24vcmVxdWVzdF9jb2RlYDtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdChcbiAgICAgICAgdXJsLFxuICAgICAgICB7IHR5cGU6IHR5cGUsIGNvdW50cnlEaWFsQ29kZTogY291bnRyeURpYWxDb2RlLCB0ZWw6IHRlbCB9LFxuICAgICAgICB7IHJlc3BvbnNlVHlwZTogJ3RleHQnIH1cbiAgICAgIClcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuICB2ZXJpZnlDb2RlKFxuICAgIHR5cGU6ICdyZWdpc3RlcicgfCAnZmluZHBhc3N3b3JkJyB8ICd0bXAnID0gJ3JlZ2lzdGVyJyxcbiAgICBjb3VudHJ5RGlhbENvZGUsXG4gICAgdGVsOiBzdHJpbmcsXG4gICAgdmVyaWZpY2F0aW9uQ29kZTogc3RyaW5nLFxuICAgIGNhbGxiYWNrX3VybDogc3RyaW5nID0gdW5kZWZpbmVkXG4gICkge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmVySG9zdH0vdmVyaWZpY2F0aW9uL3ZlcmlmeV9jb2RlYDtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdChcbiAgICAgICAgdXJsLFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgICBjb3VudHJ5RGlhbENvZGU6IGNvdW50cnlEaWFsQ29kZSxcbiAgICAgICAgICB0ZWw6IHRlbCxcbiAgICAgICAgICBjb2RlOiB2ZXJpZmljYXRpb25Db2RlLFxuICAgICAgICAgIGNhbGxiYWNrX3VybDogY2FsbGJhY2tfdXJsXG4gICAgICAgIH0sXG4gICAgICAgIHsgcmVzcG9uc2VUeXBlOiAndGV4dCcgfVxuICAgICAgKVxuICAgICAgLnRvUHJvbWlzZSgpXG4gICAgICAudGhlbih0b2tlbiA9PiB7XG4gICAgICAgIGlmICh0eXBlID09PSAndG1wJyAmJiB0b2tlbikge1xuICAgICAgICAgIHRoaXMuc2F2ZVRva2VuKHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICB9KTtcbiAgfVxuICBsb2dpbihcbiAgICBjb3VudHJ5RGlhbENvZGUsXG4gICAgdGVsLFxuICAgIHBhc3N3b3JkLFxuICAgIGNhbGxiYWNrX3VybDogc3RyaW5nID0gdW5kZWZpbmVkXG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5zZXJ2ZXJIb3N0fS9sb2dpbmA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3QoXG4gICAgICAgIHVybCxcbiAgICAgICAge1xuICAgICAgICAgIGNvdW50cnlEaWFsQ29kZTogY291bnRyeURpYWxDb2RlLFxuICAgICAgICAgIHRlbDogdGVsLFxuICAgICAgICAgIHBhc3N3b3JkOiBwYXNzd29yZCxcbiAgICAgICAgICBjYWxsYmFja191cmw6IGNhbGxiYWNrX3VybFxuICAgICAgICB9LFxuICAgICAgICB7IHJlc3BvbnNlVHlwZTogJ3RleHQnIH1cbiAgICAgIClcbiAgICAgIC50b1Byb21pc2UoKVxuICAgICAgLnRoZW4odG9rZW4gPT4ge1xuICAgICAgICB0aGlzLnNhdmVUb2tlbih0b2tlbik7XG4gICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgIH0pO1xuICB9XG4gIHJlZ2lzdGVyKFxuICAgIGNvdW50cnlEaWFsQ29kZSxcbiAgICB0ZWwsXG4gICAgdmVyaWZpY2F0aW9uQ29kZSxcbiAgICBuYW1lLFxuICAgIHBhc3N3b3JkLFxuICAgIGNhbGxiYWNrX3VybDogc3RyaW5nID0gdW5kZWZpbmVkXG4gICkge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmVySG9zdH0vcmVnaXN0ZXJgO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0KHVybCwge1xuICAgICAgICBjb3VudHJ5RGlhbENvZGU6IGNvdW50cnlEaWFsQ29kZSxcbiAgICAgICAgdGVsOiB0ZWwsXG4gICAgICAgIGNvZGU6IHZlcmlmaWNhdGlvbkNvZGUsXG4gICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgIHBhc3N3b3JkOiBwYXNzd29yZFxuICAgICAgfSlcbiAgICAgIC50b1Byb21pc2UoKVxuICAgICAgLnRoZW4oKCkgPT4gdGhpcy5sb2dpbihjb3VudHJ5RGlhbENvZGUsIHRlbCwgcGFzc3dvcmQsIGNhbGxiYWNrX3VybCkpO1xuICB9XG5cbiAgZ2V0VGVybXNPZlVzZSgpIHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNlcnZlckhvc3R9L2xlZ2FsL3VzZXJfYWdyZWVtZW50YDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwsIHsgcmVzcG9uc2VUeXBlOiAndGV4dCcgfSkudG9Qcm9taXNlKCk7XG4gIH1cbiAgZ2V0UHJpdmFjeVBvbGljeSgpIHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNlcnZlckhvc3R9L2xlZ2FsL3ByaXZhY3lfcG9saWN5YDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwsIHsgcmVzcG9uc2VUeXBlOiAndGV4dCcgfSkudG9Qcm9taXNlKCk7XG4gIH1cbiAgYWdyZWVUb1Rlcm1zKGNvdW50cnlEaWFsQ29kZSwgdGVsLCBwYXNzd29yZCkge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmVySG9zdH0vbGVnYWwvYWdyZWVfdG9fdGVybXNgO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0KHVybCwge1xuICAgICAgICBjb3VudHJ5RGlhbENvZGU6IGNvdW50cnlEaWFsQ29kZSxcbiAgICAgICAgdGVsOiB0ZWwsXG4gICAgICAgIHBhc3N3b3JkOiBwYXNzd29yZFxuICAgICAgfSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlTW9kdWxlIH0gZnJvbSAnQHNjaG9vbGJlbGxlL2NvbW1vbi9zZXJ2aWNlcy9zdG9yYWdlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0h0dHBDbGllbnRNb2R1bGUsIFN0b3JhZ2VTZXJ2aWNlTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZU1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KCkge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQXV0aFNlcnZpY2VNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtBdXRoU2VydmljZV1cbiAgICB9O1xuICB9XG59XG4iXSwibmFtZXMiOlsiaHR0cCIsIkluamVjdGFibGUiLCJIdHRwQ2xpZW50IiwiU3RvcmFnZVNlcnZpY2UiLCJJbmplY3QiLCJSRVNUX1NFUlZFUl9IT1NUIiwiTmdNb2R1bGUiLCJIdHRwQ2xpZW50TW9kdWxlIiwiU3RvcmFnZVNlcnZpY2VNb2R1bGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtRQTJERSxxQkFDU0EsU0FDQSxnQkFDMkI7WUFGM0IsU0FBSSxHQUFKQSxPQUFJO1lBQ0osbUJBQWMsR0FBZCxjQUFjO1lBQ2EsZUFBVSxHQUFWLFVBQVU7WUFFNUMscUJBQUksSUFBSSxJQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLHVCQUF1QixFQUFFLFNBQVMsQ0FHNUQsQ0FBQSxDQUFDO1lBQ1YscUJBQUksT0FB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