Bitwarden client apps (web, browser extension, desktop, and cli).
This report summarizes scanner evidence for bitwarden/clients, a TypeScript project with 14,119 GitHub stars. SynthScan examined 3,414,480 lines of code across 8943 source files, recording 3755 pattern matches distributed across 12 syntactic categories. The legacy adjusted pattern signal is 1.2 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 626 finding(s).
Are imports declared and package/API names verified? 3118 finding(s).
Are wrappers, guards, and repeated structures necessary? 373 finding(s).
Which changes need focused human review? 3755 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 3755 distinct pattern matches across 12 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …uth-requests/organization-auth-request.service.spec.ts | 185 | jest.spyOn(keyService, "orgKeys$").mockReturnValue(of({ key: "fake-key" })); | CODE |
| LOW | …uth-requests/organization-auth-request.service.spec.ts | 237 | jest.spyOn(keyService, "orgKeys$").mockReturnValue(of({ key: "fake-key" })); | CODE |
| LOW | …persistence/default-report-persistence.service.spec.ts | 314 | "member-1": { id: "member-1", userName: "John Doe", email: "john@example.com" }, | CODE |
| LOW | …entations/domain/default-cipher-health.service.spec.ts | 47 | username: options.username ?? "user@example.com", | CODE |
| LOW | …/helpers/type-guards/risk-insights-type-guards.spec.ts | 31 | userName: "John Doe", | CODE |
| LOW | …/helpers/type-guards/risk-insights-type-guards.spec.ts | 39 | userName: "Jane Doe", | CODE |
| LOW | …/helpers/type-guards/risk-insights-type-guards.spec.ts | 389 | userName: "John Doe", | CODE |
| LOW | …/helpers/type-guards/risk-insights-type-guards.spec.ts | 399 | userName: "John Doe", | CODE |
| LOW⚡ | …/helpers/type-guards/risk-insights-type-guards.spec.ts | 429 | userName: "John Doe", | CODE |
| LOW⚡ | …/helpers/type-guards/risk-insights-type-guards.spec.ts | 439 | userName: "John Doe", | CODE |
| LOW⚡ | …/helpers/type-guards/risk-insights-type-guards.spec.ts | 449 | userName: "John Doe", | CODE |
| LOW | …t-web/src/app/auth/sso/sso-manage.component.stories.ts | 76 | activeAccount$: of({ id: "user-1", email: "user@example.com", emailVerified: true }), | CODE |
| LOW | …rc/app/providers/providers-layout.component.stories.ts | 117 | activeAccount$: of({ id: USER_ID, email: "user@example.com", emailVerified: true }), | CODE |
| LOW | …t-web/src/app/providers/providers.component.stories.ts | 61 | activeAccount$: of({ id: USER_ID, email: "user@example.com", emailVerified: true }), | CODE |
| LOW | …/add-existing-organization-dialog.component.stories.ts | 68 | name: "Acme Inc", | CODE |
| LOW | …manage-client-subscription-dialog.component.stories.ts | 23 | organizationName: "Acme Inc", | CODE |
| LOW | …clients/manage-client-name-dialog.component.stories.ts | 22 | organization: { id: "org-1", name: "Acme Inc", seats: 10 }, | CODE |
| LOW | …/providers/clients/manage-clients.component.stories.ts | 45 | organizationName: "Acme Inc", | CODE |
| LOW | …/providers/clients/manage-clients.component.stories.ts | 120 | activeAccount$: of({ id: USER_ID, email: "user@example.com", emailVerified: true }), | CODE |
| LOW | …/providers/clients/manage-clients.component.stories.ts | 171 | client({ id: "provider-org-1", organizationId: "org-1", organizationName: "Acme Inc" }), | CODE |
| LOW | …/src/app/providers/manage/members.component.stories.ts | 117 | activeAccount$: of({ id: USER_ID, email: "user@example.com", emailVerified: true }), | CODE |
| LOW | …-web/src/app/pam/access-requests/my-access-row.spec.ts | 210 | const human = decision({ deciderKind: "human", name: "Jane Doe", email: "jane@example.com" }); | CODE |
| LOW | …-web/src/app/pam/access-requests/my-access-row.spec.ts | 213 | resolverName: "Jane Doe", | CODE |
| LOW | …-web/src/app/pam/access-requests/my-access-row.spec.ts | 224 | const human = decision({ deciderKind: "human", name: "Jane Doe", email: "jane@example.com" }); | CODE |
| LOW | …-web/src/app/pam/access-requests/my-access-row.spec.ts | 241 | const human = decision({ deciderKind: "human", name: "Jane Doe", id: "user-9" }); | CODE |
| LOW | …-web/src/app/pam/access-requests/my-access-row.spec.ts | 245 | resolverName: "Jane Doe", | CODE |
| LOW | …-web/src/app/pam/access-requests/my-access-row.spec.ts | 395 | decisions: [decision({ deciderKind: "human", name: "Jane Doe", comment: "Not now" })], | CODE |
| LOW | …-web/src/app/pam/access-requests/my-access-row.spec.ts | 400 | expect(row.resolverName).toBe("Jane Doe"); | CODE |
| LOW | …pp/pam/access-requests/approvals-tab.component.spec.ts | 951 | return query("bit-search input")?.getAttribute("placeholder"); | CODE |
| LOW | …/pam/access-requests/my-requests-tab.component.spec.ts | 747 | return query("bit-search input")?.getAttribute("placeholder"); | CODE |
| LOW | …rc/app/pam/access-rules/access-rules.component.spec.ts | 999 | expect(toolbar(fixture)!.querySelector("bit-search input")!.getAttribute("placeholder")).toBe( | CODE |
| LOW | …ged-credentials/rotation-config-edit.component.spec.ts | 76 | sealed: rotationConfigSealedFields({ accountIdentity: "admin@example.com" }), | CODE |
| LOW | …ged-credentials/rotation-config-edit.component.spec.ts | 267 | accountIdentity: "admin@example.com", | CODE |
| LOW | …ged-credentials/rotation-config-edit.component.spec.ts | 290 | accountIdentity: "admin@example.com", | CODE |
| LOW | …ged-credentials/rotation-config-edit.component.spec.ts | 301 | accountIdentity: "admin@example.com", | CODE |
| LOW | …ged-credentials/rotation-config-edit.component.spec.ts | 317 | accountIdentity: "admin@example.com", | CODE |
| LOW | …ged-credentials/rotation-config-edit.component.spec.ts | 340 | component.createForm.controls.accountIdentity.setValue("admin@example.com"); | CODE |
| LOW | …ged-credentials/rotation-config-edit.component.spec.ts | 934 | component.createForm.controls.accountIdentity.setValue("admin@example.com"); | CODE |
| LOW | …-credentials/managed-credentials-tab.component.spec.ts | 1485 | expect(input.getAttribute("placeholder")).toBe("pamRotationConfigSearch"); | CODE |
| LOW | …ess-connectors/access-connectors-tab.component.spec.ts | 1548 | expect(input.getAttribute("placeholder")).toBe("pamAccessConnectorSearch"); | CODE |
| LOW | …on/target-systems/target-systems-tab.component.spec.ts | 2087 | expect(input.getAttribute("placeholder")).toBe("pamTargetSystemSearch"); | CODE |
| LOW | …it-web/src/app/pam/helpers/find-human-decision.spec.ts | 39 | decision({ deciderKind: "human", name: "Jane Doe", email: "jane@example.com" }), | CODE |
| LOW | …it-web/src/app/pam/helpers/find-human-decision.spec.ts | 41 | expect(approver).toEqual({ id: undefined, name: "Jane Doe", email: "jane@example.com" }); | CODE |
| LOW | …-verification/domain-verification.component.stories.ts | 77 | activeAccount$: of({ id: USER_ID, email: "user@example.com", emailVerified: true }), | CODE |
| LOW | …device-approvals/device-approvals.component.stories.ts | 130 | activeAccount$: of({ id: "user-1", email: "user@example.com", emailVerified: true }), | CODE |
| LOW | …e/shared/risk-insights-drawer-dialog.component.spec.ts | 131 | { email: "user@example.com", atRiskPasswordCount: 5 }, | CODE |
| LOW | …e/shared/risk-insights-drawer-dialog.component.spec.ts | 132 | { email: "admin@example.com", atRiskPasswordCount: 3 }, | CODE |
| LOW | …e/shared/risk-insights-drawer-dialog.component.spec.ts | 156 | atRiskMemberDetails: [{ email: "user@example.com", atRiskPasswordCount: 5 }], | CODE |
| LOW | …e/shared/risk-insights-drawer-dialog.component.spec.ts | 167 | atRiskMemberDetails: [{ email: "user@example.com", atRiskPasswordCount: 5 }], | CODE |
| LOW | …/shared/app-table-row-scrollable-m11.component.spec.ts | 31 | userName: "John Doe", | CODE |
| LOW | …components/send-details/send-details.component.spec.ts | 181 | emails: "user@example.com", | CODE |
| LOW | …ents/share-item-form/share-item-form.component.spec.ts | 33 | login: { username: "user@example.com", uris: [] }, | CODE |
| LOW | …ents/share-item-form/share-item-form.component.spec.ts | 159 | emails: ["test@test.com"], | CODE |
| LOW | …ents/share-item-form/share-item-form.component.spec.ts | 182 | emails: ["test@test.com"], | CODE |
| LOW | …orter/src/importers/passwordboss-json-importer.spec.ts | 34 | nameOnCard: "Jane Doe", | CODE |
| LOW | …orter/src/importers/passwordboss-json-importer.spec.ts | 109 | expect(card.card.cardholderName).toEqual("Jane Doe"); | CODE |
| LOW | …orter/src/importers/passwordboss-json-importer.spec.ts | 170 | nameOnCard: "Jane Doe", | CODE |
| LOW | …orter/src/importers/passwordboss-json-importer.spec.ts | 240 | nameOnCard: "Jane Doe", | CODE |
| LOW | libs/importer/src/importers/myki-csv-importer.spec.ts | 561 | expect(cipher.notes).toBe("The content of a secure note. Lorem ipsum, etc."); | CODE |
| LOW | …/importer/src/importers/clipperz-html-importer.spec.ts | 32 | "0": { label: "username", actionType: "username", value: "user@example.com" }, | CODE |
| 3001 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …s-rules/access-rule-edit/access-rule-edit.component.ts | 258 | this.formGroup.controls.collections.valueChanges.pipe( | CODE |
| CRITICAL | …s-rules/access-rule-edit/access-rule-edit.component.ts | 483 | this.formGroup.controls.collections.value.map((c) => c.id), | CODE |
| CRITICAL | …access-connectors/access-connector-detail.component.ts | 297 | this.formGroup.controls.active.valueChanges.pipe(takeUntilDestroyed()).subscribe((active) => { | CODE |
| CRITICAL | …/bit-web/src/app/pam/helpers/access-rule-error.spec.ts | 17 | "Bit.Services.Pam.Services.AccessRuleWriteValidator.ValidateAsync(Guid organizationId) in " + | CODE |
| CRITICAL | …t-web/src/app/dirt/provider-events/events.component.ts | 75 | this.route.parent.parent.params.subscribe(async (params) => { | CODE |
| CRITICAL | …nents/send-details/send-file-details.component.spec.ts | 48 | fixture.componentInstance.sendFileDetailsForm.controls.file.setValue(file); | CODE |
| CRITICAL | …nents/send-details/send-file-details.component.spec.ts | 54 | fixture.componentInstance.sendFileDetailsForm.controls.file.setValue(null); | CODE |
| CRITICAL | …nents/send-details/send-file-details.component.spec.ts | 66 | fixture.componentInstance.sendFileDetailsForm.controls.file.setValue(oversized); | CODE |
| CRITICAL | …nents/send-details/send-file-details.component.spec.ts | 80 | fixture.componentInstance.sendFileDetailsForm.controls.file.setValue(atLimit); | CODE |
| CRITICAL | …nents/send-details/send-file-details.component.spec.ts | 106 | fixture.componentInstance.sendFileDetailsForm.controls.file.setValue(oversized); | CODE |
| CRITICAL | libs/importer/src/components/import.component.ts | 335 | this.formGroup.controls.chromiumLoader.valueChanges.pipe( | CODE |
| CRITICAL | …omponents/import-controls/import-controls.component.ts | 706 | this.formGroup.controls.method.valueChanges.pipe(takeUntilDestroyed()).subscribe((method) => { | CODE |
| CRITICAL | …omponents/import-controls/import-controls.component.ts | 729 | this.formGroup.controls.file.valueChanges.pipe(takeUntilDestroyed()).subscribe((file) => { | CODE |
| CRITICAL | …omponents/import-controls/import-controls.component.ts | 750 | this.formGroup.controls.fileContents.valueChanges.pipe(takeUntilDestroyed()).subscribe(() => { | CODE |
| CRITICAL | …import-controls-keeper-method-picker.component.spec.ts | 68 | fixture.componentInstance.form.controls.method.disable(); | CODE |
| CRITICAL | …r/src/components/lastpass/import-lastpass.component.ts | 57 | protected emailHint$ = this.formGroup.controls.email.statusChanges.pipe( | CODE |
| CRITICAL | libs/auth/src/angular/login/login.component.ts | 307 | this.formGroup.controls.email.valueChanges.pipe(startWith(this.emailFormControl.value)), | CODE |
| CRITICAL | …out/components/session-timeout-input.component.spec.ts | 386 | component.form.controls.custom.controls.hours.setValue(null); | CODE |
| CRITICAL | …out/components/session-timeout-input.component.spec.ts | 502 | component.form.controls.custom.controls.hours.setValue(0); | CODE |
| CRITICAL | …out/components/session-timeout-input.component.spec.ts | 511 | component.form.controls.custom.controls.hours.setValue(hours); | CODE |
| CRITICAL⚡ | …out/components/session-timeout-input.component.spec.ts | 734 | component.form.controls.custom.controls.hours.setValue(null); | CODE |
| CRITICAL⚡ | …out/components/session-timeout-input.component.spec.ts | 735 | component.form.controls.custom.controls.minutes.setValue(30); | CODE |
| CRITICAL⚡ | …out/components/session-timeout-input.component.spec.ts | 745 | component.form.controls.custom.controls.hours.setValue(1); | CODE |
| CRITICAL⚡ | …out/components/session-timeout-input.component.spec.ts | 746 | component.form.controls.custom.controls.minutes.setValue(null); | CODE |
| CRITICAL⚡ | …out/components/session-timeout-input.component.spec.ts | 756 | component.form.controls.custom.controls.hours.setValue(null); | CODE |
| CRITICAL⚡ | …out/components/session-timeout-input.component.spec.ts | 757 | component.form.controls.custom.controls.minutes.setValue(null); | CODE |
| CRITICAL⚡ | libs/components/src/select/select.component.spec.ts | 108 | fixture.componentInstance.form.controls.fruits.disable(); | CODE |
| CRITICAL⚡ | libs/components/src/select/select.component.spec.ts | 117 | fixture.componentInstance.form.controls.fruits.disable(); | CODE |
| CRITICAL⚡ | libs/components/src/select/select.component.spec.ts | 120 | fixture.componentInstance.form.controls.fruits.enable(); | CODE |
| CRITICAL | …s/vault/src/components/assign-collections.component.ts | 393 | this.formGroup.controls.collections.value.map((i) => i.id as CollectionId), | CODE |
| CRITICAL | …s/vault/src/components/assign-collections.component.ts | 659 | this.formGroup.controls.collections.value.map((i) => i.id as CollectionId), | CODE |
| CRITICAL | …s/vault/src/components/assign-collections.component.ts | 666 | this.formGroup.controls.collections.value.find( | CODE |
| CRITICAL | …nents/collection-dialog/collection-dialog.component.ts | 139 | this.formGroup.controls.externalId.valueChanges.pipe(map((value) => value || undefined)), | CODE |
| CRITICAL | …nents/collection-dialog/collection-dialog.component.ts | 159 | private readonly selectedOrgId$ = this.formGroup.controls.selectedOrg.valueChanges.pipe( | CODE |
| CRITICAL | …nents/collection-dialog/collection-dialog.component.ts | 299 | protected readonly buttonDisplayName$ = this.formGroup.controls.selectedOrg.statusChanges.pipe( | CODE |
| CRITICAL | …s/manage/group-add-edit/group-edit-dialog.component.ts | 136 | this.groupForm.controls.externalId.valueChanges.pipe(map((value) => value || undefined)), | CODE |
| CRITICAL | …ponents/invite-members-dialog/by-link-tab.component.ts | 142 | this.form.controls.domains.valueChanges.pipe( | CODE |
| CRITICAL | …nts/edit-member-dialog/edit-member-dialog.component.ts | 225 | this.formGroup.controls.externalId.valueChanges.pipe(map((v) => v || undefined)), | CODE |
| CRITICAL | …nts/edit-member-dialog/edit-member-dialog.component.ts | 230 | this.formGroup.controls.ssoExternalId.valueChanges.pipe(map((v) => v || undefined)), | CODE |
| CRITICAL | …izations/restart-subscription-dialog.component.spec.ts | 330 | dialog.formGroup.controls.billingAddress.controls.postalCode.setValue(postalCode); | CODE |
| CRITICAL | …g/payment/components/enter-payment-method.component.ts | 284 | this.group().controls.billingAddress.controls.country.valueChanges.pipe( | CODE |
| CRITICAL | …/payment/components/enter-billing-address.component.ts | 206 | this.supportsTaxId$ = this.group.controls.country.valueChanges.pipe( | CODE |
| CRITICAL⚡ | …trial-payment-dialog/trial-payment-dialog.component.ts | 186 | this.formGroup.controls.billingAddress.controls.country.valueChanges.pipe( | CODE |
| CRITICAL⚡ | …trial-payment-dialog/trial-payment-dialog.component.ts | 189 | this.formGroup.controls.billingAddress.controls.postalCode.valueChanges.pipe( | CODE |
| CRITICAL⚡ | …trial-payment-dialog/trial-payment-dialog.component.ts | 192 | this.formGroup.controls.billingAddress.controls.taxId.valueChanges.pipe( | CODE |
| CRITICAL | …ion/trial-billing-step/trial-billing-step.component.ts | 89 | protected readonly cadenceSelected$ = this.formGroup.controls.cadence.valueChanges.pipe( | CODE |
| CRITICAL | …ion/trial-billing-step/trial-billing-step.component.ts | 100 | this.formGroup.controls.billingAddress.valueChanges.pipe( | CODE |
| CRITICAL | …ion/trial-billing-step/trial-billing-step.component.ts | 145 | const billingAddressChanged$ = this.formGroup.controls.billingAddress.valueChanges.pipe( | CODE |
| CRITICAL | …l/upgrade/upgrade-payment/upgrade-payment.component.ts | 186 | this.formGroup.controls.billingAddress.valueChanges.pipe( | CODE |
| CRITICAL | …l/upgrade/upgrade-payment/upgrade-payment.component.ts | 304 | this.formGroup.controls.paymentForm.valueChanges.pipe( | CODE |
| CRITICAL | …grade-payment/premium-org-upgrade-payment.component.ts | 174 | this.formGroup.controls.billingAddress.valueChanges.pipe( | CODE |
| CRITICAL | apps/desktop/src/main/messaging.main.ts | 93 | this.main.windowMain.win.webContents.send("messagingService", { | CODE |
| CRITICAL | apps/desktop/src/main/messaging.main.ts | 140 | this.main.windowMain.win.webContents.send("messagingService", { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …/dirt/reports/risk-insights/models/api-models.types.ts | 59 | export function isSaveRiskInsightsReportResponse(obj: any): obj is SaveRiskInsightsReportResponse { | CODE |
| LOW | …src/dirt/reports/risk-insights/testing/test-helpers.ts | 276 | export function createRiskInsightsSummary( | CODE |
| LOW | …src/dirt/reports/risk-insights/testing/test-helpers.ts | 320 | export function createAccessReportMetrics( | CODE |
| LOW | …ights/helpers/type-guards/risk-insights-type-guards.ts | 162 | export function validateApplicationHealthReportDetailArray( | CODE |
| LOW | …ights/helpers/type-guards/risk-insights-type-guards.ts | 196 | export function validateOrganizationReportSummary( | CODE |
| LOW | …ights/helpers/type-guards/risk-insights-type-guards.ts | 277 | export function validateAccessReportSummaryView(data: unknown): AccessReportSummaryView { | CODE |
| LOW | …ights/helpers/type-guards/risk-insights-type-guards.ts | 290 | export function validateOrganizationReportApplicationArray( | CODE |
| LOW | …ights/helpers/type-guards/risk-insights-type-guards.ts | 349 | export function validateAccessReportSettingsDataArray( | CODE |
| LOW | …ights/helpers/type-guards/risk-insights-type-guards.ts | 385 | export function validateAccessReportPayload(data: unknown): ValidationResult<AccessReportPayload> { | CODE |
| LOW | …risk-insights/helpers/type-guards/basic-type-guards.ts | 41 | export function isBoundedPositiveNumberOrUndefined( | CODE |
| LOW | …risk-insights/helpers/type-guards/basic-type-guards.ts | 55 | export function isBoundedStringOrUndefined(value: unknown): value is BoundedStringOrUndefined { | CODE |
| LOW | …r/shared/access-policies/access-policy.service.spec.ts | 234 | function createUserAccessPolicyView(isWrite: boolean, currentUser: boolean): UserAccessPolicyView { | CODE |
| LOW | …r/shared/access-policies/access-policy.service.spec.ts | 245 | function createGroupAccessPolicyView( | CODE |
| LOW | …r/shared/access-policies/access-policy.service.spec.ts | 259 | function createServiceAccountAccessPolicyView(isWrite: boolean): ServiceAccountAccessPolicyView { | CODE |
| LOW | …r/shared/access-policies/access-policy.service.spec.ts | 269 | function createGrantedProjectPolicyPermissionDetailsView( | CODE |
| LOW | …r/shared/access-policies/access-policy.service.spec.ts | 285 | function toPeopleAccessPoliciesRequest( | CODE |
| LOW | …r/shared/access-policies/access-policy.service.spec.ts | 302 | function toServiceAccountGrantedPoliciesRequest( | CODE |
| LOW | …r/shared/access-policies/access-policy.service.spec.ts | 314 | function toProjectServiceAccountsAccessPoliciesRequest( | CODE |
| LOW | …r/shared/access-policies/access-policy.service.spec.ts | 328 | function toProjectPeopleAccessPoliciesResponseRaw(view: ProjectPeopleAccessPoliciesView) { | CODE |
| LOW | …r/shared/access-policies/access-policy.service.spec.ts | 347 | function toServiceAccountPeopleAccessPoliciesResponseRaw( | CODE |
| LOW | …r/shared/access-policies/access-policy.service.spec.ts | 368 | function toServiceAccountGrantedPoliciesResponseRaw(view: ServiceAccountGrantedPoliciesView) { | CODE |
| LOW | …r/shared/access-policies/access-policy.service.spec.ts | 382 | function toProjectServiceAccountsAccessPoliciesResponseRaw( | CODE |
| LOW | …es/access-policy-selector/models/ap-item-value.spec.ts | 179 | function createServiceAccountApItems(): ApItemValueType[] { | CODE |
| LOW | …es/access-policy-selector/models/ap-item-value.type.ts | 25 | export function convertToPeopleAccessPoliciesView(selectedPolicyValues: ApItemValueType[]) { | CODE |
| LOW | …es/access-policy-selector/models/ap-item-value.type.ts | 32 | export function convertToServiceAccountGrantedPoliciesView( | CODE |
| LOW⚡ | …es/access-policy-selector/models/ap-item-value.type.ts | 53 | export function convertToProjectServiceAccountsAccessPoliciesView( | CODE |
| LOW⚡ | …es/access-policy-selector/models/ap-item-value.type.ts | 61 | export function convertToSecretAccessPoliciesView( | CODE |
| LOW⚡ | …es/access-policy-selector/models/ap-item-value.type.ts | 71 | function convertToUserAccessPolicyViews(apItemValues: ApItemValueType[]): UserAccessPolicyView[] { | CODE |
| LOW | …es/access-policy-selector/models/ap-item-value.type.ts | 83 | function convertToGroupAccessPolicyViews(apItemValues: ApItemValueType[]): GroupAccessPolicyView[] { | CODE |
| LOW | …es/access-policy-selector/models/ap-item-value.type.ts | 95 | function convertToServiceAccountAccessPolicyViews( | CODE |
| LOW | …ies/access-policy-selector/models/ap-item-view.spec.ts | 123 | function createUserAccessPolicyViews(): UserAccessPolicyView[] { | CODE |
| LOW | …ies/access-policy-selector/models/ap-item-view.spec.ts | 165 | function createGroupAccessPolicyViews(): GroupAccessPolicyView[] { | CODE |
| LOW | …ies/access-policy-selector/models/ap-item-view.spec.ts | 207 | function createServiceAccountAccessPolicyViews(): ServiceAccountAccessPolicyView[] { | CODE |
| LOW | …ies/access-policy-selector/models/ap-item-view.spec.ts | 245 | function createGrantedPoliciesView() { | CODE |
| LOW⚡ | …ies/access-policy-selector/models/ap-item-view.spec.ts | 291 | function createPeopleAccessPoliciesView() { | CODE |
| LOW⚡ | …ies/access-policy-selector/models/ap-item-view.spec.ts | 298 | function createProjectServiceAccountsAccessPoliciesView(): ProjectServiceAccountsAccessPoliciesView { | CODE |
| LOW⚡ | …ies/access-policy-selector/models/ap-item-view.spec.ts | 304 | function createSecretAccessPoliciesView(): SecretAccessPoliciesView { | CODE |
| LOW | …ies/access-policy-selector/models/ap-item-view.type.ts | 46 | export function convertToAccessPolicyItemViews( | CODE |
| LOW | …ies/access-policy-selector/models/ap-item-view.type.ts | 55 | export function convertGrantedPoliciesToAccessPolicyItemViews( | CODE |
| LOW⚡ | …ies/access-policy-selector/models/ap-item-view.type.ts | 77 | export function convertProjectServiceAccountsViewToApItemViews( | CODE |
| LOW⚡ | …ies/access-policy-selector/models/ap-item-view.type.ts | 83 | export function convertSecretAccessPoliciesToApItemViews( | CODE |
| LOW⚡ | …ies/access-policy-selector/models/ap-item-view.type.ts | 93 | export function convertPotentialGranteesToApItemViewType( | CODE |
| LOW | …ies/access-policy-selector/models/ap-item-view.type.ts | 170 | function toServiceAccountsApItemViews( | CODE |
| LOW | …-rules/access-rule-edit/ip-allowlist/cidr.validator.ts | 43 | export function noDuplicateCidrsValidator(): ValidatorFn { | CODE |
| LOW | …-rules/access-rule-edit/ip-allowlist/cidr.validator.ts | 53 | export function atLeastOneNonEmptyCidrValidator(): ValidatorFn { | CODE |
| LOW | …cipher-view-banner/request-access-window.validators.ts | 21 | export function requestWindowEndValidator( | CODE |
| LOW | …_license/bit-web/src/app/pam/testing/story-fixtures.ts | 160 | export function provideStoryProductSwitcher() { | CODE |
| LOW | …_license/bit-web/src/app/pam/testing/story-fixtures.ts | 185 | export function provideStoryChangeDetection() { | CODE |
| LOW⚡ | …license/bit-web/src/app/pam/rotation/rotation-error.ts | 30 | function isTargetSystemCreateError(e: unknown): e is TargetSystemCreateError { | CODE |
| LOW⚡ | …license/bit-web/src/app/pam/rotation/rotation-error.ts | 40 | export function targetSystemCreatePendingId(e: unknown): TargetSystemId | undefined { | CODE |
| LOW⚡ | …license/bit-web/src/app/pam/rotation/rotation-error.ts | 45 | export function targetSystemCreateErrorMessage(e: unknown): string | undefined { | CODE |
| LOW | …naged-credentials/managed-credentials-tab.component.ts | 415 | function toManagedCredentialFilter(values: ManagedCredentialFilterValues): ManagedCredentialFilter { | CODE |
| LOW | …-credentials/managed-credentials-tab.component.spec.ts | 60 | function makeTargetSystemsServiceStub(systems: unknown[] = [{ id: "ts-1" }]) { | CODE |
| LOW | …-credentials/managed-credentials-tab.component.spec.ts | 96 | function makeCipherCollectionProviders( | CODE |
| LOW | …ess-connectors/access-connectors-tab.component.spec.ts | 418 | function accessConnectorWithAssignments(...ids: TargetSystemId[]): AccessConnectorRow { | CODE |
| LOW | …m/rotation/access-connectors/access-connector-label.ts | 4 | export function accessConnectorStatusLabelKey( | CODE |
| LOW | …m/rotation/access-connectors/access-connector-label.ts | 10 | export function accessConnectorConnectionLabelKey( | CODE |
| LOW | …-web/src/app/pam/rotation/testing/rotation-builders.ts | 131 | export function rotationConfigSealedFields( | CODE |
| LOW | …-web/src/app/pam/rotation/testing/rotation-builders.ts | 165 | export function unverifiableRotationConfig( | CODE |
| LOW | …-web/src/app/pam/rotation/testing/rotation-builders.ts | 224 | export function rotationConfigDescription( | CODE |
| 302 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ss-intelligence/models/view/application-health.view.ts | 181 | // [TODO] SDK Mapping | COMMENT |
| LOW | …src/dirt/reports/risk-insights/models/report-models.ts | 141 | } | COMMENT |
| LOW | …risk-insights/models/view/risk-insights-report.view.ts | 61 | // [TODO] SDK Mapping | COMMENT |
| LOW | …/reports/risk-insights/models/api/risk-insights.api.ts | 41 | // Use when individual values are encrypted | COMMENT |
| LOW | …eports/risk-insights/models/data/risk-insights.data.ts | 41 | // this.summary = new RiskInsightsSummaryData(response.summaryData); | COMMENT |
| LOW | …t/reports/risk-insights/models/domain/risk-insights.ts | 41 | COMMENT | |
| LOW | …s/risk-insights/models/domain/risk-insights-summary.ts | 41 | COMMENT | |
| LOW | …risk-insights/helpers/type-guards/basic-type-guards.ts | 241 | COMMENT | |
| LOW | …pp/dirt/access-intelligence/risk-insights.component.ts | 341 | // - After Complete step is shown, emit null to hide loading | COMMENT |
| LOW | …elligence/shared/app-table-row-scrollable.component.ts | 41 | // FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals | COMMENT |
| LOW | libs/importer/src/importers/myki-csv-importer.ts | 101 | cipher.type = CipherType.Identity; | COMMENT |
| LOW | …rter/src/importers/keeper/keeper-json-importer.spec.ts | 61 | // | COMMENT |
| LOW | …n/registration-finish/registration-finish.component.ts | 121 | // Sealed open-org-invite blob carried on the verification-email URL when the registrant | COMMENT |
| LOW | …src/angular/input-password/input-password.component.ts | 141 | // eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref | COMMENT |
| LOW | …src/angular/input-password/input-password.component.ts | 341 | COMMENT | |
| LOW | …th/src/angular/input-password/password-input-result.ts | 21 | // code in SetInitialPasswordComponent that sets them. Delete the matching | COMMENT |
| LOW | …ommon/login-strategies/password-login.strategy.spec.ts | 581 | describe("processForceSetPasswordReason", () => { | COMMENT |
| LOW | …ommon/login-strategies/password-login.strategy.spec.ts | 661 | // New device verification is a two-request flow: | COMMENT |
| LOW | …default-set-initial-password.service.implementation.ts | 161 | COMMENT | |
| LOW | …default-set-initial-password.service.implementation.ts | 421 | // The method newConstructor() converts that data into the old request shape. | COMMENT |
| LOW | …l-password/set-initial-password.service.abstraction.ts | 41 | _SetInitialPasswordUserType[keyof _SetInitialPasswordUserType]; | COMMENT |
| LOW | …set-initial-password/set-initial-password.component.ts | 121 | const accountEncryptionV2 = await this.configService.getFeatureFlag( | COMMENT |
| LOW | …ls/get-device-last-activity-date-i18n-key.func.spec.ts | 121 | // Now : May 29 1 AM local → May 29 UTC | COMMENT |
| LOW | …implementations/default-organization-invite.service.ts | 181 | COMMENT | |
| LOW | …common/src/auth/models/request/set-password.request.ts | 1 | // This import has been flagged as unallowed for this class. It may be involved in a circular dependency loop. | COMMENT |
| LOW | libs/common/src/platform/misc/utils.spec.ts | 441 | COMMENT | |
| LOW | libs/common/src/platform/spec/mock-deep.ts | 1 | // This is a modification of the code found in https://github.com/marchaos/jest-mock-extended | COMMENT |
| LOW | …orm/services/fido2/fido2-authenticator.service.spec.ts | 761 | // TODO: Cannot verify signature because it has been converted into DER format | COMMENT |
| LOW | libs/common/src/models/view/view.ts | 1 | // See https://contributing.bitwarden.com/architecture/clients/data-model/#view for proper use. | COMMENT |
| LOW | libs/common/src/vault/icon/build-cipher-icon.spec.ts | 41 | }); | COMMENT |
| LOW | libs/common/src/vault/services/search.service.ts | 101 | const basicResults = this.searchCiphersBasic(ciphers, query); | COMMENT |
| LOW | libs/eslint/empty.ts | 1 | // This file is used to avoid TS errors. This package only uses `tsconfig.json` for dynamically generated test files but | COMMENT |
| LOW | …s/registration/web-registration-finish.service.spec.ts | 81 | // `EnableAccountEncryptionV2UserPasswordRegistration` feature flag: | COMMENT |
| LOW | …anization-invite/accept-org-direct-invite.component.ts | 81 | COMMENT | |
| LOW | …y-management/key-rotation/user-key-rotation.service.ts | 361 | // not signed, manual trust prompts are required, to verify that the server | COMMENT |
| LOW | …/web/src/app/dirt/event-logs/services/event.service.ts | 1821 | hideSendId = false; | COMMENT |
| LOW | …billing/organizations/adjust-subscription.component.ts | 21 | // FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush | COMMENT |
| LOW | …/vault/components/vault-items/vault-items.component.ts | 61 | @Input() showOwner: boolean; | COMMENT |
| LOW | …/vault/components/vault-items/vault-items.component.ts | 81 | // FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals | COMMENT |
| LOW | …t/components/vault-items/vault-cipher-row.component.ts | 61 | protected RowHeightClass = RowHeightClass; | COMMENT |
| LOW | …t/components/vault-items/vault-cipher-row.component.ts | 81 | @Input() showGroups: boolean; | COMMENT |
| LOW | …mponents/vault-items/vault-collection-row.component.ts | 61 | // eslint-disable-next-line @angular-eslint/prefer-signals | COMMENT |
| LOW | …mponents/vault-items/vault-collection-row.component.ts | 81 | // FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals | COMMENT |
| LOW | apps/desktop/desktop_native/deny.toml | 41 | # If true, ignores workspace crates that aren't published, or are only | COMMENT |
| LOW | apps/desktop/desktop_native/core/src/lib.rs | 1 | //! Desktop native core functionality for Bitwarden. | COMMENT |
| LOW | …ps/desktop/desktop_native/core/src/powermonitor/mod.rs | 1 | #[allow(clippy::module_inception)] | COMMENT |
| LOW | apps/desktop/desktop_native/core/src/password/mod.rs | 1 | //! Secure password storage and retrieval using platform keychains. | COMMENT |
| LOW | apps/desktop/desktop_native/core/src/autofill/mod.rs | 1 | #[allow(clippy::module_inception)] | COMMENT |
| LOW | …ps/desktop/desktop_native/core/src/ipc/announcement.rs | 1 | //! The first frame `desktop_proxy` sends the desktop app, telling it which client spawned the | COMMENT |
| LOW | …sktop/desktop_native/core/src/process_isolation/mod.rs | 1 | //! This module implements process isolation, which aims to protect | COMMENT |
| LOW | …op/desktop_native/core/src/clipboard/portal_backend.rs | 41 | /// Set the clipboard to `text` via the Clipboard portal over a RemoteDesktop session. | COMMENT |
| LOW | apps/desktop/desktop_native/proxy/src/main.rs | 81 | init_logging(&log_path, LevelFilter::INFO, LevelFilter::INFO); | COMMENT |
| LOW | …ktop/desktop_native/autofill_provider/src/assertion.rs | 21 | /// User verification preference. | COMMENT |
| LOW | …ktop/desktop_native/autofill_provider/src/assertion.rs | 101 | COMMENT | |
| LOW | …ps/desktop/desktop_native/autofill_provider/src/lib.rs | 101 | pub enum ConnectionStatus { | COMMENT |
| LOW | …ps/desktop/desktop_native/autofill_provider/src/lib.rs | 121 | /// the desktop app is running with [`AutofillProviderClient::is_available`], | COMMENT |
| LOW | …ps/desktop/desktop_native/autofill_provider/src/lib.rs | 141 | /// let client = AutofillProviderClient::connect(); | COMMENT |
| LOW | …ps/desktop/desktop_native/autofill_provider/src/lib.rs | 221 | } | COMMENT |
| LOW | …ps/desktop/desktop_native/autofill_provider/src/lib.rs | 241 | #[cfg_attr(feature = "napi", napi(object, namespace = "autofill"))] | COMMENT |
| LOW | …ps/desktop/desktop_native/autofill_provider/src/lib.rs | 601 | let (tx, rx) = mpsc::channel(); | COMMENT |
| 88 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …/src/dirt/organization-integrations/services/README.md | 5 | ## Step 1: Define the Configuration Class | COMMENT |
| LOW | …/src/dirt/organization-integrations/services/README.md | 42 | ## Step 2: Define the Template Class | COMMENT |
| LOW | …/src/dirt/organization-integrations/services/README.md | 78 | ## Step 3: Update OrganizationIntegrationType | COMMENT |
| LOW | …/src/dirt/organization-integrations/services/README.md | 89 | ## Step 4: Extend OrgIntegrationBuilder | COMMENT |
| LOW | …/src/dirt/organization-integrations/services/README.md | 162 | ## Step 5: Add Service Name to OrganizationIntegrationServiceName | COMMENT |
| LOW | …/src/dirt/organization-integrations/services/README.md | 178 | ## Step 6: File Organization | COMMENT |
| LOW | …/src/dirt/organization-integrations/services/README.md | 220 | ## Step 7: Add Tests | COMMENT |
| LOW | .claude/skills/fix-angular-fixmes/SKILL.md | 16 | ## Step 1: Discover all suppressions | COMMENT |
| LOW | .claude/skills/fix-angular-fixmes/SKILL.md | 299 | ## Step 2: Cleanup checklist per fixed instance | COMMENT |
| LOW | .claude/skills/fix-angular-fixmes/SKILL.md | 307 | ## Step 3: Validate | COMMENT |
| LOW | .claude/skills/create-hec-event-integration/SKILL.md | 8 | ## Step 1 - Prompts | COMMENT |
| LOW | …lls/create-hec-event-integration/example/token-auth.md | 7 | ## Step 1 - Prompts | COMMENT |
| LOW | .claude/skills/angular-modernization/SKILL.md | 16 | ### Step 1: Run Angular CLI Migrations | COMMENT |
| LOW | .claude/skills/angular-modernization/SKILL.md | 92 | ### Step 2: Apply Bitwarden Patterns | COMMENT |
| LOW | .claude/skills/angular-modernization/SKILL.md | 104 | ### Step 3: Validate | COMMENT |
| LOW | .claude/skills/cipher-type-planner/SKILL.md | 12 | ### Step 1: Gather Requirements | COMMENT |
| LOW | .claude/skills/cipher-type-planner/SKILL.md | 44 | ### Step 2: Enter Plan Mode | COMMENT |
| LOW | .claude/skills/cipher-type-planner/SKILL.md | 62 | ### Step 3: Build the Plan | COMMENT |
| LOW⚡ | …c/lock/services/default-webauthn-prf-unlock.service.ts | 102 | // Step 1: Decrypt PRF encrypted private key using the PRF key | COMMENT |
| LOW⚡ | …c/lock/services/default-webauthn-prf-unlock.service.ts | 108 | // Step 2: Use private key to decrypt user key | COMMENT |
| LOW | …ar/src/vault/services/custom-nudges-services/README.md | 58 | ### Step 1: Determine if Universal or Client-Specific | COMMENT |
| LOW | …ar/src/vault/services/custom-nudges-services/README.md | 71 | ### Step 2: Create the Service | COMMENT |
| LOW | …ar/src/vault/services/custom-nudges-services/README.md | 152 | ### Step 3: Add NudgeType | COMMENT |
| LOW | …ar/src/vault/services/custom-nudges-services/README.md | 163 | ### Step 4: Register in NudgesService | COMMENT |
| LOW | scripts/material-icons/build-with-bwi-names.ts | 21 | // Step 1: Handle variants (copy files for one-to-many mappings) | COMMENT |
| LOW⚡ | scripts/material-icons/build-with-bwi-names.ts | 37 | // Step 2: Generate icon font directly from Figma-named SVGs | COMMENT |
| LOW⚡ | scripts/material-icons/build-with-bwi-names.ts | 45 | // Step 3: Update SCSS | COMMENT |
| LOW⚡ | scripts/material-icons/build-with-bwi-names.ts | 105 | // Step 4: Compile SCSS to CSS | COMMENT |
| LOW⚡ | scripts/material-icons/build-with-bwi-names.ts | 110 | // Step 5: Update TypeScript icon array | COMMENT |
| LOW | scripts/material-icons/build-with-bwi-names.ts | 141 | // Step 6: Cleanup temporary files | COMMENT |
| LOW | scripts/material-icons/build-with-bwi-names.ts | 155 | // Step 7: Remove variant copies | COMMENT |
| LOW | …src/app/admin-console/organizations/policies/README.md | 15 | ## Step 1: Adding the Enum | COMMENT |
| LOW | …src/app/admin-console/organizations/policies/README.md | 30 | ## Step 2: Creating the Policy Definition and Component | COMMENT |
| LOW | …src/app/admin-console/organizations/policies/README.md | 209 | ## Step 3: Registering the Policy | COMMENT |
| LOW⚡ | …background/permissions-policy/frame-policy-resolver.ts | 64 | // Step 1: The frame's own declared policy must allow the requesting origin. | COMMENT |
| LOW⚡ | …background/permissions-policy/frame-policy-resolver.ts | 71 | // Step 2: Top-level frame — no container, no further inheritance. | COMMENT |
| LOW⚡ | …background/permissions-policy/frame-policy-resolver.ts | 76 | // Step 3: The iframe element's `allow=` attribute (container policy) must | COMMENT |
| LOW⚡ | …background/permissions-policy/frame-policy-resolver.ts | 85 | // Step 4: Recurse to the parent's effective policy — but still evaluating | COMMENT |
| LOW | …/src/autofill/services/targeting-rules-data.service.ts | 249 | // Step 1: Fetch the lightweight manifest to check if the data has changed | COMMENT |
| LOW | …/src/autofill/services/targeting-rules-data.service.ts | 292 | // Step 2: Data has changed (or first fetch); download the map file | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …se/bit-common/src/dirt/docs/documentation-structure.md | 80 | # ============================================================================ | COMMENT |
| MEDIUM | …se/bit-common/src/dirt/docs/documentation-structure.md | 83 | # ============================================================================ | COMMENT |
| MEDIUM | …se/bit-common/src/dirt/docs/documentation-structure.md | 127 | # ============================================================================ | COMMENT |
| MEDIUM | …se/bit-common/src/dirt/docs/documentation-structure.md | 130 | # ============================================================================ | COMMENT |
| MEDIUM | …nents/src/form-control/form-control-group.component.ts | 66 | // ── Template helpers ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …nents/src/form-control/form-control-group.component.ts | 79 | // ── Mode (auto-detected from child types) ───────────────────────────────── | COMMENT |
| MEDIUM⚡ | …nents/src/form-control/form-control-group.component.ts | 89 | // ── Accessor needed by RadioButtonBaseDirective ─────────────────────────── | COMMENT |
| MEDIUM⚡ | …nents/src/form-control/form-control-group.component.ts | 94 | // ── State ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …nents/src/form-control/form-control-group.component.ts | 100 | // ── Computed validation state ───────────────────────────────────────────── | COMMENT |
| MEDIUM | …nents/src/form-control/form-control-group.component.ts | 128 | // ── Child coordination ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …nents/src/form-control/form-control-group.component.ts | 171 | // ── ControlValueAccessor ────────────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …c/lock/services/default-webauthn-prf-unlock.service.ts | 102 | // Step 1: Decrypt PRF encrypted private key using the PRF key | COMMENT |
| LOW⚡ | …c/lock/services/default-webauthn-prf-unlock.service.ts | 108 | // Step 2: Use private key to decrypt user key | COMMENT |
| LOW | scripts/material-icons/build-with-bwi-names.ts | 21 | // Step 1: Handle variants (copy files for one-to-many mappings) | COMMENT |
| LOW⚡ | scripts/material-icons/build-with-bwi-names.ts | 37 | // Step 2: Generate icon font directly from Figma-named SVGs | COMMENT |
| LOW⚡ | scripts/material-icons/build-with-bwi-names.ts | 45 | // Step 3: Update SCSS | COMMENT |
| LOW⚡ | scripts/material-icons/build-with-bwi-names.ts | 105 | // Step 4: Compile SCSS to CSS | COMMENT |
| LOW⚡ | scripts/material-icons/build-with-bwi-names.ts | 110 | // Step 5: Update TypeScript icon array | COMMENT |
| LOW | scripts/material-icons/build-with-bwi-names.ts | 141 | // Step 6: Cleanup temporary files | COMMENT |
| LOW | scripts/material-icons/build-with-bwi-names.ts | 155 | // Step 7: Remove variant copies | COMMENT |
| LOW⚡ | …background/permissions-policy/frame-policy-resolver.ts | 64 | // Step 1: The frame's own declared policy must allow the requesting origin. | COMMENT |
| LOW⚡ | …background/permissions-policy/frame-policy-resolver.ts | 71 | // Step 2: Top-level frame — no container, no further inheritance. | COMMENT |
| LOW⚡ | …background/permissions-policy/frame-policy-resolver.ts | 76 | // Step 3: The iframe element's `allow=` attribute (container policy) must | COMMENT |
| LOW⚡ | …background/permissions-policy/frame-policy-resolver.ts | 85 | // Step 4: Recurse to the parent's effective policy — but still evaluating | COMMENT |
| LOW | …/src/autofill/services/targeting-rules-data.service.ts | 249 | // Step 1: Fetch the lightweight manifest to check if the data has changed | COMMENT |
| LOW | …/src/autofill/services/targeting-rules-data.service.ts | 292 | // Step 2: Data has changed (or first fetch); download the map file | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apps/web/src/locales/sl/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/km/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/nn/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/be/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/mr/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/ky/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/el/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/lb/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/ca/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/te/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/ro/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/en_IN/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/sr_CS/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/en_GB/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/si/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/ml/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/kn/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/bs/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/my/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/ar/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/gl/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/bn/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/ne/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/fil/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/af/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/nb/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/hi/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/ka/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/ko/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/eo/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/id/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/et/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/en/messages.json | 11149 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/or/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/cy/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/eu/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/web/src/locales/th/messages.json | 10983 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | …bitwarden_chromium_import_helper/src/windows/crypto.rs | 259 | // Don't forget to free the provider | COMMENT |
| LOW | …bitwarden_chromium_import_helper/src/windows/crypto.rs | 276 | // Don't forget to free the key | COMMENT |
| LOW | apps/desktop/src/locales/lb/messages.json | 5658 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/desktop/src/locales/en_IN/messages.json | 5658 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/desktop/src/locales/en_GB/messages.json | 5658 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/desktop/src/locales/en/messages.json | 5841 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/browser/src/_locales/lb/messages.json | 3124 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/browser/src/_locales/en_IN/messages.json | 3124 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/browser/src/_locales/en_GB/messages.json | 3124 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| LOW | apps/browser/src/_locales/en/messages.json | 3144 | "message": "Secure password generated! Don't forget to also update your password on the website." | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …ent-ui/src/key-rotation/key-rotation-dialog.service.ts | 31 | * @return True if the key rotation was successful and the dialog should be closed, false if the dialog should remain | COMMENT |
| HIGH | …ent-ui/src/key-rotation/key-rotation-dialog.service.ts | 71 | * @return True if the key rotation was successful and the dialog should be closed, false if the dialog should remain | COMMENT |
| HIGH | …ent-ui/src/key-rotation/key-rotation-dialog.service.ts | 110 | * @return True if the key rotation was successful and the dialog should be closed, false if the dialog should remain | COMMENT |
| HIGH | …h/settings/two-factor/two-factor-recovery.component.ts | 43 | print() { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …e/src/policies/password-generator-options-evaluator.ts | 25 | // This design is not ideal, but it is a step towards a more robust password | COMMENT |
| MEDIUM | …src/policies/passphrase-generator-options-evaluator.ts | 16 | // This design is not ideal, but it is a step towards a more robust passphrase | COMMENT |
| MEDIUM | …op/desktop_native/core/src/clipboard/portal_backend.rs | 5 | //! portal instead. Essentially, Bitwarden starts a RemoteDesktop session and gets | COMMENT |
| MEDIUM | apps/desktop/desktop_native/ssh_agent/src/server/mod.rs | 170 | // within `server` utilize. | COMMENT |
| MEDIUM | apps/desktop/src/app/services/services.module.ts | 533 | provide: Fido2UserInterfaceServiceAbstraction, // We utilize desktop specific methods when wiring OS API's | CODE |
| MEDIUM | …ps/desktop/src/autofill/main/main-ssh-agent.service.ts | 75 | // @pre: The agent must not be running. The caller may utilize `is_running()` and `stop()`. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/workflows/repository-management.yml | 120 | # Check if version is newer. | COMMENT |
| LOW | .github/workflows/repository-management.yml | 206 | # Check if version is newer. | COMMENT |
| LOW | .github/workflows/repository-management.yml | 257 | # Check if version is newer. | COMMENT |
| LOW | .github/workflows/repository-management.yml | 322 | # Check if version is newer. | COMMENT |
| LOW | apps/browser/scripts/compress.sh | 17 | # Check if build directory exists | COMMENT |
| LOW | apps/browser/scripts/update-manifest-dev.sh | 15 | # Check if build directory exists | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …orter/src/importers/lastpass/access/services/client.ts | 409 | // TODO: implement this instead of calling `approveDuo` | COMMENT |
| LOW | …on/src/platform/services/fido2/fido2-autofill-utils.ts | 1 | // TODO: Add tests for this method | COMMENT |