@saasicat/nest 0.13.0 → 0.15.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.
Files changed (63) hide show
  1. package/dist/_entries.cjs +1529 -1345
  2. package/dist/admin/index.d.cts +8 -6
  3. package/dist/admin/index.d.ts +8 -6
  4. package/dist/admin/index.js +13 -12
  5. package/dist/{admin-resources.module-Cms8MY6h.d.ts → admin-resources.module-BY5r_1MG.d.ts} +29 -3
  6. package/dist/{admin-resources.module-BZN_yBFj.d.cts → admin-resources.module-DGgGSdzN.d.cts} +29 -3
  7. package/dist/{admin-stats.module-15ac5KY3.d.ts → admin-stats.service-Db2exT_d.d.ts} +2 -23
  8. package/dist/{admin-stats.module-v4SVvWzj.d.cts → admin-stats.service-HUZIU448.d.cts} +2 -23
  9. package/dist/{aggregation-CfI0bOsQ.d.cts → aggregation-SKfXu09x.d.cts} +35 -3
  10. package/dist/{aggregation-BibpEO0t.d.ts → aggregation-o0LMenvl.d.ts} +35 -3
  11. package/dist/billing/index.d.cts +2 -2
  12. package/dist/billing/index.d.ts +2 -2
  13. package/dist/billing/index.js +4 -3
  14. package/dist/catalog/index.js +3 -2
  15. package/dist/checkout-offer/index.d.cts +2 -1
  16. package/dist/checkout-offer/index.d.ts +2 -1
  17. package/dist/checkout-offer/index.js +2 -1
  18. package/dist/checkout-offer.module-Ca3_TieR.d.ts +39 -0
  19. package/dist/checkout-offer.module-DmlpPevf.d.cts +39 -0
  20. package/dist/{checkout-offer.module-Y0hDOVrq.d.ts → checkout-offer.service-BX51dljL.d.cts} +1 -37
  21. package/dist/{checkout-offer.module-ZYF5IsDY.d.cts → checkout-offer.service-BX51dljL.d.ts} +1 -37
  22. package/dist/{chunk-2PNX2QL2.js → chunk-32EMXPU2.js} +1 -0
  23. package/dist/{chunk-DVFPKVLO.js → chunk-5KH2O4SF.js} +16 -4
  24. package/dist/{chunk-TXDH4FUA.js → chunk-7RRWI5LH.js} +1 -1
  25. package/dist/chunk-EWPF57AG.js +13 -0
  26. package/dist/{chunk-2WNM5THV.js → chunk-EXOLOJFZ.js} +58 -15
  27. package/dist/{chunk-HBFU5AN3.js → chunk-GJBXOCRZ.js} +4 -0
  28. package/dist/{chunk-IRWZC3GC.js → chunk-GLLCB4BP.js} +4 -0
  29. package/dist/{chunk-33TP26MR.js → chunk-P3DP6GJE.js} +4 -0
  30. package/dist/{chunk-FVT7KTUI.js → chunk-PLJEAUFU.js} +275 -61
  31. package/dist/{chunk-J3BMIR4W.js → chunk-YITTE646.js} +463 -83
  32. package/dist/chunk-YSC46BGM.js +21 -0
  33. package/dist/define-saasicat-CeDBX9ji.d.cts +46 -0
  34. package/dist/define-saasicat-Rc0rXrYG.d.ts +46 -0
  35. package/dist/enforce-quota.interceptor-CmbWX39L.d.ts +60 -0
  36. package/dist/enforce-quota.interceptor-DMw-bPyk.d.cts +60 -0
  37. package/dist/entitlement/index.d.cts +1 -1
  38. package/dist/entitlement/index.d.ts +1 -1
  39. package/dist/entitlement/index.js +7 -1
  40. package/dist/index.d.cts +12 -10
  41. package/dist/index.d.ts +12 -10
  42. package/dist/index.js +40 -19
  43. package/dist/platform/index.d.cts +13 -17
  44. package/dist/platform/index.d.ts +13 -17
  45. package/dist/platform/index.js +25 -26
  46. package/dist/promo/index.js +2 -1
  47. package/dist/{enforce-quota.interceptor-Dse3jSpU.d.cts → saas-platform.module-D3rUTiho.d.cts} +69 -62
  48. package/dist/{enforce-quota.interceptor-DMEvL-bE.d.ts → saas-platform.module-DLhoqKNA.d.ts} +69 -62
  49. package/dist/subscription-contract/index.d.cts +1 -1
  50. package/dist/subscription-contract/index.d.ts +1 -1
  51. package/dist/subscription-contract/index.js +1 -1
  52. package/dist/{subscription-contract.module-CG9fPKAr.d.cts → subscription-contract.module-B2uNvUJL.d.cts} +3 -1
  53. package/dist/{subscription-contract.module-CVebZzHR.d.ts → subscription-contract.module-edyhBr4n.d.ts} +3 -1
  54. package/dist/{subscription-bundle-preview.service-DBbrE_cw.d.ts → tenant-billing.controller-BwZRnJ3q.d.ts} +106 -106
  55. package/dist/{subscription-bundle-preview.service-BkJXHAeP.d.cts → tenant-billing.controller-CG4CaFUP.d.cts} +106 -106
  56. package/dist/testing/index.d.cts +6 -3
  57. package/dist/testing/index.d.ts +6 -3
  58. package/dist/testing/index.js +9 -7
  59. package/package.json +3 -3
  60. package/dist/chunk-LZHLGUQI.js +0 -190
  61. package/dist/chunk-WJ6BMDL3.js +0 -313
  62. package/dist/setup.service-BPwJ7My_.d.cts +0 -45
  63. package/dist/setup.service-D2mrdDDB.d.ts +0 -45
