@saasicat/nest 0.10.0 → 0.11.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.
@@ -290,8 +290,16 @@ interface SaasPlatformModuleOptions {
290
290
  * Set `false` when the app authenticates in a controller-local guard.
291
291
  * Nest runs every global guard before every controller-local one, so a
292
292
  * global feature guard sees no `request.user` and rejects with 403 before
293
- * authentication has run. Apps in that shape bind the guard themselves,
294
- * behind their auth guard: `@UseGuards(JwtAuthGuard, FeatureGuard)`.
293
+ * authentication has run.
294
+ *
295
+ * REQUIRED when you set this: bind a feature guard yourself, behind your
296
+ * auth guard, or `@RequireFeature` becomes inert markup and every
297
+ * annotated route serves unlicensed traffic. Either
298
+ * `@UseGuards(JwtAuthGuard, StaticFeatureGuard)` — the guard this option
299
+ * unbinds, exported from this entry — or `@UseGuards(JwtAuthGuard,
300
+ * FeatureGuard)` from `@saasicat/nest/billing` if you run the V3
301
+ * entitlement stack. They are different classes; pick the one matching
302
+ * your entitlement path.
295
303
  *
296
304
  * Only the guard is affected. `EnforceQuotaInterceptor` stays global
297
305
  * either way — interceptors run after all guards, so it does see the
@@ -290,8 +290,16 @@ interface SaasPlatformModuleOptions {
290
290
  * Set `false` when the app authenticates in a controller-local guard.
291
291
  * Nest runs every global guard before every controller-local one, so a
292
292
  * global feature guard sees no `request.user` and rejects with 403 before
293
- * authentication has run. Apps in that shape bind the guard themselves,
294
- * behind their auth guard: `@UseGuards(JwtAuthGuard, FeatureGuard)`.
293
+ * authentication has run.
294
+ *
295
+ * REQUIRED when you set this: bind a feature guard yourself, behind your
296
+ * auth guard, or `@RequireFeature` becomes inert markup and every
297
+ * annotated route serves unlicensed traffic. Either
298
+ * `@UseGuards(JwtAuthGuard, StaticFeatureGuard)` — the guard this option
299
+ * unbinds, exported from this entry — or `@UseGuards(JwtAuthGuard,
300
+ * FeatureGuard)` from `@saasicat/nest/billing` if you run the V3
301
+ * entitlement stack. They are different classes; pick the one matching
302
+ * your entitlement path.
295
303
  *
296
304
  * Only the guard is affected. `EnforceQuotaInterceptor` stays global
297
305
  * either way — interceptors run after all guards, so it does see the
@@ -1,5 +1,5 @@
1
- import { d as SaasPlatformModuleOptions, e as PlanResolverPort, a as StaticEntitlementService } from '../enforce-quota.interceptor-BhkX5nq2.cjs';
2
- export { E as EnforceQuotaInterceptor, P as PLAN_RESOLVER_PORT_TOKEN, Q as QUOTA_PROVIDERS_TOKEN, f as STATIC_FEATURE_GUARD_CONFIG_TOKEN, g as SaaSiCatModule, S as SaasPlatformAdapters, h as SaasPlatformAdminResourcesOptions, i as SaasPlatformCatalogOptions, g as SaasPlatformModule, j as SaasPlatformPromoCodesOptions, k as SaasPlatformSubscriptionBundlesOptions, l as SaasPlatformTenantAuthGuards, m as SaasPlatformTenantBillingOptions, n as StaticEntitlementSnapshot, b as StaticFeatureGuard, o as StaticFeatureGuardConfig, c as StaticPlanResolver, T as TenantManifestControllerOptions, p as buildTenantManifestController } from '../enforce-quota.interceptor-BhkX5nq2.cjs';
1
+ import { d as SaasPlatformModuleOptions, e as PlanResolverPort, a as StaticEntitlementService } from '../enforce-quota.interceptor-Dse3jSpU.cjs';
2
+ export { E as EnforceQuotaInterceptor, P as PLAN_RESOLVER_PORT_TOKEN, Q as QUOTA_PROVIDERS_TOKEN, f as STATIC_FEATURE_GUARD_CONFIG_TOKEN, g as SaaSiCatModule, S as SaasPlatformAdapters, h as SaasPlatformAdminResourcesOptions, i as SaasPlatformCatalogOptions, g as SaasPlatformModule, j as SaasPlatformPromoCodesOptions, k as SaasPlatformSubscriptionBundlesOptions, l as SaasPlatformTenantAuthGuards, m as SaasPlatformTenantBillingOptions, n as StaticEntitlementSnapshot, b as StaticFeatureGuard, o as StaticFeatureGuardConfig, c as StaticPlanResolver, T as TenantManifestControllerOptions, p as buildTenantManifestController } from '../enforce-quota.interceptor-Dse3jSpU.cjs';
3
3
  import { SubscriptionRepository, UsageSnapshotPort, QuotaProvider } from '@saasicat/types';
4
4
  export { A as AdminBypassRlsInterceptor, a as AdminManifestModule, b as AdminManifestModuleOptions, c as AdminManifestService, d as AdminModule, e as AdminModuleOptions, f as AdminStatsModule, g as AdminStatsModuleOptions, h as AdminStatsService, M as MfaGuard, j as MfaService, S as SuperAdminGuard } from '../admin-stats.module-v4SVvWzj.cjs';
5
5
  export { A as AdminAuditService } from '../admin-audit.service-9IqXMlZm.cjs';
@@ -1,5 +1,5 @@
1
- import { d as SaasPlatformModuleOptions, e as PlanResolverPort, a as StaticEntitlementService } from '../enforce-quota.interceptor-CcqZc0Yu.js';
2
- export { E as EnforceQuotaInterceptor, P as PLAN_RESOLVER_PORT_TOKEN, Q as QUOTA_PROVIDERS_TOKEN, f as STATIC_FEATURE_GUARD_CONFIG_TOKEN, g as SaaSiCatModule, S as SaasPlatformAdapters, h as SaasPlatformAdminResourcesOptions, i as SaasPlatformCatalogOptions, g as SaasPlatformModule, j as SaasPlatformPromoCodesOptions, k as SaasPlatformSubscriptionBundlesOptions, l as SaasPlatformTenantAuthGuards, m as SaasPlatformTenantBillingOptions, n as StaticEntitlementSnapshot, b as StaticFeatureGuard, o as StaticFeatureGuardConfig, c as StaticPlanResolver, T as TenantManifestControllerOptions, p as buildTenantManifestController } from '../enforce-quota.interceptor-CcqZc0Yu.js';
1
+ import { d as SaasPlatformModuleOptions, e as PlanResolverPort, a as StaticEntitlementService } from '../enforce-quota.interceptor-DMEvL-bE.js';
2
+ export { E as EnforceQuotaInterceptor, P as PLAN_RESOLVER_PORT_TOKEN, Q as QUOTA_PROVIDERS_TOKEN, f as STATIC_FEATURE_GUARD_CONFIG_TOKEN, g as SaaSiCatModule, S as SaasPlatformAdapters, h as SaasPlatformAdminResourcesOptions, i as SaasPlatformCatalogOptions, g as SaasPlatformModule, j as SaasPlatformPromoCodesOptions, k as SaasPlatformSubscriptionBundlesOptions, l as SaasPlatformTenantAuthGuards, m as SaasPlatformTenantBillingOptions, n as StaticEntitlementSnapshot, b as StaticFeatureGuard, o as StaticFeatureGuardConfig, c as StaticPlanResolver, T as TenantManifestControllerOptions, p as buildTenantManifestController } from '../enforce-quota.interceptor-DMEvL-bE.js';
3
3
  import { SubscriptionRepository, UsageSnapshotPort, QuotaProvider } from '@saasicat/types';
4
4
  export { A as AdminBypassRlsInterceptor, a as AdminManifestModule, b as AdminManifestModuleOptions, c as AdminManifestService, d as AdminModule, e as AdminModuleOptions, f as AdminStatsModule, g as AdminStatsModuleOptions, h as AdminStatsService, M as MfaGuard, j as MfaService, S as SuperAdminGuard } from '../admin-stats.module-15ac5KY3.js';
5
5
  export { A as AdminAuditService } from '../admin-audit.service-9IqXMlZm.js';
@@ -1,7 +1,7 @@
1
1
  import { BundleRepository, BundleRow, BundleVersionRow, BundleListFilter, CreateBundleData, UpdateBundleData, CreateBundleVersionDraftData, UpdateBundleVersionDraftData, VersionChange, MarketingProjectionRepository, MarketingProjectionRow, MarketingProjectionFilter, CreateMarketingProjectionData, UpdateMarketingProjectionData, PlanRepository, PlanRow, PlanVersionRow, PlanListFilter, CreatePlanData, UpdatePlanData, CreatePlanVersionDraftData, UpdatePlanVersionDraftData, PlanVersionRepository, PlanVersionRecord, TransactionContext, SubscriptionBundleRepository, SubscriptionBundleRecord, CreateSubscriptionBundleData, CancelSubscriptionBundleData, SubscriptionContractRepository, SubscriptionContractFilter, SubscriptionContractRecord, CreateSubscriptionContractData, TerminateSubscriptionContractData, SubscriptionRepository, SubscriptionRecord, TransactionRunner, PlanCatalog, QuotaProvider } from '@saasicat/types';
2
2
  import { Type, DynamicModule } from '@nestjs/common';
3
- import { S as SaasPlatformAdapters } from '../enforce-quota.interceptor-BhkX5nq2.cjs';
4
- export { E as EnforceQuotaInterceptor, P as PLAN_RESOLVER_PORT_TOKEN, a as StaticEntitlementService, b as StaticFeatureGuard, c as StaticPlanResolver } from '../enforce-quota.interceptor-BhkX5nq2.cjs';
3
+ import { S as SaasPlatformAdapters } from '../enforce-quota.interceptor-Dse3jSpU.cjs';
4
+ export { E as EnforceQuotaInterceptor, P as PLAN_RESOLVER_PORT_TOKEN, a as StaticEntitlementService, b as StaticFeatureGuard, c as StaticPlanResolver } from '../enforce-quota.interceptor-Dse3jSpU.cjs';
5
5
  import '../di-CcNeq9v-.cjs';
6
6
  import '../admin-resources.module-BZN_yBFj.cjs';
7
7
  import '../admin-audit.service-9IqXMlZm.cjs';
@@ -1,7 +1,7 @@
1
1
  import { BundleRepository, BundleRow, BundleVersionRow, BundleListFilter, CreateBundleData, UpdateBundleData, CreateBundleVersionDraftData, UpdateBundleVersionDraftData, VersionChange, MarketingProjectionRepository, MarketingProjectionRow, MarketingProjectionFilter, CreateMarketingProjectionData, UpdateMarketingProjectionData, PlanRepository, PlanRow, PlanVersionRow, PlanListFilter, CreatePlanData, UpdatePlanData, CreatePlanVersionDraftData, UpdatePlanVersionDraftData, PlanVersionRepository, PlanVersionRecord, TransactionContext, SubscriptionBundleRepository, SubscriptionBundleRecord, CreateSubscriptionBundleData, CancelSubscriptionBundleData, SubscriptionContractRepository, SubscriptionContractFilter, SubscriptionContractRecord, CreateSubscriptionContractData, TerminateSubscriptionContractData, SubscriptionRepository, SubscriptionRecord, TransactionRunner, PlanCatalog, QuotaProvider } from '@saasicat/types';
2
2
  import { Type, DynamicModule } from '@nestjs/common';
3
- import { S as SaasPlatformAdapters } from '../enforce-quota.interceptor-CcqZc0Yu.js';
4
- export { E as EnforceQuotaInterceptor, P as PLAN_RESOLVER_PORT_TOKEN, a as StaticEntitlementService, b as StaticFeatureGuard, c as StaticPlanResolver } from '../enforce-quota.interceptor-CcqZc0Yu.js';
3
+ import { S as SaasPlatformAdapters } from '../enforce-quota.interceptor-DMEvL-bE.js';
4
+ export { E as EnforceQuotaInterceptor, P as PLAN_RESOLVER_PORT_TOKEN, a as StaticEntitlementService, b as StaticFeatureGuard, c as StaticPlanResolver } from '../enforce-quota.interceptor-DMEvL-bE.js';
5
5
  import '../di-CcNeq9v-.js';
6
6
  import '../admin-resources.module-Cms8MY6h.js';
7
7
  import '../admin-audit.service-9IqXMlZm.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@saasicat/nest",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "NestJS implementation of SaaSiCat: capability discovery, catalog packaging, contracts, entitlement enforcement, billing and admin APIs.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -137,8 +137,8 @@
137
137
  "js-yaml": "^4.1.0",
138
138
  "otplib": "^13.4.1",
139
139
  "qrcode": "^1.5.4",
140
- "@saasicat/spec": "^0.10.0",
141
- "@saasicat/types": "^0.10.0"
140
+ "@saasicat/spec": "^0.11.0",
141
+ "@saasicat/types": "^0.11.0"
142
142
  },
143
143
  "peerDependencies": {
144
144
  "@nestjs/common": "^11.0.0",