* 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>
* Creating a landing page for SM, where user can request access from admins
* moving files to better folder, also fixing UI
* updating file paths
* cleaning up the code
* Updating API request to be the new one, and fixing HTML
* Adding coowners
* Updating OrganizaitonId in the request model to be a Guid
* Update apps/web/src/app/secrets-manager/secrets-manager-landing/request-sm-access.component.ts
Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com>
* Update apps/web/src/app/layouts/product-switcher/navigation-switcher/navigation-switcher.component.ts
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
* Update apps/web/src/app/layouts/product-switcher/navigation-switcher/navigation-switcher.component.ts
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
* Suggested changes from Maceij and Thomas
* fixing merge issues
* fixing issues
* Fixing logic to match top bar
* updating file name to not start with a capital letter
* renaming folder
* updating names
* Getting around the lint issue
* fixing lint issues
* Changes requested by Vicky
* Maciej suggested changes
* Fixing comments
* Update apps/web/src/app/secrets-manager/secrets-manager-landing/sm-landing-api.service.ts
Thomas's suggested improvement
Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com>
* ui fixes
* New awesome changes, to include the scenario where a Provider user is logged in, and to handle if an admin needs instructions to enable SM for themselves
* renaming fuctions and variables
---------
Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com>
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
* 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
* Updated codeowners for new design system team.
* Moved Angular and Bootstrap dependencies
* Moved additional dependencies.
* Updated ownership
Co-authored-by: Will Martin <contact@willmartian.com>
---------
Co-authored-by: Will Martin <contact@willmartian.com>