@supabase/auth-js 2.73.0-rc.3 → 2.79.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 (108) hide show
  1. package/README.md +96 -4
  2. package/dist/main/GoTrueAdminApi.js.map +1 -1
  3. package/dist/main/GoTrueClient.d.ts +21 -2
  4. package/dist/main/GoTrueClient.d.ts.map +1 -1
  5. package/dist/main/GoTrueClient.js +61 -37
  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.map +1 -1
  14. package/dist/main/lib/errors.js +7 -7
  15. package/dist/main/lib/errors.js.map +1 -1
  16. package/dist/main/lib/fetch.d.ts +2 -2
  17. package/dist/main/lib/fetch.d.ts.map +1 -1
  18. package/dist/main/lib/fetch.js +8 -9
  19. package/dist/main/lib/fetch.js.map +1 -1
  20. package/dist/main/lib/helpers.d.ts +3 -2
  21. package/dist/main/lib/helpers.d.ts.map +1 -1
  22. package/dist/main/lib/helpers.js +34 -24
  23. package/dist/main/lib/helpers.js.map +1 -1
  24. package/dist/main/lib/local-storage.js +1 -2
  25. package/dist/main/lib/local-storage.js.map +1 -1
  26. package/dist/main/lib/locks.js +3 -3
  27. package/dist/main/lib/locks.js.map +1 -1
  28. package/dist/main/lib/polyfills.js +1 -2
  29. package/dist/main/lib/polyfills.js.map +1 -1
  30. package/dist/main/lib/types.d.ts +233 -112
  31. package/dist/main/lib/types.d.ts.map +1 -1
  32. package/dist/main/lib/types.js +3 -2
  33. package/dist/main/lib/types.js.map +1 -1
  34. package/dist/main/lib/version.d.ts +1 -1
  35. package/dist/main/lib/version.d.ts.map +1 -1
  36. package/dist/main/lib/version.js +7 -1
  37. package/dist/main/lib/version.js.map +1 -1
  38. package/dist/main/lib/web3/ethereum.d.ts +9 -9
  39. package/dist/main/lib/web3/ethereum.d.ts.map +1 -1
  40. package/dist/main/lib/web3/ethereum.js +4 -5
  41. package/dist/main/lib/web3/ethereum.js.map +1 -1
  42. package/dist/main/lib/web3/solana.d.ts +4 -4
  43. package/dist/main/lib/web3/solana.d.ts.map +1 -1
  44. package/dist/main/lib/webauthn.d.ts +274 -0
  45. package/dist/main/lib/webauthn.d.ts.map +1 -0
  46. package/dist/main/lib/webauthn.dom.d.ts +583 -0
  47. package/dist/main/lib/webauthn.dom.d.ts.map +1 -0
  48. package/dist/main/lib/webauthn.dom.js +4 -0
  49. package/dist/main/lib/webauthn.dom.js.map +1 -0
  50. package/dist/main/lib/webauthn.errors.d.ts +80 -0
  51. package/dist/main/lib/webauthn.errors.d.ts.map +1 -0
  52. package/dist/main/lib/webauthn.errors.js +265 -0
  53. package/dist/main/lib/webauthn.errors.js.map +1 -0
  54. package/dist/main/lib/webauthn.js +702 -0
  55. package/dist/main/lib/webauthn.js.map +1 -0
  56. package/dist/module/GoTrueAdminApi.js.map +1 -1
  57. package/dist/module/GoTrueClient.d.ts +21 -2
  58. package/dist/module/GoTrueClient.d.ts.map +1 -1
  59. package/dist/module/GoTrueClient.js +68 -43
  60. package/dist/module/GoTrueClient.js.map +1 -1
  61. package/dist/module/lib/base64url.d.ts +3 -2
  62. package/dist/module/lib/base64url.d.ts.map +1 -1
  63. package/dist/module/lib/base64url.js.map +1 -1
  64. package/dist/module/lib/error-codes.d.ts +1 -1
  65. package/dist/module/lib/error-codes.d.ts.map +1 -1
  66. package/dist/module/lib/errors.d.ts.map +1 -1
  67. package/dist/module/lib/fetch.d.ts +2 -2
  68. package/dist/module/lib/fetch.d.ts.map +1 -1
  69. package/dist/module/lib/fetch.js.map +1 -1
  70. package/dist/module/lib/helpers.d.ts +3 -2
  71. package/dist/module/lib/helpers.d.ts.map +1 -1
  72. package/dist/module/lib/helpers.js.map +1 -1
  73. package/dist/module/lib/locks.js.map +1 -1
  74. package/dist/module/lib/polyfills.js.map +1 -1
  75. package/dist/module/lib/types.d.ts +233 -112
  76. package/dist/module/lib/types.d.ts.map +1 -1
  77. package/dist/module/lib/types.js +2 -1
  78. package/dist/module/lib/types.js.map +1 -1
  79. package/dist/module/lib/version.d.ts +1 -1
  80. package/dist/module/lib/version.d.ts.map +1 -1
  81. package/dist/module/lib/version.js +7 -1
  82. package/dist/module/lib/version.js.map +1 -1
  83. package/dist/module/lib/web3/ethereum.d.ts +9 -9
  84. package/dist/module/lib/web3/ethereum.d.ts.map +1 -1
  85. package/dist/module/lib/web3/ethereum.js.map +1 -1
  86. package/dist/module/lib/web3/solana.d.ts +4 -4
  87. package/dist/module/lib/web3/solana.d.ts.map +1 -1
  88. package/dist/module/lib/webauthn.d.ts +274 -0
  89. package/dist/module/lib/webauthn.d.ts.map +1 -0
  90. package/dist/module/lib/webauthn.dom.d.ts +583 -0
  91. package/dist/module/lib/webauthn.dom.d.ts.map +1 -0
  92. package/dist/module/lib/webauthn.dom.js +3 -0
  93. package/dist/module/lib/webauthn.dom.js.map +1 -0
  94. package/dist/module/lib/webauthn.errors.d.ts +80 -0
  95. package/dist/module/lib/webauthn.errors.d.ts.map +1 -0
  96. package/dist/module/lib/webauthn.errors.js +257 -0
  97. package/dist/module/lib/webauthn.errors.js.map +1 -0
  98. package/dist/module/lib/webauthn.js +685 -0
  99. package/dist/module/lib/webauthn.js.map +1 -0
  100. package/package.json +13 -34
  101. package/src/GoTrueClient.ts +218 -69
  102. package/src/lib/base64url.ts +4 -2
  103. package/src/lib/helpers.ts +2 -1
  104. package/src/lib/types.ts +212 -33
  105. package/src/lib/version.ts +7 -1
  106. package/src/lib/webauthn.dom.ts +636 -0
  107. package/src/lib/webauthn.errors.ts +317 -0
  108. 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.73.0-rc.3",
