@stackframe/stack 2.7.18 → 2.7.20

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 (82) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/components/credential-sign-in.js +2 -1
  3. package/dist/components/credential-sign-in.js.map +1 -1
  4. package/dist/components/elements/sidebar-layout.js +10 -7
  5. package/dist/components/elements/sidebar-layout.js.map +1 -1
  6. package/dist/components/link.d.mts +14 -0
  7. package/dist/components/link.d.ts +14 -0
  8. package/dist/components/link.js +63 -0
  9. package/dist/components/link.js.map +1 -0
  10. package/dist/components/oauth-button.js +17 -7
  11. package/dist/components/oauth-button.js.map +1 -1
  12. package/dist/components/selected-team-switcher.js +4 -5
  13. package/dist/components/selected-team-switcher.js.map +1 -1
  14. package/dist/components-page/account-settings.js +2 -3
  15. package/dist/components-page/account-settings.js.map +1 -1
  16. package/dist/components-page/auth-page.js +3 -2
  17. package/dist/components-page/auth-page.js.map +1 -1
  18. package/dist/components-page/forgot-password.js +2 -1
  19. package/dist/components-page/forgot-password.js.map +1 -1
  20. package/dist/components-page/oauth-callback.js +4 -4
  21. package/dist/components-page/oauth-callback.js.map +1 -1
  22. package/dist/components-page/stack-handler.d.mts +5 -3
  23. package/dist/components-page/stack-handler.d.ts +5 -3
  24. package/dist/components-page/stack-handler.js +173 -157
  25. package/dist/components-page/stack-handler.js.map +1 -1
  26. package/dist/components-page/team-creation.js +2 -3
  27. package/dist/components-page/team-creation.js.map +1 -1
  28. package/dist/esm/components/credential-sign-in.js +2 -1
  29. package/dist/esm/components/credential-sign-in.js.map +1 -1
  30. package/dist/esm/components/elements/sidebar-layout.js +10 -7
  31. package/dist/esm/components/elements/sidebar-layout.js.map +1 -1
  32. package/dist/esm/components/link.js +28 -0
  33. package/dist/esm/components/link.js.map +1 -0
  34. package/dist/esm/components/oauth-button.js +18 -8
  35. package/dist/esm/components/oauth-button.js.map +1 -1
  36. package/dist/esm/components/selected-team-switcher.js +4 -5
  37. package/dist/esm/components/selected-team-switcher.js.map +1 -1
  38. package/dist/esm/components-page/account-settings.js +2 -3
  39. package/dist/esm/components-page/account-settings.js.map +1 -1
  40. package/dist/esm/components-page/auth-page.js +2 -1
  41. package/dist/esm/components-page/auth-page.js.map +1 -1
  42. package/dist/esm/components-page/forgot-password.js +2 -1
  43. package/dist/esm/components-page/forgot-password.js.map +1 -1
  44. package/dist/esm/components-page/oauth-callback.js +4 -4
  45. package/dist/esm/components-page/oauth-callback.js.map +1 -1
  46. package/dist/esm/components-page/stack-handler.js +173 -157
  47. package/dist/esm/components-page/stack-handler.js.map +1 -1
  48. package/dist/esm/components-page/team-creation.js +2 -3
  49. package/dist/esm/components-page/team-creation.js.map +1 -1
  50. package/dist/esm/generated/global-css.js +1 -1
  51. package/dist/esm/generated/global-css.js.map +1 -1
  52. package/dist/esm/lib/stack-app.js +35 -16
  53. package/dist/esm/lib/stack-app.js.map +1 -1
  54. package/dist/esm/providers/stack-provider-client.js +1 -2
  55. package/dist/esm/providers/stack-provider-client.js.map +1 -1
  56. package/dist/esm/providers/stack-provider.js +8 -7
  57. package/dist/esm/providers/stack-provider.js.map +1 -1
  58. package/dist/esm/providers/translation-provider.js +1 -1
  59. package/dist/esm/providers/translation-provider.js.map +1 -1
  60. package/dist/generated/global-css.d.mts +1 -1
  61. package/dist/generated/global-css.d.ts +1 -1
  62. package/dist/generated/global-css.js +1 -1
  63. package/dist/generated/global-css.js.map +1 -1
  64. package/dist/generated/quetzal-translations.d.mts +2 -2
  65. package/dist/generated/quetzal-translations.d.ts +2 -2
  66. package/dist/lib/stack-app.d.mts +5 -3
  67. package/dist/lib/stack-app.d.ts +5 -3
  68. package/dist/lib/stack-app.js +35 -16
  69. package/dist/lib/stack-app.js.map +1 -1
  70. package/dist/providers/stack-provider-client.d.mts +2 -1
  71. package/dist/providers/stack-provider-client.d.ts +2 -1
  72. package/dist/providers/stack-provider-client.js +1 -2
  73. package/dist/providers/stack-provider-client.js.map +1 -1
  74. package/dist/providers/stack-provider.d.mts +2 -2
  75. package/dist/providers/stack-provider.d.ts +2 -2
  76. package/dist/providers/stack-provider.js +8 -7
  77. package/dist/providers/stack-provider.js.map +1 -1
  78. package/dist/providers/translation-provider.d.mts +1 -1
  79. package/dist/providers/translation-provider.d.ts +1 -1
  80. package/dist/providers/translation-provider.js +1 -1
  81. package/dist/providers/translation-provider.js.map +1 -1
  82. package/package.json +5 -5
