ec06f13aa6
* Update pro version to 2.4.44-alpha.9 (#10231) Co-authored-by: Budibase Staging Release Bot <> * Track installation and unique tenant id on licence activate (#10146) * changes and exports * removing the extend * Lint + tidy * Update account.ts --------- Co-authored-by: Rory Powell <rory.codes@gmail.com> Co-authored-by: mike12345567 <me@michaeldrury.co.uk> * Type updates for loading new plans (#10245) * Add new quota for max users on free plan * Split available vs purchased plan & price type definitions. Update usages of available prices and plans * Type fixes * Add types for minimums * New `PlanModel` type for `PER_USER` and `DAY_PASS` (#10247) * Add new quota for max users on free plan * Split available vs purchased plan & price type definitions. Update usages of available prices and plans * Type fixes * Add types for minimums * New `PlanModel` type for `PER_USER` and `DAY_PASS` * Add loadEnvFiles to lerna config for run command to prevent local test failures * Fix types in license test structure * Add quotas integration to user create / delete + migration (#10250) * Add new quota for max users on free plan * Split available vs purchased plan & price type definitions. Update usages of available prices and plans * Type fixes * Add types for minimums * New `PlanModel` type for `PER_USER` and `DAY_PASS` * Add loadEnvFiles to lerna config for run command to prevent local test failures * Fix types in license test structure * Add quotas integration to user create / delete * Always sync user count from view total_rows value for accuracy * Add migration to sync users * Add syncUsers.spec.ts * Lint * Types and structures for user subscription quantity sync (#10280) * Add new quota for max users on free plan * Split available vs purchased plan & price type definitions. Update usages of available prices and plans * Type fixes * Add types for minimums * New `PlanModel` type for `PER_USER` and `DAY_PASS` * Add loadEnvFiles to lerna config for run command to prevent local test failures * Fix types in license test structure * Add quotas integration to user create / delete * Always sync user count from view total_rows value for accuracy * Add migration to sync users * Add syncUsers.spec.ts * Prevent old installs from activating, track install info via get license request instead of on activation. * Add usesInvoicing to PurchasedPlan * Add min/max users to PurchasedPlan * Additional test structures for generating a license, remove maxUsers from PurchasedPlan - this is already present in the license quotas * Stripe integration for monthly prorations on annual plans * Integrate annual prorations with test clocks * Updated types, test utils and date processing for licensing (#10346) * Add new quota for max users on free plan * Split available vs purchased plan & price type definitions. Update usages of available prices and plans * Type fixes * Add types for minimums * New `PlanModel` type for `PER_USER` and `DAY_PASS` * Add loadEnvFiles to lerna config for run command to prevent local test failures * Fix types in license test structure * Add quotas integration to user create / delete * Always sync user count from view total_rows value for accuracy * Add migration to sync users * Add syncUsers.spec.ts * Prevent old installs from activating, track install info via get license request instead of on activation. * Add usesInvoicing to PurchasedPlan * Add min/max users to PurchasedPlan * Additional test structures for generating a license, remove maxUsers from PurchasedPlan - this is already present in the license quotas * Stripe integration for monthly prorations on annual plans * Integrate annual prorations with test clocks * Updated types, test utils and date processing * Lint * Pricing/billing page (#10353) * bbui updates for billing page * Require all PlanTypes in PlanMinimums for compile time safety * fix test package utils * Incoming user limits warnings (#10379) * incoming user limits warning * fix inlinealert button * add corretc button link and text to user alert * pr comments * simplify limit check * Types and test updates for subscription quantity changes in account-portal (#10372) * Add chance extensions for `arrayOf`. Update events spies with license events * Add generics to doInTenant response * Update account structure with quota usage * User count limits (#10385) * incoming user limits warning * fix inlinealert button * add corretc button link and text to user alert * pr comments * simplify limit check * user limit messaging on add users modal * user limit messaging on import users modal * update licensing store to be more generic * some styling updates * remove console log * Store tweaks * Add startDate to Quota type --------- Co-authored-by: Rory Powell <rory.codes@gmail.com> * Lint * Support custom lock options * Reactivity fixes for add user modals * Update ethereal email creds * Add warn for getting invite from code error * Extract disabling user import condition * Handling unlimited users in modals logic and adding start date processing to store * Lint * Integration testing fixes (#10389) * lint --------- Co-authored-by: Mateus Badan de Pieri <mateuspieri@gmail.com> Co-authored-by: mike12345567 <me@michaeldrury.co.uk> Co-authored-by: Peter Clement <PClmnt@users.noreply.github.com>
132 lines
2.4 KiB
TypeScript
132 lines
2.4 KiB
TypeScript
import {
|
|
Billing,
|
|
Customer,
|
|
Feature,
|
|
License,
|
|
PlanModel,
|
|
PlanType,
|
|
PriceDuration,
|
|
PurchasedPlan,
|
|
Quotas,
|
|
Subscription,
|
|
} from "@budibase/types"
|
|
|
|
export const plan = (type: PlanType = PlanType.FREE): PurchasedPlan => {
|
|
return {
|
|
type,
|
|
usesInvoicing: false,
|
|
minUsers: 1,
|
|
model: PlanModel.PER_USER,
|
|
}
|
|
}
|
|
|
|
export function quotas(): Quotas {
|
|
return {
|
|
usage: {
|
|
monthly: {
|
|
queries: {
|
|
name: "Queries",
|
|
value: 1,
|
|
triggers: [],
|
|
},
|
|
automations: {
|
|
name: "Queries",
|
|
value: 1,
|
|
triggers: [],
|
|
},
|
|
dayPasses: {
|
|
name: "Queries",
|
|
value: 1,
|
|
triggers: [],
|
|
},
|
|
},
|
|
static: {
|
|
rows: {
|
|
name: "Rows",
|
|
value: 1,
|
|
triggers: [],
|
|
},
|
|
apps: {
|
|
name: "Apps",
|
|
value: 1,
|
|
triggers: [],
|
|
},
|
|
users: {
|
|
name: "Users",
|
|
value: 1,
|
|
triggers: [],
|
|
},
|
|
userGroups: {
|
|
name: "User Groups",
|
|
value: 1,
|
|
triggers: [],
|
|
},
|
|
plugins: {
|
|
name: "Plugins",
|
|
value: 1,
|
|
triggers: [],
|
|
},
|
|
},
|
|
},
|
|
constant: {
|
|
automationLogRetentionDays: {
|
|
name: "Automation Logs",
|
|
value: 1,
|
|
triggers: [],
|
|
},
|
|
appBackupRetentionDays: {
|
|
name: "Backups",
|
|
value: 1,
|
|
triggers: [],
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
export function billing(
|
|
opts: { customer?: Customer; subscription?: Subscription } = {}
|
|
): Billing {
|
|
return {
|
|
customer: opts.customer || customer(),
|
|
subscription: opts.subscription || subscription(),
|
|
}
|
|
}
|
|
|
|
export function customer(): Customer {
|
|
return {
|
|
balance: 0,
|
|
currency: "usd",
|
|
}
|
|
}
|
|
|
|
export function subscription(): Subscription {
|
|
return {
|
|
amount: 10000,
|
|
cancelAt: undefined,
|
|
currency: "usd",
|
|
currentPeriodEnd: 0,
|
|
currentPeriodStart: 0,
|
|
downgradeAt: 0,
|
|
duration: PriceDuration.MONTHLY,
|
|
pastDueAt: undefined,
|
|
quantity: 0,
|
|
status: "active",
|
|
}
|
|
}
|
|
|
|
export const license = (
|
|
opts: {
|
|
quotas?: Quotas
|
|
plan?: PurchasedPlan
|
|
planType?: PlanType
|
|
features?: Feature[]
|
|
billing?: Billing
|
|
} = {}
|
|
): License => {
|
|
return {
|
|
features: opts.features || [],
|
|
quotas: opts.quotas || quotas(),
|
|
plan: opts.plan || plan(opts.planType),
|
|
billing: opts.billing || billing(),
|
|
}
|
|
}
|