Skip to content

Commit 519a85b

Browse files
committed
Renames subscription states & utils for clarity
1 parent ffb1089 commit 519a85b

21 files changed

+190
-200
lines changed

docs/telemetry-events.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@
7171
'global.subscription.promo.code': string,
7272
// Promo key (identifier) associated with the upgrade
7373
'global.subscription.promo.key': string,
74-
'global.subscription.state': -1 | 0 | 3 | 4 | 5 | 6,
74+
'global.subscription.state': -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6,
7575
'global.subscription.stateString': 'verification' | 'free' | 'trial' | 'trial-expired' | 'trial-reactivation-eligible' | 'paid' | 'unknown',
7676
'global.upgrade': boolean,
7777
'global.upgradedFrom': string,
@@ -1920,7 +1920,7 @@ void
19201920
'subscription.promo.code': string,
19211921
// Promo key (identifier) associated with the upgrade
19221922
'subscription.promo.key': string,
1923-
'subscription.state': -1 | 0 | 3 | 4 | 5 | 6,
1923+
'subscription.state': -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6,
19241924
'subscription.stateString': 'verification' | 'free' | 'trial' | 'trial-expired' | 'trial-reactivation-eligible' | 'paid' | 'unknown'
19251925
}
19261926
```
@@ -2023,7 +2023,7 @@ or
20232023
'subscription.promo.code': string,
20242024
// Promo key (identifier) associated with the upgrade
20252025
'subscription.promo.key': string,
2026-
'subscription.state': -1 | 0 | 3 | 4 | 5 | 6,
2026+
'subscription.state': -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6,
20272027
'subscription.stateString': 'verification' | 'free' | 'trial' | 'trial-expired' | 'trial-reactivation-eligible' | 'paid' | 'unknown'
20282028
}
20292029
```

