@supabase/auth-js 2.72.0 → 2.72.1-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/README.md +95 -3
  2. package/dist/main/GoTrueAdminApi.js.map +1 -1
  3. package/dist/main/GoTrueClient.d.ts +7 -1
  4. package/dist/main/GoTrueClient.d.ts.map +1 -1
  5. package/dist/main/GoTrueClient.js +132 -51
  6. package/dist/main/GoTrueClient.js.map +1 -1
  7. package/dist/main/lib/base64url.d.ts +3 -2
  8. package/dist/main/lib/base64url.d.ts.map +1 -1
  9. package/dist/main/lib/base64url.js +10 -11
  10. package/dist/main/lib/base64url.js.map +1 -1
  11. package/dist/main/lib/error-codes.d.ts +1 -1
  12. package/dist/main/lib/error-codes.d.ts.map +1 -1
  13. package/dist/main/lib/errors.d.ts +1 -1
  14. package/dist/main/lib/errors.d.ts.map +1 -1
  15. package/dist/main/lib/errors.js +7 -7
  16. package/dist/main/lib/errors.js.map +1 -1
  17. package/dist/main/lib/fetch.d.ts +2 -2
  18. package/dist/main/lib/fetch.d.ts.map +1 -1
  19. package/dist/main/lib/fetch.js +8 -9
  20. package/dist/main/lib/fetch.js.map +1 -1
  21. package/dist/main/lib/helpers.d.ts +3 -2
  22. package/dist/main/lib/helpers.d.ts.map +1 -1
  23. package/dist/main/lib/helpers.js +34 -24
  24. package/dist/main/lib/helpers.js.map +1 -1
  25. package/dist/main/lib/local-storage.js +1 -2
  26. package/dist/main/lib/local-storage.js.map +1 -1
  27. package/dist/main/lib/locks.js +3 -3
  28. package/dist/main/lib/locks.js.map +1 -1
  29. package/dist/main/lib/polyfills.js +1 -2
  30. package/dist/main/lib/polyfills.js.map +1 -1
  31. package/dist/main/lib/types.d.ts +373 -358
  32. package/dist/main/lib/types.d.ts.map +1 -1
  33. package/dist/main/lib/types.js +17 -0
  34. package/dist/main/lib/types.js.map +1 -1
  35. package/dist/main/lib/version.d.ts +1 -1
  36. package/dist/main/lib/version.d.ts.map +1 -1
  37. package/dist/main/lib/version.js +7 -1
  38. package/dist/main/lib/version.js.map +1 -1
  39. package/dist/main/lib/web3/ethereum.d.ts +9 -9
  40. package/dist/main/lib/web3/ethereum.d.ts.map +1 -1
  41. package/dist/main/lib/web3/ethereum.js +4 -5
  42. package/dist/main/lib/web3/ethereum.js.map +1 -1
  43. package/dist/main/lib/web3/solana.d.ts +4 -4
  44. package/dist/main/lib/web3/solana.d.ts.map +1 -1
  45. package/dist/main/lib/webauthn.d.ts +274 -0
  46. package/dist/main/lib/webauthn.d.ts.map +1 -0
  47. package/dist/main/lib/webauthn.dom.d.ts +583 -0
  48. package/dist/main/lib/webauthn.dom.d.ts.map +1 -0
  49. package/dist/main/lib/webauthn.dom.js +4 -0
  50. package/dist/main/lib/webauthn.dom.js.map +1 -0
  51. package/dist/main/lib/webauthn.errors.d.ts +80 -0
  52. package/dist/main/lib/webauthn.errors.d.ts.map +1 -0
  53. package/dist/main/lib/webauthn.errors.js +265 -0
  54. package/dist/main/lib/webauthn.errors.js.map +1 -0
  55. package/dist/main/lib/webauthn.js +702 -0
  56. package/dist/main/lib/webauthn.js.map +1 -0
  57. package/dist/module/GoTrueAdminApi.js.map +1 -1
  58. package/dist/module/GoTrueClient.d.ts +7 -1
  59. package/dist/module/GoTrueClient.d.ts.map +1 -1
  60. package/dist/module/GoTrueClient.js +139 -57
  61. package/dist/module/GoTrueClient.js.map +1 -1
  62. package/dist/module/lib/base64url.d.ts +3 -2
  63. package/dist/module/lib/base64url.d.ts.map +1 -1
  64. package/dist/module/lib/base64url.js.map +1 -1
  65. package/dist/module/lib/error-codes.d.ts +1 -1
  66. package/dist/module/lib/error-codes.d.ts.map +1 -1
  67. package/dist/module/lib/errors.d.ts +1 -1
  68. package/dist/module/lib/errors.d.ts.map +1 -1
  69. package/dist/module/lib/errors.js.map +1 -1
  70. package/dist/module/lib/fetch.d.ts +2 -2
  71. package/dist/module/lib/fetch.d.ts.map +1 -1
  72. package/dist/module/lib/fetch.js.map +1 -1
  73. package/dist/module/lib/helpers.d.ts +3 -2
  74. package/dist/module/lib/helpers.d.ts.map +1 -1
  75. package/dist/module/lib/helpers.js.map +1 -1
  76. package/dist/module/lib/locks.js.map +1 -1
  77. package/dist/module/lib/polyfills.js.map +1 -1
  78. package/dist/module/lib/types.d.ts +373 -358
  79. package/dist/module/lib/types.d.ts.map +1 -1
  80. package/dist/module/lib/types.js +17 -0
  81. package/dist/module/lib/types.js.map +1 -1
  82. package/dist/module/lib/version.d.ts +1 -1
  83. package/dist/module/lib/version.d.ts.map +1 -1
  84. package/dist/module/lib/version.js +7 -1
  85. package/dist/module/lib/version.js.map +1 -1
  86. package/dist/module/lib/web3/ethereum.d.ts +9 -9
  87. package/dist/module/lib/web3/ethereum.d.ts.map +1 -1
  88. package/dist/module/lib/web3/ethereum.js.map +1 -1
  89. package/dist/module/lib/web3/solana.d.ts +4 -4
  90. package/dist/module/lib/web3/solana.d.ts.map +1 -1
  91. package/dist/module/lib/webauthn.d.ts +274 -0
  92. package/dist/module/lib/webauthn.d.ts.map +1 -0
  93. package/dist/module/lib/webauthn.dom.d.ts +583 -0
  94. package/dist/module/lib/webauthn.dom.d.ts.map +1 -0
  95. package/dist/module/lib/webauthn.dom.js +3 -0
  96. package/dist/module/lib/webauthn.dom.js.map +1 -0
  97. package/dist/module/lib/webauthn.errors.d.ts +80 -0
  98. package/dist/module/lib/webauthn.errors.d.ts.map +1 -0
  99. package/dist/module/lib/webauthn.errors.js +257 -0
  100. package/dist/module/lib/webauthn.errors.js.map +1 -0
  101. package/dist/module/lib/webauthn.js +685 -0
  102. package/dist/module/lib/webauthn.js.map +1 -0
  103. package/package.json +13 -33
  104. package/src/GoTrueClient.ts +279 -81
  105. package/src/lib/base64url.ts +4 -2
  106. package/src/lib/errors.ts +1 -1
  107. package/src/lib/helpers.ts +2 -1
  108. package/src/lib/types.ts +466 -354
  109. package/src/lib/version.ts +7 -1
  110. package/src/lib/webauthn.dom.ts +636 -0
  111. package/src/lib/webauthn.errors.ts +317 -0
  112. package/src/lib/webauthn.ts +929 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webauthn.js","sourceRoot":"","sources":["../../../src/lib/webauthn.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@supabase/auth-js",
