@supabase/auth-js 2.78.0 → 2.78.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.
@@ -21,6 +21,7 @@ const DEFAULT_OPTIONS = {
21
21
  flowType: 'implicit',
22
22
  debug: false,
23
23
  hasCustomAuthorizationHeader: false,
24
+ throwOnError: false,
24
25
  };
25
26
  async function lockNoOp(name, acquireTimeout, fn) {
26
27
  return await fn();
@@ -108,6 +109,7 @@ class GoTrueClient {
108
109
  this.detectSessionInUrl = settings.detectSessionInUrl;
109
110
  this.flowType = settings.flowType;
110
111
  this.hasCustomAuthorizationHeader = settings.hasCustomAuthorizationHeader;
112
+ this.throwOnError = settings.throwOnError;
111
113
  if (settings.lock) {
112
114
  this.lock = settings.lock;
113
115
  }
@@ -171,6 +173,23 @@ class GoTrueClient {
171
173
  }
172
174
  this.initialize();
173
175
  }
176
+ /**
177
+ * Returns whether error throwing mode is enabled for this client.
178
+ */
179
+ isThrowOnErrorEnabled() {
180
+ return this.throwOnError;
181
+ }
182
+ /**
183
+ * Centralizes return handling with optional error throwing. When `throwOnError` is enabled
184
+ * and the provided result contains a non-nullish error, the error is thrown instead of
185
+ * being returned. This ensures consistent behavior across all public API methods.
186
+ */
187
+ _returnResult(result) {
188
+ if (this.throwOnError && result && result.error) {
189
+ throw result.error;
190
+ }
191
+ return result;
192
+ }
174
193
  _debug(...args) {
175
194
  if (this.logDebugMessages) {
176
195
  this.logger(`GoTrueClient@${this.instanceID} (${version}) ${new Date().toISOString()}`, ...args);
@@ -202,13 +221,16 @@ class GoTrueClient {
202
221
  async _initialize() {
203
222
  var _a;
204
223
  try {
205
- const params = parseParametersFromURL(window.location.href);
224
+ let params = {};
206
225
  let callbackUrlType = 'none';
207
- if (this._isImplicitGrantCallback(params)) {
208
- callbackUrlType = 'implicit';
209
- }
210
- else if (await this._isPKCECallback(params)) {
211
- callbackUrlType = 'pkce';
226
+ if (isBrowser()) {
227
+ params = parseParametersFromURL(window.location.href);
228
+ if (this._isImplicitGrantCallback(params)) {
229
+ callbackUrlType = 'implicit';
230
+ }
231
+ else if (await this._isPKCECallback(params)) {
232
+ callbackUrlType = 'pkce';
233
+ }
212
234
  }
213
235
  /**
214
236
  * Attempt to get the session from the URL only if these conditions are fulfilled
@@ -252,11 +274,11 @@ class GoTrueClient {
252
274
  }
253
275
  catch (error) {
254
276
  if (isAuthError(error)) {
255
- return { error };
277
+ return this._returnResult({ error });
256
278
  }
257
- return {
279
+ return this._returnResult({
258
280
  error: new AuthUnknownError('Unexpected error during initialization', error),
259
- };
281
+ });
260
282
  }
261
283
  finally {
262
284
  await this._handleVisibilityChange();
@@ -281,7 +303,7 @@ class GoTrueClient {
281
303
  });
282
304
  const { data, error } = res;
283
305
  if (error || !data) {
284
- return { data: { user: null, session: null }, error: error };
306
+ return this._returnResult({ data: { user: null, session: null }, error: error });
285
307
  }
286
308
  const session = data.session;
287
309
  const user = data.user;
@@ -289,11 +311,11 @@ class GoTrueClient {
289
311
  await this._saveSession(data.session);
290
312
  await this._notifyAllSubscribers('SIGNED_IN', session);
291
313
  }
292
- return { data: { user, session }, error: null };
314
+ return this._returnResult({ data: { user, session }, error: null });
293
315
  }
294
316
  catch (error) {
295
317
  if (isAuthError(error)) {
296
- return { data: { user: null, session: null }, error };
318
+ return this._returnResult({ data: { user: null, session: null }, error });
297
319
  }
298
320
  throw error;
299
321
  }
@@ -353,7 +375,7 @@ class GoTrueClient {
353
375
  }
354
376
  const { data, error } = res;
355
377
  if (error || !data) {
356
- return { data: { user: null, session: null }, error: error };
378
+ return this._returnResult({ data: { user: null, session: null }, error: error });
357
379
  }
358
380
  const session = data.session;
359
381
  const user = data.user;
@@ -361,11 +383,11 @@ class GoTrueClient {
361
383
  await this._saveSession(data.session);
362
384
  await this._notifyAllSubscribers('SIGNED_IN', session);
363
385
  }
364
- return { data: { user, session }, error: null };
386
+ return this._returnResult({ data: { user, session }, error: null });
365
387
  }
366
388
  catch (error) {
367
389
  if (isAuthError(error)) {
368
- return { data: { user: null, session: null }, error };
390
+ return this._returnResult({ data: { user: null, session: null }, error });
369
391
  }
370
392
  throw error;
371
393
  }
@@ -410,23 +432,24 @@ class GoTrueClient {
410
432
  }
411
433
  const { data, error } = res;
412
434
  if (error) {
413
- return { data: { user: null, session: null }, error };
435
+ return this._returnResult({ data: { user: null, session: null }, error });
414
436
  }
415
437
  else if (!data || !data.session || !data.user) {
416
- return { data: { user: null, session: null }, error: new AuthInvalidTokenResponseError() };
438
+ const invalidTokenError = new AuthInvalidTokenResponseError();
439
+ return this._returnResult({ data: { user: null, session: null }, error: invalidTokenError });
417
440
  }
418
441
  if (data.session) {
419
442
  await this._saveSession(data.session);
420
443
  await this._notifyAllSubscribers('SIGNED_IN', data.session);
421
444
  }
422
- return {
445
+ return this._returnResult({
423
446
  data: Object.assign({ user: data.user, session: data.session }, (data.weak_password ? { weakPassword: data.weak_password } : null)),
424
447
  error,
425
- };
448
+ });
426
449
  }
427
450
  catch (error) {
428
451
  if (isAuthError(error)) {
429
- return { data: { user: null, session: null }, error };
452
+ return this._returnResult({ data: { user: null, session: null }, error });
430
453
  }
431
454
  throw error;
432
455
  }
@@ -558,20 +581,18 @@ class GoTrueClient {
558
581
  throw error;
559
582
  }
560
583
  if (!data || !data.session || !data.user) {
561
- return {
562
- data: { user: null, session: null },
563
- error: new AuthInvalidTokenResponseError(),
564
- };
584
+ const invalidTokenError = new AuthInvalidTokenResponseError();
585
+ return this._returnResult({ data: { user: null, session: null }, error: invalidTokenError });
565
586
  }
566
587
  if (data.session) {
567
588
  await this._saveSession(data.session);
568
589
  await this._notifyAllSubscribers('SIGNED_IN', data.session);
569
590
  }
570
- return { data: Object.assign({}, data), error };
591
+ return this._returnResult({ data: Object.assign({}, data), error });
571
592
  }
572
593
  catch (error) {
573
594
  if (isAuthError(error)) {
574
- return { data: { user: null, session: null }, error };
595
+ return this._returnResult({ data: { user: null, session: null }, error });
575
596
  }
576
597
  throw error;
577
598
  }
@@ -698,20 +719,18 @@ class GoTrueClient {
698
719
  throw error;
699
720
  }
700
721
  if (!data || !data.session || !data.user) {
701
- return {
702
- data: { user: null, session: null },
703
- error: new AuthInvalidTokenResponseError(),
704
- };
722
+ const invalidTokenError = new AuthInvalidTokenResponseError();
723
+ return this._returnResult({ data: { user: null, session: null }, error: invalidTokenError });
705
724
  }
706
725
  if (data.session) {
707
726
  await this._saveSession(data.session);
708
727
  await this._notifyAllSubscribers('SIGNED_IN', data.session);
709
728
  }
710
- return { data: Object.assign({}, data), error };
729
+ return this._returnResult({ data: Object.assign({}, data), error });
711
730
  }
712
731
  catch (error) {
713
732
  if (isAuthError(error)) {
714
- return { data: { user: null, session: null }, error };
733
+ return this._returnResult({ data: { user: null, session: null }, error });
715
734
  }
716
735
  throw error;
717
736
  }
@@ -733,20 +752,24 @@ class GoTrueClient {
733
752
  throw error;
734
753
  }
735
754
  if (!data || !data.session || !data.user) {
736
- return {
755
+ const invalidTokenError = new AuthInvalidTokenResponseError();
756
+ return this._returnResult({
737
757
  data: { user: null, session: null, redirectType: null },
738
- error: new AuthInvalidTokenResponseError(),
739
- };
758
+ error: invalidTokenError,
759
+ });
740
760
  }
741
761
  if (data.session) {
742
762
  await this._saveSession(data.session);
743
763
  await this._notifyAllSubscribers('SIGNED_IN', data.session);
744
764
  }
745
- return { data: Object.assign(Object.assign({}, data), { redirectType: redirectType !== null && redirectType !== void 0 ? redirectType : null }), error };
765
+ return this._returnResult({ data: Object.assign(Object.assign({}, data), { redirectType: redirectType !== null && redirectType !== void 0 ? redirectType : null }), error });
746
766
  }
747
767
  catch (error) {
748
768
  if (isAuthError(error)) {
749
- return { data: { user: null, session: null, redirectType: null }, error };
769
+ return this._returnResult({
770
+ data: { user: null, session: null, redirectType: null },
771
+ error,
772
+ });
750
773
  }
751
774
  throw error;
752
775
  }
@@ -771,23 +794,21 @@ class GoTrueClient {
771
794
  });
772
795
  const { data, error } = res;
773
796
  if (error) {
774
- return { data: { user: null, session: null }, error };
797
+ return this._returnResult({ data: { user: null, session: null }, error });
775
798
  }
776
799
  else if (!data || !data.session || !data.user) {
777
- return {
778
- data: { user: null, session: null },
779
- error: new AuthInvalidTokenResponseError(),
780
- };
800
+ const invalidTokenError = new AuthInvalidTokenResponseError();
801
+ return this._returnResult({ data: { user: null, session: null }, error: invalidTokenError });
781
802
  }
782
803
  if (data.session) {
783
804
  await this._saveSession(data.session);
784
805
  await this._notifyAllSubscribers('SIGNED_IN', data.session);
785
806
  }
786
- return { data, error };
807
+ return this._returnResult({ data, error });
787
808
  }
788
809
  catch (error) {
789
810
  if (isAuthError(error)) {
790
- return { data: { user: null, session: null }, error };
811
+ return this._returnResult({ data: { user: null, session: null }, error });
791
812
  }
792
813
  throw error;
793
814
  }
@@ -832,7 +853,7 @@ class GoTrueClient {
832
853
  },
833
854
  redirectTo: options === null || options === void 0 ? void 0 : options.emailRedirectTo,
834
855
  });
835
- return { data: { user: null, session: null }, error };
856
+ return this._returnResult({ data: { user: null, session: null }, error });
836
857
  }
837
858
  if ('phone' in credentials) {
838
859
  const { phone, options } = credentials;
@@ -846,13 +867,16 @@ class GoTrueClient {
846
867
  channel: (_e = options === null || options === void 0 ? void 0 : options.channel) !== null && _e !== void 0 ? _e : 'sms',
847
868
  },
848
869
  });
849
- return { data: { user: null, session: null, messageId: data === null || data === void 0 ? void 0 : data.message_id }, error };
870
+ return this._returnResult({
871
+ data: { user: null, session: null, messageId: data === null || data === void 0 ? void 0 : data.message_id },
872
+ error,
873
+ });
850
874
  }
851
875
  throw new AuthInvalidCredentialsError('You must provide either an email or phone number.');
852
876
  }
853
877
  catch (error) {
854
878
  if (isAuthError(error)) {
855
- return { data: { user: null, session: null }, error };
879
+ return this._returnResult({ data: { user: null, session: null }, error });
856
880
  }
857
881
  throw error;
858
882
  }
@@ -879,7 +903,8 @@ class GoTrueClient {
879
903
  throw error;
880
904
  }
881
905
  if (!data) {
882
- throw new Error('An error occurred on token verification.');
906
+ const tokenVerificationError = new Error('An error occurred on token verification.');
907
+ throw tokenVerificationError;
883
908
  }
884
909
  const session = data.session;
885
910
  const user = data.user;
@@ -887,11 +912,11 @@ class GoTrueClient {
887
912
  await this._saveSession(session);
888
913
  await this._notifyAllSubscribers(params.type == 'recovery' ? 'PASSWORD_RECOVERY' : 'SIGNED_IN', session);
889
914
  }
890
- return { data: { user, session }, error: null };
915
+ return this._returnResult({ data: { user, session }, error: null });
891
916
  }
892
917
  catch (error) {
893
918
  if (isAuthError(error)) {
894
- return { data: { user: null, session: null }, error };
919
+ return this._returnResult({ data: { user: null, session: null }, error });
895
920
  }
896
921
  throw error;
897
922
  }
@@ -919,17 +944,18 @@ class GoTrueClient {
919
944
  ;
920
945
  [codeChallenge, codeChallengeMethod] = await getCodeChallengeAndMethod(this.storage, this.storageKey);
921
946
  }
922
- return await _request(this.fetch, 'POST', `${this.url}/sso`, {
947
+ const result = await _request(this.fetch, 'POST', `${this.url}/sso`, {
923
948
  body: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, ('providerId' in params ? { provider_id: params.providerId } : null)), ('domain' in params ? { domain: params.domain } : null)), { redirect_to: (_b = (_a = params.options) === null || _a === void 0 ? void 0 : _a.redirectTo) !== null && _b !== void 0 ? _b : undefined }), (((_c = params === null || params === void 0 ? void 0 : params.options) === null || _c === void 0 ? void 0 : _c.captchaToken)
924
949
  ? { gotrue_meta_security: { captcha_token: params.options.captchaToken } }
925
950
  : null)), { skip_http_redirect: true, code_challenge: codeChallenge, code_challenge_method: codeChallengeMethod }),
926
951
  headers: this.headers,
927
952
  xform: _ssoResponse,
928
953
  });
954
+ return this._returnResult(result);
929
955
  }
930
956
  catch (error) {
931
957
  if (isAuthError(error)) {
932
- return { data: null, error };
958
+ return this._returnResult({ data: null, error });
933
959
  }
934
960
  throw error;
935
961
  }
@@ -956,12 +982,12 @@ class GoTrueClient {
956
982
  headers: this.headers,
957
983
  jwt: session.access_token,
958
984
  });
959
- return { data: { user: null, session: null }, error };
985
+ return this._returnResult({ data: { user: null, session: null }, error });
960
986
  });
961
987
  }
962
988
  catch (error) {
963
989
  if (isAuthError(error)) {
964
- return { data: { user: null, session: null }, error };
990
+ return this._returnResult({ data: { user: null, session: null }, error });
965
991
  }
966
992
  throw error;
967
993
  }
@@ -983,7 +1009,7 @@ class GoTrueClient {
983
1009
  },
984
1010
  redirectTo: options === null || options === void 0 ? void 0 : options.emailRedirectTo,
985
1011
  });
986
- return { data: { user: null, session: null }, error };
1012
+ return this._returnResult({ data: { user: null, session: null }, error });
987
1013
  }
988
1014
  else if ('phone' in credentials) {
989
1015
  const { phone, type, options } = credentials;
@@ -995,13 +1021,16 @@ class GoTrueClient {
995
1021
  gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken },
996
1022
  },
997
1023
  });
998
- return { data: { user: null, session: null, messageId: data === null || data === void 0 ? void 0 : data.message_id }, error };
1024
+ return this._returnResult({
1025
+ data: { user: null, session: null, messageId: data === null || data === void 0 ? void 0 : data.message_id },
1026
+ error,
1027
+ });
999
1028
  }
1000
1029
  throw new AuthInvalidCredentialsError('You must provide either an email or phone number and a type');
1001
1030
  }
1002
1031
  catch (error) {
1003
1032
  if (isAuthError(error)) {
1004
- return { data: { user: null, session: null }, error };
1033
+ return this._returnResult({ data: { user: null, session: null }, error });
1005
1034
  }
1006
1035
  throw error;
1007
1036
  }
@@ -1160,9 +1189,9 @@ class GoTrueClient {
1160
1189
  }
1161
1190
  const { data: session, error } = await this._callRefreshToken(currentSession.refresh_token);
1162
1191
  if (error) {
1163
- return { data: { session: null }, error };
1192
+ return this._returnResult({ data: { session: null }, error });
1164
1193
  }
1165
- return { data: { session }, error: null };
1194
+ return this._returnResult({ data: { session }, error: null });
1166
1195
  }
1167
1196
  finally {
1168
1197
  this._debug('#__loadSession()', 'end');
@@ -1219,7 +1248,7 @@ class GoTrueClient {
1219
1248
  await this._removeSession();
1220
1249
  await removeItemAsync(this.storage, `${this.storageKey}-code-verifier`);
1221
1250
  }
1222
- return { data: { user: null }, error };
1251
+ return this._returnResult({ data: { user: null }, error });
1223
1252
  }
1224
1253
  throw error;
1225
1254
  }
@@ -1257,17 +1286,18 @@ class GoTrueClient {
1257
1286
  jwt: session.access_token,
1258
1287
  xform: _userResponse,
1259
1288
  });
1260
- if (userError)
1289
+ if (userError) {
1261
1290
  throw userError;
1291
+ }
1262
1292
  session.user = data.user;
1263
1293
  await this._saveSession(session);
1264
1294
  await this._notifyAllSubscribers('USER_UPDATED', session);
1265
- return { data: { user: session.user }, error: null };
1295
+ return this._returnResult({ data: { user: session.user }, error: null });
1266
1296
  });
1267
1297
  }
1268
1298
  catch (error) {
1269
1299
  if (isAuthError(error)) {
1270
- return { data: { user: null }, error };
1300
+ return this._returnResult({ data: { user: null }, error });
1271
1301
  }
1272
1302
  throw error;
1273
1303
  }
@@ -1300,7 +1330,7 @@ class GoTrueClient {
1300
1330
  if (hasExpired) {
1301
1331
  const { data: refreshedSession, error } = await this._callRefreshToken(currentSession.refresh_token);
1302
1332
  if (error) {
1303
- return { data: { user: null, session: null }, error: error };
1333
+ return this._returnResult({ data: { user: null, session: null }, error: error });
1304
1334
  }
1305
1335
  if (!refreshedSession) {
1306
1336
  return { data: { user: null, session: null }, error: null };
@@ -1323,11 +1353,11 @@ class GoTrueClient {
1323
1353
  await this._saveSession(session);
1324
1354
  await this._notifyAllSubscribers('SIGNED_IN', session);
1325
1355
  }
1326
- return { data: { user: session.user, session }, error: null };
1356
+ return this._returnResult({ data: { user: session.user, session }, error: null });
1327
1357
  }
1328
1358
  catch (error) {
1329
1359
  if (isAuthError(error)) {
1330
- return { data: { session: null, user: null }, error };
1360
+ return this._returnResult({ data: { session: null, user: null }, error });
1331
1361
  }
1332
1362
  throw error;
1333
1363
  }
@@ -1360,17 +1390,17 @@ class GoTrueClient {
1360
1390
  }
1361
1391
  const { data: session, error } = await this._callRefreshToken(currentSession.refresh_token);
1362
1392
  if (error) {
1363
- return { data: { user: null, session: null }, error: error };
1393
+ return this._returnResult({ data: { user: null, session: null }, error: error });
1364
1394
  }
1365
1395
  if (!session) {
1366
- return { data: { user: null, session: null }, error: null };
1396
+ return this._returnResult({ data: { user: null, session: null }, error: null });
1367
1397
  }
1368
- return { data: { user: session.user, session }, error: null };
1398
+ return this._returnResult({ data: { user: session.user, session }, error: null });
1369
1399
  });
1370
1400
  }
1371
1401
  catch (error) {
1372
1402
  if (isAuthError(error)) {
1373
- return { data: { user: null, session: null }, error };
1403
+ return this._returnResult({ data: { user: null, session: null }, error });
1374
1404
  }
1375
1405
  throw error;
1376
1406
  }
@@ -1456,11 +1486,11 @@ class GoTrueClient {
1456
1486
  // Remove tokens from URL
1457
1487
  window.location.hash = '';
1458
1488
  this._debug('#_getSessionFromURL()', 'clearing window.location.hash');
1459
- return { data: { session, redirectType: params.type }, error: null };
1489
+ return this._returnResult({ data: { session, redirectType: params.type }, error: null });
1460
1490
  }
1461
1491
  catch (error) {
1462
1492
  if (isAuthError(error)) {
1463
- return { data: { session: null, redirectType: null }, error };
1493
+ return this._returnResult({ data: { session: null, redirectType: null }, error });
1464
1494
  }
1465
1495
  throw error;
1466
1496
  }
@@ -1497,7 +1527,7 @@ class GoTrueClient {
1497
1527
  var _a;
1498
1528
  const { data, error: sessionError } = result;
1499
1529
  if (sessionError) {
1500
- return { error: sessionError };
1530
+ return this._returnResult({ error: sessionError });
1501
1531
  }
1502
1532
  const accessToken = (_a = data.session) === null || _a === void 0 ? void 0 : _a.access_token;
1503
1533
  if (accessToken) {
@@ -1507,7 +1537,7 @@ class GoTrueClient {
1507
1537
  // ignore 401s since an invalid or expired JWT should sign out the current session
1508
1538
  if (!(isAuthApiError(error) &&
1509
1539
  (error.status === 404 || error.status === 401 || error.status === 403))) {
1510
- return { error };
1540
+ return this._returnResult({ error });
1511
1541
  }
1512
1542
  }
1513
1543
  }
@@ -1515,7 +1545,7 @@ class GoTrueClient {
1515
1545
  await this._removeSession();
1516
1546
  await removeItemAsync(this.storage, `${this.storageKey}-code-verifier`);
1517
1547
  }
1518
- return { error: null };
1548
+ return this._returnResult({ error: null });
1519
1549
  });
1520
1550
  }
1521
1551
  onAuthStateChange(callback) {
@@ -1584,7 +1614,7 @@ class GoTrueClient {
1584
1614
  }
1585
1615
  catch (error) {
1586
1616
  if (isAuthError(error)) {
1587
- return { data: null, error };
1617
+ return this._returnResult({ data: null, error });
1588
1618
  }
1589
1619
  throw error;
1590
1620
  }
@@ -1598,11 +1628,11 @@ class GoTrueClient {
1598
1628
  const { data, error } = await this.getUser();
1599
1629
  if (error)
1600
1630
  throw error;
1601
- return { data: { identities: (_a = data.user.identities) !== null && _a !== void 0 ? _a : [] }, error: null };
1631
+ return this._returnResult({ data: { identities: (_a = data.user.identities) !== null && _a !== void 0 ? _a : [] }, error: null });
1602
1632
  }
1603
1633
  catch (error) {
1604
1634
  if (isAuthError(error)) {
1605
- return { data: null, error };
1635
+ return this._returnResult({ data: null, error });
1606
1636
  }
1607
1637
  throw error;
1608
1638
  }
@@ -1637,11 +1667,14 @@ class GoTrueClient {
1637
1667
  if (isBrowser() && !((_a = credentials.options) === null || _a === void 0 ? void 0 : _a.skipBrowserRedirect)) {
1638
1668
  window.location.assign(data === null || data === void 0 ? void 0 : data.url);
1639
1669
  }
1640
- return { data: { provider: credentials.provider, url: data === null || data === void 0 ? void 0 : data.url }, error: null };
1670
+ return this._returnResult({
1671
+ data: { provider: credentials.provider, url: data === null || data === void 0 ? void 0 : data.url },
1672
+ error: null,
1673
+ });
1641
1674
  }
1642
1675
  catch (error) {
1643
1676
  if (isAuthError(error)) {
1644
- return { data: { provider: credentials.provider, url: null }, error };
1677
+ return this._returnResult({ data: { provider: credentials.provider, url: null }, error });
1645
1678
  }
1646
1679
  throw error;
1647
1680
  }
@@ -1669,23 +1702,23 @@ class GoTrueClient {
1669
1702
  });
1670
1703
  const { data, error } = res;
1671
1704
  if (error) {
1672
- return { data: { user: null, session: null }, error };
1705
+ return this._returnResult({ data: { user: null, session: null }, error });
1673
1706
  }
1674
1707
  else if (!data || !data.session || !data.user) {
1675
- return {
1708
+ return this._returnResult({
1676
1709
  data: { user: null, session: null },
1677
1710
  error: new AuthInvalidTokenResponseError(),
1678
- };
1711
+ });
1679
1712
  }
1680
1713
  if (data.session) {
1681
1714
  await this._saveSession(data.session);
1682
1715
  await this._notifyAllSubscribers('USER_UPDATED', data.session);
1683
1716
  }
1684
- return { data, error };
1717
+ return this._returnResult({ data, error });
1685
1718
  }
1686
1719
  catch (error) {
1687
1720
  if (isAuthError(error)) {
1688
- return { data: { user: null, session: null }, error };
1721
+ return this._returnResult({ data: { user: null, session: null }, error });
1689
1722
  }
1690
1723
  throw error;
1691
1724
  }
@@ -1710,7 +1743,7 @@ class GoTrueClient {
1710
1743
  }
1711
1744
  catch (error) {
1712
1745
  if (isAuthError(error)) {
1713
- return { data: null, error };
1746
+ return this._returnResult({ data: null, error });
1714
1747
  }
1715
1748
  throw error;
1716
1749
  }
@@ -1746,7 +1779,7 @@ class GoTrueClient {
1746
1779
  catch (error) {
1747
1780
  this._debug(debugName, 'error', error);
1748
1781
  if (isAuthError(error)) {
1749
- return { data: { session: null, user: null }, error };
1782
+ return this._returnResult({ data: { session: null, user: null }, error });
1750
1783
  }
1751
1784
  throw error;
1752
1785
  }
@@ -2231,7 +2264,7 @@ class GoTrueClient {
2231
2264
  var _a;
2232
2265
  const { data: sessionData, error: sessionError } = result;
2233
2266
  if (sessionError) {
2234
- return { data: null, error: sessionError };
2267
+ return this._returnResult({ data: null, error: sessionError });
2235
2268
  }
2236
2269
  return await _request(this.fetch, 'DELETE', `${this.url}/factors/${params.factorId}`, {
2237
2270
  headers: this.headers,
@@ -2241,7 +2274,7 @@ class GoTrueClient {
2241
2274
  }
2242
2275
  catch (error) {
2243
2276
  if (isAuthError(error)) {
2244
- return { data: null, error };
2277
+ return this._returnResult({ data: null, error });
2245
2278
  }
2246
2279
  throw error;
2247
2280
  }
@@ -2252,7 +2285,7 @@ class GoTrueClient {
2252
2285
  var _a, _b;
2253
2286
  const { data: sessionData, error: sessionError } = result;
2254
2287
  if (sessionError) {
2255
- return { data: null, error: sessionError };
2288
+ return this._returnResult({ data: null, error: sessionError });
2256
2289
  }
2257
2290
  const body = Object.assign({ friendly_name: params.friendlyName, factor_type: params.factorType }, (params.factorType === 'phone'
2258
2291
  ? { phone: params.phone }
@@ -2265,17 +2298,17 @@ class GoTrueClient {
2265
2298
  jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token,
2266
2299
  }));
2267
2300
  if (error) {
2268
- return { data: null, error };
2301
+ return this._returnResult({ data: null, error });
2269
2302
  }
2270
2303
  if (params.factorType === 'totp' && data.type === 'totp' && ((_b = data === null || data === void 0 ? void 0 : data.totp) === null || _b === void 0 ? void 0 : _b.qr_code)) {
2271
2304
  data.totp.qr_code = `data:image/svg+xml;utf-8,${data.totp.qr_code}`;
2272
2305
  }
2273
- return { data, error: null };
2306
+ return this._returnResult({ data, error: null });
2274
2307
  });
2275
2308
  }
2276
2309
  catch (error) {
2277
2310
  if (isAuthError(error)) {
2278
- return { data: null, error };
2311
+ return this._returnResult({ data: null, error });
2279
2312
  }
2280
2313
  throw error;
2281
2314
  }
@@ -2287,7 +2320,7 @@ class GoTrueClient {
2287
2320
  var _a;
2288
2321
  const { data: sessionData, error: sessionError } = result;
2289
2322
  if (sessionError) {
2290
- return { data: null, error: sessionError };
2323
+ return this._returnResult({ data: null, error: sessionError });
2291
2324
  }
2292
2325
  const body = Object.assign({ challenge_id: params.challengeId }, ('webauthn' in params
2293
2326
  ? {
@@ -2302,16 +2335,16 @@ class GoTrueClient {
2302
2335
  jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token,
2303
2336
  });
2304
2337
  if (error) {
2305
- return { data: null, error };
2338
+ return this._returnResult({ data: null, error });
2306
2339
  }
2307
2340
  await this._saveSession(Object.assign({ expires_at: Math.round(Date.now() / 1000) + data.expires_in }, data));
2308
2341
  await this._notifyAllSubscribers('MFA_CHALLENGE_VERIFIED', data);
2309
- return { data, error };
2342
+ return this._returnResult({ data, error });
2310
2343
  });
2311
2344
  }
2312
2345
  catch (error) {
2313
2346
  if (isAuthError(error)) {
2314
- return { data: null, error };
2347
+ return this._returnResult({ data: null, error });
2315
2348
  }
2316
2349
  throw error;
2317
2350
  }
@@ -2324,7 +2357,7 @@ class GoTrueClient {
2324
2357
  var _a;
2325
2358
  const { data: sessionData, error: sessionError } = result;
2326
2359
  if (sessionError) {
2327
- return { data: null, error: sessionError };
2360
+ return this._returnResult({ data: null, error: sessionError });
2328
2361
  }
2329
2362
  const response = (await _request(this.fetch, 'POST', `${this.url}/factors/${params.factorId}/challenge`, {
2330
2363
  body: params,
@@ -2354,7 +2387,7 @@ class GoTrueClient {
2354
2387
  }
2355
2388
  catch (error) {
2356
2389
  if (isAuthError(error)) {
2357
- return { data: null, error };
2390
+ return this._returnResult({ data: null, error });
2358
2391
  }
2359
2392
  throw error;
2360
2393
  }
@@ -2370,7 +2403,7 @@ class GoTrueClient {
2370
2403
  factorId: params.factorId,
2371
2404
  });
2372
2405
  if (challengeError) {
2373
- return { data: null, error: challengeError };
2406
+ return this._returnResult({ data: null, error: challengeError });
2374
2407
  }
2375
2408
  return await this._verify({
2376
2409
  factorId: params.factorId,
@@ -2414,7 +2447,7 @@ class GoTrueClient {
2414
2447
  var _a, _b;
2415
2448
  const { data: { session }, error: sessionError, } = await this.getSession();
2416
2449
  if (sessionError) {
2417
- return { data: null, error: sessionError };
2450
+ return this._returnResult({ data: null, error: sessionError });
2418
2451
  }
2419
2452
  if (!session) {
2420
2453
  return {
@@ -2448,10 +2481,10 @@ class GoTrueClient {
2448
2481
  return await this._useSession(async (result) => {
2449
2482
  const { data: { session }, error: sessionError, } = result;
2450
2483
  if (sessionError) {
2451
- return { data: null, error: sessionError };
2484
+ return this._returnResult({ data: null, error: sessionError });
2452
2485
  }
2453
2486
  if (!session) {
2454
- return { data: null, error: new AuthSessionMissingError() };
2487
+ return this._returnResult({ data: null, error: new AuthSessionMissingError() });
2455
2488
  }
2456
2489
  return await _request(this.fetch, 'GET', `${this.url}/oauth/authorizations/${authorizationId}`, {
2457
2490
  headers: this.headers,
@@ -2462,7 +2495,7 @@ class GoTrueClient {
2462
2495
  }
2463
2496
  catch (error) {
2464
2497
  if (isAuthError(error)) {
2465
- return { data: null, error };
2498
+ return this._returnResult({ data: null, error });
2466
2499
  }
2467
2500
  throw error;
2468
2501
  }
@@ -2476,10 +2509,10 @@ class GoTrueClient {
2476
2509
  return await this._useSession(async (result) => {
2477
2510
  const { data: { session }, error: sessionError, } = result;
2478
2511
  if (sessionError) {
2479
- return { data: null, error: sessionError };
2512
+ return this._returnResult({ data: null, error: sessionError });
2480
2513
  }
2481
2514
  if (!session) {
2482
- return { data: null, error: new AuthSessionMissingError() };
2515
+ return this._returnResult({ data: null, error: new AuthSessionMissingError() });
2483
2516
  }
2484
2517
  const response = await _request(this.fetch, 'POST', `${this.url}/oauth/authorizations/${authorizationId}/consent`, {
2485
2518
  headers: this.headers,
@@ -2498,7 +2531,7 @@ class GoTrueClient {
2498
2531
  }
2499
2532
  catch (error) {
2500
2533
  if (isAuthError(error)) {
2501
- return { data: null, error };
2534
+ return this._returnResult({ data: null, error });
2502
2535
  }
2503
2536
  throw error;
2504
2537
  }
@@ -2512,10 +2545,10 @@ class GoTrueClient {
2512
2545
  return await this._useSession(async (result) => {
2513
2546
  const { data: { session }, error: sessionError, } = result;
2514
2547
  if (sessionError) {
2515
- return { data: null, error: sessionError };
2548
+ return this._returnResult({ data: null, error: sessionError });
2516
2549
  }
2517
2550
  if (!session) {
2518
- return { data: null, error: new AuthSessionMissingError() };
2551
+ return this._returnResult({ data: null, error: new AuthSessionMissingError() });
2519
2552
  }
2520
2553
  const response = await _request(this.fetch, 'POST', `${this.url}/oauth/authorizations/${authorizationId}/consent`, {
2521
2554
  headers: this.headers,
@@ -2534,7 +2567,7 @@ class GoTrueClient {
2534
2567
  }
2535
2568
  catch (error) {
2536
2569
  if (isAuthError(error)) {
2537
- return { data: null, error };
2570
+ return this._returnResult({ data: null, error });
2538
2571
  }
2539
2572
  throw error;
2540
2573
  }
@@ -2593,7 +2626,7 @@ class GoTrueClient {
2593
2626
  if (!token) {
2594
2627
  const { data, error } = await this.getSession();
2595
2628
  if (error || !data.session) {
2596
- return { data: null, error };
2629
+ return this._returnResult({ data: null, error });
2597
2630
  }
2598
2631
  token = data.session.access_token;
2599
2632
  }
@@ -2646,7 +2679,7 @@ class GoTrueClient {
2646
2679
  }
2647
2680
  catch (error) {
2648
2681
  if (isAuthError(error)) {
2649
- return { data: null, error };
2682
+ return this._returnResult({ data: null, error });
2650
2683
  }
2651
2684
  throw error;
2652
2685
  }