@@ -0,0 +1,21 @@
1
+ import {
2
+ __name
3
+ } from "./chunk-SHUYVCID.js";
4
+
5
+ // src/core/public-route.ts
6
+ import { SetMetadata } from "@nestjs/common";
7
+ var SAASICAT_PUBLIC_ROUTE_KEY = /* @__PURE__ */ Symbol.for("saasicat/nest/public-route");
8
+ var SaaSiCatPublicRoute = /* @__PURE__ */ __name(() => SetMetadata(SAASICAT_PUBLIC_ROUTE_KEY, true), "SaaSiCatPublicRoute");
9
+ function isSaaSiCatPublicRoute(reflector, context) {
10
+ return reflector.getAllAndOverride(SAASICAT_PUBLIC_ROUTE_KEY, [
11
+ context.getHandler(),
12
+ context.getClass()
13
+ ]) === true;
14
+ }
15
+ __name(isSaaSiCatPublicRoute, "isSaaSiCatPublicRoute");
16
+
17
+ export {
18
+ SAASICAT_PUBLIC_ROUTE_KEY,
19
+ SaaSiCatPublicRoute,
20
+ isSaaSiCatPublicRoute
21
+ };
@@ -0,0 +1,46 @@
1
+ import * as _nestjs_common from '@nestjs/common';
2
+ import { ExecutionContext } from '@nestjs/common';
3
+ import { Reflector } from '@nestjs/core';
4
+ import { SuperAdminProvisioningPort, SetupStatusResponse, SetupRequest, SetupResult, SetupConfirmMfaRequest, SetupConfirmMfaResponse } from '@saasicat/types';
5
+ import { h as MfaService } from './admin-stats.service-HUZIU448.cjs';
6
+ import { f as SaasPlatformModuleOptions } from './saas-platform.module-D3rUTiho.cjs';
7
+
8
+ /**
9
+ * Shared metadata key for endpoints that intentionally run without application
10
+ * authentication. `Symbol.for` keeps the marker stable across package entries.
11
+ */
12
+ declare const SAASICAT_PUBLIC_ROUTE_KEY: unique symbol;
13
+ /** Marks a SaaSiCat controller or handler as intentionally public. */
14
+ declare const SaaSiCatPublicRoute: () => _nestjs_common.CustomDecorator<typeof SAASICAT_PUBLIC_ROUTE_KEY>;
15
+ /** Returns whether the current endpoint is marked as a public SaaSiCat route. */
16
+ declare function isSaaSiCatPublicRoute(reflector: Reflector, context: ExecutionContext): boolean;
17
+
18
+ declare const SETUP_PROVISIONING_PORT_TOKEN: unique symbol;
19
+ declare const SETUP_CONFIG_TOKEN: unique symbol;
20
+ interface SetupConfig {
21
+ /** Env-var name of the setup token. Without the var set, setup is disabled. */
22
+ setupTokenEnvVar: string;
23
+ /** Authenticator issuer for the MFA enrollment in the wizard. */
24
+ mfaIssuer: string;
25
+ }
26
+
27
+ declare class SetupService {
28
+ private readonly users;
29
+ private readonly config;
30
+ private readonly mfa;
31
+ constructor(users: SuperAdminProvisioningPort, config: SetupConfig, mfa: MfaService);
32
+ status(): Promise<SetupStatusResponse>;
33
+ setup(req: SetupRequest): Promise<SetupResult>;
34
+ confirmMfa(req: SetupConfirmMfaRequest): Promise<SetupConfirmMfaResponse>;
35
+ private assertToken;
36
+ private assertNoSuperAdmin;
37
+ }
38
+
39
+ /**
40
+ * Typed identity helper for the high-level SaaSiCat configuration. It keeps
41
+ * literal types and gives editors one place for completion without adding
42
+ * runtime behavior.
43
+ */
44
+ declare function defineSaaSiCat<const T extends SaasPlatformModuleOptions>(options: T): T;
45
+
46
+ export { SetupService as S, SAASICAT_PUBLIC_ROUTE_KEY as a, SETUP_CONFIG_TOKEN as b, SETUP_PROVISIONING_PORT_TOKEN as c, SaaSiCatPublicRoute as d, type SetupConfig as e, defineSaaSiCat as f, isSaaSiCatPublicRoute as i };
@@ -0,0 +1,46 @@
1
+ import * as _nestjs_common from '@nestjs/common';
2
+ import { ExecutionContext } from '@nestjs/common';
3
+ import { Reflector } from '@nestjs/core';
4
+ import { SuperAdminProvisioningPort, SetupStatusResponse, SetupRequest, SetupResult, SetupConfirmMfaRequest, SetupConfirmMfaResponse } from '@saasicat/types';
5
+ import { h as MfaService } from './admin-stats.service-Db2exT_d.js';
6
+ import { f as SaasPlatformModuleOptions } from './saas-platform.module-DLhoqKNA.js';
7
+
8
+ /**
9
+ * Shared metadata key for endpoints that intentionally run without application
10
+ * authentication. `Symbol.for` keeps the marker stable across package entries.
11
+ */
12
+ declare const SAASICAT_PUBLIC_ROUTE_KEY: unique symbol;
13
+ /** Marks a SaaSiCat controller or handler as intentionally public. */
14
+ declare const SaaSiCatPublicRoute: () => _nestjs_common.CustomDecorator<typeof SAASICAT_PUBLIC_ROUTE_KEY>;
15
+ /** Returns whether the current endpoint is marked as a public SaaSiCat route. */
16
+ declare function isSaaSiCatPublicRoute(reflector: Reflector, context: ExecutionContext): boolean;
17
+
18
+ declare const SETUP_PROVISIONING_PORT_TOKEN: unique symbol;
19
+ declare const SETUP_CONFIG_TOKEN: unique symbol;
20
+ interface SetupConfig {
21
+ /** Env-var name of the setup token. Without the var set, setup is disabled. */
22
+ setupTokenEnvVar: string;
23
+ /** Authenticator issuer for the MFA enrollment in the wizard. */
24
+ mfaIssuer: string;
25
+ }
26
+
27
+ declare class SetupService {
28
+ private readonly users;
29
+ private readonly config;
30
+ private readonly mfa;
31
+ constructor(users: SuperAdminProvisioningPort, config: SetupConfig, mfa: MfaService);
32
+ status(): Promise<SetupStatusResponse>;
33
+ setup(req: SetupRequest): Promise<SetupResult>;
34
+ confirmMfa(req: SetupConfirmMfaRequest): Promise<SetupConfirmMfaResponse>;
35
+ private assertToken;
36
+ private assertNoSuperAdmin;
37
+ }
38
+
39
+ /**
40
+ * Typed identity helper for the high-level SaaSiCat configuration. It keeps
41
+ * literal types and gives editors one place for completion without adding
42
+ * runtime behavior.
43
+ */
44
+ declare function defineSaaSiCat<const T extends SaasPlatformModuleOptions>(options: T): T;
45
+
46
+ export { SetupService as S, SAASICAT_PUBLIC_ROUTE_KEY as a, SETUP_CONFIG_TOKEN as b, SETUP_PROVISIONING_PORT_TOKEN as c, SaaSiCatPublicRoute as d, type SetupConfig as e, defineSaaSiCat as f, isSaaSiCatPublicRoute as i };
@@ -0,0 +1,60 @@
1
+ import { CanActivate, ExecutionContext, NestInterceptor, CallHandler } from '@nestjs/common';
2
+ import { Reflector } from '@nestjs/core';
3
+ import { Observable } from 'rxjs';
4
+ import { PlanCatalog, QuotaProvider } from '@saasicat/types';
5
+ import { p as PlanResolverPort } from './saas-platform.module-DLhoqKNA.js';
6
+
7
+ interface StaticEntitlementSnapshot {
8
+ planId: string | null;
9
+ features: readonly string[];
10
+ /** quotaKey → limit (`-1` = unlimited). */
11
+ quotas: Readonly<Record<string, number>>;
12
+ }
13
+ declare class StaticEntitlementService {
14
+ private readonly catalog;
15
+ private readonly resolver;
16
+ constructor(catalog: PlanCatalog, resolver: PlanResolverPort);
17
+ /**
18
+ * Returns the effective features + quotas of a tenant from the
19
+ * plan catalog. When the plan is missing: an empty snapshot (no feature,
20
+ * all quotas at 0).
21
+ */
22
+ snapshot(tenantId: string): Promise<StaticEntitlementSnapshot>;
23
+ /** Convenience helper for tests / synchronous checks in the UI manifest. */
24
+ hasFeature(tenantId: string, featureKey: string): Promise<boolean>;
25
+ quotaLimit(tenantId: string, quotaKey: string): Promise<number | null>;
26
+ private findPlan;
27
+ }
28
+
29
+ declare const STATIC_FEATURE_GUARD_CONFIG_TOKEN: unique symbol;
30
+ interface StaticFeatureGuardConfig {
31
+ /**
32
+ * Resolver for the user role (e.g. `(user) => user.platformRole`).
33
+ * SUPER_ADMIN gets a bypass.
34
+ */
35
+ userRoleResolver?: (user: unknown) => string | undefined;
36
+ /**
37
+ * Resolver for the tenant ID from the request. Default:
38
+ * `request.tenantId ?? request.user?.tenantId`.
39
+ */
40
+ tenantIdResolver?: (request: unknown) => string | undefined;
41
+ }
42
+ declare class StaticFeatureGuard implements CanActivate {
43
+ private readonly reflector;
44
+ private readonly entitlements;
45
+ private readonly config;
46
+ constructor(reflector: Reflector, entitlements: StaticEntitlementService, config?: StaticFeatureGuardConfig | null);
47
+ canActivate(context: ExecutionContext): Promise<boolean>;
48
+ }
49
+
50
+ declare const QUOTA_PROVIDERS_TOKEN: unique symbol;
51
+ declare class EnforceQuotaInterceptor implements NestInterceptor {
52
+ private readonly reflector;
53
+ private readonly entitlements;
54
+ private readonly providers;
55
+ constructor(reflector: Reflector, entitlements: StaticEntitlementService, providers?: ReadonlyArray<QuotaProvider> | null);
56
+ intercept(context: ExecutionContext, next: CallHandler): Observable<unknown>;
57
+ private check;
58
+ }
59
+
60
+ export { EnforceQuotaInterceptor as E, QUOTA_PROVIDERS_TOKEN as Q, StaticEntitlementService as S, StaticFeatureGuard as a, STATIC_FEATURE_GUARD_CONFIG_TOKEN as b, type StaticEntitlementSnapshot as c, type StaticFeatureGuardConfig as d };
@@ -0,0 +1,60 @@
1
+ import { CanActivate, ExecutionContext, NestInterceptor, CallHandler } from '@nestjs/common';
2
+ import { Reflector } from '@nestjs/core';
3
+ import { Observable } from 'rxjs';
4
+ import { PlanCatalog, QuotaProvider } from '@saasicat/types';
5
+ import { p as PlanResolverPort } from './saas-platform.module-D3rUTiho.cjs';
6
+
7
+ interface StaticEntitlementSnapshot {
8
+ planId: string | null;
9
+ features: readonly string[];
10
+ /** quotaKey → limit (`-1` = unlimited). */
11
+ quotas: Readonly<Record<string, number>>;
12
+ }
13
+ declare class StaticEntitlementService {
14
+ private readonly catalog;
15
+ private readonly resolver;
16
+ constructor(catalog: PlanCatalog, resolver: PlanResolverPort);
17
+ /**
18
+ * Returns the effective features + quotas of a tenant from the
19
+ * plan catalog. When the plan is missing: an empty snapshot (no feature,
20
+ * all quotas at 0).
21
+ */
22
+ snapshot(tenantId: string): Promise<StaticEntitlementSnapshot>;
23
+ /** Convenience helper for tests / synchronous checks in the UI manifest. */
24
+ hasFeature(tenantId: string, featureKey: string): Promise<boolean>;
25
+ quotaLimit(tenantId: string, quotaKey: string): Promise<number | null>;
26
+ private findPlan;
27
+ }
28
+
29
+ declare const STATIC_FEATURE_GUARD_CONFIG_TOKEN: unique symbol;
30
+ interface StaticFeatureGuardConfig {
31
+ /**
32
+ * Resolver for the user role (e.g. `(user) => user.platformRole`).
33
+ * SUPER_ADMIN gets a bypass.
34
+ */
35
+ userRoleResolver?: (user: unknown) => string | undefined;
36
+ /**
37
+ * Resolver for the tenant ID from the request. Default:
38
+ * `request.tenantId ?? request.user?.tenantId`.
39
+ */
40
+ tenantIdResolver?: (request: unknown) => string | undefined;
41
+ }
42
+ declare class StaticFeatureGuard implements CanActivate {
43
+ private readonly reflector;
44
+ private readonly entitlements;
45
+ private readonly config;
46
+ constructor(reflector: Reflector, entitlements: StaticEntitlementService, config?: StaticFeatureGuardConfig | null);
47
+ canActivate(context: ExecutionContext): Promise<boolean>;
48
+ }
49
+
50
+ declare const QUOTA_PROVIDERS_TOKEN: unique symbol;
51
+ declare class EnforceQuotaInterceptor implements NestInterceptor {
52
+ private readonly reflector;
53
+ private readonly entitlements;
54
+ private readonly providers;
55
+ constructor(reflector: Reflector, entitlements: StaticEntitlementService, providers?: ReadonlyArray<QuotaProvider> | null);
56
+ intercept(context: ExecutionContext, next: CallHandler): Observable<unknown>;
57
+ private check;
58
+ }
59
+
60
+ export { EnforceQuotaInterceptor as E, QUOTA_PROVIDERS_TOKEN as Q, StaticEntitlementService as S, StaticFeatureGuard as a, STATIC_FEATURE_GUARD_CONFIG_TOKEN as b, type StaticEntitlementSnapshot as c, type StaticFeatureGuardConfig as d };
@@ -1,4 +1,4 @@
1
- export { C as CustomLimitsShape, E as EffectiveLimits, a as EffectiveLimitsSnapshot, b as EnforceLimitInput, c as EntitlementService, P as PlanVersionSnapshot, S as SubscriptionBundleSnapshot, d as SubscriptionLimitsInput, e as aggregateContractLineItemEntitlements, f as aggregateLimits, g as aggregateSubscriptionBundleQuotas, h as applyCustomLimits, i as collectSubscriptionBundleFeatures, j as filterActiveSubscriptionBundles, k as filterPlannedOnlyFeatures, l as hasAnyFeature, m as hasFeature, t as toEffectiveLimitsSnapshot } from '../aggregation-CfI0bOsQ.cjs';
1
+ export { C as CustomLimitsShape, E as EffectiveLimits, a as EffectiveLimitsSnapshot, b as EnforceLimitInput, c as EntitlementService, P as PlanVersionSnapshot, S as SubscriptionBundleSnapshot, d as SubscriptionLimitsInput, e as aggregateContractLineItemEntitlements, f as aggregateLimits, g as aggregateSubscriptionBundleQuotas, h as applyCustomLimits, i as collectSubscriptionBundleFeatures, j as contractBundleVersionIds, k as contractLimits, l as filterActiveSubscriptionBundles, m as filterPlannedOnlyFeatures, n as hasAnyFeature, o as hasFeature, p as mergeSubscriptionBundlesIntoLimits, t as toEffectiveLimitsSnapshot } from '../aggregation-SKfXu09x.cjs';
2
2
  import { DiscoveredFeature, SubscriptionRepository, PlanVersionRepository, TransactionRunner, SubscriptionContractRepository, SubscriptionBundleRepository, BundleRepository } from '@saasicat/types';
