@saasicat/nest 0.26.1 → 1.0.0-rc.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 (76) hide show
  1. package/LICENSE +90 -201
  2. package/dist/.build-stamp +1 -0
  3. package/dist/_entries.cjs +3175 -2756
  4. package/dist/admin/index.d.cts +2 -2
  5. package/dist/admin/index.d.ts +2 -2
  6. package/dist/admin/index.js +2 -2
  7. package/dist/{admin-stats.service-HUZIU448.d.cts → admin-stats.service-BroyovpL.d.cts} +1 -1
  8. package/dist/{admin-stats.service-Db2exT_d.d.ts → admin-stats.service-G53IEkkt.d.ts} +1 -1
  9. package/dist/billing/index.d.cts +7 -7
  10. package/dist/billing/index.d.ts +7 -7
  11. package/dist/billing/index.js +38 -36
  12. package/dist/catalog/index.d.cts +13 -1
  13. package/dist/catalog/index.d.ts +13 -1
  14. package/dist/catalog/index.js +10 -8
  15. package/dist/checkout-offer/index.js +2 -2
  16. package/dist/chunk-2FR6ZL7R.js +0 -0
  17. package/dist/chunk-2SLTRKXC.js +0 -0
  18. package/dist/{chunk-7ZPFQXHM.js → chunk-3UZW7TU4.js} +1 -1
  19. package/dist/{chunk-XTVAFJ3P.js → chunk-AEEK64XD.js} +3 -3
  20. package/dist/chunk-AOQJEYOL.js +20 -0
  21. package/dist/chunk-H3W6QDQH.js +85 -0
  22. package/dist/{chunk-YYUXKLXK.js → chunk-I7GTA3RX.js} +2 -2
  23. package/dist/{chunk-SN5UOC43.js → chunk-IPOLCDKN.js} +11 -11
  24. package/dist/{chunk-B7NRY2LV.js → chunk-IVEA6M3B.js} +2 -40
  25. package/dist/chunk-JCAZT727.js +1883 -0
  26. package/dist/chunk-JTLKWP3Q.js +792 -0
  27. package/dist/{chunk-E56W4U2P.js → chunk-O2J2HDXA.js} +4 -4
  28. package/dist/{chunk-WKVBNTYC.js → chunk-OUDSQ3PU.js} +6 -6
  29. package/dist/{chunk-MJ32VNZD.js → chunk-P5D5CYO2.js} +18 -18
  30. package/dist/{chunk-L4SUWH5B.js → chunk-QUZU2M33.js} +2 -2
  31. package/dist/{chunk-WPUVJRIN.js → chunk-S6BAD5XM.js} +10 -10
  32. package/dist/{chunk-7X5MSAIL.js → chunk-SH7J5IU7.js} +9 -9
  33. package/dist/{chunk-37HEKVDH.js → chunk-V4OJ43K2.js} +10 -10
  34. package/dist/{chunk-NYLON2VC.js → chunk-VBRYPU7V.js} +2 -2
  35. package/dist/{chunk-B6IWLV7R.js → chunk-VTMCMVYQ.js} +6 -6
  36. package/dist/{chunk-YWDLYOFN.js → chunk-WSPHIIGS.js} +429 -1205
  37. package/dist/{chunk-5ZXBXYXU.js → chunk-WXYJHZCN.js} +3 -3
  38. package/dist/{chunk-6WL6VQ7Z.js → chunk-XBYAFEOR.js} +2 -2
  39. package/dist/{chunk-NNNXXUPT.js → chunk-XEW6YXL5.js} +28 -93
  40. package/dist/chunk-Y43SGD5J.js +50 -0
  41. package/dist/{define-saasicat-BK6RRWWG.d.ts → define-saasicat-BFgeoVG9.d.ts} +28 -5
  42. package/dist/{define-saasicat-D30I-WET.d.cts → define-saasicat-CNUWjfNK.d.cts} +28 -5
  43. package/dist/discovery/index.js +4 -4
  44. package/dist/{enforce-quota.interceptor-B9QueAFf.d.ts → enforce-quota.interceptor-BYqmdFB5.d.ts} +3 -3
  45. package/dist/{enforce-quota.interceptor-DY6CLjoP.d.cts → enforce-quota.interceptor-BxIR63Wn.d.cts} +3 -3
  46. package/dist/entitlement/index.js +9 -6
  47. package/dist/index.d.cts +10 -10
  48. package/dist/index.d.ts +10 -10
  49. package/dist/index.js +61 -52
  50. package/dist/{saas-platform.module-D1mUZPrz.d.ts → module-options-BymIkAsh.d.ts} +68 -55
  51. package/dist/{saas-platform.module-CgalxzcT.d.cts → module-options-DgwBKVpC.d.cts} +68 -55
  52. package/dist/platform/index.d.cts +204 -22
  53. package/dist/platform/index.d.ts +204 -22
  54. package/dist/platform/index.js +49 -25
  55. package/dist/promo/index.d.cts +3 -3
  56. package/dist/promo/index.d.ts +3 -3
  57. package/dist/promo/index.js +3 -3
  58. package/dist/{module-BE17XFLg.d.ts → promo.module-CnzddtJ0.d.ts} +1 -1
  59. package/dist/{module-CHMIyWlf.d.cts → promo.module-DokmUGmm.d.cts} +1 -1
  60. package/dist/registration/index.d.cts +1 -1
  61. package/dist/registration/index.d.ts +1 -1
  62. package/dist/registration/index.js +1 -1
  63. package/dist/subscription-contract/index.js +6 -3
  64. package/dist/{tenant-billing.controller-BSlpFqVA.d.ts → tenant-billing.controller-BQPy5yXh.d.ts} +2 -2
  65. package/dist/{tenant-billing.controller-DHSUrT_N.d.cts → tenant-billing.controller-CODIYzlI.d.cts} +2 -2
  66. package/dist/{subscription-bundles.module-BDbODWvA.d.ts → tenant-billing.module-B0stLoJn.d.ts} +51 -51
  67. package/dist/{subscription-bundles.module-Cfi-lFWF.d.cts → tenant-billing.module-BxJS6fX4.d.cts} +51 -51
  68. package/dist/testing/index.d.cts +14 -14
  69. package/dist/testing/index.d.ts +14 -14
  70. package/dist/testing/index.js +31 -29
  71. package/package.json +6 -6
  72. package/dist/chunk-L4KTQ6CL.js +0 -20
  73. package/dist/chunk-TCBYOFAC.js +0 -1464
  74. /package/dist/{chunk-FY4EJTV4.js → chunk-OYNHOY45.js} +0 -0
  75. /package/dist/{service-D48clObR.d.cts → promo.service-D48clObR.d.cts} +0 -0
  76. /package/dist/{service-D48clObR.d.ts → promo.service-D48clObR.d.ts} +0 -0
