passbolt-styleguide 3.3.3 → 3.4.0-alpha2
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/build/css/help.min.css +4 -4
- package/build/css/public.min.css +5 -6
- package/build/css/themes/default/api_authentication.min.css +3 -3
- package/build/css/themes/default/api_cloud.min.css +3 -7
- package/build/css/themes/default/api_main.min.css +4 -9
- package/build/css/themes/default/api_reports.min.css +4 -9
- package/build/css/themes/default/api_webinstaller.min.css +4 -9
- package/build/css/themes/default/ext_app.min.css +4 -9
- package/build/css/themes/default/ext_authentication.min.css +3 -3
- package/build/css/themes/default/ext_external.min.css +3 -3
- package/build/css/themes/default/ext_in_form_cta.min.css +9 -0
- package/build/css/themes/default/ext_in_form_menu.min.css +9 -0
- package/build/css/themes/default/ext_quickaccess.min.css +3 -3
- package/build/css/themes/midgar/api_authentication.min.css +9 -0
- package/build/css/themes/midgar/api_main.min.css +4 -9
- package/build/css/themes/midgar/api_reports.min.css +4 -9
- package/build/css/themes/midgar/ext_app.min.css +4 -9
- package/build/css/themes/midgar/ext_authentication.min.css +3 -3
- package/build/css/themes/midgar/ext_in_form_cta.min.css +9 -0
- package/build/css/themes/midgar/ext_in_form_menu.min.css +9 -0
- package/build/css/themes/midgar/ext_quickaccess.min.css +3 -3
- package/build/js/dist/api-app.js +1 -1
- package/build/js/dist/api-app.js.LICENSE.txt +5 -5
- package/build/js/dist/api-recover.js +1 -1
- package/build/js/dist/api-recover.js.LICENSE.txt +0 -28
- package/build/js/dist/api-setup.js +1 -1
- package/build/js/dist/api-setup.js.LICENSE.txt +0 -15
- package/build/js/dist/api-triage.js +1 -1
- package/build/js/dist/api-triage.js.LICENSE.txt +0 -14
- package/build/js/dist/api-vendors.js +1 -1
- package/build/js/dist/api-vendors.js.LICENSE.txt +146 -84
- package/package.json +31 -26
- package/src/img/controls/chevron-down_blue.svg +3 -0
- package/src/img/diagrams/functional_overview.png +0 -0
- package/src/img/diagrams/functional_overview.svg +4 -0
- package/src/img/diagrams/howitworks.svg +2797 -0
- package/src/img/diagrams/mobile-transfer.svg +296 -0
- package/src/img/diagrams/sequence_diagram_form_authenticate.png +0 -0
- package/src/img/diagrams/sequence_diagram_gpg_authenticate.png +0 -0
- package/src/img/diagrams/totp.svg +251 -0
- package/src/img/illustrations/pin_passbolt.gif +0 -0
- package/src/img/illustrations/wave-pin_my_extension.svg +1 -0
- package/src/img/logo/icon-32-badge-1.png +0 -0
- package/src/img/logo/icon-32-badge-2.png +0 -0
- package/src/img/logo/icon-32-badge-3.png +0 -0
- package/src/img/logo/icon-32-badge-4.png +0 -0
- package/src/img/logo/icon-32-badge-5+.png +0 -0
- package/src/img/logo/icon-32-badge-5.png +0 -0
- package/src/img/logo/icon-32-signout.png +0 -0
- package/src/img/logo/icon-badge-1.svg +1 -0
- package/src/img/logo/icon-badge-2.svg +1 -0
- package/src/img/logo/icon-badge-3.svg +1 -0
- package/src/img/logo/icon-badge-4.svg +1 -0
- package/src/img/logo/icon-badge-5+.svg +1 -0
- package/src/img/logo/icon-badge-5.svg +1 -0
- package/src/img/logo/icon-inactive.svg +1 -0
- package/src/img/logo/icon-without-badge.svg +1 -0
- package/src/img/third_party/ChromeWebStore_black.svg +1 -0
- package/src/img/third_party/ChromeWebStore_white.svg +1 -0
- package/src/img/third_party/edge-addon-black.svg +1 -0
- package/src/img/third_party/edge-addon-white.svg +1 -0
- package/src/locales/de-DE/common.json +820 -0
- package/src/locales/en-UK/common.json +86 -20
- package/src/locales/fr/common.json +750 -0
- package/src/locales/fr-FR/common.json +92 -22
- package/src/locales/sv-SE/common.json +820 -0
- package/src/react-extension/ExtApp.js +16 -10
- package/src/react-extension/ExtBootstrapApp.js +1 -0
- package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.js +2 -2
- package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.js +2 -2
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.js +1 -1
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.test.js +1 -1
- package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.js +22 -8
- package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.test.data.js +3 -0
- package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.js +10 -8
- package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.js +21 -19
- package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.page.js +6 -6
- package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.stories.js +0 -1
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.js +1 -1
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.js +1 -1
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.stories.js +5 -8
- package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.js +20 -38
- package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.data.js +4 -1
- package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.js +4 -4
- package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.js +1 -1
- package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.js +1 -1
- package/src/react-extension/components/Administration/DisplayTestUserDirectoryAdministration/DisplayTestUserDirectoryAdministration.test.js +2 -3
- package/src/react-extension/components/Administration/DisplayTestUserDirectoryAdministration/DisplayTestUserDirectoryAdministration.test.stories.js +5 -9
- package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.js +34 -32
- package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.js +1 -1
- package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.stories.js +0 -3
- package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.js +1 -1
- package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.test.page.js +2 -2
- package/src/react-extension/components/Authentication/AskForAuthenticationHelp/AskForAuthenticationHelp.js +1 -1
- package/src/react-extension/components/Authentication/AskForAuthenticationHelp/AskForAuthenticationHelp.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/CheckMailBox/CheckMailBox.js +2 -2
- package/src/react-extension/components/Authentication/CheckMailBox/CheckMailBox.test.js +1 -1
- package/src/react-extension/components/Authentication/CheckMailBox/CheckMailbox.test.stories.js +12 -14
- package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.js +2 -1
- package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.js +1 -2
- package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.js +9 -19
- package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.js +1 -1
- package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/EnterUsernameForm/EnterUsernameForm.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/HandleSessionExpired/HandleSessionExpired.test.data.js +14 -0
- package/src/react-extension/components/Authentication/HandleSessionExpired/HandleSessionExpired.test.js +65 -0
- package/src/react-extension/components/Authentication/HandleSessionExpired/HandleSessionExpired.test.page.js +38 -0
- package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.js +15 -6
- package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.test.js +27 -0
- package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.js +107 -0
- package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.test.data.js +11 -0
- package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.test.js +65 -0
- package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.test.page.js +73 -0
- package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.test.stories.js +34 -0
- package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.stories.js +8 -11
- package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.js +1 -1
- package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.stories.js +12 -15
- package/src/react-extension/components/AuthenticationLogin/DisplayLoginError/DisplayLoginError.test.stories.js +12 -15
- package/src/react-extension/components/AuthenticationLogin/DisplayLoginInProgress/DisplayLoginProgress.test.stories.js +12 -15
- package/src/react-extension/components/AuthenticationLogin/Login/Login.js +3 -1
- package/src/react-extension/components/AuthenticationLogin/Login/Login.test.stories.js +12 -15
- package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.js +2 -1
- package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.test.js +1 -1
- package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.test.stories.js +5 -11
- package/src/react-extension/components/AuthenticationRecover/RecoverAuthentication/RecoverAuthentication.js +5 -1
- package/src/react-extension/components/AuthenticationSetup/SetupAuthentication/SetupAuthentication.js +4 -0
- package/src/react-extension/components/Common/ActionFeedback/DisplayActionFeedbacks.test.data.js +0 -2
- package/src/react-extension/components/Common/ActionFeedback/DisplayActionFeedbacks.test.js +4 -5
- package/src/react-extension/components/Common/ActionFeedback/DisplayActionFeedbacks.test.page.js +0 -1
- package/src/react-extension/components/Common/Avatar/UserAvatar.js +2 -1
- package/src/react-extension/components/Common/Error/ShowErrorDetails/ShowErrorDetails.js +126 -0
- package/src/react-extension/components/Common/Icons/AnimatedFeedback.js +58 -0
- package/src/react-extension/components/Common/Icons/Icon.js +16 -0
- package/src/react-extension/components/Common/Icons/Icon.test.stories.js +78 -0
- package/src/react-extension/components/Common/Inputs/FormSubmitButton/FormSubmitButton.js +4 -0
- package/src/react-extension/components/Common/Loading/LoadingSpinner/LoadingSpinner.js +2 -1
- package/src/react-extension/components/Common/Menu/DisplayMainMenu.js +2 -4
- package/src/react-extension/components/Common/Navigation/Search/SearchBar.js +1 -1
- package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.js +1 -1
- package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.test.js +1 -1
- package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.test.stories.js +34 -0
- package/src/react-extension/components/Common/Tab/Tab.js +65 -0
- package/src/react-extension/components/Common/Tab/Tabs.js +87 -0
- package/src/react-extension/components/Resource/CreateResource/CreateResource.js +85 -66
- package/src/react-extension/components/Resource/CreateResource/CreateResource.test.data.js +80 -1
- package/src/react-extension/components/Resource/CreateResource/CreateResource.test.js +18 -39
- package/src/react-extension/components/Resource/CreateResource/CreateResource.test.page.js +27 -8
- package/src/react-extension/components/Resource/CreateResource/CreateResource.test.stories.js +70 -4
- package/src/react-extension/components/Resource/DeleteResource/DeleteResource.js +1 -1
- package/src/react-extension/components/Resource/DisplayResourcesList/DisplayDragResource.js +68 -0
- package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.js +20 -47
- package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.test.page.js +4 -1
- package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMenu.js +2 -2
- package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMenu.test.data.js +1 -7
- package/src/react-extension/components/Resource/EditResource/EditResource.js +93 -68
- package/src/react-extension/components/Resource/EditResource/EditResource.test.data.js +80 -1
- package/src/react-extension/components/Resource/EditResource/EditResource.test.js +10 -39
- package/src/react-extension/components/Resource/EditResource/EditResource.test.page.js +26 -11
- package/src/react-extension/components/Resource/ExportResources/ExportResources.js +1 -1
- package/src/react-extension/components/Resource/ExportResources/ExportResources.test.stories.js +5 -11
- package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.js +10 -12
- package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.test.stories.js +5 -11
- package/src/react-extension/components/Resource/FilterResourcesByBreadcrumb/FilterResourcesByBreadcrumb.js +4 -4
- package/src/react-extension/components/Resource/FilterResourcesByBreadcrumb/FilterResourcesByBreadcrumb.test.stories.js +0 -1
- package/src/react-extension/components/Resource/FilterResourcesByFolders/DisplayDragFolderItem.js +109 -0
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.js +41 -193
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.data.js +10 -5
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.js +9 -12
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.page.js +6 -2
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.stories.js +0 -1
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.js +83 -58
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.test.data.js +52 -59
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.test.js +25 -20
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.test.page.js +11 -5
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItemContextualMenu.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByRootFolderContextualMenu.js +7 -2
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByRootFolderContextualMenu.test.js +3 -7
- package/src/react-extension/components/Resource/FilterResourcesByGroups/FilterResourcesByGroups.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByShortcuts/FilterResourcesByShortcuts.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByShortcuts/FilterResourcesByShortcuts.test.page.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByShortcuts/FilterResourcesByShortcuts.test.stories.js +0 -1
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.data.js +47 -0
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.js +34 -3
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.page.js +46 -9
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.stories.js +0 -1
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTagsList.js +124 -4
- package/src/react-extension/components/Resource/FilterResourcesByText/FilterResourcesByText.test.stories.js +0 -2
- package/src/react-extension/components/Resource/ImportResources/ImportResources.js +6 -5
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.js +10 -12
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.test.stories.js +5 -11
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.js +3 -3
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.test.js +3 -3
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.test.stories.js +5 -11
- package/src/react-extension/components/ResourceComment/AddResourceComment/AddResourceComment.js +1 -1
- package/src/react-extension/components/ResourceComment/AddResourceComment/AddResourceComment.test.page.object.js +1 -1
- package/src/react-extension/components/ResourceComment/AddResourceComment/AddResourceComment.test.stories.js +8 -14
- package/src/react-extension/components/ResourceComment/ConfirmResourceCommentDeletion/ConfirmResourceCommentDeletion.test.stories.js +5 -11
- package/src/react-extension/components/ResourceComment/DisplayResourceCommentList/DisplayResourceCommentList.test.stories.js +8 -14
- package/src/react-extension/components/ResourceDescription/EditResourceDescription/EditResourceDescription.js +9 -8
- package/src/react-extension/components/ResourceDescription/EditResourceDescription/EditResourceDescription.test.page.js +1 -1
- package/src/react-extension/components/ResourceDescription/EditResourceDescription/EditResourceDescription.test.stories.js +8 -15
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsActivity.test.stories.js +0 -1
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsDescription.js +1 -1
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsDescription.test.stories.js +0 -1
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.test.js +1 -1
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.test.stories.js +0 -1
- package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.js +2 -2
- package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.page.js +1 -1
- package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.stories.js +0 -3
- package/src/react-extension/components/ResourceFolder/DefineResourceFolderMoveStrategy/DefineResourceFolderMoveStrategy.test.stories.js +0 -6
- package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.test.stories.js +0 -5
- package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.js +1 -1
- package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.page.js +1 -1
- package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.stories.js +0 -7
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsActivity.test.stories.js +0 -2
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsInformation.test.stories.js +0 -2
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsPermissions.test.stories.js +0 -2
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePassphraseGenerator.js +150 -0
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePassphraseGenerator.test.stories.js +30 -0
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePasswordGenerator.js +191 -0
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePasswordGenerator.test.stories.js +73 -0
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/GenerateResourcePassword.js +296 -0
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/GenerateResourcePassword.test.stories.js +112 -0
- package/src/react-extension/components/ResourceTag/DeleteResourceTag/DeleteResourceTag.test.stories.js +0 -2
- package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.js +1 -1
- package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.page.js +1 -1
- package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.stories.js +0 -4
- package/src/react-extension/components/ResourceTag/EditResourceTags/EditResourceTags.js +2 -2
- package/src/react-extension/components/ResourceTag/EditResourceTags/EditResourceTags.test.page.js +1 -1
- package/src/react-extension/components/ResourceTag/EditResourceTags/EditResourceTagsItemViewer.js +5 -1
- package/src/react-extension/components/Share/ShareDialog.test.page.js +1 -1
- package/src/react-extension/components/Share/ShareDialog.test.stories.js +12 -10
- package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.test.stories.js +5 -9
- package/src/react-extension/components/User/CreateUser/CreateUser.js +4 -4
- package/src/react-extension/components/User/CreateUser/CreateUser.test.page.js +3 -3
- package/src/react-extension/components/User/CreateUser/CreateUser.test.stories.js +3 -1
- package/src/react-extension/components/User/DeleteUser/DeleteUser.test.stories.js +5 -8
- package/src/react-extension/components/User/DeleteUser/DeleteUserWithConflicts.test.stories.js +5 -8
- package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.js +2 -2
- package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.test.page.js +1 -1
- package/src/react-extension/components/User/DisplayUsers/DisplayUsers.js +35 -2
- package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.data.js +2 -1
- package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.js +6 -0
- package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.page.js +19 -6
- package/src/react-extension/components/User/EditUser/EditUser.js +3 -3
- package/src/react-extension/components/User/EditUser/EditUser.test.page.js +2 -2
- package/src/react-extension/components/User/EditUser/EditUser.test.stories.js +3 -1
- package/src/react-extension/components/User/FilterUsersByBreadcrumb/FilterUsersByBreadcrumb.js +2 -2
- package/src/react-extension/components/User/FilterUsersByBreadcrumb/FilterUsersByBreadcrumb.test.js +1 -1
- package/src/react-extension/components/User/FilterUsersByBreadcrumb/FilterUsersByBreadcrumb.test.stories.js +5 -8
- package/src/react-extension/components/User/FilterUsersByGroups/FilterUsersByGroup.js +1 -1
- package/src/react-extension/components/User/FilterUsersByShortcut/FilterUsersByShortcut.js +1 -1
- package/src/react-extension/components/User/FilterUsersByShortcut/FilterUsersByShortcut.test.stories.js +0 -1
- package/src/react-extension/components/User/FilterUsersByText/FilterUsersByText.test.stories.js +0 -2
- package/src/react-extension/components/UserDetails/DisplayUserDetailsGroups/DisplayUserDetailsGroups.test.stories.js +8 -11
- package/src/react-extension/components/UserDetails/DisplayUserDetailsInformation/DisplayUserDetailsInformation.test.stories.js +8 -11
- package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.stories.js +8 -12
- package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.js +1 -1
- package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.page.js +2 -2
- package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.stories.js +5 -8
- package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroup.test.stories.js +5 -8
- package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroupWithConflicts.test.stories.js +5 -8
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsInformation/DisplayUserGroupDetailsInformation.test.stories.js +8 -11
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembers.test.stories.js +8 -11
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.js +11 -3
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.data.js +7 -0
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.page.js +1 -1
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.stories.js +12 -8
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.js +92 -21
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.test.data.js +6 -0
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.test.js +2 -2
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.test.page.js +1 -1
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/DisplayChangePassphraseIntroduction.js +12 -10
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/DownloadRecoveryKit.js +4 -10
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.js +65 -25
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.data.js +6 -0
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.js +1 -1
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.page.js +1 -1
- package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.js +14 -13
- package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.test.stories.js +5 -8
- package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.js +21 -6
- package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.test.stories.js +5 -8
- package/src/react-extension/components/UserSetting/DisplayUserProfile/DisplayUserProfile.js +1 -1
- package/src/react-extension/components/UserSetting/DisplayUserProfile/DisplayUserProfile.test.stories.js +5 -8
- package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspace/DisplayUserSettingsWorkspace.js +13 -1
- package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspaceBreadcrumb/DisplayUserSettingsWorkspaceBreadcrumb.js +2 -1
- package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspaceBreadcrumb/DisplayUserSettingsWorkspaceBreadcrumb.test.stories.js +5 -8
- package/src/react-extension/components/UserSetting/DisplayUserTheme/DisplayUserTheme.test.stories.js +5 -8
- package/src/react-extension/components/UserSetting/EditUserProfile/EditUserProfile.js +3 -3
- package/src/react-extension/components/UserSetting/EditUserProfile/EditUserProfile.test.stories.js +5 -8
- package/src/react-extension/components/UserSetting/NavigateIntoUserSettingsWorkspace/NavigateIntoUserSettingsWorkspace.js +26 -4
- package/src/react-extension/components/UserSetting/NavigateIntoUserSettingsWorkspace/NavigateIntoUserSettingsWorkspace.test.stories.js +7 -10
- package/src/react-extension/components/UserSetting/TransferToMobile/TransferToMobile.js +749 -0
- package/src/react-extension/components/UserSetting/TransferToMobile/TransferToMobile.test.data.js +32 -0
- package/src/react-extension/components/UserSetting/TransferToMobile/TransferToMobile.test.js +60 -0
- package/src/react-extension/components/UserSetting/TransferToMobile/TransferToMobile.test.page.js +110 -0
- package/src/react-extension/components/UserSetting/UploadUserProfileAvatar/UploadUserProfileAvatar.js +3 -2
- package/src/react-extension/components/UserSetting/UploadUserProfileAvatar/UploadUserProfileAvatar.test.stories.js +5 -8
- package/src/react-extension/contexts/AdministrationWorkspaceContext.js +2 -2
- package/src/react-extension/contexts/ApiAppContext.js +1 -1
- package/src/react-extension/contexts/ApiRecoverContext.js +1 -1
- package/src/react-extension/contexts/ApiSetupContext.js +1 -1
- package/src/react-extension/contexts/AuthenticationContext.js +21 -2
- package/src/react-extension/contexts/AuthenticationContext.test.js +40 -0
- package/src/react-extension/contexts/DragContext.js +122 -0
- package/src/react-extension/contexts/DragContext.test.js +53 -0
- package/src/react-extension/contexts/NavigationContext.js +11 -0
- package/src/react-extension/contexts/ResourcePasswordGeneratorContext.js +144 -0
- package/src/react-extension/contexts/ResourceWorkspaceContext.js +5 -4
- package/src/react-extension/contexts/ResourceWorkspaceContext.test.data.js +0 -1
- package/src/react-extension/contexts/ResourceWorkspaceContext.test.page.js +0 -1
- package/src/react-extension/contexts/UserWorkspaceContext.js +31 -4
- package/src/react-extension/contexts/UserWorkspaceContext.test.data.js +17 -287
- package/src/react-extension/lib/Crypto/sha512.js +17 -0
- package/src/react-extension/test/fixture/Settings/siteSettings.js +6 -0
- package/src/react-extension/test/mock/components/Internationalisation/MockTranslationProvider.js +42 -7
- package/src/react-quickaccess/ExtQuickAccess.js +75 -28
- package/src/react-quickaccess/components/AnimatedSwitch/AnimatedSwitch.js +22 -5
- package/src/react-quickaccess/components/ExtensionSetup/SetupExtensionInProgress/SetupExtensionInProgress.js +41 -0
- package/src/react-quickaccess/components/ExtensionSetup/SetupExtensionInProgress/SetupExtensionInProgressPage.test.stories.js +23 -0
- package/src/react-quickaccess/components/FilterResourcesByFavoritePage/FilterResourcesByFavoritePage.js +8 -4
- package/src/react-quickaccess/components/FilterResourcesByFavoritePage/FilterResourcesByFavoritePage.test.stories.js +7 -7
- package/src/react-quickaccess/components/FilterResourcesByGroupPage/FilterResourcesByGroupPage.js +10 -6
- package/src/react-quickaccess/components/FilterResourcesByGroupPage/FilterResourcesByGroupPage.test.stories.js +9 -5
- package/src/react-quickaccess/components/FilterResourcesByItemsIOwnPage/FilterResourcesByItemsIOwnPage.js +10 -7
- package/src/react-quickaccess/components/FilterResourcesByItemsIOwnPage/FilterResourcesByItemsIOwnPage.test.stories.js +7 -7
- package/src/react-quickaccess/components/FilterResourcesByRecentlyModifiedPage/FilterResourcesByRecentlyModifiedPage.js +10 -7
- package/src/react-quickaccess/components/FilterResourcesByRecentlyModifiedPage/FilterResourcesByRecentlyModifiedPage.test.stories.js +7 -7
- package/src/react-quickaccess/components/FilterResourcesBySharedWithMePage/FilterResourcesBySharedWithMePage.js +10 -7
- package/src/react-quickaccess/components/FilterResourcesBySharedWithMePage/FilterResourcesBySharedWithMePage.test.stories.js +7 -7
- package/src/react-quickaccess/components/FilterResourcesByTagPage/FilterResourcesByTagPage.js +10 -7
- package/src/react-quickaccess/components/FilterResourcesByTagPage/FilterResourcesByTagPage.test.stories.js +9 -5
- package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePassphraseGenerator.js +150 -0
- package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePassphraseGenerator.test.data.js +20 -0
- package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePassphraseGenerator.test.js +67 -0
- package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePassphraseGenerator.test.page.js +109 -0
- package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePasswordGenerator.js +189 -0
- package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePasswordGenerator.test.data.js +40 -0
- package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePasswordGenerator.test.js +67 -0
- package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePasswordGenerator.test.page.js +121 -0
- package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.js +304 -0
- package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.test.data.js +102 -0
- package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.test.js +76 -0
- package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.test.page.js +158 -0
- package/src/react-quickaccess/components/Header/Header.js +10 -8
- package/src/react-quickaccess/components/Header/Header.test.stories.js +4 -7
- package/src/react-quickaccess/components/HomePage/HomePage.js +40 -11
- package/src/react-quickaccess/components/HomePage/HomePage.test.stories.js +14 -10
- package/src/react-quickaccess/components/HomePage/canSuggestUrl.js +8 -3
- package/src/react-quickaccess/components/HomePage/canSuggestUrl.test.js +6 -0
- package/src/react-quickaccess/components/LoginPage/LoginPage.js +58 -18
- package/src/react-quickaccess/components/LoginPage/LoginPage.test.stories.js +4 -6
- package/src/react-quickaccess/components/ManageQuickAccessMode/ManageQuickAccessMode.js +103 -0
- package/src/react-quickaccess/components/MoreFiltersPage/MoreFiltersPage.js +2 -2
- package/src/react-quickaccess/components/MoreFiltersPage/MoreFiltersPage.test.stories.js +4 -6
- package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.js +5 -3
- package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.test.stories.js +6 -6
- package/src/react-quickaccess/components/PrivateRoute/PrivateRoute.js +1 -0
- package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.js +234 -0
- package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.data.js +28 -0
- package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.stories.js +44 -0
- package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.js +166 -39
- package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.data.js +108 -2
- package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.js +28 -25
- package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.stories.js +6 -6
- package/src/react-quickaccess/components/ResourceViewPage/ResourceViewPage.js +6 -3
- package/src/react-quickaccess/components/ResourceViewPage/ResourceViewPage.test.stories.js +5 -3
- package/src/react-quickaccess/components/Search/Search.js +13 -1
- package/src/react-quickaccess/components/Search/Search.test.stories.js +4 -6
- package/src/react-quickaccess/contexts/PrepareResourceContext.js +221 -0
- package/src/react-web-integration/AuthLogin/AuthLogin.js +72 -0
- package/src/react-web-integration/Autofill/Autofill.js +331 -0
- package/src/react-web-integration/BrowserIntegrationBootstrap.js +64 -0
- package/src/react-web-integration/Events/Quickaccess/QuickAccessEvent.js +24 -0
- package/src/react-web-integration/ExtInFormCallToAction.js +56 -0
- package/src/react-web-integration/ExtInFormMenu.js +70 -0
- package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.js +161 -0
- package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.test.data.js +39 -0
- package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.test.js +48 -0
- package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.test.page.js +42 -0
- package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.test.stories.js +91 -0
- package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.js +360 -0
- package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.test.stories.js +198 -0
- package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenuItem.js +103 -0
- package/src/react-web-integration/contexts/AppContext.js +39 -0
- package/src/react-web-integration/lib/Dom/DomUtils.js +94 -0
- package/src/react-web-integration/lib/InForm/InFormCallToActionField.js +263 -0
- package/src/react-web-integration/lib/InForm/InFormCredentialsFormField.js +118 -0
- package/src/react-web-integration/lib/InForm/InFormFieldSelector.js +77 -0
- package/src/react-web-integration/lib/InForm/InFormManager.js +253 -0
- package/src/react-web-integration/lib/InForm/InformManager.test.data.js +46 -0
- package/src/react-web-integration/lib/InForm/InformManager.test.js +82 -0
- package/src/react-web-integration/lib/InForm/InformManager.test.page.js +116 -0
- package/src/react-web-integration/lib/InForm/InformMenuField.js +182 -0
- package/src/shared/components/Internationalisation/TranslationProvider.js +145 -0
- package/src/shared/lib/Browser/detectBrowserName.js +2 -1
- package/src/shared/lib/Secret/SecretComplexity.js +2 -2
- package/src/shared/lib/SecretGenerator/PassphraseGenerator.js +112 -0
- package/src/shared/lib/SecretGenerator/PassphraseGenerator.test.js +48 -0
- package/src/shared/lib/SecretGenerator/PassphraseGeneratorWords.js +7789 -0
- package/src/shared/lib/SecretGenerator/PasswordGenerator.js +103 -0
- package/src/shared/lib/SecretGenerator/SecretGenerator.js +45 -0
- package/src/shared/lib/SecretGenerator/SecretGeneratorComplexity.js +190 -0
- package/src/shared/lib/SecretGenerator/SecretGeneratorComplexity.test.js +95 -0
- package/src/shared/lib/Settings/SiteSettings.js +8 -0
- package/src/shared/lib/apiClient/apiClient.test.js +1 -1
- package/.babelrc +0 -11
- package/.editorconfig +0 -13
- package/.eslintrc.json +0 -197
- package/.gitlab-ci.yml +0 -28
- package/.jest.config.json +0 -6
- package/.jest.setup.js +0 -8
- package/.jest.transform.js +0 -7
- package/.storybook/main.js +0 -15
- package/.storybook/preview-body.html +0 -5
- package/.storybook/preview.js +0 -6
- package/Gruntfile.js +0 -199
- package/build/css/themes/default/ext_config_debug.min.css +0 -13
- package/build/css/themes/default/ext_legacy.min.css +0 -13
- package/build/css/themes/midgar/ext_legacy.min.css +0 -13
- package/crowdin.yml +0 -4
- package/docker-compose-dev.yml +0 -10
- package/jest.config.json +0 -6
- package/src/img/controls/colorpicker/marker.png +0 -0
- package/src/img/controls/colorpicker/mask.png +0 -0
- package/src/img/controls/colorpicker/wheel.png +0 -0
- package/src/img/controls/overlay-opacity-50.png +0 -0
- package/src/img/third_party/ChromeWebStore_black.png +0 -0
- package/src/img/third_party/ChromeWebStore_white.png +0 -0
- package/src/js/accordion.js +0 -10
- package/src/js/autocomplete.js +0 -241
- package/src/js/autocomplete.min.js +0 -3
- package/src/js/bootstrap-scrollspy.js +0 -172
- package/src/js/chosen.jquery.js +0 -1356
- package/src/js/colorpicker.js +0 -32
- package/src/js/download.js +0 -128
- package/src/js/farbtastic.js +0 -345
- package/src/js/swiper.min.js +0 -18
- package/src/react-quickaccess/components/Internationalisation/TranslationProvider.js +0 -151
- package/storybook-static/favicon.ico +0 -0
- package/storybook-static/iframe.html +0 -133
- package/storybook-static/index.html +0 -47
- package/storybook-static/main.2d01924b12554c6c15af.bundle.js +0 -1
- package/storybook-static/main.b0c44c8759149ccf4f67.bundle.js +0 -3
- package/storybook-static/main.b0c44c8759149ccf4f67.bundle.js.LICENSE.txt +0 -153
- package/storybook-static/main.b0c44c8759149ccf4f67.bundle.js.map +0 -1
- package/storybook-static/runtime~main.6a9b04192e3176eff72a.bundle.js +0 -1
- package/storybook-static/runtime~main.b0c44c8759149ccf4f67.bundle.js +0 -2
- package/storybook-static/runtime~main.b0c44c8759149ccf4f67.bundle.js.map +0 -1
- package/storybook-static/static/media/chosen-sprite.6768c197.png +0 -0
- package/storybook-static/static/media/chosen-sprite@2x.a0b7f3f1.png +0 -0
- package/storybook-static/static/media/dot_black.a2c44078.svg +0 -6
- package/storybook-static/static/media/dot_red.7b34541d.svg +0 -6
- package/storybook-static/static/media/dot_white.f60f7331.svg +0 -6
- package/storybook-static/static/media/fontawesome-webfont.1e59d233.ttf +0 -0
- package/storybook-static/static/media/fontawesome-webfont.20fd1704.woff2 +0 -0
- package/storybook-static/static/media/fontawesome-webfont.8b43027f.eot +0 -0
- package/storybook-static/static/media/fontawesome-webfont.c1e38fd9.svg +0 -2671
- package/storybook-static/static/media/fontawesome-webfont.f691f37e.woff +0 -0
- package/storybook-static/static/media/infinite-bar.f5327dc3.gif +0 -0
- package/storybook-static/static/media/loading_dark.ea474c7f.svg +0 -21
- package/storybook-static/static/media/loading_light.061977b5.svg +0 -15
- package/storybook-static/static/media/logo.e2b062a5.svg +0 -1
- package/storybook-static/static/media/logo_white.cb32e694.svg +0 -1
- package/storybook-static/static/media/opensans-bold.a6b4768c.woff +0 -0
- package/storybook-static/static/media/opensans-regular.7812bd0b.woff +0 -0
- package/storybook-static/static/media/passphrase_intro.37a1ba4e.png +0 -0
- package/storybook-static/vendors~main.4abf29e4f956d5befb41.bundle.js +0 -2
- package/storybook-static/vendors~main.4abf29e4f956d5befb41.bundle.js.LICENSE.txt +0 -105
- package/storybook-static/vendors~main.b0c44c8759149ccf4f67.bundle.js +0 -3
- package/storybook-static/vendors~main.b0c44c8759149ccf4f67.bundle.js.LICENSE.txt +0 -145
- package/storybook-static/vendors~main.b0c44c8759149ccf4f67.bundle.js.map +0 -1
- package/webpack-api.config.js +0 -83
- package/webpack-ext.config.js +0 -84
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Passbolt ~ Open source password manager for teams
|
|
3
|
+
* Copyright (c) Passbolt SA (https://www.passbolt.com)
|
|
4
|
+
*
|
|
5
|
+
* Licensed under GNU Affero General Public License version 3 of the or any later version.
|
|
6
|
+
* For full copyright and license information, please see the LICENSE.txt
|
|
7
|
+
* Redistributions of files must retain the above copyright notice.
|
|
8
|
+
*
|
|
9
|
+
* @copyright Copyright (c) Passbolt SA (https://www.passbolt.com)
|
|
10
|
+
* @license https://opensource.org/licenses/AGPL-3.0 AGPL License
|
|
11
|
+
* @link https://www.passbolt.com Passbolt(tm)
|
|
12
|
+
* @since 3.3.0
|
|
13
|
+
*
|
|
14
|
+
* Generate a password following a configuration.
|
|
15
|
+
* @param configuration The generator configuration
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import {SecretGeneratorComplexity} from "./SecretGeneratorComplexity";
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* The list of look-alike substitution
|
|
22
|
+
*/
|
|
23
|
+
const charactersToExclude = ["O", "l", "|", "I", "0", "1"];
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Returns a number between the given min and max
|
|
27
|
+
* @param min The minimum number
|
|
28
|
+
* @param max The maximum number
|
|
29
|
+
*/
|
|
30
|
+
function randomNumberRange(min, max) {
|
|
31
|
+
const arr = new Uint32Array(1);
|
|
32
|
+
window.crypto.getRandomValues(arr);
|
|
33
|
+
const random = arr[0] / (0xffffffff + 1);
|
|
34
|
+
return Math.floor(random * (max - min + 1)) + min;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Exclude look-alike characters
|
|
39
|
+
* @param characterArray A given character array
|
|
40
|
+
* @return {array}
|
|
41
|
+
*/
|
|
42
|
+
function excludeLookAlikeCharacters(characterArray) {
|
|
43
|
+
if (!characterArray) {
|
|
44
|
+
return characterArray;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const filterExcludedCharacters = (newCharacterArray, character) => {
|
|
48
|
+
if (!charactersToExclude.includes(character)) {
|
|
49
|
+
newCharacterArray.push(character);
|
|
50
|
+
}
|
|
51
|
+
return newCharacterArray;
|
|
52
|
+
};
|
|
53
|
+
return characterArray.reduce(filterExcludedCharacters, []);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Returns a generated password given a generator configuration
|
|
58
|
+
* @param configuration The generator configuration
|
|
59
|
+
*/
|
|
60
|
+
function generate(configuration) {
|
|
61
|
+
const mustExcludeLookAlikeCharacters = configuration.default_options.look_alike;
|
|
62
|
+
let secret = '';
|
|
63
|
+
let mask = [];
|
|
64
|
+
|
|
65
|
+
const availableMasks = configuration.masks.filter(mask => mask.active);
|
|
66
|
+
const secretLength = configuration.default_options.length;
|
|
67
|
+
|
|
68
|
+
const canGenerate = availableMasks.length > 0 &&
|
|
69
|
+
(secretLength >= configuration.default_options.min_length &&
|
|
70
|
+
secretLength <= configuration.default_options.max_length);
|
|
71
|
+
|
|
72
|
+
if (canGenerate) {
|
|
73
|
+
// Build the mask to use to generate a secret.
|
|
74
|
+
mask = availableMasks.reduce((mask, currentMask) => [...mask, ...currentMask.characters], []);
|
|
75
|
+
if (mustExcludeLookAlikeCharacters) {
|
|
76
|
+
mask = excludeLookAlikeCharacters(mask);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/*
|
|
80
|
+
* Generate a password. Try to maximize the entropy of this one by fixing a goal entropy, if not reached keep
|
|
81
|
+
* the password with the highest entropy. Try maximum 10 times.
|
|
82
|
+
*/
|
|
83
|
+
let attempt = 0;
|
|
84
|
+
const goalEntropy = Math.floor(SecretGeneratorComplexity.calculEntropy(secretLength, mask.length));
|
|
85
|
+
let secretEntropy = 0;
|
|
86
|
+
|
|
87
|
+
do {
|
|
88
|
+
let newSecret = '';
|
|
89
|
+
for (let i = 0; i < secretLength; i++) {
|
|
90
|
+
newSecret += mask[randomNumberRange(0, mask.length - 1)];
|
|
91
|
+
}
|
|
92
|
+
const newSecretEntropy = SecretGeneratorComplexity.entropyPassword(newSecret);
|
|
93
|
+
if (newSecretEntropy > secretEntropy) {
|
|
94
|
+
secret = newSecret;
|
|
95
|
+
secretEntropy = newSecretEntropy;
|
|
96
|
+
}
|
|
97
|
+
} while (secretEntropy < goalEntropy && attempt++ < 10);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
return secret;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export const PasswordGenerator = {generate};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Passbolt ~ Open source password manager for teams
|
|
3
|
+
* Copyright (c) Passbolt SA (https://www.passbolt.com)
|
|
4
|
+
*
|
|
5
|
+
* Licensed under GNU Affero General Public License version 3 of the or any later version.
|
|
6
|
+
* For full copyright and license information, please see the LICENSE.txt
|
|
7
|
+
* Redistributions of files must retain the above copyright notice.
|
|
8
|
+
*
|
|
9
|
+
* @copyright Copyright (c) Passbolt SA (https://www.passbolt.com)
|
|
10
|
+
* @license https://opensource.org/licenses/AGPL-3.0 AGPL License
|
|
11
|
+
* @link https://www.passbolt.com Passbolt(tm)
|
|
12
|
+
* @since 3.3.0
|
|
13
|
+
*/
|
|
14
|
+
import {PasswordGenerator} from "./PasswordGenerator";
|
|
15
|
+
import {PassphraseGenerator} from "./PassphraseGenerator";
|
|
16
|
+
import {SecretGeneratorComplexity} from "./SecretGeneratorComplexity";
|
|
17
|
+
|
|
18
|
+
export const SecretGenerator = {
|
|
19
|
+
/**
|
|
20
|
+
* Generate a secret given a generator configuration
|
|
21
|
+
* @param configuration A generator configuration
|
|
22
|
+
* @return {string} A generated secret
|
|
23
|
+
*/
|
|
24
|
+
generate: configuration => {
|
|
25
|
+
const {type} = configuration;
|
|
26
|
+
if (type === 'password') {
|
|
27
|
+
return PasswordGenerator.generate(configuration);
|
|
28
|
+
} else if (type === 'passphrase') {
|
|
29
|
+
return PassphraseGenerator.generate(configuration);
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
/**
|
|
33
|
+
* Calculates the secret entropy
|
|
34
|
+
* @param secret A secret
|
|
35
|
+
* @return {Number} The secret entropy
|
|
36
|
+
*/
|
|
37
|
+
entropy: (secret) => {
|
|
38
|
+
const {numberWords, separator, isPassphrase} = PassphraseGenerator.detectPassphrase(secret);
|
|
39
|
+
if (isPassphrase) {
|
|
40
|
+
return SecretGeneratorComplexity.entropyPassphrase(numberWords, separator);
|
|
41
|
+
} else {
|
|
42
|
+
return SecretGeneratorComplexity.entropyPassword(secret);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
};
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Passbolt ~ Open source password manager for teams
|
|
3
|
+
* Copyright (c) Passbolt SA (https://www.passbolt.com)
|
|
4
|
+
*
|
|
5
|
+
* Licensed under GNU Affero General Public License version 3 of the or any later version.
|
|
6
|
+
* For full copyright and license information, please see the LICENSE.txt
|
|
7
|
+
* Redistributions of files must retain the above copyright notice.
|
|
8
|
+
*
|
|
9
|
+
* @copyright Copyright (c) Passbolt SA (https://www.passbolt.com)
|
|
10
|
+
* @license https://opensource.org/licenses/AGPL-3.0 AGPL License
|
|
11
|
+
* @link https://www.passbolt.com Passbolt(tm)
|
|
12
|
+
* @since 3.3.0
|
|
13
|
+
* Secret generator complexity
|
|
14
|
+
* Entropy calculate following https://generatepasswords.org/how-to-calculate-entropy/
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import PassphraseGeneratorWords from "./PassphraseGeneratorWords";
|
|
18
|
+
import GraphemeSplitter from "grapheme-splitter";
|
|
19
|
+
|
|
20
|
+
const STRENGTH = [
|
|
21
|
+
{
|
|
22
|
+
id: 'not_available',
|
|
23
|
+
label: 'n/a',
|
|
24
|
+
strength: 0
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
id: 'very-weak',
|
|
28
|
+
label: 'very weak',
|
|
29
|
+
strength: 1
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
id: 'weak',
|
|
33
|
+
label: 'weak',
|
|
34
|
+
strength: 60
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
id: 'fair',
|
|
38
|
+
label: 'fair',
|
|
39
|
+
strength: 80
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
id: 'strong',
|
|
43
|
+
label: 'strong',
|
|
44
|
+
strength: 112
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
id: 'very-strong',
|
|
48
|
+
label: 'very strong',
|
|
49
|
+
strength: 128
|
|
50
|
+
}
|
|
51
|
+
];
|
|
52
|
+
|
|
53
|
+
// @todo the tool should use the masks provided by the background page.
|
|
54
|
+
const MASKS = [
|
|
55
|
+
{
|
|
56
|
+
"name": "upper",
|
|
57
|
+
"label": "A-Z",
|
|
58
|
+
"characters": ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"],
|
|
59
|
+
"active": true
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"name": "lower",
|
|
63
|
+
"label": "a-z",
|
|
64
|
+
"characters": ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"],
|
|
65
|
+
"active": true
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"name": "digit",
|
|
69
|
+
"label": "0-9",
|
|
70
|
+
"characters": ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"],
|
|
71
|
+
"active": true
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"name": "special_char1",
|
|
75
|
+
"label": "# $ % & @ ^ ~",
|
|
76
|
+
"characters": ["#", "$", "%", "&", "@", "^", "~"],
|
|
77
|
+
"active": true
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"name": "parenthesis",
|
|
81
|
+
"label": "{ [ ( | ) ] ] }",
|
|
82
|
+
"characters": ["{", "(", "[", "|", "]", ")", "}"],
|
|
83
|
+
"active": true
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"name": "special_char2",
|
|
87
|
+
"label": ". , : ;",
|
|
88
|
+
"characters": [".", ",", ":", ";"],
|
|
89
|
+
"active": true
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"name": "special_char3",
|
|
93
|
+
"label": "' \" `",
|
|
94
|
+
"characters": ["'", "\"", "`"],
|
|
95
|
+
"active": true
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"name": "special_char4",
|
|
99
|
+
"label": "/ \\ _ -",
|
|
100
|
+
"characters": ["/", "\\", "_", "-"],
|
|
101
|
+
"active": true
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"name": "special_char5",
|
|
105
|
+
"label": "< * + ! ? =",
|
|
106
|
+
"characters": ["<", "*", "+", "!", "?", "="],
|
|
107
|
+
"active": true
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"name": "emoji",
|
|
111
|
+
"label": "😘",
|
|
112
|
+
// Based on the initial emoticons block (introduce in unicode v6), not updated since 2015 (unicode v8), see https://en.wikipedia.org/wiki/Emoticons_(Unicode_block)
|
|
113
|
+
"characters": [
|
|
114
|
+
"😀", "😁", "😂", "😃", "😄", "😅", "😆", "😇", "😈", "😉",
|
|
115
|
+
"😊", "😋", "😌", "😍", "😎", "😏", "😐", "😑", "😒", "😓",
|
|
116
|
+
"😔", "😕", "😖", "😗", "😘", "😙", "😚", "😛", "😜", "😝",
|
|
117
|
+
"😞", "😟", "😠", "😡", "😢", "😣", "😤", "😥", "😦", "😧",
|
|
118
|
+
"😨", "😩", "😪", "😫", "😬", "😭", "😮", "😯", "😰", "😱",
|
|
119
|
+
"😲", "😳", "😴", "😵", "😶", "😷", "😸", "😹", "😺", "😻",
|
|
120
|
+
"😼", "😽", "😾", "😿", "🙀", "🙁", "🙂", "🙃", "🙄", "🙅",
|
|
121
|
+
"🙆", "🙇", "🙈", "🙉", "🙊", "🙋", "🙌", "🙍", "🙎", "🙏",
|
|
122
|
+
],
|
|
123
|
+
}
|
|
124
|
+
];
|
|
125
|
+
|
|
126
|
+
const NUMBER_OF_ASCII_CHARACTER = 128;
|
|
127
|
+
const NUMBER_OF_WORD_CASE = 3;
|
|
128
|
+
|
|
129
|
+
export const SecretGeneratorComplexity = {
|
|
130
|
+
/**
|
|
131
|
+
* Calculate a password entropy.
|
|
132
|
+
* @param {string} password The password
|
|
133
|
+
* @returns {Number}
|
|
134
|
+
*/
|
|
135
|
+
entropyPassword: (password = '') => {
|
|
136
|
+
const splitter = new GraphemeSplitter();
|
|
137
|
+
const passwordCharacters = splitter.splitGraphemes(password);
|
|
138
|
+
let maskSize = 0;
|
|
139
|
+
|
|
140
|
+
for (const mask of MASKS) {
|
|
141
|
+
const useMask = passwordCharacters.some(character => mask.characters.includes(character));
|
|
142
|
+
if (useMask) {
|
|
143
|
+
maskSize += mask.characters.length;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
return calculEntropy(passwordCharacters.length, maskSize);
|
|
148
|
+
},
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Calculate a passphrase entropy.
|
|
152
|
+
* @param {integer} numberOfWords The number of words
|
|
153
|
+
* @param {string} separator The passphrase separator
|
|
154
|
+
* @returns {Number}
|
|
155
|
+
*/
|
|
156
|
+
entropyPassphrase: (numberOfWords = 0, separator = '') => {
|
|
157
|
+
const words = PassphraseGeneratorWords['en-UK'];
|
|
158
|
+
// determine a constant for separator
|
|
159
|
+
const maskSize = (separator.length * NUMBER_OF_ASCII_CHARACTER) + words.length + NUMBER_OF_WORD_CASE;
|
|
160
|
+
return calculEntropy(numberOfWords, maskSize);
|
|
161
|
+
},
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Get the strength relative to an entropy
|
|
165
|
+
* @param {number} entropy The entropy
|
|
166
|
+
* @returns {{strength: number, id: string, label: string}|{strength: number, id: string, label: string}|{strength: number, id: string, label: string}|{strength: number, id: string, label: string}|{strength: number, id: string, label: string}}
|
|
167
|
+
*/
|
|
168
|
+
strength: (entropy = 0) => {
|
|
169
|
+
return STRENGTH.reduce((accumulator, item) => {
|
|
170
|
+
if (!accumulator) {
|
|
171
|
+
return item;
|
|
172
|
+
}
|
|
173
|
+
if (item.strength > accumulator.strength && entropy >= item.strength) {
|
|
174
|
+
return item;
|
|
175
|
+
}
|
|
176
|
+
return accumulator;
|
|
177
|
+
});
|
|
178
|
+
},
|
|
179
|
+
calculEntropy
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Calculate the entropy regarding the given primitives.
|
|
184
|
+
* @param length {int} The number of characters
|
|
185
|
+
* @param maskSize {int} The number of possibility for each character
|
|
186
|
+
* @return {int}
|
|
187
|
+
*/
|
|
188
|
+
function calculEntropy(length, maskSize) {
|
|
189
|
+
return (length && maskSize) ? length * (Math.log(maskSize) / Math.log(2)) : 0;
|
|
190
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Passbolt ~ Open source password manager for teams
|
|
3
|
+
* Copyright (c) 2021 Passbolt SA (https://www.passbolt.com)
|
|
4
|
+
*
|
|
5
|
+
* Licensed under GNU Affero General Public License version 3 of the or any later version.
|
|
6
|
+
* For full copyright and license information, please see the LICENSE.txt
|
|
7
|
+
* Redistributions of files must retain the above copyright notice.
|
|
8
|
+
*
|
|
9
|
+
* @copyright Copyright (c) 2021 Passbolt SA (https://www.passbolt.com)
|
|
10
|
+
* @license https://opensource.org/licenses/AGPL-3.0 AGPL License
|
|
11
|
+
* @link https://www.passbolt.com Passbolt(tm)
|
|
12
|
+
* @since 3.3.0
|
|
13
|
+
*/
|
|
14
|
+
import {SecretGeneratorComplexity} from "./SecretGeneratorComplexity";
|
|
15
|
+
|
|
16
|
+
describe.only("SecretGeneratorComplexity", () => {
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* To ensure the test is a bit more relevant, the results to compare with are taken from https://www.omnicalculator.com/other/password-entropy
|
|
20
|
+
*/
|
|
21
|
+
it("should calculate the right entropy for a given set of length and maskSize", () => {
|
|
22
|
+
const entropyOf = (length, maskSize) => roundEntropy(SecretGeneratorComplexity.calculEntropy(length, maskSize));
|
|
23
|
+
|
|
24
|
+
expect(entropyOf(1,1)).toBe(0);
|
|
25
|
+
expect(entropyOf(5,16)).toBe(20);
|
|
26
|
+
expect(entropyOf(10,26)).toBe(47);
|
|
27
|
+
expect(entropyOf(20,52)).toBe(114.01);
|
|
28
|
+
expect(entropyOf(50,198)).toBe(381.47);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
it("should not calculate entropy if one od length or maskSize is 0", () => {
|
|
32
|
+
const entropyOf = (length, maskSize) => roundEntropy(SecretGeneratorComplexity.calculEntropy(length, maskSize));;
|
|
33
|
+
|
|
34
|
+
expect(entropyOf(0, 1)).toBe(0);
|
|
35
|
+
expect(entropyOf(1, 0)).toBe(0);
|
|
36
|
+
expect(entropyOf(0, 0)).toBe(0);
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it("evaluates the right strength based on the given entropy", () => {
|
|
40
|
+
const strengthOf = (entropy) => SecretGeneratorComplexity.strength(entropy).id;
|
|
41
|
+
|
|
42
|
+
expect(strengthOf(0)).toBe("not_available");
|
|
43
|
+
|
|
44
|
+
expect(strengthOf(1)).toBe("very-weak");
|
|
45
|
+
expect(strengthOf(30)).toBe("very-weak");
|
|
46
|
+
|
|
47
|
+
expect(strengthOf(60)).toBe("weak");
|
|
48
|
+
expect(strengthOf(70)).toBe("weak");
|
|
49
|
+
|
|
50
|
+
expect(strengthOf(80)).toBe("fair");
|
|
51
|
+
expect(strengthOf(100)).toBe("fair");
|
|
52
|
+
|
|
53
|
+
expect(strengthOf(112)).toBe("strong");
|
|
54
|
+
expect(strengthOf(120)).toBe("strong");
|
|
55
|
+
|
|
56
|
+
expect(strengthOf(128)).toBe("very-strong");
|
|
57
|
+
expect(strengthOf(256)).toBe("very-strong");
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
it("should compute the right entropy given a password", () => {
|
|
61
|
+
const passwordsAndEntropy = {
|
|
62
|
+
"aaaaaa": 28.2,
|
|
63
|
+
"AAAAAA": 28.2,
|
|
64
|
+
"111111": 19.93,
|
|
65
|
+
"((((((": 16.84,
|
|
66
|
+
"#$%&@^~": 19.65,
|
|
67
|
+
".,:;": 8,
|
|
68
|
+
"<*+!?=": 15.51,
|
|
69
|
+
"aaaAAA1111": 59.54,
|
|
70
|
+
"🇫🇷": 0, // A char which doesn't match the known masks.
|
|
71
|
+
"😸😸😸😸😸😸😸😸": 50.58,
|
|
72
|
+
"😸😸😸😸😸😸😸🇫🇷": 50.58,
|
|
73
|
+
"aA1(~:<😸": 59,
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
for (let password in passwordsAndEntropy) {
|
|
77
|
+
let roundedEntropy = roundEntropy(SecretGeneratorComplexity.entropyPassword(password));
|
|
78
|
+
expect(roundedEntropy).toBe(passwordsAndEntropy[password]);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
it("should compute the right entropy given a passphrase", () => {
|
|
83
|
+
const entropyOf = (wordCount, spacing) => roundEntropy(SecretGeneratorComplexity.entropyPassphrase(wordCount, spacing));
|
|
84
|
+
//Currently, the tests are written considering that there are 7776 words in the dictionnary and 3 word cases
|
|
85
|
+
|
|
86
|
+
expect(entropyOf(5, "")).toBe(64.63);
|
|
87
|
+
expect(entropyOf(5, " ")).toBe(64.86);
|
|
88
|
+
expect(entropyOf(10, "")).toBe(129.25);
|
|
89
|
+
expect(entropyOf(10, " ")).toBe(129.72);
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
function roundEntropy(entropy) {
|
|
94
|
+
return Math.round(entropy * 100) / 100;
|
|
95
|
+
}
|
|
@@ -167,6 +167,14 @@ export default class SiteSettings {
|
|
|
167
167
|
return supportedLocales || SiteSettings.DEFAULT_SUPPORTED_LOCALES;
|
|
168
168
|
}
|
|
169
169
|
|
|
170
|
+
/**
|
|
171
|
+
* Get the generator configuration
|
|
172
|
+
* @return {*}
|
|
173
|
+
*/
|
|
174
|
+
get generatorConfiguration() {
|
|
175
|
+
return getPropValue(this.settings, "passbolt.plugins.generator.configuration");
|
|
176
|
+
}
|
|
177
|
+
|
|
170
178
|
/**
|
|
171
179
|
* Get the default supported locales.
|
|
172
180
|
* @type {array<object>}
|
|
@@ -81,7 +81,7 @@ describe("Integration test with real fetch", () => {
|
|
|
81
81
|
await testClient.findAll();
|
|
82
82
|
expect(true).toBeFalsy();
|
|
83
83
|
} catch (error) {
|
|
84
|
-
expect(error.data.code).toBe(
|
|
84
|
+
expect(error.data.code).toBe(401);
|
|
85
85
|
/*
|
|
86
86
|
* TODO find out why we can't use:
|
|
87
87
|
* expect(error).toBeInstanceOf(PassboltApiFetchError)
|
package/.babelrc
DELETED
package/.editorconfig
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
; This file is for unifying the coding style for different editors and IDEs.
|
|
2
|
-
; More information at http://editorconfig.org
|
|
3
|
-
|
|
4
|
-
root = true
|
|
5
|
-
|
|
6
|
-
[*]
|
|
7
|
-
indent_style = space
|
|
8
|
-
end_of_line = lf
|
|
9
|
-
insert_final_newline = false
|
|
10
|
-
trim_trailing_whitespace = true
|
|
11
|
-
|
|
12
|
-
[*.js]
|
|
13
|
-
indent_size = 2
|
package/.eslintrc.json
DELETED
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"parserOptions": {
|
|
3
|
-
"ecmaVersion": 2018,
|
|
4
|
-
"sourceType": "module",
|
|
5
|
-
"ecmaFeatures": {
|
|
6
|
-
"jsx": true
|
|
7
|
-
}
|
|
8
|
-
},
|
|
9
|
-
"extends": [
|
|
10
|
-
"eslint:recommended",
|
|
11
|
-
"plugin:react/recommended"
|
|
12
|
-
],
|
|
13
|
-
"plugins": [
|
|
14
|
-
"jest",
|
|
15
|
-
"no-unsanitized"
|
|
16
|
-
],
|
|
17
|
-
"env": {
|
|
18
|
-
"browser": true,
|
|
19
|
-
"es6": true,
|
|
20
|
-
"amd": true,
|
|
21
|
-
"jquery": true,
|
|
22
|
-
"webextensions": true,
|
|
23
|
-
"jest": true
|
|
24
|
-
},
|
|
25
|
-
"globals": {
|
|
26
|
-
"global": true,
|
|
27
|
-
"__": true,
|
|
28
|
-
"secretComplexity": true,
|
|
29
|
-
"port": true
|
|
30
|
-
},
|
|
31
|
-
"rules": {
|
|
32
|
-
"strict": [
|
|
33
|
-
"error",
|
|
34
|
-
"never"
|
|
35
|
-
],
|
|
36
|
-
/* possible errors */
|
|
37
|
-
"no-console": 0,
|
|
38
|
-
"no-empty": [
|
|
39
|
-
"error",
|
|
40
|
-
{
|
|
41
|
-
"allowEmptyCatch": true
|
|
42
|
-
}
|
|
43
|
-
],
|
|
44
|
-
// disallow empty block statements
|
|
45
|
-
/* best practices */
|
|
46
|
-
"curly": 2,
|
|
47
|
-
// enforce consistent brace style for all control statements
|
|
48
|
-
"no-eval": 2,
|
|
49
|
-
// disallow the use of eval()
|
|
50
|
-
"no-extend-native": 2,
|
|
51
|
-
// disallow extending native types
|
|
52
|
-
"no-global-assign": 2,
|
|
53
|
-
// disallow assignments to native objects or read-only global variables
|
|
54
|
-
"no-implicit-coercion": 2,
|
|
55
|
-
// disallow shorthand type conversions
|
|
56
|
-
"no-implicit-globals": 2,
|
|
57
|
-
// disallow var and named function declarations in the global scope
|
|
58
|
-
"no-implied-eval": 2,
|
|
59
|
-
// disallow the use of eval()-like methods
|
|
60
|
-
"no-lone-blocks": 2,
|
|
61
|
-
// disallow unnecessary nested blocks
|
|
62
|
-
"no-useless-escape": 0,
|
|
63
|
-
// disallow unnecessary escape characters
|
|
64
|
-
/* Stylistic Issues */
|
|
65
|
-
"array-bracket-spacing": 1,
|
|
66
|
-
// enforce consistent spacing inside array brackets
|
|
67
|
-
"block-spacing": 1,
|
|
68
|
-
// enforce consistent spacing inside single-line blocks
|
|
69
|
-
"brace-style": [
|
|
70
|
-
"warn",
|
|
71
|
-
"1tbs",
|
|
72
|
-
{
|
|
73
|
-
"allowSingleLine": true
|
|
74
|
-
}
|
|
75
|
-
],
|
|
76
|
-
// enforce consistent brace style for blocks
|
|
77
|
-
"comma-spacing": 1,
|
|
78
|
-
// enforce consistent spacing before and after commas
|
|
79
|
-
"computed-property-spacing": 1,
|
|
80
|
-
// enforce consistent spacing inside computed property brackets
|
|
81
|
-
"eol-last": 1,
|
|
82
|
-
// enforce at least one newline at the end of files
|
|
83
|
-
"func-call-spacing": 1,
|
|
84
|
-
// enforce consistent indentation
|
|
85
|
-
"key-spacing": [
|
|
86
|
-
"warn",
|
|
87
|
-
{
|
|
88
|
-
"mode": "minimum"
|
|
89
|
-
}
|
|
90
|
-
],
|
|
91
|
-
// enforce consistent spacing before and after keywords
|
|
92
|
-
"keyword-spacing": 1,
|
|
93
|
-
// enforce consistent spacing between keys and values in object literal properties
|
|
94
|
-
"linebreak-style": 1,
|
|
95
|
-
// enforce consistent linebreak style
|
|
96
|
-
"no-trailing-spaces": 1,
|
|
97
|
-
// disallow trailing whitespace at the end of lines
|
|
98
|
-
"no-var": 1,
|
|
99
|
-
// require let or const instead of var
|
|
100
|
-
"object-curly-spacing": [
|
|
101
|
-
"warn",
|
|
102
|
-
"never"
|
|
103
|
-
],
|
|
104
|
-
// enforce variables to be declared either together or separately in functions
|
|
105
|
-
"padded-blocks": [
|
|
106
|
-
"warn",
|
|
107
|
-
"never"
|
|
108
|
-
],
|
|
109
|
-
// require or disallow padding within blocks
|
|
110
|
-
"semi": [
|
|
111
|
-
"warn",
|
|
112
|
-
"always"
|
|
113
|
-
],
|
|
114
|
-
// require or disallow semicolons instead of ASI
|
|
115
|
-
"semi-spacing": 1,
|
|
116
|
-
// enforce consistent spacing before and after semicolons
|
|
117
|
-
"space-before-blocks": 1,
|
|
118
|
-
// enforce consistent spacing before blocks
|
|
119
|
-
"space-before-function-paren": [
|
|
120
|
-
"warn",
|
|
121
|
-
"never"
|
|
122
|
-
],
|
|
123
|
-
// enforce consistent spacing before function definition opening parenthesis
|
|
124
|
-
"space-in-parens": [
|
|
125
|
-
"warn",
|
|
126
|
-
"never"
|
|
127
|
-
],
|
|
128
|
-
// enforce consistent spacing inside parentheses
|
|
129
|
-
"space-infix-ops": 1,
|
|
130
|
-
// require spacing around operators
|
|
131
|
-
/* ES6 */
|
|
132
|
-
"arrow-body-style": [
|
|
133
|
-
"warn",
|
|
134
|
-
"as-needed"
|
|
135
|
-
],
|
|
136
|
-
// require braces around arrow function bodies
|
|
137
|
-
"arrow-parens": [
|
|
138
|
-
"warn",
|
|
139
|
-
"as-needed"
|
|
140
|
-
],
|
|
141
|
-
// require parentheses around arrow function arguments
|
|
142
|
-
"arrow-spacing": 1,
|
|
143
|
-
// enforce consistent spacing before and after the arrow in arrow functions
|
|
144
|
-
"no-useless-constructor": 1,
|
|
145
|
-
// disallow unnecessary constructors
|
|
146
|
-
//"object-shorthand": ["warn", "always", {"avoidQuotes": true}], // require or disallow method and property shorthand syntax for object literals
|
|
147
|
-
"prefer-arrow-callback": [
|
|
148
|
-
"warn",
|
|
149
|
-
{
|
|
150
|
-
"allowNamedFunctions": true
|
|
151
|
-
}
|
|
152
|
-
],
|
|
153
|
-
// require const declarations for variables that are never reassigned after declared
|
|
154
|
-
"prefer-template": 1,
|
|
155
|
-
// require template literals instead of string concatenation
|
|
156
|
-
"template-curly-spacing": [
|
|
157
|
-
"warn",
|
|
158
|
-
"never"
|
|
159
|
-
],
|
|
160
|
-
// require or disallow spacing around embedded expressions of template strings
|
|
161
|
-
/* PASSBOLT EXTENDED RULES */
|
|
162
|
-
"prefer-const": [
|
|
163
|
-
"error"
|
|
164
|
-
],
|
|
165
|
-
"func-names": [
|
|
166
|
-
"error",
|
|
167
|
-
"never"
|
|
168
|
-
],
|
|
169
|
-
"multiline-comment-style": [
|
|
170
|
-
"error",
|
|
171
|
-
"starred-block"
|
|
172
|
-
],
|
|
173
|
-
// enforce multiple comment block line to follow indentation
|
|
174
|
-
"one-var": [
|
|
175
|
-
"error",
|
|
176
|
-
{
|
|
177
|
-
"initialized": "never",
|
|
178
|
-
"uninitialized": "always"
|
|
179
|
-
}
|
|
180
|
-
],
|
|
181
|
-
// enforce variables to be declared either together or separately in functions
|
|
182
|
-
"indent": [
|
|
183
|
-
"warn",
|
|
184
|
-
2,
|
|
185
|
-
{
|
|
186
|
-
"MemberExpression": 1,
|
|
187
|
-
"SwitchCase": 1
|
|
188
|
-
}
|
|
189
|
-
],
|
|
190
|
-
// enforce consistent indentation
|
|
191
|
-
"react/display-name": [0], // Off
|
|
192
|
-
// The display-name rule is only used for dev consideration and ease the debugging, no prod quality check
|
|
193
|
-
// Mozilla unsanitized rules
|
|
194
|
-
"no-unsanitized/method": "error",
|
|
195
|
-
"no-unsanitized/property": "error"
|
|
196
|
-
}
|
|
197
|
-
}
|