3
+ "version": "2.79.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/supabase-js/tree/master/packages/core/auth-js",
13
+ "bugs": "https://github.com/supabase/supabase-js/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/supabase-js.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,34 +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-environment-jsdom": "^28.1.3",
60
- "jest-mock-server": "^0.1.0",
61
- "jsonwebtoken": "^9.0.0",
62
- "npm-run-all": "^4.1.5",
63
- "prettier": "2.7.1",
64
- "rimraf": "^3.0.2",
65
- "semantic-release-plugin-update-version-in-files": "^1.1.0",
66
- "ts-jest": "^28.0.7",
67
- "typedoc": "^0.23.28",
68
- "typescript": "^4.7.4"
47
+ "ts-jest": "^28.0.7"
69
48
  }
70
49
  }
@@ -1,130 +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 {
58
+ import { bytesToBase64URL, stringToUint8Array } from './lib/base64url'
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
- FactorType,
117
- FactorTypes,
118
132
  } from './lib/types'
119
- import { stringToUint8Array, bytesToBase64URL } from './lib/base64url'
120
133
  import {
134
+ createSiweMessage,
121
135
  fromHex,
122
136
  getAddress,
123
137
  Hex,
124
- toHex,
125
- createSiweMessage,
126
138
  SiweMessage,
139
+ toHex,
127
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'
128
153
 
129
154
  polyfillGlobalThis() // Make "globalThis" available
130
155
 
@@ -294,6 +319,7 @@ export default class GoTrueClient {
294
319
  listFactors: this._listFactors.bind(this),
295
320
  challengeAndVerify: this._challengeAndVerify.bind(this),
296
321
  getAuthenticatorAssuranceLevel: this._getAuthenticatorAssuranceLevel.bind(this),
322
+ webauthn: new WebAuthnApi(this),
297
323
  }
298
324
 
299
325
  if (this.persistSession) {
@@ -2052,8 +2078,30 @@ export default class GoTrueClient {
2052
2078
 
2053
2079
  /**
2054
2080
  * Receive a notification every time an auth event happens.
2081
+ * Safe to use without an async function as callback.
2082
+ *
2055
2083
  * @param callback A callback function to be invoked when an auth event happens.
2056
2084
  */
2085
+ onAuthStateChange(callback: (event: AuthChangeEvent, session: Session | null) => void): {
2086
+ data: { subscription: Subscription }
2087
+ }
2088
+
2089
+ /**
2090
+ * Avoid using an async function inside `onAuthStateChange` as you might end
2091
+ * up with a deadlock. The callback function runs inside an exclusive lock,
2092
+ * so calling other Supabase Client APIs that also try to acquire the
2093
+ * exclusive lock, might cause a deadlock. This behavior is observable across
2094
+ * tabs. In the next major library version, this behavior will not be supported.
2095
+ *
2096
+ * Receive a notification every time an auth event happens.
2097
+ *
2098
+ * @param callback A callback function to be invoked when an auth event happens.
2099
+ * @deprecated Due to the possibility of deadlocks with async functions as callbacks, use the version without an async function.
2100
+ */
2101
+ onAuthStateChange(callback: (event: AuthChangeEvent, session: Session | null) => Promise<void>): {
2102
+ data: { subscription: Subscription }
2103
+ }
2104
+
2057
2105
  onAuthStateChange(
2058
2106
  callback: (event: AuthChangeEvent, session: Session | null) => void | Promise<void>
2059
2107
  ): {
@@ -2981,6 +3029,7 @@ export default class GoTrueClient {
2981
3029
  */
2982
3030
  private async _enroll(params: MFAEnrollTOTPParams): Promise<AuthMFAEnrollTOTPResponse>
2983
3031
  private async _enroll(params: MFAEnrollPhoneParams): Promise<AuthMFAEnrollPhoneResponse>
3032
+ private async _enroll(params: MFAEnrollWebauthnParams): Promise<AuthMFAEnrollWebauthnResponse>
2984
3033
  private async _enroll(params: MFAEnrollParams): Promise<AuthMFAEnrollResponse> {
2985
3034
  try {
2986
3035
  return await this._useSession(async (result) => {
@@ -2992,20 +3041,23 @@ export default class GoTrueClient {
2992
3041
  const body = {
2993
3042
  friendly_name: params.friendlyName,
2994
3043
  factor_type: params.factorType,
2995
- ...(params.factorType === 'phone' ? { phone: params.phone } : { issuer: params.issuer }),
3044
+ ...(params.factorType === 'phone'
3045
+ ? { phone: params.phone }
3046
+ : params.factorType === 'totp'
3047
+ ? { issuer: params.issuer }
3048
+ : {}),
2996
3049
  }
2997
3050
 
2998
- const { data, error } = await _request(this.fetch, 'POST', `${this.url}/factors`, {
3051
+ const { data, error } = (await _request(this.fetch, 'POST', `${this.url}/factors`, {
2999
3052
  body,
3000
3053
  headers: this.headers,
3001
3054
  jwt: sessionData?.session?.access_token,
3002
- })
3003
-
3055
+ })) as AuthMFAEnrollResponse
3004
3056
  if (error) {
3005
3057
  return { data: null, error }
3006
3058
  }
3007
3059
 
3008
- if (params.factorType === 'totp' && data?.totp?.qr_code) {
3060
+ if (params.factorType === 'totp' && data.type === 'totp' && data?.totp?.qr_code) {
3009
3061
  data.totp.qr_code = `data:image/svg+xml;utf-8,${data.totp.qr_code}`
3010
3062
  }
3011
3063
 
@@ -3022,6 +3074,11 @@ export default class GoTrueClient {
3022
3074
  /**
3023
3075
  * {@see GoTrueMFAApi#verify}
3024
3076
  */
3077
+ private async _verify(params: MFAVerifyTOTPParams): Promise<AuthMFAVerifyResponse>
3078
+ private async _verify(params: MFAVerifyPhoneParams): Promise<AuthMFAVerifyResponse>
3079
+ private async _verify<T extends 'create' | 'request'>(
3080
+ params: MFAVerifyWebauthnParams<T>
3081
+ ): Promise<AuthMFAVerifyResponse>
3025
3082
  private async _verify(params: MFAVerifyParams): Promise<AuthMFAVerifyResponse> {
3026
3083
  return this._acquireLock(-1, async () => {
3027
3084
  try {
@@ -3031,12 +3088,47 @@ export default class GoTrueClient {
3031
3088
  return { data: null, error: sessionError }
3032
3089
  }
3033
3090
 
3091
+ const body: StrictOmit<
3092
+ | Exclude<MFAVerifyParams, MFAVerifyWebauthnParams>
3093
+ /** Exclude out the webauthn params from here because we're going to need to serialize them in the response */
3094
+ | Prettify<
3095
+ StrictOmit<MFAVerifyWebauthnParams, 'webauthn'> & {
3096
+ webauthn: Prettify<
3097
+ StrictOmit<MFAVerifyWebauthnParamFields['webauthn'], 'credential_response'> & {
3098
+ credential_response: PublicKeyCredentialJSON
3099
+ }
3100
+ >
3101
+ }
3102
+ >,
3103
+ /* Exclude challengeId because the backend expects snake_case, and exclude factorId since it's passed in the path params */
3104
+ 'challengeId' | 'factorId'
3105
+ > & {
3106
+ challenge_id: string
3107
+ } = {
3108
+ challenge_id: params.challengeId,
3109
+ ...('webauthn' in params
3110
+ ? {
3111
+ webauthn: {
3112
+ ...params.webauthn,
3113
+ credential_response:
3114
+ params.webauthn.type === 'create'
3115
+ ? serializeCredentialCreationResponse(
3116
+ params.webauthn.credential_response as RegistrationCredential
3117
+ )
3118
+ : serializeCredentialRequestResponse(
3119
+ params.webauthn.credential_response as AuthenticationCredential
3120
+ ),
3121
+ },
3122
+ }
3123
+ : { code: params.code }),
3124
+ }
3125
+
3034
3126
  const { data, error } = await _request(
3035
3127
  this.fetch,
3036
3128
  'POST',
3037
3129
  `${this.url}/factors/${params.factorId}/verify`,
3038
3130
  {
3039
- body: { code: params.code, challenge_id: params.challengeId },
3131
+ body,
3040
3132
  headers: this.headers,
3041
3133
  jwt: sessionData?.session?.access_token,
3042
3134
  }
@@ -3065,9 +3157,16 @@ export default class GoTrueClient {
3065
3157
  /**
3066
3158
  * {@see GoTrueMFAApi#challenge}
3067
3159
  */
3068
- private async _challenge<T extends FactorType>(
3069
- params: MFAChallengeParams
3070
- ): Promise<AuthMFAChallengeResponse<T>> {
3160
+ private async _challenge(
3161
+ params: MFAChallengeTOTPParams
3162
+ ): Promise<Prettify<AuthMFAChallengeTOTPResponse>>
3163
+ private async _challenge(
3164
+ params: MFAChallengePhoneParams
3165
+ ): Promise<Prettify<AuthMFAChallengePhoneResponse>>
3166
+ private async _challenge(
3167
+ params: MFAChallengeWebauthnParams
3168
+ ): Promise<Prettify<AuthMFAChallengeWebauthnResponse>>
3169
+ private async _challenge(params: MFAChallengeParams): Promise<AuthMFAChallengeResponse> {
3071
3170
  return this._acquireLock(-1, async () => {
3072
3171
  try {
3073
3172
  return await this._useSession(async (result) => {
@@ -3076,16 +3175,64 @@ export default class GoTrueClient {
3076
3175
  return { data: null, error: sessionError }
3077
3176
  }
3078
3177
 
3079
- return await _request(
3178
+ const response = (await _request(
3080
3179
  this.fetch,
3081
3180
  'POST',
3082
3181
  `${this.url}/factors/${params.factorId}/challenge`,
3083
3182
  {
3084
- body: 'channel' in params ? { channel: params.channel } : {},
3183
+ body: params,
3085
3184
  headers: this.headers,
3086
3185
  jwt: sessionData?.session?.access_token,
3087
3186
  }
3088
- )
3187
+ )) as
3188
+ | Exclude<AuthMFAChallengeResponse, AuthMFAChallengeWebauthnResponse>
3189
+ /** The server will send `serialized` data, so we assert the serialized response */
3190
+ | AuthMFAChallengeWebauthnServerResponse
3191
+
3192
+ if (response.error) {
3193
+ return response
3194
+ }
3195
+
3196
+ const { data } = response
3197
+
3198
+ if (data.type !== 'webauthn') {
3199
+ return { data, error: null }
3200
+ }
3201
+
3202
+ switch (data.webauthn.type) {
3203
+ case 'create':
3204
+ return {
3205
+ data: {
3206
+ ...data,
3207
+ webauthn: {
3208
+ ...data.webauthn,
3209
+ credential_options: {
3210
+ ...data.webauthn.credential_options,
3211
+ publicKey: deserializeCredentialCreationOptions(
3212
+ data.webauthn.credential_options.publicKey
3213
+ ),
3214
+ },
3215
+ },
3216
+ },
3217
+ error: null,
3218
+ }
3219
+ case 'request':
3220
+ return {
3221
+ data: {
3222
+ ...data,
3223
+ webauthn: {
3224
+ ...data.webauthn,
3225
+ credential_options: {
3226
+ ...data.webauthn.credential_options,
3227
+ publicKey: deserializeCredentialRequestOptions(
3228
+ data.webauthn.credential_options.publicKey
3229
+ ),
3230
+ },
3231
+ },
3232
+ },
3233
+ error: null,
3234
+ }
3235
+ }
3089
3236
  })
3090
3237
  } catch (error) {
3091
3238
  if (isAuthError(error)) {
@@ -3136,12 +3283,14 @@ export default class GoTrueClient {
3136
3283
  all: [],
3137
3284
  phone: [],
3138
3285
  totp: [],
3286
+ webauthn: [],
3139
3287
  }
3140
3288
 
3289
+ // loop over the factors ONCE
3141
3290
  for (const factor of user?.factors ?? []) {
3142
3291
  data.all.push(factor)
3143
3292
  if (factor.status === 'verified') {
3144
- ;(data[factor.factor_type] as typeof factor[]).push(factor)
3293
+ ;(data[factor.factor_type] as (typeof factor)[]).push(factor)
3145
3294
  }
3146
3295
  }
3147
3296
 
@@ -4,6 +4,8 @@
4
4
  * that repo!
5
5
  */
6
6
 
7
+ import { Uint8Array_ } from './webauthn.dom'
8
+
7
9
  /**
8
10
  * An array of characters that encode 6 bits into a Base64-URL alphabet
9
11
  * character.
@@ -268,7 +270,7 @@ export function stringFromUTF8(
268
270
  * Helper functions to convert different types of strings to Uint8Array
269
271
  */
270
272
 
271
- export function base64UrlToUint8Array(str: string): Uint8Array {
273
+ export function base64UrlToUint8Array(str: string): Uint8Array_ {
272
274
  const result: number[] = []
273
275
  const state = { queue: 0, queuedBits: 0 }
274
276
 
@@ -283,7 +285,7 @@ export function base64UrlToUint8Array(str: string): Uint8Array {
283
285
  return new Uint8Array(result)
284
286
  }
285
287
 
286
- export function stringToUint8Array(str: string): Uint8Array {
288
+ export function stringToUint8Array(str: string): Uint8Array_ {
287
289
  const result: number[] = []
288
290
  stringToUTF8(str, (byte: number) => result.push(byte))
289
291
  return new Uint8Array(result)
@@ -2,6 +2,7 @@ import { API_VERSION_HEADER_NAME, BASE64URL_REGEX } from './constants'
2
2
  import { AuthInvalidJwtError } from './errors'
3
3
  import { base64UrlToUint8Array, stringFromBase64URL } from './base64url'
4
4
  import { JwtHeader, JwtPayload, SupportedStorage, User } from './types'
5
+ import { Uint8Array_ } from './webauthn.dom'
5
6
 
6
7
  export function expiresAt(expiresIn: number) {
7
8
  const timeNow = Math.round(Date.now() / 1000)
@@ -171,7 +172,7 @@ export class Deferred<T = any> {
171
172
  export function decodeJWT(token: string): {
172
173
  header: JwtHeader
173
174
  payload: JwtPayload
174
- signature: Uint8Array
175
+ signature: Uint8Array_
175
176
  raw: {
176
177
  header: string
177
178
  payload: string