@@ -2,7 +2,7 @@ import {
2
2
  DEFINES_QUOTA_KEY,
3
3
  ENFORCE_QUOTA_KEY,
4
4
  IMPLEMENTS_CAPABILITY_KEY
5
- } from "./chunk-L4SUWH5B.js";
5
+ } from "./chunk-QUZU2M33.js";
6
6
  import {
7
7
  __name
8
8
  } from "./chunk-SHUYVCID.js";
@@ -34,8 +34,8 @@ var DEFAULT_APP_INFO = {
34
34
  key: "unknown",
35
35
  version: "0.0.0"
36
36
  };
37
- var DISCOVERY_APP_INFO_TOKEN = /* @__PURE__ */ Symbol.for("saas-platform/DiscoveryAppInfo");
38
- var DISCOVERY_SNAPSHOT_PATH_TOKEN = /* @__PURE__ */ Symbol.for("saas-platform/DiscoverySnapshotPath");
37
+ var DISCOVERY_APP_INFO_TOKEN = /* @__PURE__ */ Symbol.for("saasicat/nest/DiscoveryAppInfo");
38
+ var DISCOVERY_SNAPSHOT_PATH_TOKEN = /* @__PURE__ */ Symbol.for("saasicat/nest/DiscoverySnapshotPath");
39
39
  var DiscoveryScanner = class _DiscoveryScanner {
40
40
  static {
41
41
  __name(this, "DiscoveryScanner");
@@ -2,10 +2,10 @@ import {
2
2
  DISCOVERY_APP_INFO_TOKEN,
3
3
  DISCOVERY_SNAPSHOT_PATH_TOKEN,
4
4
  DiscoveryScanner
5
- } from "./chunk-5ZXBXYXU.js";
5
+ } from "./chunk-WXYJHZCN.js";
6
6
  import {
7
7
  DISCOVERY_SNAPSHOT_TOKEN
8
- } from "./chunk-L4SUWH5B.js";
8
+ } from "./chunk-QUZU2M33.js";
9
9
  import {
10
10
  __name
11
11
  } from "./chunk-SHUYVCID.js";
@@ -4,30 +4,30 @@ import {
4
4
  } from "./chunk-DQKCK7DX.js";
5
5
  import {
6
6
  SUBSCRIPTION_CONTRACT_REPOSITORY_TOKEN
7
- } from "./chunk-NYLON2VC.js";
7
+ } from "./chunk-VBRYPU7V.js";
8
8
  import {
9
9
  codedError
10
10
  } from "./chunk-EBJJNTW6.js";
11
11
  import {
12
12
  ENTITLEMENT_RESOLUTION_CONFIG_TOKEN,
13
- ENTITLEMENT_SERVICE_TOKEN,
14
13
  PLAN_VERSION_REPOSITORY_TOKEN,
15
14
  SUBSCRIPTION_REPOSITORY_TOKEN,
16
15
  TRANSACTION_RUNNER_TOKEN
17
- } from "./chunk-WKVBNTYC.js";
16
+ } from "./chunk-OUDSQ3PU.js";
18
17
  import {
19
18
  BUNDLE_REPOSITORY_TOKEN
20
- } from "./chunk-L4KTQ6CL.js";
21
- import {
22
- asProvider
23
- } from "./chunk-SABTXESR.js";
19
+ } from "./chunk-AOQJEYOL.js";
24
20
  import {
25
21
  DISCOVERY_SNAPSHOT_TOKEN
26
- } from "./chunk-L4SUWH5B.js";
22
+ } from "./chunk-QUZU2M33.js";
27
23
  import {
28
24
  __name
29
25
  } from "./chunk-SHUYVCID.js";
30
26
 
27
+ // src/billing/subscription-bundles.tokens.ts
28
+ var SUBSCRIPTION_BUNDLE_REPOSITORY_TOKEN = /* @__PURE__ */ Symbol.for("saasicat/nest/SubscriptionBundleRepository");
29
+ var SUBSCRIPTION_BUNDLE_CONFIG_TOKEN = /* @__PURE__ */ Symbol.for("saasicat/nest/SubscriptionBundleConfig");
30
+
31
31
  // src/entitlement/aggregation.ts
