* 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>
* rename acess intelligence to risk insights
* keep branch name
* replace all instances of AccessIntelligence. strip raw data + members to just the table
* revert change to feature flag name
* add feature flag for critical apps
* change flag name
* Update libs/common/src/enums/feature-flag.enum.ts
Co-authored-by: Daniel James Smith <2670567+djsmith85@users.noreply.github.com>
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Co-authored-by: Daniel James Smith <2670567+djsmith85@users.noreply.github.com>
* rename acess intelligence to risk insights
* keep branch name
* replace all instances of AccessIntelligence. strip raw data + members to just the table
* revert change to feature flag name
* add uri to raw data
* add uri
* PM-13454 modify the hostnames to friendly names
* PM-13454 removed commented code
* add password health service
* add spec. fix logic in password reuse
* PM-13454 added member count and group by uris
* PM-13454 removed moved files
* PM-13454 fixed linting errors and failed unit tests
* PM-13454 grouping member count
* PM-13454 added unit test for totalGroupedMembersMap
* PM-13454 removed the grouping - show a flatmap
---------
Co-authored-by: jaasen-livefront <jaasen@livefront.com>
* add password health service
* add spec. fix logic in password reuse
* move service to bitwarden_license
* revert change to tsconfig
* fix spec
* fix import
* add raw data component
* fix tests
* simplify logic. fix tests
* revert change to default config service
* remove cipher report dep. fix tests.
* revert changes to mock data and specs
* remove mock data
* use orgId param
* fix test
* PM-13318 - AnonLayoutWrapperData refactor to support all possible string scenarios (untranslated string, translated string, and translated string with placeholders)
* PM-13318 - Fix accidental check in
* PM-13318 - Revert the correct change.
* PM-13318 - Fix test failures
* Create web-specifc credential-generator component
* Add missing entries in en/messages.json
* Import and use conditional routing for new credential generator component
* Add comment about temporary using password-generator component
* Update comment to include FIXME which is more easily searchable
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* WIP - access intelligence page
* finish access intelligence page
* finish access intelligence page
* use tab label directive
* remove extension swap change
* only show when feature flag enabled
* Move files under tools ownership
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Add missing column header to weak-password report
* Add missing column header to exposed-password report
* Add missing column header to reused-password report
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Simplify the filter(toggle group) to filter by organizationId instead of a orgFilterStatus property which is not present on the CipherView
* Add sorting to weak password report table
- Create new type to represent a row within the report
- Add types and remove usage of any
- Include the score/badge within the data passed to the datasource/table instead of looking it up via the `passwordStrengthMap`
- Remove unneeded passwordStrengthCache
- Enable sorting via bitSortable
- Set default sort to order by weakness
* Show headers and sort also within AC version of weak-password report, but hide the Owner column
* Clarify that we are filtering by OrgId
* Use a typed object for the reportValue instead of an array
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* [PM-281] Visual distinction required for login page links
* add bitLink to report links
* add bitLink to billing history
* [PM-281] Adding more references to bitLink and incorporating changes to aria labels for a variety of buttons
* Added editItemWithName to announce links within reports even better
---------
Co-authored-by: Vicki League <vleague@bitwarden.com>
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Add sorting to exposed passwords report
- Create new type to represent a row within the report
- Add types and remove usage of any
- Include the exposed number of times within the data passed to the datasource/table instead of looking it up via the `exposedPasswordMap`
- Enable sorting via bitSortable
- Set default sort to order by exposed number of times in descending order
* Show headers and sort also within AC version of exposed-passwords report but hide the Owner column
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Upgrade storybook to version v8 which is a major upgrade. Storybook provides an
upgrade wizard which did most of the work.
- Ran npx storybook upgrade.
- Manually updated `remark-gfm` since the newer mdx requires v 4.
- Migrated all old stories still using `Story` to `StoryObj`.
Enables one of the recommended rules of @angular-eslint. Since this rule was fairly trivial to fix and has no QA effects it seemed reasonable to migrate all code.
When removing boostrap it seems the hidden attribute to the file inputs stops working. This implements a "quick" fix by just adding the tw-hidden class.
* Added new report card and FeatureFlag for MemberAccessReport
* Add new "isEnterpriseOrgGuard"
* Add member access icon
* Show upgrade organization dialog for enterprise on member access report click
* verify member access featureflag on enterprise org guard
* add comment with TODO information for follow up task
* Initial member access report component
* Improved readability, removed path to wrong component and refactored buildReports to use the productType
* finished MemberAccessReport layout and added temporary service to provide mock data
* Moved member-access-report files to bitwarden_license/
Removed unnecessary files
* Added new tools path on bitwarden_license to the CODEOWNERS file
* added member access description to the messages.json
* layout changes to member access report
* Created new reports-routing under bitwarden_license
Moved member-access-report files to corresponding subfolder
* Added search logic
* Removed routing from member-access-report BL component on OSS.
Added member-access-report navigation to organizations-routing on BL
* removed unnecessary ng-container
* Added OrganizationPermissionsGuard and canAccessReports validation to member-access-report navigation
* replaced deprecated search code with searchControl
* Address PR feedback
* removed unnecessary canAccessReports method
* Added report-utils class with generic functions to support report operations
* Added member access report mock
* Added member access report specific logic
* Splitted code into different classes that explained their objective.
* fixed member access report service test cases
* Addressed PR feedback
* Creating a service to return the data for the member access report
* added missing ExportHelper on index.ts
* Corrected property names on member access report component view
* removed duplicated service
* PM-7321 - Temp add input password
* PM-7321 - update input password based on latest PR changes to test.
* PM-7321 - Progress on testing input password component + RegistrationFinishComponent checks
* PM-7321 - more progress on registration finish.
* PM-7321 - Wire up RegistrationFinishRequest model + AccountApiService abstraction + implementation changes for new method.
* PM-7321 - WIP Registration Finish - wiring up request building and API call on submit.
* PM-7321 - WIP registratin finish
* PM-7321 - WIP on creating registration-finish service + web override to add org invite handling
* PM-7321 - (1) Move web-registration-finish svc to web (2) Wire up exports (3) wire up RegistrationFinishComponent to call registration finish service
* PM-7321 - Get CLI building
* PM-7321 - Move all finish registration service and content to registration-finish feature folder.
* PM-7321 - Fix RegistrationFinishService config
* PM-7321 - RegistrationFinishComponent- handlePasswordFormSubmit - error handling WIP
* PM-7321 - InputPasswordComp - Update to accept masterPasswordPolicyOptions as input instead of retrieving it as parent components in different scenarios will need to retrieve the policies differently (e.g., orgInvite token in registration vs direct call via org id post SSO on set password)
* PM-7321 - Registration Finish - Add web specific logic for retrieving master password policies and passing them into the input password component.
* PM-7321 - Registration Start - Send email via query param to registration finish page so it can create masterKey
* PM-7321 - InputPassword comp - (1) Add loading input (2) Add email validation to submit logic.
* PM-7321 - Registration Finish - Add submitting state and pass into input password so that the rest of the registration process keeps the child form disabled.
* PM-7321 - Registration Finish - use validation service for error handling.
* PM-7321 - All register routes must be dynamic and change if the feature flag changes.
* PM-7321 - Test registration finish services.
* PM-7321 - RegisterRouteService - Add comment documenting why the service exists.
* PM-7321 - Add missing input password translations to browser & desktop
* PM-7321 - WebRegistrationFinishSvc - apply PR feedback