3
- "version": "2.72.0",
3
+ "version": "2.72.1-canary.0",
4
4
  "private": false,
5
5
  "description": "Official client library for Supabase Auth",
6
6
  "keywords": [
@@ -9,8 +9,8 @@
9
9
  "auth",
10
10
  "authentication"
11
11
  ],
12
- "homepage": "https://github.com/supabase/auth-js",
13
- "bugs": "https://github.com/supabase/auth-js/issues",
12
+ "homepage": "https://github.com/supabase/js-client-libs/tree/main/packages/core/auth-js",
13
+ "bugs": "https://github.com/supabase/js-client-libs/issues",
14
14
  "license": "MIT",
15
15
  "author": "Supabase",
16
16
  "files": [
@@ -20,16 +20,19 @@
20
20
  "main": "dist/main/index.js",
21
21
  "module": "dist/module/index.js",
22
22
  "types": "dist/module/index.d.ts",
23
- "repository": "github:supabase/auth-js",
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "https://github.com/supabase/js-client-libs.git",
26
+ "directory": "packages/core/auth-js"
27
+ },
24
28
  "scripts": {
25
29
  "clean": "rimraf dist docs",
26
30
  "coverage": "echo \"run npm test\"",
27
- "format": "prettier --write \"{src,test}/**/*.ts\"",
28
- "build": "genversion src/lib/version.ts --es6 && run-s clean format build:* && run-s lint",
31
+ "build:node18": "npm run clean && npm run build:main && npm run build:module",
32
+ "build": "npm run clean && npx nx build:main auth-js && npx nx build:module auth-js",
29
33
  "build:main": "tsc -p tsconfig.json",
30
34
  "build:module": "tsc -p tsconfig.module.json",
31
- "lint": "eslint ./src/**/* test/**/*.test.ts",
32
- "test": "run-s test:clean test:infra test:suite test:clean",
35
+ "test:auth": "npm run test:clean && npm run test:infra && npm run test:suite && npm run test:clean",
33
36
  "test:suite": "npm --prefix ./test run test",
34
37
  "test:infra": "cd infra && docker compose down && docker compose pull && docker compose up -d && sleep 30",
35
38
  "test:clean": "cd infra && docker compose down",
@@ -37,33 +40,10 @@
37
40
  "docs:json": "typedoc --json docs/v2/spec.json --excludeExternals --excludePrivate --excludeProtected src/index.ts"
38
41
  },
