@saasicat/nest 1.0.0-rc.21 → 1.0.0-rc.22

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 (64) hide show
  1. package/dist/.build-stamp +1 -1
  2. package/dist/_entries.cjs +4887 -3609
  3. package/dist/admin/index.js +7 -5
  4. package/dist/{aggregation-ChpZDh0g.d.ts → aggregation-6fPkeV8i.d.ts} +39 -4
  5. package/dist/{aggregation-OpnhwzF5.d.cts → aggregation-DjQUc7yd.d.cts} +39 -4
  6. package/dist/billing/index.d.cts +68 -9
  7. package/dist/billing/index.d.ts +68 -9
  8. package/dist/billing/index.js +16 -5
  9. package/dist/checkout-offer/index.d.cts +2 -2
  10. package/dist/checkout-offer/index.d.ts +2 -2
  11. package/dist/checkout-offer/index.js +4 -4
  12. package/dist/{checkout-offer.service-CCVxG9b2.d.cts → checkout-offer.service-DmVGrT4v.d.cts} +1 -1
  13. package/dist/{checkout-offer.service-BeHgYikI.d.ts → checkout-offer.service-Yi30L4ry.d.ts} +1 -1
  14. package/dist/{chunk-WHJSYKNC.js → chunk-3U4N5UYD.js} +1 -1
  15. package/dist/{chunk-M47BNEY2.js → chunk-3YYLOYUT.js} +1373 -266
  16. package/dist/{chunk-G6EZWECL.js → chunk-B4YP7REK.js} +94 -26
  17. package/dist/{chunk-QPVDCKYS.js → chunk-ESEWSAOV.js} +4 -3
  18. package/dist/{chunk-NDLC5GYK.js → chunk-EU4N5LET.js} +4 -3
  19. package/dist/{chunk-LLYVYRGJ.js → chunk-F2PF4IXB.js} +1 -275
  20. package/dist/{chunk-AOS2JPDD.js → chunk-FJIOHAO5.js} +77 -41
  21. package/dist/{chunk-TOEFN7DN.js → chunk-FPMBQDW7.js} +2 -2
  22. package/dist/chunk-OSOP4KWL.js +288 -0
  23. package/dist/{chunk-3RLWML2S.js → chunk-QWKBOLBH.js} +35 -0
  24. package/dist/{chunk-JBCC6C3M.js → chunk-R3I5X262.js} +5 -4
  25. package/dist/{chunk-4SDSYV4A.js → chunk-T6WXDGIU.js} +1 -1
  26. package/dist/{chunk-R5YCJBHY.js → chunk-U5UPEFWC.js} +2 -2
  27. package/dist/{chunk-XSSWYPP5.js → chunk-UMZCOCT5.js} +1 -1
  28. package/dist/{chunk-7NJKVC5X.js → chunk-WQNOCOI2.js} +53 -6
  29. package/dist/{chunk-55QEDAMX.js → chunk-WTAS2CLM.js} +4 -9
  30. package/dist/{enforce-quota.interceptor-BFyVdWe8.d.cts → enforce-quota.interceptor-B9UhCBXx.d.cts} +2 -2
  31. package/dist/{enforce-quota.interceptor-GaBXboGx.d.ts → enforce-quota.interceptor-CR2waXNA.d.ts} +2 -2
  32. package/dist/entitlement/index.d.cts +1 -1
  33. package/dist/entitlement/index.d.ts +1 -1
  34. package/dist/entitlement/index.js +4 -2
  35. package/dist/index.d.cts +11 -11
  36. package/dist/index.d.ts +11 -11
  37. package/dist/index.js +36 -20
  38. package/dist/{issuer-identity.check-CBO0vcsq.d.cts → issuer-identity.check-BntcNdld.d.cts} +1 -1
  39. package/dist/{issuer-identity.check-Cz9CEMkZ.d.ts → issuer-identity.check-DFmS8whs.d.ts} +1 -1
  40. package/dist/{module-options-qAOwinHR.d.cts → module-options-C4S_StYF.d.cts} +2 -2
  41. package/dist/{module-options-DmQ3G4sZ.d.ts → module-options-DxJI-1iH.d.ts} +2 -2
  42. package/dist/payments/index.js +2 -2
  43. package/dist/platform/index.d.cts +25 -16
  44. package/dist/platform/index.d.ts +25 -16
  45. package/dist/platform/index.js +16 -14
  46. package/dist/promo/index.d.cts +11 -4
  47. package/dist/promo/index.d.ts +11 -4
  48. package/dist/promo/index.js +5 -3
  49. package/dist/{promo.module-CKkECmU8.d.cts → promo.module-Ddx-swUV.d.cts} +1 -1
  50. package/dist/{promo.module-DuIJdK3U.d.ts → promo.module-PsIvDcUp.d.ts} +1 -1
  51. package/dist/{promo.service-BYBu6dy3.d.cts → promo.service-BextPvx5.d.cts} +23 -1
  52. package/dist/{promo.service-CFjfF0Xm.d.ts → promo.service-Dqqh0JXn.d.ts} +23 -1
  53. package/dist/registration/index.d.cts +2 -2
  54. package/dist/registration/index.d.ts +2 -2
  55. package/dist/registration/index.js +5 -5
  56. package/dist/subscription-contract/index.js +2 -2
  57. package/dist/{tenant-billing.controller-DKbAqTbM.d.cts → tenant-billing.controller-BC6-S5cT.d.cts} +91 -10
  58. package/dist/{tenant-billing.controller-BLqbsONe.d.ts → tenant-billing.controller-BuQDQ76i.d.ts} +91 -10
  59. package/dist/{tenant-billing.module-ClbjzocC.d.cts → tenant-billing.module-C6MFfCKq.d.cts} +24 -1
  60. package/dist/{tenant-billing.module-DohgJJ2m.d.ts → tenant-billing.module-CUCQL0-k.d.ts} +24 -1
  61. package/dist/testing/index.d.cts +6 -6
  62. package/dist/testing/index.d.ts +6 -6
  63. package/dist/testing/index.js +33 -31
  64. package/package.json +3 -3
