This adds a new GitHub Actions workflow build-cli-nx.yml that builds
the CLI using Nx commands instead of npm scripts. Key differences:
- Uses `npx nx build cli --configuration=oss/bit` instead of npm run dist commands
- Simplified build matrix focusing on OSS/Bit configurations
- Runs build, test, and lint targets through Nx
- Working directory is repo root instead of apps/cli
- Removes platform-specific packaging (focusing on basic build verification)
This complements the existing build-cli.yml workflow and allows us to
validate that our Nx integration works in CI while keeping the existing
npm-based builds as the primary deployment mechanism.
The workflow validates both OSS and Bit configurations and ensures the
build output is functional by testing the CLI help command.
- Add project.json with build, serve, test, and lint targets
- Support both OSS and Bit configurations via Nx configurations
- Maintain backward compatibility with existing npm build scripts
- Update webpack configs to work with both Nx and direct webpack CLI calls
- Enable nx build cli --configuration=[oss|oss-dev|bit|bit-dev] commands
- Enable nx serve cli for development workflow with watch mode
- Preserve all existing npm run build:* commands for compatibility
This commit adds Nx integration to @bitwarden/common using the nx:run-script
executor as a temporary facade. This approach allows us to get 'nx build @bitwarden/common'
commands working immediately without requiring architectural changes to resolve
circular dependencies and cross-library coupling.
IMPORTANT: This is intentionally a hack solution. The real benefits of Nx
(proper dependency boundaries, build optimization, accurate dependency graph,
tree-shaking friendly architecture) require fixing the underlying circular
dependencies between @bitwarden/common, state-test-utils, and key-management
libraries first.
When properly implemented, the project.json will likely use:
- @nx/js:tsc executor instead of nx:run-script
- Proper dependsOn configuration for build dependencies
- Clean sourceRoot and include/exclude patterns
- Elimination of the ../key-management/src/index.ts cross-library include
- Resolution of the circular dependency chain
Even as a facade, this gives us immediate workflow benefits: unified 'nx build'
commands across the monorepo, Nx caching and parallelization for existing scripts,
and dependency graph visualization. It also establishes the project.json structure
and Nx patterns we'll need when we tackle the architectural refactoring. This lets
the team start using Nx commands today while we work on the harder problem of
untangling library dependencies in the background.
* Add switch component
* fix focus state
* updating stories
* add switch role
* updated story docs code examples
* Add max length and long label story
* Add disabled reason text
* fix hint spacing
* support rtl thumb transform
* use correct input syntax. assign value to template variable
* remove pointer when disabled
* Show disabled text as title if it exists
* add basic switch component tests
* keep switch top aligned
* move switch back to right side of label
* add max width to label and hint
* updated switch story docs
* fix story html formatting
* better comment about which are ControlValueAccessor functions
* add JSDoc comment about model signals
* update methods to mirror search input format
* fix notify function type
* fix typo
* throw error if label is not provided
* add hover and focus states
* add label to failing spec
* import bit-label
* Removes overprotective check, signal fn intent, ensure proper scope of callback.
* Lets shadow DOM check be called dyanmically; triggers page detail update.
* Restores behavior of using static value to reduce calls to shadow query.
* Restores check page contains shadow DOM on init.
* Add tamil language support for desktop
* Add tamil language support for web
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* encode username for uri and add spec
* verify response from getHibpBreach method
* test/validate for BreachAccountResponse type and length instead of mock response
* Fix the selfhost ui issue
* Fix the text warp
* Add more space with text and button
* Push the upload file button space change
* resolve the space issue
* feat(notification-processing): [PM-19877] System Notification Implementation - Implemented the full feature set for device approval from extension.
* test(notification-processing): [PM-19877] System Notification Implementation - Updated tests.
---------
Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>
* added master password unlock and decryption option fields into identity token connect response
* incorrect master password unlock response parsing
* use sdk
* use sdk
* better type checking on response parsing
* not using sdk
* revert of bad merge conflicts
* revert of bad merge conflicts
* master password unlock setter in state
* unit test coverage for responses processing
* master password unlock in identity user decryption options
* unit test coverage
* unit test coverage
* unit test coverage
* unit test coverage
* lint error
* set master password unlock data in state on identity response and sync response
* revert change in auth's user decryption options
* remove unnecessary cast
* better docs
* change to relative imports
* MasterPasswordUnlockData serialization issue
* explicit undefined type for `syncUserDecryption`
* incorrect identity token response tests
* Add ssoEnabled and ssoMemberDecryptionType properties to ProfileOrganizationResponse
* Add SSO support to Organization model with ssoEnabled and ssoMemberDecryptionType properties, and implement related tests
* Upsert organization SSO settings in memory after save
Updates organization data in memory with new SSO configuration values
to ensure immediate UI updates for Device Approvals page visibility.
* Refactor SSO component to simplify upsertOrganizationWithSsoChanges method
- Updated the method signature to accept a single OrganizationSsoRequest object instead of separate parameters.
- Adjusted the internal logic to directly use properties from the OrganizationSsoRequest for updating the organization state.
* Specify OrganizationData type for updatedOrganization in SSO component
* wip
* feat: refactor how we react to tab changes
* feat: always begin me emitting all active tabs
* feat: only calculate autofill for active tabs
* fix: bug not properly listening to reloads
* wip
* fix: clean up
* fix: clean up
* Prevent memory dumping and debugger on windows and mac main process
* Fix clippy
* Only isolate process when isdev is false
* Clean up
* Add backticks around link
Updates the copy on flows where the user is setting an initial password. Instead of saying "New master password" and "Confirm new master password", it should say "Master password" and "Confirm master password" for these flows.
* remove global check for personal ownership as `setFormState` now handles it
* ensure that the organizationId is disabled for new ciphers
* only check for personal ownership change for enabling/disabling the entire form - this ensure that it is only applied when the data ownership policy is applied
- The bug was caused by a regular user that wasn't in an organization, their form was getting fully disabled when it shouldn't.
* fix type checking
* do not disable organization id after an organization is selected