@supabase/gotrue-js 2.43.0 → 2.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/main/GoTrueClient.d.ts +6 -1
  2. package/dist/main/GoTrueClient.d.ts.map +1 -1
  3. package/dist/main/GoTrueClient.js +51 -7
  4. package/dist/main/GoTrueClient.js.map +1 -1
  5. package/dist/main/index.d.ts +1 -0
  6. package/dist/main/index.d.ts.map +1 -1
  7. package/dist/main/index.js +5 -1
  8. package/dist/main/index.js.map +1 -1
  9. package/dist/main/lib/locks.d.ts +42 -0
  10. package/dist/main/lib/locks.d.ts.map +1 -0
  11. package/dist/main/lib/locks.js +135 -0
  12. package/dist/main/lib/locks.js.map +1 -0
  13. package/dist/main/lib/types.d.ts +23 -1
  14. package/dist/main/lib/types.d.ts.map +1 -1
  15. package/dist/main/lib/version.d.ts +1 -1
  16. package/dist/main/lib/version.js +1 -1
  17. package/dist/module/GoTrueClient.d.ts +6 -1
  18. package/dist/module/GoTrueClient.d.ts.map +1 -1
  19. package/dist/module/GoTrueClient.js +51 -7
  20. package/dist/module/GoTrueClient.js.map +1 -1
  21. package/dist/module/index.d.ts +1 -0
  22. package/dist/module/index.d.ts.map +1 -1
  23. package/dist/module/index.js +1 -0
  24. package/dist/module/index.js.map +1 -1
  25. package/dist/module/lib/locks.d.ts +42 -0
  26. package/dist/module/lib/locks.d.ts.map +1 -0
  27. package/dist/module/lib/locks.js +130 -0
  28. package/dist/module/lib/locks.js.map +1 -0
  29. package/dist/module/lib/types.d.ts +23 -1
  30. package/dist/module/lib/types.d.ts.map +1 -1
  31. package/dist/module/lib/version.d.ts +1 -1
  32. package/dist/module/lib/version.js +1 -1
  33. package/package.json +1 -1
  34. package/src/GoTrueClient.ts +108 -52
  35. package/src/index.ts +5 -0
  36. package/src/lib/locks.ts +161 -0
  37. package/src/lib/types.ts +24 -0
  38. package/src/lib/version.ts +1 -1
@@ -0,0 +1,130 @@
1
+ /**
2
+ * @experimental
3
+ */
4
+ export const internals = {
5
+ /**
6
+ * @experimental
7
+ */
8
+ debug: !!(globalThis &&
9
+ globalThis.localStorage &&
10
+ globalThis.localStorage.getItem('supabase.gotrue-js.locks.debug') === 'true'),
11
+ };
12
+ export class NavigatorLockAcquireTimeoutError extends Error {
13
+ constructor(message) {
14
+ super(message);
15
+ this.isAcquireTimeout = true;
16
+ }
17
+ }
18
+ /**
19
+ * Implements a global exclusive lock using the Navigator LockManager API. It
20
+ * is available on all browsers released after 2022-03-15 with Safari being the
21
+ * last one to release support. If the API is not available, this function will
22
+ * throw. Make sure you check availablility before configuring {@link
23
+ * GoTrueClient}.
24
+ *
25
+ * You can turn on debugging by setting the `supabase.gotrue-js.locks.debug`
26
+ * local storage item to `true`.
27
+ *
28
+ * Internals:
29
+ *
30
+ * Since the LockManager API does not preserve stack traces for the async
31
+ * function passed in the `request` method, a trick is used where acquiring the
32
+ * lock releases a previously started promise to run the operation in the `fn`
33
+ * function. The lock waits for that promise to finish (with or without error),
34
+ * while the function will finally wait for the result anyway.
35
+ *
36
+ * @experimental
37
+ *
38
+ * @param name Name of the lock to be acquired.
39
+ * @param acquireTimeout If negative, no timeout. If 0 an error is thrown if
40
+ * the lock can't be acquired without waiting. If positive, the lock acquire
41
+ * will time out after so many milliseconds. An error is
42
+ * a timeout if it has `isAcquireTimeout` set to true.
43
+ * @param fn The operation to run once the lock is acquired.
44
+ */
45
+ export async function navigatorLock(name, acquireTimeout, fn) {
46
+ if (internals.debug) {
47
+ console.log('@supabase/gotrue-js: navigatorLock: acquire lock', name, acquireTimeout);
48
+ }
49
+ let beginOperation = null;
50
+ let rejectOperation = null;
51
+ const beginOperationPromise = new Promise((accept, reject) => {
52
+ beginOperation = accept;
53
+ rejectOperation = reject;
54
+ });
55
+ // this lets us preserve stack traces over the operation, which the
56
+ // navigator.locks.request function does not preserve well still
57
+ const result = (async () => {
58
+ await beginOperationPromise;
59
+ if (internals.debug) {
60
+ console.log('@supabase/gotrue-js: navigatorLock: operation start');
61
+ }
62
+ try {
63
+ return await fn();
64
+ }
65
+ finally {
66
+ if (internals.debug) {
67
+ console.log('@supabase/gotrue-js: navigatorLock: operation end');
68
+ }
69
+ }
70
+ })();
71
+ const abortController = new globalThis.AbortController();
72
+ if (acquireTimeout > 0) {
73
+ setTimeout(() => {
74
+ beginOperation = null;
75
+ abortController.abort();
76
+ if (rejectOperation) {
77
+ if (internals.debug) {
78
+ console.log('@supabase/gotrue-js: navigatorLock acquire timed out', name);
79
+ }
80
+ if (rejectOperation) {
81
+ rejectOperation(new NavigatorLockAcquireTimeoutError(`Acquiring an exclusive Navigator LockManager lock "${name}" timed out after ${acquireTimeout}ms`));
82
+ }
83
+ beginOperation = null;
84
+ rejectOperation = null;
85
+ }
86
+ }, acquireTimeout);
87
+ }
88
+ await globalThis.navigator.locks.request(name, {
89
+ mode: 'exclusive',
90
+ ifAvailable: acquireTimeout === 0,
91
+ signal: abortController.signal,
92
+ }, async (lock) => {
93
+ if (lock) {
94
+ if (internals.debug) {
95
+ console.log('@supabase/gotrue-js: navigatorLock acquired', name);
96
+ }
97
+ try {
98
+ if (beginOperation) {
99
+ beginOperation();
100
+ beginOperation = null;
101
+ rejectOperation = null;
102
+ await result;
103
+ }
104
+ }
105
+ catch (e) {
106
+ // not important to handle the error here
107
+ }
108
+ finally {
109
+ if (internals.debug) {
110
+ console.log('@supabase/gotrue-js: navigatorLock released', name);
111
+ }
112
+ }
113
+ }
114
+ else {
115
+ if (internals.debug) {
116
+ console.log('@supabase/gotrue-js: navigatorLock not immediately available', name);
117
+ }
118
+ // no lock was available because acquireTimeout === 0
119
+ const timeout = new Error(`Acquiring an exclusive Navigator LockManager lock "${name}" immediately failed`);
120
+ timeout.isAcquireTimeout = true;
121
+ if (rejectOperation) {
122
+ rejectOperation(new NavigatorLockAcquireTimeoutError(`Acquiring an exclusive Navigator LockManager lock "${name}" immediately failed`));
123
+ }
124
+ beginOperation = null;
125
+ rejectOperation = null;
126
+ }
127
+ });
128
+ return await result;
129
+ }
130
+ //# sourceMappingURL=locks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locks.js","sourceRoot":"","sources":["../../../src/lib/locks.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,25 @@
1
1
  import { AuthError } from './errors';
