* Add importer dummy lib, add cargo deps for win/mac
* Add Chromium importer source from bitwarden/password-access
* Mod crypto is no more
* Expose some Chromium importer functions via NAPI, replace home with home_dir crate
* Add Chromium importer to the main <-> renderer IPC, export all functions from Rust
* Add password and notes fields to the imported logins
* Fix windows to use homedir instead of home
* Return success/failure results
* Import from account logins and join
* Linux v10 support
* Use mod util on Windows
* Use mod util on macOS
* Refactor to move shared code into chromium.rs
* Fix windows
* Fix Linux as well
* Linux v11 support for Chrome/Gnome, everything is async now
* Support multiple browsers on Linux v11
* Move oo7 to Linux
* Fix Windows
* Fix macOS
* Add support for Brave browser in Linux configuration
* Add support for Opera browser in Linux configuration
* Fix Edge and add Arc on macOS
* Add Opera on macOS
* Add support for Vivaldi browser in macOS configuration
* Add support for Chromium browser in macOS configuration
* Fix Edge on Windows
* Add Opera on Windows
* Add Vivaldi on windows
* Add Chromium to supported browsers on Windows
* stub out UI options for chromium direct import
* call IPC funcs from import-desktop
* add notes to chrome csv importer
* remove (csv) from import tool names and format item names as hostnames
* Add ABE/v20 encryption support
* ABE/v20 architecture description
* Add a build step to produce admin.exe and service.exe
* Add Windows v20/ABE configuration functionality to specify the full path to the admin.exe and service.exe. Use ipc.platform.chromiumImporter.configureWindowsCryptoService to configure the Chromium importer on Windows.
* rename ARCHITECTURE.md to README.md
* aligns with guidance from architecture re: in-repository documentation.
* also fixes a failing lint.
* cargo fmt
* cargo clippy fix
* Declare feature flag for using chromium importer
* Linter fix after executing npm run prettier
* Use feature flag to guard the use of the chromium importer
* Added temporary logging to further debug, why the Angular change detection isn't working as expected
* introduce importer metadata; host metadata from service; includes tests
* fix cli build
* Register autotype module in lib.rs
introduce by a bad merge
* Fix web build
* Fix issue with loaders being undefined and the feature flag turned off
* Add missing Chromium support when selecting chromecsv
* debugging
* remove chromium support from chromecsv metadata
* fix default loader selection
* [PM-24753] cargo lib file (#16090)
* Add new modules
* Fix chromium importer
* Fix compile bugs for toolchain
* remove importer folder
* remove IPC code
* undo setting change
* clippy fixes
* cargo fmt
* clippy fixes
* clippy fixes
* clippy fixes
* clippy fixes
* lint fix
* fix release build
* Add files in CODEOWNERS
* Create tools owned preload.ts
* Move chromium-importer.service under tools-ownership
* Fix typeError
When accessing the Chromium direct import options the file button is hidden, so trying to access it's values will fail
* Fix tools owned preload
* Remove dead code and redundant truncation
* Remove configureWindowsCryptoService function/methods
* Clean up cargo files
* Fix unused async
* Update apps/desktop/desktop_native/bitwarden_chromium_importer/Cargo.toml
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
* Fix napi deps
* fix lints
* format
* fix linux lint
* fix windows lints
* format
* fix missing `?`
* fix a different missing `?`
---------
Co-authored-by: Dmitry Yakimenko <detunized@gmail.com>
Co-authored-by: Kyle Spearrin <kyle.spearrin@gmail.com>
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Co-authored-by: ✨ Audrey ✨ <ajensen@bitwarden.com>
Co-authored-by: ✨ Audrey ✨ <audrey@audreyality.com>
Co-authored-by: adudek-bw <adudek@bitwarden.com>
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
* fix(enums-eslint): Enum Rule for ESLint - Added enums in the warnings for eslint.
* fix(enums-eslint): Enum Rule for ESLint - Updated to error in both places for enums.
* fix(enums-eslint): Enum Rule for ESLint - Added new eslint plugin for warning on enums.
* fix(enums-eslint): Enum Rule for ESLint - Changed based on suggestion.
Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>
* refactor(browser-platform-utils): Remove Deprecation and Fix Code - Changed usages of firefox to private and moved the usages to the preferred public method and removed the deprecations.
* fix(enums-eslint): Enum Rule for ESLint - Updated to error and added disable rules for all other places.
* fix(enums-eslint): Enum Rule for ESLint - Undid other changes by accident
* Make nav.component standalone in preparation for usage on send.component
* Make send add-edit.component standalone for usage on send.component
* Make send.component standalone in preparation for the new send add-edit component
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Use typescript-strict-plugin to iteratively turn on strict
* Add strict testing to pipeline
Can be executed locally through either `npm run test:types` for full type checking including spec files, or `npx tsc-strict` for only tsconfig.json included files.
* turn on strict for scripts directory
* Use plugin for all tsconfigs in monorepo
vscode is capable of executing tsc with plugins, but uses the most relevant tsconfig to do so. If the plugin is not a part of that config, it is skipped and developers get no feedback of strict compile time issues. These updates remedy that at the cost of slightly more complex removal of the plugin when the time comes.
* remove plugin from configs that extend one that already has it
* Update workspace settings to honor strict plugin
* Apply strict-plugin to native message test runner
* Update vscode workspace to use root tsc version
* `./node_modules/.bin/update-strict-comments` 🤖
This is a one-time operation. All future files should adhere to strict type checking.
* Add fixme to `ts-strict-ignore` comments
* `update-strict-comments` 🤖
repeated for new merge files
* Remove bitItem and use plain bitLink button for opening generator history
* Revert desktop back to use bitItem
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Create CredentialGeneratorHistoryDialogComponent to be re-used on web and desktop
* Add button to open credential histpry on web
* Add button to open credential history on desktop (#12101)
- Register route to open new CredentialGeneratorHistoryDialogComponent when FeatureFlag/GeneratorToolsModernization is enabled
- Add button to credential generator
- Add missing keys to en/messages.json
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Create desktop-specifc full credential-generator component
* Add missing entries in en/messages.json
* Import and use conditional routing for new credential generator component
app.component: The original if, didn't make any sense as it meant that it would behave differently on the Send page vs Vault, which it doesn't, in addition to a duplicate message receiver was added in vault.component which I also removed.
Old generator for cipher add/edit is still in place and will be replaced by the vault team
* Update comment to include FIXME which is more easily searchable
* Add fixme comment for future extension
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Migrate all tools owned toasts to use CL ToastService instead of PlatformUtilsService
* Fix test that was missing a mock
* Fix double checking file and file-content selection
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Move/replace submit and userVerification logic from web into the BaseExportComponent
Add "@bitwarden/auth" as dependency to the vault-export-ui package
New submit logic also checks for password-encrypted exports which will be need for future UI updates on browser and desktop
* Create export-desktop component using shared recipe
Create new export component that uses the shared export.component from @bitwarden/vault-export-ui
* Update imports within AppModule
Remove old ExportComponent
Remove ExportScopeCalloutComponent as it's part of the BaseExportComponent
* Open new component when clicking on Export Vault menu item
* Add missing entries to messages.json
* Delete old export.component
* Remove duplicate verifyUser-method
* Change placeholder example
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Move/replace submit and userVerification logic from web into the BaseExportComponent
Add "@bitwarden/auth" as dependency to the vault-export-ui package
New submit logic also checks for password-encrypted exports which will be need for future UI updates on browser and desktop
* Remove import/passing of the unneeded UserVerificationService
* Remove app-user-verification from browser and desktop components as the new UI is opened as a self-contained dialog
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* replace `PasswordGeneratorService` with `legacyPasswordGenerationServiceFactory`
* replace `UsernameGeneratorService` with `legacyUsernameGenerationServiceFactory`
* migrate generator options and history
* apply policy immediately once available
* suppress duplicate policy emissions
* run password generation response code in `ngZone`
* Use account service to track accounts and active account
* Remove state service active account Observables.
* Add email verified to account service
* Do not store account info on logged out accounts
* Add account activity tracking to account service
* Use last account activity from account service
* migrate or replicate account service data
* Add `AccountActivityService` that handles storing account last active data
* Move active and next active user to account service
* Remove authenticated accounts from state object
* Fold account activity into account service
* Fix builds
* Fix desktop app switch
* Fix logging out non active user
* Expand helper to handle new authenticated accounts location
* Prefer view observable to tons of async pipes
* Fix `npm run test:types`
* Correct user activity sorting test
* Be more precise about log out messaging
* Fix dev compare errors
All stored values are serializable, the next step wasn't necessary and was erroring on some types that lack `toString`.
* If the account in unlocked on load of lock component, navigate away from lock screen
* Handle no users case for auth service statuses
* Specify account to switch to
* Filter active account out of inactive accounts
* Prefer constructor init
* Improve comparator
* Use helper methods internally
* Fixup component tests
* Clarify name
* Ensure accounts object has only valid userIds
* Capitalize const values
* Prefer descriptive, single-responsibility guards
* Update libs/common/src/state-migrations/migrate.ts
Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>
* Fix merge
* Add user Id validation
activity for undefined was being set, which was resulting in requests for the auth status of `"undefined"` (string) userId, due to key enumeration. These changes stop that at both locations, as well as account add for good measure.
---------
Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>
Move export.component
Export from @bitwarden/vault-export-ui
Fix imports on browser, desktop and web
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Enable usage of the bit-callout within desktop
Adding this should be temporary, with the vision being: All components are standalone and they'd depend/import the CalloutModule themselves if they need it
* Replace vaultTimeoutPolicy callout in settings
* Replace OwnershipPolicy callout in add-edit cipher
* Replace vaultExportDisabled policy callout in export
* Replace generator policy callout in generator
* Replace policy callouts in add/edit Sends
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* PM-6780 - Create vault-export-ui package
* Migrate export-scope-callout to CL
- Move export-scope-callout.component to vault-export-UI
- Use bit-callout instead of app-callout
- Make component standalone
- Remove from jslib.module
- Prefix selector with team-name
- Export it from vault-export-ui
* Update usage of tools-export-scope-callout for desktop
* Update usage of tools-export-scope-callout for web
* Update usage of tools-export-scope-callout for browser
* Change package description
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Added billing account profile state service
* Update usages after removing state service functions
* Added migrator
* Updated bw.ts and main.background.ts
* Removed comment
* Updated state service dependencies to include billing service
* Added missing mv3 factory and updated MainContextMenuHandler
* updated autofill service and tests
* Updated the remaining extensions usages
* Updated desktop
* Removed subjects where they weren't needed
* Refactored billing service to have a single setter to avoid unecessary emissions
* Refactored has premium guard to return an observable
* Renamed services to match ADR
f633f2cdd8/docs/architecture/clients/presentation/angular.md (abstract--default-implementations)
* Updated property names to be a smidgen more descriptive and added jsdocs
* Updated setting of canAccessPremium to automatically update when the underlying observable emits
* Fixed build error after merge conflicts
* Another build error from conflict
* Removed autofill unit test changes from conflict
* Updated login strategy to not set premium field using state service
* Updated CLI to use billing state provider
* Shortened names a bit
* Fixed build
* Move libs/exporter into libs/tools/*
Migrating all files from libs/exporter over to libs/tools/export/vault-export/vault-export-core
Rename package to vault-export-core
Fix all file paths
* Update libs and tsconfig imports
* Fix client imports
* Fix eslint, jest and package-lock.json
* Update CODEOWNERS
* Add README.md to whitelist-capital-letters
* Fix vault-export-service tests not running
* Update libs/tools/export/vault-export/README.md
Co-authored-by: Vincent Salucci <26154748+vincentsalucci@users.noreply.github.com>
* Fix types imports
* Export types from vault-export-core
* Fixed content of README
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Co-authored-by: Vincent Salucci <26154748+vincentsalucci@users.noreply.github.com>
* Checking type instead of send.type on send's add-edit.component
* Fix linting issues
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Use bitTypography for page title
* Replaced app-callout with bit-callout
* Replace button with bit-button
* Update radio buttons to use CL
* Use searchable select for fileFormat dropdown
* Remove unneeded divs (old styling)
* pm-1826 remove eslint-disable tailwindcss/no-custom-classname
* Removed for-attribute from bit-labels
* Removed bitInput from bit-selects
* Removed name-attribute from bit-selects
* Make format a required field
* Removed unused dependency on cryptoService
* Remove unused dependency on BroadcasterService
* Removed dependency on window
* Moved organizationId into BaseExportComponent
* Add vaultSelector
Add organizationService as new dependency
Retrieve organizations a user has access to
Add vaultSelector dropdown
Add `export from` label
Add exportFromHint
* Removed hint as discussed by product&design
* Add function to check for import/export permission
* Export callout should listen to changes
Even though the organizationId was changed, the Input did not trigger changing the scope
* Reading FlexibleCollections feature flag to show the vault-selector on export (#7196)
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Co-authored-by: aj-rosado <109146700+aj-rosado@users.noreply.github.com>
* decompose password generator policy enforcement
* integrate new logic with UI
* improve UX of minimum password length
* improve password generator policy options documentation
* initialize min length to default minimum length boundary
* reset form value on input to prevent UI desync from model
---------
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
* Split up import/export into separate modules
* Fix routing and apply PR feedback
* Renamed OrganizationExport exports to OrganizationVaultExport
* Make import dialogs standalone and move them to libs/importer
* Make import.component re-usable
- Move functionality which was previously present on the org-import.component into import.component
- Move import.component into libs/importer
Make import.component standalone
Create import-web.component to represent Web UI
Fix module imports and routing
Remove unused org-import-files
* Enable importing on deskop
Create import-dialog
Create file-menu entry to open import-dialog
Extend messages.json to include all the necessary messages from shared components
* Renamed filenames according to export rename
* Make ImportWebComponent standalone, simplify routing
* Pass organizationId as Input to ImportComponent
* use formLoading and formDisabled outputs
* use formLoading & formDisabled in desktop
* Emit an event when the import succeeds
Remove Angular router from base-component as other clients might not have routing (i.e. desktop)
Move logic that happened on web successful import into the import-web.component
* Enable importing on deskop
Create import-dialog
Create file-menu entry to open import-dialog
Extend messages.json to include all the necessary messages from shared components
* use formLoading & formDisabled in desktop
* Add missing message for importBlockedByPolicy callout
* Remove commented code for submit button
* Implement onSuccessfulImport to close dialog on success
* fix table themes on desktop & browser
* fix fileSelector button styles
* update selectors to use tools prefix; remove unused selectors
* update selectors
* Wall off UI components in libs/importer
Create barrel-file for libs/importer/components
Remove components and dialog exports from libs/importer/index.ts
Extend libs/shared/tsconfig.libs.json to include @bitwarden/importer/ui -> libs/importer/components
Extend apps/web/tsconfig.ts to include @bitwarden/importer/ui
Update all usages
* Rename @bitwarden/importer to @bitwarden/importer/core
Create more barrel files in libs/importer/*
Update imports within libs/importer
Extend tsconfig files
Update imports in web, desktop, browser and cli
* import-lastpass wip
* Lazy-load the ImportWebComponent via both routes
* Fix import path for ImportComponent
* add validation; add shared folders field
* clean up logic
* fill fileContent on account change
* Use SharedModule as import in import-web.component
* show spinner on pending validation; properly debounce; refactor to loadCSVData func
* fix pending submit guard
* hide on web, show on desktop & browser
* reset user agent fieldset styles
* fix validation
* File selector should be displayed as secondary
* update validation
* Fix setUserTypeContext always throwing
* refactor to password dialog approach
* remove control on destroy; dont submit on enter keydown
* helper to serialize vault accounts (#6556)
* helper to serialize vault accounts
* prettier
* add prompts
* Add missing messages for file-password-prompt
* Add missing messages for import-error-dialog
* Add missing message for import-success-dialog
* Create client-info
* Separate submit and handling import, add error-handling
* Move catch and error handling into submit
* Remove AsyncValidator logic from handleImport
* Add support for filtering shared accounts
* add sso flow to lp import (#6574)
* stub out some sso flow
* use computer props
* lastpass callback
* baseOpenIDConnectAuthority
* openIDConnectAuthorityBase
* comments
* camelCase user type context model
* processSigninResponse
* Refactor handleImport
* use large dialogSize
* remove extra setUserTypeContext
* fix passwordGenerationService provider; pass all errors to ValidationErrors
* add await SSO dialog & logic
* Move lastpass related files into separate folder
* Use bitSubmit to override submit preventDefault (#6607)
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Use large dialogSize
* revert jslib changes
* PM-4398 - Add missing importWarning
* make ui class methods async
* add LastPassDirectImportService
* update error handling
* add OOB methods (manual passcode only)
* fix typo
* respond to SSO callback
* localize error messages
* remove uneeded comment
* update i18n
* add await sso i18n
* add not implemented error to service
* fix getting k2
* fix k1 bugs
* null checks should not be strict
* update awaiting sso dialog
* update approveDuoWebSdk
* refactor oob login flow
* Removing fieldset due to merge of https://github.com/bitwarden/clients/pull/6626
* Refactoring to push logic into the service vs the component
Move all methods related to MFA-UI into a LastPassDirectImportUIService
Move all logic around the import into a LastPassDirectImportService
The component now only has the necessary flows but no knowledge on how to use the lastpass import lib or the need for a OIDC client
* Remove unneeded passwordGenerationService
* move all import logic to service
* apply code review: remove name attributes; use protected fields; use formGroup.value
* rename submit method and add comment
* update textarea id
* update i18n
* remove rogue todo comment
* extract helper asyncValidatorsFinished
* Remove files related to DuoUI we didn't need to differentiate for MFA via Duo
* Add missing import
* revert formGroup.value access
* add email to signInRequest
* add try again error message
* add try again i18n
* consistent clientinfo id (#6654)
---------
Co-authored-by: William Martin <contact@willmartian.com>
* hide on browser
* add lastpass prefix
* add shared i18n copy to web and browser
* rename deeplink
* use protected field
* rename el ids
* refactor: remove nested conditional
* update form ids in consuming client components
* remove unnecessary return statement
* fix file id
* use ngIf
* use hidden because of getElementById
* Remove OIDC lib logging
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Co-authored-by: Daniel James Smith <2670567+djsmith85@users.noreply.github.com>
Co-authored-by: Kyle Spearrin <kspearrin@users.noreply.github.com>
Co-authored-by: Kyle Spearrin <kyle.spearrin@gmail.com>
* Add support for alias creation via self-hosted SimpleLogin
* Add forwardedSimpleLoginBaseUrl to username-gen-options type
* Only show Server Url on web if on selfhosted bitwarden
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Split up import/export into separate modules
* Fix routing and apply PR feedback
* Renamed OrganizationExport exports to OrganizationVaultExport
* Make import dialogs standalone and move them to libs/importer
* Make import.component re-usable
- Move functionality which was previously present on the org-import.component into import.component
- Move import.component into libs/importer
Make import.component standalone
Create import-web.component to represent Web UI
Fix module imports and routing
Remove unused org-import-files
* Enable importing on deskop
Create import-dialog
Create file-menu entry to open import-dialog
Extend messages.json to include all the necessary messages from shared components
* Renamed filenames according to export rename
* Make ImportWebComponent standalone, simplify routing
* Pass organizationId as Input to ImportComponent
* use formLoading and formDisabled outputs
* use formLoading & formDisabled in desktop
* Emit an event when the import succeeds
Remove Angular router from base-component as other clients might not have routing (i.e. desktop)
Move logic that happened on web successful import into the import-web.component
* Enable importing on deskop
Create import-dialog
Create file-menu entry to open import-dialog
Extend messages.json to include all the necessary messages from shared components
* use formLoading & formDisabled in desktop
* Add missing message for importBlockedByPolicy callout
* Remove commented code for submit button
* Implement onSuccessfulImport to close dialog on success
* fix table themes on desktop & browser
* fix fileSelector button styles
* update selectors to use tools prefix; remove unused selectors
* update selectors
* Wall off UI components in libs/importer
Create barrel-file for libs/importer/components
Remove components and dialog exports from libs/importer/index.ts
Extend libs/shared/tsconfig.libs.json to include @bitwarden/importer/ui -> libs/importer/components
Extend apps/web/tsconfig.ts to include @bitwarden/importer/ui
Update all usages
* Rename @bitwarden/importer to @bitwarden/importer/core
Create more barrel files in libs/importer/*
Update imports within libs/importer
Extend tsconfig files
Update imports in web, desktop, browser and cli
* Lazy-load the ImportWebComponent via both routes
* Fix import path for ImportComponent
* Use SharedModule as import in import-web.component
* File selector should be displayed as secondary
* Add missing messages for file-password-prompt
* Add missing messages for import-error-dialog
* Add missing message for import-success-dialog
* Use bitSubmit to override submit preventDefault (#6607)
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Use large dialogSize
* PM-4398 - Add missing importWarning
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Co-authored-by: William Martin <contact@willmartian.com>
* Add selfhosted anonaddy url
* Remove newlines
* Add serverurl field to web
* Show anonaddy api errors
* Add forwardedAnonAddyBaseUrl prop to UsernameGeneratorOptions type
* Use Alias Domain instead of just Domain name
This is easier to distinguish between domain and server url
* Only show Server Url on web if on selfhosted bitwarden
---------
Co-authored-by: Daniel James Smith <djsmith@web.de>
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* setting send password to null if it is empty
* Using Utils.IsNullOrWhiteSpace to verify name and password on SendAddEdit.
Removed unnecessary setting password as null on desktop
* Converted add-edit send component dialog into a bit-dialog
* Updated Send AddEdit text fields to Component Library
* Migrated Share and Options fields to ComponentLibrary on SendAddEdit
* Migrated footer buttons to ComponentLibrary on SendAddEdit
* Updated web's SendAddEdit component file fields
* Replaced file upload with component library
* Changed SendAddEdit to use Reactive Forms on web
* Changed browser SendAddEdit to use ReactiveForms
* Update SendAddEdit on desktop to use ReactiveForms
* Added AppA11yTitle to button on web SendAddEdit
* Initial efflux-dates web change to ComponentLibrary
* Corrected delete button to check if it is in EditMode on SendAddEdit
* Using BitLink on options button
* Corrected typo on send add edit desktop
* Replaced efflux-dates with datetime-local input on SendAddEdit web, browser and desktop
* Removed efflux dates
* Added firefox custom date popout message on DeletionDate to SendAddEdit browser component
* moved desktop's new send data reload from send to SendAddEdit component
* removing unnecessary attributes and spans from Send AddEdit web
* removed redundant try catch from add edit and unnecessary parameter from close
* Added type for date select options
* Removed unnecessary classes and swapped bootstrap classes by corresponding tailwind classes
* Removed unnecessary code
* Added file as required field
Submit only closes popup on success
* Added pre validations at start of submit
* PM-3668 removed expiration date from required
* PM-3671 not defaulting maximum access count to 0
* PM-3669 Copying the link from link method
* Removed required tag from html and added to formgroup
* PM-3679 Checking if is not EditMode before validating if FormGroup file value is set
* PM-3691 Moved error validation to web component as browser and desktop need to show popup error
* PM-3696 - Disabling hide email when it is unset and has policy to not allow hiding
* PM-3694 - Properly setting default value for dates on Desktop when changing from an existing send
* Disabling hidden required fields
* [PM-3800] Clearing password on new send
* Change appSelectCopy to accept a dynamic input on what to copy
* Renamed select-copy directive to copy-text directive to be more accurate with the new behaviour
Signed-off-by: Andre Rosado <arosado@bitwarden.com>
* Moved CopyTextDirective on jslib module to be in alphabetic ordering
---------
Signed-off-by: Andre Rosado <arosado@bitwarden.com>
Co-authored-by: Andre Rosado <arosado@bitwarden.com>
* Added new forwarder (Forward Email <https://forwardemail.net>)
* fix: fixed Basic authorization header
* fix: fixed returned email value
* feat: added verbose message for end-users (e.g. "Not Found" vs. "Domain does not exist on your account." (automatically localized with i18n for user)
* fix: fixed Buffer.from to Utils.fromBufferToB64
* fix: fixed fromBufferToB64 to fromUtf8ToB64
* Remove try-catch to properly display api errors
---------
Co-authored-by: Daniel James Smith <djsmith@web.de>
* Rename service-factory folder
* Move cryptographic service factories
* Move crypto models
* Move crypto services
* Move domain base class
* Platform code owners
* Move desktop log services
* Move log files
* Establish component library ownership
* Move background listeners
* Move background background
* Move localization to Platform
* Move browser alarms to Platform
* Move browser state to Platform
* Move CLI state to Platform
* Move Desktop native concerns to Platform
* Move flag and misc to Platform
* Lint fixes
* Move electron state to platform
* Move web state to Platform
* Move lib state to Platform
* Fix broken tests
* Rename interface to idiomatic TS
* `npm run prettier` 🤖
* Resolve review feedback
* Set platform as owners of web core and shared
* Expand moved services
* Fix test types
---------
Co-authored-by: Hinton <hinton@users.noreply.github.com>
* Added button type to each button element related to the vault team
* Removed disable statement comment
* [PM-1399] Resolve eslint errors for button type - admin-console (#5275)
* Added button type to each button element related to the admin console team
* Added button type to each button element related to the billing team
* Removed disable statement comment
* [PM-1399] Resolve eslint errors for button type - tools (#5284)
* Added button type to each button element related to the tools team
* Added button type to each button element related to the tools team
* Added button type to each button element related to the auth team (#5295)