UNPKG

@speckle/shared

Version:

Shared code between various Speckle JS packages

109 lines 3.23 kB
import { throwUncoveredError } from '../../core/helpers/error.js'; export const PaidWorkspacePlans = { Team: 'team', // actually 'Starter' TeamUnlimited: 'teamUnlimited', Pro: 'pro', // actually 'Business' ProUnlimited: 'proUnlimited' }; export const UnpaidWorkspacePlans = { TeamUnlimitedInvoiced: 'teamUnlimitedInvoiced', ProUnlimitedInvoiced: 'proUnlimitedInvoiced', Enterprise: 'enterprise', Unlimited: 'unlimited', Academia: 'academia', Free: 'free' }; export const WorkspacePlans = { ...PaidWorkspacePlans, ...UnpaidWorkspacePlans }; export const doesPlanIncludeUnlimitedProjectsAddon = (plan) => { switch (plan) { case WorkspacePlans.TeamUnlimited: case WorkspacePlans.ProUnlimited: return true; case WorkspacePlans.Free: case WorkspacePlans.Team: case WorkspacePlans.Pro: case WorkspacePlans.TeamUnlimitedInvoiced: case WorkspacePlans.ProUnlimitedInvoiced: case WorkspacePlans.Unlimited: case WorkspacePlans.Academia: case WorkspacePlans.Enterprise: return false; default: throwUncoveredError(plan); } }; export const isSelfServeAvailablePlan = (plan) => { switch (plan) { case WorkspacePlans.Free: case WorkspacePlans.Team: case WorkspacePlans.TeamUnlimited: case WorkspacePlans.Pro: case WorkspacePlans.ProUnlimited: return true; case WorkspacePlans.TeamUnlimitedInvoiced: case WorkspacePlans.ProUnlimitedInvoiced: case WorkspacePlans.Unlimited: case WorkspacePlans.Academia: case WorkspacePlans.Enterprise: return false; default: throwUncoveredError(plan); } }; export const isPaidPlan = (plan) => { switch (plan) { case WorkspacePlans.Team: case WorkspacePlans.TeamUnlimited: case WorkspacePlans.Pro: case WorkspacePlans.ProUnlimited: return true; case WorkspacePlans.Free: case WorkspacePlans.TeamUnlimitedInvoiced: case WorkspacePlans.ProUnlimitedInvoiced: case WorkspacePlans.Unlimited: case WorkspacePlans.Academia: case WorkspacePlans.Enterprise: return false; default: throwUncoveredError(plan); } }; /** * BILLING INTERVALS */ export const WorkspacePlanBillingIntervals = { Monthly: 'monthly', Yearly: 'yearly' }; /** * PLAN STATUSES */ export const UnpaidWorkspacePlanStatuses = { Valid: 'valid' }; export const PaidWorkspacePlanStatuses = { ...UnpaidWorkspacePlanStatuses, PaymentFailed: 'paymentFailed', CancelationScheduled: 'cancelationScheduled', Canceled: 'canceled' }; export const WorkspacePlanStatuses = { ...PaidWorkspacePlanStatuses, ...UnpaidWorkspacePlanStatuses }; export const isWorkspacePlanStatusReadOnly = (status) => { switch (status) { case 'cancelationScheduled': case 'valid': case 'paymentFailed': return false; case 'canceled': return true; default: throwUncoveredError(status); } }; //# sourceMappingURL=plans.js.map