@stackframe/stack 2.7.19 → 2.7.21
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.
- package/CHANGELOG.md +20 -0
- package/dist/components/credential-sign-in.js +2 -1
- package/dist/components/credential-sign-in.js.map +1 -1
- package/dist/components/credential-sign-up.js.map +1 -1
- package/dist/components/elements/form-warning.js.map +1 -1
- package/dist/components/elements/maybe-full-page.js.map +1 -1
- package/dist/components/elements/separator-with-text.js.map +1 -1
- package/dist/components/elements/sidebar-layout.js +10 -7
- package/dist/components/elements/sidebar-layout.js.map +1 -1
- package/dist/components/elements/ssr-layout-effect.js.map +1 -1
- package/dist/components/elements/user-avatar.js.map +1 -1
- package/dist/components/iframe-preventer.js.map +1 -1
- package/dist/components/link.d.mts +14 -0
- package/dist/components/link.d.ts +14 -0
- package/dist/components/link.js +63 -0
- package/dist/components/link.js.map +1 -0
- package/dist/components/magic-link-sign-in.js.map +1 -1
- package/dist/components/message-cards/known-error-message-card.js.map +1 -1
- package/dist/components/message-cards/message-card.js.map +1 -1
- package/dist/components/message-cards/predefined-message-card.js.map +1 -1
- package/dist/components/oauth-button-group.js.map +1 -1
- package/dist/components/oauth-button.js.map +1 -1
- package/dist/components/passkey-button.js.map +1 -1
- package/dist/components/profile-image-editor.js.map +1 -1
- package/dist/components/selected-team-switcher.js +4 -5
- package/dist/components/selected-team-switcher.js.map +1 -1
- package/dist/components/team-icon.js.map +1 -1
- package/dist/components/user-button.js.map +1 -1
- package/dist/components-page/account-settings.js +2 -3
- package/dist/components-page/account-settings.js.map +1 -1
- package/dist/components-page/auth-page.js +3 -2
- package/dist/components-page/auth-page.js.map +1 -1
- package/dist/components-page/email-verification.js.map +1 -1
- package/dist/components-page/error-page.js.map +1 -1
- package/dist/components-page/forgot-password.js +2 -1
- package/dist/components-page/forgot-password.js.map +1 -1
- package/dist/components-page/magic-link-callback.js.map +1 -1
- package/dist/components-page/oauth-callback.js +4 -4
- package/dist/components-page/oauth-callback.js.map +1 -1
- package/dist/components-page/password-reset.js.map +1 -1
- package/dist/components-page/sign-in.js.map +1 -1
- package/dist/components-page/sign-out.js.map +1 -1
- package/dist/components-page/sign-up.js.map +1 -1
- package/dist/components-page/stack-handler.d.mts +5 -3
- package/dist/components-page/stack-handler.d.ts +5 -3
- package/dist/components-page/stack-handler.js +173 -157
- package/dist/components-page/stack-handler.js.map +1 -1
- package/dist/components-page/team-creation.js +2 -3
- package/dist/components-page/team-creation.js.map +1 -1
- package/dist/components-page/team-invitation.js.map +1 -1
- package/dist/esm/components/credential-sign-in.js +2 -1
- package/dist/esm/components/credential-sign-in.js.map +1 -1
- package/dist/esm/components/credential-sign-up.js.map +1 -1
- package/dist/esm/components/elements/form-warning.js.map +1 -1
- package/dist/esm/components/elements/maybe-full-page.js.map +1 -1
- package/dist/esm/components/elements/separator-with-text.js.map +1 -1
- package/dist/esm/components/elements/sidebar-layout.js +10 -7
- package/dist/esm/components/elements/sidebar-layout.js.map +1 -1
- package/dist/esm/components/elements/ssr-layout-effect.js.map +1 -1
- package/dist/esm/components/elements/user-avatar.js.map +1 -1
- package/dist/esm/components/iframe-preventer.js.map +1 -1
- package/dist/esm/components/link.js +28 -0
- package/dist/esm/components/link.js.map +1 -0
- package/dist/esm/components/magic-link-sign-in.js.map +1 -1
- package/dist/esm/components/message-cards/known-error-message-card.js.map +1 -1
- package/dist/esm/components/message-cards/message-card.js.map +1 -1
- package/dist/esm/components/message-cards/predefined-message-card.js.map +1 -1
- package/dist/esm/components/oauth-button-group.js.map +1 -1
- package/dist/esm/components/oauth-button.js.map +1 -1
- package/dist/esm/components/passkey-button.js.map +1 -1
- package/dist/esm/components/profile-image-editor.js.map +1 -1
- package/dist/esm/components/selected-team-switcher.js +4 -5
- package/dist/esm/components/selected-team-switcher.js.map +1 -1
- package/dist/esm/components/team-icon.js.map +1 -1
- package/dist/esm/components/user-button.js.map +1 -1
- package/dist/esm/components-page/account-settings.js +2 -3
- package/dist/esm/components-page/account-settings.js.map +1 -1
- package/dist/esm/components-page/auth-page.js +2 -1
- package/dist/esm/components-page/auth-page.js.map +1 -1
- package/dist/esm/components-page/email-verification.js.map +1 -1
- package/dist/esm/components-page/error-page.js.map +1 -1
- package/dist/esm/components-page/forgot-password.js +2 -1
- package/dist/esm/components-page/forgot-password.js.map +1 -1
- package/dist/esm/components-page/magic-link-callback.js.map +1 -1
- package/dist/esm/components-page/oauth-callback.js +4 -4
- package/dist/esm/components-page/oauth-callback.js.map +1 -1
- package/dist/esm/components-page/password-reset.js.map +1 -1
- package/dist/esm/components-page/sign-in.js.map +1 -1
- package/dist/esm/components-page/sign-out.js.map +1 -1
- package/dist/esm/components-page/sign-up.js.map +1 -1
- package/dist/esm/components-page/stack-handler.js +173 -157
- package/dist/esm/components-page/stack-handler.js.map +1 -1
- package/dist/esm/components-page/team-creation.js +2 -3
- package/dist/esm/components-page/team-creation.js.map +1 -1
- package/dist/esm/components-page/team-invitation.js.map +1 -1
- package/dist/esm/generated/quetzal-translations.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/auth.js.map +1 -1
- package/dist/esm/lib/cookie.js +4 -7
- package/dist/esm/lib/cookie.js.map +1 -1
- package/dist/esm/lib/hooks.js.map +1 -1
- package/dist/esm/lib/stack-app.js +38 -16
- package/dist/esm/lib/stack-app.js.map +1 -1
- package/dist/esm/lib/translations.js.map +1 -1
- package/dist/esm/providers/stack-provider-client.js +1 -2
- package/dist/esm/providers/stack-provider-client.js.map +1 -1
- package/dist/esm/providers/stack-provider.js +8 -7
- package/dist/esm/providers/stack-provider.js.map +1 -1
- package/dist/esm/providers/theme-provider.js.map +1 -1
- package/dist/esm/providers/translation-provider-client.js.map +1 -1
- package/dist/esm/providers/translation-provider.js +1 -1
- package/dist/esm/providers/translation-provider.js.map +1 -1
- package/dist/esm/utils/browser-script.js.map +1 -1
- package/dist/esm/utils/constants.js.map +1 -1
- package/dist/esm/utils/url.js +4 -13
- package/dist/esm/utils/url.js.map +1 -1
- package/dist/generated/quetzal-translations.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/auth.js.map +1 -1
- package/dist/lib/cookie.d.mts +2 -2
- package/dist/lib/cookie.d.ts +2 -2
- package/dist/lib/cookie.js +5 -8
- package/dist/lib/cookie.js.map +1 -1
- package/dist/lib/hooks.js.map +1 -1
- package/dist/lib/stack-app.d.mts +6 -1
- package/dist/lib/stack-app.d.ts +6 -1
- package/dist/lib/stack-app.js +37 -15
- package/dist/lib/stack-app.js.map +1 -1
- package/dist/lib/translations.js.map +1 -1
- package/dist/providers/stack-provider-client.d.mts +2 -1
- package/dist/providers/stack-provider-client.d.ts +2 -1
- package/dist/providers/stack-provider-client.js +1 -2
- package/dist/providers/stack-provider-client.js.map +1 -1
- package/dist/providers/stack-provider.d.mts +2 -2
- package/dist/providers/stack-provider.d.ts +2 -2
- package/dist/providers/stack-provider.js +8 -7
- package/dist/providers/stack-provider.js.map +1 -1
- package/dist/providers/theme-provider.js.map +1 -1
- package/dist/providers/translation-provider-client.js.map +1 -1
- package/dist/providers/translation-provider.d.mts +1 -1
- package/dist/providers/translation-provider.d.ts +1 -1
- package/dist/providers/translation-provider.js +1 -1
- package/dist/providers/translation-provider.js.map +1 -1
- package/dist/utils/browser-script.js.map +1 -1
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/url.d.mts +1 -2
- package/dist/utils/url.d.ts +1 -2
- package/dist/utils/url.js +4 -14
- package/dist/utils/url.js.map +1 -1
- package/package.json +5 -5
|
@@ -22,12 +22,13 @@ import * as NextNavigationUnscrambled from "next/navigation";
|
|
|
22
22
|
import React, { useCallback, useMemo } from "react";
|
|
23
23
|
import { constructRedirectUrl } from "../utils/url";
|
|
24
24
|
import { addNewOAuthProviderOrScope, callOAuthCallback, signInWithOAuth } from "./auth";
|
|
25
|
-
import { createBrowserCookieHelper, createCookieHelper,
|
|
25
|
+
import { createBrowserCookieHelper, createCookieHelper, createPlaceholderCookieHelper, 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.
|
|
31
|
+
var clientVersion = "js @stackframe/stack@2.7.21";
|
|
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
|
}
|
|
@@ -223,6 +224,7 @@ var _StackClientAppImpl = class __StackClientAppImpl {
|
|
|
223
224
|
}
|
|
224
225
|
);
|
|
225
226
|
this._memoryTokenStore = createEmptyTokenStore();
|
|
227
|
+
this._nextServerCookiesTokenStores = /* @__PURE__ */ new WeakMap();
|
|
226
228
|
this._requestTokenStores = /* @__PURE__ */ new WeakMap();
|
|
227
229
|
this._storedBrowserCookieTokenStore = null;
|
|
228
230
|
/**
|
|
@@ -241,7 +243,10 @@ var _StackClientAppImpl = class __StackClientAppImpl {
|
|
|
241
243
|
getBaseUrl: () => getBaseUrl(_options.baseUrl),
|
|
242
244
|
projectId: _options.projectId ?? getDefaultProjectId(),
|
|
243
245
|
clientVersion,
|
|
244
|
-
publishableClientKey: _options.publishableClientKey ?? getDefaultPublishableClientKey()
|
|
246
|
+
publishableClientKey: _options.publishableClientKey ?? getDefaultPublishableClientKey(),
|
|
247
|
+
prepareRequest: async () => {
|
|
248
|
+
await cookies?.();
|
|
249
|
+
}
|
|
245
250
|
});
|
|
246
251
|
}
|
|
247
252
|
this._tokenStoreInit = _options.tokenStore;
|
|
@@ -264,7 +269,7 @@ var _StackClientAppImpl = class __StackClientAppImpl {
|
|
|
264
269
|
if (this._tokenStoreInit === "nextjs-cookie" || this._tokenStoreInit === "cookie") {
|
|
265
270
|
return await createCookieHelper();
|
|
266
271
|
} else {
|
|
267
|
-
return await
|
|
272
|
+
return await createPlaceholderCookieHelper();
|
|
268
273
|
}
|
|
269
274
|
}
|
|
270
275
|
async _getUserOAuthConnectionCacheFn(options) {
|
|
@@ -345,9 +350,9 @@ var _StackClientAppImpl = class __StackClientAppImpl {
|
|
|
345
350
|
get _refreshTokenCookieName() {
|
|
346
351
|
return `stack-refresh-${this.projectId}`;
|
|
347
352
|
}
|
|
348
|
-
_getTokensFromCookies(
|
|
349
|
-
const refreshToken =
|
|
350
|
-
const accessTokenObject =
|
|
353
|
+
_getTokensFromCookies(cookies2) {
|
|
354
|
+
const refreshToken = cookies2.refreshTokenCookie;
|
|
355
|
+
const accessTokenObject = cookies2.accessTokenCookie?.startsWith('["') ? JSON.parse(cookies2.accessTokenCookie) : null;
|
|
351
356
|
const accessToken = accessTokenObject && refreshToken === accessTokenObject[0] ? accessTokenObject[1] : null;
|
|
352
357
|
return {
|
|
353
358
|
refreshToken,
|
|
@@ -920,16 +925,29 @@ var _StackClientAppImpl = class __StackClientAppImpl {
|
|
|
920
925
|
async _redirectTo(options) {
|
|
921
926
|
if (this._redirectMethod === "none") {
|
|
922
927
|
return;
|
|
923
|
-
}
|
|
924
|
-
if (isReactServer2 && this._redirectMethod === "nextjs") {
|
|
928
|
+
} else if (isReactServer2 && this._redirectMethod === "nextjs") {
|
|
925
929
|
NextNavigation.redirect(options.url.toString(), options.replace ? NextNavigation.RedirectType.replace : NextNavigation.RedirectType.push);
|
|
930
|
+
} else if (typeof this._redirectMethod === "object" && this._redirectMethod.navigate) {
|
|
931
|
+
this._redirectMethod.navigate(options.url.toString());
|
|
926
932
|
} else {
|
|
927
933
|
if (options.replace) {
|
|
928
934
|
window.location.replace(options.url);
|
|
929
935
|
} else {
|
|
930
936
|
window.location.assign(options.url);
|
|
931
937
|
}
|
|
932
|
-
|
|
938
|
+
}
|
|
939
|
+
await wait(2e3);
|
|
940
|
+
}
|
|
941
|
+
useNavigate() {
|
|
942
|
+
if (typeof this._redirectMethod === "object") {
|
|
943
|
+
return this._redirectMethod.useNavigate();
|
|
944
|
+
} else if (this._redirectMethod === "window") {
|
|
945
|
+
return () => window.location.assign;
|
|
946
|
+
} else if (this._redirectMethod === "nextjs") {
|
|
947
|
+
return NextNavigation.useRouter().push;
|
|
948
|
+
} else {
|
|
949
|
+
return (to) => {
|
|
950
|
+
};
|
|
933
951
|
}
|
|
934
952
|
}
|
|
935
953
|
async _redirectIfTrusted(url, options) {
|
|
@@ -1096,7 +1114,6 @@ var _StackClientAppImpl = class __StackClientAppImpl {
|
|
|
1096
1114
|
}
|
|
1097
1115
|
useUser(options) {
|
|
1098
1116
|
this._ensurePersistentTokenStore(options?.tokenStore);
|
|
1099
|
-
const router = NextNavigation.useRouter();
|
|
1100
1117
|
const session = this._useSession(options?.tokenStore);
|
|
1101
1118
|
const crud = useAsyncCache(this._currentUserCache, [session], "useUser()");
|
|
1102
1119
|
if (crud === null) {
|
|
@@ -1194,7 +1211,7 @@ var _StackClientAppImpl = class __StackClientAppImpl {
|
|
|
1194
1211
|
async signUpWithCredential(options) {
|
|
1195
1212
|
this._ensurePersistentTokenStore();
|
|
1196
1213
|
const session = await this._getSession();
|
|
1197
|
-
const emailVerificationRedirectUrl = constructRedirectUrl(this.urls.emailVerification);
|
|
1214
|
+
const emailVerificationRedirectUrl = options.verificationCallbackUrl ?? constructRedirectUrl(this.urls.emailVerification);
|
|
1198
1215
|
const result = await this._interface.signUpWithCredential(
|
|
1199
1216
|
options.email,
|
|
1200
1217
|
options.password,
|
|
@@ -1393,6 +1410,9 @@ var _StackClientAppImpl = class __StackClientAppImpl {
|
|
|
1393
1410
|
if (!("publishableClientKey" in this._interface.options)) {
|
|
1394
1411
|
throw new StackAssertionError("Cannot serialize to JSON from an application without a publishable client key");
|
|
1395
1412
|
}
|
|
1413
|
+
if (typeof this._redirectMethod !== "string") {
|
|
1414
|
+
throw new StackAssertionError("Cannot serialize to JSON from an application with a non-string redirect method");
|
|
1415
|
+
}
|
|
1396
1416
|
return {
|
|
1397
1417
|
baseUrl: this._options.baseUrl,
|
|
1398
1418
|
projectId: this.projectId,
|
|
@@ -1400,7 +1420,8 @@ var _StackClientAppImpl = class __StackClientAppImpl {
|
|
|
1400
1420
|
tokenStore: this._tokenStoreInit,
|
|
1401
1421
|
urls: this._urlOptions,
|
|
1402
1422
|
oauthScopesOnSignIn: this._oauthScopesOnSignIn,
|
|
1403
|
-
uniqueIdentifier: this._getUniqueIdentifier()
|
|
1423
|
+
uniqueIdentifier: this._getUniqueIdentifier(),
|
|
1424
|
+
redirectMethod: this._redirectMethod
|
|
1404
1425
|
};
|
|
1405
1426
|
},
|
|
1406
1427
|
setCurrentUser: (userJsonPromise) => {
|
|
@@ -1434,7 +1455,8 @@ var _StackServerAppImpl = class extends _StackClientAppImpl {
|
|
|
1434
1455
|
publishableClientKey: options.publishableClientKey,
|
|
1435
1456
|
tokenStore: options.tokenStore,
|
|
1436
1457
|
urls: options.urls ?? {},
|
|
1437
|
-
oauthScopesOnSignIn: options.oauthScopesOnSignIn ?? {}
|
|
1458
|
+
oauthScopesOnSignIn: options.oauthScopesOnSignIn ?? {},
|
|
1459
|
+
redirectMethod: options.redirectMethod
|
|
1438
1460
|
});
|
|
1439
1461
|
// TODO override the client user cache to use the server user cache, so we save some requests
|
|
1440
1462
|
this._currentServerUserCache = createCacheBySession(async (session) => {
|
|
@@ -1830,7 +1852,6 @@ var _StackServerAppImpl = class extends _StackClientAppImpl {
|
|
|
1830
1852
|
return this.useUserById(options);
|
|
1831
1853
|
} else {
|
|
1832
1854
|
this._ensurePersistentTokenStore(options?.tokenStore);
|
|
1833
|
-
const router = NextNavigation.useRouter();
|
|
1834
1855
|
const session = this._useSession(options?.tokenStore);
|
|
1835
1856
|
const crud = useAsyncCache(this._currentServerUserCache, [session], "useUser()");
|
|
1836
1857
|
if (crud === null) {
|
|
@@ -1942,7 +1963,8 @@ var _StackAdminAppImpl = class extends _StackServerAppImpl {
|
|
|
1942
1963
|
projectId: options.projectId,
|
|
1943
1964
|
tokenStore: options.tokenStore,
|
|
1944
1965
|
urls: options.urls,
|
|
1945
|
-
oauthScopesOnSignIn: options.oauthScopesOnSignIn
|
|
1966
|
+
oauthScopesOnSignIn: options.oauthScopesOnSignIn,
|
|
1967
|
+
redirectMethod: options.redirectMethod
|
|
1946
1968
|
});
|
|
1947
1969
|
this._adminProjectCache = createCache(async () => {
|
|
1948
1970
|
return await this._interface.getProject();
|