@supabase/gotrue-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.
- package/dist/main/GoTrueClient.d.ts +11 -0
- package/dist/main/GoTrueClient.d.ts.map +1 -1
- package/dist/main/GoTrueClient.js +145 -112
- package/dist/main/GoTrueClient.js.map +1 -1
- package/dist/main/lib/types.d.ts +5 -0
- package/dist/main/lib/types.d.ts.map +1 -1
- package/dist/main/lib/types.js.map +1 -1
- package/dist/main/lib/version.d.ts +1 -1
- package/dist/main/lib/version.d.ts.map +1 -1
- package/dist/main/lib/version.js +1 -1
- package/dist/main/lib/version.js.map +1 -1
- package/dist/module/GoTrueClient.d.ts +11 -0
- package/dist/module/GoTrueClient.d.ts.map +1 -1
- package/dist/module/GoTrueClient.js +145 -112
- package/dist/module/GoTrueClient.js.map +1 -1
- package/dist/module/lib/types.d.ts +5 -0
- package/dist/module/lib/types.d.ts.map +1 -1
- package/dist/module/lib/types.js.map +1 -1
- package/dist/module/lib/version.d.ts +1 -1
- package/dist/module/lib/version.d.ts.map +1 -1
- package/dist/module/lib/version.js +1 -1
- package/dist/module/lib/version.js.map +1 -1
- package/dist/tsconfig.module.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/GoTrueClient.ts +149 -112
- package/src/lib/types.ts +5 -0
- package/src/lib/version.ts +1 -1
|
@@ -24,6 +24,7 @@ const DEFAULT_OPTIONS = {
|
|
|
24
24
|
flowType: 'implicit',
|
|
25
25
|
debug: false,
|
|
26
26
|
hasCustomAuthorizationHeader: false,
|
|
27
|
+
throwOnError: false,
|
|
27
28
|
};
|
|
28
29
|
async function lockNoOp(name, acquireTimeout, fn) {
|
|
29
30
|
return await fn();
|
|
@@ -111,6 +112,7 @@ class GoTrueClient {
|
|
|
111
112
|
this.detectSessionInUrl = settings.detectSessionInUrl;
|
|
112
113
|
this.flowType = settings.flowType;
|
|
113
114
|
this.hasCustomAuthorizationHeader = settings.hasCustomAuthorizationHeader;
|
|
115
|
+
this.throwOnError = settings.throwOnError;
|
|
114
116
|
if (settings.lock) {
|
|
115
117
|
this.lock = settings.lock;
|
|
116
118
|
}
|
|
@@ -174,6 +176,23 @@ class GoTrueClient {
|
|
|
174
176
|
}
|
|
175
177
|
this.initialize();
|
|
176
178
|
}
|
|
179
|
+
/**
|
|
180
|
+
* Returns whether error throwing mode is enabled for this client.
|
|
181
|
+
*/
|
|
182
|
+
isThrowOnErrorEnabled() {
|
|
183
|
+
return this.throwOnError;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Centralizes return handling with optional error throwing. When `throwOnError` is enabled
|
|
187
|
+
* and the provided result contains a non-nullish error, the error is thrown instead of
|
|
188
|
+
* being returned. This ensures consistent behavior across all public API methods.
|
|
189
|
+
*/
|
|
190
|
+
_returnResult(result) {
|
|
191
|
+
if (this.throwOnError && result && result.error) {
|
|
192
|
+
throw result.error;
|
|
193
|
+
}
|
|
194
|
+
return result;
|
|
195
|
+
}
|
|
177
196
|
_debug(...args) {
|
|
178
197
|
if (this.logDebugMessages) {
|
|
179
198
|
this.logger(`GoTrueClient@${this.instanceID} (${version_1.version}) ${new Date().toISOString()}`, ...args);
|
|
@@ -205,13 +224,16 @@ class GoTrueClient {
|
|
|
205
224
|
async _initialize() {
|
|
206
225
|
var _a;
|
|
207
226
|
try {
|
|
208
|
-
|
|
227
|
+
let params = {};
|
|
209
228
|
let callbackUrlType = 'none';
|
|
210
|
-
if (
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
229
|
+
if ((0, helpers_1.isBrowser)()) {
|
|
230
|
+
params = (0, helpers_1.parseParametersFromURL)(window.location.href);
|
|
231
|
+
if (this._isImplicitGrantCallback(params)) {
|
|
232
|
+
callbackUrlType = 'implicit';
|
|
233
|
+
}
|
|
234
|
+
else if (await this._isPKCECallback(params)) {
|
|
235
|
+
callbackUrlType = 'pkce';
|
|
236
|
+
}
|
|
215
237
|
}
|
|
216
238
|
/**
|
|
217
239
|
* Attempt to get the session from the URL only if these conditions are fulfilled
|
|
@@ -255,11 +277,11 @@ class GoTrueClient {
|
|
|
255
277
|
}
|
|
256
278
|
catch (error) {
|
|
257
279
|
if ((0, errors_1.isAuthError)(error)) {
|
|
258
|
-
return { error };
|
|
280
|
+
return this._returnResult({ error });
|
|
259
281
|
}
|
|
260
|
-
return {
|
|
282
|
+
return this._returnResult({
|
|
261
283
|
error: new errors_1.AuthUnknownError('Unexpected error during initialization', error),
|
|
262
|
-
};
|
|
284
|
+
});
|
|
263
285
|
}
|
|
264
286
|
finally {
|
|
265
287
|
await this._handleVisibilityChange();
|
|
@@ -284,7 +306,7 @@ class GoTrueClient {
|
|
|
284
306
|
});
|
|
285
307
|
const { data, error } = res;
|
|
286
308
|
if (error || !data) {
|
|
287
|
-
return { data: { user: null, session: null }, error: error };
|
|
309
|
+
return this._returnResult({ data: { user: null, session: null }, error: error });
|
|
288
310
|
}
|
|
289
311
|
const session = data.session;
|
|
290
312
|
const user = data.user;
|
|
@@ -292,11 +314,11 @@ class GoTrueClient {
|
|
|
292
314
|
await this._saveSession(data.session);
|
|
293
315
|
await this._notifyAllSubscribers('SIGNED_IN', session);
|
|
294
316
|
}
|
|
295
|
-
return { data: { user, session }, error: null };
|
|
317
|
+
return this._returnResult({ data: { user, session }, error: null });
|
|
296
318
|
}
|
|
297
319
|
catch (error) {
|
|
298
320
|
if ((0, errors_1.isAuthError)(error)) {
|
|
299
|
-
return { data: { user: null, session: null }, error };
|
|
321
|
+
return this._returnResult({ data: { user: null, session: null }, error });
|
|
300
322
|
}
|
|
301
323
|
throw error;
|
|
302
324
|
}
|
|
@@ -356,7 +378,7 @@ class GoTrueClient {
|
|
|
356
378
|
}
|
|
357
379
|
const { data, error } = res;
|
|
358
380
|
if (error || !data) {
|
|
359
|
-
return { data: { user: null, session: null }, error: error };
|
|
381
|
+
return this._returnResult({ data: { user: null, session: null }, error: error });
|
|
360
382
|
}
|
|
361
383
|
const session = data.session;
|
|
362
384
|
const user = data.user;
|
|
@@ -364,11 +386,11 @@ class GoTrueClient {
|
|
|
364
386
|
await this._saveSession(data.session);
|
|
365
387
|
await this._notifyAllSubscribers('SIGNED_IN', session);
|
|
366
388
|
}
|
|
367
|
-
return { data: { user, session }, error: null };
|
|
389
|
+
return this._returnResult({ data: { user, session }, error: null });
|
|
368
390
|
}
|
|
369
391
|
catch (error) {
|
|
370
392
|
if ((0, errors_1.isAuthError)(error)) {
|
|
371
|
-
return { data: { user: null, session: null }, error };
|
|
393
|
+
return this._returnResult({ data: { user: null, session: null }, error });
|
|
372
394
|
}
|
|
373
395
|
throw error;
|
|
374
396
|
}
|
|
@@ -413,23 +435,24 @@ class GoTrueClient {
|
|
|
413
435
|
}
|
|
414
436
|
const { data, error } = res;
|
|
415
437
|
if (error) {
|
|
416
|
-
return { data: { user: null, session: null }, error };
|
|
438
|
+
return this._returnResult({ data: { user: null, session: null }, error });
|
|
417
439
|
}
|
|
418
440
|
else if (!data || !data.session || !data.user) {
|
|
419
|
-
|
|
441
|
+
const invalidTokenError = new errors_1.AuthInvalidTokenResponseError();
|
|
442
|
+
return this._returnResult({ data: { user: null, session: null }, error: invalidTokenError });
|
|
420
443
|
}
|
|
421
444
|
if (data.session) {
|
|
422
445
|
await this._saveSession(data.session);
|
|
423
446
|
await this._notifyAllSubscribers('SIGNED_IN', data.session);
|
|
424
447
|
}
|
|
425
|
-
return {
|
|
448
|
+
return this._returnResult({
|
|
426
449
|
data: Object.assign({ user: data.user, session: data.session }, (data.weak_password ? { weakPassword: data.weak_password } : null)),
|
|
427
450
|
error,
|
|
428
|
-
};
|
|
451
|
+
});
|
|
429
452
|
}
|
|
430
453
|
catch (error) {
|
|
431
454
|
if ((0, errors_1.isAuthError)(error)) {
|
|
432
|
-
return { data: { user: null, session: null }, error };
|
|
455
|
+
return this._returnResult({ data: { user: null, session: null }, error });
|
|
433
456
|
}
|
|
434
457
|
throw error;
|
|
435
458
|
}
|
|
@@ -561,20 +584,18 @@ class GoTrueClient {
|
|
|
561
584
|
throw error;
|
|
562
585
|
}
|
|
563
586
|
if (!data || !data.session || !data.user) {
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
error: new errors_1.AuthInvalidTokenResponseError(),
|
|
567
|
-
};
|
|
587
|
+
const invalidTokenError = new errors_1.AuthInvalidTokenResponseError();
|
|
588
|
+
return this._returnResult({ data: { user: null, session: null }, error: invalidTokenError });
|
|
568
589
|
}
|
|
569
590
|
if (data.session) {
|
|
570
591
|
await this._saveSession(data.session);
|
|
571
592
|
await this._notifyAllSubscribers('SIGNED_IN', data.session);
|
|
572
593
|
}
|
|
573
|
-
return { data: Object.assign({}, data), error };
|
|
594
|
+
return this._returnResult({ data: Object.assign({}, data), error });
|
|
574
595
|
}
|
|
575
596
|
catch (error) {
|
|
576
597
|
if ((0, errors_1.isAuthError)(error)) {
|
|
577
|
-
return { data: { user: null, session: null }, error };
|
|
598
|
+
return this._returnResult({ data: { user: null, session: null }, error });
|
|
578
599
|
}
|
|
579
600
|
throw error;
|
|
580
601
|
}
|
|
@@ -701,20 +722,18 @@ class GoTrueClient {
|
|
|
701
722
|
throw error;
|
|
702
723
|
}
|
|
703
724
|
if (!data || !data.session || !data.user) {
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
error: new errors_1.AuthInvalidTokenResponseError(),
|
|
707
|
-
};
|
|
725
|
+
const invalidTokenError = new errors_1.AuthInvalidTokenResponseError();
|
|
726
|
+
return this._returnResult({ data: { user: null, session: null }, error: invalidTokenError });
|
|
708
727
|
}
|
|
709
728
|
if (data.session) {
|
|
710
729
|
await this._saveSession(data.session);
|
|
711
730
|
await this._notifyAllSubscribers('SIGNED_IN', data.session);
|
|
712
731
|
}
|
|
713
|
-
return { data: Object.assign({}, data), error };
|
|
732
|
+
return this._returnResult({ data: Object.assign({}, data), error });
|
|
714
733
|
}
|
|
715
734
|
catch (error) {
|
|
716
735
|
if ((0, errors_1.isAuthError)(error)) {
|
|
717
|
-
return { data: { user: null, session: null }, error };
|
|
736
|
+
return this._returnResult({ data: { user: null, session: null }, error });
|
|
718
737
|
}
|
|
719
738
|
throw error;
|
|
720
739
|
}
|
|
@@ -736,20 +755,24 @@ class GoTrueClient {
|
|
|
736
755
|
throw error;
|
|
737
756
|
}
|
|
738
757
|
if (!data || !data.session || !data.user) {
|
|
739
|
-
|
|
758
|
+
const invalidTokenError = new errors_1.AuthInvalidTokenResponseError();
|
|
759
|
+
return this._returnResult({
|
|
740
760
|
data: { user: null, session: null, redirectType: null },
|
|
741
|
-
error:
|
|
742
|
-
};
|
|
761
|
+
error: invalidTokenError,
|
|
762
|
+
});
|
|
743
763
|
}
|
|
744
764
|
if (data.session) {
|
|
745
765
|
await this._saveSession(data.session);
|
|
746
766
|
await this._notifyAllSubscribers('SIGNED_IN', data.session);
|
|
747
767
|
}
|
|
748
|
-
return { data: Object.assign(Object.assign({}, data), { redirectType: redirectType !== null && redirectType !== void 0 ? redirectType : null }), error };
|
|
768
|
+
return this._returnResult({ data: Object.assign(Object.assign({}, data), { redirectType: redirectType !== null && redirectType !== void 0 ? redirectType : null }), error });
|
|
749
769
|
}
|
|
750
770
|
catch (error) {
|
|
751
771
|
if ((0, errors_1.isAuthError)(error)) {
|
|
752
|
-
return {
|
|
772
|
+
return this._returnResult({
|
|
773
|
+
data: { user: null, session: null, redirectType: null },
|
|
774
|
+
error,
|
|
775
|
+
});
|
|
753
776
|
}
|
|
754
777
|
throw error;
|
|
755
778
|
}
|
|
@@ -774,23 +797,21 @@ class GoTrueClient {
|
|
|
774
797
|
});
|
|
775
798
|
const { data, error } = res;
|
|
776
799
|
if (error) {
|
|
777
|
-
return { data: { user: null, session: null }, error };
|
|
800
|
+
return this._returnResult({ data: { user: null, session: null }, error });
|
|
778
801
|
}
|
|
779
802
|
else if (!data || !data.session || !data.user) {
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
error: new errors_1.AuthInvalidTokenResponseError(),
|
|
783
|
-
};
|
|
803
|
+
const invalidTokenError = new errors_1.AuthInvalidTokenResponseError();
|
|
804
|
+
return this._returnResult({ data: { user: null, session: null }, error: invalidTokenError });
|
|
784
805
|
}
|
|
785
806
|
if (data.session) {
|
|
786
807
|
await this._saveSession(data.session);
|
|
787
808
|
await this._notifyAllSubscribers('SIGNED_IN', data.session);
|
|
788
809
|
}
|
|
789
|
-
return { data, error };
|
|
810
|
+
return this._returnResult({ data, error });
|
|
790
811
|
}
|
|
791
812
|
catch (error) {
|
|
792
813
|
if ((0, errors_1.isAuthError)(error)) {
|
|
793
|
-
return { data: { user: null, session: null }, error };
|
|
814
|
+
return this._returnResult({ data: { user: null, session: null }, error });
|
|
794
815
|
}
|
|
795
816
|
throw error;
|
|
796
817
|
}
|
|
@@ -835,7 +856,7 @@ class GoTrueClient {
|
|
|
835
856
|
},
|
|
836
857
|
redirectTo: options === null || options === void 0 ? void 0 : options.emailRedirectTo,
|
|
837
858
|
});
|
|
838
|
-
return { data: { user: null, session: null }, error };
|
|
859
|
+
return this._returnResult({ data: { user: null, session: null }, error });
|
|
839
860
|
}
|
|
840
861
|
if ('phone' in credentials) {
|
|
841
862
|
const { phone, options } = credentials;
|
|
@@ -849,13 +870,16 @@ class GoTrueClient {
|
|
|
849
870
|
channel: (_e = options === null || options === void 0 ? void 0 : options.channel) !== null && _e !== void 0 ? _e : 'sms',
|
|
850
871
|
},
|
|
851
872
|
});
|
|
852
|
-
return {
|
|
873
|
+
return this._returnResult({
|
|
874
|
+
data: { user: null, session: null, messageId: data === null || data === void 0 ? void 0 : data.message_id },
|
|
875
|
+
error,
|
|
876
|
+
});
|
|
853
877
|
}
|
|
854
878
|
throw new errors_1.AuthInvalidCredentialsError('You must provide either an email or phone number.');
|
|
855
879
|
}
|
|
856
880
|
catch (error) {
|
|
857
881
|
if ((0, errors_1.isAuthError)(error)) {
|
|
858
|
-
return { data: { user: null, session: null }, error };
|
|
882
|
+
return this._returnResult({ data: { user: null, session: null }, error });
|
|
859
883
|
}
|
|
860
884
|
throw error;
|
|
861
885
|
}
|
|
@@ -882,7 +906,8 @@ class GoTrueClient {
|
|
|
882
906
|
throw error;
|
|
883
907
|
}
|
|
884
908
|
if (!data) {
|
|
885
|
-
|
|
909
|
+
const tokenVerificationError = new Error('An error occurred on token verification.');
|
|
910
|
+
throw tokenVerificationError;
|
|
886
911
|
}
|
|
887
912
|
const session = data.session;
|
|
888
913
|
const user = data.user;
|
|
@@ -890,11 +915,11 @@ class GoTrueClient {
|
|
|
890
915
|
await this._saveSession(session);
|
|
891
916
|
await this._notifyAllSubscribers(params.type == 'recovery' ? 'PASSWORD_RECOVERY' : 'SIGNED_IN', session);
|
|
892
917
|
}
|
|
893
|
-
return { data: { user, session }, error: null };
|
|
918
|
+
return this._returnResult({ data: { user, session }, error: null });
|
|
894
919
|
}
|
|
895
920
|
catch (error) {
|
|
896
921
|
if ((0, errors_1.isAuthError)(error)) {
|
|
897
|
-
return { data: { user: null, session: null }, error };
|
|
922
|
+
return this._returnResult({ data: { user: null, session: null }, error });
|
|
898
923
|
}
|
|
899
924
|
throw error;
|
|
900
925
|
}
|
|
@@ -922,17 +947,18 @@ class GoTrueClient {
|
|
|
922
947
|
;
|
|
923
948
|
[codeChallenge, codeChallengeMethod] = await (0, helpers_1.getCodeChallengeAndMethod)(this.storage, this.storageKey);
|
|
924
949
|
}
|
|
925
|
-
|
|
950
|
+
const result = await (0, fetch_1._request)(this.fetch, 'POST', `${this.url}/sso`, {
|
|
926
951
|
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)
|
|
927
952
|
? { gotrue_meta_security: { captcha_token: params.options.captchaToken } }
|
|
928
953
|
: null)), { skip_http_redirect: true, code_challenge: codeChallenge, code_challenge_method: codeChallengeMethod }),
|
|
929
954
|
headers: this.headers,
|
|
930
955
|
xform: fetch_1._ssoResponse,
|
|
931
956
|
});
|
|
957
|
+
return this._returnResult(result);
|
|
932
958
|
}
|
|
933
959
|
catch (error) {
|
|
934
960
|
if ((0, errors_1.isAuthError)(error)) {
|
|
935
|
-
return { data: null, error };
|
|
961
|
+
return this._returnResult({ data: null, error });
|
|
936
962
|
}
|
|
937
963
|
throw error;
|
|
938
964
|
}
|
|
@@ -959,12 +985,12 @@ class GoTrueClient {
|
|
|
959
985
|
headers: this.headers,
|
|
960
986
|
jwt: session.access_token,
|
|
961
987
|
});
|
|
962
|
-
return { data: { user: null, session: null }, error };
|
|
988
|
+
return this._returnResult({ data: { user: null, session: null }, error });
|
|
963
989
|
});
|
|
964
990
|
}
|
|
965
991
|
catch (error) {
|
|
966
992
|
if ((0, errors_1.isAuthError)(error)) {
|
|
967
|
-
return { data: { user: null, session: null }, error };
|
|
993
|
+
return this._returnResult({ data: { user: null, session: null }, error });
|
|
968
994
|
}
|
|
969
995
|
throw error;
|
|
970
996
|
}
|
|
@@ -986,7 +1012,7 @@ class GoTrueClient {
|
|
|
986
1012
|
},
|
|
987
1013
|
redirectTo: options === null || options === void 0 ? void 0 : options.emailRedirectTo,
|
|
988
1014
|
});
|
|
989
|
-
return { data: { user: null, session: null }, error };
|
|
1015
|
+
return this._returnResult({ data: { user: null, session: null }, error });
|
|
990
1016
|
}
|
|
991
1017
|
else if ('phone' in credentials) {
|
|
992
1018
|
const { phone, type, options } = credentials;
|
|
@@ -998,13 +1024,16 @@ class GoTrueClient {
|
|
|
998
1024
|
gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken },
|
|
999
1025
|
},
|
|
1000
1026
|
});
|
|
1001
|
-
return {
|
|
1027
|
+
return this._returnResult({
|
|
1028
|
+
data: { user: null, session: null, messageId: data === null || data === void 0 ? void 0 : data.message_id },
|
|
1029
|
+
error,
|
|
1030
|
+
});
|
|
1002
1031
|
}
|
|
1003
1032
|
throw new errors_1.AuthInvalidCredentialsError('You must provide either an email or phone number and a type');
|
|
1004
1033
|
}
|
|
1005
1034
|
catch (error) {
|
|
1006
1035
|
if ((0, errors_1.isAuthError)(error)) {
|
|
1007
|
-
return { data: { user: null, session: null }, error };
|
|
1036
|
+
return this._returnResult({ data: { user: null, session: null }, error });
|
|
1008
1037
|
}
|
|
1009
1038
|
throw error;
|
|
1010
1039
|
}
|
|
@@ -1163,9 +1192,9 @@ class GoTrueClient {
|
|
|
1163
1192
|
}
|
|
1164
1193
|
const { data: session, error } = await this._callRefreshToken(currentSession.refresh_token);
|
|
1165
1194
|
if (error) {
|
|
1166
|
-
return { data: { session: null }, error };
|
|
1195
|
+
return this._returnResult({ data: { session: null }, error });
|
|
1167
1196
|
}
|
|
1168
|
-
return { data: { session }, error: null };
|
|
1197
|
+
return this._returnResult({ data: { session }, error: null });
|
|
1169
1198
|
}
|
|
1170
1199
|
finally {
|
|
1171
1200
|
this._debug('#__loadSession()', 'end');
|
|
@@ -1222,7 +1251,7 @@ class GoTrueClient {
|
|
|
1222
1251
|
await this._removeSession();
|
|
1223
1252
|
await (0, helpers_1.removeItemAsync)(this.storage, `${this.storageKey}-code-verifier`);
|
|
1224
1253
|
}
|
|
1225
|
-
return { data: { user: null }, error };
|
|
1254
|
+
return this._returnResult({ data: { user: null }, error });
|
|
1226
1255
|
}
|
|
1227
1256
|
throw error;
|
|
1228
1257
|
}
|
|
@@ -1260,17 +1289,18 @@ class GoTrueClient {
|
|
|
1260
1289
|
jwt: session.access_token,
|
|
1261
1290
|
xform: fetch_1._userResponse,
|
|
1262
1291
|
});
|
|
1263
|
-
if (userError)
|
|
1292
|
+
if (userError) {
|
|
1264
1293
|
throw userError;
|
|
1294
|
+
}
|
|
1265
1295
|
session.user = data.user;
|
|
1266
1296
|
await this._saveSession(session);
|
|
1267
1297
|
await this._notifyAllSubscribers('USER_UPDATED', session);
|
|
1268
|
-
return { data: { user: session.user }, error: null };
|
|
1298
|
+
return this._returnResult({ data: { user: session.user }, error: null });
|
|
1269
1299
|
});
|
|
1270
1300
|
}
|
|
1271
1301
|
catch (error) {
|
|
1272
1302
|
if ((0, errors_1.isAuthError)(error)) {
|
|
1273
|
-
return { data: { user: null }, error };
|
|
1303
|
+
return this._returnResult({ data: { user: null }, error });
|
|
1274
1304
|
}
|
|
1275
1305
|
throw error;
|
|
1276
1306
|
}
|
|
@@ -1303,7 +1333,7 @@ class GoTrueClient {
|
|
|
1303
1333
|
if (hasExpired) {
|
|
1304
1334
|
const { data: refreshedSession, error } = await this._callRefreshToken(currentSession.refresh_token);
|
|
1305
1335
|
if (error) {
|
|
1306
|
-
return { data: { user: null, session: null }, error: error };
|
|
1336
|
+
return this._returnResult({ data: { user: null, session: null }, error: error });
|
|
1307
1337
|
}
|
|
1308
1338
|
if (!refreshedSession) {
|
|
1309
1339
|
return { data: { user: null, session: null }, error: null };
|
|
@@ -1326,11 +1356,11 @@ class GoTrueClient {
|
|
|
1326
1356
|
await this._saveSession(session);
|
|
1327
1357
|
await this._notifyAllSubscribers('SIGNED_IN', session);
|
|
1328
1358
|
}
|
|
1329
|
-
return { data: { user: session.user, session }, error: null };
|
|
1359
|
+
return this._returnResult({ data: { user: session.user, session }, error: null });
|
|
1330
1360
|
}
|
|
1331
1361
|
catch (error) {
|
|
1332
1362
|
if ((0, errors_1.isAuthError)(error)) {
|
|
1333
|
-
return { data: { session: null, user: null }, error };
|
|
1363
|
+
return this._returnResult({ data: { session: null, user: null }, error });
|
|
1334
1364
|
}
|
|
1335
1365
|
throw error;
|
|
1336
1366
|
}
|
|
@@ -1363,17 +1393,17 @@ class GoTrueClient {
|
|
|
1363
1393
|
}
|
|
1364
1394
|
const { data: session, error } = await this._callRefreshToken(currentSession.refresh_token);
|
|
1365
1395
|
if (error) {
|
|
1366
|
-
return { data: { user: null, session: null }, error: error };
|
|
1396
|
+
return this._returnResult({ data: { user: null, session: null }, error: error });
|
|
1367
1397
|
}
|
|
1368
1398
|
if (!session) {
|
|
1369
|
-
return { data: { user: null, session: null }, error: null };
|
|
1399
|
+
return this._returnResult({ data: { user: null, session: null }, error: null });
|
|
1370
1400
|
}
|
|
1371
|
-
return { data: { user: session.user, session }, error: null };
|
|
1401
|
+
return this._returnResult({ data: { user: session.user, session }, error: null });
|
|
1372
1402
|
});
|
|
1373
1403
|
}
|
|
1374
1404
|
catch (error) {
|
|
1375
1405
|
if ((0, errors_1.isAuthError)(error)) {
|
|
1376
|
-
return { data: { user: null, session: null }, error };
|
|
1406
|
+
return this._returnResult({ data: { user: null, session: null }, error });
|
|
1377
1407
|
}
|
|
1378
1408
|
throw error;
|
|
1379
1409
|
}
|
|
@@ -1459,11 +1489,11 @@ class GoTrueClient {
|
|
|
1459
1489
|
// Remove tokens from URL
|
|
1460
1490
|
window.location.hash = '';
|
|
1461
1491
|
this._debug('#_getSessionFromURL()', 'clearing window.location.hash');
|
|
1462
|
-
return { data: { session, redirectType: params.type }, error: null };
|
|
1492
|
+
return this._returnResult({ data: { session, redirectType: params.type }, error: null });
|
|
1463
1493
|
}
|
|
1464
1494
|
catch (error) {
|
|
1465
1495
|
if ((0, errors_1.isAuthError)(error)) {
|
|
1466
|
-
return { data: { session: null, redirectType: null }, error };
|
|
1496
|
+
return this._returnResult({ data: { session: null, redirectType: null }, error });
|
|
1467
1497
|
}
|
|
1468
1498
|
throw error;
|
|
1469
1499
|
}
|
|
@@ -1500,7 +1530,7 @@ class GoTrueClient {
|
|
|
1500
1530
|
var _a;
|
|
1501
1531
|
const { data, error: sessionError } = result;
|
|
1502
1532
|
if (sessionError) {
|
|
1503
|
-
return { error: sessionError };
|
|
1533
|
+
return this._returnResult({ error: sessionError });
|
|
1504
1534
|
}
|
|
1505
1535
|
const accessToken = (_a = data.session) === null || _a === void 0 ? void 0 : _a.access_token;
|
|
1506
1536
|
if (accessToken) {
|
|
@@ -1510,7 +1540,7 @@ class GoTrueClient {
|
|
|
1510
1540
|
// ignore 401s since an invalid or expired JWT should sign out the current session
|
|
1511
1541
|
if (!((0, errors_1.isAuthApiError)(error) &&
|
|
1512
1542
|
(error.status === 404 || error.status === 401 || error.status === 403))) {
|
|
1513
|
-
return { error };
|
|
1543
|
+
return this._returnResult({ error });
|
|
1514
1544
|
}
|
|
1515
1545
|
}
|
|
1516
1546
|
}
|
|
@@ -1518,7 +1548,7 @@ class GoTrueClient {
|
|
|
1518
1548
|
await this._removeSession();
|
|
1519
1549
|
await (0, helpers_1.removeItemAsync)(this.storage, `${this.storageKey}-code-verifier`);
|
|
1520
1550
|
}
|
|
1521
|
-
return { error: null };
|
|
1551
|
+
return this._returnResult({ error: null });
|
|
1522
1552
|
});
|
|
1523
1553
|
}
|
|
1524
1554
|
onAuthStateChange(callback) {
|
|
@@ -1587,7 +1617,7 @@ class GoTrueClient {
|
|
|
1587
1617
|
}
|
|
1588
1618
|
catch (error) {
|
|
1589
1619
|
if ((0, errors_1.isAuthError)(error)) {
|
|
1590
|
-
return { data: null, error };
|
|
1620
|
+
return this._returnResult({ data: null, error });
|
|
1591
1621
|
}
|
|
1592
1622
|
throw error;
|
|
1593
1623
|
}
|
|
@@ -1601,11 +1631,11 @@ class GoTrueClient {
|
|
|
1601
1631
|
const { data, error } = await this.getUser();
|
|
1602
1632
|
if (error)
|
|
1603
1633
|
throw error;
|
|
1604
|
-
return { data: { identities: (_a = data.user.identities) !== null && _a !== void 0 ? _a : [] }, error: null };
|
|
1634
|
+
return this._returnResult({ data: { identities: (_a = data.user.identities) !== null && _a !== void 0 ? _a : [] }, error: null });
|
|
1605
1635
|
}
|
|
1606
1636
|
catch (error) {
|
|
1607
1637
|
if ((0, errors_1.isAuthError)(error)) {
|
|
1608
|
-
return { data: null, error };
|
|
1638
|
+
return this._returnResult({ data: null, error });
|
|
1609
1639
|
}
|
|
1610
1640
|
throw error;
|
|
1611
1641
|
}
|
|
@@ -1640,11 +1670,14 @@ class GoTrueClient {
|
|
|
1640
1670
|
if ((0, helpers_1.isBrowser)() && !((_a = credentials.options) === null || _a === void 0 ? void 0 : _a.skipBrowserRedirect)) {
|
|
1641
1671
|
window.location.assign(data === null || data === void 0 ? void 0 : data.url);
|
|
1642
1672
|
}
|
|
1643
|
-
return {
|
|
1673
|
+
return this._returnResult({
|
|
1674
|
+
data: { provider: credentials.provider, url: data === null || data === void 0 ? void 0 : data.url },
|
|
1675
|
+
error: null,
|
|
1676
|
+
});
|
|
1644
1677
|
}
|
|
1645
1678
|
catch (error) {
|
|
1646
1679
|
if ((0, errors_1.isAuthError)(error)) {
|
|
1647
|
-
return { data: { provider: credentials.provider, url: null }, error };
|
|
1680
|
+
return this._returnResult({ data: { provider: credentials.provider, url: null }, error });
|
|
1648
1681
|
}
|
|
1649
1682
|
throw error;
|
|
1650
1683
|
}
|
|
@@ -1672,23 +1705,23 @@ class GoTrueClient {
|
|
|
1672
1705
|
});
|
|
1673
1706
|
const { data, error } = res;
|
|
1674
1707
|
if (error) {
|
|
1675
|
-
return { data: { user: null, session: null }, error };
|
|
1708
|
+
return this._returnResult({ data: { user: null, session: null }, error });
|
|
1676
1709
|
}
|
|
1677
1710
|
else if (!data || !data.session || !data.user) {
|
|
1678
|
-
return {
|
|
1711
|
+
return this._returnResult({
|
|
1679
1712
|
data: { user: null, session: null },
|
|
1680
1713
|
error: new errors_1.AuthInvalidTokenResponseError(),
|
|
1681
|
-
};
|
|
1714
|
+
});
|
|
1682
1715
|
}
|
|
1683
1716
|
if (data.session) {
|
|
1684
1717
|
await this._saveSession(data.session);
|
|
1685
1718
|
await this._notifyAllSubscribers('USER_UPDATED', data.session);
|
|
1686
1719
|
}
|
|
1687
|
-
return { data, error };
|
|
1720
|
+
return this._returnResult({ data, error });
|
|
1688
1721
|
}
|
|
1689
1722
|
catch (error) {
|
|
1690
1723
|
if ((0, errors_1.isAuthError)(error)) {
|
|
1691
|
-
return { data: { user: null, session: null }, error };
|
|
1724
|
+
return this._returnResult({ data: { user: null, session: null }, error });
|
|
1692
1725
|
}
|
|
1693
1726
|
throw error;
|
|
1694
1727
|
}
|
|
@@ -1713,7 +1746,7 @@ class GoTrueClient {
|
|
|
1713
1746
|
}
|
|
1714
1747
|
catch (error) {
|
|
1715
1748
|
if ((0, errors_1.isAuthError)(error)) {
|
|
1716
|
-
return { data: null, error };
|
|
1749
|
+
return this._returnResult({ data: null, error });
|
|
1717
1750
|
}
|
|
1718
1751
|
throw error;
|
|
1719
1752
|
}
|
|
@@ -1749,7 +1782,7 @@ class GoTrueClient {
|
|
|
1749
1782
|
catch (error) {
|
|
1750
1783
|
this._debug(debugName, 'error', error);
|
|
1751
1784
|
if ((0, errors_1.isAuthError)(error)) {
|
|
1752
|
-
return { data: { session: null, user: null }, error };
|
|
1785
|
+
return this._returnResult({ data: { session: null, user: null }, error });
|
|
1753
1786
|
}
|
|
1754
1787
|
throw error;
|
|
1755
1788
|
}
|
|
@@ -2234,7 +2267,7 @@ class GoTrueClient {
|
|
|
2234
2267
|
var _a;
|
|
2235
2268
|
const { data: sessionData, error: sessionError } = result;
|
|
2236
2269
|
if (sessionError) {
|
|
2237
|
-
return { data: null, error: sessionError };
|
|
2270
|
+
return this._returnResult({ data: null, error: sessionError });
|
|
2238
2271
|
}
|
|
2239
2272
|
return await (0, fetch_1._request)(this.fetch, 'DELETE', `${this.url}/factors/${params.factorId}`, {
|
|
2240
2273
|
headers: this.headers,
|
|
@@ -2244,7 +2277,7 @@ class GoTrueClient {
|
|
|
2244
2277
|
}
|
|
2245
2278
|
catch (error) {
|
|
2246
2279
|
if ((0, errors_1.isAuthError)(error)) {
|
|
2247
|
-
return { data: null, error };
|
|
2280
|
+
return this._returnResult({ data: null, error });
|
|
2248
2281
|
}
|
|
2249
2282
|
throw error;
|
|
2250
2283
|
}
|
|
@@ -2255,7 +2288,7 @@ class GoTrueClient {
|
|
|
2255
2288
|
var _a, _b;
|
|
2256
2289
|
const { data: sessionData, error: sessionError } = result;
|
|
2257
2290
|
if (sessionError) {
|
|
2258
|
-
return { data: null, error: sessionError };
|
|
2291
|
+
return this._returnResult({ data: null, error: sessionError });
|
|
2259
2292
|
}
|
|
2260
2293
|
const body = Object.assign({ friendly_name: params.friendlyName, factor_type: params.factorType }, (params.factorType === 'phone'
|
|
2261
2294
|
? { phone: params.phone }
|
|
@@ -2268,17 +2301,17 @@ class GoTrueClient {
|
|
|
2268
2301
|
jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token,
|
|
2269
2302
|
}));
|
|
2270
2303
|
if (error) {
|
|
2271
|
-
return { data: null, error };
|
|
2304
|
+
return this._returnResult({ data: null, error });
|
|
2272
2305
|
}
|
|
2273
2306
|
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)) {
|
|
2274
2307
|
data.totp.qr_code = `data:image/svg+xml;utf-8,${data.totp.qr_code}`;
|
|
2275
2308
|
}
|
|
2276
|
-
return { data, error: null };
|
|
2309
|
+
return this._returnResult({ data, error: null });
|
|
2277
2310
|
});
|
|
2278
2311
|
}
|
|
2279
2312
|
catch (error) {
|
|
2280
2313
|
if ((0, errors_1.isAuthError)(error)) {
|
|
2281
|
-
return { data: null, error };
|
|
2314
|
+
return this._returnResult({ data: null, error });
|
|
2282
2315
|
}
|
|
2283
2316
|
throw error;
|
|
2284
2317
|
}
|
|
@@ -2290,7 +2323,7 @@ class GoTrueClient {
|
|
|
2290
2323
|
var _a;
|
|
2291
2324
|
const { data: sessionData, error: sessionError } = result;
|
|
2292
2325
|
if (sessionError) {
|
|
2293
|
-
return { data: null, error: sessionError };
|
|
2326
|
+
return this._returnResult({ data: null, error: sessionError });
|
|
2294
2327
|
}
|
|
2295
2328
|
const body = Object.assign({ challenge_id: params.challengeId }, ('webauthn' in params
|
|
2296
2329
|
? {
|
|
@@ -2305,16 +2338,16 @@ class GoTrueClient {
|
|
|
2305
2338
|
jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token,
|
|
2306
2339
|
});
|
|
2307
2340
|
if (error) {
|
|
2308
|
-
return { data: null, error };
|
|
2341
|
+
return this._returnResult({ data: null, error });
|
|
2309
2342
|
}
|
|
2310
2343
|
await this._saveSession(Object.assign({ expires_at: Math.round(Date.now() / 1000) + data.expires_in }, data));
|
|
2311
2344
|
await this._notifyAllSubscribers('MFA_CHALLENGE_VERIFIED', data);
|
|
2312
|
-
return { data, error };
|
|
2345
|
+
return this._returnResult({ data, error });
|
|
2313
2346
|
});
|
|
2314
2347
|
}
|
|
2315
2348
|
catch (error) {
|
|
2316
2349
|
if ((0, errors_1.isAuthError)(error)) {
|
|
2317
|
-
return { data: null, error };
|
|
2350
|
+
return this._returnResult({ data: null, error });
|
|
2318
2351
|
}
|
|
2319
2352
|
throw error;
|
|
2320
2353
|
}
|
|
@@ -2327,7 +2360,7 @@ class GoTrueClient {
|
|
|
2327
2360
|
var _a;
|
|
2328
2361
|
const { data: sessionData, error: sessionError } = result;
|
|
2329
2362
|
if (sessionError) {
|
|
2330
|
-
return { data: null, error: sessionError };
|
|
2363
|
+
return this._returnResult({ data: null, error: sessionError });
|
|
2331
2364
|
}
|
|
2332
2365
|
const response = (await (0, fetch_1._request)(this.fetch, 'POST', `${this.url}/factors/${params.factorId}/challenge`, {
|
|
2333
2366
|
body: params,
|
|
@@ -2357,7 +2390,7 @@ class GoTrueClient {
|
|
|
2357
2390
|
}
|
|
2358
2391
|
catch (error) {
|
|
2359
2392
|
if ((0, errors_1.isAuthError)(error)) {
|
|
2360
|
-
return { data: null, error };
|
|
2393
|
+
return this._returnResult({ data: null, error });
|
|
2361
2394
|
}
|
|
2362
2395
|
throw error;
|
|
2363
2396
|
}
|
|
@@ -2373,7 +2406,7 @@ class GoTrueClient {
|
|
|
2373
2406
|
factorId: params.factorId,
|
|
2374
2407
|
});
|
|
2375
2408
|
if (challengeError) {
|
|
2376
|
-
return { data: null, error: challengeError };
|
|
2409
|
+
return this._returnResult({ data: null, error: challengeError });
|
|
2377
2410
|
}
|
|
2378
2411
|
return await this._verify({
|
|
2379
2412
|
factorId: params.factorId,
|
|
@@ -2417,7 +2450,7 @@ class GoTrueClient {
|
|
|
2417
2450
|
var _a, _b;
|
|
2418
2451
|
const { data: { session }, error: sessionError, } = await this.getSession();
|
|
2419
2452
|
if (sessionError) {
|
|
2420
|
-
return { data: null, error: sessionError };
|
|
2453
|
+
return this._returnResult({ data: null, error: sessionError });
|
|
2421
2454
|
}
|
|
2422
2455
|
if (!session) {
|
|
2423
2456
|
return {
|
|
@@ -2451,10 +2484,10 @@ class GoTrueClient {
|
|
|
2451
2484
|
return await this._useSession(async (result) => {
|
|
2452
2485
|
const { data: { session }, error: sessionError, } = result;
|
|
2453
2486
|
if (sessionError) {
|
|
2454
|
-
return { data: null, error: sessionError };
|
|
2487
|
+
return this._returnResult({ data: null, error: sessionError });
|
|
2455
2488
|
}
|
|
2456
2489
|
if (!session) {
|
|
2457
|
-
return { data: null, error: new errors_1.AuthSessionMissingError() };
|
|
2490
|
+
return this._returnResult({ data: null, error: new errors_1.AuthSessionMissingError() });
|
|
2458
2491
|
}
|
|
2459
2492
|
return await (0, fetch_1._request)(this.fetch, 'GET', `${this.url}/oauth/authorizations/${authorizationId}`, {
|
|
2460
2493
|
headers: this.headers,
|
|
@@ -2465,7 +2498,7 @@ class GoTrueClient {
|
|
|
2465
2498
|
}
|
|
2466
2499
|
catch (error) {
|
|
2467
2500
|
if ((0, errors_1.isAuthError)(error)) {
|
|
2468
|
-
return { data: null, error };
|
|
2501
|
+
return this._returnResult({ data: null, error });
|
|
2469
2502
|
}
|
|
2470
2503
|
throw error;
|
|
2471
2504
|
}
|
|
@@ -2479,10 +2512,10 @@ class GoTrueClient {
|
|
|
2479
2512
|
return await this._useSession(async (result) => {
|
|
2480
2513
|
const { data: { session }, error: sessionError, } = result;
|
|
2481
2514
|
if (sessionError) {
|
|
2482
|
-
return { data: null, error: sessionError };
|
|
2515
|
+
return this._returnResult({ data: null, error: sessionError });
|
|
2483
2516
|
}
|
|
2484
2517
|
if (!session) {
|
|
2485
|
-
return { data: null, error: new errors_1.AuthSessionMissingError() };
|
|
2518
|
+
return this._returnResult({ data: null, error: new errors_1.AuthSessionMissingError() });
|
|
2486
2519
|
}
|
|
2487
2520
|
const response = await (0, fetch_1._request)(this.fetch, 'POST', `${this.url}/oauth/authorizations/${authorizationId}/consent`, {
|
|
2488
2521
|
headers: this.headers,
|
|
@@ -2501,7 +2534,7 @@ class GoTrueClient {
|
|
|
2501
2534
|
}
|
|
2502
2535
|
catch (error) {
|
|
2503
2536
|
if ((0, errors_1.isAuthError)(error)) {
|
|
2504
|
-
return { data: null, error };
|
|
2537
|
+
return this._returnResult({ data: null, error });
|
|
2505
2538
|
}
|
|
2506
2539
|
throw error;
|
|
2507
2540
|
}
|
|
@@ -2515,10 +2548,10 @@ class GoTrueClient {
|
|
|
2515
2548
|
return await this._useSession(async (result) => {
|
|
2516
2549
|
const { data: { session }, error: sessionError, } = result;
|
|
2517
2550
|
if (sessionError) {
|
|
2518
|
-
return { data: null, error: sessionError };
|
|
2551
|
+
return this._returnResult({ data: null, error: sessionError });
|
|
2519
2552
|
}
|
|
2520
2553
|
if (!session) {
|
|
2521
|
-
return { data: null, error: new errors_1.AuthSessionMissingError() };
|
|
2554
|
+
return this._returnResult({ data: null, error: new errors_1.AuthSessionMissingError() });
|
|
2522
2555
|
}
|
|
2523
2556
|
const response = await (0, fetch_1._request)(this.fetch, 'POST', `${this.url}/oauth/authorizations/${authorizationId}/consent`, {
|
|
2524
2557
|
headers: this.headers,
|
|
@@ -2537,7 +2570,7 @@ class GoTrueClient {
|
|
|
2537
2570
|
}
|
|
2538
2571
|
catch (error) {
|
|
2539
2572
|
if ((0, errors_1.isAuthError)(error)) {
|
|
2540
|
-
return { data: null, error };
|
|
2573
|
+
return this._returnResult({ data: null, error });
|
|
2541
2574
|
}
|
|
2542
2575
|
throw error;
|
|
2543
2576
|
}
|
|
@@ -2596,7 +2629,7 @@ class GoTrueClient {
|
|
|
2596
2629
|
if (!token) {
|
|
2597
2630
|
const { data, error } = await this.getSession();
|
|
2598
2631
|
if (error || !data.session) {
|
|
2599
|
-
return { data: null, error };
|
|
2632
|
+
return this._returnResult({ data: null, error });
|
|
2600
2633
|
}
|
|
2601
2634
|
token = data.session.access_token;
|
|
2602
2635
|
}
|
|
@@ -2649,7 +2682,7 @@ class GoTrueClient {
|
|
|
2649
2682
|
}
|
|
2650
2683
|
catch (error) {
|
|
2651
2684
|
if ((0, errors_1.isAuthError)(error)) {
|
|
2652
|
-
return { data: null, error };
|
|
2685
|
+
return this._returnResult({ data: null, error });
|
|
2653
2686
|
}
|
|
2654
2687
|
throw error;
|
|
2655
2688
|
}
|