@ambushsoftworks/nestjs-payments-graphql 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. package/dist/constants.d.ts +17 -0
  2. package/dist/constants.js +21 -0
  3. package/dist/constants.js.map +1 -0
  4. package/dist/dto/create-installment.input.d.ts +5 -0
  5. package/dist/dto/create-installment.input.js +39 -0
  6. package/dist/dto/create-installment.input.js.map +1 -0
  7. package/dist/dto/create-invoice.input.d.ts +13 -0
  8. package/dist/dto/create-invoice.input.js +95 -0
  9. package/dist/dto/create-invoice.input.js.map +1 -0
  10. package/dist/dto/create-line-item.input.d.ts +10 -0
  11. package/dist/dto/create-line-item.input.js +77 -0
  12. package/dist/dto/create-line-item.input.js.map +1 -0
  13. package/dist/dto/create-payment-plan.input.d.ts +11 -0
  14. package/dist/dto/create-payment-plan.input.js +76 -0
  15. package/dist/dto/create-payment-plan.input.js.map +1 -0
  16. package/dist/dto/create-recurring-invoice.input.d.ts +18 -0
  17. package/dist/dto/create-recurring-invoice.input.js +117 -0
  18. package/dist/dto/create-recurring-invoice.input.js.map +1 -0
  19. package/dist/dto/create-recurring-line-item.input.d.ts +10 -0
  20. package/dist/dto/create-recurring-line-item.input.js +77 -0
  21. package/dist/dto/create-recurring-line-item.input.js.map +1 -0
  22. package/dist/dto/create-refund.input.d.ts +5 -0
  23. package/dist/dto/create-refund.input.js +43 -0
  24. package/dist/dto/create-refund.input.js.map +1 -0
  25. package/dist/dto/index.d.ts +8 -0
  26. package/dist/dto/index.js +20 -0
  27. package/dist/dto/index.js.map +1 -0
  28. package/dist/dto/invoice-filter.input.d.ts +10 -0
  29. package/dist/dto/invoice-filter.input.js +64 -0
  30. package/dist/dto/invoice-filter.input.js.map +1 -0
  31. package/dist/dto/payment-plan-filter.input.d.ts +7 -0
  32. package/dist/dto/payment-plan-filter.input.js +46 -0
  33. package/dist/dto/payment-plan-filter.input.js.map +1 -0
  34. package/dist/dto/record-manual-payment.input.d.ts +9 -0
  35. package/dist/dto/record-manual-payment.input.js +58 -0
  36. package/dist/dto/record-manual-payment.input.js.map +1 -0
  37. package/dist/dto/recurring-invoice-filter.input.d.ts +7 -0
  38. package/dist/dto/recurring-invoice-filter.input.js +46 -0
  39. package/dist/dto/recurring-invoice-filter.input.js.map +1 -0
  40. package/dist/dto/update-invoice-metadata.input.d.ts +3 -0
  41. package/dist/dto/update-invoice-metadata.input.js +30 -0
  42. package/dist/dto/update-invoice-metadata.input.js.map +1 -0
  43. package/dist/dto/update-payment-config.input.d.ts +8 -0
  44. package/dist/dto/update-payment-config.input.js +61 -0
  45. package/dist/dto/update-payment-config.input.js.map +1 -0
  46. package/dist/dto/update-recurring-template.input.d.ts +12 -0
  47. package/dist/dto/update-recurring-template.input.js +89 -0
  48. package/dist/dto/update-recurring-template.input.js.map +1 -0
  49. package/dist/dto/upsert-payment-provider.input.d.ts +5 -0
  50. package/dist/dto/upsert-payment-provider.input.js +43 -0
  51. package/dist/dto/upsert-payment-provider.input.js.map +1 -0
  52. package/dist/dto/validators/is-metadata.d.ts +1 -0
  53. package/dist/dto/validators/is-metadata.js +41 -0
  54. package/dist/dto/validators/is-metadata.js.map +1 -0
  55. package/dist/exceptions/index.d.ts +34 -0
  56. package/dist/exceptions/index.js +73 -0
  57. package/dist/exceptions/index.js.map +1 -0
  58. package/dist/gateways/gateway-registry.service.d.ts +10 -0
  59. package/dist/gateways/gateway-registry.service.js +45 -0
  60. package/dist/gateways/gateway-registry.service.js.map +1 -0
  61. package/dist/gateways/payment-gateway.interface.d.ts +50 -0
  62. package/dist/gateways/payment-gateway.interface.js +3 -0
  63. package/dist/gateways/payment-gateway.interface.js.map +1 -0
  64. package/dist/gateways/recurring-payment-gateway.interface.d.ts +32 -0
  65. package/dist/gateways/recurring-payment-gateway.interface.js +3 -0
  66. package/dist/gateways/recurring-payment-gateway.interface.js.map +1 -0
  67. package/dist/gateways/stripe/stripe-webhook.controller.d.ts +24 -0
  68. package/dist/gateways/stripe/stripe-webhook.controller.js +150 -0
  69. package/dist/gateways/stripe/stripe-webhook.controller.js.map +1 -0
  70. package/dist/gateways/stripe/stripe.gateway.d.ts +84 -0
  71. package/dist/gateways/stripe/stripe.gateway.js +424 -0
  72. package/dist/gateways/stripe/stripe.gateway.js.map +1 -0
  73. package/dist/index.d.ts +70 -0
  74. package/dist/index.js +147 -0
  75. package/dist/index.js.map +1 -0
  76. package/dist/interfaces/invoice-repository.interface.d.ts +23 -0
  77. package/dist/interfaces/invoice-repository.interface.js +3 -0
  78. package/dist/interfaces/invoice-repository.interface.js.map +1 -0
  79. package/dist/interfaces/payment-config-repository.interface.d.ts +11 -0
  80. package/dist/interfaces/payment-config-repository.interface.js +3 -0
  81. package/dist/interfaces/payment-config-repository.interface.js.map +1 -0
  82. package/dist/interfaces/payment-customer-repository.interface.d.ts +6 -0
  83. package/dist/interfaces/payment-customer-repository.interface.js +3 -0
  84. package/dist/interfaces/payment-customer-repository.interface.js.map +1 -0
  85. package/dist/interfaces/payment-email.interfaces.d.ts +74 -0
  86. package/dist/interfaces/payment-email.interfaces.js +3 -0
  87. package/dist/interfaces/payment-email.interfaces.js.map +1 -0
  88. package/dist/interfaces/payment-event-listener.interface.d.ts +61 -0
  89. package/dist/interfaces/payment-event-listener.interface.js +3 -0
  90. package/dist/interfaces/payment-event-listener.interface.js.map +1 -0
  91. package/dist/interfaces/payment-plan-repository.interface.d.ts +16 -0
  92. package/dist/interfaces/payment-plan-repository.interface.js +3 -0
  93. package/dist/interfaces/payment-plan-repository.interface.js.map +1 -0
  94. package/dist/interfaces/payment-repository.interface.d.ts +13 -0
  95. package/dist/interfaces/payment-repository.interface.js +3 -0
  96. package/dist/interfaces/payment-repository.interface.js.map +1 -0
  97. package/dist/interfaces/recurring-invoice-repository.interface.d.ts +16 -0
  98. package/dist/interfaces/recurring-invoice-repository.interface.js +3 -0
  99. package/dist/interfaces/recurring-invoice-repository.interface.js.map +1 -0
  100. package/dist/interfaces/refund-repository.interface.d.ts +8 -0
  101. package/dist/interfaces/refund-repository.interface.js +3 -0
  102. package/dist/interfaces/refund-repository.interface.js.map +1 -0
  103. package/dist/interfaces/transaction-manager.interface.d.ts +19 -0
  104. package/dist/interfaces/transaction-manager.interface.js +3 -0
  105. package/dist/interfaces/transaction-manager.interface.js.map +1 -0
  106. package/dist/interfaces/webhook-idempotency-repository.interface.d.ts +5 -0
  107. package/dist/interfaces/webhook-idempotency-repository.interface.js +3 -0
  108. package/dist/interfaces/webhook-idempotency-repository.interface.js.map +1 -0
  109. package/dist/models/e-transfer-instructions.model.d.ts +11 -0
  110. package/dist/models/e-transfer-instructions.model.js +56 -0
  111. package/dist/models/e-transfer-instructions.model.js.map +1 -0
  112. package/dist/models/index.d.ts +13 -0
  113. package/dist/models/index.js +36 -0
  114. package/dist/models/index.js.map +1 -0
  115. package/dist/models/invoice-client.model.d.ts +5 -0
  116. package/dist/models/invoice-client.model.js +32 -0
  117. package/dist/models/invoice-client.model.js.map +1 -0
  118. package/dist/models/invoice-line-item.model.d.ts +14 -0
  119. package/dist/models/invoice-line-item.model.js +72 -0
  120. package/dist/models/invoice-line-item.model.js.map +1 -0
  121. package/dist/models/invoice.model.d.ts +86 -0
  122. package/dist/models/invoice.model.js +210 -0
  123. package/dist/models/invoice.model.js.map +1 -0
  124. package/dist/models/online-payment-session.model.d.ts +6 -0
  125. package/dist/models/online-payment-session.model.js +40 -0
  126. package/dist/models/online-payment-session.model.js.map +1 -0
  127. package/dist/models/paginated-invoices.model.d.ts +5 -0
  128. package/dist/models/paginated-invoices.model.js +19 -0
  129. package/dist/models/paginated-invoices.model.js.map +1 -0
  130. package/dist/models/paginated-payment-plans.model.d.ts +5 -0
  131. package/dist/models/paginated-payment-plans.model.js +19 -0
  132. package/dist/models/paginated-payment-plans.model.js.map +1 -0
  133. package/dist/models/paginated-recurring-invoices.model.d.ts +5 -0
  134. package/dist/models/paginated-recurring-invoices.model.js +19 -0
  135. package/dist/models/paginated-recurring-invoices.model.js.map +1 -0
  136. package/dist/models/paginated.model.d.ts +6 -0
  137. package/dist/models/paginated.model.js +30 -0
  138. package/dist/models/paginated.model.js.map +1 -0
  139. package/dist/models/payment-config.model.d.ts +21 -0
  140. package/dist/models/payment-config.model.js +98 -0
  141. package/dist/models/payment-config.model.js.map +1 -0
  142. package/dist/models/payment-method-setup.model.d.ts +4 -0
  143. package/dist/models/payment-method-setup.model.js +32 -0
  144. package/dist/models/payment-method-setup.model.js.map +1 -0
  145. package/dist/models/payment-plan-installment.model.d.ts +12 -0
  146. package/dist/models/payment-plan-installment.model.js +57 -0
  147. package/dist/models/payment-plan-installment.model.js.map +1 -0
  148. package/dist/models/payment-plan.model.d.ts +25 -0
  149. package/dist/models/payment-plan.model.js +105 -0
  150. package/dist/models/payment-plan.model.js.map +1 -0
  151. package/dist/models/payment.model.d.ts +23 -0
  152. package/dist/models/payment.model.js +102 -0
  153. package/dist/models/payment.model.js.map +1 -0
  154. package/dist/models/recurring-invoice-line-item.model.d.ts +14 -0
  155. package/dist/models/recurring-invoice-line-item.model.js +72 -0
  156. package/dist/models/recurring-invoice-line-item.model.js.map +1 -0
  157. package/dist/models/recurring-invoice.model.d.ts +43 -0
  158. package/dist/models/recurring-invoice.model.js +157 -0
  159. package/dist/models/recurring-invoice.model.js.map +1 -0
  160. package/dist/models/refund.model.d.ts +15 -0
  161. package/dist/models/refund.model.js +73 -0
  162. package/dist/models/refund.model.js.map +1 -0
  163. package/dist/payments.module.d.ts +54 -0
  164. package/dist/payments.module.js +211 -0
  165. package/dist/payments.module.js.map +1 -0
  166. package/dist/register-payment-enums.d.ts +1 -0
  167. package/dist/register-payment-enums.js +18 -0
  168. package/dist/register-payment-enums.js.map +1 -0
  169. package/dist/services/customer.service.d.ts +15 -0
  170. package/dist/services/customer.service.js +63 -0
  171. package/dist/services/customer.service.js.map +1 -0
  172. package/dist/services/default-payment-email-templates.d.ts +8 -0
  173. package/dist/services/default-payment-email-templates.js +249 -0
  174. package/dist/services/default-payment-email-templates.js.map +1 -0
  175. package/dist/services/e-transfer.service.d.ts +35 -0
  176. package/dist/services/e-transfer.service.js +93 -0
  177. package/dist/services/e-transfer.service.js.map +1 -0
  178. package/dist/services/invoice-number.service.d.ts +9 -0
  179. package/dist/services/invoice-number.service.js +56 -0
  180. package/dist/services/invoice-number.service.js.map +1 -0
  181. package/dist/services/invoice.service.d.ts +66 -0
  182. package/dist/services/invoice.service.js +293 -0
  183. package/dist/services/invoice.service.js.map +1 -0
  184. package/dist/services/payment-config.service.d.ts +26 -0
  185. package/dist/services/payment-config.service.js +90 -0
  186. package/dist/services/payment-config.service.js.map +1 -0
  187. package/dist/services/payment-email.service.d.ts +20 -0
  188. package/dist/services/payment-email.service.js +153 -0
  189. package/dist/services/payment-email.service.js.map +1 -0
  190. package/dist/services/payment-plan.service.d.ts +47 -0
  191. package/dist/services/payment-plan.service.js +264 -0
  192. package/dist/services/payment-plan.service.js.map +1 -0
  193. package/dist/services/payment.service.d.ts +65 -0
  194. package/dist/services/payment.service.js +532 -0
  195. package/dist/services/payment.service.js.map +1 -0
  196. package/dist/services/recurring-interval.util.d.ts +3 -0
  197. package/dist/services/recurring-interval.util.js +43 -0
  198. package/dist/services/recurring-interval.util.js.map +1 -0
  199. package/dist/services/recurring-invoice.service.d.ts +88 -0
  200. package/dist/services/recurring-invoice.service.js +450 -0
  201. package/dist/services/recurring-invoice.service.js.map +1 -0
  202. package/dist/services/refund.service.d.ts +44 -0
  203. package/dist/services/refund.service.js +373 -0
  204. package/dist/services/refund.service.js.map +1 -0
  205. package/dist/services/static-branding-resolver.d.ts +6 -0
  206. package/dist/services/static-branding-resolver.js +13 -0
  207. package/dist/services/static-branding-resolver.js.map +1 -0
  208. package/dist/types/index.d.ts +240 -0
  209. package/dist/types/index.js +19 -0
  210. package/dist/types/index.js.map +1 -0
  211. package/dist/types/payment-customer.types.d.ts +15 -0
  212. package/dist/types/payment-customer.types.js +3 -0
  213. package/dist/types/payment-customer.types.js.map +1 -0
  214. package/dist/types/recurring-invoice.types.d.ts +84 -0
  215. package/dist/types/recurring-invoice.types.js +3 -0
  216. package/dist/types/recurring-invoice.types.js.map +1 -0
  217. package/package.json +70 -0