@@ -134,7 +134,51 @@ PaymentGatewayRegistry = _ts_decorate([
134
134
 
135
135
  // src/payments/payment-callback.service.ts
136
136
  import { BadRequestException, Inject as Inject2, Injectable as Injectable2, Logger, NotFoundException } from "@nestjs/common";
137
- import { PAYMENT_ERROR_CODES, isForeignPaymentMethodReferenceError, isPaymentCallbackRejectedError } from "@saasicat/core";
137
+ import { PAYMENT_ERROR_CODES as PAYMENT_ERROR_CODES2, isForeignPaymentMethodReferenceError, isPaymentCallbackRejectedError } from "@saasicat/core";
138
+
139
+ // src/payments/gateway-failure.ts
140
+ import { BadGatewayException } from "@nestjs/common";
141
+ import { PAYMENT_ERROR_CODES } from "@saasicat/core";
142
+ var LOGGED_FIELDS = [
143
+ "code",
144
+ "statusCode",
145
+ "requestId"
146
+ ];
147
+ async function openGatewayForm(account, input, logger) {
148
+ try {
149
+ return await account.gateway.startPaymentMethodSetup(input);
150
+ } catch (error) {
151
+ throw gatewayFailure(account.name, "did not open its form", error, logger);
152
+ }
153
+ }
154
+ __name(openGatewayForm, "openGatewayForm");
155
+ function gatewayFailure(account, what, error, logger) {
156
+ const line = `The payment gateway of account '${account}' ${what}: ${describeFailure(error)}`;
157
+ if (isAdaptersOwn(error)) logger.error(line, error.stack);
158
+ else logger.error(line);
159
+ return new BadGatewayException(codedError(PAYMENT_ERROR_CODES.PAYMENT_GATEWAY_FAILED));
160
+ }
161
+ __name(gatewayFailure, "gatewayFailure");
162
+ function isAdaptersOwn(error) {
163
+ return error instanceof Error && error.statusCode === void 0;
164
+ }
165
+ __name(isAdaptersOwn, "isAdaptersOwn");
166
+ function describeFailure(error) {
167
+ if (!(error instanceof Error)) return `a thrown ${typeof error}`;
168
+ const fields = error;
169
+ const parts = [
170
+ typeof fields.type === "string" ? fields.type : error.name
171
+ ];
172
+ for (const key of LOGGED_FIELDS) {
173
+ const value = fields[key];
174
+ if (typeof value === "string" || typeof value === "number") parts.push(`${key}=${value}`);
175
+ }
176
+ if (isAdaptersOwn(error)) parts.push(`message=${JSON.stringify(error.message)}`);
177
+ return parts.join(" ");
178
+ }
179
+ __name(describeFailure, "describeFailure");
180
+
181
+ // src/payments/payment-callback.service.ts
138
182
  function _ts_decorate2(decorators, target, key, desc) {
139
183
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
140
184
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -179,7 +223,7 @@ var PaymentCallbackService = class _PaymentCallbackService {
179
223
  async handle(account, callback) {
180
224
  const entry = this.registry.account(account);
181
225
  if (!entry) {
182
- throw new NotFoundException(codedError(PAYMENT_ERROR_CODES.PAYMENT_GATEWAY_ACCOUNT_UNKNOWN, {
226
+ throw new NotFoundException(codedError(PAYMENT_ERROR_CODES2.PAYMENT_GATEWAY_ACCOUNT_UNKNOWN, {
183
227
  account
184
228
  }));
185
229
  }
@@ -270,9 +314,11 @@ var PaymentCallbackService = class _PaymentCallbackService {
270
314
  try {
271
315
  return await readCallback(callback);
272
316
  } catch (error) {
273
- if (!isPaymentCallbackRejectedError(error)) throw error;
317
+ if (!isPaymentCallbackRejectedError(error)) {
318
+ throw gatewayFailure(account, "did not read a callback", error, this.logger);
319
+ }
274
320
  this.logger.warn(`A payment callback for '${account}' was rejected: ${error.message}`);
275
- throw new BadRequestException(codedError(PAYMENT_ERROR_CODES.PAYMENT_CALLBACK_REJECTED));
321
+ throw new BadRequestException(codedError(PAYMENT_ERROR_CODES2.PAYMENT_CALLBACK_REJECTED));
276
322
  }
277
323
  }
278
324
  handlerFor(event) {
@@ -317,7 +363,7 @@ __name(summaryOf, "summaryOf");
317
363
 
318
364
  // src/payments/return-urls.ts
319
365
  import { BadRequestException as BadRequestException2 } from "@nestjs/common";
320
- import { PAYMENT_ERROR_CODES as PAYMENT_ERROR_CODES2 } from "@saasicat/core";
366
+ import { PAYMENT_ERROR_CODES as PAYMENT_ERROR_CODES3 } from "@saasicat/core";
321
367
  function refuseForeignReturnUrls(urls, allowedOrigins) {
322
368
  const allowed = new Set(allowedOrigins.map(originOf));
323
369
  for (const field of [
@@ -326,7 +372,7 @@ function refuseForeignReturnUrls(urls, allowedOrigins) {
326
372
  ]) {
327
373
  const origin = originOf(urls[field]);
328
374
  if (origin === null || !allowed.has(origin)) {
329
- throw new BadRequestException2(codedError(PAYMENT_ERROR_CODES2.PAYMENT_RETURN_URL_NOT_ALLOWED, {
375
+ throw new BadRequestException2(codedError(PAYMENT_ERROR_CODES3.PAYMENT_RETURN_URL_NOT_ALLOWED, {
330
376
  field
331
377
  }));
332
378
  }
@@ -343,6 +389,7 @@ function originOf(url) {
343
389
  __name(originOf, "originOf");
344
390
 
345
391
  export {
392
+ openGatewayForm,
346
393
  PAYMENT_GATEWAYS_TOKEN,
347
394
  PAYMENT_EVENT_LOG_TOKEN,
348
395
  SUBSCRIBER_PAYMENT_METHOD_REPOSITORY_TOKEN,
@@ -1,17 +1,16 @@
1
1
  import {
2
2
  PromoCodesService,
3
- computeDiscountGross
4
- } from "./chunk-3RLWML2S.js";
3
+ promoCodeDiscountNet
4
+ } from "./chunk-QWKBOLBH.js";
5
5
  import {
6
6
  SubscriptionContractService,
7
7
  appendImplicitDiscountLineItem
8
- } from "./chunk-NDLC5GYK.js";
8
+ } from "./chunk-EU4N5LET.js";
9
9
  import {
10
10
  resolveBundlePriceNet
11
11
  } from "./chunk-KPEMTBOP.js";
12
12
  import {
13
13
  grossFromNet,
14
- netFromGross,
15
14
  round2
16
15
  } from "./chunk-6PJE7EWO.js";
17
16
  import {
@@ -301,11 +300,7 @@ var CheckoutOfferPricing = class {
301
300
  concluding: input.concluding
302
301
  });
303
302
  if (!preview.valid) throw promoCodeNotAccepted(preview.reason);
304
- const planGross = grossFromNet(planNet, vatRate);
305
- const discountGross = Math.min(computeDiscountGross({
306
- gross: planGross
307
- }, preview.discount), planGross);
308
- const resolvedAmountNet = Math.min(planNet, netFromGross(discountGross, vatRate));
303
+ const resolvedAmountNet = promoCodeDiscountNet(planNet, vatRate, preview.discount);
309
304
  return {
310
305
  code: preview.code,
311
306
  label: preview.label,
@@ -1,10 +1,10 @@
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 './tenant-billing.module-ClbjzocC.cjs';
3
+ import { F as FEATURE_GUARD_MARKER } from './tenant-billing.module-C6MFfCKq.cjs';
4
4
  import { Observable } from 'rxjs';
5
5
  import { QuotaProvider } from '@saasicat/core';
6
6
  import { P as PlanCatalogSource } from './plan-catalog-source-DWe-BGY1.cjs';
7
- import { b as PlanResolverPort } from './module-options-qAOwinHR.cjs';
7
+ import { b as PlanResolverPort } from './module-options-C4S_StYF.cjs';
8
8
 
9
9
  interface StaticEntitlementSnapshot {
10
10
  planId: string | null;
@@ -1,10 +1,10 @@
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 './tenant-billing.module-DohgJJ2m.js';
3
+ import { F as FEATURE_GUARD_MARKER } from './tenant-billing.module-CUCQL0-k.js';
4
4
  import { Observable } from 'rxjs';
5
5
  import { QuotaProvider } from '@saasicat/core';
6
6
  import { P as PlanCatalogSource } from './plan-catalog-source-DWe-BGY1.js';
7
- import { b as PlanResolverPort } from './module-options-DmQ3G4sZ.js';
7
+ import { b as PlanResolverPort } from './module-options-DxJI-1iH.js';
8
8
 
9
9
  interface StaticEntitlementSnapshot {
10
10
  planId: string | null;
@@ -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 contractBundleVersionIds, k as contractLimits, l as filterActiveSubscriptionBundles, m as filterPlannedOnlyFeatures, n as hasAnyFeature, o as hasFeature, p as mergeSubscriptionBundlesIntoLimits, t as toEffectiveLimitsSnapshot } from '../aggregation-OpnhwzF5.cjs';
1
+ export { C as ContractLimits, a as CustomLimitsShape, E as EffectiveLimits, b as EffectiveLimitsSnapshot, c as EnforceLimitInput, d as EntitlementService, P as PlanVersionSnapshot, S as SubscriptionBundleSnapshot, e as SubscriptionLimitsInput, f as aggregateContractLineItemEntitlements, g as aggregateLimits, h as aggregateSubscriptionBundleQuotas, i as applyCustomLimits, j as collectSubscriptionBundleFeatures, k as contractBundleVersionIds, l as contractLimits, m as filterActiveSubscriptionBundles, n as filterPlannedOnlyFeatures, o as hasAnyFeature, p as hasFeature, q as isCancellationDeclared, r as mergeSubscriptionBundlesIntoLimits, t as toEffectiveLimitsSnapshot } from '../aggregation-DjQUc7yd.cjs';
2
2
  import { DiscoveredFeature, SubscriptionRepository, PlanVersionRepository, TransactionRunner, SubscriptionContractRepository, SubscriptionBundleRepository, BundleRepository } from '@saasicat/core';
3
3
  import { E as EntitlementResolutionConfig } from '../plan-resolution-CwUy_OqC.cjs';
4
4
  export { a as EntitlementResolutionInput, r as resolveEntitlementPlan } from '../plan-resolution-CwUy_OqC.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 contractBundleVersionIds, k as contractLimits, l as filterActiveSubscriptionBundles, m as filterPlannedOnlyFeatures, n as hasAnyFeature, o as hasFeature, p as mergeSubscriptionBundlesIntoLimits, t as toEffectiveLimitsSnapshot } from '../aggregation-ChpZDh0g.js';
1
+ export { C as ContractLimits, a as CustomLimitsShape, E as EffectiveLimits, b as EffectiveLimitsSnapshot, c as EnforceLimitInput, d as EntitlementService, P as PlanVersionSnapshot, S as SubscriptionBundleSnapshot, e as SubscriptionLimitsInput, f as aggregateContractLineItemEntitlements, g as aggregateLimits, h as aggregateSubscriptionBundleQuotas, i as applyCustomLimits, j as collectSubscriptionBundleFeatures, k as contractBundleVersionIds, l as contractLimits, m as filterActiveSubscriptionBundles, n as filterPlannedOnlyFeatures, o as hasAnyFeature, p as hasFeature, q as isCancellationDeclared, r as mergeSubscriptionBundlesIntoLimits, t as toEffectiveLimitsSnapshot } from '../aggregation-6fPkeV8i.js';
2
2
  import { DiscoveredFeature, SubscriptionRepository, PlanVersionRepository, TransactionRunner, SubscriptionContractRepository, SubscriptionBundleRepository, BundleRepository } from '@saasicat/core';
3
3
  import { E as EntitlementResolutionConfig } from '../plan-resolution-CwUy_OqC.js';
4
4
  export { a as EntitlementResolutionInput, r as resolveEntitlementPlan } from '../plan-resolution-CwUy_OqC.js';
@@ -1,7 +1,7 @@
1
1
  import "../chunk-G7RQO2XO.js";
2
2
  import {
3
3
  EntitlementModule
4
- } from "../chunk-WHJSYKNC.js";
4
+ } from "../chunk-3U4N5UYD.js";
5
5
  import {
6
6
  EntitlementService,
7
7
  LimitExceededError,
@@ -20,11 +20,12 @@ import {
20
20
  filterPlannedOnlyFeatures,
21
21
  hasAnyFeature,
22
22
  hasFeature,
23
+ isCancellationDeclared,
23
24
  isLimitExceededError,
24
25
  mergeSubscriptionBundlesIntoLimits,
25
26
  resolveEntitlementPlan,
26
27
  toEffectiveLimitsSnapshot
27
- } from "../chunk-G6EZWECL.js";
28
+ } from "../chunk-B4YP7REK.js";
28
29
  import {
29
30
  ENTITLEMENT_RESOLUTION_CONFIG_TOKEN,
30
31
  ENTITLEMENT_SERVICE_TOKEN,
@@ -64,6 +65,7 @@ export {
64
65
  filterPlannedOnlyFeatures,
65
66
  hasAnyFeature,
66
67
  hasFeature,
68
+ isCancellationDeclared,
67
69
  isLimitExceededError,
68
70
  mergeSubscriptionBundlesIntoLimits,
69
71
  resolveEntitlementPlan,
package/dist/index.d.cts CHANGED
@@ -1,33 +1,33 @@
1
1
  import { P as ProviderSpec } from './di-CcNeq9v-.cjs';
2
2
  export { a as asProvider } from './di-CcNeq9v-.cjs';
3
- import { S as SetupService } from './issuer-identity.check-CBO0vcsq.cjs';
4
- export { I as IssuerIdentityCheck, a as IssuerIdentityInspector, b as IssuerIdentityVerdict, c as SAASICAT_PUBLIC_ROUTE_KEY, d as SETUP_CONFIG_TOKEN, e as SETUP_PROVISIONING_PORT_TOKEN, f as SaaSiCatModule, g as SaaSiCatPublicRoute, h as SetupConfig, i as defineSaaSiCat, j as isSaaSiCatPublicRoute } from './issuer-identity.check-CBO0vcsq.cjs';
5
- export { CreatePromoCodeDto, PROMO_CODE_HOLD_REPOSITORY_TOKEN, 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, isTaxRatePercent, netFromGross, round2 } from './promo/index.cjs';
6
- export { C as CODE_MAX_LENGTH, b as CODE_MIN_LENGTH, c as CODE_PATTERN, d as CheckoutHoldInput, e as PreviewInput, f as PreviewInvalid, g as PreviewOptions, h as PreviewReason, i as PreviewResult, j as PreviewValid, k as PromoCodeStats, a as PromoCodesService, P as PromoServiceConfig, R as RedeemInput } from './promo.service-BYBu6dy3.cjs';
3
+ import { S as SetupService } from './issuer-identity.check-BntcNdld.cjs';
4
+ export { I as IssuerIdentityCheck, a as IssuerIdentityInspector, b as IssuerIdentityVerdict, c as SAASICAT_PUBLIC_ROUTE_KEY, d as SETUP_CONFIG_TOKEN, e as SETUP_PROVISIONING_PORT_TOKEN, f as SaaSiCatModule, g as SaaSiCatPublicRoute, h as SetupConfig, i as defineSaaSiCat, j as isSaaSiCatPublicRoute } from './issuer-identity.check-BntcNdld.cjs';
5
+ export { CreatePromoCodeDto, PROMO_CODE_HOLD_REPOSITORY_TOKEN, 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, isTaxRatePercent, netFromGross, promoCodeDiscountNet, round2 } from './promo/index.cjs';
6
+ export { C as CODE_MAX_LENGTH, b as CODE_MIN_LENGTH, c as CODE_PATTERN, d as CheckoutHoldInput, e as PreviewInput, f as PreviewInvalid, g as PreviewOptions, h as PreviewReason, i as PreviewResult, j as PreviewValid, k as PromoCodeStats, a as PromoCodesService, P as PromoServiceConfig, R as RedeemInput, l as RedeemedPromoCode } from './promo.service-BextPvx5.cjs';
7
7
  export { P as PromoCodeRateLimitGuard, h as hashIp, i as ipFingerprint } from './rate-limit.guard-dntqAlfZ.cjs';
8
- export { a as PromoCodesModule, P as PromoCodesModuleOptions } from './promo.module-CKkECmU8.cjs';
9
- export { AddSubscriptionBundleDto, BILLING_FEATURE_UI_REGISTRY_TOKEN, BillingPermissionGuard, BundleFirstPeriodInput, BundlePeriodRollInput, BundlePeriodWindow, BundlePlanContext, BundlePriceLookupDto, CancelSubscriptionBundleDto, CatalogBundleUpsellResolver, ConfiguratorCatalogBuilder, DEFAULT_BUNDLE_MINIMUM_TERM_MONTHS, FEATURE_GUARD_CONFIG_TOKEN, FeatureGuard, FeatureGuardConfig, LimitExceededFilter, MarketingFields, NextPeriodWindow, PLAN_CATALOG_IMPORT_SINK_TOKEN, PLAN_CATALOG_READ_SINK_TOKEN, PLAN_CATALOG_SETTINGS_TOKEN, PLAN_CATALOG_SOURCE_TOKEN, PUBLIC_CATALOG_BUNDLE_REPOSITORY_TOKEN, PUBLIC_CATALOG_MARKETING_REPOSITORY_TOKEN, PeriodRollInput, PlanAnchorSource, PlanCatalogBuildSettings, PlanCatalogImportDto, PlanCatalogImporterControllerConfig, PlanCatalogImporterModule, PlanCatalogImporterModuleOptions, PlanCatalogImporterService, PlanCatalogModule, PlanCatalogModuleOptions, PlanResponseEntry, PreviewSubscriptionBundleDto, 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, advanceOneCycle, assertBaseVersionFresh, assertChangeNote, assertDraftPublishable, assertOptimisticLockHeld, billingAnchorDay, buildPlanCatalogFromSnapshot, buildPlanCatalogImporterController, buildTenantSubscriptionBundlesController, bundleCycleFitsPlan, bundleFirstPeriodEnd, bundleFirstPeriodStart, bundleNextPeriodEnd, clearPendingPlanVersionFields, computeCarriedTrialEndsAt, computeNextBundlePeriod, computeNextPeriod, cyclesSoldFor, decideRenewal, findPlan, getActiveFeatureKeys, getMarketedPlans, getPlanOrThrow, getPlanPriceGross, getPlanPriceNet, getPlanQuota, initialPeriodWindow, isFeatureInPlan, isFeaturePlannedOnly, isPlanNotSoldInCycle, listPriceNet, periodEndAfter, periodEndWithMinLead, planNotSoldInCycle, resolveBundlePriceNet, resolvePlanAnchorDay, retreatOneCycle } from './billing/index.cjs';
10
- export { A as AddBundleToSubscriptionInput, B as BundlePreviewSnapshot, C as CancelBundleFromSubscriptionInput, a as CancelSubscriptionDto, b as CancellableSubscription, c as CancellationDecision, d as CancellationInput, e as ChangePlanDto, f as CompleteOnboardingSubscriptionDto, g as ComposedTenantAuthGuard, h as CycleDirection, L as LimitsCheckRow, N as NO_NOTICE_PERIOD, P as PendingPlanMaterializationService, i as PlanChangeContext, j as PlanChangePreviewDto, k as PlanChangePreviewIssue, l as PlanChangePreviewService, m as PlanChangeType, n as PlanDirection, o as PlanSnapshotDto, p as PreviewPlanChangeDto, q as ProrationDto, r as ProrationInput, R as RedundantFeatureHint, S as SubscriptionBundleAddPreviewDto, s as SubscriptionBundleCancelPreviewDto, t as SubscriptionBundleConfig, u as SubscriptionBundlePreviewContext, v as SubscriptionBundlePreviewIssue, w as SubscriptionBundlePreviewService, x as SubscriptionBundlesService, T as TenantAdminGuard, y as TenantBillingController, U as UsageResponse, z as addMonths, D as clampToParent, E as computeProration, F as decideCancellation, G as decideCancellationFor, H as noticeDaysFor, I as resolveBundleCancelEffectiveAt } from './tenant-billing.controller-DKbAqTbM.cjs';
8
+ export { a as PromoCodesModule, P as PromoCodesModuleOptions } from './promo.module-Ddx-swUV.cjs';
9
+ export { AddSubscriptionBundleDto, BILLING_FEATURE_UI_REGISTRY_TOKEN, BillingPermissionGuard, BundleFirstPeriodInput, BundlePeriodRollInput, BundlePeriodWindow, BundlePlanContext, BundlePriceLookupDto, CancelSubscriptionBundleDto, CatalogBundleUpsellResolver, ConfiguratorCatalogBuilder, DEFAULT_BUNDLE_MINIMUM_TERM_MONTHS, FEATURE_GUARD_CONFIG_TOKEN, FeatureGuard, FeatureGuardConfig, LimitExceededFilter, MarketingFields, NextPeriodWindow, PLAN_CATALOG_IMPORT_SINK_TOKEN, PLAN_CATALOG_READ_SINK_TOKEN, PLAN_CATALOG_SETTINGS_TOKEN, PLAN_CATALOG_SOURCE_TOKEN, PUBLIC_CATALOG_BUNDLE_REPOSITORY_TOKEN, PUBLIC_CATALOG_MARKETING_REPOSITORY_TOKEN, PeriodRollInput, PlanAnchorSource, PlanCatalogBuildSettings, PlanCatalogImportDto, PlanCatalogImporterControllerConfig, PlanCatalogImporterModule, PlanCatalogImporterModuleOptions, PlanCatalogImporterService, PlanCatalogModule, PlanCatalogModuleOptions, PlanResponseEntry, PreviewSubscriptionBundleDto, PublicBundleEntry, PublicCatalogController, PublicCatalogModule, PublicCatalogModuleOptions, PublishValidationError, PublishablePlanVersion, REQUIRE_FEATURE_KEY, RenewalDecision, RenewalSubInput, RequireFeature, SUBSCRIBER_LEDGER_REPOSITORY_TOKEN, SUBSCRIPTION_BUNDLE_CONFIG_TOKEN, SUBSCRIPTION_BUNDLE_REPOSITORY_TOKEN, SubscriberAccountModule, SubscriberAccountModuleOptions, SubscriberAccountService, SubscriptionContractFreezeService, UPSELL_OFFER_CURRENCY_TOKEN, UPSELL_OFFER_RESOLVER_TOKEN, advanceOneCycle, assertBaseVersionFresh, assertChangeNote, assertDraftPublishable, assertOptimisticLockHeld, billingAnchorDay, buildPlanCatalogFromSnapshot, buildPlanCatalogImporterController, buildTenantSubscriptionBundlesController, bundleCycleFitsPlan, bundleFirstPeriodEnd, bundleFirstPeriodStart, bundleNextPeriodEnd, clearPendingPlanVersionFields, computeCarriedTrialEndsAt, computeNextBundlePeriod, computeNextPeriod, cyclesSoldFor, decideRenewal, findPlan, getActiveFeatureKeys, getMarketedPlans, getPlanOrThrow, getPlanPriceGross, getPlanPriceNet, getPlanQuota, initialPeriodWindow, isFeatureInPlan, isFeaturePlannedOnly, isPlanNotSoldInCycle, listPriceNet, periodEndAfter, periodEndWithMinLead, planNotSoldInCycle, resolveBundlePriceNet, resolvePlanAnchorDay, retreatOneCycle } from './billing/index.cjs';
10
+ export { A as AddBundleToSubscriptionInput, B as BundlePreviewSnapshot, C as CancelBundleFromSubscriptionInput, a as CancelSubscriptionDto, b as CancellableSubscription, c as CancellationDecision, d as CancellationInput, e as ChangePlanDto, f as CompleteOnboardingSubscriptionDto, g as ComposedTenantAuthGuard, h as CycleDirection, L as LimitsCheckRow, N as NO_NOTICE_PERIOD, P as PendingPlanMaterializationService, i as PlanChangeContext, j as PlanChangePreviewDto, k as PlanChangePreviewIssue, l as PlanChangePreviewService, m as PlanChangeType, n as PlanDirection, o as PlanSnapshotDto, p as PreviewPlanChangeDto, q as ProrationBasis, r as ProrationDto, s as ProrationInput, R as RedundantFeatureHint, S as SubscriberChargeService, t as SubscriptionBundleAddPreviewDto, u as SubscriptionBundleCancelPreviewDto, v as SubscriptionBundleConfig, w as SubscriptionBundlePreviewContext, x as SubscriptionBundlePreviewIssue, y as SubscriptionBundlePreviewService, z as SubscriptionBundlesService, T as TenantAdminGuard, D as TenantBillingController, U as UsageResponse, E as addMonths, F as clampToParent, G as computeNewPeriodCharge, H as computeProration, I as decideCancellation, J as decideCancellationFor, K as noticeDaysFor, M as resolveBundleCancelEffectiveAt } from './tenant-billing.controller-BC6-S5cT.cjs';
11
11
  import { SetupStatusResponse, SetupResult, SetupConfirmMfaResponse, PlanCatalogSettings, EmailPort, SettingsChangeRecord, AppliedSettingsPort, AppliedSettingsRecord, AppliedSettingsValues, SettingsDifference, PlatformErrorCode, PlatformErrorBody } from '@saasicat/core';
12
12
  export { BundleVersionFields, CancellationNoticePeriods, ChangeDirection, DiffResult, DiscoveredCapability, DiscoveredFeature, DiscoveredQuota, DiscoverySnapshot, PasswordHasher, PlanVersionFields, SelfServiceBlockedPlans, VersionChange, VersionChangeDirection, classifyBundleVersionDiff, classifyPlanDiff } from '@saasicat/core';
13
- export { A as AjvErrorLike, C as CONTRACT_FREEZE_PORT_TOKEN, b as CONTRACT_FREEZE_SOURCE_PORT_TOKEN, c as ContractFreezeBundleSnapshot, d as ContractFreezePort, e as ContractFreezeSourcePort, E as EnvironmentVariables, F as FEATURE_GUARD_MARKER, f as LoadPlanCatalogFromStringOptions, L as LoadPlanCatalogOptions, M as MarkedFeatureGuard, P as PLAN_CATALOG_UNREADABLE_ERROR, g as PlanCatalogValidationError, h as SELF_SERVICE_BLOCKED_BUNDLES_TOKEN, i as SELF_SERVICE_BLOCKED_PLANS_TOKEN, j as SelfServiceBlockedBundles, a as SubscriptionBundleControllerOptions, k as SubscriptionBundleModule, S as SubscriptionBundleModuleOptions, l as TenantBillingModule, T as TenantBillingModuleOptions, m as catalogSource, n as isPlatformFeatureGuard, o as loadPlanCatalogFromFile, p as loadPlanCatalogFromString } from './tenant-billing.module-ClbjzocC.cjs';
13
+ export { A as AjvErrorLike, C as CONTRACT_FREEZE_PORT_TOKEN, b as CONTRACT_FREEZE_SOURCE_PORT_TOKEN, c as ContractFreezeBundleSnapshot, d as ContractFreezePort, e as ContractFreezeSourcePort, E as EnvironmentVariables, F as FEATURE_GUARD_MARKER, f as LoadPlanCatalogFromStringOptions, L as LoadPlanCatalogOptions, M as MarkedFeatureGuard, P as PLAN_CATALOG_UNREADABLE_ERROR, g as PlanCatalogValidationError, h as SELF_SERVICE_BLOCKED_BUNDLES_TOKEN, i as SELF_SERVICE_BLOCKED_PLANS_TOKEN, j as SelfServiceBlockedBundles, a as SubscriptionBundleControllerOptions, k as SubscriptionBundleModule, S as SubscriptionBundleModuleOptions, l as TenantBillingModule, T as TenantBillingModuleOptions, m as catalogSource, n as isPlatformFeatureGuard, o as loadPlanCatalogFromFile, p as loadPlanCatalogFromString } from './tenant-billing.module-C6MFfCKq.cjs';
14
14
  export { a as PlanCatalogOrigin, P as PlanCatalogSource, g as givenPlanCatalogSource } from './plan-catalog-source-DWe-BGY1.cjs';
15
15
  export { c as AUDIT_CONTEXT_RESOLVER_TOKEN, A as AuditContextResolver, d as AuthGuardList, B as BILLING_PERMISSION_GUARDS_TOKEN, C as CANCELLATION_NOTICE_DAYS_TOKEN, D as DuePendingPlanChange, e as PENDING_PLAN_QUERY_PORT_TOKEN, P as PendingPlanQueryPort, S as SUBSCRIPTION_USAGE_PORT_TOKEN, f as SUBSCRIPTION_WRITE_PORT_TOKEN, g as TENANT_AUTH_GUARDS_TOKEN, h as TENANT_ID_RESOLVER_TOKEN, i as TRIAL_PROJECTION_PORT_TOKEN, T as TenantIdResolver, j as TrialProjectionInput, a as TrialProjectionPort, k as USAGE_SNAPSHOT_PORT_TOKEN, l as USER_EMAIL_RESOLVER_TOKEN, m as USER_ID_RESOLVER_TOKEN, U as UserEmailResolver, b as UserIdResolver } from './tenant-billing.tokens-G-1xOlMr.cjs';
16
- 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-OpnhwzF5.cjs';
16
+ export { C as ContractLimits, a as CustomLimitsShape, E as EffectiveLimits, b as EffectiveLimitsSnapshot, c as EnforceLimitInput, d as EntitlementService, P as PlanVersionSnapshot, S as SubscriptionBundleSnapshot, e as SubscriptionLimitsInput, f as aggregateContractLineItemEntitlements, g as aggregateLimits, h as aggregateSubscriptionBundleQuotas, i as applyCustomLimits, j as collectSubscriptionBundleFeatures, k as contractBundleVersionIds, l as contractLimits, m as filterActiveSubscriptionBundles, n as filterPlannedOnlyFeatures, o as hasAnyFeature, p as hasFeature, q as isCancellationDeclared, r as mergeSubscriptionBundlesIntoLimits, t as toEffectiveLimitsSnapshot } from './aggregation-DjQUc7yd.cjs';
17
17
  export { CancellationDates, ENTITLEMENT_RESOLUTION_CONFIG_TOKEN, ENTITLEMENT_SERVICE_TOKEN, EntitlementModule, EntitlementModuleOptions, LimitExceededError, PLAN_VERSION_REPOSITORY_TOKEN, ReplacedByIndex, SUBSCRIPTION_REPOSITORY_TOKEN, TRANSACTION_RUNNER_TOKEN, buildReplacedByIndex, cancellationHasLanded, cancellationLandsAt, expandReplacedFeatures, isLimitExceededError } from './entitlement/index.cjs';
18
18
  export { E as EntitlementResolutionConfig, a as EntitlementResolutionInput, r as resolveEntitlementPlan } from './plan-resolution-CwUy_OqC.cjs';
19
19
  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';
20
20
  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, h as MfaGuard, M as MfaService, P as PLATFORM_CORE_CONTRIBUTION_TOKEN, R as REQUIRE_MFA_KEY, i as RequireMfa, S as SuperAdminGuard, T as TotpSetupResult, V as VerifyTotpInput } from './admin-stats.service-DrZrU8IJ.cjs';
21
21
  export { A as AdminAuditService } from './admin-audit.service-4P3Djdxk.cjs';
22
22
  export { c as ADMIN_MANIFEST_CONFIG, d as ADMIN_RESOURCES_PORT_TOKEN, b as AdminManifestConfig, e as AdminResourcesModule, A as AdminResourcesModuleOptions, f as AdminResourcesService, g as AdminStatsModule, a as AdminStatsModuleOptions, S as SuspendTenantDto } from './admin-resources.module-B4XNvdH-.cjs';
23
- export { S as SaaSiCatAdapters, d as SaaSiCatAdminResourcesOptions, e as SaaSiCatAdminStatsOptions, f as SaaSiCatCatalogOptions, g as SaaSiCatCheckoutOfferOptions, c as SaaSiCatModuleOptions, h as SaaSiCatPromoCodesOptions, i as SaaSiCatSetupOptions, j as SaaSiCatSubscriptionBundlesOptions, k as SaaSiCatSubscriptionContractOptions, l as SaaSiCatTenantAuthGuards, m as SaaSiCatTenantBillingOptions, n as SetupModule, o as SetupModuleOptions } from './module-options-qAOwinHR.cjs';
23
+ export { S as SaaSiCatAdapters, d as SaaSiCatAdminResourcesOptions, e as SaaSiCatAdminStatsOptions, f as SaaSiCatCatalogOptions, g as SaaSiCatCheckoutOfferOptions, c as SaaSiCatModuleOptions, h as SaaSiCatPromoCodesOptions, i as SaaSiCatSetupOptions, j as SaaSiCatSubscriptionBundlesOptions, k as SaaSiCatSubscriptionContractOptions, l as SaaSiCatTenantAuthGuards, m as SaaSiCatTenantBillingOptions, n as SetupModule, o as SetupModuleOptions } from './module-options-C4S_StYF.cjs';
24
24
  export { ACTIVATION_ORCHESTRATOR_TOKEN, BaseIpRateLimitGuard, ContinueRegistrationDto, PASSWORD_HASHER_TOKEN, PENDING_REGISTRATION_REPOSITORY_TOKEN, PLAN_CATALOG_LOOKUP_TOKEN, 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, RegistrationBillingDetailsDto, 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';
25
25
  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';
26
26
  export { b as DISCOVERY_APP_INFO_TOKEN, c as DISCOVERY_SNAPSHOT_PATH_TOKEN, D as DiscoveryAppInfo, a as DiscoveryScanner, d as computeSnapshotHash } from './discovery.scanner-DXKc6JkV.cjs';
27
27
  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 } from './plan-versions.service-DARLh-qI.cjs';
28
28
  export { ADVISORY_STRICT_MODE_CODES, BUNDLE_REPOSITORY_TOKEN, BUNDLE_VERSION_WINDOW_CODES, CATALOG_ENTRY_REPOSITORY_TOKEN, CATALOG_FEATURE_UI_REGISTRY_TOKEN, CATALOG_SERVICE_CONFIG_TOKEN, CreateBundleDto, CreateBundleVersionDraftDto, CreateMarketingProjectionDto, CreatePlanDto, CreatePlanVersionDraftDto, CreatePromotionDto, ListCatalogEntriesQueryDto, ListMarketingProjectionsQueryDto, MARKETING_PROJECTION_REPOSITORY_TOKEN, MARKETING_SETTINGS_REPOSITORY_TOKEN, NEW_PAYMENT_METHODS_SOURCE_TOKEN, PLAN_REPOSITORY_TOKEN, PLAN_VERSION_WINDOW_CODES, PROMOTION_REPOSITORY_TOKEN, PreflightFinding, PreflightInput, PreflightReport, PreviousWindow, PublishBundleVersionDto, PublishPlanVersionDto, ReviewCatalogEntryDto, SeedBundleDraft, SeedGateFinding, SeedGateInput, SeedGateMode, SeedGateReport, SeedGateRunOptions, SeedPlanDraft, SyncDiscoveryDto, UpdateBundleDto, UpdateBundleVersionDraftDto, UpdateCatalogEntryI18nDto, UpdateMarketingProjectionDto, UpdateMarketingSettingsDto, UpdatePlanDto, UpdatePlanVersionDraftDto, UpdatePromotionDto, ValidityWindowCodes, ValidityWindowInput, blockingStrictModeWarnings, buildBundleVersionsController, buildBundlesController, buildCatalogEntriesController, buildMarketingProjectionsController, buildMarketingSettingsController, buildPlanVersionsController, buildPlansController, buildPromotionsController, buildPublicMarketingCatalogController, featureApprovalSignature, formatPreflightReport, formatSeedGateReport, loadApprovedCatalogKeys, preflightExitCode, quotaApprovalSignature, resolveValidityWindow, runPreflight, runSeedGateFromFile, seedGateExitCode, validateBundleDraft, validatePlanDraft, validateSeedAgainstSnapshot } from './catalog/index.cjs';
29
29
  export { a as CatalogControllerConfig, b as CatalogModule, C as CatalogModuleOptions, N as NewPaymentMethodsSource, P as PublicMarketingCatalogOptions, c as PublicMarketingCatalogService } from './catalog.module-T-I5Ricz.cjs';
30
- export { C as CheckoutOfferPricing, a as CheckoutOfferPricingInput, b as CheckoutOfferService, c as ConcludeCheckoutOfferOptions, d as ConcludeCheckoutOfferWithin, e as ConcludedCheckoutOffer, P as PricedCheckoutOffer } from './checkout-offer.service-CCVxG9b2.cjs';
30
+ export { C as CheckoutOfferPricing, a as CheckoutOfferPricingInput, b as CheckoutOfferService, c as ConcludeCheckoutOfferOptions, d as ConcludeCheckoutOfferWithin, e as ConcludedCheckoutOffer, P as PricedCheckoutOffer } from './checkout-offer.service-DmVGrT4v.cjs';
31
31
  export { CHECKOUT_OFFER_REPOSITORY_TOKEN, CHECKOUT_OFFER_TRANSACTION_RUNNER_TOKEN, CreateCheckoutOfferDto, UpdateCheckoutOfferDto, buildCheckoutOfferController } from './checkout-offer/index.cjs';
32
32
  export { a as CheckoutOfferConclusionOptions, b as CheckoutOfferControllerConfig, c as CheckoutOfferModule, C as CheckoutOfferModuleOptions } from './checkout-offer.module-DFhGy6JO.cjs';
33
33
  export { C as CreateContractFromOfferOptions, S as SubscriptionContractService, c as contractLineItemToInvoiceLineItem, s as sortContractLineItemsForInvoice, a as subscriptionContractToInvoiceSnapshot } from './subscription-contract.service-CfNApLuP.cjs';
package/dist/index.d.ts CHANGED
@@ -1,33 +1,33 @@
1
1
  import { P as ProviderSpec } from './di-CcNeq9v-.js';
2
2
  export { a as asProvider } from './di-CcNeq9v-.js';
3
- import { S as SetupService } from './issuer-identity.check-Cz9CEMkZ.js';
4
- export { I as IssuerIdentityCheck, a as IssuerIdentityInspector, b as IssuerIdentityVerdict, c as SAASICAT_PUBLIC_ROUTE_KEY, d as SETUP_CONFIG_TOKEN, e as SETUP_PROVISIONING_PORT_TOKEN, f as SaaSiCatModule, g as SaaSiCatPublicRoute, h as SetupConfig, i as defineSaaSiCat, j as isSaaSiCatPublicRoute } from './issuer-identity.check-Cz9CEMkZ.js';
5
- export { CreatePromoCodeDto, PROMO_CODE_HOLD_REPOSITORY_TOKEN, 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, isTaxRatePercent, netFromGross, round2 } from './promo/index.js';
6
- export { C as CODE_MAX_LENGTH, b as CODE_MIN_LENGTH, c as CODE_PATTERN, d as CheckoutHoldInput, e as PreviewInput, f as PreviewInvalid, g as PreviewOptions, h as PreviewReason, i as PreviewResult, j as PreviewValid, k as PromoCodeStats, a as PromoCodesService, P as PromoServiceConfig, R as RedeemInput } from './promo.service-CFjfF0Xm.js';
3
+ import { S as SetupService } from './issuer-identity.check-DFmS8whs.js';
4
+ export { I as IssuerIdentityCheck, a as IssuerIdentityInspector, b as IssuerIdentityVerdict, c as SAASICAT_PUBLIC_ROUTE_KEY, d as SETUP_CONFIG_TOKEN, e as SETUP_PROVISIONING_PORT_TOKEN, f as SaaSiCatModule, g as SaaSiCatPublicRoute, h as SetupConfig, i as defineSaaSiCat, j as isSaaSiCatPublicRoute } from './issuer-identity.check-DFmS8whs.js';
5
+ export { CreatePromoCodeDto, PROMO_CODE_HOLD_REPOSITORY_TOKEN, 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, isTaxRatePercent, netFromGross, promoCodeDiscountNet, round2 } from './promo/index.js';
6
+ export { C as CODE_MAX_LENGTH, b as CODE_MIN_LENGTH, c as CODE_PATTERN, d as CheckoutHoldInput, e as PreviewInput, f as PreviewInvalid, g as PreviewOptions, h as PreviewReason, i as PreviewResult, j as PreviewValid, k as PromoCodeStats, a as PromoCodesService, P as PromoServiceConfig, R as RedeemInput, l as RedeemedPromoCode } from './promo.service-Dqqh0JXn.js';
7
7
  export { P as PromoCodeRateLimitGuard, h as hashIp, i as ipFingerprint } from './rate-limit.guard-dntqAlfZ.js';
8
- export { a as PromoCodesModule, P as PromoCodesModuleOptions } from './promo.module-DuIJdK3U.js';
9
- export { AddSubscriptionBundleDto, BILLING_FEATURE_UI_REGISTRY_TOKEN, BillingPermissionGuard, BundleFirstPeriodInput, BundlePeriodRollInput, BundlePeriodWindow, BundlePlanContext, BundlePriceLookupDto, CancelSubscriptionBundleDto, CatalogBundleUpsellResolver, ConfiguratorCatalogBuilder, DEFAULT_BUNDLE_MINIMUM_TERM_MONTHS, FEATURE_GUARD_CONFIG_TOKEN, FeatureGuard, FeatureGuardConfig, LimitExceededFilter, MarketingFields, NextPeriodWindow, PLAN_CATALOG_IMPORT_SINK_TOKEN, PLAN_CATALOG_READ_SINK_TOKEN, PLAN_CATALOG_SETTINGS_TOKEN, PLAN_CATALOG_SOURCE_TOKEN, PUBLIC_CATALOG_BUNDLE_REPOSITORY_TOKEN, PUBLIC_CATALOG_MARKETING_REPOSITORY_TOKEN, PeriodRollInput, PlanAnchorSource, PlanCatalogBuildSettings, PlanCatalogImportDto, PlanCatalogImporterControllerConfig, PlanCatalogImporterModule, PlanCatalogImporterModuleOptions, PlanCatalogImporterService, PlanCatalogModule, PlanCatalogModuleOptions, PlanResponseEntry, PreviewSubscriptionBundleDto, 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, advanceOneCycle, assertBaseVersionFresh, assertChangeNote, assertDraftPublishable, assertOptimisticLockHeld, billingAnchorDay, buildPlanCatalogFromSnapshot, buildPlanCatalogImporterController, buildTenantSubscriptionBundlesController, bundleCycleFitsPlan, bundleFirstPeriodEnd, bundleFirstPeriodStart, bundleNextPeriodEnd, clearPendingPlanVersionFields, computeCarriedTrialEndsAt, computeNextBundlePeriod, computeNextPeriod, cyclesSoldFor, decideRenewal, findPlan, getActiveFeatureKeys, getMarketedPlans, getPlanOrThrow, getPlanPriceGross, getPlanPriceNet, getPlanQuota, initialPeriodWindow, isFeatureInPlan, isFeaturePlannedOnly, isPlanNotSoldInCycle, listPriceNet, periodEndAfter, periodEndWithMinLead, planNotSoldInCycle, resolveBundlePriceNet, resolvePlanAnchorDay, retreatOneCycle } from './billing/index.js';
10
- export { A as AddBundleToSubscriptionInput, B as BundlePreviewSnapshot, C as CancelBundleFromSubscriptionInput, a as CancelSubscriptionDto, b as CancellableSubscription, c as CancellationDecision, d as CancellationInput, e as ChangePlanDto, f as CompleteOnboardingSubscriptionDto, g as ComposedTenantAuthGuard, h as CycleDirection, L as LimitsCheckRow, N as NO_NOTICE_PERIOD, P as PendingPlanMaterializationService, i as PlanChangeContext, j as PlanChangePreviewDto, k as PlanChangePreviewIssue, l as PlanChangePreviewService, m as PlanChangeType, n as PlanDirection, o as PlanSnapshotDto, p as PreviewPlanChangeDto, q as ProrationDto, r as ProrationInput, R as RedundantFeatureHint, S as SubscriptionBundleAddPreviewDto, s as SubscriptionBundleCancelPreviewDto, t as SubscriptionBundleConfig, u as SubscriptionBundlePreviewContext, v as SubscriptionBundlePreviewIssue, w as SubscriptionBundlePreviewService, x as SubscriptionBundlesService, T as TenantAdminGuard, y as TenantBillingController, U as UsageResponse, z as addMonths, D as clampToParent, E as computeProration, F as decideCancellation, G as decideCancellationFor, H as noticeDaysFor, I as resolveBundleCancelEffectiveAt } from './tenant-billing.controller-BLqbsONe.js';
8
+ export { a as PromoCodesModule, P as PromoCodesModuleOptions } from './promo.module-PsIvDcUp.js';
9
+ export { AddSubscriptionBundleDto, BILLING_FEATURE_UI_REGISTRY_TOKEN, BillingPermissionGuard, BundleFirstPeriodInput, BundlePeriodRollInput, BundlePeriodWindow, BundlePlanContext, BundlePriceLookupDto, CancelSubscriptionBundleDto, CatalogBundleUpsellResolver, ConfiguratorCatalogBuilder, DEFAULT_BUNDLE_MINIMUM_TERM_MONTHS, FEATURE_GUARD_CONFIG_TOKEN, FeatureGuard, FeatureGuardConfig, LimitExceededFilter, MarketingFields, NextPeriodWindow, PLAN_CATALOG_IMPORT_SINK_TOKEN, PLAN_CATALOG_READ_SINK_TOKEN, PLAN_CATALOG_SETTINGS_TOKEN, PLAN_CATALOG_SOURCE_TOKEN, PUBLIC_CATALOG_BUNDLE_REPOSITORY_TOKEN, PUBLIC_CATALOG_MARKETING_REPOSITORY_TOKEN, PeriodRollInput, PlanAnchorSource, PlanCatalogBuildSettings, PlanCatalogImportDto, PlanCatalogImporterControllerConfig, PlanCatalogImporterModule, PlanCatalogImporterModuleOptions, PlanCatalogImporterService, PlanCatalogModule, PlanCatalogModuleOptions, PlanResponseEntry, PreviewSubscriptionBundleDto, PublicBundleEntry, PublicCatalogController, PublicCatalogModule, PublicCatalogModuleOptions, PublishValidationError, PublishablePlanVersion, REQUIRE_FEATURE_KEY, RenewalDecision, RenewalSubInput, RequireFeature, SUBSCRIBER_LEDGER_REPOSITORY_TOKEN, SUBSCRIPTION_BUNDLE_CONFIG_TOKEN, SUBSCRIPTION_BUNDLE_REPOSITORY_TOKEN, SubscriberAccountModule, SubscriberAccountModuleOptions, SubscriberAccountService, SubscriptionContractFreezeService, UPSELL_OFFER_CURRENCY_TOKEN, UPSELL_OFFER_RESOLVER_TOKEN, advanceOneCycle, assertBaseVersionFresh, assertChangeNote, assertDraftPublishable, assertOptimisticLockHeld, billingAnchorDay, buildPlanCatalogFromSnapshot, buildPlanCatalogImporterController, buildTenantSubscriptionBundlesController, bundleCycleFitsPlan, bundleFirstPeriodEnd, bundleFirstPeriodStart, bundleNextPeriodEnd, clearPendingPlanVersionFields, computeCarriedTrialEndsAt, computeNextBundlePeriod, computeNextPeriod, cyclesSoldFor, decideRenewal, findPlan, getActiveFeatureKeys, getMarketedPlans, getPlanOrThrow, getPlanPriceGross, getPlanPriceNet, getPlanQuota, initialPeriodWindow, isFeatureInPlan, isFeaturePlannedOnly, isPlanNotSoldInCycle, listPriceNet, periodEndAfter, periodEndWithMinLead, planNotSoldInCycle, resolveBundlePriceNet, resolvePlanAnchorDay, retreatOneCycle } from './billing/index.js';
10
+ export { A as AddBundleToSubscriptionInput, B as BundlePreviewSnapshot, C as CancelBundleFromSubscriptionInput, a as CancelSubscriptionDto, b as CancellableSubscription, c as CancellationDecision, d as CancellationInput, e as ChangePlanDto, f as CompleteOnboardingSubscriptionDto, g as ComposedTenantAuthGuard, h as CycleDirection, L as LimitsCheckRow, N as NO_NOTICE_PERIOD, P as PendingPlanMaterializationService, i as PlanChangeContext, j as PlanChangePreviewDto, k as PlanChangePreviewIssue, l as PlanChangePreviewService, m as PlanChangeType, n as PlanDirection, o as PlanSnapshotDto, p as PreviewPlanChangeDto, q as ProrationBasis, r as ProrationDto, s as ProrationInput, R as RedundantFeatureHint, S as SubscriberChargeService, t as SubscriptionBundleAddPreviewDto, u as SubscriptionBundleCancelPreviewDto, v as SubscriptionBundleConfig, w as SubscriptionBundlePreviewContext, x as SubscriptionBundlePreviewIssue, y as SubscriptionBundlePreviewService, z as SubscriptionBundlesService, T as TenantAdminGuard, D as TenantBillingController, U as UsageResponse, E as addMonths, F as clampToParent, G as computeNewPeriodCharge, H as computeProration, I as decideCancellation, J as decideCancellationFor, K as noticeDaysFor, M as resolveBundleCancelEffectiveAt } from './tenant-billing.controller-BuQDQ76i.js';
11
11
  import { SetupStatusResponse, SetupResult, SetupConfirmMfaResponse, PlanCatalogSettings, EmailPort, SettingsChangeRecord, AppliedSettingsPort, AppliedSettingsRecord, AppliedSettingsValues, SettingsDifference, PlatformErrorCode, PlatformErrorBody } from '@saasicat/core';
12
12
  export { BundleVersionFields, CancellationNoticePeriods, ChangeDirection, DiffResult, DiscoveredCapability, DiscoveredFeature, DiscoveredQuota, DiscoverySnapshot, PasswordHasher, PlanVersionFields, SelfServiceBlockedPlans, VersionChange, VersionChangeDirection, classifyBundleVersionDiff, classifyPlanDiff } from '@saasicat/core';
13
- export { A as AjvErrorLike, C as CONTRACT_FREEZE_PORT_TOKEN, b as CONTRACT_FREEZE_SOURCE_PORT_TOKEN, c as ContractFreezeBundleSnapshot, d as ContractFreezePort, e as ContractFreezeSourcePort, E as EnvironmentVariables, F as FEATURE_GUARD_MARKER, f as LoadPlanCatalogFromStringOptions, L as LoadPlanCatalogOptions, M as MarkedFeatureGuard, P as PLAN_CATALOG_UNREADABLE_ERROR, g as PlanCatalogValidationError, h as SELF_SERVICE_BLOCKED_BUNDLES_TOKEN, i as SELF_SERVICE_BLOCKED_PLANS_TOKEN, j as SelfServiceBlockedBundles, a as SubscriptionBundleControllerOptions, k as SubscriptionBundleModule, S as SubscriptionBundleModuleOptions, l as TenantBillingModule, T as TenantBillingModuleOptions, m as catalogSource, n as isPlatformFeatureGuard, o as loadPlanCatalogFromFile, p as loadPlanCatalogFromString } from './tenant-billing.module-DohgJJ2m.js';
13
+ export { A as AjvErrorLike, C as CONTRACT_FREEZE_PORT_TOKEN, b as CONTRACT_FREEZE_SOURCE_PORT_TOKEN, c as ContractFreezeBundleSnapshot, d as ContractFreezePort, e as ContractFreezeSourcePort, E as EnvironmentVariables, F as FEATURE_GUARD_MARKER, f as LoadPlanCatalogFromStringOptions, L as LoadPlanCatalogOptions, M as MarkedFeatureGuard, P as PLAN_CATALOG_UNREADABLE_ERROR, g as PlanCatalogValidationError, h as SELF_SERVICE_BLOCKED_BUNDLES_TOKEN, i as SELF_SERVICE_BLOCKED_PLANS_TOKEN, j as SelfServiceBlockedBundles, a as SubscriptionBundleControllerOptions, k as SubscriptionBundleModule, S as SubscriptionBundleModuleOptions, l as TenantBillingModule, T as TenantBillingModuleOptions, m as catalogSource, n as isPlatformFeatureGuard, o as loadPlanCatalogFromFile, p as loadPlanCatalogFromString } from './tenant-billing.module-CUCQL0-k.js';
14
14
  export { a as PlanCatalogOrigin, P as PlanCatalogSource, g as givenPlanCatalogSource } from './plan-catalog-source-DWe-BGY1.js';
15
15
  export { c as AUDIT_CONTEXT_RESOLVER_TOKEN, A as AuditContextResolver, d as AuthGuardList, B as BILLING_PERMISSION_GUARDS_TOKEN, C as CANCELLATION_NOTICE_DAYS_TOKEN, D as DuePendingPlanChange, e as PENDING_PLAN_QUERY_PORT_TOKEN, P as PendingPlanQueryPort, S as SUBSCRIPTION_USAGE_PORT_TOKEN, f as SUBSCRIPTION_WRITE_PORT_TOKEN, g as TENANT_AUTH_GUARDS_TOKEN, h as TENANT_ID_RESOLVER_TOKEN, i as TRIAL_PROJECTION_PORT_TOKEN, T as TenantIdResolver, j as TrialProjectionInput, a as TrialProjectionPort, k as USAGE_SNAPSHOT_PORT_TOKEN, l as USER_EMAIL_RESOLVER_TOKEN, m as USER_ID_RESOLVER_TOKEN, U as UserEmailResolver, b as UserIdResolver } from './tenant-billing.tokens-G-1xOlMr.js';
16
- 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-ChpZDh0g.js';
16
+ export { C as ContractLimits, a as CustomLimitsShape, E as EffectiveLimits, b as EffectiveLimitsSnapshot, c as EnforceLimitInput, d as EntitlementService, P as PlanVersionSnapshot, S as SubscriptionBundleSnapshot, e as SubscriptionLimitsInput, f as aggregateContractLineItemEntitlements, g as aggregateLimits, h as aggregateSubscriptionBundleQuotas, i as applyCustomLimits, j as collectSubscriptionBundleFeatures, k as contractBundleVersionIds, l as contractLimits, m as filterActiveSubscriptionBundles, n as filterPlannedOnlyFeatures, o as hasAnyFeature, p as hasFeature, q as isCancellationDeclared, r as mergeSubscriptionBundlesIntoLimits, t as toEffectiveLimitsSnapshot } from './aggregation-6fPkeV8i.js';
17
17
  export { CancellationDates, ENTITLEMENT_RESOLUTION_CONFIG_TOKEN, ENTITLEMENT_SERVICE_TOKEN, EntitlementModule, EntitlementModuleOptions, LimitExceededError, PLAN_VERSION_REPOSITORY_TOKEN, ReplacedByIndex, SUBSCRIPTION_REPOSITORY_TOKEN, TRANSACTION_RUNNER_TOKEN, buildReplacedByIndex, cancellationHasLanded, cancellationLandsAt, expandReplacedFeatures, isLimitExceededError } from './entitlement/index.js';
18
18
  export { E as EntitlementResolutionConfig, a as EntitlementResolutionInput, r as resolveEntitlementPlan } from './plan-resolution-CwUy_OqC.js';
19
19
  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';
20
20
  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, h as MfaGuard, M as MfaService, P as PLATFORM_CORE_CONTRIBUTION_TOKEN, R as REQUIRE_MFA_KEY, i as RequireMfa, S as SuperAdminGuard, T as TotpSetupResult, V as VerifyTotpInput } from './admin-stats.service-CsLNt19Z.js';
21
21
  export { A as AdminAuditService } from './admin-audit.service-4P3Djdxk.js';
22
22
  export { c as ADMIN_MANIFEST_CONFIG, d as ADMIN_RESOURCES_PORT_TOKEN, b as AdminManifestConfig, e as AdminResourcesModule, A as AdminResourcesModuleOptions, f as AdminResourcesService, g as AdminStatsModule, a as AdminStatsModuleOptions, S as SuspendTenantDto } from './admin-resources.module-CWqdI9BV.js';
23
- export { S as SaaSiCatAdapters, d as SaaSiCatAdminResourcesOptions, e as SaaSiCatAdminStatsOptions, f as SaaSiCatCatalogOptions, g as SaaSiCatCheckoutOfferOptions, c as SaaSiCatModuleOptions, h as SaaSiCatPromoCodesOptions, i as SaaSiCatSetupOptions, j as SaaSiCatSubscriptionBundlesOptions, k as SaaSiCatSubscriptionContractOptions, l as SaaSiCatTenantAuthGuards, m as SaaSiCatTenantBillingOptions, n as SetupModule, o as SetupModuleOptions } from './module-options-DmQ3G4sZ.js';
23
+ export { S as SaaSiCatAdapters, d as SaaSiCatAdminResourcesOptions, e as SaaSiCatAdminStatsOptions, f as SaaSiCatCatalogOptions, g as SaaSiCatCheckoutOfferOptions, c as SaaSiCatModuleOptions, h as SaaSiCatPromoCodesOptions, i as SaaSiCatSetupOptions, j as SaaSiCatSubscriptionBundlesOptions, k as SaaSiCatSubscriptionContractOptions, l as SaaSiCatTenantAuthGuards, m as SaaSiCatTenantBillingOptions, n as SetupModule, o as SetupModuleOptions } from './module-options-DxJI-1iH.js';
24
24
  export { ACTIVATION_ORCHESTRATOR_TOKEN, BaseIpRateLimitGuard, ContinueRegistrationDto, PASSWORD_HASHER_TOKEN, PENDING_REGISTRATION_REPOSITORY_TOKEN, PLAN_CATALOG_LOOKUP_TOKEN, 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, RegistrationBillingDetailsDto, 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';
25
25
  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';
26
26
  export { b as DISCOVERY_APP_INFO_TOKEN, c as DISCOVERY_SNAPSHOT_PATH_TOKEN, D as DiscoveryAppInfo, a as DiscoveryScanner, d as computeSnapshotHash } from './discovery.scanner-DXKc6JkV.js';
27
27
  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 } from './plan-versions.service-C0N-Em2W.js';
28
28
  export { ADVISORY_STRICT_MODE_CODES, BUNDLE_REPOSITORY_TOKEN, BUNDLE_VERSION_WINDOW_CODES, CATALOG_ENTRY_REPOSITORY_TOKEN, CATALOG_FEATURE_UI_REGISTRY_TOKEN, CATALOG_SERVICE_CONFIG_TOKEN, CreateBundleDto, CreateBundleVersionDraftDto, CreateMarketingProjectionDto, CreatePlanDto, CreatePlanVersionDraftDto, CreatePromotionDto, ListCatalogEntriesQueryDto, ListMarketingProjectionsQueryDto, MARKETING_PROJECTION_REPOSITORY_TOKEN, MARKETING_SETTINGS_REPOSITORY_TOKEN, NEW_PAYMENT_METHODS_SOURCE_TOKEN, PLAN_REPOSITORY_TOKEN, PLAN_VERSION_WINDOW_CODES, PROMOTION_REPOSITORY_TOKEN, PreflightFinding, PreflightInput, PreflightReport, PreviousWindow, PublishBundleVersionDto, PublishPlanVersionDto, ReviewCatalogEntryDto, SeedBundleDraft, SeedGateFinding, SeedGateInput, SeedGateMode, SeedGateReport, SeedGateRunOptions, SeedPlanDraft, SyncDiscoveryDto, UpdateBundleDto, UpdateBundleVersionDraftDto, UpdateCatalogEntryI18nDto, UpdateMarketingProjectionDto, UpdateMarketingSettingsDto, UpdatePlanDto, UpdatePlanVersionDraftDto, UpdatePromotionDto, ValidityWindowCodes, ValidityWindowInput, blockingStrictModeWarnings, buildBundleVersionsController, buildBundlesController, buildCatalogEntriesController, buildMarketingProjectionsController, buildMarketingSettingsController, buildPlanVersionsController, buildPlansController, buildPromotionsController, buildPublicMarketingCatalogController, featureApprovalSignature, formatPreflightReport, formatSeedGateReport, loadApprovedCatalogKeys, preflightExitCode, quotaApprovalSignature, resolveValidityWindow, runPreflight, runSeedGateFromFile, seedGateExitCode, validateBundleDraft, validatePlanDraft, validateSeedAgainstSnapshot } from './catalog/index.js';
29
29
  export { a as CatalogControllerConfig, b as CatalogModule, C as CatalogModuleOptions, N as NewPaymentMethodsSource, P as PublicMarketingCatalogOptions, c as PublicMarketingCatalogService } from './catalog.module-C9O7BxRq.js';
30
- export { C as CheckoutOfferPricing, a as CheckoutOfferPricingInput, b as CheckoutOfferService, c as ConcludeCheckoutOfferOptions, d as ConcludeCheckoutOfferWithin, e as ConcludedCheckoutOffer, P as PricedCheckoutOffer } from './checkout-offer.service-BeHgYikI.js';
30
+ export { C as CheckoutOfferPricing, a as CheckoutOfferPricingInput, b as CheckoutOfferService, c as ConcludeCheckoutOfferOptions, d as ConcludeCheckoutOfferWithin, e as ConcludedCheckoutOffer, P as PricedCheckoutOffer } from './checkout-offer.service-Yi30L4ry.js';
31
31
  export { CHECKOUT_OFFER_REPOSITORY_TOKEN, CHECKOUT_OFFER_TRANSACTION_RUNNER_TOKEN, CreateCheckoutOfferDto, UpdateCheckoutOfferDto, buildCheckoutOfferController } from './checkout-offer/index.js';
32
32
  export { a as CheckoutOfferConclusionOptions, b as CheckoutOfferControllerConfig, c as CheckoutOfferModule, C as CheckoutOfferModuleOptions } from './checkout-offer.module-x7SP_dX4.js';
33
33
  export { C as CreateContractFromOfferOptions, S as SubscriptionContractService, c as contractLineItemToInvoiceLineItem, s as sortContractLineItemsForInvoice, a as subscriptionContractToInvoiceSnapshot } from './subscription-contract.service-CPZrTM9C.js';
package/dist/index.js CHANGED
@@ -38,7 +38,7 @@ import {
38
38
  resolveModel,
39
39
  slugify,
40
40
  verifyOtpCode
41
- } from "./chunk-JBCC6C3M.js";
41
+ } from "./chunk-R3I5X262.js";
42
42
  import "./chunk-DU56UKEH.js";
43
43
  import "./chunk-BHZOH2DY.js";
44
44
  import {
@@ -59,7 +59,7 @@ import {
59
59
  buildSettingsController,
60
60
  describeChange,
61
61
  fingerprintOf
62
- } from "./chunk-AOS2JPDD.js";
62
+ } from "./chunk-FJIOHAO5.js";
63
63
  import {
64
64
  CreatePromoCodeDto,
65
65
  PreviewPromoCodeDto,
@@ -71,14 +71,13 @@ import {
71
71
  buildPromoCodeAdminController,
72
72
  hashIp,
73
73
  ipFingerprint
74
- } from "./chunk-4SDSYV4A.js";
74
+ } from "./chunk-T6WXDGIU.js";
75
75
  import {
76
76
  SubscriptionContractModule
77
- } from "./chunk-XSSWYPP5.js";
77
+ } from "./chunk-UMZCOCT5.js";
78
78
  import "./chunk-UF53DWWR.js";
79
79
  import {
80
80
  ADMIN_MANIFEST_CONFIG,
81
- ADMIN_RESOURCES_PORT_TOKEN,
82
81
  ADMIN_STATS_AUDIT_WINDOW_DAYS_TOKEN,
83
82
  AUDIT_STATS_PORT_TOKEN,
84
83
  AdminBypassRlsInterceptor,
@@ -86,8 +85,6 @@ import {
86
85
  AdminManifestService,
87
86
  AdminModule,
88
87
  AdminPublicBootController,
89
- AdminResourcesModule,
90
- AdminResourcesService,
91
88
  AdminStatsController,
92
89
  AdminStatsModule,
93
90
  AdminStatsService,
@@ -96,9 +93,8 @@ import {
96
93
  PROMO_CODE_STATS_PORT_TOKEN,
97
94
  SUBSCRIPTION_STATS_PORT_TOKEN,
98
95
  SuperAdminGuard,
99
- SuspendTenantDto,
100
96
  buildAdminStatsController
101
- } from "./chunk-LLYVYRGJ.js";
97
+ } from "./chunk-F2PF4IXB.js";
102
98
  import {
103
99
  CatalogBundleUpsellResolver,
104
100
  ConfiguratorCatalogBuilder,
@@ -121,7 +117,7 @@ import {
121
117
  computeCarriedTrialEndsAt,
122
118
  computeNextPeriod,
123
119
  decideRenewal
124
- } from "./chunk-R5YCJBHY.js";
120
+ } from "./chunk-U5UPEFWC.js";
125
121
  import {
126
122
  AddSubscriptionBundleDto,
127
123
  BILLING_FEATURE_UI_REGISTRY_TOKEN,
@@ -149,6 +145,10 @@ import {
149
145
  RequireFeature,
150
146
  SELF_SERVICE_BLOCKED_BUNDLES_TOKEN,
151
147
  SELF_SERVICE_BLOCKED_PLANS_TOKEN,
148
+ SUBSCRIBER_LEDGER_REPOSITORY_TOKEN,
149
+ SubscriberAccountModule,
150
+ SubscriberAccountService,
151
+ SubscriberChargeService,
152
152
  SubscriptionBundleModule,
153
153
  SubscriptionBundlePreviewService,
154
154
  SubscriptionBundlesService,
@@ -166,6 +166,7 @@ import {
166
166
  bundleNextPeriodEnd,
167
167
  catalogSource,
168
168
  clampToParent,
169
+ computeNewPeriodCharge,
169
170
  computeNextBundlePeriod,
170
171
  computeProration,
171
172
  decideCancellation,
@@ -180,7 +181,13 @@ import {
180
181
  resolveBundleCancelEffectiveAt,
181
182
  resolvePlanAnchorDay,
182
183
  retreatOneCycle
183
- } from "./chunk-M47BNEY2.js";
184
+ } from "./chunk-3YYLOYUT.js";
185
+ import {
186
+ ADMIN_RESOURCES_PORT_TOKEN,
187
+ AdminResourcesModule,
188
+ AdminResourcesService,
189
+ SuspendTenantDto
190
+ } from "./chunk-OSOP4KWL.js";
184
191
  import {
185
192
  formatPreflightReport,
186
193
  formatSeedGateReport,
@@ -259,13 +266,13 @@ import {
259
266
  CreateCheckoutOfferDto,
260
267
  UpdateCheckoutOfferDto,
261
268
  buildCheckoutOfferController
262
- } from "./chunk-TOEFN7DN.js";
269
+ } from "./chunk-FPMBQDW7.js";
263
270
  import {
264
271
  CHECKOUT_OFFER_REPOSITORY_TOKEN,
265
272
  CHECKOUT_OFFER_TRANSACTION_RUNNER_TOKEN,
266
273
  CheckoutOfferPricing,
267
274
  CheckoutOfferService
268
- } from "./chunk-55QEDAMX.js";
275
+ } from "./chunk-WTAS2CLM.js";
269
276
  import {
270
277
  CODE_MAX_LENGTH,
271
278
  CODE_MIN_LENGTH,
@@ -284,14 +291,15 @@ import {
284
291
  buildLabel,
285
292
  computeDiscountGross,
286
293
  computeDiscountedGross,
287
- computeRegularStartsAt
288
- } from "./chunk-3RLWML2S.js";
294
+ computeRegularStartsAt,
295
+ promoCodeDiscountNet
296
+ } from "./chunk-QWKBOLBH.js";
289
297
  import {
290
298
  SubscriptionContractService,
291
299
  contractLineItemToInvoiceLineItem,
292
300
  sortContractLineItemsForInvoice,
293
301
  subscriptionContractToInvoiceSnapshot
294
- } from "./chunk-NDLC5GYK.js";
302
+ } from "./chunk-EU4N5LET.js";
295
303
  import {
296
304
  cyclesSoldFor,
297
305
  resolveBundlePriceNet
@@ -320,7 +328,7 @@ import {
320
328
  import "./chunk-G7RQO2XO.js";
321
329
  import {
322
330
  EntitlementModule
323
- } from "./chunk-WHJSYKNC.js";
331
+ } from "./chunk-3U4N5UYD.js";
324
332
  import {
325
333
  EntitlementService,
326
334
  LimitExceededError,
@@ -341,11 +349,12 @@ import {
341
349
  filterPlannedOnlyFeatures,
342
350
  hasAnyFeature,
343
351
  hasFeature,
352
+ isCancellationDeclared,
344
353
  isLimitExceededError,
345
354
  mergeSubscriptionBundlesIntoLimits,
346
355
  resolveEntitlementPlan,
347
356
  toEffectiveLimitsSnapshot
348
- } from "./chunk-G6EZWECL.js";
357
+ } from "./chunk-B4YP7REK.js";
349
358
  import {
350
359
  ENTITLEMENT_RESOLUTION_CONFIG_TOKEN,
351
360
  ENTITLEMENT_SERVICE_TOKEN,
@@ -397,8 +406,8 @@ import {
397
406
  IMPLEMENTS_CAPABILITY_KEY,
398
407
  REQUIRES_CAPABILITY_KEY
399
408
  } from "./chunk-QUZU2M33.js";
400
- import "./chunk-QPVDCKYS.js";
401
- import "./chunk-7NJKVC5X.js";
409
+ import "./chunk-ESEWSAOV.js";
410
+ import "./chunk-WQNOCOI2.js";
402
411
  import {
403
412
  BillingPermissionGuard,
404
413
  ComposedTenantAuthGuard
@@ -628,6 +637,7 @@ export {
628
637
  SETUP_CONFIG_TOKEN,
629
638
  SETUP_PROVISIONING_PORT_TOKEN,
630
639
  SLUG_AVAILABILITY_CHECK_TOKEN,
640
+ SUBSCRIBER_LEDGER_REPOSITORY_TOKEN,
631
641
  SUBSCRIBER_REPOSITORY_TOKEN,
632
642
  SUBSCRIPTION_BUNDLE_CONFIG_TOKEN,
633
643
  SUBSCRIPTION_BUNDLE_REPOSITORY_TOKEN,
@@ -647,6 +657,9 @@ export {
647
657
  SetupModule,
648
658
  SetupService,
649
659
  StartRegistrationCheckoutDto,
660
+ SubscriberAccountModule,
661
+ SubscriberAccountService,
662
+ SubscriberChargeService,
650
663
  SubscriberModule,
651
664
  SubscriberService,
652
665
  SubscriptionBundleModule,
@@ -733,6 +746,7 @@ export {
733
746
  computeDiscountGross,
734
747
  computeDiscountedGross,
735
748
  computeIncludedVat,
749
+ computeNewPeriodCharge,
736
750
  computeNextBundlePeriod,
737
751
  computeNextPeriod,
738
752
  computeProration,
@@ -771,6 +785,7 @@ export {
771
785
  hashOtpCode,
772
786
  initialPeriodWindow,
773
787
  ipFingerprint,
788
+ isCancellationDeclared,
774
789
  isFeatureInPlan,
775
790
  isFeaturePlannedOnly,
776
791
  isLimitExceededError,
@@ -790,6 +805,7 @@ export {
790
805
  periodEndWithMinLead,
791
806
  planNotSoldInCycle,
792
807
  preflightExitCode,
808
+ promoCodeDiscountNet,
793
809
  quotaApprovalSignature,
794
810
  recordContractLinesMoney,
795
811
  resolveBundleCancelEffectiveAt,
@@ -3,7 +3,7 @@ import { ExecutionContext, DynamicModule, OnModuleInit } from '@nestjs/common';
3
3
  import { Reflector } from '@nestjs/core';
4
4
  import { SuperAdminProvisioningPort, SetupStatusResponse, SetupRequest, SetupResult, SetupConfirmMfaRequest, SetupConfirmMfaResponse, PlanCatalogSettings, AppliedSettingsPort, SubscriptionContractRepository, RlsBypassPort, IssuerIdentityChange, RunningContractIssuers } from '@saasicat/core';
5
5
  import { M as MfaService } from './admin-stats.service-DrZrU8IJ.cjs';
6
- import { c as SaaSiCatModuleOptions } from './module-options-qAOwinHR.cjs';
6
+ import { c as SaaSiCatModuleOptions } from './module-options-C4S_StYF.cjs';
7
7
 
8
8
  /**
9
9
  * Shared metadata key for endpoints that intentionally run without application
@@ -3,7 +3,7 @@ import { ExecutionContext, DynamicModule, OnModuleInit } from '@nestjs/common';
3
3
  import { Reflector } from '@nestjs/core';
4
4
  import { SuperAdminProvisioningPort, SetupStatusResponse, SetupRequest, SetupResult, SetupConfirmMfaRequest, SetupConfirmMfaResponse, PlanCatalogSettings, AppliedSettingsPort, SubscriptionContractRepository, RlsBypassPort, IssuerIdentityChange, RunningContractIssuers } from '@saasicat/core';
5
5
  import { M as MfaService } from './admin-stats.service-CsLNt19Z.js';
6
- import { c as SaaSiCatModuleOptions } from './module-options-DmQ3G4sZ.js';
6
+ import { c as SaaSiCatModuleOptions } from './module-options-DxJI-1iH.js';
7
7
 
8
8
  /**
9
9
  * Shared metadata key for endpoints that intentionally run without application
@@ -2,11 +2,11 @@ import { Type, DynamicModule, ForwardReference, Provider, CanActivate, FactoryPr
2
2
  import { SuperAdminProvisioningPort, MfaPort, AuditPort, RlsBypassPort, AppliedSettingsPort, EmailPort, PlanCatalogReadSink, SubscriptionRepository, PlanVersionRepository, TransactionRunner, AdminResourcesPort, FeatureUiRegistry, PlanCatalog, SaaSiCatPersistenceAdapter, QuotaProvider, SubscriptionUsagePort, UsageSnapshotPort, TenantSubscriptionWritePort, FirstTimeCustomerCheck } from '@saasicat/core';
3
3
  import { P as ProviderSpec } from './di-CcNeq9v-.cjs';
4
4
  import { A as AdminResourcesModuleOptions, a as AdminStatsModuleOptions, b as AdminManifestConfig } from './admin-resources.module-B4XNvdH-.cjs';
5
- import { L as LoadPlanCatalogOptions, T as TenantBillingModuleOptions, S as SubscriptionBundleModuleOptions, a as SubscriptionBundleControllerOptions } from './tenant-billing.module-ClbjzocC.cjs';
5
+ import { L as LoadPlanCatalogOptions, T as TenantBillingModuleOptions, S as SubscriptionBundleModuleOptions, a as SubscriptionBundleControllerOptions } from './tenant-billing.module-C6MFfCKq.cjs';
6
6
  import { C as CatalogModuleOptions, P as PublicMarketingCatalogOptions, N as NewPaymentMethodsSource } from './catalog.module-T-I5Ricz.cjs';
7
7
  import { D as DiscoveryAppInfo } from './discovery.scanner-DXKc6JkV.cjs';
8
8
  import { E as EntitlementResolutionConfig } from './plan-resolution-CwUy_OqC.cjs';
9
- import { P as PromoCodesModuleOptions } from './promo.module-CKkECmU8.cjs';
9
+ import { P as PromoCodesModuleOptions } from './promo.module-Ddx-swUV.cjs';
10
10
  import { C as CheckoutOfferModuleOptions } from './checkout-offer.module-DFhGy6JO.cjs';
11
11
  import { P as PaymentsModuleOptions, a as PaymentsTenantRoutesOptions } from './payments.module-BdUq9ot_.cjs';
12
12
  import { S as SubscriptionContractModuleOptions } from './subscription-contract.module-DTMuUJYd.cjs';