From 5b48ca51a293db225f44f11765a815cd8037e140 Mon Sep 17 00:00:00 2001 From: Francesca Guiducci Date: Fri, 7 Nov 2025 12:28:08 +0100 Subject: [PATCH 1/4] chore: Expose premiumStatus user field --- src/todoist-api.user.test.ts | 1 + src/types/entities.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/src/todoist-api.user.test.ts b/src/todoist-api.user.test.ts index 02d15a6..1beba34 100644 --- a/src/todoist-api.user.test.ts +++ b/src/todoist-api.user.test.ts @@ -17,6 +17,7 @@ const DEFAULT_CURRENT_USER_RESPONSE: CurrentUser = { avatarSmall: 'https://example.com/avatars/test_user_small.jpg', businessAccountId: null, isPremium: true, + premiumStatus: 'current_personal_plan', dateFormat: 0, timeFormat: 0, weeklyGoal: 100, diff --git a/src/types/entities.ts b/src/types/entities.ts index cff54b4..e63b4e3 100644 --- a/src/types/entities.ts +++ b/src/types/entities.ts @@ -285,6 +285,7 @@ export const CurrentUserSchema = z.object({ avatarSmall: z.string().nullish(), businessAccountId: z.string().nullable(), isPremium: z.boolean(), + premiumStatus: z.string(), dateFormat: z.number().int(), timeFormat: z.number().int(), weeklyGoal: z.number().int(), From 26d6459c9ea46c338b52acf85881a0e33599e1ba Mon Sep 17 00:00:00 2001 From: Scott Lovegrove Date: Sat, 8 Nov 2025 14:35:43 +0000 Subject: [PATCH 2/4] chore: Update the mock user entities --- src/custom-fetch-simple.test.ts | 1 + src/obsidian-custom-fetch.test.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/src/custom-fetch-simple.test.ts b/src/custom-fetch-simple.test.ts index 698b421..48882bd 100644 --- a/src/custom-fetch-simple.test.ts +++ b/src/custom-fetch-simple.test.ts @@ -15,6 +15,7 @@ const MOCK_CURRENT_USER: CurrentUser = { avatarSmall: 'https://example.com/avatars/test_user_small.jpg', businessAccountId: null, isPremium: true, + premiumStatus: 'current_personal_plan', dateFormat: 0, timeFormat: 0, weeklyGoal: 100, diff --git a/src/obsidian-custom-fetch.test.ts b/src/obsidian-custom-fetch.test.ts index f204fe4..18e6a60 100644 --- a/src/obsidian-custom-fetch.test.ts +++ b/src/obsidian-custom-fetch.test.ts @@ -77,6 +77,7 @@ describe('Obsidian Custom Fetch Integration', () => { avatarSmall: null, businessAccountId: null, isPremium: true, + premiumStatus: 'current_personal_plan', dateFormat: 0, timeFormat: 0, weeklyGoal: 100, From 86b2386a3b37c0baa4d957f006a7f3a5e0bedb2b Mon Sep 17 00:00:00 2001 From: Francesca Guiducci Date: Mon, 10 Nov 2025 09:01:07 +0100 Subject: [PATCH 3/4] chore: premiumStatus as enum with four possible values --- src/types/entities.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/types/entities.ts b/src/types/entities.ts index e63b4e3..fc043dc 100644 --- a/src/types/entities.ts +++ b/src/types/entities.ts @@ -285,7 +285,7 @@ export const CurrentUserSchema = z.object({ avatarSmall: z.string().nullish(), businessAccountId: z.string().nullable(), isPremium: z.boolean(), - premiumStatus: z.string(), + premiumStatus: z.enum(['not_premium', 'current_personal_plan', 'legacy_personal_plan', 'teams_business_member']), dateFormat: z.number().int(), timeFormat: z.number().int(), weeklyGoal: z.number().int(), From fc36f5dbb6ca8913b8e68879f4bfddc0040ab658 Mon Sep 17 00:00:00 2001 From: Francesca Guiducci Date: Mon, 10 Nov 2025 09:03:53 +0100 Subject: [PATCH 4/4] chore: format-fix --- src/types/entities.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/types/entities.ts b/src/types/entities.ts index fc043dc..91a1197 100644 --- a/src/types/entities.ts +++ b/src/types/entities.ts @@ -285,7 +285,12 @@ export const CurrentUserSchema = z.object({ avatarSmall: z.string().nullish(), businessAccountId: z.string().nullable(), isPremium: z.boolean(), - premiumStatus: z.enum(['not_premium', 'current_personal_plan', 'legacy_personal_plan', 'teams_business_member']), + premiumStatus: z.enum([ + 'not_premium', + 'current_personal_plan', + 'legacy_personal_plan', + 'teams_business_member', + ]), dateFormat: z.number().int(), timeFormat: z.number().int(), weeklyGoal: z.number().int(),