@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
package/dist/lib/stack-app.d.mts
CHANGED
|
@@ -14,7 +14,10 @@ type RequestLike = {
|
|
|
14
14
|
get: (name: string) => string | null;
|
|
15
15
|
};
|
|
16
16
|
};
|
|
17
|
-
type RedirectMethod = "window" | "nextjs" | "none"
|
|
17
|
+
type RedirectMethod = "window" | "nextjs" | "none" | {
|
|
18
|
+
useNavigate: () => (to: string) => void;
|
|
19
|
+
navigate?: (to: string) => void;
|
|
20
|
+
};
|
|
18
21
|
type TokenStoreInit<HasTokenStore extends boolean = boolean> = HasTokenStore extends true ? ("cookie" | "nextjs-cookie" | "memory" | RequestLike | {
|
|
19
22
|
accessToken: string;
|
|
20
23
|
refreshToken: string;
|
|
@@ -639,6 +642,7 @@ type StackClientApp<HasTokenStore extends boolean = boolean, ProjectId extends s
|
|
|
639
642
|
email: string;
|
|
640
643
|
password: string;
|
|
641
644
|
noRedirect?: boolean;
|
|
645
|
+
verificationCallbackUrl?: string;
|
|
642
646
|
}): Promise<Result<undefined, KnownErrors["UserEmailAlreadyExists"] | KnownErrors["PasswordRequirementsNotMet"]>>;
|
|
643
647
|
signInWithPasskey(): Promise<Result<undefined, KnownErrors["PasskeyAuthenticationFailed"] | KnownErrors["InvalidTotpCode"] | KnownErrors["PasskeyWebAuthnError"]>>;
|
|
644
648
|
callOAuthCallback(): Promise<boolean>;
|
|
@@ -677,6 +681,7 @@ type StackClientApp<HasTokenStore extends boolean = boolean, ProjectId extends s
|
|
|
677
681
|
or: 'throw';
|
|
678
682
|
}): Promise<ProjectCurrentUser<ProjectId>>;
|
|
679
683
|
getUser(options?: GetUserOptions<HasTokenStore>): Promise<ProjectCurrentUser<ProjectId> | null>;
|
|
684
|
+
useNavigate(): (to: string) => void;
|
|
680
685
|
[stackAppInternalsSymbol]: {
|
|
681
686
|
toClientJson(): StackClientAppJson<HasTokenStore, ProjectId>;
|
|
682
687
|
setCurrentUser(userJsonPromise: Promise<CurrentUserCrud['Client']['Read'] | null>): void;
|
package/dist/lib/stack-app.d.ts
CHANGED
|
@@ -14,7 +14,10 @@ type RequestLike = {
|
|
|
14
14
|
get: (name: string) => string | null;
|
|
15
15
|
};
|
|
16
16
|
};
|
|
17
|
-
type RedirectMethod = "window" | "nextjs" | "none"
|
|
17
|
+
type RedirectMethod = "window" | "nextjs" | "none" | {
|
|
18
|
+
useNavigate: () => (to: string) => void;
|
|
19
|
+
navigate?: (to: string) => void;
|
|
20
|
+
};
|
|
18
21
|
type TokenStoreInit<HasTokenStore extends boolean = boolean> = HasTokenStore extends true ? ("cookie" | "nextjs-cookie" | "memory" | RequestLike | {
|
|
19
22
|
accessToken: string;
|
|
20
23
|
refreshToken: string;
|
|
@@ -639,6 +642,7 @@ type StackClientApp<HasTokenStore extends boolean = boolean, ProjectId extends s
|
|
|
639
642
|
email: string;
|
|
640
643
|
password: string;
|
|
641
644
|
noRedirect?: boolean;
|
|
645
|
+
verificationCallbackUrl?: string;
|
|
642
646
|
}): Promise<Result<undefined, KnownErrors["UserEmailAlreadyExists"] | KnownErrors["PasswordRequirementsNotMet"]>>;
|
|
643
647
|
signInWithPasskey(): Promise<Result<undefined, KnownErrors["PasskeyAuthenticationFailed"] | KnownErrors["InvalidTotpCode"] | KnownErrors["PasskeyWebAuthnError"]>>;
|
|
644
648
|
callOAuthCallback(): Promise<boolean>;
|
|
@@ -677,6 +681,7 @@ type StackClientApp<HasTokenStore extends boolean = boolean, ProjectId extends s
|
|
|
677
681
|
or: 'throw';
|
|
678
682
|
}): Promise<ProjectCurrentUser<ProjectId>>;
|
|
679
683
|
getUser(options?: GetUserOptions<HasTokenStore>): Promise<ProjectCurrentUser<ProjectId> | null>;
|
|
684
|
+
useNavigate(): (to: string) => void;
|
|
680
685
|
[stackAppInternalsSymbol]: {
|
|
681
686
|
toClientJson(): StackClientAppJson<HasTokenStore, ProjectId>;
|
|
682
687
|
setCurrentUser(userJsonPromise: Promise<CurrentUserCrud['Client']['Read'] | null>): void;
|
package/dist/lib/stack-app.js
CHANGED
|
@@ -63,10 +63,11 @@ var import_url = require("../utils/url");
|
|
|
63
63
|
var import_auth = require("./auth");
|
|
64
64
|
var import_cookie = require("./cookie");
|
|
65
65
|
var sc = __toESM(require("@stackframe/stack-sc"));
|
|
66
|
+
var import_stack_sc = require("@stackframe/stack-sc");
|
|
66
67
|
var isReactServer2 = false;
|
|
67
68
|
isReactServer2 = sc.isReactServer;
|
|
68
69
|
var NextNavigation = (0, import_compile_time.scrambleDuringCompileTime)(NextNavigationUnscrambled);
|
|
69
|
-
var clientVersion = "js @stackframe/stack@2.7.
|
|
70
|
+
var clientVersion = "js @stackframe/stack@2.7.21";
|
|
70
71
|
if (clientVersion.startsWith("STACK_COMPILE_TIME")) {
|
|
71
72
|
throw new import_errors.StackAssertionError("Client version was not replaced. Something went wrong during build!");
|
|
72
73
|
}
|
|
@@ -262,6 +263,7 @@ var _StackClientAppImpl = class __StackClientAppImpl {
|
|
|
262
263
|
}
|
|
263
264
|
);
|
|
264
265
|
this._memoryTokenStore = createEmptyTokenStore();
|
|
266
|
+
this._nextServerCookiesTokenStores = /* @__PURE__ */ new WeakMap();
|
|
265
267
|
this._requestTokenStores = /* @__PURE__ */ new WeakMap();
|
|
266
268
|
this._storedBrowserCookieTokenStore = null;
|
|
267
269
|
/**
|
|
@@ -280,7 +282,10 @@ var _StackClientAppImpl = class __StackClientAppImpl {
|
|
|
280
282
|
getBaseUrl: () => getBaseUrl(_options.baseUrl),
|
|
281
283
|
projectId: _options.projectId ?? getDefaultProjectId(),
|
|
282
284
|
clientVersion,
|
|
283
|
-
publishableClientKey: _options.publishableClientKey ?? getDefaultPublishableClientKey()
|
|
285
|
+
publishableClientKey: _options.publishableClientKey ?? getDefaultPublishableClientKey(),
|
|
286
|
+
prepareRequest: async () => {
|
|
287
|
+
await (0, import_stack_sc.cookies)?.();
|
|
288
|
+
}
|
|
284
289
|
});
|
|
285
290
|
}
|
|
286
291
|
this._tokenStoreInit = _options.tokenStore;
|
|
@@ -303,7 +308,7 @@ var _StackClientAppImpl = class __StackClientAppImpl {
|
|
|
303
308
|
if (this._tokenStoreInit === "nextjs-cookie" || this._tokenStoreInit === "cookie") {
|
|
304
309
|
return await (0, import_cookie.createCookieHelper)();
|
|
305
310
|
} else {
|
|
306
|
-
return await (0, import_cookie.
|
|
311
|
+
return await (0, import_cookie.createPlaceholderCookieHelper)();
|
|
307
312
|
}
|
|
308
313
|
}
|
|
309
314
|
async _getUserOAuthConnectionCacheFn(options) {
|
|
@@ -384,9 +389,9 @@ var _StackClientAppImpl = class __StackClientAppImpl {
|
|
|
384
389
|
get _refreshTokenCookieName() {
|
|
385
390
|
return `stack-refresh-${this.projectId}`;
|
|
386
391
|
}
|
|
387
|
-
_getTokensFromCookies(
|
|
388
|
-
const refreshToken =
|
|
389
|
-
const accessTokenObject =
|
|
392
|
+
_getTokensFromCookies(cookies2) {
|
|
393
|
+
const refreshToken = cookies2.refreshTokenCookie;
|
|
394
|
+
const accessTokenObject = cookies2.accessTokenCookie?.startsWith('["') ? JSON.parse(cookies2.accessTokenCookie) : null;
|
|
390
395
|
const accessToken = accessTokenObject && refreshToken === accessTokenObject[0] ? accessTokenObject[1] : null;
|
|
391
396
|
return {
|
|
392
397
|
refreshToken,
|
|
@@ -959,16 +964,29 @@ var _StackClientAppImpl = class __StackClientAppImpl {
|
|
|
959
964
|
async _redirectTo(options) {
|
|
960
965
|
if (this._redirectMethod === "none") {
|
|
961
966
|
return;
|
|
962
|
-
}
|
|
963
|
-
if (isReactServer2 && this._redirectMethod === "nextjs") {
|
|
967
|
+
} else if (isReactServer2 && this._redirectMethod === "nextjs") {
|
|
964
968
|
NextNavigation.redirect(options.url.toString(), options.replace ? NextNavigation.RedirectType.replace : NextNavigation.RedirectType.push);
|
|
969
|
+
} else if (typeof this._redirectMethod === "object" && this._redirectMethod.navigate) {
|
|
970
|
+
this._redirectMethod.navigate(options.url.toString());
|
|
965
971
|
} else {
|
|
966
972
|
if (options.replace) {
|
|
967
973
|
window.location.replace(options.url);
|
|
968
974
|
} else {
|
|
969
975
|
window.location.assign(options.url);
|
|
970
976
|
}
|
|
971
|
-
|
|
977
|
+
}
|
|
978
|
+
await (0, import_promises.wait)(2e3);
|
|
979
|
+
}
|
|
980
|
+
useNavigate() {
|
|
981
|
+
if (typeof this._redirectMethod === "object") {
|
|
982
|
+
return this._redirectMethod.useNavigate();
|
|
983
|
+
} else if (this._redirectMethod === "window") {
|
|
984
|
+
return () => window.location.assign;
|
|
985
|
+
} else if (this._redirectMethod === "nextjs") {
|
|
986
|
+
return NextNavigation.useRouter().push;
|
|
987
|
+
} else {
|
|
988
|
+
return (to) => {
|
|
989
|
+
};
|
|
972
990
|
}
|
|
973
991
|
}
|
|
974
992
|
async _redirectIfTrusted(url, options) {
|
|
@@ -1135,7 +1153,6 @@ var _StackClientAppImpl = class __StackClientAppImpl {
|
|
|
1135
1153
|
}
|
|
1136
1154
|
useUser(options) {
|
|
1137
1155
|
this._ensurePersistentTokenStore(options?.tokenStore);
|
|
1138
|
-
const router = NextNavigation.useRouter();
|
|
1139
1156
|
const session = this._useSession(options?.tokenStore);
|
|
1140
1157
|
const crud = useAsyncCache(this._currentUserCache, [session], "useUser()");
|
|
1141
1158
|
if (crud === null) {
|
|
@@ -1233,7 +1250,7 @@ var _StackClientAppImpl = class __StackClientAppImpl {
|
|
|
1233
1250
|
async signUpWithCredential(options) {
|
|
1234
1251
|
this._ensurePersistentTokenStore();
|
|
1235
1252
|
const session = await this._getSession();
|
|
1236
|
-
const emailVerificationRedirectUrl = (0, import_url.constructRedirectUrl)(this.urls.emailVerification);
|
|
1253
|
+
const emailVerificationRedirectUrl = options.verificationCallbackUrl ?? (0, import_url.constructRedirectUrl)(this.urls.emailVerification);
|
|
1237
1254
|
const result = await this._interface.signUpWithCredential(
|
|
1238
1255
|
options.email,
|
|
1239
1256
|
options.password,
|
|
@@ -1432,6 +1449,9 @@ var _StackClientAppImpl = class __StackClientAppImpl {
|
|
|
1432
1449
|
if (!("publishableClientKey" in this._interface.options)) {
|
|
1433
1450
|
throw new import_errors.StackAssertionError("Cannot serialize to JSON from an application without a publishable client key");
|
|
1434
1451
|
}
|
|
1452
|
+
if (typeof this._redirectMethod !== "string") {
|
|
1453
|
+
throw new import_errors.StackAssertionError("Cannot serialize to JSON from an application with a non-string redirect method");
|
|
1454
|
+
}
|
|
1435
1455
|
return {
|
|
1436
1456
|
baseUrl: this._options.baseUrl,
|
|
1437
1457
|
projectId: this.projectId,
|
|
@@ -1439,7 +1459,8 @@ var _StackClientAppImpl = class __StackClientAppImpl {
|
|
|
1439
1459
|
tokenStore: this._tokenStoreInit,
|
|
1440
1460
|
urls: this._urlOptions,
|
|
1441
1461
|
oauthScopesOnSignIn: this._oauthScopesOnSignIn,
|
|
1442
|
-
uniqueIdentifier: this._getUniqueIdentifier()
|
|
1462
|
+
uniqueIdentifier: this._getUniqueIdentifier(),
|
|
1463
|
+
redirectMethod: this._redirectMethod
|
|
1443
1464
|
};
|
|
1444
1465
|
},
|
|
1445
1466
|
setCurrentUser: (userJsonPromise) => {
|
|
@@ -1473,7 +1494,8 @@ var _StackServerAppImpl = class extends _StackClientAppImpl {
|
|
|
1473
1494
|
publishableClientKey: options.publishableClientKey,
|
|
1474
1495
|
tokenStore: options.tokenStore,
|
|
1475
1496
|
urls: options.urls ?? {},
|
|
1476
|
-
oauthScopesOnSignIn: options.oauthScopesOnSignIn ?? {}
|
|
1497
|
+
oauthScopesOnSignIn: options.oauthScopesOnSignIn ?? {},
|
|
1498
|
+
redirectMethod: options.redirectMethod
|
|
1477
1499
|
});
|
|
1478
1500
|
// TODO override the client user cache to use the server user cache, so we save some requests
|
|
1479
1501
|
this._currentServerUserCache = createCacheBySession(async (session) => {
|
|
@@ -1869,7 +1891,6 @@ var _StackServerAppImpl = class extends _StackClientAppImpl {
|
|
|
1869
1891
|
return this.useUserById(options);
|
|
1870
1892
|
} else {
|
|
1871
1893
|
this._ensurePersistentTokenStore(options?.tokenStore);
|
|
1872
|
-
const router = NextNavigation.useRouter();
|
|
1873
1894
|
const session = this._useSession(options?.tokenStore);
|
|
1874
1895
|
const crud = useAsyncCache(this._currentServerUserCache, [session], "useUser()");
|
|
1875
1896
|
if (crud === null) {
|
|
@@ -1981,7 +2002,8 @@ var _StackAdminAppImpl = class extends _StackServerAppImpl {
|
|
|
1981
2002
|
projectId: options.projectId,
|
|
1982
2003
|
tokenStore: options.tokenStore,
|
|
1983
2004
|
urls: options.urls,
|
|
1984
|
-
oauthScopesOnSignIn: options.oauthScopesOnSignIn
|
|
2005
|
+
oauthScopesOnSignIn: options.oauthScopesOnSignIn,
|
|
2006
|
+
redirectMethod: options.redirectMethod
|
|
1985
2007
|
});
|
|
1986
2008
|
this._adminProjectCache = createCache(async () => {
|
|
1987
2009
|
return await this._interface.getProject();
|