32
32
  function filterActiveSubscriptionBundles(bundles, now) {
33
33
  return bundles.filter((b) => b.canceledEffectiveAt === null || b.canceledEffectiveAt > now);
@@ -268,24 +268,6 @@ function assertNoReplacesCycle(index) {
268
268
  }
269
269
  __name(assertNoReplacesCycle, "assertNoReplacesCycle");
270
270
 
271
- // src/entitlement/plan-resolution.ts
272
- function resolveEntitlementPlan(input, config, now) {
273
- if (input.isPilot && config.pilotEntitlementPlan !== void 0) {
274
- return config.pilotEntitlementPlan;
275
- }
276
- if (input.status === "TRIAL") {
277
- return input.trialEntitlementPlan ?? config.defaultTrialEntitlementPlan ?? input.plan;
278
- }
279
- if (input.status === "PENDING_SALES" && config.pendingSalesEntitlementPlan !== void 0) {
280
- return config.pendingSalesEntitlementPlan;
281
- }
282
- if (input.pendingPlan && input.pendingEffectiveAt && input.pendingEffectiveAt <= now) {
283
- return input.pendingPlan;
284
- }
285
- return input.plan;
286
- }
287
- __name(resolveEntitlementPlan, "resolveEntitlementPlan");
288
-
289
271
  // src/entitlement/limit-exceeded-error.ts
290
272
  var LIMIT_EXCEEDED = "LIMIT_EXCEEDED";
291
273
  var LimitExceededError = class extends Error {
@@ -306,15 +288,27 @@ function isLimitExceededError(err) {
306
288
  }
307
289
  __name(isLimitExceededError, "isLimitExceededError");
308
290
 
309
- // src/entitlement/service.ts
291
+ // src/entitlement/plan-resolution.ts
292
+ function resolveEntitlementPlan(input, config, now) {
293
+ if (input.isPilot && config.pilotEntitlementPlan !== void 0) {
294
+ return config.pilotEntitlementPlan;
295
+ }
296
+ if (input.status === "TRIAL") {
297
+ return input.trialEntitlementPlan ?? config.defaultTrialEntitlementPlan ?? input.plan;
298
+ }
299
+ if (input.status === "PENDING_SALES" && config.pendingSalesEntitlementPlan !== void 0) {
300
+ return config.pendingSalesEntitlementPlan;
301
+ }
302
+ if (input.pendingPlan && input.pendingEffectiveAt && input.pendingEffectiveAt <= now) {
303
+ return input.pendingPlan;
304
+ }
305
+ return input.plan;
306
+ }
307
+ __name(resolveEntitlementPlan, "resolveEntitlementPlan");
308
+
309
+ // src/entitlement/entitlement.service.ts
310
310
  import { Inject, Injectable, InternalServerErrorException, NotFoundException, Optional } from "@nestjs/common";
311
311
  import { BILLING_ERROR_CODES } from "@saasicat/types";
312
-
313
- // src/billing/subscription-bundles.tokens.ts
314
- var SUBSCRIPTION_BUNDLE_REPOSITORY_TOKEN = /* @__PURE__ */ Symbol.for("saas-platform/SubscriptionBundleRepository");
315
- var SUBSCRIPTION_BUNDLE_CONFIG_TOKEN = /* @__PURE__ */ Symbol.for("saas-platform/SubscriptionBundleConfig");
316
-
317
- // src/entitlement/service.ts
318
312
  function _ts_decorate(decorators, target, key, desc) {
319
313
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
320
314
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -577,64 +571,6 @@ EntitlementService = _ts_decorate([
577
571
  ])
578
572
  ], EntitlementService);
579
573
 
580
- // src/entitlement/module.ts
581
- import { Module } from "@nestjs/common";
582
- function _ts_decorate2(decorators, target, key, desc) {
583
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
584
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
585
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
586
- return c > 3 && r && Object.defineProperty(target, key, r), r;
587
- }
588
- __name(_ts_decorate2, "_ts_decorate");
589
- var EntitlementModule = class _EntitlementModule {
590
- static {
591
- __name(this, "EntitlementModule");
592
- }
593
- static forRoot(options) {
594
- const providers = [
595
- asProvider(SUBSCRIPTION_REPOSITORY_TOKEN, options.subscriptionRepository),
596
- asProvider(PLAN_VERSION_REPOSITORY_TOKEN, options.planVersionRepository),
597
- asProvider(TRANSACTION_RUNNER_TOKEN, options.transactionRunner),
598
- EntitlementService,
599
- // Cross-bundle-stable alias so consumers in other subpath bundles
600
- // (billing/TenantBillingModule) can inject the same instance.
601
- {
602
- provide: ENTITLEMENT_SERVICE_TOKEN,
603
- useExisting: EntitlementService
604
- }
605
- ];
606
- if (options.resolutionConfig) {
607
- providers.push({
608
- provide: ENTITLEMENT_RESOLUTION_CONFIG_TOKEN,
609
- useValue: options.resolutionConfig
610
- });
611
- }
612
- if (options.subscriptionContractRepository) {
613
- providers.push(asProvider(SUBSCRIPTION_CONTRACT_REPOSITORY_TOKEN, options.subscriptionContractRepository));
614
- }
615
- if (options.subscriptionBundleRepository) {
616
- providers.push(asProvider(SUBSCRIPTION_BUNDLE_REPOSITORY_TOKEN, options.subscriptionBundleRepository));
617
- }
618
- if (options.bundleRepository) {
619
- providers.push(asProvider(BUNDLE_REPOSITORY_TOKEN, options.bundleRepository));
620
- }
621
- return {
622
- module: _EntitlementModule,
623
- global: options.global ?? false,
624
- imports: options.imports ?? [],
625
- providers,
626
- exports: [
627
- EntitlementService,
628
- ENTITLEMENT_SERVICE_TOKEN,
629
- SUBSCRIPTION_REPOSITORY_TOKEN
630
- ]
631
- };
632
- }
633
- };
634
- EntitlementModule = _ts_decorate2([
635
- Module({})
636
- ], EntitlementModule);
637
-
638
574
  export {
639
575
  SUBSCRIPTION_BUNDLE_REPOSITORY_TOKEN,
640
576
  SUBSCRIPTION_BUNDLE_CONFIG_TOKEN,
@@ -656,6 +592,5 @@ export {
656
592
  LimitExceededError,
657
593
  isLimitExceededError,
658
594
  resolveEntitlementPlan,
659
- EntitlementService,
660
- EntitlementModule
595
+ EntitlementService
661
596
  };
@@ -0,0 +1,50 @@
1
+ import {
2
+ SubscriptionContractService
3
+ } from "./chunk-IVEA6M3B.js";
4
+ import {
5
+ SUBSCRIPTION_CONTRACT_REPOSITORY_TOKEN
6
+ } from "./chunk-VBRYPU7V.js";
7
+ import {
8
+ asProvider
9
+ } from "./chunk-SABTXESR.js";
10
+ import {
11
+ __name
12
+ } from "./chunk-SHUYVCID.js";
13
+
14
+ // src/subscription-contract/subscription-contract.module.ts
15
+ import { Module } from "@nestjs/common";
16
+ function _ts_decorate(decorators, target, key, desc) {
17
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
18
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
19
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
20
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
21
+ }
22
+ __name(_ts_decorate, "_ts_decorate");
23
+ var SubscriptionContractModule = class _SubscriptionContractModule {
24
+ static {
25
+ __name(this, "SubscriptionContractModule");
26
+ }
27
+ static forRoot(options) {
28
+ return {
29
+ module: _SubscriptionContractModule,
30
+ global: options.global ?? false,
31
+ imports: options.imports ?? [],
32
+ providers: [
33
+ asProvider(SUBSCRIPTION_CONTRACT_REPOSITORY_TOKEN, options.subscriptionContractRepository),
34
+ SubscriptionContractService,
35
+ ...options.extraProviders ?? []
36
+ ],
37
+ exports: [
38
+ SubscriptionContractService,
39
+ SUBSCRIPTION_CONTRACT_REPOSITORY_TOKEN
40
+ ]
41
+ };
42
+ }
43
+ };
44
+ SubscriptionContractModule = _ts_decorate([
45
+ Module({})
46
+ ], SubscriptionContractModule);
47
+
48
+ export {
49
+ SubscriptionContractModule
50
+ };
@@ -1,9 +1,9 @@
1
1
  import * as _nestjs_common from '@nestjs/common';
2
- import { ExecutionContext } from '@nestjs/common';
2
+ import { ExecutionContext, DynamicModule } from '@nestjs/common';
3
3
  import { Reflector } from '@nestjs/core';
4
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-D1mUZPrz.js';
5
+ import { h as MfaService } from './admin-stats.service-G53IEkkt.js';
6
+ import { e as SaaSiCatModuleOptions } from './module-options-BymIkAsh.js';
7
7
 
8
8
  /**
9
9
  * Shared metadata key for endpoints that intentionally run without application
@@ -36,11 +36,34 @@ declare class SetupService {
36
36
  private assertNoSuperAdmin;
37
37
  }
38
38
 
39
+ /**
40
+ * Bundles the complete standard SaaSiCat backend stack into a single
41
+ * `forRoot({...})` call. Reduces AppModule boilerplate and eliminates the
42
+ * ordering trap.
43
+ *
44
+ * Quickstart path (Prisma + PostgreSQL on the canonical schema):
45
+ *
46
+ * ```ts
47
+ * SaaSiCatModule.forRoot({
48
+ * planCatalog: loadPlanCatalogFromFile({ path: 'config/saas.yaml' }),
49
+ * controller: { guards: [JwtAuthGuard] },
50
+ * imports: [AuthModule],
51
+ * persistence: prismaPersistence({ client: PrismaService }), // @saasicat/adapter-prisma
52
+ * })
53
+ * ```
54
+ *
55
+ * Individual `adapters` entries stay supported (custom schema / other ORM)
56
+ * and override bundle slices field by field.
57
+ */
58
+ declare class SaaSiCatModule {
59
+ static forRoot(options: SaaSiCatModuleOptions): DynamicModule;
60
+ }
61
+
39
62
  /**
40
63
  * Typed identity helper for the high-level SaaSiCat configuration. It keeps
41
64
  * literal types and gives editors one place for completion without adding
42
65
  * runtime behavior.
43
66
  */
44
- declare function defineSaaSiCat<const T extends SaasPlatformModuleOptions>(options: T): T;
67
+ declare function defineSaaSiCat<const T extends SaaSiCatModuleOptions>(options: T): T;
45
68
 
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 };
69
+ export { SetupService as S, SAASICAT_PUBLIC_ROUTE_KEY as a, SETUP_CONFIG_TOKEN as b, SETUP_PROVISIONING_PORT_TOKEN as c, SaaSiCatModule as d, SaaSiCatPublicRoute as e, type SetupConfig as f, defineSaaSiCat as g, isSaaSiCatPublicRoute as i };
@@ -1,9 +1,9 @@
1
1
  import * as _nestjs_common from '@nestjs/common';
2
- import { ExecutionContext } from '@nestjs/common';
2
+ import { ExecutionContext, DynamicModule } from '@nestjs/common';
3
3
  import { Reflector } from '@nestjs/core';
4
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-CgalxzcT.cjs';
5
+ import { h as MfaService } from './admin-stats.service-BroyovpL.cjs';
6
+ import { e as SaaSiCatModuleOptions } from './module-options-DgwBKVpC.cjs';
7
7
 
8
8
  /**
9
9
  * Shared metadata key for endpoints that intentionally run without application
@@ -36,11 +36,34 @@ declare class SetupService {
36
36
  private assertNoSuperAdmin;
37
37
  }
38
38
 
39
+ /**
40
+ * Bundles the complete standard SaaSiCat backend stack into a single
41
+ * `forRoot({...})` call. Reduces AppModule boilerplate and eliminates the
42
+ * ordering trap.
43
+ *
44
+ * Quickstart path (Prisma + PostgreSQL on the canonical schema):
45
+ *
46
+ * ```ts
47
+ * SaaSiCatModule.forRoot({
48
+ * planCatalog: loadPlanCatalogFromFile({ path: 'config/saas.yaml' }),
49
+ * controller: { guards: [JwtAuthGuard] },
50
+ * imports: [AuthModule],
51
+ * persistence: prismaPersistence({ client: PrismaService }), // @saasicat/adapter-prisma
52
+ * })
53
+ * ```
54
+ *
55
+ * Individual `adapters` entries stay supported (custom schema / other ORM)
56
+ * and override bundle slices field by field.
57
+ */
58
+ declare class SaaSiCatModule {
59
+ static forRoot(options: SaaSiCatModuleOptions): DynamicModule;
60
+ }
61
+
39
62
  /**
40
63
  * Typed identity helper for the high-level SaaSiCat configuration. It keeps
41
64
  * literal types and gives editors one place for completion without adding
42
65
  * runtime behavior.
43
66
  */
44
- declare function defineSaaSiCat<const T extends SaasPlatformModuleOptions>(options: T): T;
67
+ declare function defineSaaSiCat<const T extends SaaSiCatModuleOptions>(options: T): T;
45
68
 
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 };
69
+ export { SetupService as S, SAASICAT_PUBLIC_ROUTE_KEY as a, SETUP_CONFIG_TOKEN as b, SETUP_PROVISIONING_PORT_TOKEN as c, SaaSiCatModule as d, SaaSiCatPublicRoute as e, type SetupConfig as f, defineSaaSiCat as g, isSaaSiCatPublicRoute as i };
@@ -4,7 +4,7 @@ import {
4
4
  ImplementsCapability,
5
5
  RequiresCapability,
6
6
  runHeadlessDiscoveryScan
7
- } from "../chunk-YYUXKLXK.js";
7
+ } from "../chunk-I7GTA3RX.js";
8
8
  import {
9
9
  DiscoverySnapshotNotFoundError,
10
10
  loadDiscoverySnapshotFromFile
@@ -12,20 +12,20 @@ import {
12
12
  import {
13
13
  DiscoveryModule,
14
14
  buildDiscoveryController
15
- } from "../chunk-6WL6VQ7Z.js";
15
+ } from "../chunk-XBYAFEOR.js";
16
16
  import {
17
17
  DISCOVERY_APP_INFO_TOKEN,
18
18
  DISCOVERY_SNAPSHOT_PATH_TOKEN,
19
19
  DiscoveryScanner,
20
20
  computeSnapshotHash
21
- } from "../chunk-5ZXBXYXU.js";
21
+ } from "../chunk-WXYJHZCN.js";
22
22
  import {
23
23
  DEFINES_QUOTA_KEY,
24
24
  DISCOVERY_SNAPSHOT_TOKEN,
25
25
  ENFORCE_QUOTA_KEY,
26
26
  IMPLEMENTS_CAPABILITY_KEY,
27
27
  REQUIRES_CAPABILITY_KEY
28
- } from "../chunk-L4SUWH5B.js";
28
+ } from "../chunk-QUZU2M33.js";
29
29
  import "../chunk-SHUYVCID.js";
