@saasicat/nest 0.21.0 → 0.22.0
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/_entries.cjs +21 -15
- package/dist/admin/index.js +1 -1
- package/dist/{aggregation-o0LMenvl.d.ts → aggregation-DP5zfKbU.d.ts} +3 -3
- package/dist/{aggregation-SKfXu09x.d.cts → aggregation-mZ7WZROK.d.cts} +3 -3
- package/dist/billing/index.d.cts +7 -7
- package/dist/billing/index.d.ts +7 -7
- package/dist/billing/index.js +2 -2
- package/dist/catalog/index.d.cts +10 -10
- package/dist/catalog/index.d.ts +10 -10
- package/dist/catalog/index.js +2 -2
- package/dist/{catalog.module-BKObceo0.d.ts → catalog.module-CQr1FpkI.d.ts} +6 -6
- package/dist/{catalog.module-Dw2Hrbyu.d.cts → catalog.module-D-_pQDNA.d.cts} +6 -6
- package/dist/{chunk-GC5AKN44.js → chunk-7X5MSAIL.js} +7 -7
- package/dist/{chunk-55QGAZRQ.js → chunk-7ZPFQXHM.js} +1 -1
- package/dist/{chunk-3DRZ5GCP.js → chunk-MJ32VNZD.js} +1 -1
- package/dist/{chunk-AGOG5B77.js → chunk-NNNXXUPT.js} +1 -1
- package/dist/{chunk-FYWLPYBK.js → chunk-SN5UOC43.js} +3 -3
- package/dist/{chunk-ZH5PYEMI.js → chunk-UFS344JD.js} +11 -5
- package/dist/{chunk-NZLAYCEX.js → chunk-UO64MK3Q.js} +3 -3
- package/dist/{define-saasicat-Cf9DpEsY.d.cts → define-saasicat-ByPjtKPy.d.cts} +1 -1
- package/dist/{define-saasicat-B20Ms8UC.d.ts → define-saasicat-C99hWAUK.d.ts} +1 -1
- package/dist/discovery/index.d.cts +2 -2
- package/dist/discovery/index.d.ts +2 -2
- package/dist/{enforce-quota.interceptor-Dtg5WdFj.d.cts → enforce-quota.interceptor-BrsU1UYJ.d.cts} +1 -1
- package/dist/{enforce-quota.interceptor-CUyfR4cQ.d.ts → enforce-quota.interceptor-reO-i71U.d.ts} +1 -1
- package/dist/entitlement/index.d.cts +1 -1
- package/dist/entitlement/index.d.ts +1 -1
- package/dist/entitlement/index.js +1 -1
- package/dist/index.d.cts +7 -7
- package/dist/index.d.ts +7 -7
- package/dist/index.js +7 -7
- package/dist/{plan-versions.service-BB36Q1bg.d.ts → plan-versions.service-B-YoE4SZ.d.ts} +1 -1
- package/dist/{plan-versions.service-CUR2Whyr.d.cts → plan-versions.service-_saKzb50.d.cts} +1 -1
- package/dist/platform/index.d.cts +9 -9
- package/dist/platform/index.d.ts +9 -9
- package/dist/platform/index.js +5 -5
- package/dist/registration/index.d.cts +1 -1
- package/dist/registration/index.d.ts +1 -1
- package/dist/registration/index.js +1 -1
- package/dist/{saas-platform.module-DChhDrR-.d.ts → saas-platform.module-DolE41YY.d.ts} +1 -1
- package/dist/{saas-platform.module-BfaYfL-G.d.cts → saas-platform.module-HCDNZTiE.d.cts} +1 -1
- package/dist/{tenant-billing.controller-DT5UrnDX.d.ts → tenant-billing.controller-7o4ObzGs.d.ts} +2 -2
- package/dist/{tenant-billing.controller-BIF-mstX.d.cts → tenant-billing.controller-DubP6-Md.d.cts} +2 -2
- package/dist/testing/index.d.cts +4 -4
- package/dist/testing/index.d.ts +4 -4
- package/dist/testing/index.js +6 -6
- package/package.json +3 -3
package/dist/_entries.cjs
CHANGED
|
@@ -771,7 +771,7 @@ var PLATFORM_CORE_MANIFEST_CONTRIBUTION = {
|
|
|
771
771
|
enabled: true,
|
|
772
772
|
requiredCapability: "dashboard.read"
|
|
773
773
|
},
|
|
774
|
-
//
|
|
774
|
+
// — discovery snapshot of the running backend.
|
|
775
775
|
// Apps must set `discovery.read` in their manifest capabilities
|
|
776
776
|
// to `true` so that the NavBuilder wires the page into the
|
|
777
777
|
// sidebar; otherwise it is filtered out automatically.
|
|
@@ -779,7 +779,7 @@ var PLATFORM_CORE_MANIFEST_CONTRIBUTION = {
|
|
|
779
779
|
enabled: true,
|
|
780
780
|
requiredCapability: "discovery.read"
|
|
781
781
|
},
|
|
782
|
-
//
|
|
782
|
+
// — Bundle editor in SuperAdmin.
|
|
783
783
|
// Apps with a DB-driven catalog set `bundles.read = true`.
|
|
784
784
|
bundles: {
|
|
785
785
|
enabled: true,
|
|
@@ -789,7 +789,7 @@ var PLATFORM_CORE_MANIFEST_CONTRIBUTION = {
|
|
|
789
789
|
enabled: true,
|
|
790
790
|
requiredCapability: "plans.read"
|
|
791
791
|
},
|
|
792
|
-
//
|
|
792
|
+
// — marketing catalog (locale pivot).
|
|
793
793
|
// Apps that market a public catalog set
|
|
794
794
|
// `marketingProjections.read = true`.
|
|
795
795
|
marketingCatalog: {
|
|
@@ -2539,7 +2539,7 @@ var EntitlementService = class {
|
|
|
2539
2539
|
// ---------------------------------------------------------------------
|
|
2540
2540
|
/**
|
|
2541
2541
|
* Plan fallback for TRIAL/PENDING_SALES: returns the PlanVersion active
|
|
2542
|
-
* as of `asOf
|
|
2542
|
+
* as of `asOf`. If the repo does not implement
|
|
2543
2543
|
* `findActive`, we fall back to `findLatestLive` (backward compat for
|
|
2544
2544
|
* adapters without `validFrom` columns).
|
|
2545
2545
|
*/
|
|
@@ -3002,7 +3002,7 @@ function _ts_param14(paramIndex, decorator) {
|
|
|
3002
3002
|
}
|
|
3003
3003
|
__name(_ts_param14, "_ts_param");
|
|
3004
3004
|
var PLAN_CATALOG_IMPORT_SINK_TOKEN = /* @__PURE__ */ Symbol.for("saas-platform/PlanCatalogImportSink");
|
|
3005
|
-
var IMPORT_CHANGE_NOTE = "Initial import from saas.yaml
|
|
3005
|
+
var IMPORT_CHANGE_NOTE = "Initial import from saas.yaml";
|
|
3006
3006
|
var PlanCatalogImporterService = class {
|
|
3007
3007
|
static {
|
|
3008
3008
|
__name(this, "PlanCatalogImporterService");
|
|
@@ -3293,7 +3293,7 @@ var PublicCatalogController = class {
|
|
|
3293
3293
|
return merged;
|
|
3294
3294
|
}
|
|
3295
3295
|
/**
|
|
3296
|
-
*
|
|
3296
|
+
* — public catalog endpoint for bundles
|
|
3297
3297
|
* (stem list with live versions). If a `MarketingProjection` with
|
|
3298
3298
|
* `targetType=BUNDLE` + matching locale exists, it is merged in.
|
|
3299
3299
|
*/
|
|
@@ -7840,7 +7840,7 @@ var BundlesService = class _BundlesService {
|
|
|
7840
7840
|
* Publishes a draft version atomically. Steps:
|
|
7841
7841
|
* 1. Strict check on the draft definition (warn-only or blocking)
|
|
7842
7842
|
* 2. Enforce validFrom requirement + ordering against the predecessor
|
|
7843
|
-
* (
|
|
7843
|
+
* (analogous to PlanVersion)
|
|
7844
7844
|
* 3. Compute the diff against the predecessor version (latest live) →
|
|
7845
7845
|
* `publishedChanges` + `nonRegressive` via `classifyBundleVersionDiff`
|
|
7846
7846
|
* 4. Call Repository.publishDraft with the diff result + validity dates
|
|
@@ -7889,7 +7889,7 @@ var BundlesService = class _BundlesService {
|
|
|
7889
7889
|
if (!validFromInput) {
|
|
7890
7890
|
throw new import_common43.UnprocessableEntityException({
|
|
7891
7891
|
code: import_types20.CATALOG_ERROR_CODES.BUNDLE_VERSION_VALID_FROM_REQUIRED,
|
|
7892
|
-
message: "validFrom must be set when publishing (on the draft or the publish call)
|
|
7892
|
+
message: "validFrom must be set when publishing (on the draft or the publish call).."
|
|
7893
7893
|
});
|
|
7894
7894
|
}
|
|
7895
7895
|
const validFrom = new Date(validFromInput);
|
|
@@ -10125,7 +10125,7 @@ function buildPublicMarketingCatalogController(guards, projectKey, currency, vat
|
|
|
10125
10125
|
this.service = service;
|
|
10126
10126
|
}
|
|
10127
10127
|
/**
|
|
10128
|
-
* `?lang=de|tr|en` — alias `locale` accepted
|
|
10128
|
+
* `?lang=de|tr|en` — alias `locale` accepted.
|
|
10129
10129
|
* `?asOf=YYYY-MM-DD` — preview of a future or past catalog variant.
|
|
10130
10130
|
* Default = today. Returns the PlanVersion whose `validFrom`/`validUntil`
|
|
10131
10131
|
* span `asOf` inclusively by day (the validUntil day still counts,
|
|
@@ -10636,7 +10636,7 @@ var PlanVersionsService = class _PlanVersionsService {
|
|
|
10636
10636
|
if (!validFromInput) {
|
|
10637
10637
|
throw new import_common55.UnprocessableEntityException({
|
|
10638
10638
|
code: import_types26.CATALOG_ERROR_CODES.PLAN_VERSION_VALID_FROM_REQUIRED,
|
|
10639
|
-
message: "validFrom must be set when publishing (on the draft or the publish call)
|
|
10639
|
+
message: "validFrom must be set when publishing (on the draft or the publish call).."
|
|
10640
10640
|
});
|
|
10641
10641
|
}
|
|
10642
10642
|
const validFrom = new Date(validFromInput);
|
|
@@ -11153,7 +11153,7 @@ var PublishBundleVersionDto = class {
|
|
|
11153
11153
|
allowZeroPrice;
|
|
11154
11154
|
/**
|
|
11155
11155
|
* Required on publish if the draft carries no `validFrom`
|
|
11156
|
-
* (
|
|
11156
|
+
* (analogous to PublishPlanVersionDto).
|
|
11157
11157
|
* Service strictly checks > `validFrom` of the predecessor version.
|
|
11158
11158
|
*/
|
|
11159
11159
|
validFrom;
|
|
@@ -11939,7 +11939,7 @@ var CreatePlanVersionDraftDto = class {
|
|
|
11939
11939
|
marketed;
|
|
11940
11940
|
changeNote;
|
|
11941
11941
|
baseVersionId;
|
|
11942
|
-
/** Optional in the draft (required at publish). ISO date string
|
|
11942
|
+
/** Optional in the draft (required at publish). ISO date string.. */
|
|
11943
11943
|
validFrom;
|
|
11944
11944
|
/** Optional; null = unlimited. ISO date string. */
|
|
11945
11945
|
validUntil;
|
|
@@ -12114,7 +12114,7 @@ var PublishPlanVersionDto = class {
|
|
|
12114
12114
|
allowZeroPrice;
|
|
12115
12115
|
/**
|
|
12116
12116
|
* Required at publish (on the DTO or draft). The service strictly checks
|
|
12117
|
-
* `validFrom > predecessor.validFrom
|
|
12117
|
+
* `validFrom > predecessor.validFrom`..
|
|
12118
12118
|
*/
|
|
12119
12119
|
validFrom;
|
|
12120
12120
|
validUntil;
|
|
@@ -15208,6 +15208,7 @@ function _ts_decorate89(decorators, target, key, desc) {
|
|
|
15208
15208
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
15209
15209
|
}
|
|
15210
15210
|
__name(_ts_decorate89, "_ts_decorate");
|
|
15211
|
+
var PLATFORM_LOGGER = new import_common79.Logger("SaaSiCat");
|
|
15211
15212
|
var PLATFORM_SUBSCRIPTION_REPOSITORY_TOKEN = /* @__PURE__ */ Symbol.for("saas-platform-nest/PlatformSubscriptionRepository");
|
|
15212
15213
|
var STANDARD_MANIFEST_REGISTRATION_TOKEN = /* @__PURE__ */ Symbol.for("saas-platform-nest/StandardManifestRegistration");
|
|
15213
15214
|
function buildStandardManifestContribution(catalog, adminResources, promoCodes) {
|
|
@@ -15672,6 +15673,11 @@ var SaasPlatformModule = class _SaasPlatformModule {
|
|
|
15672
15673
|
useExisting: EnforceQuotaInterceptor
|
|
15673
15674
|
});
|
|
15674
15675
|
lightweightExports.push(PLAN_RESOLVER_PORT_TOKEN, StaticEntitlementService, StaticFeatureGuard, EnforceQuotaInterceptor, QUOTA_PROVIDERS_TOKEN);
|
|
15676
|
+
if (options.globalFeatureGuard === false) {
|
|
15677
|
+
PLATFORM_LOGGER.warn("globalFeatureGuard is off \u2014 the platform did NOT bind StaticFeatureGuard as an APP_GUARD. @RequireFeature only blocks on routes where you bound a feature guard yourself, behind your auth guard: @UseGuards(JwtAuthGuard, StaticFeatureGuard), or FeatureGuard from @saasicat/nest/billing on the V3 entitlement path. Any annotated route without one serves unlicensed traffic.");
|
|
15678
|
+
}
|
|
15679
|
+
} else {
|
|
15680
|
+
PLATFORM_LOGGER.warn("No plan resolver configured \u2014 @RequireFeature and @EnforceQuota are INERT. The platform registered neither StaticFeatureGuard nor EnforceQuotaInterceptor, so every annotated route serves unlicensed traffic and every quota is unlimited. Set one of: adapters.planResolver, defaultPlanId, or tenantBilling.");
|
|
15675
15681
|
}
|
|
15676
15682
|
const tenantControllers = [];
|
|
15677
15683
|
if (options.tenantManifest) {
|
|
@@ -17214,7 +17220,7 @@ var SaveRegistrationConfigSelectionDto = class {
|
|
|
17214
17220
|
billingCycle;
|
|
17215
17221
|
appliedPromoCode;
|
|
17216
17222
|
/**
|
|
17217
|
-
*
|
|
17223
|
+
* — Bundle consistency. ID of the `CheckoutOffer` that was
|
|
17218
17224
|
* created on the pricing page (`<app>/register?offer=<id>`). Passed
|
|
17219
17225
|
* through unchanged in `configJson`; the ActivationOrchestrator freezes it
|
|
17220
17226
|
* as `packageSnapshot` when the subscription is created and sets the offer
|
|
@@ -18354,7 +18360,7 @@ var FakePlanRepository = class {
|
|
|
18354
18360
|
if (v.planId === existing.planKey) this.versions.delete(id);
|
|
18355
18361
|
}
|
|
18356
18362
|
}
|
|
18357
|
-
// ─── Lifecycle
|
|
18363
|
+
// ─── Lifecycle ───
|
|
18358
18364
|
// Binding Plan ↔ PlanVersion: PlanVersion.planId === Plan.planKey
|
|
18359
18365
|
// (soft string reference). Lifecycle methods take planKey
|
|
18360
18366
|
// as input — the service resolves the plan UUID beforehand.
|
package/dist/admin/index.js
CHANGED
|
@@ -16,7 +16,7 @@ interface PlanVersionSnapshot {
|
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* Snapshot of an active SubscriptionBundle booking (P11.7.3 +
|
|
19
|
-
*
|
|
19
|
+
*). Resolved by the EntitlementService from the
|
|
20
20
|
* `subscription_bundles` junction + BundleRepository.findVersionById and
|
|
21
21
|
* passed to `aggregateLimits`.
|
|
22
22
|
*
|
|
@@ -158,7 +158,7 @@ declare class EntitlementService {
|
|
|
158
158
|
enforceLimit<T>(input: EnforceLimitInput<T>): Promise<T>;
|
|
159
159
|
/**
|
|
160
160
|
* Plan fallback for TRIAL/PENDING_SALES: returns the PlanVersion active
|
|
161
|
-
* as of `asOf
|
|
161
|
+
* as of `asOf`. If the repo does not implement
|
|
162
162
|
* `findActive`, we fall back to `findLatestLive` (backward compat for
|
|
163
163
|
* adapters without `validFrom` columns).
|
|
164
164
|
*/
|
|
@@ -172,7 +172,7 @@ declare class EntitlementService {
|
|
|
172
172
|
* point in time. Active = `canceledEffectiveAt === null` or
|
|
173
173
|
* `canceledEffectiveAt > now`.
|
|
174
174
|
*
|
|
175
|
-
* Spec:
|
|
175
|
+
* Spec:
|
|
176
176
|
*/
|
|
177
177
|
declare function filterActiveSubscriptionBundles(bundles: readonly SubscriptionBundleSnapshot[], now: Date): SubscriptionBundleSnapshot[];
|
|
178
178
|
/**
|
|
@@ -16,7 +16,7 @@ interface PlanVersionSnapshot {
|
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* Snapshot of an active SubscriptionBundle booking (P11.7.3 +
|
|
19
|
-
*
|
|
19
|
+
*). Resolved by the EntitlementService from the
|
|
20
20
|
* `subscription_bundles` junction + BundleRepository.findVersionById and
|
|
21
21
|
* passed to `aggregateLimits`.
|
|
22
22
|
*
|
|
@@ -158,7 +158,7 @@ declare class EntitlementService {
|
|
|
158
158
|
enforceLimit<T>(input: EnforceLimitInput<T>): Promise<T>;
|
|
159
159
|
/**
|
|
160
160
|
* Plan fallback for TRIAL/PENDING_SALES: returns the PlanVersion active
|
|
161
|
-
* as of `asOf
|
|
161
|
+
* as of `asOf`. If the repo does not implement
|
|
162
162
|
* `findActive`, we fall back to `findLatestLive` (backward compat for
|
|
163
163
|
* adapters without `validFrom` columns).
|
|
164
164
|
*/
|
|
@@ -172,7 +172,7 @@ declare class EntitlementService {
|
|
|
172
172
|
* point in time. Active = `canceledEffectiveAt === null` or
|
|
173
173
|
* `canceledEffectiveAt > now`.
|
|
174
174
|
*
|
|
175
|
-
* Spec:
|
|
175
|
+
* Spec:
|
|
176
176
|
*/
|
|
177
177
|
declare function filterActiveSubscriptionBundles(bundles: readonly SubscriptionBundleSnapshot[], now: Date): SubscriptionBundleSnapshot[];
|
|
178
178
|
/**
|
package/dist/billing/index.d.cts
CHANGED
|
@@ -4,11 +4,11 @@ import * as _nestjs_common from '@nestjs/common';
|
|
|
4
4
|
import { CanActivate, ExecutionContext, ArgumentsHost, Type, DynamicModule, ForwardReference, Provider } from '@nestjs/common';
|
|
5
5
|
export { Type as NestType } from '@nestjs/common';
|
|
6
6
|
import { Reflector, BaseExceptionFilter } from '@nestjs/core';
|
|
7
|
-
import { c as EntitlementService } from '../aggregation-
|
|
7
|
+
import { c as EntitlementService } from '../aggregation-mZ7WZROK.cjs';
|
|
8
8
|
import { P as ProviderSpec } from '../di-CcNeq9v-.cjs';
|
|
9
9
|
import { f as ContractFreezePort, g as ContractFreezeSourcePort } from '../subscription-bundles.module-DCpV-Pb5.cjs';
|
|
10
10
|
export { A as AUDIT_CONTEXT_RESOLVER_TOKEN, a as AuditContextResolver, b as AuthGuardList, C as CONTRACT_FREEZE_PORT_TOKEN, c as CONTRACT_FREEZE_PROJECT_KEY_TOKEN, d as CONTRACT_FREEZE_SOURCE_PORT_TOKEN, e as ContractFreezeBundleSnapshot, D as DuePendingPlanChange, P as PENDING_PLAN_QUERY_PORT_TOKEN, h as PendingPlanQueryPort, S as SELF_SERVICE_BLOCKED_BUNDLES_TOKEN, i as SELF_SERVICE_BLOCKED_PLANS_TOKEN, j as SUBSCRIPTION_USAGE_PORT_TOKEN, k as SUBSCRIPTION_WRITE_PORT_TOKEN, l as SelfServiceBlockedBundles, m as SelfServiceBlockedPlans, n as SubscriptionBundleControllerOptions, o as SubscriptionBundleModule, p as SubscriptionBundleModuleOptions, T as TENANT_AUTH_GUARDS_TOKEN, q as TENANT_ID_RESOLVER_TOKEN, r as TRIAL_PROJECTION_PORT_TOKEN, s as TenantBillingModule, t as TenantBillingModuleOptions, u as TenantIdResolver, v as TrialProjectionInput, w as TrialProjectionPort, U as USAGE_SNAPSHOT_PORT_TOKEN, x as USER_EMAIL_RESOLVER_TOKEN, y as USER_ID_RESOLVER_TOKEN, z as UserEmailResolver, B as UserIdResolver } from '../subscription-bundles.module-DCpV-Pb5.cjs';
|
|
11
|
-
export { A as AddBundleToSubscriptionInput, B as BundlePreviewSnapshot, C as CancelBundleFromSubscriptionInput, a as CancelSubscriptionDto, b as ChangePlanDto, c as CompleteOnboardingSubscriptionDto, d as ComposedTenantAuthGuard, L as LimitsCheckRow, P as PendingPlanMaterializationService, e as PlanChangeContext, f as PlanChangePreviewDto, g as PlanChangePreviewIssue, h as PlanChangePreviewService, i as PlanChangeType, j as PlanSnapshotDto, k as PreviewPlanChangeDto, l as ProrationDto, m as ProrationInput, R as RedundantFeatureHint, S as SubscriptionBundleAddPreviewDto, n as SubscriptionBundleCancelPreviewDto, o as SubscriptionBundleConfig, p as SubscriptionBundlePreviewContext, q as SubscriptionBundlePreviewIssue, r as SubscriptionBundlePreviewService, s as SubscriptionBundlesService, T as TenantAdminGuard, t as TenantBillingController, U as UsageResponse, u as addMonths, v as computeProration, w as resolveBundleCancelEffectiveAt, x as resolveBundlePriceNet } from '../tenant-billing.controller-
|
|
11
|
+
export { A as AddBundleToSubscriptionInput, B as BundlePreviewSnapshot, C as CancelBundleFromSubscriptionInput, a as CancelSubscriptionDto, b as ChangePlanDto, c as CompleteOnboardingSubscriptionDto, d as ComposedTenantAuthGuard, L as LimitsCheckRow, P as PendingPlanMaterializationService, e as PlanChangeContext, f as PlanChangePreviewDto, g as PlanChangePreviewIssue, h as PlanChangePreviewService, i as PlanChangeType, j as PlanSnapshotDto, k as PreviewPlanChangeDto, l as ProrationDto, m as ProrationInput, R as RedundantFeatureHint, S as SubscriptionBundleAddPreviewDto, n as SubscriptionBundleCancelPreviewDto, o as SubscriptionBundleConfig, p as SubscriptionBundlePreviewContext, q as SubscriptionBundlePreviewIssue, r as SubscriptionBundlePreviewService, s as SubscriptionBundlesService, T as TenantAdminGuard, t as TenantBillingController, U as UsageResponse, u as addMonths, v as computeProration, w as resolveBundleCancelEffectiveAt, x as resolveBundlePriceNet } from '../tenant-billing.controller-DubP6-Md.cjs';
|
|
12
12
|
import { S as SubscriptionContractService } from '../subscription-contract.service--cm47ZJJ.cjs';
|
|
13
13
|
import '../plan-resolution-CFCoUkrE.cjs';
|
|
14
14
|
import '../service-D48clObR.cjs';
|
|
@@ -304,7 +304,7 @@ interface PlanCatalogModuleOptions {
|
|
|
304
304
|
currency: string;
|
|
305
305
|
vatRate: number;
|
|
306
306
|
/**
|
|
307
|
-
* App-wide marketing configuration
|
|
307
|
+
* App-wide marketing configuration — including the
|
|
308
308
|
* `availableLocales` pool. Flows into `PLAN_CATALOG_TOKEN.marketing`
|
|
309
309
|
* and from there into the admin manifest (`project.availableLocales`).
|
|
310
310
|
*/
|
|
@@ -334,7 +334,7 @@ interface PlanCatalogBuildSettings {
|
|
|
334
334
|
app?: PlanCatalog['app'];
|
|
335
335
|
currency: string;
|
|
336
336
|
vatRate: number;
|
|
337
|
-
/** App-wide marketing configuration
|
|
337
|
+
/** App-wide marketing configuration. Optional. */
|
|
338
338
|
marketing?: PlanCatalog['marketing'];
|
|
339
339
|
}
|
|
340
340
|
declare function buildPlanCatalogFromSnapshot(settings: PlanCatalogBuildSettings, snapshot: PlanCatalogReadSnapshot): PlanCatalog;
|
|
@@ -467,7 +467,7 @@ interface PlanResponseEntry {
|
|
|
467
467
|
popular: boolean;
|
|
468
468
|
quotas: Record<string, number>;
|
|
469
469
|
features: string[];
|
|
470
|
-
/**
|
|
470
|
+
/** — optional, present if a MarketingProjection exists. */
|
|
471
471
|
marketing?: MarketingFields;
|
|
472
472
|
}
|
|
473
473
|
interface PublicBundleEntry {
|
|
@@ -500,7 +500,7 @@ declare class PublicCatalogController {
|
|
|
500
500
|
listPlans(lang?: string, localeParam?: string): Promise<PlanResponseEntry[]>;
|
|
501
501
|
listFeatureRegistry(): Promise<FeatureUiRegistry>;
|
|
502
502
|
/**
|
|
503
|
-
*
|
|
503
|
+
* — public catalog endpoint for bundles
|
|
504
504
|
* (stem list with live versions). If a `MarketingProjection` with
|
|
505
505
|
* `targetType=BUNDLE` + matching locale exists, it is merged in.
|
|
506
506
|
*/
|
|
@@ -520,7 +520,7 @@ interface PublicCatalogModuleOptions {
|
|
|
520
520
|
/** Required: consumer-specific FeatureUiRegistry. */
|
|
521
521
|
featureUiRegistry: FeatureUiRegistry;
|
|
522
522
|
/**
|
|
523
|
-
*
|
|
523
|
+
* — app identity (e.g. "clubapp"). Used
|
|
524
524
|
* for marketing lookups + bundle filters.
|
|
525
525
|
* Optional; if omitted, the new endpoints return empty lists.
|
|
526
526
|
*/
|
package/dist/billing/index.d.ts
CHANGED
|
@@ -4,11 +4,11 @@ import * as _nestjs_common from '@nestjs/common';
|
|
|
4
4
|
import { CanActivate, ExecutionContext, ArgumentsHost, Type, DynamicModule, ForwardReference, Provider } from '@nestjs/common';
|
|
5
5
|
export { Type as NestType } from '@nestjs/common';
|
|
6
6
|
import { Reflector, BaseExceptionFilter } from '@nestjs/core';
|
|
7
|
-
import { c as EntitlementService } from '../aggregation-
|
|
7
|
+
import { c as EntitlementService } from '../aggregation-DP5zfKbU.js';
|
|
8
8
|
import { P as ProviderSpec } from '../di-CcNeq9v-.js';
|
|
9
9
|
import { f as ContractFreezePort, g as ContractFreezeSourcePort } from '../subscription-bundles.module-BQmoozm5.js';
|
|
10
10
|
export { A as AUDIT_CONTEXT_RESOLVER_TOKEN, a as AuditContextResolver, b as AuthGuardList, C as CONTRACT_FREEZE_PORT_TOKEN, c as CONTRACT_FREEZE_PROJECT_KEY_TOKEN, d as CONTRACT_FREEZE_SOURCE_PORT_TOKEN, e as ContractFreezeBundleSnapshot, D as DuePendingPlanChange, P as PENDING_PLAN_QUERY_PORT_TOKEN, h as PendingPlanQueryPort, S as SELF_SERVICE_BLOCKED_BUNDLES_TOKEN, i as SELF_SERVICE_BLOCKED_PLANS_TOKEN, j as SUBSCRIPTION_USAGE_PORT_TOKEN, k as SUBSCRIPTION_WRITE_PORT_TOKEN, l as SelfServiceBlockedBundles, m as SelfServiceBlockedPlans, n as SubscriptionBundleControllerOptions, o as SubscriptionBundleModule, p as SubscriptionBundleModuleOptions, T as TENANT_AUTH_GUARDS_TOKEN, q as TENANT_ID_RESOLVER_TOKEN, r as TRIAL_PROJECTION_PORT_TOKEN, s as TenantBillingModule, t as TenantBillingModuleOptions, u as TenantIdResolver, v as TrialProjectionInput, w as TrialProjectionPort, U as USAGE_SNAPSHOT_PORT_TOKEN, x as USER_EMAIL_RESOLVER_TOKEN, y as USER_ID_RESOLVER_TOKEN, z as UserEmailResolver, B as UserIdResolver } from '../subscription-bundles.module-BQmoozm5.js';
|
|
11
|
-
export { A as AddBundleToSubscriptionInput, B as BundlePreviewSnapshot, C as CancelBundleFromSubscriptionInput, a as CancelSubscriptionDto, b as ChangePlanDto, c as CompleteOnboardingSubscriptionDto, d as ComposedTenantAuthGuard, L as LimitsCheckRow, P as PendingPlanMaterializationService, e as PlanChangeContext, f as PlanChangePreviewDto, g as PlanChangePreviewIssue, h as PlanChangePreviewService, i as PlanChangeType, j as PlanSnapshotDto, k as PreviewPlanChangeDto, l as ProrationDto, m as ProrationInput, R as RedundantFeatureHint, S as SubscriptionBundleAddPreviewDto, n as SubscriptionBundleCancelPreviewDto, o as SubscriptionBundleConfig, p as SubscriptionBundlePreviewContext, q as SubscriptionBundlePreviewIssue, r as SubscriptionBundlePreviewService, s as SubscriptionBundlesService, T as TenantAdminGuard, t as TenantBillingController, U as UsageResponse, u as addMonths, v as computeProration, w as resolveBundleCancelEffectiveAt, x as resolveBundlePriceNet } from '../tenant-billing.controller-
|
|
11
|
+
export { A as AddBundleToSubscriptionInput, B as BundlePreviewSnapshot, C as CancelBundleFromSubscriptionInput, a as CancelSubscriptionDto, b as ChangePlanDto, c as CompleteOnboardingSubscriptionDto, d as ComposedTenantAuthGuard, L as LimitsCheckRow, P as PendingPlanMaterializationService, e as PlanChangeContext, f as PlanChangePreviewDto, g as PlanChangePreviewIssue, h as PlanChangePreviewService, i as PlanChangeType, j as PlanSnapshotDto, k as PreviewPlanChangeDto, l as ProrationDto, m as ProrationInput, R as RedundantFeatureHint, S as SubscriptionBundleAddPreviewDto, n as SubscriptionBundleCancelPreviewDto, o as SubscriptionBundleConfig, p as SubscriptionBundlePreviewContext, q as SubscriptionBundlePreviewIssue, r as SubscriptionBundlePreviewService, s as SubscriptionBundlesService, T as TenantAdminGuard, t as TenantBillingController, U as UsageResponse, u as addMonths, v as computeProration, w as resolveBundleCancelEffectiveAt, x as resolveBundlePriceNet } from '../tenant-billing.controller-7o4ObzGs.js';
|
|
12
12
|
import { S as SubscriptionContractService } from '../subscription-contract.service--cm47ZJJ.js';
|
|
13
13
|
import '../plan-resolution-CFCoUkrE.js';
|
|
14
14
|
import '../service-D48clObR.js';
|
|
@@ -304,7 +304,7 @@ interface PlanCatalogModuleOptions {
|
|
|
304
304
|
currency: string;
|
|
305
305
|
vatRate: number;
|
|
306
306
|
/**
|
|
307
|
-
* App-wide marketing configuration
|
|
307
|
+
* App-wide marketing configuration — including the
|
|
308
308
|
* `availableLocales` pool. Flows into `PLAN_CATALOG_TOKEN.marketing`
|
|
309
309
|
* and from there into the admin manifest (`project.availableLocales`).
|
|
310
310
|
*/
|
|
@@ -334,7 +334,7 @@ interface PlanCatalogBuildSettings {
|
|
|
334
334
|
app?: PlanCatalog['app'];
|
|
335
335
|
currency: string;
|
|
336
336
|
vatRate: number;
|
|
337
|
-
/** App-wide marketing configuration
|
|
337
|
+
/** App-wide marketing configuration. Optional. */
|
|
338
338
|
marketing?: PlanCatalog['marketing'];
|
|
339
339
|
}
|
|
340
340
|
declare function buildPlanCatalogFromSnapshot(settings: PlanCatalogBuildSettings, snapshot: PlanCatalogReadSnapshot): PlanCatalog;
|
|
@@ -467,7 +467,7 @@ interface PlanResponseEntry {
|
|
|
467
467
|
popular: boolean;
|
|
468
468
|
quotas: Record<string, number>;
|
|
469
469
|
features: string[];
|
|
470
|
-
/**
|
|
470
|
+
/** — optional, present if a MarketingProjection exists. */
|
|
471
471
|
marketing?: MarketingFields;
|
|
472
472
|
}
|
|
473
473
|
interface PublicBundleEntry {
|
|
@@ -500,7 +500,7 @@ declare class PublicCatalogController {
|
|
|
500
500
|
listPlans(lang?: string, localeParam?: string): Promise<PlanResponseEntry[]>;
|
|
501
501
|
listFeatureRegistry(): Promise<FeatureUiRegistry>;
|
|
502
502
|
/**
|
|
503
|
-
*
|
|
503
|
+
* — public catalog endpoint for bundles
|
|
504
504
|
* (stem list with live versions). If a `MarketingProjection` with
|
|
505
505
|
* `targetType=BUNDLE` + matching locale exists, it is merged in.
|
|
506
506
|
*/
|
|
@@ -520,7 +520,7 @@ interface PublicCatalogModuleOptions {
|
|
|
520
520
|
/** Required: consumer-specific FeatureUiRegistry. */
|
|
521
521
|
featureUiRegistry: FeatureUiRegistry;
|
|
522
522
|
/**
|
|
523
|
-
*
|
|
523
|
+
* — app identity (e.g. "clubapp"). Used
|
|
524
524
|
* for marketing lookups + bundle filters.
|
|
525
525
|
* Optional; if omitted, the new endpoints return empty lists.
|
|
526
526
|
*/
|
package/dist/billing/index.js
CHANGED
|
@@ -58,7 +58,7 @@ import {
|
|
|
58
58
|
periodEndWithMinLead,
|
|
59
59
|
resolveBundleCancelEffectiveAt,
|
|
60
60
|
resolveBundlePriceNet
|
|
61
|
-
} from "../chunk-
|
|
61
|
+
} from "../chunk-UO64MK3Q.js";
|
|
62
62
|
import "../chunk-VQQWF7MW.js";
|
|
63
63
|
import "../chunk-B7NRY2LV.js";
|
|
64
64
|
import {
|
|
@@ -81,7 +81,7 @@ import "../chunk-YSC46BGM.js";
|
|
|
81
81
|
import {
|
|
82
82
|
SUBSCRIPTION_BUNDLE_CONFIG_TOKEN,
|
|
83
83
|
SUBSCRIPTION_BUNDLE_REPOSITORY_TOKEN
|
|
84
|
-
} from "../chunk-
|
|
84
|
+
} from "../chunk-NNNXXUPT.js";
|
|
85
85
|
import {
|
|
86
86
|
PLAN_CATALOG_READ_SINK_TOKEN,
|
|
87
87
|
PLAN_CATALOG_TOKEN,
|
package/dist/catalog/index.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { B as BundlesService, C as CatalogEntriesService, a as CatalogServiceConfig, M as MarketingProjectionsService, b as MarketingSettingsService, P as PlanVersionsService, c as PlansService, d as PromotionsService, e as PublicMarketingCatalogService } from '../plan-versions.service-
|
|
1
|
+
export { B as BundlesService, C as CatalogEntriesService, a as CatalogServiceConfig, M as MarketingProjectionsService, b as MarketingSettingsService, P as PlanVersionsService, c as PlansService, d as PromotionsService, e as PublicMarketingCatalogService } from '../plan-versions.service-_saKzb50.cjs';
|
|
2
2
|
import { Type, CanActivate } from '@nestjs/common';
|
|
3
|
-
export { C as CatalogControllerConfig, a as CatalogModule, b as CatalogModuleOptions } from '../catalog.module-
|
|
3
|
+
export { C as CatalogControllerConfig, a as CatalogModule, b as CatalogModuleOptions } from '../catalog.module-D-_pQDNA.cjs';
|
|
4
4
|
import { StrictModeWarningCode, StrictModeWarning, DiscoverySnapshot, ApprovedCatalogKeys, DiscoveredQuota, CatalogEntryRepository, PlanVersionRow, BundleVersionRow, DiscoveryStatus, CatalogEntryI18n, PromotionType, PromotionValue, PromotionTargetType, PromotionBillingCycle, PromotionI18n } from '@saasicat/types';
|
|
5
5
|
import '../discovery.scanner-DLgEvuoy.cjs';
|
|
6
6
|
import '@nestjs/core';
|
|
@@ -36,7 +36,7 @@ declare function buildPlansController(guards: Array<Type<CanActivate>>): Type;
|
|
|
36
36
|
*/
|
|
37
37
|
declare function buildPlanVersionsController(guards: Array<Type<CanActivate>>): Type;
|
|
38
38
|
|
|
39
|
-
/** Repository for `plans` (
|
|
39
|
+
/** Repository for `plans` (Plan master CRUD). */
|
|
40
40
|
declare const PLAN_REPOSITORY_TOKEN: unique symbol;
|
|
41
41
|
/** Repository for `bundles` + `bundle_versions`. */
|
|
42
42
|
declare const BUNDLE_REPOSITORY_TOKEN: unique symbol;
|
|
@@ -44,12 +44,12 @@ declare const BUNDLE_REPOSITORY_TOKEN: unique symbol;
|
|
|
44
44
|
declare const MARKETING_PROJECTION_REPOSITORY_TOKEN: unique symbol;
|
|
45
45
|
/**
|
|
46
46
|
* Repository for `capability_catalog_entries`, `feature_catalog_entries`
|
|
47
|
-
* and `quota_catalog_entries` (Discovery review
|
|
47
|
+
* and `quota_catalog_entries` (Discovery review).
|
|
48
48
|
*/
|
|
49
49
|
declare const CATALOG_ENTRY_REPOSITORY_TOKEN: unique symbol;
|
|
50
|
-
/** Repository for `promotions` (time-scheduled price campaigns
|
|
50
|
+
/** Repository for `promotions` (time-scheduled price campaigns). */
|
|
51
51
|
declare const PROMOTION_REPOSITORY_TOKEN: unique symbol;
|
|
52
|
-
/** Repository for `marketing_settings` (activeLocales
|
|
52
|
+
/** Repository for `marketing_settings` (activeLocales). */
|
|
53
53
|
declare const MARKETING_SETTINGS_REPOSITORY_TOKEN: unique symbol;
|
|
54
54
|
/**
|
|
55
55
|
* Service configuration: current app identity, strict mode.
|
|
@@ -105,7 +105,7 @@ declare function validateBundleDraft(draft: {
|
|
|
105
105
|
}, snapshot: DiscoverySnapshot, knownPlanKeys?: Set<string> | null, marketedOnlyFeatures?: ReadonlySet<string>, approved?: ApprovedCatalogKeys | null): StrictModeWarning[];
|
|
106
106
|
/**
|
|
107
107
|
* Validates a PlanVersion draft definition against the discovery snapshot
|
|
108
|
-
|
|
108
|
+
*. Returns a (possibly empty) list of
|
|
109
109
|
* warnings.
|
|
110
110
|
*
|
|
111
111
|
* Checked:
|
|
@@ -347,7 +347,7 @@ declare class PublishBundleVersionDto {
|
|
|
347
347
|
allowZeroPrice?: boolean;
|
|
348
348
|
/**
|
|
349
349
|
* Required on publish if the draft carries no `validFrom`
|
|
350
|
-
* (
|
|
350
|
+
* (analogous to PublishPlanVersionDto).
|
|
351
351
|
* Service strictly checks > `validFrom` of the predecessor version.
|
|
352
352
|
*/
|
|
353
353
|
validFrom?: string | null;
|
|
@@ -502,7 +502,7 @@ declare class CreatePlanVersionDraftDto {
|
|
|
502
502
|
marketed?: boolean;
|
|
503
503
|
changeNote?: string;
|
|
504
504
|
baseVersionId?: string | null;
|
|
505
|
-
/** Optional in the draft (required at publish). ISO date string
|
|
505
|
+
/** Optional in the draft (required at publish). ISO date string.. */
|
|
506
506
|
validFrom?: string | null;
|
|
507
507
|
/** Optional; null = unlimited. ISO date string. */
|
|
508
508
|
validUntil?: string | null;
|
|
@@ -529,7 +529,7 @@ declare class PublishPlanVersionDto {
|
|
|
529
529
|
allowZeroPrice?: boolean;
|
|
530
530
|
/**
|
|
531
531
|
* Required at publish (on the DTO or draft). The service strictly checks
|
|
532
|
-
* `validFrom > predecessor.validFrom
|
|
532
|
+
* `validFrom > predecessor.validFrom`..
|
|
533
533
|
*/
|
|
534
534
|
validFrom?: string | null;
|
|
535
535
|
validUntil?: string | null;
|
package/dist/catalog/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { B as BundlesService, C as CatalogEntriesService, a as CatalogServiceConfig, M as MarketingProjectionsService, b as MarketingSettingsService, P as PlanVersionsService, c as PlansService, d as PromotionsService, e as PublicMarketingCatalogService } from '../plan-versions.service-
|
|
1
|
+
export { B as BundlesService, C as CatalogEntriesService, a as CatalogServiceConfig, M as MarketingProjectionsService, b as MarketingSettingsService, P as PlanVersionsService, c as PlansService, d as PromotionsService, e as PublicMarketingCatalogService } from '../plan-versions.service-B-YoE4SZ.js';
|
|
2
2
|
import { Type, CanActivate } from '@nestjs/common';
|
|
3
|
-
export { C as CatalogControllerConfig, a as CatalogModule, b as CatalogModuleOptions } from '../catalog.module-
|
|
3
|
+
export { C as CatalogControllerConfig, a as CatalogModule, b as CatalogModuleOptions } from '../catalog.module-CQr1FpkI.js';
|
|
4
4
|
import { StrictModeWarningCode, StrictModeWarning, DiscoverySnapshot, ApprovedCatalogKeys, DiscoveredQuota, CatalogEntryRepository, PlanVersionRow, BundleVersionRow, DiscoveryStatus, CatalogEntryI18n, PromotionType, PromotionValue, PromotionTargetType, PromotionBillingCycle, PromotionI18n } from '@saasicat/types';
|
|
5
5
|
import '../discovery.scanner-DLgEvuoy.js';
|
|
6
6
|
import '@nestjs/core';
|
|
@@ -36,7 +36,7 @@ declare function buildPlansController(guards: Array<Type<CanActivate>>): Type;
|
|
|
36
36
|
*/
|
|
37
37
|
declare function buildPlanVersionsController(guards: Array<Type<CanActivate>>): Type;
|
|
38
38
|
|
|
39
|
-
/** Repository for `plans` (
|
|
39
|
+
/** Repository for `plans` (Plan master CRUD). */
|
|
40
40
|
declare const PLAN_REPOSITORY_TOKEN: unique symbol;
|
|
41
41
|
/** Repository for `bundles` + `bundle_versions`. */
|
|
42
42
|
declare const BUNDLE_REPOSITORY_TOKEN: unique symbol;
|
|
@@ -44,12 +44,12 @@ declare const BUNDLE_REPOSITORY_TOKEN: unique symbol;
|
|
|
44
44
|
declare const MARKETING_PROJECTION_REPOSITORY_TOKEN: unique symbol;
|
|
45
45
|
/**
|
|
46
46
|
* Repository for `capability_catalog_entries`, `feature_catalog_entries`
|
|
47
|
-
* and `quota_catalog_entries` (Discovery review
|
|
47
|
+
* and `quota_catalog_entries` (Discovery review).
|
|
48
48
|
*/
|
|
49
49
|
declare const CATALOG_ENTRY_REPOSITORY_TOKEN: unique symbol;
|
|
50
|
-
/** Repository for `promotions` (time-scheduled price campaigns
|
|
50
|
+
/** Repository for `promotions` (time-scheduled price campaigns). */
|
|
51
51
|
declare const PROMOTION_REPOSITORY_TOKEN: unique symbol;
|
|
52
|
-
/** Repository for `marketing_settings` (activeLocales
|
|
52
|
+
/** Repository for `marketing_settings` (activeLocales). */
|
|
53
53
|
declare const MARKETING_SETTINGS_REPOSITORY_TOKEN: unique symbol;
|
|
54
54
|
/**
|
|
55
55
|
* Service configuration: current app identity, strict mode.
|
|
@@ -105,7 +105,7 @@ declare function validateBundleDraft(draft: {
|
|
|
105
105
|
}, snapshot: DiscoverySnapshot, knownPlanKeys?: Set<string> | null, marketedOnlyFeatures?: ReadonlySet<string>, approved?: ApprovedCatalogKeys | null): StrictModeWarning[];
|
|
106
106
|
/**
|
|
107
107
|
* Validates a PlanVersion draft definition against the discovery snapshot
|
|
108
|
-
|
|
108
|
+
*. Returns a (possibly empty) list of
|
|
109
109
|
* warnings.
|
|
110
110
|
*
|
|
111
111
|
* Checked:
|
|
@@ -347,7 +347,7 @@ declare class PublishBundleVersionDto {
|
|
|
347
347
|
allowZeroPrice?: boolean;
|
|
348
348
|
/**
|
|
349
349
|
* Required on publish if the draft carries no `validFrom`
|
|
350
|
-
* (
|
|
350
|
+
* (analogous to PublishPlanVersionDto).
|
|
351
351
|
* Service strictly checks > `validFrom` of the predecessor version.
|
|
352
352
|
*/
|
|
353
353
|
validFrom?: string | null;
|
|
@@ -502,7 +502,7 @@ declare class CreatePlanVersionDraftDto {
|
|
|
502
502
|
marketed?: boolean;
|
|
503
503
|
changeNote?: string;
|
|
504
504
|
baseVersionId?: string | null;
|
|
505
|
-
/** Optional in the draft (required at publish). ISO date string
|
|
505
|
+
/** Optional in the draft (required at publish). ISO date string.. */
|
|
506
506
|
validFrom?: string | null;
|
|
507
507
|
/** Optional; null = unlimited. ISO date string. */
|
|
508
508
|
validUntil?: string | null;
|
|
@@ -529,7 +529,7 @@ declare class PublishPlanVersionDto {
|
|
|
529
529
|
allowZeroPrice?: boolean;
|
|
530
530
|
/**
|
|
531
531
|
* Required at publish (on the DTO or draft). The service strictly checks
|
|
532
|
-
* `validFrom > predecessor.validFrom
|
|
532
|
+
* `validFrom > predecessor.validFrom`..
|
|
533
533
|
*/
|
|
534
534
|
validFrom?: string | null;
|
|
535
535
|
validUntil?: string | null;
|
package/dist/catalog/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
runSeedGateFromFile,
|
|
7
7
|
seedGateExitCode,
|
|
8
8
|
validateSeedAgainstSnapshot
|
|
9
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-7ZPFQXHM.js";
|
|
10
10
|
import "../chunk-74SCJ4HF.js";
|
|
11
11
|
import {
|
|
12
12
|
ADVISORY_STRICT_MODE_CODES,
|
|
@@ -56,7 +56,7 @@ import {
|
|
|
56
56
|
quotaApprovalSignature,
|
|
57
57
|
validateBundleDraft,
|
|
58
58
|
validatePlanDraft
|
|
59
|
-
} from "../chunk-
|
|
59
|
+
} from "../chunk-7X5MSAIL.js";
|
|
60
60
|
import "../chunk-WPUVJRIN.js";
|
|
61
61
|
import "../chunk-E56W4U2P.js";
|
|
62
62
|
import "../chunk-YSC46BGM.js";
|
|
@@ -21,23 +21,23 @@ interface CatalogModuleOptions {
|
|
|
21
21
|
marketingProjectionRepository?: ProviderSpec<MarketingProjectionRepository>;
|
|
22
22
|
/**
|
|
23
23
|
* Adapter for `capability_/feature_/quota_catalog_entries` persistence
|
|
24
|
-
* (discovery review
|
|
24
|
+
* (discovery review). Optional — if omitted,
|
|
25
25
|
* CatalogEntriesService + controller are not registered.
|
|
26
26
|
*/
|
|
27
27
|
catalogEntryRepository?: ProviderSpec<CatalogEntryRepository>;
|
|
28
28
|
/**
|
|
29
|
-
* Adapter for `promotions` persistence
|
|
29
|
+
* Adapter for `promotions` persistence. Optional — if
|
|
30
30
|
* omitted, PromotionsService + controller are not registered.
|
|
31
31
|
*/
|
|
32
32
|
promotionRepository?: ProviderSpec<PromotionRepository>;
|
|
33
33
|
/**
|
|
34
|
-
* Adapter for `marketing_settings` persistence (
|
|
34
|
+
* Adapter for `marketing_settings` persistence (
|
|
35
35
|
* `activeLocales`). Optional.
|
|
36
36
|
*/
|
|
37
37
|
marketingSettingsRepository?: ProviderSpec<MarketingSettingsRepository>;
|
|
38
38
|
/**
|
|
39
39
|
* Auth-free pricing-page endpoint `GET /public/marketing-catalog`
|
|
40
|
-
|
|
40
|
+
*. Registered only when plan-, marketingProjection-
|
|
41
41
|
* and promotionRepository are set. `guards` is usually `[]`.
|
|
42
42
|
*/
|
|
43
43
|
publicMarketingCatalog?: {
|
|
@@ -47,7 +47,7 @@ interface CatalogModuleOptions {
|
|
|
47
47
|
vatRate: number;
|
|
48
48
|
};
|
|
49
49
|
/**
|
|
50
|
-
*
|
|
50
|
+
* — adapter for `plans` master-record persistence.
|
|
51
51
|
* Optional; if omitted, PlansService + controller are not
|
|
52
52
|
* registered (apps without a need for the plan editor stay unchanged).
|
|
53
53
|
*/
|
|
@@ -82,7 +82,7 @@ interface CatalogModuleOptions {
|
|
|
82
82
|
* per feature — the same one passed to `PublicCatalogModule.forRoot`). The
|
|
83
83
|
* discovery auto-sync seeds EMPTY `FeatureCatalogEntry` fields
|
|
84
84
|
* (label/description/icon) from it at boot; SuperAdmin edits stay untouched. This
|
|
85
|
-
* makes `FeatureCatalogEntry` the SSOT for UI metadata
|
|
85
|
+
* makes `FeatureCatalogEntry` the SSOT for UI metadata.
|
|
86
86
|
*/
|
|
87
87
|
featureUiRegistry?: FeatureUiRegistry;
|
|
88
88
|
/**
|
|
@@ -21,23 +21,23 @@ interface CatalogModuleOptions {
|
|
|
21
21
|
marketingProjectionRepository?: ProviderSpec<MarketingProjectionRepository>;
|
|
22
22
|
/**
|
|
23
23
|
* Adapter for `capability_/feature_/quota_catalog_entries` persistence
|
|
24
|
-
* (discovery review
|
|
24
|
+
* (discovery review). Optional — if omitted,
|
|
25
25
|
* CatalogEntriesService + controller are not registered.
|
|
26
26
|
*/
|
|
27
27
|
catalogEntryRepository?: ProviderSpec<CatalogEntryRepository>;
|
|
28
28
|
/**
|
|
29
|
-
* Adapter for `promotions` persistence
|
|
29
|
+
* Adapter for `promotions` persistence. Optional — if
|
|
30
30
|
* omitted, PromotionsService + controller are not registered.
|
|
31
31
|
*/
|
|
32
32
|
promotionRepository?: ProviderSpec<PromotionRepository>;
|
|
33
33
|
/**
|
|
34
|
-
* Adapter for `marketing_settings` persistence (
|
|
34
|
+
* Adapter for `marketing_settings` persistence (
|
|
35
35
|
* `activeLocales`). Optional.
|
|
36
36
|
*/
|
|
37
37
|
marketingSettingsRepository?: ProviderSpec<MarketingSettingsRepository>;
|
|
38
38
|
/**
|
|
39
39
|
* Auth-free pricing-page endpoint `GET /public/marketing-catalog`
|
|
40
|
-
|
|
40
|
+
*. Registered only when plan-, marketingProjection-
|
|
41
41
|
* and promotionRepository are set. `guards` is usually `[]`.
|
|
42
42
|
*/
|
|
43
43
|
publicMarketingCatalog?: {
|
|
@@ -47,7 +47,7 @@ interface CatalogModuleOptions {
|
|
|
47
47
|
vatRate: number;
|
|
48
48
|
};
|
|
49
49
|
/**
|
|
50
|
-
*
|
|
50
|
+
* — adapter for `plans` master-record persistence.
|
|
51
51
|
* Optional; if omitted, PlansService + controller are not
|
|
52
52
|
* registered (apps without a need for the plan editor stay unchanged).
|
|
53
53
|
*/
|
|
@@ -82,7 +82,7 @@ interface CatalogModuleOptions {
|
|
|
82
82
|
* per feature — the same one passed to `PublicCatalogModule.forRoot`). The
|
|
83
83
|
* discovery auto-sync seeds EMPTY `FeatureCatalogEntry` fields
|
|
84
84
|
* (label/description/icon) from it at boot; SuperAdmin edits stay untouched. This
|
|
85
|
-
* makes `FeatureCatalogEntry` the SSOT for UI metadata
|
|
85
|
+
* makes `FeatureCatalogEntry` the SSOT for UI metadata.
|
|
86
86
|
*/
|
|
87
87
|
featureUiRegistry?: FeatureUiRegistry;
|
|
88
88
|
/**
|