* [PM-22783] Add initial feature flag and settings toggle for autotype MVP
* [PM-22783] Undo Cargo.lock changes
* [PM-22783] Disable console.log block
* [PM-22783] Lint fix
* [PM-22783] Small updates
* [PM-22783] Build fix
* [PM-22783] Use combineLatest in updating the desktop autotype service
* [PM-22783] Check if the user is on Windows
* [PM-22783] Undo access selector html change, linting keeps removing this
* [PM-22783] Fix failing test
* [PM-22788] Add initial desktop native autotype crate based on spike ticket investigation
* [PM-22788] cargo fmt
* [PM-22783] Update autotypeEnabled to be stored in service
* [PM-22783] Add todo comments
* [PM-22783] Add SlimConfigService and MainDesktopAutotypeService
* [PM-22783] Small fixes
* [PM-22788] Add get_foreground_window_title() and cleanup
* [PM-22788] Add comment
* [PM-22788] Lint and cross platform build fixes
* [PM-22788] Update windows.rs in autotype_internal
* [PM-22788] Update windows.rs and dummy.rs in autotype_internal
* [PM-22788] cargo fmt
* [PM-22788] Edit napi result types
* [PM-22788] Edit napi result types again
* [PM-22788] Add autofill as a codeowner of the desktop_native/autotype directory
* [PM-22788] Refactor autotype code
* [PM-22788] Move autotype dependency out of windows only due to abstraction change
* [PM-22788] Fix lint errors
* [PM-22788] Updates based on PR comments
* [PM-22788] cargo fmt
* feat(nx): add basic-lib generator for streamlined library creation
This adds a new nx-plugin library with a generator for creating "common" type
Bitwarden libs. It is set up to accept a lib name, description, team, and
directory. It then
- Creates a folder in the directory (default to libs)
- Sets up complete library scaffolding:
- README with team ownership
- Build, lint and test task configuration
- Test infrastructure
- Configures TypeScript path mapping
- Updates CODEOWNERS with team ownership
- Runs npm i
This will make library creation more consistent and reduce manual boilerplate setup.
The plugin design itself was generated by `npx nx g plugin`. This means we
used a plugin to generate a plugin that exports generators. To create our
generator generator, we first needed a generator.
* fix(dirt/card): correct tsconfig path in jest configuration
Fix the relative path to tsconfig.base in the dirt/card library's Jest config.
The path was incorrectly using four parent directory traversals (../../../../)
when only three (../../../) were needed to reach the project root.
* chore(codeowners): clarify some nx ownership stuff
* Add sdk-internal to ignored deps
* Grouped GH Action Minor
* Additional groupings added
* Added bitwarden-external back.
* Updated to include patch for linting.
* Removed comments on CODEOWNERS since we no longer group by file
* Tried to standardize group names
* Consolidated handling of TS and zone.js
* Move access-intelligence and reports files from tools to dirt folder for new ownership. Update imports for these files
* Move bit-common/src/reports/risk-insights > dirt
* Update codeowners file for dirt team ownership
* Addressed linting issues by executing `npm run prettier`
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* PM-9126: Initial scaffolding for com object registration
* PM-9126: Clean Up PACOMObject trait and impl
* PM-9126: Add unsafe tests
* PM-9126: Clean up registration PR with a working CoRegisterClassObject call
* PM-9126: Add AddAuthenticator fn call
* PM-9126: Load AddAuthenticator fn call dynamically
* PM-9126: Add AddAuthenticator experiments
* PR-9126: add brackets around guids
* PM-9126: clean up part 1
* PM-9126: Cleanup changes
* Only call the register function if on Windows
* PM-9126: Block two generated types that create issues for the i686-pc-windows-msvc target
* PM-9126: Refine bindings file
* PM-9126: Address PR comments part 1
* PM-9126: Address PR comments part 2
* PM-9126: Return result in napi layer
* PM-9126: Propogate error from add authenticator call
* PM-9126: Change for version update
* Moved all desktop native dependencies to workspace
* Excluded workspace Cargo.toml from code ownership
* Added all Cargo dependencies to Renovate config
* Fixed from test warnings.
* Updates to lockfile
* Renamed to JSON5
* Renovate config to group actions by team.
* Corresponding CODEOWNERS changes.
* Updated linting script to use new file name.
* Added note to check CODEOWNERS before changing.
* Added json5 dependency.
* Updated comments for package grouping.
* A few comment adjustments.
* Removed minor-only grouping and Platform cargo prefix.
* Added comments.
* Added back new line to remove extra change in PR.
* Removed package rule for patch to move to base config.
* feat: create copy of desktop build for PR target
* chore: add temporary file to trigger ci
* fix: remove check-run from regular desktop build
* feat: change browser build to not use pr target
* fix: skip build-safari if secret is not available
* feat: skip safari build if secrets are not available
* feat: let windows desktop build without secrets
* fix: has_secrets not being output correctly
* feat: let macos desktop build without secrets
* feat: don't build browser as part of desktop
* feat: change CLI to pull_request
* feat: let web build without secrets
* feat: tweak lint to run on PR and not just push
* feat: add PR target workflows
* fix: remove wip files
* fix: lint on hotfix-rc branches
* feat: add new workflows to CODEOWNERS
* fix: remove workflow_dispatch
pull_request_target are only intended to be used with contributor PRs and we cannot dispatch builds for these branches so there was no point having that option.
* Move premium component into billing ownership
Update CODEOWNERS
Move files within libs/angular
Move files within desktop
Adjust import paths
* Remove configService
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Extract core functionality from `libs/angular` to allow teams to depend on `libs/ui-common` instead.
Moves the following functionality to `ui-common`.
- `I18nPipe`. `libs/angular` still has an old copy but `components` depends on the new variant from `ui-common`.
- `safeProvider`, `SafeProvider` and `SafeInjectionToken`. `libs/angular`re-exports these to avoid needing to update all consumers.
* update code owners
* Move lock component v2 to KM
* Add @bitwarden/key-management/angular to tsconfigs
* Move lock component service to KM
* Move lock component v1 to KM
* Update imports
* Move into @bitwarden/key-management
* Revert "Move into @bitwarden/key-management"
This reverts commit b7514fb8c2.
* Add to tsconfig.libs
* Revert "fix: target workflows not triggering on pull_request_target (#12370)"
This reverts commit 645d36f465.
* Revert "[PM-15126] Tighten scope of our client build pipelines to remove reliance on secrets (#12243)"
This reverts commit f8c33ea04b.
* feat: create copy of desktop build for PR target
* chore: add temporary file to trigger ci
* fix: remove check-run from regular desktop build
* feat: change browser build to not use pr target
* fix: skip build-safari if secret is not available
* feat: skip safari build if secrets are not available
* feat: let windows desktop build without secrets
* fix: has_secrets not being output correctly
* feat: let macos desktop build without secrets
* feat: don't build browser as part of desktop
* feat: change CLI to pull_request
* feat: let web build without secrets
* feat: tweak lint to run on PR and not just push
* feat: add PR target workflows
* fix: remove wip files
* fix: lint on hotfix-rc branches
* feat: add new workflows to CODEOWNERS
* feat: scaffold desktop_objc
* feat: rename fido2 to autofill
* feat: scaffold electron autofill
* feat: auto call hello world on init
* feat: scaffold call to basic objc function
* feat: simple log that checks if autofill is enabled
* feat: adding some availability guards
* feat: scaffold services and allow calls from inspector
* feat: create custom type for returning strings across rust/objc boundary
* chore: clean up comments
* feat: enable ARC
* feat: add util function `c_string_to_nsstring`
* chore: refactor and rename to `run_command`
* feat: add try-catch around command execution
* feat: properly implement command calling
Add static typing. Add proper error handling.
* feat: add autoreleasepool to avoid memory leaks
* chore: change objc names to camelCase
* fix: error returning
* feat: extract some helper functions into utils class
* feat: scaffold status command
* feat: implement status command
* feat: implement password credential mapping
* wip: implement sync command
This crashes because we are not properly handling the fact that `saveCredentialIdentities` uses callbacks, resulting in a race condition where we try to access a variable (result) that has already gotten dealloc'd.
* feat: first version of callback
* feat: make run_command async
* feat: functioning callback returns
* chore: refactor to make objc code easier to read and use
* feat: refactor everything to use new callback return method
* feat: re-implement status command with callback
* fix: warning about CommandContext not being FFI-safe
* feat: implement sync command using callbacks
* feat: implement manual password credential sync
* feat: add auto syncing
* docs: add todo
* feat: add support for passkeys
* chore: move desktop autofill service to init service
* feat: auto-add all .m files to builder
* fix: native build on unix and windows
* fix: unused compiler warnings
* fix: napi type exports
* feat: add corresponding dist command
* feat: comment signing profile until we fix signing
* fix: build breaking on non-macOS platforms
* chore: cargo lock update
* chore: revert accidental version change
* feat: put sync behind feature flag
* chore: put files in autofill folder
* fix: obj-c code not recompiling on changes
* feat: add `namespace` to commands
* fix: linting complaining about flag
* feat: add autofill as owner of their objc code
* chore: make autofill owner of run_command in core crate
* fix: re-add napi annotation
* fix: remove dev bypass
* feat: add macos xcode project
* feat: add extension to mas build
* feat: use `after-sign` to avoid issues
Electron builder modifies the .plist in the extension which causes issues with the signing process. Copying and re-signing manually avoids this because it bypasses the electron builder for the extension
* feat: always clean build and add better error handling
* chore: add some logging to after-sign
* feat: automatically cleanup xcode build to avoid duplicate extensions
* docs: add information about managing extensions
* feat: add missing safari extension logging
* lint: allow macos filenames
* chore: add macos to platform ownership
* lint: add some additional allowed files
* feat: don't build autofill extension for MAS
* chore: ignore capital letters linting for all macos files
* chore: replace gulpfile with regular node script
* chore: add lint rules to script
* lint: fix remaining lint issues in script
* chore: tweak lint rule
* feat: remove desktop target
* fix: use new provisioning profile for dev extension
* Update to unblock CI builds
* chore: remove extension from masdev pack
This way we don't include the extension in any build and can avoid the signing issues it brings
* chore: add autofill as codeowner
* chore: remove xcuserdata
* chore: ignore xcuserdata
---------
Co-authored-by: Vince Grassia <593223+vgrassia@users.noreply.github.com>
Co-authored-by: Michał Chęciński <mchecinski@bitwarden.com>
Co-authored-by: Matt Bishop <mbishop@bitwarden.com>
* Move key rotation to km ownership
* Fix build
* Move userkey rotation data provider abstraction to km ownership
* Move userkey rotation data provider abstraction to km ownership
* Fix linting
* Fix CODEOWNERS for key-management web
* Remove incorrect export
* Fix import error
* Move ownership of biometrics to key-management
* Move biometrics ipc ownership to km
* Move further files to km; split off preload / ipc to km
* Fix linting
* Fix linting
* Fix tests
* Fix tests
* Update .github/CODEOWNERS
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
* Update .github/CODEOWNERS
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
* Change ownership of native messaging to key-management
* Move biometrics to libs/key-management
* Add README to capital whitelist
* Update package-lock.json
* Move km to key-management
* Move km to key-management
* Fix build for cli
* Import fixes
* Apply prettier fix
* Fix test
* Import fixes
* Import fixes
* Update libs/key-management/README.md
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
* Update libs/key-management/package.json
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
* Update lock file
* Change imports to top level km package
---------
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>