@supabase/gotrue-js 2.73.0-rc.3 → 2.80.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 +95 -3
  2. package/dist/main/GoTrueAdminApi.js.map +1 -1
  3. package/dist/main/GoTrueClient.d.ts +1 -1
  4. package/dist/main/GoTrueClient.d.ts.map +1 -1
  5. package/dist/main/GoTrueClient.js +61 -33
  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 +1 -1
  58. package/dist/module/GoTrueClient.d.ts.map +1 -1
  59. package/dist/module/GoTrueClient.js +68 -39
  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 +196 -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/gotrue-js",
3
- "version": "2.73.0-rc.3",
3
+ "version": "2.80.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,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) {
@@ -2981,6 +3007,7 @@ export default class GoTrueClient {
2981
3007
  */
2982
3008
  private async _enroll(params: MFAEnrollTOTPParams): Promise<AuthMFAEnrollTOTPResponse>
2983
3009
  private async _enroll(params: MFAEnrollPhoneParams): Promise<AuthMFAEnrollPhoneResponse>
3010
+ private async _enroll(params: MFAEnrollWebauthnParams): Promise<AuthMFAEnrollWebauthnResponse>
2984
3011
  private async _enroll(params: MFAEnrollParams): Promise<AuthMFAEnrollResponse> {
2985
3012
  try {
2986
3013
  return await this._useSession(async (result) => {
@@ -2992,20 +3019,23 @@ export default class GoTrueClient {
2992
3019
  const body = {
2993
3020
  friendly_name: params.friendlyName,
2994
3021
  factor_type: params.factorType,
2995
- ...(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
+ : {}),
2996
3027
  }
2997
3028
 
2998
- const { data, error } = await _request(this.fetch, 'POST', `${this.url}/factors`, {
3029
+ const { data, error } = (await _request(this.fetch, 'POST', `${this.url}/factors`, {
2999
3030
  body,
3000
3031
  headers: this.headers,
3001
3032
  jwt: sessionData?.session?.access_token,
3002
- })
3003
-
3033
+ })) as AuthMFAEnrollResponse
3004
3034
  if (error) {
3005
3035
  return { data: null, error }
3006
3036
  }
3007
3037
 
3008
- if (params.factorType === 'totp' && data?.totp?.qr_code) {
3038
+ if (params.factorType === 'totp' && data.type === 'totp' && data?.totp?.qr_code) {
3009
3039
  data.totp.qr_code = `data:image/svg+xml;utf-8,${data.totp.qr_code}`
3010
3040
  }
3011
3041
 
@@ -3022,6 +3052,11 @@ export default class GoTrueClient {
3022
3052
  /**
3023
3053
  * {@see GoTrueMFAApi#verify}
3024
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>
3025
3060
  private async _verify(params: MFAVerifyParams): Promise<AuthMFAVerifyResponse> {
3026
3061
  return this._acquireLock(-1, async () => {
3027
3062
  try {
@@ -3031,12 +3066,47 @@ export default class GoTrueClient {
3031
3066
  return { data: null, error: sessionError }
3032
3067
  }
3033
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
+
3034
3104
  const { data, error } = await _request(
3035
3105
  this.fetch,
3036
3106
  'POST',
3037
3107
  `${this.url}/factors/${params.factorId}/verify`,
3038
3108
  {
3039
- body: { code: params.code, challenge_id: params.challengeId },
3109
+ body,
3040
3110
  headers: this.headers,
3041
3111
  jwt: sessionData?.session?.access_token,
3042
3112
  }
@@ -3065,9 +3135,16 @@ export default class GoTrueClient {
3065
3135
  /**
3066
3136
  * {@see GoTrueMFAApi#challenge}
3067
3137
  */
3068
- private async _challenge<T extends FactorType>(
3069
- params: MFAChallengeParams
3070
- ): Promise<AuthMFAChallengeResponse<T>> {
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>>
3147
+ private async _challenge(params: MFAChallengeParams): Promise<AuthMFAChallengeResponse> {
3071
3148
  return this._acquireLock(-1, async () => {
3072
3149
  try {
3073
3150
  return await this._useSession(async (result) => {
@@ -3076,16 +3153,64 @@ export default class GoTrueClient {
3076
3153
  return { data: null, error: sessionError }
3077
3154
  }
3078
3155
 
3079
- return await _request(
3156
+ const response = (await _request(
3080
3157
  this.fetch,
3081
3158
  'POST',
3082
3159
  `${this.url}/factors/${params.factorId}/challenge`,
3083
3160
  {
3084
- body: 'channel' in params ? { channel: params.channel } : {},
3161
+ body: params,
3085
3162
  headers: this.headers,
3086
3163
  jwt: sessionData?.session?.access_token,
3087
3164
  }
3088
- )
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
+ }
3089
3214
  })
3090
3215
  } catch (error) {
3091
3216
  if (isAuthError(error)) {
@@ -3136,12 +3261,14 @@ export default class GoTrueClient {
3136
3261
  all: [],
3137
3262
  phone: [],
3138
3263
  totp: [],
3264
+ webauthn: [],
3139
3265
  }
3140
3266
 
3267
+ // loop over the factors ONCE
3141
3268
  for (const factor of user?.factors ?? []) {
3142
3269
  data.all.push(factor)
3143
3270
  if (factor.status === 'verified') {
3144
- ;(data[factor.factor_type] as typeof factor[]).push(factor)
3271
+ ;(data[factor.factor_type] as (typeof factor)[]).push(factor)
3145
3272
  }
3146
3273
  }
3147
3274
 
@@ -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