@@ -24,10 +24,11 @@ import { constructRedirectUrl } from "../utils/url";
24
24
  import { addNewOAuthProviderOrScope, callOAuthCallback, signInWithOAuth } from "./auth";
25
25
  import { createBrowserCookieHelper, createCookieHelper, createEmptyCookieHelper, deleteCookieClient, getCookieClient, setOrDeleteCookie, setOrDeleteCookieClient } from "./cookie";
26
26
  import * as sc from "@stackframe/stack-sc";
27
+ import { cookies } from "@stackframe/stack-sc";
27
28
  var isReactServer2 = false;
28
29
  isReactServer2 = sc.isReactServer;
29
30
  var NextNavigation = scrambleDuringCompileTime(NextNavigationUnscrambled);
30
- var clientVersion = "js @stackframe/stack@2.7.18";
31
+ var clientVersion = "js @stackframe/stack@2.7.20";
31
32
  if (clientVersion.startsWith("STACK_COMPILE_TIME")) {
32
33
  throw new StackAssertionError("Client version was not replaced. Something went wrong during build!");
33
34
  }
@@ -241,7 +242,10 @@ var _StackClientAppImpl = class __StackClientAppImpl {
241
242
  getBaseUrl: () => getBaseUrl(_options.baseUrl),
242
243
  projectId: _options.projectId ?? getDefaultProjectId(),
243
244
  clientVersion,
244
- publishableClientKey: _options.publishableClientKey ?? getDefaultPublishableClientKey()
245
+ publishableClientKey: _options.publishableClientKey ?? getDefaultPublishableClientKey(),
246
+ prepareRequest: async () => {
247
+ await cookies?.();
248
+ }
245
249
  });
246
250
  }
247
251
  this._tokenStoreInit = _options.tokenStore;