2
2
  import { Fetch } from './fetch';
3
3
  /** One of the providers supported by GoTrue. */
4
- export declare type Provider = 'apple' | 'azure' | 'bitbucket' | 'discord' | 'facebook' | 'github' | 'gitlab' | 'google' | 'kakao' | 'keycloak' | 'linkedin' | 'notion' | 'slack' | 'spotify' | 'twitch' | 'twitter' | 'workos' | 'zoom';
4
+ export declare type Provider = 'apple' | 'azure' | 'bitbucket' | 'discord' | 'facebook' | 'figma' | 'github' | 'gitlab' | 'google' | 'kakao' | 'keycloak' | 'linkedin' | 'notion' | 'slack' | 'spotify' | 'twitch' | 'twitter' | 'workos' | 'zoom';
5
5
  export declare type AuthChangeEventMFA = 'MFA_CHALLENGE_VERIFIED';
6
6
  export declare type AuthChangeEvent = 'INITIAL_SESSION' | 'PASSWORD_RECOVERY' | 'SIGNED_IN' | 'SIGNED_OUT' | 'TOKEN_REFRESHED' | 'USER_UPDATED' | AuthChangeEventMFA;
7
+ /**
8
+ * Provide your own global lock implementation instead of the default
9
+ * implementation. The function should acquire a lock for the duration of the
10
+ * `fn` async function, such that no other client instances will be able to
11
+ * hold it at the same time.
12
+ *
13
+ * @experimental
14
+ *
15
+ * @param name Name of the lock to be acquired.
16
+ * @param acquireTimeout If negative, no timeout should occur. If positive it
17
+ * should throw an Error with an `isAcquireTimeout`
18
+ * property set to true if the operation fails to be
19
+ * acquired after this much time (ms).
20
+ * @param fn The operation to execute when the lock is acquired.
21
+ */
22
+ export declare type LockFunc = <R>(name: string, acquireTimeout: number, fn: () => Promise<R>) => Promise<R>;
7
23
  export declare type GoTrueClientOptions = {
8
24
  url?: string;
9
25
  headers?: {
@@ -17,6 +33,12 @@ export declare type GoTrueClientOptions = {
17
33
  fetch?: Fetch;
18
34
  flowType?: AuthFlowType;
19
35
  debug?: boolean;
36
+ /**
37
+ * Provide your own locking mechanism based on the environment. By default no locking is done at this time.
38
+ *
39
+ * @experimental
40
+ */
41
+ lock?: LockFunc;
20
42
  };
21
43
  export declare type AuthResponse = {
22
44
  data: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/B,gDAAgD;AAChD,oBAAY,QAAQ,GAChB,OAAO,GACP,OAAO,GACP,WAAW,GACX,SAAS,GACT,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,UAAU,GACV,UAAU,GACV,QAAQ,GACR,OAAO,GACP,SAAS,GACT,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,MAAM,CAAA;AAEV,oBAAY,kBAAkB,GAAG,wBAAwB,CAAA;AAEzD,oBAAY,eAAe,GACvB,iBAAiB,GACjB,mBAAmB,GACnB,WAAW,GACX,YAAY,GACZ,iBAAiB,GACjB,cAAc,GACd,kBAAkB,CAAA;AAEtB,oBAAY,mBAAmB,GAAG;IAEhC,GAAG,CAAC,EAAE,MAAM,CAAA;IAEZ,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;IAEnC,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAE5B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAE1B,cAAc,CAAC,EAAE,OAAO,CAAA;IAExB,OAAO,CAAC,EAAE,gBAAgB,CAAA;IAE1B,KAAK,CAAC,EAAE,KAAK,CAAA;IAEb,QAAQ,CAAC,EAAE,YAAY,CAAA;IAEvB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,oBAAY,YAAY,GACpB;IACE,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;QACjB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;KACxB,CAAA;IACD,KAAK,EAAE,IAAI,CAAA;CACZ,GACD;IACE,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI,CAAA;QACV,OAAO,EAAE,IAAI,CAAA;KACd,CAAA;IACD,KAAK,EAAE,SAAS,CAAA;CACjB,CAAA;AAEL;;;;GAIG;AACH,oBAAY,eAAe,GACvB;IACE,IAAI,EAAE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,OAAO,EAAE,IAAI,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;IAC9D,KAAK,EAAE,IAAI,CAAA;CACZ,GACD;IACE,IAAI,EAAE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,OAAO,EAAE,IAAI,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;IAC9D,KAAK,EAAE,SAAS,CAAA;CACjB,CAAA;AAEL,oBAAY,iBAAiB,GACzB;IACE,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI,CAAA;QACV,OAAO,EAAE,OAAO,CAAA;KACjB,CAAA;IACD,KAAK,EAAE,IAAI,CAAA;CACZ,GACD;IACE,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI,CAAA;QACV,OAAO,EAAE,IAAI,CAAA;KACd,CAAA;IACD,KAAK,EAAE,SAAS,CAAA;CACjB,CAAA;AAEL,oBAAY,aAAa,GACrB;IACE,IAAI,EAAE;QACJ,QAAQ,EAAE,QAAQ,CAAA;QAClB,GAAG,EAAE,MAAM,CAAA;KACZ,CAAA;IACD,KAAK,EAAE,IAAI,CAAA;CACZ,GACD;IACE,IAAI,EAAE;QACJ,QAAQ,EAAE,QAAQ,CAAA;QAClB,GAAG,EAAE,IAAI,CAAA;KACV,CAAA;IACD,KAAK,EAAE,SAAS,CAAA;CACjB,CAAA;AAEL,oBAAY,WAAW,GACnB;IACE,IAAI,EAAE;QACJ;;;;;;WAMG;QACH,GAAG,EAAE,MAAM,CAAA;KACZ,CAAA;IACD,KAAK,EAAE,IAAI,CAAA;CACZ,GACD;IACE,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,SAAS,CAAA;CACjB,CAAA;AAEL,oBAAY,YAAY,GACpB;IACE,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI,CAAA;KACX,CAAA;IACD,KAAK,EAAE,IAAI,CAAA;CACZ,GACD;IACE,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI,CAAA;KACX,CAAA;IACD,KAAK,EAAE,SAAS,CAAA;CACjB,CAAA;AAEL,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,IAAI,CAAA;CACX;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,QAAQ;IACvB,kCAAkC;IAClC,MAAM,EAAE,UAAU,GAAG,KAAK,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAA;IAE1D;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE;QACd,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KACnB,CAAA;IACD,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,MAAM;IACrB,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAA;IAEV,oFAAoF;IACpF,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB;;;OAGG;IACH,WAAW,EAAE,MAAM,GAAG,MAAM,CAAA;IAE5B,uBAAuB;IACvB,MAAM,EAAE,UAAU,GAAG,YAAY,CAAA;IAEjC,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,YAAY,EAAE,eAAe,CAAA;IAC7B,aAAa,EAAE,YAAY,CAAA;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,YAAY,EAAE,CAAA;IAC3B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC;IACvE;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IACV;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAA;IACnE;;OAEG;IACH,WAAW,EAAE,MAAM,IAAI,CAAA;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,oBAAY,6BAA6B,GACrC;IACE,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE;QACR,kDAAkD;QAClD,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB;;;;WAIG;QACH,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,mFAAmF;QACnF,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;CACF,GACD;IACE,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE;QACR;;;;WAIG;QACH,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,mIAAmI;QACnI,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,sDAAsD;QACtD,OAAO,CAAC,EAAE,KAAK,GAAG,UAAU,CAAA;KAC7B,CAAA;CACF,CAAA;AACL,oBAAY,6BAA6B,GACrC;IACE,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE;QACR,mFAAmF;QACnF,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;CACF,GACD;IACE,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE;QACR;;;;WAIG;QACH,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,mFAAmF;QACnF,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;CACF,CAAA;AAEL,oBAAY,iCAAiC,GACzC;IACE,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE;QACR,kDAAkD;QAClD,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB,iFAAiF;QACjF,gBAAgB,CAAC,EAAE,OAAO,CAAA;QAC1B;;;;WAIG;QACH,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,mFAAmF;QACnF,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;CACF,GACD;IACE,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE;QACR,iFAAiF;QACjF,gBAAgB,CAAC,EAAE,OAAO,CAAA;QAC1B;;;;WAIG;QACH,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,mFAAmF;QACnF,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,sDAAsD;QACtD,OAAO,CAAC,EAAE,KAAK,GAAG,UAAU,CAAA;KAC7B,CAAA;CACF,CAAA;AAEL,oBAAY,YAAY,GAAG,UAAU,GAAG,MAAM,CAAA;AAC9C,oBAAY,0BAA0B,GAAG;IACvC,gDAAgD;IAChD,QAAQ,EAAE,QAAQ,CAAA;IAClB,OAAO,CAAC,EAAE;QACR,0DAA0D;QAC1D,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,yEAAyE;QACzE,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,gCAAgC;QAChC,WAAW,CAAC,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAA;QACvC,uIAAuI;QACvI,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAC9B,CAAA;CACF,CAAA;AAED,oBAAY,4BAA4B,GAAG;IACzC,kMAAkM;IAClM,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAA;IAC5D,yUAAyU;IACzU,KAAK,EAAE,MAAM,CAAA;IACb,yHAAyH;IACzH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,sHAAsH;IACtH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE;QACR,mFAAmF;QACnF,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;CACF,CAAA;AAED,oBAAY,eAAe,GAAG,qBAAqB,GAAG,oBAAoB,CAAA;AAC1E,MAAM,WAAW,qBAAqB;IACpC,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAA;IACb,oCAAoC;IACpC,IAAI,EAAE,aAAa,CAAA;IACnB,OAAO,CAAC,EAAE;QACR,0DAA0D;QAC1D,UAAU,CAAC,EAAE,MAAM,CAAA;QAEnB;;;;WAIG;QACH,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;CACF;AACD,MAAM,WAAW,oBAAoB;IACnC,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAA;IACb,oCAAoC;IACpC,IAAI,EAAE,YAAY,CAAA;IAClB,OAAO,CAAC,EAAE;QACR,0DAA0D;QAC1D,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,mFAAmF;QACnF,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;CACF;AAED,oBAAY,aAAa,GAAG,KAAK,GAAG,cAAc,CAAA;AAClD,oBAAY,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,cAAc,GAAG,OAAO,CAAA;AAEpG,oBAAY,YAAY,GACpB;IACE,IAAI,EAAE,OAAO,CAAC,YAAY,EAAE,QAAQ,GAAG,cAAc,CAAC,CAAA;IACtD,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE;QACR,2DAA2D;QAC3D,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB,mFAAmF;QACnF,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;CACF,GACD;IACE,IAAI,EAAE,OAAO,CAAC,aAAa,EAAE,KAAK,GAAG,cAAc,CAAC,CAAA;IACpD,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE;QACR,mFAAmF;QACnF,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;CACF,CAAA;AAEL,oBAAY,aAAa,GACrB;IACE,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAA;IAElB,OAAO,CAAC,EAAE;QACR,2DAA2D;QAC3D,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,mFAAmF;QACnF,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;CACF,GACD;IACE,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAA;IAEd,OAAO,CAAC,EAAE;QACR,2DAA2D;QAC3D,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,mFAAmF;QACnF,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;CACF,CAAA;AAEL,oBAAY,wBAAwB,GAAG;IACrC,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,MAAM,GAAG,YAAY,CAAC,CAAA;CAC3D,CAAA;AAED,oBAAY,+BAA+B,GAAG;IAC5C,IAAI,EAAE,QAAQ,GAAG,WAAW,CAAA;IAC5B,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,MAAM,GAAG,YAAY,CAAC,CAAA;CAC3D,CAAA;AAED,oBAAY,0BAA0B,GAAG;IACvC,IAAI,EAAE,UAAU,CAAA;IAChB,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAA;CAClD,CAAA;AAED,oBAAY,6BAA6B,GAAG;IAC1C,IAAI,EAAE,sBAAsB,GAAG,kBAAkB,CAAA;IACjD,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAA;CAClD,CAAA;AAED,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,oBAAY,kBAAkB,GAC1B,wBAAwB,GACxB,+BAA+B,GAC/B,0BAA0B,GAC1B,6BAA6B,CAAA;AAEjC,oBAAY,oBAAoB,GAC5B;IACE,IAAI,EAAE;QACJ,UAAU,EAAE,sBAAsB,CAAA;QAClC,IAAI,EAAE,IAAI,CAAA;KACX,CAAA;IACD,KAAK,EAAE,IAAI,CAAA;CACZ,GACD;IACE,IAAI,EAAE;QACJ,UAAU,EAAE,IAAI,CAAA;QAChB,IAAI,EAAE,IAAI,CAAA;KACX,CAAA;IACD,KAAK,EAAE,SAAS,CAAA;CACjB,CAAA;AAEL,0DAA0D;AAC1D,oBAAY,sBAAsB,GAAG;IACnC;;;SAGK;IACL,WAAW,EAAE,MAAM,CAAA;IACnB;;;SAGK;IACL,SAAS,EAAE,MAAM,CAAA;IACjB;;SAEK;IACL,YAAY,EAAE,MAAM,CAAA;IACpB,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAA;IACnB,kEAAkE;IAClE,iBAAiB,EAAE,gBAAgB,CAAA;CACpC,CAAA;AAED,oBAAY,gBAAgB,GACxB,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,UAAU,GACV,sBAAsB,GACtB,kBAAkB,CAAA;AAEtB,oBAAY,eAAe,GAAG;IAC5B,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAA;IAClB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,oBAAY,iBAAiB,GAAG;IAC9B,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,oBAAY,eAAe,GAAG;IAC5B,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAA;IAEhB,mEAAmE;IACnE,WAAW,EAAE,MAAM,CAAA;IAEnB,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,oBAAY,kBAAkB,GAAG;IAC/B,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,oBAAY,2BAA2B,GAAG;IACxC,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAA;IAChB,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,oBAAY,qBAAqB,GAC7B;IACE,IAAI,EAAE;QACJ,4DAA4D;QAC5D,YAAY,EAAE,MAAM,CAAA;QAEpB,yCAAyC;QACzC,UAAU,EAAE,MAAM,CAAA;QAElB,+DAA+D;QAC/D,UAAU,EAAE,MAAM,CAAA;QAElB,0EAA0E;QAC1E,aAAa,EAAE,MAAM,CAAA;QAErB,4BAA4B;QAC5B,IAAI,EAAE,IAAI,CAAA;KACX,CAAA;IACD,KAAK,EAAE,IAAI,CAAA;CACZ,GACD;IACE,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,SAAS,CAAA;CACjB,CAAA;AAEL,oBAAY,qBAAqB,GAC7B;IACE,IAAI,EAAE;QACJ,wEAAwE;QACxE,EAAE,EAAE,MAAM,CAAA;QAEV,yDAAyD;QACzD,IAAI,EAAE,MAAM,CAAA;QAEZ,mCAAmC;QACnC,IAAI,EAAE;YACJ;;qEAEyD;YACzD,OAAO,EAAE,MAAM,CAAA;YAEf;;4EAEgE;YAChE,MAAM,EAAE,MAAM,CAAA;YAEd;oEACwD;YACxD,GAAG,EAAE,MAAM,CAAA;SACZ,CAAA;KACF,CAAA;IACD,KAAK,EAAE,IAAI,CAAA;CACZ,GACD;IACE,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,SAAS,CAAA;CACjB,CAAA;AAEL,oBAAY,uBAAuB,GAC/B;IACE,IAAI,EAAE;QACJ,yDAAyD;QACzD,EAAE,EAAE,MAAM,CAAA;KACX,CAAA;IACD,KAAK,EAAE,IAAI,CAAA;CACZ,GACD;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAA;AAEpC,oBAAY,wBAAwB,GAChC;IACE,IAAI,EAAE;QACJ,yCAAyC;QACzC,EAAE,EAAE,MAAM,CAAA;QAEV,8EAA8E;QAC9E,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,KAAK,EAAE,IAAI,CAAA;CACZ,GACD;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAA;AAEpC,oBAAY,0BAA0B,GAClC;IACE,IAAI,EAAE;QACJ,uDAAuD;QACvD,GAAG,EAAE,MAAM,EAAE,CAAA;QAEb,uDAAuD;QACvD,IAAI,EAAE,MAAM,EAAE,CAAA;KACf,CAAA;IACD,KAAK,EAAE,IAAI,CAAA;CACZ,GACD;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAA;AAEpC,oBAAY,4BAA4B,GAAG,MAAM,GAAG,MAAM,CAAA;AAE1D,oBAAY,6CAA6C,GACrD;IACE,IAAI,EAAE;QACJ,wCAAwC;QACxC,YAAY,EAAE,4BAA4B,GAAG,IAAI,CAAA;QAEjD;;;;;WAKG;QACH,SAAS,EAAE,4BAA4B,GAAG,IAAI,CAAA;QAE9C;;;;WAIG;QACH,4BAA4B,EAAE,QAAQ,EAAE,CAAA;KACzC,CAAA;IACD,KAAK,EAAE,IAAI,CAAA;CACZ,GACD;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAA;AAEpC;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;;;OASG;IACH,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAA;IAE/D;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAA;IAExE;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAA;IAE/D;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAA;IAErE;;;OAGG;IACH,kBAAkB,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAA;IAEvF;;;;;;;OAOG;IACH,WAAW,IAAI,OAAO,CAAC,0BAA0B,CAAC,CAAA;IAElD;;;;;;;;;;;;OAYG;IACH,8BAA8B,IAAI,OAAO,CAAC,6CAA6C,CAAC,CAAA;CACzF;AAED;;GAEG;AACH,oBAAY,gCAAgC,GACxC;IACE,IAAI,EAAE;QACJ,sDAAsD;QACtD,EAAE,EAAE,MAAM,CAAA;KACX,CAAA;IACD,KAAK,EAAE,IAAI,CAAA;CACZ,GACD;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAA;AAEpC;;GAEG;AACH,oBAAY,8BAA8B,GAAG;IAC3C,sCAAsC;IACtC,EAAE,EAAE,MAAM,CAAA;IAEV,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED;;GAEG;AACH,oBAAY,+BAA+B,GACvC;IACE,IAAI,EAAE;QACJ,wCAAwC;QACxC,OAAO,EAAE,MAAM,EAAE,CAAA;KAClB,CAAA;IACD,KAAK,EAAE,IAAI,CAAA;CACZ,GACD;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAA;AAEpC;;GAEG;AACH,oBAAY,6BAA6B,GAAG;IAC1C,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,WAAW,CAAC,MAAM,EAAE,6BAA6B,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAA;IAE5F;;;;;;;OAOG;IACH,YAAY,CAAC,MAAM,EAAE,8BAA8B,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAAA;CAChG;AAED,aAAK,WAAW,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;AAC1C,aAAK,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AAEvC,aAAK,gBAAgB,CAAC,CAAC,IAAI;KACxB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,WAAW,GACpC,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAC/D,CAAC,CAAC,CAAC,CAAC;CACT,CAAA;AAED,oBAAY,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC,CAAC,CAAA;AAEpG,oBAAY,gBAAgB,GAAG;IAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAAA;CAAE,CAAA;AAE1D,oBAAY,sBAAsB,GAC9B;IACE,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,IAAI,CAAA;CACZ,GACD;IACE,OAAO,EAAE,IAAI,CAAA;IACb,KAAK,EAAE,SAAS,CAAA;CACjB,CAAA;AAEL,oBAAY,UAAU,GAAG;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,oBAAY,UAAU,GAAG;IACvB,sBAAsB;IACtB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,oBAAY,OAAO,GAAG;IACpB;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAA;CACtC,CAAA"}
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 = "2.43.0";
1
+ export declare const version = "2.44.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Generated by genversion.
2
- export const version = '2.43.0';
2
+ export const version = '2.44.0';
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@supabase/gotrue-js",
3
- "version": "2.43.0",
3
+ "version": "2.44.0",
4
4
  "description": "Isomorphic GoTrue client",
5
5
  "keywords": [
6
6
  "gotrue",
@@ -77,11 +77,12 @@ import type {
77
77
  MFAChallengeAndVerifyParams,
78
78
  ResendParams,
79
79
  AuthFlowType,
80
+ LockFunc,
80
81
  } from './lib/types'
81
82
 
82
83
  polyfillGlobalThis() // Make "globalThis" available
83
84
 
84
- const DEFAULT_OPTIONS: Omit<Required<GoTrueClientOptions>, 'fetch' | 'storage'> = {
85
+ const DEFAULT_OPTIONS: Omit<Required<GoTrueClientOptions>, 'fetch' | 'storage' | 'lock'> = {
85
86
  url: GOTRUE_URL,
86
87
  storageKey: STORAGE_KEY,
87
88
  autoRefreshToken: true,
@@ -99,6 +100,10 @@ const AUTO_REFRESH_TICK_DURATION = 30 * 1000
99
100
  * A token refresh will be attempted this many ticks before the current session expires. */
100
101
  const AUTO_REFRESH_TICK_THRESHOLD = 3
101
102
 
103
+ async function lockNoOp<R>(name: string, acquireTimeout: number, fn: () => Promise<R>): Promise<R> {
104
+ return await fn()
105
+ }
106
+
102
107
  export default class GoTrueClient {
103
108
  private static nextInstanceID = 0
104
109
 
@@ -146,6 +151,7 @@ export default class GoTrueClient {
146
151
  [key: string]: string
147
152
  }
148
153
  protected fetch: Fetch
154
+ protected lock: LockFunc
149
155
 
150
156
  /**
151
157
  * Used to broadcast state change events to other tabs listening.
@@ -183,6 +189,7 @@ export default class GoTrueClient {
183
189
  this.url = settings.url
184
190
  this.headers = settings.headers
185
191
  this.fetch = resolveFetch(settings.fetch)
192
+ this.lock = settings.lock || lockNoOp
186
193
  this.detectSessionInUrl = settings.detectSessionInUrl
187
194
  this.flowType = settings.flowType
188
195
 
@@ -255,61 +262,65 @@ export default class GoTrueClient {
255
262
  throw new Error('Double call of #_initialize()')
256
263
  }
257
264
 
258
- this.initializePromise = stackGuard('_initialize', async () => {
259
- try {
260
- const isPKCEFlow = isBrowser() ? await this._isPKCEFlow() : false
261
- this._debug('#_initialize()', 'begin', 'is PKCE flow', isPKCEFlow)
265
+ this.initializePromise = this._acquireLock(
266
+ -1,
267
+ async () =>
268
+ await stackGuard('_initialize', async () => {
269
+ try {
270
+ const isPKCEFlow = isBrowser() ? await this._isPKCEFlow() : false
271
+ this._debug('#_initialize()', 'begin', 'is PKCE flow', isPKCEFlow)
262
272
 
263
- if (isPKCEFlow || (this.detectSessionInUrl && this._isImplicitGrantFlow())) {
264
- const { data, error } = await this._getSessionFromUrl(isPKCEFlow)
265
- if (error) {
266
- this._debug('#_initialize()', 'error detecting session from URL', error)
273
+ if (isPKCEFlow || (this.detectSessionInUrl && this._isImplicitGrantFlow())) {
274
+ const { data, error } = await this._getSessionFromUrl(isPKCEFlow)
275
+ if (error) {
276
+ this._debug('#_initialize()', 'error detecting session from URL', error)
267
277
 
268
- // failed login attempt via url,
269
- // remove old session as in verifyOtp, signUp and signInWith*
270
- await this._removeSession()
278
+ // failed login attempt via url,
279
+ // remove old session as in verifyOtp, signUp and signInWith*
280
+ await this._removeSession()
271
281
 
272
- return { error }
273
- }
282
+ return { error }
283
+ }
274
284
 
275
- const { session, redirectType } = data
285
+ const { session, redirectType } = data
276
286
 
277
- this._debug(
278
- '#_initialize()',
279
- 'detected session in URL',
280
- session,
281
- 'redirect type',
282
- redirectType
283
- )
287
+ this._debug(
288
+ '#_initialize()',
289
+ 'detected session in URL',
290
+ session,
291
+ 'redirect type',
292
+ redirectType
293
+ )
284
294
 
285
- await this._saveSession(session)
295
+ await this._saveSession(session)
286
296
 
287
- setTimeout(async () => {
288
- if (redirectType === 'recovery') {
289
- await this._notifyAllSubscribers('PASSWORD_RECOVERY', session)
290
- } else {
291
- await this._notifyAllSubscribers('SIGNED_IN', session)
292
- }
293
- }, 0)
297
+ setTimeout(async () => {
298
+ if (redirectType === 'recovery') {
299
+ await this._notifyAllSubscribers('PASSWORD_RECOVERY', session)
300
+ } else {
301
+ await this._notifyAllSubscribers('SIGNED_IN', session)
302
+ }
303
+ }, 0)
294
304
 
295
- return { error: null }
296
- }
297
- // no login attempt via callback url try to recover session from storage
298
- await this._recoverAndRefresh()
299
- return { error: null }
300
- } catch (error) {
301
- if (isAuthError(error)) {
302
- return { error }
303
- }
305
+ return { error: null }
306
+ }
307
+ // no login attempt via callback url try to recover session from storage
308
+ await this._recoverAndRefresh()
309
+ return { error: null }
310
+ } catch (error) {
311
+ if (isAuthError(error)) {
312
+ return { error }
313
+ }
304
314
 
305
- return {
306
- error: new AuthUnknownError('Unexpected error during initialization', error),
307
- }
308
- } finally {
309
- await this._handleVisibilityChange()
310
- this._debug('#_initialize()', 'end')
311
- }
312
- })
315
+ return {
316
+ error: new AuthUnknownError('Unexpected error during initialization', error),
317
+ }
318
+ } finally {
319
+ await this._handleVisibilityChange()
320
+ this._debug('#_initialize()', 'end')
321
+ }
322
+ })
323
+ )
313
324
 
314
325
  return await this.initializePromise
315
326
  }
@@ -781,6 +792,34 @@ export default class GoTrueClient {
781
792
  })
782
793
  }
783
794
 
795
+ /**
796
+ * Acquires a global lock based on the storage key.
797
+ */
798
+ private async _acquireLock<R>(acquireTimeout: number, fn: () => Promise<R>): Promise<R> {
799
+ this._debug('#_acquireLock', 'begin', acquireTimeout)
800
+
801
+ try {
802
+ if (isInStackGuard('_acquireLock')) {
803
+ this._debug('#_acquireLock', 'recursive call')
804
+ return await fn()
805
+ }
806
+
807
+ return await this.lock(`lock:${this.storageKey}`, acquireTimeout, async () => {
808
+ this._debug('#_acquireLock', 'lock acquired for storage key', this.storageKey)
809
+
810
+ try {
811
+ return await stackGuard('_acquireLock', async () => {
812
+ return await fn()
813
+ })
814
+ } finally {
815
+ this._debug('#_acquireLock', 'lock released for storage key', this.storageKey)
816
+ }
817
+ })
818
+ } finally {
819
+ this._debug('#_acquireLock', 'end')
820
+ }
821
+ }
822
+
784
823
  /**
785
824
  * Use instead of {@link #getSession} inside the library. It is
786
825
  * semantically usually what you want, as getting a session involves some
@@ -810,12 +849,29 @@ export default class GoTrueClient {
810
849
  }
811
850
  ) => Promise<R>
812
851
  ): Promise<R> {
813
- return await stackGuard('_useSession', async () => {
814
- // the use of __loadSession here is the only correct use of the function!
815
- const result = await this.__loadSession()
852
+ this._debug('#_useSession', 'begin')
816
853
 
817
- return await fn(result)
818
- })
854
+ try {
855
+ if (isInStackGuard('_useSession')) {
856
+ this._debug('#_useSession', 'recursive call')
857
+
858
+ // the use of __loadSession here is the only correct use of the function!
859
+ const result = await this.__loadSession()
860
+
861
+ return await fn(result)
862
+ }
863
+
864
+ return await this._acquireLock(-1, async () => {
865
+ return await stackGuard('_useSession', async () => {
866
+ // the use of __loadSession here is the only correct use of the function!
867
+ const result = await this.__loadSession()
868
+
869
+ return await fn(result)
870
+ })
871
+ })
872
+ } finally {
873
+ this._debug('#_useSession', 'end')
874
+ }
819
875
  }
820
876
 
821
877
  /**
package/src/index.ts CHANGED
@@ -3,3 +3,8 @@ import GoTrueClient from './GoTrueClient'
3
3
  export { GoTrueAdminApi, GoTrueClient }
4
4
  export * from './lib/types'
5
5
  export * from './lib/errors'
6
+ export {
7
+ navigatorLock,
8
+ NavigatorLockAcquireTimeoutError,
9
+ internals as lockInternals,
10
+ } from './lib/locks'
@@ -0,0 +1,161 @@
1
+ /**
2
+ * @experimental
3
+ */
4
+ export const internals = {
5
+ /**
6
+ * @experimental
7
+ */
8
+ debug: !!(
9
+ globalThis &&
10
+ globalThis.localStorage &&
11
+ globalThis.localStorage.getItem('supabase.gotrue-js.locks.debug') === 'true'
12
+ ),
13
+ }
14
+
15
+ export class NavigatorLockAcquireTimeoutError extends Error {
16
+ public readonly isAcquireTimeout = true
17
+
18
+ constructor(message: string) {
19
+ super(message)
20
+ }
21
+ }
22
+
23
+ /**
24
+ * Implements a global exclusive lock using the Navigator LockManager API. It
25
+ * is available on all browsers released after 2022-03-15 with Safari being the
26
+ * last one to release support. If the API is not available, this function will
27
+ * throw. Make sure you check availablility before configuring {@link
28
+ * GoTrueClient}.
29
+ *
30
+ * You can turn on debugging by setting the `supabase.gotrue-js.locks.debug`
31
+ * local storage item to `true`.
32
+ *
33
+ * Internals:
34
+ *
35
+ * Since the LockManager API does not preserve stack traces for the async
36
+ * function passed in the `request` method, a trick is used where acquiring the
37
+ * lock releases a previously started promise to run the operation in the `fn`
38
+ * function. The lock waits for that promise to finish (with or without error),
39
+ * while the function will finally wait for the result anyway.
40
+ *
41
+ * @experimental
42
+ *
43
+ * @param name Name of the lock to be acquired.
44
+ * @param acquireTimeout If negative, no timeout. If 0 an error is thrown if
45
+ * the lock can't be acquired without waiting. If positive, the lock acquire
46
+ * will time out after so many milliseconds. An error is
47
+ * a timeout if it has `isAcquireTimeout` set to true.
48
+ * @param fn The operation to run once the lock is acquired.
49
+ */
50
+ export async function navigatorLock<R>(
51
+ name: string,
52
+ acquireTimeout: number,
53
+ fn: () => Promise<R>
54
+ ): Promise<R> {
55
+ if (internals.debug) {
56
+ console.log('@supabase/gotrue-js: navigatorLock: acquire lock', name, acquireTimeout)
57
+ }
58
+
59
+ let beginOperation: (() => void) | null = null
60
+ let rejectOperation: ((error: any) => void) | null = null
61
+ const beginOperationPromise = new Promise<void>((accept, reject) => {
62
+ beginOperation = accept
63
+ rejectOperation = reject
64
+ })
65
+
66
+ // this lets us preserve stack traces over the operation, which the
67
+ // navigator.locks.request function does not preserve well still
68
+ const result = (async () => {
69
+ await beginOperationPromise
70
+
71
+ if (internals.debug) {
72
+ console.log('@supabase/gotrue-js: navigatorLock: operation start')
73
+ }
74
+
75
+ try {
76
+ return await fn()
77
+ } finally {
78
+ if (internals.debug) {
79
+ console.log('@supabase/gotrue-js: navigatorLock: operation end')
80
+ }
81
+ }
82
+ })()
83
+
84
+ const abortController = new globalThis.AbortController()
85
+
86
+ if (acquireTimeout > 0) {
87
+ setTimeout(() => {
88
+ beginOperation = null
89
+ abortController.abort()
90
+
91
+ if (rejectOperation) {
92
+ if (internals.debug) {
93
+ console.log('@supabase/gotrue-js: navigatorLock acquire timed out', name)
94
+ }
95
+
96
+ if (rejectOperation) {
97
+ rejectOperation(
98
+ new NavigatorLockAcquireTimeoutError(
99
+ `Acquiring an exclusive Navigator LockManager lock "${name}" timed out after ${acquireTimeout}ms`
100
+ )
101
+ )
102
+ }
103
+ beginOperation = null
104
+ rejectOperation = null
105
+ }
106
+ }, acquireTimeout)
107
+ }
108
+
109
+ await globalThis.navigator.locks.request(
110
+ name,
111
+ {
112
+ mode: 'exclusive',
113
+ ifAvailable: acquireTimeout === 0,
114
+ signal: abortController.signal,
115
+ },
116
+ async (lock) => {
117
+ if (lock) {
118
+ if (internals.debug) {
119
+ console.log('@supabase/gotrue-js: navigatorLock acquired', name)
120
+ }
121
+
122
+ try {
123
+ if (beginOperation) {
124
+ beginOperation()
125
+ beginOperation = null
126
+ rejectOperation = null
127
+ await result
128
+ }
129
+ } catch (e: any) {
130
+ // not important to handle the error here
131
+ } finally {
132
+ if (internals.debug) {
133
+ console.log('@supabase/gotrue-js: navigatorLock released', name)
134
+ }
135
+ }
136
+ } else {
137
+ if (internals.debug) {
138
+ console.log('@supabase/gotrue-js: navigatorLock not immediately available', name)
139
+ }
140
+
141
+ // no lock was available because acquireTimeout === 0
142
+ const timeout: any = new Error(
143
+ `Acquiring an exclusive Navigator LockManager lock "${name}" immediately failed`
144
+ )
145
+ timeout.isAcquireTimeout = true
146
+
147
+ if (rejectOperation) {
148
+ rejectOperation(
149
+ new NavigatorLockAcquireTimeoutError(
150
+ `Acquiring an exclusive Navigator LockManager lock "${name}" immediately failed`
151
+ )
152
+ )
153
+ }
154
+ beginOperation = null
155
+ rejectOperation = null
156
+ }
157
+ }
158
+ )
159
+
160
+ return await result
161
+ }