@carlonicora/nestjs-neo4jsonapi 7.0.0 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bootstrap/app.module.factory.d.ts.map +1 -1
- package/dist/bootstrap/app.module.factory.js +1 -0
- package/dist/bootstrap/app.module.factory.js.map +1 -1
- package/dist/bootstrap/bootstrap.options.d.ts +20 -0
- package/dist/bootstrap/bootstrap.options.d.ts.map +1 -1
- package/dist/common/decorators/audit.decorator.d.ts +3 -0
- package/dist/common/decorators/audit.decorator.d.ts.map +1 -1
- package/dist/common/decorators/audit.decorator.js +15 -2
- package/dist/common/decorators/audit.decorator.js.map +1 -1
- package/dist/common/decorators/cache-invalidate.decorator.d.ts.map +1 -1
- package/dist/common/decorators/cache-invalidate.decorator.js +3 -11
- package/dist/common/decorators/cache-invalidate.decorator.js.map +1 -1
- package/dist/common/decorators/handler-wrapper.d.ts +13 -0
- package/dist/common/decorators/handler-wrapper.d.ts.map +1 -0
- package/dist/common/decorators/handler-wrapper.js +25 -0
- package/dist/common/decorators/handler-wrapper.js.map +1 -0
- package/dist/common/decorators/validate-id.decorator.d.ts.map +1 -1
- package/dist/common/decorators/validate-id.decorator.js +3 -11
- package/dist/common/decorators/validate-id.decorator.js.map +1 -1
- package/dist/core/email/templates/en/cardExpiring.hbs +28 -0
- package/dist/core/email/templates/en/paymentFailure.hbs +4 -0
- package/dist/foundations/ai-connection/controllers/ai-connection.controller.d.ts +2 -1
- package/dist/foundations/ai-connection/controllers/ai-connection.controller.d.ts.map +1 -1
- package/dist/foundations/ai-connection/controllers/ai-connection.controller.js +5 -4
- package/dist/foundations/ai-connection/controllers/ai-connection.controller.js.map +1 -1
- package/dist/foundations/analytics/controllers/analytics.admin.controller.d.ts +2 -1
- package/dist/foundations/analytics/controllers/analytics.admin.controller.d.ts.map +1 -1
- package/dist/foundations/analytics/controllers/analytics.admin.controller.js +5 -4
- package/dist/foundations/analytics/controllers/analytics.admin.controller.js.map +1 -1
- package/dist/foundations/billing/billing.module.d.ts +26 -0
- package/dist/foundations/billing/billing.module.d.ts.map +1 -0
- package/dist/foundations/billing/billing.module.js +74 -0
- package/dist/foundations/billing/billing.module.js.map +1 -0
- package/dist/foundations/billing/cron/billing-lifecycle.cron.d.ts +16 -0
- package/dist/foundations/billing/cron/billing-lifecycle.cron.d.ts.map +1 -0
- package/dist/foundations/billing/cron/billing-lifecycle.cron.js +52 -0
- package/dist/foundations/billing/cron/billing-lifecycle.cron.js.map +1 -0
- package/dist/foundations/billing/index.d.ts +7 -0
- package/dist/foundations/billing/index.d.ts.map +1 -0
- package/dist/foundations/billing/index.js +28 -0
- package/dist/foundations/billing/index.js.map +1 -0
- package/dist/foundations/billing/interfaces/billing.config.interface.d.ts +71 -0
- package/dist/foundations/billing/interfaces/billing.config.interface.d.ts.map +1 -0
- package/dist/foundations/billing/interfaces/billing.config.interface.js +41 -0
- package/dist/foundations/billing/interfaces/billing.config.interface.js.map +1 -0
- package/dist/foundations/billing/processors/billing-email.jobs.d.ts +127 -0
- package/dist/foundations/billing/processors/billing-email.jobs.d.ts.map +1 -0
- package/dist/foundations/billing/processors/billing-email.jobs.js +196 -0
- package/dist/foundations/billing/processors/billing-email.jobs.js.map +1 -0
- package/dist/foundations/billing/processors/billing-email.processor.d.ts +33 -0
- package/dist/foundations/billing/processors/billing-email.processor.d.ts.map +1 -0
- package/dist/foundations/billing/processors/billing-email.processor.js +95 -0
- package/dist/foundations/billing/processors/billing-email.processor.js.map +1 -0
- package/dist/foundations/billing/services/card-expiry-warning.service.d.ts +58 -0
- package/dist/foundations/billing/services/card-expiry-warning.service.d.ts.map +1 -0
- package/dist/foundations/billing/services/card-expiry-warning.service.js +90 -0
- package/dist/foundations/billing/services/card-expiry-warning.service.js.map +1 -0
- package/dist/foundations/company/repositories/company.repository.d.ts +2 -0
- package/dist/foundations/company/repositories/company.repository.d.ts.map +1 -1
- package/dist/foundations/company/repositories/company.repository.js +2 -2
- package/dist/foundations/company/repositories/company.repository.js.map +1 -1
- package/dist/foundations/foundations.modules.d.ts +3 -0
- package/dist/foundations/foundations.modules.d.ts.map +1 -1
- package/dist/foundations/foundations.modules.js +3 -1
- package/dist/foundations/foundations.modules.js.map +1 -1
- package/dist/foundations/handbook/controllers/handbook.controller.d.ts +1 -1
- package/dist/foundations/handbook/controllers/handbook.controller.d.ts.map +1 -1
- package/dist/foundations/handbook/controllers/handbook.controller.js +5 -4
- package/dist/foundations/handbook/controllers/handbook.controller.js.map +1 -1
- package/dist/foundations/index.d.ts +1 -0
- package/dist/foundations/index.d.ts.map +1 -1
- package/dist/foundations/index.js +1 -0
- package/dist/foundations/index.js.map +1 -1
- package/dist/foundations/notification/controllers/notification.controller.d.ts.map +1 -1
- package/dist/foundations/notification/controllers/notification.controller.js +0 -1
- package/dist/foundations/notification/controllers/notification.controller.js.map +1 -1
- package/dist/foundations/role/controllers/role.controller.d.ts +1 -1
- package/dist/foundations/role/controllers/role.controller.d.ts.map +1 -1
- package/dist/foundations/role/controllers/role.controller.js +4 -3
- package/dist/foundations/role/controllers/role.controller.js.map +1 -1
- package/dist/foundations/stripe-coupon/controllers/stripe-coupon-code-checkout.controller.d.ts +2 -1
- package/dist/foundations/stripe-coupon/controllers/stripe-coupon-code-checkout.controller.d.ts.map +1 -1
- package/dist/foundations/stripe-coupon/controllers/stripe-coupon-code-checkout.controller.js +5 -6
- package/dist/foundations/stripe-coupon/controllers/stripe-coupon-code-checkout.controller.js.map +1 -1
- package/dist/foundations/stripe-coupon/controllers/stripe-coupon-code.controller.d.ts +1 -1
- package/dist/foundations/stripe-coupon/controllers/stripe-coupon-code.controller.d.ts.map +1 -1
- package/dist/foundations/stripe-coupon/controllers/stripe-coupon-code.controller.js +5 -4
- package/dist/foundations/stripe-coupon/controllers/stripe-coupon-code.controller.js.map +1 -1
- package/dist/foundations/stripe-coupon/controllers/stripe-coupon.controller.d.ts +1 -1
- package/dist/foundations/stripe-coupon/controllers/stripe-coupon.controller.d.ts.map +1 -1
- package/dist/foundations/stripe-coupon/controllers/stripe-coupon.controller.js +5 -4
- package/dist/foundations/stripe-coupon/controllers/stripe-coupon.controller.js.map +1 -1
- package/dist/foundations/stripe-coupon/controllers/stripe-coupon.public.controller.d.ts +1 -0
- package/dist/foundations/stripe-coupon/controllers/stripe-coupon.public.controller.d.ts.map +1 -1
- package/dist/foundations/stripe-coupon/controllers/stripe-coupon.public.controller.js +4 -0
- package/dist/foundations/stripe-coupon/controllers/stripe-coupon.public.controller.js.map +1 -1
- package/dist/foundations/stripe-coupon/dtos/stripe-coupon-code.automatic.query.dto.d.ts +8 -0
- package/dist/foundations/stripe-coupon/dtos/stripe-coupon-code.automatic.query.dto.d.ts.map +1 -0
- package/dist/foundations/stripe-coupon/dtos/stripe-coupon-code.automatic.query.dto.js +25 -0
- package/dist/foundations/stripe-coupon/dtos/stripe-coupon-code.automatic.query.dto.js.map +1 -0
- package/dist/foundations/stripe-coupon/entities/stripe-coupon-code.js +1 -1
- package/dist/foundations/stripe-coupon/entities/stripe-coupon-code.js.map +1 -1
- package/dist/foundations/stripe-coupon/entities/stripe-coupon-offer.d.ts +5 -0
- package/dist/foundations/stripe-coupon/entities/stripe-coupon-offer.d.ts.map +1 -1
- package/dist/foundations/stripe-coupon/entities/stripe-coupon-offer.js.map +1 -1
- package/dist/foundations/stripe-coupon/entities/stripe-coupon.d.ts +25 -2
- package/dist/foundations/stripe-coupon/entities/stripe-coupon.d.ts.map +1 -1
- package/dist/foundations/stripe-coupon/entities/stripe-coupon.js +1 -1
- package/dist/foundations/stripe-coupon/entities/stripe-coupon.js.map +1 -1
- package/dist/foundations/stripe-coupon/index.d.ts +1 -0
- package/dist/foundations/stripe-coupon/index.d.ts.map +1 -1
- package/dist/foundations/stripe-coupon/index.js +1 -0
- package/dist/foundations/stripe-coupon/index.js.map +1 -1
- package/dist/foundations/stripe-coupon/services/stripe-coupon-api.service.d.ts +5 -8
- package/dist/foundations/stripe-coupon/services/stripe-coupon-api.service.d.ts.map +1 -1
- package/dist/foundations/stripe-coupon/services/stripe-coupon-api.service.js +9 -9
- package/dist/foundations/stripe-coupon/services/stripe-coupon-api.service.js.map +1 -1
- package/dist/foundations/stripe-coupon/services/stripe-coupon-offer.service.js.map +1 -1
- package/dist/foundations/stripe-coupon/services/stripe-coupon.service.d.ts +36 -3
- package/dist/foundations/stripe-coupon/services/stripe-coupon.service.d.ts.map +1 -1
- package/dist/foundations/stripe-coupon/services/stripe-coupon.service.js +69 -33
- package/dist/foundations/stripe-coupon/services/stripe-coupon.service.js.map +1 -1
- package/dist/foundations/stripe-customer/services/stripe-customer-api.service.d.ts +17 -0
- package/dist/foundations/stripe-customer/services/stripe-customer-api.service.d.ts.map +1 -1
- package/dist/foundations/stripe-customer/services/stripe-customer-api.service.js +40 -0
- package/dist/foundations/stripe-customer/services/stripe-customer-api.service.js.map +1 -1
- package/dist/foundations/stripe-invoice/entities/stripe-invoice.entity.d.ts +1 -1
- package/dist/foundations/stripe-invoice/entities/stripe-invoice.entity.d.ts.map +1 -1
- package/dist/foundations/stripe-invoice/serialisers/stripe-invoice.serialiser.js +2 -2
- package/dist/foundations/stripe-invoice/serialisers/stripe-invoice.serialiser.js.map +1 -1
- package/dist/foundations/stripe-invoice/services/stripe-invoice-api.service.d.ts +13 -0
- package/dist/foundations/stripe-invoice/services/stripe-invoice-api.service.d.ts.map +1 -1
- package/dist/foundations/stripe-invoice/services/stripe-invoice-api.service.js +21 -0
- package/dist/foundations/stripe-invoice/services/stripe-invoice-api.service.js.map +1 -1
- package/dist/foundations/stripe-subscription/controllers/stripe-subscription.controller.d.ts +1 -3
- package/dist/foundations/stripe-subscription/controllers/stripe-subscription.controller.d.ts.map +1 -1
- package/dist/foundations/stripe-subscription/controllers/stripe-subscription.controller.js +5 -38
- package/dist/foundations/stripe-subscription/controllers/stripe-subscription.controller.js.map +1 -1
- package/dist/foundations/stripe-subscription/entities/stripe-subscription.d.ts +60 -0
- package/dist/foundations/stripe-subscription/entities/stripe-subscription.d.ts.map +1 -0
- package/dist/foundations/stripe-subscription/entities/stripe-subscription.discount.d.ts +1 -1
- package/dist/foundations/stripe-subscription/entities/stripe-subscription.discount.d.ts.map +1 -1
- package/dist/foundations/stripe-subscription/entities/stripe-subscription.js +61 -0
- package/dist/foundations/stripe-subscription/entities/stripe-subscription.js.map +1 -0
- package/dist/foundations/stripe-subscription/index.d.ts +1 -4
- package/dist/foundations/stripe-subscription/index.d.ts.map +1 -1
- package/dist/foundations/stripe-subscription/index.js +4 -8
- package/dist/foundations/stripe-subscription/index.js.map +1 -1
- package/dist/foundations/stripe-subscription/repositories/stripe-subscription.repository.d.ts +93 -165
- package/dist/foundations/stripe-subscription/repositories/stripe-subscription.repository.d.ts.map +1 -1
- package/dist/foundations/stripe-subscription/repositories/stripe-subscription.repository.js +206 -274
- package/dist/foundations/stripe-subscription/repositories/stripe-subscription.repository.js.map +1 -1
- package/dist/foundations/stripe-subscription/services/stripe-subscription-admin.service.d.ts +34 -36
- package/dist/foundations/stripe-subscription/services/stripe-subscription-admin.service.d.ts.map +1 -1
- package/dist/foundations/stripe-subscription/services/stripe-subscription-admin.service.js +20 -72
- package/dist/foundations/stripe-subscription/services/stripe-subscription-admin.service.js.map +1 -1
- package/dist/foundations/stripe-subscription/services/stripe-subscription-api.service.d.ts +1 -29
- package/dist/foundations/stripe-subscription/services/stripe-subscription-api.service.d.ts.map +1 -1
- package/dist/foundations/stripe-subscription/services/stripe-subscription-api.service.js +1 -53
- package/dist/foundations/stripe-subscription/services/stripe-subscription-api.service.js.map +1 -1
- package/dist/foundations/stripe-subscription/stripe-subscription.module.d.ts +3 -3
- package/dist/foundations/stripe-subscription/stripe-subscription.module.d.ts.map +1 -1
- package/dist/foundations/stripe-subscription/stripe-subscription.module.js +8 -7
- package/dist/foundations/stripe-subscription/stripe-subscription.module.js.map +1 -1
- package/dist/foundations/stripe-usage/entities/stripe-usage-record.entity.d.ts +1 -1
- package/dist/foundations/stripe-usage/entities/stripe-usage-record.entity.d.ts.map +1 -1
- package/dist/foundations/stripe-usage/serialisers/stripe-usage-record.serialiser.js +2 -2
- package/dist/foundations/stripe-usage/serialisers/stripe-usage-record.serialiser.js.map +1 -1
- package/dist/foundations/stripe-webhook/processors/stripe-webhook.processor.d.ts +6 -1
- package/dist/foundations/stripe-webhook/processors/stripe-webhook.processor.d.ts.map +1 -1
- package/dist/foundations/stripe-webhook/processors/stripe-webhook.processor.js +73 -15
- package/dist/foundations/stripe-webhook/processors/stripe-webhook.processor.js.map +1 -1
- package/dist/foundations/stripe-webhook/services/stripe-webhook-notification.service.d.ts +24 -2
- package/dist/foundations/stripe-webhook/services/stripe-webhook-notification.service.d.ts.map +1 -1
- package/dist/foundations/stripe-webhook/services/stripe-webhook-notification.service.js +88 -20
- package/dist/foundations/stripe-webhook/services/stripe-webhook-notification.service.js.map +1 -1
- package/package.json +1 -1
- package/dist/foundations/stripe-subscription/entities/stripe-subscription.entity.d.ts +0 -27
- package/dist/foundations/stripe-subscription/entities/stripe-subscription.entity.d.ts.map +0 -1
- package/dist/foundations/stripe-subscription/entities/stripe-subscription.entity.js +0 -3
- package/dist/foundations/stripe-subscription/entities/stripe-subscription.entity.js.map +0 -1
- package/dist/foundations/stripe-subscription/entities/stripe-subscription.map.d.ts +0 -8
- package/dist/foundations/stripe-subscription/entities/stripe-subscription.map.d.ts.map +0 -1
- package/dist/foundations/stripe-subscription/entities/stripe-subscription.map.js +0 -30
- package/dist/foundations/stripe-subscription/entities/stripe-subscription.map.js.map +0 -1
- package/dist/foundations/stripe-subscription/entities/stripe-subscription.model.d.ts +0 -4
- package/dist/foundations/stripe-subscription/entities/stripe-subscription.model.d.ts.map +0 -1
- package/dist/foundations/stripe-subscription/entities/stripe-subscription.model.js +0 -17
- package/dist/foundations/stripe-subscription/entities/stripe-subscription.model.js.map +0 -1
- package/dist/foundations/stripe-subscription/serialisers/stripe-subscription.serialiser.d.ts +0 -9
- package/dist/foundations/stripe-subscription/serialisers/stripe-subscription.serialiser.d.ts.map +0 -1
- package/dist/foundations/stripe-subscription/serialisers/stripe-subscription.serialiser.js +0 -59
- package/dist/foundations/stripe-subscription/serialisers/stripe-subscription.serialiser.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.module.factory.d.ts","sourceRoot":"","sources":["../../src/bootstrap/app.module.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAwB7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"app.module.factory.d.ts","sourceRoot":"","sources":["../../src/bootstrap/app.module.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAwB7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAkKpE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.module.factory.js","sourceRoot":"","sources":["../../src/bootstrap/app.module.factory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,
|
|
1
|
+
{"version":3,"file":"app.module.factory.js","sourceRoot":"","sources":["../../src/bootstrap/app.module.factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ import { ReferralModuleConfig } from "../foundations/referral/interfaces/referra
|
|
|
8
8
|
import { HandbookModuleConfig } from "../foundations/handbook/interfaces/handbook.config.interface";
|
|
9
9
|
import { HowToModuleConfig } from "../foundations/how-to/interfaces/how-to.config.interface";
|
|
10
10
|
import { BlogModuleConfig } from "../foundations/blog/interfaces/blog.config.interface";
|
|
11
|
+
import { BillingModuleConfig } from "../foundations/billing/interfaces/billing.config.interface";
|
|
11
12
|
import { EmailAutomationModuleConfig } from "../foundations/email-automation/interfaces/email-automation.config.interface";
|
|
12
13
|
import { UserActivityModuleConfig } from "../foundations/user-activity/interfaces/user-activity.config.interface";
|
|
13
14
|
import { AnalyticsModuleConfig } from "../foundations/analytics/interfaces/analytics.config.interface";
|
|
@@ -159,6 +160,25 @@ export interface BootstrapOptions {
|
|
|
159
160
|
* ```
|
|
160
161
|
*/
|
|
161
162
|
emailAutomation?: EmailAutomationModuleConfig;
|
|
163
|
+
/**
|
|
164
|
+
* Configuration for the billing module.
|
|
165
|
+
* Forwarded to `FoundationsModule.forRoot({ billing })`, exactly like
|
|
166
|
+
* `emailAutomation` above. The module is always mounted; every key is optional.
|
|
167
|
+
*
|
|
168
|
+
* Omitted keeps the defaults: failed-card grace on, the library
|
|
169
|
+
* billing email sender off (apps that consume `QueueId.EMAIL` with their own
|
|
170
|
+
* processor keep it), every billing email on, deletion 30 days after a
|
|
171
|
+
* subscription ends.
|
|
172
|
+
*
|
|
173
|
+
* @example
|
|
174
|
+
* ```typescript
|
|
175
|
+
* billing: {
|
|
176
|
+
* emailSender: { enabled: true },
|
|
177
|
+
* deletion: { afterSubscriptionEndedDays: 365 },
|
|
178
|
+
* }
|
|
179
|
+
* ```
|
|
180
|
+
*/
|
|
181
|
+
billing?: BillingModuleConfig;
|
|
162
182
|
/**
|
|
163
183
|
* Configuration for the first-party web analytics feature module.
|
|
164
184
|
* Forwarded to `FoundationsModule.forRoot({ analytics })`, exactly like
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.options.d.ts","sourceRoot":"","sources":["../../src/bootstrap/bootstrap.options.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bootstrap.options.d.ts","sourceRoot":"","sources":["../../src/bootstrap/bootstrap.options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,+DAA+D,CAAC;AACvG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8DAA8D,CAAC;AACpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,8DAA8D,CAAC;AACpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,0DAA0D,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,sDAAsD,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4DAA4D,CAAC;AACjG,OAAO,EAAE,2BAA2B,EAAE,MAAM,8EAA8E,CAAC;AAC3H,OAAO,EAAE,wBAAwB,EAAE,MAAM,wEAAwE,CAAC;AAClH,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAC;AAEvG;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,UAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC;IAE1C;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEnC;;;;;;;;;;;;;OAaG;IACH,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAE1C;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAEhC;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,EAAE,wBAAwB,CAAC;IAExC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAEhC;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAE1B;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,EAAE,gBAAgB,CAAC;IAExB;;;;;;;;;;;;;;;;;OAiBG;IACH,eAAe,CAAC,EAAE,2BAA2B,CAAC;IAE9C;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAE9B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAElC;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IAEzB;;;;OAIG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;;;;;;;;;;;;;;OAeG;IACH,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAEnC;;;;OAIG;IACH,eAAe,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACxC,2FAA2F;IAC3F,aAAa,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC5C,yFAAyF;IACzF,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,WAAW,CAAC,EAAE;QACZ;;;WAGG;QACH,OAAO,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB;;;WAGG;QACH,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;IAEF;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,oGAAoG;IACpG,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd;;;OAGG;IACH,MAAM,CAAC,EAAE;QACP;;;WAGG;QACH,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IAEF;;;OAGG;IACH,QAAQ,CAAC,EAAE;QACT;;;;WAIG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;KACtC,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,kDAAkD;IAClD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4BAA4B;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,iBAAiB,CAAC,EAAE,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC;CAC9E"}
|
|
@@ -4,6 +4,9 @@ import { DataMeta } from "../interfaces/datamodel.interface";
|
|
|
4
4
|
*
|
|
5
5
|
* @param meta - The entity metadata (provides labelName for audit)
|
|
6
6
|
* @param id - The route param name to extract the entity ID (e.g., "cullId", "rollId")
|
|
7
|
+
*
|
|
8
|
+
* The handler MUST declare `@Req()`: the id is read from the request. A handler without it fails
|
|
9
|
+
* when the class is defined.
|
|
7
10
|
*/
|
|
8
11
|
export declare function Audit(meta: DataMeta, id: string): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
9
12
|
//# sourceMappingURL=audit.decorator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.decorator.d.ts","sourceRoot":"","sources":["../../../src/common/decorators/audit.decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"audit.decorator.d.ts","sourceRoot":"","sources":["../../../src/common/decorators/audit.decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAK7D;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,IAC7B,QAAQ,GAAG,EAAE,aAAa,MAAM,EAAE,YAAY,kBAAkB,wBA0ClF"}
|
|
@@ -2,20 +2,32 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Audit = Audit;
|
|
4
4
|
const common_1 = require("@nestjs/common");
|
|
5
|
+
const handler_wrapper_1 = require("./handler-wrapper");
|
|
5
6
|
const logger = new common_1.Logger("Audit");
|
|
6
7
|
/**
|
|
7
8
|
* Decorator that automatically logs a read audit entry after the method executes.
|
|
8
9
|
*
|
|
9
10
|
* @param meta - The entity metadata (provides labelName for audit)
|
|
10
11
|
* @param id - The route param name to extract the entity ID (e.g., "cullId", "rollId")
|
|
12
|
+
*
|
|
13
|
+
* The handler MUST declare `@Req()`: the id is read from the request. A handler without it fails
|
|
14
|
+
* when the class is defined.
|
|
11
15
|
*/
|
|
12
16
|
function Audit(meta, id) {
|
|
13
17
|
return function (target, propertyKey, descriptor) {
|
|
18
|
+
// meta is not read here: a circular import can leave it undefined while the class is defined.
|
|
19
|
+
const handler = `@Audit(meta, "${id}") on ${target.constructor.name}.${propertyKey}`;
|
|
20
|
+
if (!(0, handler_wrapper_1.receivesRequest)(target, propertyKey)) {
|
|
21
|
+
throw new Error(`${handler} needs the request: add @Req() to its parameters`);
|
|
22
|
+
}
|
|
14
23
|
const originalMethod = descriptor.value;
|
|
15
24
|
descriptor.value = async function (...args) {
|
|
16
|
-
const result = await originalMethod.apply(this, args);
|
|
17
25
|
const req = args.find((arg) => arg?.params);
|
|
18
|
-
|
|
26
|
+
if (!req) {
|
|
27
|
+
throw new Error(`${handler} did not receive the request`);
|
|
28
|
+
}
|
|
29
|
+
const result = await originalMethod.apply(this, args);
|
|
30
|
+
const paramId = req.params[id];
|
|
19
31
|
if (paramId && this.auditService) {
|
|
20
32
|
// Fire-and-forget, but never unhandled: a rejected audit write must not crash the
|
|
21
33
|
// process (unhandled rejection) nor fail the request that already succeeded.
|
|
@@ -29,6 +41,7 @@ function Audit(meta, id) {
|
|
|
29
41
|
}
|
|
30
42
|
return result;
|
|
31
43
|
};
|
|
44
|
+
(0, handler_wrapper_1.copyMetadata)(originalMethod, descriptor.value);
|
|
32
45
|
return descriptor;
|
|
33
46
|
};
|
|
34
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.decorator.js","sourceRoot":"","sources":["../../../src/common/decorators/audit.decorator.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"audit.decorator.js","sourceRoot":"","sources":["../../../src/common/decorators/audit.decorator.ts"],"names":[],"mappings":";;AAeA,sBA2CC;AA1DD,2CAAwC;AAExC,uDAAkE;AAElE,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,OAAO,CAAC,CAAC;AAEnC;;;;;;;;GAQG;AACH,SAAgB,KAAK,CAAC,IAAc,EAAE,EAAU;IAC9C,OAAO,UAAU,MAAW,EAAE,WAAmB,EAAE,UAA8B;QAC/E,8FAA8F;QAC9F,MAAM,OAAO,GAAG,iBAAiB,EAAE,SAAS,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC;QACrF,IAAI,CAAC,IAAA,iCAAe,EAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,kDAAkD,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QACxC,UAAU,CAAC,KAAK,GAAG,KAAK,WAAW,GAAG,IAAW;YAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,8BAA8B,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAEtD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAE/B,IAAI,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACjC,kFAAkF;gBAClF,6EAA6E;gBAC7E,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;gBACvC,OAAO,CAAC,OAAO,EAAE;qBACd,IAAI,CAAC,GAAG,EAAE,CACT,YAAY,CAAC,OAAO,CAAC;oBACnB,UAAU,EAAE,IAAI,CAAC,SAAS;oBAC1B,QAAQ,EAAE,OAAiB;iBAC5B,CAAC,CACH;qBACA,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CACxB,MAAM,CAAC,KAAK,CACV,yBAAyB,IAAI,CAAC,SAAS,IAAI,OAAO,EAAE,EACpD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACrD,CACF,CAAC;YACN,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QACF,IAAA,8BAAY,EAAC,cAAc,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/C,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-invalidate.decorator.d.ts","sourceRoot":"","sources":["../../../src/common/decorators/cache-invalidate.decorator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cache-invalidate.decorator.d.ts","sourceRoot":"","sources":["../../../src/common/decorators/cache-invalidate.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAG7D;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,MAAM,IACxC,QAAQ,GAAG,EAAE,aAAa,MAAM,EAAE,YAAY,kBAAkB,wBAoClF"}
|
|
@@ -1,16 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CacheInvalidate = CacheInvalidate;
|
|
4
|
-
const
|
|
5
|
-
const route_paramtypes_enum_1 = require("@nestjs/common/enums/route-paramtypes.enum");
|
|
6
|
-
/**
|
|
7
|
-
* Nest passes the request to a handler only when one of its parameters is decorated with
|
|
8
|
-
* `@Req()`. TypeScript applies parameter decorators before method decorators, so the route-args
|
|
9
|
-
* metadata is already written when this runs.
|
|
10
|
-
*/
|
|
11
|
-
function receivesRequest(target, propertyKey) {
|
|
12
|
-
return Object.keys(Reflect.getMetadata(constants_1.ROUTE_ARGS_METADATA, target.constructor, propertyKey) ?? {}).some((key) => key.startsWith(`${route_paramtypes_enum_1.RouteParamtypes.REQUEST}:`));
|
|
13
|
-
}
|
|
4
|
+
const handler_wrapper_1 = require("./handler-wrapper");
|
|
14
5
|
/**
|
|
15
6
|
* Decorator that invalidates cache after the method executes.
|
|
16
7
|
*
|
|
@@ -24,7 +15,7 @@ function CacheInvalidate(meta, id) {
|
|
|
24
15
|
return function (target, propertyKey, descriptor) {
|
|
25
16
|
// meta is not read here: a circular import can leave it undefined while the class is defined.
|
|
26
17
|
const handler = `@CacheInvalidate(meta, "${id}") on ${target.constructor.name}.${propertyKey}`;
|
|
27
|
-
if (id && !receivesRequest(target, propertyKey)) {
|
|
18
|
+
if (id && !(0, handler_wrapper_1.receivesRequest)(target, propertyKey)) {
|
|
28
19
|
throw new Error(`${handler} needs the request: add @Req() to its parameters`);
|
|
29
20
|
}
|
|
30
21
|
const originalMethod = descriptor.value;
|
|
@@ -50,6 +41,7 @@ function CacheInvalidate(meta, id) {
|
|
|
50
41
|
}
|
|
51
42
|
return result;
|
|
52
43
|
};
|
|
44
|
+
(0, handler_wrapper_1.copyMetadata)(originalMethod, descriptor.value);
|
|
53
45
|
return descriptor;
|
|
54
46
|
};
|
|
55
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-invalidate.decorator.js","sourceRoot":"","sources":["../../../src/common/decorators/cache-invalidate.decorator.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"cache-invalidate.decorator.js","sourceRoot":"","sources":["../../../src/common/decorators/cache-invalidate.decorator.ts"],"names":[],"mappings":";;AAYA,0CAqCC;AAhDD,uDAAkE;AAElE;;;;;;;;GAQG;AACH,SAAgB,eAAe,CAAC,IAAc,EAAE,EAAW;IACzD,OAAO,UAAU,MAAW,EAAE,WAAmB,EAAE,UAA8B;QAC/E,8FAA8F;QAC9F,MAAM,OAAO,GAAG,2BAA2B,EAAE,SAAS,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/F,IAAI,EAAE,IAAI,CAAC,IAAA,iCAAe,EAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,kDAAkD,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QACxC,UAAU,CAAC,KAAK,GAAG,KAAK,WAAW,GAAG,IAAW;YAC/C,yFAAyF;YACzF,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7D,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,8BAA8B,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAEtD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,IAAI,CAAC,EAAE,EAAE,CAAC;oBACR,mCAAmC;oBACnC,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC1D,CAAC;qBAAM,CAAC;oBACN,kDAAkD;oBAClD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAE/B,IAAI,OAAO,EAAE,CAAC;wBACZ,MAAM,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAiB,CAAC,CAAC;oBAChF,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QACF,IAAA,8BAAY,EAAC,cAAc,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/C,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Nest passes the request to a handler only when one of its parameters is decorated with
|
|
3
|
+
* `@Req()`. TypeScript applies parameter decorators before method decorators, so the route-args
|
|
4
|
+
* metadata is already written when this runs.
|
|
5
|
+
*/
|
|
6
|
+
export declare function receivesRequest(target: any, propertyKey: string): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Method decorators listed below a wrapper (`@Get`, `@Roles`, ...) run first and write their
|
|
9
|
+
* metadata on the original function. Copy it onto the wrapper that replaces it, or Nest never
|
|
10
|
+
* sees the route.
|
|
11
|
+
*/
|
|
12
|
+
export declare function copyMetadata(original: object, wrapper: object): void;
|
|
13
|
+
//# sourceMappingURL=handler-wrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler-wrapper.d.ts","sourceRoot":"","sources":["../../../src/common/decorators/handler-wrapper.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAIzE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAIpE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.receivesRequest = receivesRequest;
|
|
4
|
+
exports.copyMetadata = copyMetadata;
|
|
5
|
+
const constants_1 = require("@nestjs/common/constants");
|
|
6
|
+
const route_paramtypes_enum_1 = require("@nestjs/common/enums/route-paramtypes.enum");
|
|
7
|
+
/**
|
|
8
|
+
* Nest passes the request to a handler only when one of its parameters is decorated with
|
|
9
|
+
* `@Req()`. TypeScript applies parameter decorators before method decorators, so the route-args
|
|
10
|
+
* metadata is already written when this runs.
|
|
11
|
+
*/
|
|
12
|
+
function receivesRequest(target, propertyKey) {
|
|
13
|
+
return Object.keys(Reflect.getMetadata(constants_1.ROUTE_ARGS_METADATA, target.constructor, propertyKey) ?? {}).some((key) => key.startsWith(`${route_paramtypes_enum_1.RouteParamtypes.REQUEST}:`));
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Method decorators listed below a wrapper (`@Get`, `@Roles`, ...) run first and write their
|
|
17
|
+
* metadata on the original function. Copy it onto the wrapper that replaces it, or Nest never
|
|
18
|
+
* sees the route.
|
|
19
|
+
*/
|
|
20
|
+
function copyMetadata(original, wrapper) {
|
|
21
|
+
for (const key of Reflect.getOwnMetadataKeys(original)) {
|
|
22
|
+
Reflect.defineMetadata(key, Reflect.getOwnMetadata(key, original), wrapper);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=handler-wrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler-wrapper.js","sourceRoot":"","sources":["../../../src/common/decorators/handler-wrapper.ts"],"names":[],"mappings":";;AAQA,0CAIC;AAOD,oCAIC;AAvBD,wDAA+D;AAC/D,sFAA6E;AAE7E;;;;GAIG;AACH,SAAgB,eAAe,CAAC,MAAW,EAAE,WAAmB;IAC9D,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,+BAAmB,EAAE,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAC/G,GAAG,CAAC,UAAU,CAAC,GAAG,uCAAe,CAAC,OAAO,GAAG,CAAC,CAC9C,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,YAAY,CAAC,QAAgB,EAAE,OAAe;IAC5D,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-id.decorator.d.ts","sourceRoot":"","sources":["../../../src/common/decorators/validate-id.decorator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validate-id.decorator.d.ts","sourceRoot":"","sources":["../../../src/common/decorators/validate-id.decorator.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,SAAY,IAC/C,QAAQ,GAAG,EAAE,aAAa,MAAM,EAAE,YAAY,kBAAkB,wBA+BlF"}
|
|
@@ -2,16 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ValidateId = ValidateId;
|
|
4
4
|
const common_1 = require("@nestjs/common");
|
|
5
|
-
const
|
|
6
|
-
const route_paramtypes_enum_1 = require("@nestjs/common/enums/route-paramtypes.enum");
|
|
7
|
-
/**
|
|
8
|
-
* Nest passes the request to a handler only when one of its parameters is decorated with
|
|
9
|
-
* `@Req()`. TypeScript applies parameter decorators before method decorators, so the route-args
|
|
10
|
-
* metadata is already written when this runs.
|
|
11
|
-
*/
|
|
12
|
-
function receivesRequest(target, propertyKey) {
|
|
13
|
-
return Object.keys(Reflect.getMetadata(constants_1.ROUTE_ARGS_METADATA, target.constructor, propertyKey) ?? {}).some((key) => key.startsWith(`${route_paramtypes_enum_1.RouteParamtypes.REQUEST}:`));
|
|
14
|
-
}
|
|
5
|
+
const handler_wrapper_1 = require("./handler-wrapper");
|
|
15
6
|
/**
|
|
16
7
|
* Validates that the URL param ID matches the body ID.
|
|
17
8
|
* Eliminates the repeated `if (id !== body.data.id)` check found in 28 places.
|
|
@@ -35,7 +26,7 @@ function receivesRequest(target, propertyKey) {
|
|
|
35
26
|
function ValidateId(paramName, bodyPath = "data.id") {
|
|
36
27
|
return function (target, propertyKey, descriptor) {
|
|
37
28
|
const handler = `@ValidateId("${paramName}") on ${target.constructor.name}.${propertyKey}`;
|
|
38
|
-
if (!receivesRequest(target, propertyKey)) {
|
|
29
|
+
if (!(0, handler_wrapper_1.receivesRequest)(target, propertyKey)) {
|
|
39
30
|
throw new Error(`${handler} needs the request: add @Req() to its parameters`);
|
|
40
31
|
}
|
|
41
32
|
const originalMethod = descriptor.value;
|
|
@@ -56,6 +47,7 @@ function ValidateId(paramName, bodyPath = "data.id") {
|
|
|
56
47
|
}
|
|
57
48
|
return originalMethod.apply(this, args);
|
|
58
49
|
};
|
|
50
|
+
(0, handler_wrapper_1.copyMetadata)(originalMethod, descriptor.value);
|
|
59
51
|
return descriptor;
|
|
60
52
|
};
|
|
61
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-id.decorator.js","sourceRoot":"","sources":["../../../src/common/decorators/validate-id.decorator.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"validate-id.decorator.js","sourceRoot":"","sources":["../../../src/common/decorators/validate-id.decorator.ts"],"names":[],"mappings":";;AAuBA,gCAgCC;AAvDD,2CAA6D;AAC7D,uDAAkE;AAElE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,UAAU,CAAC,SAAiB,EAAE,QAAQ,GAAG,SAAS;IAChE,OAAO,UAAU,MAAW,EAAE,WAAmB,EAAE,UAA8B;QAC/E,MAAM,OAAO,GAAG,gBAAgB,SAAS,SAAS,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC;QAC3F,IAAI,CAAC,IAAA,iCAAe,EAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,kDAAkD,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QACxC,UAAU,CAAC,KAAK,GAAG,KAAK,WAAW,GAAG,IAAW;YAC/C,gDAAgD;YAChD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,8BAA8B,CAAC,CAAC;YAC5D,CAAC;YACD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAEtC,+DAA+D;YAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC;YAEzD,6CAA6C;YAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;YAE1E,6DAA6D;YAC7D,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;gBAC5C,MAAM,IAAI,oCAA2B,CAAC,qCAAqC,CAAC,CAAC;YAC/E,CAAC;YAED,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC,CAAC;QACF,IAAA,8BAAY,EAAC,cAAc,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/C,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Your card expires before your next payment</title>
|
|
7
|
+
</head>
|
|
8
|
+
<body style="margin: 0; padding: 0; background-color: #ffffff; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">
|
|
9
|
+
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="max-width: 600px; margin: 0 auto;">
|
|
10
|
+
<tr><td>{{> header}}</td></tr>
|
|
11
|
+
<tr>
|
|
12
|
+
<td style="padding: 32px;">
|
|
13
|
+
<h1 style="color: #1a1a1a; font-size: 24px; font-weight: 600; margin: 0 0 24px 0; line-height: 1.3;">Your card expires before your next payment</h1>
|
|
14
|
+
<p style="color: #333333; font-size: 16px; line-height: 1.6; margin: 0 0 16px 0;">Hi {{customerName}},</p>
|
|
15
|
+
<p style="color: #333333; font-size: 16px; line-height: 1.6; margin: 0 0 24px 0;">Your subscription renews on <strong>{{renewalDate}}</strong>, but the {{cardBrand}} card ending in <strong>{{cardLast4}}</strong> expires before then.</p>
|
|
16
|
+
<p style="color: #333333; font-size: 16px; line-height: 1.6; margin: 0 0 24px 0;">Add a new card before that date and the renewal goes through as usual.</p>
|
|
17
|
+
{{#if updatePaymentUrl}}
|
|
18
|
+
<div style="text-align: center; margin: 32px 0 16px 0;">
|
|
19
|
+
<a href="{{updatePaymentUrl}}" style="display: inline-block; background: #1a1a1a; color: #ffffff; padding: 14px 28px; text-decoration: none; border-radius: 4px; font-weight: 600; font-size: 16px;">Update your card</a>
|
|
20
|
+
</div>
|
|
21
|
+
{{/if}}
|
|
22
|
+
<p style="color: #999999; font-size: 14px; line-height: 1.5; margin: 24px 0 0 0;">Already updated it? Then you can ignore this email.</p>
|
|
23
|
+
</td>
|
|
24
|
+
</tr>
|
|
25
|
+
<tr><td>{{> footer}}</td></tr>
|
|
26
|
+
</table>
|
|
27
|
+
</body>
|
|
28
|
+
</html>
|
|
@@ -20,12 +20,16 @@
|
|
|
20
20
|
{{#if errorMessage}}<p style="margin: 0; font-size: 14px; color: #ef4444;"><strong>Error:</strong> {{errorMessage}}</p>{{/if}}
|
|
21
21
|
</div>
|
|
22
22
|
{{/if}}
|
|
23
|
+
{{#if keepsAccess}}
|
|
24
|
+
<p style="color: #333333; font-size: 16px; line-height: 1.6; margin: 0 0 24px 0;">Nothing has stopped: everything keeps working while we retry. Update your card so it doesn't run out.</p>
|
|
25
|
+
{{else}}
|
|
23
26
|
<p style="color: #333333; font-size: 16px; line-height: 1.6; margin: 0 0 16px 0;"><strong>What you need to do:</strong></p>
|
|
24
27
|
<ul style="color: #333333; font-size: 16px; line-height: 1.8; margin: 0 0 24px 0; padding-left: 24px;">
|
|
25
28
|
<li>Verify your payment method is up to date</li>
|
|
26
29
|
<li>Ensure sufficient funds are available</li>
|
|
27
30
|
<li>Update your payment information if needed</li>
|
|
28
31
|
</ul>
|
|
32
|
+
{{/if}}
|
|
29
33
|
{{#if invoiceUrl}}
|
|
30
34
|
<div style="text-align: center; margin: 32px 0 16px 0;">
|
|
31
35
|
<a href="{{invoiceUrl}}" style="display: inline-block; background: #1a1a1a; color: #ffffff; padding: 14px 28px; text-decoration: none; border-radius: 4px; font-weight: 600; font-size: 16px;">View Invoice</a>
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { FastifyReply } from "fastify";
|
|
2
|
+
import { AuthenticatedRequest } from "../../../common/interfaces/authenticated.request.interface";
|
|
2
3
|
import { CacheService } from "../../../core/cache/services/cache.service";
|
|
3
4
|
import { AuditService } from "../../audit/services/audit.service";
|
|
4
5
|
import { AiConnectionPostDTO } from "../dtos/ai-connection.post.dto";
|
|
@@ -23,7 +24,7 @@ export declare class AiConnectionController {
|
|
|
23
24
|
private readonly auditService;
|
|
24
25
|
constructor(aiConnectionService: AiConnectionService, cacheService: CacheService, auditService: AuditService);
|
|
25
26
|
findAll(reply: FastifyReply, query: any): Promise<void>;
|
|
26
|
-
findById(reply: FastifyReply, id: string): Promise<void>;
|
|
27
|
+
findById(_req: AuthenticatedRequest, reply: FastifyReply, id: string): Promise<void>;
|
|
27
28
|
reorder(reply: FastifyReply, body: AiConnectionReorderDTO): Promise<void>;
|
|
28
29
|
create(reply: FastifyReply, body: AiConnectionPostDTO): Promise<void>;
|
|
29
30
|
update(reply: FastifyReply, id: string, body: AiConnectionPutDTO): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-connection.controller.d.ts","sourceRoot":"","sources":["../../../../src/foundations/ai-connection/controllers/ai-connection.controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ai-connection.controller.d.ts","sourceRoot":"","sources":["../../../../src/foundations/ai-connection/controllers/ai-connection.controller.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAKvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4DAA4D,CAAC;AAElG,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAE3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAIxE;;;;;;;;;;;GAWG;AACH,qBAEa,sBAAsB;IAE/B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAGpC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAJZ,mBAAmB,EAAE,mBAAmB,EAGxC,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY;IAMvC,OAAO,CAAQ,KAAK,EAAE,YAAY,EAAW,KAAK,EAAE,GAAG;IASvD,QAAQ,CAEL,IAAI,EAAE,oBAAoB,EAC1B,KAAK,EAAE,YAAY,EACb,EAAE,EAAE,MAAM;IAiBnB,OAAO,CAAQ,KAAK,EAAE,YAAY,EAAU,IAAI,EAAE,sBAAsB;IAUxE,MAAM,CAAQ,KAAK,EAAE,YAAY,EAAU,IAAI,EAAE,mBAAmB;IASpE,MAAM,CAAQ,KAAK,EAAE,YAAY,EAAe,EAAE,EAAE,MAAM,EAAU,IAAI,EAAE,kBAAkB;IAgB5F,MAAM,CAAQ,KAAK,EAAE,YAAY,EAAe,EAAE,EAAE,MAAM;CAKjE"}
|
|
@@ -53,7 +53,7 @@ let AiConnectionController = class AiConnectionController {
|
|
|
53
53
|
const response = await this.aiConnectionService.findAllWithMeta({ query });
|
|
54
54
|
reply.send(response);
|
|
55
55
|
}
|
|
56
|
-
async findById(reply, id) {
|
|
56
|
+
async findById(_req, reply, id) {
|
|
57
57
|
const response = await this.aiConnectionService.findById({ id });
|
|
58
58
|
reply.send(response);
|
|
59
59
|
}
|
|
@@ -102,10 +102,11 @@ __decorate([
|
|
|
102
102
|
(0, common_1.UseGuards)(guards_1.JwtAuthGuard),
|
|
103
103
|
(0, decorators_1.Roles)(system_roles_1.RoleId.Administrator),
|
|
104
104
|
(0, audit_decorator_1.Audit)(ai_connection_meta_1.aiConnectionMeta, "id"),
|
|
105
|
-
__param(0, (0, common_1.
|
|
106
|
-
__param(1, (0, common_1.
|
|
105
|
+
__param(0, (0, common_1.Req)()),
|
|
106
|
+
__param(1, (0, common_1.Res)()),
|
|
107
|
+
__param(2, (0, common_1.Param)("id")),
|
|
107
108
|
__metadata("design:type", Function),
|
|
108
|
-
__metadata("design:paramtypes", [Object, String]),
|
|
109
|
+
__metadata("design:paramtypes", [Object, Object, String]),
|
|
109
110
|
__metadata("design:returntype", Promise)
|
|
110
111
|
], AiConnectionController.prototype, "findById", null);
|
|
111
112
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-connection.controller.js","sourceRoot":"","sources":["../../../../src/foundations/ai-connection/controllers/ai-connection.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"ai-connection.controller.js","sourceRoot":"","sources":["../../../../src/foundations/ai-connection/controllers/ai-connection.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { FastifyReply } from "fastify";
|
|
2
|
+
import { AuthenticatedRequest } from "../../../common/interfaces/authenticated.request.interface";
|
|
2
3
|
import { AuditService } from "../../audit/services/audit.service";
|
|
3
4
|
import { AnalyticsAdminService } from "../services/analytics.admin.service";
|
|
4
5
|
/**
|
|
@@ -24,7 +25,7 @@ export declare class AnalyticsAdminController {
|
|
|
24
25
|
getTimeline(reply: FastifyReply, from?: string, to?: string, section?: string, granularity?: string): Promise<void>;
|
|
25
26
|
getBreakdown(reply: FastifyReply, from?: string, to?: string, section?: string, dimension?: string, limit?: string): Promise<void>;
|
|
26
27
|
getSessions(reply: FastifyReply, query: any, from?: string, to?: string, section?: string, visitorId?: string, userId?: string): Promise<void>;
|
|
27
|
-
getSession(reply: FastifyReply, sessionId: string): Promise<void>;
|
|
28
|
+
getSession(_req: AuthenticatedRequest, reply: FastifyReply, sessionId: string): Promise<void>;
|
|
28
29
|
getSessionPageViews(reply: FastifyReply, sessionId: string): Promise<void>;
|
|
29
30
|
private _oneOf;
|
|
30
31
|
private _range;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.admin.controller.d.ts","sourceRoot":"","sources":["../../../../src/foundations/analytics/controllers/analytics.admin.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"analytics.admin.controller.d.ts","sourceRoot":"","sources":["../../../../src/foundations/analytics/controllers/analytics.admin.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAKvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4DAA4D,CAAC;AAElG,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAOlE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAU5E;;;;;;;;;;;;;GAaG;AACH,qBAGa,wBAAwB;IAIjC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAJ/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0C;gBAG5C,OAAO,EAAE,qBAAqB,EAC9B,YAAY,EAAE,YAAY;IAKvC,UAAU,CACP,KAAK,EAAE,YAAY,EACX,IAAI,CAAC,EAAE,MAAM,EACf,EAAE,CAAC,EAAE,MAAM,EACN,OAAO,CAAC,EAAE,MAAM;IAa9B,WAAW,CACR,KAAK,EAAE,YAAY,EACX,IAAI,CAAC,EAAE,MAAM,EACf,EAAE,CAAC,EAAE,MAAM,EACN,OAAO,CAAC,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM;IActC,YAAY,CACT,KAAK,EAAE,YAAY,EACX,IAAI,CAAC,EAAE,MAAM,EACf,EAAE,CAAC,EAAE,MAAM,EACN,OAAO,CAAC,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EACtB,KAAK,CAAC,EAAE,MAAM;IAmB1B,WAAW,CACR,KAAK,EAAE,YAAY,EACjB,KAAK,EAAE,GAAG,EACJ,IAAI,CAAC,EAAE,MAAM,EACf,EAAE,CAAC,EAAE,MAAM,EACN,OAAO,CAAC,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,MAAM;IAmB5B,UAAU,CAEP,IAAI,EAAE,oBAAoB,EAC1B,KAAK,EAAE,YAAY,EACN,SAAS,EAAE,MAAM;IAOjC,mBAAmB,CAAQ,KAAK,EAAE,YAAY,EAAsB,SAAS,EAAE,MAAM;IAI3F,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,MAAM;CAcf"}
|
|
@@ -93,7 +93,7 @@ let AnalyticsAdminController = class AnalyticsAdminController {
|
|
|
93
93
|
}
|
|
94
94
|
// The inherited AbstractService.findById builds the single JSON:API document,
|
|
95
95
|
// with the optional `user` relationship included from the descriptor.
|
|
96
|
-
async getSession(reply, sessionId) {
|
|
96
|
+
async getSession(_req, reply, sessionId) {
|
|
97
97
|
return this.crud.findById(reply, sessionId);
|
|
98
98
|
}
|
|
99
99
|
async getSessionPageViews(reply, sessionId) {
|
|
@@ -175,10 +175,11 @@ __decorate([
|
|
|
175
175
|
(0, common_1.Get)(`${analytics_session_meta_1.analyticsSessionMeta.endpoint}/:sessionId`),
|
|
176
176
|
(0, roles_decorator_1.Roles)(system_roles_1.SystemRoles.Administrator),
|
|
177
177
|
(0, audit_decorator_1.Audit)(analytics_session_meta_1.analyticsSessionMeta, "sessionId"),
|
|
178
|
-
__param(0, (0, common_1.
|
|
179
|
-
__param(1, (0, common_1.
|
|
178
|
+
__param(0, (0, common_1.Req)()),
|
|
179
|
+
__param(1, (0, common_1.Res)()),
|
|
180
|
+
__param(2, (0, common_1.Param)("sessionId")),
|
|
180
181
|
__metadata("design:type", Function),
|
|
181
|
-
__metadata("design:paramtypes", [Object, String]),
|
|
182
|
+
__metadata("design:paramtypes", [Object, Object, String]),
|
|
182
183
|
__metadata("design:returntype", Promise)
|
|
183
184
|
], AnalyticsAdminController.prototype, "getSession", null);
|
|
184
185
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.admin.controller.js","sourceRoot":"","sources":["../../../../src/foundations/analytics/controllers/analytics.admin.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"analytics.admin.controller.js","sourceRoot":"","sources":["../../../../src/foundations/analytics/controllers/analytics.admin.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAyG;AAEzG,yEAAqE;AACrE,gFAAmE;AACnE,0EAA4E;AAC5E,gFAAmE;AAEnE,0EAAqE;AACrE,sEAAkE;AAClE,mFAA8E;AAC9E,mFAA6E;AAC7E,+EAA0E;AAC1E,+EAA0E;AAC1E,iFAA4E;AAC5E,2FAAiG;AACjG,iFAA4E;AAC5E,kFAAwE;AACxE,+EAAyE;AAEzE,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAC/B,MAAM,eAAe,GAAG,GAAG,CAAC;AAC5B,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAChC,MAAM,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEvC;;;;;;;;;;;;;GAaG;AAII,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAGnC,YACmB,OAA8B,EAC9B,YAA0B;QAD1B,YAAO,GAAP,OAAO,CAAuB;QAC9B,iBAAY,GAAZ,YAAY,CAAc;QAJ5B,SAAI,GAAG,IAAA,kCAAkB,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAK5D,CAAC;IAIE,AAAN,KAAK,CAAC,UAAU,CACP,KAAmB,EACX,IAAa,EACf,EAAW,EACN,OAAgB;QAElC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpC,KAAK,CAAC,IAAI,CACR,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;YAC5B,GAAG,KAAK;YACR,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,qCAAQ,EAAE,KAAK,CAAC;SAC/C,CAAC,CACH,CAAC;IACJ,CAAC;IAIK,AAAN,KAAK,CAAC,WAAW,CACR,KAAmB,EACX,IAAa,EACf,EAAW,EACN,OAAgB,EACZ,WAAoB;QAE1C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpC,KAAK,CAAC,IAAI,CACR,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YAC7B,GAAG,KAAK;YACR,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,qCAAQ,EAAE,KAAK,CAAC;YAC9C,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,0CAAa,EAAE,KAAK,CAAC;SAC5D,CAAC,CACH,CAAC;IACJ,CAAC;IAIK,AAAN,KAAK,CAAC,YAAY,CACT,KAAmB,EACX,IAAa,EACf,EAAW,EACN,OAAgB,EACd,SAAkB,EACtB,KAAc;QAE9B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpC,MAAM,WAAW,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClF,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,GAAG,mBAAmB;YACxF,MAAM,IAAI,4BAAmB,CAAC,0CAA0C,mBAAmB,EAAE,CAAC,CAAC;QAEjG,KAAK,CAAC,IAAI,CACR,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YAC9B,GAAG,KAAK;YACR,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,qCAAQ,EAAE,KAAK,CAAC;YAC9C,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,uCAAU,EAAE,QAAQ,CAAC;YACvD,KAAK,EAAE,WAAW;SACnB,CAAC,CACH,CAAC;IACJ,CAAC;IAIK,AAAN,KAAK,CAAC,WAAW,CACR,KAAmB,EACjB,KAAU,EACJ,IAAa,EACf,EAAW,EACN,OAAgB,EACd,SAAkB,EACrB,MAAe;QAEhC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpC,KAAK,CAAC,IAAI,CACR,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YAC7B,KAAK;YACL,GAAG,KAAK;YACR,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,qCAAQ,EAAE,KAAK,CAAC;YAC9C,SAAS;YACT,MAAM;SACP,CAAC,CACH,CAAC;IACJ,CAAC;IAED,8EAA8E;IAC9E,sEAAsE;IAIhE,AAAN,KAAK,CAAC,UAAU,CAEP,IAA0B,EAC1B,KAAmB,EACN,SAAiB;QAErC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC9C,CAAC;IAIK,AAAN,KAAK,CAAC,mBAAmB,CAAQ,KAAmB,EAAsB,SAAiB;QACzF,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC;IAEO,MAAM,CAA8B,KAAyB,EAAE,OAAU,EAAE,QAAmB;QACpG,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC1B,MAAM,IAAI,4BAAmB,CAAC,mBAAmB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,KAAK,GAAG,CAAC,CAAC;QAC9F,OAAO,KAAkB,CAAC;IAC5B,CAAC;IAEO,MAAM,CAAC,IAAa,EAAE,EAAW;QACvC,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QAC9C,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAAE,MAAM,IAAI,4BAAmB,CAAC,0BAA0B,CAAC,CAAC;QAE9F,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,mBAAmB,GAAG,UAAU,CAAC,CAAC;QACvG,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YAAE,MAAM,IAAI,4BAAmB,CAAC,4BAA4B,CAAC,CAAC;QAElG,IAAI,QAAQ,GAAG,MAAM;YAAE,MAAM,IAAI,4BAAmB,CAAC,oCAAoC,CAAC,CAAC;QAE3F,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,eAAe,GAAG,UAAU;YACtE,MAAM,IAAI,4BAAmB,CAAC,6BAA6B,eAAe,OAAO,CAAC,CAAC;QAErF,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;IACpE,CAAC;CACF,CAAA;AArIY,4DAAwB;AAU7B;IAFL,IAAA,YAAG,EAAC,6CAAoB,CAAC,QAAQ,CAAC;IAClC,IAAA,uBAAK,EAAC,0BAAW,CAAC,aAAa,CAAC;IAE9B,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,cAAK,EAAC,MAAM,CAAC,CAAA;IACb,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IACX,WAAA,IAAA,cAAK,EAAC,SAAS,CAAC,CAAA;;;;0DASlB;AAIK;IAFL,IAAA,YAAG,EAAC,+CAAqB,CAAC,QAAQ,CAAC;IACnC,IAAA,uBAAK,EAAC,0BAAW,CAAC,aAAa,CAAC;IAE9B,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,cAAK,EAAC,MAAM,CAAC,CAAA;IACb,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IACX,WAAA,IAAA,cAAK,EAAC,SAAS,CAAC,CAAA;IAChB,WAAA,IAAA,cAAK,EAAC,aAAa,CAAC,CAAA;;;;2DAUtB;AAIK;IAFL,IAAA,YAAG,EAAC,iDAAsB,CAAC,QAAQ,CAAC;IACpC,IAAA,uBAAK,EAAC,0BAAW,CAAC,aAAa,CAAC;IAE9B,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,cAAK,EAAC,MAAM,CAAC,CAAA;IACb,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IACX,WAAA,IAAA,cAAK,EAAC,SAAS,CAAC,CAAA;IAChB,WAAA,IAAA,cAAK,EAAC,WAAW,CAAC,CAAA;IAClB,WAAA,IAAA,cAAK,EAAC,OAAO,CAAC,CAAA;;;;4DAehB;AAIK;IAFL,IAAA,YAAG,EAAC,6CAAoB,CAAC,QAAQ,CAAC;IAClC,IAAA,uBAAK,EAAC,0BAAW,CAAC,aAAa,CAAC;IAE9B,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,cAAK,GAAE,CAAA;IACP,WAAA,IAAA,cAAK,EAAC,MAAM,CAAC,CAAA;IACb,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IACX,WAAA,IAAA,cAAK,EAAC,SAAS,CAAC,CAAA;IAChB,WAAA,IAAA,cAAK,EAAC,WAAW,CAAC,CAAA;IAClB,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;;;;2DAYjB;AAOK;IAHL,IAAA,YAAG,EAAC,GAAG,6CAAoB,CAAC,QAAQ,aAAa,CAAC;IAClD,IAAA,uBAAK,EAAC,0BAAW,CAAC,aAAa,CAAC;IAChC,IAAA,uBAAK,EAAC,6CAAoB,EAAE,WAAW,CAAC;IAGtC,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,cAAK,EAAC,WAAW,CAAC,CAAA;;;;0DAGpB;AAIK;IAFL,IAAA,YAAG,EAAC,GAAG,6CAAoB,CAAC,QAAQ,eAAe,gDAAqB,CAAC,QAAQ,EAAE,CAAC;IACpF,IAAA,uBAAK,EAAC,0BAAW,CAAC,aAAa,CAAC;IACN,WAAA,IAAA,YAAG,GAAE,CAAA;IAAuB,WAAA,IAAA,cAAK,EAAC,WAAW,CAAC,CAAA;;;;mEAExE;mCA9GU,wBAAwB;IAHpC,IAAA,kBAAS,EAAC,6BAAY,CAAC;IACvB,IAAA,4BAAS,EAAC,EAAE,MAAM,EAAE,8BAAY,CAAC,SAAS,EAAE,CAAC;IAC7C,IAAA,mBAAU,GAAE;qCAKiB,+CAAqB;QAChB,4BAAY;GALlC,wBAAwB,CAqIpC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { DynamicModule } from "@nestjs/common";
|
|
2
|
+
import { BillingModuleConfig } from "./interfaces/billing.config.interface";
|
|
3
|
+
/**
|
|
4
|
+
* BillingModule — per-app billing settings and billing housekeeping.
|
|
5
|
+
*
|
|
6
|
+
* - `BILLING_CONFIG` (global): the resolved settings every billing service reads
|
|
7
|
+
* - `BillingLifecycleCron` (worker only): hourly card-expiry check
|
|
8
|
+
* - `BillingEmailProcessor` (worker only, opt-in): the library billing email sender on `QueueId.EMAIL`
|
|
9
|
+
*
|
|
10
|
+
* Always mounted by `FoundationsModule`.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* // Through bootstrap, which forwards it to FoundationsModule
|
|
15
|
+
* bootstrap({ billing: { emailSender: { enabled: true } } })
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare class BillingModule {
|
|
19
|
+
/**
|
|
20
|
+
* Configure the BillingModule.
|
|
21
|
+
*
|
|
22
|
+
* @param config - Optional configuration merged key by key over DEFAULT_BILLING_CONFIG
|
|
23
|
+
*/
|
|
24
|
+
static forRoot(config?: BillingModuleConfig): DynamicModule;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=billing.module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing.module.d.ts","sourceRoot":"","sources":["../../../src/foundations/billing/billing.module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAoB,MAAM,gBAAgB,CAAC;AAQjE,OAAO,EAAkB,mBAAmB,EAAwB,MAAM,uCAAuC,CAAC;AAIlH;;;;;;;;;;;;;;GAcG;AACH,qBACa,aAAa;IACxB;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,aAAa;CA2B5D"}
|