import type { RepositoryVisibility } from './git/gitProvider';
|
|
import type { RequiredSubscriptionPlans, Subscription } from './subscription';
|
|
|
|
export const enum Features {
|
|
Stashes = 'stashes',
|
|
Timeline = 'timeline',
|
|
Worktrees = 'worktrees',
|
|
StashOnlyStaged = 'stashOnlyStaged',
|
|
}
|
|
|
|
export type FeatureAccess =
|
|
| {
|
|
allowed: true;
|
|
subscription: { current: Subscription; required?: undefined };
|
|
visibility?: RepositoryVisibility;
|
|
}
|
|
| {
|
|
allowed: false | 'mixed';
|
|
subscription: { current: Subscription; required?: RequiredSubscriptionPlans };
|
|
visibility?: RepositoryVisibility;
|
|
};
|
|
|
|
export type RepoFeatureAccess =
|
|
| {
|
|
allowed: true;
|
|
subscription: { current: Subscription; required?: undefined };
|
|
visibility?: RepositoryVisibility;
|
|
}
|
|
| {
|
|
allowed: false;
|
|
subscription: { current: Subscription; required?: RequiredSubscriptionPlans };
|
|
visibility?: RepositoryVisibility;
|
|
};
|
|
|
|
export const enum PlusFeatures {
|
|
Timeline = 'timeline',
|
|
Worktrees = 'worktrees',
|
|
Graph = 'graph',
|
|
Focus = 'focus',
|
|
}
|