@depup/supabase__auth-js 2.99.2-depup.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 (195) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +25 -0
  3. package/changes.json +5 -0
  4. package/dist/main/AuthAdminApi.d.ts +4 -0
  5. package/dist/main/AuthAdminApi.d.ts.map +1 -0
  6. package/dist/main/AuthAdminApi.js +7 -0
  7. package/dist/main/AuthAdminApi.js.map +1 -0
  8. package/dist/main/AuthClient.d.ts +4 -0
  9. package/dist/main/AuthClient.d.ts.map +1 -0
  10. package/dist/main/AuthClient.js +7 -0
  11. package/dist/main/AuthClient.js.map +1 -0
  12. package/dist/main/GoTrueAdminApi.d.ts +227 -0
  13. package/dist/main/GoTrueAdminApi.d.ts.map +1 -0
  14. package/dist/main/GoTrueAdminApi.js +596 -0
  15. package/dist/main/GoTrueAdminApi.js.map +1 -0
  16. package/dist/main/GoTrueClient.d.ts +783 -0
  17. package/dist/main/GoTrueClient.d.ts.map +1 -0
  18. package/dist/main/GoTrueClient.js +3029 -0
  19. package/dist/main/GoTrueClient.js.map +1 -0
  20. package/dist/main/index.d.ts +9 -0
  21. package/dist/main/index.d.ts.map +1 -0
  22. package/dist/main/index.js +20 -0
  23. package/dist/main/index.js.map +1 -0
  24. package/dist/main/lib/base64url.d.ts +76 -0
  25. package/dist/main/lib/base64url.d.ts.map +1 -0
  26. package/dist/main/lib/base64url.js +269 -0
  27. package/dist/main/lib/base64url.js.map +1 -0
  28. package/dist/main/lib/constants.d.ts +26 -0
  29. package/dist/main/lib/constants.d.ts.map +1 -0
  30. package/dist/main/lib/constants.js +31 -0
  31. package/dist/main/lib/constants.js.map +1 -0
  32. package/dist/main/lib/error-codes.d.ts +7 -0
  33. package/dist/main/lib/error-codes.d.ts.map +1 -0
  34. package/dist/main/lib/error-codes.js +3 -0
  35. package/dist/main/lib/error-codes.js.map +1 -0
  36. package/dist/main/lib/errors.d.ts +243 -0
  37. package/dist/main/lib/errors.d.ts.map +1 -0
  38. package/dist/main/lib/errors.js +289 -0
  39. package/dist/main/lib/errors.js.map +1 -0
  40. package/dist/main/lib/fetch.d.ts +34 -0
  41. package/dist/main/lib/fetch.d.ts.map +1 -0
  42. package/dist/main/lib/fetch.js +184 -0
  43. package/dist/main/lib/fetch.js.map +1 -0
  44. package/dist/main/lib/helpers.d.ts +91 -0
  45. package/dist/main/lib/helpers.d.ts.map +1 -0
  46. package/dist/main/lib/helpers.js +395 -0
  47. package/dist/main/lib/helpers.js.map +1 -0
  48. package/dist/main/lib/local-storage.d.ts +9 -0
  49. package/dist/main/lib/local-storage.d.ts.map +1 -0
  50. package/dist/main/lib/local-storage.js +21 -0
  51. package/dist/main/lib/local-storage.js.map +1 -0
  52. package/dist/main/lib/locks.d.ts +107 -0
  53. package/dist/main/lib/locks.d.ts.map +1 -0
  54. package/dist/main/lib/locks.js +314 -0
  55. package/dist/main/lib/locks.js.map +1 -0
  56. package/dist/main/lib/polyfills.d.ts +5 -0
  57. package/dist/main/lib/polyfills.d.ts.map +1 -0
  58. package/dist/main/lib/polyfills.js +29 -0
  59. package/dist/main/lib/polyfills.js.map +1 -0
  60. package/dist/main/lib/types.d.ts +1861 -0
  61. package/dist/main/lib/types.d.ts.map +1 -0
  62. package/dist/main/lib/types.js +23 -0
  63. package/dist/main/lib/types.js.map +1 -0
  64. package/dist/main/lib/version.d.ts +2 -0
  65. package/dist/main/lib/version.d.ts.map +1 -0
  66. package/dist/main/lib/version.js +11 -0
  67. package/dist/main/lib/version.js.map +1 -0
  68. package/dist/main/lib/web3/ethereum.d.ts +96 -0
  69. package/dist/main/lib/web3/ethereum.d.ts.map +1 -0
  70. package/dist/main/lib/web3/ethereum.js +66 -0
  71. package/dist/main/lib/web3/ethereum.js.map +1 -0
  72. package/dist/main/lib/web3/solana.d.ts +160 -0
  73. package/dist/main/lib/web3/solana.d.ts.map +1 -0
  74. package/dist/main/lib/web3/solana.js +4 -0
  75. package/dist/main/lib/web3/solana.js.map +1 -0
  76. package/dist/main/lib/webauthn.d.ts +276 -0
  77. package/dist/main/lib/webauthn.d.ts.map +1 -0
  78. package/dist/main/lib/webauthn.dom.d.ts +583 -0
  79. package/dist/main/lib/webauthn.dom.d.ts.map +1 -0
  80. package/dist/main/lib/webauthn.dom.js +4 -0
  81. package/dist/main/lib/webauthn.dom.js.map +1 -0
  82. package/dist/main/lib/webauthn.errors.d.ts +80 -0
  83. package/dist/main/lib/webauthn.errors.d.ts.map +1 -0
  84. package/dist/main/lib/webauthn.errors.js +265 -0
  85. package/dist/main/lib/webauthn.errors.js.map +1 -0
  86. package/dist/main/lib/webauthn.js +706 -0
  87. package/dist/main/lib/webauthn.js.map +1 -0
  88. package/dist/module/AuthAdminApi.d.ts +4 -0
  89. package/dist/module/AuthAdminApi.d.ts.map +1 -0
  90. package/dist/module/AuthAdminApi.js +4 -0
  91. package/dist/module/AuthAdminApi.js.map +1 -0
  92. package/dist/module/AuthClient.d.ts +4 -0
  93. package/dist/module/AuthClient.d.ts.map +1 -0
  94. package/dist/module/AuthClient.js +4 -0
  95. package/dist/module/AuthClient.js.map +1 -0
  96. package/dist/module/GoTrueAdminApi.d.ts +227 -0
  97. package/dist/module/GoTrueAdminApi.d.ts.map +1 -0
  98. package/dist/module/GoTrueAdminApi.js +593 -0
  99. package/dist/module/GoTrueAdminApi.js.map +1 -0
  100. package/dist/module/GoTrueClient.d.ts +783 -0
  101. package/dist/module/GoTrueClient.d.ts.map +1 -0
  102. package/dist/module/GoTrueClient.js +3026 -0
  103. package/dist/module/GoTrueClient.js.map +1 -0
  104. package/dist/module/index.d.ts +9 -0
  105. package/dist/module/index.d.ts.map +1 -0
  106. package/dist/module/index.js +9 -0
  107. package/dist/module/index.js.map +1 -0
  108. package/dist/module/lib/base64url.d.ts +76 -0
  109. package/dist/module/lib/base64url.d.ts.map +1 -0
  110. package/dist/module/lib/base64url.js +257 -0
  111. package/dist/module/lib/base64url.js.map +1 -0
  112. package/dist/module/lib/constants.d.ts +26 -0
  113. package/dist/module/lib/constants.d.ts.map +1 -0
  114. package/dist/module/lib/constants.js +28 -0
  115. package/dist/module/lib/constants.js.map +1 -0
  116. package/dist/module/lib/error-codes.d.ts +7 -0
  117. package/dist/module/lib/error-codes.d.ts.map +1 -0
  118. package/dist/module/lib/error-codes.js +2 -0
  119. package/dist/module/lib/error-codes.js.map +1 -0
  120. package/dist/module/lib/errors.d.ts +243 -0
  121. package/dist/module/lib/errors.d.ts.map +1 -0
  122. package/dist/module/lib/errors.js +266 -0
  123. package/dist/module/lib/errors.js.map +1 -0
  124. package/dist/module/lib/fetch.d.ts +34 -0
  125. package/dist/module/lib/fetch.d.ts.map +1 -0
  126. package/dist/module/lib/fetch.js +174 -0
  127. package/dist/module/lib/fetch.js.map +1 -0
  128. package/dist/module/lib/helpers.d.ts +91 -0
  129. package/dist/module/lib/helpers.d.ts.map +1 -0
  130. package/dist/module/lib/helpers.js +368 -0
  131. package/dist/module/lib/helpers.js.map +1 -0
  132. package/dist/module/lib/local-storage.d.ts +9 -0
  133. package/dist/module/lib/local-storage.d.ts.map +1 -0
  134. package/dist/module/lib/local-storage.js +18 -0
  135. package/dist/module/lib/local-storage.js.map +1 -0
  136. package/dist/module/lib/locks.d.ts +107 -0
  137. package/dist/module/lib/locks.d.ts.map +1 -0
  138. package/dist/module/lib/locks.js +306 -0
  139. package/dist/module/lib/locks.js.map +1 -0
  140. package/dist/module/lib/polyfills.d.ts +5 -0
  141. package/dist/module/lib/polyfills.d.ts.map +1 -0
  142. package/dist/module/lib/polyfills.js +26 -0
  143. package/dist/module/lib/polyfills.js.map +1 -0
  144. package/dist/module/lib/types.d.ts +1861 -0
  145. package/dist/module/lib/types.d.ts.map +1 -0
  146. package/dist/module/lib/types.js +20 -0
  147. package/dist/module/lib/types.js.map +1 -0
  148. package/dist/module/lib/version.d.ts +2 -0
  149. package/dist/module/lib/version.d.ts.map +1 -0
  150. package/dist/module/lib/version.js +8 -0
  151. package/dist/module/lib/version.js.map +1 -0
  152. package/dist/module/lib/web3/ethereum.d.ts +96 -0
  153. package/dist/module/lib/web3/ethereum.d.ts.map +1 -0
  154. package/dist/module/lib/web3/ethereum.js +60 -0
  155. package/dist/module/lib/web3/ethereum.js.map +1 -0
  156. package/dist/module/lib/web3/solana.d.ts +160 -0
  157. package/dist/module/lib/web3/solana.d.ts.map +1 -0
  158. package/dist/module/lib/web3/solana.js +3 -0
  159. package/dist/module/lib/web3/solana.js.map +1 -0
  160. package/dist/module/lib/webauthn.d.ts +276 -0
  161. package/dist/module/lib/webauthn.d.ts.map +1 -0
  162. package/dist/module/lib/webauthn.dom.d.ts +583 -0
  163. package/dist/module/lib/webauthn.dom.d.ts.map +1 -0
  164. package/dist/module/lib/webauthn.dom.js +3 -0
  165. package/dist/module/lib/webauthn.dom.js.map +1 -0
  166. package/dist/module/lib/webauthn.errors.d.ts +80 -0
  167. package/dist/module/lib/webauthn.errors.d.ts.map +1 -0
  168. package/dist/module/lib/webauthn.errors.js +257 -0
  169. package/dist/module/lib/webauthn.errors.js.map +1 -0
  170. package/dist/module/lib/webauthn.js +689 -0
  171. package/dist/module/lib/webauthn.js.map +1 -0
  172. package/dist/tsconfig.module.tsbuildinfo +1 -0
  173. package/dist/tsconfig.tsbuildinfo +1 -0
  174. package/package.json +56 -0
  175. package/src/AuthAdminApi.ts +5 -0
  176. package/src/AuthClient.ts +5 -0
  177. package/src/GoTrueAdminApi.ts +723 -0
  178. package/src/GoTrueClient.ts +4078 -0
  179. package/src/index.ts +13 -0
  180. package/src/lib/base64url.ts +308 -0
  181. package/src/lib/constants.ts +34 -0
  182. package/src/lib/error-codes.ts +90 -0
  183. package/src/lib/errors.ts +324 -0
  184. package/src/lib/fetch.ts +283 -0
  185. package/src/lib/helpers.ts +463 -0
  186. package/src/lib/local-storage.ts +21 -0
  187. package/src/lib/locks.ts +375 -0
  188. package/src/lib/polyfills.ts +23 -0
  189. package/src/lib/types.ts +2229 -0
  190. package/src/lib/version.ts +7 -0
  191. package/src/lib/web3/ethereum.ts +184 -0
  192. package/src/lib/web3/solana.ts +186 -0
  193. package/src/lib/webauthn.dom.ts +636 -0
  194. package/src/lib/webauthn.errors.ts +317 -0
  195. package/src/lib/webauthn.ts +946 -0
