@saasicat/nest 1.0.0-rc.20 → 1.0.0-rc.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.build-stamp +1 -1
- package/dist/_entries.cjs +3570 -2574
- package/dist/admin/index.d.cts +5 -4
- package/dist/admin/index.d.ts +5 -4
- package/dist/admin/index.js +2 -1
- package/dist/{admin-resources.module-aOJ_0rur.d.cts → admin-resources.module-B4XNvdH-.d.cts} +0 -1
- package/dist/{admin-resources.module-BENMc0Wh.d.ts → admin-resources.module-CWqdI9BV.d.ts} +0 -1
- package/dist/{admin-stats.service-cwLMrkGl.d.ts → admin-stats.service-CsLNt19Z.d.ts} +10 -6
- package/dist/{admin-stats.service-BJdzHCtJ.d.cts → admin-stats.service-DrZrU8IJ.d.cts} +10 -6
- package/dist/{aggregation-CtIjlWHT.d.ts → aggregation-ChpZDh0g.d.ts} +20 -4
- package/dist/{aggregation-BHo7a_In.d.cts → aggregation-OpnhwzF5.d.cts} +20 -4
- package/dist/billing/index.d.cts +23 -16
- package/dist/billing/index.d.ts +23 -16
- package/dist/billing/index.js +20 -15
- package/dist/catalog/index.d.cts +17 -8
- package/dist/catalog/index.d.ts +17 -8
- package/dist/catalog/index.js +5 -3
- package/dist/{catalog.module-B5E8tsl7.d.ts → catalog.module-C9O7BxRq.d.ts} +80 -7
- package/dist/{catalog.module-DKVvsPsl.d.cts → catalog.module-T-I5Ricz.d.cts} +80 -7
- package/dist/checkout-offer/index.d.cts +5 -4
- package/dist/checkout-offer/index.d.ts +5 -4
- package/dist/checkout-offer/index.js +15 -14
- package/dist/{checkout-offer.service-BP4CoZle.d.ts → checkout-offer.service-BeHgYikI.d.ts} +51 -8
- package/dist/{checkout-offer.service-Bk5mHEoR.d.cts → checkout-offer.service-CCVxG9b2.d.cts} +51 -8
- package/dist/{chunk-AOQJEYOL.js → chunk-3QVGA6JX.js} +3 -1
- package/dist/chunk-3RLWML2S.js +896 -0
- package/dist/{chunk-DTIYUJH5.js → chunk-4SDSYV4A.js} +16 -6
- package/dist/{chunk-X4PDUYBX.js → chunk-55QEDAMX.js} +106 -302
- package/dist/chunk-6PJE7EWO.js +185 -0
- package/dist/{chunk-CRCNY3U6.js → chunk-7NJKVC5X.js} +54 -14
- package/dist/{chunk-RSAPMUGB.js → chunk-AOS2JPDD.js} +67 -64
- package/dist/{chunk-NCXGXNQK.js → chunk-CQ2ZZMTD.js} +174 -72
- package/dist/{chunk-NEICZJE4.js → chunk-F5X66HF5.js} +1 -1
- package/dist/{chunk-323FB6TD.js → chunk-FEQZCWUL.js} +67 -19
- package/dist/{chunk-FQS5FPH2.js → chunk-G6EZWECL.js} +42 -21
- package/dist/{chunk-XDRJ4FRG.js → chunk-JBCC6C3M.js} +84 -20
- package/dist/chunk-LF6J4YYN.js +301 -0
- package/dist/{chunk-OAUN2FPJ.js → chunk-LLYVYRGJ.js} +50 -21
- package/dist/{chunk-6ISJMNW7.js → chunk-M47BNEY2.js} +125 -108
- package/dist/{chunk-U465NU23.js → chunk-NDLC5GYK.js} +40 -33
- package/dist/{chunk-YFCTBLM5.js → chunk-QPVDCKYS.js} +237 -60
- package/dist/{chunk-IORLRWJZ.js → chunk-R5YCJBHY.js} +2 -2
- package/dist/{chunk-QBF7KLSA.js → chunk-TBBZWZQT.js} +8 -6
- package/dist/chunk-TOEFN7DN.js +295 -0
- package/dist/{chunk-ZUOCCEWB.js → chunk-WHJSYKNC.js} +2 -2
- package/dist/chunk-WOEJ6K7M.js +55 -0
- package/dist/{chunk-WYXLTSUZ.js → chunk-XSSWYPP5.js} +6 -4
- package/dist/contract-line-item-money-B0Z3Ogur.d.cts +43 -0
- package/dist/contract-line-item-money-B0Z3Ogur.d.ts +43 -0
- package/dist/{enforce-quota.interceptor-CLyCNVIm.d.cts → enforce-quota.interceptor-BFyVdWe8.d.cts} +6 -6
- package/dist/{enforce-quota.interceptor-DQ_BN_jV.d.ts → enforce-quota.interceptor-GaBXboGx.d.ts} +6 -6
- package/dist/entitlement/index.d.cts +2 -1
- package/dist/entitlement/index.d.ts +2 -1
- package/dist/entitlement/index.js +6 -7
- package/dist/index.d.cts +27 -26
- package/dist/index.d.ts +27 -26
- package/dist/index.js +47 -33
- package/dist/{issuer-identity.check-B8Wzugbf.d.cts → issuer-identity.check-CBO0vcsq.d.cts} +5 -5
- package/dist/{issuer-identity.check-q-Uha5XY.d.ts → issuer-identity.check-Cz9CEMkZ.d.ts} +5 -5
- package/dist/{module-options-C5EBOxzm.d.ts → module-options-DmQ3G4sZ.d.ts} +17 -7
- package/dist/{module-options-Cr5FkELF.d.cts → module-options-qAOwinHR.d.cts} +17 -7
- package/dist/{payment-callback.service-DPUfjp-F.d.cts → payment-callback.service-CR84Xw1Z.d.cts} +31 -3
- package/dist/{payment-callback.service-DPUfjp-F.d.ts → payment-callback.service-CR84Xw1Z.d.ts} +31 -3
- package/dist/payments/index.d.cts +59 -5
- package/dist/payments/index.d.ts +59 -5
- package/dist/payments/index.js +11 -5
- package/dist/{payments.module-Da26YttL.d.cts → payments.module-BdUq9ot_.d.cts} +5 -2
- package/dist/{payments.module-C6r6dJdn.d.ts → payments.module-CQGv_VG7.d.ts} +5 -2
- package/dist/plan-catalog-source-DWe-BGY1.d.cts +21 -0
- package/dist/plan-catalog-source-DWe-BGY1.d.ts +21 -0
- package/dist/{plan-versions.service-BTlw-aEX.d.ts → plan-versions.service-C0N-Em2W.d.ts} +2 -48
- package/dist/{plan-versions.service-BM7lKLr1.d.cts → plan-versions.service-DARLh-qI.d.cts} +2 -48
- package/dist/platform/index.d.cts +20 -19
- package/dist/platform/index.d.ts +20 -19
- package/dist/platform/index.js +22 -21
- package/dist/promo/index.d.cts +9 -6
- package/dist/promo/index.d.ts +9 -6
- package/dist/promo/index.js +7 -6
- package/dist/{promo.module-YfF6ADDf.d.cts → promo.module-CKkECmU8.d.cts} +8 -2
- package/dist/{promo.module-KmIpp1Gb.d.ts → promo.module-DuIJdK3U.d.ts} +8 -2
- package/dist/promo.service-BYBu6dy3.d.cts +215 -0
- package/dist/promo.service-CFjfF0Xm.d.ts +215 -0
- package/dist/registration/index.d.cts +29 -4
- package/dist/registration/index.d.ts +29 -4
- package/dist/registration/index.js +12 -5
- package/dist/subscriber/index.d.cts +2 -2
- package/dist/subscriber/index.d.ts +2 -2
- package/dist/subscriber/index.js +5 -4
- package/dist/{subscriber.service-BZsvHw1V.d.cts → subscriber.service-5W6Gi-1B.d.cts} +14 -3
- package/dist/{subscriber.service-BZsvHw1V.d.ts → subscriber.service-5W6Gi-1B.d.ts} +14 -3
- package/dist/subscription-contract/index.d.cts +3 -3
- package/dist/subscription-contract/index.d.ts +3 -3
- package/dist/subscription-contract/index.js +11 -9
- package/dist/{subscription-contract.service-Duv_Ns1W.d.ts → subscription-contract.service-CPZrTM9C.d.ts} +1 -1
- package/dist/{subscription-contract.service-D7Qb_Ns-.d.cts → subscription-contract.service-CfNApLuP.d.cts} +1 -1
- package/dist/{tenant-billing.controller-0HZ_2DQH.d.ts → tenant-billing.controller-BLqbsONe.d.ts} +7 -6
- package/dist/{tenant-billing.controller-CN9DgasV.d.cts → tenant-billing.controller-DKbAqTbM.d.cts} +7 -6
- package/dist/{tenant-billing.module-CPybDf7c.d.cts → tenant-billing.module-ClbjzocC.d.cts} +24 -16
- package/dist/{tenant-billing.module-C1sLBCW-.d.ts → tenant-billing.module-DohgJJ2m.d.ts} +24 -16
- package/dist/testing/index.d.cts +11 -10
- package/dist/testing/index.d.ts +11 -10
- package/dist/testing/index.js +20 -20
- package/package.json +3 -3
- package/dist/chunk-3HT3REXB.js +0 -110
- package/dist/chunk-5BCYJ3QY.js +0 -44
- package/dist/chunk-QSBMFY4I.js +0 -33
- package/dist/chunk-U4X2YRRO.js +0 -214
- package/dist/chunk-XWAZNKAB.js +0 -638
- package/dist/contract-line-item-money-BWWQhRul.d.cts +0 -11
- package/dist/contract-line-item-money-BWWQhRul.d.ts +0 -11
- package/dist/promo.service-CBMm9RU7.d.cts +0 -113
- package/dist/promo.service-CBMm9RU7.d.ts +0 -113
package/dist/admin/index.d.cts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { f as AdminStatsService, g as AdminStatsSnapshot } from '../admin-stats.service-
|
|
2
|
-
export { A as AdminBypassRlsInterceptor, a as AdminManifestModule, b as AdminManifestModuleOptions, c as AdminManifestService, d as AdminModule, e as AdminModuleOptions, h as MfaGuard, M as MfaService, P as PLATFORM_CORE_CONTRIBUTION_TOKEN, R as REQUIRE_MFA_KEY, i as RequireMfa, S as SuperAdminGuard, T as TotpSetupResult, V as VerifyTotpInput } from '../admin-stats.service-
|
|
1
|
+
import { f as AdminStatsService, g as AdminStatsSnapshot } from '../admin-stats.service-DrZrU8IJ.cjs';
|
|
2
|
+
export { A as AdminBypassRlsInterceptor, a as AdminManifestModule, b as AdminManifestModuleOptions, c as AdminManifestService, d as AdminModule, e as AdminModuleOptions, h as MfaGuard, M as MfaService, P as PLATFORM_CORE_CONTRIBUTION_TOKEN, R as REQUIRE_MFA_KEY, i as RequireMfa, S as SuperAdminGuard, T as TotpSetupResult, V as VerifyTotpInput } from '../admin-stats.service-DrZrU8IJ.cjs';
|
|
3
3
|
export { A as AdminAuditService } from '../admin-audit.service-4P3Djdxk.cjs';
|
|
4
|
-
import { b as AdminManifestConfig } from '../admin-resources.module-
|
|
5
|
-
export { c as ADMIN_MANIFEST_CONFIG, d as ADMIN_RESOURCES_PORT_TOKEN, e as AdminResourcesModule, A as AdminResourcesModuleOptions, f as AdminResourcesService, g as AdminStatsModule, a as AdminStatsModuleOptions, S as SuspendTenantDto } from '../admin-resources.module-
|
|
4
|
+
import { b as AdminManifestConfig } from '../admin-resources.module-B4XNvdH-.cjs';
|
|
5
|
+
export { c as ADMIN_MANIFEST_CONFIG, d as ADMIN_RESOURCES_PORT_TOKEN, e as AdminResourcesModule, A as AdminResourcesModuleOptions, f as AdminResourcesService, g as AdminStatsModule, a as AdminStatsModuleOptions, S as SuspendTenantDto } from '../admin-resources.module-B4XNvdH-.cjs';
|
|
6
6
|
import { PublicBootResponse, ManifestContribution } from '@saasicat/core';
|
|
7
7
|
import { Type, CanActivate } from '@nestjs/common';
|
|
8
8
|
import '@nestjs/core';
|
|
9
9
|
import 'rxjs';
|
|
10
10
|
import '../di-CcNeq9v-.cjs';
|
|
11
|
+
import '../plan-catalog-source-DWe-BGY1.cjs';
|
|
11
12
|
|
|
12
13
|
declare const MFA_PORT_TOKEN: unique symbol;
|
|
13
14
|
declare const AUDIT_PORT_TOKEN: unique symbol;
|
package/dist/admin/index.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { f as AdminStatsService, g as AdminStatsSnapshot } from '../admin-stats.service-
|
|
2
|
-
export { A as AdminBypassRlsInterceptor, a as AdminManifestModule, b as AdminManifestModuleOptions, c as AdminManifestService, d as AdminModule, e as AdminModuleOptions, h as MfaGuard, M as MfaService, P as PLATFORM_CORE_CONTRIBUTION_TOKEN, R as REQUIRE_MFA_KEY, i as RequireMfa, S as SuperAdminGuard, T as TotpSetupResult, V as VerifyTotpInput } from '../admin-stats.service-
|
|
1
|
+
import { f as AdminStatsService, g as AdminStatsSnapshot } from '../admin-stats.service-CsLNt19Z.js';
|
|
2
|
+
export { A as AdminBypassRlsInterceptor, a as AdminManifestModule, b as AdminManifestModuleOptions, c as AdminManifestService, d as AdminModule, e as AdminModuleOptions, h as MfaGuard, M as MfaService, P as PLATFORM_CORE_CONTRIBUTION_TOKEN, R as REQUIRE_MFA_KEY, i as RequireMfa, S as SuperAdminGuard, T as TotpSetupResult, V as VerifyTotpInput } from '../admin-stats.service-CsLNt19Z.js';
|
|
3
3
|
export { A as AdminAuditService } from '../admin-audit.service-4P3Djdxk.js';
|
|
4
|
-
import { b as AdminManifestConfig } from '../admin-resources.module-
|
|
5
|
-
export { c as ADMIN_MANIFEST_CONFIG, d as ADMIN_RESOURCES_PORT_TOKEN, e as AdminResourcesModule, A as AdminResourcesModuleOptions, f as AdminResourcesService, g as AdminStatsModule, a as AdminStatsModuleOptions, S as SuspendTenantDto } from '../admin-resources.module-
|
|
4
|
+
import { b as AdminManifestConfig } from '../admin-resources.module-CWqdI9BV.js';
|
|
5
|
+
export { c as ADMIN_MANIFEST_CONFIG, d as ADMIN_RESOURCES_PORT_TOKEN, e as AdminResourcesModule, A as AdminResourcesModuleOptions, f as AdminResourcesService, g as AdminStatsModule, a as AdminStatsModuleOptions, S as SuspendTenantDto } from '../admin-resources.module-CWqdI9BV.js';
|
|
6
6
|
import { PublicBootResponse, ManifestContribution } from '@saasicat/core';
|
|
7
7
|
import { Type, CanActivate } from '@nestjs/common';
|
|
8
8
|
import '@nestjs/core';
|
|
9
9
|
import 'rxjs';
|
|
10
10
|
import '../di-CcNeq9v-.js';
|
|
11
|
+
import '../plan-catalog-source-DWe-BGY1.js';
|
|
11
12
|
|
|
12
13
|
declare const MFA_PORT_TOKEN: unique symbol;
|
|
13
14
|
declare const AUDIT_PORT_TOKEN: unique symbol;
|
package/dist/admin/index.js
CHANGED
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
SuperAdminGuard,
|
|
22
22
|
SuspendTenantDto,
|
|
23
23
|
buildAdminStatsController
|
|
24
|
-
} from "../chunk-
|
|
24
|
+
} from "../chunk-LLYVYRGJ.js";
|
|
25
25
|
import {
|
|
26
26
|
MfaGuard,
|
|
27
27
|
MfaService,
|
|
@@ -37,6 +37,7 @@ import {
|
|
|
37
37
|
RLS_BYPASS_PORT_TOKEN
|
|
38
38
|
} from "../chunk-SZ7RFPXA.js";
|
|
39
39
|
import "../chunk-YSC46BGM.js";
|
|
40
|
+
import "../chunk-FEQZCWUL.js";
|
|
40
41
|
import "../chunk-J7NJRK3K.js";
|
|
41
42
|
import "../chunk-SHUYVCID.js";
|
|
42
43
|
export {
|
package/dist/{admin-resources.module-aOJ_0rur.d.cts → admin-resources.module-B4XNvdH-.d.cts}
RENAMED
|
@@ -7,7 +7,6 @@ declare const ADMIN_MANIFEST_CONFIG: unique symbol;
|
|
|
7
7
|
interface AdminManifestConfig {
|
|
8
8
|
project: AdminManifest['project'];
|
|
9
9
|
build: Omit<AdminManifest['build'], 'manifestHash'>;
|
|
10
|
-
planCatalogSnapshot: AdminManifest['planCatalogSnapshot'];
|
|
11
10
|
}
|
|
12
11
|
|
|
13
12
|
interface AdminStatsModuleOptions {
|
|
@@ -7,7 +7,6 @@ declare const ADMIN_MANIFEST_CONFIG: unique symbol;
|
|
|
7
7
|
interface AdminManifestConfig {
|
|
8
8
|
project: AdminManifest['project'];
|
|
9
9
|
build: Omit<AdminManifest['build'], 'manifestHash'>;
|
|
10
|
-
planCatalogSnapshot: AdminManifest['planCatalogSnapshot'];
|
|
11
10
|
}
|
|
12
11
|
|
|
13
12
|
interface AdminStatsModuleOptions {
|
|
@@ -3,7 +3,8 @@ import { Reflector } from '@nestjs/core';
|
|
|
3
3
|
import { MfaPort, RlsBypassPort, AuditPort, ManifestContribution, AdminManifest, SubscriptionStatsPort, PromoCodeStatsPort, AuditStatsPort, SubscriptionStatsSnapshot, PromoCodeStatsSnapshot, AuditStatsSnapshot } from '@saasicat/core';
|
|
4
4
|
import { Observable } from 'rxjs';
|
|
5
5
|
import { P as ProviderSpec } from './di-CcNeq9v-.js';
|
|
6
|
-
import {
|
|
6
|
+
import { P as PlanCatalogSource } from './plan-catalog-source-DWe-BGY1.js';
|
|
7
|
+
import { b as AdminManifestConfig } from './admin-resources.module-CWqdI9BV.js';
|
|
7
8
|
|
|
8
9
|
declare class SuperAdminGuard implements CanActivate {
|
|
9
10
|
canActivate(context: ExecutionContext): boolean;
|
|
@@ -87,13 +88,16 @@ declare class AdminModule {
|
|
|
87
88
|
declare const PLATFORM_CORE_CONTRIBUTION_TOKEN: unique symbol;
|
|
88
89
|
declare class AdminManifestService {
|
|
89
90
|
private readonly config;
|
|
91
|
+
private readonly planCatalogs;
|
|
90
92
|
private readonly logger;
|
|
91
93
|
private readonly contributions;
|
|
92
|
-
private
|
|
93
|
-
|
|
94
|
+
private merged;
|
|
95
|
+
private lastHash;
|
|
96
|
+
constructor(config: AdminManifestConfig, planCatalogs: PlanCatalogSource, platformCore?: ManifestContribution | null);
|
|
94
97
|
register(contribution: ManifestContribution): void;
|
|
95
|
-
getManifest(): AdminManifest
|
|
96
|
-
|
|
98
|
+
getManifest(): Promise<AdminManifest>;
|
|
99
|
+
/** Merges the contributions again, then serves the manifest as `getManifest` does. */
|
|
100
|
+
rebuild(): Promise<AdminManifest>;
|
|
97
101
|
private build;
|
|
98
102
|
private mergeContributions;
|
|
99
103
|
/**
|
|
@@ -108,7 +112,7 @@ declare class AdminManifestService {
|
|
|
108
112
|
|
|
109
113
|
type ConfigSpec = AdminManifestConfig | Pick<FactoryProvider<AdminManifestConfig>, 'useFactory' | 'inject'>;
|
|
110
114
|
interface AdminManifestModuleOptions {
|
|
111
|
-
/** AdminManifestConfig as a value or via a factory (e.g. with a
|
|
115
|
+
/** AdminManifestConfig as a value or via a factory (e.g. with a PLAN_CATALOG_SETTINGS_TOKEN inject). */
|
|
112
116
|
config: ConfigSpec;
|
|
113
117
|
/**
|
|
114
118
|
* Default `true`. Set to `false` when the consumer registers its own
|
|
@@ -3,7 +3,8 @@ import { Reflector } from '@nestjs/core';
|
|
|
3
3
|
import { MfaPort, RlsBypassPort, AuditPort, ManifestContribution, AdminManifest, SubscriptionStatsPort, PromoCodeStatsPort, AuditStatsPort, SubscriptionStatsSnapshot, PromoCodeStatsSnapshot, AuditStatsSnapshot } from '@saasicat/core';
|
|
4
4
|
import { Observable } from 'rxjs';
|
|
5
5
|
import { P as ProviderSpec } from './di-CcNeq9v-.cjs';
|
|
6
|
-
import {
|
|
6
|
+
import { P as PlanCatalogSource } from './plan-catalog-source-DWe-BGY1.cjs';
|
|
7
|
+
import { b as AdminManifestConfig } from './admin-resources.module-B4XNvdH-.cjs';
|
|
7
8
|
|
|
8
9
|
declare class SuperAdminGuard implements CanActivate {
|
|
9
10
|
canActivate(context: ExecutionContext): boolean;
|
|
@@ -87,13 +88,16 @@ declare class AdminModule {
|
|
|
87
88
|
declare const PLATFORM_CORE_CONTRIBUTION_TOKEN: unique symbol;
|
|
88
89
|
declare class AdminManifestService {
|
|
89
90
|
private readonly config;
|
|
91
|
+
private readonly planCatalogs;
|
|
90
92
|
private readonly logger;
|
|
91
93
|
private readonly contributions;
|
|
92
|
-
private
|
|
93
|
-
|
|
94
|
+
private merged;
|
|
95
|
+
private lastHash;
|
|
96
|
+
constructor(config: AdminManifestConfig, planCatalogs: PlanCatalogSource, platformCore?: ManifestContribution | null);
|
|
94
97
|
register(contribution: ManifestContribution): void;
|
|
95
|
-
getManifest(): AdminManifest
|
|
96
|
-
|
|
98
|
+
getManifest(): Promise<AdminManifest>;
|
|
99
|
+
/** Merges the contributions again, then serves the manifest as `getManifest` does. */
|
|
100
|
+
rebuild(): Promise<AdminManifest>;
|
|
97
101
|
private build;
|
|
98
102
|
private mergeContributions;
|
|
99
103
|
/**
|
|
@@ -108,7 +112,7 @@ declare class AdminManifestService {
|
|
|
108
112
|
|
|
109
113
|
type ConfigSpec = AdminManifestConfig | Pick<FactoryProvider<AdminManifestConfig>, 'useFactory' | 'inject'>;
|
|
110
114
|
interface AdminManifestModuleOptions {
|
|
111
|
-
/** AdminManifestConfig as a value or via a factory (e.g. with a
|
|
115
|
+
/** AdminManifestConfig as a value or via a factory (e.g. with a PLAN_CATALOG_SETTINGS_TOKEN inject). */
|
|
112
116
|
config: ConfigSpec;
|
|
113
117
|
/**
|
|
114
118
|
* Default `true`. Set to `false` when the consumer registers its own
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { PlanId, QuotaKey, FeatureKey,
|
|
1
|
+
import { PlanId, QuotaKey, FeatureKey, SubscriptionRepository, PlanVersionRepository, TransactionRunner, SubscriptionBundleRepository, BundleRepository, SubscriptionContractRepository, DiscoverySnapshot, PlanCatalog, SubscriptionRecord, TransactionContext, ContractLineItemRecord, SubscriptionContractRecord } from '@saasicat/core';
|
|
2
|
+
import { P as PlanCatalogSource } from './plan-catalog-source-DWe-BGY1.js';
|
|
2
3
|
import { E as EntitlementResolutionConfig } from './plan-resolution-CwUy_OqC.js';
|
|
3
4
|
|
|
4
5
|
/**
|
|
@@ -113,7 +114,7 @@ interface EnforceLimitInput<T> {
|
|
|
113
114
|
now?: Date;
|
|
114
115
|
}
|
|
115
116
|
declare class EntitlementService {
|
|
116
|
-
private readonly
|
|
117
|
+
private readonly catalogs;
|
|
117
118
|
private readonly subscriptions;
|
|
118
119
|
private readonly planVersions;
|
|
119
120
|
private readonly tx;
|
|
@@ -124,8 +125,16 @@ declare class EntitlementService {
|
|
|
124
125
|
private readonly discoverySnapshot;
|
|
125
126
|
private readonly cache;
|
|
126
127
|
private replacedByIndex;
|
|
127
|
-
constructor(
|
|
128
|
-
|
|
128
|
+
constructor(catalogs: PlanCatalogSource, subscriptions: SubscriptionRepository, planVersions: PlanVersionRepository, tx: TransactionRunner, resolutionConfig?: EntitlementResolutionConfig | null, subscriptionBundles?: SubscriptionBundleRepository | null, bundles?: BundleRepository | null, subscriptionContracts?: SubscriptionContractRepository | null, discoverySnapshot?: DiscoverySnapshot | null);
|
|
129
|
+
/**
|
|
130
|
+
* The tenant's effective limits, answered from the cache for up to
|
|
131
|
+
* `CACHE_TTL_MS`. A caller that has already read the catalogue for its own
|
|
132
|
+
* operation passes it as `catalog`: the answer is then computed against
|
|
133
|
+
* that reading and kept out of the cache in both directions — not taken
|
|
134
|
+
* from it, and not written to it, since a reading the caller holds may be
|
|
135
|
+
* older than the one everybody else should be answered from.
|
|
136
|
+
*/
|
|
137
|
+
computeLimits(tenantId: string, now?: Date, catalog?: PlanCatalog): Promise<EffectiveLimits>;
|
|
129
138
|
/**
|
|
130
139
|
* Clears a tenant's cache entry. MUST be called as soon as a mutation
|
|
131
140
|
* changes the subscription, a bundle booking, or a PlanVersion binding —
|
|
@@ -140,6 +149,13 @@ declare class EntitlementService {
|
|
|
140
149
|
* have a `SubscriptionRecord` (e.g. within a transaction).
|
|
141
150
|
*/
|
|
142
151
|
deriveLimits(sub: SubscriptionRecord, now: Date, tx?: TransactionContext): Promise<EffectiveLimits>;
|
|
152
|
+
/**
|
|
153
|
+
* `deriveLimits` against a catalogue already read. The catalogue decides
|
|
154
|
+
* which features are `plannedOnly`, and it is read outside any transaction
|
|
155
|
+
* a caller holds, so that checking a limit does not wait for a second
|
|
156
|
+
* connection while the subscription row is locked.
|
|
157
|
+
*/
|
|
158
|
+
private limitsFor;
|
|
143
159
|
/**
|
|
144
160
|
* The last thing every path does, so that no path can skip it.
|
|
145
161
|
*
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { PlanId, QuotaKey, FeatureKey,
|
|
1
|
+
import { PlanId, QuotaKey, FeatureKey, SubscriptionRepository, PlanVersionRepository, TransactionRunner, SubscriptionBundleRepository, BundleRepository, SubscriptionContractRepository, DiscoverySnapshot, PlanCatalog, SubscriptionRecord, TransactionContext, ContractLineItemRecord, SubscriptionContractRecord } from '@saasicat/core';
|
|
2
|
+
import { P as PlanCatalogSource } from './plan-catalog-source-DWe-BGY1.cjs';
|
|
2
3
|
import { E as EntitlementResolutionConfig } from './plan-resolution-CwUy_OqC.cjs';
|
|
3
4
|
|
|
4
5
|
/**
|
|
@@ -113,7 +114,7 @@ interface EnforceLimitInput<T> {
|
|
|
113
114
|
now?: Date;
|
|
114
115
|
}
|
|
115
116
|
declare class EntitlementService {
|
|
116
|
-
private readonly
|
|
117
|
+
private readonly catalogs;
|
|
117
118
|
private readonly subscriptions;
|
|
118
119
|
private readonly planVersions;
|
|
119
120
|
private readonly tx;
|
|
@@ -124,8 +125,16 @@ declare class EntitlementService {
|
|
|
124
125
|
private readonly discoverySnapshot;
|
|
125
126
|
private readonly cache;
|
|
126
127
|
private replacedByIndex;
|
|
127
|
-
constructor(
|
|
128
|
-
|
|
128
|
+
constructor(catalogs: PlanCatalogSource, subscriptions: SubscriptionRepository, planVersions: PlanVersionRepository, tx: TransactionRunner, resolutionConfig?: EntitlementResolutionConfig | null, subscriptionBundles?: SubscriptionBundleRepository | null, bundles?: BundleRepository | null, subscriptionContracts?: SubscriptionContractRepository | null, discoverySnapshot?: DiscoverySnapshot | null);
|
|
129
|
+
/**
|
|
130
|
+
* The tenant's effective limits, answered from the cache for up to
|
|
131
|
+
* `CACHE_TTL_MS`. A caller that has already read the catalogue for its own
|
|
132
|
+
* operation passes it as `catalog`: the answer is then computed against
|
|
133
|
+
* that reading and kept out of the cache in both directions — not taken
|
|
134
|
+
* from it, and not written to it, since a reading the caller holds may be
|
|
135
|
+
* older than the one everybody else should be answered from.
|
|
136
|
+
*/
|
|
137
|
+
computeLimits(tenantId: string, now?: Date, catalog?: PlanCatalog): Promise<EffectiveLimits>;
|
|
129
138
|
/**
|
|
130
139
|
* Clears a tenant's cache entry. MUST be called as soon as a mutation
|
|
131
140
|
* changes the subscription, a bundle booking, or a PlanVersion binding —
|
|
@@ -140,6 +149,13 @@ declare class EntitlementService {
|
|
|
140
149
|
* have a `SubscriptionRecord` (e.g. within a transaction).
|
|
141
150
|
*/
|
|
142
151
|
deriveLimits(sub: SubscriptionRecord, now: Date, tx?: TransactionContext): Promise<EffectiveLimits>;
|
|
152
|
+
/**
|
|
153
|
+
* `deriveLimits` against a catalogue already read. The catalogue decides
|
|
154
|
+
* which features are `plannedOnly`, and it is read outside any transaction
|
|
155
|
+
* a caller holds, so that checking a limit does not wait for a second
|
|
156
|
+
* connection while the subscription row is locked.
|
|
157
|
+
*/
|
|
158
|
+
private limitsFor;
|
|
143
159
|
/**
|
|
144
160
|
* The last thing every path does, so that no path can skip it.
|
|
145
161
|
*
|
package/dist/billing/index.d.cts
CHANGED
|
@@ -1,22 +1,24 @@
|
|
|
1
|
-
import { BillingCycle, BundleVersionRow, FeatureKey, UpsellOfferResolver, BundleRepository, CatalogEntryRepository, UpsellOffer, PlanCatalogSettings, PlanCatalogReadSink, PlanCatalog, PlanCatalogReadSnapshot, PlanCatalogImportSink, PlanCatalogImportReport, PlanId, PlanDef, QuotaKey, MarketingTopFeature, FeatureUiRegistry, MarketingProjectionRepository, ConfiguratorSourcesLookup, ConfiguratorMarketingProvider, ConfiguratorCatalog } from '@saasicat/core';
|
|
1
|
+
import { BillingCycle, BundleVersionRow, FeatureKey, UpsellOfferResolver, BundleRepository, CatalogEntryRepository, UpsellOffer, PlanCatalogSettings, PlanCatalogReadSink, PlanCatalog, PlanCatalogReadSnapshot, PlanCatalogImportSink, PlanCatalogImportReport, PlanId, PlanDef, QuotaKey, MarketingTopFeature, FeatureUiRegistry, MarketingProjectionRepository, TenantSubscriptionWritePort, ConfiguratorSourcesLookup, ConfiguratorMarketingProvider, ConfiguratorCatalog } from '@saasicat/core';
|
|
2
2
|
export { BundleVersionFields, CancellationNoticePeriods, ChangeDirection, DiffResult, PlanVersionFields, SelfServiceBlockedPlans, VersionChange, VersionChangeDirection, classifyBundleVersionDiff, classifyPlanDiff } from '@saasicat/core';
|
|
3
|
-
export { A as AddBundleToSubscriptionInput, B as BundlePreviewSnapshot, C as CancelBundleFromSubscriptionInput, a as CancelSubscriptionDto, b as CancellableSubscription, c as CancellationDecision, d as CancellationInput, e as ChangePlanDto, f as CompleteOnboardingSubscriptionDto, g as ComposedTenantAuthGuard, h as CycleDirection, L as LimitsCheckRow, N as NO_NOTICE_PERIOD, P as PendingPlanMaterializationService, i as PlanChangeContext, j as PlanChangePreviewDto, k as PlanChangePreviewIssue, l as PlanChangePreviewService, m as PlanChangeType, n as PlanDirection, o as PlanSnapshotDto, p as PreviewPlanChangeDto, q as ProrationDto, r as ProrationInput, R as RedundantFeatureHint, S as SubscriptionBundleAddPreviewDto, s as SubscriptionBundleCancelPreviewDto, t as SubscriptionBundleConfig, u as SubscriptionBundlePreviewContext, v as SubscriptionBundlePreviewIssue, w as SubscriptionBundlePreviewService, x as SubscriptionBundlesService, T as TenantAdminGuard, y as TenantBillingController, U as UsageResponse, z as addMonths, D as clampToParent, E as computeProration, F as decideCancellation, G as decideCancellationFor, H as noticeDaysFor, I as resolveBundleCancelEffectiveAt } from '../tenant-billing.controller-
|
|
4
|
-
import { F as FEATURE_GUARD_MARKER, d as ContractFreezePort, e as ContractFreezeSourcePort } from '../tenant-billing.module-
|
|
5
|
-
export { A as AjvErrorLike, C as CONTRACT_FREEZE_PORT_TOKEN, b as CONTRACT_FREEZE_SOURCE_PORT_TOKEN, c as ContractFreezeBundleSnapshot, E as EnvironmentVariables, f as LoadPlanCatalogFromStringOptions, L as LoadPlanCatalogOptions, M as MarkedFeatureGuard, P as PLAN_CATALOG_UNREADABLE_ERROR, g as PlanCatalogValidationError, h as SELF_SERVICE_BLOCKED_BUNDLES_TOKEN, i as SELF_SERVICE_BLOCKED_PLANS_TOKEN, j as SelfServiceBlockedBundles, a as SubscriptionBundleControllerOptions, k as SubscriptionBundleModule, S as SubscriptionBundleModuleOptions, l as TenantBillingModule, T as TenantBillingModuleOptions, m as catalogSource, n as isPlatformFeatureGuard, o as loadPlanCatalogFromFile, p as loadPlanCatalogFromString } from '../tenant-billing.module-
|
|
3
|
+
export { A as AddBundleToSubscriptionInput, B as BundlePreviewSnapshot, C as CancelBundleFromSubscriptionInput, a as CancelSubscriptionDto, b as CancellableSubscription, c as CancellationDecision, d as CancellationInput, e as ChangePlanDto, f as CompleteOnboardingSubscriptionDto, g as ComposedTenantAuthGuard, h as CycleDirection, L as LimitsCheckRow, N as NO_NOTICE_PERIOD, P as PendingPlanMaterializationService, i as PlanChangeContext, j as PlanChangePreviewDto, k as PlanChangePreviewIssue, l as PlanChangePreviewService, m as PlanChangeType, n as PlanDirection, o as PlanSnapshotDto, p as PreviewPlanChangeDto, q as ProrationDto, r as ProrationInput, R as RedundantFeatureHint, S as SubscriptionBundleAddPreviewDto, s as SubscriptionBundleCancelPreviewDto, t as SubscriptionBundleConfig, u as SubscriptionBundlePreviewContext, v as SubscriptionBundlePreviewIssue, w as SubscriptionBundlePreviewService, x as SubscriptionBundlesService, T as TenantAdminGuard, y as TenantBillingController, U as UsageResponse, z as addMonths, D as clampToParent, E as computeProration, F as decideCancellation, G as decideCancellationFor, H as noticeDaysFor, I as resolveBundleCancelEffectiveAt } from '../tenant-billing.controller-DKbAqTbM.cjs';
|
|
4
|
+
import { F as FEATURE_GUARD_MARKER, d as ContractFreezePort, e as ContractFreezeSourcePort } from '../tenant-billing.module-ClbjzocC.cjs';
|
|
5
|
+
export { A as AjvErrorLike, C as CONTRACT_FREEZE_PORT_TOKEN, b as CONTRACT_FREEZE_SOURCE_PORT_TOKEN, c as ContractFreezeBundleSnapshot, E as EnvironmentVariables, f as LoadPlanCatalogFromStringOptions, L as LoadPlanCatalogOptions, M as MarkedFeatureGuard, P as PLAN_CATALOG_UNREADABLE_ERROR, g as PlanCatalogValidationError, h as SELF_SERVICE_BLOCKED_BUNDLES_TOKEN, i as SELF_SERVICE_BLOCKED_PLANS_TOKEN, j as SelfServiceBlockedBundles, a as SubscriptionBundleControllerOptions, k as SubscriptionBundleModule, S as SubscriptionBundleModuleOptions, l as TenantBillingModule, T as TenantBillingModuleOptions, m as catalogSource, n as isPlatformFeatureGuard, o as loadPlanCatalogFromFile, p as loadPlanCatalogFromString } from '../tenant-billing.module-ClbjzocC.cjs';
|
|
6
6
|
import * as _nestjs_common from '@nestjs/common';
|
|
7
7
|
import { CanActivate, ExecutionContext, ArgumentsHost, Type, DynamicModule, ForwardReference, Provider } from '@nestjs/common';
|
|
8
8
|
export { Type as NestType } from '@nestjs/common';
|
|
9
9
|
import { Reflector, BaseExceptionFilter } from '@nestjs/core';
|
|
10
|
-
import { c as EntitlementService } from '../aggregation-
|
|
10
|
+
import { c as EntitlementService } from '../aggregation-OpnhwzF5.cjs';
|
|
11
11
|
import { P as ProviderSpec } from '../di-CcNeq9v-.cjs';
|
|
12
|
+
import { P as PlanCatalogSource } from '../plan-catalog-source-DWe-BGY1.cjs';
|
|
13
|
+
export { a as PlanCatalogOrigin, g as givenPlanCatalogSource } from '../plan-catalog-source-DWe-BGY1.cjs';
|
|
12
14
|
import { d as AuthGuardList } from '../tenant-billing.tokens-G-1xOlMr.cjs';
|
|
13
15
|
export { c as AUDIT_CONTEXT_RESOLVER_TOKEN, A as AuditContextResolver, B as BILLING_PERMISSION_GUARDS_TOKEN, C as CANCELLATION_NOTICE_DAYS_TOKEN, D as DuePendingPlanChange, e as PENDING_PLAN_QUERY_PORT_TOKEN, P as PendingPlanQueryPort, S as SUBSCRIPTION_USAGE_PORT_TOKEN, f as SUBSCRIPTION_WRITE_PORT_TOKEN, g as TENANT_AUTH_GUARDS_TOKEN, h as TENANT_ID_RESOLVER_TOKEN, i as TRIAL_PROJECTION_PORT_TOKEN, T as TenantIdResolver, j as TrialProjectionInput, a as TrialProjectionPort, k as USAGE_SNAPSHOT_PORT_TOKEN, l as USER_EMAIL_RESOLVER_TOKEN, m as USER_ID_RESOLVER_TOKEN, U as UserEmailResolver, b as UserIdResolver } from '../tenant-billing.tokens-G-1xOlMr.cjs';
|
|
14
|
-
import { S as SubscriptionContractService } from '../subscription-contract.service-
|
|
15
|
-
import '../promo.service-
|
|
16
|
+
import { S as SubscriptionContractService } from '../subscription-contract.service-CfNApLuP.cjs';
|
|
17
|
+
import '../promo.service-BYBu6dy3.cjs';
|
|
16
18
|
import '../admin-audit.service-4P3Djdxk.cjs';
|
|
17
|
-
import '../contract-line-item-money-
|
|
19
|
+
import '../contract-line-item-money-B0Z3Ogur.cjs';
|
|
18
20
|
import '../plan-resolution-CwUy_OqC.cjs';
|
|
19
|
-
import '../subscriber.service-
|
|
21
|
+
import '../subscriber.service-5W6Gi-1B.cjs';
|
|
20
22
|
|
|
21
23
|
/**
|
|
22
24
|
* One period onwards, on `anchorDay` where the month has one.
|
|
@@ -546,13 +548,16 @@ declare class LimitExceededFilter extends BaseExceptionFilter {
|
|
|
546
548
|
catch(exception: unknown, host: ArgumentsHost): void;
|
|
547
549
|
}
|
|
548
550
|
|
|
549
|
-
|
|
551
|
+
/** The settings of `config/saas.yaml` — a `PlanCatalogSettings`, fixed while the process runs. */
|
|
552
|
+
declare const PLAN_CATALOG_SETTINGS_TOKEN: unique symbol;
|
|
553
|
+
/** A `PlanCatalogSource`: the plans and features as they stand when an operation asks. */
|
|
554
|
+
declare const PLAN_CATALOG_SOURCE_TOKEN: unique symbol;
|
|
550
555
|
declare const PLAN_CATALOG_READ_SINK_TOKEN: unique symbol;
|
|
551
556
|
/**
|
|
552
557
|
* Every settings block of `config/saas.yaml` — app identity, currency, VAT rate,
|
|
553
558
|
* tenant billing and the rest — beside the read sink the plans and features
|
|
554
559
|
* come from. The settings are handed on whole, so a block the schema gains
|
|
555
|
-
* reaches `
|
|
560
|
+
* reaches `PLAN_CATALOG_SETTINGS_TOKEN` without this module learning its name.
|
|
556
561
|
*/
|
|
557
562
|
interface PlanCatalogModuleOptions extends PlanCatalogSettings {
|
|
558
563
|
/** App-specific adapter for DB reads. */
|
|
@@ -652,6 +657,8 @@ declare function getMarketedPlans(catalog: PlanCatalog): PlanDef[];
|
|
|
652
657
|
* - the plan has no price for the cycle (`monthlyNet`/`yearlyNet === null`)
|
|
653
658
|
*/
|
|
654
659
|
declare function getPlanPriceNet(catalog: PlanCatalog, planId: PlanId, cycle: BillingCycle): number | null;
|
|
660
|
+
/** The same rule for a plan already in hand, whichever version it describes. */
|
|
661
|
+
declare function listPriceNet(plan: PlanDef, cycle: BillingCycle): number | null;
|
|
655
662
|
/**
|
|
656
663
|
* Whether a plan on the list carries no price for a cycle, and so is not sold
|
|
657
664
|
* in it: a plan without a yearly price is a monthly plan, one without either is
|
|
@@ -754,12 +761,12 @@ interface PublicBundleEntry {
|
|
|
754
761
|
marketing?: MarketingFields;
|
|
755
762
|
}
|
|
756
763
|
declare class PublicCatalogController {
|
|
757
|
-
private readonly
|
|
764
|
+
private readonly planCatalogs;
|
|
758
765
|
private readonly featureRegistry;
|
|
759
766
|
private readonly marketingRepo;
|
|
760
767
|
private readonly bundleRepo;
|
|
761
768
|
private readonly catalogEntryRepo;
|
|
762
|
-
constructor(
|
|
769
|
+
constructor(planCatalogs: PlanCatalogSource, featureRegistry: FeatureUiRegistry, marketingRepo?: MarketingProjectionRepository | null, bundleRepo?: BundleRepository | null, catalogEntryRepo?: CatalogEntryRepository | null);
|
|
763
770
|
listPlans(lang?: string, localeParam?: string): Promise<PlanResponseEntry[]>;
|
|
764
771
|
listFeatureRegistry(): Promise<FeatureUiRegistry>;
|
|
765
772
|
/**
|
|
@@ -830,11 +837,11 @@ declare class BillingPermissionGuard implements CanActivate {
|
|
|
830
837
|
}
|
|
831
838
|
|
|
832
839
|
declare class SubscriptionContractFreezeService implements ContractFreezePort {
|
|
833
|
-
private readonly
|
|
840
|
+
private readonly catalogs;
|
|
834
841
|
private readonly entitlements;
|
|
835
842
|
private readonly contracts;
|
|
836
843
|
private readonly source;
|
|
837
|
-
constructor(
|
|
844
|
+
constructor(catalogs: PlanCatalogSource, entitlements: EntitlementService, contracts: SubscriptionContractService, source: ContractFreezeSourcePort, writes?: TenantSubscriptionWritePort | null);
|
|
838
845
|
assertPartyFor(tenantId: string): Promise<void>;
|
|
839
846
|
endOnCancellation(tenantId: string, effectiveAt: Date): Promise<void>;
|
|
840
847
|
freezeOnPlanChange(tenantId: string, newPlan: string, billingCycle: BillingCycle, effectiveFrom: Date, endsAt?: Date | null): Promise<void>;
|
|
@@ -929,4 +936,4 @@ declare const SUBSCRIPTION_BUNDLE_CONFIG_TOKEN: unique symbol;
|
|
|
929
936
|
*/
|
|
930
937
|
declare function buildTenantSubscriptionBundlesController(extraGuards?: Array<Type<CanActivate>>): Type;
|
|
931
938
|
|
|
932
|
-
export { AddSubscriptionBundleDto, AuthGuardList, BILLING_FEATURE_UI_REGISTRY_TOKEN, BillingPermissionGuard, type BundleFirstPeriodInput, type BundlePeriodRollInput, type BundlePeriodWindow, type BundlePlanContext, BundlePriceLookupDto, CancelSubscriptionBundleDto, CatalogBundleUpsellResolver, ConfiguratorCatalogBuilder, ContractFreezePort, ContractFreezeSourcePort, DEFAULT_BUNDLE_MINIMUM_TERM_MONTHS, FEATURE_GUARD_CONFIG_TOKEN, FEATURE_GUARD_MARKER, FeatureGuard, type FeatureGuardConfig, LimitExceededFilter, type MarketingFields, type NextPeriodWindow, PLAN_CATALOG_IMPORT_SINK_TOKEN, PLAN_CATALOG_READ_SINK_TOKEN,
|
|
939
|
+
export { AddSubscriptionBundleDto, AuthGuardList, BILLING_FEATURE_UI_REGISTRY_TOKEN, BillingPermissionGuard, type BundleFirstPeriodInput, type BundlePeriodRollInput, type BundlePeriodWindow, type BundlePlanContext, BundlePriceLookupDto, CancelSubscriptionBundleDto, CatalogBundleUpsellResolver, ConfiguratorCatalogBuilder, ContractFreezePort, ContractFreezeSourcePort, DEFAULT_BUNDLE_MINIMUM_TERM_MONTHS, FEATURE_GUARD_CONFIG_TOKEN, FEATURE_GUARD_MARKER, FeatureGuard, type FeatureGuardConfig, LimitExceededFilter, type MarketingFields, type NextPeriodWindow, PLAN_CATALOG_IMPORT_SINK_TOKEN, PLAN_CATALOG_READ_SINK_TOKEN, PLAN_CATALOG_SETTINGS_TOKEN, PLAN_CATALOG_SOURCE_TOKEN, PUBLIC_CATALOG_BUNDLE_REPOSITORY_TOKEN, PUBLIC_CATALOG_MARKETING_REPOSITORY_TOKEN, type PeriodRollInput, type PlanAnchorSource, type PlanCatalogBuildSettings, PlanCatalogImportDto, type PlanCatalogImporterControllerConfig, PlanCatalogImporterModule, type PlanCatalogImporterModuleOptions, PlanCatalogImporterService, PlanCatalogModule, type PlanCatalogModuleOptions, PlanCatalogSource, type PlanResponseEntry, PreviewSubscriptionBundleDto, type PublicBundleEntry, PublicCatalogController, PublicCatalogModule, type PublicCatalogModuleOptions, PublishValidationError, type PublishablePlanVersion, REQUIRE_FEATURE_KEY, type RenewalDecision, type RenewalSubInput, RequireFeature, SUBSCRIPTION_BUNDLE_CONFIG_TOKEN, SUBSCRIPTION_BUNDLE_REPOSITORY_TOKEN, SubscriptionContractFreezeService, UPSELL_OFFER_CURRENCY_TOKEN, UPSELL_OFFER_RESOLVER_TOKEN, advanceOneCycle, assertBaseVersionFresh, assertChangeNote, assertDraftPublishable, assertOptimisticLockHeld, billingAnchorDay, buildPlanCatalogFromSnapshot, buildPlanCatalogImporterController, buildTenantSubscriptionBundlesController, bundleCycleFitsPlan, bundleFirstPeriodEnd, bundleFirstPeriodStart, bundleNextPeriodEnd, clearPendingPlanVersionFields, computeCarriedTrialEndsAt, computeNextBundlePeriod, computeNextPeriod, cyclesSoldFor, decideRenewal, findPlan, getActiveFeatureKeys, getMarketedPlans, getPlanOrThrow, getPlanPriceGross, getPlanPriceNet, getPlanQuota, initialPeriodWindow, isFeatureInPlan, isFeaturePlannedOnly, isPlanNotSoldInCycle, listPriceNet, periodEndAfter, periodEndWithMinLead, planNotSoldInCycle, resolveBundlePriceNet, resolvePlanAnchorDay, retreatOneCycle };
|
package/dist/billing/index.d.ts
CHANGED
|
@@ -1,22 +1,24 @@
|
|
|
1
|
-
import { BillingCycle, BundleVersionRow, FeatureKey, UpsellOfferResolver, BundleRepository, CatalogEntryRepository, UpsellOffer, PlanCatalogSettings, PlanCatalogReadSink, PlanCatalog, PlanCatalogReadSnapshot, PlanCatalogImportSink, PlanCatalogImportReport, PlanId, PlanDef, QuotaKey, MarketingTopFeature, FeatureUiRegistry, MarketingProjectionRepository, ConfiguratorSourcesLookup, ConfiguratorMarketingProvider, ConfiguratorCatalog } from '@saasicat/core';
|
|
1
|
+
import { BillingCycle, BundleVersionRow, FeatureKey, UpsellOfferResolver, BundleRepository, CatalogEntryRepository, UpsellOffer, PlanCatalogSettings, PlanCatalogReadSink, PlanCatalog, PlanCatalogReadSnapshot, PlanCatalogImportSink, PlanCatalogImportReport, PlanId, PlanDef, QuotaKey, MarketingTopFeature, FeatureUiRegistry, MarketingProjectionRepository, TenantSubscriptionWritePort, ConfiguratorSourcesLookup, ConfiguratorMarketingProvider, ConfiguratorCatalog } from '@saasicat/core';
|
|
2
2
|
export { BundleVersionFields, CancellationNoticePeriods, ChangeDirection, DiffResult, PlanVersionFields, SelfServiceBlockedPlans, VersionChange, VersionChangeDirection, classifyBundleVersionDiff, classifyPlanDiff } from '@saasicat/core';
|
|
3
|
-
export { A as AddBundleToSubscriptionInput, B as BundlePreviewSnapshot, C as CancelBundleFromSubscriptionInput, a as CancelSubscriptionDto, b as CancellableSubscription, c as CancellationDecision, d as CancellationInput, e as ChangePlanDto, f as CompleteOnboardingSubscriptionDto, g as ComposedTenantAuthGuard, h as CycleDirection, L as LimitsCheckRow, N as NO_NOTICE_PERIOD, P as PendingPlanMaterializationService, i as PlanChangeContext, j as PlanChangePreviewDto, k as PlanChangePreviewIssue, l as PlanChangePreviewService, m as PlanChangeType, n as PlanDirection, o as PlanSnapshotDto, p as PreviewPlanChangeDto, q as ProrationDto, r as ProrationInput, R as RedundantFeatureHint, S as SubscriptionBundleAddPreviewDto, s as SubscriptionBundleCancelPreviewDto, t as SubscriptionBundleConfig, u as SubscriptionBundlePreviewContext, v as SubscriptionBundlePreviewIssue, w as SubscriptionBundlePreviewService, x as SubscriptionBundlesService, T as TenantAdminGuard, y as TenantBillingController, U as UsageResponse, z as addMonths, D as clampToParent, E as computeProration, F as decideCancellation, G as decideCancellationFor, H as noticeDaysFor, I as resolveBundleCancelEffectiveAt } from '../tenant-billing.controller-
|
|
4
|
-
import { F as FEATURE_GUARD_MARKER, d as ContractFreezePort, e as ContractFreezeSourcePort } from '../tenant-billing.module-
|
|
5
|
-
export { A as AjvErrorLike, C as CONTRACT_FREEZE_PORT_TOKEN, b as CONTRACT_FREEZE_SOURCE_PORT_TOKEN, c as ContractFreezeBundleSnapshot, E as EnvironmentVariables, f as LoadPlanCatalogFromStringOptions, L as LoadPlanCatalogOptions, M as MarkedFeatureGuard, P as PLAN_CATALOG_UNREADABLE_ERROR, g as PlanCatalogValidationError, h as SELF_SERVICE_BLOCKED_BUNDLES_TOKEN, i as SELF_SERVICE_BLOCKED_PLANS_TOKEN, j as SelfServiceBlockedBundles, a as SubscriptionBundleControllerOptions, k as SubscriptionBundleModule, S as SubscriptionBundleModuleOptions, l as TenantBillingModule, T as TenantBillingModuleOptions, m as catalogSource, n as isPlatformFeatureGuard, o as loadPlanCatalogFromFile, p as loadPlanCatalogFromString } from '../tenant-billing.module-
|
|
3
|
+
export { A as AddBundleToSubscriptionInput, B as BundlePreviewSnapshot, C as CancelBundleFromSubscriptionInput, a as CancelSubscriptionDto, b as CancellableSubscription, c as CancellationDecision, d as CancellationInput, e as ChangePlanDto, f as CompleteOnboardingSubscriptionDto, g as ComposedTenantAuthGuard, h as CycleDirection, L as LimitsCheckRow, N as NO_NOTICE_PERIOD, P as PendingPlanMaterializationService, i as PlanChangeContext, j as PlanChangePreviewDto, k as PlanChangePreviewIssue, l as PlanChangePreviewService, m as PlanChangeType, n as PlanDirection, o as PlanSnapshotDto, p as PreviewPlanChangeDto, q as ProrationDto, r as ProrationInput, R as RedundantFeatureHint, S as SubscriptionBundleAddPreviewDto, s as SubscriptionBundleCancelPreviewDto, t as SubscriptionBundleConfig, u as SubscriptionBundlePreviewContext, v as SubscriptionBundlePreviewIssue, w as SubscriptionBundlePreviewService, x as SubscriptionBundlesService, T as TenantAdminGuard, y as TenantBillingController, U as UsageResponse, z as addMonths, D as clampToParent, E as computeProration, F as decideCancellation, G as decideCancellationFor, H as noticeDaysFor, I as resolveBundleCancelEffectiveAt } from '../tenant-billing.controller-BLqbsONe.js';
|
|
4
|
+
import { F as FEATURE_GUARD_MARKER, d as ContractFreezePort, e as ContractFreezeSourcePort } from '../tenant-billing.module-DohgJJ2m.js';
|
|
5
|
+
export { A as AjvErrorLike, C as CONTRACT_FREEZE_PORT_TOKEN, b as CONTRACT_FREEZE_SOURCE_PORT_TOKEN, c as ContractFreezeBundleSnapshot, E as EnvironmentVariables, f as LoadPlanCatalogFromStringOptions, L as LoadPlanCatalogOptions, M as MarkedFeatureGuard, P as PLAN_CATALOG_UNREADABLE_ERROR, g as PlanCatalogValidationError, h as SELF_SERVICE_BLOCKED_BUNDLES_TOKEN, i as SELF_SERVICE_BLOCKED_PLANS_TOKEN, j as SelfServiceBlockedBundles, a as SubscriptionBundleControllerOptions, k as SubscriptionBundleModule, S as SubscriptionBundleModuleOptions, l as TenantBillingModule, T as TenantBillingModuleOptions, m as catalogSource, n as isPlatformFeatureGuard, o as loadPlanCatalogFromFile, p as loadPlanCatalogFromString } from '../tenant-billing.module-DohgJJ2m.js';
|
|
6
6
|
import * as _nestjs_common from '@nestjs/common';
|
|
7
7
|
import { CanActivate, ExecutionContext, ArgumentsHost, Type, DynamicModule, ForwardReference, Provider } from '@nestjs/common';
|
|
8
8
|
export { Type as NestType } from '@nestjs/common';
|
|
9
9
|
import { Reflector, BaseExceptionFilter } from '@nestjs/core';
|
|
10
|
-
import { c as EntitlementService } from '../aggregation-
|
|
10
|
+
import { c as EntitlementService } from '../aggregation-ChpZDh0g.js';
|
|
11
11
|
import { P as ProviderSpec } from '../di-CcNeq9v-.js';
|
|
12
|
+
import { P as PlanCatalogSource } from '../plan-catalog-source-DWe-BGY1.js';
|
|
13
|
+
export { a as PlanCatalogOrigin, g as givenPlanCatalogSource } from '../plan-catalog-source-DWe-BGY1.js';
|
|
12
14
|
import { d as AuthGuardList } from '../tenant-billing.tokens-G-1xOlMr.js';
|
|
13
15
|
export { c as AUDIT_CONTEXT_RESOLVER_TOKEN, A as AuditContextResolver, B as BILLING_PERMISSION_GUARDS_TOKEN, C as CANCELLATION_NOTICE_DAYS_TOKEN, D as DuePendingPlanChange, e as PENDING_PLAN_QUERY_PORT_TOKEN, P as PendingPlanQueryPort, S as SUBSCRIPTION_USAGE_PORT_TOKEN, f as SUBSCRIPTION_WRITE_PORT_TOKEN, g as TENANT_AUTH_GUARDS_TOKEN, h as TENANT_ID_RESOLVER_TOKEN, i as TRIAL_PROJECTION_PORT_TOKEN, T as TenantIdResolver, j as TrialProjectionInput, a as TrialProjectionPort, k as USAGE_SNAPSHOT_PORT_TOKEN, l as USER_EMAIL_RESOLVER_TOKEN, m as USER_ID_RESOLVER_TOKEN, U as UserEmailResolver, b as UserIdResolver } from '../tenant-billing.tokens-G-1xOlMr.js';
|
|
14
|
-
import { S as SubscriptionContractService } from '../subscription-contract.service-
|
|
15
|
-
import '../promo.service-
|
|
16
|
+
import { S as SubscriptionContractService } from '../subscription-contract.service-CPZrTM9C.js';
|
|
17
|
+
import '../promo.service-CFjfF0Xm.js';
|
|
16
18
|
import '../admin-audit.service-4P3Djdxk.js';
|
|
17
|
-
import '../contract-line-item-money-
|
|
19
|
+
import '../contract-line-item-money-B0Z3Ogur.js';
|
|
18
20
|
import '../plan-resolution-CwUy_OqC.js';
|
|
19
|
-
import '../subscriber.service-
|
|
21
|
+
import '../subscriber.service-5W6Gi-1B.js';
|
|
20
22
|
|
|
21
23
|
/**
|
|
22
24
|
* One period onwards, on `anchorDay` where the month has one.
|
|
@@ -546,13 +548,16 @@ declare class LimitExceededFilter extends BaseExceptionFilter {
|
|
|
546
548
|
catch(exception: unknown, host: ArgumentsHost): void;
|
|
547
549
|
}
|
|
548
550
|
|
|
549
|
-
|
|
551
|
+
/** The settings of `config/saas.yaml` — a `PlanCatalogSettings`, fixed while the process runs. */
|
|
552
|
+
declare const PLAN_CATALOG_SETTINGS_TOKEN: unique symbol;
|
|
553
|
+
/** A `PlanCatalogSource`: the plans and features as they stand when an operation asks. */
|
|
554
|
+
declare const PLAN_CATALOG_SOURCE_TOKEN: unique symbol;
|
|
550
555
|
declare const PLAN_CATALOG_READ_SINK_TOKEN: unique symbol;
|
|
551
556
|
/**
|
|
552
557
|
* Every settings block of `config/saas.yaml` — app identity, currency, VAT rate,
|
|
553
558
|
* tenant billing and the rest — beside the read sink the plans and features
|
|
554
559
|
* come from. The settings are handed on whole, so a block the schema gains
|
|
555
|
-
* reaches `
|
|
560
|
+
* reaches `PLAN_CATALOG_SETTINGS_TOKEN` without this module learning its name.
|
|
556
561
|
*/
|
|
557
562
|
interface PlanCatalogModuleOptions extends PlanCatalogSettings {
|
|
558
563
|
/** App-specific adapter for DB reads. */
|
|
@@ -652,6 +657,8 @@ declare function getMarketedPlans(catalog: PlanCatalog): PlanDef[];
|
|
|
652
657
|
* - the plan has no price for the cycle (`monthlyNet`/`yearlyNet === null`)
|
|
653
658
|
*/
|
|
654
659
|
declare function getPlanPriceNet(catalog: PlanCatalog, planId: PlanId, cycle: BillingCycle): number | null;
|
|
660
|
+
/** The same rule for a plan already in hand, whichever version it describes. */
|
|
661
|
+
declare function listPriceNet(plan: PlanDef, cycle: BillingCycle): number | null;
|
|
655
662
|
/**
|
|
656
663
|
* Whether a plan on the list carries no price for a cycle, and so is not sold
|
|
657
664
|
* in it: a plan without a yearly price is a monthly plan, one without either is
|
|
@@ -754,12 +761,12 @@ interface PublicBundleEntry {
|
|
|
754
761
|
marketing?: MarketingFields;
|
|
755
762
|
}
|
|
756
763
|
declare class PublicCatalogController {
|
|
757
|
-
private readonly
|
|
764
|
+
private readonly planCatalogs;
|
|
758
765
|
private readonly featureRegistry;
|
|
759
766
|
private readonly marketingRepo;
|
|
760
767
|
private readonly bundleRepo;
|
|
761
768
|
private readonly catalogEntryRepo;
|
|
762
|
-
constructor(
|
|
769
|
+
constructor(planCatalogs: PlanCatalogSource, featureRegistry: FeatureUiRegistry, marketingRepo?: MarketingProjectionRepository | null, bundleRepo?: BundleRepository | null, catalogEntryRepo?: CatalogEntryRepository | null);
|
|
763
770
|
listPlans(lang?: string, localeParam?: string): Promise<PlanResponseEntry[]>;
|
|
764
771
|
listFeatureRegistry(): Promise<FeatureUiRegistry>;
|
|
765
772
|
/**
|
|
@@ -830,11 +837,11 @@ declare class BillingPermissionGuard implements CanActivate {
|
|
|
830
837
|
}
|
|
831
838
|
|
|
832
839
|
declare class SubscriptionContractFreezeService implements ContractFreezePort {
|
|
833
|
-
private readonly
|
|
840
|
+
private readonly catalogs;
|
|
834
841
|
private readonly entitlements;
|
|
835
842
|
private readonly contracts;
|
|
836
843
|
private readonly source;
|
|
837
|
-
constructor(
|
|
844
|
+
constructor(catalogs: PlanCatalogSource, entitlements: EntitlementService, contracts: SubscriptionContractService, source: ContractFreezeSourcePort, writes?: TenantSubscriptionWritePort | null);
|
|
838
845
|
assertPartyFor(tenantId: string): Promise<void>;
|
|
839
846
|
endOnCancellation(tenantId: string, effectiveAt: Date): Promise<void>;
|
|
840
847
|
freezeOnPlanChange(tenantId: string, newPlan: string, billingCycle: BillingCycle, effectiveFrom: Date, endsAt?: Date | null): Promise<void>;
|
|
@@ -929,4 +936,4 @@ declare const SUBSCRIPTION_BUNDLE_CONFIG_TOKEN: unique symbol;
|
|
|
929
936
|
*/
|
|
930
937
|
declare function buildTenantSubscriptionBundlesController(extraGuards?: Array<Type<CanActivate>>): Type;
|
|
931
938
|
|
|
932
|
-
export { AddSubscriptionBundleDto, AuthGuardList, BILLING_FEATURE_UI_REGISTRY_TOKEN, BillingPermissionGuard, type BundleFirstPeriodInput, type BundlePeriodRollInput, type BundlePeriodWindow, type BundlePlanContext, BundlePriceLookupDto, CancelSubscriptionBundleDto, CatalogBundleUpsellResolver, ConfiguratorCatalogBuilder, ContractFreezePort, ContractFreezeSourcePort, DEFAULT_BUNDLE_MINIMUM_TERM_MONTHS, FEATURE_GUARD_CONFIG_TOKEN, FEATURE_GUARD_MARKER, FeatureGuard, type FeatureGuardConfig, LimitExceededFilter, type MarketingFields, type NextPeriodWindow, PLAN_CATALOG_IMPORT_SINK_TOKEN, PLAN_CATALOG_READ_SINK_TOKEN,
|
|
939
|
+
export { AddSubscriptionBundleDto, AuthGuardList, BILLING_FEATURE_UI_REGISTRY_TOKEN, BillingPermissionGuard, type BundleFirstPeriodInput, type BundlePeriodRollInput, type BundlePeriodWindow, type BundlePlanContext, BundlePriceLookupDto, CancelSubscriptionBundleDto, CatalogBundleUpsellResolver, ConfiguratorCatalogBuilder, ContractFreezePort, ContractFreezeSourcePort, DEFAULT_BUNDLE_MINIMUM_TERM_MONTHS, FEATURE_GUARD_CONFIG_TOKEN, FEATURE_GUARD_MARKER, FeatureGuard, type FeatureGuardConfig, LimitExceededFilter, type MarketingFields, type NextPeriodWindow, PLAN_CATALOG_IMPORT_SINK_TOKEN, PLAN_CATALOG_READ_SINK_TOKEN, PLAN_CATALOG_SETTINGS_TOKEN, PLAN_CATALOG_SOURCE_TOKEN, PUBLIC_CATALOG_BUNDLE_REPOSITORY_TOKEN, PUBLIC_CATALOG_MARKETING_REPOSITORY_TOKEN, type PeriodRollInput, type PlanAnchorSource, type PlanCatalogBuildSettings, PlanCatalogImportDto, type PlanCatalogImporterControllerConfig, PlanCatalogImporterModule, type PlanCatalogImporterModuleOptions, PlanCatalogImporterService, PlanCatalogModule, type PlanCatalogModuleOptions, PlanCatalogSource, type PlanResponseEntry, PreviewSubscriptionBundleDto, type PublicBundleEntry, PublicCatalogController, PublicCatalogModule, type PublicCatalogModuleOptions, PublishValidationError, type PublishablePlanVersion, REQUIRE_FEATURE_KEY, type RenewalDecision, type RenewalSubInput, RequireFeature, SUBSCRIPTION_BUNDLE_CONFIG_TOKEN, SUBSCRIPTION_BUNDLE_REPOSITORY_TOKEN, SubscriptionContractFreezeService, UPSELL_OFFER_CURRENCY_TOKEN, UPSELL_OFFER_RESOLVER_TOKEN, advanceOneCycle, assertBaseVersionFresh, assertChangeNote, assertDraftPublishable, assertOptimisticLockHeld, billingAnchorDay, buildPlanCatalogFromSnapshot, buildPlanCatalogImporterController, buildTenantSubscriptionBundlesController, bundleCycleFitsPlan, bundleFirstPeriodEnd, bundleFirstPeriodStart, bundleNextPeriodEnd, clearPendingPlanVersionFields, computeCarriedTrialEndsAt, computeNextBundlePeriod, computeNextPeriod, cyclesSoldFor, decideRenewal, findPlan, getActiveFeatureKeys, getMarketedPlans, getPlanOrThrow, getPlanPriceGross, getPlanPriceNet, getPlanQuota, initialPeriodWindow, isFeatureInPlan, isFeaturePlannedOnly, isPlanNotSoldInCycle, listPriceNet, periodEndAfter, periodEndWithMinLead, planNotSoldInCycle, resolveBundlePriceNet, resolvePlanAnchorDay, retreatOneCycle };
|
package/dist/billing/index.js
CHANGED
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
computeCarriedTrialEndsAt,
|
|
21
21
|
computeNextPeriod,
|
|
22
22
|
decideRenewal
|
|
23
|
-
} from "../chunk-
|
|
23
|
+
} from "../chunk-R5YCJBHY.js";
|
|
24
24
|
import {
|
|
25
25
|
AddSubscriptionBundleDto,
|
|
26
26
|
BILLING_FEATURE_UI_REGISTRY_TOKEN,
|
|
@@ -79,15 +79,15 @@ import {
|
|
|
79
79
|
resolveBundleCancelEffectiveAt,
|
|
80
80
|
resolvePlanAnchorDay,
|
|
81
81
|
retreatOneCycle
|
|
82
|
-
} from "../chunk-
|
|
82
|
+
} from "../chunk-M47BNEY2.js";
|
|
83
83
|
import {
|
|
84
84
|
classifyBundleVersionDiff,
|
|
85
85
|
classifyPlanDiff
|
|
86
86
|
} from "../chunk-GZTL64QK.js";
|
|
87
87
|
import "../chunk-34XVPR6P.js";
|
|
88
88
|
import "../chunk-OOTEXP47.js";
|
|
89
|
-
import "../chunk-
|
|
90
|
-
import "../chunk-
|
|
89
|
+
import "../chunk-3RLWML2S.js";
|
|
90
|
+
import "../chunk-NDLC5GYK.js";
|
|
91
91
|
import {
|
|
92
92
|
cyclesSoldFor,
|
|
93
93
|
resolveBundlePriceNet
|
|
@@ -95,7 +95,7 @@ import {
|
|
|
95
95
|
import {
|
|
96
96
|
SUBSCRIPTION_BUNDLE_CONFIG_TOKEN,
|
|
97
97
|
SUBSCRIPTION_BUNDLE_REPOSITORY_TOKEN
|
|
98
|
-
} from "../chunk-
|
|
98
|
+
} from "../chunk-G6EZWECL.js";
|
|
99
99
|
import "../chunk-OUDSQ3PU.js";
|
|
100
100
|
import {
|
|
101
101
|
findPlan,
|
|
@@ -108,12 +108,12 @@ import {
|
|
|
108
108
|
isFeatureInPlan,
|
|
109
109
|
isFeaturePlannedOnly,
|
|
110
110
|
isPlanNotSoldInCycle,
|
|
111
|
+
listPriceNet,
|
|
111
112
|
planNotSoldInCycle
|
|
112
|
-
} from "../chunk-
|
|
113
|
+
} from "../chunk-TBBZWZQT.js";
|
|
113
114
|
import "../chunk-VBRYPU7V.js";
|
|
114
|
-
import "../chunk-
|
|
115
|
-
import "../chunk-
|
|
116
|
-
import "../chunk-AOQJEYOL.js";
|
|
115
|
+
import "../chunk-6PJE7EWO.js";
|
|
116
|
+
import "../chunk-3QVGA6JX.js";
|
|
117
117
|
import "../chunk-QUZU2M33.js";
|
|
118
118
|
import {
|
|
119
119
|
BillingPermissionGuard,
|
|
@@ -134,15 +134,17 @@ import {
|
|
|
134
134
|
USER_ID_RESOLVER_TOKEN
|
|
135
135
|
} from "../chunk-GPQWGA6B.js";
|
|
136
136
|
import "../chunk-SZ7RFPXA.js";
|
|
137
|
-
import "../chunk-
|
|
138
|
-
import "../chunk-
|
|
137
|
+
import "../chunk-WOEJ6K7M.js";
|
|
138
|
+
import "../chunk-LF6J4YYN.js";
|
|
139
139
|
import "../chunk-YSC46BGM.js";
|
|
140
140
|
import {
|
|
141
141
|
PLAN_CATALOG_READ_SINK_TOKEN,
|
|
142
|
-
|
|
142
|
+
PLAN_CATALOG_SETTINGS_TOKEN,
|
|
143
|
+
PLAN_CATALOG_SOURCE_TOKEN,
|
|
143
144
|
PlanCatalogModule,
|
|
144
|
-
buildPlanCatalogFromSnapshot
|
|
145
|
-
|
|
145
|
+
buildPlanCatalogFromSnapshot,
|
|
146
|
+
givenPlanCatalogSource
|
|
147
|
+
} from "../chunk-FEQZCWUL.js";
|
|
146
148
|
import "../chunk-J7NJRK3K.js";
|
|
147
149
|
import "../chunk-SHUYVCID.js";
|
|
148
150
|
export {
|
|
@@ -171,7 +173,8 @@ export {
|
|
|
171
173
|
PENDING_PLAN_QUERY_PORT_TOKEN,
|
|
172
174
|
PLAN_CATALOG_IMPORT_SINK_TOKEN,
|
|
173
175
|
PLAN_CATALOG_READ_SINK_TOKEN,
|
|
174
|
-
|
|
176
|
+
PLAN_CATALOG_SETTINGS_TOKEN,
|
|
177
|
+
PLAN_CATALOG_SOURCE_TOKEN,
|
|
175
178
|
PLAN_CATALOG_UNREADABLE_ERROR,
|
|
176
179
|
PUBLIC_CATALOG_BUNDLE_REPOSITORY_TOKEN,
|
|
177
180
|
PUBLIC_CATALOG_MARKETING_REPOSITORY_TOKEN,
|
|
@@ -244,11 +247,13 @@ export {
|
|
|
244
247
|
getPlanPriceGross,
|
|
245
248
|
getPlanPriceNet,
|
|
246
249
|
getPlanQuota,
|
|
250
|
+
givenPlanCatalogSource,
|
|
247
251
|
initialPeriodWindow,
|
|
248
252
|
isFeatureInPlan,
|
|
249
253
|
isFeaturePlannedOnly,
|
|
250
254
|
isPlanNotSoldInCycle,
|
|
251
255
|
isPlatformFeatureGuard,
|
|
256
|
+
listPriceNet,
|
|
252
257
|
loadPlanCatalogFromFile,
|
|
253
258
|
loadPlanCatalogFromString,
|
|
254
259
|
noticeDaysFor,
|