39
42
  "dependencies": {
40
- "@supabase/node-fetch": "^2.6.14"
43
+ "@supabase/node-fetch": "2.6.15"
41
44
  },
42
45
  "devDependencies": {
43
- "@types/faker": "^5.1.6",
44
- "@types/jest": "^28.1.6",
45
- "@types/jsonwebtoken": "^8.5.6",
46
- "@types/node": "^18.16.19",
47
- "@types/node-fetch": "^2.6.4",
48
- "@typescript-eslint/eslint-plugin": "^5.30.7",
49
- "@typescript-eslint/parser": "^5.30.7",
50
- "eslint": "^8.20.0",
51
- "eslint-config-prettier": "^8.5.0",
52
- "eslint-config-standard": "^17.0.0",
53
- "eslint-plugin-import": "^2.26.0",
54
- "eslint-plugin-node": "^11.1.0",
55
- "eslint-plugin-promise": "^6.0.0",
56
- "faker": "^5.3.1",
57
- "genversion": "^3.1.1",
58
46
  "jest": "^28.1.3",
59
- "jest-mock-server": "^0.1.0",
60
- "jsonwebtoken": "^9.0.0",
61
- "npm-run-all": "^4.1.5",
62
- "prettier": "2.7.1",
63
- "rimraf": "^3.0.2",
64
- "semantic-release-plugin-update-version-in-files": "^1.1.0",
65
- "ts-jest": "^28.0.7",
66
- "typedoc": "^0.23.28",
67
- "typescript": "^4.7.4"
47
+ "ts-jest": "^28.0.7"
68
48
  }
69
49
  }
@@ -1,128 +1,155 @@
1
1
  import GoTrueAdminApi from './GoTrueAdminApi'
2
2
  import {
3
- DEFAULT_HEADERS,
4
- EXPIRY_MARGIN_MS,
5
3
  AUTO_REFRESH_TICK_DURATION_MS,
6
4
  AUTO_REFRESH_TICK_THRESHOLD,
5
+ DEFAULT_HEADERS,
6
+ EXPIRY_MARGIN_MS,
7
7
  GOTRUE_URL,
8
- STORAGE_KEY,
9
8
  JWKS_TTL,
9
+ STORAGE_KEY,
10
10
  } from './lib/constants'
11
11
  import {
12
12
  AuthError,
13
13
  AuthImplicitGrantRedirectError,
14
- AuthPKCEGrantCodeExchangeError,
15
14
  AuthInvalidCredentialsError,
16
- AuthSessionMissingError,
15
+ AuthInvalidJwtError,
17
16
  AuthInvalidTokenResponseError,
17
+ AuthPKCEGrantCodeExchangeError,
18
+ AuthSessionMissingError,
18
19
  AuthUnknownError,
19
20
  isAuthApiError,
20
21
  isAuthError,
22
+ isAuthImplicitGrantRedirectError,
21
23
  isAuthRetryableFetchError,
22
24
  isAuthSessionMissingError,
23
- isAuthImplicitGrantRedirectError,
24
- AuthInvalidJwtError,
25
25
  } from './lib/errors'
26
26
  import {
27
27
  Fetch,
28
28
  _request,
29
29
  _sessionResponse,
30
30
  _sessionResponsePassword,
31
- _userResponse,
32
31
  _ssoResponse,
32
+ _userResponse,
33
33
  } from './lib/fetch'