@@ -0,0 +1,395 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Deferred = exports.removeItemAsync = exports.getItemAsync = exports.setItemAsync = exports.looksLikeFetchResponse = exports.resolveFetch = exports.supportsLocalStorage = exports.isBrowser = void 0;
4
+ exports.expiresAt = expiresAt;
5
+ exports.generateCallbackId = generateCallbackId;
6
+ exports.parseParametersFromURL = parseParametersFromURL;
7
+ exports.decodeJWT = decodeJWT;
8
+ exports.sleep = sleep;
9
+ exports.retryable = retryable;
10
+ exports.generatePKCEVerifier = generatePKCEVerifier;
11
+ exports.generatePKCEChallenge = generatePKCEChallenge;
12
+ exports.getCodeChallengeAndMethod = getCodeChallengeAndMethod;
13
+ exports.parseResponseAPIVersion = parseResponseAPIVersion;
14
+ exports.validateExp = validateExp;
15
+ exports.getAlgorithm = getAlgorithm;
16
+ exports.validateUUID = validateUUID;
17
+ exports.userNotAvailableProxy = userNotAvailableProxy;
18
+ exports.insecureUserWarningProxy = insecureUserWarningProxy;
19
+ exports.deepClone = deepClone;
20
+ const constants_1 = require("./constants");
21
+ const errors_1 = require("./errors");
22
+ const base64url_1 = require("./base64url");
23
+ function expiresAt(expiresIn) {
24
+ const timeNow = Math.round(Date.now() / 1000);
25
+ return timeNow + expiresIn;
26
+ }
27
+ /**
28
+ * Generates a unique identifier for internal callback subscriptions.
29
+ *
30
+ * This function uses JavaScript Symbols to create guaranteed-unique identifiers
31
+ * for auth state change callbacks. Symbols are ideal for this use case because:
32
+ * - They are guaranteed unique by the JavaScript runtime
33
+ * - They work in all environments (browser, SSR, Node.js)
34
+ * - They avoid issues with Next.js 16 deterministic rendering requirements
35
+ * - They are perfect for internal, non-serializable identifiers
36
+ *
37
+ * Note: This function is only used for internal subscription management,
38
+ * not for security-critical operations like session tokens.
39
+ */
40
+ function generateCallbackId() {
41
+ return Symbol('auth-callback');
42
+ }
43
+ const isBrowser = () => typeof window !== 'undefined' && typeof document !== 'undefined';
44
+ exports.isBrowser = isBrowser;
45
+ const localStorageWriteTests = {
46
+ tested: false,
47
+ writable: false,
48
+ };
49
+ /**
50
+ * Checks whether localStorage is supported on this browser.
51
+ */
52
+ const supportsLocalStorage = () => {
53
+ if (!(0, exports.isBrowser)()) {
54
+ return false;
55
+ }
56
+ try {
57
+ if (typeof globalThis.localStorage !== 'object') {
58
+ return false;
59
+ }
60
+ }
61
+ catch (e) {
62
+ // DOM exception when accessing `localStorage`
63
+ return false;
64
+ }
65
+ if (localStorageWriteTests.tested) {
66
+ return localStorageWriteTests.writable;
67
+ }
68
+ const randomKey = `lswt-${Math.random()}${Math.random()}`;
69
+ try {
70
+ globalThis.localStorage.setItem(randomKey, randomKey);
71
+ globalThis.localStorage.removeItem(randomKey);
72
+ localStorageWriteTests.tested = true;
73
+ localStorageWriteTests.writable = true;
74
+ }
75
+ catch (e) {
76
+ // localStorage can't be written to
77
+ // https://www.chromium.org/for-testers/bug-reporting-guidelines/uncaught-securityerror-failed-to-read-the-localstorage-property-from-window-access-is-denied-for-this-document
78
+ localStorageWriteTests.tested = true;
79
+ localStorageWriteTests.writable = false;
80
+ }
81
+ return localStorageWriteTests.writable;
82
+ };
83
+ exports.supportsLocalStorage = supportsLocalStorage;
84
+ /**
85
+ * Extracts parameters encoded in the URL both in the query and fragment.
86
+ */
87
+ function parseParametersFromURL(href) {
88
+ const result = {};
89
+ const url = new URL(href);
90
+ if (url.hash && url.hash[0] === '#') {
91
+ try {
92
+ const hashSearchParams = new URLSearchParams(url.hash.substring(1));
93
+ hashSearchParams.forEach((value, key) => {
94
+ result[key] = value;
95
+ });
96
+ }
97
+ catch (e) {
98
+ // hash is not a query string
99
+ }
100
+ }
101
+ // search parameters take precedence over hash parameters
102
+ url.searchParams.forEach((value, key) => {
103
+ result[key] = value;
104
+ });
105
+ return result;
106
+ }
107
+ const resolveFetch = (customFetch) => {
108
+ if (customFetch) {
109
+ return (...args) => customFetch(...args);
110
+ }
111
+ return (...args) => fetch(...args);
112
+ };
113
+ exports.resolveFetch = resolveFetch;
114
+ const looksLikeFetchResponse = (maybeResponse) => {
115
+ return (typeof maybeResponse === 'object' &&
116
+ maybeResponse !== null &&
117
+ 'status' in maybeResponse &&
118
+ 'ok' in maybeResponse &&
119
+ 'json' in maybeResponse &&
120
+ typeof maybeResponse.json === 'function');
121
+ };
122
+ exports.looksLikeFetchResponse = looksLikeFetchResponse;
123
+ // Storage helpers
124
+ const setItemAsync = async (storage, key, data) => {
125
+ await storage.setItem(key, JSON.stringify(data));
126
+ };
127
+ exports.setItemAsync = setItemAsync;
128
+ const getItemAsync = async (storage, key) => {
129
+ const value = await storage.getItem(key);
130
+ if (!value) {
131
+ return null;
132
+ }
133
+ try {
134
+ return JSON.parse(value);
135
+ }
136
+ catch (_a) {
137
+ return value;
138
+ }
139
+ };
140
+ exports.getItemAsync = getItemAsync;
141
+ const removeItemAsync = async (storage, key) => {
142
+ await storage.removeItem(key);
143
+ };
144
+ exports.removeItemAsync = removeItemAsync;
145
+ /**
146
+ * A deferred represents some asynchronous work that is not yet finished, which
147
+ * may or may not culminate in a value.
148
+ * Taken from: https://github.com/mike-north/types/blob/master/src/async.ts
149
+ */
150
+ class Deferred {
151
+ constructor() {
152
+ // eslint-disable-next-line @typescript-eslint/no-extra-semi
153
+ ;
154
+ this.promise = new Deferred.promiseConstructor((res, rej) => {
155
+ // eslint-disable-next-line @typescript-eslint/no-extra-semi
156
+ ;
157
+ this.resolve = res;
158
+ this.reject = rej;
159
+ });
160
+ }
161
+ }
162
+ exports.Deferred = Deferred;
163
+ Deferred.promiseConstructor = Promise;
164
+ function decodeJWT(token) {
165
+ const parts = token.split('.');
166
+ if (parts.length !== 3) {
167
+ throw new errors_1.AuthInvalidJwtError('Invalid JWT structure');
168
+ }
169
+ // Regex checks for base64url format
170
+ for (let i = 0; i < parts.length; i++) {
171
+ if (!constants_1.BASE64URL_REGEX.test(parts[i])) {
172
+ throw new errors_1.AuthInvalidJwtError('JWT not in base64url format');
173
+ }
174
+ }
175
+ const data = {
176
+ // using base64url lib
177
+ header: JSON.parse((0, base64url_1.stringFromBase64URL)(parts[0])),
178
+ payload: JSON.parse((0, base64url_1.stringFromBase64URL)(parts[1])),
179
+ signature: (0, base64url_1.base64UrlToUint8Array)(parts[2]),
180
+ raw: {
181
+ header: parts[0],
182
+ payload: parts[1],
183
+ },
184
+ };
185
+ return data;
186
+ }
187
+ /**
188
+ * Creates a promise that resolves to null after some time.
189
+ */
190
+ async function sleep(time) {
191
+ return await new Promise((accept) => {
192
+ setTimeout(() => accept(null), time);
193
+ });
194
+ }
195
+ /**
196
+ * Converts the provided async function into a retryable function. Each result
197
+ * or thrown error is sent to the isRetryable function which should return true
198
+ * if the function should run again.
199
+ */
200
+ function retryable(fn, isRetryable) {
201
+ const promise = new Promise((accept, reject) => {
202
+ // eslint-disable-next-line @typescript-eslint/no-extra-semi
203
+ ;
204
+ (async () => {
205
+ for (let attempt = 0; attempt < Infinity; attempt++) {
206
+ try {
207
+ const result = await fn(attempt);
208
+ if (!isRetryable(attempt, null, result)) {
209
+ accept(result);
210
+ return;
211
+ }
212
+ }
213
+ catch (e) {
214
+ if (!isRetryable(attempt, e)) {
215
+ reject(e);
216
+ return;
217
+ }
218
+ }
219
+ }
220
+ })();
221
+ });
222
+ return promise;
223
+ }
224
+ function dec2hex(dec) {
225
+ return ('0' + dec.toString(16)).substr(-2);
226
+ }
227
+ // Functions below taken from: https://stackoverflow.com/questions/63309409/creating-a-code-verifier-and-challenge-for-pkce-auth-on-spotify-api-in-reactjs
228
+ function generatePKCEVerifier() {
229
+ const verifierLength = 56;
230
+ const array = new Uint32Array(verifierLength);
231
+ if (typeof crypto === 'undefined') {
232
+ const charSet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~';
233
+ const charSetLen = charSet.length;
234
+ let verifier = '';
235
+ for (let i = 0; i < verifierLength; i++) {
236
+ verifier += charSet.charAt(Math.floor(Math.random() * charSetLen));
237
+ }
238
+ return verifier;
239
+ }
240
+ crypto.getRandomValues(array);
241
+ return Array.from(array, dec2hex).join('');
242
+ }
243
+ async function sha256(randomString) {
244
+ const encoder = new TextEncoder();
245
+ const encodedData = encoder.encode(randomString);
246
+ const hash = await crypto.subtle.digest('SHA-256', encodedData);
247
+ const bytes = new Uint8Array(hash);
248
+ return Array.from(bytes)
249
+ .map((c) => String.fromCharCode(c))
250
+ .join('');
251
+ }
252
+ async function generatePKCEChallenge(verifier) {
253
+ const hasCryptoSupport = typeof crypto !== 'undefined' &&
254
+ typeof crypto.subtle !== 'undefined' &&
255
+ typeof TextEncoder !== 'undefined';
256
+ if (!hasCryptoSupport) {
257
+ console.warn('WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256.');
258
+ return verifier;
259
+ }
260
+ const hashed = await sha256(verifier);
261
+ return btoa(hashed).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
262
+ }
263
+ async function getCodeChallengeAndMethod(storage, storageKey, isPasswordRecovery = false) {
264
+ const codeVerifier = generatePKCEVerifier();
265
+ let storedCodeVerifier = codeVerifier;
266
+ if (isPasswordRecovery) {
267
+ storedCodeVerifier += '/PASSWORD_RECOVERY';
268
+ }
269
+ await (0, exports.setItemAsync)(storage, `${storageKey}-code-verifier`, storedCodeVerifier);
270
+ const codeChallenge = await generatePKCEChallenge(codeVerifier);
271
+ const codeChallengeMethod = codeVerifier === codeChallenge ? 'plain' : 's256';
272
+ return [codeChallenge, codeChallengeMethod];
273
+ }
274
+ /** Parses the API version which is 2YYY-MM-DD. */
275
+ const API_VERSION_REGEX = /^2[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/i;
276
+ function parseResponseAPIVersion(response) {
277
+ const apiVersion = response.headers.get(constants_1.API_VERSION_HEADER_NAME);
278
+ if (!apiVersion) {
279
+ return null;
280
+ }
281
+ if (!apiVersion.match(API_VERSION_REGEX)) {
282
+ return null;
283
+ }
284
+ try {
285
+ const date = new Date(`${apiVersion}T00:00:00.0Z`);
286
+ return date;
287
+ }
288
+ catch (e) {
289
+ return null;
290
+ }
291
+ }
292
+ function validateExp(exp) {
293
+ if (!exp) {
294
+ throw new Error('Missing exp claim');
295
+ }
296
+ const timeNow = Math.floor(Date.now() / 1000);
297
+ if (exp <= timeNow) {
298
+ throw new Error('JWT has expired');
299
+ }
300
+ }
301
+ function getAlgorithm(alg) {
302
+ switch (alg) {
303
+ case 'RS256':
304
+ return {
305
+ name: 'RSASSA-PKCS1-v1_5',
306
+ hash: { name: 'SHA-256' },
307
+ };
308
+ case 'ES256':
309
+ return {
310
+ name: 'ECDSA',
311
+ namedCurve: 'P-256',
312
+ hash: { name: 'SHA-256' },
313
+ };
314
+ default:
315
+ throw new Error('Invalid alg claim');
316
+ }
317
+ }
318
+ const UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
319
+ function validateUUID(str) {
320
+ if (!UUID_REGEX.test(str)) {
321
+ throw new Error('@supabase/auth-js: Expected parameter to be UUID but is not');
322
+ }
323
+ }
324
+ function userNotAvailableProxy() {
325
+ const proxyTarget = {};
326
+ return new Proxy(proxyTarget, {
327
+ get: (target, prop) => {
328
+ if (prop === '__isUserNotAvailableProxy') {
329
+ return true;
330
+ }
331
+ // Preventative check for common problematic symbols during cloning/inspection
332
+ // These symbols might be accessed by structuredClone or other internal mechanisms.
333
+ if (typeof prop === 'symbol') {
334
+ const sProp = prop.toString();
335
+ if (sProp === 'Symbol(Symbol.toPrimitive)' ||
336
+ sProp === 'Symbol(Symbol.toStringTag)' ||
337
+ sProp === 'Symbol(util.inspect.custom)') {
338
+ // Node.js util.inspect
339
+ return undefined;
340
+ }
341
+ }
342
+ throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Accessing the "${prop}" property of the session object is not supported. Please use getUser() instead.`);
343
+ },
344
+ set: (_target, prop) => {
345
+ throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Setting the "${prop}" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`);
346
+ },
347
+ deleteProperty: (_target, prop) => {
348
+ throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Deleting the "${prop}" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`);
349
+ },
350
+ });
351
+ }
352
+ /**
353
+ * Creates a proxy around a user object that warns when properties are accessed on the server.
354
+ * This is used to alert developers that using user data from getSession() on the server is insecure.
355
+ *
356
+ * @param user The actual user object to wrap
357
+ * @param suppressWarningRef An object with a 'value' property that controls warning suppression
358
+ * @returns A proxied user object that warns on property access
359
+ */
360
+ function insecureUserWarningProxy(user, suppressWarningRef) {
361
+ return new Proxy(user, {
362
+ get: (target, prop, receiver) => {
363
+ // Allow internal checks without warning
364
+ if (prop === '__isInsecureUserWarningProxy') {
365
+ return true;
366
+ }
367
+ // Preventative check for common problematic symbols during cloning/inspection
368
+ // These symbols might be accessed by structuredClone or other internal mechanisms
369
+ if (typeof prop === 'symbol') {
370
+ const sProp = prop.toString();
371
+ if (sProp === 'Symbol(Symbol.toPrimitive)' ||
372
+ sProp === 'Symbol(Symbol.toStringTag)' ||
373
+ sProp === 'Symbol(util.inspect.custom)' ||
374
+ sProp === 'Symbol(nodejs.util.inspect.custom)') {
375
+ // Return the actual value for these symbols to allow proper inspection
376
+ return Reflect.get(target, prop, receiver);
377
+ }
378
+ }
379
+ // Emit warning on first property access
380
+ if (!suppressWarningRef.value && typeof prop === 'string') {
381
+ console.warn('Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.');
382
+ suppressWarningRef.value = true;
383
+ }
384
+ return Reflect.get(target, prop, receiver);
385
+ },
386
+ });
387
+ }
388
+ /**
389
+ * Deep clones a JSON-serializable object using JSON.parse(JSON.stringify(obj)).
390
+ * Note: Only works for JSON-safe data.
391
+ */
392
+ function deepClone(obj) {
393
+ return JSON.parse(JSON.stringify(obj));
394
+ }
395
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/lib/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { SupportedStorage } from './types';
2
+ /**
3
+ * Returns a localStorage-like object that stores the key-value pairs in
4
+ * memory.
5
+ */
6
+ export declare function memoryLocalStorageAdapter(store?: {
7
+ [key: string]: string;
8
+ }): SupportedStorage;
9
+ //# sourceMappingURL=local-storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-storage.d.ts","sourceRoot":"","sources":["../../../src/lib/local-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE1C;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,GAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAO,GAAG,gBAAgB,CAcjG"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.memoryLocalStorageAdapter = memoryLocalStorageAdapter;
4
+ /**
5
+ * Returns a localStorage-like object that stores the key-value pairs in
6
+ * memory.
7
+ */
8
+ function memoryLocalStorageAdapter(store = {}) {
9
+ return {
10
+ getItem: (key) => {
11
+ return store[key] || null;
12
+ },
13
+ setItem: (key, value) => {
14
+ store[key] = value;
15
+ },
16
+ removeItem: (key) => {
17
+ delete store[key];
18
+ },
19
+ };
20
+ }
21
+ //# sourceMappingURL=local-storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-storage.js","sourceRoot":"","sources":["../../../src/lib/local-storage.ts"],"names":[],"mappings":";;AAMA,8DAcC;AAlBD;;;GAGG;AACH,SAAgB,yBAAyB,CAAC,QAAmC,EAAE;IAC7E,OAAO;QACL,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACf,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAA;QAC3B,CAAC;QAED,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACtB,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QACpB,CAAC;QAED,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE;YAClB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAA;QACnB,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * @experimental
3
+ */
4
+ export declare const internals: {
5
+ /**
6
+ * @experimental
7
+ */
8
+ debug: boolean;
9
+ };
10
+ /**
11
+ * An error thrown when a lock cannot be acquired after some amount of time.
12
+ *
13
+ * Use the {@link #isAcquireTimeout} property instead of checking with `instanceof`.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * import { LockAcquireTimeoutError } from '@supabase/auth-js'
18
+ *
19
+ * class CustomLockError extends LockAcquireTimeoutError {
20
+ * constructor() {
21
+ * super('Lock timed out')
22
+ * }
23
+ * }
24
+ * ```
25
+ */
26
+ export declare abstract class LockAcquireTimeoutError extends Error {
27
+ readonly isAcquireTimeout = true;
28
+ constructor(message: string);
29
+ }
30
+ /**
31
+ * Error thrown when the browser Navigator Lock API fails to acquire a lock.
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * import { NavigatorLockAcquireTimeoutError } from '@supabase/auth-js'
36
+ *
37
+ * throw new NavigatorLockAcquireTimeoutError('Lock timed out')
38
+ * ```
39
+ */
40
+ export declare class NavigatorLockAcquireTimeoutError extends LockAcquireTimeoutError {
41
+ }
42
+ /**
43
+ * Error thrown when the process-level lock helper cannot acquire a lock.
44
+ *
45
+ * @example
46
+ * ```ts
47
+ * import { ProcessLockAcquireTimeoutError } from '@supabase/auth-js'
48
+ *
49
+ * throw new ProcessLockAcquireTimeoutError('Lock timed out')
50
+ * ```
51
+ */
52
+ export declare class ProcessLockAcquireTimeoutError extends LockAcquireTimeoutError {
53
+ }
54
+ /**
55
+ * Implements a global exclusive lock using the Navigator LockManager API. It
56
+ * is available on all browsers released after 2022-03-15 with Safari being the
57
+ * last one to release support. If the API is not available, this function will
58
+ * throw. Make sure you check availablility before configuring {@link
59
+ * GoTrueClient}.
60
+ *
61
+ * You can turn on debugging by setting the `supabase.gotrue-js.locks.debug`
62
+ * local storage item to `true`.
63
+ *
64
+ * Internals:
65
+ *
66
+ * Since the LockManager API does not preserve stack traces for the async
67
+ * function passed in the `request` method, a trick is used where acquiring the
68
+ * lock releases a previously started promise to run the operation in the `fn`
69
+ * function. The lock waits for that promise to finish (with or without error),
70
+ * while the function will finally wait for the result anyway.
71
+ *
72
+ * @param name Name of the lock to be acquired.
73
+ * @param acquireTimeout If negative, no timeout. If 0 an error is thrown if
74
+ * the lock can't be acquired without waiting. If positive, the lock acquire
75
+ * will time out after so many milliseconds. An error is
76
+ * a timeout if it has `isAcquireTimeout` set to true.
77
+ * @param fn The operation to run once the lock is acquired.
78
+ * @example
79
+ * ```ts
80
+ * await navigatorLock('sync-user', 1000, async () => {
81
+ * await refreshSession()
82
+ * })
83
+ * ```
84
+ */
85
+ export declare function navigatorLock<R>(name: string, acquireTimeout: number, fn: () => Promise<R>): Promise<R>;
86
+ /**
87
+ * Implements a global exclusive lock that works only in the current process.
88
+ * Useful for environments like React Native or other non-browser
89
+ * single-process (i.e. no concept of "tabs") environments.
90
+ *
91
+ * Use {@link #navigatorLock} in browser environments.
92
+ *
93
+ * @param name Name of the lock to be acquired.
94
+ * @param acquireTimeout If negative, no timeout. If 0 an error is thrown if
95
+ * the lock can't be acquired without waiting. If positive, the lock acquire
96
+ * will time out after so many milliseconds. An error is
97
+ * a timeout if it has `isAcquireTimeout` set to true.
98
+ * @param fn The operation to run once the lock is acquired.
99
+ * @example
100
+ * ```ts
101
+ * await processLock('migrate', 5000, async () => {
102
+ * await runMigration()
103
+ * })
104
+ * ```
105
+ */
106
+ export declare function processLock<R>(name: string, acquireTimeout: number, fn: () => Promise<R>): Promise<R>;
107
+ //# sourceMappingURL=locks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locks.d.ts","sourceRoot":"","sources":["../../../src/lib/locks.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,SAAS;IACpB;;OAEG;;CAOJ,CAAA;AAED;;;;;;;;;;;;;;;GAeG;AACH,8BAAsB,uBAAwB,SAAQ,KAAK;IACzD,SAAgB,gBAAgB,QAAO;gBAE3B,OAAO,EAAE,MAAM;CAG5B;AAED;;;;;;;;;GASG;AACH,qBAAa,gCAAiC,SAAQ,uBAAuB;CAAG;AAChF;;;;;;;;;GASG;AACH,qBAAa,8BAA+B,SAAQ,uBAAuB;CAAG;AAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,aAAa,CAAC,CAAC,EACnC,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAiKZ;AAID;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAsFZ"}