src/commands/git/merge.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import type { GitReference } from '../../git/models/reference';
66
import type { Repository } from '../../git/models/repository';
77
import { getReferenceLabel, isRevisionReference } from '../../git/utils/reference.utils';
88
import { createRevisionRange } from '../../git/utils/revision.utils';
9-
import { isSubscriptionStatePaidOrTrial } from '../../plus/gk/utils/subscription.utils';
9+
import { isSubscriptionTrialOrPaidFromState } from '../../plus/gk/utils/subscription.utils';
1010
import { createQuickPickSeparator } from '../../quickpicks/items/common';
1111
import type { DirectiveQuickPickItem } from '../../quickpicks/items/directive';
1212
import { createDirectiveQuickPickItem, Directive } from '../../quickpicks/items/directive';
@@ -288,7 +288,7 @@ export class MergeGitCommand extends QuickCommand<State> {
288288

289289
let potentialConflict;
290290
const subscription = await this.container.subscription.getSubscription();
291-
if (isSubscriptionStatePaidOrTrial(subscription?.state)) {
291+
if (isSubscriptionTrialOrPaidFromState(subscription?.state)) {
292292
potentialConflict = state.repo.git.branches.getPotentialMergeOrRebaseConflict?.(
293293
context.destination.name,
294294
state.reference.ref,

src/commands/git/rebase.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import type { GitReference } from '../../git/models/reference';
66
import type { Repository } from '../../git/models/repository';
77
import { getReferenceLabel, isRevisionReference } from '../../git/utils/reference.utils';
88
import { createRevisionRange } from '../../git/utils/revision.utils';
9-
import { isSubscriptionStatePaidOrTrial } from '../../plus/gk/utils/subscription.utils';
9+
import { isSubscriptionTrialOrPaidFromState } from '../../plus/gk/utils/subscription.utils';
1010
import { createQuickPickSeparator } from '../../quickpicks/items/common';
1111
import type { DirectiveQuickPickItem } from '../../quickpicks/items/directive';
1212
import { createDirectiveQuickPickItem, Directive } from '../../quickpicks/items/directive';
@@ -282,7 +282,7 @@ export class RebaseGitCommand extends QuickCommand<State> {
282282

283283
let potentialConflict;
284284
const subscription = await this.container.subscription.getSubscription();
285-
if (isSubscriptionStatePaidOrTrial(subscription?.state)) {
285+
if (isSubscriptionTrialOrPaidFromState(subscription?.state)) {
286286
potentialConflict = state.repo.git.branches.getPotentialMergeOrRebaseConflict?.(
287287
context.branch.name,
288288
state.destination.ref,

src/constants.subscription.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,16 @@ export const enum SubscriptionState {
1919
/** Indicates an account-less Community (free) user */
2020
Community = 0,
2121
/** @deprecated DO NOT USE */
22-
ProPreview = 1,
22+
DeprecatedPreview = 1,
2323
/** @deprecated DO NOT USE */
24-
ProPreviewExpired = 2,
25-
/** Indicates a Pro user who is in a Pro trial */
26-
ProTrial = 3,
27-
/** Indicates a Pro user who's Pro trial has expired, has an account, and is not yet eligible for reactivation */
28-
ProTrialExpired = 4,
29-
/** Indicated a Pro user who's Pro trial has expired, has an account, and is eligible for reactivation */
30-
ProTrialReactivationEligible = 5,
31-
/** Indicates a Pro/Teams/Enterprise paid user */
24+
DeprecatedPreviewExpired = 2,
25+
/** Indicates a user who is in a trial */
26+
Trial = 3,
27+
/** Indicates a user who's trial has expired, has an account, and is not yet eligible for reactivation */
28+
TrialExpired = 4,
29+
/** Indicated a user who's trial has expired, has an account, and is eligible for reactivation */
30+
TrialReactivationEligible = 5,
31+
/** Indicates a paid user */
3232
Paid = 6,
3333
}
3434

src/plus/ai/aiProviderService.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ import { getSettledValue, getSettledValues } from '../../system/promise';
4949
import { PromiseCache } from '../../system/promiseCache';
5050
import type { ServerConnection } from '../gk/serverConnection';
5151
import { ensureFeatureAccess } from '../gk/utils/-webview/acount.utils';
52-
import { compareSubscriptionPlans, getSubscriptionPlanTier, isSubscriptionPaid } from '../gk/utils/subscription.utils';
52+
import { compareSubscriptionPlans, getSubscriptionPlanName, isSubscriptionPaid } from '../gk/utils/subscription.utils';
5353
import type {
5454
AIActionType,
5555
AIModel,
@@ -994,7 +994,7 @@ export class AIProviderService implements Disposable {
994994
? SubscriptionPlanId.Business
995995
: SubscriptionPlanId.Advanced;
996996

997-
const upgrade = { title: `Upgrade to ${getSubscriptionPlanTier(plan)}` };
997+
const upgrade = { title: `Upgrade to ${getSubscriptionPlanName(plan)}` };
998998
const result = await window.showErrorMessage(
999999
"This AI feature isn't included in your current plan. Please upgrade and try again.",
10001000
upgrade,

src/plus/gk/__debug__accountDebug.ts

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,14 @@ type SimulateQuickPickItem = QuickPickItemOfT<
4545
featurePreviews?: SimulatedFeaturePreviews;
4646
}
4747
| {
48-
state: Exclude<SubscriptionState, SubscriptionState.ProTrial | SubscriptionState.Paid>;
48+
state: Exclude<SubscriptionState, SubscriptionState.Trial | SubscriptionState.Paid>;
4949
reactivatedTrial?: never;
5050
expiredPaid?: never;
5151
planId?: never;
5252
featurePreviews?: never;
5353
}
5454
| {
55-
state: SubscriptionState.ProTrial;
55+
state: SubscriptionState.Trial;
5656
reactivatedTrial?: boolean;
5757
expiredPaid?: never;
5858
planId?: SubscriptionPlanId.Advanced;
@@ -141,29 +141,29 @@ class AccountDebug {
141141
label: 'Pro Trial',
142142
description: 'Pro trial (pro plan), account',
143143
iconPath: new ThemeIcon('blank'),
144-
item: { state: SubscriptionState.ProTrial },
144+
item: { state: SubscriptionState.Trial },
145145
},
146146
{
147147
label: 'Pro Trial (Reactivated)',
148148
description: 'Pro trial (pro plan), account',
149149
iconPath: new ThemeIcon('blank'),
150150
item: {
151-
state: SubscriptionState.ProTrial,
151+
state: SubscriptionState.Trial,
152152
reactivatedTrial: true,
153153
},
154154
},
155155
{
156156
label: 'Pro Trial (Advanced)',
157157
description: 'Pro trial (advanced plan), account',
158158
iconPath: new ThemeIcon('blank'),
159-
item: { state: SubscriptionState.ProTrial, planId: SubscriptionPlanId.Advanced },
159+
item: { state: SubscriptionState.Trial, planId: SubscriptionPlanId.Advanced },
160160
},
161161
{
162162
label: 'Pro Trial (Advanced, Reactivated)',
163163
description: 'Pro trial (advanced plan), account',
164164
iconPath: new ThemeIcon('blank'),
165165
item: {
166-
state: SubscriptionState.ProTrial,
166+
state: SubscriptionState.Trial,
167167
planId: SubscriptionPlanId.Advanced,
168168
reactivatedTrial: true,
169169
},
@@ -172,13 +172,13 @@ class AccountDebug {
172172
label: 'Pro Trial (Expired)',
173173
description: 'Community, account',
174174
iconPath: new ThemeIcon('blank'),
175-
item: { state: SubscriptionState.ProTrialExpired },
175+
item: { state: SubscriptionState.TrialExpired },
176176
},
177177
{
178178
label: 'Pro Trial (Reactivation Eligible)',
179179
description: 'Community, account',
180180
iconPath: new ThemeIcon('blank'),
181-
item: { state: SubscriptionState.ProTrialReactivationEligible },
181+
item: { state: SubscriptionState.TrialReactivationEligible },
182182
},
183183
createQuickPickSeparator('Paid'),
184184
{
@@ -450,20 +450,20 @@ function getSimulatedCheckInResponse(
450450
: {};
451451
let trialLicenseStatus: 'active-new' | 'active-reactivated' | 'expired' | 'expired-reactivatable' = 'active-new';
452452
switch (targetSubscriptionState) {
453-
case SubscriptionState.ProTrialExpired:
453+
case SubscriptionState.TrialExpired:
454454
trialLicenseStatus = 'expired';
455455
break;
456-
case SubscriptionState.ProTrialReactivationEligible:
456+
case SubscriptionState.TrialReactivationEligible:
457457
trialLicenseStatus = 'expired-reactivatable';
458458
break;
459-
case SubscriptionState.ProTrial:
459+
case SubscriptionState.Trial:
460460
trialLicenseStatus = options?.trial?.reactivatedTrial ? 'active-reactivated' : 'active-new';
461461
break;
462462
}
463463
const trialLicenseData =
464-
targetSubscriptionState === SubscriptionState.ProTrial ||
465-
targetSubscriptionState === SubscriptionState.ProTrialExpired ||
466-
targetSubscriptionState === SubscriptionState.ProTrialReactivationEligible
464+
targetSubscriptionState === SubscriptionState.Trial ||
465+
targetSubscriptionState === SubscriptionState.TrialExpired ||
466+
targetSubscriptionState === SubscriptionState.TrialReactivationEligible
467467
? getSimulatedTrialLicenseResponse(
468468
options?.organizationId,
469469
targetSubscriptionType,
@@ -478,7 +478,7 @@ function getSimulatedCheckInResponse(
478478
effectiveLicenses: trialLicenseData,
479479
},
480480
nextOptInDate:
481-
targetSubscriptionState === SubscriptionState.ProTrialReactivationEligible
481+
targetSubscriptionState === SubscriptionState.TrialReactivationEligible
482482
? tenSecondsAgo.toISOString()
483483
: undefined,
484484
};

src/plus/gk/productConfigProvider.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,9 @@ export class ProductConfigProvider {
8989
key: 'pro50',
9090
states: [
9191
SubscriptionState.Community,
92-
SubscriptionState.ProTrial,
93-
SubscriptionState.ProTrialExpired,
94-
SubscriptionState.ProTrialReactivationEligible,
92+
SubscriptionState.Trial,
93+
SubscriptionState.TrialExpired,
94+
SubscriptionState.TrialReactivationEligible,
9595
],
9696
locations: ['home', 'account', 'badge', 'gate'],
9797
content: {
@@ -136,12 +136,12 @@ function createConfigValidator(): Validator<ConfigJson> {
136136
SubscriptionState.VerificationRequired,
137137
SubscriptionState.Community,
138138
// eslint-disable-next-line @typescript-eslint/no-deprecated -- allow deprecated states since we will just ignore them
139-
SubscriptionState.ProPreview,
139+
SubscriptionState.DeprecatedPreview,
140140
// eslint-disable-next-line @typescript-eslint/no-deprecated -- allow deprecated states since we will just ignore them
141-
SubscriptionState.ProPreviewExpired,
142-
SubscriptionState.ProTrial,
143-
SubscriptionState.ProTrialExpired,
144-
SubscriptionState.ProTrialReactivationEligible,
141+
SubscriptionState.DeprecatedPreviewExpired,
142+
SubscriptionState.Trial,
143+
SubscriptionState.TrialExpired,
144+
SubscriptionState.TrialReactivationEligible,
145145
SubscriptionState.Paid,
146146
);
147147

src/plus/gk/subscriptionService.ts

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,8 @@ import {
7979
computeSubscriptionState,
8080
getCommunitySubscription,
8181
getSubscriptionPlan,
82-
getSubscriptionPlanName,
83-
getSubscriptionPlanTierType,
82+
getSubscriptionPlanType,
83+
getSubscriptionProductPlanName,
8484
getSubscriptionStateString,
8585
getSubscriptionTimeRemaining,
8686
isSubscriptionExpired,
@@ -438,14 +438,14 @@ export class SubscriptionService implements Disposable {
438438
source: source,
439439
});
440440
break;
441-
case SubscriptionState.ProTrial:
441+
case SubscriptionState.Trial:
442442
void executeCommand<OpenWalkthroughCommandArgs>('gitlens.openWalkthrough', {
443443
step: 'welcome-in-trial',
444444
source: source,
445445
});
446446
break;
447-
case SubscriptionState.ProTrialReactivationEligible:
448-
case SubscriptionState.ProTrialExpired:
447+
case SubscriptionState.TrialReactivationEligible:
448+
case SubscriptionState.TrialExpired:
449449
void executeCommand<OpenWalkthroughCommandArgs>('gitlens.openWalkthrough', {
450450
step: 'welcome-in-trial-expired',
451451
source: source,
@@ -872,7 +872,7 @@ export class SubscriptionService implements Disposable {
872872
const query = new URLSearchParams();
873873
query.set('source', 'gitlens');
874874
query.set('product', 'gitlens');
875-
query.set('planType', getSubscriptionPlanTierType(plan));
875+
query.set('planType', getSubscriptionPlanType(plan));
876876

877877
if (promo?.code != null) {
878878
query.set('promoCode', promo.code);
@@ -1403,12 +1403,11 @@ export class SubscriptionService implements Disposable {
14031403

14041404
if (subscription != null) {
14051405
// Migrate the plan names to the latest names
1406-
(subscription.plan.actual as Mutable<Subscription['plan']['actual']>).name = getSubscriptionPlanName(
1406+
(subscription.plan.actual as Mutable<Subscription['plan']['actual']>).name = getSubscriptionProductPlanName(
14071407
subscription.plan.actual.id,
14081408
);
1409-
(subscription.plan.effective as Mutable<Subscription['plan']['effective']>).name = getSubscriptionPlanName(
1410-
subscription.plan.effective.id,
1411-
);
1409+
(subscription.plan.effective as Mutable<Subscription['plan']['effective']>).name =
1410+
getSubscriptionProductPlanName(subscription.plan.effective.id);
14121411
}
14131412

14141413
return subscription;
@@ -1502,7 +1501,7 @@ export class SubscriptionService implements Disposable {
15021501
}
15031502

15041503
const trial = isSubscriptionTrial(this._subscription);
1505-
const trialEligible = this._subscription.state === SubscriptionState.ProTrialReactivationEligible;
1504+
const trialEligible = this._subscription.state === SubscriptionState.TrialReactivationEligible;
15061505

15071506
if (!(trial || trialEligible) && account?.verified !== false) {
15081507
this._statusBarSubscription?.dispose();

src/plus/gk/utils/checkin.utils.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { SubscriptionPlanId } from '../../../constants.subscription';
22
import type { GKCheckInResponse, GKLicense, GKLicenseType } from '../models/checkin';
33
import type { Organization } from '../models/organization';
44
import type { Subscription } from '../models/subscription';
5-
import { compareSubscriptionPlans, getSubscriptionPlan, getSubscriptionPlanPriority } from './subscription.utils';
5+
import { compareSubscriptionPlans, getSubscriptionPlan, getSubscriptionPlanOrder } from './subscription.utils';
66

77
export function getSubscriptionFromCheckIn(
88
data: GKCheckInResponse,
@@ -25,19 +25,17 @@ export function getSubscriptionFromCheckIn(
2525
if (paidLicenses.length > 1) {
2626
paidLicenses.sort(
2727
(a, b) =>
28-
getSubscriptionPlanPriority(convertLicenseTypeToPlanId(b[0])) +
28+
getSubscriptionPlanOrder(convertLicenseTypeToPlanId(b[0])) +
2929
licenseStatusPriority(b[1].latestStatus) -
30-
(getSubscriptionPlanPriority(convertLicenseTypeToPlanId(a[0])) +
31-
licenseStatusPriority(a[1].latestStatus)),
30+
(getSubscriptionPlanOrder(convertLicenseTypeToPlanId(a[0])) + licenseStatusPriority(a[1].latestStatus)),
3231
);
3332
}
3433
if (effectiveLicenses.length > 1) {
3534
effectiveLicenses.sort(
3635
(a, b) =>
37-
getSubscriptionPlanPriority(convertLicenseTypeToPlanId(b[0])) +
36+
getSubscriptionPlanOrder(convertLicenseTypeToPlanId(b[0])) +
3837
licenseStatusPriority(b[1].latestStatus) -
39-
(getSubscriptionPlanPriority(convertLicenseTypeToPlanId(a[0])) +
40-
licenseStatusPriority(a[1].latestStatus)),
38+
(getSubscriptionPlanOrder(convertLicenseTypeToPlanId(a[0])) + licenseStatusPriority(a[1].latestStatus)),
4139
);
4240
}
4341

0 commit comments

Comments
 (0)