@cloudbase/auth 2.23.3 → 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.
@@ -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=
@@ -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
@@ -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
- private getLocalUserInfo;
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(params?: {
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
- toDefaultLoginPage(params?: authModels.ToDefaultLoginPage): Promise<void>;
181
- private createLoginState;
182
- private signInWithUsername;
183
- private setAccessKey;
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;