@supabase/gotrue-js 2.100.0 → 2.100.1

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.
@@ -996,6 +996,77 @@ export interface GoTrueMFAApi {
996
996
  * The user has to enter the code from their authenticator app to verify it.
997
997
  *
998
998
  * Upon verifying a factor, all other sessions are logged out and the current session's authenticator level is promoted to `aal2`.
999
+ *
1000
+ * @category Auth
1001
+ *
1002
+ * @remarks
1003
+ * - Use `totp` or `phone` as the `factorType` and use the returned `id` to create a challenge.
1004
+ * - To create a challenge, see [`mfa.challenge()`](/docs/reference/javascript/auth-mfa-challenge).
1005
+ * - To verify a challenge, see [`mfa.verify()`](/docs/reference/javascript/auth-mfa-verify).
1006
+ * - To create and verify a TOTP challenge in a single step, see [`mfa.challengeAndVerify()`](/docs/reference/javascript/auth-mfa-challengeandverify).
1007
+ * - To generate a QR code for the `totp` secret in Next.js, you can do the following:
1008
+ * ```html
1009
+ * <Image src={data.totp.qr_code} alt={data.totp.uri} layout="fill"></Image>
1010
+ * ```
1011
+ * - The `challenge` and `verify` steps are separated when using Phone factors as the user will need time to receive and input the code obtained from the SMS in challenge.
1012
+ *
1013
+ * @example Enroll a time-based, one-time password (TOTP) factor
1014
+ * ```js
1015
+ * const { data, error } = await supabase.auth.mfa.enroll({
1016
+ * factorType: 'totp',
1017
+ * friendlyName: 'your_friendly_name'
1018
+ * })
1019
+ *
1020
+ * // Use the id to create a challenge.
1021
+ * // The challenge can be verified by entering the code generated from the authenticator app.
1022
+ * // The code will be generated upon scanning the qr_code or entering the secret into the authenticator app.
1023
+ * const { id, type, totp: { qr_code, secret, uri }, friendly_name } = data
1024
+ * const challenge = await supabase.auth.mfa.challenge({ factorId: id });
1025
+ * ```
1026
+ *
1027
+ * @exampleResponse Enroll a time-based, one-time password (TOTP) factor
1028
+ * ```json
1029
+ * {
1030
+ * data: {
1031
+ * id: '<ID>',
1032
+ * type: 'totp'
1033
+ * totp: {
1034
+ * qr_code: '<QR_CODE_AS_SVG_DATA>',
1035
+ * secret: '<SECRET>',
1036
+ * uri: '<URI>',
1037
+ * }
1038
+ * friendly_name?: 'Important app'
1039
+ * },
1040
+ * error: null
1041
+ * }
1042
+ * ```
1043
+ *
1044
+ * @example Enroll a Phone Factor
1045
+ * ```js
1046
+ * const { data, error } = await supabase.auth.mfa.enroll({
1047
+ * factorType: 'phone',
1048
+ * friendlyName: 'your_friendly_name',
1049
+ * phone: '+12345678',
1050
+ * })
1051
+ *
1052
+ * // Use the id to create a challenge and send an SMS with a code to the user.
1053
+ * const { id, type, friendly_name, phone } = data
1054
+ *
1055
+ * const challenge = await supabase.auth.mfa.challenge({ factorId: id });
1056
+ * ```
1057
+ *
1058
+ * @exampleResponse Enroll a Phone Factor
1059
+ * ```json
1060
+ * {
1061
+ * data: {
1062
+ * id: '<ID>',
1063
+ * type: 'phone',
1064
+ * friendly_name?: 'Important app',
1065
+ * phone: '+5787123456'
1066
+ * },
1067
+ * error: null
1068
+ * }
1069
+ * ```
999
1070
  */
1000
1071
  enroll(params: MFAEnrollTOTPParams): Promise<AuthMFAEnrollTOTPResponse>;
1001
1072
  enroll(params: MFAEnrollPhoneParams): Promise<AuthMFAEnrollPhoneResponse>;
@@ -1004,6 +1075,70 @@ export interface GoTrueMFAApi {
1004
1075
  /**
1005
1076
  * Prepares a challenge used to verify that a user has access to a MFA
1006
1077
  * factor.
1078
+ *
1079
+ * @category Auth
1080
+ *
1081
+ * @remarks
1082
+ * - An [enrolled factor](/docs/reference/javascript/auth-mfa-enroll) is required before creating a challenge.
1083
+ * - To verify a challenge, see [`mfa.verify()`](/docs/reference/javascript/auth-mfa-verify).
1084
+ * - A phone factor sends a code to the user upon challenge. The channel defaults to `sms` unless otherwise specified.
1085
+ *
1086
+ * @example Create a challenge for a factor
1087
+ * ```js
1088
+ * const { data, error } = await supabase.auth.mfa.challenge({
1089
+ * factorId: '34e770dd-9ff9-416c-87fa-43b31d7ef225'
1090
+ * })
1091
+ * ```
1092
+ *
1093
+ * @exampleResponse Create a challenge for a factor
1094
+ * ```json
1095
+ * {
1096
+ * data: {
1097
+ * id: '<ID>',
1098
+ * type: 'totp',
1099
+ * expires_at: 1700000000
1100
+ * },
1101
+ * error: null
1102
+ * }
1103
+ * ```
1104
+ *
1105
+ * @example Create a challenge for a phone factor
1106
+ * ```js
1107
+ * const { data, error } = await supabase.auth.mfa.challenge({
1108
+ * factorId: '34e770dd-9ff9-416c-87fa-43b31d7ef225',
1109
+ * })
1110
+ * ```
1111
+ *
1112
+ * @exampleResponse Create a challenge for a phone factor
1113
+ * ```json
1114
+ * {
1115
+ * data: {
1116
+ * id: '<ID>',
1117
+ * type: 'phone',
1118
+ * expires_at: 1700000000
1119
+ * },
1120
+ * error: null
1121
+ * }
1122
+ * ```
1123
+ *
1124
+ * @example Create a challenge for a phone factor (WhatsApp)
1125
+ * ```js
1126
+ * const { data, error } = await supabase.auth.mfa.challenge({
1127
+ * factorId: '34e770dd-9ff9-416c-87fa-43b31d7ef225',
1128
+ * channel: 'whatsapp',
1129
+ * })
1130
+ * ```
1131
+ *
1132
+ * @exampleResponse Create a challenge for a phone factor (WhatsApp)
1133
+ * ```json
1134
+ * {
1135
+ * data: {
1136
+ * id: '<ID>',
1137
+ * expires_at: 1700000000
1138
+ * },
1139
+ * error: null
1140
+ * }
1141
+ * ```
1007
1142
  */
1008
1143
  challenge(params: MFAChallengeTOTPParams): Promise<Prettify<AuthMFAChallengeTOTPResponse>>;
1009
1144
  challenge(params: MFAChallengePhoneParams): Promise<Prettify<AuthMFAChallengePhoneResponse>>;
@@ -1012,6 +1147,80 @@ export interface GoTrueMFAApi {
1012
1147
  /**
1013
1148
  * Verifies a code against a challenge. The verification code is
1014
1149
  * provided by the user by entering a code seen in their authenticator app.
1150
+ *
1151
+ * @category Auth
1152
+ *
1153
+ * @remarks
1154
+ * - To verify a challenge, please [create a challenge](/docs/reference/javascript/auth-mfa-challenge) first.
1155
+ *
1156
+ * @example Verify a challenge for a factor
1157
+ * ```js
1158
+ * const { data, error } = await supabase.auth.mfa.verify({
1159
+ * factorId: '34e770dd-9ff9-416c-87fa-43b31d7ef225',
1160
+ * challengeId: '4034ae6f-a8ce-4fb5-8ee5-69a5863a7c15',
1161
+ * code: '123456'
1162
+ * })
1163
+ * ```
1164
+ *
1165
+ * @exampleResponse Verify a challenge for a factor
1166
+ * ```json
1167
+ * {
1168
+ * data: {
1169
+ * access_token: '<ACCESS_TOKEN>',
1170
+ * token_type: 'Bearer',
1171
+ * expires_in: 3600,
1172
+ * refresh_token: '<REFRESH_TOKEN>',
1173
+ * user: {
1174
+ * id: '11111111-1111-1111-1111-111111111111',
1175
+ * aud: 'authenticated',
1176
+ * role: 'authenticated',
1177
+ * email: 'example@email.com',
1178
+ * email_confirmed_at: '2024-01-01T00:00:00Z',
1179
+ * phone: '',
1180
+ * confirmation_sent_at: '2024-01-01T00:00:00Z',
1181
+ * confirmed_at: '2024-01-01T00:00:00Z',
1182
+ * last_sign_in_at: '2024-01-01T00:00:00Z',
1183
+ * app_metadata: {
1184
+ * provider: 'email',
1185
+ * providers: [
1186
+ * "email",
1187
+ * ]
1188
+ * },
1189
+ * user_metadata: {},
1190
+ * identities: [
1191
+ * {
1192
+ * "identity_id": "22222222-2222-2222-2222-222222222222",
1193
+ * "id": "11111111-1111-1111-1111-111111111111",
1194
+ * "user_id": "11111111-1111-1111-1111-111111111111",
1195
+ * "identity_data": {
1196
+ * "email": "example@email.com",
1197
+ * "email_verified": true,
1198
+ * "phone_verified": false,
1199
+ * "sub": "11111111-1111-1111-1111-111111111111"
1200
+ * },
1201
+ * "provider": "email",
1202
+ * "last_sign_in_at": "2024-01-01T00:00:00Z",
1203
+ * "created_at": "2024-01-01T00:00:00Z",
1204
+ * "updated_at": "2024-01-01T00:00:00Z",
1205
+ * "email": "email@example.com"
1206
+ * },
1207
+ * ],
1208
+ * created_at: '2024-01-01T00:00:00Z',
1209
+ * updated_at: '2024-01-01T00:00:00Z',
1210
+ * is_anonymous: false,
1211
+ * factors: [
1212
+ * "id": '<ID>',
1213
+ * "friendly_name": 'Important Auth App',
1214
+ * "factor_type": 'totp',
1215
+ * "status": 'verified',
1216
+ * "created_at": "2024-01-01T00:00:00Z",
1217
+ * "updated_at": "2024-01-01T00:00:00Z"
1218
+ * ]
1219
+ * }
1220
+ * }
1221
+ * error: null
1222
+ * }
1223
+ * ```
1015
1224
  */
1016
1225
  verify(params: MFAVerifyTOTPParams): Promise<AuthMFAVerifyResponse>;
1017
1226
  verify(params: MFAVerifyPhoneParams): Promise<AuthMFAVerifyResponse>;
@@ -1020,11 +1229,105 @@ export interface GoTrueMFAApi {
1020
1229
  /**
1021
1230
  * Unenroll removes a MFA factor.
1022
1231
  * A user has to have an `aal2` authenticator level in order to unenroll a `verified` factor.
1232
+ *
1233
+ * @category Auth
1234
+ *
1235
+ * @example Unenroll a factor
1236
+ * ```js
1237
+ * const { data, error } = await supabase.auth.mfa.unenroll({
1238
+ * factorId: '34e770dd-9ff9-416c-87fa-43b31d7ef225',
1239
+ * })
1240
+ * ```
1241
+ *
1242
+ * @exampleResponse Unenroll a factor
1243
+ * ```json
1244
+ * {
1245
+ * data: {
1246
+ * id: '<FACTOR_ID>'
1247
+ * },
1248
+ * error: null
1249
+ * }
1250
+ * ```
1023
1251
  */
1024
1252
  unenroll(params: MFAUnenrollParams): Promise<AuthMFAUnenrollResponse>;
1025
1253
  /**
1026
1254
  * Helper method which creates a challenge and immediately uses the given code to verify against it thereafter. The verification code is
1027
1255
  * provided by the user by entering a code seen in their authenticator app.
1256
+ *
1257
+ * @category Auth
1258
+ *
1259
+ * @remarks
1260
+ * - Intended for use with only TOTP factors.
1261
+ * - An [enrolled factor](/docs/reference/javascript/auth-mfa-enroll) is required before invoking `challengeAndVerify()`.
1262
+ * - Executes [`mfa.challenge()`](/docs/reference/javascript/auth-mfa-challenge) and [`mfa.verify()`](/docs/reference/javascript/auth-mfa-verify) in a single step.
1263
+ *
1264
+ * @example Create and verify a challenge for a factor
1265
+ * ```js
1266
+ * const { data, error } = await supabase.auth.mfa.challengeAndVerify({
1267
+ * factorId: '34e770dd-9ff9-416c-87fa-43b31d7ef225',
1268
+ * code: '123456'
1269
+ * })
1270
+ * ```
1271
+ *
1272
+ * @exampleResponse Create and verify a challenge for a factor
1273
+ * ```json
1274
+ * {
1275
+ * data: {
1276
+ * access_token: '<ACCESS_TOKEN>',
1277
+ * token_type: 'Bearer',
1278
+ * expires_in: 3600,
1279
+ * refresh_token: '<REFRESH_TOKEN>',
1280
+ * user: {
1281
+ * id: '11111111-1111-1111-1111-111111111111',
1282
+ * aud: 'authenticated',
1283
+ * role: 'authenticated',
1284
+ * email: 'example@email.com',
1285
+ * email_confirmed_at: '2024-01-01T00:00:00Z',
1286
+ * phone: '',
1287
+ * confirmation_sent_at: '2024-01-01T00:00:00Z',
1288
+ * confirmed_at: '2024-01-01T00:00:00Z',
1289
+ * last_sign_in_at: '2024-01-01T00:00:00Z',
1290
+ * app_metadata: {
1291
+ * provider: 'email',
1292
+ * providers: [
1293
+ * "email",
1294
+ * ]
1295
+ * },
1296
+ * user_metadata: {},
1297
+ * identities: [
1298
+ * {
1299
+ * "identity_id": "22222222-2222-2222-2222-222222222222",
1300
+ * "id": "11111111-1111-1111-1111-111111111111",
1301
+ * "user_id": "11111111-1111-1111-1111-111111111111",
1302
+ * "identity_data": {
1303
+ * "email": "example@email.com",
1304
+ * "email_verified": true,
1305
+ * "phone_verified": false,
1306
+ * "sub": "11111111-1111-1111-1111-111111111111"
1307
+ * },
1308
+ * "provider": "email",
1309
+ * "last_sign_in_at": "2024-01-01T00:00:00Z",
1310
+ * "created_at": "2024-01-01T00:00:00Z",
1311
+ * "updated_at": "2024-01-01T00:00:00Z",
1312
+ * "email": "email@example.com"
1313
+ * },
1314
+ * ],
1315
+ * created_at: '2024-01-01T00:00:00Z',
1316
+ * updated_at: '2024-01-01T00:00:00Z',
1317
+ * is_anonymous: false,
1318
+ * factors: [
1319
+ * "id": '<ID>',
1320
+ * "friendly_name": 'Important Auth App',
1321
+ * "factor_type": 'totp',
1322
+ * "status": 'verified',
1323
+ * "created_at": "2024-01-01T00:00:00Z",
1324
+ * "updated_at": "2024-01-01T00:00:00Z"
1325
+ * ]
1326
+ * }
1327
+ * }
1328
+ * error: null
1329
+ * }
1330
+ * ```
1028
1331
  */
1029
1332
  challengeAndVerify(params: MFAChallengeAndVerifyParams): Promise<AuthMFAVerifyResponse>;
1030
1333
  /**
@@ -1034,6 +1337,8 @@ export interface GoTrueMFAApi {
1034
1337
  * @see {@link GoTrueMFAApi#getAuthenticatorAssuranceLevel}
1035
1338
  * @see {@link GoTrueClient#getUser}
1036
1339
  *
1340
+ *
1341
+ * @category Auth
1037
1342
  */
1038
1343
  listFactors(): Promise<AuthMFAListFactorsResponse>;
1039
1344
  /**
@@ -1050,6 +1355,42 @@ export interface GoTrueMFAApi {
1050
1355
  * will make a network request to validate the user and fetch their MFA factors.
1051
1356
  *
1052
1357
  * @param jwt Takes in an optional access token JWT. If no JWT is provided, the JWT from the current session is used.
1358
+ *
1359
+ * @category Auth
1360
+ *
1361
+ * @remarks
1362
+ * - Authenticator Assurance Level (AAL) is the measure of the strength of an authentication mechanism.
1363
+ * - In Supabase, having an AAL of `aal1` refers to having the 1st factor of authentication such as an email and password or OAuth sign-in while `aal2` refers to the 2nd factor of authentication such as a time-based, one-time-password (TOTP) or Phone factor.
1364
+ * - If the user has a verified factor, the `nextLevel` field will return `aal2`, else, it will return `aal1`.
1365
+ * - An optional `jwt` parameter can be passed to check the AAL level of a specific JWT instead of the current session.
1366
+ *
1367
+ * @example Get the AAL details of a session
1368
+ * ```js
1369
+ * const { data, error } = await supabase.auth.mfa.getAuthenticatorAssuranceLevel()
1370
+ * const { currentLevel, nextLevel, currentAuthenticationMethods } = data
1371
+ * ```
1372
+ *
1373
+ * @exampleResponse Get the AAL details of a session
1374
+ * ```json
1375
+ * {
1376
+ * data: {
1377
+ * currentLevel: 'aal1',
1378
+ * nextLevel: 'aal2',
1379
+ * currentAuthenticationMethods: [
1380
+ * {
1381
+ * method: 'password',
1382
+ * timestamp: 1700000000
1383
+ * }
1384
+ * ]
1385
+ * }
1386
+ * error: null
1387
+ * }
1388
+ * ```
1389
+ *
1390
+ * @example Get the AAL details for a specific JWT
1391
+ * ```js
1392
+ * const { data, error } = await supabase.auth.mfa.getAuthenticatorAssuranceLevel(jwt)
1393
+ * ```
1053
1394
  */
1054
1395
  getAuthenticatorAssuranceLevel(jwt?: string): Promise<AuthMFAGetAuthenticatorAssuranceLevelResponse>;
1055
1396
  webauthn: WebAuthnApi;
@@ -1093,6 +1434,32 @@ export interface GoTrueAdminMFAApi {
1093
1434
  /**
1094
1435
  * Lists all factors associated to a user.
1095
1436
  *
1437
+ *
1438
+ * @category Auth
1439
+ *
1440
+ * @example List all factors for a user
1441
+ * ```js
1442
+ * const { data, error } = await supabase.auth.admin.mfa.listFactors()
1443
+ * ```
1444
+ *
1445
+ * @exampleResponse List all factors for a user
1446
+ * ```json
1447
+ * {
1448
+ * data: {
1449
+ * factors: Factor[
1450
+ * {
1451
+ * id: '<ID>',
1452
+ * friendly_name: 'Auth App Factor',
1453
+ * factor_type: 'totp',
1454
+ * status: 'verified',
1455
+ * created_at: '2024-01-01T00:00:00Z',
1456
+ * updated_at: '2024-01-01T00:00:00Z'
1457
+ * }
1458
+ * ]
1459
+ * },
1460
+ * error: null
1461
+ * }
1462
+ * ```
1096
1463
  */
1097
1464
  listFactors(params: AuthMFAAdminListFactorsParams): Promise<AuthMFAAdminListFactorsResponse>;
1098
1465
  /**
@@ -1102,6 +1469,26 @@ export interface GoTrueAdminMFAApi {
1102
1469
  * @see {@link GoTrueMFAApi#unenroll}
1103
1470
  *
1104
1471
  * @expermental
1472
+ *
1473
+ * @category Auth
1474
+ *
1475
+ * @example Delete a factor for a user
1476
+ * ```js
1477
+ * const { data, error } = await supabase.auth.admin.mfa.deleteFactor({
1478
+ * id: '34e770dd-9ff9-416c-87fa-43b31d7ef225',
1479
+ * userId: 'a89baba7-b1b7-440f-b4bb-91026967f66b',
1480
+ * })
1481
+ * ```
1482
+ *
1483
+ * @exampleResponse Delete a factor for a user
1484
+ * ```json
1485
+ * {
1486
+ * data: {
1487
+ * id: '34e770dd-9ff9-416c-87fa-43b31d7ef225'
1488
+ * },
1489
+ * error: null
1490
+ * }
1491
+ * ```
1105
1492
  */
1106
1493
  deleteFactor(params: AuthMFAAdminDeleteFactorParams): Promise<AuthMFAAdminDeleteFactorResponse>;
1107
1494
  }
@@ -1388,6 +1775,8 @@ export interface GoTrueAdminOAuthApi {
1388
1775
  * Only relevant when the OAuth 2.1 server is enabled in Supabase Auth.
1389
1776
  *
1390
1777
  * This function should only be called on a server. Never expose your `service_role` key in the browser.
1778
+ *
1779
+ * @category Auth
1391
1780
  */
1392
1781
  listClients(params?: PageParams): Promise<OAuthClientListResponse>;
1393
1782
  /**
@@ -1395,6 +1784,8 @@ export interface GoTrueAdminOAuthApi {
1395
1784
  * Only relevant when the OAuth 2.1 server is enabled in Supabase Auth.
1396
1785
  *
1397
1786
  * This function should only be called on a server. Never expose your `service_role` key in the browser.
1787
+ *
1788
+ * @category Auth
1398
1789
  */
1399
1790
  createClient(params: CreateOAuthClientParams): Promise<OAuthClientResponse>;
1400
1791
  /**
@@ -1402,6 +1793,8 @@ export interface GoTrueAdminOAuthApi {
1402
1793
  * Only relevant when the OAuth 2.1 server is enabled in Supabase Auth.
1403
1794
  *
1404
1795
  * This function should only be called on a server. Never expose your `service_role` key in the browser.
1796
+ *
1797
+ * @category Auth
1405
1798
  */
1406
1799
  getClient(clientId: string): Promise<OAuthClientResponse>;
1407
1800
  /**
@@ -1409,6 +1802,8 @@ export interface GoTrueAdminOAuthApi {
1409
1802
  * Only relevant when the OAuth 2.1 server is enabled in Supabase Auth.
1410
1803
  *
1411
1804
  * This function should only be called on a server. Never expose your `service_role` key in the browser.
1805
+ *
1806
+ * @category Auth
1412
1807
  */
1413
1808
  updateClient(clientId: string, params: UpdateOAuthClientParams): Promise<OAuthClientResponse>;
1414
1809
  /**
@@ -1416,6 +1811,8 @@ export interface GoTrueAdminOAuthApi {
1416
1811
  * Only relevant when the OAuth 2.1 server is enabled in Supabase Auth.
1417
1812
  *
1418
1813
  * This function should only be called on a server. Never expose your `service_role` key in the browser.
1814
+ *
1815
+ * @category Auth
1419
1816
  */
1420
1817
  deleteClient(clientId: string): Promise<{
1421
1818
  data: null;
@@ -1426,6 +1823,8 @@ export interface GoTrueAdminOAuthApi {
1426
1823
  * Only relevant when the OAuth 2.1 server is enabled in Supabase Auth.
1427
1824
  *
1428
1825
  * This function should only be called on a server. Never expose your `service_role` key in the browser.
1826
+ *
1827
+ * @category Auth
1429
1828
  */
1430
1829
  regenerateClientSecret(clientId: string): Promise<OAuthClientResponse>;
1431
1830
  }
@@ -1803,6 +2202,8 @@ export interface AuthOAuthServerApi {
1803
2202
  *
1804
2203
  * @param authorizationId - The authorization ID from the authorization request
1805
2204
  * @returns Authorization details or redirect URL depending on consent status
2205
+ *
2206
+ * @category Auth
1806
2207
  */
1807
2208
  getAuthorizationDetails(authorizationId: string): Promise<AuthOAuthAuthorizationDetailsResponse>;
1808
2209
  /**
@@ -1816,6 +2217,8 @@ export interface AuthOAuthServerApi {
1816
2217
  * @param options - Optional parameters
1817
2218
  * @param options.skipBrowserRedirect - If false (default), automatically redirects the browser to the OAuth client. If true, returns the redirect_url without automatic redirect (useful for custom handling).
1818
2219
  * @returns Redirect URL to send the user back to the OAuth client with authorization code
2220
+ *
2221
+ * @category Auth
1819
2222
  */
1820
2223
  approveAuthorization(authorizationId: string, options?: {
1821
2224
  skipBrowserRedirect?: boolean;
@@ -1831,6 +2234,8 @@ export interface AuthOAuthServerApi {
1831
2234
  * @param options - Optional parameters
1832
2235
  * @param options.skipBrowserRedirect - If false (default), automatically redirects the browser to the OAuth client. If true, returns the redirect_url without automatic redirect (useful for custom handling).
1833
2236
  * @returns Redirect URL to send the user back to the OAuth client with error information
2237
+ *
2238
+ * @category Auth
1834
2239
  */
1835
2240
  denyAuthorization(authorizationId: string, options?: {
1836
2241
  skipBrowserRedirect?: boolean;
@@ -1840,6 +2245,8 @@ export interface AuthOAuthServerApi {
1840
2245
  * Only relevant when the OAuth 2.1 server is enabled in Supabase Auth.
1841
2246
  *
1842
2247
  * @returns Response with array of OAuth grants with client information and granted scopes
2248
+ *
2249
+ * @category Auth
1843
2250
  */
1844
2251
  listGrants(): Promise<AuthOAuthGrantsResponse>;
1845
2252
  /**
@@ -1852,6 +2259,8 @@ export interface AuthOAuthServerApi {
1852
2259
  * @param options - Revocation options
1853
2260
  * @param options.clientId - The OAuth client identifier (UUID) to revoke access for
1854
2261
  * @returns Empty response on successful revocation
2262
+ *
2263
+ * @category Auth
1855
2264
  */
1856
2265
  revokeGrant(options: {
1857
2266
  clientId: string;