@@ -0,0 +1,43 @@
1
+ import { RecurringInvoiceLineItemModel } from './recurring-invoice-line-item.model';
2
+ import { InvoiceClientModel } from './invoice-client.model';
3
+ export declare enum RecurringIntervalUnitEnum {
4
+ DAYS = "DAYS",
5
+ MONTHS = "MONTHS"
6
+ }
7
+ export declare enum RecurringInvoiceStatusEnum {
8
+ ACTIVE = "ACTIVE",
9
+ PAUSED = "PAUSED",
10
+ CANCELLED = "CANCELLED"
11
+ }
12
+ export declare class RecurringInvoiceModel {
13
+ id: string;
14
+ divisionId: string;
15
+ intervalUnit: string;
16
+ intervalValue: number;
17
+ anchorDate: Date;
18
+ nextInvoiceAt: Date;
19
+ lastGeneratedAt?: Date;
20
+ status: string;
21
+ autoSend: boolean;
22
+ clientDetailsId: string;
23
+ currency: string;
24
+ taxRate: number;
25
+ notes?: string;
26
+ clientNotes?: string;
27
+ referenceType?: string;
28
+ referenceId?: string;
29
+ autoCharge: boolean;
30
+ metadata?: Record<string, unknown>;
31
+ consecutiveFailures: number;
32
+ lastFailureReason?: string;
33
+ pausedAt?: Date;
34
+ pausedBy?: string;
35
+ cancelledAt?: Date;
36
+ cancelledBy?: string;
37
+ cancelReason?: string;
38
+ createdBy: string;
39
+ createdAt: Date;
40
+ updatedAt: Date;
41
+ templateLineItems: RecurringInvoiceLineItemModel[];
42
+ client?: InvoiceClientModel;
43
+ }
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.RecurringInvoiceModel = exports.RecurringInvoiceStatusEnum = exports.RecurringIntervalUnitEnum = void 0;
16
+ const graphql_1 = require("@nestjs/graphql");
17
+ const graphql_type_json_1 = __importDefault(require("graphql-type-json"));
18
+ const recurring_invoice_line_item_model_1 = require("./recurring-invoice-line-item.model");
19
+ const invoice_client_model_1 = require("./invoice-client.model");
20
+ var RecurringIntervalUnitEnum;
21
+ (function (RecurringIntervalUnitEnum) {
22
+ RecurringIntervalUnitEnum["DAYS"] = "DAYS";
23
+ RecurringIntervalUnitEnum["MONTHS"] = "MONTHS";
24
+ })(RecurringIntervalUnitEnum || (exports.RecurringIntervalUnitEnum = RecurringIntervalUnitEnum = {}));
25
+ var RecurringInvoiceStatusEnum;
26
+ (function (RecurringInvoiceStatusEnum) {
27
+ RecurringInvoiceStatusEnum["ACTIVE"] = "ACTIVE";
28
+ RecurringInvoiceStatusEnum["PAUSED"] = "PAUSED";
29
+ RecurringInvoiceStatusEnum["CANCELLED"] = "CANCELLED";
30
+ })(RecurringInvoiceStatusEnum || (exports.RecurringInvoiceStatusEnum = RecurringInvoiceStatusEnum = {}));
31
+ let RecurringInvoiceModel = class RecurringInvoiceModel {
32
+ };
33
+ exports.RecurringInvoiceModel = RecurringInvoiceModel;
34
+ __decorate([
35
+ (0, graphql_1.Field)(() => graphql_1.ID),
36
+ __metadata("design:type", String)
37
+ ], RecurringInvoiceModel.prototype, "id", void 0);
38
+ __decorate([
39
+ (0, graphql_1.Field)(),
40
+ __metadata("design:type", String)
41
+ ], RecurringInvoiceModel.prototype, "divisionId", void 0);
42
+ __decorate([
43
+ (0, graphql_1.Field)(() => RecurringIntervalUnitEnum),
44
+ __metadata("design:type", String)
45
+ ], RecurringInvoiceModel.prototype, "intervalUnit", void 0);
46
+ __decorate([
47
+ (0, graphql_1.Field)(() => graphql_1.Int),
48
+ __metadata("design:type", Number)
49
+ ], RecurringInvoiceModel.prototype, "intervalValue", void 0);
50
+ __decorate([
51
+ (0, graphql_1.Field)(),
52
+ __metadata("design:type", Date)
53
+ ], RecurringInvoiceModel.prototype, "anchorDate", void 0);
54
+ __decorate([
55
+ (0, graphql_1.Field)(),
56
+ __metadata("design:type", Date)
57
+ ], RecurringInvoiceModel.prototype, "nextInvoiceAt", void 0);
58
+ __decorate([
59
+ (0, graphql_1.Field)({ nullable: true }),
60
+ __metadata("design:type", Date)
61
+ ], RecurringInvoiceModel.prototype, "lastGeneratedAt", void 0);
62
+ __decorate([
63
+ (0, graphql_1.Field)(() => RecurringInvoiceStatusEnum),
64
+ __metadata("design:type", String)
65
+ ], RecurringInvoiceModel.prototype, "status", void 0);
66
+ __decorate([
67
+ (0, graphql_1.Field)(),
68
+ __metadata("design:type", Boolean)
69
+ ], RecurringInvoiceModel.prototype, "autoSend", void 0);
70
+ __decorate([
71
+ (0, graphql_1.Field)(),
72
+ __metadata("design:type", String)
73
+ ], RecurringInvoiceModel.prototype, "clientDetailsId", void 0);
74
+ __decorate([
75
+ (0, graphql_1.Field)(),
76
+ __metadata("design:type", String)
77
+ ], RecurringInvoiceModel.prototype, "currency", void 0);
78
+ __decorate([
79
+ (0, graphql_1.Field)(() => graphql_1.Float),
80
+ __metadata("design:type", Number)
81
+ ], RecurringInvoiceModel.prototype, "taxRate", void 0);
82
+ __decorate([
83
+ (0, graphql_1.Field)({ nullable: true }),
84
+ __metadata("design:type", String)
85
+ ], RecurringInvoiceModel.prototype, "notes", void 0);
86
+ __decorate([
87
+ (0, graphql_1.Field)({ nullable: true }),
88
+ __metadata("design:type", String)
89
+ ], RecurringInvoiceModel.prototype, "clientNotes", void 0);
90
+ __decorate([
91
+ (0, graphql_1.Field)({ nullable: true }),
92
+ __metadata("design:type", String)
93
+ ], RecurringInvoiceModel.prototype, "referenceType", void 0);
94
+ __decorate([
95
+ (0, graphql_1.Field)({ nullable: true }),
96
+ __metadata("design:type", String)
97
+ ], RecurringInvoiceModel.prototype, "referenceId", void 0);
98
+ __decorate([
99
+ (0, graphql_1.Field)(),
100
+ __metadata("design:type", Boolean)
101
+ ], RecurringInvoiceModel.prototype, "autoCharge", void 0);
102
+ __decorate([
103
+ (0, graphql_1.Field)(() => graphql_type_json_1.default, { nullable: true }),
104
+ __metadata("design:type", Object)
105
+ ], RecurringInvoiceModel.prototype, "metadata", void 0);
106
+ __decorate([
107
+ (0, graphql_1.Field)(() => graphql_1.Int),
108
+ __metadata("design:type", Number)
109
+ ], RecurringInvoiceModel.prototype, "consecutiveFailures", void 0);
110
+ __decorate([
111
+ (0, graphql_1.Field)({ nullable: true }),
112
+ __metadata("design:type", String)
113
+ ], RecurringInvoiceModel.prototype, "lastFailureReason", void 0);
114
+ __decorate([
115
+ (0, graphql_1.Field)({ nullable: true }),
116
+ __metadata("design:type", Date)
117
+ ], RecurringInvoiceModel.prototype, "pausedAt", void 0);
118
+ __decorate([
119
+ (0, graphql_1.Field)({ nullable: true }),
120
+ __metadata("design:type", String)
121
+ ], RecurringInvoiceModel.prototype, "pausedBy", void 0);
122
+ __decorate([
123
+ (0, graphql_1.Field)({ nullable: true }),
124
+ __metadata("design:type", Date)
125
+ ], RecurringInvoiceModel.prototype, "cancelledAt", void 0);
126
+ __decorate([
127
+ (0, graphql_1.Field)({ nullable: true }),
128
+ __metadata("design:type", String)
129
+ ], RecurringInvoiceModel.prototype, "cancelledBy", void 0);
130
+ __decorate([
131
+ (0, graphql_1.Field)({ nullable: true }),
132
+ __metadata("design:type", String)
133
+ ], RecurringInvoiceModel.prototype, "cancelReason", void 0);
134
+ __decorate([
135
+ (0, graphql_1.Field)(),
136
+ __metadata("design:type", String)
137
+ ], RecurringInvoiceModel.prototype, "createdBy", void 0);
138
+ __decorate([
139
+ (0, graphql_1.Field)(),
140
+ __metadata("design:type", Date)
141
+ ], RecurringInvoiceModel.prototype, "createdAt", void 0);
142
+ __decorate([
143
+ (0, graphql_1.Field)(),
144
+ __metadata("design:type", Date)
145
+ ], RecurringInvoiceModel.prototype, "updatedAt", void 0);
146
+ __decorate([
147
+ (0, graphql_1.Field)(() => [recurring_invoice_line_item_model_1.RecurringInvoiceLineItemModel]),
148
+ __metadata("design:type", Array)
149
+ ], RecurringInvoiceModel.prototype, "templateLineItems", void 0);
150
+ __decorate([
151
+ (0, graphql_1.Field)(() => invoice_client_model_1.InvoiceClientModel, { nullable: true }),
152
+ __metadata("design:type", invoice_client_model_1.InvoiceClientModel)
153
+ ], RecurringInvoiceModel.prototype, "client", void 0);
154
+ exports.RecurringInvoiceModel = RecurringInvoiceModel = __decorate([
155
+ (0, graphql_1.ObjectType)('RecurringInvoice')
156
+ ], RecurringInvoiceModel);
157
+ //# sourceMappingURL=recurring-invoice.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recurring-invoice.model.js","sourceRoot":"","sources":["../../src/models/recurring-invoice.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAAoE;AACpE,0EAA4C;AAC5C,2FAAoF;AACpF,iEAA4D;AAE5D,IAAY,yBAGX;AAHD,WAAY,yBAAyB;IACnC,0CAAa,CAAA;IACb,8CAAiB,CAAA;AACnB,CAAC,EAHW,yBAAyB,yCAAzB,yBAAyB,QAGpC;AAED,IAAY,0BAIX;AAJD,WAAY,0BAA0B;IACpC,+CAAiB,CAAA;IACjB,+CAAiB,CAAA;IACjB,qDAAuB,CAAA;AACzB,CAAC,EAJW,0BAA0B,0CAA1B,0BAA0B,QAIrC;AAGM,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;CA4FjC,CAAA;AA5FY,sDAAqB;AAEhC;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,YAAE,CAAC;;iDACL;AAGX;IADC,IAAA,eAAK,GAAE;;yDACW;AAGnB;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC;;2DAClB;AAGrB;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,CAAC;;4DACK;AAGtB;IADC,IAAA,eAAK,GAAE;8BACI,IAAI;yDAAC;AAGjB;IADC,IAAA,eAAK,GAAE;8BACO,IAAI;4DAAC;AAGpB;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACR,IAAI;8DAAC;AAGvB;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,0BAA0B,CAAC;;qDACzB;AAGf;IADC,IAAA,eAAK,GAAE;;uDACU;AAGlB;IADC,IAAA,eAAK,GAAE;;8DACgB;AAGxB;IADC,IAAA,eAAK,GAAE;;uDACS;AAGjB;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,eAAK,CAAC;;sDACH;AAGhB;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACX;AAGf;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACL;AAGrB;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4DACH;AAGvB;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACL;AAGrB;IADC,IAAA,eAAK,GAAE;;yDACY;AAGpB;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,2BAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACV;AAGnC;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,CAAC;;kEACW;AAG5B;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gEACC;AAG3B;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACf,IAAI;uDAAC;AAGhB;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACR;AAGlB;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACZ,IAAI;0DAAC;AAGnB;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACL;AAGrB;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2DACJ;AAGtB;IADC,IAAA,eAAK,GAAE;;wDACU;AAGlB;IADC,IAAA,eAAK,GAAE;8BACG,IAAI;wDAAC;AAGhB;IADC,IAAA,eAAK,GAAE;8BACG,IAAI;wDAAC;AAKhB;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,CAAC,iEAA6B,CAAC,CAAC;;gEACM;AAGnD;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,yCAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BAC3C,yCAAkB;qDAAC;gCA3FjB,qBAAqB;IADjC,IAAA,oBAAU,EAAC,kBAAkB,CAAC;GAClB,qBAAqB,CA4FjC"}
@@ -0,0 +1,15 @@
1
+ import { RefundStatusEnum } from './invoice.model';
2
+ export declare class RefundModel {
3
+ id: string;
4
+ paymentId: string;
5
+ amount: number;
6
+ currency: string;
7
+ status: RefundStatusEnum;
8
+ reason?: string;
9
+ providerRefundId?: string;
10
+ providerData?: Record<string, unknown>;
11
+ createdBy: string;
12
+ processedBy?: string;
13
+ createdAt: Date;
14
+ updatedAt: Date;
15
+ }
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.RefundModel = void 0;
16
+ const graphql_1 = require("@nestjs/graphql");
17
+ const graphql_type_json_1 = __importDefault(require("graphql-type-json"));
18
+ const invoice_model_1 = require("./invoice.model");
19
+ let RefundModel = class RefundModel {
20
+ };
21
+ exports.RefundModel = RefundModel;
22
+ __decorate([
23
+ (0, graphql_1.Field)(() => graphql_1.ID),
24
+ __metadata("design:type", String)
25
+ ], RefundModel.prototype, "id", void 0);
26
+ __decorate([
27
+ (0, graphql_1.Field)(),
28
+ __metadata("design:type", String)
29
+ ], RefundModel.prototype, "paymentId", void 0);
30
+ __decorate([
31
+ (0, graphql_1.Field)(() => graphql_1.Int),
32
+ __metadata("design:type", Number)
33
+ ], RefundModel.prototype, "amount", void 0);
34
+ __decorate([
35
+ (0, graphql_1.Field)(),
36
+ __metadata("design:type", String)
37
+ ], RefundModel.prototype, "currency", void 0);
38
+ __decorate([
39
+ (0, graphql_1.Field)(() => invoice_model_1.RefundStatusEnum),
40
+ __metadata("design:type", String)
41
+ ], RefundModel.prototype, "status", void 0);
42
+ __decorate([
43
+ (0, graphql_1.Field)({ nullable: true }),
44
+ __metadata("design:type", String)
45
+ ], RefundModel.prototype, "reason", void 0);
46
+ __decorate([
47
+ (0, graphql_1.Field)({ nullable: true }),
48
+ __metadata("design:type", String)
49
+ ], RefundModel.prototype, "providerRefundId", void 0);
50
+ __decorate([
51
+ (0, graphql_1.Field)(() => graphql_type_json_1.default, { nullable: true }),
52
+ __metadata("design:type", Object)
53
+ ], RefundModel.prototype, "providerData", void 0);
54
+ __decorate([
55
+ (0, graphql_1.Field)(),
56
+ __metadata("design:type", String)
57
+ ], RefundModel.prototype, "createdBy", void 0);
58
+ __decorate([
59
+ (0, graphql_1.Field)({ nullable: true }),
60
+ __metadata("design:type", String)
61
+ ], RefundModel.prototype, "processedBy", void 0);
62
+ __decorate([
63
+ (0, graphql_1.Field)(),
64
+ __metadata("design:type", Date)
65
+ ], RefundModel.prototype, "createdAt", void 0);
66
+ __decorate([
67
+ (0, graphql_1.Field)(),
68
+ __metadata("design:type", Date)
69
+ ], RefundModel.prototype, "updatedAt", void 0);
70
+ exports.RefundModel = RefundModel = __decorate([
71
+ (0, graphql_1.ObjectType)('Refund')
72
+ ], RefundModel);
73
+ //# sourceMappingURL=refund.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refund.model.js","sourceRoot":"","sources":["../../src/models/refund.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAA6D;AAC7D,0EAA4C;AAC5C,mDAAmD;AAG5C,IAAM,WAAW,GAAjB,MAAM,WAAW;CAoCvB,CAAA;AApCY,kCAAW;AAEtB;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,YAAE,CAAC;;uCACL;AAGX;IADC,IAAA,eAAK,GAAE;;8CACU;AAGlB;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,CAAC;;2CACF;AAGf;IADC,IAAA,eAAK,GAAE;;6CACS;AAGjB;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,gCAAgB,CAAC;;2CACL;AAGzB;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACV;AAGhB;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACA;AAG1B;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,2BAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACN;AAGvC;IADC,IAAA,eAAK,GAAE;;8CACU;AAGlB;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACL;AAGrB;IADC,IAAA,eAAK,GAAE;8BACG,IAAI;8CAAC;AAGhB;IADC,IAAA,eAAK,GAAE;8BACG,IAAI;8CAAC;sBAnCL,WAAW;IADvB,IAAA,oBAAU,EAAC,QAAQ,CAAC;GACR,WAAW,CAoCvB"}
@@ -0,0 +1,54 @@
1
+ import { DynamicModule } from '@nestjs/common';
2
+ import type { ModuleMetadata } from '@nestjs/common/interfaces';
3
+ import './register-payment-enums';
4
+ import type { IInvoiceRepository } from './interfaces/invoice-repository.interface';
5
+ import type { IPaymentRepository } from './interfaces/payment-repository.interface';
6
+ import type { IRefundRepository } from './interfaces/refund-repository.interface';
7
+ import type { IPaymentPlanRepository } from './interfaces/payment-plan-repository.interface';
8
+ import type { IPaymentConfigRepository } from './interfaces/payment-config-repository.interface';
9
+ import type { IWebhookIdempotencyRepository } from './interfaces/webhook-idempotency-repository.interface';
10
+ import type { IRecurringInvoiceRepository } from './interfaces/recurring-invoice-repository.interface';
11
+ import type { IPaymentCustomerRepository } from './interfaces/payment-customer-repository.interface';
12
+ import type { ITransactionManager } from './interfaces/transaction-manager.interface';
13
+ import type { IPaymentEventListener } from './interfaces/payment-event-listener.interface';
14
+ import type { IPaymentEmailSender, IPaymentClientResolver, IPaymentEmailBrandingResolver, IPaymentEmailTemplateRenderer } from './interfaces/payment-email.interfaces';
15
+ export interface PaymentsModuleOptions {
16
+ invoiceRepositoryInstance: IInvoiceRepository;
17
+ paymentRepositoryInstance: IPaymentRepository;
18
+ refundRepositoryInstance: IRefundRepository;
19
+ paymentConfigRepositoryInstance: IPaymentConfigRepository;
20
+ webhookIdempotencyRepositoryInstance: IWebhookIdempotencyRepository;
21
+ transactionManagerInstance: ITransactionManager;
22
+ paymentPlanRepositoryInstance?: IPaymentPlanRepository;
23
+ recurringInvoiceRepositoryInstance?: IRecurringInvoiceRepository;
24
+ paymentCustomerRepositoryInstance?: IPaymentCustomerRepository;
25
+ stripe?: {
26
+ secretKey: string;
27
+ webhookSecret: string;
28
+ };
29
+ email?: {
30
+ senderInstance: IPaymentEmailSender;
31
+ clientResolverInstance: IPaymentClientResolver;
32
+ brandingResolverInstance?: IPaymentEmailBrandingResolver;
33
+ templateRendererInstance?: IPaymentEmailTemplateRenderer;
34
+ };
35
+ paymentEventListenerInstance?: IPaymentEventListener;
36
+ webhook?: {
37
+ errorReporter?: (error: unknown, context?: Record<string, unknown>) => void;
38
+ };
39
+ defaultCurrency?: string;
40
+ eTransferCodePrefix?: string;
41
+ features?: {
42
+ paymentPlans?: boolean;
43
+ recurringInvoices?: boolean;
44
+ eTransfer?: boolean;
45
+ emailNotifications?: boolean;
46
+ };
47
+ }
48
+ export interface PaymentsModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
49
+ useFactory: (...args: any[]) => Promise<PaymentsModuleOptions> | PaymentsModuleOptions;
50
+ inject?: any[];
51
+ }
52
+ export declare class PaymentsModule {
53
+ static forRootAsync(asyncOptions: PaymentsModuleAsyncOptions): DynamicModule;
54
+ }
@@ -0,0 +1,211 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var PaymentsModule_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.PaymentsModule = void 0;
11
+ const common_1 = require("@nestjs/common");
12
+ require("./register-payment-enums");
13
+ const constants_1 = require("./constants");
14
+ const invoice_service_1 = require("./services/invoice.service");
15
+ const invoice_number_service_1 = require("./services/invoice-number.service");
16
+ const payment_service_1 = require("./services/payment.service");
17
+ const refund_service_1 = require("./services/refund.service");
18
+ const payment_config_service_1 = require("./services/payment-config.service");
19
+ const payment_plan_service_1 = require("./services/payment-plan.service");
20
+ const payment_email_service_1 = require("./services/payment-email.service");
21
+ const recurring_invoice_service_1 = require("./services/recurring-invoice.service");
22
+ const customer_service_1 = require("./services/customer.service");
23
+ const e_transfer_service_1 = require("./services/e-transfer.service");
24
+ const gateway_registry_service_1 = require("./gateways/gateway-registry.service");
25
+ const stripe_gateway_1 = require("./gateways/stripe/stripe.gateway");
26
+ const stripe_webhook_controller_1 = require("./gateways/stripe/stripe-webhook.controller");
27
+ const PAYMENTS_MODULE_OPTIONS = Symbol('PaymentsModuleOptions');
28
+ function validateOptions(opts) {
29
+ const logger = new common_1.Logger('PaymentsModule');
30
+ const features = opts.features ?? {};
31
+ if (features.paymentPlans && !opts.paymentPlanRepositoryInstance) {
32
+ throw new Error('PaymentsModule: features.paymentPlans is enabled but paymentPlanRepositoryInstance was not provided.');
33
+ }
34
+ if (features.recurringInvoices) {
35
+ if (!opts.recurringInvoiceRepositoryInstance) {
36
+ throw new Error('PaymentsModule: features.recurringInvoices is enabled but recurringInvoiceRepositoryInstance was not provided.');
37
+ }
38
+ if (!opts.paymentCustomerRepositoryInstance) {
39
+ throw new Error('PaymentsModule: features.recurringInvoices is enabled but paymentCustomerRepositoryInstance was not provided.');
40
+ }
41
+ }
42
+ if (features.emailNotifications && opts.email) {
43
+ if (!opts.email.senderInstance) {
44
+ throw new Error('PaymentsModule: features.emailNotifications is enabled but email.senderInstance was not provided.');
45
+ }
46
+ if (!opts.email.clientResolverInstance) {
47
+ throw new Error('PaymentsModule: features.emailNotifications is enabled but email.clientResolverInstance was not provided.');
48
+ }
49
+ }
50
+ if (features.emailNotifications && !opts.email) {
51
+ throw new Error('PaymentsModule: features.emailNotifications is enabled but email config was not provided.');
52
+ }
53
+ if (!opts.stripe) {
54
+ logger.warn('Stripe config not provided -- no payment gateway will be available.');
55
+ }
56
+ }
57
+ let PaymentsModule = PaymentsModule_1 = class PaymentsModule {
58
+ static forRootAsync(asyncOptions) {
59
+ const providers = [
60
+ {
61
+ provide: PAYMENTS_MODULE_OPTIONS,
62
+ useFactory: async (...args) => {
63
+ const opts = await asyncOptions.useFactory(...args);
64
+ validateOptions(opts);
65
+ return opts;
66
+ },
67
+ inject: asyncOptions.inject || [],
68
+ },
69
+ {
70
+ provide: constants_1.INVOICE_REPOSITORY,
71
+ useFactory: (opts) => opts.invoiceRepositoryInstance,
72
+ inject: [PAYMENTS_MODULE_OPTIONS],
73
+ },
74
+ {
75
+ provide: constants_1.PAYMENT_REPOSITORY,
76
+ useFactory: (opts) => opts.paymentRepositoryInstance,
77
+ inject: [PAYMENTS_MODULE_OPTIONS],
78
+ },
79
+ {
80
+ provide: constants_1.REFUND_REPOSITORY,
81
+ useFactory: (opts) => opts.refundRepositoryInstance,
82
+ inject: [PAYMENTS_MODULE_OPTIONS],
83
+ },
84
+ {
85
+ provide: constants_1.PAYMENT_CONFIG_REPOSITORY,
86
+ useFactory: (opts) => opts.paymentConfigRepositoryInstance,
87
+ inject: [PAYMENTS_MODULE_OPTIONS],
88
+ },
89
+ {
90
+ provide: constants_1.WEBHOOK_IDEMPOTENCY_REPOSITORY,
91
+ useFactory: (opts) => opts.webhookIdempotencyRepositoryInstance,
92
+ inject: [PAYMENTS_MODULE_OPTIONS],
93
+ },
94
+ {
95
+ provide: constants_1.TRANSACTION_MANAGER,
96
+ useFactory: (opts) => opts.transactionManagerInstance,
97
+ inject: [PAYMENTS_MODULE_OPTIONS],
98
+ },
99
+ {
100
+ provide: constants_1.PAYMENT_PLAN_REPOSITORY,
101
+ useFactory: (opts) => opts.paymentPlanRepositoryInstance ?? null,
102
+ inject: [PAYMENTS_MODULE_OPTIONS],
103
+ },
104
+ {
105
+ provide: constants_1.RECURRING_INVOICE_REPOSITORY,
106
+ useFactory: (opts) => opts.recurringInvoiceRepositoryInstance ?? null,
107
+ inject: [PAYMENTS_MODULE_OPTIONS],
108
+ },
109
+ {
110
+ provide: constants_1.PAYMENT_CUSTOMER_REPOSITORY,
111
+ useFactory: (opts) => opts.paymentCustomerRepositoryInstance ?? null,
112
+ inject: [PAYMENTS_MODULE_OPTIONS],
113
+ },
114
+ {
115
+ provide: constants_1.DEFAULT_CURRENCY,
116
+ useFactory: (opts) => opts.defaultCurrency ?? 'USD',
117
+ inject: [PAYMENTS_MODULE_OPTIONS],
118
+ },
119
+ {
120
+ provide: constants_1.E_TRANSFER_CODE_PREFIX,
121
+ useFactory: (opts) => opts.eTransferCodePrefix ?? '',
122
+ inject: [PAYMENTS_MODULE_OPTIONS],
123
+ },
124
+ {
125
+ provide: constants_1.PAYMENT_EMAIL_SENDER,
126
+ useFactory: (opts) => opts.email?.senderInstance ?? null,
127
+ inject: [PAYMENTS_MODULE_OPTIONS],
128
+ },
129
+ {
130
+ provide: constants_1.PAYMENT_CLIENT_RESOLVER,
131
+ useFactory: (opts) => opts.email?.clientResolverInstance ?? null,
132
+ inject: [PAYMENTS_MODULE_OPTIONS],
133
+ },
134
+ {
135
+ provide: constants_1.PAYMENT_EMAIL_BRANDING_RESOLVER,
136
+ useFactory: (opts) => opts.email?.brandingResolverInstance ?? null,
137
+ inject: [PAYMENTS_MODULE_OPTIONS],
138
+ },
139
+ {
140
+ provide: constants_1.PAYMENT_EMAIL_TEMPLATE_RENDERER,
141
+ useFactory: (opts) => opts.email?.templateRendererInstance ?? null,
142
+ inject: [PAYMENTS_MODULE_OPTIONS],
143
+ },
144
+ {
145
+ provide: constants_1.PAYMENT_EVENT_LISTENER,
146
+ useFactory: (opts) => opts.paymentEventListenerInstance ?? null,
147
+ inject: [PAYMENTS_MODULE_OPTIONS],
148
+ },
149
+ {
150
+ provide: constants_1.WEBHOOK_ERROR_REPORTER,
151
+ useFactory: (opts) => opts.webhook?.errorReporter ?? null,
152
+ inject: [PAYMENTS_MODULE_OPTIONS],
153
+ },
154
+ invoice_service_1.InvoiceService,
155
+ invoice_number_service_1.InvoiceNumberService,
156
+ payment_service_1.PaymentService,
157
+ refund_service_1.RefundService,
158
+ payment_config_service_1.PaymentConfigService,
159
+ gateway_registry_service_1.GatewayRegistryService,
160
+ payment_email_service_1.PaymentEmailService,
161
+ e_transfer_service_1.ETransferService,
162
+ payment_plan_service_1.PaymentPlanService,
163
+ recurring_invoice_service_1.RecurringInvoiceService,
164
+ customer_service_1.CustomerService,
165
+ {
166
+ provide: 'STRIPE_GATEWAY',
167
+ useFactory: (opts, registry) => {
168
+ if (!opts.stripe)
169
+ return null;
170
+ const logger = new common_1.Logger('StripeGatewayFactory');
171
+ try {
172
+ const gateway = new stripe_gateway_1.StripeGateway(opts.stripe.secretKey, opts.stripe.webhookSecret);
173
+ registry.register(gateway);
174
+ logger.log('Stripe gateway registered successfully');
175
+ return gateway;
176
+ }
177
+ catch (error) {
178
+ logger.error(`StripeGateway construction failed: ${error instanceof Error ? error.message : String(error)}`);
179
+ return null;
180
+ }
181
+ },
182
+ inject: [PAYMENTS_MODULE_OPTIONS, gateway_registry_service_1.GatewayRegistryService],
183
+ },
184
+ ];
185
+ return {
186
+ module: PaymentsModule_1,
187
+ global: true,
188
+ imports: asyncOptions.imports || [],
189
+ controllers: [stripe_webhook_controller_1.StripeWebhookController],
190
+ providers,
191
+ exports: [
192
+ invoice_service_1.InvoiceService,
193
+ invoice_number_service_1.InvoiceNumberService,
194
+ payment_service_1.PaymentService,
195
+ refund_service_1.RefundService,
196
+ payment_config_service_1.PaymentConfigService,
197
+ payment_plan_service_1.PaymentPlanService,
198
+ gateway_registry_service_1.GatewayRegistryService,
199
+ payment_email_service_1.PaymentEmailService,
200
+ recurring_invoice_service_1.RecurringInvoiceService,
201
+ customer_service_1.CustomerService,
202
+ e_transfer_service_1.ETransferService,
203
+ ],
204
+ };
205
+ }
206
+ };
207
+ exports.PaymentsModule = PaymentsModule;
208
+ exports.PaymentsModule = PaymentsModule = PaymentsModule_1 = __decorate([
209
+ (0, common_1.Module)({})
210
+ ], PaymentsModule);
211
+ //# sourceMappingURL=payments.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payments.module.js","sourceRoot":"","sources":["../src/payments.module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const graphql_1 = require("@nestjs/graphql");
4
+ const invoice_model_1 = require("./models/invoice.model");
5
+ const recurring_invoice_model_1 = require("./models/recurring-invoice.model");
6
+ (0, graphql_1.registerEnumType)(invoice_model_1.InvoiceStatusEnum, { name: 'InvoiceStatus' });
7
+ (0, graphql_1.registerEnumType)(invoice_model_1.PaymentMethodEnum, { name: 'PaymentMethod' });
8
+ (0, graphql_1.registerEnumType)(invoice_model_1.PaymentStatusEnum, { name: 'PaymentStatus' });
9
+ (0, graphql_1.registerEnumType)(invoice_model_1.RefundStatusEnum, { name: 'RefundStatus' });
10
+ (0, graphql_1.registerEnumType)(invoice_model_1.PaymentPlanStatusEnum, { name: 'PaymentPlanStatus' });
11
+ (0, graphql_1.registerEnumType)(invoice_model_1.InstallmentStatusEnum, { name: 'InstallmentStatus' });
12
+ (0, graphql_1.registerEnumType)(recurring_invoice_model_1.RecurringIntervalUnitEnum, {
13
+ name: 'RecurringIntervalUnit',
14
+ });
15
+ (0, graphql_1.registerEnumType)(recurring_invoice_model_1.RecurringInvoiceStatusEnum, {
16
+ name: 'RecurringInvoiceStatus',
17
+ });
18
+ //# sourceMappingURL=register-payment-enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-payment-enums.js","sourceRoot":"","sources":["../src/register-payment-enums.ts"],"names":[],"mappings":";;AAWA,6CAAmD;AAEnD,0DAOgC;AAChC,8EAG0C;AAE1C,IAAA,0BAAgB,EAAC,iCAAiB,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;AAC/D,IAAA,0BAAgB,EAAC,iCAAiB,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;AAC/D,IAAA,0BAAgB,EAAC,iCAAiB,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;AAC/D,IAAA,0BAAgB,EAAC,gCAAgB,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;AAC7D,IAAA,0BAAgB,EAAC,qCAAqB,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;AACvE,IAAA,0BAAgB,EAAC,qCAAqB,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;AACvE,IAAA,0BAAgB,EAAC,mDAAyB,EAAE;IAC1C,IAAI,EAAE,uBAAuB;CAC9B,CAAC,CAAC;AACH,IAAA,0BAAgB,EAAC,oDAA0B,EAAE;IAC3C,IAAI,EAAE,wBAAwB;CAC/B,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { IPaymentCustomerRepository } from '../interfaces/payment-customer-repository.interface';
2
+ import type { PaymentCustomer } from '../types/payment-customer.types';
3
+ import { GatewayRegistryService } from '../gateways/gateway-registry.service';
4
+ export declare class CustomerService {
5
+ private readonly customerRepo;
6
+ private readonly gatewayRegistry;
7
+ private readonly logger;
8
+ constructor(customerRepo: IPaymentCustomerRepository, gatewayRegistry: GatewayRegistryService);
9
+ createOrLinkCustomer(divisionId: string, clientDetailsId: string, email: string, name?: string, provider?: string): Promise<PaymentCustomer>;
10
+ findCustomer(divisionId: string, clientDetailsId: string, provider?: string): Promise<PaymentCustomer | null>;
11
+ createSetupSession(divisionId: string, clientDetailsId: string, email: string, name: string | undefined, successUrl: string, cancelUrl: string, provider?: string): Promise<{
12
+ setupUrl: string;
13
+ providerSetupId: string;
14
+ }>;
15
+ }