@speckle/shared
Version:
Shared code between various Speckle JS packages
116 lines • 4.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isWorkspacePlanStatusReadOnly = exports.WorkspacePlanStatuses = exports.PaidWorkspacePlanStatuses = exports.UnpaidWorkspacePlanStatuses = exports.WorkspacePlanBillingIntervals = exports.isPaidPlan = exports.isSelfServeAvailablePlan = exports.doesPlanIncludeUnlimitedProjectsAddon = exports.WorkspacePlans = exports.UnpaidWorkspacePlans = exports.PaidWorkspacePlans = void 0;
const error_js_1 = require("../../core/helpers/error.js");
exports.PaidWorkspacePlans = {
Team: 'team', // actually 'Starter'
TeamUnlimited: 'teamUnlimited',
Pro: 'pro', // actually 'Business'
ProUnlimited: 'proUnlimited'
};
exports.UnpaidWorkspacePlans = {
TeamUnlimitedInvoiced: 'teamUnlimitedInvoiced',
ProUnlimitedInvoiced: 'proUnlimitedInvoiced',
Enterprise: 'enterprise',
Unlimited: 'unlimited',
Academia: 'academia',
Free: 'free'
};
exports.WorkspacePlans = {
...exports.PaidWorkspacePlans,
...exports.UnpaidWorkspacePlans
};
const doesPlanIncludeUnlimitedProjectsAddon = (plan) => {
switch (plan) {
case exports.WorkspacePlans.TeamUnlimited:
case exports.WorkspacePlans.ProUnlimited:
return true;
case exports.WorkspacePlans.Free:
case exports.WorkspacePlans.Team:
case exports.WorkspacePlans.Pro:
case exports.WorkspacePlans.TeamUnlimitedInvoiced:
case exports.WorkspacePlans.ProUnlimitedInvoiced:
case exports.WorkspacePlans.Unlimited:
case exports.WorkspacePlans.Academia:
case exports.WorkspacePlans.Enterprise:
return false;
default:
(0, error_js_1.throwUncoveredError)(plan);
}
};
exports.doesPlanIncludeUnlimitedProjectsAddon = doesPlanIncludeUnlimitedProjectsAddon;
const isSelfServeAvailablePlan = (plan) => {
switch (plan) {
case exports.WorkspacePlans.Free:
case exports.WorkspacePlans.Team:
case exports.WorkspacePlans.TeamUnlimited:
case exports.WorkspacePlans.Pro:
case exports.WorkspacePlans.ProUnlimited:
return true;
case exports.WorkspacePlans.TeamUnlimitedInvoiced:
case exports.WorkspacePlans.ProUnlimitedInvoiced:
case exports.WorkspacePlans.Unlimited:
case exports.WorkspacePlans.Academia:
case exports.WorkspacePlans.Enterprise:
return false;
default:
(0, error_js_1.throwUncoveredError)(plan);
}
};
exports.isSelfServeAvailablePlan = isSelfServeAvailablePlan;
const isPaidPlan = (plan) => {
switch (plan) {
case exports.WorkspacePlans.Team:
case exports.WorkspacePlans.TeamUnlimited:
case exports.WorkspacePlans.Pro:
case exports.WorkspacePlans.ProUnlimited:
return true;
case exports.WorkspacePlans.Free:
case exports.WorkspacePlans.TeamUnlimitedInvoiced:
case exports.WorkspacePlans.ProUnlimitedInvoiced:
case exports.WorkspacePlans.Unlimited:
case exports.WorkspacePlans.Academia:
case exports.WorkspacePlans.Enterprise:
return false;
default:
(0, error_js_1.throwUncoveredError)(plan);
}
};
exports.isPaidPlan = isPaidPlan;
/**
* BILLING INTERVALS
*/
exports.WorkspacePlanBillingIntervals = {
Monthly: 'monthly',
Yearly: 'yearly'
};
/**
* PLAN STATUSES
*/
exports.UnpaidWorkspacePlanStatuses = {
Valid: 'valid'
};
exports.PaidWorkspacePlanStatuses = {
...exports.UnpaidWorkspacePlanStatuses,
PaymentFailed: 'paymentFailed',
CancelationScheduled: 'cancelationScheduled',
Canceled: 'canceled'
};
exports.WorkspacePlanStatuses = {
...exports.PaidWorkspacePlanStatuses,
...exports.UnpaidWorkspacePlanStatuses
};
const isWorkspacePlanStatusReadOnly = (status) => {
switch (status) {
case 'cancelationScheduled':
case 'valid':
case 'paymentFailed':
return false;
case 'canceled':
return true;
default:
(0, error_js_1.throwUncoveredError)(status);
}
};
exports.isWorkspacePlanStatusReadOnly = isWorkspacePlanStatusReadOnly;
//# sourceMappingURL=plans.js.map