From bdf0b20f7ec607d52555861d6991b9dd82c1782b Mon Sep 17 00:00:00 2001 From: Daniel James Smith Date: Wed, 19 Mar 2025 16:54:53 +0100 Subject: [PATCH] Example configurations for Achievements and Metric --- .../examples/achievements/index.ts | 2 + .../examples/achievements/login-item-added.ts | 45 +++++++++++++++++++ .../examples/achievements/vault-item-added.ts | 45 +++++++++++++++++++ .../achievements/examples/metrics/metrics.ts | 5 +++ 4 files changed, 97 insertions(+) create mode 100644 libs/common/src/tools/achievements/examples/achievements/index.ts create mode 100644 libs/common/src/tools/achievements/examples/achievements/login-item-added.ts create mode 100644 libs/common/src/tools/achievements/examples/achievements/vault-item-added.ts create mode 100644 libs/common/src/tools/achievements/examples/metrics/metrics.ts diff --git a/libs/common/src/tools/achievements/examples/achievements/index.ts b/libs/common/src/tools/achievements/examples/achievements/index.ts new file mode 100644 index 00000000000..bd37842fc0c --- /dev/null +++ b/libs/common/src/tools/achievements/examples/achievements/index.ts @@ -0,0 +1,2 @@ +export * from "./vault-item-added"; +export * from "./login-item-added"; diff --git a/libs/common/src/tools/achievements/examples/achievements/login-item-added.ts b/libs/common/src/tools/achievements/examples/achievements/login-item-added.ts new file mode 100644 index 00000000000..8c63af8a890 --- /dev/null +++ b/libs/common/src/tools/achievements/examples/achievements/login-item-added.ts @@ -0,0 +1,45 @@ +import { Achievement, AchievementId } from "../../types"; +import { VaultItemCreatedProgress } from "../metrics/metrics"; + +const LoginItems_1_Added_Achievement: Achievement = { + achievement: "login-item-added" as AchievementId, + name: "Access granted", + description: "Saved your first login item with Bitwarden", + validator: "Threshold", + active: { metric: VaultItemCreatedProgress, high: 1 }, + hidden: false, +}; + +const LoginItems_10_Added_Achievement: Achievement = { + achievement: "10-login-items-added" as AchievementId, + name: "10 Login Items Added", + description: "Add 10 item of type login to your vault", + validator: "Threshold", + active: { metric: VaultItemCreatedProgress, high: 10 }, + hidden: false, +}; + +const LoginItems_50_Added_Achievement: Achievement = { + achievement: "50-login-items-added" as AchievementId, + name: "50 Login Items Added", + description: "Add 50 item of type login to your vault", + validator: "Threshold", + active: { metric: VaultItemCreatedProgress, high: 50 }, + hidden: false, +}; + +const LoginItems_100_Added_Achievement: Achievement = { + achievement: "100-login-items-added" as AchievementId, + name: "100 Login Items Added", + description: "Add 100 item of type login to your vault", + validator: "Threshold", + active: { metric: VaultItemCreatedProgress, high: 100 }, + hidden: false, +}; + +export { + LoginItems_1_Added_Achievement, + LoginItems_10_Added_Achievement, + LoginItems_50_Added_Achievement, + LoginItems_100_Added_Achievement, +}; diff --git a/libs/common/src/tools/achievements/examples/achievements/vault-item-added.ts b/libs/common/src/tools/achievements/examples/achievements/vault-item-added.ts new file mode 100644 index 00000000000..ff806ec7b91 --- /dev/null +++ b/libs/common/src/tools/achievements/examples/achievements/vault-item-added.ts @@ -0,0 +1,45 @@ +import { Achievement, AchievementId } from "../../types"; +import { VaultItemCreatedProgress } from "../metrics/metrics"; + +const VaultItems_1_Added_Achievement: Achievement = { + achievement: "vault-item-added" as AchievementId, + name: "The chosen one", + description: "Saved your fist item to Bitwarden", + validator: "Threshold", + active: { metric: VaultItemCreatedProgress, high: 1 }, + hidden: false, +}; + +const VaultItems_10_Added_Achievement: Achievement = { + achievement: "10-vault-items-added" as AchievementId, + name: "A decade of security", + description: "Saved your 10th item to Bitwarden", + validator: "Threshold", + active: { metric: VaultItemCreatedProgress, high: 10 }, + hidden: false, +}; + +const VaultItems_50_Added_Achievement: Achievement = { + achievement: "50-vault-items-added" as AchievementId, + name: "It's 50/50 Vault Items Added", + description: "Saved your 50th item to Bitwarden", + validator: "Threshold", + active: { metric: VaultItemCreatedProgress, high: 50 }, + hidden: false, +}; + +const VaultItems_100_Added_Achievement: Achievement = { + achievement: "100-vault-items-added" as AchievementId, + name: "Century mark, Now you are thinking with ciphers", + description: "Saved your 100th item to Bitwarden", + validator: "Threshold", + active: { metric: VaultItemCreatedProgress, high: 100 }, + hidden: false, +}; + +export { + VaultItems_1_Added_Achievement, + VaultItems_10_Added_Achievement, + VaultItems_50_Added_Achievement, + VaultItems_100_Added_Achievement, +}; diff --git a/libs/common/src/tools/achievements/examples/metrics/metrics.ts b/libs/common/src/tools/achievements/examples/metrics/metrics.ts new file mode 100644 index 00000000000..8805cbf30b6 --- /dev/null +++ b/libs/common/src/tools/achievements/examples/metrics/metrics.ts @@ -0,0 +1,5 @@ +import { MetricId } from "../../types"; + +const VaultItemCreatedProgress = "vault-item-quantity" as MetricId; + +export { VaultItemCreatedProgress };