From 8f7b08aa16fc1a00716208485f74edaa2489378b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=9C=A8=20Audrey=20=E2=9C=A8?= Date: Thu, 20 Mar 2025 22:58:23 -0400 Subject: [PATCH] typecheck --- .../achievements/achievement-card.component.ts | 2 ++ .../achievements/achievement-item.component.ts | 2 ++ .../achievement-notifier.service.ts | 2 +- .../achievements/achievements-list.component.ts | 2 +- .../icons/{iconMap.ts => icon-map.ts} | 0 .../validators/attachment-added-validator.ts | 4 ++-- .../config/item-created-count-config.ts | 9 +++++++-- .../config/send-created-count-config.ts | 17 ++++++++++------- .../item-collection-move-validator.ts | 4 ++-- .../validators/item-folder-added-validator.ts | 4 ++-- .../validators/item-removed-validator.ts | 10 ++++++---- .../validators/item-uri-added-validator.ts | 4 ++-- .../send-item-created-count-validator.ts | 1 - .../vault-item-created-count-validator.ts | 3 +-- libs/common/src/tools/providers.ts | 4 ++-- 15 files changed, 40 insertions(+), 28 deletions(-) rename libs/angular/src/tools/achievements/icons/{iconMap.ts => icon-map.ts} (100%) diff --git a/libs/angular/src/tools/achievements/achievement-card.component.ts b/libs/angular/src/tools/achievements/achievement-card.component.ts index 3b0254e98c0..21427223f13 100644 --- a/libs/angular/src/tools/achievements/achievement-card.component.ts +++ b/libs/angular/src/tools/achievements/achievement-card.component.ts @@ -29,6 +29,8 @@ export class AchievementCard { protected cardClass: string; constructor() { + this.cardClass = ""; + effect(() => { const earned = this.earned(); const progress = this.progress(); diff --git a/libs/angular/src/tools/achievements/achievement-item.component.ts b/libs/angular/src/tools/achievements/achievement-item.component.ts index daaad9492fb..16dcc3072a0 100644 --- a/libs/angular/src/tools/achievements/achievement-item.component.ts +++ b/libs/angular/src/tools/achievements/achievement-item.component.ts @@ -30,6 +30,8 @@ export class AchievementItem { protected cardClass: string; constructor() { + this.cardClass = ""; + effect(() => { const earned = this.earned(); const progress = this.progress(); diff --git a/libs/angular/src/tools/achievements/achievement-notifier.service.ts b/libs/angular/src/tools/achievements/achievement-notifier.service.ts index 65485e8b540..0e466f66ff5 100644 --- a/libs/angular/src/tools/achievements/achievement-notifier.service.ts +++ b/libs/angular/src/tools/achievements/achievement-notifier.service.ts @@ -10,7 +10,7 @@ import { Icon, ToastService } from "@bitwarden/components"; import { AchievementNotifierService as AchievementNotifierServiceAbstraction } from "./achievement-notifier.abstraction"; import { AchievementIcon } from "./icons/achievement.icon"; -import { iconMap } from "./icons/iconMap"; +import { iconMap } from "./icons/icon-map"; export class AchievementNotifierService implements AchievementNotifierServiceAbstraction { constructor( diff --git a/libs/angular/src/tools/achievements/achievements-list.component.ts b/libs/angular/src/tools/achievements/achievements-list.component.ts index 2c213b6b2ca..0bec15b2ad3 100644 --- a/libs/angular/src/tools/achievements/achievements-list.component.ts +++ b/libs/angular/src/tools/achievements/achievements-list.component.ts @@ -25,7 +25,7 @@ import { import { AchievementItem } from "./achievement-item.component"; import { AchievementIcon } from "./icons/achievement.icon"; -import { iconMap } from "./icons/iconMap"; +import { iconMap } from "./icons/icon-map"; @Component({ selector: "achievements-list", diff --git a/libs/angular/src/tools/achievements/icons/iconMap.ts b/libs/angular/src/tools/achievements/icons/icon-map.ts similarity index 100% rename from libs/angular/src/tools/achievements/icons/iconMap.ts rename to libs/angular/src/tools/achievements/icons/icon-map.ts diff --git a/libs/common/src/tools/achievements/validators/attachment-added-validator.ts b/libs/common/src/tools/achievements/validators/attachment-added-validator.ts index ee9797a2202..2b9ae314bd7 100644 --- a/libs/common/src/tools/achievements/validators/attachment-added-validator.ts +++ b/libs/common/src/tools/achievements/validators/attachment-added-validator.ts @@ -9,7 +9,7 @@ import { } from "../types"; export class AttachmentAddedValidator implements AchievementValidator { - base: AchievementValidator; + base: Pick; get achievement() { return "item-attached" as AchievementId; } @@ -31,7 +31,7 @@ export class AttachmentAddedValidator implements AchievementValidator { } constructor() { - this.base.active = "until-earned"; + this.base = { active: "until-earned" }; } trigger(item: UserActionEvent) { diff --git a/libs/common/src/tools/achievements/validators/config/item-created-count-config.ts b/libs/common/src/tools/achievements/validators/config/item-created-count-config.ts index 2ee67371e04..39951036ded 100644 --- a/libs/common/src/tools/achievements/validators/config/item-created-count-config.ts +++ b/libs/common/src/tools/achievements/validators/config/item-created-count-config.ts @@ -92,9 +92,14 @@ export class ItemCreatedCountConfig implements Achievement { get hidden() { return this.base.hidden; } - cipherType: CipherType = null; + cipherType: CipherType | null = null; threshold: number; - private constructor(key: string, name: string, threshold: number, cipherType: CipherType = null) { + private constructor( + key: string, + name: string, + threshold: number, + cipherType: CipherType | null = null, + ) { this.cipherType = cipherType; this.threshold = threshold; this.base = { diff --git a/libs/common/src/tools/achievements/validators/config/send-created-count-config.ts b/libs/common/src/tools/achievements/validators/config/send-created-count-config.ts index 6df5f9329f5..63d22dafe24 100644 --- a/libs/common/src/tools/achievements/validators/config/send-created-count-config.ts +++ b/libs/common/src/tools/achievements/validators/config/send-created-count-config.ts @@ -16,7 +16,8 @@ export class SendItemCreatedCountConfig implements Achievement { new SendItemCreatedCountConfig("send-item-created-100", "100 send items created", 100), ]; - base: Achievement; + base: Omit; + get achievement() { return this.base.achievement; } @@ -39,12 +40,14 @@ export class SendItemCreatedCountConfig implements Achievement { threshold: number; private constructor(key: string, name: string, threshold: number) { this.threshold = threshold; - this.base.achievement = key as AchievementId; - this.base.name = name; - this.base.active = { - metric: "send-item-quantity" as MetricId, - low: threshold - 1, - high: threshold, + this.base = { + achievement: key as AchievementId, + name: name, + active: { + metric: "send-item-quantity" as MetricId, + low: threshold - 1, + high: threshold, + }, }; } } diff --git a/libs/common/src/tools/achievements/validators/item-collection-move-validator.ts b/libs/common/src/tools/achievements/validators/item-collection-move-validator.ts index 0011651cfdb..e833f4cb038 100644 --- a/libs/common/src/tools/achievements/validators/item-collection-move-validator.ts +++ b/libs/common/src/tools/achievements/validators/item-collection-move-validator.ts @@ -8,7 +8,7 @@ import { } from "../types"; export class ItemCollectionMoveValidator implements AchievementValidator { - base: AchievementValidator; + base: Pick; get achievement() { return "item-collection-move" as AchievementId; } @@ -26,7 +26,7 @@ export class ItemCollectionMoveValidator implements AchievementValidator { } constructor() { - this.base.active = "until-earned"; + this.base = { active: "until-earned" }; } trigger(item: UserActionEvent) { diff --git a/libs/common/src/tools/achievements/validators/item-folder-added-validator.ts b/libs/common/src/tools/achievements/validators/item-folder-added-validator.ts index 3ab9b654e0c..13dbcfe577d 100644 --- a/libs/common/src/tools/achievements/validators/item-folder-added-validator.ts +++ b/libs/common/src/tools/achievements/validators/item-folder-added-validator.ts @@ -8,7 +8,7 @@ import { } from "../types"; export class ItemFolderAddedValidator implements AchievementValidator { - base: AchievementValidator; + base: Pick; get achievement() { return "item-folder-added" as AchievementId; } @@ -26,7 +26,7 @@ export class ItemFolderAddedValidator implements AchievementValidator { } constructor() { - this.base.active = "until-earned"; + this.base = { active: "until-earned" }; } trigger(item: UserActionEvent) { diff --git a/libs/common/src/tools/achievements/validators/item-removed-validator.ts b/libs/common/src/tools/achievements/validators/item-removed-validator.ts index 933ef409054..41737e7a24c 100644 --- a/libs/common/src/tools/achievements/validators/item-removed-validator.ts +++ b/libs/common/src/tools/achievements/validators/item-removed-validator.ts @@ -9,7 +9,7 @@ import { } from "../types"; export class ItemRemovedValidator implements AchievementValidator { - base: AchievementValidator; + base: Pick; get achievement() { return "item-removed" as AchievementId; } @@ -29,9 +29,11 @@ export class ItemRemovedValidator implements AchievementValidator { } private metric = "item-removed-quantity" as MetricId; constructor() { - this.base.active = { - metric: this.metric, - high: 1, + this.base = { + active: { + metric: this.metric, + high: 1, + }, }; } diff --git a/libs/common/src/tools/achievements/validators/item-uri-added-validator.ts b/libs/common/src/tools/achievements/validators/item-uri-added-validator.ts index 23c6bcb68db..d85aed466a8 100644 --- a/libs/common/src/tools/achievements/validators/item-uri-added-validator.ts +++ b/libs/common/src/tools/achievements/validators/item-uri-added-validator.ts @@ -8,7 +8,7 @@ import { } from "../types"; export class ItemUriAddedValidator implements AchievementValidator { - base: AchievementValidator; + base: Pick; get achievement() { return "item-uri-added" as AchievementId; } @@ -27,7 +27,7 @@ export class ItemUriAddedValidator implements AchievementValidator { constructor() { // If edit and the uri count is present the achievement is rewarded - this.base.active = "until-earned"; + this.base = { active: "until-earned" }; } trigger(item: UserActionEvent) { diff --git a/libs/common/src/tools/achievements/validators/send-item-created-count-validator.ts b/libs/common/src/tools/achievements/validators/send-item-created-count-validator.ts index c10091fce0d..c04ad2872de 100644 --- a/libs/common/src/tools/achievements/validators/send-item-created-count-validator.ts +++ b/libs/common/src/tools/achievements/validators/send-item-created-count-validator.ts @@ -26,7 +26,6 @@ export class SendItemCreatedCountValidator implements AchievementValidator { return configs.map((config) => new SendItemCreatedCountValidator(config)); } - base: AchievementValidator; get achievement() { return this.config.achievement; } diff --git a/libs/common/src/tools/achievements/validators/vault-item-created-count-validator.ts b/libs/common/src/tools/achievements/validators/vault-item-created-count-validator.ts index 15feea65de9..4a33bb1fa5f 100644 --- a/libs/common/src/tools/achievements/validators/vault-item-created-count-validator.ts +++ b/libs/common/src/tools/achievements/validators/vault-item-created-count-validator.ts @@ -34,7 +34,6 @@ export class VaultItemCreatedCountValidator implements AchievementValidator { return configs.map((config) => new VaultItemCreatedCountValidator(config)); } - base: AchievementValidator; get achievement() { return this.config.achievement; } @@ -81,7 +80,7 @@ export class VaultItemCreatedCountValidator implements AchievementValidator { } const lowerConfigType = CipherType[this.config.cipherType].toLowerCase(); - const lowerItemType = item.labels?.["vault-item-type"].toString().toLowerCase(); + const lowerItemType = item.labels?.["vault-item-type"]?.toString()?.toLowerCase(); return lowerItemType === lowerConfigType; } } diff --git a/libs/common/src/tools/providers.ts b/libs/common/src/tools/providers.ts index 1ffc2ffb123..4afeed0d932 100644 --- a/libs/common/src/tools/providers.ts +++ b/libs/common/src/tools/providers.ts @@ -2,7 +2,7 @@ import { PolicyService } from "../admin-console/abstractions/policy/policy.servi import { ExtensionService } from "./extension/extension.service"; import { LogProvider } from "./log"; -import { UserEventCollector } from "./log/user-event-monitor"; +import { UserEventMonitor } from "./log/user-event-monitor"; /** Provides access to commonly-used cross-cutting services. */ export type SystemServiceProvider = { @@ -15,5 +15,5 @@ export type SystemServiceProvider = { /** Event monitoring and diagnostic interfaces */ readonly log: LogProvider; - readonly event: UserEventCollector; + readonly event: UserEventMonitor; };