@cloudbase/auth 1.7.3-alpha.0 → 2.0.0-alpha.3

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.
Files changed (56) hide show
  1. package/dist/cjs/index.d.ts +53 -101
  2. package/dist/cjs/index.js +431 -773
  3. package/dist/esm/index.d.ts +53 -101
  4. package/dist/esm/index.js +432 -770
  5. package/package.json +52 -54
  6. package/src/index.ts +409 -767
  7. package/dist/cjs/common.d.ts +0 -8
  8. package/dist/cjs/common.js +0 -64
  9. package/dist/cjs/constants.d.ts +0 -12
  10. package/dist/cjs/constants.js +0 -17
  11. package/dist/cjs/providers/anonymousAuthProvider.d.ts +0 -15
  12. package/dist/cjs/providers/anonymousAuthProvider.js +0 -256
  13. package/dist/cjs/providers/base.d.ts +0 -21
  14. package/dist/cjs/providers/base.js +0 -152
  15. package/dist/cjs/providers/customAuthProvider.d.ts +0 -5
  16. package/dist/cjs/providers/customAuthProvider.js +0 -150
  17. package/dist/cjs/providers/emailAuthProvider.d.ts +0 -9
  18. package/dist/cjs/providers/emailAuthProvider.js +0 -250
  19. package/dist/cjs/providers/oauth2AuthProvider.d.ts +0 -61
  20. package/dist/cjs/providers/oauth2AuthProvider.js +0 -404
  21. package/dist/cjs/providers/phoneAuthProvider.d.ts +0 -17
  22. package/dist/cjs/providers/phoneAuthProvider.js +0 -219
  23. package/dist/cjs/providers/usernameAuthProvider.d.ts +0 -5
  24. package/dist/cjs/providers/usernameAuthProvider.js +0 -169
  25. package/dist/cjs/providers/weixinAuthProvider.d.ts +0 -28
  26. package/dist/cjs/providers/weixinAuthProvider.js +0 -294
  27. package/dist/esm/common.d.ts +0 -8
  28. package/dist/esm/common.js +0 -61
  29. package/dist/esm/constants.d.ts +0 -12
  30. package/dist/esm/constants.js +0 -14
  31. package/dist/esm/providers/anonymousAuthProvider.d.ts +0 -15
  32. package/dist/esm/providers/anonymousAuthProvider.js +0 -253
  33. package/dist/esm/providers/base.d.ts +0 -21
  34. package/dist/esm/providers/base.js +0 -149
  35. package/dist/esm/providers/customAuthProvider.d.ts +0 -5
  36. package/dist/esm/providers/customAuthProvider.js +0 -147
  37. package/dist/esm/providers/emailAuthProvider.d.ts +0 -9
  38. package/dist/esm/providers/emailAuthProvider.js +0 -247
  39. package/dist/esm/providers/oauth2AuthProvider.d.ts +0 -61
  40. package/dist/esm/providers/oauth2AuthProvider.js +0 -401
  41. package/dist/esm/providers/phoneAuthProvider.d.ts +0 -17
  42. package/dist/esm/providers/phoneAuthProvider.js +0 -216
  43. package/dist/esm/providers/usernameAuthProvider.d.ts +0 -5
  44. package/dist/esm/providers/usernameAuthProvider.js +0 -166
  45. package/dist/esm/providers/weixinAuthProvider.d.ts +0 -28
  46. package/dist/esm/providers/weixinAuthProvider.js +0 -291
  47. package/src/common.ts +0 -21
  48. package/src/constants.ts +0 -13
  49. package/src/providers/anonymousAuthProvider.ts +0 -126
  50. package/src/providers/base.ts +0 -78
  51. package/src/providers/customAuthProvider.ts +0 -69
  52. package/src/providers/emailAuthProvider.ts +0 -142
  53. package/src/providers/oauth2AuthProvider.ts +0 -585
  54. package/src/providers/phoneAuthProvider.ts +0 -132
  55. package/src/providers/usernameAuthProvider.ts +0 -77
  56. package/src/providers/weixinAuthProvider.ts +0 -193