3
3
  import { E as EntitlementResolutionConfig } from '../plan-resolution-CFCoUkrE.cjs';
4
4
  export { a as EntitlementResolutionInput, r as resolveEntitlementPlan } from '../plan-resolution-CFCoUkrE.cjs';
@@ -1,4 +1,4 @@
1
- export { C as CustomLimitsShape, E as EffectiveLimits, a as EffectiveLimitsSnapshot, b as EnforceLimitInput, c as EntitlementService, P as PlanVersionSnapshot, S as SubscriptionBundleSnapshot, d as SubscriptionLimitsInput, e as aggregateContractLineItemEntitlements, f as aggregateLimits, g as aggregateSubscriptionBundleQuotas, h as applyCustomLimits, i as collectSubscriptionBundleFeatures, j as filterActiveSubscriptionBundles, k as filterPlannedOnlyFeatures, l as hasAnyFeature, m as hasFeature, t as toEffectiveLimitsSnapshot } from '../aggregation-BibpEO0t.js';
1
+ export { C as CustomLimitsShape, E as EffectiveLimits, a as EffectiveLimitsSnapshot, b as EnforceLimitInput, c as EntitlementService, P as PlanVersionSnapshot, S as SubscriptionBundleSnapshot, d as SubscriptionLimitsInput, e as aggregateContractLineItemEntitlements, f as aggregateLimits, g as aggregateSubscriptionBundleQuotas, h as applyCustomLimits, i as collectSubscriptionBundleFeatures, j as contractBundleVersionIds, k as contractLimits, l as filterActiveSubscriptionBundles, m as filterPlannedOnlyFeatures, n as hasAnyFeature, o as hasFeature, p as mergeSubscriptionBundlesIntoLimits, t as toEffectiveLimitsSnapshot } from '../aggregation-o0LMenvl.js';
2
2
  import { DiscoveredFeature, SubscriptionRepository, PlanVersionRepository, TransactionRunner, SubscriptionContractRepository, SubscriptionBundleRepository, BundleRepository } from '@saasicat/types';
3
3
  import { E as EntitlementResolutionConfig } from '../plan-resolution-CFCoUkrE.js';
4
4
  export { a as EntitlementResolutionInput, r as resolveEntitlementPlan } from '../plan-resolution-CFCoUkrE.js';
@@ -8,15 +8,18 @@ import {
8
8
  applyCustomLimits,
9
9
  buildReplacedByIndex,
10
10
  collectSubscriptionBundleFeatures,
11
+ contractBundleVersionIds,
12
+ contractLimits,
11
13
  expandReplacedFeatures,
12
14
  filterActiveSubscriptionBundles,
13
15
  filterPlannedOnlyFeatures,
14
16
  hasAnyFeature,
15
17
  hasFeature,
16
18
  isLimitExceededError,
19
+ mergeSubscriptionBundlesIntoLimits,
17
20
  resolveEntitlementPlan,
18
21
  toEffectiveLimitsSnapshot
19
- } from "../chunk-2WNM5THV.js";
22
+ } from "../chunk-EXOLOJFZ.js";
20
23
  import "../chunk-R2QOSVAA.js";
21
24
  import "../chunk-NYLON2VC.js";