34
34
  import {
35
+ decodeJWT,
35
36
  deepClone,
36
37
  Deferred,
38
+ getAlgorithm,
39
+ getCodeChallengeAndMethod,
37
40
  getItemAsync,
38
41
  isBrowser,
42
+ parseParametersFromURL,
39
43
  removeItemAsync,
40
44
  resolveFetch,
41
- setItemAsync,
42
- uuid,
43
45
  retryable,
46
+ setItemAsync,
44
47
  sleep,
45
- parseParametersFromURL,
46
- getCodeChallengeAndMethod,
47
- getAlgorithm,
48
- validateExp,
49
- decodeJWT,
50
- userNotAvailableProxy,
51
48
  supportsLocalStorage,
49
+ userNotAvailableProxy,
50
+ uuid,
51
+ validateExp,
52
52
  } from './lib/helpers'
53
53
  import { memoryLocalStorageAdapter } from './lib/local-storage'
54
+ import { LockAcquireTimeoutError, navigatorLock } from './lib/locks'
54
55
  import { polyfillGlobalThis } from './lib/polyfills'
55
56
  import { version } from './lib/version'
56
- import { LockAcquireTimeoutError, navigatorLock } from './lib/locks'
57
57
 
58
+ import { bytesToBase64URL, stringToUint8Array } from './lib/base64url'
58
59
  import type {
59
60
  AuthChangeEvent,
61
+ AuthenticatorAssuranceLevels,
62
+ AuthFlowType,
63
+ AuthMFAChallengePhoneResponse,
64
+ AuthMFAChallengeResponse,
65
+ AuthMFAChallengeTOTPResponse,
66
+ AuthMFAChallengeWebauthnResponse,
67
+ AuthMFAChallengeWebauthnServerResponse,
68
+ AuthMFAEnrollPhoneResponse,
69
+ AuthMFAEnrollResponse,
70
+ AuthMFAEnrollTOTPResponse,
71
+ AuthMFAEnrollWebauthnResponse,
72
+ AuthMFAGetAuthenticatorAssuranceLevelResponse,
73
+ AuthMFAListFactorsResponse,
74
+ AuthMFAUnenrollResponse,
75
+ AuthMFAVerifyResponse,
76
+ AuthOtpResponse,
60
77
  AuthResponse,
61
78
  AuthResponsePassword,
62
79
  AuthTokenResponse,
63
80
  AuthTokenResponsePassword,
64
- AuthOtpResponse,
65
81
  CallRefreshTokenResult,
82
+ EthereumWallet,
83
+ EthereumWeb3Credentials,
84
+ Factor,
66
85
  GoTrueClientOptions,
86
+ GoTrueMFAApi,
67
87
  InitializeResult,
88
+ JWK,
89
+ JwtHeader,
90
+ JwtPayload,
91
+ LockFunc,
92
+ MFAChallengeAndVerifyParams,
93
+ MFAChallengeParams,
94
+ MFAChallengePhoneParams,
95
+ MFAChallengeTOTPParams,
96
+ MFAChallengeWebauthnParams,
97
+ MFAEnrollParams,
98
+ MFAEnrollPhoneParams,
99
+ MFAEnrollTOTPParams,
100
+ MFAEnrollWebauthnParams,
101
+ MFAUnenrollParams,
102
+ MFAVerifyParams,
103
+ MFAVerifyPhoneParams,
104
+ MFAVerifyTOTPParams,
105
+ MFAVerifyWebauthnParamFields,
106
+ MFAVerifyWebauthnParams,
68
107
  OAuthResponse,
69
- SSOResponse,
108
+ Prettify,
70
109
  Provider,
110
+ ResendParams,
71
111
  Session,
112
+ SignInAnonymouslyCredentials,
72
113
  SignInWithIdTokenCredentials,
73
114
  SignInWithOAuthCredentials,
74
115
  SignInWithPasswordCredentials,
75
116
  SignInWithPasswordlessCredentials,
76
- SignUpWithPasswordCredentials,
77
117
  SignInWithSSO,
78
118
  SignOut,
119
+ SignUpWithPasswordCredentials,
120
+ SolanaWallet,
121
+ SolanaWeb3Credentials,
122
+ SSOResponse,
123
+ StrictOmit,
79
124
  Subscription,
80
125
  SupportedStorage,
81
126
  User,
82
127
  UserAttributes,
128
+ UserIdentity,
83
129
  UserResponse,
84
130
  VerifyOtpParams,
85
- GoTrueMFAApi,
86
- MFAEnrollParams,
87
- AuthMFAEnrollResponse,
88
- MFAChallengeParams,
89
- AuthMFAChallengeResponse,
90
- MFAUnenrollParams,
91
- AuthMFAUnenrollResponse,
92
- MFAVerifyParams,
93
- AuthMFAVerifyResponse,
94
- AuthMFAListFactorsResponse,
95
- AuthMFAGetAuthenticatorAssuranceLevelResponse,
96
- AuthenticatorAssuranceLevels,
97
- Factor,
98
- MFAChallengeAndVerifyParams,
99
- ResendParams,
100
- AuthFlowType,
101
- LockFunc,
102
- UserIdentity,
103
- SignInAnonymouslyCredentials,
104
- MFAEnrollTOTPParams,
105
- MFAEnrollPhoneParams,
106
- AuthMFAEnrollTOTPResponse,
107
- AuthMFAEnrollPhoneResponse,
108
- JWK,
109
- JwtPayload,
110
- JwtHeader,
111
- SolanaWeb3Credentials,
112
- SolanaWallet,
113
131
  Web3Credentials,
114
- EthereumWeb3Credentials,
115
- EthereumWallet,
116
132
  } from './lib/types'