@@ -1,294 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- extendStatics(d, b);
11
- function __() { this.constructor = d; }
12
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13
- };
14
- })();
15
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
16
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
17
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
18
- 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;
19
- return c > 3 && r && Object.defineProperty(target, key, r), r;
20
- };
21
- var __metadata = (this && this.__metadata) || function (k, v) {
22
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
23
- };
24
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
25
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
26
- return new (P || (P = Promise))(function (resolve, reject) {
27
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
28
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
29
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
30
- step((generator = generator.apply(thisArg, _arguments || [])).next());
31
- });
32
- };
33
- var __generator = (this && this.__generator) || function (thisArg, body) {
34
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
35
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
36
- function verb(n) { return function (v) { return step([n, v]); }; }
37
- function step(op) {
38
- if (f) throw new TypeError("Generator is already executing.");
39
- while (_) try {
40
- 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;
41
- if (y = 0, t) op = [op[0] & 2, t.value];
42
- switch (op[0]) {
43
- case 0: case 1: t = op; break;
44
- case 4: _.label++; return { value: op[1], done: false };
45
- case 5: _.label++; y = op[1]; op = [0]; continue;
46
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
47
- default:
48
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
49
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
50
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
51
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
52
- if (t[2]) _.ops.pop();
53
- _.trys.pop(); continue;
54
- }
55
- op = body.call(thisArg, _);
56
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
57
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
58
- }
59
- };
60
- Object.defineProperty(exports, "__esModule", { value: true });
61
- exports.WeixinAuthProvider = void 0;
62
- var base_1 = require("./base");
63
- var utilities_1 = require("@cloudbase/utilities/");
64
- var __1 = require("..");
65
- var constants_1 = require("../constants");
66
- var getSdkName = utilities_1.constants.getSdkName, ERRORS = utilities_1.constants.ERRORS, COMMUNITY_SITE_URL = utilities_1.constants.COMMUNITY_SITE_URL;
67
- var RUNTIME = utilities_1.adapters.RUNTIME;
68
- var getQuery = utilities_1.utils.getQuery, getHash = utilities_1.utils.getHash, removeParam = utilities_1.utils.removeParam, printWarn = utilities_1.utils.printWarn;
69
- var catchErrorsDecorator = utilities_1.helpers.catchErrorsDecorator;
70
- var WeixinAuthProvider = (function (_super) {
71
- __extends(WeixinAuthProvider, _super);
72
- function WeixinAuthProvider(config, appid, scope, state) {
73
- var _this = _super.call(this, config) || this;
74
- _this._runtime = config.runtime;
75
- _this._appid = appid;
76
- _this._scope = scope;
77
- _this._state = state || 'weixin';
78
- return _this;
79
- }
80
- WeixinAuthProvider.prototype.signIn = function () {
81
- return __awaiter(this, void 0, void 0, function () {
82
- return __generator(this, function (_a) {
83
- return [2, printWarn(ERRORS.OPERATION_FAIL, 'API signIn has been deprecated, please use signInWithRedirect insteed')];
84
- });
85
- });
86
- };
87
- WeixinAuthProvider.prototype.signInWithRedirect = function () {
88
- return __awaiter(this, void 0, void 0, function () {
89
- return __generator(this, function (_a) {
90
- return [2, this._redirect()];
91
- });
92
- });
93
- };
94
- WeixinAuthProvider.prototype.getRedirectResult = function (options) {
95
- return __awaiter(this, void 0, void 0, function () {
96
- var code;
97
- return __generator(this, function (_a) {
98
- code = getWeixinCode();
99
- if (!code) {
100
- return [2, null];
101
- }
102
- return [2, this._signInWithCode(code, options)];
103
- });
104
- });
105
- };
106
- WeixinAuthProvider.prototype.getLinkRedirectResult = function (options) {
107
- if (options === void 0) { options = {}; }
108
- return __awaiter(this, void 0, void 0, function () {
109
- var _a, withUnionId, code, appid, loginType, hybridMiniapp;
110
- return __generator(this, function (_b) {
111
- _a = options.withUnionId, withUnionId = _a === void 0 ? false : _a;
112
- code = getWeixinCode();
113
- if (!code) {
114
- return [2, null];
115
- }
116
- appid = this._appid;
117
- loginType = (function (scope) {
118
- switch (scope) {
119
- case 'snsapi_login':
120
- return 'WECHAT-OPEN';
121
- default:
122
- return 'WECHAT-PUBLIC';
123
- }
124
- })(this._scope);
125
- hybridMiniapp = this._runtime === RUNTIME.WX_MP ? '1' : '0';
126
- return [2, this._request.send('auth.linkWithWeixinCode', {
127
- payload: {
128
- appid: appid,
129
- loginType: loginType,
130
- code: code,
131
- hybridMiniapp: hybridMiniapp,
132
- withUnionId: withUnionId
133
- }
134
- })];
135
- });
136
- });
137
- };
138
- WeixinAuthProvider.prototype._redirect = function () {
139
- var currUrl = removeParam('code', location.href);
140
- currUrl = removeParam('state', currUrl);
141
- currUrl = encodeURIComponent(currUrl);
142
- var host = '//open.weixin.qq.com/connect/oauth2/authorize';
143
- if (this._scope === 'snsapi_login') {
144
- host = '//open.weixin.qq.com/connect/qrconnect';
145
- }
146
- try {
147
- location.href = host + "?appid=" + this._appid + "&redirect_uri=" + currUrl + "&response_type=code&scope=" + this._scope + "&state=" + this._state + "#wechat_redirect";
148
- }
149
- catch (e) {
150
- throw new Error("[" + getSdkName() + "][" + ERRORS.UNKOWN_ERROR + "]" + e);
151
- }
152
- };
153
- WeixinAuthProvider.prototype._signInWithCode = function (code, options) {
154
- return __awaiter(this, void 0, void 0, function () {
155
- var _a, accessTokenKey, accessTokenExpireKey, refreshTokenKey, loginType, refreshTokenRes, refreshToken, loginState;
156
- return __generator(this, function (_b) {
157
- switch (_b.label) {
158
- case 0:
159
- _a = this._cache.keys, accessTokenKey = _a.accessTokenKey, accessTokenExpireKey = _a.accessTokenExpireKey, refreshTokenKey = _a.refreshTokenKey;
160
- loginType = (function (scope) {
161
- switch (scope) {
162
- case 'snsapi_login':
163
- return 'WECHAT-OPEN';
164
- default:
165
- return 'WECHAT-PUBLIC';
166
- }
167
- })(this._scope);
168
- return [4, this._getRefreshTokenByWXCode(this._appid, loginType, code, options)];
169
- case 1:
170
- refreshTokenRes = _b.sent();
171
- refreshToken = refreshTokenRes.refreshToken;
172
- return [4, this._cache.setStoreAsync(refreshTokenKey, refreshToken)];
173
- case 2:
174
- _b.sent();
175
- if (!refreshTokenRes.accessToken) return [3, 4];
176
- return [4, this._cache.setStoreAsync(accessTokenKey, refreshTokenRes.accessToken)];
177
- case 3:
178
- _b.sent();
179
- _b.label = 4;
180
- case 4:
181
- if (!refreshTokenRes.accessTokenExpire) return [3, 6];
182
- return [4, this._cache.setStoreAsync(accessTokenExpireKey, String(refreshTokenRes.accessTokenExpire + Date.now()))];
183
- case 5:
184
- _b.sent();
185
- _b.label = 6;
186
- case 6:
187
- __1.eventBus.fire(__1.EVENTS.LOGIN_STATE_CHANGED);
188
- __1.eventBus.fire(__1.EVENTS.LOGIN_TYPE_CHANGED, {
189
- env: this._config.env,
190
- loginType: constants_1.LOGINTYPE.WECHAT,
191
- persistence: this._config.persistence
192
- });
193
- return [4, this.refreshUserInfo()];
194
- case 7:
195
- _b.sent();
196
- loginState = new __1.LoginState({
197
- envId: this._config.env,
198
- cache: this._cache,
199
- request: this._request
200
- });
201
- return [4, loginState.checkLocalStateAsync()];
202
- case 8:
203
- _b.sent();
204
- return [2, loginState];
205
- }
206
- });
207
- });
208
- };
209
- WeixinAuthProvider.prototype._getRefreshTokenByWXCode = function (appid, loginType, code, options) {
210
- if (options === void 0) { options = {}; }
211
- return __awaiter(this, void 0, void 0, function () {
212
- var _a, withUnionId, _b, createUser, syncUserInfo, action, hybridMiniapp;
213
- return __generator(this, function (_c) {
214
- _a = options.withUnionId, withUnionId = _a === void 0 ? false : _a, _b = options.createUser, createUser = _b === void 0 ? true : _b;
215
- syncUserInfo = this._scope === 'snsapi_base' ? false : options.syncUserInfo || false;
216
- action = 'auth.signIn';
217
- hybridMiniapp = this._runtime === RUNTIME.WX_MP ? '1' : '0';
218
- return [2, this._request.send(action, {
219
- appid: appid,
220
- loginType: loginType,
221
- hybridMiniapp: hybridMiniapp,
222
- syncUserInfo: syncUserInfo,
223
- loginCredential: code,
224
- withUnionId: withUnionId,
225
- createUser: createUser
226
- }).then(function (res) {
227
- if (res.code) {
228
- throw new Error("[" + getSdkName() + "][" + ERRORS.OPERATION_FAIL + "] failed login via wechat: " + res.code);
229
- }
230
- if (res.refresh_token) {
231
- return {
232
- refreshToken: res.refresh_token,
233
- accessToken: res.access_token,
234
- accessTokenExpire: res.access_token_expire
235
- };
236
- }
237
- else {
238
- throw new Error("[" + getSdkName() + "][" + ERRORS.OPERATION_FAIL + "] action:getJwt not return refreshToken");
239
- }
240
- })];
241
- });
242
- });
243
- };
244
- __decorate([
245
- catchErrorsDecorator({
246
- title: '跳转微信公众号授权失败',
247
- messages: [
248
- '请确认以下各项:',
249
- ' 1 - 调用 auth().weixinAuthProvider().signInWithRedirect() 的语法或参数是否正确',
250
- "\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" + COMMUNITY_SITE_URL
251
- ]
252
- }),
253
- __metadata("design:type", Function),
254
- __metadata("design:paramtypes", []),
255
- __metadata("design:returntype", Promise)
256
- ], WeixinAuthProvider.prototype, "signInWithRedirect", null);
257
- __decorate([
258
- catchErrorsDecorator({
259
- title: '微信公众号登录失败',
260
- messages: [
261
- '请确认以下各项:',
262
- ' 1 - 调用 auth().weixinAuthProvider().getRedirectResult() 的语法或参数是否正确',
263
- ' 2 - 当前环境是否开通了微信公众号登录授权',
264
- ' 3 - 微信公众号的 AppId 与 AppSecret 配置是否正确',
265
- "\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" + COMMUNITY_SITE_URL
266
- ]
267
- }),
268
- __metadata("design:type", Function),
269
- __metadata("design:paramtypes", [Object]),
270
- __metadata("design:returntype", Promise)
271
- ], WeixinAuthProvider.prototype, "getRedirectResult", null);
272
- __decorate([
273
- catchErrorsDecorator({
274
- title: '获取微信重定向绑定结果',
275
- messages: [
276
- '请确认以下各项:',
277
- ' 1 - 调用 auth().weixinAuthProvider().getLinkRedirectResult() 的语法或参数是否正确',
278
- ' 2 - 当前环境是否开通了微信公众号登录授权',
279
- ' 3 - 微信公众号的 AppId 与 AppSecret 配置是否正确',
280
- "\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" + COMMUNITY_SITE_URL
281
- ]
282
- }),
283
- __metadata("design:type", Function),
284
- __metadata("design:paramtypes", [Object]),
285
- __metadata("design:returntype", Promise)
286
- ], WeixinAuthProvider.prototype, "getLinkRedirectResult", null);
287
- return WeixinAuthProvider;
288
- }(base_1.AuthProvider));
289
- exports.WeixinAuthProvider = WeixinAuthProvider;
290
- function getWeixinCode() {
291
- return getQuery('code') || getHash('code');
292
- }
293
- ;
294
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VpeGluQXV0aFByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy93ZWl4aW5BdXRoUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtCQUFzQztBQUl0QyxtREFBMkU7QUFDM0Usd0JBQWtEO0FBQ2xELDBDQUF5QztBQUVqQyxJQUFBLFVBQVUsR0FBaUMscUJBQVMsV0FBMUMsRUFBRSxNQUFNLEdBQXlCLHFCQUFTLE9BQWxDLEVBQUUsa0JBQWtCLEdBQUsscUJBQVMsbUJBQWQsQ0FBZTtBQUNyRCxJQUFBLE9BQU8sR0FBSyxvQkFBUSxRQUFiLENBQWM7QUFDckIsSUFBQSxRQUFRLEdBQXNDLGlCQUFLLFNBQTNDLEVBQUUsT0FBTyxHQUE2QixpQkFBSyxRQUFsQyxFQUFFLFdBQVcsR0FBZ0IsaUJBQUssWUFBckIsRUFBRSxTQUFTLEdBQUssaUJBQUssVUFBVixDQUFXO0FBQ3BELElBQUEsb0JBQW9CLEdBQUssbUJBQU8scUJBQVosQ0FBYTtBQUV6QztJQUF3QyxzQ0FBWTtJQU1sRCw0QkFBWSxNQUE2RixFQUFFLEtBQWEsRUFBRSxLQUFhLEVBQUUsS0FBYztRQUF2SixZQUNFLGtCQUFNLE1BQU0sQ0FBQyxTQU1kO1FBSkMsS0FBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQy9CLEtBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLEtBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLEtBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxJQUFJLFFBQVEsQ0FBQzs7SUFDbEMsQ0FBQztJQUVZLG1DQUFNLEdBQW5COzs7Z0JBQ0UsV0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBQyx1RUFBdUUsQ0FBQyxFQUFDOzs7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ZW50IjpbImltcG9ydCB7IEF1dGhQcm92aWRlciB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBJQ2xvdWRiYXNlQXV0aENvbmZpZyB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMvYXV0aCc7XG5pbXBvcnQgeyBJQ2xvdWRiYXNlQ2FjaGUgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL2NhY2hlJztcbmltcG9ydCB7IElDbG91ZGJhc2VSZXF1ZXN0IH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9yZXF1ZXN0JztcbmltcG9ydCB7IGNvbnN0YW50cywgYWRhcHRlcnMsdXRpbHMsIGhlbHBlcnMgfSBmcm9tICdAY2xvdWRiYXNlL3V0aWxpdGllcy8nO1xuaW1wb3J0IHsgZXZlbnRCdXMsIEVWRU5UUywgTG9naW5TdGF0ZSB9IGZyb20gJy4uJztcbmltcG9ydCB7IExPR0lOVFlQRSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmNvbnN0IHsgZ2V0U2RrTmFtZSwgRVJST1JTLCBDT01NVU5JVFlfU0lURV9VUkwgfSA9IGNvbnN0YW50cztcbmNvbnN0IHsgUlVOVElNRSB9ID0gYWRhcHRlcnM7XG5jb25zdCB7IGdldFF1ZXJ5LCBnZXRIYXNoLCByZW1vdmVQYXJhbSwgcHJpbnRXYXJuIH0gPSB1dGlscztcbmNvbnN0IHsgY2F0Y2hFcnJvcnNEZWNvcmF0b3IgfSA9IGhlbHBlcnM7XG5cbmV4cG9ydCBjbGFzcyBXZWl4aW5BdXRoUHJvdmlkZXIgZXh0ZW5kcyBBdXRoUHJvdmlkZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IF9zY29wZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdGF0ZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hcHBpZDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IF9ydW50aW1lOnN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IElDbG91ZGJhc2VBdXRoQ29uZmlnJntjYWNoZTpJQ2xvdWRiYXNlQ2FjaGUscmVxdWVzdDpJQ2xvdWRiYXNlUmVxdWVzdCxydW50aW1lOnN0cmluZ30sIGFwcGlkOiBzdHJpbmcsIHNjb3BlOiBzdHJpbmcsIHN0YXRlPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoY29uZmlnKTtcblxuICAgIHRoaXMuX3J1bnRpbWUgPSBjb25maWcucnVudGltZTtcbiAgICB0aGlzLl9hcHBpZCA9IGFwcGlkO1xuICAgIHRoaXMuX3Njb3BlID0gc2NvcGU7XG4gICAgdGhpcy5fc3RhdGUgPSBzdGF0ZSB8fCAnd2VpeGluJztcbiAgfVxuICBcbiAgcHVibGljIGFzeW5jIHNpZ25Jbigpe1xuICAgIHJldHVybiBwcmludFdhcm4oRVJST1JTLk9QRVJBVElPTl9GQUlMLCdBUEkgc2lnbkluIGhhcyBiZWVuIGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2Ugc2lnbkluV2l0aFJlZGlyZWN0IGluc3RlZWQnKTtcbiAgfVxuICBAY2F0Y2hFcnJvcnNEZWNvcmF0b3Ioe1xuICAgIHRpdGxlOiAn6Lez6L2s5b6u5L+h5YWs5LyX5Y+35o6I5p2D5aSx6LSlJyxcbiAgICBtZXNzYWdlczogW1xuICAgICAgJ+ivt+ehruiupOS7peS4i+WQhOmhue+8micsXG4gICAgICAnICAxIC0g6LCD55SoIGF1dGgoKS53ZWl4aW5BdXRoUHJvdmlkZXIoKS5zaWduSW5XaXRoUmVkaXJlY3QoKSDnmoTor63ms5XmiJblj4LmlbDmmK/lkKbmraPnoa4nLFxuICAgICAgYOWmguaenOmXrumimOS+neeEtuWtmOWcqO+8jOW7uuiuruWIsOWumOaWuemXruetlOekvuWMuuaPkOmXruaIluWvu+aJvuW4ruWKqe+8miR7Q09NTVVOSVRZX1NJVEVfVVJMfWBcbiAgICBdXG4gIH0pXG4gIHB1YmxpYyBhc3luYyBzaWduSW5XaXRoUmVkaXJlY3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlZGlyZWN0KCk7XG4gIH1cbiAgQGNhdGNoRXJyb3JzRGVjb3JhdG9yKHtcbiAgICB0aXRsZTogJ+W+ruS/oeWFrOS8l+WPt+eZu+W9leWksei0pScsXG4gICAgbWVzc2FnZXM6IFtcbiAgICAgICfor7fnoa7orqTku6XkuIvlkITpobnvvJonLFxuICAgICAgJyAgMSAtIOiwg+eUqCBhdXRoKCkud2VpeGluQXV0aFByb3ZpZGVyKCkuZ2V0UmVkaXJlY3RSZXN1bHQoKSDnmoTor63ms5XmiJblj4LmlbDmmK/lkKbmraPnoa4nLFxuICAgICAgJyAgMiAtIOW9k+WJjeeOr+Wig+aYr+WQpuW8gOmAmuS6huW+ruS/oeWFrOS8l+WPt+eZu+W9leaOiOadgycsXG4gICAgICAnICAzIC0g5b6u5L+h5YWs5LyX5Y+355qEIEFwcElkIOS4jiBBcHBTZWNyZXQg6YWN572u5piv5ZCm5q2j56GuJyxcbiAgICAgIGDlpoLmnpzpl67popjkvp3nhLblrZjlnKjvvIzlu7rorq7liLDlrpjmlrnpl67nrZTnpL7ljLrmj5Dpl67miJblr7vmib7luK7liqnvvJoke0NPTU1VTklUWV9TSVRFX1VSTH1gXG4gICAgXVxuICB9KVxuICBwdWJsaWMgYXN5bmMgZ2V0UmVkaXJlY3RSZXN1bHQob3B0aW9uczp7IHdpdGhVbmlvbklkPzogYm9vbGVhbjsgc3luY1VzZXJJbmZvPzogYm9vbGVhbiB9KSB7XG4gICAgY29uc3QgY29kZSA9IGdldFdlaXhpbkNvZGUoKTtcbiAgICBpZiAoIWNvZGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fc2lnbkluV2l0aENvZGUoY29kZSxvcHRpb25zKTtcbiAgfVxuICBAY2F0Y2hFcnJvcnNEZWNvcmF0b3Ioe1xuICAgIHRpdGxlOiAn6I635Y+W5b6u5L+h6YeN5a6a5ZCR57uR5a6a57uT5p6cJyxcbiAgICBtZXNzYWdlczogW1xuICAgICAgJ+ivt+ehruiupOS7peS4i+WQhOmhue+8micsXG4gICAgICAnICAxIC0g6LCD55SoIGF1dGgoKS53ZWl4aW5BdXRoUHJvdmlkZXIoKS5nZXRMaW5rUmVkaXJlY3RSZXN1bHQoKSDnmoTor63ms5XmiJblj4LmlbDmmK/lkKbmraPnoa4nLFxuICAgICAgJyAgMiAtIOW9k+WJjeeOr+Wig+aYr+WQpuW8gOmAmuS6huW+ruS/oeWFrOS8l+WPt+eZu+W9leaOiOadgycsXG4gICAgICAnICAzIC0g5b6u5L+h5YWs5LyX5Y+355qEIEFwcElkIOS4jiBBcHBTZWNyZXQg6YWN572u5piv5ZCm5q2j56GuJyxcbiAgICAgIGDlpoLmnpzpl67popjkvp3nhLblrZjlnKjvvIzlu7rorq7liLDlrpjmlrnpl67nrZTnpL7ljLrmj5Dpl67miJblr7vmib7luK7liqnvvJoke0NPTU1VTklUWV9TSVRFX1VSTH1gXG4gICAgXVxuICB9KVxuICBhc3luYyBnZXRMaW5rUmVkaXJlY3RSZXN1bHQob3B0aW9uczogeyB3aXRoVW5pb25JZD86IGJvb2xlYW4gfSA9IHt9KSB7XG4gICAgY29uc3QgeyB3aXRoVW5pb25JZCA9IGZhbHNlIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGNvZGUgPSBnZXRXZWl4aW5Db2RlKCk7XG4gICAgaWYgKCFjb2RlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgeyBfYXBwaWQ6IGFwcGlkIH0gPSB0aGlzO1xuICAgIGNvbnN0IGxvZ2luVHlwZSA9IChzY29wZSA9PiB7XG4gICAgICBzd2l0Y2ggKHNjb3BlKSB7XG4gICAgICAgIGNhc2UgJ3Nuc2FwaV9sb2dpbic6XG4gICAgICAgICAgcmV0dXJuICdXRUNIQVQtT1BFTic7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuICdXRUNIQVQtUFVCTElDJztcbiAgICAgIH1cbiAgICB9KSh0aGlzLl9zY29wZSk7XG4gICAgY29uc3QgaHlicmlkTWluaWFwcCA9IHRoaXMuX3J1bnRpbWUgPT09IFJVTlRJTUUuV1hfTVAgPyAnMScgOiAnMCc7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVlc3Quc2VuZCgnYXV0aC5saW5rV2l0aFdlaXhpbkNvZGUnLCB7IFxuICAgICAgcGF5bG9hZDogeyBcbiAgICAgICAgYXBwaWQsIFxuICAgICAgICBsb2dpblR5cGUsIFxuICAgICAgICBjb2RlLCBcbiAgICAgICAgaHlicmlkTWluaWFwcCwgXG4gICAgICAgIHdpdGhVbmlvbklkXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9yZWRpcmVjdCgpOiBhbnkge1xuICAgIGxldCBjdXJyVXJsID0gcmVtb3ZlUGFyYW0oJ2NvZGUnLCBsb2NhdGlvbi5ocmVmKTtcbiAgICBjdXJyVXJsID0gcmVtb3ZlUGFyYW0oJ3N0YXRlJywgY3VyclVybCk7XG4gICAgY3VyclVybCA9IGVuY29kZVVSSUNvbXBvbmVudChjdXJyVXJsKTtcblxuICAgIGxldCBob3N0ID0gJy8vb3Blbi53ZWl4aW4ucXEuY29tL2Nvbm5lY3Qvb2F1dGgyL2F1dGhvcml6ZSc7XG4gICAgaWYgKHRoaXMuX3Njb3BlID09PSAnc25zYXBpX2xvZ2luJykge1xuICAgICAgaG9zdCA9ICcvL29wZW4ud2VpeGluLnFxLmNvbS9jb25uZWN0L3FyY29ubmVjdCc7XG4gICAgfVxuICAgIHRyeXtcbiAgICAgIGxvY2F0aW9uLmhyZWYgPSBgJHtob3N0fT9hcHBpZD0ke3RoaXMuX2FwcGlkfSZyZWRpcmVjdF91cmk9JHtjdXJyVXJsfSZyZXNwb25zZV90eXBlPWNvZGUmc2NvcGU9JHt0aGlzLl9zY29wZX0mc3RhdGU9JHt0aGlzLl9zdGF0ZX0jd2VjaGF0X3JlZGlyZWN0YDtcbiAgICB9Y2F0Y2goZSl7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFske2dldFNka05hbWUoKX1dWyR7RVJST1JTLlVOS09XTl9FUlJPUn1dJHtlfWApXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfc2lnbkluV2l0aENvZGUoY29kZTpzdHJpbmcsb3B0aW9ucykge1xuICAgIGNvbnN0IHsgYWNjZXNzVG9rZW5LZXksIGFjY2Vzc1Rva2VuRXhwaXJlS2V5LCByZWZyZXNoVG9rZW5LZXkgfSA9IHRoaXMuX2NhY2hlLmtleXM7XG4gICAgLy8g5pyJY29kZe+8jOeUqGNvZGXmjaJyZWZyZXNoIHRva2VuXG4gICAgY29uc3QgbG9naW5UeXBlID0gKHNjb3BlID0+IHtcbiAgICAgIHN3aXRjaCAoc2NvcGUpIHtcbiAgICAgICAgY2FzZSAnc25zYXBpX2xvZ2luJzpcbiAgICAgICAgICByZXR1cm4gJ1dFQ0hBVC1PUEVOJztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gJ1dFQ0hBVC1QVUJMSUMnO1xuICAgICAgfVxuICAgIH0pKHRoaXMuX3Njb3BlKTtcblxuICAgIGNvbnN0IHJlZnJlc2hUb2tlblJlcyA9IGF3YWl0IHRoaXMuX2dldFJlZnJlc2hUb2tlbkJ5V1hDb2RlKHRoaXMuX2FwcGlkLCBsb2dpblR5cGUsIGNvZGUsb3B0aW9ucyk7XG4gICAgY29uc3QgeyByZWZyZXNoVG9rZW4gfSA9IHJlZnJlc2hUb2tlblJlcztcblxuICAgIC8vIOacrOWcsOWtmOS4i1xuICAgIGF3YWl0IHRoaXMuX2NhY2hlLnNldFN0b3JlQXN5bmMocmVmcmVzaFRva2VuS2V5LCByZWZyZXNoVG9rZW4pO1xuICAgIGlmIChyZWZyZXNoVG9rZW5SZXMuYWNjZXNzVG9rZW4pIHtcbiAgICAgIGF3YWl0IHRoaXMuX2NhY2hlLnNldFN0b3JlQXN5bmMoYWNjZXNzVG9rZW5LZXksIHJlZnJlc2hUb2tlblJlcy5hY2Nlc3NUb2tlbik7XG4gICAgfVxuICAgIGlmIChyZWZyZXNoVG9rZW5SZXMuYWNjZXNzVG9rZW5FeHBpcmUpIHtcbiAgICAgIGF3YWl0IHRoaXMuX2NhY2hlLnNldFN0b3JlQXN5bmMoYWNjZXNzVG9rZW5FeHBpcmVLZXksIFN0cmluZyhyZWZyZXNoVG9rZW5SZXMuYWNjZXNzVG9rZW5FeHBpcmUgKyBEYXRlLm5vdygpKSk7XG4gICAgfVxuICAgIGV2ZW50QnVzLmZpcmUoRVZFTlRTLkxPR0lOX1NUQVRFX0NIQU5HRUQpO1xuICAgIC8vIOaKm+WHuueZu+W9leexu+Wei+abtOaUueS6i+S7tlxuICAgIGV2ZW50QnVzLmZpcmUoRVZFTlRTLkxPR0lOX1RZUEVfQ0hBTkdFRCwgeyBcbiAgICAgIGVudjogdGhpcy5fY29uZmlnLmVudixcbiAgICAgIGxvZ2luVHlwZTogTE9HSU5UWVBFLldFQ0hBVCwgXG4gICAgICBwZXJzaXN0ZW5jZTogdGhpcy5fY29uZmlnLnBlcnNpc3RlbmNlIFxuICAgIH0pO1xuICAgIGF3YWl0IHRoaXMucmVmcmVzaFVzZXJJbmZvKCk7XG4gICAgY29uc3QgbG9naW5TdGF0ZSA9IG5ldyBMb2dpblN0YXRlKHtcbiAgICAgIGVudklkOiB0aGlzLl9jb25maWcuZW52LFxuICAgICAgY2FjaGU6IHRoaXMuX2NhY2hlLFxuICAgICAgcmVxdWVzdDogdGhpcy5fcmVxdWVzdFxuICAgIH0pO1xuICAgIGF3YWl0IGxvZ2luU3RhdGUuY2hlY2tMb2NhbFN0YXRlQXN5bmMoKTtcbiAgICBcbiAgICByZXR1cm4gbG9naW5TdGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2dldFJlZnJlc2hUb2tlbkJ5V1hDb2RlKFxuICAgIGFwcGlkOiBzdHJpbmcsIFxuICAgIGxvZ2luVHlwZTogc3RyaW5nLCBcbiAgICBjb2RlOiBzdHJpbmcsXG4gICAgb3B0aW9uczogYW55ID0ge31cbiAgKTogUHJvbWlzZTx7IHJlZnJlc2hUb2tlbjogc3RyaW5nOyBhY2Nlc3NUb2tlbjogc3RyaW5nOyBhY2Nlc3NUb2tlbkV4cGlyZTogbnVtYmVyIH0+IHtcbiAgICBjb25zdCB7IHdpdGhVbmlvbklkID0gZmFsc2UsIGNyZWF0ZVVzZXIgPSB0cnVlIH0gPSBvcHRpb25zO1xuICAgIC8vIHNuc2FwaV91c2VyaW5mbyDlkowgc25zYXBpX2xvZ2luIOaJjeWPr+S7peiOt+WPlueUqOaIt+eahOW+ruS/oeS/oeaBr1xuICAgIGNvbnN0IHN5bmNVc2VySW5mbyA9IHRoaXMuX3Njb3BlID09PSAnc25zYXBpX2Jhc2UnID8gZmFsc2UgOiBvcHRpb25zLnN5bmNVc2VySW5mbyB8fCBmYWxzZTtcblxuICAgIGNvbnN0IGFjdGlvbiA9ICdhdXRoLnNpZ25Jbic7XG4gICAgY29uc3QgaHlicmlkTWluaWFwcCA9IHRoaXMuX3J1bnRpbWUgPT09IFJVTlRJTUUuV1hfTVAgPyAnMScgOiAnMCc7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVlc3Quc2VuZChhY3Rpb24sIHsgXG4gICAgICBhcHBpZCwgXG4gICAgICBsb2dpblR5cGUsIFxuICAgICAgaHlicmlkTWluaWFwcCxcbiAgICAgIHN5bmNVc2VySW5mbyxcbiAgICAgIGxvZ2luQ3JlZGVudGlhbDogY29kZSxcbiAgICAgIHdpdGhVbmlvbklkLFxuICAgICAgY3JlYXRlVXNlclxuICAgIH0pLnRoZW4ocmVzID0+IHtcbiAgICAgIGlmIChyZXMuY29kZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFske2dldFNka05hbWUoKX1dWyR7RVJST1JTLk9QRVJBVElPTl9GQUlMfV0gZmFpbGVkIGxvZ2luIHZpYSB3ZWNoYXQ6ICR7cmVzLmNvZGV9YCk7XG4gICAgICB9XG4gICAgICBpZiAocmVzLnJlZnJlc2hfdG9rZW4pIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByZWZyZXNoVG9rZW46IHJlcy5yZWZyZXNoX3Rva2VuLFxuICAgICAgICAgIGFjY2Vzc1Rva2VuOiByZXMuYWNjZXNzX3Rva2VuLFxuICAgICAgICAgIGFjY2Vzc1Rva2VuRXhwaXJlOiByZXMuYWNjZXNzX3Rva2VuX2V4cGlyZVxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBbJHtnZXRTZGtOYW1lKCl9XVske0VSUk9SUy5PUEVSQVRJT05fRkFJTH1dIGFjdGlvbjpnZXRKd3Qgbm90IHJldHVybiByZWZyZXNoVG9rZW5gKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRXZWl4aW5Db2RlICgpIHtcbiAgcmV0dXJuIGdldFF1ZXJ5KCdjb2RlJykgfHwgZ2V0SGFzaCgnY29kZScpO1xufTsiXX0=
@@ -1,8 +0,0 @@
1
- import { ICloudbase } from '@cloudbase/types';
2
- export declare const checkFromAuthV2: (_fromApp: ICloudbase) => Promise<{
3
- authType: string;
4
- instance: any;
5
- } | {
6
- authType?: undefined;
7
- instance?: undefined;
8
- }>;
@@ -1,61 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- var __generator = (this && this.__generator) || function (thisArg, body) {
11
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
- function verb(n) { return function (v) { return step([n, v]); }; }
14
- function step(op) {
15
- if (f) throw new TypeError("Generator is already executing.");
16
- while (_) try {
17
- 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;
18
- if (y = 0, t) op = [op[0] & 2, t.value];
19
- switch (op[0]) {
20
- case 0: case 1: t = op; break;
21
- case 4: _.label++; return { value: op[1], done: false };
22
- case 5: _.label++; y = op[1]; op = [0]; continue;
23
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
- default:
25
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
- if (t[2]) _.ops.pop();
30
- _.trys.pop(); continue;
31
- }
32
- op = body.call(thisArg, _);
33
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
- }
36
- };
37
- export var checkFromAuthV2 = function (_fromApp) { return __awaiter(void 0, void 0, void 0, function () {
38
- var oauthInstance, oauthLogin, _a;
39
- return __generator(this, function (_b) {
40
- switch (_b.label) {
41
- case 0:
42
- oauthInstance = _fromApp.oauthInstance || _fromApp.oauth();
43
- _a = oauthInstance;
44
- if (!_a) return [3, 2];
45
- return [4, oauthInstance.hasLoginState()];
46
- case 1:
47
- _a = (_b.sent());
48
- _b.label = 2;
49
- case 2:
50
- oauthLogin = _a;
51
- if (oauthLogin) {
52
- return [2, {
53
- authType: 'oauth',
54
- instance: oauthInstance
55
- }];
56
- }
57
- return [2, {}];
58
- }
59
- });
60
- }); };
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxNQUFNLENBQUMsSUFBTSxlQUFlLEdBQUcsVUFBTyxRQUFvQjs7Ozs7Z0JBRWxELGFBQWEsR0FBRyxRQUFRLENBQUMsYUFBYSxJQUFLLFFBQWdCLENBQUMsS0FBSyxFQUFFLENBQUE7Z0JBUXRELEtBQUEsYUFBYSxDQUFBO3lCQUFiLGNBQWE7Z0JBQUksV0FBTSxhQUFhLENBQUMsYUFBYSxFQUFFLEVBQUE7O3NCQUFuQyxTQUFtQzs7O2dCQUFqRSxVQUFVLEtBQXVEO2dCQUN2RSxJQUFJLFVBQVUsRUFBRTtvQkFDZCxXQUFPOzRCQUNMLFFBQVEsRUFBRSxPQUFPOzRCQUNqQixRQUFRLEVBQUUsYUFBYTt5QkFDeEIsRUFBQTtpQkFDRjtnQkFDRCxXQUFPLEVBQUUsRUFBQTs7O0tBQ1YsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElDbG91ZGJhc2UgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IGNoZWNrRnJvbUF1dGhWMiA9IGFzeW5jIChfZnJvbUFwcDogSUNsb3VkYmFzZSkgPT4ge1xuICAvLyBjb25zdCBhdXRoSW5zdGFuY2UgPSBfZnJvbUFwcC5hdXRoSW5zdGFuY2VcbiAgY29uc3Qgb2F1dGhJbnN0YW5jZSA9IF9mcm9tQXBwLm9hdXRoSW5zdGFuY2UgfHwgKF9mcm9tQXBwIGFzIGFueSkub2F1dGgoKVxuICAvLyBjb25zdCBhdXRoTG9naW4gPSBhdXRoSW5zdGFuY2UgJiYgYXdhaXQgYXV0aEluc3RhbmNlLmdldExvZ2luU3RhdGUoKVxuICAvLyBpZiAoYXV0aExvZ2luKSB7XG4gIC8vICAgcmV0dXJuIHtcbiAgLy8gICAgIGF1dGhUeXBlOiAnYXV0aCcsXG4gIC8vICAgICBpbnN0YW5jZTogYXV0aEluc3RhbmNlXG4gIC8vICAgfVxuICAvLyB9XG4gIGNvbnN0IG9hdXRoTG9naW4gPSBvYXV0aEluc3RhbmNlICYmIGF3YWl0IG9hdXRoSW5zdGFuY2UuaGFzTG9naW5TdGF0ZSgpXG4gIGlmIChvYXV0aExvZ2luKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGF1dGhUeXBlOiAnb2F1dGgnLFxuICAgICAgaW5zdGFuY2U6IG9hdXRoSW5zdGFuY2VcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHt9XG59Il19
@@ -1,12 +0,0 @@
1
- export declare enum LOGINTYPE {
2
- ANONYMOUS = "ANONYMOUS",
3
- WECHAT = "WECHAT",
4
- WECHAT_PUBLIC = "WECHAT-PUBLIC",
5
- WECHAT_OPEN = "WECHAT-OPEN",
6
- CUSTOM = "CUSTOM",
7
- EMAIL = "EMAIL",
8
- USERNAME = "USERNAME",
9
- NULL = "NULL",
10
- PHONE = "PHONE"
11
- }
12
- export declare const OAUTH2_LOGINTYPE_PREFIX = "OAUTH2";
@@ -1,14 +0,0 @@
1
- export var LOGINTYPE;
2
- (function (LOGINTYPE) {
3
- LOGINTYPE["ANONYMOUS"] = "ANONYMOUS";
4
- LOGINTYPE["WECHAT"] = "WECHAT";
5
- LOGINTYPE["WECHAT_PUBLIC"] = "WECHAT-PUBLIC";
6
- LOGINTYPE["WECHAT_OPEN"] = "WECHAT-OPEN";
7
- LOGINTYPE["CUSTOM"] = "CUSTOM";
8
- LOGINTYPE["EMAIL"] = "EMAIL";
9
- LOGINTYPE["USERNAME"] = "USERNAME";
10
- LOGINTYPE["NULL"] = "NULL";
11
- LOGINTYPE["PHONE"] = "PHONE";
12
- })(LOGINTYPE || (LOGINTYPE = {}));
13
- export var OAUTH2_LOGINTYPE_PREFIX = 'OAUTH2';
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxTQVVYO0FBVkQsV0FBWSxTQUFTO0lBQ25CLG9DQUF1QixDQUFBO0lBQ3ZCLDhCQUFpQixDQUFBO0lBQ2pCLDRDQUErQixDQUFBO0lBQy9CLHdDQUEyQixDQUFBO0lBQzNCLDhCQUFpQixDQUFBO0lBQ2pCLDRCQUFlLENBQUE7SUFDZixrQ0FBcUIsQ0FBQTtJQUNyQiwwQkFBYSxDQUFBO0lBQ2IsNEJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBVlcsU0FBUyxLQUFULFNBQVMsUUFVcEI7QUFFRCxNQUFNLENBQUMsSUFBTSx1QkFBdUIsR0FBRyxRQUFRLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBMT0dJTlRZUEUge1xuICBBTk9OWU1PVVMgPSAnQU5PTllNT1VTJyxcbiAgV0VDSEFUID0gJ1dFQ0hBVCcsXG4gIFdFQ0hBVF9QVUJMSUMgPSAnV0VDSEFULVBVQkxJQycsXG4gIFdFQ0hBVF9PUEVOID0gJ1dFQ0hBVC1PUEVOJyxcbiAgQ1VTVE9NID0gJ0NVU1RPTScsXG4gIEVNQUlMID0gJ0VNQUlMJyxcbiAgVVNFUk5BTUUgPSAnVVNFUk5BTUUnLFxuICBOVUxMID0gJ05VTEwnLFxuICBQSE9ORSA9ICdQSE9ORSdcbn1cblxuZXhwb3J0IGNvbnN0IE9BVVRIMl9MT0dJTlRZUEVfUFJFRklYID0gJ09BVVRIMidcbiJdfQ==
@@ -1,15 +0,0 @@
1
- import { AuthProvider } from './base';
2
- import { ICloudbaseAuthConfig, ILoginState } from '@cloudbase/types/auth';
3
- import { ICloudbaseCache } from '@cloudbase/types/cache';
4
- import { ICloudbaseRequest } from '@cloudbase/types/request';
5
- export declare class AnonymousAuthProvider extends AuthProvider {
6
- constructor(config: ICloudbaseAuthConfig & {
7
- cache: ICloudbaseCache;
8
- request: ICloudbaseRequest;
9
- });
10
- signIn(): Promise<ILoginState>;
11
- linkAndRetrieveDataWithTicket(ticket: string): Promise<ILoginState>;
12
- private _setAnonymousUUID;
13
- private _clearAnonymousUUID;
14
- private _onConverted;
15
- }