@supabase/gotrue-js 1.22.13 → 1.22.16
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/README.md +2 -2
- package/dist/main/GoTrueApi.d.ts +3 -0
- package/dist/main/GoTrueApi.d.ts.map +1 -1
- package/dist/main/GoTrueApi.js +4 -0
- package/dist/main/GoTrueApi.js.map +1 -1
- package/dist/main/GoTrueClient.d.ts +6 -8
- package/dist/main/GoTrueClient.d.ts.map +1 -1
- package/dist/main/GoTrueClient.js +48 -17
- package/dist/main/GoTrueClient.js.map +1 -1
- package/dist/main/lib/constants.d.ts +6 -1
- package/dist/main/lib/constants.d.ts.map +1 -1
- package/dist/main/lib/constants.js +7 -2
- package/dist/main/lib/constants.js.map +1 -1
- package/dist/main/lib/fetch.d.ts.map +1 -1
- package/dist/main/lib/fetch.js +4 -0
- package/dist/main/lib/fetch.js.map +1 -1
- package/dist/main/lib/helpers.d.ts +5 -0
- package/dist/main/lib/helpers.d.ts.map +1 -1
- package/dist/main/lib/helpers.js +44 -1
- package/dist/main/lib/helpers.js.map +1 -1
- package/dist/main/lib/types.d.ts +9 -0
- package/dist/main/lib/types.d.ts.map +1 -1
- package/dist/main/lib/version.d.ts +1 -1
- package/dist/main/lib/version.js +1 -1
- package/dist/module/GoTrueApi.d.ts +3 -0
- package/dist/module/GoTrueApi.d.ts.map +1 -1
- package/dist/module/GoTrueApi.js +4 -0
- package/dist/module/GoTrueApi.js.map +1 -1
- package/dist/module/GoTrueClient.d.ts +6 -8
- package/dist/module/GoTrueClient.d.ts.map +1 -1
- package/dist/module/GoTrueClient.js +50 -19
- package/dist/module/GoTrueClient.js.map +1 -1
- package/dist/module/lib/constants.d.ts +6 -1
- package/dist/module/lib/constants.d.ts.map +1 -1
- package/dist/module/lib/constants.js +6 -1
- package/dist/module/lib/constants.js.map +1 -1
- package/dist/module/lib/fetch.d.ts.map +1 -1
- package/dist/module/lib/fetch.js +4 -0
- package/dist/module/lib/fetch.js.map +1 -1
- package/dist/module/lib/helpers.d.ts +5 -0
- package/dist/module/lib/helpers.d.ts.map +1 -1
- package/dist/module/lib/helpers.js +39 -0
- package/dist/module/lib/helpers.js.map +1 -1
- package/dist/module/lib/types.d.ts +9 -0
- package/dist/module/lib/types.d.ts.map +1 -1
- package/dist/module/lib/version.d.ts +1 -1
- package/dist/module/lib/version.js +1 -1
- package/package.json +1 -1
- package/src/GoTrueApi.ts +5 -0
- package/src/GoTrueClient.ts +72 -33
- package/src/lib/constants.ts +6 -1
- package/src/lib/fetch.ts +5 -0
- package/src/lib/helpers.ts +36 -0
- package/src/lib/types.ts +13 -0
- package/src/lib/version.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,MAAM,CAAC,MAAM,UAAU,GAAG,uBAAuB,CAAA;AACjD,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAA;AAC1B,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,eAAe,EAAE,aAAa,OAAO,EAAE,EAAE,CAAA;AAC1E,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,MAAM,CAAC,MAAM,UAAU,GAAG,uBAAuB,CAAA;AACjD,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAA;AAC1B,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,eAAe,EAAE,aAAa,OAAO,EAAE,EAAE,CAAA;AAC1E,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAA,CAAC,aAAa;AAC7C,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,aAAa,EAAE,gBAAgB;IAC/B,WAAW,EAAE,EAAE;IACf,cAAc,EAAE,CAAC,EAAE,iBAAiB;CACrC,CAAA;AACD,MAAM,CAAC,MAAM,WAAW,GAAG,qBAAqB,CAAA;AAChD,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IACrB,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,GAAG;IACT,QAAQ,EAAE,KAAK;CAChB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/lib/fetch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/lib/fetch.ts"],"names":[],"mappings":"AAEA,oBAAY,KAAK,GAAG,OAAO,KAAK,CAAA;AAEhC,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE;QACR,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KACtB,CAAA;IACD,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,oBAAY,iBAAiB,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAA;AAoD3E,wBAAsB,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAE3F;AAED,wBAAsB,IAAI,CACxB,OAAO,EAAE,KAAK,EACd,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,GAAG,CAAC,CAEd;AAED,wBAAsB,GAAG,CACvB,OAAO,EAAE,KAAK,EACd,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,GAAG,CAAC,CAEd;AAED,wBAAsB,MAAM,CAC1B,OAAO,EAAE,KAAK,EACd,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,GAAG,CAAC,CAEd"}
|
package/dist/module/lib/fetch.js
CHANGED
|
@@ -7,8 +7,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
+
import { NETWORK_FAILURE } from './constants';
|
|
10
11
|
const _getErrorMessage = (err) => err.msg || err.message || err.error_description || err.error || JSON.stringify(err);
|
|
11
12
|
const handleError = (error, reject) => {
|
|
13
|
+
if (!(error === null || error === void 0 ? void 0 : error.status)) {
|
|
14
|
+
return reject({ message: NETWORK_FAILURE.ERROR_MESSAGE });
|
|
15
|
+
}
|
|
12
16
|
if (typeof error.json !== 'function') {
|
|
13
17
|
return reject(error);
|
|
14
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/lib/fetch.ts"],"names":[],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/lib/fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
+
import { SupportedStorage } from './types';
|
|
1
2
|
export declare function expiresAt(expiresIn: number): number;
|
|
2
3
|
export declare function uuid(): string;
|
|
3
4
|
export declare const isBrowser: () => boolean;
|
|
4
5
|
export declare function getParameterByName(name: string, url?: string): string | null;
|
|
5
6
|
declare type Fetch = typeof fetch;
|
|
6
7
|
export declare const resolveFetch: (customFetch?: typeof fetch | undefined) => Fetch;
|
|
8
|
+
export declare const setItemAsync: (storage: SupportedStorage, key: string, data: any) => Promise<void>;
|
|
9
|
+
export declare const getItemAsync: (storage: SupportedStorage, key: string) => Promise<any | null>;
|
|
10
|
+
export declare const getItemSynchronously: (storage: SupportedStorage, key: string) => any | null;
|
|
11
|
+
export declare const removeItemAsync: (storage: SupportedStorage, key: string) => Promise<void>;
|
|
7
12
|
export {};
|
|
8
13
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/lib/helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/lib/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE1C,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,UAG1C;AAED,wBAAgB,IAAI,WAMnB;AAED,eAAO,MAAM,SAAS,eAAsC,CAAA;AAE5D,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,iBAS5D;AAED,aAAK,KAAK,GAAG,OAAO,KAAK,CAAA;AAEzB,eAAO,MAAM,YAAY,8CAA0B,KAUlD,CAAA;AAGD,eAAO,MAAM,YAAY,YACd,gBAAgB,OACpB,MAAM,QACL,GAAG,KACR,QAAQ,IAAI,CAEd,CAAA;AAED,eAAO,MAAM,YAAY,YAAmB,gBAAgB,OAAO,MAAM,KAAG,QAAQ,GAAG,GAAG,IAAI,CAQ7F,CAAA;AAED,eAAO,MAAM,oBAAoB,YAAa,gBAAgB,OAAO,MAAM,KAAG,GAAG,GAAG,IAUnF,CAAA;AAED,eAAO,MAAM,eAAe,YAAmB,gBAAgB,OAAO,MAAM,KAAG,QAAQ,IAAI,CAE1F,CAAA"}
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
1
10
|
import crossFetch from 'cross-fetch';
|
|
2
11
|
export function expiresAt(expiresIn) {
|
|
3
12
|
const timeNow = Math.round(Date.now() / 1000);
|
|
@@ -36,4 +45,34 @@ export const resolveFetch = (customFetch) => {
|
|
|
36
45
|
}
|
|
37
46
|
return (...args) => _fetch(...args);
|
|
38
47
|
};
|
|
48
|
+
// LocalStorage helpers
|
|
49
|
+
export const setItemAsync = (storage, key, data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
50
|
+
isBrowser() && (yield (storage === null || storage === void 0 ? void 0 : storage.setItem(key, JSON.stringify(data))));
|
|
51
|
+
});
|
|
52
|
+
export const getItemAsync = (storage, key) => __awaiter(void 0, void 0, void 0, function* () {
|
|
53
|
+
const value = isBrowser() && (yield (storage === null || storage === void 0 ? void 0 : storage.getItem(key)));
|
|
54
|
+
if (!value)
|
|
55
|
+
return null;
|
|
56
|
+
try {
|
|
57
|
+
return JSON.parse(value);
|
|
58
|
+
}
|
|
59
|
+
catch (_a) {
|
|
60
|
+
return value;
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
export const getItemSynchronously = (storage, key) => {
|
|
64
|
+
const value = isBrowser() && (storage === null || storage === void 0 ? void 0 : storage.getItem(key));
|
|
65
|
+
if (!value || typeof value !== 'string') {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
try {
|
|
69
|
+
return JSON.parse(value);
|
|
70
|
+
}
|
|
71
|
+
catch (_a) {
|
|
72
|
+
return value;
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
export const removeItemAsync = (storage, key) => __awaiter(void 0, void 0, void 0, function* () {
|
|
76
|
+
isBrowser() && (yield (storage === null || storage === void 0 ? void 0 : storage.removeItem(key)));
|
|
77
|
+
});
|
|
39
78
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/lib/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/lib/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,6 +42,8 @@ export interface User {
|
|
|
42
42
|
aud: string;
|
|
43
43
|
confirmation_sent_at?: string;
|
|
44
44
|
recovery_sent_at?: string;
|
|
45
|
+
email_change_sent_at?: string;
|
|
46
|
+
new_email?: string;
|
|
45
47
|
invited_at?: string;
|
|
46
48
|
action_link?: string;
|
|
47
49
|
email?: string;
|
|
@@ -163,4 +165,11 @@ export interface OpenIDConnectCredentials {
|
|
|
163
165
|
client_id?: string;
|
|
164
166
|
issuer?: string;
|
|
165
167
|
}
|
|
168
|
+
declare type AnyFunction = (...args: any[]) => any;
|
|
169
|
+
declare type MaybePromisify<T> = T | Promise<T>;
|
|
170
|
+
declare type PromisifyMethods<T> = {
|
|
171
|
+
[K in keyof T]: T[K] extends AnyFunction ? (...args: Parameters<T[K]>) => MaybePromisify<ReturnType<T[K]>> : T[K];
|
|
172
|
+
};
|
|
173
|
+
export declare type SupportedStorage = PromisifyMethods<Pick<Storage, 'getItem' | 'setItem' | 'removeItem'>>;
|
|
174
|
+
export {};
|
|
166
175
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "1.22.
|
|
1
|
+
export declare const version = "1.22.16";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/package.json
CHANGED
package/src/GoTrueApi.ts
CHANGED
|
@@ -67,6 +67,7 @@ export default class GoTrueApi {
|
|
|
67
67
|
options: {
|
|
68
68
|
redirectTo?: string
|
|
69
69
|
scopes?: string
|
|
70
|
+
queryParams?: { [key: string]: string }
|
|
70
71
|
}
|
|
71
72
|
) {
|
|
72
73
|
const urlParams: string[] = [`provider=${encodeURIComponent(provider)}`]
|
|
@@ -76,6 +77,10 @@ export default class GoTrueApi {
|
|
|
76
77
|
if (options?.scopes) {
|
|
77
78
|
urlParams.push(`scopes=${encodeURIComponent(options.scopes)}`)
|
|
78
79
|
}
|
|
80
|
+
if (options?.queryParams) {
|
|
81
|
+
const query = new URLSearchParams(options.queryParams)
|
|
82
|
+
urlParams.push(`${query}`)
|
|
83
|
+
}
|
|
79
84
|
return `${this.url}/authorize?${urlParams.join('&')}`
|
|
80
85
|
}
|
|
81
86
|
|
package/src/GoTrueClient.ts
CHANGED
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
import GoTrueApi from './GoTrueApi'
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import {
|
|
3
|
+
isBrowser,
|
|
4
|
+
getParameterByName,
|
|
5
|
+
uuid,
|
|
6
|
+
setItemAsync,
|
|
7
|
+
removeItemAsync,
|
|
8
|
+
getItemSynchronously,
|
|
9
|
+
getItemAsync,
|
|
10
|
+
} from './lib/helpers'
|
|
11
|
+
import {
|
|
12
|
+
GOTRUE_URL,
|
|
13
|
+
DEFAULT_HEADERS,
|
|
14
|
+
STORAGE_KEY,
|
|
15
|
+
EXPIRY_MARGIN,
|
|
16
|
+
NETWORK_FAILURE,
|
|
17
|
+
} from './lib/constants'
|
|
4
18
|
import { polyfillGlobalThis } from './lib/polyfills'
|
|
5
19
|
import { Fetch } from './lib/fetch'
|
|
6
20
|
|
|
@@ -16,6 +30,7 @@ import type {
|
|
|
16
30
|
UserCredentials,
|
|
17
31
|
VerifyOTPParams,
|
|
18
32
|
OpenIDConnectCredentials,
|
|
33
|
+
SupportedStorage,
|
|
19
34
|
} from './lib/types'
|
|
20
35
|
|
|
21
36
|
polyfillGlobalThis() // Make "globalThis" available
|
|
@@ -29,17 +44,6 @@ const DEFAULT_OPTIONS = {
|
|
|
29
44
|
headers: DEFAULT_HEADERS,
|
|
30
45
|
}
|
|
31
46
|
|
|
32
|
-
type AnyFunction = (...args: any[]) => any
|
|
33
|
-
type MaybePromisify<T> = T | Promise<T>
|
|
34
|
-
|
|
35
|
-
type PromisifyMethods<T> = {
|
|
36
|
-
[K in keyof T]: T[K] extends AnyFunction
|
|
37
|
-
? (...args: Parameters<T[K]>) => MaybePromisify<ReturnType<T[K]>>
|
|
38
|
-
: T[K]
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
type SupportedStorage = PromisifyMethods<Pick<Storage, 'getItem' | 'setItem' | 'removeItem'>>
|
|
42
|
-
|
|
43
47
|
export default class GoTrueClient {
|
|
44
48
|
/**
|
|
45
49
|
* Namespace for the GoTrue API methods.
|
|
@@ -61,6 +65,7 @@ export default class GoTrueClient {
|
|
|
61
65
|
protected multiTab: boolean
|
|
62
66
|
protected stateChangeEmitters: Map<string, Subscription> = new Map()
|
|
63
67
|
protected refreshTokenTimer?: ReturnType<typeof setTimeout>
|
|
68
|
+
protected networkRetries: number = 0
|
|
64
69
|
|
|
65
70
|
/**
|
|
66
71
|
* Create a new client for use in the browser.
|
|
@@ -101,6 +106,7 @@ export default class GoTrueClient {
|
|
|
101
106
|
this._recoverSession()
|
|
102
107
|
this._recoverAndRefresh()
|
|
103
108
|
this._listenForMultiTabEvents()
|
|
109
|
+
this._handleVisibilityChange()
|
|
104
110
|
|
|
105
111
|
if (settings.detectSessionInUrl && isBrowser() && !!getParameterByName('access_token')) {
|
|
106
112
|
// Handle the OAuth redirect
|
|
@@ -195,6 +201,7 @@ export default class GoTrueClient {
|
|
|
195
201
|
shouldCreateUser?: boolean
|
|
196
202
|
scopes?: string
|
|
197
203
|
captchaToken?: string
|
|
204
|
+
queryParams?: { [key: string]: string }
|
|
198
205
|
} = {}
|
|
199
206
|
): Promise<{
|
|
200
207
|
session: Session | null
|
|
@@ -244,6 +251,7 @@ export default class GoTrueClient {
|
|
|
244
251
|
return this._handleProviderSignIn(provider, {
|
|
245
252
|
redirectTo: options.redirectTo,
|
|
246
253
|
scopes: options.scopes,
|
|
254
|
+
queryParams: options.queryParams,
|
|
247
255
|
})
|
|
248
256
|
}
|
|
249
257
|
if (oidc) {
|
|
@@ -553,11 +561,13 @@ export default class GoTrueClient {
|
|
|
553
561
|
options: {
|
|
554
562
|
redirectTo?: string
|
|
555
563
|
scopes?: string
|
|
564
|
+
queryParams?: { [key: string]: string }
|
|
556
565
|
} = {}
|
|
557
566
|
) {
|
|
558
567
|
const url: string = this.api.getUrlForProvider(provider, {
|
|
559
568
|
redirectTo: options.redirectTo,
|
|
560
569
|
scopes: options.scopes,
|
|
570
|
+
queryParams: options.queryParams,
|
|
561
571
|
})
|
|
562
572
|
|
|
563
573
|
try {
|
|
@@ -610,16 +620,12 @@ export default class GoTrueClient {
|
|
|
610
620
|
*/
|
|
611
621
|
private _recoverSession() {
|
|
612
622
|
try {
|
|
613
|
-
const
|
|
614
|
-
if (!
|
|
615
|
-
return null
|
|
616
|
-
}
|
|
617
|
-
|
|
618
|
-
const data = JSON.parse(json)
|
|
623
|
+
const data = getItemSynchronously(this.localStorage, STORAGE_KEY)
|
|
624
|
+
if (!data) return null
|
|
619
625
|
const { currentSession, expiresAt } = data
|
|
620
626
|
const timeNow = Math.round(Date.now() / 1000)
|
|
621
627
|
|
|
622
|
-
if (expiresAt >= timeNow && currentSession?.user) {
|
|
628
|
+
if (expiresAt >= timeNow + EXPIRY_MARGIN && currentSession?.user) {
|
|
623
629
|
this._saveSession(currentSession)
|
|
624
630
|
this._notifyAllSubscribers('SIGNED_IN')
|
|
625
631
|
}
|
|
@@ -634,22 +640,31 @@ export default class GoTrueClient {
|
|
|
634
640
|
*/
|
|
635
641
|
private async _recoverAndRefresh() {
|
|
636
642
|
try {
|
|
637
|
-
const
|
|
638
|
-
if (!
|
|
639
|
-
return null
|
|
640
|
-
}
|
|
641
|
-
|
|
642
|
-
const data = JSON.parse(json)
|
|
643
|
+
const data = await getItemAsync(this.localStorage, STORAGE_KEY)
|
|
644
|
+
if (!data) return null
|
|
643
645
|
const { currentSession, expiresAt } = data
|
|
644
646
|
const timeNow = Math.round(Date.now() / 1000)
|
|
645
647
|
|
|
646
|
-
if (expiresAt < timeNow) {
|
|
648
|
+
if (expiresAt < timeNow + EXPIRY_MARGIN) {
|
|
647
649
|
if (this.autoRefreshToken && currentSession.refresh_token) {
|
|
650
|
+
this.networkRetries++
|
|
648
651
|
const { error } = await this._callRefreshToken(currentSession.refresh_token)
|
|
649
652
|
if (error) {
|
|
650
653
|
console.log(error.message)
|
|
654
|
+
if (
|
|
655
|
+
error.message === NETWORK_FAILURE.ERROR_MESSAGE &&
|
|
656
|
+
this.networkRetries < NETWORK_FAILURE.MAX_RETRIES
|
|
657
|
+
) {
|
|
658
|
+
if (this.refreshTokenTimer) clearTimeout(this.refreshTokenTimer)
|
|
659
|
+
this.refreshTokenTimer = setTimeout(
|
|
660
|
+
() => this._recoverAndRefresh(),
|
|
661
|
+
NETWORK_FAILURE.RETRY_INTERVAL ** this.networkRetries * 100 // exponential backoff
|
|
662
|
+
)
|
|
663
|
+
return
|
|
664
|
+
}
|
|
651
665
|
await this._removeSession()
|
|
652
666
|
}
|
|
667
|
+
this.networkRetries = 0
|
|
653
668
|
} else {
|
|
654
669
|
this._removeSession()
|
|
655
670
|
}
|
|
@@ -703,7 +718,7 @@ export default class GoTrueClient {
|
|
|
703
718
|
if (expiresAt) {
|
|
704
719
|
const timeNow = Math.round(Date.now() / 1000)
|
|
705
720
|
const expiresIn = expiresAt - timeNow
|
|
706
|
-
const refreshDurationBeforeExpires = expiresIn >
|
|
721
|
+
const refreshDurationBeforeExpires = expiresIn > EXPIRY_MARGIN ? EXPIRY_MARGIN : 0.5
|
|
707
722
|
this._startAutoRefreshToken((expiresIn - refreshDurationBeforeExpires) * 1000)
|
|
708
723
|
}
|
|
709
724
|
|
|
@@ -716,14 +731,14 @@ export default class GoTrueClient {
|
|
|
716
731
|
|
|
717
732
|
private _persistSession(currentSession: Session) {
|
|
718
733
|
const data = { currentSession, expiresAt: currentSession.expires_at }
|
|
719
|
-
|
|
734
|
+
setItemAsync(this.localStorage, STORAGE_KEY, data)
|
|
720
735
|
}
|
|
721
736
|
|
|
722
737
|
private async _removeSession() {
|
|
723
738
|
this.currentSession = null
|
|
724
739
|
this.currentUser = null
|
|
725
740
|
if (this.refreshTokenTimer) clearTimeout(this.refreshTokenTimer)
|
|
726
|
-
|
|
741
|
+
removeItemAsync(this.localStorage, STORAGE_KEY)
|
|
727
742
|
}
|
|
728
743
|
|
|
729
744
|
/**
|
|
@@ -734,7 +749,16 @@ export default class GoTrueClient {
|
|
|
734
749
|
if (this.refreshTokenTimer) clearTimeout(this.refreshTokenTimer)
|
|
735
750
|
if (value <= 0 || !this.autoRefreshToken) return
|
|
736
751
|
|
|
737
|
-
this.refreshTokenTimer = setTimeout(() =>
|
|
752
|
+
this.refreshTokenTimer = setTimeout(async () => {
|
|
753
|
+
this.networkRetries++
|
|
754
|
+
const { error } = await this._callRefreshToken()
|
|
755
|
+
if (!error) this.networkRetries = 0
|
|
756
|
+
if (
|
|
757
|
+
error?.message === NETWORK_FAILURE.ERROR_MESSAGE &&
|
|
758
|
+
this.networkRetries < NETWORK_FAILURE.MAX_RETRIES
|
|
759
|
+
)
|
|
760
|
+
this._startAutoRefreshToken(NETWORK_FAILURE.RETRY_INTERVAL ** this.networkRetries * 100) // exponential backoff
|
|
761
|
+
}, value)
|
|
738
762
|
if (typeof this.refreshTokenTimer.unref === 'function') this.refreshTokenTimer.unref()
|
|
739
763
|
}
|
|
740
764
|
|
|
@@ -743,7 +767,6 @@ export default class GoTrueClient {
|
|
|
743
767
|
*/
|
|
744
768
|
private _listenForMultiTabEvents() {
|
|
745
769
|
if (!this.multiTab || !isBrowser() || !window?.addEventListener) {
|
|
746
|
-
// console.debug('Auth multi-tab support is disabled.')
|
|
747
770
|
return false
|
|
748
771
|
}
|
|
749
772
|
|
|
@@ -752,7 +775,7 @@ export default class GoTrueClient {
|
|
|
752
775
|
if (e.key === STORAGE_KEY) {
|
|
753
776
|
const newSession = JSON.parse(String(e.newValue))
|
|
754
777
|
if (newSession?.currentSession?.access_token) {
|
|
755
|
-
this.
|
|
778
|
+
this._saveSession(newSession.currentSession)
|
|
756
779
|
this._notifyAllSubscribers('SIGNED_IN')
|
|
757
780
|
} else {
|
|
758
781
|
this._removeSession()
|
|
@@ -764,4 +787,20 @@ export default class GoTrueClient {
|
|
|
764
787
|
console.error('_listenForMultiTabEvents', error)
|
|
765
788
|
}
|
|
766
789
|
}
|
|
790
|
+
|
|
791
|
+
private _handleVisibilityChange() {
|
|
792
|
+
if (!this.multiTab || !isBrowser() || !window?.addEventListener) {
|
|
793
|
+
return false
|
|
794
|
+
}
|
|
795
|
+
|
|
796
|
+
try {
|
|
797
|
+
window?.addEventListener('visibilitychange', () => {
|
|
798
|
+
if (document.visibilityState === 'visible') {
|
|
799
|
+
this._recoverAndRefresh()
|
|
800
|
+
}
|
|
801
|
+
})
|
|
802
|
+
} catch (error) {
|
|
803
|
+
console.error('_handleVisibilityChange', error)
|
|
804
|
+
}
|
|
805
|
+
}
|
|
767
806
|
}
|
package/src/lib/constants.ts
CHANGED
|
@@ -2,7 +2,12 @@ import { version } from './version'
|
|
|
2
2
|
export const GOTRUE_URL = 'http://localhost:9999'
|
|
3
3
|
export const AUDIENCE = ''
|
|
4
4
|
export const DEFAULT_HEADERS = { 'X-Client-Info': `gotrue-js/${version}` }
|
|
5
|
-
export const EXPIRY_MARGIN =
|
|
5
|
+
export const EXPIRY_MARGIN = 10 // in seconds
|
|
6
|
+
export const NETWORK_FAILURE = {
|
|
7
|
+
ERROR_MESSAGE: 'Request Failed',
|
|
8
|
+
MAX_RETRIES: 10,
|
|
9
|
+
RETRY_INTERVAL: 2, // in deciseconds
|
|
10
|
+
}
|
|
6
11
|
export const STORAGE_KEY = 'supabase.auth.token'
|
|
7
12
|
export const COOKIE_OPTIONS = {
|
|
8
13
|
name: 'sb',
|
package/src/lib/fetch.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { NETWORK_FAILURE } from './constants'
|
|
2
|
+
|
|
1
3
|
export type Fetch = typeof fetch
|
|
2
4
|
|
|
3
5
|
export interface FetchOptions {
|
|
@@ -13,6 +15,9 @@ const _getErrorMessage = (err: any): string =>
|
|
|
13
15
|
err.msg || err.message || err.error_description || err.error || JSON.stringify(err)
|
|
14
16
|
|
|
15
17
|
const handleError = (error: any, reject: any) => {
|
|
18
|
+
if (!error?.status) {
|
|
19
|
+
return reject({ message: NETWORK_FAILURE.ERROR_MESSAGE })
|
|
20
|
+
}
|
|
16
21
|
if (typeof error.json !== 'function') {
|
|
17
22
|
return reject(error)
|
|
18
23
|
}
|
package/src/lib/helpers.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import crossFetch from 'cross-fetch'
|
|
2
|
+
import { SupportedStorage } from './types'
|
|
2
3
|
|
|
3
4
|
export function expiresAt(expiresIn: number) {
|
|
4
5
|
const timeNow = Math.round(Date.now() / 1000)
|
|
@@ -39,3 +40,38 @@ export const resolveFetch = (customFetch?: Fetch): Fetch => {
|
|
|
39
40
|
}
|
|
40
41
|
return (...args) => _fetch(...args)
|
|
41
42
|
}
|
|
43
|
+
|
|
44
|
+
// LocalStorage helpers
|
|
45
|
+
export const setItemAsync = async (
|
|
46
|
+
storage: SupportedStorage,
|
|
47
|
+
key: string,
|
|
48
|
+
data: any
|
|
49
|
+
): Promise<void> => {
|
|
50
|
+
isBrowser() && (await storage?.setItem(key, JSON.stringify(data)))
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export const getItemAsync = async (storage: SupportedStorage, key: string): Promise<any | null> => {
|
|
54
|
+
const value = isBrowser() && (await storage?.getItem(key))
|
|
55
|
+
if (!value) return null
|
|
56
|
+
try {
|
|
57
|
+
return JSON.parse(value)
|
|
58
|
+
} catch {
|
|
59
|
+
return value
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export const getItemSynchronously = (storage: SupportedStorage, key: string): any | null => {
|
|
64
|
+
const value = isBrowser() && storage?.getItem(key)
|
|
65
|
+
if (!value || typeof value !== 'string') {
|
|
66
|
+
return null
|
|
67
|
+
}
|
|
68
|
+
try {
|
|
69
|
+
return JSON.parse(value)
|
|
70
|
+
} catch {
|
|
71
|
+
return value
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export const removeItemAsync = async (storage: SupportedStorage, key: string): Promise<void> => {
|
|
76
|
+
isBrowser() && (await storage?.removeItem(key))
|
|
77
|
+
}
|
package/src/lib/types.ts
CHANGED
|
@@ -69,6 +69,8 @@ export interface User {
|
|
|
69
69
|
aud: string
|
|
70
70
|
confirmation_sent_at?: string
|
|
71
71
|
recovery_sent_at?: string
|
|
72
|
+
email_change_sent_at?: string
|
|
73
|
+
new_email?: string
|
|
72
74
|
invited_at?: string
|
|
73
75
|
action_link?: string
|
|
74
76
|
email?: string
|
|
@@ -209,3 +211,14 @@ export interface OpenIDConnectCredentials {
|
|
|
209
211
|
client_id?: string
|
|
210
212
|
issuer?: string
|
|
211
213
|
}
|
|
214
|
+
|
|
215
|
+
type AnyFunction = (...args: any[]) => any
|
|
216
|
+
type MaybePromisify<T> = T | Promise<T>
|
|
217
|
+
|
|
218
|
+
type PromisifyMethods<T> = {
|
|
219
|
+
[K in keyof T]: T[K] extends AnyFunction
|
|
220
|
+
? (...args: Parameters<T[K]>) => MaybePromisify<ReturnType<T[K]>>
|
|
221
|
+
: T[K]
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
export type SupportedStorage = PromisifyMethods<Pick<Storage, 'getItem' | 'setItem' | 'removeItem'>>
|
package/src/lib/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// generated by genversion
|
|
2
|
-
export const version = '1.22.
|
|
2
|
+
export const version = '1.22.16'
|