@supabase/gotrue-js 2.44.1 → 2.46.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.
@@ -47,18 +47,28 @@ export const supportsLocalStorage = () => {
47
47
  }
48
48
  return localStorageWriteTests.writable;
49
49
  };
50
- export function getParameterByName(name, url) {
51
- var _a;
52
- if (!url)
53
- url = ((_a = window === null || window === void 0 ? void 0 : window.location) === null || _a === void 0 ? void 0 : _a.href) || '';
54
- // eslint-disable-next-line no-useless-escape
55
- name = name.replace(/[\[\]]/g, '\\$&');
56
- const regex = new RegExp('[?&#]' + name + '(=([^&#]*)|&|#|$)'), results = regex.exec(url);
57
- if (!results)
58
- return null;
59
- if (!results[2])
60
- return '';
61
- return decodeURIComponent(results[2].replace(/\+/g, ' '));
50
+ /**
51
+ * Extracts parameters encoded in the URL both in the query and fragment.
52
+ */
53
+ export function parseParametersFromURL(href) {
54
+ const result = {};
55
+ const url = new URL(href);
56
+ if (url.hash && url.hash[0] === '#') {
57
+ try {
58
+ const hashSearchParams = new URLSearchParams(url.hash.substring(1));
59
+ hashSearchParams.forEach((value, key) => {
60
+ result[key] = value;
61
+ });
62
+ }
63
+ catch (e) {
64
+ // hash is not a query string
65
+ }
66
+ }
67
+ // search parameters take precedence over hash parameters
68
+ url.searchParams.forEach((value, key) => {
69
+ result[key] = value;
70
+ });
71
+ return result;
62
72
  }
63
73
  export const resolveFetch = (customFetch) => {
64
74
  let _fetch;
@@ -160,8 +170,8 @@ export function decodeJWTPayload(token) {
160
170
  /**
161
171
  * Creates a promise that resolves to null after some time.
162
172
  */
163
- export function sleep(time) {
164
- return new Promise((accept) => {
173
+ export async function sleep(time) {
174
+ return await new Promise((accept) => {
165
175
  setTimeout(() => accept(null), time);
166
176
  });
167
177
  }
@@ -256,6 +266,7 @@ const STACK_GUARD_SUFFIX = `__`;
256
266
  const STACK_ENTRY_REGEX = /__stack_guard__([a-zA-Z0-9_-]+)__/;
257
267
  let STACK_GUARD_CHECKED = false;
258
268
  let STACK_GUARD_CHECK_FN; // eslint-disable-line prefer-const
269
+ let STACK_GUARDS_SUPPORTED = false;
259
270
  /**
260
271
  * Checks if the current caller of the function is in a {@link
261
272
  * #stackGuard} of the provided `name`. Works by looking through
@@ -307,8 +318,24 @@ export async function stackGuard(name, fn) {
307
318
  // from minification processes as it is determined at runtime
308
319
  [guardName]: async () => await fn(),
309
320
  };
321
+ // Safari does not log the name of a dynamically named function unless you
322
+ // explicitly set the displayName
323
+ Object.assign(guardFunc[guardName], { displayName: guardName });
310
324
  return await guardFunc[guardName]();
311
325
  }
326
+ /**
327
+ * Returns if the JavaScript engine supports stack guards. If it doesn't
328
+ * certain features that depend on detecting recursive calls should be disabled
329
+ * to prevent deadlocks.
330
+ */
331
+ export async function stackGuardsSupported() {
332
+ if (STACK_GUARD_CHECKED) {
333
+ return STACK_GUARDS_SUPPORTED;
334
+ }
335
+ await STACK_GUARD_CHECK_FN();
336
+ return STACK_GUARDS_SUPPORTED;
337
+ }
338
+ let STACK_GUARD_WARNING_LOGGED = false;
312
339
  // In certain cases, if this file is transpiled using an ES2015 target, or is
313
340
  // running in a JS engine that does not support async/await stack traces, this
314
341
  // function will log a single warning message.
@@ -316,9 +343,14 @@ STACK_GUARD_CHECK_FN = async () => {
316
343
  if (!STACK_GUARD_CHECKED) {
317
344
  STACK_GUARD_CHECKED = true;
318
345
  await stackGuard('ENV_CHECK', async () => {
346
+ // sleeping for the next tick as Safari loses track of the async/await
347
+ // trace beyond this point
348
+ await sleep(0);
319
349
  const result = isInStackGuard('ENV_CHECK');
320
- if (!result) {
321
- console.warn('@supabase/gotrue-js: Stack guards not supported in this environment. Generally not an issue but may point to a very conservative transpilation environment (use ES2017 or above) that implements async/await with generators, or this is a JavaScript engine that does not support async/await stack traces.');
350
+ STACK_GUARDS_SUPPORTED = result;
351
+ if (!result && !STACK_GUARD_WARNING_LOGGED) {
352
+ STACK_GUARD_WARNING_LOGGED = true;
353
+ console.warn('@supabase/gotrue-js: Stack guards not supported in this environment. Generally not an issue but may point to a very conservative transpilation environment (use ES2017 or above) that implements async/await with generators, or this is a JavaScript engine that does not support async/await stack traces. Safari is known to not support stack guards.');
322
354
  }
323
355
  return result;
324
356
  });
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/lib/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/lib/helpers.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const version = "2.44.1";
1
+ export declare const version = "2.46.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Generated by genversion.
2
- export const version = '2.44.1';
2
+ export const version = '2.46.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.44.1",
3
+ "version": "2.46.0",
4
4
  "description": "Isomorphic GoTrue client",
5
5
  "keywords": [
6
6
  "gotrue",
@@ -18,7 +18,6 @@ import {
18
18
  decodeJWTPayload,
19
19
  Deferred,
20
20
  getItemAsync,
21
- getParameterByName,
22
21
  isBrowser,
23
22
  removeItemAsync,
24
23
  resolveFetch,
@@ -31,6 +30,8 @@ import {
31
30
  supportsLocalStorage,
32
31
  stackGuard,
33
32
  isInStackGuard,
33
+ stackGuardsSupported,
34
+ parseParametersFromURL,
34
35
  } from './lib/helpers'
35
36
  import localStorageAdapter from './lib/local-storage'
36
37
  import { polyfillGlobalThis } from './lib/polyfills'
@@ -271,7 +272,7 @@ export default class GoTrueClient {
271
272
  this._debug('#_initialize()', 'begin', 'is PKCE flow', isPKCEFlow)
272
273
 
273
274
  if (isPKCEFlow || (this.detectSessionInUrl && this._isImplicitGrantFlow())) {
274
- const { data, error } = await this._getSessionFromUrl(isPKCEFlow)
275
+ const { data, error } = await this._getSessionFromURL(isPKCEFlow)
275
276
  if (error) {
276
277
  this._debug('#_initialize()', 'error detecting session from URL', error)
277
278
 
@@ -806,6 +807,15 @@ export default class GoTrueClient {
806
807
  this._debug('#_acquireLock', 'begin', acquireTimeout)
807
808
 
808
809
  try {
810
+ if (!(await stackGuardsSupported())) {
811
+ this._debug(
812
+ '#_acquireLock',
813
+ 'Stack guards not supported, so exclusive locking is not performed as it can lead to deadlocks if the lock is attempted to be recursively acquired (as the recursion cannot be detected).'
814
+ )
815
+
816
+ return await fn()
817
+ }
818
+
809
819
  if (isInStackGuard('_acquireLock')) {
810
820
  this._debug('#_acquireLock', 'recursive call')
811
821
  return await fn()
@@ -908,13 +918,13 @@ export default class GoTrueClient {
908
918
  > {
909
919
  this._debug('#__loadSession()', 'begin')
910
920
 
911
- if (this.logDebugMessages && !isInStackGuard('_useSession')) {
921
+ if (this.logDebugMessages && !isInStackGuard('_useSession') && (await stackGuardsSupported())) {
912
922
  throw new Error('Please use #_useSession()')
913
923
  }
914
924
 
915
925
  // make sure we've read the session from the url if there is one
916
926
  // save to just await, as long we make sure _initialize() never throws
917
- if (!isInStackGuard('_initialize')) {
927
+ if (!isInStackGuard('_initialize') && (await stackGuardsSupported())) {
918
928
  // only wait when not called from within #_initialize() since it's
919
929
  // waiting for itself. one such pathway is #_initialize() ->
920
930
  // #_handleVisibilityChange() -> #_onVisbilityChanged() ->
@@ -1166,7 +1176,7 @@ export default class GoTrueClient {
1166
1176
  /**
1167
1177
  * Gets the session data from a URL string
1168
1178
  */
1169
- private async _getSessionFromUrl(isPKCEFlow: boolean): Promise<
1179
+ private async _getSessionFromURL(isPKCEFlow: boolean): Promise<
1170
1180
  | {
1171
1181
  data: { session: Session; redirectType: string | null }
1172
1182
  error: null
@@ -1180,62 +1190,68 @@ export default class GoTrueClient {
1180
1190
  } else if (this.flowType == 'pkce' && !isPKCEFlow) {
1181
1191
  throw new AuthPKCEGrantCodeExchangeError('Not a valid PKCE flow url.')
1182
1192
  }
1193
+
1194
+ const params = parseParametersFromURL(window.location.href)
1195
+
1183
1196
  if (isPKCEFlow) {
1184
- const authCode = getParameterByName('code')
1185
- if (!authCode) throw new AuthPKCEGrantCodeExchangeError('No code detected.')
1186
- const { data, error } = await this.exchangeCodeForSession(authCode)
1197
+ if (!params.code) throw new AuthPKCEGrantCodeExchangeError('No code detected.')
1198
+ const { data, error } = await this.exchangeCodeForSession(params.code)
1187
1199
  if (error) throw error
1188
- if (!data.session) throw new AuthPKCEGrantCodeExchangeError('No session detected.')
1189
- let url = new URL(window.location.href)
1200
+
1201
+ const url = new URL(window.location.href)
1190
1202
  url.searchParams.delete('code')
1203
+
1191
1204
  window.history.replaceState(window.history.state, '', url.toString())
1205
+
1192
1206
  return { data: { session: data.session, redirectType: null }, error: null }
1193
1207
  }
1194
1208
 
1195
- const error_description = getParameterByName('error_description')
1196
- if (error_description) {
1197
- const error_code = getParameterByName('error_code')
1198
- if (!error_code) throw new AuthImplicitGrantRedirectError('No error_code detected.')
1199
- const error = getParameterByName('error')
1200
- if (!error) throw new AuthImplicitGrantRedirectError('No error detected.')
1201
-
1202
- throw new AuthImplicitGrantRedirectError(error_description, { error, code: error_code })
1209
+ if (params.error || params.error_description || params.error_code) {
1210
+ throw new AuthImplicitGrantRedirectError(
1211
+ params.error_description || 'Error in URL with unspecified error_description',
1212
+ {
1213
+ error: params.error || 'unspecified_error',
1214
+ code: params.error_code || 'unspecified_code',
1215
+ }
1216
+ )
1203
1217
  }
1204
1218
 
1205
- const provider_token = getParameterByName('provider_token')
1206
- const provider_refresh_token = getParameterByName('provider_refresh_token')
1207
- const access_token = getParameterByName('access_token')
1208
- if (!access_token) throw new AuthImplicitGrantRedirectError('No access_token detected.')
1209
- const expires_in = getParameterByName('expires_in')
1210
- if (!expires_in) throw new AuthImplicitGrantRedirectError('No expires_in detected.')
1211
- const refresh_token = getParameterByName('refresh_token')
1212
- if (!refresh_token) throw new AuthImplicitGrantRedirectError('No refresh_token detected.')
1213
- const token_type = getParameterByName('token_type')
1214
- if (!token_type) throw new AuthImplicitGrantRedirectError('No token_type detected.')
1219
+ const {
1220
+ provider_token,
1221
+ provider_refresh_token,
1222
+ access_token,
1223
+ refresh_token,
1224
+ expires_in,
1225
+ token_type,
1226
+ } = params
1227
+
1228
+ if (!access_token || !expires_in || !refresh_token || !token_type) {
1229
+ throw new AuthImplicitGrantRedirectError('No session defined in URL')
1230
+ }
1215
1231
 
1216
1232
  const timeNow = Math.round(Date.now() / 1000)
1217
- const expires_at = timeNow + parseInt(expires_in)
1233
+ const expiresIn = parseInt(expires_in)
1234
+ const expires_at = timeNow + expiresIn
1218
1235
 
1219
1236
  const { data, error } = await this.getUser(access_token)
1220
1237
  if (error) throw error
1221
- const user: User = data.user
1238
+
1222
1239
  const session: Session = {
1223
1240
  provider_token,
1224
1241
  provider_refresh_token,
1225
1242
  access_token,
1226
- expires_in: parseInt(expires_in),
1243
+ expires_in: expiresIn,
1227
1244
  expires_at,
1228
1245
  refresh_token,
1229
1246
  token_type,
1230
- user,
1247
+ user: data.user!!,
1231
1248
  }
1232
- const redirectType = getParameterByName('type')
1233
1249
 
1234
1250
  // Remove tokens from URL
1235
1251
  window.location.hash = ''
1236
- this._debug('#_getSessionFromUrl()', 'clearing window.location.hash')
1252
+ this._debug('#_getSessionFromURL()', 'clearing window.location.hash')
1237
1253
 
1238
- return { data: { session, redirectType }, error: null }
1254
+ return { data: { session, redirectType: params.type }, error: null }
1239
1255
  } catch (error) {
1240
1256
  if (isAuthError(error)) {
1241
1257
  return { data: { session: null, redirectType: null }, error }
@@ -1249,21 +1265,22 @@ export default class GoTrueClient {
1249
1265
  * Checks if the current URL contains parameters given by an implicit oauth grant flow (https://www.rfc-editor.org/rfc/rfc6749.html#section-4.2)
1250
1266
  */
1251
1267
  private _isImplicitGrantFlow(): boolean {
1252
- return (
1253
- isBrowser() &&
1254
- (Boolean(getParameterByName('access_token')) ||
1255
- Boolean(getParameterByName('error_description')))
1256
- )
1268
+ const params = parseParametersFromURL(window.location.href)
1269
+
1270
+ return !!(isBrowser() && (params.access_token || params.error_description))
1257
1271
  }
1258
1272
  /**
1259
1273
  * Checks if the current URL and backing storage contain parameters given by a PKCE flow
1260
1274
  */
1261
1275
  private async _isPKCEFlow(): Promise<boolean> {
1276
+ const params = parseParametersFromURL(window.location.href)
1277
+
1262
1278
  const currentStorageContent = await getItemAsync(
1263
1279
  this.storage,
1264
1280
  `${this.storageKey}-code-verifier`
1265
1281
  )
1266
- return Boolean(getParameterByName('code')) && Boolean(currentStorageContent)
1282
+
1283
+ return !!(params.code && currentStorageContent)
1267
1284
  }
1268
1285
 
1269
1286
  /**
@@ -59,15 +59,31 @@ export const supportsLocalStorage = () => {
59
59
  return localStorageWriteTests.writable
60
60
  }
61
61
 
62
- export function getParameterByName(name: string, url?: string) {
63
- if (!url) url = window?.location?.href || ''
64
- // eslint-disable-next-line no-useless-escape
65
- name = name.replace(/[\[\]]/g, '\\$&')
66
- const regex = new RegExp('[?&#]' + name + '(=([^&#]*)|&|#|$)'),
67
- results = regex.exec(url)
68
- if (!results) return null
69
- if (!results[2]) return ''
70
- return decodeURIComponent(results[2].replace(/\+/g, ' '))
62
+ /**
63
+ * Extracts parameters encoded in the URL both in the query and fragment.
64
+ */
65
+ export function parseParametersFromURL(href: string) {
66
+ const result: { [parameter: string]: string } = {}
67
+
68
+ const url = new URL(href)
69
+
70
+ if (url.hash && url.hash[0] === '#') {
71
+ try {
72
+ const hashSearchParams = new URLSearchParams(url.hash.substring(1))
73
+ hashSearchParams.forEach((value, key) => {
74
+ result[key] = value
75
+ })
76
+ } catch (e: any) {
77
+ // hash is not a query string
78
+ }
79
+ }
80
+
81
+ // search parameters take precedence over hash parameters
82
+ url.searchParams.forEach((value, key) => {
83
+ result[key] = value
84
+ })
85
+
86
+ return result
71
87
  }
72
88
 
73
89
  type Fetch = typeof fetch
@@ -197,8 +213,8 @@ export function decodeJWTPayload(token: string) {
197
213
  /**
198
214
  * Creates a promise that resolves to null after some time.
199
215
  */
200
- export function sleep(time: number): Promise<null> {
201
- return new Promise((accept) => {
216
+ export async function sleep(time: number): Promise<null> {
217
+ return await new Promise((accept) => {
202
218
  setTimeout(() => accept(null), time)
203
219
  })
204
220
  }
@@ -309,6 +325,8 @@ const STACK_ENTRY_REGEX = /__stack_guard__([a-zA-Z0-9_-]+)__/
309
325
  let STACK_GUARD_CHECKED = false
310
326
  let STACK_GUARD_CHECK_FN: () => Promise<void> // eslint-disable-line prefer-const
311
327
 
328
+ let STACK_GUARDS_SUPPORTED = false
329
+
312
330
  /**
313
331
  * Checks if the current caller of the function is in a {@link
314
332
  * #stackGuard} of the provided `name`. Works by looking through
@@ -370,9 +388,30 @@ export async function stackGuard<R>(name: string, fn: () => Promise<R>): Promise
370
388
  [guardName]: async () => await fn(),
371
389
  }
372
390
 
391
+ // Safari does not log the name of a dynamically named function unless you
392
+ // explicitly set the displayName
393
+ Object.assign(guardFunc[guardName], { displayName: guardName })
394
+
373
395
  return await guardFunc[guardName]()
374
396
  }
375
397
 
398
+ /**
399
+ * Returns if the JavaScript engine supports stack guards. If it doesn't
400
+ * certain features that depend on detecting recursive calls should be disabled
401
+ * to prevent deadlocks.
402
+ */
403
+ export async function stackGuardsSupported(): Promise<boolean> {
404
+ if (STACK_GUARD_CHECKED) {
405
+ return STACK_GUARDS_SUPPORTED
406
+ }
407
+
408
+ await STACK_GUARD_CHECK_FN()
409
+
410
+ return STACK_GUARDS_SUPPORTED
411
+ }
412
+
413
+ let STACK_GUARD_WARNING_LOGGED = false
414
+
376
415
  // In certain cases, if this file is transpiled using an ES2015 target, or is
377
416
  // running in a JS engine that does not support async/await stack traces, this
378
417
  // function will log a single warning message.
@@ -381,11 +420,17 @@ STACK_GUARD_CHECK_FN = async () => {
381
420
  STACK_GUARD_CHECKED = true
382
421
 
383
422
  await stackGuard('ENV_CHECK', async () => {
423
+ // sleeping for the next tick as Safari loses track of the async/await
424
+ // trace beyond this point
425
+ await sleep(0)
426
+
384
427
  const result = isInStackGuard('ENV_CHECK')
428
+ STACK_GUARDS_SUPPORTED = result
385
429
 
386
- if (!result) {
430
+ if (!result && !STACK_GUARD_WARNING_LOGGED) {
431
+ STACK_GUARD_WARNING_LOGGED = true
387
432
  console.warn(
388
- '@supabase/gotrue-js: Stack guards not supported in this environment. Generally not an issue but may point to a very conservative transpilation environment (use ES2017 or above) that implements async/await with generators, or this is a JavaScript engine that does not support async/await stack traces.'
433
+ '@supabase/gotrue-js: Stack guards not supported in this environment. Generally not an issue but may point to a very conservative transpilation environment (use ES2017 or above) that implements async/await with generators, or this is a JavaScript engine that does not support async/await stack traces. Safari is known to not support stack guards.'
389
434
  )
390
435
  }
391
436
 
@@ -1,2 +1,2 @@
1
1
  // Generated by genversion.
2
- export const version = '2.44.1'
2
+ export const version = '2.46.0'