117
- import { stringToUint8Array, bytesToBase64URL } from './lib/base64url'
118
133
  import {
134
+ createSiweMessage,
119
135
  fromHex,
120
136
  getAddress,
121
137
  Hex,
122
- toHex,
123
- createSiweMessage,
124
138
  SiweMessage,
139
+ toHex,
125
140
  } from './lib/web3/ethereum'
141
+ import {
142
+ deserializeCredentialCreationOptions,
143
+ deserializeCredentialRequestOptions,
144
+ serializeCredentialCreationResponse,
145
+ serializeCredentialRequestResponse,
146
+ WebAuthnApi,
147
+ } from './lib/webauthn'
148
+ import {
149
+ AuthenticationCredential,
150
+ PublicKeyCredentialJSON,
151
+ RegistrationCredential,
152
+ } from './lib/webauthn.dom'
126
153
 
127
154
  polyfillGlobalThis() // Make "globalThis" available
128
155
 
@@ -292,6 +319,7 @@ export default class GoTrueClient {
292
319
  listFactors: this._listFactors.bind(this),
293
320
  challengeAndVerify: this._challengeAndVerify.bind(this),
294
321
  getAuthenticatorAssuranceLevel: this._getAuthenticatorAssuranceLevel.bind(this),
322
+ webauthn: new WebAuthnApi(this),
295
323
  }
296
324
 