22
25
  import {
@@ -45,12 +48,15 @@ export {
45
48
  applyCustomLimits,
46
49
  buildReplacedByIndex,
47
50
  collectSubscriptionBundleFeatures,
51
+ contractBundleVersionIds,
52
+ contractLimits,
48
53
  expandReplacedFeatures,
49
54
  filterActiveSubscriptionBundles,
50
55
  filterPlannedOnlyFeatures,
51
56
  hasAnyFeature,
52
57
  hasFeature,
53
58
  isLimitExceededError,
59
+ mergeSubscriptionBundlesIntoLimits,
54
60
  resolveEntitlementPlan,
55
61
  toEffectiveLimitsSnapshot
56
62
  };
package/dist/index.d.cts CHANGED
@@ -1,4 +1,6 @@
1
1
  export { P as ProviderSpec, a as asProvider } from './di-CcNeq9v-.cjs';
2
+ import { S as SetupService } from './define-saasicat-CeDBX9ji.cjs';
3
+ export { a as SAASICAT_PUBLIC_ROUTE_KEY, b as SETUP_CONFIG_TOKEN, c as SETUP_PROVISIONING_PORT_TOKEN, d as SaaSiCatPublicRoute, e as SetupConfig, f as defineSaaSiCat, i as isSaaSiCatPublicRoute } from './define-saasicat-CeDBX9ji.cjs';
2
4
  export { CreatePromoCodeDto, PROMO_CODE_REDEMPTION_REPOSITORY_TOKEN, PROMO_CODE_REPOSITORY_TOKEN, PROMO_CODE_VALIDATION_LOG_REPOSITORY_TOKEN, PROMO_FIRST_TIME_CUSTOMER_CHECK_TOKEN, PROMO_REVENUE_DEDUCTION_AGGREGATOR_TOKEN, PROMO_SERVICE_CONFIG_TOKEN, PROMO_SUBSCRIPTION_LOOKUP_TOKEN, PROMO_TRANSACTION_RUNNER_TOKEN, PreviewPromoCodeDto, PromoCodeExpirer, PromoCodeForCalc, PromoCodePublicController, UpdatePromoCodeDto, addCycles, buildLabel, buildPromoCodeAdminController, computeDiscountGross, computeDiscountedGross, computeIncludedVat, computeRegularStartsAt, grossFromNet, round2 } from './promo/index.cjs';
3
5
  export { P as PreviewInput, a as PreviewInvalid, b as PreviewReason, c as PreviewResult, d as PreviewValid, e as PromoCodeStats, f as PromoCodesService, g as PromoServiceConfig, R as RedeemInput } from './service-DX8KbGXl.cjs';
4
6
  export { P as PromoCodeRateLimitGuard, h as hashIp, i as ipFingerprint } from './rate-limit.guard-dntqAlfZ.cjs';
@@ -7,29 +9,29 @@ export { AjvErrorLike, CatalogBundleUpsellResolver, ConfiguratorCatalogBuilder,
7
9
  import { SetupStatusResponse, SetupResult, SetupConfirmMfaResponse } from '@saasicat/types';
8
10
  export { BundleVersionFields, ChangeDirection, DiffResult, DiscoveredCapability, DiscoveredFeature, DiscoveredQuota, DiscoverySnapshot, PasswordHasher, PlanVersionFields, VersionChange, VersionChangeDirection, classifyBundleVersionDiff, classifyPlanDiff } from '@saasicat/types';
9
11
  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, f as ContractFreezePort, g as ContractFreezeSourcePort, 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';
10
- 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 './subscription-bundle-preview.service-BkJXHAeP.cjs';
11
- export { C as CustomLimitsShape, E as EffectiveLimits, a as EffectiveLimitsSnapshot, b as EnforceLimitInput, c as EntitlementService, P as PlanVersionSnapshot, S as SubscriptionBundleSnapshot, d as SubscriptionLimitsInput, e as aggregateContractLineItemEntitlements, f as aggregateLimits, g as aggregateSubscriptionBundleQuotas, h as applyCustomLimits, i as collectSubscriptionBundleFeatures, j as filterActiveSubscriptionBundles, k as filterPlannedOnlyFeatures, l as hasAnyFeature, m as hasFeature, t as toEffectiveLimitsSnapshot } from './aggregation-CfI0bOsQ.cjs';
12
+ 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-CG4CaFUP.cjs';
13
+ export { C as CustomLimitsShape, E as EffectiveLimits, a as EffectiveLimitsSnapshot, b as EnforceLimitInput, c as EntitlementService, P as PlanVersionSnapshot, S as SubscriptionBundleSnapshot, d as SubscriptionLimitsInput, e as aggregateContractLineItemEntitlements, f as aggregateLimits, g as aggregateSubscriptionBundleQuotas, h as applyCustomLimits, i as collectSubscriptionBundleFeatures, j as contractBundleVersionIds, k as contractLimits, l as filterActiveSubscriptionBundles, m as filterPlannedOnlyFeatures, n as hasAnyFeature, o as hasFeature, p as mergeSubscriptionBundlesIntoLimits, t as toEffectiveLimitsSnapshot } from './aggregation-SKfXu09x.cjs';
12
14
  export { ENTITLEMENT_RESOLUTION_CONFIG_TOKEN, ENTITLEMENT_SERVICE_TOKEN, EntitlementModule, EntitlementModuleOptions, LimitExceededError, PLAN_VERSION_REPOSITORY_TOKEN, ReplacedByIndex, SUBSCRIPTION_REPOSITORY_TOKEN, TRANSACTION_RUNNER_TOKEN, buildReplacedByIndex, expandReplacedFeatures, isLimitExceededError } from './entitlement/index.cjs';
13
15
  export { E as EntitlementResolutionConfig, a as EntitlementResolutionInput, r as resolveEntitlementPlan } from './plan-resolution-CFCoUkrE.cjs';
14
- export { ADMIN_STATS_AUDIT_WINDOW_DAYS_TOKEN, AUDIT_PORT_TOKEN, AUDIT_STATS_PORT_TOKEN, AdminPublicBootController, AdminStatsController, MFA_PORT_TOKEN, PLATFORM_CORE_MANIFEST_CONTRIBUTION, PROMO_CODE_STATS_PORT_TOKEN, RLS_BYPASS_PORT_TOKEN, SUBSCRIPTION_STATS_PORT_TOKEN } from './admin/index.cjs';
15
- export { A as AdminBypassRlsInterceptor, a as AdminManifestModule, b as AdminManifestModuleOptions, c as AdminManifestService, d as AdminModule, e as AdminModuleOptions, f as AdminStatsModule, g as AdminStatsModuleOptions, h as AdminStatsService, i as AdminStatsSnapshot, M as MfaGuard, j as MfaService, P as PLATFORM_CORE_CONTRIBUTION_TOKEN, R as REQUIRE_MFA_KEY, k as RequireMfa, S as SuperAdminGuard, T as TotpSetupResult, V as VerifyTotpInput } from './admin-stats.module-v4SVvWzj.cjs';
16
+ export { ADMIN_STATS_AUDIT_WINDOW_DAYS_TOKEN, AUDIT_PORT_TOKEN, AUDIT_STATS_PORT_TOKEN, AdminPublicBootController, AdminStatsController, MFA_PORT_TOKEN, PLATFORM_CORE_MANIFEST_CONTRIBUTION, PROMO_CODE_STATS_PORT_TOKEN, RLS_BYPASS_PORT_TOKEN, SUBSCRIPTION_STATS_PORT_TOKEN, buildAdminStatsController } from './admin/index.cjs';
17
+ export { A as AdminBypassRlsInterceptor, a as AdminManifestModule, b as AdminManifestModuleOptions, c as AdminManifestService, d as AdminModule, e as AdminModuleOptions, f as AdminStatsService, g as AdminStatsSnapshot, M as MfaGuard, h 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-HUZIU448.cjs';
16
18
  export { A as AdminAuditService } from './admin-audit.service-9IqXMlZm.cjs';
17
- export { A as ADMIN_MANIFEST_CONFIG, a as ADMIN_RESOURCES_PORT_TOKEN, b as AdminManifestConfig, c as AdminResourcesModule, d as AdminResourcesModuleOptions, e as AdminResourcesService, S as SuspendTenantDto } from './admin-resources.module-BZN_yBFj.cjs';
18
- import { S as SetupService } from './setup.service-BPwJ7My_.cjs';
19
- export { a as SETUP_CONFIG_TOKEN, b as SETUP_PROVISIONING_PORT_TOKEN, c as SetupConfig, d as SetupModule, e as SetupModuleOptions } from './setup.service-BPwJ7My_.cjs';
19
+ export { A as ADMIN_MANIFEST_CONFIG, a as ADMIN_RESOURCES_PORT_TOKEN, b as AdminManifestConfig, c as AdminResourcesModule, d as AdminResourcesModuleOptions, e as AdminResourcesService, f as AdminStatsModule, g as AdminStatsModuleOptions, S as SuspendTenantDto } from './admin-resources.module-DGgGSdzN.cjs';
20
+ export { S as SaaSiCatModule, a as SaasPlatformAdapters, b as SaasPlatformAdminResourcesOptions, c as SaasPlatformAdminStatsOptions, d as SaasPlatformCatalogOptions, e as SaasPlatformCheckoutOfferOptions, S as SaasPlatformModule, f as SaasPlatformModuleOptions, g as SaasPlatformPromoCodesOptions, h as SaasPlatformSetupOptions, i as SaasPlatformSubscriptionBundlesOptions, j as SaasPlatformSubscriptionContractOptions, k as SaasPlatformTenantAuthGuards, l as SaasPlatformTenantBillingOptions, m as SetupModule, n as SetupModuleOptions } from './saas-platform.module-D3rUTiho.cjs';
20
21
  export { ACTIVATION_ORCHESTRATOR_TOKEN, BaseIpRateLimitGuard, ContinueRegistrationDto, PASSWORD_HASHER_TOKEN, PAYMENT_EVENT_LOG_TOKEN, PAYMENT_PROVIDER_TOKEN, PENDING_REGISTRATION_REPOSITORY_TOKEN, PLAN_CATALOG_LOOKUP_TOKEN, PaymentWebhookDto, PendingRegistrationService, PreviewRegistrationPromoDto, PromoEvaluation, REGISTRATION_AUDIT_LOGGER_TOKEN, REGISTRATION_CONFIGURATOR_LOOKUP_TOKEN, REGISTRATION_CONFIG_TOKEN, REGISTRATION_OTP_DELIVERY_TOKEN, REGISTRATION_PROMO_PREVIEW_TOKEN, REGISTRATION_RESUME_BASE_URL_TOKEN, REGISTRATION_RESUME_DELIVERY_TOKEN, REGISTRATION_RESUME_TOKEN_SIGNER_TOKEN, RegisterStartDto, RegistrationCleanupCron, RegistrationModule, RegistrationModuleOptions, ResendRegistrationOtpDto, SLUG_AVAILABILITY_CHECK_TOKEN, SaveRegistrationConfigDto, SaveRegistrationConfigSelectionDto, SelectRegistrationPlanDto, StartRegistrationCheckoutDto, USER_ACCOUNT_LOOKUP_TOKEN, VerifyRegistrationOtpDto, computeBreakdown, generateOtpCode, hashOtpCode, resolveModel, slugify, verifyOtpCode } from './registration/index.cjs';
21
22
  export { DEFINES_QUOTA_KEY, DISCOVERY_SNAPSHOT_TOKEN, DefinesQuota, DefinesQuotaOptions, DiscoveryControllerConfig, DiscoveryModule, DiscoveryModuleOptions, DiscoverySnapshotNotFoundError, ENFORCE_QUOTA_KEY, EnforceQuota, EnforceQuotaMetadata, EnforceQuotaOptions, HeadlessScanOptions, IMPLEMENTS_CAPABILITY_KEY, ImplementsCapability, ImplementsCapabilityMetadata, ImplementsCapabilityOptions, REQUIRES_CAPABILITY_KEY, RequiresCapability, RequiresCapabilityKeys, buildDiscoveryController, loadDiscoverySnapshotFromFile, runHeadlessDiscoveryScan } from './discovery/index.cjs';
22
23
  export { D as DISCOVERY_APP_INFO_TOKEN, a as DISCOVERY_SNAPSHOT_PATH_TOKEN, b as DiscoveryAppInfo, c as DiscoveryScanner, d as computeSnapshotHash } from './discovery.scanner-DLgEvuoy.cjs';
23
24
  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-CUR2Whyr.cjs';
24
25
  export { ADVISORY_STRICT_MODE_CODES, BUNDLE_REPOSITORY_TOKEN, CATALOG_ENTRY_REPOSITORY_TOKEN, CATALOG_SERVICE_CONFIG_TOKEN, CreateBundleDto, CreateBundleVersionDraftDto, CreateMarketingProjectionDto, CreatePlanDto, CreatePlanVersionDraftDto, CreatePromotionDto, ListCatalogEntriesQueryDto, ListMarketingProjectionsQueryDto, ListMarketingSettingsQueryDto, ListPromotionsQueryDto, MARKETING_PROJECTION_REPOSITORY_TOKEN, MARKETING_SETTINGS_REPOSITORY_TOKEN, PLAN_REPOSITORY_TOKEN, PROMOTION_REPOSITORY_TOKEN, PreflightFinding, PreflightInput, PreflightReport, PublishBundleVersionDto, PublishPlanVersionDto, ReviewCatalogEntryDto, SeedBundleDraft, SeedGateFinding, SeedGateInput, SeedGateMode, SeedGateReport, SeedGateRunOptions, SeedPlanDraft, SyncDiscoveryDto, UpdateBundleDto, UpdateBundleVersionDraftDto, UpdateCatalogEntryI18nDto, UpdateMarketingProjectionDto, UpdateMarketingSettingsDto, UpdatePlanDto, UpdatePlanVersionDraftDto, UpdatePromotionDto, blockingStrictModeWarnings, buildBundleVersionsController, buildBundlesController, buildCatalogEntriesController, buildMarketingProjectionsController, buildMarketingSettingsController, buildPlanVersionsController, buildPlansController, buildPromotionsController, buildPublicMarketingCatalogController, featureApprovalSignature, formatPreflightReport, formatSeedGateReport, loadApprovedCatalogKeys, preflightExitCode, quotaApprovalSignature, runPreflight, runSeedGateFromFile, seedGateExitCode, validateBundleDraft, validatePlanDraft, validateSeedAgainstSnapshot } from './catalog/index.cjs';
25
26
  export { C as CatalogControllerConfig, a as CatalogModule, b as CatalogModuleOptions } from './catalog.module-Dw2Hrbyu.cjs';
26
- export { C as CheckoutOfferControllerConfig, a as CheckoutOfferModule, b as CheckoutOfferModuleOptions, c as CheckoutOfferService } from './checkout-offer.module-ZYF5IsDY.cjs';
27
+ export { C as CheckoutOfferService } from './checkout-offer.service-BX51dljL.cjs';
27
28
  export { CHECKOUT_OFFER_REPOSITORY_TOKEN, CreateCheckoutOfferDto, UpdateCheckoutOfferDto, buildCheckoutOfferController } from './checkout-offer/index.cjs';
29
+ export { C as CheckoutOfferControllerConfig, a as CheckoutOfferModule, b as CheckoutOfferModuleOptions } from './checkout-offer.module-DmlpPevf.cjs';
28
30
  export { C as CreateContractFromOfferOptions, S as SubscriptionContractService, c as contractLineItemToInvoiceLineItem, s as sortContractLineItemsForInvoice, a as subscriptionContractToInvoiceSnapshot } from './subscription-contract.service--cm47ZJJ.cjs';
29
- export { S as SubscriptionContractModule, a as SubscriptionContractModuleOptions } from './subscription-contract.module-CG9fPKAr.cjs';
31
+ export { S as SubscriptionContractModule, a as SubscriptionContractModuleOptions } from './subscription-contract.module-B2uNvUJL.cjs';
30
32
  export { SUBSCRIPTION_CONTRACT_REPOSITORY_TOKEN } from './subscription-contract/index.cjs';
31
- export { CronExpression } from '@nestjs/schedule';
32
33
  export { Type as NestType } from '@nestjs/common';
34
+ export { CronExpression } from '@nestjs/schedule';
33
35
  import '@nestjs/core';
34
36
  import 'rxjs';
35
37
 
package/dist/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  export { P as ProviderSpec, a as asProvider } from './di-CcNeq9v-.js';
2
+ import { S as SetupService } from './define-saasicat-Rc0rXrYG.js';
3
+ export { a as SAASICAT_PUBLIC_ROUTE_KEY, b as SETUP_CONFIG_TOKEN, c as SETUP_PROVISIONING_PORT_TOKEN, d as SaaSiCatPublicRoute, e as SetupConfig, f as defineSaaSiCat, i as isSaaSiCatPublicRoute } from './define-saasicat-Rc0rXrYG.js';
2
4
  export { CreatePromoCodeDto, PROMO_CODE_REDEMPTION_REPOSITORY_TOKEN, PROMO_CODE_REPOSITORY_TOKEN, PROMO_CODE_VALIDATION_LOG_REPOSITORY_TOKEN, PROMO_FIRST_TIME_CUSTOMER_CHECK_TOKEN, PROMO_REVENUE_DEDUCTION_AGGREGATOR_TOKEN, PROMO_SERVICE_CONFIG_TOKEN, PROMO_SUBSCRIPTION_LOOKUP_TOKEN, PROMO_TRANSACTION_RUNNER_TOKEN, PreviewPromoCodeDto, PromoCodeExpirer, PromoCodeForCalc, PromoCodePublicController, UpdatePromoCodeDto, addCycles, buildLabel, buildPromoCodeAdminController, computeDiscountGross, computeDiscountedGross, computeIncludedVat, computeRegularStartsAt, grossFromNet, round2 } from './promo/index.js';
3
5
  export { P as PreviewInput, a as PreviewInvalid, b as PreviewReason, c as PreviewResult, d as PreviewValid, e as PromoCodeStats, f as PromoCodesService, g as PromoServiceConfig, R as RedeemInput } from './service-DX8KbGXl.js';
4
6
  export { P as PromoCodeRateLimitGuard, h as hashIp, i as ipFingerprint } from './rate-limit.guard-dntqAlfZ.js';
@@ -7,29 +9,29 @@ export { AjvErrorLike, CatalogBundleUpsellResolver, ConfiguratorCatalogBuilder,
7
9
  import { SetupStatusResponse, SetupResult, SetupConfirmMfaResponse } from '@saasicat/types';
8
10
  export { BundleVersionFields, ChangeDirection, DiffResult, DiscoveredCapability, DiscoveredFeature, DiscoveredQuota, DiscoverySnapshot, PasswordHasher, PlanVersionFields, VersionChange, VersionChangeDirection, classifyBundleVersionDiff, classifyPlanDiff } from '@saasicat/types';
9
11
  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, f as ContractFreezePort, g as ContractFreezeSourcePort, 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';
10
- 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 './subscription-bundle-preview.service-DBbrE_cw.js';
11
- export { C as CustomLimitsShape, E as EffectiveLimits, a as EffectiveLimitsSnapshot, b as EnforceLimitInput, c as EntitlementService, P as PlanVersionSnapshot, S as SubscriptionBundleSnapshot, d as SubscriptionLimitsInput, e as aggregateContractLineItemEntitlements, f as aggregateLimits, g as aggregateSubscriptionBundleQuotas, h as applyCustomLimits, i as collectSubscriptionBundleFeatures, j as filterActiveSubscriptionBundles, k as filterPlannedOnlyFeatures, l as hasAnyFeature, m as hasFeature, t as toEffectiveLimitsSnapshot } from './aggregation-BibpEO0t.js';
12
+ 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-BwZRnJ3q.js';
13
+ export { C as CustomLimitsShape, E as EffectiveLimits, a as EffectiveLimitsSnapshot, b as EnforceLimitInput, c as EntitlementService, P as PlanVersionSnapshot, S as SubscriptionBundleSnapshot, d as SubscriptionLimitsInput, e as aggregateContractLineItemEntitlements, f as aggregateLimits, g as aggregateSubscriptionBundleQuotas, h as applyCustomLimits, i as collectSubscriptionBundleFeatures, j as contractBundleVersionIds, k as contractLimits, l as filterActiveSubscriptionBundles, m as filterPlannedOnlyFeatures, n as hasAnyFeature, o as hasFeature, p as mergeSubscriptionBundlesIntoLimits, t as toEffectiveLimitsSnapshot } from './aggregation-o0LMenvl.js';
12
14
  export { ENTITLEMENT_RESOLUTION_CONFIG_TOKEN, ENTITLEMENT_SERVICE_TOKEN, EntitlementModule, EntitlementModuleOptions, LimitExceededError, PLAN_VERSION_REPOSITORY_TOKEN, ReplacedByIndex, SUBSCRIPTION_REPOSITORY_TOKEN, TRANSACTION_RUNNER_TOKEN, buildReplacedByIndex, expandReplacedFeatures, isLimitExceededError } from './entitlement/index.js';
13
15
  export { E as EntitlementResolutionConfig, a as EntitlementResolutionInput, r as resolveEntitlementPlan } from './plan-resolution-CFCoUkrE.js';
14
- export { ADMIN_STATS_AUDIT_WINDOW_DAYS_TOKEN, AUDIT_PORT_TOKEN, AUDIT_STATS_PORT_TOKEN, AdminPublicBootController, AdminStatsController, MFA_PORT_TOKEN, PLATFORM_CORE_MANIFEST_CONTRIBUTION, PROMO_CODE_STATS_PORT_TOKEN, RLS_BYPASS_PORT_TOKEN, SUBSCRIPTION_STATS_PORT_TOKEN } from './admin/index.js';
15
- export { A as AdminBypassRlsInterceptor, a as AdminManifestModule, b as AdminManifestModuleOptions, c as AdminManifestService, d as AdminModule, e as AdminModuleOptions, f as AdminStatsModule, g as AdminStatsModuleOptions, h as AdminStatsService, i as AdminStatsSnapshot, M as MfaGuard, j as MfaService, P as PLATFORM_CORE_CONTRIBUTION_TOKEN, R as REQUIRE_MFA_KEY, k as RequireMfa, S as SuperAdminGuard, T as TotpSetupResult, V as VerifyTotpInput } from './admin-stats.module-15ac5KY3.js';
16
+ export { ADMIN_STATS_AUDIT_WINDOW_DAYS_TOKEN, AUDIT_PORT_TOKEN, AUDIT_STATS_PORT_TOKEN, AdminPublicBootController, AdminStatsController, MFA_PORT_TOKEN, PLATFORM_CORE_MANIFEST_CONTRIBUTION, PROMO_CODE_STATS_PORT_TOKEN, RLS_BYPASS_PORT_TOKEN, SUBSCRIPTION_STATS_PORT_TOKEN, buildAdminStatsController } from './admin/index.js';
17
+ export { A as AdminBypassRlsInterceptor, a as AdminManifestModule, b as AdminManifestModuleOptions, c as AdminManifestService, d as AdminModule, e as AdminModuleOptions, f as AdminStatsService, g as AdminStatsSnapshot, M as MfaGuard, h 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-Db2exT_d.js';
16
18
  export { A as AdminAuditService } from './admin-audit.service-9IqXMlZm.js';
17
- export { A as ADMIN_MANIFEST_CONFIG, a as ADMIN_RESOURCES_PORT_TOKEN, b as AdminManifestConfig, c as AdminResourcesModule, d as AdminResourcesModuleOptions, e as AdminResourcesService, S as SuspendTenantDto } from './admin-resources.module-Cms8MY6h.js';
18
- import { S as SetupService } from './setup.service-D2mrdDDB.js';
19
- export { a as SETUP_CONFIG_TOKEN, b as SETUP_PROVISIONING_PORT_TOKEN, c as SetupConfig, d as SetupModule, e as SetupModuleOptions } from './setup.service-D2mrdDDB.js';
19
+ export { A as ADMIN_MANIFEST_CONFIG, a as ADMIN_RESOURCES_PORT_TOKEN, b as AdminManifestConfig, c as AdminResourcesModule, d as AdminResourcesModuleOptions, e as AdminResourcesService, f as AdminStatsModule, g as AdminStatsModuleOptions, S as SuspendTenantDto } from './admin-resources.module-BY5r_1MG.js';
20
+ export { S as SaaSiCatModule, a as SaasPlatformAdapters, b as SaasPlatformAdminResourcesOptions, c as SaasPlatformAdminStatsOptions, d as SaasPlatformCatalogOptions, e as SaasPlatformCheckoutOfferOptions, S as SaasPlatformModule, f as SaasPlatformModuleOptions, g as SaasPlatformPromoCodesOptions, h as SaasPlatformSetupOptions, i as SaasPlatformSubscriptionBundlesOptions, j as SaasPlatformSubscriptionContractOptions, k as SaasPlatformTenantAuthGuards, l as SaasPlatformTenantBillingOptions, m as SetupModule, n as SetupModuleOptions } from './saas-platform.module-DLhoqKNA.js';
20
21
  export { ACTIVATION_ORCHESTRATOR_TOKEN, BaseIpRateLimitGuard, ContinueRegistrationDto, PASSWORD_HASHER_TOKEN, PAYMENT_EVENT_LOG_TOKEN, PAYMENT_PROVIDER_TOKEN, PENDING_REGISTRATION_REPOSITORY_TOKEN, PLAN_CATALOG_LOOKUP_TOKEN, PaymentWebhookDto, PendingRegistrationService, PreviewRegistrationPromoDto, PromoEvaluation, REGISTRATION_AUDIT_LOGGER_TOKEN, REGISTRATION_CONFIGURATOR_LOOKUP_TOKEN, REGISTRATION_CONFIG_TOKEN, REGISTRATION_OTP_DELIVERY_TOKEN, REGISTRATION_PROMO_PREVIEW_TOKEN, REGISTRATION_RESUME_BASE_URL_TOKEN, REGISTRATION_RESUME_DELIVERY_TOKEN, REGISTRATION_RESUME_TOKEN_SIGNER_TOKEN, RegisterStartDto, RegistrationCleanupCron, RegistrationModule, RegistrationModuleOptions, ResendRegistrationOtpDto, SLUG_AVAILABILITY_CHECK_TOKEN, SaveRegistrationConfigDto, SaveRegistrationConfigSelectionDto, SelectRegistrationPlanDto, StartRegistrationCheckoutDto, USER_ACCOUNT_LOOKUP_TOKEN, VerifyRegistrationOtpDto, computeBreakdown, generateOtpCode, hashOtpCode, resolveModel, slugify, verifyOtpCode } from './registration/index.js';
21
22
  export { DEFINES_QUOTA_KEY, DISCOVERY_SNAPSHOT_TOKEN, DefinesQuota, DefinesQuotaOptions, DiscoveryControllerConfig, DiscoveryModule, DiscoveryModuleOptions, DiscoverySnapshotNotFoundError, ENFORCE_QUOTA_KEY, EnforceQuota, EnforceQuotaMetadata, EnforceQuotaOptions, HeadlessScanOptions, IMPLEMENTS_CAPABILITY_KEY, ImplementsCapability, ImplementsCapabilityMetadata, ImplementsCapabilityOptions, REQUIRES_CAPABILITY_KEY, RequiresCapability, RequiresCapabilityKeys, buildDiscoveryController, loadDiscoverySnapshotFromFile, runHeadlessDiscoveryScan } from './discovery/index.js';
22
23
  export { D as DISCOVERY_APP_INFO_TOKEN, a as DISCOVERY_SNAPSHOT_PATH_TOKEN, b as DiscoveryAppInfo, c as DiscoveryScanner, d as computeSnapshotHash } from './discovery.scanner-DLgEvuoy.js';
23
24
  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-BB36Q1bg.js';
24
25
  export { ADVISORY_STRICT_MODE_CODES, BUNDLE_REPOSITORY_TOKEN, CATALOG_ENTRY_REPOSITORY_TOKEN, CATALOG_SERVICE_CONFIG_TOKEN, CreateBundleDto, CreateBundleVersionDraftDto, CreateMarketingProjectionDto, CreatePlanDto, CreatePlanVersionDraftDto, CreatePromotionDto, ListCatalogEntriesQueryDto, ListMarketingProjectionsQueryDto, ListMarketingSettingsQueryDto, ListPromotionsQueryDto, MARKETING_PROJECTION_REPOSITORY_TOKEN, MARKETING_SETTINGS_REPOSITORY_TOKEN, PLAN_REPOSITORY_TOKEN, PROMOTION_REPOSITORY_TOKEN, PreflightFinding, PreflightInput, PreflightReport, PublishBundleVersionDto, PublishPlanVersionDto, ReviewCatalogEntryDto, SeedBundleDraft, SeedGateFinding, SeedGateInput, SeedGateMode, SeedGateReport, SeedGateRunOptions, SeedPlanDraft, SyncDiscoveryDto, UpdateBundleDto, UpdateBundleVersionDraftDto, UpdateCatalogEntryI18nDto, UpdateMarketingProjectionDto, UpdateMarketingSettingsDto, UpdatePlanDto, UpdatePlanVersionDraftDto, UpdatePromotionDto, blockingStrictModeWarnings, buildBundleVersionsController, buildBundlesController, buildCatalogEntriesController, buildMarketingProjectionsController, buildMarketingSettingsController, buildPlanVersionsController, buildPlansController, buildPromotionsController, buildPublicMarketingCatalogController, featureApprovalSignature, formatPreflightReport, formatSeedGateReport, loadApprovedCatalogKeys, preflightExitCode, quotaApprovalSignature, runPreflight, runSeedGateFromFile, seedGateExitCode, validateBundleDraft, validatePlanDraft, validateSeedAgainstSnapshot } from './catalog/index.js';
25
26
  export { C as CatalogControllerConfig, a as CatalogModule, b as CatalogModuleOptions } from './catalog.module-BKObceo0.js';
26
- export { C as CheckoutOfferControllerConfig, a as CheckoutOfferModule, b as CheckoutOfferModuleOptions, c as CheckoutOfferService } from './checkout-offer.module-Y0hDOVrq.js';
27
+ export { C as CheckoutOfferService } from './checkout-offer.service-BX51dljL.js';
27
28
  export { CHECKOUT_OFFER_REPOSITORY_TOKEN, CreateCheckoutOfferDto, UpdateCheckoutOfferDto, buildCheckoutOfferController } from './checkout-offer/index.js';
29
+ export { C as CheckoutOfferControllerConfig, a as CheckoutOfferModule, b as CheckoutOfferModuleOptions } from './checkout-offer.module-Ca3_TieR.js';
28
30
  export { C as CreateContractFromOfferOptions, S as SubscriptionContractService, c as contractLineItemToInvoiceLineItem, s as sortContractLineItemsForInvoice, a as subscriptionContractToInvoiceSnapshot } from './subscription-contract.service--cm47ZJJ.js';
29
- export { S as SubscriptionContractModule, a as SubscriptionContractModuleOptions } from './subscription-contract.module-CVebZzHR.js';
31
+ export { S as SubscriptionContractModule, a as SubscriptionContractModuleOptions } from './subscription-contract.module-edyhBr4n.js';
30
32
  export { SUBSCRIPTION_CONTRACT_REPOSITORY_TOKEN } from './subscription-contract/index.js';
31
- export { CronExpression } from '@nestjs/schedule';
32
33
  export { Type as NestType } from '@nestjs/common';
34
+ export { CronExpression } from '@nestjs/schedule';
33
35
  import '@nestjs/core';
34
36
  import 'rxjs';
35
37
 
package/dist/index.js CHANGED
@@ -47,7 +47,7 @@ import {
47
47
  runSeedGateFromFile,
48
48
  seedGateExitCode,
49
49
  validateSeedAgainstSnapshot
50
- } from "./chunk-TXDH4FUA.js";
50
+ } from "./chunk-7RRWI5LH.js";
51
51
  import "./chunk-DBZGV3HC.js";
52
52
  import {
53
53
  DefinesQuota,
@@ -60,13 +60,17 @@ import {
60
60
  DiscoverySnapshotNotFoundError,
61
61
  loadDiscoverySnapshotFromFile
62
62
  } from "./chunk-ABB2CRAS.js";
63
+ import {
64
+ defineSaaSiCat
65
+ } from "./chunk-EWPF57AG.js";
63
66
  import {
64
67
  SETUP_CONFIG_TOKEN,
65
68
  SETUP_PROVISIONING_PORT_TOKEN,
69
+ SaasPlatformModule,
66
70
  SetupController,
67
71
  SetupModule,
68
72
  SetupService
69
- } from "./chunk-WJ6BMDL3.js";
73
+ } from "./chunk-YITTE646.js";
70
74
  import {
71
75
  CreatePromoCodeDto,
72
76
  PreviewPromoCodeDto,
@@ -78,19 +82,12 @@ import {
78
82
  buildPromoCodeAdminController,
79
83
  hashIp,
80
84
  ipFingerprint
81
- } from "./chunk-IRWZC3GC.js";
82
- import {
83
- ADMIN_STATS_AUDIT_WINDOW_DAYS_TOKEN,
84
- AUDIT_STATS_PORT_TOKEN,
85
- AdminStatsController,
86
- AdminStatsModule,
87
- AdminStatsService,
88
- PROMO_CODE_STATS_PORT_TOKEN,
89
- SUBSCRIPTION_STATS_PORT_TOKEN
90
- } from "./chunk-LZHLGUQI.js";
85
+ } from "./chunk-GLLCB4BP.js";
91
86
  import {
92
87
  ADMIN_MANIFEST_CONFIG,
93
88
  ADMIN_RESOURCES_PORT_TOKEN,
89
+ ADMIN_STATS_AUDIT_WINDOW_DAYS_TOKEN,
90
+ AUDIT_STATS_PORT_TOKEN,
94
91
  AdminBypassRlsInterceptor,
95
92
  AdminManifestModule,
96
93
  AdminManifestService,
@@ -98,15 +95,21 @@ import {
98
95
  AdminPublicBootController,
99
96
  AdminResourcesModule,
100
97
  AdminResourcesService,
98
+ AdminStatsController,
99
+ AdminStatsModule,
100
+ AdminStatsService,
101
101
  MfaGuard,
102
102
  MfaService,
103
103
  PLATFORM_CORE_CONTRIBUTION_TOKEN,
104
104
  PLATFORM_CORE_MANIFEST_CONTRIBUTION,
105
+ PROMO_CODE_STATS_PORT_TOKEN,
105
106
  REQUIRE_MFA_KEY,
106
107
  RequireMfa,
108
+ SUBSCRIPTION_STATS_PORT_TOKEN,
107
109
  SuperAdminGuard,
108
- SuspendTenantDto
109
- } from "./chunk-FVT7KTUI.js";
110
+ SuspendTenantDto,
111
+ buildAdminStatsController
112
+ } from "./chunk-PLJEAUFU.js";
110
113
  import {
111
114
  CONTRACT_FREEZE_PORT_TOKEN,
112
115
  CONTRACT_FREEZE_PROJECT_KEY_TOKEN,
@@ -167,7 +170,7 @@ import {
167
170
  periodEndWithMinLead,
168
171
  resolveBundleCancelEffectiveAt,
169
172
  resolveBundlePriceNet
170
- } from "./chunk-DVFPKVLO.js";
173
+ } from "./chunk-5KH2O4SF.js";
171
174
  import {
172
175
  PROMO_CODE_REDEMPTION_REPOSITORY_TOKEN,
173
176
  PROMO_CODE_REPOSITORY_TOKEN,
@@ -190,7 +193,7 @@ import {
190
193
  contractLineItemToInvoiceLineItem,
191
194
  sortContractLineItemsForInvoice,
192
195
  subscriptionContractToInvoiceSnapshot
193
- } from "./chunk-2PNX2QL2.js";
196
+ } from "./chunk-32EMXPU2.js";
194
197
  import {
195
198
  ADVISORY_STRICT_MODE_CODES,
196
199
  BundlesService,
@@ -239,7 +242,7 @@ import {
239
242
  quotaApprovalSignature,
240
243
  validateBundleDraft,
241
244
  validatePlanDraft
242
- } from "./chunk-33TP26MR.js";
245
+ } from "./chunk-P3DP6GJE.js";
243
246
  import {
244
247
  AUDIT_CONTEXT_RESOLVER_TOKEN,
245
248
  PENDING_PLAN_QUERY_PORT_TOKEN,
@@ -267,8 +270,13 @@ import {
267
270
  CreateCheckoutOfferDto,
268
271
  UpdateCheckoutOfferDto,
269
272
  buildCheckoutOfferController
270
- } from "./chunk-HBFU5AN3.js";
273
+ } from "./chunk-GJBXOCRZ.js";
271
274
  import "./chunk-MDIZUVIK.js";
275
+ import {
276
+ SAASICAT_PUBLIC_ROUTE_KEY,
277
+ SaaSiCatPublicRoute,
278
+ isSaaSiCatPublicRoute
279
+ } from "./chunk-YSC46BGM.js";
272
280
  import {
273
281
  DiscoveryModule,
274
282
  buildDiscoveryController
@@ -291,15 +299,18 @@ import {
291
299
  applyCustomLimits,
292
300
  buildReplacedByIndex,
293
301
  collectSubscriptionBundleFeatures,
302
+ contractBundleVersionIds,
303
+ contractLimits,
294
304
  expandReplacedFeatures,
295
305
  filterActiveSubscriptionBundles,
296
306
  filterPlannedOnlyFeatures,
297
307
  hasAnyFeature,
298
308
  hasFeature,
299
309
  isLimitExceededError,
310
+ mergeSubscriptionBundlesIntoLimits,
300
311
  resolveEntitlementPlan,
301
312
  toEffectiveLimitsSnapshot
302
- } from "./chunk-2WNM5THV.js";
313
+ } from "./chunk-EXOLOJFZ.js";
303
314
  import {
304
315
  PLAN_CATALOG_READ_SINK_TOKEN,
305
316
  PLAN_CATALOG_TOKEN,
@@ -501,6 +512,7 @@ export {
501
512
  RequiresCapability,
502
513
  ResendRegistrationOtpDto,
503
514
  ReviewCatalogEntryDto,
515
+ SAASICAT_PUBLIC_ROUTE_KEY,
504
516
  SELF_SERVICE_BLOCKED_BUNDLES_TOKEN,
505
517
  SELF_SERVICE_BLOCKED_PLANS_TOKEN,
506
518
  SETUP_CONFIG_TOKEN,
@@ -513,6 +525,9 @@ export {
513
525
  SUBSCRIPTION_STATS_PORT_TOKEN,
514
526
  SUBSCRIPTION_USAGE_PORT_TOKEN,
515
527
  SUBSCRIPTION_WRITE_PORT_TOKEN,
528
+ SaasPlatformModule as SaaSiCatModule,
529
+ SaaSiCatPublicRoute,
530
+ SaasPlatformModule,
516
531
  SaveRegistrationConfigDto,
517
532
  SaveRegistrationConfigSelectionDto,
518
533
  SelectRegistrationPlanDto,
@@ -565,6 +580,7 @@ export {
565
580
  assertDraftPublishable,
566
581
  assertOptimisticLockHeld,
567
582
  blockingStrictModeWarnings,
583
+ buildAdminStatsController,
568
584
  buildBundleVersionsController,
569
585
  buildBundlesController,
570
586
  buildCatalogEntriesController,
@@ -595,8 +611,11 @@ export {
595
611
  computeProration,
596
612
  computeRegularStartsAt,
597
613
  computeSnapshotHash,
614
+ contractBundleVersionIds,
615
+ contractLimits,
598
616
  contractLineItemToInvoiceLineItem,
599
617
  decideRenewal,
618
+ defineSaaSiCat,
600
619
  expandReplacedFeatures,
601
620
  featureApprovalSignature,
602
621
  filterActiveSubscriptionBundles,
@@ -621,10 +640,12 @@ export {
621
640
  isFeatureInPlan,
622
641
  isFeaturePlannedOnly,
623
642
  isLimitExceededError,
643
+ isSaaSiCatPublicRoute,
624
644
  loadApprovedCatalogKeys,
625
645
  loadDiscoverySnapshotFromFile,
626
646
  loadPlanCatalogFromFile,
627
647
  loadPlanCatalogFromString,
648
+ mergeSubscriptionBundlesIntoLimits,
628
649
  periodEndAfter,
629
650
  periodEndWithMinLead,
630
651
  preflightExitCode,