@carlonicora/nestjs-neo4jsonapi 6.8.0 → 7.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.
Files changed (186) hide show
  1. package/dist/common/decorators/cache-invalidate.decorator.d.ts +2 -1
  2. package/dist/common/decorators/cache-invalidate.decorator.d.ts.map +1 -1
  3. package/dist/common/decorators/cache-invalidate.decorator.js +23 -3
  4. package/dist/common/decorators/cache-invalidate.decorator.js.map +1 -1
  5. package/dist/common/decorators/validate-id.decorator.d.ts +4 -1
  6. package/dist/common/decorators/validate-id.decorator.d.ts.map +1 -1
  7. package/dist/common/decorators/validate-id.decorator.js +22 -2
  8. package/dist/common/decorators/validate-id.decorator.js.map +1 -1
  9. package/dist/foundations/foundations.modules.d.ts.map +1 -1
  10. package/dist/foundations/foundations.modules.js +2 -0
  11. package/dist/foundations/foundations.modules.js.map +1 -1
  12. package/dist/foundations/handbook/controllers/handbook.controller.d.ts +2 -1
  13. package/dist/foundations/handbook/controllers/handbook.controller.d.ts.map +1 -1
  14. package/dist/foundations/handbook/controllers/handbook.controller.js +5 -4
  15. package/dist/foundations/handbook/controllers/handbook.controller.js.map +1 -1
  16. package/dist/foundations/role/controllers/role.controller.d.ts +3 -2
  17. package/dist/foundations/role/controllers/role.controller.d.ts.map +1 -1
  18. package/dist/foundations/role/controllers/role.controller.js +9 -7
  19. package/dist/foundations/role/controllers/role.controller.js.map +1 -1
  20. package/dist/foundations/stripe/index.d.ts +1 -0
  21. package/dist/foundations/stripe/index.d.ts.map +1 -1
  22. package/dist/foundations/stripe/index.js +2 -0
  23. package/dist/foundations/stripe/index.js.map +1 -1
  24. package/dist/foundations/stripe/services/stripe.payment.service.d.ts +33 -0
  25. package/dist/foundations/stripe/services/stripe.payment.service.d.ts.map +1 -1
  26. package/dist/foundations/stripe/services/stripe.payment.service.js +68 -0
  27. package/dist/foundations/stripe/services/stripe.payment.service.js.map +1 -1
  28. package/dist/foundations/stripe-coupon/controllers/stripe-coupon-code-checkout.controller.d.ts +14 -0
  29. package/dist/foundations/stripe-coupon/controllers/stripe-coupon-code-checkout.controller.d.ts.map +1 -0
  30. package/dist/foundations/stripe-coupon/controllers/stripe-coupon-code-checkout.controller.js +62 -0
  31. package/dist/foundations/stripe-coupon/controllers/stripe-coupon-code-checkout.controller.js.map +1 -0
  32. package/dist/foundations/stripe-coupon/controllers/stripe-coupon-code.controller.d.ts +28 -0
  33. package/dist/foundations/stripe-coupon/controllers/stripe-coupon-code.controller.d.ts.map +1 -0
  34. package/dist/foundations/stripe-coupon/controllers/stripe-coupon-code.controller.js +136 -0
  35. package/dist/foundations/stripe-coupon/controllers/stripe-coupon-code.controller.js.map +1 -0
  36. package/dist/foundations/stripe-coupon/controllers/stripe-coupon.controller.d.ts +26 -0
  37. package/dist/foundations/stripe-coupon/controllers/stripe-coupon.controller.d.ts.map +1 -0
  38. package/dist/foundations/stripe-coupon/controllers/stripe-coupon.controller.js +131 -0
  39. package/dist/foundations/stripe-coupon/controllers/stripe-coupon.controller.js.map +1 -0
  40. package/dist/foundations/stripe-coupon/controllers/stripe-coupon.public.controller.d.ts +11 -0
  41. package/dist/foundations/stripe-coupon/controllers/stripe-coupon.public.controller.d.ts.map +1 -0
  42. package/dist/foundations/stripe-coupon/controllers/stripe-coupon.public.controller.js +45 -0
  43. package/dist/foundations/stripe-coupon/controllers/stripe-coupon.public.controller.js.map +1 -0
  44. package/dist/foundations/stripe-coupon/dtos/stripe-coupon-code.patch.dto.d.ts +13 -0
  45. package/dist/foundations/stripe-coupon/dtos/stripe-coupon-code.patch.dto.d.ts.map +1 -0
  46. package/dist/foundations/stripe-coupon/dtos/stripe-coupon-code.patch.dto.js +55 -0
  47. package/dist/foundations/stripe-coupon/dtos/stripe-coupon-code.patch.dto.js.map +1 -0
  48. package/dist/foundations/stripe-coupon/dtos/stripe-coupon-code.post.dto.d.ts +24 -0
  49. package/dist/foundations/stripe-coupon/dtos/stripe-coupon-code.post.dto.d.ts.map +1 -0
  50. package/dist/foundations/stripe-coupon/dtos/stripe-coupon-code.post.dto.js +105 -0
  51. package/dist/foundations/stripe-coupon/dtos/stripe-coupon-code.post.dto.js.map +1 -0
  52. package/dist/foundations/stripe-coupon/dtos/stripe-coupon.dto.d.ts +8 -0
  53. package/dist/foundations/stripe-coupon/dtos/stripe-coupon.dto.d.ts.map +1 -0
  54. package/dist/foundations/stripe-coupon/dtos/stripe-coupon.dto.js +36 -0
  55. package/dist/foundations/stripe-coupon/dtos/stripe-coupon.dto.js.map +1 -0
  56. package/dist/foundations/stripe-coupon/dtos/stripe-coupon.patch.dto.d.ts +12 -0
  57. package/dist/foundations/stripe-coupon/dtos/stripe-coupon.patch.dto.d.ts.map +1 -0
  58. package/dist/foundations/stripe-coupon/dtos/stripe-coupon.patch.dto.js +51 -0
  59. package/dist/foundations/stripe-coupon/dtos/stripe-coupon.patch.dto.js.map +1 -0
  60. package/dist/foundations/stripe-coupon/dtos/stripe-coupon.post.dto.d.ts +31 -0
  61. package/dist/foundations/stripe-coupon/dtos/stripe-coupon.post.dto.d.ts.map +1 -0
  62. package/dist/foundations/stripe-coupon/dtos/stripe-coupon.post.dto.js +120 -0
  63. package/dist/foundations/stripe-coupon/dtos/stripe-coupon.post.dto.js.map +1 -0
  64. package/dist/foundations/stripe-coupon/entities/stripe-coupon-code.d.ts +28 -0
  65. package/dist/foundations/stripe-coupon/entities/stripe-coupon-code.d.ts.map +1 -0
  66. package/dist/foundations/stripe-coupon/entities/stripe-coupon-code.js +35 -0
  67. package/dist/foundations/stripe-coupon/entities/stripe-coupon-code.js.map +1 -0
  68. package/dist/foundations/stripe-coupon/entities/stripe-coupon-code.meta.d.ts +5 -0
  69. package/dist/foundations/stripe-coupon/entities/stripe-coupon-code.meta.d.ts.map +1 -0
  70. package/dist/foundations/stripe-coupon/entities/stripe-coupon-code.meta.js +12 -0
  71. package/dist/foundations/stripe-coupon/entities/stripe-coupon-code.meta.js.map +1 -0
  72. package/dist/foundations/stripe-coupon/entities/stripe-coupon-offer.d.ts +18 -0
  73. package/dist/foundations/stripe-coupon/entities/stripe-coupon-offer.d.ts.map +1 -0
  74. package/dist/foundations/stripe-coupon/entities/stripe-coupon-offer.js +21 -0
  75. package/dist/foundations/stripe-coupon/entities/stripe-coupon-offer.js.map +1 -0
  76. package/dist/foundations/stripe-coupon/entities/stripe-coupon-offer.meta.d.ts +6 -0
  77. package/dist/foundations/stripe-coupon/entities/stripe-coupon-offer.meta.d.ts.map +1 -0
  78. package/dist/foundations/stripe-coupon/entities/stripe-coupon-offer.meta.js +13 -0
  79. package/dist/foundations/stripe-coupon/entities/stripe-coupon-offer.meta.js.map +1 -0
  80. package/dist/foundations/stripe-coupon/entities/stripe-coupon.d.ts +32 -0
  81. package/dist/foundations/stripe-coupon/entities/stripe-coupon.d.ts.map +1 -0
  82. package/dist/foundations/stripe-coupon/entities/stripe-coupon.js +37 -0
  83. package/dist/foundations/stripe-coupon/entities/stripe-coupon.js.map +1 -0
  84. package/dist/foundations/stripe-coupon/entities/stripe-coupon.meta.d.ts +5 -0
  85. package/dist/foundations/stripe-coupon/entities/stripe-coupon.meta.d.ts.map +1 -0
  86. package/dist/foundations/stripe-coupon/entities/stripe-coupon.meta.js +12 -0
  87. package/dist/foundations/stripe-coupon/entities/stripe-coupon.meta.js.map +1 -0
  88. package/dist/foundations/stripe-coupon/index.d.ts +21 -0
  89. package/dist/foundations/stripe-coupon/index.d.ts.map +1 -0
  90. package/dist/foundations/stripe-coupon/index.js +43 -0
  91. package/dist/foundations/stripe-coupon/index.js.map +1 -0
  92. package/dist/foundations/stripe-coupon/repositories/stripe-coupon-code.repository.d.ts +41 -0
  93. package/dist/foundations/stripe-coupon/repositories/stripe-coupon-code.repository.d.ts.map +1 -0
  94. package/dist/foundations/stripe-coupon/repositories/stripe-coupon-code.repository.js +97 -0
  95. package/dist/foundations/stripe-coupon/repositories/stripe-coupon-code.repository.js.map +1 -0
  96. package/dist/foundations/stripe-coupon/repositories/stripe-coupon.repository.d.ts +29 -0
  97. package/dist/foundations/stripe-coupon/repositories/stripe-coupon.repository.d.ts.map +1 -0
  98. package/dist/foundations/stripe-coupon/repositories/stripe-coupon.repository.js +55 -0
  99. package/dist/foundations/stripe-coupon/repositories/stripe-coupon.repository.js.map +1 -0
  100. package/dist/foundations/stripe-coupon/services/stripe-coupon-api.service.d.ts +70 -0
  101. package/dist/foundations/stripe-coupon/services/stripe-coupon-api.service.d.ts.map +1 -0
  102. package/dist/foundations/stripe-coupon/services/stripe-coupon-api.service.js +172 -0
  103. package/dist/foundations/stripe-coupon/services/stripe-coupon-api.service.js.map +1 -0
  104. package/dist/foundations/stripe-coupon/services/stripe-coupon-code-checkout.service.d.ts +81 -0
  105. package/dist/foundations/stripe-coupon/services/stripe-coupon-code-checkout.service.d.ts.map +1 -0
  106. package/dist/foundations/stripe-coupon/services/stripe-coupon-code-checkout.service.js +206 -0
  107. package/dist/foundations/stripe-coupon/services/stripe-coupon-code-checkout.service.js.map +1 -0
  108. package/dist/foundations/stripe-coupon/services/stripe-coupon-code.service.d.ts +92 -0
  109. package/dist/foundations/stripe-coupon/services/stripe-coupon-code.service.d.ts.map +1 -0
  110. package/dist/foundations/stripe-coupon/services/stripe-coupon-code.service.js +134 -0
  111. package/dist/foundations/stripe-coupon/services/stripe-coupon-code.service.js.map +1 -0
  112. package/dist/foundations/stripe-coupon/services/stripe-coupon-offer.service.d.ts +29 -0
  113. package/dist/foundations/stripe-coupon/services/stripe-coupon-offer.service.d.ts.map +1 -0
  114. package/dist/foundations/stripe-coupon/services/stripe-coupon-offer.service.js +73 -0
  115. package/dist/foundations/stripe-coupon/services/stripe-coupon-offer.service.js.map +1 -0
  116. package/dist/foundations/stripe-coupon/services/stripe-coupon.service.d.ts +65 -0
  117. package/dist/foundations/stripe-coupon/services/stripe-coupon.service.d.ts.map +1 -0
  118. package/dist/foundations/stripe-coupon/services/stripe-coupon.service.js +200 -0
  119. package/dist/foundations/stripe-coupon/services/stripe-coupon.service.js.map +1 -0
  120. package/dist/foundations/stripe-coupon/stripe-coupon.module.d.ts +14 -0
  121. package/dist/foundations/stripe-coupon/stripe-coupon.module.d.ts.map +1 -0
  122. package/dist/foundations/stripe-coupon/stripe-coupon.module.js +91 -0
  123. package/dist/foundations/stripe-coupon/stripe-coupon.module.js.map +1 -0
  124. package/dist/foundations/stripe-coupon/utils/places-left.d.ts +19 -0
  125. package/dist/foundations/stripe-coupon/utils/places-left.d.ts.map +1 -0
  126. package/dist/foundations/stripe-coupon/utils/places-left.js +33 -0
  127. package/dist/foundations/stripe-coupon/utils/places-left.js.map +1 -0
  128. package/dist/foundations/stripe-subscription/backfills/stripe-subscription-backfill.repository.d.ts +22 -0
  129. package/dist/foundations/stripe-subscription/backfills/stripe-subscription-backfill.repository.d.ts.map +1 -0
  130. package/dist/foundations/stripe-subscription/backfills/stripe-subscription-backfill.repository.js +48 -0
  131. package/dist/foundations/stripe-subscription/backfills/stripe-subscription-backfill.repository.js.map +1 -0
  132. package/dist/foundations/stripe-subscription/backfills/stripe-subscription-discount-backfill.service.d.ts +51 -0
  133. package/dist/foundations/stripe-subscription/backfills/stripe-subscription-discount-backfill.service.d.ts.map +1 -0
  134. package/dist/foundations/stripe-subscription/backfills/stripe-subscription-discount-backfill.service.js +129 -0
  135. package/dist/foundations/stripe-subscription/backfills/stripe-subscription-discount-backfill.service.js.map +1 -0
  136. package/dist/foundations/stripe-subscription/controllers/stripe-subscription.controller.d.ts +7 -1
  137. package/dist/foundations/stripe-subscription/controllers/stripe-subscription.controller.d.ts.map +1 -1
  138. package/dist/foundations/stripe-subscription/controllers/stripe-subscription.controller.js +18 -5
  139. package/dist/foundations/stripe-subscription/controllers/stripe-subscription.controller.js.map +1 -1
  140. package/dist/foundations/stripe-subscription/entities/stripe-subscription.discount.d.ts +30 -0
  141. package/dist/foundations/stripe-subscription/entities/stripe-subscription.discount.d.ts.map +1 -0
  142. package/dist/foundations/stripe-subscription/entities/stripe-subscription.discount.js +57 -0
  143. package/dist/foundations/stripe-subscription/entities/stripe-subscription.discount.js.map +1 -0
  144. package/dist/foundations/stripe-subscription/entities/stripe-subscription.entity.d.ts +7 -0
  145. package/dist/foundations/stripe-subscription/entities/stripe-subscription.entity.d.ts.map +1 -1
  146. package/dist/foundations/stripe-subscription/entities/stripe-subscription.map.d.ts.map +1 -1
  147. package/dist/foundations/stripe-subscription/entities/stripe-subscription.map.js +6 -0
  148. package/dist/foundations/stripe-subscription/entities/stripe-subscription.map.js.map +1 -1
  149. package/dist/foundations/stripe-subscription/entities/stripe-subscription.meta.d.ts +8 -0
  150. package/dist/foundations/stripe-subscription/entities/stripe-subscription.meta.d.ts.map +1 -1
  151. package/dist/foundations/stripe-subscription/entities/stripe-subscription.meta.js +9 -1
  152. package/dist/foundations/stripe-subscription/entities/stripe-subscription.meta.js.map +1 -1
  153. package/dist/foundations/stripe-subscription/index.d.ts +3 -2
  154. package/dist/foundations/stripe-subscription/index.d.ts.map +1 -1
  155. package/dist/foundations/stripe-subscription/index.js +5 -1
  156. package/dist/foundations/stripe-subscription/index.js.map +1 -1
  157. package/dist/foundations/stripe-subscription/repositories/stripe-subscription.repository.d.ts +14 -0
  158. package/dist/foundations/stripe-subscription/repositories/stripe-subscription.repository.d.ts.map +1 -1
  159. package/dist/foundations/stripe-subscription/repositories/stripe-subscription.repository.js +32 -0
  160. package/dist/foundations/stripe-subscription/repositories/stripe-subscription.repository.js.map +1 -1
  161. package/dist/foundations/stripe-subscription/serialisers/stripe-subscription.serialiser.d.ts.map +1 -1
  162. package/dist/foundations/stripe-subscription/serialisers/stripe-subscription.serialiser.js +6 -0
  163. package/dist/foundations/stripe-subscription/serialisers/stripe-subscription.serialiser.js.map +1 -1
  164. package/dist/foundations/stripe-subscription/services/stripe-subscription-admin.service.d.ts +36 -3
  165. package/dist/foundations/stripe-subscription/services/stripe-subscription-admin.service.d.ts.map +1 -1
  166. package/dist/foundations/stripe-subscription/services/stripe-subscription-admin.service.js +174 -38
  167. package/dist/foundations/stripe-subscription/services/stripe-subscription-admin.service.js.map +1 -1
  168. package/dist/foundations/stripe-subscription/services/stripe-subscription-api.service.d.ts +7 -0
  169. package/dist/foundations/stripe-subscription/services/stripe-subscription-api.service.d.ts.map +1 -1
  170. package/dist/foundations/stripe-subscription/services/stripe-subscription-api.service.js +29 -2
  171. package/dist/foundations/stripe-subscription/services/stripe-subscription-api.service.js.map +1 -1
  172. package/dist/foundations/stripe-subscription/services/subscription-payment-confirmation.d.ts +27 -0
  173. package/dist/foundations/stripe-subscription/services/subscription-payment-confirmation.d.ts.map +1 -0
  174. package/dist/foundations/stripe-subscription/services/subscription-payment-confirmation.js +62 -0
  175. package/dist/foundations/stripe-subscription/services/subscription-payment-confirmation.js.map +1 -0
  176. package/dist/foundations/stripe-subscription/stripe-subscription.module.d.ts.map +1 -1
  177. package/dist/foundations/stripe-subscription/stripe-subscription.module.js +10 -0
  178. package/dist/foundations/stripe-subscription/stripe-subscription.module.js.map +1 -1
  179. package/dist/foundations/stripe-webhook/processors/stripe-webhook.processor.d.ts.map +1 -1
  180. package/dist/foundations/stripe-webhook/processors/stripe-webhook.processor.js +16 -1
  181. package/dist/foundations/stripe-webhook/processors/stripe-webhook.processor.js.map +1 -1
  182. package/dist/foundations/two-factor/controllers/passkey.controller.d.ts +1 -1
  183. package/dist/foundations/two-factor/controllers/passkey.controller.d.ts.map +1 -1
  184. package/dist/foundations/two-factor/controllers/passkey.controller.js +6 -5
  185. package/dist/foundations/two-factor/controllers/passkey.controller.js.map +1 -1
  186. package/package.json +1 -1
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StripeCouponDescriptor = void 0;
4
+ const common_1 = require("../../../common");
5
+ const stripe_coupon_code_meta_1 = require("./stripe-coupon-code.meta");
6
+ const stripe_coupon_meta_1 = require("./stripe-coupon.meta");
7
+ exports.StripeCouponDescriptor = (0, common_1.defineEntity)()({
8
+ ...stripe_coupon_meta_1.stripeCouponMeta,
9
+ // Coupons are NOT company-scoped - administrators manage them for the whole platform, like products
10
+ isCompanyScoped: false,
11
+ fields: {
12
+ stripeCouponId: { type: "string", required: true },
13
+ name: { type: "string", required: true },
14
+ discountType: { type: "string", required: true },
15
+ percentOff: { type: "number" },
16
+ amountOff: { type: "number" },
17
+ currency: { type: "string" },
18
+ duration: { type: "string", required: true },
19
+ durationInMonths: { type: "number" },
20
+ stripeProductIds: { type: "string[]" },
21
+ redeemBy: { type: "datetime" },
22
+ maxRedemptions: { type: "number" },
23
+ timesRedeemed: { type: "number", required: true, default: 0 },
24
+ valid: { type: "boolean", required: true, default: true },
25
+ },
26
+ relationships: {
27
+ codes: {
28
+ model: stripe_coupon_code_meta_1.stripeCouponCodeMeta,
29
+ direction: "out",
30
+ relationship: "HAS_CODE",
31
+ cardinality: "many",
32
+ required: false,
33
+ dtoKey: "codes",
34
+ },
35
+ },
36
+ });
37
+ //# sourceMappingURL=stripe-coupon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripe-coupon.js","sourceRoot":"","sources":["../../../../src/foundations/stripe-coupon/entities/stripe-coupon.ts"],"names":[],"mappings":";;;AAAA,4CAAuD;AAEvD,uEAAiE;AACjE,6DAAwD;AAsB3C,QAAA,sBAAsB,GAAG,IAAA,qBAAY,GAAgB,CAAC;IACjE,GAAG,qCAAgB;IAEnB,oGAAoG;IACpG,eAAe,EAAE,KAAK;IAEtB,MAAM,EAAE;QACN,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAClD,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACxC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAChD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC5B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC5C,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACpC,gBAAgB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;QACtC,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;QAC9B,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAClC,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;QAC7D,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;KAC1D;IAED,aAAa,EAAE;QACb,KAAK,EAAE;YACL,KAAK,EAAE,8CAAoB;YAC3B,SAAS,EAAE,KAAK;YAChB,YAAY,EAAE,UAAU;YACxB,WAAW,EAAE,MAAM;YACnB,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,OAAO;SAChB;KACF;CACF,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { DataMeta } from "../../../common/interfaces/datamodel.interface";
2
+ export declare const stripeCouponMeta: DataMeta;
3
+ /** Path segment of the count refresh route: `${stripeCouponMeta.endpoint}/:couponId/${STRIPE_COUPON_REFRESH_SEGMENT}`. */
4
+ export declare const STRIPE_COUPON_REFRESH_SEGMENT = "refresh";
5
+ //# sourceMappingURL=stripe-coupon.meta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripe-coupon.meta.d.ts","sourceRoot":"","sources":["../../../../src/foundations/stripe-coupon/entities/stripe-coupon.meta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAE1E,eAAO,MAAM,gBAAgB,EAAE,QAK9B,CAAC;AAEF,0HAA0H;AAC1H,eAAO,MAAM,6BAA6B,YAAY,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.STRIPE_COUPON_REFRESH_SEGMENT = exports.stripeCouponMeta = void 0;
4
+ exports.stripeCouponMeta = {
5
+ type: "stripe-coupons",
6
+ endpoint: "stripe-coupons",
7
+ nodeName: "stripeCoupon",
8
+ labelName: "StripeCoupon",
9
+ };
10
+ /** Path segment of the count refresh route: `${stripeCouponMeta.endpoint}/:couponId/${STRIPE_COUPON_REFRESH_SEGMENT}`. */
11
+ exports.STRIPE_COUPON_REFRESH_SEGMENT = "refresh";
12
+ //# sourceMappingURL=stripe-coupon.meta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripe-coupon.meta.js","sourceRoot":"","sources":["../../../../src/foundations/stripe-coupon/entities/stripe-coupon.meta.ts"],"names":[],"mappings":";;;AAEa,QAAA,gBAAgB,GAAa;IACxC,IAAI,EAAE,gBAAgB;IACtB,QAAQ,EAAE,gBAAgB;IAC1B,QAAQ,EAAE,cAAc;IACxB,SAAS,EAAE,cAAc;CAC1B,CAAC;AAEF,0HAA0H;AAC7G,QAAA,6BAA6B,GAAG,SAAS,CAAC"}
@@ -0,0 +1,21 @@
1
+ export * from "./stripe-coupon.module";
2
+ export * from "./entities/stripe-coupon";
3
+ export * from "./entities/stripe-coupon.meta";
4
+ export * from "./entities/stripe-coupon-code";
5
+ export * from "./entities/stripe-coupon-code.meta";
6
+ export * from "./entities/stripe-coupon-offer";
7
+ export * from "./entities/stripe-coupon-offer.meta";
8
+ export * from "./dtos/stripe-coupon.dto";
9
+ export * from "./dtos/stripe-coupon.post.dto";
10
+ export * from "./dtos/stripe-coupon.patch.dto";
11
+ export * from "./dtos/stripe-coupon-code.post.dto";
12
+ export * from "./dtos/stripe-coupon-code.patch.dto";
13
+ export * from "./repositories/stripe-coupon.repository";
14
+ export * from "./repositories/stripe-coupon-code.repository";
15
+ export * from "./services/stripe-coupon-api.service";
16
+ export * from "./services/stripe-coupon.service";
17
+ export * from "./services/stripe-coupon-code.service";
18
+ export * from "./services/stripe-coupon-code-checkout.service";
19
+ export * from "./services/stripe-coupon-offer.service";
20
+ export * from "./utils/places-left";
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/foundations/stripe-coupon/index.ts"],"names":[],"mappings":"AACA,cAAc,wBAAwB,CAAC;AAGvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AAGpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AAGpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,8CAA8C,CAAC;AAG7D,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wCAAwC,CAAC;AAGvD,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ // Module
18
+ __exportStar(require("./stripe-coupon.module"), exports);
19
+ // Entities + metas
20
+ __exportStar(require("./entities/stripe-coupon"), exports);
21
+ __exportStar(require("./entities/stripe-coupon.meta"), exports);
22
+ __exportStar(require("./entities/stripe-coupon-code"), exports);
23
+ __exportStar(require("./entities/stripe-coupon-code.meta"), exports);
24
+ __exportStar(require("./entities/stripe-coupon-offer"), exports);
25
+ __exportStar(require("./entities/stripe-coupon-offer.meta"), exports);
26
+ // DTOs
27
+ __exportStar(require("./dtos/stripe-coupon.dto"), exports);
28
+ __exportStar(require("./dtos/stripe-coupon.post.dto"), exports);
29
+ __exportStar(require("./dtos/stripe-coupon.patch.dto"), exports);
30
+ __exportStar(require("./dtos/stripe-coupon-code.post.dto"), exports);
31
+ __exportStar(require("./dtos/stripe-coupon-code.patch.dto"), exports);
32
+ // Repositories
33
+ __exportStar(require("./repositories/stripe-coupon.repository"), exports);
34
+ __exportStar(require("./repositories/stripe-coupon-code.repository"), exports);
35
+ // Services
36
+ __exportStar(require("./services/stripe-coupon-api.service"), exports);
37
+ __exportStar(require("./services/stripe-coupon.service"), exports);
38
+ __exportStar(require("./services/stripe-coupon-code.service"), exports);
39
+ __exportStar(require("./services/stripe-coupon-code-checkout.service"), exports);
40
+ __exportStar(require("./services/stripe-coupon-offer.service"), exports);
41
+ // Utils
42
+ __exportStar(require("./utils/places-left"), exports);
43
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/foundations/stripe-coupon/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,SAAS;AACT,yDAAuC;AAEvC,mBAAmB;AACnB,2DAAyC;AACzC,gEAA8C;AAC9C,gEAA8C;AAC9C,qEAAmD;AACnD,iEAA+C;AAC/C,sEAAoD;AAEpD,OAAO;AACP,2DAAyC;AACzC,gEAA8C;AAC9C,iEAA+C;AAC/C,qEAAmD;AACnD,sEAAoD;AAEpD,eAAe;AACf,0EAAwD;AACxD,+EAA6D;AAE7D,WAAW;AACX,uEAAqD;AACrD,mEAAiD;AACjD,wEAAsD;AACtD,iFAA+D;AAC/D,yEAAuD;AAEvD,QAAQ;AACR,sDAAoC"}
@@ -0,0 +1,41 @@
1
+ import { ClsService } from "nestjs-cls";
2
+ import { AbstractRepository } from "../../../core/neo4j/abstracts/abstract.repository";
3
+ import { Neo4jService } from "../../../core/neo4j/services/neo4j.service";
4
+ import { SecurityService } from "../../../core/security/services/security.service";
5
+ import { StripeCouponCode, StripeCouponCodeDescriptor } from "../entities/stripe-coupon-code";
6
+ export declare class StripeCouponCodeRepository extends AbstractRepository<StripeCouponCode, typeof StripeCouponCodeDescriptor.relationships> {
7
+ protected readonly descriptor: import("../../..").EntityDescriptor<StripeCouponCode, {
8
+ coupon: {
9
+ model: import("../../..").DataMeta;
10
+ direction: "in";
11
+ relationship: string;
12
+ cardinality: "one";
13
+ required: true;
14
+ dtoKey: string;
15
+ };
16
+ }>;
17
+ constructor(neo4j: Neo4jService, securityService: SecurityService, clsService: ClsService);
18
+ /**
19
+ * The code with its coupon.
20
+ */
21
+ protected buildReturnStatement(): string;
22
+ /**
23
+ * The active code marked "Apply automatically", with its coupon. At most one exists.
24
+ */
25
+ findAutomatic(): Promise<StripeCouponCode | null>;
26
+ /**
27
+ * The code mirrored from a Stripe promotion code id.
28
+ */
29
+ findByStripePromotionCodeId(params: {
30
+ stripePromotionCodeId: string;
31
+ }): Promise<StripeCouponCode | null>;
32
+ /**
33
+ * Switches "Apply automatically" on one code in a single write. Turning it on clears it
34
+ * on every other code first, so two codes never have it; turning it off only clears the target.
35
+ */
36
+ setAutomatic(params: {
37
+ id: string;
38
+ automatic: boolean;
39
+ }): Promise<void>;
40
+ }
41
+ //# sourceMappingURL=stripe-coupon-code.repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripe-coupon-code.repository.d.ts","sourceRoot":"","sources":["../../../../src/foundations/stripe-coupon/repositories/stripe-coupon-code.repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAI9F,qBACa,0BAA2B,SAAQ,kBAAkB,CAChE,gBAAgB,EAChB,OAAO,0BAA0B,CAAC,aAAa,CAChD;IACC,SAAS,CAAC,QAAQ,CAAC,UAAU;;;;;;;;;OAA8B;gBAE/C,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU;IAIzF;;OAEG;IACH,SAAS,CAAC,oBAAoB,IAAI,MAAM;IAUxC;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAgBvD;;OAEG;IACG,2BAA2B,CAAC,MAAM,EAAE;QAAE,qBAAqB,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAa9G;;;OAGG;IACG,YAAY,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAwB9E"}
@@ -0,0 +1,97 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.StripeCouponCodeRepository = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const nestjs_cls_1 = require("nestjs-cls");
15
+ const abstract_repository_1 = require("../../../core/neo4j/abstracts/abstract.repository");
16
+ const neo4j_service_1 = require("../../../core/neo4j/services/neo4j.service");
17
+ const security_service_1 = require("../../../core/security/services/security.service");
18
+ const stripe_coupon_code_1 = require("../entities/stripe-coupon-code");
19
+ const stripe_coupon_code_meta_1 = require("../entities/stripe-coupon-code.meta");
20
+ const stripe_coupon_meta_1 = require("../entities/stripe-coupon.meta");
21
+ let StripeCouponCodeRepository = class StripeCouponCodeRepository extends abstract_repository_1.AbstractRepository {
22
+ constructor(neo4j, securityService, clsService) {
23
+ super(neo4j, securityService, clsService);
24
+ this.descriptor = stripe_coupon_code_1.StripeCouponCodeDescriptor;
25
+ }
26
+ /**
27
+ * The code with its coupon.
28
+ */
29
+ buildReturnStatement() {
30
+ const { nodeName } = stripe_coupon_code_meta_1.stripeCouponCodeMeta;
31
+ return `
32
+ MATCH (${nodeName})<-[:HAS_CODE]-(${nodeName}_coupon:${stripe_coupon_meta_1.stripeCouponMeta.labelName})
33
+ RETURN ${nodeName},
34
+ ${nodeName}_coupon
35
+ `;
36
+ }
37
+ /**
38
+ * The active code marked "Apply automatically", with its coupon. At most one exists.
39
+ */
40
+ async findAutomatic() {
41
+ const { nodeName } = stripe_coupon_code_meta_1.stripeCouponCodeMeta;
42
+ const query = this.neo4j.initQuery({ serialiser: stripe_coupon_code_1.StripeCouponCodeDescriptor.model });
43
+ query.query += `
44
+ ${this.buildDefaultMatch()}
45
+ WHERE ${nodeName}.automatic = true AND ${nodeName}.active = true
46
+ WITH ${nodeName}
47
+ ORDER BY ${nodeName}.updatedAt DESC
48
+ LIMIT 1
49
+ ${this.buildReturnStatement()}
50
+ `;
51
+ return this.neo4j.readOne(query);
52
+ }
53
+ /**
54
+ * The code mirrored from a Stripe promotion code id.
55
+ */
56
+ async findByStripePromotionCodeId(params) {
57
+ const query = this.neo4j.initQuery({ serialiser: stripe_coupon_code_1.StripeCouponCodeDescriptor.model });
58
+ query.queryParams = { ...query.queryParams, searchValue: params.stripePromotionCodeId };
59
+ query.query += `
60
+ ${this.buildDefaultMatch({ searchField: "stripePromotionCodeId" })}
61
+ ${this.buildReturnStatement()}
62
+ `;
63
+ return this.neo4j.readOne(query);
64
+ }
65
+ /**
66
+ * Switches "Apply automatically" on one code in a single write. Turning it on clears it
67
+ * on every other code first, so two codes never have it; turning it off only clears the target.
68
+ */
69
+ async setAutomatic(params) {
70
+ const { nodeName, labelName } = stripe_coupon_code_meta_1.stripeCouponCodeMeta;
71
+ const query = this.neo4j.initQuery({ serialiser: stripe_coupon_code_1.StripeCouponCodeDescriptor.model });
72
+ query.queryParams = { ...query.queryParams, searchValue: params.id };
73
+ if (!params.automatic) {
74
+ query.query += `
75
+ ${this.buildDefaultMatch({ searchField: "id" })}
76
+ SET ${nodeName}.automatic = false, ${nodeName}.updatedAt = datetime()
77
+ `;
78
+ }
79
+ else {
80
+ query.query += `
81
+ ${this.buildDefaultMatch({ searchField: "id" })}
82
+ OPTIONAL MATCH (${nodeName}_other:${labelName})
83
+ WHERE ${nodeName}_other.id <> $searchValue AND ${nodeName}_other.automatic = true
84
+ SET ${nodeName}_other.automatic = false, ${nodeName}_other.updatedAt = datetime()
85
+ WITH DISTINCT ${nodeName}
86
+ SET ${nodeName}.automatic = true, ${nodeName}.updatedAt = datetime()
87
+ `;
88
+ }
89
+ await this.neo4j.writeOne(query);
90
+ }
91
+ };
92
+ exports.StripeCouponCodeRepository = StripeCouponCodeRepository;
93
+ exports.StripeCouponCodeRepository = StripeCouponCodeRepository = __decorate([
94
+ (0, common_1.Injectable)(),
95
+ __metadata("design:paramtypes", [neo4j_service_1.Neo4jService, security_service_1.SecurityService, nestjs_cls_1.ClsService])
96
+ ], StripeCouponCodeRepository);
97
+ //# sourceMappingURL=stripe-coupon-code.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripe-coupon-code.repository.js","sourceRoot":"","sources":["../../../../src/foundations/stripe-coupon/repositories/stripe-coupon-code.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,2CAAwC;AACxC,2FAAuF;AACvF,8EAA0E;AAC1E,uFAAmF;AACnF,uEAA8F;AAC9F,iFAA2E;AAC3E,uEAAkE;AAG3D,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,wCAG/C;IAGC,YAAY,KAAmB,EAAE,eAAgC,EAAE,UAAsB;QACvF,KAAK,CAAC,KAAK,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;QAHzB,eAAU,GAAG,+CAA0B,CAAC;IAI3D,CAAC;IAED;;OAEG;IACO,oBAAoB;QAC5B,MAAM,EAAE,QAAQ,EAAE,GAAG,8CAAoB,CAAC;QAE1C,OAAO;eACI,QAAQ,mBAAmB,QAAQ,WAAW,qCAAgB,CAAC,SAAS;eACxE,QAAQ;UACb,QAAQ;KACb,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa;QACjB,MAAM,EAAE,QAAQ,EAAE,GAAG,8CAAoB,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,+CAA0B,CAAC,KAAK,EAAE,CAAC,CAAC;QAErF,KAAK,CAAC,KAAK,IAAI;QACX,IAAI,CAAC,iBAAiB,EAAE;cAClB,QAAQ,yBAAyB,QAAQ;aAC1C,QAAQ;iBACJ,QAAQ;;QAEjB,IAAI,CAAC,oBAAoB,EAAE;KAC9B,CAAC;QAEF,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,2BAA2B,CAAC,MAAyC;QACzE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,+CAA0B,CAAC,KAAK,EAAE,CAAC,CAAC;QAErF,KAAK,CAAC,WAAW,GAAG,EAAE,GAAG,KAAK,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,qBAAqB,EAAE,CAAC;QAExF,KAAK,CAAC,KAAK,IAAI;QACX,IAAI,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC;QAChE,IAAI,CAAC,oBAAoB,EAAE;KAC9B,CAAC;QAEF,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAC,MAA0C;QAC3D,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,8CAAoB,CAAC;QACrD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,+CAA0B,CAAC,KAAK,EAAE,CAAC,CAAC;QAErF,KAAK,CAAC,WAAW,GAAG,EAAE,GAAG,KAAK,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;QAErE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACtB,KAAK,CAAC,KAAK,IAAI;QACb,IAAI,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;YACzC,QAAQ,uBAAuB,QAAQ;KAC9C,CAAC;QACF,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,KAAK,IAAI;QACb,IAAI,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;wBAC7B,QAAQ,UAAU,SAAS;cACrC,QAAQ,iCAAiC,QAAQ;YACnD,QAAQ,6BAA6B,QAAQ;sBACnC,QAAQ;YAClB,QAAQ,sBAAsB,QAAQ;KAC7C,CAAC;QACF,CAAC;QAED,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;CACF,CAAA;AAtFY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,mBAAU,GAAE;qCAOQ,4BAAY,EAAmB,kCAAe,EAAc,uBAAU;GAN9E,0BAA0B,CAsFtC"}
@@ -0,0 +1,29 @@
1
+ import { ClsService } from "nestjs-cls";
2
+ import { AbstractRepository } from "../../../core/neo4j/abstracts/abstract.repository";
3
+ import { Neo4jService } from "../../../core/neo4j/services/neo4j.service";
4
+ import { SecurityService } from "../../../core/security/services/security.service";
5
+ import { StripeCoupon, StripeCouponDescriptor } from "../entities/stripe-coupon";
6
+ export declare class StripeCouponRepository extends AbstractRepository<StripeCoupon, typeof StripeCouponDescriptor.relationships> {
7
+ protected readonly descriptor: import("../../..").EntityDescriptor<StripeCoupon, {
8
+ codes: {
9
+ model: import("../../..").DataMeta;
10
+ direction: "out";
11
+ relationship: string;
12
+ cardinality: "many";
13
+ required: false;
14
+ dtoKey: string;
15
+ };
16
+ }>;
17
+ constructor(neo4j: Neo4jService, securityService: SecurityService, clsService: ClsService);
18
+ /**
19
+ * The coupon with its codes.
20
+ */
21
+ protected buildReturnStatement(): string;
22
+ /**
23
+ * The coupon mirrored from a Stripe coupon id.
24
+ */
25
+ findByStripeCouponId(params: {
26
+ stripeCouponId: string;
27
+ }): Promise<StripeCoupon | null>;
28
+ }
29
+ //# sourceMappingURL=stripe-coupon.repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripe-coupon.repository.d.ts","sourceRoot":"","sources":["../../../../src/foundations/stripe-coupon/repositories/stripe-coupon.repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAIjF,qBACa,sBAAuB,SAAQ,kBAAkB,CAC5D,YAAY,EACZ,OAAO,sBAAsB,CAAC,aAAa,CAC5C;IACC,SAAS,CAAC,QAAQ,CAAC,UAAU;;;;;;;;;OAA0B;gBAE3C,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU;IAIzF;;OAEG;IACH,SAAS,CAAC,oBAAoB,IAAI,MAAM;IAUxC;;OAEG;IACG,oBAAoB,CAAC,MAAM,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;CAY7F"}
@@ -0,0 +1,55 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.StripeCouponRepository = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const nestjs_cls_1 = require("nestjs-cls");
15
+ const abstract_repository_1 = require("../../../core/neo4j/abstracts/abstract.repository");
16
+ const neo4j_service_1 = require("../../../core/neo4j/services/neo4j.service");
17
+ const security_service_1 = require("../../../core/security/services/security.service");
18
+ const stripe_coupon_1 = require("../entities/stripe-coupon");
19
+ const stripe_coupon_code_meta_1 = require("../entities/stripe-coupon-code.meta");
20
+ const stripe_coupon_meta_1 = require("../entities/stripe-coupon.meta");
21
+ let StripeCouponRepository = class StripeCouponRepository extends abstract_repository_1.AbstractRepository {
22
+ constructor(neo4j, securityService, clsService) {
23
+ super(neo4j, securityService, clsService);
24
+ this.descriptor = stripe_coupon_1.StripeCouponDescriptor;
25
+ }
26
+ /**
27
+ * The coupon with its codes.
28
+ */
29
+ buildReturnStatement() {
30
+ const { nodeName } = stripe_coupon_meta_1.stripeCouponMeta;
31
+ return `
32
+ OPTIONAL MATCH (${nodeName})-[:HAS_CODE]->(${nodeName}_codes:${stripe_coupon_code_meta_1.stripeCouponCodeMeta.labelName})
33
+ RETURN ${nodeName},
34
+ ${nodeName}_codes
35
+ `;
36
+ }
37
+ /**
38
+ * The coupon mirrored from a Stripe coupon id.
39
+ */
40
+ async findByStripeCouponId(params) {
41
+ const query = this.neo4j.initQuery({ serialiser: stripe_coupon_1.StripeCouponDescriptor.model });
42
+ query.queryParams = { ...query.queryParams, searchValue: params.stripeCouponId };
43
+ query.query += `
44
+ ${this.buildDefaultMatch({ searchField: "stripeCouponId" })}
45
+ ${this.buildReturnStatement()}
46
+ `;
47
+ return this.neo4j.readOne(query);
48
+ }
49
+ };
50
+ exports.StripeCouponRepository = StripeCouponRepository;
51
+ exports.StripeCouponRepository = StripeCouponRepository = __decorate([
52
+ (0, common_1.Injectable)(),
53
+ __metadata("design:paramtypes", [neo4j_service_1.Neo4jService, security_service_1.SecurityService, nestjs_cls_1.ClsService])
54
+ ], StripeCouponRepository);
55
+ //# sourceMappingURL=stripe-coupon.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripe-coupon.repository.js","sourceRoot":"","sources":["../../../../src/foundations/stripe-coupon/repositories/stripe-coupon.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,2CAAwC;AACxC,2FAAuF;AACvF,8EAA0E;AAC1E,uFAAmF;AACnF,6DAAiF;AACjF,iFAA2E;AAC3E,uEAAkE;AAG3D,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,wCAG3C;IAGC,YAAY,KAAmB,EAAE,eAAgC,EAAE,UAAsB;QACvF,KAAK,CAAC,KAAK,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;QAHzB,eAAU,GAAG,sCAAsB,CAAC;IAIvD,CAAC;IAED;;OAEG;IACO,oBAAoB;QAC5B,MAAM,EAAE,QAAQ,EAAE,GAAG,qCAAgB,CAAC;QAEtC,OAAO;wBACa,QAAQ,mBAAmB,QAAQ,UAAU,8CAAoB,CAAC,SAAS;eACpF,QAAQ;UACb,QAAQ;KACb,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB,CAAC,MAAkC;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,sCAAsB,CAAC,KAAK,EAAE,CAAC,CAAC;QAEjF,KAAK,CAAC,WAAW,GAAG,EAAE,GAAG,KAAK,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC;QAEjF,KAAK,CAAC,KAAK,IAAI;QACX,IAAI,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;QACzD,IAAI,CAAC,oBAAoB,EAAE;KAC9B,CAAC;QAEF,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;CACF,CAAA;AAtCY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,GAAE;qCAOQ,4BAAY,EAAmB,kCAAe,EAAc,uBAAU;GAN9E,sBAAsB,CAsClC"}
@@ -0,0 +1,70 @@
1
+ import Stripe from "stripe";
2
+ import { StripeService } from "../../stripe/services/stripe.service";
3
+ import type { StripeCouponDurationType } from "../entities/stripe-coupon";
4
+ /**
5
+ * Stripe Coupon API Service
6
+ *
7
+ * Thin wrapper over the Stripe SDK for coupons and their customer-facing promotion codes.
8
+ * Stripe only allows a coupon's name (and metadata) to change after creation, and a
9
+ * promotion code's `active` flag, so there is no general update method.
10
+ */
11
+ export declare class StripeCouponApiService {
12
+ private readonly stripeService;
13
+ constructor(stripeService: StripeService);
14
+ /**
15
+ * Create a coupon. `percentOff` makes a percentage coupon; otherwise `amountOff` + `currency`
16
+ * make a fixed-amount one.
17
+ */
18
+ createCoupon(params: {
19
+ id?: string;
20
+ name: string;
21
+ percentOff?: number;
22
+ amountOff?: number;
23
+ currency?: string;
24
+ duration: StripeCouponDurationType;
25
+ durationInMonths?: number;
26
+ stripeProductIds?: string[];
27
+ redeemBy?: Date;
28
+ maxRedemptions?: number;
29
+ }): Promise<Stripe.Coupon>;
30
+ /**
31
+ * Rename a coupon (the name is shown to customers on invoices).
32
+ */
33
+ renameCoupon(params: {
34
+ stripeCouponId: string;
35
+ name: string;
36
+ }): Promise<Stripe.Coupon>;
37
+ /**
38
+ * Delete a coupon. Used to roll back a coupon whose first code could not be created.
39
+ */
40
+ deleteCoupon(stripeCouponId: string): Promise<void>;
41
+ retrieveCoupon(stripeCouponId: string): Promise<Stripe.Coupon>;
42
+ /**
43
+ * Create a customer-facing promotion code on a coupon. With this API version the coupon
44
+ * goes under `promotion` (`{ type: "coupon", coupon }`), not on the code itself.
45
+ * Stripe generates the code text when `code` is empty.
46
+ */
47
+ createPromotionCode(params: {
48
+ stripeCouponId: string;
49
+ code?: string;
50
+ firstTimeTransaction?: boolean;
51
+ minimumAmount?: number;
52
+ minimumAmountCurrency?: string;
53
+ stripeCustomerId?: string;
54
+ expiresAt?: Date;
55
+ maxRedemptions?: number;
56
+ }): Promise<Stripe.PromotionCode>;
57
+ /**
58
+ * Deactivate or reactivate a promotion code. An expired or used-up code stays unusable.
59
+ */
60
+ setPromotionCodeActive(params: {
61
+ stripePromotionCodeId: string;
62
+ active: boolean;
63
+ }): Promise<Stripe.PromotionCode>;
64
+ /**
65
+ * Retrieve a promotion code with its coupon expanded. The coupon hangs off `promotion`,
66
+ * so the expansion is `promotion.coupon` (expanding `coupon` is silently ignored).
67
+ */
68
+ retrievePromotionCode(stripePromotionCodeId: string): Promise<Stripe.PromotionCode>;
69
+ }
70
+ //# sourceMappingURL=stripe-coupon-api.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripe-coupon-api.service.d.ts","sourceRoot":"","sources":["../../../../src/foundations/stripe-coupon/services/stripe-coupon-api.service.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAI1E;;;;;;GAMG;AACH,qBACa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEzD;;;OAGG;IAEG,YAAY,CAAC,MAAM,EAAE;QACzB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,wBAAwB,CAAC;QACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC5B,QAAQ,CAAC,EAAE,IAAI,CAAC;QAChB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;IAkC1B;;OAEG;IAEG,YAAY,CAAC,MAAM,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;IAK5F;;OAEG;IAEG,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnD,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;IAKpE;;;;OAIG;IAEG,mBAAmB,CAAC,MAAM,EAAE;QAChC,cAAc,EAAE,MAAM,CAAC;QACvB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,SAAS,CAAC,EAAE,IAAI,CAAC;QACjB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC;IAyBjC;;OAEG;IAEG,sBAAsB,CAAC,MAAM,EAAE;QACnC,qBAAqB,EAAE,MAAM,CAAC;QAC9B,MAAM,EAAE,OAAO,CAAC;KACjB,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC;IAKjC;;;OAGG;IAEG,qBAAqB,CAAC,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC;CAI1F"}
@@ -0,0 +1,172 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.StripeCouponApiService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const stripe_errors_1 = require("../../stripe/errors/stripe.errors");
15
+ const stripe_service_1 = require("../../stripe/services/stripe.service");
16
+ const toUnixSeconds = (date) => Math.floor(date.getTime() / 1000);
17
+ /**
18
+ * Stripe Coupon API Service
19
+ *
20
+ * Thin wrapper over the Stripe SDK for coupons and their customer-facing promotion codes.
21
+ * Stripe only allows a coupon's name (and metadata) to change after creation, and a
22
+ * promotion code's `active` flag, so there is no general update method.
23
+ */
24
+ let StripeCouponApiService = class StripeCouponApiService {
25
+ constructor(stripeService) {
26
+ this.stripeService = stripeService;
27
+ }
28
+ /**
29
+ * Create a coupon. `percentOff` makes a percentage coupon; otherwise `amountOff` + `currency`
30
+ * make a fixed-amount one.
31
+ */
32
+ async createCoupon(params) {
33
+ const stripe = this.stripeService.getClient();
34
+ const couponParams = {
35
+ name: params.name,
36
+ duration: params.duration,
37
+ };
38
+ if (params.id)
39
+ couponParams.id = params.id;
40
+ if (params.percentOff !== undefined && params.percentOff !== null) {
41
+ couponParams.percent_off = params.percentOff;
42
+ }
43
+ else {
44
+ couponParams.amount_off = params.amountOff;
45
+ couponParams.currency = params.currency;
46
+ }
47
+ if (params.duration === "repeating" && params.durationInMonths !== undefined) {
48
+ couponParams.duration_in_months = params.durationInMonths;
49
+ }
50
+ if (params.maxRedemptions !== undefined && params.maxRedemptions !== null) {
51
+ couponParams.max_redemptions = params.maxRedemptions;
52
+ }
53
+ if (params.stripeProductIds?.length) {
54
+ couponParams.applies_to = { products: params.stripeProductIds };
55
+ }
56
+ if (params.redeemBy)
57
+ couponParams.redeem_by = toUnixSeconds(params.redeemBy);
58
+ return stripe.coupons.create(couponParams);
59
+ }
60
+ /**
61
+ * Rename a coupon (the name is shown to customers on invoices).
62
+ */
63
+ async renameCoupon(params) {
64
+ const stripe = this.stripeService.getClient();
65
+ return stripe.coupons.update(params.stripeCouponId, { name: params.name });
66
+ }
67
+ /**
68
+ * Delete a coupon. Used to roll back a coupon whose first code could not be created.
69
+ */
70
+ async deleteCoupon(stripeCouponId) {
71
+ const stripe = this.stripeService.getClient();
72
+ await stripe.coupons.del(stripeCouponId);
73
+ }
74
+ async retrieveCoupon(stripeCouponId) {
75
+ const stripe = this.stripeService.getClient();
76
+ return stripe.coupons.retrieve(stripeCouponId);
77
+ }
78
+ /**
79
+ * Create a customer-facing promotion code on a coupon. With this API version the coupon
80
+ * goes under `promotion` (`{ type: "coupon", coupon }`), not on the code itself.
81
+ * Stripe generates the code text when `code` is empty.
82
+ */
83
+ async createPromotionCode(params) {
84
+ const stripe = this.stripeService.getClient();
85
+ const codeParams = {
86
+ promotion: { type: "coupon", coupon: params.stripeCouponId },
87
+ };
88
+ if (params.code)
89
+ codeParams.code = params.code;
90
+ if (params.stripeCustomerId)
91
+ codeParams.customer = params.stripeCustomerId;
92
+ if (params.expiresAt)
93
+ codeParams.expires_at = toUnixSeconds(params.expiresAt);
94
+ if (params.maxRedemptions !== undefined && params.maxRedemptions !== null) {
95
+ codeParams.max_redemptions = params.maxRedemptions;
96
+ }
97
+ const restrictions = {};
98
+ if (params.firstTimeTransaction !== undefined)
99
+ restrictions.first_time_transaction = params.firstTimeTransaction;
100
+ if (params.minimumAmount !== undefined && params.minimumAmount !== null) {
101
+ restrictions.minimum_amount = params.minimumAmount;
102
+ if (params.minimumAmountCurrency)
103
+ restrictions.minimum_amount_currency = params.minimumAmountCurrency;
104
+ }
105
+ if (Object.keys(restrictions).length > 0)
106
+ codeParams.restrictions = restrictions;
107
+ return stripe.promotionCodes.create(codeParams);
108
+ }
109
+ /**
110
+ * Deactivate or reactivate a promotion code. An expired or used-up code stays unusable.
111
+ */
112
+ async setPromotionCodeActive(params) {
113
+ const stripe = this.stripeService.getClient();
114
+ return stripe.promotionCodes.update(params.stripePromotionCodeId, { active: params.active });
115
+ }
116
+ /**
117
+ * Retrieve a promotion code with its coupon expanded. The coupon hangs off `promotion`,
118
+ * so the expansion is `promotion.coupon` (expanding `coupon` is silently ignored).
119
+ */
120
+ async retrievePromotionCode(stripePromotionCodeId) {
121
+ const stripe = this.stripeService.getClient();
122
+ return stripe.promotionCodes.retrieve(stripePromotionCodeId, { expand: ["promotion.coupon"] });
123
+ }
124
+ };
125
+ exports.StripeCouponApiService = StripeCouponApiService;
126
+ __decorate([
127
+ (0, stripe_errors_1.HandleStripeErrors)(),
128
+ __metadata("design:type", Function),
129
+ __metadata("design:paramtypes", [Object]),
130
+ __metadata("design:returntype", Promise)
131
+ ], StripeCouponApiService.prototype, "createCoupon", null);
132
+ __decorate([
133
+ (0, stripe_errors_1.HandleStripeErrors)(),
134
+ __metadata("design:type", Function),
135
+ __metadata("design:paramtypes", [Object]),
136
+ __metadata("design:returntype", Promise)
137
+ ], StripeCouponApiService.prototype, "renameCoupon", null);
138
+ __decorate([
139
+ (0, stripe_errors_1.HandleStripeErrors)(),
140
+ __metadata("design:type", Function),
141
+ __metadata("design:paramtypes", [String]),
142
+ __metadata("design:returntype", Promise)
143
+ ], StripeCouponApiService.prototype, "deleteCoupon", null);
144
+ __decorate([
145
+ (0, stripe_errors_1.HandleStripeErrors)(),
146
+ __metadata("design:type", Function),
147
+ __metadata("design:paramtypes", [String]),
148
+ __metadata("design:returntype", Promise)
149
+ ], StripeCouponApiService.prototype, "retrieveCoupon", null);
150
+ __decorate([
151
+ (0, stripe_errors_1.HandleStripeErrors)(),
152
+ __metadata("design:type", Function),
153
+ __metadata("design:paramtypes", [Object]),
154
+ __metadata("design:returntype", Promise)
155
+ ], StripeCouponApiService.prototype, "createPromotionCode", null);
156
+ __decorate([
157
+ (0, stripe_errors_1.HandleStripeErrors)(),
158
+ __metadata("design:type", Function),
159
+ __metadata("design:paramtypes", [Object]),
160
+ __metadata("design:returntype", Promise)
161
+ ], StripeCouponApiService.prototype, "setPromotionCodeActive", null);
162
+ __decorate([
163
+ (0, stripe_errors_1.HandleStripeErrors)(),
164
+ __metadata("design:type", Function),
165
+ __metadata("design:paramtypes", [String]),
166
+ __metadata("design:returntype", Promise)
167
+ ], StripeCouponApiService.prototype, "retrievePromotionCode", null);
168
+ exports.StripeCouponApiService = StripeCouponApiService = __decorate([
169
+ (0, common_1.Injectable)(),
170
+ __metadata("design:paramtypes", [stripe_service_1.StripeService])
171
+ ], StripeCouponApiService);
172
+ //# sourceMappingURL=stripe-coupon-api.service.js.map