297
325
  if (this.persistSession) {
@@ -1578,7 +1606,7 @@ export default class GoTrueClient {
1578
1606
  return { data: { session: currentSession }, error: null }
1579
1607
  }
1580
1608
 
1581
- const { session, error } = await this._callRefreshToken(currentSession.refresh_token)
1609
+ const { data: session, error } = await this._callRefreshToken(currentSession.refresh_token)
1582
1610
  if (error) {
1583
1611
  return { data: { session: null }, error }
1584
1612
  }
@@ -1757,7 +1785,7 @@ export default class GoTrueClient {
1757
1785
  }
1758
1786
 
1759
1787
  if (hasExpired) {
1760
- const { session: refreshedSession, error } = await this._callRefreshToken(
1788
+ const { data: refreshedSession, error } = await this._callRefreshToken(
1761
1789
  currentSession.refresh_token
1762
1790
  )
1763
1791
  if (error) {
@@ -1827,7 +1855,7 @@ export default class GoTrueClient {
1827
1855
  throw new AuthSessionMissingError()
1828
1856
  }
1829
1857
 
1830
- const { session, error } = await this._callRefreshToken(currentSession.refresh_token)
1858
+ const { data: session, error } = await this._callRefreshToken(currentSession.refresh_token)
1831
1859
  if (error) {
1832
1860
  return { data: { user: null, session: null }, error: error }
1833
1861
  }
@@ -1963,7 +1991,7 @@ export default class GoTrueClient {
1963
1991
  expires_in: expiresIn,
1964
1992
  expires_at: expiresAt,
1965
1993
  refresh_token,
1966
- token_type,
1994
+ token_type: token_type as 'bearer',
1967
1995
  user: data.user,
1968
1996
  }
1969
1997
 
@@ -2174,11 +2202,27 @@ export default class GoTrueClient {
2174
2202
  throw error
2175
2203
  }
2176
2204
  }
2205
+
2177
2206
  /**
2178
2207
  * Links an oauth identity to an existing user.
2179
2208
  * This method supports the PKCE flow.
2180
2209
  */
2181
- async linkIdentity(credentials: SignInWithOAuthCredentials): Promise<OAuthResponse> {
2210
+ async linkIdentity(credentials: SignInWithOAuthCredentials): Promise<OAuthResponse>
2211
+
2212
+ /**
2213
+ * Links an OIDC identity to an existing user.
2214
+ */
2215
+ async linkIdentity(credentials: SignInWithIdTokenCredentials): Promise<AuthTokenResponse>
2216
+
2217
+ async linkIdentity(credentials: any): Promise<any> {
2218
+ if ('token' in credentials) {
2219
+ return this.linkIdentityIdToken(credentials)
2220
+ }
2221
+
2222
+ return this.linkIdentityOAuth(credentials)
2223
+ }
2224
+
2225
+ private async linkIdentityOAuth(credentials: SignInWithOAuthCredentials): Promise<OAuthResponse> {
2182
2226
  try {
2183
2227
  const { data, error } = await this._useSession(async (result) => {
2184
2228
  const { data, error } = result
@@ -2211,6 +2255,56 @@ export default class GoTrueClient {
2211
2255
  }
2212
2256
  }
2213
2257
 
2258
+ private async linkIdentityIdToken(
2259
+ credentials: SignInWithIdTokenCredentials
2260
+ ): Promise<AuthTokenResponse> {
2261
+ return await this._useSession(async (result) => {
2262
+ try {
2263
+ const {
2264
+ error: sessionError,
2265
+ data: { session },
2266
+ } = result
2267
+ if (sessionError) throw sessionError
2268
+
2269
+ const { options, provider, token, access_token, nonce } = credentials
2270
+
2271
+ const res = await _request(this.fetch, 'POST', `${this.url}/token?grant_type=id_token`, {
2272
+ headers: this.headers,
2273
+ jwt: session?.access_token ?? undefined,
2274
+ body: {
2275
+ provider,
2276
+ id_token: token,
2277
+ access_token,
2278
+ nonce,
2279
+ link_identity: true,
2280
+ gotrue_meta_security: { captcha_token: options?.captchaToken },
2281
+ },
2282
+ xform: _sessionResponse,
2283
+ })
2284
+
2285
+ const { data, error } = res
2286
+ if (error) {
2287
+ return { data: { user: null, session: null }, error }
2288
+ } else if (!data || !data.session || !data.user) {
2289
+ return {
2290
+ data: { user: null, session: null },
2291
+ error: new AuthInvalidTokenResponseError(),
2292
+ }
2293
+ }
2294
+ if (data.session) {
2295
+ await this._saveSession(data.session)
2296
+ await this._notifyAllSubscribers('USER_UPDATED', data.session)
2297
+ }
2298
+ return { data, error }
2299
+ } catch (error) {
2300
+ if (isAuthError(error)) {
2301
+ return { data: { user: null, session: null }, error }
2302
+ }
2303
+ throw error
2304
+ }
2305
+ })
2306
+ }
2307
+
2214
2308
  /**
2215
2309
  * 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.
2216
2310
  */
@@ -2478,7 +2572,7 @@ export default class GoTrueClient {
2478
2572
  await this._saveSession(data.session)
2479
2573
  await this._notifyAllSubscribers('TOKEN_REFRESHED', data.session)
2480
2574
 
2481
- const result = { session: data.session, error: null }
2575
+ const result = { data: data.session, error: null }
2482
2576
 
2483
2577
  this.refreshingDeferred.resolve(result)
2484
2578
 
@@ -2487,7 +2581,7 @@ export default class GoTrueClient {
2487
2581
  this._debug(debugName, 'error', error)
2488
2582
 
2489
2583
  if (isAuthError(error)) {
2490
- const result = { session: null, error }
2584
+ const result = { data: null, error }
2491
2585
 
2492
2586
  if (!isAuthRetryableFetchError(error)) {
2493
2587
  await this._removeSession()
@@ -2913,6 +3007,7 @@ export default class GoTrueClient {
2913
3007
  */
2914
3008
  private async _enroll(params: MFAEnrollTOTPParams): Promise<AuthMFAEnrollTOTPResponse>
2915
3009
  private async _enroll(params: MFAEnrollPhoneParams): Promise<AuthMFAEnrollPhoneResponse>
3010
+ private async _enroll(params: MFAEnrollWebauthnParams): Promise<AuthMFAEnrollWebauthnResponse>
2916
3011
  private async _enroll(params: MFAEnrollParams): Promise<AuthMFAEnrollResponse> {
2917
3012
  try {
2918
3013
  return await this._useSession(async (result) => {
@@ -2924,20 +3019,23 @@ export default class GoTrueClient {
2924
3019
  const body = {
2925
3020
  friendly_name: params.friendlyName,
2926
3021
  factor_type: params.factorType,
2927
- ...(params.factorType === 'phone' ? { phone: params.phone } : { issuer: params.issuer }),
3022
+ ...(params.factorType === 'phone'
3023
+ ? { phone: params.phone }
3024
+ : params.factorType === 'totp'
3025
+ ? { issuer: params.issuer }
3026
+ : {}),
2928
3027
  }
2929
3028
 
2930
- const { data, error } = await _request(this.fetch, 'POST', `${this.url}/factors`, {
3029
+ const { data, error } = (await _request(this.fetch, 'POST', `${this.url}/factors`, {
2931
3030
  body,
2932
3031
  headers: this.headers,
2933
3032
  jwt: sessionData?.session?.access_token,
2934
- })
2935
-
3033
+ })) as AuthMFAEnrollResponse
2936
3034
  if (error) {
2937
3035
  return { data: null, error }
2938
3036
  }
2939
3037
 
2940
- if (params.factorType === 'totp' && data?.totp?.qr_code) {
3038
+ if (params.factorType === 'totp' && data.type === 'totp' && data?.totp?.qr_code) {
2941
3039
  data.totp.qr_code = `data:image/svg+xml;utf-8,${data.totp.qr_code}`
2942
3040
  }
2943
3041
 
@@ -2954,6 +3052,11 @@ export default class GoTrueClient {
2954
3052
  /**
2955
3053
  * {@see GoTrueMFAApi#verify}
2956
3054
  */
3055
+ private async _verify(params: MFAVerifyTOTPParams): Promise<AuthMFAVerifyResponse>
3056
+ private async _verify(params: MFAVerifyPhoneParams): Promise<AuthMFAVerifyResponse>
3057
+ private async _verify<T extends 'create' | 'request'>(
3058
+ params: MFAVerifyWebauthnParams<T>
3059
+ ): Promise<AuthMFAVerifyResponse>
2957
3060
  private async _verify(params: MFAVerifyParams): Promise<AuthMFAVerifyResponse> {
2958
3061
  return this._acquireLock(-1, async () => {
2959
3062
  try {
@@ -2963,12 +3066,47 @@ export default class GoTrueClient {
2963
3066
  return { data: null, error: sessionError }
2964
3067
  }
2965
3068
 
3069
+ const body: StrictOmit<
3070
+ | Exclude<MFAVerifyParams, MFAVerifyWebauthnParams>
3071
+ /** Exclude out the webauthn params from here because we're going to need to serialize them in the response */
3072
+ | Prettify<
3073
+ StrictOmit<MFAVerifyWebauthnParams, 'webauthn'> & {
3074
+ webauthn: Prettify<
3075
+ StrictOmit<MFAVerifyWebauthnParamFields['webauthn'], 'credential_response'> & {
3076
+ credential_response: PublicKeyCredentialJSON
3077
+ }
3078
+ >
3079
+ }
3080
+ >,
3081
+ /* Exclude challengeId because the backend expects snake_case, and exclude factorId since it's passed in the path params */
3082
+ 'challengeId' | 'factorId'
3083
+ > & {
3084
+ challenge_id: string
3085
+ } = {
3086
+ challenge_id: params.challengeId,
3087
+ ...('webauthn' in params
3088
+ ? {
3089
+ webauthn: {
3090
+ ...params.webauthn,
3091
+ credential_response:
3092
+ params.webauthn.type === 'create'
3093
+ ? serializeCredentialCreationResponse(
3094
+ params.webauthn.credential_response as RegistrationCredential
3095
+ )
3096
+ : serializeCredentialRequestResponse(
3097
+ params.webauthn.credential_response as AuthenticationCredential
3098
+ ),
3099
+ },
3100
+ }
3101
+ : { code: params.code }),
3102
+ }
3103
+
2966
3104
  const { data, error } = await _request(
2967
3105
  this.fetch,
2968
3106
  'POST',
2969
3107
  `${this.url}/factors/${params.factorId}/verify`,
2970
3108
  {
2971
- body: { code: params.code, challenge_id: params.challengeId },
3109
+ body,
2972
3110
  headers: this.headers,
2973
3111
  jwt: sessionData?.session?.access_token,
2974
3112
  }
@@ -2997,6 +3135,15 @@ export default class GoTrueClient {
2997
3135
  /**
2998
3136
  * {@see GoTrueMFAApi#challenge}
2999
3137
  */
3138
+ private async _challenge(
3139
+ params: MFAChallengeTOTPParams
3140
+ ): Promise<Prettify<AuthMFAChallengeTOTPResponse>>
3141
+ private async _challenge(
3142
+ params: MFAChallengePhoneParams
3143
+ ): Promise<Prettify<AuthMFAChallengePhoneResponse>>
3144
+ private async _challenge(
3145
+ params: MFAChallengeWebauthnParams
3146
+ ): Promise<Prettify<AuthMFAChallengeWebauthnResponse>>
3000
3147
  private async _challenge(params: MFAChallengeParams): Promise<AuthMFAChallengeResponse> {
3001
3148
  return this._acquireLock(-1, async () => {
3002
3149
  try {
@@ -3006,16 +3153,64 @@ export default class GoTrueClient {
3006
3153
  return { data: null, error: sessionError }
3007
3154
  }
3008
3155
 
3009
- return await _request(
3156
+ const response = (await _request(
3010
3157
  this.fetch,
3011
3158
  'POST',
3012
3159
  `${this.url}/factors/${params.factorId}/challenge`,
3013
3160
  {
3014
- body: { channel: params.channel },
3161
+ body: params,
3015
3162
  headers: this.headers,
3016
3163
  jwt: sessionData?.session?.access_token,
3017
3164
  }
3018
- )
3165
+ )) as
3166
+ | Exclude<AuthMFAChallengeResponse, AuthMFAChallengeWebauthnResponse>
3167
+ /** The server will send `serialized` data, so we assert the serialized response */
3168
+ | AuthMFAChallengeWebauthnServerResponse
3169
+
3170
+ if (response.error) {
3171
+ return response
3172
+ }
3173
+
3174
+ const { data } = response
3175
+
3176
+ if (data.type !== 'webauthn') {
3177
+ return { data, error: null }
3178
+ }
3179
+
3180
+ switch (data.webauthn.type) {
3181
+ case 'create':
3182
+ return {
3183
+ data: {
3184
+ ...data,
3185
+ webauthn: {
3186
+ ...data.webauthn,
3187
+ credential_options: {
3188
+ ...data.webauthn.credential_options,
3189
+ publicKey: deserializeCredentialCreationOptions(
3190
+ data.webauthn.credential_options.publicKey
3191
+ ),
3192
+ },
3193
+ },
3194
+ },
3195
+ error: null,
3196
+ }
3197
+ case 'request':
3198
+ return {
3199
+ data: {
3200
+ ...data,
3201
+ webauthn: {
3202
+ ...data.webauthn,
3203
+ credential_options: {
3204
+ ...data.webauthn.credential_options,
3205
+ publicKey: deserializeCredentialRequestOptions(
3206
+ data.webauthn.credential_options.publicKey
3207
+ ),
3208
+ },
3209
+ },
3210
+ },
3211
+ error: null,
3212
+ }
3213
+ }
3019
3214
  })
3020
3215
  } catch (error) {
3021
3216
  if (isAuthError(error)) {
@@ -3062,20 +3257,23 @@ export default class GoTrueClient {
3062
3257
  return { data: null, error: userError }
3063
3258
  }
3064
3259
 
3065
- const factors = user?.factors || []
3066
- const totp = factors.filter(
3067
- (factor) => factor.factor_type === 'totp' && factor.status === 'verified'
3068
- )
3069
- const phone = factors.filter(
3070
- (factor) => factor.factor_type === 'phone' && factor.status === 'verified'
3071
- )
3260
+ const data: AuthMFAListFactorsResponse['data'] = {
3261
+ all: [],
3262
+ phone: [],
3263
+ totp: [],
3264
+ webauthn: [],
3265
+ }
3266
+
3267
+ // loop over the factors ONCE
3268
+ for (const factor of user?.factors ?? []) {
3269
+ data.all.push(factor)
3270
+ if (factor.status === 'verified') {
3271
+ ;(data[factor.factor_type] as (typeof factor)[]).push(factor)
3272
+ }
3273
+ }
3072
3274
 
3073
3275
  return {
3074
- data: {
3075
- all: factors,
3076
- totp,
3077
- phone,
3078
- },
3276
+ data,
3079
3277
  error: null,
3080
3278
  }
3081
3279
  }