@cloudbase/auth 1.6.1 → 2.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/cjs/index.d.ts +50 -96
  2. package/dist/cjs/index.js +411 -679
  3. package/dist/esm/index.d.ts +50 -96
  4. package/dist/esm/index.js +412 -676
  5. package/package.json +52 -54
  6. package/src/index.ts +413 -650
  7. package/dist/cjs/constants.d.ts +0 -11
  8. package/dist/cjs/constants.js +0 -16
  9. package/dist/cjs/providers/anonymousAuthProvider.d.ts +0 -15
  10. package/dist/cjs/providers/anonymousAuthProvider.js +0 -255
  11. package/dist/cjs/providers/base.d.ts +0 -20
  12. package/dist/cjs/providers/base.js +0 -158
  13. package/dist/cjs/providers/customAuthProvider.d.ts +0 -5
  14. package/dist/cjs/providers/customAuthProvider.js +0 -149
  15. package/dist/cjs/providers/emailAuthProvider.d.ts +0 -9
  16. package/dist/cjs/providers/emailAuthProvider.js +0 -248
  17. package/dist/cjs/providers/phoneAuthProvider.d.ts +0 -17
  18. package/dist/cjs/providers/phoneAuthProvider.js +0 -217
  19. package/dist/cjs/providers/usernameAuthProvider.d.ts +0 -5
  20. package/dist/cjs/providers/usernameAuthProvider.js +0 -168
  21. package/dist/cjs/providers/weixinAuthProvider.d.ts +0 -28
  22. package/dist/cjs/providers/weixinAuthProvider.js +0 -294
  23. package/dist/esm/constants.d.ts +0 -11
  24. package/dist/esm/constants.js +0 -13
  25. package/dist/esm/providers/anonymousAuthProvider.d.ts +0 -15
  26. package/dist/esm/providers/anonymousAuthProvider.js +0 -252
  27. package/dist/esm/providers/base.d.ts +0 -20
  28. package/dist/esm/providers/base.js +0 -155
  29. package/dist/esm/providers/customAuthProvider.d.ts +0 -5
  30. package/dist/esm/providers/customAuthProvider.js +0 -146
  31. package/dist/esm/providers/emailAuthProvider.d.ts +0 -9
  32. package/dist/esm/providers/emailAuthProvider.js +0 -245
  33. package/dist/esm/providers/phoneAuthProvider.d.ts +0 -17
  34. package/dist/esm/providers/phoneAuthProvider.js +0 -214
  35. package/dist/esm/providers/usernameAuthProvider.d.ts +0 -5
  36. package/dist/esm/providers/usernameAuthProvider.js +0 -165
  37. package/dist/esm/providers/weixinAuthProvider.d.ts +0 -28
  38. package/dist/esm/providers/weixinAuthProvider.js +0 -291
  39. package/src/constants.ts +0 -11
  40. package/src/providers/anonymousAuthProvider.ts +0 -125
  41. package/src/providers/base.ts +0 -66
  42. package/src/providers/customAuthProvider.ts +0 -68
  43. package/src/providers/emailAuthProvider.ts +0 -139
  44. package/src/providers/phoneAuthProvider.ts +0 -130
  45. package/src/providers/usernameAuthProvider.ts +0 -76
  46. package/src/providers/weixinAuthProvider.ts +0 -193
