@cloudbase/auth 2.23.4-alpha.0 → 2.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SbaseApi.md +6383 -0
- package/dist/cjs/adapter.js +6 -3
- package/dist/cjs/index.d.ts +31 -28
- package/dist/cjs/index.js +124 -390
- package/dist/cjs/sbaseApi.d.ts +117 -0
- package/dist/cjs/sbaseApi.js +1515 -0
- package/dist/cjs/utils.d.ts +5 -0
- package/dist/cjs/utils.js +59 -0
- package/dist/esm/adapter.js +6 -3
- package/dist/esm/index.d.ts +31 -28
- package/dist/esm/index.js +121 -387
- package/dist/esm/sbaseApi.d.ts +117 -0
- package/dist/esm/sbaseApi.js +1511 -0
- package/dist/esm/utils.d.ts +5 -0
- package/dist/esm/utils.js +51 -0
- package/dist/miniprogram/index.js +1 -1
- package/package.json +5 -5
- package/src/adapter.ts +6 -2
- package/src/index.ts +306 -285
- package/src/sbaseApi.ts +1495 -0
- package/src/type.d.ts +303 -0
- package/src/utils.ts +69 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function saveToBrowserSession(key: string, value: Record<string, any>): void;
|
|
2
|
+
export declare function getBrowserSession(key: string): any;
|
|
3
|
+
export declare function removeBrowserSession(key: string): boolean;
|
|
4
|
+
export declare function addUrlSearch(search: Location['search'], hash?: Location['hash']): void;
|
|
5
|
+
export declare function removeUrlParams(params: string[]): void;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.removeUrlParams = exports.addUrlSearch = exports.removeBrowserSession = exports.getBrowserSession = exports.saveToBrowserSession = void 0;
|
|
4
|
+
function saveToBrowserSession(key, value) {
|
|
5
|
+
try {
|
|
6
|
+
sessionStorage.setItem(key, JSON.stringify(value));
|
|
7
|
+
}
|
|
8
|
+
catch (error) {
|
|
9
|
+
console.error('Failed to save to browser session:', error);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.saveToBrowserSession = saveToBrowserSession;
|
|
13
|
+
function getBrowserSession(key) {
|
|
14
|
+
try {
|
|
15
|
+
var data = JSON.parse(sessionStorage.getItem(key));
|
|
16
|
+
return data;
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
console.error('Failed to get browser session:', error);
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.getBrowserSession = getBrowserSession;
|
|
24
|
+
function removeBrowserSession(key) {
|
|
25
|
+
try {
|
|
26
|
+
sessionStorage.removeItem(key);
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
console.error('Failed to remove browser session:', error);
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.removeBrowserSession = removeBrowserSession;
|
|
35
|
+
function addUrlSearch(search, hash) {
|
|
36
|
+
if (search === undefined)
|
|
37
|
+
return;
|
|
38
|
+
var url = new URL(window.location.href);
|
|
39
|
+
url.search = search;
|
|
40
|
+
url.hash = hash || url.hash;
|
|
41
|
+
window.history.replaceState({}, '', url.href);
|
|
42
|
+
}
|
|
43
|
+
exports.addUrlSearch = addUrlSearch;
|
|
44
|
+
function removeUrlParams(params) {
|
|
45
|
+
if (typeof window === 'undefined')
|
|
46
|
+
return;
|
|
47
|
+
try {
|
|
48
|
+
var url_1 = new URL(window.location.href);
|
|
49
|
+
params.forEach(function (param) {
|
|
50
|
+
url_1.searchParams.delete(param);
|
|
51
|
+
});
|
|
52
|
+
window.history.replaceState({}, '', url_1.href);
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
console.error('Failed to remove URL params:', error);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.removeUrlParams = removeUrlParams;
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0EsU0FBZ0Isb0JBQW9CLENBQUMsR0FBVyxFQUFFLEtBQTBCO0lBQzFFLElBQUk7UUFDRixjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7S0FDbkQ7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLEVBQUUsS0FBSyxDQUFDLENBQUE7S0FDM0Q7QUFDSCxDQUFDO0FBTkQsb0RBTUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxHQUFXO0lBQzNDLElBQUk7UUFDRixJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUNwRCxPQUFPLElBQUksQ0FBQTtLQUNaO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ3RELE9BQU8sSUFBSSxDQUFBO0tBQ1o7QUFDSCxDQUFDO0FBUkQsOENBUUM7QUFFRCxTQUFnQixvQkFBb0IsQ0FBQyxHQUFXO0lBQzlDLElBQUk7UUFDRixjQUFjLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQzlCLE9BQU8sSUFBSSxDQUFBO0tBQ1o7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsbUNBQW1DLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDekQsT0FBTyxJQUFJLENBQUE7S0FDWjtBQUNILENBQUM7QUFSRCxvREFRQztBQUVELFNBQWdCLFlBQVksQ0FBQyxNQUEwQixFQUFFLElBQXVCO0lBQzlFLElBQUksTUFBTSxLQUFLLFNBQVM7UUFBRSxPQUFNO0lBR2hDLElBQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7SUFHekMsR0FBRyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7SUFFbkIsR0FBRyxDQUFDLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQTtJQUczQixNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUMvQyxDQUFDO0FBYkQsb0NBYUM7QUFNRCxTQUFnQixlQUFlLENBQUMsTUFBZ0I7SUFDOUMsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXO1FBQUUsT0FBTTtJQUV6QyxJQUFJO1FBQ0YsSUFBTSxLQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUd6QyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQUMsS0FBSztZQUNuQixLQUFHLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNoQyxDQUFDLENBQUMsQ0FBQTtRQUdGLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO0tBQzlDO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLDhCQUE4QixFQUFFLEtBQUssQ0FBQyxDQUFBO0tBQ3JEO0FBQ0gsQ0FBQztBQWhCRCwwQ0FnQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIOWtmOWCqOWPguaVsOWIsOa1j+iniOWZqHNlc3Npb25TdG9yYWdlXG4gKiBAcGFyYW0ga2V5XG4gKiBAcGFyYW0gdmFsdWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNhdmVUb0Jyb3dzZXJTZXNzaW9uKGtleTogc3RyaW5nLCB2YWx1ZTogUmVjb3JkPHN0cmluZywgYW55Pikge1xuICB0cnkge1xuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oa2V5LCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHNhdmUgdG8gYnJvd3NlciBzZXNzaW9uOicsIGVycm9yKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRCcm93c2VyU2Vzc2lvbihrZXk6IHN0cmluZykge1xuICB0cnkge1xuICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oa2V5KSlcbiAgICByZXR1cm4gZGF0YVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBnZXQgYnJvd3NlciBzZXNzaW9uOicsIGVycm9yKVxuICAgIHJldHVybiBudWxsXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUJyb3dzZXJTZXNzaW9uKGtleTogc3RyaW5nKSB7XG4gIHRyeSB7XG4gICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpXG4gICAgcmV0dXJuIHRydWVcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gcmVtb3ZlIGJyb3dzZXIgc2Vzc2lvbjonLCBlcnJvcilcbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRVcmxTZWFyY2goc2VhcmNoOiBMb2NhdGlvblsnc2VhcmNoJ10sIGhhc2g/OiBMb2NhdGlvblsnaGFzaCddKSB7XG4gIGlmIChzZWFyY2ggPT09IHVuZGVmaW5lZCkgcmV0dXJuXG5cbiAgLy8gMS4g6Kej5p6Q5b2T5YmNIFVSTFxuICBjb25zdCB1cmwgPSBuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKVxuXG4gIC8vIDIuIOaTjeS9nOafpeivouWPguaVsFxuICB1cmwuc2VhcmNoID0gc2VhcmNoIC8vIOimhuebluW3suacieWPguaVsOaIluaWsOWinuWPguaVsFxuXG4gIHVybC5oYXNoID0gaGFzaCB8fCB1cmwuaGFzaFxuXG4gIC8vIDMuIOabtOaWsOWcsOWdgOagj++8iOS/neeVmeWTiOW4jOWAvO+8iVxuICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe30sICcnLCB1cmwuaHJlZilcbn1cblxuLyoqXG4gKiDku44gVVJMIOS4reenu+mZpOaMh+WumueahOafpeivouWPguaVsFxuICogQHBhcmFtIHBhcmFtcyDopoHnp7vpmaTnmoTlj4LmlbDlkI3mlbDnu4RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVVybFBhcmFtcyhwYXJhbXM6IHN0cmluZ1tdKSB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykgcmV0dXJuXG5cbiAgdHJ5IHtcbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKVxuXG4gICAgLy8g56e76Zmk5oyH5a6a55qE5Y+C5pWwXG4gICAgcGFyYW1zLmZvckVhY2goKHBhcmFtKSA9PiB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmRlbGV0ZShwYXJhbSlcbiAgICB9KVxuXG4gICAgLy8g5L2/55SoIHJlcGxhY2VTdGF0ZSDmm7TmlrAgVVJM77yM5LiN5Lya5Zyo5rWP6KeI5Zmo5Y6G5Y+y5Lit55WZ5LiL6K6w5b2VXG4gICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKHt9LCAnJywgdXJsLmhyZWYpXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHJlbW92ZSBVUkwgcGFyYW1zOicsIGVycm9yKVxuICB9XG59XG4iXX0=
|
package/dist/esm/adapter.js
CHANGED
|
@@ -228,10 +228,13 @@ var dealUserAdapter = function (config, adapter) {
|
|
|
228
228
|
return data;
|
|
229
229
|
};
|
|
230
230
|
var dealAuthAdapter = function (config, adapter) {
|
|
231
|
-
if (!adapterForWxMp.isMatch() || (config.storage && config.baseRequest))
|
|
232
|
-
return config;
|
|
233
231
|
var data = __assign({}, config);
|
|
234
232
|
var authOptions = {};
|
|
233
|
+
if (adapter === null || adapter === void 0 ? void 0 : adapter.captchaOptions) {
|
|
234
|
+
data.captchaOptions = adapter.captchaOptions;
|
|
235
|
+
}
|
|
236
|
+
if (!adapterForWxMp.isMatch() || (config.storage && config.baseRequest))
|
|
237
|
+
return data;
|
|
235
238
|
try {
|
|
236
239
|
var _a = adapterForWxMp.genAdapter({}), localStorage_1 = _a.localStorage, ReqClass = _a.reqClass;
|
|
237
240
|
if (localStorage_1) {
|
|
@@ -261,4 +264,4 @@ export var useAuthAdapter = function (config) {
|
|
|
261
264
|
}
|
|
262
265
|
return dealAuthAdapter(config, config.adapter);
|
|
263
266
|
};
|
|
264
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUs1QztJQUVFLGdDQUFZLE1BQW1GOztRQUM3RixJQUFJO1lBQ0YsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxZQUFZLEtBQUksQ0FBQyxDQUFBLE1BQUEsTUFBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsT0FBTywwQ0FBRSxJQUFJLDBDQUFFLFVBQVUsS0FBSSxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUE7U0FDM0c7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsWUFBWSxLQUFJLEVBQUUsQ0FBQTtTQUMvQztJQUNILENBQUM7SUFNSyx3Q0FBTyxHQUFiLFVBQWMsR0FBVzs7O2dCQUN2QixXQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFBOzs7S0FDdEM7SUFPSywyQ0FBVSxHQUFoQixVQUFpQixHQUFXOzs7Z0JBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBOzs7O0tBQ2xDO0lBUUssd0NBQU8sR0FBYixVQUFjLEdBQVcsRUFBRSxLQUFhOzs7Z0JBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQTs7OztLQUN0QztJQUVELDRDQUFXLEdBQVgsVUFBWSxHQUFXO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFD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QUU7UUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLENBQUMsQ0FBQyxDQUFBO0tBQzNDO0lBRUQsT0FBTyxJQUFJLENBQUE7QUFDYixDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsSUFBTSxjQUFjLEdBQUcsVUFBQyxNQUFtQjtJQUVoRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUssTUFBTSxDQUFDLE9BQWUsQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFO1FBQ2hFLE9BQU8sZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUE7S0FDL0M7SUFFRCxPQUFPLGVBQWUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQ2hELENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNES0FkYXB0ZXJJbnRlcmZhY2UgfSBmcm9tICdAY2xvdWRiYXNlL2FkYXB0ZXItaW50ZXJmYWNlJ1xuaW1wb3J0IHsgYWRhcHRlckZvcld4TXAgfSBmcm9tICcuL3V0aWxpdGllcydcbmltcG9ydCB0eXBlIHsgQXV0aE9wdGlvbnMgfSBmcm9tICdAY2xvdWRiYXNlL29hdXRoJ1xuXG5kZWNsYXJlIGNvbnN0IHd4OiBhbnlcblxuY2xhc3MgT2F1dGhDbGllbnRTdG9yYWdlQmFzZSB7XG4gIHB1YmxpYyByZWFkb25seSBsb2NhbFN0b3JhZ2VcbiAgY29uc3RydWN0b3IoY29uZmlnPzogeyBsb2NhbFN0b3JhZ2U6IGFueSAvKiBTdG9yYWdlSW50ZXJmYWNlICovOyBhZGFwdGVyOiBTREtBZGFwdGVySW50ZXJmYWNlIH0pIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5sb2NhbFN0b3JhZ2UgPSBjb25maWc/LmxvY2FsU3RvcmFnZSB8fCAoY29uZmlnPy5hZGFwdGVyPy5yb290Py5nbG9iYWxUaGlzIHx8IGdsb2JhbFRoaXMpLmxvY2FsU3RvcmFnZVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmxvY2FsU3RvcmFnZSA9IGNvbmZpZz8ubG9jYWxTdG9yYWdlIHx8IHt9XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBHZXQgSXRlbVxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gICAqIEByZXR1cm4ge1Byb21pc2U8c3RyaW5nIHwgbnVsbD59XG4gICAqL1xuICBhc3luYyBnZXRJdGVtKGtleTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBJdGVtLlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICBhc3luYyByZW1vdmVJdGVtKGtleTogc3RyaW5nKSB7XG4gICAgdGhpcy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpXG4gIH1cblxuICAvKipcbiAgICogU2V0IEl0ZW0uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICBhc3luYyBzZXRJdGVtKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIHZhbHVlKVxuICB9XG5cbiAgZ2V0SXRlbVN5bmMoa2V5OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpXG4gIH1cblxuICBzZXRJdGVtU3luYyhrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB2YWx1ZSlcbiAgfVxuXG4gIHJlbW92ZUl0ZW1TeW5jKGtleTogc3RyaW5nKSB7XG4gICAgdGhpcy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpXG4gIH1cbn1cblxuLyoqXG4gKiBjb3B5IHRvIGdpdEBnaXQud29hLmNvbTpRQmFzZS9sY2FwL2RhdGFzb3VyY2UuZ2l0L3BhY2thZ2VzL2Nsb3VkLXNkay9jb21tb25cbiAqIOWQjOatpeS/ruaUuVxuICovXG5jb25zdCBVUkxfUkVHID0gL15bXjpdKzpcXC9cXC9bXi9dKyhcXC9bXj8jXSspL1xuXG5jb25zdCBkZWFsQWRhcHRlclJlcXVlc3REYXRhID0gKHJlcywgb3B0aW9ucykgPT4ge1xuICBjb25zdCByZXF1ZXN0SWQgPSBvcHRpb25zPy5oZWFkZXJzPy5bJ3gtcmVxdWVzdC1pZCddXG5cbiAgaWYgKCFyZXMpIHtcbiAgICByZXMgPSB7fVxuICB9XG5cbiAgaWYgKHJlcz8uY29kZSB8fCByZXM/LmRhdGE/LmVycm9yX2NvZGUpIHtcbiAgICByZXMgPSB7XG4gICAgICBlcnJvcjogcmVzLmNvZGUgfHwgcmVzLmRhdGEuZXJyb3IsXG4gICAgICBlcnJvcl9kZXNjcmlwdGlvbjogcmVzLmRhdGEuZXJyb3JfZGVzY3JpcHRpb24gfHwgcmVzLm1lc3NhZ2UgfHwgcmVzLmNvZGUgfHwgcmVzLmRhdGEuZXJyb3JfY29kZSxcbiAgICAgIHJlcXVlc3RfaWQ6IHJlcy5yZXF1ZXN0SWQsXG4gICAgICBlcnJvcl9jb2RlOiByZXMuZGF0YT8uZXJyb3JfY29kZSxcbiAgICB9XG4gIH1cblxuICBpZiAoIXJlcz8ucmVxdWVzdF9pZCkge1xuICAgIHJlcy5yZXF1ZXN0X2lkID0gcmVzLnJlcXVlc3RfaWQgfHwgcmVxdWVzdElkXG4gIH1cblxuICBpZiAocmVzPy5lcnJvcikge1xuICAgIHJlcy5lcnJvcl91cmkgPSBnZXRVcmxQYXRoKG9wdGlvbnM/LnVybClcbiAgICByZXR1cm4gcmVzXG4gIH1cblxuICByZXR1cm4gcmVzPy5kYXRhIHx8IHt9XG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlT2F1dGhDbGllbnRSZXF1ZXN0KHJlcUNsYXNzKSB7XG4gIHJldHVybiBhc3luYyBmdW5jdGlvbiAoXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGJvZHk/OiBhbnkgfCBudWxsXG4gICAgICBoZWFkZXJzPzogYW55IHwgbnVsbFxuICAgICAgbWV0aG9kPzogc3RyaW5nXG4gICAgICBba2V5OiBzdHJpbmddOiBhbnlcbiAgICB9LFxuICApIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgLy8gT2JqZWN0cyBtdXN0IGJlIGNvcGllZCB0byBwcmV2ZW50IG1vZGlmaWNhdGlvbiBvZiBkYXRhIHN1Y2ggYXMgYm9keS5cbiAgICAgIGNvbnN0IGNvcHlPcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucylcbiAgICAgIGlmIChjb3B5T3B0aW9ucy5ib2R5ICYmIHR5cGVvZiBjb3B5T3B0aW9ucy5ib2R5ICE9PSAnc3RyaW5nJykge1xuICAgICAgICBjb3B5T3B0aW9ucy5ib2R5ID0gSlNPTi5zdHJpbmdpZnkoY29weU9wdGlvbnMuYm9keSlcbiAgICAgIH1cblxuICAgICAgY29uc3QgdGFzayA9IHd4LnJlcXVlc3Qoe1xuICAgICAgICB1cmwsXG4gICAgICAgIGRhdGE6IGNvcHlPcHRpb25zLmJvZHksXG4gICAgICAgIHRpbWVvdXQ6IHJlcUNsYXNzLl90aW1lb3V0LFxuICAgICAgICBtZXRob2Q6IGNvcHlPcHRpb25zLm1ldGhvZCB8fCAnR0VUJyxcbiAgICAgICAgaGVhZGVyOiBjb3B5T3B0aW9ucy5oZWFkZXJzLFxuICAgICAgICBzdWNjZXNzKHJlcykge1xuICAgICAgICAgIHJlcyA9IGRlYWxBZGFwdGVyUmVxdWVzdERhdGEocmVzLCB7IC4uLm9wdGlvbnMsIHVybCB9KVxuXG4gICAgICAgICAgaWYgKHJlcy5lcnJvcikge1xuICAgICAgICAgICAgcmVqZWN0KHJlcylcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzb2x2ZShyZXMpXG4gICAgICAgIH0sXG4gICAgICAgIGZhaWwoZXJyKSB7XG4gICAgICAgICAgcmVqZWN0KHtcbiAgICAgICAgICAgIGVycm9yOiAndW5yZWFjaGFibGUnLFxuICAgICAgICAgICAgZXJyb3JfZGVzY3JpcHRpb246IChlcnIgYXMgRXJyb3IpLm1lc3NhZ2UsXG4gICAgICAgICAgfSlcbiAgICAgICAgfSxcbiAgICAgICAgY29tcGxldGUoZXJyKSB7XG4gICAgICAgICAgaWYgKCFlcnIgfHwgIWVyci5lcnJNc2cpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIXJlcUNsYXNzLl90aW1lb3V0IHx8IHJlcUNsYXNzLl9yZXN0cmljdGVkTWV0aG9kcy5pbmRleE9mKCdyZXF1ZXN0JykgPT09IC0xKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgeyBlcnJNc2cgfSA9IGVyclxuICAgICAgICAgIGlmIChlcnJNc2cgPT09ICdyZXF1ZXN0OmZhaWwgdGltZW91dCcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihyZXFDbGFzcy5fdGltZW91dE1zZylcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHRhc2suYWJvcnQoKVxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgIH0pXG4gIH1cbn1cblxuLyoqXG4gKiBHZXQgdXJsIHBhdGguXG4gKiBAcGFyYW0ge3N0cmluZ30gdXJsXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGdldFVybFBhdGgodXJsOiBzdHJpbmcpIHtcbiAgLy8gcmV0dXJuIHBhdGggaWYgbWF0Y2hlZCwgb3Igb3JpZ2luYWwgdXJsXG4gIHJldHVybiBVUkxfUkVHLnRlc3QodXJsKSA/IFJlZ0V4cC4kMSA6IHVybFxufVxuXG4vKipcbiAqIOeUqOaIt+iHquWumuS5iWFkYXB0ZXLlpITnkIZcbiAqIEBwYXJhbSBjb25maWdcbiAqIEBwYXJhbSBhZGFwdGVyXG4gKiBAcmV0dXJuc1xuICovXG5jb25zdCBkZWFsVXNlckFkYXB0ZXIgPSAoY29uZmlnOiBBdXRoT3B0aW9ucywgYWRhcHRlcjogU0RLQWRhcHRlckludGVyZmFjZSkgPT4ge1xuICBjb25zdCBkYXRhID0geyAuLi5jb25maWcgfVxuXG4gIHRyeSB7XG4gICAgaWYgKCFjb25maWc/LnN0b3JhZ2UgJiYgYWRhcHRlcj8ubG9jYWxTdG9yYWdlKSB7XG4gICAgICBkYXRhLnN0b3JhZ2UgPSBuZXcgT2F1dGhDbGllbnRTdG9yYWdlQmFzZSh7IGxvY2FsU3RvcmFnZTogYWRhcHRlci5sb2NhbFN0b3JhZ2UsIGFkYXB0ZXIgfSlcbiAgICB9XG5cbiAgICBpZiAoIWNvbmZpZy5jYXB0Y2hhT3B0aW9ucyAmJiBhZGFwdGVyPy5jYXB0Y2hhT3B0aW9ucykge1xuICAgICAgZGF0YS5jYXB0Y2hhT3B0aW9ucyA9IGFkYXB0ZXIuY2FwdGNoYU9wdGlvbnNcbiAgICB9XG5cbiAgICAvLyDnlKjmiLfmnKrkvKDlhaViYXNlUmVxdWVzdOWSjHJlcXVlc3Tml7blpITnkIZcbiAgICAvLyBPQXV0aDJDbGllbnTkvJjlhYjku6UgYmFzZVJlcXVlc3Qg5Li65YeGXG4gICAgLy8gQXV0aCDlnKjmsqHmnIkgcmVxdWVzdCDnmoTml7blgJnkvJrliJ3lp4vljJYgQ2FwdGNoYe+8jOS7juiAjOS9v+eUqCBDYXB0Y2hhIOeahCByZXF1ZXN0XG4gICAgaWYgKCFjb25maWcuYmFzZVJlcXVlc3QgJiYgIWNvbmZpZy5yZXF1ZXN0ICYmIGFkYXB0ZXI/LnJlcUNsYXNzKSB7XG4gICAgICBjb25zdCByZXFDbGFzc1BhcmFtcyA9IHtcbiAgICAgICAgdGltZW91dDogMTAwMDAsXG4gICAgICAgIHJlc3RyaWN0ZWRNZXRob2RzOiBbJ2dldCcsICdwb3N0JywgJ3VwbG9hZCcsICdkb3dubG9hZCcsICdyZXF1ZXN0J10sXG4gICAgICB9XG4gICAgICBjb25zdCBhZGFwdGVyUmVxID0gbmV3IGFkYXB0ZXIucmVxQ2xhc3MocmVxQ2xhc3NQYXJhbXMpXG4gICAgICBkYXRhLmJhc2VSZXF1ZXN0ID0gYXN5bmMgZnVuY3Rpb24gKHVybDogc3RyaW5nLCBvcHRpb25zPzogeyBtZXRob2Q/OiBzdHJpbmc7IFtrZXk6IHN0cmluZ106IGFueSB9KSB7XG4gICAgICAgIGxldCByZXM6IGFueSA9IHt9XG5cbiAgICAgICAgY29uc3QgcmVxdWVzdFR5cGUgPSBvcHRpb25zLm1ldGhvZD8udG9Mb2NhbGVMb3dlckNhc2UoKSB8fCAncG9zdCdcblxuICAgICAgICBjb25zdCBmdW5jID0gYWRhcHRlclJlcT8uW3JlcXVlc3RUeXBlXT8uYmluZD8uKGFkYXB0ZXJSZXEpXG5cbiAgICAgICAgaWYgKHR5cGVvZiBmdW5jICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIOOAkCR7cmVxdWVzdFR5cGV944CRIHJlcXVlc3QgbWV0aG9kYClcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8g5YW85a656Z2e5bCP56iL5bqP55qEYWRhcHRlclxuICAgICAgICAgIGlmICgoIW9wdGlvbnMuaGVhZGVycz8uWydjb250ZW50LXR5cGUnXSB8fCBvcHRpb25zLmhlYWRlcnM/LlsnY29udGVudC10eXBlJ10uaW5jbHVkZXMoJ2FwcGxpY2F0aW9uL2pzb24nKSkgJiYgIVsnc3RyaW5nJywgJ3VuZGVmaW5lZCddLmluY2x1ZGVzKHR5cGVvZiBvcHRpb25zLmJvZHkpKSB7XG4gICAgICAgICAgICBvcHRpb25zLmRhdGEgPSBvcHRpb25zLmRhdGEgfHwgb3B0aW9ucy5ib2R5XG4gICAgICAgICAgICBvcHRpb25zLmJvZHkgPSBKU09OLnN0cmluZ2lmeShvcHRpb25zLmJvZHkpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJlcyA9IGF3YWl0IGZ1bmMoeyB1cmwsIC4uLm9wdGlvbnMgfSlcbiAgICAgICAgICByZXMgPSBkZWFsQWRhcHRlclJlcXVlc3REYXRhKHJlcywgeyAuLi5vcHRpb25zLCB1cmwgfSlcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICByZXMgPSBlcnJvclxuICAgICAgICAgIHRocm93IGVycm9yXG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVzPy5lcnJvcikge1xuICAgICAgICAgIHRocm93IHJlc1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc1xuICAgICAgfVxuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ3VzZXIgYWRhcHRlciBnZW5lcmF0ZSBmYWlsOicsIGUpXG4gIH1cblxuICByZXR1cm4gZGF0YVxufVxuXG4vKipcbiAqIOWGhee9rum7mOiupGFkYXB0ZXLlpITnkIZcbiAqIEBwYXJhbSBjb25maWdcbiAqIEByZXR1cm5zXG4gKi9cbmNvbnN0IGRlYWxBdXRoQWRhcHRlciA9IChjb25maWc6IEF1dGhPcHRpb25zLCBhZGFwdGVyOiBTREtBZGFwdGVySW50ZXJmYWNlKSA9PiB7XG4gIGlmICghYWRhcHRlckZvcld4TXAuaXNNYXRjaCgpIHx8IChjb25maWcuc3RvcmFnZSAmJiBjb25maWcuYmFzZVJlcXVlc3QpKSByZXR1cm4gY29uZmlnXG5cbiAgY29uc3QgZGF0YSA9IHsgLi4uY29uZmlnIH1cbiAgY29uc3QgYXV0aE9wdGlvbnM6IGFueSA9IHt9XG5cbiAgdHJ5IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgY29uc3QgeyBsb2NhbFN0b3JhZ2UsIHJlcUNsYXNzOiBSZXFDbGFzcyB9ID0gYWRhcHRlckZvcld4TXAuZ2VuQWRhcHRlcih7fSlcbiAgICBpZiAobG9jYWxTdG9yYWdlKSB7XG4gICAgICBhdXRoT3B0aW9ucy5zdG9yYWdlID0gbmV3IE9hdXRoQ2xpZW50U3RvcmFnZUJhc2UoeyBsb2NhbFN0b3JhZ2UsIGFkYXB0ZXIgfSlcbiAgICB9XG4gICAgaWYgKFJlcUNsYXNzKSB7XG4gICAgICBjb25zdCByZXFDbGFzcyA9IG5ldyBSZXFDbGFzcyh7XG4gICAgICAgIHRpbWVvdXQ6IDEwMDAwLFxuICAgICAgICByZXN0cmljdGVkTWV0aG9kczogWydnZXQnLCAncG9zdCcsICd1cGxvYWQnLCAnZG93bmxvYWQnLCAncmVxdWVzdCddLFxuICAgICAgfSlcbiAgICAgIGF1dGhPcHRpb25zLnJlcXVlc3QgPSBnZW5lcmF0ZU9hdXRoQ2xpZW50UmVxdWVzdChyZXFDbGFzcylcbiAgICB9XG5cbiAgICBpZiAoZGF0YS5jYXB0Y2hhT3B0aW9ucykge1xuICAgICAgYXV0aE9wdGlvbnMuYmFzZVJlcXVlc3QgPSBhdXRoT3B0aW9ucy5yZXF1ZXN0XG4gICAgICBhdXRoT3B0aW9ucy5yZXF1ZXN0ID0gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgcmV0dXJuIHsgLi4uZGF0YSwgLi4uYXV0aE9wdGlvbnMgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS5lcnJvcignYWRhcHRlciBnZW5lcmF0ZSBmYWlsOicsIGUpXG4gIH1cblxuICByZXR1cm4gZGF0YVxufVxuXG5leHBvcnQgY29uc3QgdXNlQXV0aEFkYXB0ZXIgPSAoY29uZmlnOiBBdXRoT3B0aW9ucykgPT4ge1xuICAvLyDlhbzlrrnlvq7mkK1jbG91ZC1zZGvvvIxhdXRo5LitanMtc2Rr6buY6K6k55qEYWRhcHRlcuS4jei/m+ihjOmFjee9rlxuICBpZiAoY29uZmlnLmFkYXB0ZXIgJiYgKGNvbmZpZy5hZGFwdGVyIGFzIGFueSkudHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgcmV0dXJuIGRlYWxVc2VyQWRhcHRlcihjb25maWcsIGNvbmZpZy5hZGFwdGVyKVxuICB9XG5cbiAgcmV0dXJuIGRlYWxBdXRoQWRhcHRlcihjb25maWcsIGNvbmZpZy5hZGFwdGVyKVxufVxuIl19
|
|
267
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUs1QztJQUVFLGdDQUFZLE1BQW1GOztRQUM3RixJQUFJO1lBQ0YsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxZQUFZLEtBQUksQ0FBQyxDQUFBLE1BQUEsTUFBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsT0FBTywwQ0FBRSxJQUFJLDBDQUFFLFVBQVUsS0FBSSxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUE7U0FDM0c7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsWUFBWSxLQUFJLEVBQUUsQ0FBQTtTQUMvQztJQUNILENBQUM7SUFNSyx3Q0FBTyxHQUFiLFVBQWMsR0FBVzs7O2dCQUN2QixXQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFBOzs7S0FDdEM7SUFPSywyQ0FBVSxHQUFoQixVQUFpQixHQUFXOzs7Z0JBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBOzs7O0tBQ2xDO0lBUUssd0NBQU8sR0FBYixVQUFjLEdBQVcsRUFBRSxLQUFhOzs7Z0JBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQTs7OztLQUN0QztJQUVELDRDQUFXLEdBQVgsVUFBWSxHQUFXO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFD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TyxDQUFBO1lBQzdDLFdBQVcsQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFBO1NBQ2hDO1FBRUQsNkJBQVksSUFBSSxHQUFLLFdBQVcsRUFBRTtLQUNuQztJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLENBQUMsQ0FBQTtLQUMzQztJQUVELE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLElBQU0sY0FBYyxHQUFHLFVBQUMsTUFBbUI7SUFFaEQsSUFBSSxNQUFNLENBQUMsT0FBTyxJQUFLLE1BQU0sQ0FBQyxPQUFlLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTtRQUNoRSxPQUFPLGVBQWUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0tBQy9DO0lBRUQsT0FBTyxlQUFlLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQTtBQUNoRCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTREtBZGFwdGVySW50ZXJmYWNlIH0gZnJvbSAnQGNsb3VkYmFzZS9hZGFwdGVyLWludGVyZmFjZSdcbmltcG9ydCB7IGFkYXB0ZXJGb3JXeE1wIH0gZnJvbSAnLi91dGlsaXRpZXMnXG5pbXBvcnQgdHlwZSB7IEF1dGhPcHRpb25zIH0gZnJvbSAnQGNsb3VkYmFzZS9vYXV0aCdcblxuZGVjbGFyZSBjb25zdCB3eDogYW55XG5cbmNsYXNzIE9hdXRoQ2xpZW50U3RvcmFnZUJhc2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgbG9jYWxTdG9yYWdlXG4gIGNvbnN0cnVjdG9yKGNvbmZpZz86IHsgbG9jYWxTdG9yYWdlOiBhbnkgLyogU3RvcmFnZUludGVyZmFjZSAqLzsgYWRhcHRlcjogU0RLQWRhcHRlckludGVyZmFjZSB9KSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMubG9jYWxTdG9yYWdlID0gY29uZmlnPy5sb2NhbFN0b3JhZ2UgfHwgKGNvbmZpZz8uYWRhcHRlcj8ucm9vdD8uZ2xvYmFsVGhpcyB8fCBnbG9iYWxUaGlzKS5sb2NhbFN0b3JhZ2VcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5sb2NhbFN0b3JhZ2UgPSBjb25maWc/LmxvY2FsU3RvcmFnZSB8fCB7fVxuICAgIH1cbiAgfVxuICAvKipcbiAgICogR2V0IEl0ZW1cbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHN0cmluZyB8IG51bGw+fVxuICAgKi9cbiAgYXN5bmMgZ2V0SXRlbShrZXk6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgSXRlbS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgcmVtb3ZlSXRlbShrZXk6IHN0cmluZykge1xuICAgIHRoaXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBJdGVtLlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgc2V0SXRlbShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB2YWx1ZSlcbiAgfVxuXG4gIGdldEl0ZW1TeW5jKGtleTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KVxuICB9XG5cbiAgc2V0SXRlbVN5bmMoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgdmFsdWUpXG4gIH1cblxuICByZW1vdmVJdGVtU3luYyhrZXk6IHN0cmluZykge1xuICAgIHRoaXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KVxuICB9XG59XG5cbi8qKlxuICogY29weSB0byBnaXRAZ2l0LndvYS5jb206UUJhc2UvbGNhcC9kYXRhc291cmNlLmdpdC9wYWNrYWdlcy9jbG91ZC1zZGsvY29tbW9uXG4gKiDlkIzmraXkv67mlLlcbiAqL1xuY29uc3QgVVJMX1JFRyA9IC9eW146XSs6XFwvXFwvW14vXSsoXFwvW14/I10rKS9cblxuY29uc3QgZGVhbEFkYXB0ZXJSZXF1ZXN0RGF0YSA9IChyZXMsIG9wdGlvbnMpID0+IHtcbiAgY29uc3QgcmVxdWVzdElkID0gb3B0aW9ucz8uaGVhZGVycz8uWyd4LXJlcXVlc3QtaWQnXVxuXG4gIGlmICghcmVzKSB7XG4gICAgcmVzID0ge31cbiAgfVxuXG4gIGlmIChyZXM/LmNvZGUgfHwgcmVzPy5kYXRhPy5lcnJvcl9jb2RlKSB7XG4gICAgcmVzID0ge1xuICAgICAgZXJyb3I6IHJlcy5jb2RlIHx8IHJlcy5kYXRhLmVycm9yLFxuICAgICAgZXJyb3JfZGVzY3JpcHRpb246IHJlcy5kYXRhLmVycm9yX2Rlc2NyaXB0aW9uIHx8IHJlcy5tZXNzYWdlIHx8IHJlcy5jb2RlIHx8IHJlcy5kYXRhLmVycm9yX2NvZGUsXG4gICAgICByZXF1ZXN0X2lkOiByZXMucmVxdWVzdElkLFxuICAgICAgZXJyb3JfY29kZTogcmVzLmRhdGE/LmVycm9yX2NvZGUsXG4gICAgfVxuICB9XG5cbiAgaWYgKCFyZXM/LnJlcXVlc3RfaWQpIHtcbiAgICByZXMucmVxdWVzdF9pZCA9IHJlcy5yZXF1ZXN0X2lkIHx8IHJlcXVlc3RJZFxuICB9XG5cbiAgaWYgKHJlcz8uZXJyb3IpIHtcbiAgICByZXMuZXJyb3JfdXJpID0gZ2V0VXJsUGF0aChvcHRpb25zPy51cmwpXG4gICAgcmV0dXJuIHJlc1xuICB9XG5cbiAgcmV0dXJuIHJlcz8uZGF0YSB8fCB7fVxufVxuXG5mdW5jdGlvbiBnZW5lcmF0ZU9hdXRoQ2xpZW50UmVxdWVzdChyZXFDbGFzcykge1xuICByZXR1cm4gYXN5bmMgZnVuY3Rpb24gKFxuICAgIHVybDogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBib2R5PzogYW55IHwgbnVsbFxuICAgICAgaGVhZGVycz86IGFueSB8IG51bGxcbiAgICAgIG1ldGhvZD86IHN0cmluZ1xuICAgICAgW2tleTogc3RyaW5nXTogYW55XG4gICAgfSxcbiAgKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIC8vIE9iamVjdHMgbXVzdCBiZSBjb3BpZWQgdG8gcHJldmVudCBtb2RpZmljYXRpb24gb2YgZGF0YSBzdWNoIGFzIGJvZHkuXG4gICAgICBjb25zdCBjb3B5T3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMpXG4gICAgICBpZiAoY29weU9wdGlvbnMuYm9keSAmJiB0eXBlb2YgY29weU9wdGlvbnMuYm9keSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29weU9wdGlvbnMuYm9keSA9IEpTT04uc3RyaW5naWZ5KGNvcHlPcHRpb25zLmJvZHkpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRhc2sgPSB3eC5yZXF1ZXN0KHtcbiAgICAgICAgdXJsLFxuICAgICAgICBkYXRhOiBjb3B5T3B0aW9ucy5ib2R5LFxuICAgICAgICB0aW1lb3V0OiByZXFDbGFzcy5fdGltZW91dCxcbiAgICAgICAgbWV0aG9kOiBjb3B5T3B0aW9ucy5tZXRob2QgfHwgJ0dFVCcsXG4gICAgICAgIGhlYWRlcjogY29weU9wdGlvbnMuaGVhZGVycyxcbiAgICAgICAgc3VjY2VzcyhyZXMpIHtcbiAgICAgICAgICByZXMgPSBkZWFsQWRhcHRlclJlcXVlc3REYXRhKHJlcywgeyAuLi5vcHRpb25zLCB1cmwgfSlcblxuICAgICAgICAgIGlmIChyZXMuZXJyb3IpIHtcbiAgICAgICAgICAgIHJlamVjdChyZXMpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc29sdmUocmVzKVxuICAgICAgICB9LFxuICAgICAgICBmYWlsKGVycikge1xuICAgICAgICAgIHJlamVjdCh7XG4gICAgICAgICAgICBlcnJvcjogJ3VucmVhY2hhYmxlJyxcbiAgICAgICAgICAgIGVycm9yX2Rlc2NyaXB0aW9uOiAoZXJyIGFzIEVycm9yKS5tZXNzYWdlLFxuICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBsZXRlKGVycikge1xuICAgICAgICAgIGlmICghZXJyIHx8ICFlcnIuZXJyTXNnKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFyZXFDbGFzcy5fdGltZW91dCB8fCByZXFDbGFzcy5fcmVzdHJpY3RlZE1ldGhvZHMuaW5kZXhPZigncmVxdWVzdCcpID09PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHsgZXJyTXNnIH0gPSBlcnJcbiAgICAgICAgICBpZiAoZXJyTXNnID09PSAncmVxdWVzdDpmYWlsIHRpbWVvdXQnKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4ocmVxQ2xhc3MuX3RpbWVvdXRNc2cpXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICB0YXNrLmFib3J0KClcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9KVxuICB9XG59XG5cbi8qKlxuICogR2V0IHVybCBwYXRoLlxuICogQHBhcmFtIHtzdHJpbmd9IHVybFxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBnZXRVcmxQYXRoKHVybDogc3RyaW5nKSB7XG4gIC8vIHJldHVybiBwYXRoIGlmIG1hdGNoZWQsIG9yIG9yaWdpbmFsIHVybFxuICByZXR1cm4gVVJMX1JFRy50ZXN0KHVybCkgPyBSZWdFeHAuJDEgOiB1cmxcbn1cblxuLyoqXG4gKiDnlKjmiLfoh6rlrprkuYlhZGFwdGVy5aSE55CGXG4gKiBAcGFyYW0gY29uZmlnXG4gKiBAcGFyYW0gYWRhcHRlclxuICogQHJldHVybnNcbiAqL1xuY29uc3QgZGVhbFVzZXJBZGFwdGVyID0gKGNvbmZpZzogQXV0aE9wdGlvbnMsIGFkYXB0ZXI6IFNES0FkYXB0ZXJJbnRlcmZhY2UpID0+IHtcbiAgY29uc3QgZGF0YSA9IHsgLi4uY29uZmlnIH1cblxuICB0cnkge1xuICAgIGlmICghY29uZmlnPy5zdG9yYWdlICYmIGFkYXB0ZXI/LmxvY2FsU3RvcmFnZSkge1xuICAgICAgZGF0YS5zdG9yYWdlID0gbmV3IE9hdXRoQ2xpZW50U3RvcmFnZUJhc2UoeyBsb2NhbFN0b3JhZ2U6IGFkYXB0ZXIubG9jYWxTdG9yYWdlLCBhZGFwdGVyIH0pXG4gICAgfVxuXG4gICAgaWYgKCFjb25maWcuY2FwdGNoYU9wdGlvbnMgJiYgYWRhcHRlcj8uY2FwdGNoYU9wdGlvbnMpIHtcbiAgICAgIGRhdGEuY2FwdGNoYU9wdGlvbnMgPSBhZGFwdGVyLmNhcHRjaGFPcHRpb25zXG4gICAgfVxuXG4gICAgLy8g55So5oi35pyq5Lyg5YWlYmFzZVJlcXVlc3TlkoxyZXF1ZXN05pe25aSE55CGXG4gICAgLy8gT0F1dGgyQ2xpZW505LyY5YWI5LulIGJhc2VSZXF1ZXN0IOS4uuWHhlxuICAgIC8vIEF1dGgg5Zyo5rKh5pyJIHJlcXVlc3Qg55qE5pe25YCZ5Lya5Yid5aeL5YyWIENhcHRjaGHvvIzku47ogIzkvb/nlKggQ2FwdGNoYSDnmoQgcmVxdWVzdFxuICAgIGlmICghY29uZmlnLmJhc2VSZXF1ZXN0ICYmICFjb25maWcucmVxdWVzdCAmJiBhZGFwdGVyPy5yZXFDbGFzcykge1xuICAgICAgY29uc3QgcmVxQ2xhc3NQYXJhbXMgPSB7XG4gICAgICAgIHRpbWVvdXQ6IDEwMDAwLFxuICAgICAgICByZXN0cmljdGVkTWV0aG9kczogWydnZXQnLCAncG9zdCcsICd1cGxvYWQnLCAnZG93bmxvYWQnLCAncmVxdWVzdCddLFxuICAgICAgfVxuICAgICAgY29uc3QgYWRhcHRlclJlcSA9IG5ldyBhZGFwdGVyLnJlcUNsYXNzKHJlcUNsYXNzUGFyYW1zKVxuICAgICAgZGF0YS5iYXNlUmVxdWVzdCA9IGFzeW5jIGZ1bmN0aW9uICh1cmw6IHN0cmluZywgb3B0aW9ucz86IHsgbWV0aG9kPzogc3RyaW5nOyBba2V5OiBzdHJpbmddOiBhbnkgfSkge1xuICAgICAgICBsZXQgcmVzOiBhbnkgPSB7fVxuXG4gICAgICAgIGNvbnN0IHJlcXVlc3RUeXBlID0gb3B0aW9ucy5tZXRob2Q/LnRvTG9jYWxlTG93ZXJDYXNlKCkgfHwgJ3Bvc3QnXG5cbiAgICAgICAgY29uc3QgZnVuYyA9IGFkYXB0ZXJSZXE/LltyZXF1ZXN0VHlwZV0/LmJpbmQ/LihhZGFwdGVyUmVxKVxuXG4gICAgICAgIGlmICh0eXBlb2YgZnVuYyAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCDjgJAke3JlcXVlc3RUeXBlfeOAkSByZXF1ZXN0IG1ldGhvZGApXG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgIC8vIOWFvOWuuemdnuWwj+eoi+W6j+eahGFkYXB0ZXJcbiAgICAgICAgICBpZiAoKCFvcHRpb25zLmhlYWRlcnM/LlsnY29udGVudC10eXBlJ10gfHwgb3B0aW9ucy5oZWFkZXJzPy5bJ2NvbnRlbnQtdHlwZSddLmluY2x1ZGVzKCdhcHBsaWNhdGlvbi9qc29uJykpICYmICFbJ3N0cmluZycsICd1bmRlZmluZWQnXS5pbmNsdWRlcyh0eXBlb2Ygb3B0aW9ucy5ib2R5KSkge1xuICAgICAgICAgICAgb3B0aW9ucy5kYXRhID0gb3B0aW9ucy5kYXRhIHx8IG9wdGlvbnMuYm9keVxuICAgICAgICAgICAgb3B0aW9ucy5ib2R5ID0gSlNPTi5zdHJpbmdpZnkob3B0aW9ucy5ib2R5KVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXMgPSBhd2FpdCBmdW5jKHsgdXJsLCAuLi5vcHRpb25zIH0pXG4gICAgICAgICAgcmVzID0gZGVhbEFkYXB0ZXJSZXF1ZXN0RGF0YShyZXMsIHsgLi4ub3B0aW9ucywgdXJsIH0pXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgcmVzID0gZXJyb3JcbiAgICAgICAgICB0aHJvdyBlcnJvclxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlcz8uZXJyb3IpIHtcbiAgICAgICAgICB0aHJvdyByZXNcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXNcbiAgICAgIH1cbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLmVycm9yKCd1c2VyIGFkYXB0ZXIgZ2VuZXJhdGUgZmFpbDonLCBlKVxuICB9XG5cbiAgcmV0dXJuIGRhdGFcbn1cblxuLyoqXG4gKiDlhoXnva7pu5jorqRhZGFwdGVy5aSE55CGXG4gKiBAcGFyYW0gY29uZmlnXG4gKiBAcmV0dXJuc1xuICovXG5jb25zdCBkZWFsQXV0aEFkYXB0ZXIgPSAoY29uZmlnOiBBdXRoT3B0aW9ucywgYWRhcHRlcjogU0RLQWRhcHRlckludGVyZmFjZSkgPT4ge1xuICBjb25zdCBkYXRhID0geyAuLi5jb25maWcgfVxuICBjb25zdCBhdXRoT3B0aW9uczogYW55ID0ge31cblxuICBpZiAoYWRhcHRlcj8uY2FwdGNoYU9wdGlvbnMpIHtcbiAgICBkYXRhLmNhcHRjaGFPcHRpb25zID0gYWRhcHRlci5jYXB0Y2hhT3B0aW9uc1xuICB9XG5cbiAgaWYgKCFhZGFwdGVyRm9yV3hNcC5pc01hdGNoKCkgfHwgKGNvbmZpZy5zdG9yYWdlICYmIGNvbmZpZy5iYXNlUmVxdWVzdCkpIHJldHVybiBkYXRhXG5cbiAgdHJ5IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgY29uc3QgeyBsb2NhbFN0b3JhZ2UsIHJlcUNsYXNzOiBSZXFDbGFzcyB9ID0gYWRhcHRlckZvcld4TXAuZ2VuQWRhcHRlcih7fSlcbiAgICBpZiAobG9jYWxTdG9yYWdlKSB7XG4gICAgICBhdXRoT3B0aW9ucy5zdG9yYWdlID0gbmV3IE9hdXRoQ2xpZW50U3RvcmFnZUJhc2UoeyBsb2NhbFN0b3JhZ2UsIGFkYXB0ZXIgfSlcbiAgICB9XG4gICAgaWYgKFJlcUNsYXNzKSB7XG4gICAgICBjb25zdCByZXFDbGFzcyA9IG5ldyBSZXFDbGFzcyh7XG4gICAgICAgIHRpbWVvdXQ6IDEwMDAwLFxuICAgICAgICByZXN0cmljdGVkTWV0aG9kczogWydnZXQnLCAncG9zdCcsICd1cGxvYWQnLCAnZG93bmxvYWQnLCAncmVxdWVzdCddLFxuICAgICAgfSlcbiAgICAgIGF1dGhPcHRpb25zLnJlcXVlc3QgPSBnZW5lcmF0ZU9hdXRoQ2xpZW50UmVxdWVzdChyZXFDbGFzcylcbiAgICB9XG5cbiAgICBpZiAoZGF0YS5jYXB0Y2hhT3B0aW9ucykge1xuICAgICAgYXV0aE9wdGlvbnMuYmFzZVJlcXVlc3QgPSBhdXRoT3B0aW9ucy5yZXF1ZXN0XG4gICAgICBhdXRoT3B0aW9ucy5yZXF1ZXN0ID0gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgcmV0dXJuIHsgLi4uZGF0YSwgLi4uYXV0aE9wdGlvbnMgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS5lcnJvcignYWRhcHRlciBnZW5lcmF0ZSBmYWlsOicsIGUpXG4gIH1cblxuICByZXR1cm4gZGF0YVxufVxuXG5leHBvcnQgY29uc3QgdXNlQXV0aEFkYXB0ZXIgPSAoY29uZmlnOiBBdXRoT3B0aW9ucykgPT4ge1xuICAvLyDlhbzlrrnlvq7mkK1jbG91ZC1zZGvvvIxhdXRo5LitanMtc2Rr6buY6K6k55qEYWRhcHRlcuS4jei/m+ihjOmFjee9rlxuICBpZiAoY29uZmlnLmFkYXB0ZXIgJiYgKGNvbmZpZy5hZGFwdGVyIGFzIGFueSkudHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgcmV0dXJuIGRlYWxVc2VyQWRhcHRlcihjb25maWcsIGNvbmZpZy5hZGFwdGVyKVxuICB9XG5cbiAgcmV0dXJuIGRlYWxBdXRoQWRhcHRlcihjb25maWcsIGNvbmZpZy5hZGFwdGVyKVxufVxuIl19
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -5,6 +5,8 @@ import type { ICloudbaseAuthConfig, IUser, IUserInfo, ILoginState } from '@cloud
|
|
|
5
5
|
import type { ProviderSubType } from '@cloudbase/oauth/dist/cjs/auth/models';
|
|
6
6
|
import type { authModels, AuthOptions, Credentials } from '@cloudbase/oauth';
|
|
7
7
|
import { CloudbaseOAuth } from '@cloudbase/oauth';
|
|
8
|
+
import { CloudbaseEventEmitter } from './utilities';
|
|
9
|
+
import { SbaseApi } from './sbaseApi';
|
|
8
10
|
interface UserInfo {
|
|
9
11
|
uid?: string;
|
|
10
12
|
gender?: string;
|
|
@@ -20,11 +22,12 @@ interface UserInfo {
|
|
|
20
22
|
sub?: string;
|
|
21
23
|
created_from?: string;
|
|
22
24
|
}
|
|
25
|
+
export declare const eventBus: CloudbaseEventEmitter;
|
|
23
26
|
interface IUserOptions {
|
|
24
27
|
cache: ICloudbaseCache;
|
|
25
28
|
oauthInstance: CloudbaseOAuth;
|
|
26
29
|
}
|
|
27
|
-
declare class User implements IUser {
|
|
30
|
+
export declare class User implements IUser {
|
|
28
31
|
uid?: string;
|
|
29
32
|
gender?: string;
|
|
30
33
|
picture?: string;
|
|
@@ -56,10 +59,10 @@ declare class User implements IUser {
|
|
|
56
59
|
version?: string;
|
|
57
60
|
query?: any;
|
|
58
61
|
}): Promise<IUserInfo>;
|
|
59
|
-
|
|
62
|
+
getLocalUserInfo(key?: string): string | boolean | Record<string, any>;
|
|
63
|
+
setLocalUserInfo(userInfo: any): void;
|
|
60
64
|
private getLocalUserInfoAsync;
|
|
61
65
|
private setUserInfo;
|
|
62
|
-
private setLocalUserInfo;
|
|
63
66
|
}
|
|
64
67
|
interface ILoginStateOptions extends IUserOptions {
|
|
65
68
|
envId: string;
|
|
@@ -73,10 +76,7 @@ export declare class LoginState implements ILoginState {
|
|
|
73
76
|
checkLocalState(): void;
|
|
74
77
|
checkLocalStateAsync(): Promise<void>;
|
|
75
78
|
}
|
|
76
|
-
declare class Auth {
|
|
77
|
-
private readonly config;
|
|
78
|
-
private readonly cache;
|
|
79
|
-
private oauthInstance;
|
|
79
|
+
declare class Auth extends SbaseApi {
|
|
80
80
|
constructor(config: ICloudbaseAuthConfig & {
|
|
81
81
|
cache: ICloudbaseCache;
|
|
82
82
|
request?: ICloudbaseRequest;
|
|
@@ -90,21 +90,12 @@ declare class Auth {
|
|
|
90
90
|
withCaptcha: boolean;
|
|
91
91
|
}): Promise<authModels.GetVerificationResponse>;
|
|
92
92
|
get currentUser(): User;
|
|
93
|
-
getCurrentUser(): Promise<User>;
|
|
94
|
-
signInAnonymously(data?: {
|
|
95
|
-
provider_token?: string;
|
|
96
|
-
}): Promise<LoginState>;
|
|
93
|
+
getCurrentUser(): Promise<(authModels.UserInfo & Partial<User>) | null>;
|
|
97
94
|
signInAnonymouslyInWx({ useWxCloud, }?: {
|
|
98
95
|
useWxCloud?: boolean;
|
|
99
96
|
}): Promise<LoginState>;
|
|
100
97
|
bindOpenId(): Promise<void>;
|
|
101
|
-
signInWithOpenId({ useWxCloud }?: {
|
|
102
|
-
useWxCloud?: boolean;
|
|
103
|
-
}): Promise<LoginState>;
|
|
104
98
|
signInWithUnionId(): Promise<LoginState>;
|
|
105
|
-
signInWithPhoneAuth({ phoneCode }: {
|
|
106
|
-
phoneCode?: string;
|
|
107
|
-
}): Promise<LoginState>;
|
|
108
99
|
signInWithSms({ verificationInfo, verificationCode, phoneNum, bindInfo, }: {
|
|
109
100
|
verificationInfo?: {
|
|
110
101
|
verification_id: string;
|
|
@@ -124,17 +115,12 @@ declare class Auth {
|
|
|
124
115
|
email?: string;
|
|
125
116
|
}): Promise<LoginState>;
|
|
126
117
|
setCustomSignFunc(getTickFn: authModels.GetCustomSignTicketFn): void;
|
|
127
|
-
signInWithCustomTicket(): Promise<LoginState>;
|
|
128
118
|
signIn(params: authModels.SignInRequest): Promise<LoginState>;
|
|
129
|
-
signUp(params: authModels.SignUpRequest): Promise<LoginState>;
|
|
130
119
|
setPassword(params: authModels.SetPasswordRequest): Promise<void>;
|
|
131
120
|
isUsernameRegistered(username: string): Promise<boolean>;
|
|
132
|
-
signOut(params?: authModels.SignoutRequest): Promise<void | authModels.SignoutReponse>;
|
|
133
121
|
hasLoginState(): LoginState | null;
|
|
134
122
|
getLoginState(): Promise<LoginState>;
|
|
135
|
-
getUserInfo(
|
|
136
|
-
version?: string;
|
|
137
|
-
}): Promise<IUserInfo>;
|
|
123
|
+
getUserInfo(): Promise<(authModels.UserInfo & Partial<User>) | null>;
|
|
138
124
|
getWedaUserInfo(): Promise<any>;
|
|
139
125
|
updateUserBasicInfo(params: authModels.ModifyUserBasicInfoRequest): Promise<void>;
|
|
140
126
|
getAuthHeader(): {};
|
|
@@ -177,12 +163,28 @@ declare class Auth {
|
|
|
177
163
|
modifyPassword(params: authModels.ModifyUserBasicInfoRequest): Promise<void>;
|
|
178
164
|
modifyPasswordWithoutLogin(params: authModels.ModifyPasswordWithoutLoginRequest): Promise<void>;
|
|
179
165
|
getUserBehaviorLog(params: authModels.GetUserBehaviorLog): Promise<authModels.GetUserBehaviorLogRes>;
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
166
|
+
signInWithUsername({ verificationInfo, verificationCode, username: rawUsername, bindInfo, loginType, }: {
|
|
167
|
+
verificationInfo?: {
|
|
168
|
+
verification_id: string;
|
|
169
|
+
is_user: boolean;
|
|
170
|
+
};
|
|
171
|
+
verificationCode?: string;
|
|
172
|
+
username?: string;
|
|
173
|
+
bindInfo?: any;
|
|
174
|
+
loginType?: string;
|
|
175
|
+
}): Promise<LoginState>;
|
|
176
|
+
createLoginState(params?: {
|
|
177
|
+
version?: string;
|
|
178
|
+
query?: any;
|
|
179
|
+
}, options?: {
|
|
180
|
+
asyncRefreshUser?: boolean;
|
|
181
|
+
userInfo?: any;
|
|
182
|
+
}): Promise<LoginState>;
|
|
183
|
+
setAccessKey(): Promise<void>;
|
|
184
184
|
}
|
|
185
|
-
type TInitAuthOptions = Pick<ICloudbaseAuthConfig, 'region' | 'persistence' | 'i18n' | 'accessKey' | 'useWxCloud'> & Partial<AuthOptions
|
|
185
|
+
type TInitAuthOptions = Pick<ICloudbaseAuthConfig, 'region' | 'persistence' | 'i18n' | 'accessKey' | 'useWxCloud'> & Partial<AuthOptions> & {
|
|
186
|
+
detectSessionInUrl?: boolean;
|
|
187
|
+
};
|
|
186
188
|
export declare function generateAuthInstance(config: TInitAuthOptions, options?: {
|
|
187
189
|
clientId: ICloudbaseConfig['clientId'];
|
|
188
190
|
env: ICloudbaseConfig['env'];
|
|
@@ -191,6 +193,7 @@ export declare function generateAuthInstance(config: TInitAuthOptions, options?:
|
|
|
191
193
|
platform?: ICloudbase['platform'];
|
|
192
194
|
app?: ICloudbase;
|
|
193
195
|
debug?: ICloudbaseAuthConfig['debug'];
|
|
196
|
+
detectSessionInUrl?: ICloudbaseAuthConfig['detectSessionInUrl'];
|
|
194
197
|
}): {
|
|
195
198
|
authInstance: Auth;
|
|
196
199
|
oauthInstance: any;
|