@stytch/vanilla-js 6.0.5 → 6.0.6
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 +12 -0
- package/dist/cjs/b2b/index.cjs +8 -8
- package/dist/cjs/b2b/index.cjs.map +1 -1
- package/dist/cjs-dev/b2b/index.cjs +8 -8
- package/dist/cjs-dev/b2b/index.cjs.map +1 -1
- package/dist/esm/_virtual/index3.mjs +5 -3
- package/dist/esm/_virtual/index3.mjs.map +1 -1
- package/dist/esm/_virtual/index4.mjs +3 -5
- package/dist/esm/_virtual/index4.mjs.map +1 -1
- package/dist/esm/node_modules/@emotion/react/dist/emotion-element-f0de968e.browser.esm.mjs +1 -1
- package/dist/esm/node_modules/@mui/material/Autocomplete/Autocomplete.mjs +1 -1
- package/dist/esm/node_modules/@mui/material/Button/Button.mjs +1 -1
- package/dist/esm/node_modules/@mui/material/Chip/Chip.mjs +1 -1
- package/dist/esm/node_modules/@mui/material/MenuItem/MenuItem.mjs +1 -1
- package/dist/esm/node_modules/@mui/material/TableCell/TableCell.mjs +1 -1
- package/dist/esm/node_modules/@mui/material/TableRow/TableRow.mjs +1 -1
- package/dist/esm/node_modules/@mui/material/Tooltip/Tooltip.mjs +1 -1
- package/dist/esm/node_modules/@mui/material/styles/createThemeWithVars.mjs +1 -1
- package/dist/esm/node_modules/@mui/system/esm/borders/borders.mjs +1 -1
- package/dist/esm/node_modules/@mui/system/esm/cssGrid/cssGrid.mjs +2 -2
- package/dist/esm/node_modules/@mui/system/esm/sizing/sizing.mjs +1 -1
- package/dist/esm/node_modules/@mui/system/esm/spacing/spacing.mjs +1 -1
- package/dist/esm/packages/core/src/HeadlessClients/HeadlessOAuthClient.mjs +1 -1
- package/dist/esm/packages/web/src/adminPortal/AdminPortalWrapper.mjs +1 -1
- package/dist/esm/packages/web/src/adminPortal/components/ActionMenu.mjs +1 -1
- package/dist/esm/packages/web/src/adminPortal/components/Autocomplete.mjs +1 -1
- package/dist/esm/packages/web/src/adminPortal/components/DeleteConnection.mjs +1 -1
- package/dist/esm/packages/web/src/adminPortal/components/IconButtonMenu.mjs +1 -1
- package/dist/esm/packages/web/src/adminPortal/components/SettingsContainer.mjs +1 -1
- package/dist/esm/packages/web/src/adminPortal/memberManagement/AccessSection.mjs +1 -1
- package/dist/esm/packages/web/src/adminPortal/memberManagement/InviteModal.mjs +1 -1
- package/dist/esm/packages/web/src/adminPortal/memberManagement/useMemberActivation.mjs +1 -1
- package/dist/esm/packages/web/src/adminPortal/scim/SCIMConnectionTokenRotationSection.mjs +1 -1
- package/dist/esm/packages/web/src/adminPortal/scim/SCIMNewConnectionConfigureScreen.mjs +1 -1
- package/dist/esm/packages/web/src/adminPortal/settings/OrgSettingsRoleAssignmentsSection.mjs +1 -1
- package/dist/esm/packages/web/src/adminPortal/settings/OrgSettingsUserOnboardingSection.mjs +1 -1
- package/dist/esm/packages/web/src/adminPortal/shared/components/EmbeddedTable.mjs +1 -1
- package/dist/esm/packages/web/src/adminPortal/shared/components/Input.mjs +1 -1
- package/dist/esm/packages/web/src/adminPortal/shared/components/PaginatedTable.mjs +1 -1
- package/dist/esm/packages/web/src/adminPortal/shared/components/Table.mjs +1 -1
- package/dist/esm/packages/web/src/adminPortal/shared/components/Toast.mjs +1 -1
- package/dist/esm/packages/web/src/adminPortal/shared/components/Tooltip.mjs +1 -1
- package/dist/esm/packages/web/src/adminPortal/sso/AttributeMappingTable.mjs +1 -1
- package/dist/esm/packages/web/src/adminPortal/sso/DetailsSection.mjs +1 -1
- package/dist/esm/packages/web/src/adminPortal/sso/RoleAssignmentsSection.mjs +1 -1
- package/dist/esm/packages/web/src/adminPortal/sso/SSOConnectionDetailsScreen.mjs +1 -1
- package/dist/esm/packages/web/src/adminPortal/sso/SSOConnectionsScreen.mjs +1 -1
- package/dist/esm/packages/web/src/adminPortal/sso/SSONewConnectionConfigureScreen.mjs +1 -1
- package/dist/esm/packages/web/src/adminPortal/sso/SSONewConnectionScreen.mjs +1 -1
- package/dist/esm/packages/web/src/adminPortal/utils/theme.mjs +1 -1
- package/dist/esm/packages/web/src/b2b/StytchB2BClient.mjs +3 -3
- package/dist/esm/packages/web/src/oneTap/OneTapProvider.mjs +1 -1
- package/dist/esm/packages/web/src/ui/b2b/InternalAppContainer.mjs +1 -1
- package/dist/esm/packages/web/src/ui/b2b/components/B2BOneTap.mjs +1 -1
- package/dist/esm/packages/web/src/ui/b2b/screens/MFAEnrollmentSelectionScreen.mjs +1 -1
- package/dist/esm/packages/web/src/ui/b2b/screens/PasswordResetForm.mjs +4 -4
- package/dist/esm/packages/web/src/ui/b2b/screens/PasswordResetForm.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/b2b/screens/SSODiscoveryMenu.mjs +1 -1
- package/dist/esm/packages/web/src/ui/b2b/screens/SsoAndOAuthButtons.mjs +1 -1
- package/dist/esm/packages/web/src/ui/b2b/usePasswordInput.mjs +4 -4
- package/dist/esm/packages/web/src/ui/b2b/usePasswordInput.mjs.map +1 -1
- package/dist/esm/packages/web/src/ui/b2c/GlobalContextProvider.mjs +1 -1
- package/dist/esm/packages/web/src/ui/b2c/components/GoogleOneTap.mjs +1 -1
- package/dist/esm/packages/web/src/ui/b2c/screens/IdentityProvider/IDPConsent.mjs +1 -1
- package/dist/esm/packages/web/src/ui/b2c/screens/Main/LoginForm/MagicLinkForm.mjs +1 -1
- package/dist/esm/packages/web/src/ui/b2c/screens/Main/LoginForm/OTPForm.mjs +1 -1
- package/dist/esm/packages/web/src/ui/b2c/screens/Passkey/PasskeyConfirmation.mjs +1 -1
- package/dist/esm/packages/web/src/ui/b2c/screens/Passkey/PasskeyRegistrationSuccess.mjs +1 -1
- package/dist/esm/packages/web/src/ui/b2c/screens/Password/PasswordConfirmation.mjs +1 -1
- package/dist/esm/packages/web/src/ui/b2c/screens/Secondary/OTPConfirmation.mjs +1 -1
- package/dist/esm/packages/web/src/ui/components/PresentationConfig.mjs +1 -1
- package/dist/esm/packages/web/src/ui/hooks/usePromptPasskey.mjs +1 -1
- package/dist/esm/packages/web/src/utils/crypto.mjs +1 -1
- package/dist/esm-dev/node_modules/@emotion/react/dist/emotion-element-489459f2.browser.development.esm.mjs +1 -1
- package/dist/esm-dev/node_modules/@mui/material/Autocomplete/Autocomplete.mjs +1 -1
- package/dist/esm-dev/node_modules/@mui/material/Button/Button.mjs +1 -1
- package/dist/esm-dev/node_modules/@mui/material/Checkbox/Checkbox.mjs +1 -1
- package/dist/esm-dev/node_modules/@mui/material/Chip/Chip.mjs +1 -1
- package/dist/esm-dev/node_modules/@mui/material/IconButton/IconButton.mjs +1 -1
- package/dist/esm-dev/node_modules/@mui/material/MenuItem/MenuItem.mjs +1 -1
- package/dist/esm-dev/node_modules/@mui/material/Radio/Radio.mjs +1 -1
- package/dist/esm-dev/node_modules/@mui/material/Switch/Switch.mjs +1 -1
- package/dist/esm-dev/node_modules/@mui/material/TableCell/TableCell.mjs +1 -1
- package/dist/esm-dev/node_modules/@mui/material/TableRow/TableRow.mjs +1 -1
- package/dist/esm-dev/node_modules/@mui/material/Tooltip/Tooltip.mjs +1 -1
- package/dist/esm-dev/node_modules/@mui/material/styles/createThemeWithVars.mjs +1 -1
- package/dist/esm-dev/node_modules/@mui/system/esm/borders/borders.mjs +1 -1
- package/dist/esm-dev/node_modules/@mui/system/esm/createStyled/createStyled.mjs +1 -1
- package/dist/esm-dev/node_modules/@mui/system/esm/cssGrid/cssGrid.mjs +2 -2
- package/dist/esm-dev/node_modules/@mui/system/esm/sizing/sizing.mjs +1 -1
- package/dist/esm-dev/node_modules/@mui/system/esm/spacing/spacing.mjs +1 -1
- package/dist/esm-dev/packages/core/src/HeadlessClients/HeadlessOAuthClient.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/AdminPortalWrapper.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/components/ActionMenu.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/components/Autocomplete.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/components/DeleteConnection.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/components/IconButtonMenu.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/components/SettingsContainer.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/memberManagement/AccessSection.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/memberManagement/InviteModal.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/memberManagement/useMemberActivation.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/scim/SCIMConnectionTokenRotationSection.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/scim/SCIMNewConnectionConfigureScreen.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/settings/OrgSettingsRoleAssignmentsSection.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/settings/OrgSettingsUserOnboardingSection.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/shared/components/EmbeddedTable.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/shared/components/Input.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/shared/components/PaginatedTable.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/shared/components/Table.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/shared/components/Toast.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/shared/components/Tooltip.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/sso/AttributeMappingTable.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/sso/DetailsSection.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/sso/RoleAssignmentsSection.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/sso/SSOConnectionDetailsScreen.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/sso/SSOConnectionsScreen.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/sso/SSONewConnectionConfigureScreen.mjs +1 -1
- package/dist/esm-dev/packages/web/src/adminPortal/sso/SSONewConnectionScreen.mjs +1 -1
- package/dist/esm-dev/packages/web/src/b2b/StytchB2BClient.mjs +3 -3
- package/dist/esm-dev/packages/web/src/oneTap/OneTapProvider.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2b/App.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2b/InternalAppContainer.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2b/components/B2BOneTap.mjs +2 -2
- package/dist/esm-dev/packages/web/src/ui/b2b/screens/MFAEnrollmentSelectionScreen.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2b/screens/PasswordResetForm.mjs +4 -4
- package/dist/esm-dev/packages/web/src/ui/b2b/screens/PasswordResetForm.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2b/screens/SSODiscoveryMenu.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2b/screens/SsoAndOAuthButtons.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2b/usePasswordInput.mjs +4 -4
- package/dist/esm-dev/packages/web/src/ui/b2b/usePasswordInput.mjs.map +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/AppContainer.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/GlobalContextProvider.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/IDPContainer.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/PasskeyRegistrationContainer.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/ResetPasswordContainer.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/components/GoogleOneTap.mjs +2 -2
- package/dist/esm-dev/packages/web/src/ui/b2c/screens/IdentityProvider/IDPConsent.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/screens/Main/LoginForm/MagicLinkForm.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/screens/Main/LoginForm/OTPForm.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/screens/Main/LoginForm/index.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/screens/Main/index.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/screens/Passkey/PasskeyConfirmation.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/screens/Passkey/PasskeyRegistrationSuccess.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/screens/Password/PasswordConfirmation.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/b2c/screens/Secondary/OTPConfirmation.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/components/PresentationConfig.mjs +1 -1
- package/dist/esm-dev/packages/web/src/ui/hooks/usePromptPasskey.mjs +1 -1
- package/dist/iife/b2b/index.js +1 -1
- package/dist/iife/b2b/index.js.map +1 -1
- package/dist/types/{GoogleOneTapClient-wRV3UqOo.d.ts → GoogleOneTapClient-iv3nb_kU.d.ts} +29 -2
- package/dist/types/{StytchB2BClient-BxoZQ3m8.d.ts → StytchB2BClient-C-2u87oo.d.ts} +1 -1
- package/dist/types/{StytchClient-CMzVKb4K.d.ts → StytchClient-CCLs7DV6.d.ts} +1 -1
- package/dist/types/adminPortal/index.d.ts +3 -3
- package/dist/types/b2b/index.d.ts +5 -5
- package/dist/types/b2b/index.headless.d.ts +2 -2
- package/dist/types/index.d.ts +5 -5
- package/dist/types/index.headless.d.ts +2 -2
- package/dist/types/{themes-sEz9GUNs.d.ts → themes-MdCoynbd.d.ts} +3 -3
- package/package.json +1 -1
|
@@ -13,9 +13,9 @@ import autocompleteClasses from '../../../../../node_modules/@mui/material/Autoc
|
|
|
13
13
|
import outlinedInputClasses from '../../../../../node_modules/@mui/material/OutlinedInput/outlinedInputClasses.mjs';
|
|
14
14
|
import inputBaseClasses from '../../../../../node_modules/@mui/material/InputBase/inputBaseClasses.mjs';
|
|
15
15
|
import IconButton from '../../../../../node_modules/@mui/material/IconButton/IconButton.mjs';
|
|
16
|
+
import { useState as h } from '../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
16
17
|
import Typography from '../../../../../node_modules/@mui/material/Typography/Typography.mjs';
|
|
17
18
|
import TextField from '../../../../../node_modules/@mui/material/TextField/TextField.mjs';
|
|
18
|
-
import { useState as h } from '../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
19
19
|
|
|
20
20
|
const StyledAutocomplete = styled(Autocomplete$1)(({ theme })=>({
|
|
21
21
|
[`& .${inputBaseClasses.root}`]: {
|
|
@@ -2,8 +2,8 @@ import wn from '../../../../../node_modules/preact/compat/dist/compat.module.mjs
|
|
|
2
2
|
import { Modal } from './Modal.mjs';
|
|
3
3
|
import { Typography } from './Typography.mjs';
|
|
4
4
|
import { useDeleteSsoConnection } from '../utils/useMutateSsoConnection.mjs';
|
|
5
|
-
import { useModalState } from '../shared/components/Modal.mjs';
|
|
6
5
|
import { useState as h, useCallback as T } from '../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
6
|
+
import { useModalState } from '../shared/components/Modal.mjs';
|
|
7
7
|
|
|
8
8
|
const DeleteConfirmModal = ({ connectionName, connectionType, ...modalProps })=>{
|
|
9
9
|
return /*#__PURE__*/ wn.createElement(Modal, {
|
|
@@ -5,8 +5,8 @@ import { Typography } from './Typography.mjs';
|
|
|
5
5
|
import styled from '../../../../../node_modules/@mui/material/styles/styled.mjs';
|
|
6
6
|
import MenuItem from '../../../../../node_modules/@mui/material/MenuItem/MenuItem.mjs';
|
|
7
7
|
import IconButton from '../../../../../node_modules/@mui/material/IconButton/IconButton.mjs';
|
|
8
|
-
import Menu from '../../../../../node_modules/@mui/material/Menu/Menu.mjs';
|
|
9
8
|
import { useState as h, useCallback as T, useMemo as F } from '../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
9
|
+
import Menu from '../../../../../node_modules/@mui/material/Menu/Menu.mjs';
|
|
10
10
|
|
|
11
11
|
const StyledMenuItem$1 = styled(MenuItem)(({ theme })=>({
|
|
12
12
|
padding: theme.spacing(1),
|
|
@@ -7,9 +7,9 @@ import { Modal } from './Modal.mjs';
|
|
|
7
7
|
import { useToast } from '../shared/components/Toast.mjs';
|
|
8
8
|
import { Typography } from './Typography.mjs';
|
|
9
9
|
import styled from '../../../../../node_modules/@mui/material/styles/styled.mjs';
|
|
10
|
+
import { useState as h, useContext as q } from '../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
10
11
|
import { useModalState } from '../shared/components/Modal.mjs';
|
|
11
12
|
import { createContext as F } from '../../../../../node_modules/preact/dist/preact.module.mjs';
|
|
12
|
-
import { useState as h, useContext as q } from '../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
13
13
|
|
|
14
14
|
const Container$2 = styled('div')(({ theme })=>({
|
|
15
15
|
border: '1px solid',
|
|
@@ -19,8 +19,8 @@ import { useRoleSortFn } from '../utils/useRoleSortFn.mjs';
|
|
|
19
19
|
import { useSelf } from '../utils/useSelf.mjs';
|
|
20
20
|
import { useStateSliceSetter } from '../utils/useStateSliceSetter.mjs';
|
|
21
21
|
import { useMemberManagementRouterController } from './MemberManagementRouter.mjs';
|
|
22
|
-
import { useModalState } from '../shared/components/Modal.mjs';
|
|
23
22
|
import { useMemo as F, useRef as _, useCallback as T, useState as h } from '../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
23
|
+
import { useModalState } from '../shared/components/Modal.mjs';
|
|
24
24
|
|
|
25
25
|
const getRoleSourceTypeDisplayName = (sourceType)=>{
|
|
26
26
|
switch(sourceType){
|
|
@@ -6,8 +6,8 @@ import { Modal } from '../components/Modal.mjs';
|
|
|
6
6
|
import { ROLE_ID_STYTCH_MEMBER } from '../utils/roles.mjs';
|
|
7
7
|
import { useRbac } from '../utils/useRbac.mjs';
|
|
8
8
|
import { useRoleAutocomplete } from '../utils/useRoleAutocomplete.mjs';
|
|
9
|
-
import { useModalState } from '../shared/components/Modal.mjs';
|
|
10
9
|
import { useState as h, useCallback as T } from '../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
10
|
+
import { useModalState } from '../shared/components/Modal.mjs';
|
|
11
11
|
|
|
12
12
|
const defaultInviteRoles = [];
|
|
13
13
|
const useInviteModal = (inviteUser)=>{
|
|
@@ -7,8 +7,8 @@ import { memberGetKey } from '../utils/memberGetKey.mjs';
|
|
|
7
7
|
import { useMutateWithToast } from '../utils/useMutateWithToast.mjs';
|
|
8
8
|
import { useStytchClient } from '../utils/useStytchClient.mjs';
|
|
9
9
|
import { useUpdateCachedMember } from '../utils/useUpdateCachedMember.mjs';
|
|
10
|
-
import { useModalState } from '../shared/components/Modal.mjs';
|
|
11
10
|
import { useState as h } from '../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
11
|
+
import { useModalState } from '../shared/components/Modal.mjs';
|
|
12
12
|
|
|
13
13
|
const getActionCopy = ({ status, isEmailVerified })=>{
|
|
14
14
|
if (status === 'invited') {
|
package/dist/esm-dev/packages/web/src/adminPortal/scim/SCIMConnectionTokenRotationSection.mjs
CHANGED
|
@@ -16,8 +16,8 @@ import { useRbac } from '../utils/useRbac.mjs';
|
|
|
16
16
|
import { scimGetConnectionKey } from '../utils/useScimConnection.mjs';
|
|
17
17
|
import { useStytchClient } from '../utils/useStytchClient.mjs';
|
|
18
18
|
import { getFieldBy, DEFAULT_HEADER_BEARER_TOKEN_LABEL } from './scimInfo.mjs';
|
|
19
|
-
import { useModalState } from '../shared/components/Modal.mjs';
|
|
20
19
|
import { useState as h } from '../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
20
|
+
import { useModalState } from '../shared/components/Modal.mjs';
|
|
21
21
|
|
|
22
22
|
const tokenRotationItemRenderers = ({ isCurrent, tokenTitle, tokenLastFour, tokenExpiresAt })=>[
|
|
23
23
|
{
|
|
@@ -7,9 +7,9 @@ import { SCIMFields } from '../components/ScimFields.mjs';
|
|
|
7
7
|
import { Typography } from '../components/Typography.mjs';
|
|
8
8
|
import { getSCIMIdpInfo } from './scimInfo.mjs';
|
|
9
9
|
import { useScimRouterController } from './SCIMRouter.mjs';
|
|
10
|
+
import { useState as h } from '../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
10
11
|
import Accordion from '../../../../../node_modules/@mui/material/Accordion/Accordion.mjs';
|
|
11
12
|
import AccordionDetails from '../../../../../node_modules/@mui/material/AccordionDetails/AccordionDetails.mjs';
|
|
12
|
-
import { useState as h } from '../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
13
13
|
|
|
14
14
|
const SCIMNewConnectionConfigureScreen = ({ connection })=>{
|
|
15
15
|
const { navigate } = useScimRouterController();
|
package/dist/esm-dev/packages/web/src/adminPortal/settings/OrgSettingsRoleAssignmentsSection.mjs
CHANGED
|
@@ -29,10 +29,10 @@ import { useScimConnection } from '../utils/useScimConnection.mjs';
|
|
|
29
29
|
import { useScimConnectionGroups } from '../utils/useScimConnectionGroups.mjs';
|
|
30
30
|
import { useSsoConnections } from '../utils/useSsoConnections.mjs';
|
|
31
31
|
import { useOrgSettingsRouterController } from './AdminPortalOrgRouter.mjs';
|
|
32
|
+
import { useMemo as F, useState as h } from '../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
32
33
|
import { useModalState } from '../shared/components/Modal.mjs';
|
|
33
34
|
import TableContainer from '../../../../../node_modules/@mui/material/TableContainer/TableContainer.mjs';
|
|
34
35
|
import Paper from '../../../../../node_modules/@mui/material/Paper/Paper.mjs';
|
|
35
|
-
import { useMemo as F, useState as h } from '../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
36
36
|
|
|
37
37
|
const roleAssignmentsItemRenderers = (idMap, rolesById)=>[
|
|
38
38
|
{
|
package/dist/esm-dev/packages/web/src/adminPortal/settings/OrgSettingsUserOnboardingSection.mjs
CHANGED
|
@@ -27,8 +27,8 @@ import { useRbac } from '../utils/useRbac.mjs';
|
|
|
27
27
|
import { useSelf } from '../utils/useSelf.mjs';
|
|
28
28
|
import { useStateSliceSetter } from '../utils/useStateSliceSetter.mjs';
|
|
29
29
|
import { useOrgSettingsRouterController } from './AdminPortalOrgRouter.mjs';
|
|
30
|
-
import { useModalState } from '../shared/components/Modal.mjs';
|
|
31
30
|
import { useMemo as F, useCallback as T, useState as h } from '../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
31
|
+
import { useModalState } from '../shared/components/Modal.mjs';
|
|
32
32
|
|
|
33
33
|
const useMutateAuthSettings = ()=>{
|
|
34
34
|
const { mutate } = useMutateOrganization();
|
|
@@ -4,11 +4,11 @@ import { TABLE_ACTIONS_HEADER, TableActionsContainer } from './TableActions.mjs'
|
|
|
4
4
|
import styled from '../../../../../../node_modules/@mui/material/styles/styled.mjs';
|
|
5
5
|
import Table from '../../../../../../node_modules/@mui/material/Table/Table.mjs';
|
|
6
6
|
import TableCell from '../../../../../../node_modules/@mui/material/TableCell/TableCell.mjs';
|
|
7
|
+
import { useCallback as T, useState as h, useEffect as p } from '../../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
7
8
|
import TableContainer from '../../../../../../node_modules/@mui/material/TableContainer/TableContainer.mjs';
|
|
8
9
|
import TableHead from '../../../../../../node_modules/@mui/material/TableHead/TableHead.mjs';
|
|
9
10
|
import TableRow from '../../../../../../node_modules/@mui/material/TableRow/TableRow.mjs';
|
|
10
11
|
import TableBody from '../../../../../../node_modules/@mui/material/TableBody/TableBody.mjs';
|
|
11
|
-
import { useCallback as T, useState as h, useEffect as p } from '../../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
12
12
|
|
|
13
13
|
const StyledTable$1 = styled(Table)(({ hasActions })=>[
|
|
14
14
|
// For some reason with position sticky, the table is 2px wider than the container
|
|
@@ -2,8 +2,8 @@ import wn from '../../../../../../node_modules/preact/compat/dist/compat.module.
|
|
|
2
2
|
import { useUniqueId } from '../../../utils/uniqueId.mjs';
|
|
3
3
|
import { DEFAULT_GRID_COLUMN_WIDTH, DEFAULT_MAX_ITEM_WIDTH } from './constants.mjs';
|
|
4
4
|
import styled from '../../../../../../node_modules/@mui/material/styles/styled.mjs';
|
|
5
|
-
import OutlinedInput from '../../../../../../node_modules/@mui/material/OutlinedInput/OutlinedInput.mjs';
|
|
6
5
|
import { useState as h, useEffect as p } from '../../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
6
|
+
import OutlinedInput from '../../../../../../node_modules/@mui/material/OutlinedInput/OutlinedInput.mjs';
|
|
7
7
|
|
|
8
8
|
const InputContainer = styled('div')(({ isMultiline, isReadOnly, fullWidth, theme })=>[
|
|
9
9
|
{
|
|
@@ -4,9 +4,9 @@ import { useToast } from './Toast.mjs';
|
|
|
4
4
|
import styled from '../../../../../../node_modules/@mui/material/styles/styled.mjs';
|
|
5
5
|
import tablePaginationClasses from '../../../../../../node_modules/@mui/material/TablePagination/tablePaginationClasses.mjs';
|
|
6
6
|
import iconButtonClasses from '../../../../../../node_modules/@mui/material/IconButton/iconButtonClasses.mjs';
|
|
7
|
+
import { useRef as _ } from '../../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
7
8
|
import CircularProgress from '../../../../../../node_modules/@mui/material/CircularProgress/CircularProgress.mjs';
|
|
8
9
|
import TablePagination from '../../../../../../node_modules/@mui/material/TablePagination/TablePagination.mjs';
|
|
9
|
-
import { useRef as _ } from '../../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
10
10
|
|
|
11
11
|
const DEFAULT_TABLE_ROWS_PER_PAGE = 20;
|
|
12
12
|
const LOAD_NEXT_PAGE_ERROR = 'Failed to load the next page.';
|
|
@@ -8,12 +8,12 @@ import styled from '../../../../../../node_modules/@mui/material/styles/styled.m
|
|
|
8
8
|
import Table from '../../../../../../node_modules/@mui/material/Table/Table.mjs';
|
|
9
9
|
import TableRow$1 from '../../../../../../node_modules/@mui/material/TableRow/TableRow.mjs';
|
|
10
10
|
import TableCell$1 from '../../../../../../node_modules/@mui/material/TableCell/TableCell.mjs';
|
|
11
|
+
import { useState as h, useEffect as p } from '../../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
11
12
|
import TableContainer from '../../../../../../node_modules/@mui/material/TableContainer/TableContainer.mjs';
|
|
12
13
|
import TableHead from '../../../../../../node_modules/@mui/material/TableHead/TableHead.mjs';
|
|
13
14
|
import TableBody from '../../../../../../node_modules/@mui/material/TableBody/TableBody.mjs';
|
|
14
15
|
import IconButton from '../../../../../../node_modules/@mui/material/IconButton/IconButton.mjs';
|
|
15
16
|
import Collapse from '../../../../../../node_modules/@mui/material/Collapse/Collapse.mjs';
|
|
16
|
-
import { useState as h, useEffect as p } from '../../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
17
17
|
|
|
18
18
|
const TABLE_CONTAINER_ID = 'table-container';
|
|
19
19
|
const EXPANDED_CONTENT_CLASSNAME = 'expanded-content';
|
|
@@ -9,8 +9,8 @@ import Snackbar from '../../../../../../node_modules/@mui/material/Snackbar/Snac
|
|
|
9
9
|
import IconButton from '../../../../../../node_modules/@mui/material/IconButton/IconButton.mjs';
|
|
10
10
|
import Alert from '../../../../../../node_modules/@mui/material/Alert/Alert.mjs';
|
|
11
11
|
import alertClasses from '../../../../../../node_modules/@mui/material/Alert/alertClasses.mjs';
|
|
12
|
-
import { createContext as F } from '../../../../../../node_modules/preact/dist/preact.module.mjs';
|
|
13
12
|
import { useState as h, useRef as _, useCallback as T, useContext as q } from '../../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
13
|
+
import { createContext as F } from '../../../../../../node_modules/preact/dist/preact.module.mjs';
|
|
14
14
|
|
|
15
15
|
const StyledSnackbar = styled(Snackbar)(({ theme })=>({
|
|
16
16
|
bottom: theme.spacing(5)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import wn from '../../../../../../node_modules/preact/compat/dist/compat.module.mjs';
|
|
2
2
|
import styled from '../../../../../../node_modules/@mui/material/styles/styled.mjs';
|
|
3
|
-
import Tooltip from '../../../../../../node_modules/@mui/material/Tooltip/Tooltip.mjs';
|
|
4
3
|
import { useState as h } from '../../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
4
|
+
import Tooltip from '../../../../../../node_modules/@mui/material/Tooltip/Tooltip.mjs';
|
|
5
5
|
|
|
6
6
|
const HoverTarget = styled('span')({
|
|
7
7
|
display: 'flex',
|
|
@@ -7,9 +7,9 @@ import { Modal } from '../components/Modal.mjs';
|
|
|
7
7
|
import { Select } from '../components/Select.mjs';
|
|
8
8
|
import { Typography } from '../components/Typography.mjs';
|
|
9
9
|
import { collator } from '../utils/collator.mjs';
|
|
10
|
+
import { useMemo as F, useState as h, useCallback as T } from '../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
10
11
|
import { useModalState } from '../shared/components/Modal.mjs';
|
|
11
12
|
import Add from '../../../../../node_modules/@mui/icons-material/esm/Add.mjs';
|
|
12
|
-
import { useMemo as F, useState as h, useCallback as T } from '../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
13
13
|
|
|
14
14
|
const nameKeys = new Set([
|
|
15
15
|
'full_name',
|
|
@@ -20,9 +20,9 @@ import { AttributeMappingTable } from './AttributeMappingTable.mjs';
|
|
|
20
20
|
import { getIdpAndConnectionInfo } from './IdpInfo.mjs';
|
|
21
21
|
import { samlIdpSelectItems, oidcIdpSelectItems } from './IdpSelect.mjs';
|
|
22
22
|
import { useSsoRouterController } from './SSORouter.mjs';
|
|
23
|
-
import { useModalState } from '../shared/components/Modal.mjs';
|
|
24
23
|
import { useMemo as F, useCallback as T, useState as h } from '../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
25
24
|
import { StytchSDKAPIError } from '../../../../core/src/public/SDKErrors.mjs';
|
|
25
|
+
import { useModalState } from '../shared/components/Modal.mjs';
|
|
26
26
|
|
|
27
27
|
const certItemRenderer = [
|
|
28
28
|
{
|
|
@@ -16,8 +16,8 @@ import { useRbac } from '../utils/useRbac.mjs';
|
|
|
16
16
|
import { useRoleAutocomplete } from '../utils/useRoleAutocomplete.mjs';
|
|
17
17
|
import { getIdpInfo } from './IdpInfo.mjs';
|
|
18
18
|
import { useSsoRouterController } from './SSORouter.mjs';
|
|
19
|
-
import Add from '../../../../../node_modules/@mui/icons-material/esm/Add.mjs';
|
|
20
19
|
import { useMemo as F, useCallback as T } from '../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
20
|
+
import Add from '../../../../../node_modules/@mui/icons-material/esm/Add.mjs';
|
|
21
21
|
|
|
22
22
|
const RoleAssignmentsSectionBody = ({ connection, localState, setLocalState, remoteState })=>{
|
|
23
23
|
const { editing } = useSettingsContainer();
|
|
@@ -14,8 +14,8 @@ import { DetailsSection } from './DetailsSection.mjs';
|
|
|
14
14
|
import { OrganizationUpdatesSection } from './OrganizationUpdatesSection.mjs';
|
|
15
15
|
import { RoleAssignmentsSection } from './RoleAssignmentsSection.mjs';
|
|
16
16
|
import { useSsoRouterController } from './SSORouter.mjs';
|
|
17
|
-
import ChevronLeft from '../../../../../node_modules/@mui/icons-material/esm/ChevronLeft.mjs';
|
|
18
17
|
import { useMemo as F, useCallback as T } from '../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
18
|
+
import ChevronLeft from '../../../../../node_modules/@mui/icons-material/esm/ChevronLeft.mjs';
|
|
19
19
|
|
|
20
20
|
const SSOConnectionDetailsScreen = ({ connectionId })=>{
|
|
21
21
|
const { navigate } = useSsoRouterController();
|
|
@@ -17,12 +17,12 @@ import { useDisplayPagination } from '../utils/useDisplayPagination.mjs';
|
|
|
17
17
|
import { useRbac } from '../utils/useRbac.mjs';
|
|
18
18
|
import { getIdpInfo } from './IdpInfo.mjs';
|
|
19
19
|
import { useSsoRouterController } from './SSORouter.mjs';
|
|
20
|
+
import { useMemo as F, useCallback as T, useState as h } from '../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
20
21
|
import VisibilityOutlined from '../../../../../node_modules/@mui/icons-material/esm/VisibilityOutlined.mjs';
|
|
21
22
|
import EditOutlined from '../../../../../node_modules/@mui/icons-material/esm/EditOutlined.mjs';
|
|
22
23
|
import Tune from '../../../../../node_modules/@mui/icons-material/esm/Tune.mjs';
|
|
23
24
|
import DeleteOutlined from '../../../../../node_modules/@mui/icons-material/esm/DeleteOutlined.mjs';
|
|
24
25
|
import Add from '../../../../../node_modules/@mui/icons-material/esm/Add.mjs';
|
|
25
|
-
import { useMemo as F, useCallback as T, useState as h } from '../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
26
26
|
|
|
27
27
|
const itemRenderer = [
|
|
28
28
|
{
|
|
@@ -18,10 +18,10 @@ import { CreateApplication } from './CreateApplication.mjs';
|
|
|
18
18
|
import { DetailedAttributeMappingTable } from './DetailedAttributeMappingTable.mjs';
|
|
19
19
|
import { getIdpAndConnectionInfo, typeToUserFriendlyName } from './IdpInfo.mjs';
|
|
20
20
|
import { useSsoRouterController } from './SSORouter.mjs';
|
|
21
|
+
import { useState as h, useMemo as F, useCallback as T } from '../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
21
22
|
import Accordion from '../../../../../node_modules/@mui/material/Accordion/Accordion.mjs';
|
|
22
23
|
import AccordionDetails from '../../../../../node_modules/@mui/material/AccordionDetails/AccordionDetails.mjs';
|
|
23
24
|
import ChevronLeft from '../../../../../node_modules/@mui/icons-material/esm/ChevronLeft.mjs';
|
|
24
|
-
import { useState as h, useMemo as F, useCallback as T } from '../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
25
25
|
|
|
26
26
|
const useManualConfigurationState = ({ idp, type })=>{
|
|
27
27
|
const [manualConfigurationState, setManualConfigurationState] = h(false);
|
|
@@ -12,8 +12,8 @@ import { useRevalidateConnectionList } from '../utils/useRevalidateConnectionLis
|
|
|
12
12
|
import { useStytchClient } from '../utils/useStytchClient.mjs';
|
|
13
13
|
import { idpOptions, idpSelectItems } from './IdpSelect.mjs';
|
|
14
14
|
import { useSsoRouterController } from './SSORouter.mjs';
|
|
15
|
-
import ChevronLeft from '../../../../../node_modules/@mui/icons-material/esm/ChevronLeft.mjs';
|
|
16
15
|
import { useState as h, useCallback as T } from '../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
16
|
+
import ChevronLeft from '../../../../../node_modules/@mui/icons-material/esm/ChevronLeft.mjs';
|
|
17
17
|
|
|
18
18
|
const SSONewConnectionScreen = ()=>{
|
|
19
19
|
const { navigate } = useSsoRouterController();
|
|
@@ -10,6 +10,8 @@ import { writeB2BInternals } from '../utils/internal.mjs';
|
|
|
10
10
|
import { HeadlessB2BOAuthClient } from './HeadlessB2BOAuthClient.mjs';
|
|
11
11
|
import { B2BOneTapProvider } from './oneTap/B2BOneTapProvider.mjs';
|
|
12
12
|
import { checkB2BNotSSR, checkPublicToken } from '../../../core/src/utils/checks.mjs';
|
|
13
|
+
import { StateChangeClient } from '../../../core/src/StateChangeClient.mjs';
|
|
14
|
+
import { DFPProtectedAuthProvider } from '../../../core/src/DFPProtectedAuthProvider.mjs';
|
|
13
15
|
import { HeadlessB2BOrganizationClient } from '../../../core/src/HeadlessClients/b2b/HeadlessB2BOrganizationClient.mjs';
|
|
14
16
|
import { HeadlessB2BDiscoveryClient } from '../../../core/src/HeadlessClients/b2b/HeadlessB2BDiscoveryClient.mjs';
|
|
15
17
|
import { HeadlessB2BIDPClient } from '../../../core/src/HeadlessClients/b2b/HeadlessB2BIDPClient.mjs';
|
|
@@ -28,10 +30,8 @@ import { HeadlessB2BTOTPsClient } from '../../../core/src/HeadlessClients/b2b/He
|
|
|
28
30
|
import '../../../core/src/HeadlessClients/HeadlessCryptoWalletClient.mjs';
|
|
29
31
|
import '../../../core/src/HeadlessClients/HeadlessMagicLinkClient.mjs';
|
|
30
32
|
import '../../../core/src/HeadlessClients/HeadlessPasswordClient.mjs';
|
|
31
|
-
import { VERTICAL_CONSUMER } from '../../../core/src/Vertical.mjs';
|
|
32
|
-
import { StateChangeClient } from '../../../core/src/StateChangeClient.mjs';
|
|
33
|
-
import { DFPProtectedAuthProvider } from '../../../core/src/DFPProtectedAuthProvider.mjs';
|
|
34
33
|
import { SessionManager } from '../../../core/src/SessionManager.mjs';
|
|
34
|
+
import { VERTICAL_CONSUMER } from '../../../core/src/Vertical.mjs';
|
|
35
35
|
import { SearchDataManager } from '../../../core/src/SearchManager.mjs';
|
|
36
36
|
|
|
37
37
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { GoogleOneTapClient } from './GoogleOneTapClient.mjs';
|
|
2
|
+
import { StytchAPIError } from '../../../core/src/public/SDKErrors.mjs';
|
|
2
3
|
import { loadESModule } from '../../../core/src/utils/loadESModule.mjs';
|
|
3
4
|
import { GOOGLE_ONE_TAP_SCRIPT_URL } from '../../../core/src/constants.mjs';
|
|
4
|
-
import { StytchAPIError } from '../../../core/src/public/SDKErrors.mjs';
|
|
5
5
|
|
|
6
6
|
const loadGoogleOneTapClient = ()=>loadESModule(GOOGLE_ONE_TAP_SCRIPT_URL, ()=>window.google.accounts.id);
|
|
7
7
|
/**
|
|
@@ -8,8 +8,8 @@ import * as B2BProducts from './B2BProducts.mjs';
|
|
|
8
8
|
import { GlobalContextProvider, DEFAULT_STATE } from './GlobalContextProvider.mjs';
|
|
9
9
|
import { InternalAppContainer } from './InternalAppContainer.mjs';
|
|
10
10
|
import { IDPConsentScreen } from './screens/IDPConsent.mjs';
|
|
11
|
-
import { RUN_IN_DEV } from '../../../../core/src/utils/dev.mjs';
|
|
12
11
|
import { useEffect as p } from '../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
12
|
+
import { RUN_IN_DEV } from '../../../../core/src/utils/dev.mjs';
|
|
13
13
|
import { logger } from '../../../../core/src/utils/logger.mjs';
|
|
14
14
|
|
|
15
15
|
/**
|
|
@@ -6,8 +6,8 @@ import { usePresentationWithDefault, PresentationContext } from '../components/P
|
|
|
6
6
|
import AppContainer from './Container.mjs';
|
|
7
7
|
import { DEFAULT_STATE, GlobalContextProvider } from './GlobalContextProvider.mjs';
|
|
8
8
|
import { AppScreens } from './types/AppScreens.mjs';
|
|
9
|
-
import { RedirectURLType, AuthFlowType } from '../../../../core/src/public/b2b/ui.mjs';
|
|
10
9
|
import { useState as h, useEffect as p, useMemo as F } from '../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
10
|
+
import { RedirectURLType, AuthFlowType } from '../../../../core/src/public/b2b/ui.mjs';
|
|
11
11
|
|
|
12
12
|
const InternalAppContainer = ({ client, presentation, callbacks, config, strings })=>{
|
|
13
13
|
/**
|
|
@@ -8,10 +8,10 @@ import { useIsOnlyFloatingOneTap } from '../hooks/useIsOnlyFloatingOneTap.mjs';
|
|
|
8
8
|
import { useLastUsedAuthMethod } from '../hooks/useLastUsedAuthMethod.mjs';
|
|
9
9
|
import { AppScreens } from '../types/AppScreens.mjs';
|
|
10
10
|
import { OAuthB2BButton } from './OAuthB2BButton.mjs';
|
|
11
|
-
import { DEV } from '../../../../../core/src/utils/dev.mjs';
|
|
12
11
|
import { useState as h, useCallback as T, useEffect as p } from '../../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
13
|
-
import { logger } from '../../../../../core/src/utils/logger.mjs';
|
|
14
12
|
import { OneTapPositions } from '../../../../../core/src/public/ui.mjs';
|
|
13
|
+
import { DEV } from '../../../../../core/src/utils/dev.mjs';
|
|
14
|
+
import { logger } from '../../../../../core/src/utils/logger.mjs';
|
|
15
15
|
import { B2BOAuthProviders } from '../../../../../core/src/public/b2b/ui.mjs';
|
|
16
16
|
|
|
17
17
|
const B2BGoogleOneTap = ({ customScopes, providerParams, cancelOnTapOutside })=>{
|
|
@@ -8,8 +8,8 @@ import { getEnabledMethods } from '../getEnabledMethods.mjs';
|
|
|
8
8
|
import { useConfig, useGlobalReducer } from '../GlobalContextProvider.mjs';
|
|
9
9
|
import { B2B_MFA_METHODS } from '../reducer/mfa.mjs';
|
|
10
10
|
import { AppScreens } from '../types/AppScreens.mjs';
|
|
11
|
-
import { B2BMFAProducts } from '../../../../../core/src/public/b2b/ui.mjs';
|
|
12
11
|
import { useMemo as F } from '../../../../../../node_modules/preact/hooks/dist/hooks.module.mjs';
|
|
12
|
+
import { B2BMFAProducts } from '../../../../../core/src/public/b2b/ui.mjs';
|
|
13
13
|
|
|
14
14
|
const mfaOptions = {
|
|
15
15
|
[B2BMFAProducts.totp]: {
|
|
@@ -138,15 +138,15 @@ const PasswordResetForm = ()=>{
|
|
|
138
138
|
type: StytchEventType.B2BDiscoveryPasswordReset,
|
|
139
139
|
data
|
|
140
140
|
});
|
|
141
|
-
dispatch({
|
|
142
|
-
type: 'transition',
|
|
143
|
-
screen: AppScreens.Discovery
|
|
144
|
-
});
|
|
145
141
|
dispatch({
|
|
146
142
|
type: 'set_discovery_state',
|
|
147
143
|
email: data.email_address,
|
|
148
144
|
discoveredOrganizations: data.discovered_organizations
|
|
149
145
|
});
|
|
146
|
+
dispatch({
|
|
147
|
+
type: 'transition',
|
|
148
|
+
screen: AppScreens.Discovery
|
|
149
|
+
});
|
|
150
150
|
}).catch((e)=>{
|
|
151
151
|
onError(e);
|
|
152
152
|
setErrorMessage(getTranslatedError(e, $__));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PasswordResetForm.mjs","sources":["../../../../../../../../../web/src/ui/b2b/screens/PasswordResetForm.tsx"],"sourcesContent":["import { useLingui } from '@lingui/react/macro';\nimport { DEFAULT_SESSION_DURATION_MINUTES } from '@stytch/core';\nimport { StytchAPIError, StytchEventType } from '@stytch/core/public';\nimport React, { useEffect, useMemo, useState } from 'react';\n\nimport { B2BSubscriptionDataLayer } from '../../../SubscriptionService';\nimport { debounce, noop } from '../../../utils';\nimport { clearStytchTokenParams } from '../../../utils/createAuthUrlHandler';\nimport { getTranslatedError } from '../../../utils/getTranslatedError';\nimport { readB2BInternals } from '../../../utils/internal';\nimport Button from '../../components/atoms/Button';\nimport Column from '../../components/atoms/Column';\nimport Typography from '../../components/atoms/Typography';\nimport EmailInput from '../../components/molecules/EmailInput';\nimport { getNewPasswordProps, PasswordError, PasswordErrorProps } from '../../components/molecules/PasswordError';\nimport { PasswordInput } from '../../components/molecules/PasswordInput';\nimport { useConfig, useErrorCallback, useEventCallback, useGlobalReducer, useStytch } from '../GlobalContextProvider';\nimport { AppScreens } from '../types/AppScreens';\nimport { onAuthenticateSuccess, useBootstrap as useB2BBootstrap } from '../utils';\n\nexport const PasswordResetForm = () => {\n const stytchClient = useStytch();\n const config = useConfig();\n const [, dispatch] = useGlobalReducer();\n const bootstrap = useB2BBootstrap();\n const { t } = useLingui();\n\n const onEvent = useEventCallback();\n const onError = useErrorCallback();\n\n const [resetToken, resetTokenType] = useMemo(() => {\n const parsed = stytchClient.parseAuthenticateUrl();\n if (!parsed) return ['', ''];\n return [parsed.token, parsed.tokenType];\n }, [stytchClient]);\n\n const dataLayer = readB2BInternals(stytchClient).dataLayer as B2BSubscriptionDataLayer;\n const email = dataLayer.getItem('reset-email-value');\n const [password, setPassword] = useState('');\n const [errorMessage, setErrorMessage] = useState('');\n const [passwordError, setPasswordError] = useState<PasswordErrorProps>({ policy: 'notLoaded' });\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const updateStrengthCheck = useMemo(\n () =>\n debounce((password: string) => {\n setErrorMessage('');\n return stytchClient.passwords\n .strengthCheck({ password })\n .then(({ score, valid_password, zxcvbn_feedback, luds_feedback, strength_policy, breached_password }) => {\n const common = {\n passwordInvalid: !valid_password,\n isPasswordBreached: breached_password,\n };\n\n if (strength_policy === 'zxcvbn') {\n setPasswordError({\n policy: strength_policy,\n ...common,\n passwordScore: score,\n passwordWarning: zxcvbn_feedback.warning,\n passwordSuggestions: zxcvbn_feedback.suggestions,\n });\n } else if (strength_policy === 'luds') {\n setPasswordError({\n policy: strength_policy,\n ...common,\n missingCharacters: luds_feedback.missing_characters,\n missingComplexity: luds_feedback.missing_complexity,\n });\n }\n })\n .catch((e: StytchAPIError) => {\n setErrorMessage(getTranslatedError(e, t));\n });\n }),\n [stytchClient.passwords, t],\n );\n\n useEffect(() => {\n if (resetTokenType === 'multi_tenant_magic_links') {\n stytchClient.magicLinks\n .authenticate({\n magic_links_token: resetToken,\n session_duration_minutes: config.sessionOptions?.sessionDurationMinutes ?? DEFAULT_SESSION_DURATION_MINUTES,\n locale: config.emailMagicLinksOptions?.locale,\n })\n .then((data) => {\n clearStytchTokenParams();\n dispatch({\n type: 'primary_authenticate_success',\n response: data,\n includedMfaMethods: config.mfaProductInclude,\n resetTokenType,\n });\n })\n .catch((e: StytchAPIError) => {\n setErrorMessage(getTranslatedError(e, t));\n onError(e);\n });\n return;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- SDK-1354\n }, [resetTokenType]);\n\n const onPasswordChange = (password: string) => {\n setPassword(password);\n updateStrengthCheck(password);\n };\n\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n setErrorMessage('');\n setIsSubmitting(true);\n\n if (resetTokenType == 'multi_tenant_passwords') {\n stytchClient.passwords\n .resetByEmail({\n password_reset_token: resetToken,\n password,\n session_duration_minutes: config.sessionOptions?.sessionDurationMinutes ?? DEFAULT_SESSION_DURATION_MINUTES,\n locale: config.passwordOptions?.locale,\n })\n .then((data) => {\n setIsSubmitting(false);\n onEvent({ type: StytchEventType.B2BPasswordResetByEmail, data });\n onAuthenticateSuccess(data, dispatch, config);\n })\n .catch((e: StytchAPIError) => {\n onError(e);\n setErrorMessage(getTranslatedError(e, t));\n setIsSubmitting(false);\n });\n } else if (resetTokenType == 'discovery') {\n stytchClient.passwords.discovery\n .resetByEmail({\n password_reset_token: resetToken,\n password,\n })\n .then((data) => {\n setIsSubmitting(false);\n onEvent({ type: StytchEventType.B2BDiscoveryPasswordReset, data });\n dispatch({ type: 'transition', screen: AppScreens.Discovery });\n dispatch({\n type: 'set_discovery_state',\n email: data.email_address,\n discoveredOrganizations: data.discovered_organizations,\n });\n })\n .catch((e: StytchAPIError) => {\n onError(e);\n setErrorMessage(getTranslatedError(e, t));\n setIsSubmitting(false);\n });\n } else {\n stytchClient.passwords\n .resetBySession({ password })\n .then((data) => {\n setIsSubmitting(false);\n onEvent({ type: StytchEventType.B2BPasswordResetBySession, data });\n dispatch({ type: 'transition', screen: AppScreens.LoggedIn });\n })\n .catch((e: StytchAPIError) => {\n onError(e);\n setErrorMessage(getTranslatedError(e, t));\n setIsSubmitting(false);\n });\n }\n };\n\n const passwordInputProps = getNewPasswordProps(bootstrap, passwordError.policy);\n\n return (\n <Column gap={6} as=\"form\" onSubmit={handleSubmit}>\n <Typography variant=\"header\">{t({ id: 'password.setNew.title', message: 'Set a new password' })}</Typography>\n\n <Column gap={2}>\n {email ? <EmailInput email={email} setEmail={noop} disabled /> : null}\n\n <PasswordInput\n password={password}\n setPassword={onPasswordChange}\n error={errorMessage}\n {...passwordInputProps}\n />\n\n <PasswordError bootstrap={bootstrap} {...passwordError} />\n\n <Button\n variant=\"primary\"\n loading={isSubmitting}\n type=\"submit\"\n disabled={passwordError.policy === 'notLoaded' || passwordError.passwordInvalid}\n >\n {t({ id: 'button.continue', message: 'Continue' })}\n </Button>\n </Column>\n </Column>\n );\n};\n"],"names":["PasswordResetForm","stytchClient","useStytch","config","useConfig","dispatch","useGlobalReducer","bootstrap","useB2BBootstrap","useLingui","onEvent","useEventCallback","onError","useErrorCallback","resetToken","resetTokenType","useMemo","parsed","parseAuthenticateUrl","token","tokenType","dataLayer","readB2BInternals","email","getItem","password","setPassword","useState","errorMessage","setErrorMessage","passwordError","setPasswordError","policy","isSubmitting","setIsSubmitting","updateStrengthCheck","debounce","passwords","strengthCheck","then","score","valid_password","zxcvbn_feedback","luds_feedback","strength_policy","breached_password","common","passwordInvalid","isPasswordBreached","passwordScore","passwordWarning","warning","passwordSuggestions","suggestions","missingCharacters","missing_characters","missingComplexity","missing_complexity","catch","e","getTranslatedError","useEffect","magicLinks","authenticate","magic_links_token","session_duration_minutes","sessionOptions","sessionDurationMinutes","DEFAULT_SESSION_DURATION_MINUTES","locale","emailMagicLinksOptions","data","clearStytchTokenParams","type","response","includedMfaMethods","mfaProductInclude","onPasswordChange","handleSubmit","preventDefault","resetByEmail","password_reset_token","passwordOptions","StytchEventType","B2BPasswordResetByEmail","onAuthenticateSuccess","discovery","B2BDiscoveryPasswordReset","screen","AppScreens","Discovery","email_address","discoveredOrganizations","discovered_organizations","resetBySession","B2BPasswordResetBySession","LoggedIn","passwordInputProps","getNewPasswordProps","React","Column","gap","as","onSubmit","Typography","variant","EmailInput","setEmail","noop","disabled","PasswordInput","error","PasswordError","Button","loading"],"mappings":";;;;;;;;;;;;;;;;;;;MAoBaA,iBAAAA,GAAoB,IAAA;AAC/B,IAAA,MAAMC,YAAAA,GAAeC,SAAAA,EAAAA;AACrB,IAAA,MAAMC,MAAAA,GAASC,SAAAA,EAAAA;IACf,MAAM,GAAGC,SAAS,GAAGC,gBAAAA,EAAAA;AACrB,IAAA,MAAMC,SAAAA,GAAYC,YAAAA,EAAAA;AAClB,IAAA,MAAM,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,GAAA,EAAA,GAAQC,SAAAA,EAAAA;AAEd,IAAA,MAAMC,OAAAA,GAAUC,gBAAAA,EAAAA;AAChB,IAAA,MAAMC,OAAAA,GAAUC,gBAAAA,EAAAA;AAEhB,IAAA,MAAM,CAACC,UAAAA,EAAYC,cAAAA,CAAe,GAAGC,CAAAA,CAAQ,IAAA;QAC3C,MAAMC,MAAAA,GAAShB,aAAaiB,oBAAoB,EAAA;QAChD,IAAI,CAACD,QAAQ,OAAO;AAAC,YAAA,EAAA;AAAI,YAAA;AAAG,SAAA;QAC5B,OAAO;AAACA,YAAAA,MAAAA,CAAOE,KAAK;AAAEF,YAAAA,MAAAA,CAAOG;AAAU,SAAA;IACzC,CAAA,EAAG;AAACnB,QAAAA;AAAa,KAAA,CAAA;IAEjB,MAAMoB,SAAAA,GAAYC,gBAAAA,CAAiBrB,YAAAA,CAAAA,CAAcoB,SAAS;IAC1D,MAAME,KAAAA,GAAQF,SAAAA,CAAUG,OAAO,CAAC,mBAAA,CAAA;AAChC,IAAA,MAAM,CAACC,QAAAA,EAAUC,WAAAA,CAAY,GAAGC,CAAAA,CAAS,EAAA,CAAA;AACzC,IAAA,MAAM,CAACC,YAAAA,EAAcC,eAAAA,CAAgB,GAAGF,CAAAA,CAAS,EAAA,CAAA;AACjD,IAAA,MAAM,CAACG,aAAAA,EAAeC,gBAAAA,CAAiB,GAAGJ,CAAAA,CAA6B;QAAEK,MAAAA,EAAQ;AAAY,KAAA,CAAA;AAC7F,IAAA,MAAM,CAACC,YAAAA,EAAcC,eAAAA,CAAgB,GAAGP,CAAAA,CAAS,KAAA,CAAA;AAEjD,IAAA,MAAMQ,mBAAAA,GAAsBnB,CAAAA,CAC1B,IACEoB,QAAAA,CAAS,CAACX,QAAAA,GAAAA;YACRI,eAAAA,CAAgB,EAAA,CAAA;AAChB,YAAA,OAAO5B,YAAAA,CAAaoC,SAAS,CAC1BC,aAAa,CAAC;AAAEb,gBAAAA;AAAS,aAAA,CAAA,CACzBc,IAAI,CAAC,CAAC,EAAEC,KAAK,EAAEC,cAAc,EAAEC,eAAe,EAAEC,aAAa,EAAEC,eAAe,EAAEC,iBAAiB,EAAE,GAAA;AAClG,gBAAA,MAAMC,MAAAA,GAAS;AACbC,oBAAAA,eAAAA,EAAiB,CAACN,cAAAA;oBAClBO,kBAAAA,EAAoBH;AACtB,iBAAA;AAEA,gBAAA,IAAID,oBAAoB,QAAA,EAAU;oBAChCb,gBAAAA,CAAiB;wBACfC,MAAAA,EAAQY,eAAAA;AACR,wBAAA,GAAGE,MAAM;wBACTG,aAAAA,EAAeT,KAAAA;AACfU,wBAAAA,eAAAA,EAAiBR,gBAAgBS,OAAO;AACxCC,wBAAAA,mBAAAA,EAAqBV,gBAAgBW;AACvC,qBAAA,CAAA;gBACF,CAAA,MAAO,IAAIT,oBAAoB,MAAA,EAAQ;oBACrCb,gBAAAA,CAAiB;wBACfC,MAAAA,EAAQY,eAAAA;AACR,wBAAA,GAAGE,MAAM;AACTQ,wBAAAA,iBAAAA,EAAmBX,cAAcY,kBAAkB;AACnDC,wBAAAA,iBAAAA,EAAmBb,cAAcc;AACnC,qBAAA,CAAA;AACF,gBAAA;YACF,CAAA,CAAA,CACCC,KAAK,CAAC,CAACC,CAAAA,GAAAA;AACN9B,gBAAAA,eAAAA,CAAgB+B,kBAAAA,CAAmBD,CAAAA,EAAAA,GAAAA,CAAAA,CAAAA;AACrC,YAAA,CAAA,CAAA;QACJ,CAAA,CAAA,EACF;AAAC1D,QAAAA,YAAAA,CAAaoC,SAAS;;AAAI,KAAA,CAAA;IAG7BwB,CAAAA,CAAU,IAAA;AACR,QAAA,IAAI9C,mBAAmB,0BAAA,EAA4B;YACjDd,YAAAA,CAAa6D,UAAU,CACpBC,YAAY,CAAC;gBACZC,iBAAAA,EAAmBlD,UAAAA;gBACnBmD,wBAAAA,EAA0B9D,MAAAA,CAAO+D,cAAc,EAAEC,sBAAAA,IAA0BC,gCAAAA;gBAC3EC,MAAAA,EAAQlE,MAAAA,CAAOmE,sBAAsB,EAAED;aACzC,CAAA,CACC9B,IAAI,CAAC,CAACgC,IAAAA,GAAAA;AACLC,gBAAAA,sBAAAA,EAAAA;gBACAnE,QAAAA,CAAS;oBACPoE,IAAAA,EAAM,8BAAA;oBACNC,QAAAA,EAAUH,IAAAA;AACVI,oBAAAA,kBAAAA,EAAoBxE,OAAOyE,iBAAiB;AAC5C7D,oBAAAA;AACF,iBAAA,CAAA;YACF,CAAA,CAAA,CACC2C,KAAK,CAAC,CAACC,CAAAA,GAAAA;AACN9B,gBAAAA,eAAAA,CAAgB+B,kBAAAA,CAAmBD,CAAAA,EAAAA,GAAAA,CAAAA,CAAAA;gBACnC/C,OAAAA,CAAQ+C,CAAAA,CAAAA;AACV,YAAA,CAAA,CAAA;AACF,YAAA;AACF,QAAA;;IAEF,CAAA,EAAG;AAAC5C,QAAAA;AAAe,KAAA,CAAA;AAEnB,IAAA,MAAM8D,mBAAmB,CAACpD,QAAAA,GAAAA;QACxBC,WAAAA,CAAYD,QAAAA,CAAAA;QACZU,mBAAAA,CAAoBV,QAAAA,CAAAA;AACtB,IAAA,CAAA;AAEA,IAAA,MAAMqD,eAAe,CAACnB,CAAAA,GAAAA;AACpBA,QAAAA,CAAAA,CAAEoB,cAAc,EAAA;QAChBlD,eAAAA,CAAgB,EAAA,CAAA;QAChBK,eAAAA,CAAgB,IAAA,CAAA;AAEhB,QAAA,IAAInB,kBAAkB,wBAAA,EAA0B;YAC9Cd,YAAAA,CAAaoC,SAAS,CACnB2C,YAAY,CAAC;gBACZC,oBAAAA,EAAsBnE,UAAAA;AACtBW,gBAAAA,QAAAA;gBACAwC,wBAAAA,EAA0B9D,MAAAA,CAAO+D,cAAc,EAAEC,sBAAAA,IAA0BC,gCAAAA;gBAC3EC,MAAAA,EAAQlE,MAAAA,CAAO+E,eAAe,EAAEb;aAClC,CAAA,CACC9B,IAAI,CAAC,CAACgC,IAAAA,GAAAA;gBACLrC,eAAAA,CAAgB,KAAA,CAAA;gBAChBxB,OAAAA,CAAQ;AAAE+D,oBAAAA,IAAAA,EAAMU,gBAAgBC,uBAAuB;AAAEb,oBAAAA;AAAK,iBAAA,CAAA;AAC9Dc,gBAAAA,qBAAAA,CAAsBd,MAAMlE,QAAAA,EAAUF,MAAAA,CAAAA;YACxC,CAAA,CAAA,CACCuD,KAAK,CAAC,CAACC,CAAAA,GAAAA;gBACN/C,OAAAA,CAAQ+C,CAAAA,CAAAA;AACR9B,gBAAAA,eAAAA,CAAgB+B,kBAAAA,CAAmBD,CAAAA,EAAAA,GAAAA,CAAAA,CAAAA;gBACnCzB,eAAAA,CAAgB,KAAA,CAAA;AAClB,YAAA,CAAA,CAAA;QACJ,CAAA,MAAO,IAAInB,kBAAkB,WAAA,EAAa;AACxCd,YAAAA,YAAAA,CAAaoC,SAAS,CAACiD,SAAS,CAC7BN,YAAY,CAAC;gBACZC,oBAAAA,EAAsBnE,UAAAA;AACtBW,gBAAAA;aACF,CAAA,CACCc,IAAI,CAAC,CAACgC,IAAAA,GAAAA;gBACLrC,eAAAA,CAAgB,KAAA,CAAA;gBAChBxB,OAAAA,CAAQ;AAAE+D,oBAAAA,IAAAA,EAAMU,gBAAgBI,yBAAyB;AAAEhB,oBAAAA;AAAK,iBAAA,CAAA;gBAChElE,QAAAA,CAAS;oBAAEoE,IAAAA,EAAM,YAAA;AAAce,oBAAAA,MAAAA,EAAQC,WAAWC;AAAU,iBAAA,CAAA;gBAC5DrF,QAAAA,CAAS;oBACPoE,IAAAA,EAAM,qBAAA;AACNlD,oBAAAA,KAAAA,EAAOgD,KAAKoB,aAAa;AACzBC,oBAAAA,uBAAAA,EAAyBrB,KAAKsB;AAChC,iBAAA,CAAA;YACF,CAAA,CAAA,CACCnC,KAAK,CAAC,CAACC,CAAAA,GAAAA;gBACN/C,OAAAA,CAAQ+C,CAAAA,CAAAA;AACR9B,gBAAAA,eAAAA,CAAgB+B,kBAAAA,CAAmBD,CAAAA,EAAAA,GAAAA,CAAAA,CAAAA;gBACnCzB,eAAAA,CAAgB,KAAA,CAAA;AAClB,YAAA,CAAA,CAAA;QACJ,CAAA,MAAO;YACLjC,YAAAA,CAAaoC,SAAS,CACnByD,cAAc,CAAC;AAAErE,gBAAAA;aAAS,CAAA,CAC1Bc,IAAI,CAAC,CAACgC,IAAAA,GAAAA;gBACLrC,eAAAA,CAAgB,KAAA,CAAA;gBAChBxB,OAAAA,CAAQ;AAAE+D,oBAAAA,IAAAA,EAAMU,gBAAgBY,yBAAyB;AAAExB,oBAAAA;AAAK,iBAAA,CAAA;gBAChElE,QAAAA,CAAS;oBAAEoE,IAAAA,EAAM,YAAA;AAAce,oBAAAA,MAAAA,EAAQC,WAAWO;AAAS,iBAAA,CAAA;YAC7D,CAAA,CAAA,CACCtC,KAAK,CAAC,CAACC,CAAAA,GAAAA;gBACN/C,OAAAA,CAAQ+C,CAAAA,CAAAA;AACR9B,gBAAAA,eAAAA,CAAgB+B,kBAAAA,CAAmBD,CAAAA,EAAAA,GAAAA,CAAAA,CAAAA;gBACnCzB,eAAAA,CAAgB,KAAA,CAAA;AAClB,YAAA,CAAA,CAAA;AACJ,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAM+D,kBAAAA,GAAqBC,mBAAAA,CAAoB3F,SAAAA,EAAWuB,aAAAA,CAAcE,MAAM,CAAA;AAE9E,IAAA,qBACEmE,EAAA,CAAA,aAAA,CAACC,MAAAA,EAAAA;QAAOC,GAAAA,EAAK,CAAA;QAAGC,EAAAA,EAAG,MAAA;QAAOC,QAAAA,EAAUzB;qBAClCqB,EAAA,CAAA,aAAA,CAACK,UAAAA,EAAAA;QAAWC,OAAAA,EAAQ;;;;uBAEpBN,EAAA,CAAA,aAAA,CAACC,MAAAA,EAAAA;QAAOC,GAAAA,EAAK;AACV9E,KAAAA,EAAAA,KAAAA,iBAAQ4E,EAAA,CAAA,aAAA,CAACO,UAAAA,EAAAA;QAAWnF,KAAAA,EAAOA,KAAAA;QAAOoF,QAAAA,EAAUC,IAAAA;QAAMC,QAAAA,EAAAA;AAAc,KAAA,CAAA,GAAA,IAAA,gBAEjEV,EAAA,CAAA,aAAA,CAACW,aAAAA,EAAAA;QACCrF,QAAAA,EAAUA,QAAAA;QACVC,WAAAA,EAAamD,gBAAAA;QACbkC,KAAAA,EAAOnF,YAAAA;AACN,QAAA,GAAGqE;sBAGNE,EAAA,CAAA,aAAA,CAACa,aAAAA,EAAAA;QAAczG,SAAAA,EAAWA,SAAAA;AAAY,QAAA,GAAGuB;sBAEzCqE,EAAA,CAAA,aAAA,CAACc,MAAAA,EAAAA;QACCR,OAAAA,EAAQ,SAAA;QACRS,OAAAA,EAASjF,YAAAA;QACTwC,IAAAA,EAAK,QAAA;AACLoC,QAAAA,QAAAA,EAAU/E,aAAAA,CAAcE,MAAM,KAAK,WAAA,IAAeF,cAAciB;;;;;AAO1E;;;;"}
|
|
1
|
+
{"version":3,"file":"PasswordResetForm.mjs","sources":["../../../../../../../../../web/src/ui/b2b/screens/PasswordResetForm.tsx"],"sourcesContent":["import { useLingui } from '@lingui/react/macro';\nimport { DEFAULT_SESSION_DURATION_MINUTES } from '@stytch/core';\nimport { StytchAPIError, StytchEventType } from '@stytch/core/public';\nimport React, { useEffect, useMemo, useState } from 'react';\n\nimport { B2BSubscriptionDataLayer } from '../../../SubscriptionService';\nimport { debounce, noop } from '../../../utils';\nimport { clearStytchTokenParams } from '../../../utils/createAuthUrlHandler';\nimport { getTranslatedError } from '../../../utils/getTranslatedError';\nimport { readB2BInternals } from '../../../utils/internal';\nimport Button from '../../components/atoms/Button';\nimport Column from '../../components/atoms/Column';\nimport Typography from '../../components/atoms/Typography';\nimport EmailInput from '../../components/molecules/EmailInput';\nimport { getNewPasswordProps, PasswordError, PasswordErrorProps } from '../../components/molecules/PasswordError';\nimport { PasswordInput } from '../../components/molecules/PasswordInput';\nimport { useConfig, useErrorCallback, useEventCallback, useGlobalReducer, useStytch } from '../GlobalContextProvider';\nimport { AppScreens } from '../types/AppScreens';\nimport { onAuthenticateSuccess, useBootstrap as useB2BBootstrap } from '../utils';\n\nexport const PasswordResetForm = () => {\n const stytchClient = useStytch();\n const config = useConfig();\n const [, dispatch] = useGlobalReducer();\n const bootstrap = useB2BBootstrap();\n const { t } = useLingui();\n\n const onEvent = useEventCallback();\n const onError = useErrorCallback();\n\n const [resetToken, resetTokenType] = useMemo(() => {\n const parsed = stytchClient.parseAuthenticateUrl();\n if (!parsed) return ['', ''];\n return [parsed.token, parsed.tokenType];\n }, [stytchClient]);\n\n const dataLayer = readB2BInternals(stytchClient).dataLayer as B2BSubscriptionDataLayer;\n const email = dataLayer.getItem('reset-email-value');\n const [password, setPassword] = useState('');\n const [errorMessage, setErrorMessage] = useState('');\n const [passwordError, setPasswordError] = useState<PasswordErrorProps>({ policy: 'notLoaded' });\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const updateStrengthCheck = useMemo(\n () =>\n debounce((password: string) => {\n setErrorMessage('');\n return stytchClient.passwords\n .strengthCheck({ password })\n .then(({ score, valid_password, zxcvbn_feedback, luds_feedback, strength_policy, breached_password }) => {\n const common = {\n passwordInvalid: !valid_password,\n isPasswordBreached: breached_password,\n };\n\n if (strength_policy === 'zxcvbn') {\n setPasswordError({\n policy: strength_policy,\n ...common,\n passwordScore: score,\n passwordWarning: zxcvbn_feedback.warning,\n passwordSuggestions: zxcvbn_feedback.suggestions,\n });\n } else if (strength_policy === 'luds') {\n setPasswordError({\n policy: strength_policy,\n ...common,\n missingCharacters: luds_feedback.missing_characters,\n missingComplexity: luds_feedback.missing_complexity,\n });\n }\n })\n .catch((e: StytchAPIError) => {\n setErrorMessage(getTranslatedError(e, t));\n });\n }),\n [stytchClient.passwords, t],\n );\n\n useEffect(() => {\n if (resetTokenType === 'multi_tenant_magic_links') {\n stytchClient.magicLinks\n .authenticate({\n magic_links_token: resetToken,\n session_duration_minutes: config.sessionOptions?.sessionDurationMinutes ?? DEFAULT_SESSION_DURATION_MINUTES,\n locale: config.emailMagicLinksOptions?.locale,\n })\n .then((data) => {\n clearStytchTokenParams();\n dispatch({\n type: 'primary_authenticate_success',\n response: data,\n includedMfaMethods: config.mfaProductInclude,\n resetTokenType,\n });\n })\n .catch((e: StytchAPIError) => {\n setErrorMessage(getTranslatedError(e, t));\n onError(e);\n });\n return;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- SDK-1354\n }, [resetTokenType]);\n\n const onPasswordChange = (password: string) => {\n setPassword(password);\n updateStrengthCheck(password);\n };\n\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n setErrorMessage('');\n setIsSubmitting(true);\n\n if (resetTokenType == 'multi_tenant_passwords') {\n stytchClient.passwords\n .resetByEmail({\n password_reset_token: resetToken,\n password,\n session_duration_minutes: config.sessionOptions?.sessionDurationMinutes ?? DEFAULT_SESSION_DURATION_MINUTES,\n locale: config.passwordOptions?.locale,\n })\n .then((data) => {\n setIsSubmitting(false);\n onEvent({ type: StytchEventType.B2BPasswordResetByEmail, data });\n onAuthenticateSuccess(data, dispatch, config);\n })\n .catch((e: StytchAPIError) => {\n onError(e);\n setErrorMessage(getTranslatedError(e, t));\n setIsSubmitting(false);\n });\n } else if (resetTokenType == 'discovery') {\n stytchClient.passwords.discovery\n .resetByEmail({\n password_reset_token: resetToken,\n password,\n })\n .then((data) => {\n setIsSubmitting(false);\n onEvent({ type: StytchEventType.B2BDiscoveryPasswordReset, data });\n dispatch({\n type: 'set_discovery_state',\n email: data.email_address,\n discoveredOrganizations: data.discovered_organizations,\n });\n dispatch({ type: 'transition', screen: AppScreens.Discovery });\n })\n .catch((e: StytchAPIError) => {\n onError(e);\n setErrorMessage(getTranslatedError(e, t));\n setIsSubmitting(false);\n });\n } else {\n stytchClient.passwords\n .resetBySession({ password })\n .then((data) => {\n setIsSubmitting(false);\n onEvent({ type: StytchEventType.B2BPasswordResetBySession, data });\n dispatch({ type: 'transition', screen: AppScreens.LoggedIn });\n })\n .catch((e: StytchAPIError) => {\n onError(e);\n setErrorMessage(getTranslatedError(e, t));\n setIsSubmitting(false);\n });\n }\n };\n\n const passwordInputProps = getNewPasswordProps(bootstrap, passwordError.policy);\n\n return (\n <Column gap={6} as=\"form\" onSubmit={handleSubmit}>\n <Typography variant=\"header\">{t({ id: 'password.setNew.title', message: 'Set a new password' })}</Typography>\n\n <Column gap={2}>\n {email ? <EmailInput email={email} setEmail={noop} disabled /> : null}\n\n <PasswordInput\n password={password}\n setPassword={onPasswordChange}\n error={errorMessage}\n {...passwordInputProps}\n />\n\n <PasswordError bootstrap={bootstrap} {...passwordError} />\n\n <Button\n variant=\"primary\"\n loading={isSubmitting}\n type=\"submit\"\n disabled={passwordError.policy === 'notLoaded' || passwordError.passwordInvalid}\n >\n {t({ id: 'button.continue', message: 'Continue' })}\n </Button>\n </Column>\n </Column>\n );\n};\n"],"names":["PasswordResetForm","stytchClient","useStytch","config","useConfig","dispatch","useGlobalReducer","bootstrap","useB2BBootstrap","useLingui","onEvent","useEventCallback","onError","useErrorCallback","resetToken","resetTokenType","useMemo","parsed","parseAuthenticateUrl","token","tokenType","dataLayer","readB2BInternals","email","getItem","password","setPassword","useState","errorMessage","setErrorMessage","passwordError","setPasswordError","policy","isSubmitting","setIsSubmitting","updateStrengthCheck","debounce","passwords","strengthCheck","then","score","valid_password","zxcvbn_feedback","luds_feedback","strength_policy","breached_password","common","passwordInvalid","isPasswordBreached","passwordScore","passwordWarning","warning","passwordSuggestions","suggestions","missingCharacters","missing_characters","missingComplexity","missing_complexity","catch","e","getTranslatedError","useEffect","magicLinks","authenticate","magic_links_token","session_duration_minutes","sessionOptions","sessionDurationMinutes","DEFAULT_SESSION_DURATION_MINUTES","locale","emailMagicLinksOptions","data","clearStytchTokenParams","type","response","includedMfaMethods","mfaProductInclude","onPasswordChange","handleSubmit","preventDefault","resetByEmail","password_reset_token","passwordOptions","StytchEventType","B2BPasswordResetByEmail","onAuthenticateSuccess","discovery","B2BDiscoveryPasswordReset","email_address","discoveredOrganizations","discovered_organizations","screen","AppScreens","Discovery","resetBySession","B2BPasswordResetBySession","LoggedIn","passwordInputProps","getNewPasswordProps","React","Column","gap","as","onSubmit","Typography","variant","EmailInput","setEmail","noop","disabled","PasswordInput","error","PasswordError","Button","loading"],"mappings":";;;;;;;;;;;;;;;;;;;MAoBaA,iBAAAA,GAAoB,IAAA;AAC/B,IAAA,MAAMC,YAAAA,GAAeC,SAAAA,EAAAA;AACrB,IAAA,MAAMC,MAAAA,GAASC,SAAAA,EAAAA;IACf,MAAM,GAAGC,SAAS,GAAGC,gBAAAA,EAAAA;AACrB,IAAA,MAAMC,SAAAA,GAAYC,YAAAA,EAAAA;AAClB,IAAA,MAAM,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,GAAA,EAAA,GAAQC,SAAAA,EAAAA;AAEd,IAAA,MAAMC,OAAAA,GAAUC,gBAAAA,EAAAA;AAChB,IAAA,MAAMC,OAAAA,GAAUC,gBAAAA,EAAAA;AAEhB,IAAA,MAAM,CAACC,UAAAA,EAAYC,cAAAA,CAAe,GAAGC,CAAAA,CAAQ,IAAA;QAC3C,MAAMC,MAAAA,GAAShB,aAAaiB,oBAAoB,EAAA;QAChD,IAAI,CAACD,QAAQ,OAAO;AAAC,YAAA,EAAA;AAAI,YAAA;AAAG,SAAA;QAC5B,OAAO;AAACA,YAAAA,MAAAA,CAAOE,KAAK;AAAEF,YAAAA,MAAAA,CAAOG;AAAU,SAAA;IACzC,CAAA,EAAG;AAACnB,QAAAA;AAAa,KAAA,CAAA;IAEjB,MAAMoB,SAAAA,GAAYC,gBAAAA,CAAiBrB,YAAAA,CAAAA,CAAcoB,SAAS;IAC1D,MAAME,KAAAA,GAAQF,SAAAA,CAAUG,OAAO,CAAC,mBAAA,CAAA;AAChC,IAAA,MAAM,CAACC,QAAAA,EAAUC,WAAAA,CAAY,GAAGC,CAAAA,CAAS,EAAA,CAAA;AACzC,IAAA,MAAM,CAACC,YAAAA,EAAcC,eAAAA,CAAgB,GAAGF,CAAAA,CAAS,EAAA,CAAA;AACjD,IAAA,MAAM,CAACG,aAAAA,EAAeC,gBAAAA,CAAiB,GAAGJ,CAAAA,CAA6B;QAAEK,MAAAA,EAAQ;AAAY,KAAA,CAAA;AAC7F,IAAA,MAAM,CAACC,YAAAA,EAAcC,eAAAA,CAAgB,GAAGP,CAAAA,CAAS,KAAA,CAAA;AAEjD,IAAA,MAAMQ,mBAAAA,GAAsBnB,CAAAA,CAC1B,IACEoB,QAAAA,CAAS,CAACX,QAAAA,GAAAA;YACRI,eAAAA,CAAgB,EAAA,CAAA;AAChB,YAAA,OAAO5B,YAAAA,CAAaoC,SAAS,CAC1BC,aAAa,CAAC;AAAEb,gBAAAA;AAAS,aAAA,CAAA,CACzBc,IAAI,CAAC,CAAC,EAAEC,KAAK,EAAEC,cAAc,EAAEC,eAAe,EAAEC,aAAa,EAAEC,eAAe,EAAEC,iBAAiB,EAAE,GAAA;AAClG,gBAAA,MAAMC,MAAAA,GAAS;AACbC,oBAAAA,eAAAA,EAAiB,CAACN,cAAAA;oBAClBO,kBAAAA,EAAoBH;AACtB,iBAAA;AAEA,gBAAA,IAAID,oBAAoB,QAAA,EAAU;oBAChCb,gBAAAA,CAAiB;wBACfC,MAAAA,EAAQY,eAAAA;AACR,wBAAA,GAAGE,MAAM;wBACTG,aAAAA,EAAeT,KAAAA;AACfU,wBAAAA,eAAAA,EAAiBR,gBAAgBS,OAAO;AACxCC,wBAAAA,mBAAAA,EAAqBV,gBAAgBW;AACvC,qBAAA,CAAA;gBACF,CAAA,MAAO,IAAIT,oBAAoB,MAAA,EAAQ;oBACrCb,gBAAAA,CAAiB;wBACfC,MAAAA,EAAQY,eAAAA;AACR,wBAAA,GAAGE,MAAM;AACTQ,wBAAAA,iBAAAA,EAAmBX,cAAcY,kBAAkB;AACnDC,wBAAAA,iBAAAA,EAAmBb,cAAcc;AACnC,qBAAA,CAAA;AACF,gBAAA;YACF,CAAA,CAAA,CACCC,KAAK,CAAC,CAACC,CAAAA,GAAAA;AACN9B,gBAAAA,eAAAA,CAAgB+B,kBAAAA,CAAmBD,CAAAA,EAAAA,GAAAA,CAAAA,CAAAA;AACrC,YAAA,CAAA,CAAA;QACJ,CAAA,CAAA,EACF;AAAC1D,QAAAA,YAAAA,CAAaoC,SAAS;;AAAI,KAAA,CAAA;IAG7BwB,CAAAA,CAAU,IAAA;AACR,QAAA,IAAI9C,mBAAmB,0BAAA,EAA4B;YACjDd,YAAAA,CAAa6D,UAAU,CACpBC,YAAY,CAAC;gBACZC,iBAAAA,EAAmBlD,UAAAA;gBACnBmD,wBAAAA,EAA0B9D,MAAAA,CAAO+D,cAAc,EAAEC,sBAAAA,IAA0BC,gCAAAA;gBAC3EC,MAAAA,EAAQlE,MAAAA,CAAOmE,sBAAsB,EAAED;aACzC,CAAA,CACC9B,IAAI,CAAC,CAACgC,IAAAA,GAAAA;AACLC,gBAAAA,sBAAAA,EAAAA;gBACAnE,QAAAA,CAAS;oBACPoE,IAAAA,EAAM,8BAAA;oBACNC,QAAAA,EAAUH,IAAAA;AACVI,oBAAAA,kBAAAA,EAAoBxE,OAAOyE,iBAAiB;AAC5C7D,oBAAAA;AACF,iBAAA,CAAA;YACF,CAAA,CAAA,CACC2C,KAAK,CAAC,CAACC,CAAAA,GAAAA;AACN9B,gBAAAA,eAAAA,CAAgB+B,kBAAAA,CAAmBD,CAAAA,EAAAA,GAAAA,CAAAA,CAAAA;gBACnC/C,OAAAA,CAAQ+C,CAAAA,CAAAA;AACV,YAAA,CAAA,CAAA;AACF,YAAA;AACF,QAAA;;IAEF,CAAA,EAAG;AAAC5C,QAAAA;AAAe,KAAA,CAAA;AAEnB,IAAA,MAAM8D,mBAAmB,CAACpD,QAAAA,GAAAA;QACxBC,WAAAA,CAAYD,QAAAA,CAAAA;QACZU,mBAAAA,CAAoBV,QAAAA,CAAAA;AACtB,IAAA,CAAA;AAEA,IAAA,MAAMqD,eAAe,CAACnB,CAAAA,GAAAA;AACpBA,QAAAA,CAAAA,CAAEoB,cAAc,EAAA;QAChBlD,eAAAA,CAAgB,EAAA,CAAA;QAChBK,eAAAA,CAAgB,IAAA,CAAA;AAEhB,QAAA,IAAInB,kBAAkB,wBAAA,EAA0B;YAC9Cd,YAAAA,CAAaoC,SAAS,CACnB2C,YAAY,CAAC;gBACZC,oBAAAA,EAAsBnE,UAAAA;AACtBW,gBAAAA,QAAAA;gBACAwC,wBAAAA,EAA0B9D,MAAAA,CAAO+D,cAAc,EAAEC,sBAAAA,IAA0BC,gCAAAA;gBAC3EC,MAAAA,EAAQlE,MAAAA,CAAO+E,eAAe,EAAEb;aAClC,CAAA,CACC9B,IAAI,CAAC,CAACgC,IAAAA,GAAAA;gBACLrC,eAAAA,CAAgB,KAAA,CAAA;gBAChBxB,OAAAA,CAAQ;AAAE+D,oBAAAA,IAAAA,EAAMU,gBAAgBC,uBAAuB;AAAEb,oBAAAA;AAAK,iBAAA,CAAA;AAC9Dc,gBAAAA,qBAAAA,CAAsBd,MAAMlE,QAAAA,EAAUF,MAAAA,CAAAA;YACxC,CAAA,CAAA,CACCuD,KAAK,CAAC,CAACC,CAAAA,GAAAA;gBACN/C,OAAAA,CAAQ+C,CAAAA,CAAAA;AACR9B,gBAAAA,eAAAA,CAAgB+B,kBAAAA,CAAmBD,CAAAA,EAAAA,GAAAA,CAAAA,CAAAA;gBACnCzB,eAAAA,CAAgB,KAAA,CAAA;AAClB,YAAA,CAAA,CAAA;QACJ,CAAA,MAAO,IAAInB,kBAAkB,WAAA,EAAa;AACxCd,YAAAA,YAAAA,CAAaoC,SAAS,CAACiD,SAAS,CAC7BN,YAAY,CAAC;gBACZC,oBAAAA,EAAsBnE,UAAAA;AACtBW,gBAAAA;aACF,CAAA,CACCc,IAAI,CAAC,CAACgC,IAAAA,GAAAA;gBACLrC,eAAAA,CAAgB,KAAA,CAAA;gBAChBxB,OAAAA,CAAQ;AAAE+D,oBAAAA,IAAAA,EAAMU,gBAAgBI,yBAAyB;AAAEhB,oBAAAA;AAAK,iBAAA,CAAA;gBAChElE,QAAAA,CAAS;oBACPoE,IAAAA,EAAM,qBAAA;AACNlD,oBAAAA,KAAAA,EAAOgD,KAAKiB,aAAa;AACzBC,oBAAAA,uBAAAA,EAAyBlB,KAAKmB;AAChC,iBAAA,CAAA;gBACArF,QAAAA,CAAS;oBAAEoE,IAAAA,EAAM,YAAA;AAAckB,oBAAAA,MAAAA,EAAQC,WAAWC;AAAU,iBAAA,CAAA;YAC9D,CAAA,CAAA,CACCnC,KAAK,CAAC,CAACC,CAAAA,GAAAA;gBACN/C,OAAAA,CAAQ+C,CAAAA,CAAAA;AACR9B,gBAAAA,eAAAA,CAAgB+B,kBAAAA,CAAmBD,CAAAA,EAAAA,GAAAA,CAAAA,CAAAA;gBACnCzB,eAAAA,CAAgB,KAAA,CAAA;AAClB,YAAA,CAAA,CAAA;QACJ,CAAA,MAAO;YACLjC,YAAAA,CAAaoC,SAAS,CACnByD,cAAc,CAAC;AAAErE,gBAAAA;aAAS,CAAA,CAC1Bc,IAAI,CAAC,CAACgC,IAAAA,GAAAA;gBACLrC,eAAAA,CAAgB,KAAA,CAAA;gBAChBxB,OAAAA,CAAQ;AAAE+D,oBAAAA,IAAAA,EAAMU,gBAAgBY,yBAAyB;AAAExB,oBAAAA;AAAK,iBAAA,CAAA;gBAChElE,QAAAA,CAAS;oBAAEoE,IAAAA,EAAM,YAAA;AAAckB,oBAAAA,MAAAA,EAAQC,WAAWI;AAAS,iBAAA,CAAA;YAC7D,CAAA,CAAA,CACCtC,KAAK,CAAC,CAACC,CAAAA,GAAAA;gBACN/C,OAAAA,CAAQ+C,CAAAA,CAAAA;AACR9B,gBAAAA,eAAAA,CAAgB+B,kBAAAA,CAAmBD,CAAAA,EAAAA,GAAAA,CAAAA,CAAAA;gBACnCzB,eAAAA,CAAgB,KAAA,CAAA;AAClB,YAAA,CAAA,CAAA;AACJ,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAM+D,kBAAAA,GAAqBC,mBAAAA,CAAoB3F,SAAAA,EAAWuB,aAAAA,CAAcE,MAAM,CAAA;AAE9E,IAAA,qBACEmE,EAAA,CAAA,aAAA,CAACC,MAAAA,EAAAA;QAAOC,GAAAA,EAAK,CAAA;QAAGC,EAAAA,EAAG,MAAA;QAAOC,QAAAA,EAAUzB;qBAClCqB,EAAA,CAAA,aAAA,CAACK,UAAAA,EAAAA;QAAWC,OAAAA,EAAQ;;;;uBAEpBN,EAAA,CAAA,aAAA,CAACC,MAAAA,EAAAA;QAAOC,GAAAA,EAAK;AACV9E,KAAAA,EAAAA,KAAAA,iBAAQ4E,EAAA,CAAA,aAAA,CAACO,UAAAA,EAAAA;QAAWnF,KAAAA,EAAOA,KAAAA;QAAOoF,QAAAA,EAAUC,IAAAA;QAAMC,QAAAA,EAAAA;AAAc,KAAA,CAAA,GAAA,IAAA,gBAEjEV,EAAA,CAAA,aAAA,CAACW,aAAAA,EAAAA;QACCrF,QAAAA,EAAUA,QAAAA;QACVC,WAAAA,EAAamD,gBAAAA;QACbkC,KAAAA,EAAOnF,YAAAA;AACN,QAAA,GAAGqE;sBAGNE,EAAA,CAAA,aAAA,CAACa,aAAAA,EAAAA;QAAczG,SAAAA,EAAWA,SAAAA;AAAY,QAAA,GAAGuB;sBAEzCqE,EAAA,CAAA,aAAA,CAACc,MAAAA,EAAAA;QACCR,OAAAA,EAAQ,SAAA;QACRS,OAAAA,EAASjF,YAAAA;QACTwC,IAAAA,EAAK,QAAA;AACLoC,QAAAA,QAAAA,EAAU/E,aAAAA,CAAcE,MAAM,KAAK,WAAA,IAAeF,cAAciB;;;;;AAO1E;;;;"}
|
|
@@ -8,8 +8,8 @@ import { SSOButton } from '../components/SSOButton.mjs';
|
|
|
8
8
|
import { useGlobalReducer } from '../GlobalContextProvider.mjs';
|
|
9
9
|
import { useLastUsedAuthMethod } from '../hooks/useLastUsedAuthMethod.mjs';
|
|
10
10
|
import { extractConnectionId, getSsoMethodKey } from '../types/authMethodKeys.mjs';
|
|
11
|
-
import { createElement as y } from '../../../../../../node_modules/preact/dist/preact.module.mjs';
|
|
12
11
|
import { arrayUtils } from '../../../../../core/src/utils/arrayUtils.mjs';
|
|
12
|
+
import { createElement as y } from '../../../../../../node_modules/preact/dist/preact.module.mjs';
|
|
13
13
|
|
|
14
14
|
const SSOButtons = ({ availableConnections })=>{
|
|
15
15
|
const [lastUsedMethod, setLastUsedMethod] = useLastUsedAuthMethod();
|
|
@@ -11,8 +11,8 @@ import { useLastUsedAuthMethod } from '../hooks/useLastUsedAuthMethod.mjs';
|
|
|
11
11
|
import { MainScreenComponent, AppScreens } from '../types/AppScreens.mjs';
|
|
12
12
|
import { getButtonKey, getSsoMethodKey } from '../types/authMethodKeys.mjs';
|
|
13
13
|
import { useProductComponents } from '../utils.mjs';
|
|
14
|
-
import { AuthFlowType, B2BOAuthProviders } from '../../../../../core/src/public/b2b/ui.mjs';
|
|
15
14
|
import { arrayUtils } from '../../../../../core/src/utils/arrayUtils.mjs';
|
|
15
|
+
import { AuthFlowType, B2BOAuthProviders } from '../../../../../core/src/public/b2b/ui.mjs';
|
|
16
16
|
|
|
17
17
|
// OAuth helper functions
|
|
18
18
|
const getCustomScopesForProvider = (oauthProvider, oauthOptionsCustomScopes)=>{
|
|
@@ -55,15 +55,15 @@ const usePasswordInput = ()=>{
|
|
|
55
55
|
type: StytchEventType.B2BPasswordDiscoveryAuthenticate,
|
|
56
56
|
data
|
|
57
57
|
});
|
|
58
|
-
dispatch({
|
|
59
|
-
type: 'transition',
|
|
60
|
-
screen: AppScreens.Discovery
|
|
61
|
-
});
|
|
62
58
|
dispatch({
|
|
63
59
|
type: 'set_discovery_state',
|
|
64
60
|
email: data.email_address,
|
|
65
61
|
discoveredOrganizations: data.discovered_organizations
|
|
66
62
|
});
|
|
63
|
+
dispatch({
|
|
64
|
+
type: 'transition',
|
|
65
|
+
screen: AppScreens.Discovery
|
|
66
|
+
});
|
|
67
67
|
}).catch((err)=>{
|
|
68
68
|
setIsSubmitting(false);
|
|
69
69
|
onError(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePasswordInput.mjs","sources":["../../../../../../../../web/src/ui/b2b/usePasswordInput.ts"],"sourcesContent":["import { useLingui } from '@lingui/react/macro';\nimport { DEFAULT_SESSION_DURATION_MINUTES } from '@stytch/core';\nimport { OrganizationBySlugMatch, StytchAPIError, StytchEventType } from '@stytch/core/public';\nimport { useState } from 'react';\n\nimport { B2BSubscriptionDataLayer } from '../../SubscriptionService';\nimport { getTranslatedError } from '../../utils/getTranslatedError';\nimport { readB2BInternals } from '../../utils/internal';\nimport { useConfig, useErrorCallback, useEventCallback, useGlobalReducer, useStytch } from './GlobalContextProvider';\nimport { AppScreens } from './types/AppScreens';\nimport { onAuthenticateSuccess } from './utils';\n\nexport const usePasswordInput = () => {\n const [state, dispatch] = useGlobalReducer();\n const config = useConfig();\n const stytch = useStytch();\n const { t } = useLingui();\n\n const onEvent = useEventCallback();\n const onError = useErrorCallback();\n\n const [email, setEmail] = useState(state.formState.passwordState.email);\n const [password, setPassword] = useState('');\n const [errorMessage, setErrorMessage] = useState('');\n const [isSubmitting, setIsSubmitting] = useState(false);\n const organization = state.flowState.organization;\n\n const submitPassword = (organization_id: string) => {\n setErrorMessage('');\n setIsSubmitting(true);\n stytch.passwords\n .authenticate({\n email_address: email,\n organization_id: organization_id,\n password: password,\n session_duration_minutes: config.sessionOptions?.sessionDurationMinutes ?? DEFAULT_SESSION_DURATION_MINUTES,\n locale: config.passwordOptions?.locale,\n })\n .then((data) => {\n setIsSubmitting(false);\n onEvent({ type: StytchEventType.B2BPasswordAuthenticate, data });\n onAuthenticateSuccess(data, dispatch, config);\n })\n .catch((err: StytchAPIError) => {\n setIsSubmitting(false);\n onError(err);\n setErrorMessage(getTranslatedError(err, t));\n });\n };\n\n const submitDiscoveryPassword = () => {\n setErrorMessage('');\n setIsSubmitting(true);\n stytch.passwords.discovery\n .authenticate({\n email_address: email,\n password: password,\n })\n .then((data) => {\n setIsSubmitting(false);\n onEvent({ type: StytchEventType.B2BPasswordDiscoveryAuthenticate, data });\n dispatch({ type: 'transition', screen: AppScreens.Discovery });\n dispatch({\n type: 'set_discovery_state',\n email: data.email_address,\n discoveredOrganizations: data.discovered_organizations,\n });\n })\n .catch((err: StytchAPIError) => {\n setIsSubmitting(false);\n onError(err);\n setErrorMessage(getTranslatedError(err, t));\n });\n };\n\n const emailEligibleForJITProvisioning = (\n { email_jit_provisioning, email_allowed_domains }: OrganizationBySlugMatch,\n email: string,\n ) => {\n switch (email_jit_provisioning) {\n case 'ALL_ALLOWED':\n return true;\n case 'NOT_ALLOWED':\n return false;\n case 'RESTRICTED': {\n const emailDomain = email.split('@').pop();\n return emailDomain != null && email_allowed_domains.includes(emailDomain);\n }\n }\n };\n\n const handleNonMemberReset = () => {\n if (!organization) {\n return;\n }\n\n if (!emailEligibleForJITProvisioning(organization, email)) {\n setIsSubmitting(false);\n const organizationName = organization.organization_name;\n setErrorMessage(\n t({\n id: 'error.emailNoAccessToOrg',\n message: `${email} does not have access to ${organizationName}. If you think this is a mistake, contact your admin.`,\n }),\n );\n return;\n }\n\n const dataLayer = readB2BInternals(stytch).dataLayer as B2BSubscriptionDataLayer;\n dataLayer.setItem('reset-email-value', email);\n stytch.magicLinks.email\n .loginOrSignup({\n email_address: email,\n organization_id: organization.organization_id,\n login_redirect_url: config.passwordOptions?.resetPasswordRedirectURL,\n signup_redirect_url: config.passwordOptions?.resetPasswordRedirectURL,\n login_template_id: config.emailMagicLinksOptions?.loginTemplateId,\n signup_template_id: config.emailMagicLinksOptions?.signupTemplateId,\n locale: config.emailMagicLinksOptions?.locale,\n })\n .then(() => {\n setIsSubmitting(false);\n dispatch({ type: 'set_password_state', email: email });\n dispatch({ type: 'transition', screen: AppScreens.PasswordResetVerifyConfirmation });\n })\n .catch((err: StytchAPIError) => {\n onError(err);\n setErrorMessage(getTranslatedError(err, t));\n setIsSubmitting(false);\n });\n };\n\n return {\n stytch,\n onError,\n email,\n setEmail,\n password,\n setPassword,\n organization,\n errorMessage,\n setErrorMessage,\n isSubmitting,\n setIsSubmitting,\n submitPassword,\n submitDiscoveryPassword,\n handleNonMemberReset,\n };\n};\n"],"names":["usePasswordInput","state","dispatch","useGlobalReducer","config","useConfig","stytch","useStytch","useLingui","onEvent","useEventCallback","onError","useErrorCallback","email","setEmail","useState","formState","passwordState","password","setPassword","errorMessage","setErrorMessage","isSubmitting","setIsSubmitting","organization","flowState","submitPassword","organization_id","passwords","authenticate","email_address","session_duration_minutes","sessionOptions","sessionDurationMinutes","DEFAULT_SESSION_DURATION_MINUTES","locale","passwordOptions","then","data","type","StytchEventType","B2BPasswordAuthenticate","onAuthenticateSuccess","catch","err","getTranslatedError","submitDiscoveryPassword","discovery","B2BPasswordDiscoveryAuthenticate","screen","AppScreens","Discovery","discoveredOrganizations","discovered_organizations","emailEligibleForJITProvisioning","email_jit_provisioning","email_allowed_domains","emailDomain","split","pop","includes","handleNonMemberReset","organizationName","organization_name","dataLayer","readB2BInternals","setItem","magicLinks","loginOrSignup","login_redirect_url","resetPasswordRedirectURL","signup_redirect_url","login_template_id","emailMagicLinksOptions","loginTemplateId","signup_template_id","signupTemplateId","PasswordResetVerifyConfirmation"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"usePasswordInput.mjs","sources":["../../../../../../../../web/src/ui/b2b/usePasswordInput.ts"],"sourcesContent":["import { useLingui } from '@lingui/react/macro';\nimport { DEFAULT_SESSION_DURATION_MINUTES } from '@stytch/core';\nimport { OrganizationBySlugMatch, StytchAPIError, StytchEventType } from '@stytch/core/public';\nimport { useState } from 'react';\n\nimport { B2BSubscriptionDataLayer } from '../../SubscriptionService';\nimport { getTranslatedError } from '../../utils/getTranslatedError';\nimport { readB2BInternals } from '../../utils/internal';\nimport { useConfig, useErrorCallback, useEventCallback, useGlobalReducer, useStytch } from './GlobalContextProvider';\nimport { AppScreens } from './types/AppScreens';\nimport { onAuthenticateSuccess } from './utils';\n\nexport const usePasswordInput = () => {\n const [state, dispatch] = useGlobalReducer();\n const config = useConfig();\n const stytch = useStytch();\n const { t } = useLingui();\n\n const onEvent = useEventCallback();\n const onError = useErrorCallback();\n\n const [email, setEmail] = useState(state.formState.passwordState.email);\n const [password, setPassword] = useState('');\n const [errorMessage, setErrorMessage] = useState('');\n const [isSubmitting, setIsSubmitting] = useState(false);\n const organization = state.flowState.organization;\n\n const submitPassword = (organization_id: string) => {\n setErrorMessage('');\n setIsSubmitting(true);\n stytch.passwords\n .authenticate({\n email_address: email,\n organization_id: organization_id,\n password: password,\n session_duration_minutes: config.sessionOptions?.sessionDurationMinutes ?? DEFAULT_SESSION_DURATION_MINUTES,\n locale: config.passwordOptions?.locale,\n })\n .then((data) => {\n setIsSubmitting(false);\n onEvent({ type: StytchEventType.B2BPasswordAuthenticate, data });\n onAuthenticateSuccess(data, dispatch, config);\n })\n .catch((err: StytchAPIError) => {\n setIsSubmitting(false);\n onError(err);\n setErrorMessage(getTranslatedError(err, t));\n });\n };\n\n const submitDiscoveryPassword = () => {\n setErrorMessage('');\n setIsSubmitting(true);\n stytch.passwords.discovery\n .authenticate({\n email_address: email,\n password: password,\n })\n .then((data) => {\n setIsSubmitting(false);\n onEvent({ type: StytchEventType.B2BPasswordDiscoveryAuthenticate, data });\n dispatch({\n type: 'set_discovery_state',\n email: data.email_address,\n discoveredOrganizations: data.discovered_organizations,\n });\n dispatch({ type: 'transition', screen: AppScreens.Discovery });\n })\n .catch((err: StytchAPIError) => {\n setIsSubmitting(false);\n onError(err);\n setErrorMessage(getTranslatedError(err, t));\n });\n };\n\n const emailEligibleForJITProvisioning = (\n { email_jit_provisioning, email_allowed_domains }: OrganizationBySlugMatch,\n email: string,\n ) => {\n switch (email_jit_provisioning) {\n case 'ALL_ALLOWED':\n return true;\n case 'NOT_ALLOWED':\n return false;\n case 'RESTRICTED': {\n const emailDomain = email.split('@').pop();\n return emailDomain != null && email_allowed_domains.includes(emailDomain);\n }\n }\n };\n\n const handleNonMemberReset = () => {\n if (!organization) {\n return;\n }\n\n if (!emailEligibleForJITProvisioning(organization, email)) {\n setIsSubmitting(false);\n const organizationName = organization.organization_name;\n setErrorMessage(\n t({\n id: 'error.emailNoAccessToOrg',\n message: `${email} does not have access to ${organizationName}. If you think this is a mistake, contact your admin.`,\n }),\n );\n return;\n }\n\n const dataLayer = readB2BInternals(stytch).dataLayer as B2BSubscriptionDataLayer;\n dataLayer.setItem('reset-email-value', email);\n stytch.magicLinks.email\n .loginOrSignup({\n email_address: email,\n organization_id: organization.organization_id,\n login_redirect_url: config.passwordOptions?.resetPasswordRedirectURL,\n signup_redirect_url: config.passwordOptions?.resetPasswordRedirectURL,\n login_template_id: config.emailMagicLinksOptions?.loginTemplateId,\n signup_template_id: config.emailMagicLinksOptions?.signupTemplateId,\n locale: config.emailMagicLinksOptions?.locale,\n })\n .then(() => {\n setIsSubmitting(false);\n dispatch({ type: 'set_password_state', email: email });\n dispatch({ type: 'transition', screen: AppScreens.PasswordResetVerifyConfirmation });\n })\n .catch((err: StytchAPIError) => {\n onError(err);\n setErrorMessage(getTranslatedError(err, t));\n setIsSubmitting(false);\n });\n };\n\n return {\n stytch,\n onError,\n email,\n setEmail,\n password,\n setPassword,\n organization,\n errorMessage,\n setErrorMessage,\n isSubmitting,\n setIsSubmitting,\n submitPassword,\n submitDiscoveryPassword,\n handleNonMemberReset,\n };\n};\n"],"names":["usePasswordInput","state","dispatch","useGlobalReducer","config","useConfig","stytch","useStytch","useLingui","onEvent","useEventCallback","onError","useErrorCallback","email","setEmail","useState","formState","passwordState","password","setPassword","errorMessage","setErrorMessage","isSubmitting","setIsSubmitting","organization","flowState","submitPassword","organization_id","passwords","authenticate","email_address","session_duration_minutes","sessionOptions","sessionDurationMinutes","DEFAULT_SESSION_DURATION_MINUTES","locale","passwordOptions","then","data","type","StytchEventType","B2BPasswordAuthenticate","onAuthenticateSuccess","catch","err","getTranslatedError","submitDiscoveryPassword","discovery","B2BPasswordDiscoveryAuthenticate","discoveredOrganizations","discovered_organizations","screen","AppScreens","Discovery","emailEligibleForJITProvisioning","email_jit_provisioning","email_allowed_domains","emailDomain","split","pop","includes","handleNonMemberReset","organizationName","organization_name","dataLayer","readB2BInternals","setItem","magicLinks","loginOrSignup","login_redirect_url","resetPasswordRedirectURL","signup_redirect_url","login_template_id","emailMagicLinksOptions","loginTemplateId","signup_template_id","signupTemplateId","PasswordResetVerifyConfirmation"],"mappings":"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"}
|