@supabase/gotrue-js 1.22.13 → 1.22.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/README.md +2 -2
  2. package/dist/main/GoTrueApi.d.ts +3 -0
  3. package/dist/main/GoTrueApi.d.ts.map +1 -1
  4. package/dist/main/GoTrueApi.js +4 -0
  5. package/dist/main/GoTrueApi.js.map +1 -1
  6. package/dist/main/GoTrueClient.d.ts +6 -8
  7. package/dist/main/GoTrueClient.d.ts.map +1 -1
  8. package/dist/main/GoTrueClient.js +48 -17
  9. package/dist/main/GoTrueClient.js.map +1 -1
  10. package/dist/main/lib/constants.d.ts +6 -1
  11. package/dist/main/lib/constants.d.ts.map +1 -1
  12. package/dist/main/lib/constants.js +7 -2
  13. package/dist/main/lib/constants.js.map +1 -1
  14. package/dist/main/lib/fetch.d.ts.map +1 -1
  15. package/dist/main/lib/fetch.js +4 -0
  16. package/dist/main/lib/fetch.js.map +1 -1
  17. package/dist/main/lib/helpers.d.ts +5 -0
  18. package/dist/main/lib/helpers.d.ts.map +1 -1
  19. package/dist/main/lib/helpers.js +44 -1
  20. package/dist/main/lib/helpers.js.map +1 -1
  21. package/dist/main/lib/types.d.ts +9 -0
  22. package/dist/main/lib/types.d.ts.map +1 -1
  23. package/dist/main/lib/version.d.ts +1 -1
  24. package/dist/main/lib/version.js +1 -1
  25. package/dist/module/GoTrueApi.d.ts +3 -0
  26. package/dist/module/GoTrueApi.d.ts.map +1 -1
  27. package/dist/module/GoTrueApi.js +4 -0
  28. package/dist/module/GoTrueApi.js.map +1 -1
  29. package/dist/module/GoTrueClient.d.ts +6 -8
  30. package/dist/module/GoTrueClient.d.ts.map +1 -1
  31. package/dist/module/GoTrueClient.js +50 -19
  32. package/dist/module/GoTrueClient.js.map +1 -1
  33. package/dist/module/lib/constants.d.ts +6 -1
  34. package/dist/module/lib/constants.d.ts.map +1 -1
  35. package/dist/module/lib/constants.js +6 -1
  36. package/dist/module/lib/constants.js.map +1 -1
  37. package/dist/module/lib/fetch.d.ts.map +1 -1
  38. package/dist/module/lib/fetch.js +4 -0
  39. package/dist/module/lib/fetch.js.map +1 -1
  40. package/dist/module/lib/helpers.d.ts +5 -0
  41. package/dist/module/lib/helpers.d.ts.map +1 -1
  42. package/dist/module/lib/helpers.js +39 -0
  43. package/dist/module/lib/helpers.js.map +1 -1
  44. package/dist/module/lib/types.d.ts +9 -0
  45. package/dist/module/lib/types.d.ts.map +1 -1
  46. package/dist/module/lib/version.d.ts +1 -1
  47. package/dist/module/lib/version.js +1 -1
  48. package/package.json +1 -1
  49. package/src/GoTrueApi.ts +5 -0
  50. package/src/GoTrueClient.ts +72 -33
  51. package/src/lib/constants.ts +6 -1
  52. package/src/lib/fetch.ts +5 -0
  53. package/src/lib/helpers.ts +36 -0
  54. package/src/lib/types.ts +13 -0
  55. package/src/lib/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,MAAM,CAAC,MAAM,UAAU,GAAG,uBAAuB,CAAA;AACjD,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAA;AAC1B,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,eAAe,EAAE,aAAa,OAAO,EAAE,EAAE,CAAA;AAC1E,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,GAAG,IAAI,CAAA;AACtC,MAAM,CAAC,MAAM,WAAW,GAAG,qBAAqB,CAAA;AAChD,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IACrB,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,GAAG;IACT,QAAQ,EAAE,KAAK;CAChB,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,MAAM,CAAC,MAAM,UAAU,GAAG,uBAAuB,CAAA;AACjD,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAA;AAC1B,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,eAAe,EAAE,aAAa,OAAO,EAAE,EAAE,CAAA;AAC1E,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAA,CAAC,aAAa;AAC7C,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,aAAa,EAAE,gBAAgB;IAC/B,WAAW,EAAE,EAAE;IACf,cAAc,EAAE,CAAC,EAAE,iBAAiB;CACrC,CAAA;AACD,MAAM,CAAC,MAAM,WAAW,GAAG,qBAAqB,CAAA;AAChD,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IACrB,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,GAAG;IACT,QAAQ,EAAE,KAAK;CAChB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/lib/fetch.ts"],"names":[],"mappings":"AAAA,oBAAY,KAAK,GAAG,OAAO,KAAK,CAAA;AAEhC,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE;QACR,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KACtB,CAAA;IACD,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,oBAAY,iBAAiB,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAA;AAiD3E,wBAAsB,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAE3F;AAED,wBAAsB,IAAI,CACxB,OAAO,EAAE,KAAK,EACd,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,GAAG,CAAC,CAEd;AAED,wBAAsB,GAAG,CACvB,OAAO,EAAE,KAAK,EACd,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,GAAG,CAAC,CAEd;AAED,wBAAsB,MAAM,CAC1B,OAAO,EAAE,KAAK,EACd,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,GAAG,CAAC,CAEd"}
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/lib/fetch.ts"],"names":[],"mappings":"AAEA,oBAAY,KAAK,GAAG,OAAO,KAAK,CAAA;AAEhC,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE;QACR,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KACtB,CAAA;IACD,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,oBAAY,iBAAiB,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAA;AAoD3E,wBAAsB,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAE3F;AAED,wBAAsB,IAAI,CACxB,OAAO,EAAE,KAAK,EACd,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,GAAG,CAAC,CAEd;AAED,wBAAsB,GAAG,CACvB,OAAO,EAAE,KAAK,EACd,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,GAAG,CAAC,CAEd;AAED,wBAAsB,MAAM,CAC1B,OAAO,EAAE,KAAK,EACd,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,GAAG,CAAC,CAEd"}
@@ -7,8 +7,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
+ import { NETWORK_FAILURE } from './constants';
10
11
  const _getErrorMessage = (err) => err.msg || err.message || err.error_description || err.error || JSON.stringify(err);
