UNPKG

pricing4ts

Version:

![NPM Version](https://img.shields.io/npm/v/pricing4ts) Pricing4TS is a TypeScript-based toolkit designed to enhance the server-side functionality of a pricing-driven SaaS by enabling the seamless integration of pricing plans into the application logic. T

62 lines (61 loc) 5.43 kB
import type { AddOn } from '../models/pricing2yaml/addon'; import type { AutomationType, Feature, IntegrationType, PaymentType } from '../../types'; import type { Plan } from '../models/pricing2yaml/plan'; import type { Pricing } from '../models/pricing2yaml/pricing'; import type { FeatureType, RenderMode, UsageLimitType, ValueType } from '../models/pricing2yaml/types'; import type { ContainerUsageLimits, UsageLimit } from '../models/pricing2yaml/usage-limit'; export declare function validateName(name: string | null, item: string): string; export declare function validateSyntaxVersion(version: string): string; export declare function validateVersion(version: string | undefined, createdAt: Date): string; export declare function validateCreatedAt(createdAt: string | Date | null): Date; export declare function validateCurrency(currency: string | null): string; export declare function validateDescription(description: string | null | undefined): string | undefined; export declare function validateValueType(valueType: string | null): ValueType; export declare function validateDefaultValue(elem: Feature | UsageLimit, item: string): number | boolean | string | PaymentType[]; export declare function validateExpression(expression: string | null | undefined, item: string): string | undefined; export declare function validateValue(elem: Feature | UsageLimit, item: string, valueType?: ValueType | undefined): number | boolean | string | PaymentType[] | undefined; export declare function validateFeatureType(type: string | null | undefined): FeatureType; export declare function validateFeatureIntegrationType(integrationType: IntegrationType | null | undefined, featureType: FeatureType): IntegrationType | undefined; export declare function validateFeatureAutomationType(automationType: AutomationType | null | undefined, featureType: FeatureType): AutomationType | undefined; export declare function validateUnit(unit: string | null | undefined): string; export declare function validateUsageLimitType(type: string | null | undefined): UsageLimitType; export declare function validateLinkedFeatures(linkedFeatures: string[] | undefined | null, pricing: Pricing): string[] | undefined; export declare function validateRenderMode(renderMode: string | undefined | null): RenderMode; export declare function validatePlanFeatures(plan: Plan, planFeatures: Record<string, Feature>): Record<string, Feature>; export declare function validatePlanUsageLimits(plan: Plan, planUsageLimits: ContainerUsageLimits): ContainerUsageLimits; export declare function validatePrice(price: number | string | undefined | null, variables: { [key: string]: boolean | string | number; }): number | string; export declare function validateAddonFeatures(addon: AddOn, addOnFeatures: Record<string, Feature>): Record<string, Feature>; export declare function validateAddonUsageLimits(addon: AddOn, addonUsageLimits: ContainerUsageLimits): ContainerUsageLimits; export declare function validateAddonUsageLimitsExtensions(addon: AddOn, addonUsageLimits: ContainerUsageLimits): ContainerUsageLimits; export declare function validateAvailableFor(availableFor: string[] | undefined | null, pricing: Pricing): string[]; export declare function validateDependsOnOrExcludes(fieldValue: string[] | undefined | null, pricing: Pricing, fieldType: 'dependsOn' | 'excludes'): string[]; export declare function postValidateDependsOnOrExclude(fieldValue: string[] | undefined, pricing: Pricing): void; export declare function validateTags(tags: string[] | undefined): string[]; export declare function validatePlan(plan: Plan): void; export declare function validatePlans(plans: object): void; export declare function validateFeatures(features: object): void; export declare function validateFeature(feature: Feature): void; export declare function validateUsageLimits(usageLimits: object): void; export declare function validateUsageLimit(usageLimit: UsageLimit): void; export declare function validateBilling(billing: { [key: string]: number; } | undefined): { [key: string]: number; }; export declare function validateVariables(variables: { [key: string]: number | string | boolean; } | undefined): { [key: string]: string | number | boolean; }; export declare function validateUrl(url: string | undefined): string | undefined; export declare function validatePrivate(isPrivate: boolean | undefined): boolean; export declare function validatePricingUrls(featureType: FeatureType, featureIntegrationType: IntegrationType | undefined, pricingUrls: string[] | undefined): string[] | undefined; export declare function validateDocUrl(featureType: FeatureType, docUrl: string | undefined): string | undefined; export declare function validatePeriodUnit(periodUnit: string | undefined): "SEC" | "MIN" | "HOUR" | "DAY" | "MONTH" | "YEAR"; export declare function validatePeriodValue(periodValue: number | undefined): number; export declare function validateTrackable(trackable: boolean | undefined): boolean; export declare function validateSubscriptionConstraintMinQuantity(subscriptionConstraintMinQuantity: number | undefined): number; export declare function validateSubscriptionConstraintMaxQuantity(subscriptionConstraintMaxQuantity: number | undefined, minQuantity: number): number; export declare function validateSubscriptionConstraintQuantityStep(subscriptionConstraintQuantityStep: number | undefined, minQuantity: number): number;