@supabase/gotrue-js 2.72.1-rc.1 → 2.73.0-rc.5
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/dist/main/GoTrueClient.d.ts +7 -1
- package/dist/main/GoTrueClient.d.ts.map +1 -1
- package/dist/main/GoTrueClient.js +114 -33
- package/dist/main/GoTrueClient.js.map +1 -1
- package/dist/main/lib/base64url.d.ts +3 -2
- package/dist/main/lib/base64url.d.ts.map +1 -1
- package/dist/main/lib/base64url.js.map +1 -1
- package/dist/main/lib/errors.d.ts +1 -1
- package/dist/main/lib/errors.d.ts.map +1 -1
- package/dist/main/lib/errors.js.map +1 -1
- package/dist/main/lib/helpers.d.ts +2 -1
- package/dist/main/lib/helpers.d.ts.map +1 -1
- package/dist/main/lib/helpers.js.map +1 -1
- package/dist/main/lib/types.d.ts +329 -314
- package/dist/main/lib/types.d.ts.map +1 -1
- package/dist/main/lib/types.js +17 -0
- package/dist/main/lib/types.js.map +1 -1
- package/dist/main/lib/version.d.ts +1 -1
- package/dist/main/lib/version.js +1 -1
- package/dist/main/lib/webauthn.d.ts +274 -0
- package/dist/main/lib/webauthn.d.ts.map +1 -0
- package/dist/main/lib/webauthn.dom.d.ts +583 -0
- package/dist/main/lib/webauthn.dom.d.ts.map +1 -0
- package/dist/main/lib/webauthn.dom.js +4 -0
- package/dist/main/lib/webauthn.dom.js.map +1 -0
- package/dist/main/lib/webauthn.errors.d.ts +80 -0
- package/dist/main/lib/webauthn.errors.d.ts.map +1 -0
- package/dist/main/lib/webauthn.errors.js +265 -0
- package/dist/main/lib/webauthn.errors.js.map +1 -0
- package/dist/main/lib/webauthn.js +702 -0
- package/dist/main/lib/webauthn.js.map +1 -0
- package/dist/module/GoTrueClient.d.ts +7 -1
- package/dist/module/GoTrueClient.d.ts.map +1 -1
- package/dist/module/GoTrueClient.js +120 -39
- package/dist/module/GoTrueClient.js.map +1 -1
- package/dist/module/lib/base64url.d.ts +3 -2
- package/dist/module/lib/base64url.d.ts.map +1 -1
- package/dist/module/lib/base64url.js.map +1 -1
- package/dist/module/lib/errors.d.ts +1 -1
- package/dist/module/lib/errors.d.ts.map +1 -1
- package/dist/module/lib/errors.js.map +1 -1
- package/dist/module/lib/helpers.d.ts +2 -1
- package/dist/module/lib/helpers.d.ts.map +1 -1
- package/dist/module/lib/helpers.js.map +1 -1
- package/dist/module/lib/types.d.ts +329 -314
- package/dist/module/lib/types.d.ts.map +1 -1
- package/dist/module/lib/types.js +17 -0
- package/dist/module/lib/types.js.map +1 -1
- package/dist/module/lib/version.d.ts +1 -1
- package/dist/module/lib/version.js +1 -1
- package/dist/module/lib/webauthn.d.ts +274 -0
- package/dist/module/lib/webauthn.d.ts.map +1 -0
- package/dist/module/lib/webauthn.dom.d.ts +583 -0
- package/dist/module/lib/webauthn.dom.d.ts.map +1 -0
- package/dist/module/lib/webauthn.dom.js +3 -0
- package/dist/module/lib/webauthn.dom.js.map +1 -0
- package/dist/module/lib/webauthn.errors.d.ts +80 -0
- package/dist/module/lib/webauthn.errors.d.ts.map +1 -0
- package/dist/module/lib/webauthn.errors.js +257 -0
- package/dist/module/lib/webauthn.errors.js.map +1 -0
- package/dist/module/lib/webauthn.js +685 -0
- package/dist/module/lib/webauthn.js.map +1 -0
- package/package.json +1 -1
- package/src/GoTrueClient.ts +282 -81
- package/src/lib/base64url.ts +4 -2
- package/src/lib/errors.ts +1 -1
- package/src/lib/helpers.ts +2 -1
- package/src/lib/types.ts +465 -353
- package/src/lib/version.ts +1 -1
- package/src/lib/webauthn.dom.ts +636 -0
- package/src/lib/webauthn.errors.ts +317 -0
- package/src/lib/webauthn.ts +929 -0
|
@@ -2,7 +2,7 @@ import GoTrueAdminApi from './GoTrueAdminApi';
|
|
|
2
2
|
import { AuthError } from './lib/errors';
|
|
3
3
|
import { Fetch } from './lib/fetch';
|
|
4
4
|
import { Deferred } from './lib/helpers';
|
|
5
|
-
import type { AuthChangeEvent, AuthResponse, AuthTokenResponse, AuthTokenResponsePassword,
|
|
5
|
+
import type { AuthChangeEvent, AuthFlowType, AuthOtpResponse, AuthResponse, AuthTokenResponse, AuthTokenResponsePassword, CallRefreshTokenResult, GoTrueClientOptions, GoTrueMFAApi, InitializeResult, JWK, JwtHeader, JwtPayload, LockFunc, OAuthResponse, ResendParams, Session, SignInAnonymouslyCredentials, SignInWithIdTokenCredentials, SignInWithOAuthCredentials, SignInWithPasswordCredentials, SignInWithPasswordlessCredentials, SignInWithSSO, SignOut, SignUpWithPasswordCredentials, SSOResponse, Subscription, SupportedStorage, User, UserAttributes, UserIdentity, UserResponse, VerifyOtpParams, Web3Credentials } from './lib/types';
|
|
6
6
|
export default class GoTrueClient {
|
|
7
7
|
private static nextInstanceID;
|
|
8
8
|
private instanceID;
|
|
@@ -354,6 +354,12 @@ export default class GoTrueClient {
|
|
|
354
354
|
* This method supports the PKCE flow.
|
|
355
355
|
*/
|
|
356
356
|
linkIdentity(credentials: SignInWithOAuthCredentials): Promise<OAuthResponse>;
|
|
357
|
+
/**
|
|
358
|
+
* Links an OIDC identity to an existing user.
|
|
359
|
+
*/
|
|
360
|
+
linkIdentity(credentials: SignInWithIdTokenCredentials): Promise<AuthTokenResponse>;
|
|
361
|
+
private linkIdentityOAuth;
|
|
362
|
+
private linkIdentityIdToken;
|
|
357
363
|
/**
|
|
358
364
|
* Unlinks an identity from a user by deleting it. The user will no longer be able to sign in with that identity once it's unlinked.
|
|
359
365
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoTrueClient.d.ts","sourceRoot":"","sources":["../../src/GoTrueClient.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAU7C,OAAO,EACL,SAAS,EAaV,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,KAAK,EAMN,MAAM,aAAa,CAAA;AACpB,OAAO,
|
|
1
|
+
{"version":3,"file":"GoTrueClient.d.ts","sourceRoot":"","sources":["../../src/GoTrueClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,11 +9,12 @@ const errors_1 = require("./lib/errors");
|
|
|
9
9
|
const fetch_1 = require("./lib/fetch");
|
|
10
10
|
const helpers_1 = require("./lib/helpers");
|
|
11
11
|
const local_storage_1 = require("./lib/local-storage");
|
|
12
|
+
const locks_1 = require("./lib/locks");
|
|
12
13
|
const polyfills_1 = require("./lib/polyfills");
|
|
13
14
|
const version_1 = require("./lib/version");
|
|
14
|
-
const locks_1 = require("./lib/locks");
|
|
15
15
|
const base64url_1 = require("./lib/base64url");
|
|
16
16
|
const ethereum_1 = require("./lib/web3/ethereum");
|
|
17
|
+
const webauthn_1 = require("./lib/webauthn");
|
|
17
18
|
(0, polyfills_1.polyfillGlobalThis)(); // Make "globalThis" available
|
|
18
19
|
const DEFAULT_OPTIONS = {
|
|
19
20
|
url: constants_1.GOTRUE_URL,
|
|
@@ -116,6 +117,7 @@ class GoTrueClient {
|
|
|
116
117
|
listFactors: this._listFactors.bind(this),
|
|
117
118
|
challengeAndVerify: this._challengeAndVerify.bind(this),
|
|
118
119
|
getAuthenticatorAssuranceLevel: this._getAuthenticatorAssuranceLevel.bind(this),
|
|
120
|
+
webauthn: new webauthn_1.WebAuthnApi(this),
|
|
119
121
|
};
|
|
120
122
|
if (this.persistSession) {
|
|
121
123
|
if (settings.storage) {
|
|
@@ -1159,7 +1161,7 @@ class GoTrueClient {
|
|
|
1159
1161
|
}
|
|
1160
1162
|
return { data: { session: currentSession }, error: null };
|
|
1161
1163
|
}
|
|
1162
|
-
const { session, error } = await this._callRefreshToken(currentSession.refresh_token);
|
|
1164
|
+
const { data: session, error } = await this._callRefreshToken(currentSession.refresh_token);
|
|
1163
1165
|
if (error) {
|
|
1164
1166
|
return { data: { session: null }, error };
|
|
1165
1167
|
}
|
|
@@ -1299,7 +1301,7 @@ class GoTrueClient {
|
|
|
1299
1301
|
hasExpired = expiresAt <= timeNow;
|
|
1300
1302
|
}
|
|
1301
1303
|
if (hasExpired) {
|
|
1302
|
-
const {
|
|
1304
|
+
const { data: refreshedSession, error } = await this._callRefreshToken(currentSession.refresh_token);
|
|
1303
1305
|
if (error) {
|
|
1304
1306
|
return { data: { user: null, session: null }, error: error };
|
|
1305
1307
|
}
|
|
@@ -1359,7 +1361,7 @@ class GoTrueClient {
|
|
|
1359
1361
|
if (!(currentSession === null || currentSession === void 0 ? void 0 : currentSession.refresh_token)) {
|
|
1360
1362
|
throw new errors_1.AuthSessionMissingError();
|
|
1361
1363
|
}
|
|
1362
|
-
const { session, error } = await this._callRefreshToken(currentSession.refresh_token);
|
|
1364
|
+
const { data: session, error } = await this._callRefreshToken(currentSession.refresh_token);
|
|
1363
1365
|
if (error) {
|
|
1364
1366
|
return { data: { user: null, session: null }, error: error };
|
|
1365
1367
|
}
|
|
@@ -1451,7 +1453,7 @@ class GoTrueClient {
|
|
|
1451
1453
|
expires_in: expiresIn,
|
|
1452
1454
|
expires_at: expiresAt,
|
|
1453
1455
|
refresh_token,
|
|
1454
|
-
token_type,
|
|
1456
|
+
token_type: token_type,
|
|
1455
1457
|
user: data.user,
|
|
1456
1458
|
};
|
|
1457
1459
|
// Remove tokens from URL
|
|
@@ -1612,11 +1614,13 @@ class GoTrueClient {
|
|
|
1612
1614
|
throw error;
|
|
1613
1615
|
}
|
|
1614
1616
|
}
|
|
1615
|
-
/**
|
|
1616
|
-
* Links an oauth identity to an existing user.
|
|
1617
|
-
* This method supports the PKCE flow.
|
|
1618
|
-
*/
|
|
1619
1617
|
async linkIdentity(credentials) {
|
|
1618
|
+
if ('token' in credentials) {
|
|
1619
|
+
return this.linkIdentityIdToken(credentials);
|
|
1620
|
+
}
|
|
1621
|
+
return this.linkIdentityOAuth(credentials);
|
|
1622
|
+
}
|
|
1623
|
+
async linkIdentityOAuth(credentials) {
|
|
1620
1624
|
var _a;
|
|
1621
1625
|
try {
|
|
1622
1626
|
const { data, error } = await this._useSession(async (result) => {
|
|
@@ -1649,6 +1653,51 @@ class GoTrueClient {
|
|
|
1649
1653
|
throw error;
|
|
1650
1654
|
}
|
|
1651
1655
|
}
|
|
1656
|
+
async linkIdentityIdToken(credentials) {
|
|
1657
|
+
return await this._useSession(async (result) => {
|
|
1658
|
+
var _a;
|
|
1659
|
+
try {
|
|
1660
|
+
const { error: sessionError, data: { session }, } = result;
|
|
1661
|
+
if (sessionError)
|
|
1662
|
+
throw sessionError;
|
|
1663
|
+
const { options, provider, token, access_token, nonce } = credentials;
|
|
1664
|
+
const res = await (0, fetch_1._request)(this.fetch, 'POST', `${this.url}/token?grant_type=id_token`, {
|
|
1665
|
+
headers: this.headers,
|
|
1666
|
+
jwt: (_a = session === null || session === void 0 ? void 0 : session.access_token) !== null && _a !== void 0 ? _a : undefined,
|
|
1667
|
+
body: {
|
|
1668
|
+
provider,
|
|
1669
|
+
id_token: token,
|
|
1670
|
+
access_token,
|
|
1671
|
+
nonce,
|
|
1672
|
+
link_identity: true,
|
|
1673
|
+
gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken },
|
|
1674
|
+
},
|
|
1675
|
+
xform: fetch_1._sessionResponse,
|
|
1676
|
+
});
|
|
1677
|
+
const { data, error } = res;
|
|
1678
|
+
if (error) {
|
|
1679
|
+
return { data: { user: null, session: null }, error };
|
|
1680
|
+
}
|
|
1681
|
+
else if (!data || !data.session || !data.user) {
|
|
1682
|
+
return {
|
|
1683
|
+
data: { user: null, session: null },
|
|
1684
|
+
error: new errors_1.AuthInvalidTokenResponseError(),
|
|
1685
|
+
};
|
|
1686
|
+
}
|
|
1687
|
+
if (data.session) {
|
|
1688
|
+
await this._saveSession(data.session);
|
|
1689
|
+
await this._notifyAllSubscribers('USER_UPDATED', data.session);
|
|
1690
|
+
}
|
|
1691
|
+
return { data, error };
|
|
1692
|
+
}
|
|
1693
|
+
catch (error) {
|
|
1694
|
+
if ((0, errors_1.isAuthError)(error)) {
|
|
1695
|
+
return { data: { user: null, session: null }, error };
|
|
1696
|
+
}
|
|
1697
|
+
throw error;
|
|
1698
|
+
}
|
|
1699
|
+
});
|
|
1700
|
+
}
|
|
1652
1701
|
/**
|
|
1653
1702
|
* Unlinks an identity from a user by deleting it. The user will no longer be able to sign in with that identity once it's unlinked.
|
|
1654
1703
|
*/
|
|
@@ -1848,14 +1897,14 @@ class GoTrueClient {
|
|
|
1848
1897
|
throw new errors_1.AuthSessionMissingError();
|
|
1849
1898
|
await this._saveSession(data.session);
|
|
1850
1899
|
await this._notifyAllSubscribers('TOKEN_REFRESHED', data.session);
|
|
1851
|
-
const result = {
|
|
1900
|
+
const result = { data: data.session, error: null };
|
|
1852
1901
|
this.refreshingDeferred.resolve(result);
|
|
1853
1902
|
return result;
|
|
1854
1903
|
}
|
|
1855
1904
|
catch (error) {
|
|
1856
1905
|
this._debug(debugName, 'error', error);
|
|
1857
1906
|
if ((0, errors_1.isAuthError)(error)) {
|
|
1858
|
-
const result = {
|
|
1907
|
+
const result = { data: null, error };
|
|
1859
1908
|
if (!(0, errors_1.isAuthRetryableFetchError)(error)) {
|
|
1860
1909
|
await this._removeSession();
|
|
1861
1910
|
}
|
|
@@ -2212,16 +2261,20 @@ class GoTrueClient {
|
|
|
2212
2261
|
if (sessionError) {
|
|
2213
2262
|
return { data: null, error: sessionError };
|
|
2214
2263
|
}
|
|
2215
|
-
const body = Object.assign({ friendly_name: params.friendlyName, factor_type: params.factorType }, (params.factorType === 'phone'
|
|
2216
|
-
|
|
2264
|
+
const body = Object.assign({ friendly_name: params.friendlyName, factor_type: params.factorType }, (params.factorType === 'phone'
|
|
2265
|
+
? { phone: params.phone }
|
|
2266
|
+
: params.factorType === 'totp'
|
|
2267
|
+
? { issuer: params.issuer }
|
|
2268
|
+
: {}));
|
|
2269
|
+
const { data, error } = (await (0, fetch_1._request)(this.fetch, 'POST', `${this.url}/factors`, {
|
|
2217
2270
|
body,
|
|
2218
2271
|
headers: this.headers,
|
|
2219
2272
|
jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token,
|
|
2220
|
-
});
|
|
2273
|
+
}));
|
|
2221
2274
|
if (error) {
|
|
2222
2275
|
return { data: null, error };
|
|
2223
2276
|
}
|
|
2224
|
-
if (params.factorType === 'totp' && ((_b = data === null || data === void 0 ? void 0 : data.totp) === null || _b === void 0 ? void 0 : _b.qr_code)) {
|
|
2277
|
+
if (params.factorType === 'totp' && data.type === 'totp' && ((_b = data === null || data === void 0 ? void 0 : data.totp) === null || _b === void 0 ? void 0 : _b.qr_code)) {
|
|
2225
2278
|
data.totp.qr_code = `data:image/svg+xml;utf-8,${data.totp.qr_code}`;
|
|
2226
2279
|
}
|
|
2227
2280
|
return { data, error: null };
|
|
@@ -2234,9 +2287,6 @@ class GoTrueClient {
|
|
|
2234
2287
|
throw error;
|
|
2235
2288
|
}
|
|
2236
2289
|
}
|
|
2237
|
-
/**
|
|
2238
|
-
* {@see GoTrueMFAApi#verify}
|
|
2239
|
-
*/
|
|
2240
2290
|
async _verify(params) {
|
|
2241
2291
|
return this._acquireLock(-1, async () => {
|
|
2242
2292
|
try {
|
|
@@ -2246,8 +2296,15 @@ class GoTrueClient {
|
|
|
2246
2296
|
if (sessionError) {
|
|
2247
2297
|
return { data: null, error: sessionError };
|
|
2248
2298
|
}
|
|
2299
|
+
const body = Object.assign({ challenge_id: params.challengeId }, ('webauthn' in params
|
|
2300
|
+
? {
|
|
2301
|
+
webauthn: Object.assign(Object.assign({}, params.webauthn), { credential_response: params.webauthn.type === 'create'
|
|
2302
|
+
? (0, webauthn_1.serializeCredentialCreationResponse)(params.webauthn.credential_response)
|
|
2303
|
+
: (0, webauthn_1.serializeCredentialRequestResponse)(params.webauthn.credential_response) }),
|
|
2304
|
+
}
|
|
2305
|
+
: { code: params.code }));
|
|
2249
2306
|
const { data, error } = await (0, fetch_1._request)(this.fetch, 'POST', `${this.url}/factors/${params.factorId}/verify`, {
|
|
2250
|
-
body
|
|
2307
|
+
body,
|
|
2251
2308
|
headers: this.headers,
|
|
2252
2309
|
jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token,
|
|
2253
2310
|
});
|
|
@@ -2267,9 +2324,6 @@ class GoTrueClient {
|
|
|
2267
2324
|
}
|
|
2268
2325
|
});
|
|
2269
2326
|
}
|
|
2270
|
-
/**
|
|
2271
|
-
* {@see GoTrueMFAApi#challenge}
|
|
2272
|
-
*/
|
|
2273
2327
|
async _challenge(params) {
|
|
2274
2328
|
return this._acquireLock(-1, async () => {
|
|
2275
2329
|
try {
|
|
@@ -2279,11 +2333,30 @@ class GoTrueClient {
|
|
|
2279
2333
|
if (sessionError) {
|
|
2280
2334
|
return { data: null, error: sessionError };
|
|
2281
2335
|
}
|
|
2282
|
-
|
|
2283
|
-
body:
|
|
2336
|
+
const response = (await (0, fetch_1._request)(this.fetch, 'POST', `${this.url}/factors/${params.factorId}/challenge`, {
|
|
2337
|
+
body: params,
|
|
2284
2338
|
headers: this.headers,
|
|
2285
2339
|
jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token,
|
|
2286
|
-
});
|
|
2340
|
+
}));
|
|
2341
|
+
if (response.error) {
|
|
2342
|
+
return response;
|
|
2343
|
+
}
|
|
2344
|
+
const { data } = response;
|
|
2345
|
+
if (data.type !== 'webauthn') {
|
|
2346
|
+
return { data, error: null };
|
|
2347
|
+
}
|
|
2348
|
+
switch (data.webauthn.type) {
|
|
2349
|
+
case 'create':
|
|
2350
|
+
return {
|
|
2351
|
+
data: Object.assign(Object.assign({}, data), { webauthn: Object.assign(Object.assign({}, data.webauthn), { credential_options: Object.assign(Object.assign({}, data.webauthn.credential_options), { publicKey: (0, webauthn_1.deserializeCredentialCreationOptions)(data.webauthn.credential_options.publicKey) }) }) }),
|
|
2352
|
+
error: null,
|
|
2353
|
+
};
|
|
2354
|
+
case 'request':
|
|
2355
|
+
return {
|
|
2356
|
+
data: Object.assign(Object.assign({}, data), { webauthn: Object.assign(Object.assign({}, data.webauthn), { credential_options: Object.assign(Object.assign({}, data.webauthn.credential_options), { publicKey: (0, webauthn_1.deserializeCredentialRequestOptions)(data.webauthn.credential_options.publicKey) }) }) }),
|
|
2357
|
+
error: null,
|
|
2358
|
+
};
|
|
2359
|
+
}
|
|
2287
2360
|
});
|
|
2288
2361
|
}
|
|
2289
2362
|
catch (error) {
|
|
@@ -2316,20 +2389,28 @@ class GoTrueClient {
|
|
|
2316
2389
|
* {@see GoTrueMFAApi#listFactors}
|
|
2317
2390
|
*/
|
|
2318
2391
|
async _listFactors() {
|
|
2392
|
+
var _a;
|
|
2319
2393
|
// use #getUser instead of #_getUser as the former acquires a lock
|
|
2320
2394
|
const { data: { user }, error: userError, } = await this.getUser();
|
|
2321
2395
|
if (userError) {
|
|
2322
2396
|
return { data: null, error: userError };
|
|
2323
2397
|
}
|
|
2324
|
-
const
|
|
2325
|
-
|
|
2326
|
-
|
|
2398
|
+
const data = {
|
|
2399
|
+
all: [],
|
|
2400
|
+
phone: [],
|
|
2401
|
+
totp: [],
|
|
2402
|
+
webauthn: [],
|
|
2403
|
+
};
|
|
2404
|
+
// loop over the factors ONCE
|
|
2405
|
+
for (const factor of (_a = user === null || user === void 0 ? void 0 : user.factors) !== null && _a !== void 0 ? _a : []) {
|
|
2406
|
+
data.all.push(factor);
|
|
2407
|
+
if (factor.status === 'verified') {
|
|
2408
|
+
;
|
|
2409
|
+
data[factor.factor_type].push(factor);
|
|
2410
|
+
}
|
|
2411
|
+
}
|
|
2327
2412
|
return {
|
|
2328
|
-
data
|
|
2329
|
-
all: factors,
|
|
2330
|
-
totp,
|
|
2331
|
-
phone,
|
|
2332
|
-
},
|
|
2413
|
+
data,
|
|
2333
2414
|
error: null,
|
|
2334
2415
|
};
|
|
2335
2416
|
}
|