11
12
  const handleError = (error, reject) => {
13
+ if (!(error === null || error === void 0 ? void 0 : error.status)) {
14
+ return reject({ message: NETWORK_FAILURE.ERROR_MESSAGE });
15
+ }
12
16
  if (typeof error.json !== 'function') {
13
17
  return reject(error);
14
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/lib/fetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/lib/fetch.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAa7C,MAAM,gBAAgB,GAAG,CAAC,GAAQ,EAAU,EAAE,CAC5C,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,iBAAiB,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;AAErF,MAAM,WAAW,GAAG,CAAC,KAAU,EAAE,MAAW,EAAE,EAAE;IAC9C,IAAI,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAA,EAAE;QAClB,OAAO,MAAM,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,aAAa,EAAE,CAAC,CAAA;KAC1D;IACD,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;QACpC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;KACrB;IACD,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,GAAQ,EAAE,EAAE;QAC7B,OAAO,MAAM,CAAC;YACZ,OAAO,EAAE,gBAAgB,CAAC,GAAG,CAAC;YAC9B,MAAM,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,KAAI,GAAG;SAC7B,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CAAC,MAAyB,EAAE,OAAsB,EAAE,IAAa,EAAE,EAAE;IAC7F,MAAM,MAAM,GAAyB,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,KAAI,EAAE,EAAE,CAAA;IAEhF,IAAI,MAAM,KAAK,KAAK,EAAE;QACpB,OAAO,MAAM,CAAA;KACd;IAED,MAAM,CAAC,OAAO,mBAAK,cAAc,EAAE,0BAA0B,IAAK,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAE,CAAA;IACpF,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAElC,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,SAAe,cAAc,CAC3B,OAAc,EACd,MAAyB,EACzB,GAAW,EACX,OAAsB,EACtB,IAAa;;QAEb,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;iBACnD,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACf,IAAI,CAAC,MAAM,CAAC,EAAE;oBAAE,MAAM,MAAM,CAAA;gBAC5B,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa;oBAAE,OAAO,OAAO,CAAA;gBAC1C,OAAO,MAAM,CAAC,IAAI,EAAE,CAAA;YACtB,CAAC,CAAC;iBACD,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;iBAC7B,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;QACjD,CAAC,CAAC,CAAA;IACJ,CAAC;CAAA;AAED,MAAM,UAAgB,GAAG,CAAC,OAAc,EAAE,GAAW,EAAE,OAAsB;;QAC3E,OAAO,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IACrD,CAAC;CAAA;AAED,MAAM,UAAgB,IAAI,CACxB,OAAc,EACd,GAAW,EACX,IAAY,EACZ,OAAsB;;QAEtB,OAAO,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;IAC5D,CAAC;CAAA;AAED,MAAM,UAAgB,GAAG,CACvB,OAAc,EACd,GAAW,EACX,IAAY,EACZ,OAAsB;;QAEtB,OAAO,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;IAC3D,CAAC;CAAA;AAED,MAAM,UAAgB,MAAM,CAC1B,OAAc,EACd,GAAW,EACX,IAAY,EACZ,OAAsB;;QAEtB,OAAO,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;IAC9D,CAAC;CAAA"}
@@ -1,8 +1,13 @@
1
+ import { SupportedStorage } from './types';
1
2
  export declare function expiresAt(expiresIn: number): number;
2
3
  export declare function uuid(): string;
3
4
  export declare const isBrowser: () => boolean;
4
5
  export declare function getParameterByName(name: string, url?: string): string | null;
5
6
  declare type Fetch = typeof fetch;
6
7
  export declare const resolveFetch: (customFetch?: typeof fetch | undefined) => Fetch;
8
+ export declare const setItemAsync: (storage: SupportedStorage, key: string, data: any) => Promise<void>;
9
+ export declare const getItemAsync: (storage: SupportedStorage, key: string) => Promise<any | null>;
10
+ export declare const getItemSynchronously: (storage: SupportedStorage, key: string) => any | null;
11
+ export declare const removeItemAsync: (storage: SupportedStorage, key: string) => Promise<void>;
7
12
  export {};
8
13
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/lib/helpers.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,UAG1C;AAED,wBAAgB,IAAI,WAMnB;AAED,eAAO,MAAM,SAAS,eAAsC,CAAA;AAE5D,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,iBAS5D;AAED,aAAK,KAAK,GAAG,OAAO,KAAK,CAAA;AAEzB,eAAO,MAAM,YAAY,8CAA0B,KAUlD,CAAA"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/lib/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE1C,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,UAG1C;AAED,wBAAgB,IAAI,WAMnB;AAED,eAAO,MAAM,SAAS,eAAsC,CAAA;AAE5D,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,iBAS5D;AAED,aAAK,KAAK,GAAG,OAAO,KAAK,CAAA;AAEzB,eAAO,MAAM,YAAY,8CAA0B,KAUlD,CAAA;AAGD,eAAO,MAAM,YAAY,YACd,gBAAgB,OACpB,MAAM,QACL,GAAG,KACR,QAAQ,IAAI,CAEd,CAAA;AAED,eAAO,MAAM,YAAY,YAAmB,gBAAgB,OAAO,MAAM,KAAG,QAAQ,GAAG,GAAG,IAAI,CAQ7F,CAAA;AAED,eAAO,MAAM,oBAAoB,YAAa,gBAAgB,OAAO,MAAM,KAAG,GAAG,GAAG,IAUnF,CAAA;AAED,eAAO,MAAM,eAAe,YAAmB,gBAAgB,OAAO,MAAM,KAAG,QAAQ,IAAI,CAE1F,CAAA"}
@@ -1,3 +1,12 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
1
10
  import crossFetch from 'cross-fetch';
2
11
  export function expiresAt(expiresIn) {
3
12
  const timeNow = Math.round(Date.now() / 1000);
@@ -36,4 +45,34 @@ export const resolveFetch = (customFetch) => {
36
45
  }
37
46
  return (...args) => _fetch(...args);
38
47
  };
48
+ // LocalStorage helpers
49
+ export const setItemAsync = (storage, key, data) => __awaiter(void 0, void 0, void 0, function* () {
50
+ isBrowser() && (yield (storage === null || storage === void 0 ? void 0 : storage.setItem(key, JSON.stringify(data))));
51
+ });
52
+ export const getItemAsync = (storage, key) => __awaiter(void 0, void 0, void 0, function* () {
53
+ const value = isBrowser() && (yield (storage === null || storage === void 0 ? void 0 : storage.getItem(key)));
54
+ if (!value)
55
+ return null;
56
+ try {
57
+ return JSON.parse(value);
58
+ }
59
+ catch (_a) {
60
+ return value;
61
+ }
62
+ });
63
+ export const getItemSynchronously = (storage, key) => {
64
+ const value = isBrowser() && (storage === null || storage === void 0 ? void 0 : storage.getItem(key));
65
+ if (!value || typeof value !== 'string') {
66
+ return null;
67
+ }
68
+ try {
69
+ return JSON.parse(value);
70
+ }
71
+ catch (_a) {
72
+ return value;
73
+ }
74
+ };
75
+ export const removeItemAsync = (storage, key) => __awaiter(void 0, void 0, void 0, function* () {
76
+ isBrowser() && (yield (storage === null || storage === void 0 ? void 0 : storage.removeItem(key)));
77
+ });
39
78
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/lib/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,aAAa,CAAA;AAEpC,MAAM,UAAU,SAAS,CAAC,SAAiB;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;IAC7C,OAAO,OAAO,GAAG,SAAS,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,IAAI;IAClB,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC;QACxE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAChC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;QACpC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,OAAO,MAAM,KAAK,WAAW,CAAA;AAE5D,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,GAAY;;IAC3D,IAAI,CAAC,GAAG;QAAE,GAAG,GAAG,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,0CAAE,IAAI,KAAI,EAAE,CAAA;IAC5C,6CAA6C;IAC7C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IACtC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,mBAAmB,CAAC,EAC5D,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC3B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IACzB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,CAAA;IAC1B,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;AAC3D,CAAC;AAID,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,WAAmB,EAAS,EAAE;IACzD,IAAI,MAAa,CAAA;IACjB,IAAI,WAAW,EAAE;QACf,MAAM,GAAG,WAAW,CAAA;KACrB;SAAM,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;QACvC,MAAM,GAAG,UAA8B,CAAA;KACxC;SAAM;QACL,MAAM,GAAG,KAAK,CAAA;KACf;IACD,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA;AACrC,CAAC,CAAA"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/lib/helpers.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,8 @@ export interface User {
42
42
  aud: string;
43
43
  confirmation_sent_at?: string;
44
44
  recovery_sent_at?: string;
45
+ email_change_sent_at?: string;
46
+ new_email?: string;
45
47
  invited_at?: string;
46
48
  action_link?: string;
47
49
  email?: string;
@@ -163,4 +165,11 @@ export interface OpenIDConnectCredentials {
163
165
  client_id?: string;
164
166
  issuer?: string;
165
167
  }
168
+ declare type AnyFunction = (...args: any[]) => any;
169
+ declare type MaybePromisify<T> = T | Promise<T>;
170
+ declare type PromisifyMethods<T> = {
171
+ [K in keyof T]: T[K] extends AnyFunction ? (...args: Parameters<T[K]>) => MaybePromisify<ReturnType<T[K]>> : T[K];
172
+ };
173
+ export declare type SupportedStorage = PromisifyMethods<Pick<Storage, 'getItem' | 'setItem' | 'removeItem'>>;
174
+ export {};
166
175
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/types.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const version = "1.22.13";
1
+ export declare const version = "1.22.16";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // generated by genversion
2
- export const version = '1.22.13';
2
+ export const version = '1.22.16';
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@supabase/gotrue-js",
3
- "version": "1.22.13",
3
+ "version": "1.22.16",
4
4
  "description": "Isomorphic GoTrue client",
5
5
  "keywords": [
6
6
  "gotrue",
package/src/GoTrueApi.ts CHANGED
@@ -67,6 +67,7 @@ export default class GoTrueApi {
67
67
  options: {
68
68
  redirectTo?: string
69
69
  scopes?: string
70
+ queryParams?: { [key: string]: string }
70
71
  }
71
72
  ) {
72
73
  const urlParams: string[] = [`provider=${encodeURIComponent(provider)}`]
@@ -76,6 +77,10 @@ export default class GoTrueApi {
76
77
  if (options?.scopes) {
77
78
  urlParams.push(`scopes=${encodeURIComponent(options.scopes)}`)
78
79
  }
80
+ if (options?.queryParams) {
81
+ const query = new URLSearchParams(options.queryParams)
82
+ urlParams.push(`${query}`)
83
+ }
79
84
  return `${this.url}/authorize?${urlParams.join('&')}`
80
85
  }
81
86
 
@@ -1,6 +1,20 @@
1
1
  import GoTrueApi from './GoTrueApi'
2
- import { isBrowser, getParameterByName, uuid } from './lib/helpers'
3
- import { GOTRUE_URL, DEFAULT_HEADERS, STORAGE_KEY } from './lib/constants'
2
+ import {
3
+ isBrowser,
4
+ getParameterByName,
5
+ uuid,
6
+ setItemAsync,
7
+ removeItemAsync,
8
+ getItemSynchronously,
9
+ getItemAsync,
10
+ } from './lib/helpers'
11
+ import {
12
+ GOTRUE_URL,
13
+ DEFAULT_HEADERS,
14
+ STORAGE_KEY,
15
+ EXPIRY_MARGIN,
16
+ NETWORK_FAILURE,
17
+ } from './lib/constants'
4
18
  import { polyfillGlobalThis } from './lib/polyfills'
5
19
  import { Fetch } from './lib/fetch'
6
20
 
@@ -16,6 +30,7 @@ import type {
16
30
  UserCredentials,
17
31
  VerifyOTPParams,
18
32
  OpenIDConnectCredentials,
33
+ SupportedStorage,
19
34
  } from './lib/types'
20
35
 
21
36
  polyfillGlobalThis() // Make "globalThis" available
@@ -29,17 +44,6 @@ const DEFAULT_OPTIONS = {
29
44
  headers: DEFAULT_HEADERS,
30
45
  }
31
46
 
32
- type AnyFunction = (...args: any[]) => any
33
- type MaybePromisify<T> = T | Promise<T>
34
-
35
- type PromisifyMethods<T> = {
36
- [K in keyof T]: T[K] extends AnyFunction
37
- ? (...args: Parameters<T[K]>) => MaybePromisify<ReturnType<T[K]>>
38
- : T[K]
39
- }
40
-
41
- type SupportedStorage = PromisifyMethods<Pick<Storage, 'getItem' | 'setItem' | 'removeItem'>>
42
-
43
47
  export default class GoTrueClient {
44
48
  /**
45
49
  * Namespace for the GoTrue API methods.
@@ -61,6 +65,7 @@ export default class GoTrueClient {
61
65
  protected multiTab: boolean
62
66
  protected stateChangeEmitters: Map<string, Subscription> = new Map()
63
67
  protected refreshTokenTimer?: ReturnType<typeof setTimeout>
68
+ protected networkRetries: number = 0
64
69
 
65
70
  /**
66
71
  * Create a new client for use in the browser.
@@ -101,6 +106,7 @@ export default class GoTrueClient {
101
106
  this._recoverSession()
102
107
  this._recoverAndRefresh()
103
108
  this._listenForMultiTabEvents()
109
+ this._handleVisibilityChange()
104
110
 
105
111
  if (settings.detectSessionInUrl && isBrowser() && !!getParameterByName('access_token')) {
106
112
  // Handle the OAuth redirect
@@ -195,6 +201,7 @@ export default class GoTrueClient {
195
201
  shouldCreateUser?: boolean
196
202
  scopes?: string
197
203
  captchaToken?: string
204
+ queryParams?: { [key: string]: string }
198
205
  } = {}
199
206
  ): Promise<{
200
207
  session: Session | null
@@ -244,6 +251,7 @@ export default class GoTrueClient {
244
251
  return this._handleProviderSignIn(provider, {
245
252
  redirectTo: options.redirectTo,
246
253
  scopes: options.scopes,
254
+ queryParams: options.queryParams,
247
255
  })
248
256
  }
249
257
  if (oidc) {
@@ -553,11 +561,13 @@ export default class GoTrueClient {
553
561
  options: {
554
562
  redirectTo?: string
555
563
  scopes?: string
564
+ queryParams?: { [key: string]: string }
556
565
  } = {}
557
566
  ) {
558
567
  const url: string = this.api.getUrlForProvider(provider, {
559
568
  redirectTo: options.redirectTo,
560
569
  scopes: options.scopes,
570
+ queryParams: options.queryParams,
561
571
  })
562
572
 
563
573
  try {
@@ -610,16 +620,12 @@ export default class GoTrueClient {
610
620
  */
611
621
  private _recoverSession() {
612
622
  try {
613
- const json = isBrowser() && this.localStorage?.getItem(STORAGE_KEY)
614
- if (!json || typeof json !== 'string') {
615
- return null
616
- }
617
-
618
- const data = JSON.parse(json)
623
+ const data = getItemSynchronously(this.localStorage, STORAGE_KEY)
624
+ if (!data) return null
619
625
  const { currentSession, expiresAt } = data
620
626
  const timeNow = Math.round(Date.now() / 1000)
621
627
 
622
- if (expiresAt >= timeNow && currentSession?.user) {
628
+ if (expiresAt >= timeNow + EXPIRY_MARGIN && currentSession?.user) {
623
629
  this._saveSession(currentSession)
624
630
  this._notifyAllSubscribers('SIGNED_IN')
625
631
  }
@@ -634,22 +640,31 @@ export default class GoTrueClient {
634
640
  */
635
641
  private async _recoverAndRefresh() {
636
642
  try {
637
- const json = isBrowser() && (await this.localStorage.getItem(STORAGE_KEY))
638
- if (!json) {
639
- return null
640
- }
641
-
642
- const data = JSON.parse(json)
643
+ const data = await getItemAsync(this.localStorage, STORAGE_KEY)
644
+ if (!data) return null
643
645
  const { currentSession, expiresAt } = data
644
646
  const timeNow = Math.round(Date.now() / 1000)
645
647
 
646
- if (expiresAt < timeNow) {
648
+ if (expiresAt < timeNow + EXPIRY_MARGIN) {
647
649
  if (this.autoRefreshToken && currentSession.refresh_token) {
650
+ this.networkRetries++
648
651
  const { error } = await this._callRefreshToken(currentSession.refresh_token)
649
652
  if (error) {
650
653
  console.log(error.message)
654
+ if (
655
+ error.message === NETWORK_FAILURE.ERROR_MESSAGE &&
656
+ this.networkRetries < NETWORK_FAILURE.MAX_RETRIES
657
+ ) {
658
+ if (this.refreshTokenTimer) clearTimeout(this.refreshTokenTimer)
659
+ this.refreshTokenTimer = setTimeout(
660
+ () => this._recoverAndRefresh(),
661
+ NETWORK_FAILURE.RETRY_INTERVAL ** this.networkRetries * 100 // exponential backoff
662
+ )
663
+ return
664
+ }
651
665
  await this._removeSession()
652
666
  }
667
+ this.networkRetries = 0
653
668
  } else {
654
669
  this._removeSession()
655
670
  }
@@ -703,7 +718,7 @@ export default class GoTrueClient {
703
718
  if (expiresAt) {
704
719
  const timeNow = Math.round(Date.now() / 1000)
705
720
  const expiresIn = expiresAt - timeNow
706
- const refreshDurationBeforeExpires = expiresIn > 60 ? 60 : 0.5
721
+ const refreshDurationBeforeExpires = expiresIn > EXPIRY_MARGIN ? EXPIRY_MARGIN : 0.5
707
722
  this._startAutoRefreshToken((expiresIn - refreshDurationBeforeExpires) * 1000)
708
723
  }
709
724
 
@@ -716,14 +731,14 @@ export default class GoTrueClient {
716
731
 
717
732
  private _persistSession(currentSession: Session) {
718
733
  const data = { currentSession, expiresAt: currentSession.expires_at }
719
- isBrowser() && this.localStorage.setItem(STORAGE_KEY, JSON.stringify(data))
734
+ setItemAsync(this.localStorage, STORAGE_KEY, data)
720
735
  }
721
736
 
722
737
  private async _removeSession() {
723
738
  this.currentSession = null
724
739
  this.currentUser = null
725
740
  if (this.refreshTokenTimer) clearTimeout(this.refreshTokenTimer)
726
- isBrowser() && (await this.localStorage.removeItem(STORAGE_KEY))
741
+ removeItemAsync(this.localStorage, STORAGE_KEY)
727
742
  }
728
743
 
729
744
  /**
@@ -734,7 +749,16 @@ export default class GoTrueClient {
734
749
  if (this.refreshTokenTimer) clearTimeout(this.refreshTokenTimer)
735
750
  if (value <= 0 || !this.autoRefreshToken) return
736
751
 
737
- this.refreshTokenTimer = setTimeout(() => this._callRefreshToken(), value)
752
+ this.refreshTokenTimer = setTimeout(async () => {
753
+ this.networkRetries++
754
+ const { error } = await this._callRefreshToken()
755
+ if (!error) this.networkRetries = 0
756
+ if (
757
+ error?.message === NETWORK_FAILURE.ERROR_MESSAGE &&
758
+ this.networkRetries < NETWORK_FAILURE.MAX_RETRIES
759
+ )
760
+ this._startAutoRefreshToken(NETWORK_FAILURE.RETRY_INTERVAL ** this.networkRetries * 100) // exponential backoff
761
+ }, value)
738
762
  if (typeof this.refreshTokenTimer.unref === 'function') this.refreshTokenTimer.unref()
739
763
  }
740
764
 
@@ -743,7 +767,6 @@ export default class GoTrueClient {
743
767
  */
744
768
  private _listenForMultiTabEvents() {
745
769
  if (!this.multiTab || !isBrowser() || !window?.addEventListener) {
746
- // console.debug('Auth multi-tab support is disabled.')
747
770
  return false
748
771
  }
749
772
 
@@ -752,7 +775,7 @@ export default class GoTrueClient {
752
775
  if (e.key === STORAGE_KEY) {
753
776
  const newSession = JSON.parse(String(e.newValue))
754
777
  if (newSession?.currentSession?.access_token) {
755
- this._recoverAndRefresh()
778
+ this._saveSession(newSession.currentSession)
756
779
  this._notifyAllSubscribers('SIGNED_IN')
757
780
  } else {
758
781
  this._removeSession()
@@ -764,4 +787,20 @@ export default class GoTrueClient {
764
787
  console.error('_listenForMultiTabEvents', error)
765
788
  }
766
789
  }
790
+
791
+ private _handleVisibilityChange() {
792
+ if (!this.multiTab || !isBrowser() || !window?.addEventListener) {
793
+ return false
794
+ }
795
+
796
+ try {
797
+ window?.addEventListener('visibilitychange', () => {
798
+ if (document.visibilityState === 'visible') {
799
+ this._recoverAndRefresh()
800
+ }
801
+ })
802
+ } catch (error) {
803
+ console.error('_handleVisibilityChange', error)
804
+ }
805
+ }
767
806
  }
@@ -2,7 +2,12 @@ import { version } from './version'
2
2
  export const GOTRUE_URL = 'http://localhost:9999'
3
3
  export const AUDIENCE = ''
4
4
  export const DEFAULT_HEADERS = { 'X-Client-Info': `gotrue-js/${version}` }
5
- export const EXPIRY_MARGIN = 60 * 1000
5
+ export const EXPIRY_MARGIN = 10 // in seconds
6
+ export const NETWORK_FAILURE = {
7
+ ERROR_MESSAGE: 'Request Failed',
8
+ MAX_RETRIES: 10,
9
+ RETRY_INTERVAL: 2, // in deciseconds
10
+ }
6
11
  export const STORAGE_KEY = 'supabase.auth.token'
7
12
  export const COOKIE_OPTIONS = {
8
13
  name: 'sb',
package/src/lib/fetch.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { NETWORK_FAILURE } from './constants'
2
+
1
3
  export type Fetch = typeof fetch
2
4
 
3
5
  export interface FetchOptions {
@@ -13,6 +15,9 @@ const _getErrorMessage = (err: any): string =>
13
15
  err.msg || err.message || err.error_description || err.error || JSON.stringify(err)
14
16
 
15
17
  const handleError = (error: any, reject: any) => {
18
+ if (!error?.status) {
19
+ return reject({ message: NETWORK_FAILURE.ERROR_MESSAGE })
20
+ }
16
21
  if (typeof error.json !== 'function') {
17
22
  return reject(error)
18
23
  }
@@ -1,4 +1,5 @@
1
1
  import crossFetch from 'cross-fetch'
2
+ import { SupportedStorage } from './types'
2
3
 
3
4
  export function expiresAt(expiresIn: number) {
4
5
  const timeNow = Math.round(Date.now() / 1000)
@@ -39,3 +40,38 @@ export const resolveFetch = (customFetch?: Fetch): Fetch => {
39
40
  }
40
41
  return (...args) => _fetch(...args)
41
42
  }
43
+
44
+ // LocalStorage helpers
45
+ export const setItemAsync = async (
46
+ storage: SupportedStorage,
47
+ key: string,
48
+ data: any
49
+ ): Promise<void> => {
50
+ isBrowser() && (await storage?.setItem(key, JSON.stringify(data)))
51
+ }
52
+
53
+ export const getItemAsync = async (storage: SupportedStorage, key: string): Promise<any | null> => {
54
+ const value = isBrowser() && (await storage?.getItem(key))
55
+ if (!value) return null
56
+ try {
57
+ return JSON.parse(value)
58
+ } catch {
59
+ return value
60
+ }
61
+ }
62
+
63
+ export const getItemSynchronously = (storage: SupportedStorage, key: string): any | null => {
64
+ const value = isBrowser() && storage?.getItem(key)
65
+ if (!value || typeof value !== 'string') {
66
+ return null
67
+ }
68
+ try {
69
+ return JSON.parse(value)
70
+ } catch {
71
+ return value
72
+ }
73
+ }
74
+
75
+ export const removeItemAsync = async (storage: SupportedStorage, key: string): Promise<void> => {
76
+ isBrowser() && (await storage?.removeItem(key))
77
+ }
package/src/lib/types.ts CHANGED
@@ -69,6 +69,8 @@ export interface User {
69
69
  aud: string
70
70
  confirmation_sent_at?: string
71
71
  recovery_sent_at?: string
72
+ email_change_sent_at?: string
73
+ new_email?: string
72
74
  invited_at?: string
73
75
  action_link?: string
74
76
  email?: string
@@ -209,3 +211,14 @@ export interface OpenIDConnectCredentials {
209
211
  client_id?: string
210
212
  issuer?: string
211
213
  }
214
+
215
+ type AnyFunction = (...args: any[]) => any
216
+ type MaybePromisify<T> = T | Promise<T>
217
+
218
+ type PromisifyMethods<T> = {
219
+ [K in keyof T]: T[K] extends AnyFunction
220
+ ? (...args: Parameters<T[K]>) => MaybePromisify<ReturnType<T[K]>>
221
+ : T[K]
222
+ }
223
+
224
+ export type SupportedStorage = PromisifyMethods<Pick<Storage, 'getItem' | 'setItem' | 'removeItem'>>
@@ -1,2 +1,2 @@
1
1
  // generated by genversion
2
- export const version = '1.22.13'
2
+ export const version = '1.22.16'