30
30
  export {
31
31
  DEFINES_QUOTA_KEY,
@@ -1,9 +1,9 @@
1
1
  import { CanActivate, ExecutionContext, NestInterceptor, CallHandler } from '@nestjs/common';
2
2
  import { Reflector } from '@nestjs/core';
3
- import { F as FEATURE_GUARD_MARKER } from './subscription-bundles.module-BDbODWvA.js';
3
+ import { F as FEATURE_GUARD_MARKER } from './tenant-billing.module-B0stLoJn.js';
4
4
  import { Observable } from 'rxjs';
5
5
  import { PlanCatalog, QuotaProvider } from '@saasicat/types';
6
- import { p as PlanResolverPort } from './saas-platform.module-D1mUZPrz.js';
6
+ import { o as PlanResolverPort } from './module-options-BymIkAsh.js';
7
7
 
8
8
  interface StaticEntitlementSnapshot {
9
9
  planId: string | null;
@@ -44,7 +44,7 @@ declare class StaticFeatureGuard implements CanActivate {
44
44
  private readonly reflector;
45
45
  private readonly entitlements;
46
46
  private readonly config;
47
- /** Lets `FeatureGuardCoverageCheck` recognise this guard across CJS entries. */
47
+ /** Lets `EnforcementChainCheck` recognise this guard across CJS entries. */
48
48
  static readonly [FEATURE_GUARD_MARKER] = true;
49
49
  constructor(reflector: Reflector, entitlements: StaticEntitlementService, config?: StaticFeatureGuardConfig | null);
50
50
  canActivate(context: ExecutionContext): Promise<boolean>;
@@ -1,9 +1,9 @@
1
1
  import { CanActivate, ExecutionContext, NestInterceptor, CallHandler } from '@nestjs/common';
2
2
  import { Reflector } from '@nestjs/core';
3
- import { F as FEATURE_GUARD_MARKER } from './subscription-bundles.module-Cfi-lFWF.cjs';
3
+ import { F as FEATURE_GUARD_MARKER } from './tenant-billing.module-BxJS6fX4.cjs';
4
4
  import { Observable } from 'rxjs';
5
5
  import { PlanCatalog, QuotaProvider } from '@saasicat/types';
6
- import { p as PlanResolverPort } from './saas-platform.module-CgalxzcT.cjs';
6
+ import { o as PlanResolverPort } from './module-options-DgwBKVpC.cjs';
7
7
 
8
8
  interface StaticEntitlementSnapshot {
9
9
  planId: string | null;
@@ -44,7 +44,7 @@ declare class StaticFeatureGuard implements CanActivate {
44
44
  private readonly reflector;
45
45
  private readonly entitlements;
46
46
  private readonly config;
47
- /** Lets `FeatureGuardCoverageCheck` recognise this guard across CJS entries. */
47
+ /** Lets `EnforcementChainCheck` recognise this guard across CJS entries. */
48
48
  static readonly [FEATURE_GUARD_MARKER] = true;
49
49
  constructor(reflector: Reflector, entitlements: StaticEntitlementService, config?: StaticFeatureGuardConfig | null);
50
50
  canActivate(context: ExecutionContext): Promise<boolean>;
@@ -1,5 +1,8 @@
1
+ import "../chunk-2FR6ZL7R.js";
2
+ import {
3
+ EntitlementModule
4
+ } from "../chunk-H3W6QDQH.js";
1
5
  import {
2
- EntitlementModule,
3
6
  EntitlementService,
4
7
  LimitExceededError,
5
8
  aggregateContractLineItemEntitlements,
@@ -19,9 +22,9 @@ import {
19
22
  mergeSubscriptionBundlesIntoLimits,
20
23
  resolveEntitlementPlan,
21
24
  toEffectiveLimitsSnapshot
22
- } from "../chunk-NNNXXUPT.js";
25
+ } from "../chunk-XEW6YXL5.js";
23
26
  import "../chunk-DQKCK7DX.js";
24
- import "../chunk-NYLON2VC.js";
27
+ import "../chunk-VBRYPU7V.js";
25
28
  import "../chunk-EBJJNTW6.js";
26
29
  import {
27
30
  ENTITLEMENT_RESOLUTION_CONFIG_TOKEN,
@@ -29,10 +32,10 @@ import {
29
32
  PLAN_VERSION_REPOSITORY_TOKEN,
30
33
  SUBSCRIPTION_REPOSITORY_TOKEN,
31
34
  TRANSACTION_RUNNER_TOKEN
32
- } from "../chunk-WKVBNTYC.js";
33
- import "../chunk-L4KTQ6CL.js";
35
+ } from "../chunk-OUDSQ3PU.js";
36
+ import "../chunk-AOQJEYOL.js";
34
37
  import "../chunk-SABTXESR.js";
35
- import "../chunk-L4SUWH5B.js";
38
+ import "../chunk-QUZU2M33.js";
36
39
  import "../chunk-SHUYVCID.js";
37
40
  export {
38
41
  ENTITLEMENT_RESOLUTION_CONFIG_TOKEN,
package/dist/index.d.cts CHANGED
@@ -1,28 +1,28 @@
1
1
  export { P as ProviderSpec, a as asProvider } from './di-CcNeq9v-.cjs';
2
- import { S as SetupService } from './define-saasicat-D30I-WET.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-D30I-WET.cjs';
2
+ import { S as SetupService } from './define-saasicat-CNUWjfNK.cjs';
3
+ export { a as SAASICAT_PUBLIC_ROUTE_KEY, b as SETUP_CONFIG_TOKEN, c as SETUP_PROVISIONING_PORT_TOKEN, d as SaaSiCatModule, e as SaaSiCatPublicRoute, f as SetupConfig, g as defineSaaSiCat, i as isSaaSiCatPublicRoute } from './define-saasicat-CNUWjfNK.cjs';
4
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, PromoLabelOptions, UpdatePromoCodeDto, addCycles, buildLabel, buildPromoCodeAdminController, computeDiscountGross, computeDiscountedGross, computeIncludedVat, computeRegularStartsAt, grossFromNet, round2 } from './promo/index.cjs';
5
- export { a as PreviewInput, b as PreviewInvalid, c as PreviewReason, d as PreviewResult, e as PreviewValid, f as PromoCodeStats, g as PromoCodesService, P as PromoServiceConfig, R as RedeemInput } from './service-D48clObR.cjs';
5
+ export { a as PreviewInput, b as PreviewInvalid, c as PreviewReason, d as PreviewResult, e as PreviewValid, f as PromoCodeStats, g as PromoCodesService, P as PromoServiceConfig, R as RedeemInput } from './promo.service-D48clObR.cjs';
6
6
  export { P as PromoCodeRateLimitGuard, h as hashIp, i as ipFingerprint } from './rate-limit.guard-dntqAlfZ.cjs';
7
- export { P as PromoCodesModule, a as PromoCodesModuleOptions } from './module-CHMIyWlf.cjs';
8
- export { AjvErrorLike, CatalogBundleUpsellResolver, ConfiguratorCatalogBuilder, FEATURE_GUARD_CONFIG_TOKEN, FEATURE_UI_REGISTRY_TOKEN, FeatureGuard, FeatureGuardConfig, LimitExceededFilter, LoadPlanCatalogOptions, MarketingFields, NextPeriodWindow, PLAN_CATALOG_IMPORT_SINK_TOKEN, PLAN_CATALOG_READ_SINK_TOKEN, PLAN_CATALOG_TOKEN, PUBLIC_CATALOG_BUNDLE_REPOSITORY_TOKEN, PUBLIC_CATALOG_MARKETING_REPOSITORY_TOKEN, PUBLIC_CATALOG_PROJECT_KEY_TOKEN, PeriodRollInput, PlanCatalogBuildSettings, PlanCatalogImportDto, PlanCatalogImporterControllerConfig, PlanCatalogImporterModule, PlanCatalogImporterModuleOptions, PlanCatalogImporterService, PlanCatalogModule, PlanCatalogModuleOptions, PlanCatalogValidationError, PlanResponseEntry, PublicBundleEntry, PublicCatalogController, PublicCatalogModule, PublicCatalogModuleOptions, PublishValidationError, PublishablePlanVersion, REQUIRE_FEATURE_KEY, RenewalDecision, RenewalSubInput, RequireFeature, SUBSCRIPTION_BUNDLE_CONFIG_TOKEN, SUBSCRIPTION_BUNDLE_REPOSITORY_TOKEN, SubscriptionContractFreezeService, UPSELL_OFFER_CURRENCY_TOKEN, UPSELL_OFFER_RESOLVER_TOKEN, assertBaseVersionFresh, assertChangeNote, assertDraftPublishable, assertOptimisticLockHeld, buildPlanCatalogFromSnapshot, buildPlanCatalogImporterController, buildTenantSubscriptionBundlesController, clearPendingPlanVersionFields, computeCarriedTrialEndsAt, computeNextPeriod, decideRenewal, findPlan, getActiveFeatureKeys, getMarketedPlans, getPlanOrThrow, getPlanPriceGross, getPlanPriceNet, getPlanQuota, initialPeriodWindow, isFeatureInPlan, isFeaturePlannedOnly, loadPlanCatalogFromFile, loadPlanCatalogFromString, periodEndAfter, periodEndWithMinLead } from './billing/index.cjs';
7
+ export { P as PromoCodesModule, a as PromoCodesModuleOptions } from './promo.module-DokmUGmm.cjs';
8
+ export { AjvErrorLike, BILLING_FEATURE_UI_REGISTRY_TOKEN, CatalogBundleUpsellResolver, ConfiguratorCatalogBuilder, FEATURE_GUARD_CONFIG_TOKEN, FeatureGuard, FeatureGuardConfig, LimitExceededFilter, LoadPlanCatalogOptions, MarketingFields, NextPeriodWindow, PLAN_CATALOG_IMPORT_SINK_TOKEN, PLAN_CATALOG_READ_SINK_TOKEN, PLAN_CATALOG_TOKEN, PUBLIC_CATALOG_BUNDLE_REPOSITORY_TOKEN, PUBLIC_CATALOG_MARKETING_REPOSITORY_TOKEN, PUBLIC_CATALOG_PROJECT_KEY_TOKEN, PeriodRollInput, PlanCatalogBuildSettings, PlanCatalogImportDto, PlanCatalogImporterControllerConfig, PlanCatalogImporterModule, PlanCatalogImporterModuleOptions, PlanCatalogImporterService, PlanCatalogModule, PlanCatalogModuleOptions, PlanCatalogValidationError, PlanResponseEntry, PublicBundleEntry, PublicCatalogController, PublicCatalogModule, PublicCatalogModuleOptions, PublishValidationError, PublishablePlanVersion, REQUIRE_FEATURE_KEY, RenewalDecision, RenewalSubInput, RequireFeature, SUBSCRIPTION_BUNDLE_CONFIG_TOKEN, SUBSCRIPTION_BUNDLE_REPOSITORY_TOKEN, SubscriptionContractFreezeService, UPSELL_OFFER_CURRENCY_TOKEN, UPSELL_OFFER_RESOLVER_TOKEN, assertBaseVersionFresh, assertChangeNote, assertDraftPublishable, assertOptimisticLockHeld, buildPlanCatalogFromSnapshot, buildPlanCatalogImporterController, buildTenantSubscriptionBundlesController, clearPendingPlanVersionFields, computeCarriedTrialEndsAt, computeNextPeriod, decideRenewal, findPlan, getActiveFeatureKeys, getMarketedPlans, getPlanOrThrow, getPlanPriceGross, getPlanPriceNet, getPlanQuota, initialPeriodWindow, isFeatureInPlan, isFeaturePlannedOnly, loadPlanCatalogFromFile, loadPlanCatalogFromString, periodEndAfter, periodEndWithMinLead } from './billing/index.cjs';
9
9
  import { SetupStatusResponse, SetupResult, SetupConfirmMfaResponse, PlatformErrorCode, PlatformErrorBody } from '@saasicat/types';
10
10
  export { BundleVersionFields, ChangeDirection, DiffResult, DiscoveredCapability, DiscoveredFeature, DiscoveredQuota, DiscoverySnapshot, PasswordHasher, PlanVersionFields, VersionChange, VersionChangeDirection, classifyBundleVersionDiff, classifyPlanDiff } from '@saasicat/types';
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, F as FEATURE_GUARD_MARKER, M as MarkedFeatureGuard, 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, E as isPlatformFeatureGuard } from './subscription-bundles.module-Cfi-lFWF.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-DHSUrT_N.cjs';
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, F as FEATURE_GUARD_MARKER, M as MarkedFeatureGuard, 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, E as isPlatformFeatureGuard } from './tenant-billing.module-BxJS6fX4.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-CODIYzlI.cjs';
13
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-mZ7WZROK.cjs';
14
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';
15
15
  export { E as EntitlementResolutionConfig, a as EntitlementResolutionInput, r as resolveEntitlementPlan } from './plan-resolution-CFCoUkrE.cjs';
16
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';
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-BroyovpL.cjs';
18
18
  export { A as AdminAuditService } from './admin-audit.service-9IqXMlZm.cjs';
19
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-CgalxzcT.cjs';
20
+ export { S as SaaSiCatAdapters, a as SaaSiCatAdminResourcesOptions, b as SaaSiCatAdminStatsOptions, c as SaaSiCatCatalogOptions, d as SaaSiCatCheckoutOfferOptions, e as SaaSiCatModuleOptions, f as SaaSiCatPromoCodesOptions, g as SaaSiCatSetupOptions, h as SaaSiCatSubscriptionBundlesOptions, i as SaaSiCatSubscriptionContractOptions, j as SaaSiCatTenantAuthGuards, k as SaaSiCatTenantBillingOptions, l as SetupModule, m as SetupModuleOptions } from './module-options-DgwBKVpC.cjs';
21
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';
22
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';
23
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';
24
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-_saKzb50.cjs';
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
+ export { ADVISORY_STRICT_MODE_CODES, BUNDLE_REPOSITORY_TOKEN, CATALOG_ENTRY_REPOSITORY_TOKEN, CATALOG_FEATURE_UI_REGISTRY_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';
26
26
  export { C as CatalogControllerConfig, a as CatalogModule, b as CatalogModuleOptions } from './catalog.module-D-_pQDNA.cjs';
27
27
  export { C as CheckoutOfferService } from './checkout-offer.service-BX51dljL.cjs';
28
28
  export { CHECKOUT_OFFER_REPOSITORY_TOKEN, CreateCheckoutOfferDto, UpdateCheckoutOfferDto, buildCheckoutOfferController } from './checkout-offer/index.cjs';
package/dist/index.d.ts CHANGED
@@ -1,28 +1,28 @@
1
1
  export { P as ProviderSpec, a as asProvider } from './di-CcNeq9v-.js';
2
- import { S as SetupService } from './define-saasicat-BK6RRWWG.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-BK6RRWWG.js';
2
+ import { S as SetupService } from './define-saasicat-BFgeoVG9.js';
3
+ export { a as SAASICAT_PUBLIC_ROUTE_KEY, b as SETUP_CONFIG_TOKEN, c as SETUP_PROVISIONING_PORT_TOKEN, d as SaaSiCatModule, e as SaaSiCatPublicRoute, f as SetupConfig, g as defineSaaSiCat, i as isSaaSiCatPublicRoute } from './define-saasicat-BFgeoVG9.js';
4
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, PromoLabelOptions, UpdatePromoCodeDto, addCycles, buildLabel, buildPromoCodeAdminController, computeDiscountGross, computeDiscountedGross, computeIncludedVat, computeRegularStartsAt, grossFromNet, round2 } from './promo/index.js';
5
- export { a as PreviewInput, b as PreviewInvalid, c as PreviewReason, d as PreviewResult, e as PreviewValid, f as PromoCodeStats, g as PromoCodesService, P as PromoServiceConfig, R as RedeemInput } from './service-D48clObR.js';
5
+ export { a as PreviewInput, b as PreviewInvalid, c as PreviewReason, d as PreviewResult, e as PreviewValid, f as PromoCodeStats, g as PromoCodesService, P as PromoServiceConfig, R as RedeemInput } from './promo.service-D48clObR.js';
6
6
  export { P as PromoCodeRateLimitGuard, h as hashIp, i as ipFingerprint } from './rate-limit.guard-dntqAlfZ.js';
7
- export { P as PromoCodesModule, a as PromoCodesModuleOptions } from './module-BE17XFLg.js';
8
- export { AjvErrorLike, CatalogBundleUpsellResolver, ConfiguratorCatalogBuilder, FEATURE_GUARD_CONFIG_TOKEN, FEATURE_UI_REGISTRY_TOKEN, FeatureGuard, FeatureGuardConfig, LimitExceededFilter, LoadPlanCatalogOptions, MarketingFields, NextPeriodWindow, PLAN_CATALOG_IMPORT_SINK_TOKEN, PLAN_CATALOG_READ_SINK_TOKEN, PLAN_CATALOG_TOKEN, PUBLIC_CATALOG_BUNDLE_REPOSITORY_TOKEN, PUBLIC_CATALOG_MARKETING_REPOSITORY_TOKEN, PUBLIC_CATALOG_PROJECT_KEY_TOKEN, PeriodRollInput, PlanCatalogBuildSettings, PlanCatalogImportDto, PlanCatalogImporterControllerConfig, PlanCatalogImporterModule, PlanCatalogImporterModuleOptions, PlanCatalogImporterService, PlanCatalogModule, PlanCatalogModuleOptions, PlanCatalogValidationError, PlanResponseEntry, PublicBundleEntry, PublicCatalogController, PublicCatalogModule, PublicCatalogModuleOptions, PublishValidationError, PublishablePlanVersion, REQUIRE_FEATURE_KEY, RenewalDecision, RenewalSubInput, RequireFeature, SUBSCRIPTION_BUNDLE_CONFIG_TOKEN, SUBSCRIPTION_BUNDLE_REPOSITORY_TOKEN, SubscriptionContractFreezeService, UPSELL_OFFER_CURRENCY_TOKEN, UPSELL_OFFER_RESOLVER_TOKEN, assertBaseVersionFresh, assertChangeNote, assertDraftPublishable, assertOptimisticLockHeld, buildPlanCatalogFromSnapshot, buildPlanCatalogImporterController, buildTenantSubscriptionBundlesController, clearPendingPlanVersionFields, computeCarriedTrialEndsAt, computeNextPeriod, decideRenewal, findPlan, getActiveFeatureKeys, getMarketedPlans, getPlanOrThrow, getPlanPriceGross, getPlanPriceNet, getPlanQuota, initialPeriodWindow, isFeatureInPlan, isFeaturePlannedOnly, loadPlanCatalogFromFile, loadPlanCatalogFromString, periodEndAfter, periodEndWithMinLead } from './billing/index.js';
7
+ export { P as PromoCodesModule, a as PromoCodesModuleOptions } from './promo.module-CnzddtJ0.js';
8
+ export { AjvErrorLike, BILLING_FEATURE_UI_REGISTRY_TOKEN, CatalogBundleUpsellResolver, ConfiguratorCatalogBuilder, FEATURE_GUARD_CONFIG_TOKEN, FeatureGuard, FeatureGuardConfig, LimitExceededFilter, LoadPlanCatalogOptions, MarketingFields, NextPeriodWindow, PLAN_CATALOG_IMPORT_SINK_TOKEN, PLAN_CATALOG_READ_SINK_TOKEN, PLAN_CATALOG_TOKEN, PUBLIC_CATALOG_BUNDLE_REPOSITORY_TOKEN, PUBLIC_CATALOG_MARKETING_REPOSITORY_TOKEN, PUBLIC_CATALOG_PROJECT_KEY_TOKEN, PeriodRollInput, PlanCatalogBuildSettings, PlanCatalogImportDto, PlanCatalogImporterControllerConfig, PlanCatalogImporterModule, PlanCatalogImporterModuleOptions, PlanCatalogImporterService, PlanCatalogModule, PlanCatalogModuleOptions, PlanCatalogValidationError, PlanResponseEntry, PublicBundleEntry, PublicCatalogController, PublicCatalogModule, PublicCatalogModuleOptions, PublishValidationError, PublishablePlanVersion, REQUIRE_FEATURE_KEY, RenewalDecision, RenewalSubInput, RequireFeature, SUBSCRIPTION_BUNDLE_CONFIG_TOKEN, SUBSCRIPTION_BUNDLE_REPOSITORY_TOKEN, SubscriptionContractFreezeService, UPSELL_OFFER_CURRENCY_TOKEN, UPSELL_OFFER_RESOLVER_TOKEN, assertBaseVersionFresh, assertChangeNote, assertDraftPublishable, assertOptimisticLockHeld, buildPlanCatalogFromSnapshot, buildPlanCatalogImporterController, buildTenantSubscriptionBundlesController, clearPendingPlanVersionFields, computeCarriedTrialEndsAt, computeNextPeriod, decideRenewal, findPlan, getActiveFeatureKeys, getMarketedPlans, getPlanOrThrow, getPlanPriceGross, getPlanPriceNet, getPlanQuota, initialPeriodWindow, isFeatureInPlan, isFeaturePlannedOnly, loadPlanCatalogFromFile, loadPlanCatalogFromString, periodEndAfter, periodEndWithMinLead } from './billing/index.js';
9
9
  import { SetupStatusResponse, SetupResult, SetupConfirmMfaResponse, PlatformErrorCode, PlatformErrorBody } from '@saasicat/types';
10
10
  export { BundleVersionFields, ChangeDirection, DiffResult, DiscoveredCapability, DiscoveredFeature, DiscoveredQuota, DiscoverySnapshot, PasswordHasher, PlanVersionFields, VersionChange, VersionChangeDirection, classifyBundleVersionDiff, classifyPlanDiff } from '@saasicat/types';
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, F as FEATURE_GUARD_MARKER, M as MarkedFeatureGuard, 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, E as isPlatformFeatureGuard } from './subscription-bundles.module-BDbODWvA.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-BSlpFqVA.js';
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, F as FEATURE_GUARD_MARKER, M as MarkedFeatureGuard, 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, E as isPlatformFeatureGuard } from './tenant-billing.module-B0stLoJn.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-BQPy5yXh.js';
13
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-DP5zfKbU.js';
14
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';
15
15
  export { E as EntitlementResolutionConfig, a as EntitlementResolutionInput, r as resolveEntitlementPlan } from './plan-resolution-CFCoUkrE.js';
16
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';
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-G53IEkkt.js';
18
18
  export { A as AdminAuditService } from './admin-audit.service-9IqXMlZm.js';
19
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-D1mUZPrz.js';
20
+ export { S as SaaSiCatAdapters, a as SaaSiCatAdminResourcesOptions, b as SaaSiCatAdminStatsOptions, c as SaaSiCatCatalogOptions, d as SaaSiCatCheckoutOfferOptions, e as SaaSiCatModuleOptions, f as SaaSiCatPromoCodesOptions, g as SaaSiCatSetupOptions, h as SaaSiCatSubscriptionBundlesOptions, i as SaaSiCatSubscriptionContractOptions, j as SaaSiCatTenantAuthGuards, k as SaaSiCatTenantBillingOptions, l as SetupModule, m as SetupModuleOptions } from './module-options-BymIkAsh.js';
21
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';
22
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';
23
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';
24
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-B-YoE4SZ.js';
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
+ export { ADVISORY_STRICT_MODE_CODES, BUNDLE_REPOSITORY_TOKEN, CATALOG_ENTRY_REPOSITORY_TOKEN, CATALOG_FEATURE_UI_REGISTRY_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';
26
26
  export { C as CatalogControllerConfig, a as CatalogModule, b as CatalogModuleOptions } from './catalog.module-CQr1FpkI.js';
27
27
  export { C as CheckoutOfferService } from './checkout-offer.service-BX51dljL.js';
28
28
  export { CHECKOUT_OFFER_REPOSITORY_TOKEN, CreateCheckoutOfferDto, UpdateCheckoutOfferDto, buildCheckoutOfferController } from './checkout-offer/index.js';