@stackframe/react 2.8.12 → 2.8.17
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 +46 -0
- package/dist/components/api-key-dialogs.js +5 -4
- package/dist/components/api-key-dialogs.js.map +1 -1
- package/dist/components/credential-sign-in.js +4 -4
- package/dist/components/credential-sign-up.js +3 -3
- package/dist/components/elements/maybe-full-page.js +1 -1
- package/dist/components/elements/sidebar-layout.js +1 -1
- package/dist/components/magic-link-sign-in.js +3 -3
- package/dist/components/message-cards/known-error-message-card.js +2 -2
- package/dist/components/message-cards/message-card.js +1 -1
- package/dist/components/message-cards/predefined-message-card.js +3 -3
- package/dist/components/oauth-button-group.js +2 -2
- package/dist/components/oauth-button.js +27 -16
- package/dist/components/oauth-button.js.map +1 -1
- package/dist/components/passkey-button.js +2 -2
- package/dist/components/profile-image-editor.js +87 -34
- package/dist/components/profile-image-editor.js.map +1 -1
- package/dist/components/selected-team-switcher.js +60 -14
- package/dist/components/selected-team-switcher.js.map +1 -1
- package/dist/components/team-icon.js +4 -0
- package/dist/components/team-icon.js.map +1 -1
- package/dist/components/{iframe-preventer.js → use-in-iframe.js} +9 -19
- package/dist/components/use-in-iframe.js.map +1 -0
- package/dist/components/user-button.js +41 -8
- package/dist/components/user-button.js.map +1 -1
- package/dist/components-page/account-settings/active-sessions/active-sessions-page.js +57 -12
- package/dist/components-page/account-settings/active-sessions/active-sessions-page.js.map +1 -1
- package/dist/components-page/account-settings/api-keys/api-keys-page.js +100 -12
- package/dist/components-page/account-settings/api-keys/api-keys-page.js.map +1 -1
- package/dist/components-page/account-settings/editable-text.js +1 -1
- package/dist/components-page/account-settings/email-and-auth/email-and-auth-page.js +12 -12
- package/dist/components-page/account-settings/email-and-auth/email-and-auth-page.js.map +1 -1
- package/dist/components-page/account-settings/email-and-auth/emails-section.js +14 -5
- package/dist/components-page/account-settings/email-and-auth/emails-section.js.map +1 -1
- package/dist/components-page/account-settings/email-and-auth/mfa-section.js +18 -5
- package/dist/components-page/account-settings/email-and-auth/mfa-section.js.map +1 -1
- package/dist/components-page/account-settings/email-and-auth/otp-section.js +18 -5
- package/dist/components-page/account-settings/email-and-auth/otp-section.js.map +1 -1
- package/dist/components-page/account-settings/email-and-auth/passkey-section.js +19 -6
- package/dist/components-page/account-settings/email-and-auth/passkey-section.js.map +1 -1
- package/dist/components-page/account-settings/email-and-auth/password-section.js +20 -7
- package/dist/components-page/account-settings/email-and-auth/password-section.js.map +1 -1
- package/dist/components-page/account-settings/notifications/notifications-page.js +59 -0
- package/dist/components-page/account-settings/notifications/notifications-page.js.map +1 -0
- package/dist/components-page/account-settings/profile-page/profile-page.js +18 -8
- package/dist/components-page/account-settings/profile-page/profile-page.js.map +1 -1
- package/dist/components-page/account-settings/settings/delete-account-section.js +19 -10
- package/dist/components-page/account-settings/settings/delete-account-section.js.map +1 -1
- package/dist/components-page/account-settings/settings/settings-page.js +6 -6
- package/dist/components-page/account-settings/settings/settings-page.js.map +1 -1
- package/dist/components-page/account-settings/settings/sign-out-section.js +15 -6
- package/dist/components-page/account-settings/settings/sign-out-section.js.map +1 -1
- package/dist/components-page/account-settings/teams/leave-team-section.js +3 -3
- package/dist/components-page/account-settings/teams/team-api-keys-section.js +5 -5
- package/dist/components-page/account-settings/teams/team-creation-page.js +19 -10
- package/dist/components-page/account-settings/teams/team-creation-page.js.map +1 -1
- package/dist/components-page/account-settings/teams/team-display-name-section.js +4 -4
- package/dist/components-page/account-settings/teams/team-member-invitation-section.js +4 -4
- package/dist/components-page/account-settings/teams/team-member-list-section.js +3 -3
- package/dist/components-page/account-settings/teams/team-page.js +8 -8
- package/dist/components-page/account-settings/teams/team-profile-image-section.js +4 -4
- package/dist/components-page/account-settings/teams/team-profile-user-section.js +4 -4
- package/dist/components-page/account-settings.js +43 -21
- package/dist/components-page/account-settings.js.map +1 -1
- package/dist/components-page/auth-page.js +11 -12
- package/dist/components-page/auth-page.js.map +1 -1
- package/dist/components-page/cli-auth-confirm.js +3 -3
- package/dist/components-page/email-verification.js +3 -3
- package/dist/components-page/error-page.js +6 -6
- package/dist/components-page/error-page.js.map +1 -1
- package/dist/components-page/forgot-password.js +6 -6
- package/dist/components-page/magic-link-callback.js +4 -4
- package/dist/components-page/mfa.js +190 -0
- package/dist/components-page/mfa.js.map +1 -0
- package/dist/components-page/oauth-callback.js +4 -4
- package/dist/components-page/password-reset.js +6 -6
- package/dist/components-page/sign-in.js +3 -2
- package/dist/components-page/sign-in.js.map +1 -1
- package/dist/components-page/sign-out.js +2 -2
- package/dist/components-page/sign-up.js +1 -1
- package/dist/components-page/stack-handler.js +25 -14
- package/dist/components-page/stack-handler.js.map +1 -1
- package/dist/components-page/team-creation.js +4 -4
- package/dist/components-page/team-invitation.js +3 -3
- package/dist/esm/components/api-key-dialogs.js +5 -4
- package/dist/esm/components/api-key-dialogs.js.map +1 -1
- package/dist/esm/components/credential-sign-in.js +4 -4
- package/dist/esm/components/credential-sign-up.js +3 -3
- package/dist/esm/components/elements/maybe-full-page.js +1 -1
- package/dist/esm/components/elements/sidebar-layout.js +1 -1
- package/dist/esm/components/magic-link-sign-in.js +3 -3
- package/dist/esm/components/message-cards/known-error-message-card.js +2 -2
- package/dist/esm/components/message-cards/message-card.js +1 -1
- package/dist/esm/components/message-cards/predefined-message-card.js +3 -3
- package/dist/esm/components/oauth-button-group.js +2 -2
- package/dist/esm/components/oauth-button.js +28 -17
- package/dist/esm/components/oauth-button.js.map +1 -1
- package/dist/esm/components/passkey-button.js +2 -2
- package/dist/esm/components/profile-image-editor.js +86 -34
- package/dist/esm/components/profile-image-editor.js.map +1 -1
- package/dist/esm/components/selected-team-switcher.js +60 -14
- package/dist/esm/components/selected-team-switcher.js.map +1 -1
- package/dist/esm/components/team-icon.js +4 -0
- package/dist/esm/components/team-icon.js.map +1 -1
- package/dist/esm/components/use-in-iframe.js +18 -0
- package/dist/esm/components/use-in-iframe.js.map +1 -0
- package/dist/esm/components/user-button.js +41 -8
- package/dist/esm/components/user-button.js.map +1 -1
- package/dist/esm/components-page/account-settings/active-sessions/active-sessions-page.js +57 -12
- package/dist/esm/components-page/account-settings/active-sessions/active-sessions-page.js.map +1 -1
- package/dist/esm/components-page/account-settings/api-keys/api-keys-page.js +100 -12
- package/dist/esm/components-page/account-settings/api-keys/api-keys-page.js.map +1 -1
- package/dist/esm/components-page/account-settings/editable-text.js +1 -1
- package/dist/esm/components-page/account-settings/email-and-auth/email-and-auth-page.js +12 -12
- package/dist/esm/components-page/account-settings/email-and-auth/email-and-auth-page.js.map +1 -1
- package/dist/esm/components-page/account-settings/email-and-auth/emails-section.js +14 -5
- package/dist/esm/components-page/account-settings/email-and-auth/emails-section.js.map +1 -1
- package/dist/esm/components-page/account-settings/email-and-auth/mfa-section.js +18 -5
- package/dist/esm/components-page/account-settings/email-and-auth/mfa-section.js.map +1 -1
- package/dist/esm/components-page/account-settings/email-and-auth/otp-section.js +18 -5
- package/dist/esm/components-page/account-settings/email-and-auth/otp-section.js.map +1 -1
- package/dist/esm/components-page/account-settings/email-and-auth/passkey-section.js +19 -6
- package/dist/esm/components-page/account-settings/email-and-auth/passkey-section.js.map +1 -1
- package/dist/esm/components-page/account-settings/email-and-auth/password-section.js +20 -7
- package/dist/esm/components-page/account-settings/email-and-auth/password-section.js.map +1 -1
- package/dist/esm/components-page/account-settings/notifications/notifications-page.js +34 -0
- package/dist/esm/components-page/account-settings/notifications/notifications-page.js.map +1 -0
- package/dist/esm/components-page/account-settings/profile-page/profile-page.js +18 -8
- package/dist/esm/components-page/account-settings/profile-page/profile-page.js.map +1 -1
- package/dist/esm/components-page/account-settings/settings/delete-account-section.js +19 -10
- package/dist/esm/components-page/account-settings/settings/delete-account-section.js.map +1 -1
- package/dist/esm/components-page/account-settings/settings/settings-page.js +6 -6
- package/dist/esm/components-page/account-settings/settings/settings-page.js.map +1 -1
- package/dist/esm/components-page/account-settings/settings/sign-out-section.js +15 -6
- package/dist/esm/components-page/account-settings/settings/sign-out-section.js.map +1 -1
- package/dist/esm/components-page/account-settings/teams/leave-team-section.js +3 -3
- package/dist/esm/components-page/account-settings/teams/team-api-keys-section.js +5 -5
- package/dist/esm/components-page/account-settings/teams/team-creation-page.js +19 -10
- package/dist/esm/components-page/account-settings/teams/team-creation-page.js.map +1 -1
- package/dist/esm/components-page/account-settings/teams/team-display-name-section.js +4 -4
- package/dist/esm/components-page/account-settings/teams/team-member-invitation-section.js +4 -4
- package/dist/esm/components-page/account-settings/teams/team-member-list-section.js +3 -3
- package/dist/esm/components-page/account-settings/teams/team-page.js +8 -8
- package/dist/esm/components-page/account-settings/teams/team-profile-image-section.js +4 -4
- package/dist/esm/components-page/account-settings/teams/team-profile-user-section.js +4 -4
- package/dist/esm/components-page/account-settings.js +43 -21
- package/dist/esm/components-page/account-settings.js.map +1 -1
- package/dist/esm/components-page/auth-page.js +11 -12
- package/dist/esm/components-page/auth-page.js.map +1 -1
- package/dist/esm/components-page/cli-auth-confirm.js +3 -3
- package/dist/esm/components-page/email-verification.js +3 -3
- package/dist/esm/components-page/error-page.js +6 -6
- package/dist/esm/components-page/error-page.js.map +1 -1
- package/dist/esm/components-page/forgot-password.js +6 -6
- package/dist/esm/components-page/magic-link-callback.js +4 -4
- package/dist/esm/components-page/mfa.js +174 -0
- package/dist/esm/components-page/mfa.js.map +1 -0
- package/dist/esm/components-page/oauth-callback.js +4 -4
- package/dist/esm/components-page/password-reset.js +6 -6
- package/dist/esm/components-page/sign-in.js +3 -2
- package/dist/esm/components-page/sign-in.js.map +1 -1
- package/dist/esm/components-page/sign-out.js +2 -2
- package/dist/esm/components-page/sign-up.js +1 -1
- package/dist/esm/components-page/stack-handler.js +25 -14
- package/dist/esm/components-page/stack-handler.js.map +1 -1
- package/dist/esm/components-page/team-creation.js +4 -4
- package/dist/esm/components-page/team-invitation.js +3 -3
- package/dist/esm/generated/global-css.js +1 -1
- package/dist/esm/generated/global-css.js.map +1 -1
- package/dist/esm/generated/quetzal-translations.js +3616 -2364
- package/dist/esm/generated/quetzal-translations.js.map +1 -1
- package/dist/esm/index.js +22 -22
- package/dist/esm/lib/auth.js +2 -2
- package/dist/esm/lib/cookie.js +1 -129
- package/dist/esm/lib/cookie.js.map +1 -1
- package/dist/esm/lib/hooks.js +1 -1
- package/dist/esm/lib/stack-app/apps/implementations/admin-app-impl.js +11 -8
- package/dist/esm/lib/stack-app/apps/implementations/admin-app-impl.js.map +1 -1
- package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.js +79 -21
- package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.js.map +1 -1
- package/dist/esm/lib/stack-app/apps/implementations/common.js +2 -1
- package/dist/esm/lib/stack-app/apps/implementations/common.js.map +1 -1
- package/dist/esm/lib/stack-app/apps/implementations/index.js +3 -3
- package/dist/esm/lib/stack-app/apps/implementations/server-app-impl.js +34 -8
- package/dist/esm/lib/stack-app/apps/implementations/server-app-impl.js.map +1 -1
- package/dist/esm/lib/stack-app/apps/index.js +3 -3
- package/dist/esm/lib/stack-app/apps/interfaces/admin-app.js +1 -1
- package/dist/esm/lib/stack-app/apps/interfaces/admin-app.js.map +1 -1
- package/dist/esm/lib/stack-app/apps/interfaces/client-app.js +1 -1
- package/dist/esm/lib/stack-app/apps/interfaces/client-app.js.map +1 -1
- package/dist/esm/lib/stack-app/apps/interfaces/server-app.js +1 -1
- package/dist/esm/lib/stack-app/common.js.map +1 -1
- package/dist/esm/lib/stack-app/contact-channels/index.js.map +1 -1
- package/dist/esm/lib/stack-app/index.js +2 -2
- package/dist/esm/lib/stack-app/internal-api-keys/index.js.map +1 -1
- package/dist/esm/lib/stack-app/notification-categories/index.js +1 -0
- package/dist/esm/lib/stack-app/notification-categories/index.js.map +1 -0
- package/dist/esm/lib/stack-app/users/index.js.map +1 -1
- package/dist/esm/lib/translations.js +1 -1
- package/dist/esm/providers/stack-provider-client.js +2 -2
- package/dist/esm/providers/stack-provider.js +2 -2
- package/dist/esm/providers/theme-provider.js +3 -3
- package/dist/esm/providers/translation-provider.js +2 -2
- package/dist/esm/utils/browser-script.js +1 -1
- package/dist/generated/global-css.js +1 -1
- package/dist/generated/global-css.js.map +1 -1
- package/dist/generated/quetzal-translations.js +3616 -2364
- package/dist/generated/quetzal-translations.js.map +1 -1
- package/dist/index.d.mts +92 -7
- package/dist/index.d.ts +92 -7
- package/dist/index.js +23 -23
- package/dist/index.js.map +1 -1
- package/dist/lib/auth.js +2 -2
- package/dist/lib/cookie.js +4 -132
- package/dist/lib/cookie.js.map +1 -1
- package/dist/lib/hooks.js +1 -1
- package/dist/lib/stack-app/apps/implementations/admin-app-impl.js +11 -8
- package/dist/lib/stack-app/apps/implementations/admin-app-impl.js.map +1 -1
- package/dist/lib/stack-app/apps/implementations/client-app-impl.js +79 -21
- package/dist/lib/stack-app/apps/implementations/client-app-impl.js.map +1 -1
- package/dist/lib/stack-app/apps/implementations/common.js +2 -1
- package/dist/lib/stack-app/apps/implementations/common.js.map +1 -1
- package/dist/lib/stack-app/apps/implementations/index.js +3 -3
- package/dist/lib/stack-app/apps/implementations/server-app-impl.js +34 -8
- package/dist/lib/stack-app/apps/implementations/server-app-impl.js.map +1 -1
- package/dist/lib/stack-app/apps/index.js +3 -3
- package/dist/lib/stack-app/apps/interfaces/admin-app.js +1 -1
- package/dist/lib/stack-app/apps/interfaces/admin-app.js.map +1 -1
- package/dist/lib/stack-app/apps/interfaces/client-app.js +1 -1
- package/dist/lib/stack-app/apps/interfaces/client-app.js.map +1 -1
- package/dist/lib/stack-app/apps/interfaces/server-app.js +1 -1
- package/dist/lib/stack-app/common.js.map +1 -1
- package/dist/lib/stack-app/contact-channels/index.js.map +1 -1
- package/dist/lib/stack-app/index.js +2 -2
- package/dist/lib/stack-app/internal-api-keys/index.js.map +1 -1
- package/dist/lib/stack-app/notification-categories/index.js +19 -0
- package/dist/lib/stack-app/notification-categories/index.js.map +1 -0
- package/dist/lib/stack-app/users/index.js.map +1 -1
- package/dist/lib/translations.js +1 -1
- package/dist/providers/stack-provider-client.js +2 -2
- package/dist/providers/stack-provider.js +2 -2
- package/dist/providers/theme-provider.js +3 -3
- package/dist/providers/translation-provider.js +2 -2
- package/dist/utils/browser-script.js +1 -1
- package/package.json +4 -4
- package/dist/components/iframe-preventer.js.map +0 -1
- package/dist/esm/components/iframe-preventer.js +0 -28
- package/dist/esm/components/iframe-preventer.js.map +0 -1
|
@@ -14,18 +14,18 @@ import { deindent, mergeScopeStrings } from "@stackframe/stack-shared/dist/utils
|
|
|
14
14
|
import { getRelativePart, isRelative } from "@stackframe/stack-shared/dist/utils/urls";
|
|
15
15
|
import { generateUuid } from "@stackframe/stack-shared/dist/utils/uuids";
|
|
16
16
|
import * as cookie from "cookie";
|
|
17
|
-
import { constructRedirectUrl } from "../../../../utils/url";
|
|
18
|
-
import { addNewOAuthProviderOrScope, callOAuthCallback, signInWithOAuth } from "../../../auth";
|
|
19
|
-
import { createBrowserCookieHelper, createCookieHelper, createPlaceholderCookieHelper, deleteCookieClient, getCookieClient, setOrDeleteCookie, setOrDeleteCookieClient } from "../../../cookie";
|
|
20
|
-
import { apiKeyCreationOptionsToCrud } from "../../api-keys";
|
|
21
|
-
import { stackAppInternalsSymbol } from "../../common";
|
|
22
|
-
import { contactChannelCreateOptionsToCrud, contactChannelUpdateOptionsToCrud } from "../../contact-channels";
|
|
23
|
-
import { adminProjectCreateOptionsToCrud } from "../../projects";
|
|
24
|
-
import { teamCreateOptionsToCrud, teamUpdateOptionsToCrud } from "../../teams";
|
|
25
|
-
import { userUpdateOptionsToCrud } from "../../users";
|
|
26
|
-
import { clientVersion, createCache, createCacheBySession, createEmptyTokenStore, getBaseUrl, getDefaultExtraRequestHeaders, getDefaultProjectId, getDefaultPublishableClientKey, getUrls } from "./common";
|
|
17
|
+
import { constructRedirectUrl } from "../../../../utils/url.js";
|
|
18
|
+
import { addNewOAuthProviderOrScope, callOAuthCallback, signInWithOAuth } from "../../../auth.js";
|
|
19
|
+
import { createBrowserCookieHelper, createCookieHelper, createPlaceholderCookieHelper, deleteCookieClient, getCookieClient, setOrDeleteCookie, setOrDeleteCookieClient } from "../../../cookie.js";
|
|
20
|
+
import { apiKeyCreationOptionsToCrud } from "../../api-keys/index.js";
|
|
21
|
+
import { stackAppInternalsSymbol } from "../../common.js";
|
|
22
|
+
import { contactChannelCreateOptionsToCrud, contactChannelUpdateOptionsToCrud } from "../../contact-channels/index.js";
|
|
23
|
+
import { adminProjectCreateOptionsToCrud } from "../../projects/index.js";
|
|
24
|
+
import { teamCreateOptionsToCrud, teamUpdateOptionsToCrud } from "../../teams/index.js";
|
|
25
|
+
import { userUpdateOptionsToCrud } from "../../users/index.js";
|
|
26
|
+
import { clientVersion, createCache, createCacheBySession, createEmptyTokenStore, getBaseUrl, getDefaultExtraRequestHeaders, getDefaultProjectId, getDefaultPublishableClientKey, getUrls } from "./common.js";
|
|
27
27
|
import React, { useCallback, useMemo } from "react";
|
|
28
|
-
import { useAsyncCache } from "./common";
|
|
28
|
+
import { useAsyncCache } from "./common.js";
|
|
29
29
|
var isReactServer = false;
|
|
30
30
|
var process = globalThis.process ?? { env: {} };
|
|
31
31
|
var allClientApps = /* @__PURE__ */ new Map();
|
|
@@ -117,6 +117,12 @@ var __StackClientAppImplIncomplete = class __StackClientAppImplIncomplete {
|
|
|
117
117
|
return results;
|
|
118
118
|
}
|
|
119
119
|
);
|
|
120
|
+
this._notificationCategoriesCache = createCacheBySession(
|
|
121
|
+
async (session) => {
|
|
122
|
+
const results = await this._interface.listNotificationCategories(session);
|
|
123
|
+
return results;
|
|
124
|
+
}
|
|
125
|
+
);
|
|
120
126
|
this._anonymousSignUpInProgress = null;
|
|
121
127
|
this._memoryTokenStore = createEmptyTokenStore();
|
|
122
128
|
this._nextServerCookiesTokenStores = /* @__PURE__ */ new WeakMap();
|
|
@@ -611,6 +617,19 @@ var __StackClientAppImplIncomplete = class __StackClientAppImplIncomplete {
|
|
|
611
617
|
}
|
|
612
618
|
};
|
|
613
619
|
}
|
|
620
|
+
_clientNotificationCategoryFromCrud(crud, session) {
|
|
621
|
+
const app = this;
|
|
622
|
+
return {
|
|
623
|
+
id: crud.notification_category_id,
|
|
624
|
+
name: crud.notification_category_name,
|
|
625
|
+
enabled: crud.enabled,
|
|
626
|
+
canDisable: crud.can_disable,
|
|
627
|
+
async setEnabled(enabled) {
|
|
628
|
+
await app._interface.setNotificationsEnabled(crud.notification_category_id, enabled, session);
|
|
629
|
+
await app._notificationCategoriesCache.refresh([session]);
|
|
630
|
+
}
|
|
631
|
+
};
|
|
632
|
+
}
|
|
614
633
|
_createAuth(session) {
|
|
615
634
|
const app = this;
|
|
616
635
|
return {
|
|
@@ -870,6 +889,14 @@ var __StackClientAppImplIncomplete = class __StackClientAppImplIncomplete {
|
|
|
870
889
|
await app._clientContactChannelsCache.refresh([session]);
|
|
871
890
|
return app._clientContactChannelFromCrud(crud2, session);
|
|
872
891
|
},
|
|
892
|
+
useNotificationCategories() {
|
|
893
|
+
const results = useAsyncCache(app._notificationCategoriesCache, [session], "user.useNotificationCategories()");
|
|
894
|
+
return results.map((crud2) => app._clientNotificationCategoryFromCrud(crud2, session));
|
|
895
|
+
},
|
|
896
|
+
async listNotificationCategories() {
|
|
897
|
+
const results = Result.orThrow(await app._notificationCategoriesCache.getOrWait([session], "write-only"));
|
|
898
|
+
return results.map((crud2) => app._clientNotificationCategoryFromCrud(crud2, session));
|
|
899
|
+
},
|
|
873
900
|
useApiKeys() {
|
|
874
901
|
const result = useAsyncCache(app._userApiKeysCache, [session], "user.useApiKeys()");
|
|
875
902
|
return result.map((crud2) => app._clientApiKeyFromCrud(session, crud2));
|
|
@@ -1055,6 +1082,9 @@ var __StackClientAppImplIncomplete = class __StackClientAppImplIncomplete {
|
|
|
1055
1082
|
async redirectToTeamInvitation(options) {
|
|
1056
1083
|
return await this._redirectToHandler("teamInvitation", options);
|
|
1057
1084
|
}
|
|
1085
|
+
async redirectToMfa(options) {
|
|
1086
|
+
return await this._redirectToHandler("mfa", options);
|
|
1087
|
+
}
|
|
1058
1088
|
async sendForgotPasswordEmail(email, options) {
|
|
1059
1089
|
return await this._interface.sendForgotPasswordEmail(email, options?.callbackUrl ?? constructRedirectUrl(this.urls.passwordReset, "callbackUrl"));
|
|
1060
1090
|
}
|
|
@@ -1191,19 +1221,14 @@ var __StackClientAppImplIncomplete = class __StackClientAppImplIncomplete {
|
|
|
1191
1221
|
);
|
|
1192
1222
|
}
|
|
1193
1223
|
/**
|
|
1194
|
-
*
|
|
1195
|
-
* TODO remove
|
|
1224
|
+
* Handles MFA verification by redirecting to the OTP page
|
|
1196
1225
|
*/
|
|
1197
1226
|
async _experimentalMfa(error, session) {
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
throw new KnownErrors.InvalidTotpCode();
|
|
1227
|
+
if (typeof window !== "undefined") {
|
|
1228
|
+
window.sessionStorage.setItem("stack_mfa_attempt_code", error.details?.attempt_code ?? throwErr("attempt code missing"));
|
|
1201
1229
|
}
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
otp,
|
|
1205
|
-
session
|
|
1206
|
-
);
|
|
1230
|
+
await this.redirectToMfa();
|
|
1231
|
+
throw new StackAssertionError("we should have redirected in redirectToMfa()");
|
|
1207
1232
|
}
|
|
1208
1233
|
/**
|
|
1209
1234
|
* @deprecated
|
|
@@ -1387,6 +1412,39 @@ ${url}`);
|
|
|
1387
1412
|
}
|
|
1388
1413
|
return Result.error(new KnownErrors.CliAuthError("Timed out waiting for CLI authentication."));
|
|
1389
1414
|
}
|
|
1415
|
+
/*
|
|
1416
|
+
* Completes the MFA sign-in process by verifying the provided OTP code
|
|
1417
|
+
* @param totp The TOTP (Time-based One-Time Password) provided by the user
|
|
1418
|
+
* @param code The Attempt code provided by the user
|
|
1419
|
+
* @param options Additional options for the sign-in process
|
|
1420
|
+
* @returns A Result indicating success or failure
|
|
1421
|
+
*/
|
|
1422
|
+
async signInWithMfa(totp, code, options) {
|
|
1423
|
+
this._ensurePersistentTokenStore();
|
|
1424
|
+
let result;
|
|
1425
|
+
try {
|
|
1426
|
+
result = await this._catchMfaRequiredError(async () => {
|
|
1427
|
+
return await this._interface.signInWithMfa(totp, code);
|
|
1428
|
+
});
|
|
1429
|
+
} catch (e) {
|
|
1430
|
+
if (e instanceof KnownErrors.InvalidTotpCode) {
|
|
1431
|
+
return Result.error(e);
|
|
1432
|
+
}
|
|
1433
|
+
throw e;
|
|
1434
|
+
}
|
|
1435
|
+
if (result.status === "ok") {
|
|
1436
|
+
await this._signInToAccountWithTokens(result.data);
|
|
1437
|
+
if (!options?.noRedirect) {
|
|
1438
|
+
if (result.data.newUser) {
|
|
1439
|
+
await this.redirectToAfterSignUp({ replace: true });
|
|
1440
|
+
} else {
|
|
1441
|
+
await this.redirectToAfterSignIn({ replace: true });
|
|
1442
|
+
}
|
|
1443
|
+
}
|
|
1444
|
+
return Result.ok(void 0);
|
|
1445
|
+
}
|
|
1446
|
+
return Result.error(result.error);
|
|
1447
|
+
}
|
|
1390
1448
|
async signInWithPasskey() {
|
|
1391
1449
|
this._ensurePersistentTokenStore();
|
|
1392
1450
|
const session = await this._getSession();
|