@cloudbase/auth 2.5.49-beta.3 → 2.5.49-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.js +4 -3
- package/dist/cjs/utilities.d.ts +2 -1
- package/dist/cjs/utilities.js +8 -3
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.js +6 -5
- package/dist/esm/utilities.d.ts +2 -1
- package/dist/esm/utilities.js +3 -2
- package/dist/miniprogram/index.js +1 -1474
- package/package.json +7 -4
- package/src/index.ts +7 -4
- package/src/utilities.ts +2 -1
- package/webpack/web.prod.js +6 -1
- package/webpack/webpack.miniprogram.js +5 -4
- package/dist/miniprogram/adapter.d.ts +0 -2
- package/dist/miniprogram/adapter.js +0 -177
- package/dist/miniprogram/index.d.ts +0 -148
- package/dist/miniprogram/utilities.d.ts +0 -6
- package/dist/miniprogram/utilities.js +0 -1
|
@@ -1,1474 +1 @@
|
|
|
1
|
-
var __assign = (this && this.__assign) || function () {
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
13
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
14
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
15
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
16
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
17
|
-
};
|
|
18
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
19
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
20
|
-
};
|
|
21
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
22
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
23
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
24
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
25
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
26
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
27
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
28
|
-
});
|
|
29
|
-
};
|
|
30
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
31
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
32
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
33
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
34
|
-
function step(op) {
|
|
35
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
36
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
37
|
-
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;
|
|
38
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
39
|
-
switch (op[0]) {
|
|
40
|
-
case 0: case 1: t = op; break;
|
|
41
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
42
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
43
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
44
|
-
default:
|
|
45
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
46
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
47
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
48
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
49
|
-
if (t[2]) _.ops.pop();
|
|
50
|
-
_.trys.pop(); continue;
|
|
51
|
-
}
|
|
52
|
-
op = body.call(thisArg, _);
|
|
53
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
54
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
import { authModels, CloudbaseOAuth } from '@cloudbase/oauth';
|
|
58
|
-
import { useAuthAdapter } from './adapter';
|
|
59
|
-
import { printWarn, throwError, ERRORS, COMMUNITY_SITE_URL, catchErrorsDecorator, CloudbaseEventEmitter, CloudbaseCache, adapterForWxMp, } from './utilities';
|
|
60
|
-
var COMPONENT_NAME = 'auth';
|
|
61
|
-
var EVENTS = {
|
|
62
|
-
LOGIN_STATE_CHANGED: 'loginStateChanged',
|
|
63
|
-
};
|
|
64
|
-
var eventBus = new CloudbaseEventEmitter();
|
|
65
|
-
var User = (function () {
|
|
66
|
-
function User(options) {
|
|
67
|
-
var cache = options.cache, oauthInstance = options.oauthInstance;
|
|
68
|
-
this.cache = cache;
|
|
69
|
-
this.oauthInstance = oauthInstance;
|
|
70
|
-
this.setUserInfo();
|
|
71
|
-
}
|
|
72
|
-
User.prototype.checkLocalInfo = function () {
|
|
73
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
74
|
-
return __generator(this, function (_a) {
|
|
75
|
-
this.uid = this.getLocalUserInfo('uid');
|
|
76
|
-
this.gender = this.getLocalUserInfo('gender');
|
|
77
|
-
this.picture = this.getLocalUserInfo('picture');
|
|
78
|
-
this.email = this.getLocalUserInfo('email');
|
|
79
|
-
this.emailVerified = this.getLocalUserInfo('email_verified');
|
|
80
|
-
this.phoneNumber = this.getLocalUserInfo('phone_number');
|
|
81
|
-
this.username = this.getLocalUserInfo('username');
|
|
82
|
-
this.name = this.getLocalUserInfo('name');
|
|
83
|
-
this.birthdate = this.getLocalUserInfo('birthdate');
|
|
84
|
-
this.zoneinfo = this.getLocalUserInfo('zoneinfo');
|
|
85
|
-
this.locale = this.getLocalUserInfo('locale');
|
|
86
|
-
this.sub = this.getLocalUserInfo('sub');
|
|
87
|
-
this.createdFrom = this.getLocalUserInfo('created_from');
|
|
88
|
-
this.providers = this.getLocalUserInfo('providers');
|
|
89
|
-
return [2];
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
};
|
|
93
|
-
User.prototype.checkLocalInfoAsync = function () {
|
|
94
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
95
|
-
var _a, _b, _c, _d;
|
|
96
|
-
return __generator(this, function (_e) {
|
|
97
|
-
switch (_e.label) {
|
|
98
|
-
case 0:
|
|
99
|
-
_a = this;
|
|
100
|
-
return [4, this.getLocalUserInfoAsync('uid')];
|
|
101
|
-
case 1:
|
|
102
|
-
_a.uid = _e.sent();
|
|
103
|
-
_b = this;
|
|
104
|
-
return [4, this.getLocalUserInfoAsync('gender')];
|
|
105
|
-
case 2:
|
|
106
|
-
_b.gender = _e.sent();
|
|
107
|
-
this.picture = this.getLocalUserInfo('picture');
|
|
108
|
-
_c = this;
|
|
109
|
-
return [4, this.getLocalUserInfoAsync('email')];
|
|
110
|
-
case 3:
|
|
111
|
-
_c.email = _e.sent();
|
|
112
|
-
this.emailVerified = this.getLocalUserInfo('email_verified');
|
|
113
|
-
this.phoneNumber = this.getLocalUserInfo('phone_number');
|
|
114
|
-
_d = this;
|
|
115
|
-
return [4, this.getLocalUserInfoAsync('username')];
|
|
116
|
-
case 4:
|
|
117
|
-
_d.username = _e.sent();
|
|
118
|
-
this.name = this.getLocalUserInfo('name');
|
|
119
|
-
this.birthdate = this.getLocalUserInfo('birthdate');
|
|
120
|
-
this.zoneinfo = this.getLocalUserInfo('zoneinfo');
|
|
121
|
-
this.locale = this.getLocalUserInfo('locale');
|
|
122
|
-
this.sub = this.getLocalUserInfo('sub');
|
|
123
|
-
this.createdFrom = this.getLocalUserInfo('created_from');
|
|
124
|
-
this.providers = this.getLocalUserInfo('providers');
|
|
125
|
-
return [2];
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
});
|
|
129
|
-
};
|
|
130
|
-
User.prototype.update = function (userInfo) {
|
|
131
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
132
|
-
var newUserInfo;
|
|
133
|
-
return __generator(this, function (_a) {
|
|
134
|
-
switch (_a.label) {
|
|
135
|
-
case 0: return [4, this.oauthInstance.authApi.setUserProfile(__assign({}, userInfo))];
|
|
136
|
-
case 1:
|
|
137
|
-
newUserInfo = _a.sent();
|
|
138
|
-
this.setLocalUserInfo(newUserInfo);
|
|
139
|
-
return [2];
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
});
|
|
143
|
-
};
|
|
144
|
-
User.prototype.updateUserBasicInfo = function (params) {
|
|
145
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
146
|
-
return __generator(this, function (_a) {
|
|
147
|
-
switch (_a.label) {
|
|
148
|
-
case 0: return [4, this.oauthInstance.authApi.updateUserBasicInfo(__assign({}, params))];
|
|
149
|
-
case 1:
|
|
150
|
-
_a.sent();
|
|
151
|
-
this.setLocalUserInfo({ username: params.username });
|
|
152
|
-
return [2];
|
|
153
|
-
}
|
|
154
|
-
});
|
|
155
|
-
});
|
|
156
|
-
};
|
|
157
|
-
User.prototype.updatePassword = function (newPassword, oldPassword) {
|
|
158
|
-
return this.oauthInstance.authApi.updatePasswordByOld({
|
|
159
|
-
old_password: oldPassword,
|
|
160
|
-
new_password: newPassword,
|
|
161
|
-
});
|
|
162
|
-
};
|
|
163
|
-
User.prototype.updateUsername = function (username) {
|
|
164
|
-
if (typeof username !== 'string') {
|
|
165
|
-
throwError(ERRORS.INVALID_PARAMS, 'username must be a string');
|
|
166
|
-
}
|
|
167
|
-
return this.update({
|
|
168
|
-
username: username,
|
|
169
|
-
});
|
|
170
|
-
};
|
|
171
|
-
User.prototype.refresh = function (params) {
|
|
172
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
173
|
-
var newUserInfo;
|
|
174
|
-
return __generator(this, function (_a) {
|
|
175
|
-
switch (_a.label) {
|
|
176
|
-
case 0: return [4, this.oauthInstance.authApi.getUserInfo(params)];
|
|
177
|
-
case 1:
|
|
178
|
-
newUserInfo = _a.sent();
|
|
179
|
-
this.setLocalUserInfo(newUserInfo);
|
|
180
|
-
return [2, newUserInfo];
|
|
181
|
-
}
|
|
182
|
-
});
|
|
183
|
-
});
|
|
184
|
-
};
|
|
185
|
-
User.prototype.getLocalUserInfo = function (key) {
|
|
186
|
-
var userInfoKey = this.cache.keys.userInfoKey;
|
|
187
|
-
var userInfo = this.cache.getStore(userInfoKey);
|
|
188
|
-
return userInfo[key];
|
|
189
|
-
};
|
|
190
|
-
User.prototype.getLocalUserInfoAsync = function (key) {
|
|
191
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
192
|
-
var userInfoKey, userInfo;
|
|
193
|
-
return __generator(this, function (_a) {
|
|
194
|
-
switch (_a.label) {
|
|
195
|
-
case 0:
|
|
196
|
-
userInfoKey = this.cache.keys.userInfoKey;
|
|
197
|
-
return [4, this.cache.getStoreAsync(userInfoKey)];
|
|
198
|
-
case 1:
|
|
199
|
-
userInfo = _a.sent();
|
|
200
|
-
return [2, userInfo[key]];
|
|
201
|
-
}
|
|
202
|
-
});
|
|
203
|
-
});
|
|
204
|
-
};
|
|
205
|
-
User.prototype.setUserInfo = function () {
|
|
206
|
-
var _this = this;
|
|
207
|
-
var userInfoKey = this.cache.keys.userInfoKey;
|
|
208
|
-
var userInfo = this.cache.getStore(userInfoKey);
|
|
209
|
-
[
|
|
210
|
-
'uid',
|
|
211
|
-
'email',
|
|
212
|
-
'name',
|
|
213
|
-
'gender',
|
|
214
|
-
'picture',
|
|
215
|
-
'email_verified',
|
|
216
|
-
'phone_number',
|
|
217
|
-
'birthdate',
|
|
218
|
-
'zoneinfo',
|
|
219
|
-
'locale',
|
|
220
|
-
'sub',
|
|
221
|
-
'created_from',
|
|
222
|
-
'providers',
|
|
223
|
-
'username',
|
|
224
|
-
].forEach(function (infoKey) {
|
|
225
|
-
_this[infoKey] = userInfo[infoKey];
|
|
226
|
-
});
|
|
227
|
-
};
|
|
228
|
-
User.prototype.setLocalUserInfo = function (userInfo) {
|
|
229
|
-
var userInfoKey = this.cache.keys.userInfoKey;
|
|
230
|
-
this.cache.setStore(userInfoKey, userInfo);
|
|
231
|
-
this.setUserInfo();
|
|
232
|
-
};
|
|
233
|
-
__decorate([
|
|
234
|
-
catchErrorsDecorator({
|
|
235
|
-
title: '更新用户信息失败',
|
|
236
|
-
messages: [
|
|
237
|
-
'请确认以下各项:',
|
|
238
|
-
' 1 - 调用 User.update() 的语法或参数是否正确',
|
|
239
|
-
' 2 - 用户信息中是否包含非法值',
|
|
240
|
-
"\u5982\u679C\u95EE\u9898\u4F9D\u7136\u5B58\u5728\uFF0C\u5EFA\u8BAE\u5230\u5B98\u65B9\u95EE\u7B54\u793E\u533A\u63D0\u95EE\u6216\u5BFB\u627E\u5E2E\u52A9\uFF1A".concat(COMMUNITY_SITE_URL),
|
|
241
|
-
],
|
|
242
|
-
}),
|
|
243
|
-
__metadata("design:type", Function),
|
|
244
|
-
__metadata("design:paramtypes", [Object]),
|
|
245
|
-
__metadata("design:returntype", Promise)
|
|
246
|
-
], User.prototype, "update", null);
|
|
247
|
-
__decorate([
|
|
248
|
-
catchErrorsDecorator({
|
|
249
|
-
title: '更新密码失败',
|
|
250
|
-
messages: [
|
|
251
|
-
'请确认以下各项:',
|
|
252
|
-
' 1 - 调用 User.updatePassword() 的语法或参数是否正确',
|
|
253
|
-
' 3 - 新密码中是否包含非法字符',
|
|
254
|
-
"\u5982\u679C\u95EE\u9898\u4F9D\u7136\u5B58\u5728\uFF0C\u5EFA\u8BAE\u5230\u5B98\u65B9\u95EE\u7B54\u793E\u533A\u63D0\u95EE\u6216\u5BFB\u627E\u5E2E\u52A9\uFF1A".concat(COMMUNITY_SITE_URL),
|
|
255
|
-
],
|
|
256
|
-
}),
|
|
257
|
-
__metadata("design:type", Function),
|
|
258
|
-
__metadata("design:paramtypes", [String, String]),
|
|
259
|
-
__metadata("design:returntype", void 0)
|
|
260
|
-
], User.prototype, "updatePassword", null);
|
|
261
|
-
__decorate([
|
|
262
|
-
catchErrorsDecorator({
|
|
263
|
-
title: '更新用户名失败',
|
|
264
|
-
messages: [
|
|
265
|
-
'请确认以下各项:',
|
|
266
|
-
' 1 - 调用 User.updateUsername() 的语法或参数是否正确',
|
|
267
|
-
' 2 - 当前环境是否开通了用户名密码登录',
|
|
268
|
-
"\u5982\u679C\u95EE\u9898\u4F9D\u7136\u5B58\u5728\uFF0C\u5EFA\u8BAE\u5230\u5B98\u65B9\u95EE\u7B54\u793E\u533A\u63D0\u95EE\u6216\u5BFB\u627E\u5E2E\u52A9\uFF1A".concat(COMMUNITY_SITE_URL),
|
|
269
|
-
],
|
|
270
|
-
}),
|
|
271
|
-
__metadata("design:type", Function),
|
|
272
|
-
__metadata("design:paramtypes", [String]),
|
|
273
|
-
__metadata("design:returntype", void 0)
|
|
274
|
-
], User.prototype, "updateUsername", null);
|
|
275
|
-
__decorate([
|
|
276
|
-
catchErrorsDecorator({
|
|
277
|
-
title: '刷新本地用户信息失败',
|
|
278
|
-
messages: [
|
|
279
|
-
'请确认以下各项:',
|
|
280
|
-
' 1 - 调用 User.refresh() 的语法或参数是否正确',
|
|
281
|
-
"\u5982\u679C\u95EE\u9898\u4F9D\u7136\u5B58\u5728\uFF0C\u5EFA\u8BAE\u5230\u5B98\u65B9\u95EE\u7B54\u793E\u533A\u63D0\u95EE\u6216\u5BFB\u627E\u5E2E\u52A9\uFF1A".concat(COMMUNITY_SITE_URL),
|
|
282
|
-
],
|
|
283
|
-
}),
|
|
284
|
-
__metadata("design:type", Function),
|
|
285
|
-
__metadata("design:paramtypes", [Object]),
|
|
286
|
-
__metadata("design:returntype", Promise)
|
|
287
|
-
], User.prototype, "refresh", null);
|
|
288
|
-
return User;
|
|
289
|
-
}());
|
|
290
|
-
var LoginState = (function () {
|
|
291
|
-
function LoginState(options) {
|
|
292
|
-
var envId = options.envId, cache = options.cache, oauthInstance = options.oauthInstance;
|
|
293
|
-
if (!envId) {
|
|
294
|
-
throwError(ERRORS.INVALID_PARAMS, 'envId is not defined');
|
|
295
|
-
}
|
|
296
|
-
this.cache = cache;
|
|
297
|
-
this.oauthInstance = oauthInstance;
|
|
298
|
-
this.user = new User({
|
|
299
|
-
cache: this.cache,
|
|
300
|
-
oauthInstance: oauthInstance,
|
|
301
|
-
});
|
|
302
|
-
}
|
|
303
|
-
LoginState.prototype.checkLocalState = function () {
|
|
304
|
-
var _a;
|
|
305
|
-
this.oauthLoginState = (_a = this.oauthInstance) === null || _a === void 0 ? void 0 : _a.authApi.hasLoginStateSync();
|
|
306
|
-
this.user.checkLocalInfo();
|
|
307
|
-
};
|
|
308
|
-
LoginState.prototype.checkLocalStateAsync = function () {
|
|
309
|
-
var _a;
|
|
310
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
311
|
-
return __generator(this, function (_b) {
|
|
312
|
-
switch (_b.label) {
|
|
313
|
-
case 0: return [4, ((_a = this.oauthInstance) === null || _a === void 0 ? void 0 : _a.authApi.getLoginState())];
|
|
314
|
-
case 1:
|
|
315
|
-
_b.sent();
|
|
316
|
-
return [4, this.user.checkLocalInfoAsync()];
|
|
317
|
-
case 2:
|
|
318
|
-
_b.sent();
|
|
319
|
-
return [2];
|
|
320
|
-
}
|
|
321
|
-
});
|
|
322
|
-
});
|
|
323
|
-
};
|
|
324
|
-
return LoginState;
|
|
325
|
-
}());
|
|
326
|
-
export { LoginState };
|
|
327
|
-
var Auth = (function () {
|
|
328
|
-
function Auth(config) {
|
|
329
|
-
this.config = config;
|
|
330
|
-
this.cache = config.cache;
|
|
331
|
-
this.oauthInstance = config.oauthInstance;
|
|
332
|
-
}
|
|
333
|
-
Auth.prototype.bindPhoneNumber = function (params) {
|
|
334
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
335
|
-
return __generator(this, function (_a) {
|
|
336
|
-
return [2, this.oauthInstance.authApi.editContact(params)];
|
|
337
|
-
});
|
|
338
|
-
});
|
|
339
|
-
};
|
|
340
|
-
Auth.prototype.unbindProvider = function (params) {
|
|
341
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
342
|
-
return __generator(this, function (_a) {
|
|
343
|
-
return [2, this.oauthInstance.authApi.unbindProvider(params)];
|
|
344
|
-
});
|
|
345
|
-
});
|
|
346
|
-
};
|
|
347
|
-
Auth.prototype.bindEmail = function (params) {
|
|
348
|
-
return this.oauthInstance.authApi.editContact(params);
|
|
349
|
-
};
|
|
350
|
-
Auth.prototype.verify = function (params) {
|
|
351
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
352
|
-
return __generator(this, function (_a) {
|
|
353
|
-
return [2, this.oauthInstance.authApi.verify(params)];
|
|
354
|
-
});
|
|
355
|
-
});
|
|
356
|
-
};
|
|
357
|
-
Auth.prototype.getVerification = function (params) {
|
|
358
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
359
|
-
return __generator(this, function (_a) {
|
|
360
|
-
return [2, this.oauthInstance.authApi.getVerification(params)];
|
|
361
|
-
});
|
|
362
|
-
});
|
|
363
|
-
};
|
|
364
|
-
Object.defineProperty(Auth.prototype, "currentUser", {
|
|
365
|
-
get: function () {
|
|
366
|
-
if (this.cache.mode === 'async') {
|
|
367
|
-
printWarn(ERRORS.INVALID_OPERATION, 'current platform\'s storage is asynchronous, please use getCurrentUser insteed');
|
|
368
|
-
return;
|
|
369
|
-
}
|
|
370
|
-
var loginState = this.hasLoginState();
|
|
371
|
-
if (loginState) {
|
|
372
|
-
return loginState.user || null;
|
|
373
|
-
}
|
|
374
|
-
return null;
|
|
375
|
-
},
|
|
376
|
-
enumerable: false,
|
|
377
|
-
configurable: true
|
|
378
|
-
});
|
|
379
|
-
Auth.prototype.getCurrentUser = function () {
|
|
380
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
381
|
-
var loginState;
|
|
382
|
-
return __generator(this, function (_a) {
|
|
383
|
-
switch (_a.label) {
|
|
384
|
-
case 0: return [4, this.getLoginState()];
|
|
385
|
-
case 1:
|
|
386
|
-
loginState = _a.sent();
|
|
387
|
-
if (!loginState) return [3, 3];
|
|
388
|
-
return [4, loginState.user.checkLocalInfoAsync()];
|
|
389
|
-
case 2:
|
|
390
|
-
_a.sent();
|
|
391
|
-
return [2, loginState.user || null];
|
|
392
|
-
case 3: return [2, null];
|
|
393
|
-
}
|
|
394
|
-
});
|
|
395
|
-
});
|
|
396
|
-
};
|
|
397
|
-
Auth.prototype.signInAnonymously = function (data) {
|
|
398
|
-
if (data === void 0) { data = {}; }
|
|
399
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
400
|
-
return __generator(this, function (_a) {
|
|
401
|
-
switch (_a.label) {
|
|
402
|
-
case 0: return [4, this.oauthInstance.authApi.signInAnonymously(data)];
|
|
403
|
-
case 1:
|
|
404
|
-
_a.sent();
|
|
405
|
-
return [2, this.createLoginState()];
|
|
406
|
-
}
|
|
407
|
-
});
|
|
408
|
-
});
|
|
409
|
-
};
|
|
410
|
-
Auth.prototype.signInWithOpenId = function (_a) {
|
|
411
|
-
var _b = _a === void 0 ? {} : _a, _c = _b.useWxCloud, useWxCloud = _c === void 0 ? true : _c;
|
|
412
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
413
|
-
var wxInfo, result, credentials, error_1;
|
|
414
|
-
var _this = this;
|
|
415
|
-
return __generator(this, function (_d) {
|
|
416
|
-
switch (_d.label) {
|
|
417
|
-
case 0:
|
|
418
|
-
if (!adapterForWxMp.isMatch()) {
|
|
419
|
-
throw Error('wx api undefined');
|
|
420
|
-
}
|
|
421
|
-
if (!useWxCloud) return [3, 7];
|
|
422
|
-
wxInfo = wx.getAccountInfoSync().miniProgram;
|
|
423
|
-
result = undefined;
|
|
424
|
-
credentials = undefined;
|
|
425
|
-
_d.label = 1;
|
|
426
|
-
case 1:
|
|
427
|
-
_d.trys.push([1, 4, , 5]);
|
|
428
|
-
return [4, this.oauthInstance.authApi.grantProviderToken({
|
|
429
|
-
provider_id: wxInfo === null || wxInfo === void 0 ? void 0 : wxInfo.appId,
|
|
430
|
-
provider_params: {
|
|
431
|
-
provider_code_type: 'open_id',
|
|
432
|
-
},
|
|
433
|
-
}, true)];
|
|
434
|
-
case 2:
|
|
435
|
-
result = _d.sent();
|
|
436
|
-
if (result === null || result === void 0 ? void 0 : result.error_code) {
|
|
437
|
-
throw result;
|
|
438
|
-
}
|
|
439
|
-
return [4, this.oauthInstance.authApi.signInWithProvider({ provider_token: result.provider_token }, true)];
|
|
440
|
-
case 3:
|
|
441
|
-
credentials = _d.sent();
|
|
442
|
-
if (credentials === null || credentials === void 0 ? void 0 : credentials.error_code) {
|
|
443
|
-
throw credentials;
|
|
444
|
-
}
|
|
445
|
-
return [3, 5];
|
|
446
|
-
case 4:
|
|
447
|
-
error_1 = _d.sent();
|
|
448
|
-
throw error_1;
|
|
449
|
-
case 5: return [4, this.oauthInstance.oauth2client.setCredentials(credentials)];
|
|
450
|
-
case 6:
|
|
451
|
-
_d.sent();
|
|
452
|
-
return [3, 9];
|
|
453
|
-
case 7: return [4, new Promise(function (resolve, reject) {
|
|
454
|
-
var wxInfo = wx.getAccountInfoSync().miniProgram;
|
|
455
|
-
wx.login({
|
|
456
|
-
success: function (res) { return __awaiter(_this, void 0, void 0, function () {
|
|
457
|
-
var providerId, result, providerToken, signInRes, error_2;
|
|
458
|
-
return __generator(this, function (_a) {
|
|
459
|
-
switch (_a.label) {
|
|
460
|
-
case 0:
|
|
461
|
-
providerId = wxInfo === null || wxInfo === void 0 ? void 0 : wxInfo.appId;
|
|
462
|
-
_a.label = 1;
|
|
463
|
-
case 1:
|
|
464
|
-
_a.trys.push([1, 4, , 5]);
|
|
465
|
-
return [4, this.oauthInstance.authApi.grantProviderToken({
|
|
466
|
-
provider_code: res.code,
|
|
467
|
-
provider_id: providerId,
|
|
468
|
-
provider_params: {
|
|
469
|
-
provider_code_type: 'open_id',
|
|
470
|
-
appid: wxInfo === null || wxInfo === void 0 ? void 0 : wxInfo.appId,
|
|
471
|
-
},
|
|
472
|
-
})];
|
|
473
|
-
case 2:
|
|
474
|
-
result = _a.sent();
|
|
475
|
-
providerToken = result.provider_token;
|
|
476
|
-
if (!providerToken) {
|
|
477
|
-
reject(result);
|
|
478
|
-
return [2];
|
|
479
|
-
}
|
|
480
|
-
return [4, this.oauthInstance.authApi.signInWithProvider({
|
|
481
|
-
provider_token: providerToken,
|
|
482
|
-
})];
|
|
483
|
-
case 3:
|
|
484
|
-
signInRes = _a.sent();
|
|
485
|
-
if (signInRes === null || signInRes === void 0 ? void 0 : signInRes.error_code) {
|
|
486
|
-
reject(signInRes);
|
|
487
|
-
return [2];
|
|
488
|
-
}
|
|
489
|
-
resolve(true);
|
|
490
|
-
return [3, 5];
|
|
491
|
-
case 4:
|
|
492
|
-
error_2 = _a.sent();
|
|
493
|
-
reject(error_2);
|
|
494
|
-
return [3, 5];
|
|
495
|
-
case 5: return [2];
|
|
496
|
-
}
|
|
497
|
-
});
|
|
498
|
-
}); },
|
|
499
|
-
fail: function (res) {
|
|
500
|
-
var error = new Error(res === null || res === void 0 ? void 0 : res.errMsg);
|
|
501
|
-
error.code = res === null || res === void 0 ? void 0 : res.errno;
|
|
502
|
-
reject(error);
|
|
503
|
-
},
|
|
504
|
-
});
|
|
505
|
-
})];
|
|
506
|
-
case 8:
|
|
507
|
-
_d.sent();
|
|
508
|
-
_d.label = 9;
|
|
509
|
-
case 9: return [2, this.createLoginState()];
|
|
510
|
-
}
|
|
511
|
-
});
|
|
512
|
-
});
|
|
513
|
-
};
|
|
514
|
-
Auth.prototype.signInWithUnionId = function () {
|
|
515
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
516
|
-
var error_3;
|
|
517
|
-
var _this = this;
|
|
518
|
-
return __generator(this, function (_a) {
|
|
519
|
-
switch (_a.label) {
|
|
520
|
-
case 0:
|
|
521
|
-
if (!adapterForWxMp.isMatch()) {
|
|
522
|
-
throw Error('wx api undefined');
|
|
523
|
-
}
|
|
524
|
-
_a.label = 1;
|
|
525
|
-
case 1:
|
|
526
|
-
_a.trys.push([1, 3, , 4]);
|
|
527
|
-
return [4, new Promise(function (resolve, reject) {
|
|
528
|
-
var wxInfo = wx.getAccountInfoSync().miniProgram;
|
|
529
|
-
wx.login({
|
|
530
|
-
success: function (res) { return __awaiter(_this, void 0, void 0, function () {
|
|
531
|
-
var providerId, result, providerToken, signInRes, error_4;
|
|
532
|
-
return __generator(this, function (_a) {
|
|
533
|
-
switch (_a.label) {
|
|
534
|
-
case 0:
|
|
535
|
-
providerId = wxInfo === null || wxInfo === void 0 ? void 0 : wxInfo.appId;
|
|
536
|
-
_a.label = 1;
|
|
537
|
-
case 1:
|
|
538
|
-
_a.trys.push([1, 4, , 5]);
|
|
539
|
-
return [4, this.oauthInstance.authApi.grantProviderToken({
|
|
540
|
-
provider_code: res.code,
|
|
541
|
-
provider_id: providerId,
|
|
542
|
-
provider_params: {
|
|
543
|
-
provider_code_type: 'union_id',
|
|
544
|
-
appid: wxInfo === null || wxInfo === void 0 ? void 0 : wxInfo.appId,
|
|
545
|
-
},
|
|
546
|
-
})];
|
|
547
|
-
case 2:
|
|
548
|
-
result = _a.sent();
|
|
549
|
-
providerToken = result.provider_token;
|
|
550
|
-
if (!providerToken) {
|
|
551
|
-
reject(result);
|
|
552
|
-
return [2];
|
|
553
|
-
}
|
|
554
|
-
return [4, this.oauthInstance.authApi.signInWithProvider({
|
|
555
|
-
provider_id: providerId,
|
|
556
|
-
provider_token: providerToken,
|
|
557
|
-
})];
|
|
558
|
-
case 3:
|
|
559
|
-
signInRes = _a.sent();
|
|
560
|
-
if (signInRes === null || signInRes === void 0 ? void 0 : signInRes.error_code) {
|
|
561
|
-
reject(signInRes);
|
|
562
|
-
return [2];
|
|
563
|
-
}
|
|
564
|
-
resolve(true);
|
|
565
|
-
return [3, 5];
|
|
566
|
-
case 4:
|
|
567
|
-
error_4 = _a.sent();
|
|
568
|
-
reject(error_4);
|
|
569
|
-
return [3, 5];
|
|
570
|
-
case 5: return [2];
|
|
571
|
-
}
|
|
572
|
-
});
|
|
573
|
-
}); },
|
|
574
|
-
fail: function (res) {
|
|
575
|
-
var error = new Error(res === null || res === void 0 ? void 0 : res.errMsg);
|
|
576
|
-
error.code = res === null || res === void 0 ? void 0 : res.errno;
|
|
577
|
-
reject(error);
|
|
578
|
-
},
|
|
579
|
-
});
|
|
580
|
-
})];
|
|
581
|
-
case 2:
|
|
582
|
-
_a.sent();
|
|
583
|
-
return [3, 4];
|
|
584
|
-
case 3:
|
|
585
|
-
error_3 = _a.sent();
|
|
586
|
-
throw error_3;
|
|
587
|
-
case 4: return [2, this.createLoginState()];
|
|
588
|
-
}
|
|
589
|
-
});
|
|
590
|
-
});
|
|
591
|
-
};
|
|
592
|
-
Auth.prototype.signInWithPhoneAuth = function (_a) {
|
|
593
|
-
var _b = _a.phoneCode, phoneCode = _b === void 0 ? '' : _b;
|
|
594
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
595
|
-
var wxInfo, providerInfo, code, providerToken, signInRes, error_5;
|
|
596
|
-
return __generator(this, function (_c) {
|
|
597
|
-
switch (_c.label) {
|
|
598
|
-
case 0:
|
|
599
|
-
if (!adapterForWxMp.isMatch()) {
|
|
600
|
-
throw Error('wx api undefined');
|
|
601
|
-
}
|
|
602
|
-
wxInfo = wx.getAccountInfoSync().miniProgram;
|
|
603
|
-
providerInfo = {
|
|
604
|
-
provider_params: { provider_code_type: 'phone' },
|
|
605
|
-
provider_id: wxInfo.appId,
|
|
606
|
-
};
|
|
607
|
-
return [4, wx.login()];
|
|
608
|
-
case 1:
|
|
609
|
-
code = (_c.sent()).code;
|
|
610
|
-
providerInfo.provider_code = code;
|
|
611
|
-
_c.label = 2;
|
|
612
|
-
case 2:
|
|
613
|
-
_c.trys.push([2, 6, , 7]);
|
|
614
|
-
return [4, this.oauthInstance.authApi.grantProviderToken(providerInfo)];
|
|
615
|
-
case 3:
|
|
616
|
-
providerToken = _c.sent();
|
|
617
|
-
if (providerToken.error_code) {
|
|
618
|
-
throw providerToken;
|
|
619
|
-
}
|
|
620
|
-
return [4, this.oauthInstance.authApi.patchProviderToken({
|
|
621
|
-
provider_token: providerToken.provider_token,
|
|
622
|
-
provider_id: wxInfo.appId,
|
|
623
|
-
provider_params: {
|
|
624
|
-
code: phoneCode,
|
|
625
|
-
provider_code_type: 'phone',
|
|
626
|
-
},
|
|
627
|
-
})];
|
|
628
|
-
case 4:
|
|
629
|
-
providerToken = _c.sent();
|
|
630
|
-
if (providerToken.error_code) {
|
|
631
|
-
throw providerToken;
|
|
632
|
-
}
|
|
633
|
-
return [4, this.oauthInstance.authApi.signInWithProvider({
|
|
634
|
-
provider_token: providerToken.provider_token,
|
|
635
|
-
})];
|
|
636
|
-
case 5:
|
|
637
|
-
signInRes = _c.sent();
|
|
638
|
-
if (signInRes === null || signInRes === void 0 ? void 0 : signInRes.error_code) {
|
|
639
|
-
throw signInRes;
|
|
640
|
-
}
|
|
641
|
-
return [3, 7];
|
|
642
|
-
case 6:
|
|
643
|
-
error_5 = _c.sent();
|
|
644
|
-
throw error_5;
|
|
645
|
-
case 7: return [2, this.createLoginState()];
|
|
646
|
-
}
|
|
647
|
-
});
|
|
648
|
-
});
|
|
649
|
-
};
|
|
650
|
-
Auth.prototype.signInWithSms = function (_a) {
|
|
651
|
-
var _b = _a.verificationInfo, verificationInfo = _b === void 0 ? { id: '', isUser: false } : _b, _c = _a.verificationCode, verificationCode = _c === void 0 ? '' : _c, _d = _a.phoneNum, phoneNum = _d === void 0 ? '' : _d, _e = _a.bindInfo, bindInfo = _e === void 0 ? undefined : _e;
|
|
652
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
653
|
-
var verifyRes, verification_token, signInRes, bindRes, signUpRes, error_6;
|
|
654
|
-
return __generator(this, function (_f) {
|
|
655
|
-
switch (_f.label) {
|
|
656
|
-
case 0:
|
|
657
|
-
_f.trys.push([0, 8, , 9]);
|
|
658
|
-
return [4, this.oauthInstance.authApi.verify({
|
|
659
|
-
verification_id: verificationInfo.id,
|
|
660
|
-
verification_code: verificationCode,
|
|
661
|
-
})];
|
|
662
|
-
case 1:
|
|
663
|
-
verifyRes = _f.sent();
|
|
664
|
-
if (verifyRes === null || verifyRes === void 0 ? void 0 : verifyRes.error_code) {
|
|
665
|
-
throw verifyRes;
|
|
666
|
-
}
|
|
667
|
-
verification_token = verifyRes.verification_token;
|
|
668
|
-
if (!verificationInfo.isUser) return [3, 5];
|
|
669
|
-
return [4, this.oauthInstance.authApi.signIn({
|
|
670
|
-
username: "+86 ".concat(phoneNum),
|
|
671
|
-
verification_token: verification_token,
|
|
672
|
-
})];
|
|
673
|
-
case 2:
|
|
674
|
-
signInRes = _f.sent();
|
|
675
|
-
if (signInRes === null || signInRes === void 0 ? void 0 : signInRes.error_code) {
|
|
676
|
-
throw signInRes;
|
|
677
|
-
}
|
|
678
|
-
if (!bindInfo) return [3, 4];
|
|
679
|
-
return [4, this.oauthInstance.authApi.bindWithProvider({
|
|
680
|
-
provider_token: bindInfo === null || bindInfo === void 0 ? void 0 : bindInfo.providerToken,
|
|
681
|
-
})];
|
|
682
|
-
case 3:
|
|
683
|
-
bindRes = _f.sent();
|
|
684
|
-
if (bindRes === null || bindRes === void 0 ? void 0 : bindRes.error_code) {
|
|
685
|
-
throw bindRes;
|
|
686
|
-
}
|
|
687
|
-
_f.label = 4;
|
|
688
|
-
case 4: return [3, 7];
|
|
689
|
-
case 5: return [4, this.oauthInstance.authApi.signUp({
|
|
690
|
-
phone_number: "+86 ".concat(phoneNum),
|
|
691
|
-
verification_token: verification_token,
|
|
692
|
-
provider_token: bindInfo === null || bindInfo === void 0 ? void 0 : bindInfo.providerId,
|
|
693
|
-
})];
|
|
694
|
-
case 6:
|
|
695
|
-
signUpRes = _f.sent();
|
|
696
|
-
if (signUpRes === null || signUpRes === void 0 ? void 0 : signUpRes.error_code) {
|
|
697
|
-
throw signUpRes;
|
|
698
|
-
}
|
|
699
|
-
_f.label = 7;
|
|
700
|
-
case 7: return [2, this.createLoginState()];
|
|
701
|
-
case 8:
|
|
702
|
-
error_6 = _f.sent();
|
|
703
|
-
throw error_6;
|
|
704
|
-
case 9: return [2];
|
|
705
|
-
}
|
|
706
|
-
});
|
|
707
|
-
});
|
|
708
|
-
};
|
|
709
|
-
Auth.prototype.setCustomSignFunc = function (getTickFn) {
|
|
710
|
-
this.oauthInstance.authApi.setCustomSignFunc(getTickFn);
|
|
711
|
-
};
|
|
712
|
-
Auth.prototype.signInWithCustomTicket = function (params) {
|
|
713
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
714
|
-
return __generator(this, function (_a) {
|
|
715
|
-
switch (_a.label) {
|
|
716
|
-
case 0: return [4, this.oauthInstance.authApi.signInWithCustomTicket(params)];
|
|
717
|
-
case 1:
|
|
718
|
-
_a.sent();
|
|
719
|
-
return [2, this.createLoginState()];
|
|
720
|
-
}
|
|
721
|
-
});
|
|
722
|
-
});
|
|
723
|
-
};
|
|
724
|
-
Auth.prototype.signIn = function (params) {
|
|
725
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
726
|
-
return __generator(this, function (_a) {
|
|
727
|
-
switch (_a.label) {
|
|
728
|
-
case 0: return [4, this.oauthInstance.authApi.signIn(params)];
|
|
729
|
-
case 1:
|
|
730
|
-
_a.sent();
|
|
731
|
-
return [2, this.createLoginState(params)];
|
|
732
|
-
}
|
|
733
|
-
});
|
|
734
|
-
});
|
|
735
|
-
};
|
|
736
|
-
Auth.prototype.signUp = function (params) {
|
|
737
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
738
|
-
return __generator(this, function (_a) {
|
|
739
|
-
switch (_a.label) {
|
|
740
|
-
case 0: return [4, this.oauthInstance.authApi.signUp(params)];
|
|
741
|
-
case 1:
|
|
742
|
-
_a.sent();
|
|
743
|
-
return [2, this.createLoginState()];
|
|
744
|
-
}
|
|
745
|
-
});
|
|
746
|
-
});
|
|
747
|
-
};
|
|
748
|
-
Auth.prototype.setPassword = function (params) {
|
|
749
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
750
|
-
return __generator(this, function (_a) {
|
|
751
|
-
return [2, this.oauthInstance.authApi.setPassword(params)];
|
|
752
|
-
});
|
|
753
|
-
});
|
|
754
|
-
};
|
|
755
|
-
Auth.prototype.isUsernameRegistered = function (username) {
|
|
756
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
757
|
-
var exist;
|
|
758
|
-
return __generator(this, function (_a) {
|
|
759
|
-
switch (_a.label) {
|
|
760
|
-
case 0:
|
|
761
|
-
if (typeof username !== 'string') {
|
|
762
|
-
throwError(ERRORS.INVALID_PARAMS, 'username must be a string');
|
|
763
|
-
}
|
|
764
|
-
return [4, this.oauthInstance.authApi.checkIfUserExist({ username: username })];
|
|
765
|
-
case 1:
|
|
766
|
-
exist = (_a.sent()).exist;
|
|
767
|
-
return [2, exist];
|
|
768
|
-
}
|
|
769
|
-
});
|
|
770
|
-
});
|
|
771
|
-
};
|
|
772
|
-
Auth.prototype.signOut = function () {
|
|
773
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
774
|
-
var userInfoKey;
|
|
775
|
-
return __generator(this, function (_a) {
|
|
776
|
-
switch (_a.label) {
|
|
777
|
-
case 0:
|
|
778
|
-
userInfoKey = this.cache.keys.userInfoKey;
|
|
779
|
-
return [4, this.oauthInstance.authApi.signOut()];
|
|
780
|
-
case 1:
|
|
781
|
-
_a.sent();
|
|
782
|
-
return [4, this.cache.removeStoreAsync(userInfoKey)];
|
|
783
|
-
case 2:
|
|
784
|
-
_a.sent();
|
|
785
|
-
eventBus.fire(EVENTS.LOGIN_STATE_CHANGED);
|
|
786
|
-
return [2];
|
|
787
|
-
}
|
|
788
|
-
});
|
|
789
|
-
});
|
|
790
|
-
};
|
|
791
|
-
Auth.prototype.hasLoginState = function () {
|
|
792
|
-
var _a;
|
|
793
|
-
if (this.cache.mode === 'async') {
|
|
794
|
-
printWarn(ERRORS.INVALID_OPERATION, 'current platform\'s storage is asynchronous, please use getLoginState insteed');
|
|
795
|
-
return;
|
|
796
|
-
}
|
|
797
|
-
var oauthLoginState = (_a = this.oauthInstance) === null || _a === void 0 ? void 0 : _a.authApi.hasLoginStateSync();
|
|
798
|
-
if (oauthLoginState) {
|
|
799
|
-
var loginState = new LoginState({
|
|
800
|
-
envId: this.config.env,
|
|
801
|
-
cache: this.cache,
|
|
802
|
-
oauthInstance: this.oauthInstance,
|
|
803
|
-
});
|
|
804
|
-
return loginState;
|
|
805
|
-
}
|
|
806
|
-
return null;
|
|
807
|
-
};
|
|
808
|
-
Auth.prototype.getLoginState = function () {
|
|
809
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
810
|
-
var oauthLoginState, loginState;
|
|
811
|
-
return __generator(this, function (_a) {
|
|
812
|
-
switch (_a.label) {
|
|
813
|
-
case 0: return [4, this.oauthInstance.authApi.getLoginState()];
|
|
814
|
-
case 1:
|
|
815
|
-
oauthLoginState = _a.sent();
|
|
816
|
-
if (oauthLoginState) {
|
|
817
|
-
loginState = new LoginState({
|
|
818
|
-
envId: this.config.env,
|
|
819
|
-
cache: this.cache,
|
|
820
|
-
oauthInstance: this.oauthInstance,
|
|
821
|
-
});
|
|
822
|
-
return [2, loginState];
|
|
823
|
-
}
|
|
824
|
-
return [2, null];
|
|
825
|
-
}
|
|
826
|
-
});
|
|
827
|
-
});
|
|
828
|
-
};
|
|
829
|
-
Auth.prototype.getUserInfo = function (params) {
|
|
830
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
831
|
-
return __generator(this, function (_a) {
|
|
832
|
-
return [2, this.oauthInstance.authApi.getUserInfo(params)];
|
|
833
|
-
});
|
|
834
|
-
});
|
|
835
|
-
};
|
|
836
|
-
Auth.prototype.getWedaUserInfo = function () {
|
|
837
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
838
|
-
return __generator(this, function (_a) {
|
|
839
|
-
return [2, this.oauthInstance.authApi.getWedaUserInfo()];
|
|
840
|
-
});
|
|
841
|
-
});
|
|
842
|
-
};
|
|
843
|
-
Auth.prototype.updateUserBasicInfo = function (params) {
|
|
844
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
845
|
-
var loginState;
|
|
846
|
-
return __generator(this, function (_a) {
|
|
847
|
-
switch (_a.label) {
|
|
848
|
-
case 0: return [4, this.getLoginState()];
|
|
849
|
-
case 1:
|
|
850
|
-
loginState = _a.sent();
|
|
851
|
-
if (!loginState) return [3, 3];
|
|
852
|
-
return [4, loginState.user.updateUserBasicInfo(params)];
|
|
853
|
-
case 2:
|
|
854
|
-
_a.sent();
|
|
855
|
-
_a.label = 3;
|
|
856
|
-
case 3: return [2];
|
|
857
|
-
}
|
|
858
|
-
});
|
|
859
|
-
});
|
|
860
|
-
};
|
|
861
|
-
Auth.prototype.getAuthHeader = function () {
|
|
862
|
-
console.error('Auth.getAuthHeader API 已废弃');
|
|
863
|
-
return {};
|
|
864
|
-
};
|
|
865
|
-
Auth.prototype.bindWithProvider = function (params) {
|
|
866
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
867
|
-
return __generator(this, function (_a) {
|
|
868
|
-
return [2, this.oauthInstance.authApi.bindWithProvider(params)];
|
|
869
|
-
});
|
|
870
|
-
});
|
|
871
|
-
};
|
|
872
|
-
Auth.prototype.queryUser = function (queryObj) {
|
|
873
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
874
|
-
return __generator(this, function (_a) {
|
|
875
|
-
return [2, this.oauthInstance.authApi.queryUserProfile(queryObj)];
|
|
876
|
-
});
|
|
877
|
-
});
|
|
878
|
-
};
|
|
879
|
-
Auth.prototype.getAccessToken = function () {
|
|
880
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
881
|
-
var oauthAccessTokenRes;
|
|
882
|
-
return __generator(this, function (_a) {
|
|
883
|
-
switch (_a.label) {
|
|
884
|
-
case 0: return [4, this.oauthInstance.oauth2client.getAccessToken()];
|
|
885
|
-
case 1:
|
|
886
|
-
oauthAccessTokenRes = _a.sent();
|
|
887
|
-
return [2, {
|
|
888
|
-
accessToken: oauthAccessTokenRes,
|
|
889
|
-
env: this.config.env,
|
|
890
|
-
}];
|
|
891
|
-
}
|
|
892
|
-
});
|
|
893
|
-
});
|
|
894
|
-
};
|
|
895
|
-
Auth.prototype.grantProviderToken = function (params) {
|
|
896
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
897
|
-
return __generator(this, function (_a) {
|
|
898
|
-
return [2, this.oauthInstance.authApi.grantProviderToken(params)];
|
|
899
|
-
});
|
|
900
|
-
});
|
|
901
|
-
};
|
|
902
|
-
Auth.prototype.patchProviderToken = function (params) {
|
|
903
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
904
|
-
return __generator(this, function (_a) {
|
|
905
|
-
return [2, this.oauthInstance.authApi.patchProviderToken(params)];
|
|
906
|
-
});
|
|
907
|
-
});
|
|
908
|
-
};
|
|
909
|
-
Auth.prototype.signInWithProvider = function (params) {
|
|
910
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
911
|
-
return __generator(this, function (_a) {
|
|
912
|
-
switch (_a.label) {
|
|
913
|
-
case 0: return [4, this.oauthInstance.authApi.signInWithProvider(params)];
|
|
914
|
-
case 1:
|
|
915
|
-
_a.sent();
|
|
916
|
-
return [2, this.createLoginState(params)];
|
|
917
|
-
}
|
|
918
|
-
});
|
|
919
|
-
});
|
|
920
|
-
};
|
|
921
|
-
Auth.prototype.signInWithWechat = function (params) {
|
|
922
|
-
if (params === void 0) { params = {}; }
|
|
923
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
924
|
-
return __generator(this, function (_a) {
|
|
925
|
-
switch (_a.label) {
|
|
926
|
-
case 0: return [4, this.oauthInstance.authApi.signInWithWechat(params)];
|
|
927
|
-
case 1:
|
|
928
|
-
_a.sent();
|
|
929
|
-
return [2, this.createLoginState(params)];
|
|
930
|
-
}
|
|
931
|
-
});
|
|
932
|
-
});
|
|
933
|
-
};
|
|
934
|
-
Auth.prototype.grantToken = function (params) {
|
|
935
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
936
|
-
return __generator(this, function (_a) {
|
|
937
|
-
switch (_a.label) {
|
|
938
|
-
case 0: return [4, this.oauthInstance.authApi.grantToken(params)];
|
|
939
|
-
case 1:
|
|
940
|
-
_a.sent();
|
|
941
|
-
return [2, this.createLoginState()];
|
|
942
|
-
}
|
|
943
|
-
});
|
|
944
|
-
});
|
|
945
|
-
};
|
|
946
|
-
Auth.prototype.genProviderRedirectUri = function (params) {
|
|
947
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
948
|
-
return __generator(this, function (_a) {
|
|
949
|
-
return [2, this.oauthInstance.authApi.genProviderRedirectUri(params)];
|
|
950
|
-
});
|
|
951
|
-
});
|
|
952
|
-
};
|
|
953
|
-
Auth.prototype.resetPassword = function (params) {
|
|
954
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
955
|
-
return __generator(this, function (_a) {
|
|
956
|
-
return [2, this.oauthInstance.authApi.resetPassword(params)];
|
|
957
|
-
});
|
|
958
|
-
});
|
|
959
|
-
};
|
|
960
|
-
Auth.prototype.deviceAuthorize = function (params) {
|
|
961
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
962
|
-
return __generator(this, function (_a) {
|
|
963
|
-
return [2, this.oauthInstance.authApi.deviceAuthorize(params)];
|
|
964
|
-
});
|
|
965
|
-
});
|
|
966
|
-
};
|
|
967
|
-
Auth.prototype.sudo = function (params) {
|
|
968
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
969
|
-
return __generator(this, function (_a) {
|
|
970
|
-
return [2, this.oauthInstance.authApi.sudo(params)];
|
|
971
|
-
});
|
|
972
|
-
});
|
|
973
|
-
};
|
|
974
|
-
Auth.prototype.deleteMe = function (params) {
|
|
975
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
976
|
-
return __generator(this, function (_a) {
|
|
977
|
-
return [2, this.oauthInstance.authApi.deleteMe(params)];
|
|
978
|
-
});
|
|
979
|
-
});
|
|
980
|
-
};
|
|
981
|
-
Auth.prototype.getProviders = function () {
|
|
982
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
983
|
-
return __generator(this, function (_a) {
|
|
984
|
-
return [2, this.oauthInstance.authApi.getProviders()];
|
|
985
|
-
});
|
|
986
|
-
});
|
|
987
|
-
};
|
|
988
|
-
Auth.prototype.loginScope = function () {
|
|
989
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
990
|
-
return __generator(this, function (_a) {
|
|
991
|
-
return [2, this.oauthInstance.authApi.loginScope()];
|
|
992
|
-
});
|
|
993
|
-
});
|
|
994
|
-
};
|
|
995
|
-
Auth.prototype.loginGroups = function () {
|
|
996
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
997
|
-
return __generator(this, function (_a) {
|
|
998
|
-
return [2, this.oauthInstance.authApi.loginGroups()];
|
|
999
|
-
});
|
|
1000
|
-
});
|
|
1001
|
-
};
|
|
1002
|
-
Auth.prototype.onLoginStateChanged = function (callback) {
|
|
1003
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1004
|
-
var loginState;
|
|
1005
|
-
var _this = this;
|
|
1006
|
-
return __generator(this, function (_a) {
|
|
1007
|
-
switch (_a.label) {
|
|
1008
|
-
case 0:
|
|
1009
|
-
eventBus.on(EVENTS.LOGIN_STATE_CHANGED, function () { return __awaiter(_this, void 0, void 0, function () {
|
|
1010
|
-
var loginState;
|
|
1011
|
-
return __generator(this, function (_a) {
|
|
1012
|
-
switch (_a.label) {
|
|
1013
|
-
case 0: return [4, this.getLoginState()];
|
|
1014
|
-
case 1:
|
|
1015
|
-
loginState = _a.sent();
|
|
1016
|
-
callback.call(this, loginState);
|
|
1017
|
-
return [2];
|
|
1018
|
-
}
|
|
1019
|
-
});
|
|
1020
|
-
}); });
|
|
1021
|
-
return [4, this.getLoginState()];
|
|
1022
|
-
case 1:
|
|
1023
|
-
loginState = _a.sent();
|
|
1024
|
-
callback.call(this, loginState);
|
|
1025
|
-
return [2];
|
|
1026
|
-
}
|
|
1027
|
-
});
|
|
1028
|
-
});
|
|
1029
|
-
};
|
|
1030
|
-
Auth.prototype.refreshTokenForce = function (params) {
|
|
1031
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1032
|
-
return __generator(this, function (_a) {
|
|
1033
|
-
return [2, this.oauthInstance.authApi.refreshTokenForce(params)];
|
|
1034
|
-
});
|
|
1035
|
-
});
|
|
1036
|
-
};
|
|
1037
|
-
Auth.prototype.getCredentials = function () {
|
|
1038
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1039
|
-
return __generator(this, function (_a) {
|
|
1040
|
-
return [2, this.oauthInstance.authApi.getCredentials()];
|
|
1041
|
-
});
|
|
1042
|
-
});
|
|
1043
|
-
};
|
|
1044
|
-
Auth.prototype.setCredentials = function (credentials) {
|
|
1045
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1046
|
-
return __generator(this, function (_a) {
|
|
1047
|
-
switch (_a.label) {
|
|
1048
|
-
case 0: return [4, this.oauthInstance.oauth2client.setCredentials(credentials)];
|
|
1049
|
-
case 1:
|
|
1050
|
-
_a.sent();
|
|
1051
|
-
return [2];
|
|
1052
|
-
}
|
|
1053
|
-
});
|
|
1054
|
-
});
|
|
1055
|
-
};
|
|
1056
|
-
Auth.prototype.getProviderSubType = function () {
|
|
1057
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1058
|
-
return __generator(this, function (_a) {
|
|
1059
|
-
return [2, this.oauthInstance.authApi.getProviderSubType()];
|
|
1060
|
-
});
|
|
1061
|
-
});
|
|
1062
|
-
};
|
|
1063
|
-
Auth.prototype.createCaptchaData = function (params) {
|
|
1064
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1065
|
-
return __generator(this, function (_a) {
|
|
1066
|
-
return [2, this.oauthInstance.authApi.createCaptchaData(params)];
|
|
1067
|
-
});
|
|
1068
|
-
});
|
|
1069
|
-
};
|
|
1070
|
-
Auth.prototype.verifyCaptchaData = function (params) {
|
|
1071
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1072
|
-
return __generator(this, function (_a) {
|
|
1073
|
-
return [2, this.oauthInstance.authApi.verifyCaptchaData(params)];
|
|
1074
|
-
});
|
|
1075
|
-
});
|
|
1076
|
-
};
|
|
1077
|
-
Auth.prototype.getMiniProgramQrCode = function (params) {
|
|
1078
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1079
|
-
return __generator(this, function (_a) {
|
|
1080
|
-
return [2, this.oauthInstance.authApi.getMiniProgramCode(params)];
|
|
1081
|
-
});
|
|
1082
|
-
});
|
|
1083
|
-
};
|
|
1084
|
-
Auth.prototype.getMiniProgramQrCodeStatus = function (params) {
|
|
1085
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1086
|
-
return __generator(this, function (_a) {
|
|
1087
|
-
return [2, this.oauthInstance.authApi.getMiniProgramQrCodeStatus(params)];
|
|
1088
|
-
});
|
|
1089
|
-
});
|
|
1090
|
-
};
|
|
1091
|
-
Auth.prototype.createLoginState = function (params) {
|
|
1092
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1093
|
-
var loginState;
|
|
1094
|
-
return __generator(this, function (_a) {
|
|
1095
|
-
switch (_a.label) {
|
|
1096
|
-
case 0:
|
|
1097
|
-
loginState = new LoginState({
|
|
1098
|
-
envId: this.config.env,
|
|
1099
|
-
cache: this.cache,
|
|
1100
|
-
oauthInstance: this.oauthInstance,
|
|
1101
|
-
});
|
|
1102
|
-
return [4, loginState.checkLocalStateAsync()];
|
|
1103
|
-
case 1:
|
|
1104
|
-
_a.sent();
|
|
1105
|
-
return [4, loginState.user.refresh(params)];
|
|
1106
|
-
case 2:
|
|
1107
|
-
_a.sent();
|
|
1108
|
-
eventBus.fire(EVENTS.LOGIN_STATE_CHANGED);
|
|
1109
|
-
return [2, loginState];
|
|
1110
|
-
}
|
|
1111
|
-
});
|
|
1112
|
-
});
|
|
1113
|
-
};
|
|
1114
|
-
__decorate([
|
|
1115
|
-
catchErrorsDecorator({
|
|
1116
|
-
title: '绑定手机号失败',
|
|
1117
|
-
messages: [
|
|
1118
|
-
'请确认以下各项:',
|
|
1119
|
-
' 1 - 调用 auth().bindPhoneNumber() 的语法或参数是否正确',
|
|
1120
|
-
' 2 - 当前环境是否开通了短信验证码登录',
|
|
1121
|
-
"\u5982\u679C\u95EE\u9898\u4F9D\u7136\u5B58\u5728\uFF0C\u5EFA\u8BAE\u5230\u5B98\u65B9\u95EE\u7B54\u793E\u533A\u63D0\u95EE\u6216\u5BFB\u627E\u5E2E\u52A9\uFF1A".concat(COMMUNITY_SITE_URL),
|
|
1122
|
-
],
|
|
1123
|
-
}),
|
|
1124
|
-
__metadata("design:type", Function),
|
|
1125
|
-
__metadata("design:paramtypes", [Object]),
|
|
1126
|
-
__metadata("design:returntype", Promise)
|
|
1127
|
-
], Auth.prototype, "bindPhoneNumber", null);
|
|
1128
|
-
__decorate([
|
|
1129
|
-
catchErrorsDecorator({
|
|
1130
|
-
title: '解除三方绑定失败',
|
|
1131
|
-
messages: [
|
|
1132
|
-
'请确认以下各项:',
|
|
1133
|
-
' 1 - 调用 auth().unbindProvider() 的语法或参数是否正确',
|
|
1134
|
-
' 2 - 当前账户是否已经与此登录方式解绑',
|
|
1135
|
-
"\u5982\u679C\u95EE\u9898\u4F9D\u7136\u5B58\u5728\uFF0C\u5EFA\u8BAE\u5230\u5B98\u65B9\u95EE\u7B54\u793E\u533A\u63D0\u95EE\u6216\u5BFB\u627E\u5E2E\u52A9\uFF1A".concat(COMMUNITY_SITE_URL),
|
|
1136
|
-
],
|
|
1137
|
-
}),
|
|
1138
|
-
__metadata("design:type", Function),
|
|
1139
|
-
__metadata("design:paramtypes", [Object]),
|
|
1140
|
-
__metadata("design:returntype", Promise)
|
|
1141
|
-
], Auth.prototype, "unbindProvider", null);
|
|
1142
|
-
__decorate([
|
|
1143
|
-
catchErrorsDecorator({
|
|
1144
|
-
title: '绑定邮箱地址失败',
|
|
1145
|
-
messages: [
|
|
1146
|
-
'请确认以下各项:',
|
|
1147
|
-
' 1 - 调用 auth().bindEmail() 的语法或参数是否正确',
|
|
1148
|
-
' 2 - 当前环境是否开通了邮箱密码登录',
|
|
1149
|
-
"\u5982\u679C\u95EE\u9898\u4F9D\u7136\u5B58\u5728\uFF0C\u5EFA\u8BAE\u5230\u5B98\u65B9\u95EE\u7B54\u793E\u533A\u63D0\u95EE\u6216\u5BFB\u627E\u5E2E\u52A9\uFF1A".concat(COMMUNITY_SITE_URL),
|
|
1150
|
-
],
|
|
1151
|
-
}),
|
|
1152
|
-
__metadata("design:type", Function),
|
|
1153
|
-
__metadata("design:paramtypes", [Object]),
|
|
1154
|
-
__metadata("design:returntype", void 0)
|
|
1155
|
-
], Auth.prototype, "bindEmail", null);
|
|
1156
|
-
__decorate([
|
|
1157
|
-
catchErrorsDecorator({
|
|
1158
|
-
title: '验证码验证失败',
|
|
1159
|
-
messages: [
|
|
1160
|
-
'请确认以下各项:',
|
|
1161
|
-
' 1 - 调用 auth().verify() 的语法或参数是否正确',
|
|
1162
|
-
' 2 - 当前环境是否开通了手机验证码/邮箱登录',
|
|
1163
|
-
"\u5982\u679C\u95EE\u9898\u4F9D\u7136\u5B58\u5728\uFF0C\u5EFA\u8BAE\u5230\u5B98\u65B9\u95EE\u7B54\u793E\u533A\u63D0\u95EE\u6216\u5BFB\u627E\u5E2E\u52A9\uFF1A".concat(COMMUNITY_SITE_URL),
|
|
1164
|
-
],
|
|
1165
|
-
}),
|
|
1166
|
-
__metadata("design:type", Function),
|
|
1167
|
-
__metadata("design:paramtypes", [Object]),
|
|
1168
|
-
__metadata("design:returntype", Promise)
|
|
1169
|
-
], Auth.prototype, "verify", null);
|
|
1170
|
-
__decorate([
|
|
1171
|
-
catchErrorsDecorator({
|
|
1172
|
-
title: '获取验证码失败',
|
|
1173
|
-
messages: [
|
|
1174
|
-
'请确认以下各项:',
|
|
1175
|
-
' 1 - 调用 auth().getVerification() 的语法或参数是否正确',
|
|
1176
|
-
' 2 - 当前环境是否开通了手机验证码/邮箱登录',
|
|
1177
|
-
"\u5982\u679C\u95EE\u9898\u4F9D\u7136\u5B58\u5728\uFF0C\u5EFA\u8BAE\u5230\u5B98\u65B9\u95EE\u7B54\u793E\u533A\u63D0\u95EE\u6216\u5BFB\u627E\u5E2E\u52A9\uFF1A".concat(COMMUNITY_SITE_URL),
|
|
1178
|
-
],
|
|
1179
|
-
}),
|
|
1180
|
-
__metadata("design:type", Function),
|
|
1181
|
-
__metadata("design:paramtypes", [Object]),
|
|
1182
|
-
__metadata("design:returntype", Promise)
|
|
1183
|
-
], Auth.prototype, "getVerification", null);
|
|
1184
|
-
__decorate([
|
|
1185
|
-
catchErrorsDecorator({
|
|
1186
|
-
title: '获取用户信息失败',
|
|
1187
|
-
messages: [
|
|
1188
|
-
'请确认以下各项:',
|
|
1189
|
-
' 1 - 调用 auth().getCurrentUser() 的语法或参数是否正确',
|
|
1190
|
-
"\u5982\u679C\u95EE\u9898\u4F9D\u7136\u5B58\u5728\uFF0C\u5EFA\u8BAE\u5230\u5B98\u65B9\u95EE\u7B54\u793E\u533A\u63D0\u95EE\u6216\u5BFB\u627E\u5E2E\u52A9\uFF1A".concat(COMMUNITY_SITE_URL),
|
|
1191
|
-
],
|
|
1192
|
-
}),
|
|
1193
|
-
__metadata("design:type", Function),
|
|
1194
|
-
__metadata("design:paramtypes", []),
|
|
1195
|
-
__metadata("design:returntype", Promise)
|
|
1196
|
-
], Auth.prototype, "getCurrentUser", null);
|
|
1197
|
-
__decorate([
|
|
1198
|
-
catchErrorsDecorator({
|
|
1199
|
-
title: '匿名登录失败',
|
|
1200
|
-
messages: [
|
|
1201
|
-
'请确认以下各项:',
|
|
1202
|
-
' 1 - 当前环境是否开启了匿名登录',
|
|
1203
|
-
' 2 - 调用 auth().signInAnonymously() 的语法或参数是否正确',
|
|
1204
|
-
"\u5982\u679C\u95EE\u9898\u4F9D\u7136\u5B58\u5728\uFF0C\u5EFA\u8BAE\u5230\u5B98\u65B9\u95EE\u7B54\u793E\u533A\u63D0\u95EE\u6216\u5BFB\u627E\u5E2E\u52A9\uFF1A".concat(COMMUNITY_SITE_URL),
|
|
1205
|
-
],
|
|
1206
|
-
}),
|
|
1207
|
-
__metadata("design:type", Function),
|
|
1208
|
-
__metadata("design:paramtypes", [Object]),
|
|
1209
|
-
__metadata("design:returntype", Promise)
|
|
1210
|
-
], Auth.prototype, "signInAnonymously", null);
|
|
1211
|
-
__decorate([
|
|
1212
|
-
catchErrorsDecorator({
|
|
1213
|
-
title: '小程序openId静默登录失败',
|
|
1214
|
-
messages: [
|
|
1215
|
-
'请确认以下各项:',
|
|
1216
|
-
' 1 - 当前环境是否开启了小程序openId静默登录',
|
|
1217
|
-
' 2 - 调用 auth().signInWithOpenId() 的语法或参数是否正确',
|
|
1218
|
-
"\u5982\u679C\u95EE\u9898\u4F9D\u7136\u5B58\u5728\uFF0C\u5EFA\u8BAE\u5230\u5B98\u65B9\u95EE\u7B54\u793E\u533A\u63D0\u95EE\u6216\u5BFB\u627E\u5E2E\u52A9\uFF1A".concat(COMMUNITY_SITE_URL),
|
|
1219
|
-
],
|
|
1220
|
-
}),
|
|
1221
|
-
__metadata("design:type", Function),
|
|
1222
|
-
__metadata("design:paramtypes", [Object]),
|
|
1223
|
-
__metadata("design:returntype", Promise)
|
|
1224
|
-
], Auth.prototype, "signInWithOpenId", null);
|
|
1225
|
-
__decorate([
|
|
1226
|
-
catchErrorsDecorator({
|
|
1227
|
-
title: '小程序unionId静默登录失败',
|
|
1228
|
-
messages: [
|
|
1229
|
-
'请确认以下各项:',
|
|
1230
|
-
' 1 - 当前环境是否开启了小程序unionId静默登录',
|
|
1231
|
-
' 2 - 调用 auth().signInWithUnionId() 的语法或参数是否正确',
|
|
1232
|
-
"\u5982\u679C\u95EE\u9898\u4F9D\u7136\u5B58\u5728\uFF0C\u5EFA\u8BAE\u5230\u5B98\u65B9\u95EE\u7B54\u793E\u533A\u63D0\u95EE\u6216\u5BFB\u627E\u5E2E\u52A9\uFF1A".concat(COMMUNITY_SITE_URL),
|
|
1233
|
-
],
|
|
1234
|
-
}),
|
|
1235
|
-
__metadata("design:type", Function),
|
|
1236
|
-
__metadata("design:paramtypes", []),
|
|
1237
|
-
__metadata("design:returntype", Promise)
|
|
1238
|
-
], Auth.prototype, "signInWithUnionId", null);
|
|
1239
|
-
__decorate([
|
|
1240
|
-
catchErrorsDecorator({
|
|
1241
|
-
title: '小程序手机号授权登录失败',
|
|
1242
|
-
messages: [
|
|
1243
|
-
'请确认以下各项:',
|
|
1244
|
-
' 1 - 当前环境是否开启了小程序手机号授权登录',
|
|
1245
|
-
' 2 - 调用 auth().signInWithPhoneAuth() 的语法或参数是否正确',
|
|
1246
|
-
"\u5982\u679C\u95EE\u9898\u4F9D\u7136\u5B58\u5728\uFF0C\u5EFA\u8BAE\u5230\u5B98\u65B9\u95EE\u7B54\u793E\u533A\u63D0\u95EE\u6216\u5BFB\u627E\u5E2E\u52A9\uFF1A".concat(COMMUNITY_SITE_URL),
|
|
1247
|
-
],
|
|
1248
|
-
}),
|
|
1249
|
-
__metadata("design:type", Function),
|
|
1250
|
-
__metadata("design:paramtypes", [Object]),
|
|
1251
|
-
__metadata("design:returntype", Promise)
|
|
1252
|
-
], Auth.prototype, "signInWithPhoneAuth", null);
|
|
1253
|
-
__decorate([
|
|
1254
|
-
catchErrorsDecorator({
|
|
1255
|
-
title: '小程序短信验证码登陆',
|
|
1256
|
-
messages: [
|
|
1257
|
-
'请确认以下各项:',
|
|
1258
|
-
' 1 - 当前环境是否开启了小程序短信验证码登陆',
|
|
1259
|
-
' 2 - 调用 auth().signInWithSms() 的语法或参数是否正确',
|
|
1260
|
-
"\u5982\u679C\u95EE\u9898\u4F9D\u7136\u5B58\u5728\uFF0C\u5EFA\u8BAE\u5230\u5B98\u65B9\u95EE\u7B54\u793E\u533A\u63D0\u95EE\u6216\u5BFB\u627E\u5E2E\u52A9\uFF1A".concat(COMMUNITY_SITE_URL),
|
|
1261
|
-
],
|
|
1262
|
-
}),
|
|
1263
|
-
__metadata("design:type", Function),
|
|
1264
|
-
__metadata("design:paramtypes", [Object]),
|
|
1265
|
-
__metadata("design:returntype", Promise)
|
|
1266
|
-
], Auth.prototype, "signInWithSms", null);
|
|
1267
|
-
__decorate([
|
|
1268
|
-
catchErrorsDecorator({
|
|
1269
|
-
title: '自定义登录失败',
|
|
1270
|
-
messages: [
|
|
1271
|
-
'请确认以下各项:',
|
|
1272
|
-
' 1 - 当前环境是否开启了自定义登录',
|
|
1273
|
-
' 2 - 调用 auth().signInWithCustomTicket() 的语法或参数是否正确',
|
|
1274
|
-
' 3 - ticket 是否归属于当前环境',
|
|
1275
|
-
' 4 - 创建 ticket 的自定义登录私钥是否过期',
|
|
1276
|
-
"\u5982\u679C\u95EE\u9898\u4F9D\u7136\u5B58\u5728\uFF0C\u5EFA\u8BAE\u5230\u5B98\u65B9\u95EE\u7B54\u793E\u533A\u63D0\u95EE\u6216\u5BFB\u627E\u5E2E\u52A9\uFF1A".concat(COMMUNITY_SITE_URL),
|
|
1277
|
-
],
|
|
1278
|
-
}),
|
|
1279
|
-
__metadata("design:type", Function),
|
|
1280
|
-
__metadata("design:paramtypes", [Object]),
|
|
1281
|
-
__metadata("design:returntype", Promise)
|
|
1282
|
-
], Auth.prototype, "signInWithCustomTicket", null);
|
|
1283
|
-
__decorate([
|
|
1284
|
-
catchErrorsDecorator({
|
|
1285
|
-
title: '注册失败',
|
|
1286
|
-
messages: [
|
|
1287
|
-
'请确认以下各项:',
|
|
1288
|
-
' 1 - 当前环境是否开启了指定登录方式',
|
|
1289
|
-
' 2 - 调用 auth().signUp() 的语法或参数是否正确',
|
|
1290
|
-
"\u5982\u679C\u95EE\u9898\u4F9D\u7136\u5B58\u5728\uFF0C\u5EFA\u8BAE\u5230\u5B98\u65B9\u95EE\u7B54\u793E\u533A\u63D0\u95EE\u6216\u5BFB\u627E\u5E2E\u52A9\uFF1A".concat(COMMUNITY_SITE_URL),
|
|
1291
|
-
],
|
|
1292
|
-
}),
|
|
1293
|
-
__metadata("design:type", Function),
|
|
1294
|
-
__metadata("design:paramtypes", [Object]),
|
|
1295
|
-
__metadata("design:returntype", Promise)
|
|
1296
|
-
], Auth.prototype, "signUp", null);
|
|
1297
|
-
__decorate([
|
|
1298
|
-
catchErrorsDecorator({
|
|
1299
|
-
title: '获取用户是否被占用失败',
|
|
1300
|
-
messages: [
|
|
1301
|
-
'请确认以下各项:',
|
|
1302
|
-
' 1 - 调用 auth().isUsernameRegistered() 的语法或参数是否正确',
|
|
1303
|
-
"\u5982\u679C\u95EE\u9898\u4F9D\u7136\u5B58\u5728\uFF0C\u5EFA\u8BAE\u5230\u5B98\u65B9\u95EE\u7B54\u793E\u533A\u63D0\u95EE\u6216\u5BFB\u627E\u5E2E\u52A9\uFF1A".concat(COMMUNITY_SITE_URL),
|
|
1304
|
-
],
|
|
1305
|
-
}),
|
|
1306
|
-
__metadata("design:type", Function),
|
|
1307
|
-
__metadata("design:paramtypes", [String]),
|
|
1308
|
-
__metadata("design:returntype", Promise)
|
|
1309
|
-
], Auth.prototype, "isUsernameRegistered", null);
|
|
1310
|
-
__decorate([
|
|
1311
|
-
catchErrorsDecorator({
|
|
1312
|
-
title: '用户登出失败',
|
|
1313
|
-
messages: [
|
|
1314
|
-
'请确认以下各项:',
|
|
1315
|
-
' 1 - 调用 auth().signOut() 的语法或参数是否正确',
|
|
1316
|
-
' 2 - 当前用户是否为匿名登录(匿名登录不支持signOut)',
|
|
1317
|
-
"\u5982\u679C\u95EE\u9898\u4F9D\u7136\u5B58\u5728\uFF0C\u5EFA\u8BAE\u5230\u5B98\u65B9\u95EE\u7B54\u793E\u533A\u63D0\u95EE\u6216\u5BFB\u627E\u5E2E\u52A9\uFF1A".concat(COMMUNITY_SITE_URL),
|
|
1318
|
-
],
|
|
1319
|
-
}),
|
|
1320
|
-
__metadata("design:type", Function),
|
|
1321
|
-
__metadata("design:paramtypes", []),
|
|
1322
|
-
__metadata("design:returntype", Promise)
|
|
1323
|
-
], Auth.prototype, "signOut", null);
|
|
1324
|
-
__decorate([
|
|
1325
|
-
catchErrorsDecorator({
|
|
1326
|
-
title: '获取本地登录态失败',
|
|
1327
|
-
messages: [
|
|
1328
|
-
'请确认以下各项:',
|
|
1329
|
-
' 1 - 调用 auth().getLoginState() 的语法或参数是否正确',
|
|
1330
|
-
"\u5982\u679C\u95EE\u9898\u4F9D\u7136\u5B58\u5728\uFF0C\u5EFA\u8BAE\u5230\u5B98\u65B9\u95EE\u7B54\u793E\u533A\u63D0\u95EE\u6216\u5BFB\u627E\u5E2E\u52A9\uFF1A".concat(COMMUNITY_SITE_URL),
|
|
1331
|
-
],
|
|
1332
|
-
}),
|
|
1333
|
-
__metadata("design:type", Function),
|
|
1334
|
-
__metadata("design:paramtypes", []),
|
|
1335
|
-
__metadata("design:returntype", Promise)
|
|
1336
|
-
], Auth.prototype, "getLoginState", null);
|
|
1337
|
-
__decorate([
|
|
1338
|
-
catchErrorsDecorator({
|
|
1339
|
-
title: '获取用户信息失败',
|
|
1340
|
-
messages: [
|
|
1341
|
-
'请确认以下各项:',
|
|
1342
|
-
' 1 - 是否已登录',
|
|
1343
|
-
' 2 - 调用 auth().getUserInfo() 的语法或参数是否正确',
|
|
1344
|
-
"\u5982\u679C\u95EE\u9898\u4F9D\u7136\u5B58\u5728\uFF0C\u5EFA\u8BAE\u5230\u5B98\u65B9\u95EE\u7B54\u793E\u533A\u63D0\u95EE\u6216\u5BFB\u627E\u5E2E\u52A9\uFF1A".concat(COMMUNITY_SITE_URL),
|
|
1345
|
-
],
|
|
1346
|
-
}),
|
|
1347
|
-
__metadata("design:type", Function),
|
|
1348
|
-
__metadata("design:paramtypes", [Object]),
|
|
1349
|
-
__metadata("design:returntype", Promise)
|
|
1350
|
-
], Auth.prototype, "getUserInfo", null);
|
|
1351
|
-
__decorate([
|
|
1352
|
-
catchErrorsDecorator({
|
|
1353
|
-
title: '获取微搭插件用户信息失败',
|
|
1354
|
-
messages: [
|
|
1355
|
-
'请确认以下各项:',
|
|
1356
|
-
' 1 - 是否已登录',
|
|
1357
|
-
' 2 - 调用 auth().getWedaUserInfo() 的语法或参数是否正确',
|
|
1358
|
-
"\u5982\u679C\u95EE\u9898\u4F9D\u7136\u5B58\u5728\uFF0C\u5EFA\u8BAE\u5230\u5B98\u65B9\u95EE\u7B54\u793E\u533A\u63D0\u95EE\u6216\u5BFB\u627E\u5E2E\u52A9\uFF1A".concat(COMMUNITY_SITE_URL),
|
|
1359
|
-
],
|
|
1360
|
-
}),
|
|
1361
|
-
__metadata("design:type", Function),
|
|
1362
|
-
__metadata("design:paramtypes", []),
|
|
1363
|
-
__metadata("design:returntype", Promise)
|
|
1364
|
-
], Auth.prototype, "getWedaUserInfo", null);
|
|
1365
|
-
__decorate([
|
|
1366
|
-
catchErrorsDecorator({
|
|
1367
|
-
title: '绑定第三方登录方式失败',
|
|
1368
|
-
messages: [
|
|
1369
|
-
'请确认以下各项:',
|
|
1370
|
-
' 1 - 调用 auth().bindWithProvider() 的语法或参数是否正确',
|
|
1371
|
-
' 2 - 此账户是否已经绑定此第三方',
|
|
1372
|
-
"\u5982\u679C\u95EE\u9898\u4F9D\u7136\u5B58\u5728\uFF0C\u5EFA\u8BAE\u5230\u5B98\u65B9\u95EE\u7B54\u793E\u533A\u63D0\u95EE\u6216\u5BFB\u627E\u5E2E\u52A9\uFF1A".concat(COMMUNITY_SITE_URL),
|
|
1373
|
-
],
|
|
1374
|
-
}),
|
|
1375
|
-
__metadata("design:type", Function),
|
|
1376
|
-
__metadata("design:paramtypes", [Object]),
|
|
1377
|
-
__metadata("design:returntype", Promise)
|
|
1378
|
-
], Auth.prototype, "bindWithProvider", null);
|
|
1379
|
-
__decorate([
|
|
1380
|
-
catchErrorsDecorator({
|
|
1381
|
-
title: '获取身份源类型',
|
|
1382
|
-
messages: [
|
|
1383
|
-
'请确认以下各项:',
|
|
1384
|
-
' 1 - 调用 auth().getProviderSubType() 的语法或参数是否正确',
|
|
1385
|
-
"\u5982\u679C\u95EE\u9898\u4F9D\u7136\u5B58\u5728\uFF0C\u5EFA\u8BAE\u5230\u5B98\u65B9\u95EE\u7B54\u793E\u533A\u63D0\u95EE\u6216\u5BFB\u627E\u5E2E\u52A9\uFF1A".concat(COMMUNITY_SITE_URL),
|
|
1386
|
-
],
|
|
1387
|
-
}),
|
|
1388
|
-
__metadata("design:type", Function),
|
|
1389
|
-
__metadata("design:paramtypes", []),
|
|
1390
|
-
__metadata("design:returntype", Promise)
|
|
1391
|
-
], Auth.prototype, "getProviderSubType", null);
|
|
1392
|
-
return Auth;
|
|
1393
|
-
}());
|
|
1394
|
-
export function generateAuthInstance(config, options) {
|
|
1395
|
-
var _a = config.region, region = _a === void 0 ? 'ap-shanghai' : _a;
|
|
1396
|
-
var runtime = ((options === null || options === void 0 ? void 0 : options.platform) || {}).runtime;
|
|
1397
|
-
var _b = options || {}, env = _b.env, clientId = _b.clientId, debug = _b.debug, cache = _b.cache, cloudbase = _b.app;
|
|
1398
|
-
var apiOrigin = (options || {}).apiOrigin;
|
|
1399
|
-
if (!apiOrigin) {
|
|
1400
|
-
apiOrigin = "https://".concat(env, ".").concat(region, ".tcb-api.tencentcloudapi.com");
|
|
1401
|
-
}
|
|
1402
|
-
var oauthInstance = new CloudbaseOAuth(useAuthAdapter({
|
|
1403
|
-
env: env,
|
|
1404
|
-
clientId: clientId,
|
|
1405
|
-
apiOrigin: apiOrigin,
|
|
1406
|
-
storage: config === null || config === void 0 ? void 0 : config.storage,
|
|
1407
|
-
baseRequest: config === null || config === void 0 ? void 0 : config.baseRequest,
|
|
1408
|
-
request: config === null || config === void 0 ? void 0 : config.request,
|
|
1409
|
-
anonymousSignInFunc: config === null || config === void 0 ? void 0 : config.anonymousSignInFunc,
|
|
1410
|
-
captchaOptions: config === null || config === void 0 ? void 0 : config.captchaOptions,
|
|
1411
|
-
wxCloud: config === null || config === void 0 ? void 0 : config.wxCloud,
|
|
1412
|
-
}));
|
|
1413
|
-
var authInstance = new Auth({
|
|
1414
|
-
env: env,
|
|
1415
|
-
region: region,
|
|
1416
|
-
persistence: config.persistence,
|
|
1417
|
-
debug: debug,
|
|
1418
|
-
cache: cache
|
|
1419
|
-
|| new CloudbaseCache({
|
|
1420
|
-
persistence: config.persistence,
|
|
1421
|
-
keys: { userInfoKey: "user_info_".concat(env) },
|
|
1422
|
-
platformInfo: options === null || options === void 0 ? void 0 : options.platform,
|
|
1423
|
-
}),
|
|
1424
|
-
runtime: runtime || 'web',
|
|
1425
|
-
_fromApp: cloudbase,
|
|
1426
|
-
oauthInstance: oauthInstance,
|
|
1427
|
-
});
|
|
1428
|
-
return { authInstance: authInstance, oauthInstance: oauthInstance };
|
|
1429
|
-
}
|
|
1430
|
-
var component = {
|
|
1431
|
-
name: COMPONENT_NAME,
|
|
1432
|
-
namespace: 'auth',
|
|
1433
|
-
entity: function (config) {
|
|
1434
|
-
if (config === void 0) { config = {
|
|
1435
|
-
region: '',
|
|
1436
|
-
persistence: 'local',
|
|
1437
|
-
}; }
|
|
1438
|
-
if (this.authInstance) {
|
|
1439
|
-
printWarn(ERRORS.INVALID_OPERATION, 'every cloudbase instance should has only one auth object');
|
|
1440
|
-
return this.authInstance;
|
|
1441
|
-
}
|
|
1442
|
-
var adapter = this.platform.adapter;
|
|
1443
|
-
var newPersistence = config.persistence || adapter.primaryStorage;
|
|
1444
|
-
if (newPersistence && newPersistence !== this.config.persistence) {
|
|
1445
|
-
this.updateConfig({ persistence: newPersistence });
|
|
1446
|
-
}
|
|
1447
|
-
var _a = generateAuthInstance(__assign(__assign({ wxCloud: this.config.wxCloud, storage: this.config.storage }, config), { persistence: this.config.persistence }), {
|
|
1448
|
-
env: this.config.env,
|
|
1449
|
-
clientId: this.config.clientId,
|
|
1450
|
-
apiOrigin: this.request.getBaseEndPoint(),
|
|
1451
|
-
platform: this.platform,
|
|
1452
|
-
cache: this.cache,
|
|
1453
|
-
app: this,
|
|
1454
|
-
debug: this.config.debug,
|
|
1455
|
-
}), authInstance = _a.authInstance, oauthInstance = _a.oauthInstance;
|
|
1456
|
-
this.oauthInstance = oauthInstance;
|
|
1457
|
-
this.authInstance = authInstance;
|
|
1458
|
-
return this.authInstance;
|
|
1459
|
-
},
|
|
1460
|
-
};
|
|
1461
|
-
try {
|
|
1462
|
-
cloudbase.registerComponent(component);
|
|
1463
|
-
}
|
|
1464
|
-
catch (e) { }
|
|
1465
|
-
export { Auth };
|
|
1466
|
-
export function registerAuth(app) {
|
|
1467
|
-
try {
|
|
1468
|
-
app.registerComponent(component);
|
|
1469
|
-
}
|
|
1470
|
-
catch (e) {
|
|
1471
|
-
console.warn(e);
|
|
1472
|
-
}
|
|
1473
|
-
}
|
|
1474
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBNEIsTUFBTSxrQkFBa0IsQ0FBQTtBQUV2RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQzFDLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQixjQUFjLEVBQ2QsY0FBYyxHQUNmLE1BQU0sYUFBYSxDQUFBO0FBS3BCLElBQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQTtBQUU3QixJQUFNLE1BQU0sR0FBRztJQUViLG1CQUFtQixFQUFFLG1CQUFtQjtDQUN6QyxDQUFBO0FBa0JELElBQU0sUUFBUSxHQUFHLElBQUkscUJBQXFCLEVBQUUsQ0FBQTtBQU81QztJQXVCRSxjQUFZLE9BQXFCO1FBQ3ZCLElBQUEsS0FBSyxHQUFvQixPQUFPLE1BQTNCLEVBQUUsYUFBYSxHQUFLLE9BQU8sY0FBWixDQUFZO1FBQ3hDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFBO1FBRWxDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUNwQixDQUFDO0lBSVksNkJBQWMsR0FBM0I7OztnQkFDRSxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQVcsQ0FBQTtnQkFDakQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFXLENBQUE7Z0JBQ3ZELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNB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Q0FBQyxFQUFFO1FBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtLQUNoQjtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IElDbG91ZGJhc2UsIElDbG91ZGJhc2VDb25maWcgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBJQ2xvdWRiYXNlQ2FjaGUgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL2NhY2hlJ1xuaW1wb3J0IHR5cGUgeyBJQ2xvdWRiYXNlUmVxdWVzdCB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMvcmVxdWVzdCdcbmltcG9ydCB0eXBlIHsgSUNsb3VkYmFzZUF1dGhDb25maWcsIElVc2VyLCBJVXNlckluZm8sIElMb2dpblN0YXRlIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9hdXRoJ1xuaW1wb3J0IHR5cGUgeyBJQ2xvdWRiYXNlQ29tcG9uZW50IH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9jb21wb25lbnQnXG5cbmltcG9ydCB7IGF1dGhNb2RlbHMsIENsb3VkYmFzZU9BdXRoLCBBdXRoT3B0aW9ucywgQ3JlZGVudGlhbHMgfSBmcm9tICdAY2xvdWRiYXNlL29hdXRoJ1xuaW1wb3J0IHR5cGUgeyBHcmFudFByb3ZpZGVyVG9rZW5SZXNwb25zZSwgUHJvdmlkZXJTdWJUeXBlIH0gZnJvbSAnQGNsb3VkYmFzZS9vYXV0aC9kaXN0L2Nqcy9hdXRoL21vZGVscydcbmltcG9ydCB7IHVzZUF1dGhBZGFwdGVyIH0gZnJvbSAnLi9hZGFwdGVyJ1xuaW1wb3J0IHtcbiAgcHJpbnRXYXJuLFxuICB0aHJvd0Vycm9yLFxuICBFUlJPUlMsXG4gIENPTU1VTklUWV9TSVRFX1VSTCxcbiAgY2F0Y2hFcnJvcnNEZWNvcmF0b3IsXG4gIENsb3VkYmFzZUV2ZW50RW1pdHRlcixcbiAgQ2xvdWRiYXNlQ2FjaGUsXG4gIGFkYXB0ZXJGb3JXeE1wLFxufSBmcm9tICcuL3V0aWxpdGllcydcblxuZGVjbGFyZSBjb25zdCBjbG91ZGJhc2U6IElDbG91ZGJhc2VcbmRlY2xhcmUgY29uc3Qgd3g6IGFueVxuXG5jb25zdCBDT01QT05FTlRfTkFNRSA9ICdhdXRoJ1xuXG5jb25zdCBFVkVOVFMgPSB7XG4gIC8vIOeZu+W9leaAgeaUueWPmOWQjuinpuWPkVxuICBMT0dJTl9TVEFURV9DSEFOR0VEOiAnbG9naW5TdGF0ZUNoYW5nZWQnLFxufVxuXG5pbnRlcmZhY2UgVXNlckluZm8ge1xuICB1aWQ/OiBzdHJpbmdcbiAgZ2VuZGVyPzogc3RyaW5nXG4gIHBpY3R1cmU/OiBzdHJpbmdcbiAgZW1haWw/OiBzdHJpbmdcbiAgZW1haWxfdmVyaWZpZWQ/OiBib29sZWFuXG4gIHBob25lX251bWJlcj86IHN0cmluZ1xuICB1c2VybmFtZT86IHN0cmluZ1xuICBuYW1lPzogc3RyaW5nXG4gIGJpcnRoZGF0ZT86IHN0cmluZ1xuICB6b25laW5mbz86IHN0cmluZ1xuICBsb2NhbGU/OiBzdHJpbmdcbiAgc3ViPzogc3RyaW5nXG4gIGNyZWF0ZWRfZnJvbT86IHN0cmluZ1xufVxuXG5jb25zdCBldmVudEJ1cyA9IG5ldyBDbG91ZGJhc2VFdmVudEVtaXR0ZXIoKVxuXG5pbnRlcmZhY2UgSVVzZXJPcHRpb25zIHtcbiAgY2FjaGU6IElDbG91ZGJhc2VDYWNoZVxuICBvYXV0aEluc3RhbmNlOiBDbG91ZGJhc2VPQXV0aFxufVxuXG5jbGFzcyBVc2VyIGltcGxlbWVudHMgSVVzZXIge1xuICBwdWJsaWMgdWlkPzogc3RyaW5nXG4gIHB1YmxpYyBnZW5kZXI/OiBzdHJpbmdcbiAgcHVibGljIHBpY3R1cmU/OiBzdHJpbmdcbiAgcHVibGljIGVtYWlsPzogc3RyaW5nXG4gIHB1YmxpYyBlbWFpbFZlcmlmaWVkPzogYm9vbGVhblxuICBwdWJsaWMgcGhvbmVOdW1iZXI/OiBzdHJpbmdcbiAgcHVibGljIHVzZXJuYW1lPzogc3RyaW5nXG4gIHB1YmxpYyBuYW1lPzogc3RyaW5nXG4gIHB1YmxpYyBwcm92aWRlcnM/OiB7XG4gICAgaWQ/OiBzdHJpbmdcbiAgICBwcm92aWRlclVzZXJJZD86IHN0cmluZ1xuICAgIG5hbWU/OiBzdHJpbmdcbiAgfVtdXG4gIHB1YmxpYyBiaXJ0aGRhdGU/OiBzdHJpbmdcbiAgcHVibGljIHpvbmVpbmZvPzogc3RyaW5nXG4gIHB1YmxpYyBsb2NhbGU/OiBzdHJpbmdcbiAgcHVibGljIHN1Yj86IHN0cmluZ1xuICBwdWJsaWMgY3JlYXRlZEZyb20/OiBzdHJpbmdcblxuICBwcml2YXRlIGNhY2hlOiBJQ2xvdWRiYXNlQ2FjaGVcbiAgcHJpdmF0ZSBvYXV0aEluc3RhbmNlOiBDbG91ZGJhc2VPQXV0aCAvLyBDbG91ZGJhc2VPQXV0aCDnsbvlnotcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJVXNlck9wdGlvbnMpIHtcbiAgICBjb25zdCB7IGNhY2hlLCBvYXV0aEluc3RhbmNlIH0gPSBvcHRpb25zXG4gICAgdGhpcy5jYWNoZSA9IGNhY2hlXG4gICAgdGhpcy5vYXV0aEluc3RhbmNlID0gb2F1dGhJbnN0YW5jZVxuXG4gICAgdGhpcy5zZXRVc2VySW5mbygpXG4gIH1cbiAgLyoqXG4gICAqIOiOt+WPluacrOWcsOeUqOaIt+S/oeaBry3lkIzmraVcbiAgICovXG4gIHB1YmxpYyBhc3luYyBjaGVja0xvY2FsSW5mbygpIHtcbiAgICB0aGlzLnVpZCA9IHRoaXMuZ2V0TG9jYWxVc2VySW5mbygndWlkJykgYXMgc3RyaW5nXG4gICAgdGhpcy5nZW5kZXIgPSB0aGlzLmdldExvY2FsVXNlckluZm8oJ2dlbmRlcicpIGFzIHN0cmluZ1xuICAgIHRoaXMucGljdHVyZSA9IHRoaXMuZ2V0TG9jYWxVc2VySW5mbygncGljdHVyZScpIGFzIHN0cmluZ1xuICAgIHRoaXMuZW1haWwgPSB0aGlzLmdldExvY2FsVXNlckluZm8oJ2VtYWlsJykgYXMgc3RyaW5nXG4gICAgdGhpcy5lbWFpbFZlcmlmaWVkID0gdGhpcy5nZXRMb2NhbFVzZXJJbmZvKCdlbWFpbF92ZXJpZmllZCcpIGFzIGJvb2xlYW5cbiAgICB0aGlzLnBob25lTnVtYmVyID0gdGhpcy5nZXRMb2NhbFVzZXJJbmZvKCdwaG9uZV9udW1iZXInKSBhcyBzdHJpbmdcbiAgICB0aGlzLnVzZXJuYW1lID0gdGhpcy5nZXRMb2NhbFVzZXJJbmZvKCd1c2VybmFtZScpIGFzIHN0cmluZ1xuICAgIHRoaXMubmFtZSA9IHRoaXMuZ2V0TG9jYWxVc2VySW5mbygnbmFtZScpIGFzIHN0cmluZ1xuICAgIHRoaXMuYmlydGhkYXRlID0gdGhpcy5nZXRMb2NhbFVzZXJJbmZvKCdiaXJ0aGRhdGUnKSBhcyBzdHJpbmdcbiAgICB0aGlzLnpvbmVpbmZvID0gdGhpcy5nZXRMb2NhbFVzZXJJbmZvKCd6b25laW5mbycpIGFzIHN0cmluZ1xuICAgIHRoaXMubG9jYWxlID0gdGhpcy5nZXRMb2NhbFVzZXJJbmZvKCdsb2NhbGUnKSBhcyBzdHJpbmdcbiAgICB0aGlzLnN1YiA9IHRoaXMuZ2V0TG9jYWxVc2VySW5mbygnc3ViJykgYXMgc3RyaW5nXG4gICAgdGhpcy5jcmVhdGVkRnJvbSA9IHRoaXMuZ2V0TG9jYWxVc2VySW5mbygnY3JlYXRlZF9mcm9tJykgYXMgc3RyaW5nXG4gICAgdGhpcy5wcm92aWRlcnMgPSB0aGlzLmdldExvY2FsVXNlckluZm8oJ3Byb3ZpZGVycycpIGFzIGFueVxuICB9XG4gIC8qKlxuICAgKiDojrflj5bmnKzlnLDnlKjmiLfkv6Hmga8t5byC5q2lXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2hlY2tMb2NhbEluZm9Bc3luYygpIHtcbiAgICB0aGlzLnVpZCA9IGF3YWl0IHRoaXMuZ2V0TG9jYWxVc2VySW5mb0FzeW5jKCd1aWQnKVxuICAgIHRoaXMuZ2VuZGVyID0gYXdhaXQgdGhpcy5nZXRMb2NhbFVzZXJJbmZvQXN5bmMoJ2dlbmRlcicpXG4gICAgdGhpcy5waWN0dXJlID0gdGhpcy5nZXRMb2NhbFVzZXJJbmZvKCdwaWN0dXJlJykgYXMgc3RyaW5nXG4gICAgdGhpcy5lbWFpbCA9IGF3YWl0IHRoaXMuZ2V0TG9jYWxVc2VySW5mb0FzeW5jKCdlbWFpbCcpXG4gICAgdGhpcy5lbWFpbFZlcmlmaWVkID0gdGhpcy5nZXRMb2NhbFVzZXJJbmZvKCdlbWFpbF92ZXJpZmllZCcpIGFzIGJvb2xlYW5cbiAgICB0aGlzLnBob25lTnVtYmVyID0gdGhpcy5nZXRMb2NhbFVzZXJJbmZvKCdwaG9uZV9udW1iZXInKSBhcyBzdHJpbmdcbiAgICB0aGlzLnVzZXJuYW1lID0gYXdhaXQgdGhpcy5nZXRMb2NhbFVzZXJJbmZvQXN5bmMoJ3VzZXJuYW1lJylcbiAgICB0aGlzLm5hbWUgPSB0aGlzLmdldExvY2FsVXNlckluZm8oJ25hbWUnKSBhcyBzdHJpbmdcbiAgICB0aGlzLmJpcnRoZGF0ZSA9IHRoaXMuZ2V0TG9jYWxVc2VySW5mbygnYmlydGhkYXRlJykgYXMgc3RyaW5nXG4gICAgdGhpcy56b25laW5mbyA9IHRoaXMuZ2V0TG9jYWxVc2VySW5mbygnem9uZWluZm8nKSBhcyBzdHJpbmdcbiAgICB0aGlzLmxvY2FsZSA9IHRoaXMuZ2V0TG9jYWxVc2VySW5mbygnbG9jYWxlJykgYXMgc3RyaW5nXG4gICAgdGhpcy5zdWIgPSB0aGlzLmdldExvY2FsVXNlckluZm8oJ3N1YicpIGFzIHN0cmluZ1xuICAgIHRoaXMuY3JlYXRlZEZyb20gPSB0aGlzLmdldExvY2FsVXNlckluZm8oJ2NyZWF0ZWRfZnJvbScpIGFzIHN0cmluZ1xuICAgIHRoaXMucHJvdmlkZXJzID0gdGhpcy5nZXRMb2NhbFVzZXJJbmZvKCdwcm92aWRlcnMnKSBhcyBhbnlcbiAgfVxuXG4gIC8qKlxuICAgKiDmm7TmlrDnlKjmiLfkv6Hmga9cbiAgICogQHBhcmFtIHVzZXJJbmZvXG4gICAqL1xuICBAY2F0Y2hFcnJvcnNEZWNvcmF0b3Ioe1xuICAgIHRpdGxlOiAn5pu05paw55So5oi35L+h5oGv5aSx6LSlJyxcbiAgICBtZXNzYWdlczogW1xuICAgICAgJ+ivt+ehruiupOS7peS4i+WQhOmhue+8micsXG4gICAgICAnICAxIC0g6LCD55SoIFVzZXIudXBkYXRlKCkg55qE6K+t5rOV5oiW5Y+C5pWw5piv5ZCm5q2j56GuJyxcbiAgICAgICcgIDIgLSDnlKjmiLfkv6Hmga/kuK3mmK/lkKbljIXlkKvpnZ7ms5XlgLwnLFxuICAgICAgYOWmguaenOmXrumimOS+neeEtuWtmOWcqO+8jOW7uuiuruWIsOWumOaWuemXruetlOekvuWMuuaPkOmXruaIluWvu+aJvuW4ruWKqe+8miR7Q09NTVVOSVRZX1NJVEVfVVJMfWAsXG4gICAgXSxcbiAgfSlcbiAgcHVibGljIGFzeW5jIHVwZGF0ZSh1c2VySW5mbzogYXV0aE1vZGVscy5Vc2VyUHJvZmlsZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIGNvbnN0IHsgbmFtZSwgZ2VuZGVyLCBhdmF0YXJVcmwsIHByb3ZpbmNlLCBjb3VudHJ5LCBjaXR5IH0gPSB1c2VySW5mb1xuICAgIGNvbnN0IG5ld1VzZXJJbmZvID0gYXdhaXQgdGhpcy5vYXV0aEluc3RhbmNlLmF1dGhBcGkuc2V0VXNlclByb2ZpbGUoeyAuLi51c2VySW5mbyB9KVxuXG4gICAgdGhpcy5zZXRMb2NhbFVzZXJJbmZvKG5ld1VzZXJJbmZvKVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwZGF0ZVVzZXJCYXNpY0luZm8ocGFyYW1zOiBhdXRoTW9kZWxzLk1vZGlmeVVzZXJCYXNpY0luZm9SZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5vYXV0aEluc3RhbmNlLmF1dGhBcGkudXBkYXRlVXNlckJhc2ljSW5mbyh7IC4uLnBhcmFtcyB9KVxuICAgIHRoaXMuc2V0TG9jYWxVc2VySW5mbyh7IHVzZXJuYW1lOiBwYXJhbXMudXNlcm5hbWUgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiDmm7TmlrDlr4bnoIFcbiAgICogQHBhcmFtIG5ld1Bhc3N3b3JkXG4gICAqIEBwYXJhbSBvbGRQYXNzd29yZFxuICAgKi9cbiAgQGNhdGNoRXJyb3JzRGVjb3JhdG9yKHtcbiAgICB0aXRsZTogJ+abtOaWsOWvhueggeWksei0pScsXG4gICAgbWVzc2FnZXM6IFtcbiAgICAgICfor7fnoa7orqTku6XkuIvlkITpobnvvJonLFxuICAgICAgJyAgMSAtIOiwg+eUqCBVc2VyLnVwZGF0ZVBhc3N3b3JkKCkg55qE6K+t5rOV5oiW5Y+C5pWw5piv5ZCm5q2j56GuJyxcbiAgICAgICcgIDMgLSDmlrDlr4bnoIHkuK3mmK/lkKbljIXlkKvpnZ7ms5XlrZfnrKYnLFxuICAgICAgYOWmguaenOmXrumimOS+neeEtuWtmOWcqO+8jOW7uuiuruWIsOWumOaWuemXruetlOekvuWMuuaPkOmXruaIluWvu+aJvuW4ruWKqe+8miR7Q09NTVVOSVRZX1NJVEVfVVJMfWAsXG4gICAgXSxcbiAgfSlcbiAgcHVibGljIHVwZGF0ZVBhc3N3b3JkKG5ld1Bhc3N3b3JkOiBzdHJpbmcsIG9sZFBhc3N3b3JkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vYXV0aEluc3RhbmNlLmF1dGhBcGkudXBkYXRlUGFzc3dvcmRCeU9sZCh7XG4gICAgICBvbGRfcGFzc3dvcmQ6IG9sZFBhc3N3b3JkLFxuICAgICAgbmV3X3Bhc3N3b3JkOiBuZXdQYXNzd29yZCxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIOabtOaWsOeUqOaIt+WQjVxuICAgKiBAcGFyYW0gdXNlcm5hbWVcbiAgICovXG4gIEBjYXRjaEVycm9yc0RlY29yYXRvcih7XG4gICAgdGl0bGU6ICfmm7TmlrDnlKjmiLflkI3lpLHotKUnLFxuICAgIG1lc3NhZ2VzOiBbXG4gICAgICAn6K+356Gu6K6k5Lul5LiL5ZCE6aG577yaJyxcbiAgICAgICcgIDEgLSDosIPnlKggVXNlci51cGRhdGVVc2VybmFtZSgpIOeahOivreazleaIluWPguaVsOaYr+WQpuato+ehricsXG4gICAgICAnICAyIC0g5b2T5YmN546v5aKD5piv5ZCm5byA6YCa5LqG55So5oi35ZCN5a+G56CB55m75b2VJyxcbiAgICAgIGDlpoLmnpzpl67popjkvp3nhLblrZjlnKjvvIzlu7rorq7liLDlrpjmlrnpl67nrZTnpL7ljLrmj5Dpl67miJblr7vmib7luK7liqnvvJoke0NPTU1VTklUWV9TSVRFX1VSTH1gLFxuICAgIF0sXG4gIH0pXG4gIHB1YmxpYyB1cGRhdGVVc2VybmFtZSh1c2VybmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiB1c2VybmFtZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93RXJyb3IoRVJST1JTLklOVkFMSURfUEFSQU1TLCAndXNlcm5hbWUgbXVzdCBiZSBhIHN0cmluZycpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudXBkYXRlKHtcbiAgICAgIHVzZXJuYW1lLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICog5Yi35paw5pys5Zyw55So5oi35L+h5oGv44CC5b2T55So5oi35Zyo5YW25LuW5a6i5oi356uv5pu05paw55So5oi35L+h5oGv5LmL5ZCO77yM5Y+v5Lul6LCD55So5q2k5o6l5Y+j5ZCM5q2l5pu05paw5LmL5ZCO55qE5L+h5oGv44CCXG4gICAqL1xuICBAY2F0Y2hFcnJvcnNEZWNvcmF0b3Ioe1xuICAgIHRpdGxlOiAn5Yi35paw5pys5Zyw55So5oi35L+h5oGv5aSx6LSlJyxcbiAgICBtZXNzYWdlczogW1xuICAgICAgJ+ivt+ehruiupOS7peS4i+WQhOmhue+8micsXG4gICAgICAnICAxIC0g6LCD55SoIFVzZXIucmVmcmVzaCgpIOeahOivreazleaIluWPguaVsOaYr+WQpuato+ehricsXG4gICAgICBg5aaC5p6c6Zeu6aKY5L6d54S25a2Y5Zyo77yM5bu66K6u5Yiw5a6Y5pa56Zeu562U56S+5Yy65o+Q6Zeu5oiW5a+75om+5biu5Yqp77yaJHtDT01NVU5JVFlfU0lURV9VUkx9YCxcbiAgICBdLFxuICB9KVxuICBwdWJsaWMgYXN5bmMgcmVmcmVzaChwYXJhbXM/OiB7IHZlcnNpb24/OiBzdHJpbmc7IHF1ZXJ5PzogYW55IH0pOiBQcm9taXNlPElVc2VySW5mbz4ge1xuICAgIGNvbnN0IG5ld1VzZXJJbmZvID0gYXdhaXQgdGhpcy5vYXV0aEluc3RhbmNlLmF1dGhBcGkuZ2V0VXNlckluZm8ocGFyYW1zKVxuICAgIHRoaXMuc2V0TG9jYWxVc2VySW5mbyhuZXdVc2VySW5mbylcbiAgICByZXR1cm4gbmV3VXNlckluZm9cbiAgfVxuXG4gIHByaXZhdGUgZ2V0TG9jYWxVc2VySW5mbyhrZXk6IHN0cmluZyk6IHN0cmluZyB8IGJvb2xlYW4ge1xuICAgIGNvbnN0IHsgdXNlckluZm9LZXkgfSA9IHRoaXMuY2FjaGUua2V5c1xuICAgIGNvbnN0IHVzZXJJbmZvID0gdGhpcy5jYWNoZS5nZXRTdG9yZSh1c2VySW5mb0tleSlcbiAgICByZXR1cm4gdXNlckluZm9ba2V5XVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRMb2NhbFVzZXJJbmZvQXN5bmMoa2V5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHsgdXNlckluZm9LZXkgfSA9IHRoaXMuY2FjaGUua2V5c1xuICAgIGNvbnN0IHVzZXJJbmZvID0gYXdhaXQgdGhpcy5jYWNoZS5nZXRTdG9yZUFzeW5jKHVzZXJJbmZvS2V5KVxuICAgIHJldHVybiB1c2VySW5mb1trZXldXG4gIH1cblxuICBwcml2YXRlIHNldFVzZXJJbmZvKCkge1xuICAgIGNvbnN0IHsgdXNlckluZm9LZXkgfSA9IHRoaXMuY2FjaGUua2V5c1xuICAgIGNvbnN0IHVzZXJJbmZvID0gdGhpcy5jYWNoZS5nZXRTdG9yZSh1c2VySW5mb0tleSlcbiAgICA7W1xuICAgICAgJ3VpZCcsXG4gICAgICAnZW1haWwnLFxuICAgICAgJ25hbWUnLFxuICAgICAgJ2dlbmRlcicsXG4gICAgICAncGljdHVyZScsXG4gICAgICAnZW1haWxfdmVyaWZpZWQnLFxuICAgICAgJ3Bob25lX251bWJlcicsXG4gICAgICAnYmlydGhkYXRlJyxcbiAgICAgICd6b25laW5mbycsXG4gICAgICAnbG9jYWxlJyxcbiAgICAgICdzdWInLFxuICAgICAgJ2NyZWF0ZWRfZnJvbScsXG4gICAgICAncHJvdmlkZXJzJyxcbiAgICAgICd1c2VybmFtZScsXG4gICAgXS5mb3JFYWNoKChpbmZvS2V5KSA9PiB7XG4gICAgICB0aGlzW2luZm9LZXldID0gdXNlckluZm9baW5mb0tleV1cbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRMb2NhbFVzZXJJbmZvKHVzZXJJbmZvOiBhbnkpIHtcbiAgICBjb25zdCB7IHVzZXJJbmZvS2V5IH0gPSB0aGlzLmNhY2hlLmtleXNcbiAgICB0aGlzLmNhY2hlLnNldFN0b3JlKHVzZXJJbmZvS2V5LCB1c2VySW5mbylcbiAgICB0aGlzLnNldFVzZXJJbmZvKClcbiAgfVxufVxuaW50ZXJmYWNlIElMb2dpblN0YXRlT3B0aW9ucyBleHRlbmRzIElVc2VyT3B0aW9ucyB7XG4gIGVudklkOiBzdHJpbmdcbn1cbmV4cG9ydCBjbGFzcyBMb2dpblN0YXRlIGltcGxlbWVudHMgSUxvZ2luU3RhdGUge1xuICBwdWJsaWMgdXNlcjogSVVzZXJcbiAgcHVibGljIG9hdXRoTG9naW5TdGF0ZTogYW55XG5cbiAgcHJpdmF0ZSBvYXV0aEluc3RhbmNlOiBDbG91ZGJhc2VPQXV0aFxuICBwcml2YXRlIGNhY2hlOiBJQ2xvdWRiYXNlQ2FjaGVcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJTG9naW5TdGF0ZU9wdGlvbnMpIHtcbiAgICBjb25zdCB7IGVudklkLCBjYWNoZSwgb2F1dGhJbnN0YW5jZSB9ID0gb3B0aW9uc1xuICAgIGlmICghZW52SWQpIHtcbiAgICAgIHRocm93RXJyb3IoRVJST1JTLklOVkFMSURfUEFSQU1TLCAnZW52SWQgaXMgbm90IGRlZmluZWQnKVxuICAgIH1cbiAgICB0aGlzLmNhY2hlID0gY2FjaGVcbiAgICB0aGlzLm9hdXRoSW5zdGFuY2UgPSBvYXV0aEluc3RhbmNlXG5cbiAgICB0aGlzLnVzZXIgPSBuZXcgVXNlcih7XG4gICAgICBjYWNoZTogdGhpcy5jYWNoZSxcbiAgICAgIG9hdXRoSW5zdGFuY2UsXG4gICAgfSlcbiAgfVxuXG4gIHB1YmxpYyBjaGVja0xvY2FsU3RhdGUoKSB7XG4gICAgdGhpcy5vYXV0aExvZ2luU3RhdGUgPSB0aGlzLm9hdXRoSW5zdGFuY2U/LmF1dGhBcGkuaGFzTG9naW5TdGF0ZVN5bmMoKVxuICAgIHRoaXMudXNlci5jaGVja0xvY2FsSW5mbygpXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2hlY2tMb2NhbFN0YXRlQXN5bmMoKSB7XG4gICAgYXdhaXQgdGhpcy5vYXV0aEluc3RhbmNlPy5hdXRoQXBpLmdldExvZ2luU3RhdGUoKVxuICAgIGF3YWl0IHRoaXMudXNlci5jaGVja0xvY2FsSW5mb0FzeW5jKClcbiAgfVxufVxuXG5jbGFzcyBBdXRoIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IElDbG91ZGJhc2VBdXRoQ29uZmlnXG4gIHByaXZhdGUgcmVhZG9ubHkgY2FjaGU6IElDbG91ZGJhc2VDYWNoZVxuXG4gIHByaXZhdGUgb2F1dGhJbnN0YW5jZTogQ2xvdWRiYXNlT0F1dGhcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IElDbG91ZGJhc2VBdXRoQ29uZmlnICYgeyBjYWNoZTogSUNsb3VkYmFzZUNhY2hlOyByZXF1ZXN0PzogSUNsb3VkYmFzZVJlcXVlc3Q7IHJ1bnRpbWU/OiBzdHJpbmcgfSwpIHtcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZ1xuICAgIHRoaXMuY2FjaGUgPSBjb25maWcuY2FjaGVcbiAgICB0aGlzLm9hdXRoSW5zdGFuY2UgPSBjb25maWcub2F1dGhJbnN0YW5jZVxuICB9XG5cbiAgLyoqXG4gICAqIOe7keWumuaJi+acuuWPt1xuICAgKiBAcGFyYW0gcGhvbmVOdW1iZXJcbiAgICogQHBhcmFtIHBob25lQ29kZVxuICAgKi9cbiAgQGNhdGNoRXJyb3JzRGVjb3JhdG9yKHtcbiAgICB0aXRsZTogJ+e7keWumuaJi+acuuWPt+Wksei0pScsXG4gICAgbWVzc2FnZXM6IFtcbiAgICAgICfor7fnoa7orqTku6XkuIvlkITpobnvvJonLFxuICAgICAgJyAgMSAtIOiwg+eUqCBhdXRoKCkuYmluZFBob25lTnVtYmVyKCkg55qE6K+t5rOV5oiW5Y+C5pWw5piv5ZCm5q2j56GuJyxcbiAgICAgICcgIDIgLSDlvZPliY3njq/looPmmK/lkKblvIDpgJrkuobnn63kv6Hpqozor4HnoIHnmbvlvZUnLFxuICAgICAgYOWmguaenOmXrumimOS+neeEtuWtmOWcqO+8jOW7uuiuruWIsOWumOaWuemXruetlOekvuWMuuaPkOmXruaIluWvu+aJvuW4ruWKqe+8miR7Q09NTVVOSVRZX1NJVEVfVVJMfWAsXG4gICAgXSxcbiAgfSlcbiAgcHVibGljIGFzeW5jIGJpbmRQaG9uZU51bWJlcihwYXJhbXM6IGF1dGhNb2RlbHMuQmluZFBob25lUmVxdWVzdCkge1xuICAgIHJldHVybiB0aGlzLm9hdXRoSW5zdGFuY2UuYXV0aEFwaS5lZGl0Q29udGFjdChwYXJhbXMpXG4gIH1cblxuICAvKipcbiAgICog6Kej57uR5LiJ5pa557uR5a6aXG4gICAqIEBwYXJhbSBsb2dpblR5cGVcbiAgICovXG4gIEBjYXRjaEVycm9yc0RlY29yYXRvcih7XG4gICAgdGl0bGU6ICfop6PpmaTkuInmlrnnu5HlrprlpLHotKUnLFxuICAgIG1lc3NhZ2VzOiBbXG4gICAgICAn6K+356Gu6K6k5Lul5LiL5ZCE6aG577yaJyxcbiAgICAgICcgIDEgLSDosIPnlKggYXV0aCgpLnVuYmluZFByb3ZpZGVyKCkg55qE6K+t5rOV5oiW5Y+C5pWw5piv5ZCm5q2j56GuJyxcbiAgICAgICcgIDIgLSDlvZPliY3otKbmiLfmmK/lkKblt7Lnu4/kuI7mraTnmbvlvZXmlrnlvI/op6Pnu5EnLFxuICAgICAgYOWmguaenOmXrumimOS+neeEtuWtmOWcqO+8jOW7uuiuruWIsOWumOaWuemXruetlOekvuWMuuaPkOmXruaIluWvu+aJvuW4ruWKqe+8miR7Q09NTVVOSVRZX1NJVEVfVVJMfWAsXG4gICAgXSxcbiAgfSlcbiAgcHVibGljIGFzeW5jIHVuYmluZFByb3ZpZGVyKHBhcmFtczogYXV0aE1vZGVscy5VbmJpbmRQcm92aWRlclJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5vYXV0aEluc3RhbmNlLmF1dGhBcGkudW5iaW5kUHJvdmlkZXIocGFyYW1zKVxuICB9XG5cbiAgLyoqXG4gICAqIOabtOaWsOmCrueuseWcsOWdgFxuICAgKiBAcGFyYW0gZW1haWxcbiAgICogQHBhcmFtIHN1ZG9fdG9rZW5cbiAgICogQHBhcmFtIHZlcmlmaWNhdGlvbl90b2tlblxuICAgKi9cbiAgQGNhdGNoRXJyb3JzRGVjb3JhdG9yKHtcbiAgICB0aXRsZTogJ+e7keWumumCrueuseWcsOWdgOWksei0pScsXG4gICAgbWVzc2FnZXM6IFtcbiAgICAgICfor7fnoa7orqTku6XkuIvlkITpobnvvJonLFxuICAgICAgJyAgMSAtIOiwg+eUqCBhdXRoKCkuYmluZEVtYWlsKCkg55qE6K+t5rOV5oiW5Y+C5pWw5piv5ZCm5q2j56GuJyxcbiAgICAgICcgIDIgLSDlvZPliY3njq/looPmmK/lkKblvIDpgJrkuobpgq7nrrHlr4bnoIHnmbvlvZUnLFxuICAgICAgYOWmguaenOmXrumimOS+neeEtuWtmOWcqO+8jOW7uuiuruWIsOWumOaWuemXruetlOekvuWMuuaPkOmXruaIluWvu+aJvuW4ruWKqe+8miR7Q09NTVVOSVRZX1NJVEVfVVJMfWAsXG4gICAgXSxcbiAgfSlcbiAgcHVibGljIGJpbmRFbWFpbChwYXJhbXM6IGF1dGhNb2RlbHMuQmluZEVtYWlsUmVxdWVzdCkge1xuICAgIHJldHVybiB0aGlzLm9hdXRoSW5zdGFuY2UuYXV0aEFwaS5lZGl0Q29udGFjdChwYXJhbXMpXG4gIH1cblxuICAvKipcbiAgICogdmVyaWZ5XG4gICAqIEBwYXJhbSB7YXV0aE1vZGVscy5WZXJpZnlSZXF1ZXN0fSBwYXJhbXNcbiAgICogQHJldHVybnMge1Byb21pc2U8YXV0aE1vZGVscy5WZXJpZnlSZXNwb25zZT59XG4gICAqIEBtZW1iZXJvZiBVc2VyXG4gICAqL1xuICBAY2F0Y2hFcnJvcnNEZWNvcmF0b3Ioe1xuICAgIHRpdGxlOiAn6aqM6K+B56CB6aqM6K+B5aSx6LSlJyxcbiAgICBtZXNzYWdlczogW1xuICAgICAgJ+ivt+ehruiupOS7peS4i+WQhOmhue+8micsXG4gICAgICAnICAxIC0g6LCD55SoIGF1dGgoKS52ZXJpZnkoKSDnmoTor63ms5XmiJblj4LmlbDmmK/lkKbmraPnoa4nLFxuICAgICAgJyAgMiAtIOW9k+WJjeeOr+Wig+aYr+WQpuW8gOmAmuS6huaJi+acuumqjOivgeeggS/pgq7nrrHnmbvlvZUnLFxuICAgICAgYOWmguaenOmXrumimOS+neeEtuWtmOWcqO+8jOW7uuiuruWIsOWumOaWuemXruetlOekvuWMuuaPkOmXruaIluWvu+aJvuW4ruWKqe+8miR7Q09NTVVOSVRZX1NJVEVfVVJMfWAsXG4gICAgXSxcbiAgfSlcbiAgcHVibGljIGFzeW5jIHZlcmlmeShwYXJhbXM6IGF1dGhNb2RlbHMuVmVyaWZ5UmVxdWVzdCk6IFByb21pc2U8YXV0aE1vZGVscy5WZXJpZnlSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLm9hdXRoSW5zdGFuY2UuYXV0aEFwaS52ZXJpZnkocGFyYW1zKVxuICB9XG5cbiAgLyoqXG4gICAqIOiOt+WPlumqjOivgeeggVxuICAgKiBAcGFyYW0ge2F1dGhNb2RlbHMuR2V0VmVyaWZpY2F0aW9uUmVxdWVzdH0gcGFyYW1zXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGF1dGhNb2RlbHMuR2V0VmVyaWZpY2F0aW9uUmVzcG9uc2U+fVxuICAgKiBAbWVtYmVyb2YgVXNlclxuICAgKi9cbiAgQGNhdGNoRXJyb3JzRGVjb3JhdG9yKHtcbiAgICB0aXRsZTogJ+iOt+WPlumqjOivgeeggeWksei0pScsXG4gICAgbWVzc2FnZXM6IFtcbiAgICAgICfor7fnoa7orqTku6XkuIvlkITpobnvvJonLFxuICAgICAgJyAgMSAtIOiwg+eUqCBhdXRoKCkuZ2V0VmVyaWZpY2F0aW9uKCkg55qE6K+t5rOV5oiW5Y+C5pWw5piv5ZCm5q2j56GuJyxcbiAgICAgICcgIDIgLSDlvZPliY3njq/looPmmK/lkKblvIDpgJrkuobmiYvmnLrpqozor4HnoIEv6YKu566x55m75b2VJyxcbiAgICAgIGDlpoLmnpzpl67popjkvp3nhLblrZjlnKjvvIzlu7rorq7liLDlrpjmlrnpl67nrZTnpL7ljLrmj5Dpl67miJblr7vmib7luK7liqnvvJoke0NPTU1VTklUWV9TSVRFX1VSTH1gLFxuICAgIF0sXG4gIH0pXG4gIHB1YmxpYyBhc3luYyBnZXRWZXJpZmljYXRpb24ocGFyYW1zOiBhdXRoTW9kZWxzLkdldFZlcmlmaWNhdGlvblJlcXVlc3QpOiBQcm9taXNlPGF1dGhNb2RlbHMuR2V0VmVyaWZpY2F0aW9uUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5vYXV0aEluc3RhbmNlLmF1dGhBcGkuZ2V0VmVyaWZpY2F0aW9uKHBhcmFtcylcbiAgfVxuXG4gIC8qKlxuICAgKiDojrflj5blvZPliY3nmbvlvZXnmoTnlKjmiLfkv6Hmga8t5ZCM5q2lXG4gICAqL1xuICBnZXQgY3VycmVudFVzZXIoKSB7XG4gICAgaWYgKHRoaXMuY2FjaGUubW9kZSA9PT0gJ2FzeW5jJykge1xuICAgICAgLy8gYXN5bmMgc3RvcmFnZeeahOW5s+WPsOiwg+eUqOatpEFQSeaPkOekulxuICAgICAgcHJpbnRXYXJuKFxuICAgICAgICBFUlJPUlMuSU5WQUxJRF9PUEVSQVRJT04sXG4gICAgICAgICdjdXJyZW50IHBsYXRmb3JtXFwncyBzdG9yYWdlIGlzIGFzeW5jaHJvbm91cywgcGxlYXNlIHVzZSBnZXRDdXJyZW50VXNlciBpbnN0ZWVkJyxcbiAgICAgIClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGxvZ2luU3RhdGUgPSB0aGlzLmhhc0xvZ2luU3RhdGUoKVxuXG4gICAgaWYgKGxvZ2luU3RhdGUpIHtcbiAgICAgIHJldHVybiBsb2dpblN0YXRlLnVzZXIgfHwgbnVsbFxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLyoqXG4gICAqIOiOt+WPluW9k+WJjeeZu+W9leeahOeUqOaIt+S/oeaBry3lvILmraVcbiAgICovXG4gIEBjYXRjaEVycm9yc0RlY29yYXRvcih7XG4gICAgdGl0bGU6ICfojrflj5bnlKjmiLfkv6Hmga/lpLHotKUnLFxuICAgIG1lc3NhZ2VzOiBbXG4gICAgICAn6K+356Gu6K6k5Lul5LiL5ZCE6aG577yaJyxcbiAgICAgICcgIDEgLSDosIPnlKggYXV0aCgpLmdldEN1cnJlbnRVc2VyKCkg55qE6K+t5rOV5oiW5Y+C5pWw5piv5ZCm5q2j56GuJyxcbiAgICAgIGDlpoLmnpzpl67popjkvp3nhLblrZjlnKjvvIzlu7rorq7liLDlrpjmlrnpl67nrZTnpL7ljLrmj5Dpl67miJblr7vmib7luK7liqnvvJoke0NPTU1VTklUWV9TSVRFX1VSTH1gLFxuICAgIF0sXG4gIH0pXG4gIHB1YmxpYyBhc3luYyBnZXRDdXJyZW50VXNlcigpIHtcbiAgICBjb25zdCBsb2dpblN0YXRlID0gYXdhaXQgdGhpcy5nZXRMb2dpblN0YXRlKClcbiAgICBpZiAobG9naW5TdGF0ZSkge1xuICAgICAgYXdhaXQgbG9naW5TdGF0ZS51c2VyLmNoZWNrTG9jYWxJbmZvQXN5bmMoKVxuICAgICAgcmV0dXJuIGxvZ2luU3RhdGUudXNlciB8fCBudWxsXG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICAvKipcbiAgICog5Yy/5ZCN55m75b2VXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPExvZ2luU3RhdGU+fVxuICAgKiBAbWVtYmVyb2YgQXV0aFxuICAgKi9cbiAgQGNhdGNoRXJyb3JzRGVjb3JhdG9yKHtcbiAgICB0aXRsZTogJ+WMv+WQjeeZu+W9leWksei0pScsXG4gICAgbWVzc2FnZXM6IFtcbiAgICAgICfor7fnoa7orqTku6XkuIvlkITpobnvvJonLFxuICAgICAgJyAgMSAtIOW9k+WJjeeOr+Wig+aYr+WQpuW8gOWQr+S6huWMv+WQjeeZu+W9lScsXG4gICAgICAnICAyIC0g6LCD55SoIGF1dGgoKS5zaWduSW5Bbm9ueW1vdXNseSgpIOeahOivreazleaIluWPguaVsOaYr+WQpuato+ehricsXG4gICAgICBg5aaC5p6c6Zeu6aKY5L6d54S25a2Y5Zyo77yM5bu66K6u5Yiw5a6Y5pa56Zeu562U56S+5Yy65o+Q6Zeu5oiW5a+75om+5biu5Yqp77yaJHtDT01NVU5JVFlfU0lURV9VUkx9YCxcbiAgICBdLFxuICB9KVxuICBwdWJsaWMgYXN5bmMgc2lnbkluQW5vbnltb3VzbHkoZGF0YToge1xuICAgIHByb3ZpZGVyX3Rva2VuPzogc3RyaW5nXG4gIH0gPSB7fSwpOiBQcm9taXNlPExvZ2luU3RhdGU+IHtcbiAgICBhd2FpdCB0aGlzLm9hdXRoSW5zdGFuY2UuYXV0aEFwaS5zaWduSW5Bbm9ueW1vdXNseShkYXRhKVxuICAgIHJldHVybiB0aGlzLmNyZWF0ZUxvZ2luU3RhdGUoKVxuICB9XG5cbiAgLyoqXG4gICAqIOWwj+eoi+W6j29wZW5JZOmdmem7mOeZu+W9lVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxMb2dpblN0YXRlPn1cbiAgICogQG1lbWJlcm9mIEF1dGhcbiAgICovXG4gIEBjYXRjaEVycm9yc0RlY29yYXRvcih7XG4gICAgdGl0bGU6ICflsI/nqIvluo9vcGVuSWTpnZnpu5jnmbvlvZXlpLHotKUnLFxuICAgIG1lc3NhZ2VzOiBbXG4gICAgICAn6K+356Gu6K6k5Lul5LiL5ZCE6aG577yaJyxcbiAgICAgICcgIDEgLSDlvZPliY3njq/looPmmK/lkKblvIDlkK/kuoblsI/nqIvluo9vcGVuSWTpnZnpu5jnmbvlvZUnLFxuICAgICAgJyAgMiAtIOiwg+eUqCBhdXRoKCkuc2lnbkluV2l0aE9wZW5JZCgpIOeahOivreazleaIluWPguaVsOaYr+WQpuato+ehricsXG4gICAgICBg5aaC5p6c6Zeu6aKY5L6d54S25a2Y5Zyo77yM5bu66K6u5Yiw5a6Y5pa56Zeu562U56S+5Yy65o+Q6Zeu5oiW5a+75om+5biu5Yqp77yaJHtDT01NVU5JVFlfU0lURV9VUkx9YCxcbiAgICBdLFxuICB9KVxuICBwdWJsaWMgYXN5bmMgc2lnbkluV2l0aE9wZW5JZCh7IHVzZVd4Q2xvdWQgPSB0cnVlIH0gPSB7fSk6IFByb21pc2U8TG9naW5TdGF0ZT4ge1xuICAgIGlmICghYWRhcHRlckZvcld4TXAuaXNNYXRjaCgpKSB7XG4gICAgICB0aHJvdyBFcnJvcignd3ggYXBpIHVuZGVmaW5lZCcpXG4gICAgfVxuXG4gICAgaWYgKHVzZVd4Q2xvdWQpIHtcbiAgICAgIGNvbnN0IHd4SW5mbyA9IHd4LmdldEFjY291bnRJbmZvU3luYygpLm1pbmlQcm9ncmFtXG4gICAgICBsZXQgcmVzdWx0OiBHcmFudFByb3ZpZGVyVG9rZW5SZXNwb25zZSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuICAgICAgbGV0IGNyZWRlbnRpYWxzOiBDcmVkZW50aWFscyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuICAgICAgdHJ5IHtcbiAgICAgICAgcmVzdWx0ID0gYXdhaXQgdGhpcy5vYXV0aEluc3RhbmNlLmF1dGhBcGkuZ3JhbnRQcm92aWRlclRva2VuKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGVyX2lkOiB3eEluZm8/LmFwcElkLFxuICAgICAgICAgICAgcHJvdmlkZXJfcGFyYW1zOiB7XG4gICAgICAgICAgICAgIHByb3ZpZGVyX2NvZGVfdHlwZTogJ29wZW5faWQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRydWUsXG4gICAgICAgIClcblxuICAgICAgICBpZiAoKHJlc3VsdCBhcyBhbnkpPy5lcnJvcl9jb2RlKSB7XG4gICAgICAgICAgdGhyb3cgcmVzdWx0XG4gICAgICAgIH1cblxuICAgICAgICBjcmVkZW50aWFscyA9IGF3YWl0IHRoaXMub2F1dGhJbnN0YW5jZS5hdXRoQXBpLnNpZ25JbldpdGhQcm92aWRlcihcbiAgICAgICAgICB7IHByb3ZpZGVyX3Rva2VuOiByZXN1bHQucHJvdmlkZXJfdG9rZW4gfSxcbiAgICAgICAgICB0cnVlLFxuICAgICAgICApXG5cbiAgICAgICAgaWYgKChjcmVkZW50aWFscyBhcyBhbnkpPy5lcnJvcl9jb2RlKSB7XG4gICAgICAgICAgdGhyb3cgY3JlZGVudGlhbHNcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgIH1cblxuICAgICAgYXdhaXQgdGhpcy5vYXV0aEluc3RhbmNlLm9hdXRoMmNsaWVudC5zZXRDcmVkZW50aWFscyhjcmVkZW50aWFscyBhcyBDcmVkZW50aWFscylcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBjb25zdCB3eEluZm8gPSB3eC5nZXRBY2NvdW50SW5mb1N5bmMoKS5taW5pUHJvZ3JhbVxuICAgICAgICB3eC5sb2dpbih7XG4gICAgICAgICAgc3VjY2VzczogYXN5bmMgKHJlczogeyBjb2RlOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvdmlkZXJJZCA9IHd4SW5mbz8uYXBwSWRcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMub2F1dGhJbnN0YW5jZS5hdXRoQXBpLmdyYW50UHJvdmlkZXJUb2tlbih7XG4gICAgICAgICAgICAgICAgcHJvdmlkZXJfY29kZTogcmVzLmNvZGUsXG4gICAgICAgICAgICAgICAgcHJvdmlkZXJfaWQ6IHByb3ZpZGVySWQsXG4gICAgICAgICAgICAgICAgcHJvdmlkZXJfcGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICBwcm92aWRlcl9jb2RlX3R5cGU6ICdvcGVuX2lkJyxcbiAgICAgICAgICAgICAgICAgIGFwcGlkOiB3eEluZm8/LmFwcElkLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgY29uc3QgeyBwcm92aWRlcl90b2tlbjogcHJvdmlkZXJUb2tlbiB9ID0gcmVzdWx0XG5cbiAgICAgICAgICAgICAgaWYgKCFwcm92aWRlclRva2VuKSB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KHJlc3VsdClcbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGNvbnN0IHNpZ25JblJlcyA9IGF3YWl0IHRoaXMub2F1dGhJbnN0YW5jZS5hdXRoQXBpLnNpZ25JbldpdGhQcm92aWRlcih7XG4gICAgICAgICAgICAgICAgcHJvdmlkZXJfdG9rZW46IHByb3ZpZGVyVG9rZW4sXG4gICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgaWYgKChzaWduSW5SZXMgYXMgYW55KT8uZXJyb3JfY29kZSkge1xuICAgICAgICAgICAgICAgIHJlamVjdChzaWduSW5SZXMpXG4gICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICByZXNvbHZlKHRydWUpXG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICByZWplY3QoZXJyb3IpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBmYWlsOiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKHJlcz8uZXJyTXNnKVxuICAgICAgICAgICAgOyhlcnJvciBhcyBhbnkpLmNvZGUgPSByZXM/LmVycm5vXG4gICAgICAgICAgICByZWplY3QoZXJyb3IpXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlTG9naW5TdGF0ZSgpXG4gIH1cblxuICAvKipcbiAgICog5bCP56iL5bqPdW5pb25JZOmdmem7mOeZu+W9lVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxMb2dpblN0YXRlPn1cbiAgICogQG1lbWJlcm9mIEF1dGhcbiAgICovXG4gIEBjYXRjaEVycm9yc0RlY29yYXRvcih7XG4gICAgdGl0bGU6ICflsI/nqIvluo91bmlvbklk6Z2Z6buY55m75b2V5aSx6LSlJyxcbiAgICBtZXNzYWdlczogW1xuICAgICAgJ+ivt+ehruiupOS7peS4i+WQhOmhue+8micsXG4gICAgICAnICAxIC0g5b2T5YmN546v5aKD5piv5ZCm5byA5ZCv5LqG5bCP56iL5bqPdW5pb25JZOmdmem7mOeZu+W9lScsXG4gICAgICAnICAyIC0g6LCD55SoIGF1dGgoKS5zaWduSW5XaXRoVW5pb25JZCgpIOeahOivreazleaIluWPguaVsOaYr+WQpuato+ehricsXG4gICAgICBg5aaC5p6c6Zeu6aKY5L6d54S25a2Y5Zyo77yM5bu66K6u5Yiw5a6Y5pa56Zeu562U56S+5Yy65o+Q6Zeu5oiW5a+75om+5biu5Yqp77yaJHtDT01NVU5JVFlfU0lURV9VUkx9YCxcbiAgICBdLFxuICB9KVxuICBwdWJsaWMgYXN5bmMgc2lnbkluV2l0aFVuaW9uSWQoKTogUHJvbWlzZTxMb2dpblN0YXRlPiB7XG4gICAgaWYgKCFhZGFwdGVyRm9yV3hNcC5pc01hdGNoKCkpIHtcbiAgICAgIHRocm93IEVycm9yKCd3eCBhcGkgdW5kZWZpbmVkJylcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3Qgd3hJbmZvID0gd3guZ2V0QWNjb3VudEluZm9TeW5jKCkubWluaVByb2dyYW1cbiAgICAgICAgd3gubG9naW4oe1xuICAgICAgICAgIHN1Y2Nlc3M6IGFzeW5jIChyZXM6IHsgY29kZTogc3RyaW5nIH0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByb3ZpZGVySWQgPSB3eEluZm8/LmFwcElkXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLm9hdXRoSW5zdGFuY2UuYXV0aEFwaS5ncmFudFByb3ZpZGVyVG9rZW4oe1xuICAgICAgICAgICAgICAgIHByb3ZpZGVyX2NvZGU6IHJlcy5jb2RlLFxuICAgICAgICAgICAgICAgIHByb3ZpZGVyX2lkOiBwcm92aWRlcklkLFxuICAgICAgICAgICAgICAgIHByb3ZpZGVyX3BhcmFtczoge1xuICAgICAgICAgICAgICAgICAgcHJvdmlkZXJfY29kZV90eXBlOiAndW5pb25faWQnLFxuICAgICAgICAgICAgICAgICAgYXBwaWQ6IHd4SW5mbz8uYXBwSWQsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICBjb25zdCB7IHByb3ZpZGVyX3Rva2VuOiBwcm92aWRlclRva2VuIH0gPSByZXN1bHRcblxuICAgICAgICAgICAgICBpZiAoIXByb3ZpZGVyVG9rZW4pIHtcbiAgICAgICAgICAgICAgICByZWplY3QocmVzdWx0KVxuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgY29uc3Qgc2lnbkluUmVzID0gYXdhaXQgdGhpcy5vYXV0aEluc3RhbmNlLmF1dGhBcGkuc2lnbkluV2l0aFByb3ZpZGVyKHtcbiAgICAgICAgICAgICAgICBwcm92aWRlcl9pZDogcHJvdmlkZXJJZCxcbiAgICAgICAgICAgICAgICBwcm92aWRlcl90b2tlbjogcHJvdmlkZXJUb2tlbixcbiAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICBpZiAoKHNpZ25JblJlcyBhcyBhbnkpPy5lcnJvcl9jb2RlKSB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KHNpZ25JblJlcylcbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXNvbHZlKHRydWUpXG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICByZWplY3QoZXJyb3IpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBmYWlsOiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKHJlcz8uZXJyTXNnKVxuICAgICAgICAgICAgOyhlcnJvciBhcyBhbnkpLmNvZGUgPSByZXM/LmVycm5vXG4gICAgICAgICAgICByZWplY3QoZXJyb3IpXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IGVycm9yXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlTG9naW5TdGF0ZSgpXG4gIH1cblxuICAvKipcbiAgICog5bCP56iL5bqP5omL5py65Y+35o6I5p2D55m75b2VXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPExvZ2luU3RhdGU+fVxuICAgKiBAbWVtYmVyb2YgQXV0aFxuICAgKi9cbiAgQGNhdGNoRXJyb3JzRGVjb3JhdG9yKHtcbiAgICB0aXRsZTogJ+Wwj+eoi+W6j+aJi+acuuWPt+aOiOadg+eZu+W9leWksei0pScsXG4gICAgbWVzc2FnZXM6IFtcbiAgICAgICfor7fnoa7orqTku6XkuIvlkITpobnvvJonLFxuICAgICAgJyAgMSAtIOW9k+WJjeeOr+Wig+aYr+WQpuW8gOWQr+S6huWwj+eoi+W6j+aJi+acuuWPt+aOiOadg+eZu+W9lScsXG4gICAgICAnICAyIC0g6LCD55SoIGF1dGgoKS5zaWduSW5XaXRoUGhvbmVBdXRoKCkg55qE6K+t5rOV5oiW5Y+C5pWw5piv5ZCm5q2j56GuJyxcbiAgICAgIGDlpoLmnpzpl67popjkvp3nhLblrZjlnKjvvIzlu7rorq7liLDlrpjmlrnpl67nrZTnpL7ljLrmj5Dpl67miJblr7vmib7luK7liqnvvJoke0NPTU1VTklUWV9TSVRFX1VSTH1gLFxuICAgIF0sXG4gIH0pXG4gIHB1YmxpYyBhc3luYyBzaWduSW5XaXRoUGhvbmVBdXRoKHsgcGhvbmVDb2RlID0gJycgfSk6IFByb21pc2U8TG9naW5TdGF0ZT4ge1xuICAgIGlmICghYWRhcHRlckZvcld4TXAuaXNNYXRjaCgpKSB7XG4gICAgICB0aHJvdyBFcnJvcignd3ggYXBpIHVuZGVmaW5lZCcpXG4gICAgfVxuICAgIGNvbnN0IHd4SW5mbyA9IHd4LmdldEFjY291bnRJbmZvU3luYygpLm1pbmlQcm9ncmFtXG4gICAgY29uc3QgcHJvdmlkZXJJbmZvID0ge1xuICAgICAgcHJvdmlkZXJfcGFyYW1zOiB7IHByb3ZpZGVyX2NvZGVfdHlwZTogJ3Bob25lJyB9LFxuICAgICAgcHJvdmlkZXJfaWQ6IHd4SW5mby5hcHBJZCxcbiAgICB9XG5cbiAgICBjb25zdCB7IGNvZGUgfSA9IGF3YWl0IHd4LmxvZ2luKClcbiAgICA7KHByb3ZpZGVySW5mbyBhcyBhbnkpLnByb3ZpZGVyX2NvZGUgPSBjb2RlXG5cbiAgICB0cnkge1xuICAgICAgbGV0IHByb3ZpZGVyVG9rZW4gPSBhd2FpdCB0aGlzLm9hdXRoSW5zdGFuY2UuYXV0aEFwaS5ncmFudFByb3ZpZGVyVG9rZW4ocHJvdmlkZXJJbmZvKVxuICAgICAgaWYgKHByb3ZpZGVyVG9rZW4uZXJyb3JfY29kZSkge1xuICAgICAgICB0aHJvdyBwcm92aWRlclRva2VuXG4gICAgICB9XG5cbiAgICAgIHByb3ZpZGVyVG9rZW4gPSBhd2FpdCB0aGlzLm9hdXRoSW5zdGFuY2UuYXV0aEFwaS5wYXRjaFByb3ZpZGVyVG9rZW4oe1xuICAgICAgICBwcm92aWRlcl90b2tlbjogcHJvdmlkZXJUb2tlbi5wcm92aWRlcl90b2tlbixcbiAgICAgICAgcHJvdmlkZXJfaWQ6IHd4SW5mby5hcHBJZCxcbiAgICAgICAgcHJvdmlkZXJfcGFyYW1zOiB7XG4gICAgICAgICAgY29kZTogcGhvbmVDb2RlLFxuICAgICAgICAgIHByb3ZpZGVyX2NvZGVfdHlwZTogJ3Bob25lJyxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICBpZiAocHJvdmlkZXJUb2tlbi5lcnJvcl9jb2RlKSB7XG4gICAgICAgIHRocm93IHByb3ZpZGVyVG9rZW5cbiAgICAgIH1cblxuICAgICAgY29uc3Qgc2lnbkluUmVzID0gYXdhaXQgdGhpcy5vYXV0aEluc3RhbmNlLmF1dGhBcGkuc2lnbkluV2l0aFByb3ZpZGVyKHtcbiAgICAgICAgcHJvdmlkZXJfdG9rZW46IHByb3ZpZGVyVG9rZW4ucHJvdmlkZXJfdG9rZW4sXG4gICAgICB9KVxuXG4gICAgICBpZiAoKHNpZ25JblJlcyBhcyBhbnkpPy5lcnJvcl9jb2RlKSB7XG4gICAgICAgIHRocm93IHNpZ25JblJlc1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBlcnJvclxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNyZWF0ZUxvZ2luU3RhdGUoKVxuICB9XG5cbiAgLyoqXG4gICAqIOWwj+eoi+W6j+efreS/oemqjOivgeeggeeZu+mZhlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxMb2dpblN0YXRlPn1cbiAgICogQG1lbWJlcm9mIEF1dGhcbiAgICovXG4gIEBjYXRjaEVycm9yc0RlY29yYXRvcih7XG4gICAgdGl0bGU6ICflsI/nqIvluo/nn63kv6Hpqozor4HnoIHnmbvpmYYnLFxuICAgIG1lc3NhZ2VzOiBbXG4gICAgICAn6K+356Gu6K6k5Lul5LiL5ZCE6aG577yaJyxcbiAgICAgICcgIDEgLSDlvZPliY3njq/looPmmK/lkKblvIDlkK/kuoblsI/nqIvluo/nn63kv6Hpqozor4HnoIHnmbvpmYYnLFxuICAgICAgJyAgMiAtIOiwg+eUqCBhdXRoKCkuc2lnbkluV2l0aFNtcygpIOeahOivreazleaIluWPguaVsOaYr+WQpuato+ehricsXG4gICAgICBg5aaC5p6c6Zeu6aKY5L6d54S25a2Y5Zyo77yM5bu66K6u5Yiw5a6Y5pa56Zeu562U56S+5Yy65o+Q6Zeu5oiW5a+75om+5biu5Yqp77yaJHtDT01NVU5JVFlfU0lURV9VUkx9YCxcbiAgICBdLFxuICB9KVxuICBwdWJsaWMgYXN5bmMgc2lnbkluV2l0aFNtcyh7XG4gICAgdmVyaWZpY2F0aW9uSW5mbyA9IHsgaWQ6ICcnLCBpc1VzZXI6IGZhbHNlIH0sXG4gICAgdmVyaWZpY2F0aW9uQ29kZSA9ICcnLFxuICAgIHBob25lTnVtID0gJycsXG4gICAgYmluZEluZm8gPSB1bmRlZmluZWQsXG4gIH0pOiBQcm9taXNlPExvZ2luU3RhdGU+IHtcbiAgICB0cnkge1xuICAgICAgLy8gMS4g6aqM6K+B6aqM6K+B56CBXG4gICAgICBjb25zdCB2ZXJpZnlSZXMgPSBhd2FpdCB0aGlzLm9hdXRoSW5zdGFuY2UuYXV0aEFwaS52ZXJpZnkoe1xuICAgICAgICB2ZXJpZmljYXRpb25faWQ6IHZlcmlmaWNhdGlvbkluZm8uaWQsXG4gICAgICAgIHZlcmlmaWNhdGlvbl9jb2RlOiB2ZXJpZmljYXRpb25Db2RlLFxuICAgICAgfSlcblxuICAgICAgaWYgKCh2ZXJpZnlSZXMgYXMgYW55KT8uZXJyb3JfY29kZSkge1xuICAgICAgICB0aHJvdyB2ZXJpZnlSZXNcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyB2ZXJpZmljYXRpb25fdG9rZW4gfSA9IHZlcmlmeVJlc1xuXG4gICAgICAvLyAyLiDmoLnmja7mmK/lkKblt7Lnu4/mmK/nlKjmiLfvvIzliIbliKvotbDnmbvlvZXmiJbms6jlhozpgLvovpFcbiAgICAgIGlmICh2ZXJpZmljYXRpb25JbmZvLmlzVXNlcikge1xuICAgICAgICAvLyDnp4HmnInljJbnjq/looPmiJbogIXoh6rlrprkuYnlupTnlKjotbB2MeeJiOacrOeahOiAgemAu+i+kVxuICAgICAgICBjb25zdCBzaWduSW5SZXMgPSBhd2FpdCB0aGlzLm9hdXRoSW5zdGFuY2UuYXV0aEFwaS5zaWduSW4oe1xuICAgICAgICAgIHVzZXJuYW1lOiBgKzg2ICR7cGhvbmVOdW19YCxcbiAgICAgICAgICB2ZXJpZmljYXRpb25fdG9rZW4sXG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKChzaWduSW5SZXMgYXMgYW55KT8uZXJyb3JfY29kZSkge1xuICAgICAgICAgIHRocm93IHNpZ25JblJlc1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGJpbmRJbmZvKSB7XG4gICAgICAgICAgY29uc3QgYmluZFJlcyA9IGF3YWl0IHRoaXMub2F1dGhJbnN0YW5jZS5hdXRoQXBpLmJpbmRXaXRoUHJvdmlkZXIoe1xuICAgICAgICAgICAgcHJvdmlkZXJfdG9rZW46IChiaW5kSW5mbyBhcyBhbnkpPy5wcm92aWRlclRva2VuLFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICBpZiAoKGJpbmRSZXMgYXMgYW55KT8uZXJyb3JfY29kZSkge1xuICAgICAgICAgICAgdGhyb3cgYmluZFJlc1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8g6Ieq5a6a5LmJ5bqU55So6LWwc2lnblVw6YC76L6RXG4gICAgICAgIGNvbnN0IHNpZ25VcFJlcyA9IGF3YWl0IHRoaXMub2F1dGhJbnN0YW5jZS5hdXRoQXBpLnNpZ25VcCh7XG4gICAgICAgICAgcGhvbmVfbnVtYmVyOiBgKzg2ICR7cGhvbmVOdW19YCxcbiAgICAgICAgICB2ZXJpZmljYXRpb25fdG9rZW4sXG4gICAgICAgICAgcHJvdmlkZXJfdG9rZW46IChiaW5kSW5mbyBhcyBhbnkpPy5wcm92aWRlcklkLFxuICAgICAgICB9KVxuXG4gICAgICAgIGlmICgoc2lnblVwUmVzIGFzIGFueSk/LmVycm9yX2NvZGUpIHtcbiAgICAgICAgICB0aHJvdyBzaWduVXBSZXNcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVMb2dpblN0YXRlKClcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgZXJyb3JcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICog6K6+572u6I635Y+W6Ieq5a6a5LmJ55m75b2VIHRpY2tldCDlh73mlbBcbiAgICogQHBhcmFtIHthdXRoTW9kZWxzLkdldEN1c3RvbVNpZ25UaWNrZXRGbn0gZ2V0VGlja0ZuXG4gICAqIEBtZW1iZXJvZiBBdXRoXG4gICAqL1xuICBwdWJsaWMgc2V0Q3VzdG9tU2lnbkZ1bmMoZ2V0VGlja0ZuOiBhdXRoTW9kZWxzLkdldEN1c3RvbVNpZ25UaWNrZXRGbik6IHZvaWQge1xuICAgIHRoaXMub2F1dGhJbnN0YW5jZS5hdXRoQXBpLnNldEN1c3RvbVNpZ25GdW5jKGdldFRpY2tGbilcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxMb2dpblN0YXRlPn1cbiAgICogQG1lbWJlcm9mIEF1dGhcbiAgICovXG4gIEBjYXRjaEVycm9yc0RlY29yYXRvcih7XG4gICAgdGl0bGU6ICfoh6rlrprkuYnnmbvlvZXlpLHotKUnLFxuICAgIG1lc3NhZ2VzOiBbXG4gICAgICAn6K+356Gu6K6k5Lul5LiL5ZCE6aG577yaJyxcbiAgICAgICcgIDEgLSDlvZPliY3njq/looPmmK/lkKblvIDlkK/kuoboh6rlrprkuYnnmbvlvZUnLFxuICAgICAgJyAgMiAtIOiwg+eUqCBhdXRoKCkuc2lnbkluV2l0aEN1c3RvbVRpY2tldCgpIOeahOivreazleaIluWPguaVsOaYr+WQpuato+ehricsXG4gICAgICAnICAzIC0gdGlja2V0IOaYr+WQpuW9kuWxnuS6juW9k+WJjeeOr+WigycsXG4gICAgICAnICA0IC0g5Yib5bu6IHRpY2tldCDnmoToh6rlrprkuYnnmbvlvZXnp4HpkqXmmK/lkKbov4fmnJ8nLFxuICAgICAgYOWmguaenOmXrumimOS+neeEtuWtmOWcqO+8jOW7uuiuruWIsOWumOaWuemXruetlOekvuWMuuaPkOmXruaIluWvu+aJvuW4ruWKqe+8miR7Q09NTVVOSVRZX1NJVEVfVVJMfWAsXG4gICAgXSxcbiAgfSlcbiAgcHVibGljIGFzeW5jIHNpZ25JbldpdGhDdXN0b21UaWNrZXQocGFyYW1zPzogeyB2ZXJzaW9uPzogc3RyaW5nIH0pOiBQcm9taXNlPExvZ2luU3RhdGU+IHtcbiAgICBhd2FpdCB0aGlzLm9hdXRoSW5zdGFuY2UuYXV0aEFwaS5zaWduSW5XaXRoQ3VzdG9tVGlja2V0KHBhcmFtcylcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVMb2dpblN0YXRlKClcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge2F1dGhNb2RlbHMuU2lnbkluUmVxdWVzdH0gcGFyYW1zXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPExvZ2luU3RhdGU+fVxuICAgKiBAbWVtYmVyb2YgQXV0aFxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNpZ25JbihwYXJhbXM6IGF1dGhNb2RlbHMuU2lnbkluUmVxdWVzdCk6IFByb21pc2U8TG9naW5TdGF0ZT4ge1xuICAgIGF3YWl0IHRoaXMub2F1dGhJbnN0YW5jZS5hdXRoQXBpLnNpZ25JbihwYXJhbXMpXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlTG9naW5TdGF0ZShwYXJhbXMpXG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHthdXRoTW9kZWxzLlNpZ25VcFJlcXVlc3R9IHBhcmFtc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxMb2dpblN0YXRlPn1cbiAgICogQG1lbWJlcm9mIEF1dGhcbiAgICovXG4gIEBjYXRjaEVycm9yc0RlY29yYXRvcih7XG4gICAgdGl0bGU6ICfms6jlhozlpLHotKUnLFxuICAgIG1lc3NhZ2VzOiBbXG4gICAgICAn6K+356Gu6K6k5Lul5LiL5ZCE6aG577yaJyxcbiAgICAgICcgIDEgLSDlvZPliY3njq/looPmmK/lkKblvIDlkK/kuobmjIflrprnmbvlvZXmlrnlvI8nLFxuICAgICAgJyAgMiAtIOiwg+eUqCBhdXRoKCkuc2lnblVwKCkg55qE6K+t5rOV5oiW5Y+C5pWw5piv5ZCm5q2j56GuJyxcbiAgICAgIGDlpoLmnpzpl67popjkvp3nhLblrZjlnKjvvIzlu7rorq7liLDlrpjmlrnpl67nrZTnpL7ljLrmj5Dpl67miJblr7vmib7luK7liqnvvJoke0NPTU1VTklUWV9TSVRFX1VSTH1gLFxuICAgIF0sXG4gIH0pXG4gIHB1YmxpYyBhc3luYyBzaWduVXAocGFyYW1zOiBhdXRoTW9kZWxzLlNpZ25VcFJlcXVlc3QpOiBQcm9taXNlPExvZ2luU3RhdGU+IHtcbiAgICBhd2FpdCB0aGlzLm9hdXRoSW5zdGFuY2UuYXV0aEFwaS5zaWduVXAocGFyYW1zKVxuICAgIHJldHVybiB0aGlzLmNyZWF0ZUxvZ2luU3RhdGUoKVxuICB9XG5cbiAgLyoqXG4gICAqIOiuvue9ruWvhueggVxuICAgKiBAcGFyYW0ge2F1dGhNb2RlbHMuU2V0UGFzc3dvcmRSZXF1ZXN0fSBwYXJhbXNcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAqIEBtZW1iZXJvZiBBdXRoXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2V0UGFzc3dvcmQocGFyYW1zOiBhdXRoTW9kZWxzLlNldFBhc3N3b3JkUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLm9hdXRoSW5zdGFuY2UuYXV0aEFwaS5zZXRQYXNzd29yZChwYXJhbXMpXG4gIH1cblxuICAvKipcbiAgICog5qOA5rWL55So5oi35ZCN5piv5ZCm5bey57uP5Y2g55SoXG4gICAqIEBwYXJhbSB1c2VybmFtZVxuICAgKi9cbiAgQGNhdGNoRXJyb3JzRGVjb3JhdG9yKHtcbiAgICB0aXRsZTogJ+iOt+WPlueUqOaIt+aYr+WQpuiiq+WNoOeUqOWksei0pScsXG4gICAgbWVzc2FnZXM6IFtcbiAgICAgICfor7fnoa7orqTku6XkuIvlkITpobnvvJonLFxuICAgICAgJyAgMSAtIOiwg+eUqCBhdXRoKCkuaXNVc2VybmFtZVJlZ2lzdGVyZWQoKSDnmoTor63ms5XmiJblj4LmlbDmmK/lkKbmraPnoa4nLFxuICAgICAgYOWmguaenOmXrumimOS+neeEtuWtmOWcqO+8jOW7uuiuruWIsOWumOaWuemXruetlOekvuWMuuaPkOmXruaIluWvu+aJvuW4ruWKqe+8miR7Q09NTVVOSVRZX1NJVEVfVVJMfWAsXG4gICAgXSxcbiAgfSlcbiAgcHVibGljIGFzeW5jIGlzVXNlcm5hbWVSZWdpc3RlcmVkKHVzZXJuYW1lOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAodHlwZW9mIHVzZXJuYW1lICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3dFcnJvcihFUlJPUlMuSU5WQUxJRF9QQVJBTVMsICd1c2VybmFtZSBtdXN0IGJlIGEgc3RyaW5nJylcbiAgICB9XG5cbiAgICBjb25zdCB7IGV4aXN0IH0gPSBhd2FpdCB0aGlzLm9hdXRoSW5zdGFuY2UuYXV0aEFwaS5jaGVja0lmVXNlckV4aXN0KHsgdXNlcm5hbWUgfSlcbiAgICByZXR1cm4gZXhpc3RcbiAgfVxuXG4gIC8qKlxuICAgKiDnmbvlh7pcbiAgICovXG4gIEBjYXRjaEVycm9yc0RlY29yYXRvcih7XG4gICAgdGl0bGU6ICfnlKjmiLfnmbvlh7rlpLHotKUnLFxuICAgIG1lc3NhZ2VzOiBbXG4gICAgICAn6K+356Gu6K6k5Lul5LiL5ZCE6aG577yaJyxcbiAgICAgICcgIDEgLSDosIPnlKggYXV0aCgpLnNpZ25PdXQoKSDnmoTor63ms5XmiJblj4LmlbDmmK/lkKbmraPnoa4nLFxuICAgICAgJyAgMiAtIOW9k+WJjeeUqOaIt+aYr+WQpuS4uuWMv+WQjeeZu+W9le+8iOWMv+WQjeeZu+W9leS4jeaUr+aMgXNpZ25PdXTvvIknLFxuICAgICAgYOWmguaenOmXrumimOS+neeEtuWtmOWcqO+8jOW7uuiuruWIsOWumOaWuemXruetlOekvuWMuuaPkOmXruaIluWvu+aJvuW4ruWKqe+8miR7Q09NTVVOSVRZX1NJVEVfVVJMfWAsXG4gICAgXSxcbiAgfSlcbiAgcHVibGljIGFzeW5jIHNpZ25PdXQoKSB7XG4gICAgY29uc3QgeyB1c2VySW5mb0tleSB9ID0gdGhpcy5jYWNoZS5rZXlzXG4gICAgYXdhaXQgdGhpcy5vYXV0aEluc3RhbmNlLmF1dGhBcGkuc2lnbk91dCgpXG4gICAgYXdhaXQgdGhpcy5jYWNoZS5yZW1vdmVTdG9yZUFzeW5jKHVzZXJJbmZvS2V5KVxuICAgIGV2ZW50QnVzLmZpcmUoRVZFTlRTLkxPR0lOX1NUQVRFX0NIQU5HRUQpXG4gIH1cblxuICAvKipcbiAgICog6I635Y+W5pys5Zyw55m75b2V5oCBLeWQjOatpVxuICAgKi9cbiAgcHVibGljIGhhc0xvZ2luU3RhdGUoKTogTG9naW5TdGF0ZSB8IG51bGwge1xuICAgIGlmICh0aGlzLmNhY2hlLm1vZGUgPT09ICdhc3luYycpIHtcbiAgICAgIC8vIGFzeW5jIHN0b3JhZ2XnmoTlubPlj7DosIPnlKjmraRBUEnmj5DnpLpcbiAgICAgIHByaW50V2FybihcbiAgICAgICAgRVJST1JTLklOVkFMSURfT1BFUkFUSU9OLFxuICAgICAgICAnY3VycmVudCBwbGF0Zm9ybVxcJ3Mgc3RvcmFnZSBpcyBhc3luY2hyb25vdXMsIHBsZWFzZSB1c2UgZ2V0TG9naW5TdGF0ZSBpbnN0ZWVkJyxcbiAgICAgIClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IG9hdXRoTG9naW5TdGF0ZSA9IHRoaXMub2F1dGhJbnN0YW5jZT8uYXV0aEFwaS5oYXNMb2dpblN0YXRlU3luYygpXG4gICAgaWYgKG9hdXRoTG9naW5TdGF0ZSkge1xuICAgICAgY29uc3QgbG9naW5TdGF0ZSA9IG5ldyBMb2dpblN0YXRlKHtcbiAgICAgICAgZW52SWQ6IHRoaXMuY29uZmlnLmVudixcbiAgICAgICAgY2FjaGU6IHRoaXMuY2FjaGUsXG4gICAgICAgIG9hdXRoSW5zdGFuY2U6IHRoaXMub2F1dGhJbnN0YW5jZSxcbiAgICAgIH0pXG4gICAgICByZXR1cm4gbG9naW5TdGF0ZVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLyoqXG4gICAqIOiOt+WPluacrOWcsOeZu+W9leaAgS3lvILmraVcbiAgICog5q2kQVBJ5Li65YW85a655byC5q2lc3RvcmFnZeeahOW5s+WPsFxuICAgKi9cbiAgQGNhdGNoRXJyb3JzRGVjb3JhdG9yKHtcbiAgICB0aXRsZTogJ+iOt+WPluacrOWcsOeZu+W9leaAgeWksei0pScsXG4gICAgbWVzc2FnZXM6IFtcbiAgICAgICfor7fnoa7orqTku6XkuIvlkITpobnvvJonLFxuICAgICAgJyAgMSAtIOiwg+eUqCBhdXRoKCkuZ2V0TG9naW5TdGF0ZSgpIOeahOivreazleaIluWPguaVsOaYr+WQpuato+ehricsXG4gICAgICBg5aaC5p6c6Zeu6aKY5L6d54S25a2Y5Zyo77yM5bu66K6u5Yiw5a6Y5pa56Zeu562U56S+5Yy65o+Q6Zeu5oiW5a+75om+5biu5Yqp77yaJHtDT01NVU5JVFlfU0lURV9VUkx9YCxcbiAgICBdLFxuICB9KVxuICBwdWJsaWMgYXN5bmMgZ2V0TG9naW5TdGF0ZSgpIHtcbiAgICBjb25zdCBvYXV0aExvZ2luU3RhdGUgPSBhd2FpdCB0aGlzLm9hdXRoSW5zdGFuY2UuYXV0aEFwaS5nZXRMb2dpblN0YXRlKClcbiAgICBpZiAob2F1dGhMb2dpblN0YXRlKSB7XG4gICAgICBjb25zdCBsb2dpblN0YXRlID0gbmV3IExvZ2luU3RhdGUoe1xuICAgICAgICBlbnZJZDogdGhpcy5jb25maWcuZW52LFxuICAgICAgICBjYWNoZTogdGhpcy5jYWNoZSxcbiAgICAgICAgb2F1dGhJbnN0YW5jZTogdGhpcy5vYXV0aEluc3RhbmNlLFxuICAgICAgfSlcbiAgICAgIHJldHVybiBsb2dpblN0YXRlXG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIEBjYXRjaEVycm9yc0RlY29yYXRvcih7XG4gICAgdGl0bGU6ICfojrflj5bnlKjmiLfkv6Hmga/lpLHotKUnLFxuICAgIG1lc3NhZ2VzOiBbXG4gICAgICAn6K+356Gu6K6k5Lul5LiL5ZCE6aG577yaJyxcbiAgICAgICcgIDEgLSDmmK/lkKblt7LnmbvlvZUnLFxuICAgICAgJyAgMiAtIOiwg+eUqCBhdXRoKCkuZ2V0VXNlckluZm8oKSDnmoTor63ms5XmiJblj4LmlbDmmK/lkKbmraPnoa4nLFxuICAgICAgYOWmguaenOmXrumimOS+neeEtuWtmOWcqO+8jOW7uuiuruWIsOWumOaWuemXruetlOekvuWMuuaPkOmXruaIluWvu+aJvuW4ruWKqe+8miR7Q09NTVVOSVRZX1NJVEVfVVJMfWAsXG4gICAgXSxcbiAgfSlcbiAgcHVibGljIGFzeW5jIGdldFVzZXJJbmZvKHBhcmFtcz86IHsgdmVyc2lvbj86IHN0cmluZyB9KTogUHJvbWlzZTxJVXNlckluZm8+IHtcbiAgICByZXR1cm4gdGhpcy5vYXV0aEluc3RhbmNlLmF1dGhBcGkuZ2V0VXNlckluZm8ocGFyYW1zKVxuICB9XG5cbiAgQGNhdGNoRXJyb3JzRGVjb3JhdG9yKHtcbiAgICB0aXRsZTogJ+iOt+WPluW+ruaQreaPkuS7tueUqOaIt+S/oeaBr+Wksei0pScsXG4gICAgbWVzc2FnZXM6IFtcbiAgICAgICfor7fnoa7orqTku6XkuIvlkITpobnvvJonLFxuICAgICAgJyAgMSAtIOaYr+WQpuW3sueZu+W9lScsXG4gICAgICAnICAyIC0g6LCD55SoIGF1dGgoKS5nZXRXZWRhVXNlckluZm8oKSDnmoTor63ms5XmiJblj4LmlbDmmK/lkKbmraPnoa4nLFxuICAgICAgYOWmguaenOmXrumimOS+neeEtuWtmOWcqO+8jOW7uuiuruWIsOWumOaWuemXruetlOekvuWMuuaPkOmXruaIluWvu+aJvuW4ruWKqe+8miR7Q09NTVVOSVRZX1NJVEVfVVJMfWAsXG4gICAgXSxcbiAgfSlcbiAgcHVibGljIGFzeW5jIGdldFdlZGFVc2VySW5mbygpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLm9hdXRoSW5zdGFuY2UuYXV0aEFwaS5nZXRXZWRhVXNlckluZm8oKVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwZGF0ZVVzZXJCYXNpY0luZm8ocGFyYW1zOiBhdXRoTW9kZWxzLk1vZGlmeVVzZXJCYXNpY0luZm9SZXF1ZXN0KSB7XG4gICAgY29uc3QgbG9naW5TdGF0ZSA9IGF3YWl0IHRoaXMuZ2V0TG9naW5TdGF0ZSgpXG4gICAgaWYgKGxvZ2luU3RhdGUpIHtcbiAgICAgIGF3YWl0IChsb2dpblN0YXRlLnVzZXIgYXMgVXNlcikudXBkYXRlVXNlckJhc2ljSW5mbyhwYXJhbXMpXG4gICAgfVxuICAgIHJldHVyblxuICB9XG5cbiAgLyoqXG4gICAqIGdldEF1dGhIZWFkZXIg5YW85a655aSE55CGXG4gICAqIOi/lOWbnuepuuWvueixoVxuICAgKi9cbiAgcHVibGljIGdldEF1dGhIZWFkZXIoKToge30ge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0F1dGguZ2V0QXV0aEhlYWRlciBBUEkg5bey5bqf5byDJylcbiAgICByZXR1cm4ge31cbiAgfVxuXG4gIC8qKlxuICAgKiDkuLrlt7LmnInotKbmiLfnu5HnrKzkuInmlrnotKbmiLdcbiAgICogQHBhcmFtIHthdXRoTW9kZWxzLkJpbmRXaXRoUHJvdmlkZXJSZXF1ZXN0fSBwYXJhbXNcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAqIEBtZW1iZXJvZiBBdXRoXG4gICAqL1xuICBAY2F0Y2hFcnJvcnNEZWNvcmF0b3Ioe1xuICAgIHRpdGxlOiAn57uR5a6a56ys5LiJ5pa555m75b2V5pa55byP5aSx6LSlJyxcbiAgICBtZXNzYWdlczogW1xuICAgICAgJ+ivt+ehruiupOS7peS4i+WQhOmhue+8micsXG4gICAgICAnICAxIC0g6LCD55SoIGF1dGgoKS5iaW5kV2l0aFByb3ZpZGVyKCkg55qE6K+t5rOV5oiW5Y+C5pWw5piv5ZCm5q2j56GuJyxcbiAgICAgICcgIDIgLSDmraTotKbmiLfmmK/lkKblt7Lnu4/nu5HlrprmraTnrKzkuInmlrknLFxuICAgICAgYOWmguaenOmXrumimOS+neeEtuWtmOWcqO+8jOW7uuiuruWIsOWumOaWuemXruetlOekvuWMuuaPkOmXruaIluWvu+aJvuW4ruWKqe+8miR7Q09NTVVOSVRZX1NJVEVfVVJMfWAsXG4gICAgXSxcbiAgfSlcbiAgcHVibGljIGFzeW5jIGJpbmRXaXRoUHJvdmlkZXIocGFyYW1zOiBhdXRoTW9kZWxzLkJpbmRXaXRoUHJvdmlkZXJSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMub2F1dGhJbnN0YW5jZS5hdXRoQXBpLmJpbmRXaXRoUHJvdmlkZXIocGFyYW1zKVxuICB9XG5cbiAgLyoqXG4gICAqIOafpeivoueUqOaIt1xuICAgKiBAcGFyYW0ge2F1dGhNb2RlbHMuUXVlcnlVc2VyUHJvZmlsZVJlcXVlc3R9IGFwcGVuZGVkX3BhcmFtc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxhdXRoTW9kZWxzLlVzZXJQcm9maWxlPn1cbiAgICogQG1lbWJlcm9mIEF1dGhcbiAgICovXG4gIHB1YmxpYyBhc3luYyBxdWVyeVVzZXIocXVlcnlPYmo6IGF1dGhNb2RlbHMuUXVlcnlVc2VyUHJvZmlsZVJlcXVlc3QpOiBQcm9taXNlPGF1dGhNb2RlbHMuUXVlcnlVc2VyUHJvZmlsZVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMub2F1dGhJbnN0YW5jZS5hdXRoQXBpLnF1ZXJ5VXNlclByb2ZpbGUocXVlcnlPYmopXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0QWNjZXNzVG9rZW4oKSB7XG4gICAgY29uc3Qgb2F1dGhBY2Nlc3NUb2tlblJlcyA9IGF3YWl0IHRoaXMub2F1dGhJbnN0YW5jZS5vYXV0aDJjbGllbnQuZ2V0QWNjZXNzVG9rZW4oKVxuICAgIHJldHVybiB7XG4gICAgICBhY2Nlc3NUb2tlbjogb2F1dGhBY2Nlc3NUb2tlblJlcyxcbiAgICAgIGVudjogdGhpcy5jb25maWcuZW52LFxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBncmFudFByb3ZpZGVyVG9rZW4ocGFyYW1zOiBhdXRoTW9kZWxzLkdyYW50UHJvdmlkZXJUb2tlblJlcXVlc3QsKTogUHJvbWlzZTxhdXRoTW9kZWxzLkdyYW50UHJvdmlkZXJUb2tlblJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMub2F1dGhJbnN0YW5jZS5hdXRoQXBpLmdyYW50UHJvdmlkZXJUb2tlbihwYXJhbXMpXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcGF0Y2hQcm92aWRlclRva2VuKHBhcmFtczogYXV0aE1vZGVscy5QYXRjaFByb3ZpZGVyVG9rZW5SZXF1ZXN0LCk6IFByb21pc2U8YXV0aE1vZGVscy5QYXRjaFByb3ZpZGVyVG9rZW5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLm9hdXRoSW5zdGFuY2UuYXV0aEFwaS5wYXRjaFByb3ZpZGVyVG9rZW4ocGFyYW1zKVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHNpZ25JbldpdGhQcm92aWRlcihwYXJhbXM6IGF1dGhNb2RlbHMuU2lnbkluV2l0aFByb3ZpZGVyUmVxdWVzdCk6IFByb21pc2U8TG9naW5TdGF0ZT4ge1xuICAgIGF3YWl0IHRoaXMub2F1dGhJbnN0YW5jZS5hdXRoQXBpLnNpZ25JbldpdGhQcm92aWRlcihwYXJhbXMpXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlTG9naW5TdGF0ZShwYXJhbXMpXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2lnbkluV2l0aFdlY2hhdChwYXJhbXM6IGFueSA9IHt9KSB7XG4gICAgYXdhaXQgdGhpcy5vYXV0aEluc3RhbmNlLmF1dGhBcGkuc2lnbkluV2l0aFdlY2hhdChwYXJhbXMpXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlTG9naW5TdGF0ZShwYXJhbXMpXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ3JhbnRUb2tlbihwYXJhbXM6IGF1dGhNb2RlbHMuR3JhbnRUb2tlblJlcXVlc3QpOiBQcm9taXNlPExvZ2luU3RhdGU+IHtcbiAgICBhd2FpdCB0aGlzLm9hdXRoSW5zdGFuY2UuYXV0aEFwaS5ncmFudFRva2VuKHBhcmFtcylcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVMb2dpblN0YXRlKClcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZW5Qcm92aWRlclJlZGlyZWN0VXJpKHBhcmFtczogYXV0aE1vZGVscy5HZW5Qcm92aWRlclJlZGlyZWN0VXJpUmVxdWVzdCwpOiBQcm9taXNlPGF1dGhNb2RlbHMuR2VuUHJvdmlkZXJSZWRpcmVjdFVyaVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMub2F1dGhJbnN0YW5jZS5hdXRoQXBpLmdlblByb3ZpZGVyUmVkaXJlY3RVcmkocGFyYW1zKVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHJlc2V0UGFzc3dvcmQocGFyYW1zOiBhdXRoTW9kZWxzLlJlc2V0UGFzc3dvcmRSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMub2F1dGhJbnN0YW5jZS5hdXRoQXBpLnJlc2V0UGFzc3dvcmQocGFyYW1zKVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGRldmljZUF1dGhvcml6ZShwYXJhbXM6IGF1dGhNb2RlbHMuRGV2aWNlQXV0aG9yaXplUmVxdWVzdCk6IFByb21pc2U8YXV0aE1vZGVscy5EZXZpY2VBdXRob3JpemVSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLm9hdXRoSW5zdGFuY2UuYXV0aEFwaS5kZXZpY2VBdXRob3JpemUocGFyYW1zKVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHN1ZG8ocGFyYW1zOiBhdXRoTW9kZWxzLlN1ZG9SZXF1ZXN0KTogUHJvbWlzZTxhdXRoTW9kZWxzLlN1ZG9SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLm9hdXRoSW5zdGFuY2UuYXV0aEFwaS5zdWRvKHBhcmFtcylcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkZWxldGVNZShwYXJhbXM6IGF1dGhNb2RlbHMuV2l0aFN1ZG9SZXF1ZXN0KTogUHJvbWlzZTxhdXRoTW9kZWxzLlVzZXJQcm9maWxlPiB7XG4gICAgcmV0dXJuIHRoaXMub2F1dGhJbnN0YW5jZS5hdXRoQXBpLmRlbGV0ZU1lKHBhcmFtcylcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRQcm92aWRlcnMoKTogUHJvbWlzZTxhdXRoTW9kZWxzLlVzZXJQcm9maWxlUHJvdmlkZXI+IHtcbiAgICByZXR1cm4gdGhpcy5vYXV0aEluc3RhbmNlLmF1dGhBcGkuZ2V0UHJvdmlkZXJzKClcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsb2dpblNjb3BlKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMub2F1dGhJbnN0YW5jZS5hdXRoQXBpLmxvZ2luU2NvcGUoKVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGxvZ2luR3JvdXBzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICByZXR1cm4gdGhpcy5vYXV0aEluc3RhbmNlLmF1dGhBcGkubG9naW5Hcm91cHMoKVxuICB9XG5cbiAgcHVibGljIGFzeW5jIG9uTG9naW5TdGF0ZUNoYW5nZWQoY2FsbGJhY2s6IEZ1bmN0aW9uKSB7XG4gICAgZXZlbnRCdXMub24oRVZFTlRTLkxPR0lOX1NUQVRFX0NIQU5HRUQsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGxvZ2luU3RhdGUgPSBhd2FpdCB0aGlzLmdldExvZ2luU3RhdGUoKVxuICAgICAgY2FsbGJhY2suY2FsbCh0aGlzLCBsb2dpblN0YXRlKVxuICAgIH0pXG4gICAgLy8g56uL5Yi75omn6KGM5LiA5qyh5Zue6LCDXG4gICAgY29uc3QgbG9naW5TdGF0ZSA9IGF3YWl0IHRoaXMuZ2V0TG9naW5TdGF0ZSgpXG4gICAgY2FsbGJhY2suY2FsbCh0aGlzLCBsb2dpblN0YXRlKVxuICB9XG5cbiAgLyoqXG4gICAqIOW8uuWItuWIt+aWsHRva2VuXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICogQHJldHVybnNcbiAgICovXG4gIHB1YmxpYyBhc3luYyByZWZyZXNoVG9rZW5Gb3JjZShwYXJhbXM6IHsgdmVyc2lvbj86IHN0cmluZyB9KTogUHJvbWlzZTxDcmVkZW50aWFscz4ge1xuICAgIHJldHVybiB0aGlzLm9hdXRoSW5zdGFuY2UuYXV0aEFwaS5yZWZyZXNoVG9rZW5Gb3JjZShwYXJhbXMpXG4gIH1cblxuICAvKipcbiAgICog6I635Y+W6Lqr5Lu95L+h5oGvXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0Q3JlZGVudGlhbHMoKTogUHJvbWlzZTxDcmVkZW50aWFscz4ge1xuICAgIHJldHVybiB0aGlzLm9hdXRoSW5zdGFuY2UuYXV0aEFwaS5nZXRDcmVkZW50aWFscygpXG4gIH1cbiAgLyoqXG4gICAqIOWGmeWFpei6q+S7veS/oeaBr1xuICAgKi9cbiAgcHVibGljIGFzeW5jIHNldENyZWRlbnRpYWxzKGNyZWRlbnRpYWxzOiBDcmVkZW50aWFscykge1xuICAgIGF3YWl0IHRoaXMub2F1dGhJbnN0YW5jZS5vYXV0aDJjbGllbnQuc2V0Q3JlZGVudGlhbHMoY3JlZGVudGlhbHMpXG4gIH1cblxuICBAY2F0Y2hFcnJvcnNEZWNvcmF0b3Ioe1xuICAgIHRpdGxlOiAn6I635Y+W6Lqr5Lu95rqQ57G75Z6LJyxcbiAgICBtZXNzYWdlczogW1xuICAgICAgJ+ivt+ehruiupOS7peS4i+WQhOmhue+8micsXG4gICAgICAnICAxIC0g6LCD55SoIGF1dGgoKS5nZXRQcm92aWRlclN1YlR5cGUoKSDnmoTor63ms5XmiJblj4LmlbDmmK/lkKbmraPnoa4nLFxuICAgICAgYOWmguaenOmXrumimOS+neeEtuWtmOWcqO+8jOW7uuiuruWIsOWumOaWuemXruetlOekvuWMuuaPkOmXruaIluWvu+aJvuW4ruWKqe+8miR7Q09NTVVOSVRZX1NJVEVfVVJMfWAsXG4gICAgXSxcbiAgfSlcbiAgcHVibGljIGFzeW5jIGdldFByb3ZpZGVyU3ViVHlwZSgpOiBQcm9taXNlPFByb3ZpZGVyU3ViVHlwZT4ge1xuICAgIHJldHVybiB0aGlzLm9hdXRoSW5zdGFuY2UuYXV0aEFwaS5nZXRQcm92aWRlclN1YlR5cGUoKVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGNyZWF0ZUNhcHRjaGFEYXRhKHBhcmFtczogeyBzdGF0ZTogc3RyaW5nOyByZWRpcmVjdF91cmk/OiBzdHJpbmcgfSkge1xuICAgIHJldHVybiB0aGlzLm9hdXRoSW5zdGFuY2UuYXV0aEFwaS5jcmVhdGVDYXB0Y2hhRGF0YShwYXJhbXMpXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdmVyaWZ5Q2FwdGNoYURhdGEocGFyYW1zOiB7IHRva2VuOiBzdHJpbmc7IGtleTogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4gdGhpcy5vYXV0aEluc3RhbmNlLmF1dGhBcGkudmVyaWZ5Q2FwdGNoYURhdGEocGFyYW1zKVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldE1pbmlQcm9ncmFtUXJDb2RlKHBhcmFtczogYXV0aE1vZGVscy5HZXRNaW5pUHJvZ3JhbVFyQ29kZVJlcXVlc3QsKTogUHJvbWlzZTxhdXRoTW9kZWxzLkdldE1pbmlQcm9ncmFtUXJDb2RlUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5vYXV0aEluc3RhbmNlLmF1dGhBcGkuZ2V0TWluaVByb2dyYW1Db2RlKHBhcmFtcylcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRNaW5pUHJvZ3JhbVFyQ29kZVN0YXR1cyhwYXJhbXM6IGF1dGhNb2RlbHMuR2V0TWluaVByb2dyYW1RckNvZGVTdGF0dXNSZXF1ZXN0LCk6IFByb21pc2U8YXV0aE1vZGVscy5HZXRNaW5pUHJvZ3JhbVFyQ29kZVN0YXR1c1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMub2F1dGhJbnN0YW5jZS5hdXRoQXBpLmdldE1pbmlQcm9ncmFtUXJDb2RlU3RhdHVzKHBhcmFtcylcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlTG9naW5TdGF0ZShwYXJhbXM/OiB7IHZlcnNpb24/OiBzdHJpbmc7IHF1ZXJ5PzogYW55IH0pOiBQcm9taXNlPExvZ2luU3RhdGU+IHtcbiAgICBjb25zdCBsb2dpblN0YXRlID0gbmV3IExvZ2luU3RhdGUoe1xuICAgICAgZW52SWQ6IHRoaXMuY29uZmlnLmVudixcbiAgICAgIGNhY2hlOiB0aGlzLmNhY2hlLFxuICAgICAgb2F1dGhJbnN0YW5jZTogdGhpcy5vYXV0aEluc3RhbmNlLFxuICAgIH0pXG5cbiAgICBhd2FpdCBsb2dpblN0YXRlLmNoZWNrTG9jYWxTdGF0ZUFzeW5jKClcbiAgICBhd2FpdCBsb2dpblN0YXRlLnVzZXIucmVmcmVzaChwYXJhbXMpXG4gICAgZXZlbnRCdXMuZmlyZShFVkVOVFMuTE9HSU5fU1RBVEVfQ0hBTkdFRClcbiAgICByZXR1cm4gbG9naW5TdGF0ZVxuICB9XG59XG5cbnR5cGUgVEluaXRBdXRoT3B0aW9ucyA9IFBpY2s8SUNsb3VkYmFzZUF1dGhDb25maWcsICdyZWdpb24nIHwgJ3BlcnNpc3RlbmNlJz4gJiBQYXJ0aWFsPEF1dGhPcHRpb25zPlxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVBdXRoSW5zdGFuY2UoXG4gIGNvbmZpZzogVEluaXRBdXRoT3B0aW9ucyxcbiAgb3B0aW9ucz86IHtcbiAgICBjbGllbnRJZDogSUNsb3VkYmFzZUNvbmZpZ1snY2xpZW50SWQnXVxuICAgIGVudjogSUNsb3VkYmFzZUNvbmZpZ1snZW52J11cbiAgICBhcGlPcmlnaW46IHN0cmluZ1xuICAgIGNhY2hlPzogSUNsb3VkYmFzZUNhY2hlXG4gICAgcGxhdGZvcm0/OiBJQ2xvdWRiYXNlWydwbGF0Zm9ybSddXG4gICAgYXBwPzogSUNsb3VkYmFzZVxuICAgIGRlYnVnPzogSUNsb3VkYmFzZUF1dGhDb25maWdbJ2RlYnVnJ11cbiAgfSxcbikge1xuICBjb25zdCB7IHJlZ2lvbiA9ICdhcC1zaGFuZ2hhaScgfSA9IGNvbmZpZ1xuICBjb25zdCB7IHJ1bnRpbWUgfSA9IG9wdGlvbnM/LnBsYXRmb3JtIHx8IHt9XG5cbiAgY29uc3QgeyBlbnYsIGNsaWVudElkLCBkZWJ1ZywgY2FjaGUsIGFwcDogY2xvdWRiYXNlIH0gPSBvcHRpb25zIHx8IHt9XG4gIGxldCB7IGFwaU9yaWdpbiB9ID0gb3B0aW9ucyB8fCB7fVxuICBpZiAoIWFwaU9yaWdpbikge1xuICAgIGFwaU9yaWdpbiA9IGBodHRwczovLyR7ZW52fS4ke3JlZ2lvbn0udGNiLWFwaS50ZW5jZW50Y2xvdWRhcGkuY29tYFxuICB9XG4gIGNvbnN0IG9hdXRoSW5zdGFuY2UgPSBuZXcgQ2xvdWRiYXNlT0F1dGgodXNlQXV0aEFkYXB0ZXIoe1xuICAgIGVudixcbiAgICBjbGllbnRJZCxcbiAgICBhcGlPcmlnaW4sXG4gICAgLy8gQHRvZG8g5Lul5LiL5pyA5aW96LWwYWRhcHRvcuWkhOeQhu+8jOebruWJjW9hdXRo5qih5Z2X5rKh5oyJYWRhcHRvcuaOpeWPo+iuvuiuoVxuICAgIHN0b3JhZ2U6IGNvbmZpZz8uc3RvcmFnZSxcbiAgICBiYXNlUmVxdWVzdDogY29uZmlnPy5iYXNlUmVxdWVzdCxcbiAgICByZXF1ZXN0OiBjb25maWc/LnJlcXVlc3QsXG4gICAgYW5vbnltb3VzU2lnbkluRnVuYzogY29uZmlnPy5hbm9ueW1vdXNTaWduSW5GdW5jLFxuICAgIGNhcHRjaGFPcHRpb25zOiBjb25maWc/LmNhcHRjaGFPcHRpb25zLFxuICAgIHd4Q2xvdWQ6IGNvbmZpZz8ud3hDbG91ZCxcbiAgfSksKVxuXG4gIGNvbnN0IGF1dGhJbnN0YW5jZSA9IG5ldyBBdXRoKHtcbiAgICBlbnYsXG4gICAgcmVnaW9uLFxuICAgIHBlcnNpc3RlbmNlOiBjb25maWcucGVyc2lzdGVuY2UsXG4gICAgZGVidWcsXG4gICAgY2FjaGU6XG4gICAgICBjYWNoZVxuICAgICAgfHwgbmV3IENsb3VkYmFzZUNhY2hlKHtcbiAgICAgICAgcGVyc2lzdGVuY2U6IGNvbmZpZy5wZXJzaXN0ZW5jZSxcbiAgICAgICAga2V5czogeyB1c2VySW5mb0tleTogYHVzZXJfaW5mb18ke2Vudn1gIH0sXG4gICAgICAgIHBsYXRmb3JtSW5mbzogb3B0aW9ucz8ucGxhdGZvcm0sXG4gICAgICB9KSxcbiAgICBydW50aW1lOiBydW50aW1lIHx8ICd3ZWInLFxuICAgIF9mcm9tQXBwOiBjbG91ZGJhc2UsXG4gICAgb2F1dGhJbnN0YW5jZSxcbiAgfSlcblxuICByZXR1cm4geyBhdXRoSW5zdGFuY2UsIG9hdXRoSW5zdGFuY2UgfVxufVxuXG5jb25zdCBjb21wb25lbnQ6IElDbG91ZGJhc2VDb21wb25lbnQgPSB7XG4gIG5hbWU6IENPTVBPTkVOVF9OQU1FLFxuICBuYW1lc3BhY2U6ICdhdXRoJyxcbiAgZW50aXR5KGNvbmZpZzogVEluaXRBdXRoT3B0aW9ucyA9IHtcbiAgICByZWdpb246ICcnLFxuICAgIHBlcnNpc3RlbmNlOiAnbG9jYWwnLFxuICB9LCkge1xuICAgIGlmICh0aGlzLmF1dGhJbnN0YW5jZSkge1xuICAgICAgcHJpbnRXYXJuKEVSUk9SUy5JTlZBTElEX09QRVJBVElPTiwgJ2V2ZXJ5IGNsb3VkYmFzZSBpbnN0YW5jZSBzaG91bGQgaGFzIG9ubHkgb25lIGF1dGggb2JqZWN0JylcbiAgICAgIHJldHVybiB0aGlzLmF1dGhJbnN0YW5jZVxuICAgIH1cbiAgICBjb25zdCB7IGFkYXB0ZXIgfSA9IHRoaXMucGxhdGZvcm1cbiAgICAvLyDlpoLkuI3mmI7noa7mjIflrppwZXJzaXN0ZW5jZeWImeS8mOWFiOWPluWQhOW5s+WPsGFkYXB0ZXLpppbpgInvvIzlhbbmrKFsb2NhbFN0b3JhZ2VcbiAgICBjb25zdCBuZXdQZXJzaXN0ZW5jZSA9IGNvbmZpZy5wZXJzaXN0ZW5jZSB8fCBhZGFwdGVyLnByaW1hcnlTdG9yYWdlXG4gICAgaWYgKG5ld1BlcnNpc3RlbmNlICYmIG5ld1BlcnNpc3RlbmNlICE9PSB0aGlzLmNvbmZpZy5wZXJzaXN0ZW5jZSkge1xuICAgICAgdGhpcy51cGRhdGVDb25maWcoeyBwZXJzaXN0ZW5jZTogbmV3UGVyc2lzdGVuY2UgfSlcbiAgICB9XG5cbiAgICBjb25zdCB7IGF1dGhJbnN0YW5jZSwgb2F1dGhJbnN0YW5jZSB9ID0gZ2VuZXJhdGVBdXRoSW5zdGFuY2UoXG4gICAgICB7XG4gICAgICAgIHd4Q2xvdWQ6IHRoaXMuY29uZmlnLnd4Q2xvdWQsXG4gICAgICAgIHN0b3JhZ2U6IHRoaXMuY29uZmlnLnN0b3JhZ2UsXG4gICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgcGVyc2lzdGVuY2U6IHRoaXMuY29uZmlnLnBlcnNpc3RlbmNlLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgZW52OiB0aGlzLmNvbmZpZy5lbnYsXG4gICAgICAgIGNsaWVudElkOiB0aGlzLmNvbmZpZy5jbGllbnRJZCxcbiAgICAgICAgYXBpT3JpZ2luOiB0aGlzLnJlcXVlc3QuZ2V0QmFzZUVuZFBvaW50KCksXG4gICAgICAgIHBsYXRmb3JtOiB0aGlzLnBsYXRmb3JtLFxuICAgICAgICBjYWNoZTogdGhpcy5jYWNoZSxcbiAgICAgICAgYXBwOiB0aGlzLFxuICAgICAgICBkZWJ1ZzogdGhpcy5jb25maWcuZGVidWcsXG4gICAgICB9LFxuICAgIClcblxuICAgIHRoaXMub2F1dGhJbnN0YW5jZSA9IG9hdXRoSW5zdGFuY2VcblxuICAgIHRoaXMuYXV0aEluc3RhbmNlID0gYXV0aEluc3RhbmNlXG5cbiAgICByZXR1cm4gdGhpcy5hdXRoSW5zdGFuY2VcbiAgfSxcbn1cblxudHJ5IHtcbiAgLy8g5bCd6K+V6Ieq5Yqo5rOo5YaM6Iez5YWo5bGA5Y+Y6YePY2xvdWRiYXNlXG4gIC8vIOatpOihjOS4uuWPquWcqOa1j+iniOWZqOeOr+Wig+S4i+acieaViFxuICBjbG91ZGJhc2UucmVnaXN0ZXJDb21wb25lbnQoY29tcG9uZW50KVxufSBjYXRjaCAoZSkge31cblxuZXhwb3J0IHsgVXNlckluZm8sIEF1dGggfVxuLyoqXG4gKiBAYXBpIOaJi+WKqOazqOWGjOiHs2Nsb3VkYmFzZSBhcHBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyQXV0aChhcHA6IFBpY2s8SUNsb3VkYmFzZSwgJ3JlZ2lzdGVyQ29tcG9uZW50Jz4pIHtcbiAgdHJ5IHtcbiAgICBhcHAucmVnaXN0ZXJDb21wb25lbnQoY29tcG9uZW50KVxuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS53YXJuKGUpXG4gIH1cbn1cbiJdfQ==
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("@cloudbase/oauth")):"function"==typeof define&&define.amd?define("tcbauth",["@cloudbase/oauth"],e):"object"==typeof exports?exports.tcbauth=e(require("@cloudbase/oauth")):t.tcbauth=e(t.tcboauth)}("undefined"!=typeof window?window:this,t=>(()=>{"use strict";var e={829:(t,e,n)=>{var r;n.r(e),n.d(e,{AbstractSDKRequest:()=>o,AbstractStorage:()=>i,StorageType:()=>r,formatUrl:()=>s}),function(t){t.local="local",t.none="none",t.session="session"}(r||(r={}));var o=function(){},i=function(){};function s(t,e,n){void 0===n&&(n={});var r=/\?/.test(e),o="";for(var i in n)""===o?!r&&(e+="?"):o+="&",o+=i+"="+encodeURIComponent(n[i]);return/^http(s)?\:\/\//.test(e+=o)?e:""+t+e}},105:function(t,e,n){var r=this&&this.__createBinding||(Object.create?function(t,e,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(e,n);o&&!("get"in o?!e.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,o)}:function(t,e,n,r){void 0===r&&(r=n),t[r]=e[n]}),o=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),i=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&r(e,t,n);return o(e,t),e};Object.defineProperty(e,"__esModule",{value:!0}),e.useDefaultAdapter=e.useAdapters=e.RUNTIME=void 0;var s,a=i(n(587)),c=n(894);!function(t){t.WEB="web",t.WX_MP="wx_mp"}(s=e.RUNTIME||(e.RUNTIME={})),e.useAdapters=function(t){for(var e=0,n=(0,c.isArray)(t)?t:[t];e<n.length;e++){var r=n[e],o=r.isMatch,i=r.genAdapter,s=r.runtime;if(o())return{adapter:i(),runtime:s}}},e.useDefaultAdapter=function(){return{adapter:a.genAdapter(),runtime:s.WEB}}},587:function(t,e,n){var r,o=this&&this.__extends||(r=function(t,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])})(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),i=this&&this.__assign||function(){return(i=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var o in e=arguments[n])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)},s=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))((function(o,i){function s(t){try{c(r.next(t))}catch(t){i(t)}}function a(t){try{c(r.throw(t))}catch(t){i(t)}}function c(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,a)}c((r=r.apply(t,e||[])).next())}))},a=this&&this.__generator||function(t,e){var n,r,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(a){return function(c){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,a[0]&&(s=0)),s;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,r=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){s.label=a[1];break}if(6===a[0]&&s.label<o[1]){s.label=o[1],o=a;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(a);break}o[2]&&s.ops.pop(),s.trys.pop();continue}a=e.call(t,s)}catch(t){a=[6,t],r=0}finally{n=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,c])}}};Object.defineProperty(e,"__esModule",{value:!0}),e.WebRequest=e.genAdapter=void 0;var c=n(829),u=n(894),h=n(652),p=function(t){function e(e){var n=t.call(this)||this,r=e.timeout,o=e.timeoutMsg,i=e.restrictedMethods;return n.timeout=r||0,n.timeoutMsg=o||"请求超时",n.restrictedMethods=i||["get","post","upload","download"],n}return o(e,t),e.prototype.get=function(t){return this.request(i(i({},t),{method:"get"}),this.restrictedMethods.includes("get"))},e.prototype.post=function(t){return this.request(i(i({},t),{method:"post"}),this.restrictedMethods.includes("post"))},e.prototype.put=function(t){return this.request(i(i({},t),{method:"put"}))},e.prototype.upload=function(t){var e=t.data,n=t.file,r=t.name,o=t.method,s=t.headers,a=void 0===s?{}:s,c={post:"post",put:"put"}[null==o?void 0:o.toLowerCase()]||"put",u=new FormData;return"post"===c?(Object.keys(e).forEach((function(t){u.append(t,e[t])})),u.append("key",r),u.append("file",n),this.request(i(i({},t),{data:u,method:c}),this.restrictedMethods.includes("upload"))):this.request(i(i({},t),{method:"put",headers:a,body:n}),this.restrictedMethods.includes("upload"))},e.prototype.download=function(t){return s(this,void 0,void 0,(function(){var e,n,r,o;return a(this,(function(s){switch(s.label){case 0:return s.trys.push([0,2,,3]),[4,this.get(i(i({},t),{headers:{},responseType:"blob"}))];case 1:return e=s.sent().data,n=window.URL.createObjectURL(new Blob([e])),r=decodeURIComponent(new URL(t.url).pathname.split("/").pop()||""),(o=document.createElement("a")).href=n,o.setAttribute("download",r),o.style.display="none",document.body.appendChild(o),o.click(),window.URL.revokeObjectURL(n),document.body.removeChild(o),[3,3];case 2:return s.sent(),[3,3];case 3:return[2,new Promise((function(e){e({statusCode:200,tempFilePath:t.url})}))]}}))}))},e.prototype.request=function(t,e){var n=this;void 0===e&&(e=!1);var r=String(t.method).toLowerCase()||"get";return new Promise((function(o){var i,s,a=t.url,c=t.headers,p=void 0===c?{}:c,l=t.data,d=t.responseType,f=t.withCredentials,v=t.body,g=t.onUploadProgress,y=(0,u.formatUrl)((0,h.getProtocol)(),a,"get"===r?l:{}),m=new XMLHttpRequest;m.open(r,y),d&&(m.responseType=d),Object.keys(p).forEach((function(t){m.setRequestHeader(t,p[t])})),g&&m.upload.addEventListener("progress",g),m.onreadystatechange=function(){var t={};if(4===m.readyState){var e=m.getAllResponseHeaders().trim().split(/[\r\n]+/),n={};e.forEach((function(t){var e=t.split(": "),r=e.shift().toLowerCase(),o=e.join(": ");n[r]=o})),t.header=n,t.statusCode=m.status;try{t.data="blob"===d?m.response:JSON.parse(m.responseText)}catch(e){t.data="blob"===d?m.response:m.responseText}clearTimeout(i),o(t)}},e&&n.timeout&&(i=setTimeout((function(){console.warn(n.timeoutMsg),m.abort()}),n.timeout)),s=(0,u.isFormData)(l)?l:"application/x-www-form-urlencoded"===p["content-type"]?(0,u.toQueryString)(l):v||(l?JSON.stringify(l):void 0),f&&(m.withCredentials=!0),m.send(s)}))},e}(c.AbstractSDKRequest);e.WebRequest=p,e.genAdapter=function(){return{root:window,reqClass:p,wsClass:WebSocket,localStorage:localStorage}}},652:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.COMMUNITY_SITE_URL=e.IS_DEBUG_MODE=e.getProtocol=e.setProtocol=e.getSdkName=e.setSdkName=void 0;var n="@cloudbase/js-sdk";e.setSdkName=function(t){n=t},e.getSdkName=function(){return n};var r="https:";e.setProtocol=function(t){r=t},e.getProtocol=function(){return r},e.IS_DEBUG_MODE=!1,e.COMMUNITY_SITE_URL="https://support.qq.com/products/148793"},151:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ERRORS=void 0,e.ERRORS={INVALID_PARAMS:"INVALID_PARAMS",INVALID_SYNTAX:"INVALID_SYNTAX",INVALID_OPERATION:"INVALID_OPERATION",OPERATION_FAIL:"OPERATION_FAIL",NETWORK_ERROR:"NETWORK_ERROR",UNKOWN_ERROR:"UNKOWN_ERROR"}},141:function(t,e,n){var r=this&&this.__createBinding||(Object.create?function(t,e,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(e,n);o&&!("get"in o?!e.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,o)}:function(t,e,n,r){void 0===r&&(r=n),t[r]=e[n]}),o=this&&this.__exportStar||function(t,e){for(var n in t)"default"===n||Object.prototype.hasOwnProperty.call(e,n)||r(e,t,n)};Object.defineProperty(e,"__esModule",{value:!0}),e.OATUH_LOGINTYPE=void 0,o(n(652),e),o(n(151),e),e.OATUH_LOGINTYPE="constants"},64:function(t,e,n){var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))((function(o,i){function s(t){try{c(r.next(t))}catch(t){i(t)}}function a(t){try{c(r.throw(t))}catch(t){i(t)}}function c(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,a)}c((r=r.apply(t,e||[])).next())}))},o=this&&this.__generator||function(t,e){var n,r,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(a){return function(c){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,a[0]&&(s=0)),s;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,r=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){s.label=a[1];break}if(6===a[0]&&s.label<o[1]){s.label=o[1],o=a;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(a);break}o[2]&&s.ops.pop(),s.trys.pop();continue}a=e.call(t,s)}catch(t){a=[6,t],r=0}finally{n=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,c])}}};Object.defineProperty(e,"__esModule",{value:!0}),e.catchErrorsDecorator=void 0;var i=n(894),s=n(141),a=!1;"undefined"!=typeof navigator&&navigator.userAgent&&(a=-1!==navigator.userAgent.indexOf("Firefox"));var c=a?/(\.js\/)?__decorate(\$\d+)?<@.*\d$/:/(\/\w+\.js\.)?__decorate(\$\d+)?\s*\(.*\)$/,u=/https?:\/\/.+:\d*\/.*\.js:\d+:\d+/;function h(t){var e=t.err,n=t.className,r=t.methodName,o=t.sourceLink;if(!o)return null;var i,s=e.stack.split("\n"),c=a?/^catchErrorsDecorator\/<\/descriptor.value@.*\d$/:new RegExp("".concat(n,"\\.descriptor.value\\s*\\[as\\s").concat(r,"\\]\\s*\\(.*\\)$")),h=a?/^catchErrorsDecorator\/<\/descriptor.value/:new RegExp("".concat(n,"\\.descriptor.value\\s*\\[as\\s").concat(r,"\\]")),p=s.findIndex((function(t){return c.test(t)}));if(-1!==p){var l=s.filter((function(t,e){return e>p}));l.unshift(s[p].replace(h,"".concat(n,".").concat(r)).replace(u,o)),(i=new Error).stack="".concat(a?"@debugger":"Error","\n").concat(l.join("\n"))}return i}e.catchErrorsDecorator=function(t){var e=t.mode,n=void 0===e?"async":e,a=t.customInfo,p=void 0===a?{}:a,l=t.title,d=t.messages,f=void 0===d?[]:d;return function(t,e,a){if(s.IS_DEBUG_MODE){var d=p.className||t.constructor.name,v=p.methodName||e,g=a.value,y=function(t){var e="",n=t.stack.split("\n"),r=n.findIndex((function(t){return c.test(t)}));if(-1!==r){var o=u.exec(n[r+1]||"");e=o?o[0]:""}return e}(new Error);a.value="sync"===n?function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=h({err:new Error,className:d,methodName:v,sourceLink:y});try{return g.apply(this,t)}catch(t){var r=t,o=t.message,s=t.error,a=t.error_description,c={title:l||"".concat(d,".").concat(v," failed"),content:[{type:"error",body:t}]};if(o&&/^\{.*\}$/.test(o)){var u=JSON.parse(o);c.subtitle=o,u.code&&(n?(n.code=u.code,n.msg=u.msg):(t.code=u.code,t.message=u.msg),r=n||t,c.content=f.map((function(t){return{type:"info",body:t}})))}throw s&&a&&(c.subtitle=a,n?(n.code=s,n.msg=a):(t.code=s,t.message=a),r=n||t,c.content=f.map((function(t){return{type:"info",body:t}}))),(0,i.printGroupLog)(c),r}}:function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return r(this,void 0,void 0,(function(){var e,n,r,s,a,c,u,p;return o(this,(function(o){switch(o.label){case 0:e=h({err:new Error,className:d,methodName:v,sourceLink:y}),o.label=1;case 1:return o.trys.push([1,3,,4]),[4,g.apply(this,t)];case 2:return[2,o.sent()];case 3:throw n=o.sent(),r=n,s=n.message,a=n.error,c=n.error_description,u={title:l||"".concat(d,".").concat(v," failed"),content:[{type:"error",body:n}]},s&&/^\{.*\}$/.test(s)&&(p=JSON.parse(s),u.subtitle=p,p.code&&(e?(e.code=p.code,e.message=p.msg):(n.code=p.code,n.message=p.msg),r=e||n,u.content=f.map((function(t){return{type:"info",body:t}})))),a&&c&&(u.subtitle=c,e?(e.code=a,e.msg=c):(n.code=a,n.message=c),r=e||n,u.content=f.map((function(t){return{type:"info",body:t}}))),(0,i.printGroupLog)(u),r;case 4:return[2]}}))}))}}}}},466:function(t,e,n){var r=this&&this.__createBinding||(Object.create?function(t,e,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(e,n);o&&!("get"in o?!e.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,o)}:function(t,e,n,r){void 0===r&&(r=n),t[r]=e[n]}),o=this&&this.__exportStar||function(t,e){for(var n in t)"default"===n||Object.prototype.hasOwnProperty.call(e,n)||r(e,t,n)};Object.defineProperty(e,"__esModule",{value:!0}),o(n(64),e)},418:function(t,e,n){var r,o=this&&this.__extends||(r=function(t,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])})(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),i=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))((function(o,i){function s(t){try{c(r.next(t))}catch(t){i(t)}}function a(t){try{c(r.throw(t))}catch(t){i(t)}}function c(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,a)}c((r=r.apply(t,e||[])).next())}))},s=this&&this.__generator||function(t,e){var n,r,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(a){return function(c){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,a[0]&&(s=0)),s;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,r=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){s.label=a[1];break}if(6===a[0]&&s.label<o[1]){s.label=o[1],o=a;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(a);break}o[2]&&s.ops.pop(),s.trys.pop();continue}a=e.call(t,s)}catch(t){a=[6,t],r=0}finally{n=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,c])}}};Object.defineProperty(e,"__esModule",{value:!0}),e.CloudbaseCache=void 0;var a=n(829),c=n(894),u=n(141),h=function(t){function e(e){var n=t.call(this)||this;return n.root=e,e.tcbCacheObject||(e.tcbCacheObject={}),n}return o(e,t),e.prototype.setItem=function(t,e){this.root.tcbCacheObject[t]=e},e.prototype.getItem=function(t){return this.root.tcbCacheObject[t]},e.prototype.removeItem=function(t){delete this.root.tcbCacheObject[t]},e.prototype.clear=function(){delete this.root.tcbCacheObject},e}(a.AbstractStorage);var p=function(){function t(t){this.keys={};var e=t.persistence,n=t.platformInfo,r=void 0===n?{}:n,o=t.keys,i=void 0===o?{}:o;this.platformInfo=r,this.storage||(this.persistenceTag=this.platformInfo.adapter.primaryStorage||e,this.storage=function(t,e){switch(t){case"local":return e.localStorage?e.localStorage:((0,c.printWarn)(u.ERRORS.INVALID_PARAMS,"localStorage is not supported on current platform"),new h(e.root));case"none":return new h(e.root);default:return e.localStorage?e.localStorage:((0,c.printWarn)(u.ERRORS.INVALID_PARAMS,"localStorage is not supported on current platform"),new h(e.root))}}(this.persistenceTag,this.platformInfo.adapter),this.keys=i)}return Object.defineProperty(t.prototype,"mode",{get:function(){return this.storage.mode||"sync"},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"persistence",{get:function(){return this.persistenceTag},enumerable:!1,configurable:!0}),t.prototype.setStore=function(t,e,n){if("async"!==this.mode){if(this.storage)try{var r={version:n||"localCachev1",content:e};this.storage.setItem(t,JSON.stringify(r))}catch(t){throw new Error(JSON.stringify({code:u.ERRORS.OPERATION_FAIL,msg:"[".concat((0,u.getSdkName)(),"][").concat(u.ERRORS.OPERATION_FAIL,"]setStore failed"),info:t}))}}else(0,c.printWarn)(u.ERRORS.INVALID_OPERATION,"current platform's storage is asynchronous, please use setStoreAsync insteed")},t.prototype.setStoreAsync=function(t,e,n){return i(this,void 0,void 0,(function(){var r;return s(this,(function(o){switch(o.label){case 0:if(!this.storage)return[2];o.label=1;case 1:return o.trys.push([1,3,,4]),r={version:n||"localCachev1",content:e},[4,this.storage.setItem(t,JSON.stringify(r))];case 2:return o.sent(),[3,4];case 3:return o.sent(),[2];case 4:return[2]}}))}))},t.prototype.getStore=function(t,e){var n;if("async"!==this.mode){try{if("undefined"!=typeof process&&(null===(n=process.env)||void 0===n?void 0:n.tcb_token))return process.env.tcb_token;if(!this.storage)return""}catch(t){return""}e=e||"localCachev1";var r=this.storage.getItem(t);return r&&r.indexOf(e)>=0?JSON.parse(r).content:""}(0,c.printWarn)(u.ERRORS.INVALID_OPERATION,"current platform's storage is asynchronous, please use getStoreAsync insteed")},t.prototype.getStoreAsync=function(t,e){var n;return i(this,void 0,void 0,(function(){var r;return s(this,(function(o){switch(o.label){case 0:try{if("undefined"!=typeof process&&(null===(n=process.env)||void 0===n?void 0:n.tcb_token))return[2,process.env.tcb_token];if(!this.storage)return[2,""]}catch(t){return[2,""]}return e=e||"localCachev1",[4,this.storage.getItem(t)];case 1:return(r=o.sent())&&r.indexOf(e)>=0?[2,JSON.parse(r).content]:[2,""]}}))}))},t.prototype.removeStore=function(t){"async"!==this.mode?this.storage.removeItem(t):(0,c.printWarn)(u.ERRORS.INVALID_OPERATION,"current platform's storage is asynchronous, please use removeStoreAsync insteed")},t.prototype.removeStoreAsync=function(t){return i(this,void 0,void 0,(function(){return s(this,(function(e){switch(e.label){case 0:return[4,this.storage.removeItem(t)];case 1:return e.sent(),[2]}}))}))},t}();e.CloudbaseCache=p},988:function(t,e,n){var r,o=this&&this.__extends||(r=function(t,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])})(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),i=this&&this.__spreadArray||function(t,e,n){if(n||2===arguments.length)for(var r,o=0,i=e.length;o<i;o++)!r&&o in e||(r||(r=Array.prototype.slice.call(e,0,o)),r[o]=e[o]);return t.concat(r||Array.prototype.slice.call(e))};Object.defineProperty(e,"__esModule",{value:!0}),e.removeEventListener=e.activateEvent=e.addEventListener=e.CloudbaseEventEmitter=e.IErrorEvent=e.CloudbaseEvent=void 0;var s=n(894);var a=function(t,e){this.data=e||null,this.name=t};e.CloudbaseEvent=a;var c=function(t){function e(e,n){var r=t.call(this,"error",{error:e,data:n})||this;return r.error=e,r}return o(e,t),e}(a);e.IErrorEvent=c;var u=function(){function t(){this.listeners={}}return t.prototype.on=function(t,e){return function(t,e,n){n[t]=n[t]||[],n[t].push(e)}(t,e,this.listeners),this},t.prototype.off=function(t,e){return function(t,e,n){if(null==n?void 0:n[t]){var r=n[t].indexOf(e);-1!==r&&n[t].splice(r,1)}}(t,e,this.listeners),this},t.prototype.fire=function(t,e){if((0,s.isInstanceOf)(t,c))return console.error(t.error),this;var n=(0,s.isString)(t)?new a(t,e||{}):t,r=n.name;if(this.listens(r)){n.target=this;for(var o=0,u=this.listeners[r]?i([],this.listeners[r],!0):[];o<u.length;o++){u[o].call(this,n)}}return this},t.prototype.listens=function(t){return this.listeners[t]&&this.listeners[t].length>0},t}();e.CloudbaseEventEmitter=u;var h=new u;e.addEventListener=function(t,e){h.on(t,e)},e.activateEvent=function(t,e){void 0===e&&(e={}),h.fire(t,e)},e.removeEventListener=function(t,e){h.off(t,e)}},894:(t,e,n)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.transformPhone=e.sleep=e.printGroupLog=e.throwError=e.printInfo=e.printError=e.printWarn=e.execCallback=e.createPromiseCallback=e.removeParam=e.getHash=e.getQuery=e.toQueryString=e.formatUrl=e.genSeqId=e.isFormData=e.isInstanceOf=e.isNull=e.isPalinObject=e.isUndefined=e.isString=e.isArray=void 0;var r=n(141);e.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)},e.isString=function(t){return"string"==typeof t},e.isUndefined=function(t){return void 0===t},e.isPalinObject=function(t){return"[object Object]"===Object.prototype.toString.call(t)},e.isNull=function(t){return"[object Null]"===Object.prototype.toString.call(t)},e.isInstanceOf=function(t,e){return t instanceof e},e.isFormData=function(t){return"[object FormData]"===Object.prototype.toString.call(t)},e.genSeqId=function(){return Math.random().toString(16).slice(2)},e.formatUrl=function(t,e,n){void 0===n&&(n={});var r=/\?/.test(e),o="";return Object.keys(n).forEach((function(t){""===o?!r&&(e+="?"):o+="&",o+="".concat(t,"=").concat(encodeURIComponent(n[t]))})),/^http(s)?:\/\//.test(e+=o)?e:"".concat(t).concat(e)},e.toQueryString=function(t){void 0===t&&(t={});var e=[];return Object.keys(t).forEach((function(n){e.push("".concat(n,"=").concat(encodeURIComponent(t[n])))})),e.join("&")},e.getQuery=function(t,e){if("undefined"==typeof window)return!1;var n=e||window.location.search,r=new RegExp("(^|&)".concat(t,"=([^&]*)(&|$)")),o=n.substr(n.indexOf("?")+1).match(r);return null!=o?o[2]:""};e.getHash=function(t){if("undefined"==typeof window)return"";var e=window.location.hash.match(new RegExp("[#?&/]".concat(t,"=([^&#]*)")));return e?e[1]:""},e.removeParam=function(t,e){var n=e.split("?")[0],r=[],o=-1!==e.indexOf("?")?e.split("?")[1]:"";if(""!==o){for(var i=(r=o.split("&")).length-1;i>=0;i-=1)r[i].split("=")[0]===t&&r.splice(i,1);n="".concat(n,"?").concat(r.join("&"))}return n},e.createPromiseCallback=function(){var t;if(!Promise){(t=function(){}).promise={};var e=function(){throw new Error('Your Node runtime does support ES6 Promises. Set "global.Promise" to your preferred implementation of promises.')};return Object.defineProperty(t.promise,"then",{get:e}),Object.defineProperty(t.promise,"catch",{get:e}),t}var n=new Promise((function(e,n){t=function(t,r){return t?n(t):e(r)}}));return t.promise=n,t},e.execCallback=function(t,e,n){if(void 0===n&&(n=null),t&&"function"==typeof t)return t(e,n);if(e)throw e;return n},e.printWarn=function(t,e){console.warn("[".concat((0,r.getSdkName)(),"][").concat(t,"]:").concat(e))},e.printError=function(t,e){console.error({code:t,msg:"[".concat((0,r.getSdkName)(),"][").concat(t,"]:").concat(e)})},e.printInfo=function(t,e){console.log("[".concat((0,r.getSdkName)(),"][").concat(t,"]:").concat(e))},e.throwError=function(t,e){throw new Error(JSON.stringify({code:t,msg:"[".concat((0,r.getSdkName)(),"][").concat(t,"]:").concat(e)}))},e.printGroupLog=function(t){var e=t.title,n=t.subtitle,r=void 0===n?"":n,o=t.content,i=void 0===o?[]:o,s=t.printTrace,a=void 0!==s&&s,c=t.collapsed;void 0!==c&&c?console.groupCollapsed(e,r):console.group(e,r);for(var u=0,h=i;u<h.length;u++){var p=h[u],l=p.type,d=p.body;switch(l){case"info":console.log(d);break;case"warn":console.warn(d);break;case"error":console.error(d)}}a&&console.trace("stack trace:"),console.groupEnd()};e.sleep=function(t){return void 0===t&&(t=0),new Promise((function(e){return setTimeout(e,t)}))},e.transformPhone=function(t){return"+86".concat(t)}},297:e=>{e.exports=t}},n={};function r(t){var o=n[t];if(void 0!==o)return o.exports;var i=n[t]={exports:{}};return e[t].call(i.exports,i,i.exports,r),i.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var o={};return(()=>{r.r(o),r.d(o,{Auth:()=>k,LoginState:()=>C,generateAuthInstance:()=>x,registerAuth:()=>j});var t,e=r(297),n=r(894),i=r(141),s=r(466),a=r(988),c=r(418),u=r(829),h=(t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(e,n)},function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}),p=function(){return(p=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var o in e=arguments[n])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)},l=function(t,e,n,r){return new(n||(n=Promise))((function(o,i){function s(t){try{c(r.next(t))}catch(t){i(t)}}function a(t){try{c(r.throw(t))}catch(t){i(t)}}function c(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,a)}c((r=r.apply(t,e||[])).next())}))},d=function(t,e){var n,r,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,r=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){s.label=i[1];break}if(6===i[0]&&s.label<o[1]){s.label=o[1],o=i;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(i);break}o[2]&&s.ops.pop(),s.trys.pop();continue}i=e.call(t,s)}catch(t){i=[6,t],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}};var f=function(t){function e(e){void 0===e&&(e={});var n=t.call(this)||this,r=e.timeout,o=e.timeoutMsg,i=e.restrictedMethods;return n._timeout=r||0,n._timeoutMsg=o||"请求超时",n._restrictedMethods=i||["get","post","upload","download"],n}return h(e,t),e.prototype.post=function(t){var e=this;return new Promise((function(n,r){var o=t.url,i=t.data,s=t.headers,a=wx.request({url:(0,u.formatUrl)("https:",o),data:i,timeout:e._timeout,method:"POST",header:s,success:function(t){n(t)},fail:function(t){r(t)},complete:function(t){if(t&&t.errMsg&&(e._timeout&&-1!==e._restrictedMethods.indexOf("post")&&"request:fail timeout"===t.errMsg)){console.warn(e._timeoutMsg);try{a.abort()}catch(t){}}}})}))},e.prototype.upload=function(t){var e=this,n=this;return new Promise((function(r){return l(e,void 0,void 0,(function(){var e,o,i,s,a,c;return d(this,(function(u){return e=t.url,o=t.file,i=t.data,s=t.headers,a=t.onUploadProgress,c=wx.uploadFile({url:e,filePath:o,name:"file",formData:p({},i),header:s,timeout:this._timeout,success:function(t){var e={statusCode:t.statusCode,data:t.data||{}};200===t.statusCode&&i.success_action_status&&(e.statusCode=parseInt(i.success_action_status,10)),r(e)},fail:function(t){r(t)},complete:function(t){if(t&&t.errMsg&&(n._timeout&&-1!==n._restrictedMethods.indexOf("upload")&&"request:fail timeout"===t.errMsg)){console.warn(n._timeoutMsg);try{c.abort()}catch(t){}}}}),a&&c.onProgressUpdate((function(t){a(t)})),[2]}))}))}))},e.prototype.download=function(t){var e=this,n=this;return new Promise((function(r,o){var i=t.url,s=t.headers,a=wx.downloadFile({url:(0,u.formatUrl)("https:",i),header:s,timeout:e._timeout,success:function(t){200===t.statusCode&&t.tempFilePath?r({statusCode:200,tempFilePath:t.tempFilePath}):r(t)},fail:function(t){o(t)},complete:function(t){if(t&&t.errMsg&&(n._timeout&&-1!==n._restrictedMethods.indexOf("download")&&"request:fail timeout"===t.errMsg)){console.warn(n._timeoutMsg);try{a.abort()}catch(t){}}}})}))},e}(u.AbstractSDKRequest),v={setItem:function(t,e){wx.setStorageSync(t,e)},getItem:function(t){return wx.getStorageSync(t)},removeItem:function(t){wx.removeStorageSync(t)},clear:function(){wx.clearStorageSync()}},g=function(t,e){void 0===e&&(e={});var n=wx.connectSocket(p({url:t},e));return{set onopen(t){n.onOpen(t)},set onmessage(t){n.onMessage(t)},set onclose(t){n.onClose(t)},set onerror(t){n.onError(t)},send:function(t){return n.send({data:t})},close:function(t,e){return n.close({code:t,reason:e})},get readyState(){return n.readyState},CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3}};const y={genAdapter:function(){return{root:{},reqClass:f,wsClass:g,localStorage:v,primaryStorage:u.StorageType.local,getAppSign:function(){var t=wx.getAccountInfoSync();return"undefined"!=typeof App||"undefined"!=typeof getApp||wx.onAppHide||wx.offAppHide||wx.onAppShow||wx.offAppShow?t&&t.miniProgram?t.miniProgram.appId:"":t&&t.plugin?t.plugin.appId:""}}},isMatch:function(){if("undefined"==typeof wx)return!1;if("undefined"==typeof Page)return!1;if(!wx.getSystemInfoSync)return!1;if(!wx.getStorageSync)return!1;if(!wx.setStorageSync)return!1;if(!wx.connectSocket)return!1;if(!wx.request)return!1;try{if(!wx.getSystemInfoSync())return!1;if("qq"===wx.getSystemInfoSync().AppPlatform)return!1}catch(t){return!1}return!0},runtime:"wx_mp"};var m=r(105),b=function(){return(b=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var o in e=arguments[n])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)},I=function(t,e,n,r){return new(n||(n=Promise))((function(o,i){function s(t){try{c(r.next(t))}catch(t){i(t)}}function a(t){try{c(r.throw(t))}catch(t){i(t)}}function c(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,a)}c((r=r.apply(t,e||[])).next())}))},w=function(t,e){var n,r,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(a){return function(c){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,a[0]&&(s=0)),s;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,r=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){s.label=a[1];break}if(6===a[0]&&s.label<o[1]){s.label=o[1],o=a;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(a);break}o[2]&&s.ops.pop(),s.trys.pop();continue}a=e.call(t,s)}catch(t){a=[6,t],r=0}finally{n=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,c])}}},_=function(){function t(t){this.localStorage=(null==t?void 0:t.localStorage)||globalThis.localStorage}return t.prototype.getItem=function(t){return I(this,void 0,void 0,(function(){return w(this,(function(e){return[2,this.localStorage.getItem(t)]}))}))},t.prototype.removeItem=function(t){return I(this,void 0,void 0,(function(){return w(this,(function(e){return this.localStorage.removeItem(t),[2]}))}))},t.prototype.setItem=function(t,e){return I(this,void 0,void 0,(function(){return w(this,(function(n){return this.localStorage.setItem(t,e),[2]}))}))},t.prototype.getItemSync=function(t){return this.localStorage.getItem(t)},t.prototype.setItemSync=function(t,e){this.localStorage.setItem(t,e)},t.prototype.removeItemSync=function(t){this.localStorage.removeItem(t)},t}(),S=/^[^:]+:\/\/[^/]+(\/[^?#]+)/;function O(t){return function(e,n){var r;return I(this,void 0,void 0,(function(){var o;return w(this,(function(i){return o=null===(r=null==n?void 0:n.headers)||void 0===r?void 0:r["x-request-id"],[2,new Promise((function(r,i){var s=Object.assign({},n);s.body&&"string"!=typeof s.body&&(s.body=JSON.stringify(s.body));var a=wx.request({url:e,data:s.body,timeout:t._timeout,method:s.method||"GET",header:s.headers,success:function(t){t.code&&(t={error:t.code,error_description:t.message||t.code,request_id:t.requestId}),t.request_id||(t.request_id=t.request_id||o),t.error&&(t.error_uri=function(t){return S.test(t)?RegExp.$1:t}(e),i(t)),r(t.data||{})},fail:function(t){i({error:"unreachable",error_description:t.message})},complete:function(e){if(e&&e.errMsg&&(t._timeout&&-1!==t._restrictedMethods.indexOf("request")&&"request:fail timeout"===e.errMsg)){console.warn(t._timeoutMsg);try{a.abort()}catch(t){}}}})}))]}))}))}}var A=function(){return(A=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var o in e=arguments[n])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)},P=function(t,e,n,r){var o,i=arguments.length,s=i<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,r);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(s=(i<3?o(s):i>3?o(e,n,s):o(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},E=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},U=function(t,e,n,r){return new(n||(n=Promise))((function(o,i){function s(t){try{c(r.next(t))}catch(t){i(t)}}function a(t){try{c(r.throw(t))}catch(t){i(t)}}function c(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,a)}c((r=r.apply(t,e||[])).next())}))},L=function(t,e){var n,r,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(a){return function(c){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,a[0]&&(s=0)),s;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,r=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){s.label=a[1];break}if(6===a[0]&&s.label<o[1]){s.label=o[1],o=a;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(a);break}o[2]&&s.ops.pop(),s.trys.pop();continue}a=e.call(t,s)}catch(t){a=[6,t],r=0}finally{n=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,c])}}},R="loginStateChanged",M=new a.CloudbaseEventEmitter,T=function(){function t(t){var e=t.cache,n=t.oauthInstance;this.cache=e,this.oauthInstance=n,this.setUserInfo()}return t.prototype.checkLocalInfo=function(){return U(this,void 0,void 0,(function(){return L(this,(function(t){return this.uid=this.getLocalUserInfo("uid"),this.gender=this.getLocalUserInfo("gender"),this.picture=this.getLocalUserInfo("picture"),this.email=this.getLocalUserInfo("email"),this.emailVerified=this.getLocalUserInfo("email_verified"),this.phoneNumber=this.getLocalUserInfo("phone_number"),this.username=this.getLocalUserInfo("username"),this.name=this.getLocalUserInfo("name"),this.birthdate=this.getLocalUserInfo("birthdate"),this.zoneinfo=this.getLocalUserInfo("zoneinfo"),this.locale=this.getLocalUserInfo("locale"),this.sub=this.getLocalUserInfo("sub"),this.createdFrom=this.getLocalUserInfo("created_from"),this.providers=this.getLocalUserInfo("providers"),[2]}))}))},t.prototype.checkLocalInfoAsync=function(){return U(this,void 0,void 0,(function(){var t,e,n,r;return L(this,(function(o){switch(o.label){case 0:return t=this,[4,this.getLocalUserInfoAsync("uid")];case 1:return t.uid=o.sent(),e=this,[4,this.getLocalUserInfoAsync("gender")];case 2:return e.gender=o.sent(),this.picture=this.getLocalUserInfo("picture"),n=this,[4,this.getLocalUserInfoAsync("email")];case 3:return n.email=o.sent(),this.emailVerified=this.getLocalUserInfo("email_verified"),this.phoneNumber=this.getLocalUserInfo("phone_number"),r=this,[4,this.getLocalUserInfoAsync("username")];case 4:return r.username=o.sent(),this.name=this.getLocalUserInfo("name"),this.birthdate=this.getLocalUserInfo("birthdate"),this.zoneinfo=this.getLocalUserInfo("zoneinfo"),this.locale=this.getLocalUserInfo("locale"),this.sub=this.getLocalUserInfo("sub"),this.createdFrom=this.getLocalUserInfo("created_from"),this.providers=this.getLocalUserInfo("providers"),[2]}}))}))},t.prototype.update=function(t){return U(this,void 0,void 0,(function(){var e;return L(this,(function(n){switch(n.label){case 0:return[4,this.oauthInstance.authApi.setUserProfile(A({},t))];case 1:return e=n.sent(),this.setLocalUserInfo(e),[2]}}))}))},t.prototype.updateUserBasicInfo=function(t){return U(this,void 0,void 0,(function(){return L(this,(function(e){switch(e.label){case 0:return[4,this.oauthInstance.authApi.updateUserBasicInfo(A({},t))];case 1:return e.sent(),this.setLocalUserInfo({username:t.username}),[2]}}))}))},t.prototype.updatePassword=function(t,e){return this.oauthInstance.authApi.updatePasswordByOld({old_password:e,new_password:t})},t.prototype.updateUsername=function(t){return"string"!=typeof t&&(0,n.throwError)(i.ERRORS.INVALID_PARAMS,"username must be a string"),this.update({username:t})},t.prototype.refresh=function(t){return U(this,void 0,void 0,(function(){var e;return L(this,(function(n){switch(n.label){case 0:return[4,this.oauthInstance.authApi.getUserInfo(t)];case 1:return e=n.sent(),this.setLocalUserInfo(e),[2,e]}}))}))},t.prototype.getLocalUserInfo=function(t){var e=this.cache.keys.userInfoKey;return this.cache.getStore(e)[t]},t.prototype.getLocalUserInfoAsync=function(t){return U(this,void 0,void 0,(function(){var e;return L(this,(function(n){switch(n.label){case 0:return e=this.cache.keys.userInfoKey,[4,this.cache.getStoreAsync(e)];case 1:return[2,n.sent()[t]]}}))}))},t.prototype.setUserInfo=function(){var t=this,e=this.cache.keys.userInfoKey,n=this.cache.getStore(e);["uid","email","name","gender","picture","email_verified","phone_number","birthdate","zoneinfo","locale","sub","created_from","providers","username"].forEach((function(e){t[e]=n[e]}))},t.prototype.setLocalUserInfo=function(t){var e=this.cache.keys.userInfoKey;this.cache.setStore(e,t),this.setUserInfo()},P([(0,s.catchErrorsDecorator)({title:"更新用户信息失败",messages:["请确认以下各项:"," 1 - 调用 User.update() 的语法或参数是否正确"," 2 - 用户信息中是否包含非法值","如果问题依然存在,建议到官方问答社区提问或寻找帮助:".concat(i.COMMUNITY_SITE_URL)]}),E("design:type",Function),E("design:paramtypes",[Object]),E("design:returntype",Promise)],t.prototype,"update",null),P([(0,s.catchErrorsDecorator)({title:"更新密码失败",messages:["请确认以下各项:"," 1 - 调用 User.updatePassword() 的语法或参数是否正确"," 3 - 新密码中是否包含非法字符","如果问题依然存在,建议到官方问答社区提问或寻找帮助:".concat(i.COMMUNITY_SITE_URL)]}),E("design:type",Function),E("design:paramtypes",[String,String]),E("design:returntype",void 0)],t.prototype,"updatePassword",null),P([(0,s.catchErrorsDecorator)({title:"更新用户名失败",messages:["请确认以下各项:"," 1 - 调用 User.updateUsername() 的语法或参数是否正确"," 2 - 当前环境是否开通了用户名密码登录","如果问题依然存在,建议到官方问答社区提问或寻找帮助:".concat(i.COMMUNITY_SITE_URL)]}),E("design:type",Function),E("design:paramtypes",[String]),E("design:returntype",void 0)],t.prototype,"updateUsername",null),P([(0,s.catchErrorsDecorator)({title:"刷新本地用户信息失败",messages:["请确认以下各项:"," 1 - 调用 User.refresh() 的语法或参数是否正确","如果问题依然存在,建议到官方问答社区提问或寻找帮助:".concat(i.COMMUNITY_SITE_URL)]}),E("design:type",Function),E("design:paramtypes",[Object]),E("design:returntype",Promise)],t.prototype,"refresh",null),t}(),C=function(){function t(t){var e=t.envId,r=t.cache,o=t.oauthInstance;e||(0,n.throwError)(i.ERRORS.INVALID_PARAMS,"envId is not defined"),this.cache=r,this.oauthInstance=o,this.user=new T({cache:this.cache,oauthInstance:o})}return t.prototype.checkLocalState=function(){var t;this.oauthLoginState=null===(t=this.oauthInstance)||void 0===t?void 0:t.authApi.hasLoginStateSync(),this.user.checkLocalInfo()},t.prototype.checkLocalStateAsync=function(){var t;return U(this,void 0,void 0,(function(){return L(this,(function(e){switch(e.label){case 0:return[4,null===(t=this.oauthInstance)||void 0===t?void 0:t.authApi.getLoginState()];case 1:return e.sent(),[4,this.user.checkLocalInfoAsync()];case 2:return e.sent(),[2]}}))}))},t}(),k=function(){function t(t){this.config=t,this.cache=t.cache,this.oauthInstance=t.oauthInstance}return t.prototype.bindPhoneNumber=function(t){return U(this,void 0,void 0,(function(){return L(this,(function(e){return[2,this.oauthInstance.authApi.editContact(t)]}))}))},t.prototype.unbindProvider=function(t){return U(this,void 0,void 0,(function(){return L(this,(function(e){return[2,this.oauthInstance.authApi.unbindProvider(t)]}))}))},t.prototype.bindEmail=function(t){return this.oauthInstance.authApi.editContact(t)},t.prototype.verify=function(t){return U(this,void 0,void 0,(function(){return L(this,(function(e){return[2,this.oauthInstance.authApi.verify(t)]}))}))},t.prototype.getVerification=function(t){return U(this,void 0,void 0,(function(){return L(this,(function(e){return[2,this.oauthInstance.authApi.getVerification(t)]}))}))},Object.defineProperty(t.prototype,"currentUser",{get:function(){if("async"!==this.cache.mode){var t=this.hasLoginState();return t&&t.user||null}(0,n.printWarn)(i.ERRORS.INVALID_OPERATION,"current platform's storage is asynchronous, please use getCurrentUser insteed")},enumerable:!1,configurable:!0}),t.prototype.getCurrentUser=function(){return U(this,void 0,void 0,(function(){var t;return L(this,(function(e){switch(e.label){case 0:return[4,this.getLoginState()];case 1:return(t=e.sent())?[4,t.user.checkLocalInfoAsync()]:[3,3];case 2:return e.sent(),[2,t.user||null];case 3:return[2,null]}}))}))},t.prototype.signInAnonymously=function(t){return void 0===t&&(t={}),U(this,void 0,void 0,(function(){return L(this,(function(e){switch(e.label){case 0:return[4,this.oauthInstance.authApi.signInAnonymously(t)];case 1:return e.sent(),[2,this.createLoginState()]}}))}))},t.prototype.signInWithOpenId=function(t){var e=(void 0===t?{}:t).useWxCloud,n=void 0===e||e;return U(this,void 0,void 0,(function(){var t,e,r,o=this;return L(this,(function(i){switch(i.label){case 0:if(!y.isMatch())throw Error("wx api undefined");if(!n)return[3,7];t=wx.getAccountInfoSync().miniProgram,e=void 0,r=void 0,i.label=1;case 1:return i.trys.push([1,4,,5]),[4,this.oauthInstance.authApi.grantProviderToken({provider_id:null==t?void 0:t.appId,provider_params:{provider_code_type:"open_id"}},!0)];case 2:if(null==(e=i.sent())?void 0:e.error_code)throw e;return[4,this.oauthInstance.authApi.signInWithProvider({provider_token:e.provider_token},!0)];case 3:if(null==(r=i.sent())?void 0:r.error_code)throw r;return[3,5];case 4:throw i.sent();case 5:return[4,this.oauthInstance.oauth2client.setCredentials(r)];case 6:return i.sent(),[3,9];case 7:return[4,new Promise((function(t,e){var n=wx.getAccountInfoSync().miniProgram;wx.login({success:function(r){return U(o,void 0,void 0,(function(){var o,i,s,a,c;return L(this,(function(u){switch(u.label){case 0:o=null==n?void 0:n.appId,u.label=1;case 1:return u.trys.push([1,4,,5]),[4,this.oauthInstance.authApi.grantProviderToken({provider_code:r.code,provider_id:o,provider_params:{provider_code_type:"open_id",appid:null==n?void 0:n.appId}})];case 2:return i=u.sent(),(s=i.provider_token)?[4,this.oauthInstance.authApi.signInWithProvider({provider_token:s})]:(e(i),[2]);case 3:return(null==(a=u.sent())?void 0:a.error_code)?(e(a),[2]):(t(!0),[3,5]);case 4:return c=u.sent(),e(c),[3,5];case 5:return[2]}}))}))},fail:function(t){var n=new Error(null==t?void 0:t.errMsg);n.code=null==t?void 0:t.errno,e(n)}})}))];case 8:i.sent(),i.label=9;case 9:return[2,this.createLoginState()]}}))}))},t.prototype.signInWithUnionId=function(){return U(this,void 0,void 0,(function(){var t=this;return L(this,(function(e){switch(e.label){case 0:if(!y.isMatch())throw Error("wx api undefined");e.label=1;case 1:return e.trys.push([1,3,,4]),[4,new Promise((function(e,n){var r=wx.getAccountInfoSync().miniProgram;wx.login({success:function(o){return U(t,void 0,void 0,(function(){var t,i,s,a,c;return L(this,(function(u){switch(u.label){case 0:t=null==r?void 0:r.appId,u.label=1;case 1:return u.trys.push([1,4,,5]),[4,this.oauthInstance.authApi.grantProviderToken({provider_code:o.code,provider_id:t,provider_params:{provider_code_type:"union_id",appid:null==r?void 0:r.appId}})];case 2:return i=u.sent(),(s=i.provider_token)?[4,this.oauthInstance.authApi.signInWithProvider({provider_id:t,provider_token:s})]:(n(i),[2]);case 3:return(null==(a=u.sent())?void 0:a.error_code)?(n(a),[2]):(e(!0),[3,5]);case 4:return c=u.sent(),n(c),[3,5];case 5:return[2]}}))}))},fail:function(t){var e=new Error(null==t?void 0:t.errMsg);e.code=null==t?void 0:t.errno,n(e)}})}))];case 2:return e.sent(),[3,4];case 3:throw e.sent();case 4:return[2,this.createLoginState()]}}))}))},t.prototype.signInWithPhoneAuth=function(t){var e=t.phoneCode,n=void 0===e?"":e;return U(this,void 0,void 0,(function(){var t,e,r,o,i;return L(this,(function(s){switch(s.label){case 0:if(!y.isMatch())throw Error("wx api undefined");return t=wx.getAccountInfoSync().miniProgram,e={provider_params:{provider_code_type:"phone"},provider_id:t.appId},[4,wx.login()];case 1:r=s.sent().code,e.provider_code=r,s.label=2;case 2:return s.trys.push([2,6,,7]),[4,this.oauthInstance.authApi.grantProviderToken(e)];case 3:if((o=s.sent()).error_code)throw o;return[4,this.oauthInstance.authApi.patchProviderToken({provider_token:o.provider_token,provider_id:t.appId,provider_params:{code:n,provider_code_type:"phone"}})];case 4:if((o=s.sent()).error_code)throw o;return[4,this.oauthInstance.authApi.signInWithProvider({provider_token:o.provider_token})];case 5:if(null==(i=s.sent())?void 0:i.error_code)throw i;return[3,7];case 6:throw s.sent();case 7:return[2,this.createLoginState()]}}))}))},t.prototype.signInWithSms=function(t){var e=t.verificationInfo,n=void 0===e?{id:"",isUser:!1}:e,r=t.verificationCode,o=void 0===r?"":r,i=t.phoneNum,s=void 0===i?"":i,a=t.bindInfo,c=void 0===a?void 0:a;return U(this,void 0,void 0,(function(){var t,e,r,i,a;return L(this,(function(u){switch(u.label){case 0:return u.trys.push([0,8,,9]),[4,this.oauthInstance.authApi.verify({verification_id:n.id,verification_code:o})];case 1:if(null==(t=u.sent())?void 0:t.error_code)throw t;return e=t.verification_token,n.isUser?[4,this.oauthInstance.authApi.signIn({username:"+86 ".concat(s),verification_token:e})]:[3,5];case 2:if(null==(r=u.sent())?void 0:r.error_code)throw r;return c?[4,this.oauthInstance.authApi.bindWithProvider({provider_token:null==c?void 0:c.providerToken})]:[3,4];case 3:if(null==(i=u.sent())?void 0:i.error_code)throw i;u.label=4;case 4:return[3,7];case 5:return[4,this.oauthInstance.authApi.signUp({phone_number:"+86 ".concat(s),verification_token:e,provider_token:null==c?void 0:c.providerId})];case 6:if(null==(a=u.sent())?void 0:a.error_code)throw a;u.label=7;case 7:return[2,this.createLoginState()];case 8:throw u.sent();case 9:return[2]}}))}))},t.prototype.setCustomSignFunc=function(t){this.oauthInstance.authApi.setCustomSignFunc(t)},t.prototype.signInWithCustomTicket=function(t){return U(this,void 0,void 0,(function(){return L(this,(function(e){switch(e.label){case 0:return[4,this.oauthInstance.authApi.signInWithCustomTicket(t)];case 1:return e.sent(),[2,this.createLoginState()]}}))}))},t.prototype.signIn=function(t){return U(this,void 0,void 0,(function(){return L(this,(function(e){switch(e.label){case 0:return[4,this.oauthInstance.authApi.signIn(t)];case 1:return e.sent(),[2,this.createLoginState(t)]}}))}))},t.prototype.signUp=function(t){return U(this,void 0,void 0,(function(){return L(this,(function(e){switch(e.label){case 0:return[4,this.oauthInstance.authApi.signUp(t)];case 1:return e.sent(),[2,this.createLoginState()]}}))}))},t.prototype.setPassword=function(t){return U(this,void 0,void 0,(function(){return L(this,(function(e){return[2,this.oauthInstance.authApi.setPassword(t)]}))}))},t.prototype.isUsernameRegistered=function(t){return U(this,void 0,void 0,(function(){return L(this,(function(e){switch(e.label){case 0:return"string"!=typeof t&&(0,n.throwError)(i.ERRORS.INVALID_PARAMS,"username must be a string"),[4,this.oauthInstance.authApi.checkIfUserExist({username:t})];case 1:return[2,e.sent().exist]}}))}))},t.prototype.signOut=function(){return U(this,void 0,void 0,(function(){var t;return L(this,(function(e){switch(e.label){case 0:return t=this.cache.keys.userInfoKey,[4,this.oauthInstance.authApi.signOut()];case 1:return e.sent(),[4,this.cache.removeStoreAsync(t)];case 2:return e.sent(),M.fire(R),[2]}}))}))},t.prototype.hasLoginState=function(){var t;if("async"!==this.cache.mode)return(null===(t=this.oauthInstance)||void 0===t?void 0:t.authApi.hasLoginStateSync())?new C({envId:this.config.env,cache:this.cache,oauthInstance:this.oauthInstance}):null;(0,n.printWarn)(i.ERRORS.INVALID_OPERATION,"current platform's storage is asynchronous, please use getLoginState insteed")},t.prototype.getLoginState=function(){return U(this,void 0,void 0,(function(){return L(this,(function(t){switch(t.label){case 0:return[4,this.oauthInstance.authApi.getLoginState()];case 1:return t.sent()?[2,new C({envId:this.config.env,cache:this.cache,oauthInstance:this.oauthInstance})]:[2,null]}}))}))},t.prototype.getUserInfo=function(t){return U(this,void 0,void 0,(function(){return L(this,(function(e){return[2,this.oauthInstance.authApi.getUserInfo(t)]}))}))},t.prototype.getWedaUserInfo=function(){return U(this,void 0,void 0,(function(){return L(this,(function(t){return[2,this.oauthInstance.authApi.getWedaUserInfo()]}))}))},t.prototype.updateUserBasicInfo=function(t){return U(this,void 0,void 0,(function(){var e;return L(this,(function(n){switch(n.label){case 0:return[4,this.getLoginState()];case 1:return(e=n.sent())?[4,e.user.updateUserBasicInfo(t)]:[3,3];case 2:n.sent(),n.label=3;case 3:return[2]}}))}))},t.prototype.getAuthHeader=function(){return console.error("Auth.getAuthHeader API 已废弃"),{}},t.prototype.bindWithProvider=function(t){return U(this,void 0,void 0,(function(){return L(this,(function(e){return[2,this.oauthInstance.authApi.bindWithProvider(t)]}))}))},t.prototype.queryUser=function(t){return U(this,void 0,void 0,(function(){return L(this,(function(e){return[2,this.oauthInstance.authApi.queryUserProfile(t)]}))}))},t.prototype.getAccessToken=function(){return U(this,void 0,void 0,(function(){return L(this,(function(t){switch(t.label){case 0:return[4,this.oauthInstance.oauth2client.getAccessToken()];case 1:return[2,{accessToken:t.sent(),env:this.config.env}]}}))}))},t.prototype.grantProviderToken=function(t){return U(this,void 0,void 0,(function(){return L(this,(function(e){return[2,this.oauthInstance.authApi.grantProviderToken(t)]}))}))},t.prototype.patchProviderToken=function(t){return U(this,void 0,void 0,(function(){return L(this,(function(e){return[2,this.oauthInstance.authApi.patchProviderToken(t)]}))}))},t.prototype.signInWithProvider=function(t){return U(this,void 0,void 0,(function(){return L(this,(function(e){switch(e.label){case 0:return[4,this.oauthInstance.authApi.signInWithProvider(t)];case 1:return e.sent(),[2,this.createLoginState(t)]}}))}))},t.prototype.signInWithWechat=function(t){return void 0===t&&(t={}),U(this,void 0,void 0,(function(){return L(this,(function(e){switch(e.label){case 0:return[4,this.oauthInstance.authApi.signInWithWechat(t)];case 1:return e.sent(),[2,this.createLoginState(t)]}}))}))},t.prototype.grantToken=function(t){return U(this,void 0,void 0,(function(){return L(this,(function(e){switch(e.label){case 0:return[4,this.oauthInstance.authApi.grantToken(t)];case 1:return e.sent(),[2,this.createLoginState()]}}))}))},t.prototype.genProviderRedirectUri=function(t){return U(this,void 0,void 0,(function(){return L(this,(function(e){return[2,this.oauthInstance.authApi.genProviderRedirectUri(t)]}))}))},t.prototype.resetPassword=function(t){return U(this,void 0,void 0,(function(){return L(this,(function(e){return[2,this.oauthInstance.authApi.resetPassword(t)]}))}))},t.prototype.deviceAuthorize=function(t){return U(this,void 0,void 0,(function(){return L(this,(function(e){return[2,this.oauthInstance.authApi.deviceAuthorize(t)]}))}))},t.prototype.sudo=function(t){return U(this,void 0,void 0,(function(){return L(this,(function(e){return[2,this.oauthInstance.authApi.sudo(t)]}))}))},t.prototype.deleteMe=function(t){return U(this,void 0,void 0,(function(){return L(this,(function(e){return[2,this.oauthInstance.authApi.deleteMe(t)]}))}))},t.prototype.getProviders=function(){return U(this,void 0,void 0,(function(){return L(this,(function(t){return[2,this.oauthInstance.authApi.getProviders()]}))}))},t.prototype.loginScope=function(){return U(this,void 0,void 0,(function(){return L(this,(function(t){return[2,this.oauthInstance.authApi.loginScope()]}))}))},t.prototype.loginGroups=function(){return U(this,void 0,void 0,(function(){return L(this,(function(t){return[2,this.oauthInstance.authApi.loginGroups()]}))}))},t.prototype.onLoginStateChanged=function(t){return U(this,void 0,void 0,(function(){var e,n=this;return L(this,(function(r){switch(r.label){case 0:return M.on(R,(function(){return U(n,void 0,void 0,(function(){var e;return L(this,(function(n){switch(n.label){case 0:return[4,this.getLoginState()];case 1:return e=n.sent(),t.call(this,e),[2]}}))}))})),[4,this.getLoginState()];case 1:return e=r.sent(),t.call(this,e),[2]}}))}))},t.prototype.refreshTokenForce=function(t){return U(this,void 0,void 0,(function(){return L(this,(function(e){return[2,this.oauthInstance.authApi.refreshTokenForce(t)]}))}))},t.prototype.getCredentials=function(){return U(this,void 0,void 0,(function(){return L(this,(function(t){return[2,this.oauthInstance.authApi.getCredentials()]}))}))},t.prototype.setCredentials=function(t){return U(this,void 0,void 0,(function(){return L(this,(function(e){switch(e.label){case 0:return[4,this.oauthInstance.oauth2client.setCredentials(t)];case 1:return e.sent(),[2]}}))}))},t.prototype.getProviderSubType=function(){return U(this,void 0,void 0,(function(){return L(this,(function(t){return[2,this.oauthInstance.authApi.getProviderSubType()]}))}))},t.prototype.createCaptchaData=function(t){return U(this,void 0,void 0,(function(){return L(this,(function(e){return[2,this.oauthInstance.authApi.createCaptchaData(t)]}))}))},t.prototype.verifyCaptchaData=function(t){return U(this,void 0,void 0,(function(){return L(this,(function(e){return[2,this.oauthInstance.authApi.verifyCaptchaData(t)]}))}))},t.prototype.getMiniProgramQrCode=function(t){return U(this,void 0,void 0,(function(){return L(this,(function(e){return[2,this.oauthInstance.authApi.getMiniProgramCode(t)]}))}))},t.prototype.getMiniProgramQrCodeStatus=function(t){return U(this,void 0,void 0,(function(){return L(this,(function(e){return[2,this.oauthInstance.authApi.getMiniProgramQrCodeStatus(t)]}))}))},t.prototype.createLoginState=function(t){return U(this,void 0,void 0,(function(){var e;return L(this,(function(n){switch(n.label){case 0:return[4,(e=new C({envId:this.config.env,cache:this.cache,oauthInstance:this.oauthInstance})).checkLocalStateAsync()];case 1:return n.sent(),[4,e.user.refresh(t)];case 2:return n.sent(),M.fire(R),[2,e]}}))}))},P([(0,s.catchErrorsDecorator)({title:"绑定手机号失败",messages:["请确认以下各项:"," 1 - 调用 auth().bindPhoneNumber() 的语法或参数是否正确"," 2 - 当前环境是否开通了短信验证码登录","如果问题依然存在,建议到官方问答社区提问或寻找帮助:".concat(i.COMMUNITY_SITE_URL)]}),E("design:type",Function),E("design:paramtypes",[Object]),E("design:returntype",Promise)],t.prototype,"bindPhoneNumber",null),P([(0,s.catchErrorsDecorator)({title:"解除三方绑定失败",messages:["请确认以下各项:"," 1 - 调用 auth().unbindProvider() 的语法或参数是否正确"," 2 - 当前账户是否已经与此登录方式解绑","如果问题依然存在,建议到官方问答社区提问或寻找帮助:".concat(i.COMMUNITY_SITE_URL)]}),E("design:type",Function),E("design:paramtypes",[Object]),E("design:returntype",Promise)],t.prototype,"unbindProvider",null),P([(0,s.catchErrorsDecorator)({title:"绑定邮箱地址失败",messages:["请确认以下各项:"," 1 - 调用 auth().bindEmail() 的语法或参数是否正确"," 2 - 当前环境是否开通了邮箱密码登录","如果问题依然存在,建议到官方问答社区提问或寻找帮助:".concat(i.COMMUNITY_SITE_URL)]}),E("design:type",Function),E("design:paramtypes",[Object]),E("design:returntype",void 0)],t.prototype,"bindEmail",null),P([(0,s.catchErrorsDecorator)({title:"验证码验证失败",messages:["请确认以下各项:"," 1 - 调用 auth().verify() 的语法或参数是否正确"," 2 - 当前环境是否开通了手机验证码/邮箱登录","如果问题依然存在,建议到官方问答社区提问或寻找帮助:".concat(i.COMMUNITY_SITE_URL)]}),E("design:type",Function),E("design:paramtypes",[Object]),E("design:returntype",Promise)],t.prototype,"verify",null),P([(0,s.catchErrorsDecorator)({title:"获取验证码失败",messages:["请确认以下各项:"," 1 - 调用 auth().getVerification() 的语法或参数是否正确"," 2 - 当前环境是否开通了手机验证码/邮箱登录","如果问题依然存在,建议到官方问答社区提问或寻找帮助:".concat(i.COMMUNITY_SITE_URL)]}),E("design:type",Function),E("design:paramtypes",[Object]),E("design:returntype",Promise)],t.prototype,"getVerification",null),P([(0,s.catchErrorsDecorator)({title:"获取用户信息失败",messages:["请确认以下各项:"," 1 - 调用 auth().getCurrentUser() 的语法或参数是否正确","如果问题依然存在,建议到官方问答社区提问或寻找帮助:".concat(i.COMMUNITY_SITE_URL)]}),E("design:type",Function),E("design:paramtypes",[]),E("design:returntype",Promise)],t.prototype,"getCurrentUser",null),P([(0,s.catchErrorsDecorator)({title:"匿名登录失败",messages:["请确认以下各项:"," 1 - 当前环境是否开启了匿名登录"," 2 - 调用 auth().signInAnonymously() 的语法或参数是否正确","如果问题依然存在,建议到官方问答社区提问或寻找帮助:".concat(i.COMMUNITY_SITE_URL)]}),E("design:type",Function),E("design:paramtypes",[Object]),E("design:returntype",Promise)],t.prototype,"signInAnonymously",null),P([(0,s.catchErrorsDecorator)({title:"小程序openId静默登录失败",messages:["请确认以下各项:"," 1 - 当前环境是否开启了小程序openId静默登录"," 2 - 调用 auth().signInWithOpenId() 的语法或参数是否正确","如果问题依然存在,建议到官方问答社区提问或寻找帮助:".concat(i.COMMUNITY_SITE_URL)]}),E("design:type",Function),E("design:paramtypes",[Object]),E("design:returntype",Promise)],t.prototype,"signInWithOpenId",null),P([(0,s.catchErrorsDecorator)({title:"小程序unionId静默登录失败",messages:["请确认以下各项:"," 1 - 当前环境是否开启了小程序unionId静默登录"," 2 - 调用 auth().signInWithUnionId() 的语法或参数是否正确","如果问题依然存在,建议到官方问答社区提问或寻找帮助:".concat(i.COMMUNITY_SITE_URL)]}),E("design:type",Function),E("design:paramtypes",[]),E("design:returntype",Promise)],t.prototype,"signInWithUnionId",null),P([(0,s.catchErrorsDecorator)({title:"小程序手机号授权登录失败",messages:["请确认以下各项:"," 1 - 当前环境是否开启了小程序手机号授权登录"," 2 - 调用 auth().signInWithPhoneAuth() 的语法或参数是否正确","如果问题依然存在,建议到官方问答社区提问或寻找帮助:".concat(i.COMMUNITY_SITE_URL)]}),E("design:type",Function),E("design:paramtypes",[Object]),E("design:returntype",Promise)],t.prototype,"signInWithPhoneAuth",null),P([(0,s.catchErrorsDecorator)({title:"小程序短信验证码登陆",messages:["请确认以下各项:"," 1 - 当前环境是否开启了小程序短信验证码登陆"," 2 - 调用 auth().signInWithSms() 的语法或参数是否正确","如果问题依然存在,建议到官方问答社区提问或寻找帮助:".concat(i.COMMUNITY_SITE_URL)]}),E("design:type",Function),E("design:paramtypes",[Object]),E("design:returntype",Promise)],t.prototype,"signInWithSms",null),P([(0,s.catchErrorsDecorator)({title:"自定义登录失败",messages:["请确认以下各项:"," 1 - 当前环境是否开启了自定义登录"," 2 - 调用 auth().signInWithCustomTicket() 的语法或参数是否正确"," 3 - ticket 是否归属于当前环境"," 4 - 创建 ticket 的自定义登录私钥是否过期","如果问题依然存在,建议到官方问答社区提问或寻找帮助:".concat(i.COMMUNITY_SITE_URL)]}),E("design:type",Function),E("design:paramtypes",[Object]),E("design:returntype",Promise)],t.prototype,"signInWithCustomTicket",null),P([(0,s.catchErrorsDecorator)({title:"注册失败",messages:["请确认以下各项:"," 1 - 当前环境是否开启了指定登录方式"," 2 - 调用 auth().signUp() 的语法或参数是否正确","如果问题依然存在,建议到官方问答社区提问或寻找帮助:".concat(i.COMMUNITY_SITE_URL)]}),E("design:type",Function),E("design:paramtypes",[Object]),E("design:returntype",Promise)],t.prototype,"signUp",null),P([(0,s.catchErrorsDecorator)({title:"获取用户是否被占用失败",messages:["请确认以下各项:"," 1 - 调用 auth().isUsernameRegistered() 的语法或参数是否正确","如果问题依然存在,建议到官方问答社区提问或寻找帮助:".concat(i.COMMUNITY_SITE_URL)]}),E("design:type",Function),E("design:paramtypes",[String]),E("design:returntype",Promise)],t.prototype,"isUsernameRegistered",null),P([(0,s.catchErrorsDecorator)({title:"用户登出失败",messages:["请确认以下各项:"," 1 - 调用 auth().signOut() 的语法或参数是否正确"," 2 - 当前用户是否为匿名登录(匿名登录不支持signOut)","如果问题依然存在,建议到官方问答社区提问或寻找帮助:".concat(i.COMMUNITY_SITE_URL)]}),E("design:type",Function),E("design:paramtypes",[]),E("design:returntype",Promise)],t.prototype,"signOut",null),P([(0,s.catchErrorsDecorator)({title:"获取本地登录态失败",messages:["请确认以下各项:"," 1 - 调用 auth().getLoginState() 的语法或参数是否正确","如果问题依然存在,建议到官方问答社区提问或寻找帮助:".concat(i.COMMUNITY_SITE_URL)]}),E("design:type",Function),E("design:paramtypes",[]),E("design:returntype",Promise)],t.prototype,"getLoginState",null),P([(0,s.catchErrorsDecorator)({title:"获取用户信息失败",messages:["请确认以下各项:"," 1 - 是否已登录"," 2 - 调用 auth().getUserInfo() 的语法或参数是否正确","如果问题依然存在,建议到官方问答社区提问或寻找帮助:".concat(i.COMMUNITY_SITE_URL)]}),E("design:type",Function),E("design:paramtypes",[Object]),E("design:returntype",Promise)],t.prototype,"getUserInfo",null),P([(0,s.catchErrorsDecorator)({title:"获取微搭插件用户信息失败",messages:["请确认以下各项:"," 1 - 是否已登录"," 2 - 调用 auth().getWedaUserInfo() 的语法或参数是否正确","如果问题依然存在,建议到官方问答社区提问或寻找帮助:".concat(i.COMMUNITY_SITE_URL)]}),E("design:type",Function),E("design:paramtypes",[]),E("design:returntype",Promise)],t.prototype,"getWedaUserInfo",null),P([(0,s.catchErrorsDecorator)({title:"绑定第三方登录方式失败",messages:["请确认以下各项:"," 1 - 调用 auth().bindWithProvider() 的语法或参数是否正确"," 2 - 此账户是否已经绑定此第三方","如果问题依然存在,建议到官方问答社区提问或寻找帮助:".concat(i.COMMUNITY_SITE_URL)]}),E("design:type",Function),E("design:paramtypes",[Object]),E("design:returntype",Promise)],t.prototype,"bindWithProvider",null),P([(0,s.catchErrorsDecorator)({title:"获取身份源类型",messages:["请确认以下各项:"," 1 - 调用 auth().getProviderSubType() 的语法或参数是否正确","如果问题依然存在,建议到官方问答社区提问或寻找帮助:".concat(i.COMMUNITY_SITE_URL)]}),E("design:type",Function),E("design:paramtypes",[]),E("design:returntype",Promise)],t.prototype,"getProviderSubType",null),t}();function x(t,n){var r=t.region,o=void 0===r?"ap-shanghai":r,i=(null==n?void 0:n.platform)||(0,m.useDefaultAdapter)(),s=i.runtime,a=n||{},u=a.env,h=a.clientId,p=a.debug,l=a.cache,d=a.app,f=(n||{}).apiOrigin;f||(f="https://".concat(u,".").concat(o,".tcb-api.tencentcloudapi.com"));var v=new e.CloudbaseOAuth(function(t){if(!y.isMatch()||t.storage&&t.baseRequest)return t;var e={};try{var n=y.genAdapter(),r=n.localStorage,o=n.reqClass;if(r&&(e.storage=new _({localStorage:r})),o){var i=new o({timeout:1e4,restrictedMethods:["get","post","upload","download","request"]});e.request=O(i)}return b(b({},t),e)}catch(t){console.error("adapter generate fail:",t)}return t}({env:u,clientId:h,apiOrigin:f,storage:null==t?void 0:t.storage,baseRequest:null==t?void 0:t.baseRequest,request:null==t?void 0:t.request,anonymousSignInFunc:null==t?void 0:t.anonymousSignInFunc,captchaOptions:null==t?void 0:t.captchaOptions,wxCloud:null==t?void 0:t.wxCloud}));return{authInstance:new k({env:u,region:o,persistence:t.persistence,debug:p,cache:l||new c.CloudbaseCache({persistence:t.persistence,keys:{userInfoKey:"user_info_".concat(u)},platformInfo:i}),runtime:s||"web",_fromApp:d,oauthInstance:v}),oauthInstance:v}}var N={name:"auth",namespace:"auth",entity:function(t){if(void 0===t&&(t={region:"",persistence:"local"}),this.authInstance)return(0,n.printWarn)(i.ERRORS.INVALID_OPERATION,"every cloudbase instance should has only one auth object"),this.authInstance;var e=this.platform.adapter,r=t.persistence||e.primaryStorage;r&&r!==this.config.persistence&&this.updateConfig({persistence:r});var o=x(A(A({wxCloud:this.config.wxCloud,storage:this.config.storage},t),{persistence:this.config.persistence}),{env:this.config.env,clientId:this.config.clientId,apiOrigin:this.request.getBaseEndPoint(),platform:this.platform,cache:this.cache,app:this,debug:this.config.debug}),s=o.authInstance,a=o.oauthInstance;return this.oauthInstance=a,this.authInstance=s,this.authInstance}};try{cloudbase.registerComponent(N)}catch(t){}function j(t){try{t.registerComponent(N)}catch(t){console.warn(t)}}})(),o})());
|