@@ -1,11 +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
- }
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LOGINTYPE = void 0;
4
- var LOGINTYPE;
5
- (function (LOGINTYPE) {
6
- LOGINTYPE["ANONYMOUS"] = "ANONYMOUS";
7
- LOGINTYPE["WECHAT"] = "WECHAT";
8
- LOGINTYPE["WECHAT_PUBLIC"] = "WECHAT-PUBLIC";
9
- LOGINTYPE["WECHAT_OPEN"] = "WECHAT-OPEN";
10
- LOGINTYPE["CUSTOM"] = "CUSTOM";
11
- LOGINTYPE["EMAIL"] = "EMAIL";
12
- LOGINTYPE["USERNAME"] = "USERNAME";
13
- LOGINTYPE["NULL"] = "NULL";
14
- LOGINTYPE["PHONE"] = "PHONE";
15
- })(LOGINTYPE = exports.LOGINTYPE || (exports.LOGINTYPE = {}));
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFZLFNBVVg7QUFWRCxXQUFZLFNBQVM7SUFDbkIsb0NBQXVCLENBQUE7SUFDdkIsOEJBQWlCLENBQUE7SUFDakIsNENBQStCLENBQUE7SUFDL0Isd0NBQTJCLENBQUE7SUFDM0IsOEJBQWlCLENBQUE7SUFDakIsNEJBQWUsQ0FBQTtJQUNmLGtDQUFxQixDQUFBO0lBQ3JCLDBCQUFhLENBQUE7SUFDYiw0QkFBZSxDQUFBO0FBQ2pCLENBQUMsRUFWVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQVVwQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIExPR0lOVFlQRSB7XG4gIEFOT05ZTU9VUyA9ICdBTk9OWU1PVVMnLFxuICBXRUNIQVQgPSAnV0VDSEFUJyxcbiAgV0VDSEFUX1BVQkxJQyA9ICdXRUNIQVQtUFVCTElDJyxcbiAgV0VDSEFUX09QRU4gPSAnV0VDSEFULU9QRU4nLFxuICBDVVNUT00gPSAnQ1VTVE9NJyxcbiAgRU1BSUwgPSAnRU1BSUwnLFxuICBVU0VSTkFNRSA9ICdVU0VSTkFNRScsXG4gIE5VTEwgPSAnTlVMTCcsXG4gIFBIT05FID0gJ1BIT05FJ1xufVxuIl19
@@ -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
- }
@@ -1,255 +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.AnonymousAuthProvider = void 0;
62
- var base_1 = require("./base");
63
- var utilities_1 = require("@cloudbase/utilities");
64
- var constants_1 = require("../constants");
65
- var __1 = require("..");
66
- var ERRORS = utilities_1.constants.ERRORS, COMMUNITY_SITE_URL = utilities_1.constants.COMMUNITY_SITE_URL;
67
- var throwError = utilities_1.utils.throwError, isString = utilities_1.utils.isString;
68
- var addEventListener = utilities_1.events.addEventListener;
69
- var catchErrorsDecorator = utilities_1.helpers.catchErrorsDecorator;
70
- var AnonymousAuthProvider = (function (_super) {
71
- __extends(AnonymousAuthProvider, _super);
72
- function AnonymousAuthProvider(config) {
73
- var _this = _super.call(this, config) || this;
74
- _this._onConverted = _this._onConverted.bind(_this);
75
- addEventListener(__1.EVENTS.ANONYMOUS_CONVERTED, _this._onConverted);
76
- return _this;
77
- }
78
- AnonymousAuthProvider.prototype.signIn = function () {
79
- return __awaiter(this, void 0, void 0, function () {
80
- var _a, anonymousUuidKey, refreshTokenKey, anonymous_uuid, refresh_token, res, loginState;
81
- return __generator(this, function (_b) {
82
- switch (_b.label) {
83
- case 0: return [4, this._cache.updatePersistenceAsync('local')];
84
- case 1:
85
- _b.sent();
86
- _a = this._cache.keys, anonymousUuidKey = _a.anonymousUuidKey, refreshTokenKey = _a.refreshTokenKey;
87
- return [4, this._cache.getStoreAsync(anonymousUuidKey)];
88
- case 2:
89
- anonymous_uuid = _b.sent();
90
- return [4, this._cache.getStoreAsync(refreshTokenKey)];
91
- case 3:
92
- refresh_token = _b.sent();
93
- return [4, this._request.send('auth.signInAnonymously', {
94
- anonymous_uuid: anonymous_uuid,
95
- refresh_token: refresh_token
96
- })];
97
- case 4:
98
- res = _b.sent();
99
- if (!(res.uuid && res.refresh_token)) return [3, 10];
100
- return [4, this._setAnonymousUUID(res.uuid)];
101
- case 5:
102
- _b.sent();
103
- return [4, this.setRefreshToken(res.refresh_token)];
104
- case 6:
105
- _b.sent();
106
- return [4, this._request.refreshAccessToken()];
107
- case 7:
108
- _b.sent();
109
- __1.eventBus.fire(__1.EVENTS.LOGIN_TYPE_CHANGED, {
110
- env: this._config.env,
111
- loginType: constants_1.LOGINTYPE.ANONYMOUS,
112
- persistence: 'local'
113
- });
114
- __1.eventBus.fire(__1.EVENTS.LOGIN_STATE_CHANGED);
115
- loginState = new __1.LoginState({
116
- envId: this._config.env,
117
- cache: this._cache,
118
- request: this._request
119
- });
120
- return [4, loginState.checkLocalStateAsync()];
121
- case 8:
122
- _b.sent();
123
- return [4, loginState.user.refresh()];
124
- case 9:
125
- _b.sent();
126
- return [2, loginState];
127
- case 10: throw new Error(JSON.stringify({
128
- code: ERRORS.OPERATION_FAIL,
129
- msg: JSON.stringify(res) || 'anonymous signIn failed'
130
- }));
131
- }
132
- });
133
- });
134
- };
135
- AnonymousAuthProvider.prototype.linkAndRetrieveDataWithTicket = function (ticket) {
136
- return __awaiter(this, void 0, void 0, function () {
137
- var _a, anonymousUuidKey, refreshTokenKey, anonymous_uuid, refresh_token, res, loginState;
138
- return __generator(this, function (_b) {
139
- switch (_b.label) {
140
- case 0:
141
- if (!isString(ticket)) {
142
- throwError(ERRORS.INVALID_PARAMS, 'ticket must be a string');
143
- }
144
- _a = this._cache.keys, anonymousUuidKey = _a.anonymousUuidKey, refreshTokenKey = _a.refreshTokenKey;
145
- return [4, this._cache.getStoreAsync(anonymousUuidKey)];
146
- case 1:
147
- anonymous_uuid = _b.sent();
148
- return [4, this._cache.getStoreAsync(refreshTokenKey)];
149
- case 2:
150
- refresh_token = _b.sent();
151
- return [4, this._request.send('auth.linkAndRetrieveDataWithTicket', {
152
- anonymous_uuid: anonymous_uuid,
153
- refresh_token: refresh_token,
154
- ticket: ticket
155
- })];
156
- case 3:
157
- res = _b.sent();
158
- if (!res.refresh_token) return [3, 8];
159
- return [4, this._clearAnonymousUUID()];
160
- case 4:
161
- _b.sent();
162
- return [4, this.setRefreshToken(res.refresh_token)];
163
- case 5:
164
- _b.sent();
165
- return [4, this._request.refreshAccessToken()];
166
- case 6:
167
- _b.sent();
168
- __1.eventBus.fire(__1.EVENTS.ANONYMOUS_CONVERTED, { env: this._config.env });
169
- __1.eventBus.fire(__1.EVENTS.LOGIN_TYPE_CHANGED, { loginType: constants_1.LOGINTYPE.CUSTOM, persistence: 'local' });
170
- loginState = new __1.LoginState({
171
- envId: this._config.env,
172
- cache: this._cache,
173
- request: this._request
174
- });
175
- return [4, loginState.checkLocalStateAsync()];
176
- case 7:
177
- _b.sent();
178
- return [2, loginState];
179
- case 8:
180
- throwError(ERRORS.OPERATION_FAIL, JSON.stringify(res) || 'linkAndRetrieveDataWithTicket failed');
181
- _b.label = 9;
182
- case 9: return [2];
183
- }
184
- });
185
- });
186
- };
187
- AnonymousAuthProvider.prototype._setAnonymousUUID = function (id) {
188
- return __awaiter(this, void 0, void 0, function () {
189
- var _a, anonymousUuidKey, loginTypeKey;
190
- return __generator(this, function (_b) {
191
- switch (_b.label) {
192
- case 0:
193
- _a = this._cache.keys, anonymousUuidKey = _a.anonymousUuidKey, loginTypeKey = _a.loginTypeKey;
194
- return [4, this._cache.removeStoreAsync(anonymousUuidKey)];
195
- case 1:
196
- _b.sent();
197
- return [4, this._cache.setStoreAsync(anonymousUuidKey, id)];
198
- case 2:
199
- _b.sent();
200
- return [4, this._cache.setStoreAsync(loginTypeKey, constants_1.LOGINTYPE.ANONYMOUS)];
201
- case 3:
202
- _b.sent();
203
- return [2];
204
- }
205
- });
206
- });
207
- };
208
- AnonymousAuthProvider.prototype._clearAnonymousUUID = function () {
209
- return __awaiter(this, void 0, void 0, function () {
210
- return __generator(this, function (_a) {
211
- switch (_a.label) {
212
- case 0: return [4, this._cache.removeStoreAsync(this._cache.keys.anonymousUuidKey)];
213
- case 1:
214
- _a.sent();
215
- return [2];
216
- }
217
- });
218
- });
219
- };
220
- AnonymousAuthProvider.prototype._onConverted = function (ev) {
221
- return __awaiter(this, void 0, void 0, function () {
222
- var env;
223
- return __generator(this, function (_a) {
224
- switch (_a.label) {
225
- case 0:
226
- env = ev.data.env;
227
- if (env !== this._config.env) {
228
- return [2];
229
- }
230
- return [4, this._cache.updatePersistenceAsync(this._config.persistence)];
231
- case 1:
232
- _a.sent();
233
- return [2];
234
- }
235
- });
236
- });
237
- };
238
- __decorate([
239
- catchErrorsDecorator({
240
- title: '匿名登录失败',
241
- messages: [
242
- '请确认以下各项:',
243
- ' 1 - 当前环境是否开启了匿名登录',
244
- ' 2 - 调用 auth().anonymouseProvider().signIn() 的语法或参数是否正确',
245
- "\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
246
- ]
247
- }),
248
- __metadata("design:type", Function),
249
- __metadata("design:paramtypes", []),
250
- __metadata("design:returntype", Promise)
251
- ], AnonymousAuthProvider.prototype, "signIn", null);
252
- return AnonymousAuthProvider;
253
- }(base_1.AuthProvider));
254
- exports.AnonymousAuthProvider = AnonymousAuthProvider;
255
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5vbnltb3VzQXV0aFByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy9hbm9ueW1vdXNBdXRoUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtCQUFzQztBQUV0QyxrREFBeUU7QUFHekUsMENBQXlDO0FBQ3pDLHdCQUFrRDtBQUUxQyxJQUFBLE1BQU0sR0FBeUIscUJBQVMsT0FBbEMsRUFBRSxrQkFBa0IsR0FBSyxxQkFBUyxtQkFBZCxDQUFlO0FBQ3pDLElBQUEsVUFBVSxHQUFlLGlCQUFLLFdBQXBCLEVBQUUsUUFBUSxHQUFLLGlCQUFLLFNBQVYsQ0FBVztBQUMvQixJQUFBLGdCQUFnQixHQUFLLGtCQUFNLGlCQUFYLENBQVk7QUFDNUIsSUFBQSxvQkFBb0IsR0FBSyxtQkFBTyxxQkFBWixDQUFhO0FBRXpDO0lBQTJDLHlDQUFZO0lBQ3JELCtCQUFZLE1BQTZFO1FBQXpGLFlBQ0Usa0JBQU0sTUFBTSxDQUFDLFNBS2Q7UUFIQyxLQUFJLENBQUMsWUFBWSxHQUFHLEtBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUksQ0FBQyxDQUFDO1FBRWpELGdCQUFnQixDQUFDLFVBQU0sQ0FBQyxtQkFBbUIsRUFBRSxLQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7O0lBQ2xFLENBQUM7SUFXWSxzQ0FBTSxHQUFuQjs7Ozs7NEJBRUUsV0FBTSxJQUFJLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxFQUFBOzt3QkFBakQsU0FBaUQsQ0FBQzt3QkFDNUMsS0FBd0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQXRELGdCQUFnQixzQkFBQSxFQUFFLGVBQWUscUJBQUEsQ0FBc0I7d0JBRXhDLFdBQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFh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QyxFQUFBOzt3QkFBcEQsU0FBb0QsQ0FBQzt3QkFDckQsV0FBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsRUFBQTs7d0JBQXJELFNBQXFELENBQUM7d0JBQ3RELFdBQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLHFCQUFTLENBQUMsU0FBUyxDQUFDLEVBQUE7O3dCQUFsRSxTQUFrRSxDQUFDOzs7OztLQUNwRTtJQUNhLG1EQUFtQixHQUFqQzs7Ozs0QkFDRSxXQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBQTs7d0JBQXJFLFNBQXFFLENBQUM7Ozs7O0tBQ3ZFO0lBQ2EsNENBQVksR0FBMUIsVUFBMkIsRUFBRTs7Ozs7O3dCQUNuQixHQUFHLEdBQUssRUFBRSxDQUFDLElBQUksSUFBWixDQUFhO3dCQUN4QixJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTs0QkFDNUIsV0FBTzt5QkFDUjt3QkFFRCxXQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBQTs7d0JBQWxFLFNBQWtFLENBQUM7Ozs7O0tBQ3BFO0lBNUZEO1FBVEMsb0JBQW9CLENBQUM7WUFDcEIsS0FBSyxFQUFFLFFBQVE7WUFDZixRQUFRLEVBQUU7Z0JBQ1IsVUFBVTtnQkFDVixxQkFBcUI7Z0JBQ3JCLDBEQUEwRDtnQkFDMUQsaUtBQTZCLGtCQUFvQjthQUNsRDtTQUNGLENBQUM7Ozs7dURBeUNEO0lBcURILDRCQUFDO0NBQUEsQUEvR0QsQ0FBMkMsbUJBQVksR0ErR3REO0FBL0dZLHNEQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhQcm92aWRlciB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBJQ2xvdWRiYXNlQXV0aENvbmZpZywgSUxvZ2luU3RhdGUgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL2F1dGgnO1xuaW1wb3J0IHsgY29uc3RhbnRzLCB1dGlscywgaGVscGVycywgZXZlbnRzIH0gZnJvbSAnQGNsb3VkYmFzZS91dGlsaXRpZXMnO1xuaW1wb3J0IHsgSUNsb3VkYmFzZUNhY2hlIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9jYWNoZSc7XG5pbXBvcnQgeyBJQ2xvdWRiYXNlUmVxdWVzdCB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMvcmVxdWVzdCc7XG5pbXBvcnQgeyBMT0dJTlRZUEUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgRVZFTlRTLCBldmVudEJ1cywgTG9naW5TdGF0ZSB9IGZyb20gJy4uJztcblxuY29uc3QgeyBFUlJPUlMsIENPTU1VTklUWV9TSVRFX1VSTCB9ID0gY29uc3RhbnRzO1xuY29uc3QgeyB0aHJvd0Vycm9yLCBpc1N0cmluZyB9ID0gdXRpbHM7XG5jb25zdCB7IGFkZEV2ZW50TGlzdGVuZXIgfSA9IGV2ZW50cztcbmNvbnN0IHsgY2F0Y2hFcnJvcnNEZWNvcmF0b3IgfSA9IGhlbHBlcnM7XG5cbmV4cG9ydCBjbGFzcyBBbm9ueW1vdXNBdXRoUHJvdmlkZXIgZXh0ZW5kcyBBdXRoUHJvdmlkZXIge1xuICBjb25zdHJ1Y3Rvcihjb25maWc6SUNsb3VkYmFzZUF1dGhDb25maWcme2NhY2hlOklDbG91ZGJhc2VDYWNoZSxyZXF1ZXN0OklDbG91ZGJhc2VSZXF1ZXN0fSl7XG4gICAgc3VwZXIoY29uZmlnKTtcblxuICAgIHRoaXMuX29uQ29udmVydGVkID0gdGhpcy5fb25Db252ZXJ0ZWQuYmluZCh0aGlzKTtcbiAgICAvLyDnm5HlkKzovazmraPkuovku7ZcbiAgICBhZGRFdmVudExpc3RlbmVyKEVWRU5UUy5BTk9OWU1PVVNfQ09OVkVSVEVELCB0aGlzLl9vbkNvbnZlcnRlZCk7XG4gIH1cblxuICBAY2F0Y2hFcnJvcnNEZWNvcmF0b3Ioe1xuICAgIHRpdGxlOiAn5Yy/5ZCN55m75b2V5aSx6LSlJyxcbiAgICBtZXNzYWdlczogW1xuICAgICAgJ+ivt+ehruiupOS7peS4i+WQhOmhue+8micsXG4gICAgICAnICAxIC0g5b2T5YmN546v5aKD5piv5ZCm5byA5ZCv5LqG5Yy/5ZCN55m75b2VJyxcbiAgICAgICcgIDIgLSDosIPnlKggYXV0aCgpLmFub255bW91c2VQcm92aWRlcigpLnNpZ25JbigpIOeahOivreazleaIluWPguaVsOaYr+WQpuato+ehricsXG4gICAgICBg5aaC5p6c6Zeu6aKY5L6d54S25a2Y5Zyo77yM5bu66K6u5Yiw5a6Y5pa56Zeu562U56S+5Yy65o+Q6Zeu5oiW5a+75om+5biu5Yqp77yaJHtDT01NVU5JVFlfU0lURV9VUkx9YFxuICAgIF1cbiAgfSlcbiAgcHVibGljIGFzeW5jIHNpZ25JbigpOlByb21pc2U8SUxvZ2luU3RhdGU+IHtcbiAgICAvLyDljL/lkI3nmbvlvZXliY3ov4Hnp7tjYWNoZeWIsGxvY2Fsc3RvcmFnZVxuICAgIGF3YWl0IHRoaXMuX2NhY2hlLnVwZGF0ZVBlcnNpc3RlbmNlQXN5bmMoJ2xvY2FsJyk7XG4gICAgY29uc3QgeyBhbm9ueW1vdXNVdWlkS2V5LCByZWZyZXNoVG9rZW5LZXkgfSA9IHRoaXMuX2NhY2hlLmtleXM7XG4gICAgLy8g5aaC5p6c5pys5Zyw5a2Y5pyJdWlk5YiZ5Yy/5ZCN55m75b2V5pe25Lyg57uZc2VydmVyXG4gICAgY29uc3QgYW5vbnltb3VzX3V1aWQgPSBhd2FpdCB0aGlzLl9jYWNoZS5nZXRTdG9yZUFzeW5jKGFub255bW91c1V1aWRLZXkpO1xuICAgIC8vIOatpOWkhGNhY2hl5Li65Z+657G7cHJvcGVydHlcbiAgICBjb25zdCByZWZyZXNoX3Rva2VuID0gYXdhaXQgdGhpcy5fY2FjaGUuZ2V0U3RvcmVBc3luYyhyZWZyZXNoVG9rZW5LZXkpO1xuXG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5fcmVxdWVzdC5zZW5kKCdhdXRoLnNpZ25JbkFub255bW91c2x5Jywge1xuICAgICAgYW5vbnltb3VzX3V1aWQsXG4gICAgICByZWZyZXNoX3Rva2VuXG4gICAgfSk7XG4gICAgaWYgKHJlcy51dWlkICYmIHJlcy5yZWZyZXNoX3Rva2VuKSB7XG4gICAgICBhd2FpdCB0aGlzLl9zZXRBbm9ueW1vdXNVVUlEKHJlcy51dWlkKTtcbiAgICAgIGF3YWl0IHRoaXMuc2V0UmVmcmVzaFRva2VuKHJlcy5yZWZyZXNoX3Rva2VuKTtcbiAgICAgIGF3YWl0IHRoaXMuX3JlcXVlc3QucmVmcmVzaEFjY2Vzc1Rva2VuKCk7XG5cbiAgICAgIGV2ZW50QnVzLmZpcmUoRVZFTlRTLkxPR0lOX1RZUEVfQ0hBTkdFRCwge1xuICAgICAgICBlbnY6IHRoaXMuX2NvbmZpZy5lbnYsXG4gICAgICAgIGxvZ2luVHlwZTogTE9HSU5UWVBFLkFOT05ZTU9VUyxcbiAgICAgICAgcGVyc2lzdGVuY2U6ICdsb2NhbCdcbiAgICAgIH0pO1xuXG4gICAgICBldmVudEJ1cy5maXJlKEVWRU5UUy5MT0dJTl9TVEFURV9DSEFOR0VEKTtcblxuICAgICAgY29uc3QgbG9naW5TdGF0ZSA9IG5ldyBMb2dpblN0YXRlKHtcbiAgICAgICAgZW52SWQ6IHRoaXMuX2NvbmZpZy5lbnYsXG4gICAgICAgIGNhY2hlOiB0aGlzLl9jYWNoZSxcbiAgICAgICAgcmVxdWVzdDogdGhpcy5fcmVxdWVzdFxuICAgICAgfSk7XG4gICAgICBhd2FpdCBsb2dpblN0YXRlLmNoZWNrTG9jYWxTdGF0ZUFzeW5jKCk7XG4gICAgICBhd2FpdCBsb2dpblN0YXRlLnVzZXIucmVmcmVzaCgpO1xuICAgICAgcmV0dXJuIGxvZ2luU3RhdGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGNvZGU6IEVSUk9SUy5PUEVSQVRJT05fRkFJTCxcbiAgICAgICAgbXNnOiBKU09OLnN0cmluZ2lmeShyZXMpfHwnYW5vbnltb3VzIHNpZ25JbiBmYWlsZWQnXG4gICAgICB9KSk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiDljL/lkI3ovazmraNcbiAgICogQHBhcmFtIHRpY2tldCBcbiAgICovXG4gIHB1YmxpYyBhc3luYyBsaW5rQW5kUmV0cmlldmVEYXRhV2l0aFRpY2tldCh0aWNrZXQ6IHN0cmluZyk6UHJvbWlzZTxJTG9naW5TdGF0ZT4ge1xuICAgIGlmKCFpc1N0cmluZyh0aWNrZXQpKXtcbiAgICAgIHRocm93RXJyb3IoRVJST1JTLklOVkFMSURfUEFSQU1TLCd0aWNrZXQgbXVzdCBiZSBhIHN0cmluZycpO1xuICAgIH1cbiAgICBjb25zdCB7IGFub255bW91c1V1aWRLZXksIHJlZnJlc2hUb2tlbktleSB9ID0gdGhpcy5fY2FjaGUua2V5cztcbiAgICBjb25zdCBhbm9ueW1vdXNfdXVpZCA9IGF3YWl0IHRoaXMuX2NhY2hlLmdldFN0b3JlQXN5bmMoYW5vbnltb3VzVXVpZEtleSk7XG4gICAgY29uc3QgcmVmcmVzaF90b2tlbiA9IGF3YWl0IHRoaXMuX2NhY2hlLmdldFN0b3JlQXN5bmMocmVmcmVzaFRva2VuS2V5KTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLl9yZXF1ZXN0LnNlbmQoJ2F1dGgubGlua0FuZFJldHJpZXZlRGF0YVdpdGhUaWNrZXQnLCB7XG4gICAgICBhbm9ueW1vdXNfdXVpZCxcbiAgICAgIHJlZnJlc2hfdG9rZW4sXG4gICAgICB0aWNrZXRcbiAgICB9KTtcbiAgICBpZiAocmVzLnJlZnJlc2hfdG9rZW4pIHtcbiAgICAgIC8vIOi9rOato+WQjua4hemZpOacrOWcsOS/neWtmOeahOWMv+WQjXV1aWRcbiAgICAgIGF3YWl0IHRoaXMuX2NsZWFyQW5vbnltb3VzVVVJRCgpO1xuICAgICAgYXdhaXQgdGhpcy5zZXRSZWZyZXNoVG9rZW4ocmVzLnJlZnJlc2hfdG9rZW4pO1xuICAgICAgYXdhaXQgdGhpcy5fcmVxdWVzdC5yZWZyZXNoQWNjZXNzVG9rZW4oKTtcbiAgICAgIGV2ZW50QnVzLmZpcmUoRVZFTlRTLkFOT05ZTU9VU19DT05WRVJURUQsIHsgZW52OiB0aGlzLl9jb25maWcuZW52IH0pO1xuICAgICAgZXZlbnRCdXMuZmlyZShFVkVOVFMuTE9HSU5fVFlQRV9DSEFOR0VELCB7IGxvZ2luVHlwZTogTE9HSU5UWVBFLkNVU1RPTSwgcGVyc2lzdGVuY2U6ICdsb2NhbCcgfSk7XG4gICAgICBjb25zdCBsb2dpblN0YXRlID0gbmV3IExvZ2luU3RhdGUoe1xuICAgICAgICBlbnZJZDogdGhpcy5fY29uZmlnLmVudixcbiAgICAgICAgY2FjaGU6IHRoaXMuX2NhY2hlLFxuICAgICAgICByZXF1ZXN0OiB0aGlzLl9yZXF1ZXN0XG4gICAgICB9KTtcbiAgICAgIGF3YWl0IGxvZ2luU3RhdGUuY2hlY2tMb2NhbFN0YXRlQXN5bmMoKTtcbiAgICAgIFxuICAgICAgcmV0dXJuIGxvZ2luU3RhdGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93RXJyb3IoRVJST1JTLk9QRVJBVElPTl9GQUlMLEpTT04uc3RyaW5naWZ5KHJlcyl8fCdsaW5rQW5kUmV0cmlldmVEYXRhV2l0aFRpY2tldCBmYWlsZWQnKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBhc3luYyBfc2V0QW5vbnltb3VzVVVJRChpZDogc3RyaW5nKSB7XG4gICAgY29uc3QgeyBhbm9ueW1vdXNVdWlkS2V5LCBsb2dpblR5cGVLZXkgfSA9IHRoaXMuX2NhY2hlLmtleXM7XG4gICAgYXdhaXQgdGhpcy5fY2FjaGUucmVtb3ZlU3RvcmVBc3luYyhhbm9ueW1vdXNVdWlkS2V5KTtcbiAgICBhd2FpdCB0aGlzLl9jYWNoZS5zZXRTdG9yZUFzeW5jKGFub255bW91c1V1aWRLZXksIGlkKTtcbiAgICBhd2FpdCB0aGlzLl9jYWNoZS5zZXRTdG9yZUFzeW5jKGxvZ2luVHlwZUtleSwgTE9HSU5UWVBFLkFOT05ZTU9VUyk7XG4gIH1cbiAgcHJpdmF0ZSBhc3luYyBfY2xlYXJBbm9ueW1vdXNVVUlEKCkge1xuICAgIGF3YWl0IHRoaXMuX2NhY2hlLnJlbW92ZVN0b3JlQXN5bmModGhpcy5fY2FjaGUua2V5cy5hbm9ueW1vdXNVdWlkS2V5KTtcbiAgfVxuICBwcml2YXRlIGFzeW5jIF9vbkNvbnZlcnRlZChldikge1xuICAgIGNvbnN0IHsgZW52IH0gPSBldi5kYXRhO1xuICAgIGlmIChlbnYgIT09IHRoaXMuX2NvbmZpZy5lbnYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8g5Yy/5ZCN6L2s5q2j5ZCO6L+B56e7Y2FjaGVcbiAgICBhd2FpdCB0aGlzLl9jYWNoZS51cGRhdGVQZXJzaXN0ZW5jZUFzeW5jKHRoaXMuX2NvbmZpZy5wZXJzaXN0ZW5jZSk7XG4gIH1cbn0iXX0=
@@ -1,20 +0,0 @@
1
- import { ICloudbaseConfig } from '@cloudbase/types';
2
- import { ICloudbaseCache } from '@cloudbase/types/cache';
3
- import { ICloudbaseRequest } from '@cloudbase/types/request';
4
- import { ICloudbaseAuthConfig } from '@cloudbase/types/auth';
5
- import { LoginState } from '..';
6
- export declare abstract class AuthProvider {
7
- protected readonly _config: ICloudbaseConfig;
8
- protected readonly _cache: ICloudbaseCache;
9
- protected readonly _request: ICloudbaseRequest;
10
- constructor(config: ICloudbaseAuthConfig & {
11
- cache: ICloudbaseCache;
12
- request: ICloudbaseRequest;
13
- });
14
- protected checkLocalLoginState(): Promise<LoginState>;
15
- protected setRefreshToken(refreshToken: string): Promise<void>;
16
- protected setAccessToken(accessToken: string, accessTokenExpire: string): Promise<void>;
17
- protected refreshUserInfo(): Promise<any>;
18
- protected setLocalUserInfo(userInfo: any): Promise<void>;
19
- abstract signIn(...args: any[]): Promise<any>;
20
- }
@@ -1,158 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.AuthProvider = void 0;
40
- var __1 = require("..");
41
- var AuthProvider = (function () {
42
- function AuthProvider(config) {
43
- this._config = config;
44
- this._cache = config.cache;
45
- this._request = config.request;
46
- }
47
- AuthProvider.prototype.checkLocalLoginState = function () {
48
- return __awaiter(this, void 0, void 0, function () {
49
- var _a, accessTokenKey, accessTokenExpireKey, accessToken, accessTokenExpire, loginState;
50
- return __generator(this, function (_b) {
51
- switch (_b.label) {
52
- case 0:
53
- _a = this._cache.keys, accessTokenKey = _a.accessTokenKey, accessTokenExpireKey = _a.accessTokenExpireKey;
54
- return [4, this._cache.getStoreAsync(accessTokenKey)];
55
- case 1:
56
- accessToken = _b.sent();
57
- return [4, this._cache.getStoreAsync(accessTokenExpireKey)];
58
- case 2:
59
- accessTokenExpire = _b.sent();
60
- if (!accessToken) return [3, 7];
61
- if (!(accessTokenExpire && accessTokenExpire > Date.now())) return [3, 4];
62
- loginState = new __1.LoginState({
63
- envId: this._config.env,
64
- cache: this._cache,
65
- request: this._request
66
- });
67
- return [4, loginState.checkLocalStateAsync()];
68
- case 3:
69
- _b.sent();
70
- return [2, loginState];
71
- case 4: return [4, this._cache.removeStoreAsync(accessTokenKey)];
72
- case 5:
73
- _b.sent();
74
- return [4, this._cache.removeStoreAsync(accessTokenExpireKey)];
75
- case 6:
76
- _b.sent();
77
- _b.label = 7;
78
- case 7: return [2];
79
- }
80
- });
81
- });
82
- };
83
- AuthProvider.prototype.setRefreshToken = function (refreshToken) {
84
- return __awaiter(this, void 0, void 0, function () {
85
- var _a, accessTokenKey, accessTokenExpireKey, refreshTokenKey;
86
- return __generator(this, function (_b) {
87
- switch (_b.label) {
88
- case 0:
89
- _a = this._cache.keys, accessTokenKey = _a.accessTokenKey, accessTokenExpireKey = _a.accessTokenExpireKey, refreshTokenKey = _a.refreshTokenKey;
90
- return [4, this._cache.removeStoreAsync(accessTokenKey)];
91
- case 1:
92
- _b.sent();
93
- return [4, this._cache.removeStoreAsync(accessTokenExpireKey)];
94
- case 2:
95
- _b.sent();
96
- return [4, this._cache.setStoreAsync(refreshTokenKey, refreshToken)];
97
- case 3:
98
- _b.sent();
99
- return [2];
100
- }
101
- });
102
- });
103
- };
104
- AuthProvider.prototype.setAccessToken = function (accessToken, accessTokenExpire) {
105
- return __awaiter(this, void 0, void 0, function () {
106
- var _a, accessTokenKey, accessTokenExpireKey;
107
- return __generator(this, function (_b) {
108
- switch (_b.label) {
109
- case 0:
110
- _a = this._cache.keys, accessTokenKey = _a.accessTokenKey, accessTokenExpireKey = _a.accessTokenExpireKey;
111
- return [4, this._cache.setStoreAsync(accessTokenKey, accessToken)];
112
- case 1:
113
- _b.sent();
114
- return [4, this._cache.setStoreAsync(accessTokenExpireKey, accessTokenExpire)];
115
- case 2:
116
- _b.sent();
117
- return [2];
118
- }
119
- });
120
- });
121
- };
122
- AuthProvider.prototype.refreshUserInfo = function () {
123
- return __awaiter(this, void 0, void 0, function () {
124
- var action, userInfo;
125
- return __generator(this, function (_a) {
126
- switch (_a.label) {
127
- case 0:
128
- action = 'auth.getUserInfo';
129
- return [4, this._request.send(action, {})];
130
- case 1:
131
- userInfo = (_a.sent()).data;
132
- return [4, this.setLocalUserInfo(userInfo)];
133
- case 2:
134
- _a.sent();
135
- return [2, userInfo];
136
- }
137
- });
138
- });
139
- };
140
- AuthProvider.prototype.setLocalUserInfo = function (userInfo) {
141
- return __awaiter(this, void 0, void 0, function () {
142
- var userInfoKey;
143
- return __generator(this, function (_a) {
144
- switch (_a.label) {
145
- case 0:
146
- userInfoKey = this._cache.keys.userInfoKey;
147
- return [4, this._cache.setStoreAsync(userInfoKey, userInfo)];
148
- case 1:
149
- _a.sent();
150
- return [2];
151
- }
152
- });
153
- });
154
- };
155
- return AuthProvider;
156
- }());
157
- exports.AuthProvider = AuthProvider;
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm92aWRlcnMvYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJQSx3QkFBZ0M7QUFFaEM7SUFLRSxzQkFBWSxNQUE4RTtRQUN4RixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO0lBQ2pDLENBQUM7SUFJZSwyQ0FBb0IsR0FBcEM7Ozs7Ozt3QkFDUSxLQUEyQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBekQsY0FBYyxvQkFBQSxFQUFFLG9CQUFvQiwwQkFBQSxDQUFzQjt3QkFDOUMsV0FBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsRUFBQTs7d0JBQTdELFdBQVcsR0FBRyxTQUErQzt3QkFDekMsV0FBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFBOzt3QkFBekUsaUJBQWlCLEdBQUcsU0FBcUQ7NkJBRTNFLFdBQVcsRUFBWCxjQUFXOzZCQUNULENBQUEsaUJBQWlCLElBQUksaUJBQWlCLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFBLEVBQW5ELGNBQW1EO3dCQUUvQyxVQUFVLEdBQUcsSUFBSSxjQUFVLENBQUM7NEJBQ2hDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUc7NEJBQ3ZCLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTTs0QkFDbEIsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRO3lCQUN2QixDQUFDLENBQUM7d0JBQ0gsV0FBTSxVQUFVLENBQUMsb0JBQW9CLEVBQUUsRUFBQTs7d0JBQXZDLFNBQXVDLENBQUM7d0JBRXhDLFdBQU8sVUFBVSxFQUFDOzRCQUdsQixXQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLEVBQUE7O3dCQUFsRCxTQUFrRCxDQUFDO3dCQUNuRCxXQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsRUFBQTs7d0JBQXhELFNBQXdELENBQUM7Ozs7OztLQUc5RDtJQUNlLHNDQUFlLEdBQS9CLFVBQWdDLFlBQW1COzs7Ozs7d0JBQzNDLEtBQTRELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUExRSxjQUFjLG9CQUFBLEVBQUUsb0JBQW9CLDBCQUFBLEVBQUUsZUFBZSxxQkFBQSxDQUFzQjt3QkFFbkYsV0FBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxFQUFBOzt3QkFBbEQsU0FBa0QsQ0FBQzt3QkFDbkQsV0FBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLEVBQUE7O3dCQUF4RCxTQUF3RCxDQUFDO3dCQUN6RCxXQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUMsRUFBQTs7d0JBQTlELFNBQThELENBQUM7Ozs7O0tBQ2hFO0lBQ2UscUNBQWMsR0FBOUIsVUFBK0IsV0FBa0IsRUFBRSxpQkFBd0I7Ozs7Ozt3QkFDbkUsS0FBMkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQXpELGNBQWMsb0JBQUEsRUFBRSxvQkFBb0IsMEJBQUEsQ0FBc0I7d0JBQ2xFLFdBQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQyxFQUFBOzt3QkFBNUQsU0FBNEQsQ0FBQzt3QkFDN0QsV0FBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsRUFBRSxpQkFBaUIsQ0FBQyxFQUFBOzt3QkFBeEUsU0FBd0UsQ0FBQzs7Ozs7S0FDMUU7SUFDZSxzQ0FBZSxHQUEvQjs7Ozs7O3dCQUNRLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQzt3QkFDUCxXQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBQTs7d0JBQWpELFFBQVEsR0FBSyxDQUFBLFNBQW9DLENBQUEsS0FBekM7d0JBQ3RCLFdBQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxFQUFBOzt3QkFBckMsU0FBcUMsQ0FBQzt3QkFDdEMsV0FBTyxRQUFRLEVBQUM7Ozs7S0FDakI7SUFDZSx1Q0FBZ0IsR0FBaEMsVUFBaUMsUUFBUTs7Ozs7O3dCQUMvQixXQUFXLEdBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFlBQXJCLENBQXNCO3dCQUN6QyxXQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsRUFBQTs7d0JBQXRELFNBQXNELENBQUM7Ozs7O0tBQ3hEO0lBRUgsbUJBQUM7QUFBRCxDQUFDLEFBM0RELElBMkRDO0FBM0RxQixvQ0FBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElDbG91ZGJhc2VDb25maWcgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzJztcbmltcG9ydCB7IElDbG91ZGJhc2VDYWNoZSB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMvY2FjaGUnO1xuaW1wb3J0IHsgSUNsb3VkYmFzZVJlcXVlc3QgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL3JlcXVlc3QnO1xuaW1wb3J0IHsgSUNsb3VkYmFzZUF1dGhDb25maWcgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL2F1dGgnO1xuaW1wb3J0IHsgTG9naW5TdGF0ZSB9IGZyb20gJy4uJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEF1dGhQcm92aWRlciB7XG4gIHByb3RlY3RlZCByZWFkb25seSBfY29uZmlnOiBJQ2xvdWRiYXNlQ29uZmlnO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2NhY2hlOiBJQ2xvdWRiYXNlQ2FjaGU7XG4gIHByb3RlY3RlZCByZWFkb25seSBfcmVxdWVzdDogSUNsb3VkYmFzZVJlcXVlc3Q7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBJQ2xvdWRiYXNlQXV0aENvbmZpZyZ7Y2FjaGU6SUNsb3VkYmFzZUNhY2hlLHJlcXVlc3Q6SUNsb3VkYmFzZVJlcXVlc3R9KSB7XG4gICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMuX2NhY2hlID0gY29uZmlnLmNhY2hlO1xuICAgIHRoaXMuX3JlcXVlc3QgPSBjb25maWcucmVxdWVzdDtcbiAgfVxuICAvKipcbiAgICog5Yik5pat5pys5Zyw5piv5ZCm5bey57uP5pyJ55m75b2V5oCB77yM5aaC5p6c5pyJ5LiU5rKh6L+H5pyf77yM5YiZ6L+U5ZuedHJ1Ze+8jOWQpuWImea4heeQhuacrOWcsOeZu+W9leaAgVxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGNoZWNrTG9jYWxMb2dpblN0YXRlKCkge1xuICAgIGNvbnN0IHsgYWNjZXNzVG9rZW5LZXksIGFjY2Vzc1Rva2VuRXhwaXJlS2V5IH0gPSB0aGlzLl9jYWNoZS5rZXlzO1xuICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5fY2FjaGUuZ2V0U3RvcmVBc3luYyhhY2Nlc3NUb2tlbktleSk7XG4gICAgY29uc3QgYWNjZXNzVG9rZW5FeHBpcmUgPSBhd2FpdCB0aGlzLl9jYWNoZS5nZXRTdG9yZUFzeW5jKGFjY2Vzc1Rva2VuRXhwaXJlS2V5KTtcblxuICAgIGlmIChhY2Nlc3NUb2tlbikge1xuICAgICAgaWYgKGFjY2Vzc1Rva2VuRXhwaXJlICYmIGFjY2Vzc1Rva2VuRXhwaXJlID4gRGF0ZS5ub3coKSkge1xuICAgICAgICAvLyBhY2Nlc3PlrZjlnKjkuJTmsqHmnInov4fmnJ/vvIzpgqPkuYjnm7TmjqXov5Tlm55cbiAgICAgICAgY29uc3QgbG9naW5TdGF0ZSA9IG5ldyBMb2dpblN0YXRlKHtcbiAgICAgICAgICBlbnZJZDogdGhpcy5fY29uZmlnLmVudixcbiAgICAgICAgICBjYWNoZTogdGhpcy5fY2FjaGUsXG4gICAgICAgICAgcmVxdWVzdDogdGhpcy5fcmVxdWVzdFxuICAgICAgICB9KTtcbiAgICAgICAgYXdhaXQgbG9naW5TdGF0ZS5jaGVja0xvY2FsU3RhdGVBc3luYygpO1xuICAgICAgICBcbiAgICAgICAgcmV0dXJuIGxvZ2luU3RhdGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBhY2Nlc3MgdG9rZW7lrZjlnKjkvYbmmK/ov4fmnJ/kuobvvIzpgqPkuYjliKDpmaTmjonph43mlrDmi4lcbiAgICAgICAgYXdhaXQgdGhpcy5fY2FjaGUucmVtb3ZlU3RvcmVBc3luYyhhY2Nlc3NUb2tlbktleSk7XG4gICAgICAgIGF3YWl0IHRoaXMuX2NhY2hlLnJlbW92ZVN0b3JlQXN5bmMoYWNjZXNzVG9rZW5FeHBpcmVLZXkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgYXN5bmMgc2V0UmVmcmVzaFRva2VuKHJlZnJlc2hUb2tlbjpzdHJpbmcpIHtcbiAgICBjb25zdCB7IGFjY2Vzc1Rva2VuS2V5LCBhY2Nlc3NUb2tlbkV4cGlyZUtleSwgcmVmcmVzaFRva2VuS2V5IH0gPSB0aGlzLl9jYWNoZS5rZXlzO1xuICAgIC8vIHJlZnJlc2ggdG9rZW7orr7nva7liY3vvIzlhYjmuIXmjokgYWNjZXNzIHRva2VuXG4gICAgYXdhaXQgdGhpcy5fY2FjaGUucmVtb3ZlU3RvcmVBc3luYyhhY2Nlc3NUb2tlbktleSk7XG4gICAgYXdhaXQgdGhpcy5fY2FjaGUucmVtb3ZlU3RvcmVBc3luYyhhY2Nlc3NUb2tlbkV4cGlyZUtleSk7XG4gICAgYXdhaXQgdGhpcy5fY2FjaGUuc2V0U3RvcmVBc3luYyhyZWZyZXNoVG9rZW5LZXksIHJlZnJlc2hUb2tlbik7XG4gIH1cbiAgcHJvdGVjdGVkIGFzeW5jIHNldEFjY2Vzc1Rva2VuKGFjY2Vzc1Rva2VuOnN0cmluZywgYWNjZXNzVG9rZW5FeHBpcmU6c3RyaW5nKSB7XG4gICAgY29uc3QgeyBhY2Nlc3NUb2tlbktleSwgYWNjZXNzVG9rZW5FeHBpcmVLZXkgfSA9IHRoaXMuX2NhY2hlLmtleXM7XG4gICAgYXdhaXQgdGhpcy5fY2FjaGUuc2V0U3RvcmVBc3luYyhhY2Nlc3NUb2tlbktleSwgYWNjZXNzVG9rZW4pO1xuICAgIGF3YWl0IHRoaXMuX2NhY2hlLnNldFN0b3JlQXN5bmMoYWNjZXNzVG9rZW5FeHBpcmVLZXksIGFjY2Vzc1Rva2VuRXhwaXJlKTtcbiAgfVxuICBwcm90ZWN0ZWQgYXN5bmMgcmVmcmVzaFVzZXJJbmZvKCkge1xuICAgIGNvbnN0IGFjdGlvbiA9ICdhdXRoLmdldFVzZXJJbmZvJztcbiAgICBjb25zdCB7IGRhdGE6IHVzZXJJbmZvIH0gPSBhd2FpdCB0aGlzLl9yZXF1ZXN0LnNlbmQoYWN0aW9uLCB7fSk7XG4gICAgYXdhaXQgdGhpcy5zZXRMb2NhbFVzZXJJbmZvKHVzZXJJbmZvKTtcbiAgICByZXR1cm4gdXNlckluZm87XG4gIH1cbiAgcHJvdGVjdGVkIGFzeW5jIHNldExvY2FsVXNlckluZm8odXNlckluZm8pIHtcbiAgICBjb25zdCB7IHVzZXJJbmZvS2V5IH0gPSB0aGlzLl9jYWNoZS5rZXlzO1xuICAgIGF3YWl0IHRoaXMuX2NhY2hlLnNldFN0b3JlQXN5bmModXNlckluZm9LZXksIHVzZXJJbmZvKTtcbiAgfVxuICBhYnN0cmFjdCBzaWduSW4oLi4uYXJnczphbnlbXSk6UHJvbWlzZTxhbnk+O1xufSJdfQ==
@@ -1,5 +0,0 @@
1
- import { ILoginState } from '@cloudbase/types/auth';
2
- import { AuthProvider } from './base';
3
- export declare class CustomAuthProvider extends AuthProvider {
4
- signIn(ticket: string): Promise<ILoginState>;
5
- }