@@ -345,9 +349,9 @@ var _StackClientAppImpl = class __StackClientAppImpl {
345
349
  get _refreshTokenCookieName() {
346
350
  return `stack-refresh-${this.projectId}`;
347
351
  }
348
- _getTokensFromCookies(cookies) {
349
- const refreshToken = cookies.refreshTokenCookie;
350
- const accessTokenObject = cookies.accessTokenCookie?.startsWith('["') ? JSON.parse(cookies.accessTokenCookie) : null;
352
+ _getTokensFromCookies(cookies2) {
353
+ const refreshToken = cookies2.refreshTokenCookie;
354
+ const accessTokenObject = cookies2.accessTokenCookie?.startsWith('["') ? JSON.parse(cookies2.accessTokenCookie) : null;
351
355
  const accessToken = accessTokenObject && refreshToken === accessTokenObject[0] ? accessTokenObject[1] : null;
352
356
  return {
353
357
  refreshToken,
@@ -920,16 +924,29 @@ var _StackClientAppImpl = class __StackClientAppImpl {
920
924
  async _redirectTo(options) {
921
925
  if (this._redirectMethod === "none") {
922
926
  return;
923
- }
924
- if (isReactServer2 && this._redirectMethod === "nextjs") {
927
+ } else if (isReactServer2 && this._redirectMethod === "nextjs") {
925
928
  NextNavigation.redirect(options.url.toString(), options.replace ? NextNavigation.RedirectType.replace : NextNavigation.RedirectType.push);
929
+ } else if (typeof this._redirectMethod === "object" && this._redirectMethod.navigate) {
930
+ this._redirectMethod.navigate(options.url.toString());
926
931
  } else {
927
932
  if (options.replace) {
928
933
  window.location.replace(options.url);
929
934
  } else {
930
935
  window.location.assign(options.url);
931
936
  }
932
- await wait(2e3);
937
+ }
938
+ await wait(2e3);
939
+ }
940
+ useNavigate() {
941
+ if (typeof this._redirectMethod === "object") {
942
+ return this._redirectMethod.useNavigate();
943
+ } else if (this._redirectMethod === "window") {
944
+ return () => window.location.assign;
945
+ } else if (this._redirectMethod === "nextjs") {
946
+ return NextNavigation.useRouter().push;
947
+ } else {
948
+ return (to) => {
949
+ };
933
950
  }
934
951
  }
935
952
  async _redirectIfTrusted(url, options) {
@@ -1096,7 +1113,6 @@ var _StackClientAppImpl = class __StackClientAppImpl {
1096
1113
  }
1097
1114
  useUser(options) {
1098
1115
  this._ensurePersistentTokenStore(options?.tokenStore);
1099
- const router = NextNavigation.useRouter();
1100
1116
  const session = this._useSession(options?.tokenStore);
1101
1117
  const crud = useAsyncCache(this._currentUserCache, [session], "useUser()");
1102
1118
  if (crud === null) {
@@ -1393,6 +1409,9 @@ var _StackClientAppImpl = class __StackClientAppImpl {
1393
1409
  if (!("publishableClientKey" in this._interface.options)) {
1394
1410
  throw new StackAssertionError("Cannot serialize to JSON from an application without a publishable client key");
1395
1411
  }
1412
+ if (typeof this._redirectMethod !== "string") {
1413
+ throw new StackAssertionError("Cannot serialize to JSON from an application with a non-string redirect method");
1414
+ }
1396
1415
  return {
1397
1416
  baseUrl: this._options.baseUrl,
1398
1417
  projectId: this.projectId,
@@ -1400,7 +1419,8 @@ var _StackClientAppImpl = class __StackClientAppImpl {
1400
1419
  tokenStore: this._tokenStoreInit,
1401
1420
  urls: this._urlOptions,
1402
1421
  oauthScopesOnSignIn: this._oauthScopesOnSignIn,
1403
- uniqueIdentifier: this._getUniqueIdentifier()
1422
+ uniqueIdentifier: this._getUniqueIdentifier(),
1423
+ redirectMethod: this._redirectMethod
1404
1424
  };
1405
1425
  },
1406
1426
  setCurrentUser: (userJsonPromise) => {
@@ -1434,7 +1454,8 @@ var _StackServerAppImpl = class extends _StackClientAppImpl {
1434
1454
  publishableClientKey: options.publishableClientKey,
1435
1455
  tokenStore: options.tokenStore,
1436
1456
  urls: options.urls ?? {},
1437
- oauthScopesOnSignIn: options.oauthScopesOnSignIn ?? {}
1457
+ oauthScopesOnSignIn: options.oauthScopesOnSignIn ?? {},
1458
+ redirectMethod: options.redirectMethod
1438
1459
  });
1439
1460
  // TODO override the client user cache to use the server user cache, so we save some requests
1440
1461
  this._currentServerUserCache = createCacheBySession(async (session) => {
@@ -1830,7 +1851,6 @@ var _StackServerAppImpl = class extends _StackClientAppImpl {
1830
1851
  return this.useUserById(options);
1831
1852
  } else {
1832
1853
  this._ensurePersistentTokenStore(options?.tokenStore);
1833
- const router = NextNavigation.useRouter();
1834
1854
  const session = this._useSession(options?.tokenStore);
1835
1855
  const crud = useAsyncCache(this._currentServerUserCache, [session], "useUser()");
1836
1856
  if (crud === null) {
@@ -1942,7 +1962,8 @@ var _StackAdminAppImpl = class extends _StackServerAppImpl {
1942
1962
  projectId: options.projectId,
1943
1963
  tokenStore: options.tokenStore,
1944
1964
  urls: options.urls,
1945
- oauthScopesOnSignIn: options.oauthScopesOnSignIn
1965
+ oauthScopesOnSignIn: options.oauthScopesOnSignIn,
1966
+ redirectMethod: options.redirectMethod
1946
1967
  });
1947
1968
  this._adminProjectCache = createCache(async () => {
1948
1969
  return await this._interface.getProject();
@@ -1991,7 +2012,6 @@ var _StackAdminAppImpl = class extends _StackServerAppImpl {
1991
2012
  credentialEnabled: data.config.credential_enabled,
1992
2013
  magicLinkEnabled: data.config.magic_link_enabled,
1993
2014
  passkeyEnabled: data.config.passkey_enabled,
1994
- legacyGlobalJwtSigning: data.config.legacy_global_jwt_signing,
1995
2015
  clientTeamCreationEnabled: data.config.client_team_creation_enabled,
1996
2016
  clientUserDeletionEnabled: data.config.client_user_deletion_enabled,
1997
2017
  allowLocalhost: data.config.allow_localhost,
@@ -2306,8 +2326,7 @@ function adminProjectUpdateOptionsToCrud(options) {
2306
2326
  client_team_creation_enabled: options.config?.clientTeamCreationEnabled,
2307
2327
  client_user_deletion_enabled: options.config?.clientUserDeletionEnabled,
2308
2328
  team_creator_default_permissions: options.config?.teamCreatorDefaultPermissions,
2309
- team_member_default_permissions: options.config?.teamMemberDefaultPermissions,
2310
- legacy_global_jwt_signing: options.config?.legacyGlobalJwtSigning
2329
+ team_member_default_permissions: options.config?.teamMemberDefaultPermissions
2311
2330
  }
2312
2331
  };
2313
2332
  }