@kshon/loyalty-plugin 2.14.2

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 (222) hide show
  1. package/.medusa/server/src/admin/index.js +69052 -0
  2. package/.medusa/server/src/admin/index.mjs +69034 -0
  3. package/.medusa/server/src/api/admin/gift-cards/[id]/orders/route.d.ts +2 -0
  4. package/.medusa/server/src/api/admin/gift-cards/[id]/orders/route.js +28 -0
  5. package/.medusa/server/src/api/admin/gift-cards/[id]/route.d.ts +4 -0
  6. package/.medusa/server/src/api/admin/gift-cards/[id]/route.js +41 -0
  7. package/.medusa/server/src/api/admin/gift-cards/middlewares.d.ts +2 -0
  8. package/.medusa/server/src/api/admin/gift-cards/middlewares.js +46 -0
  9. package/.medusa/server/src/api/admin/gift-cards/query-config.d.ts +14 -0
  10. package/.medusa/server/src/api/admin/gift-cards/query-config.js +32 -0
  11. package/.medusa/server/src/api/admin/gift-cards/route.d.ts +4 -0
  12. package/.medusa/server/src/api/admin/gift-cards/route.js +42 -0
  13. package/.medusa/server/src/api/admin/gift-cards/validators.d.ts +139 -0
  14. package/.medusa/server/src/api/admin/gift-cards/validators.js +56 -0
  15. package/.medusa/server/src/api/admin/store-credit-accounts/[id]/credit/route.d.ts +3 -0
  16. package/.medusa/server/src/api/admin/store-credit-accounts/[id]/credit/route.js +30 -0
  17. package/.medusa/server/src/api/admin/store-credit-accounts/[id]/route.d.ts +3 -0
  18. package/.medusa/server/src/api/admin/store-credit-accounts/[id]/route.js +19 -0
  19. package/.medusa/server/src/api/admin/store-credit-accounts/[id]/transactions/route.d.ts +3 -0
  20. package/.medusa/server/src/api/admin/store-credit-accounts/[id]/transactions/route.js +23 -0
  21. package/.medusa/server/src/api/admin/store-credit-accounts/middlewares.d.ts +2 -0
  22. package/.medusa/server/src/api/admin/store-credit-accounts/middlewares.js +46 -0
  23. package/.medusa/server/src/api/admin/store-credit-accounts/query-config.d.ts +18 -0
  24. package/.medusa/server/src/api/admin/store-credit-accounts/query-config.js +44 -0
  25. package/.medusa/server/src/api/admin/store-credit-accounts/route.d.ts +4 -0
  26. package/.medusa/server/src/api/admin/store-credit-accounts/route.js +52 -0
  27. package/.medusa/server/src/api/admin/store-credit-accounts/validators.d.ts +142 -0
  28. package/.medusa/server/src/api/admin/store-credit-accounts/validators.js +45 -0
  29. package/.medusa/server/src/api/middlewares.d.ts +2 -0
  30. package/.medusa/server/src/api/middlewares.js +18 -0
  31. package/.medusa/server/src/api/store/carts/[id]/gift-cards/route.d.ts +5 -0
  32. package/.medusa/server/src/api/store/carts/[id]/gift-cards/route.js +43 -0
  33. package/.medusa/server/src/api/store/carts/[id]/store-credits/route.d.ts +4 -0
  34. package/.medusa/server/src/api/store/carts/[id]/store-credits/route.js +24 -0
  35. package/.medusa/server/src/api/store/carts/middlewares.d.ts +2 -0
  36. package/.medusa/server/src/api/store/carts/middlewares.js +35 -0
  37. package/.medusa/server/src/api/store/carts/query-config.d.ts +4 -0
  38. package/.medusa/server/src/api/store/carts/query-config.js +9 -0
  39. package/.medusa/server/src/api/store/carts/validators.d.ts +13 -0
  40. package/.medusa/server/src/api/store/carts/validators.js +14 -0
  41. package/.medusa/server/src/api/store/gift-cards/[idOrCode]/route.d.ts +3 -0
  42. package/.medusa/server/src/api/store/gift-cards/[idOrCode]/route.js +24 -0
  43. package/.medusa/server/src/api/store/gift-cards/middlewares.d.ts +2 -0
  44. package/.medusa/server/src/api/store/gift-cards/middlewares.js +16 -0
  45. package/.medusa/server/src/api/store/gift-cards/query-config.d.ts +9 -0
  46. package/.medusa/server/src/api/store/gift-cards/query-config.js +23 -0
  47. package/.medusa/server/src/api/store/gift-cards/validators.d.ts +7 -0
  48. package/.medusa/server/src/api/store/gift-cards/validators.js +8 -0
  49. package/.medusa/server/src/api/store/store-credit-accounts/[id]/route.d.ts +3 -0
  50. package/.medusa/server/src/api/store/store-credit-accounts/[id]/route.js +31 -0
  51. package/.medusa/server/src/api/store/store-credit-accounts/claim/route.d.ts +3 -0
  52. package/.medusa/server/src/api/store/store-credit-accounts/claim/route.js +25 -0
  53. package/.medusa/server/src/api/store/store-credit-accounts/middlewares.d.ts +2 -0
  54. package/.medusa/server/src/api/store/store-credit-accounts/middlewares.js +36 -0
  55. package/.medusa/server/src/api/store/store-credit-accounts/query-config.d.ts +9 -0
  56. package/.medusa/server/src/api/store/store-credit-accounts/query-config.js +24 -0
  57. package/.medusa/server/src/api/store/store-credit-accounts/route.d.ts +3 -0
  58. package/.medusa/server/src/api/store/store-credit-accounts/route.js +40 -0
  59. package/.medusa/server/src/api/store/store-credit-accounts/validators.d.ts +44 -0
  60. package/.medusa/server/src/api/store/store-credit-accounts/validators.js +19 -0
  61. package/.medusa/server/src/links/cart-gift-cards-link.d.ts +2 -0
  62. package/.medusa/server/src/links/cart-gift-cards-link.js +13 -0
  63. package/.medusa/server/src/links/customer-store-credit-account-link.d.ts +1 -0
  64. package/.medusa/server/src/links/customer-store-credit-account-link.js +13 -0
  65. package/.medusa/server/src/links/gift-card-store-credit.d.ts +2 -0
  66. package/.medusa/server/src/links/gift-card-store-credit.js +10 -0
  67. package/.medusa/server/src/links/order-gift-cards-link.d.ts +2 -0
  68. package/.medusa/server/src/links/order-gift-cards-link.js +13 -0
  69. package/.medusa/server/src/links/order-line-item-gift-card-link.d.ts +1 -0
  70. package/.medusa/server/src/links/order-line-item-gift-card-link.js +19 -0
  71. package/.medusa/server/src/modules/loyalty/index.d.ts +21 -0
  72. package/.medusa/server/src/modules/loyalty/index.js +12 -0
  73. package/.medusa/server/src/modules/loyalty/migrations/Migration20250123130553.d.ts +5 -0
  74. package/.medusa/server/src/modules/loyalty/migrations/Migration20250123130553.js +17 -0
  75. package/.medusa/server/src/modules/loyalty/migrations/Migration20250127174331.d.ts +5 -0
  76. package/.medusa/server/src/modules/loyalty/migrations/Migration20250127174331.js +19 -0
  77. package/.medusa/server/src/modules/loyalty/migrations/Migration20250206141026.d.ts +5 -0
  78. package/.medusa/server/src/modules/loyalty/migrations/Migration20250206141026.js +19 -0
  79. package/.medusa/server/src/modules/loyalty/migrations/Migration20250206141429.d.ts +5 -0
  80. package/.medusa/server/src/modules/loyalty/migrations/Migration20250206141429.js +14 -0
  81. package/.medusa/server/src/modules/loyalty/migrations/Migration20250206144714.d.ts +5 -0
  82. package/.medusa/server/src/modules/loyalty/migrations/Migration20250206144714.js +14 -0
  83. package/.medusa/server/src/modules/loyalty/migrations/Migration20250326095923.d.ts +5 -0
  84. package/.medusa/server/src/modules/loyalty/migrations/Migration20250326095923.js +16 -0
  85. package/.medusa/server/src/modules/loyalty/migrations/Migration20250617080328.d.ts +5 -0
  86. package/.medusa/server/src/modules/loyalty/migrations/Migration20250617080328.js +20 -0
  87. package/.medusa/server/src/modules/loyalty/models/gift-card.d.ts +18 -0
  88. package/.medusa/server/src/modules/loyalty/models/gift-card.js +18 -0
  89. package/.medusa/server/src/modules/loyalty/models/index.d.ts +1 -0
  90. package/.medusa/server/src/modules/loyalty/models/index.js +9 -0
  91. package/.medusa/server/src/modules/loyalty/service.d.ts +21 -0
  92. package/.medusa/server/src/modules/loyalty/service.js +13 -0
  93. package/.medusa/server/src/modules/store-credit/index.d.ts +5 -0
  94. package/.medusa/server/src/modules/store-credit/index.js +12 -0
  95. package/.medusa/server/src/modules/store-credit/migrations/Migration20250129115518.d.ts +5 -0
  96. package/.medusa/server/src/modules/store-credit/migrations/Migration20250129115518.js +16 -0
  97. package/.medusa/server/src/modules/store-credit/migrations/Migration20250130213237.d.ts +5 -0
  98. package/.medusa/server/src/modules/store-credit/migrations/Migration20250130213237.js +18 -0
  99. package/.medusa/server/src/modules/store-credit/migrations/Migration20250130220640.d.ts +5 -0
  100. package/.medusa/server/src/modules/store-credit/migrations/Migration20250130220640.js +19 -0
  101. package/.medusa/server/src/modules/store-credit/migrations/Migration20250131205753.d.ts +5 -0
  102. package/.medusa/server/src/modules/store-credit/migrations/Migration20250131205753.js +14 -0
  103. package/.medusa/server/src/modules/store-credit/migrations/Migration20250520081315.d.ts +5 -0
  104. package/.medusa/server/src/modules/store-credit/migrations/Migration20250520081315.js +16 -0
  105. package/.medusa/server/src/modules/store-credit/migrations/Migration20250626081315.d.ts +5 -0
  106. package/.medusa/server/src/modules/store-credit/migrations/Migration20250626081315.js +16 -0
  107. package/.medusa/server/src/modules/store-credit/migrations/Migration20250722080351.d.ts +5 -0
  108. package/.medusa/server/src/modules/store-credit/migrations/Migration20250722080351.js +27 -0
  109. package/.medusa/server/src/modules/store-credit/models/account-transaction.d.ts +28 -0
  110. package/.medusa/server/src/modules/store-credit/models/account-transaction.js +21 -0
  111. package/.medusa/server/src/modules/store-credit/models/index.d.ts +2 -0
  112. package/.medusa/server/src/modules/store-credit/models/index.js +11 -0
  113. package/.medusa/server/src/modules/store-credit/models/store-credit-account.d.ts +27 -0
  114. package/.medusa/server/src/modules/store-credit/models/store-credit-account.js +27 -0
  115. package/.medusa/server/src/modules/store-credit/service.d.ts +29 -0
  116. package/.medusa/server/src/modules/store-credit/service.js +253 -0
  117. package/.medusa/server/src/subscribers/create-gift-card.d.ts +5 -0
  118. package/.medusa/server/src/subscribers/create-gift-card.js +53 -0
  119. package/.medusa/server/src/types/cart/index.d.ts +12 -0
  120. package/.medusa/server/src/types/cart/index.js +3 -0
  121. package/.medusa/server/src/types/http/gift-card.d.ts +42 -0
  122. package/.medusa/server/src/types/http/gift-card.js +3 -0
  123. package/.medusa/server/src/types/http/index.d.ts +3 -0
  124. package/.medusa/server/src/types/http/index.js +20 -0
  125. package/.medusa/server/src/types/http/store-credit-account.d.ts +60 -0
  126. package/.medusa/server/src/types/http/store-credit-account.js +3 -0
  127. package/.medusa/server/src/types/http/transaction.d.ts +19 -0
  128. package/.medusa/server/src/types/http/transaction.js +3 -0
  129. package/.medusa/server/src/types/index.d.ts +4 -0
  130. package/.medusa/server/src/types/index.js +21 -0
  131. package/.medusa/server/src/types/loyalty/index.d.ts +3 -0
  132. package/.medusa/server/src/types/loyalty/index.js +20 -0
  133. package/.medusa/server/src/types/loyalty/module.d.ts +151 -0
  134. package/.medusa/server/src/types/loyalty/module.js +12 -0
  135. package/.medusa/server/src/types/loyalty/service.d.ts +168 -0
  136. package/.medusa/server/src/types/loyalty/service.js +3 -0
  137. package/.medusa/server/src/types/loyalty/workflows.d.ts +3 -0
  138. package/.medusa/server/src/types/loyalty/workflows.js +3 -0
  139. package/.medusa/server/src/types/modules.d.ts +6 -0
  140. package/.medusa/server/src/types/modules.js +12 -0
  141. package/.medusa/server/src/types/store-credit/index.d.ts +2 -0
  142. package/.medusa/server/src/types/store-credit/index.js +19 -0
  143. package/.medusa/server/src/types/store-credit/module.d.ts +290 -0
  144. package/.medusa/server/src/types/store-credit/module.js +13 -0
  145. package/.medusa/server/src/types/store-credit/service.d.ts +325 -0
  146. package/.medusa/server/src/types/store-credit/service.js +3 -0
  147. package/.medusa/server/src/utils/code-generator.d.ts +1 -0
  148. package/.medusa/server/src/utils/code-generator.js +32 -0
  149. package/.medusa/server/src/workflows/carts/index.d.ts +5 -0
  150. package/.medusa/server/src/workflows/carts/index.js +22 -0
  151. package/.medusa/server/src/workflows/carts/steps/validate-gift-card-balances.d.ts +37 -0
  152. package/.medusa/server/src/workflows/carts/steps/validate-gift-card-balances.js +36 -0
  153. package/.medusa/server/src/workflows/carts/workflows/add-gift-card-to-cart.d.ts +118 -0
  154. package/.medusa/server/src/workflows/carts/workflows/add-gift-card-to-cart.js +179 -0
  155. package/.medusa/server/src/workflows/carts/workflows/add-store-credits-to-cart.d.ts +88 -0
  156. package/.medusa/server/src/workflows/carts/workflows/add-store-credits-to-cart.js +134 -0
  157. package/.medusa/server/src/workflows/carts/workflows/confirm-cart-credit-lines.d.ts +68 -0
  158. package/.medusa/server/src/workflows/carts/workflows/confirm-cart-credit-lines.js +110 -0
  159. package/.medusa/server/src/workflows/carts/workflows/refresh-cart-gift-cards.d.ts +30 -0
  160. package/.medusa/server/src/workflows/carts/workflows/refresh-cart-gift-cards.js +154 -0
  161. package/.medusa/server/src/workflows/carts/workflows/remove-gift-cart-from-cart.d.ts +103 -0
  162. package/.medusa/server/src/workflows/carts/workflows/remove-gift-cart-from-cart.js +124 -0
  163. package/.medusa/server/src/workflows/common/steps/validate-presence-of.d.ts +29 -0
  164. package/.medusa/server/src/workflows/common/steps/validate-presence-of.js +22 -0
  165. package/.medusa/server/src/workflows/gift-cards/index.d.ts +9 -0
  166. package/.medusa/server/src/workflows/gift-cards/index.js +26 -0
  167. package/.medusa/server/src/workflows/gift-cards/steps/create-gift-cards.d.ts +20 -0
  168. package/.medusa/server/src/workflows/gift-cards/steps/create-gift-cards.js +38 -0
  169. package/.medusa/server/src/workflows/gift-cards/steps/delete-gift-cards.d.ts +17 -0
  170. package/.medusa/server/src/workflows/gift-cards/steps/delete-gift-cards.js +24 -0
  171. package/.medusa/server/src/workflows/gift-cards/steps/retrieve-gift-card-balance.d.ts +32 -0
  172. package/.medusa/server/src/workflows/gift-cards/steps/retrieve-gift-card-balance.js +34 -0
  173. package/.medusa/server/src/workflows/gift-cards/steps/update-gift-cards.d.ts +19 -0
  174. package/.medusa/server/src/workflows/gift-cards/steps/update-gift-cards.js +41 -0
  175. package/.medusa/server/src/workflows/gift-cards/workflows/claim-gift-card.d.ts +65 -0
  176. package/.medusa/server/src/workflows/gift-cards/workflows/claim-gift-card.js +101 -0
  177. package/.medusa/server/src/workflows/gift-cards/workflows/create-gift-cards.d.ts +36 -0
  178. package/.medusa/server/src/workflows/gift-cards/workflows/create-gift-cards.js +88 -0
  179. package/.medusa/server/src/workflows/gift-cards/workflows/delete-gift-card.d.ts +28 -0
  180. package/.medusa/server/src/workflows/gift-cards/workflows/delete-gift-card.js +34 -0
  181. package/.medusa/server/src/workflows/gift-cards/workflows/redeem-gift-card.d.ts +60 -0
  182. package/.medusa/server/src/workflows/gift-cards/workflows/redeem-gift-card.js +129 -0
  183. package/.medusa/server/src/workflows/gift-cards/workflows/update-gift-cards.d.ts +28 -0
  184. package/.medusa/server/src/workflows/gift-cards/workflows/update-gift-cards.js +31 -0
  185. package/.medusa/server/src/workflows/hooks/after-order-created.d.ts +1 -0
  186. package/.medusa/server/src/workflows/hooks/after-order-created.js +31 -0
  187. package/.medusa/server/src/workflows/hooks/after-order-credit-lines-created.d.ts +1 -0
  188. package/.medusa/server/src/workflows/hooks/after-order-credit-lines-created.js +32 -0
  189. package/.medusa/server/src/workflows/hooks/before-payment-collection-refresh.d.ts +1 -0
  190. package/.medusa/server/src/workflows/hooks/before-payment-collection-refresh.js +26 -0
  191. package/.medusa/server/src/workflows/hooks/complete-cart-before-payment-authorization.d.ts +1 -0
  192. package/.medusa/server/src/workflows/hooks/complete-cart-before-payment-authorization.js +27 -0
  193. package/.medusa/server/src/workflows/index.d.ts +3 -0
  194. package/.medusa/server/src/workflows/index.js +20 -0
  195. package/.medusa/server/src/workflows/orders/index.d.ts +2 -0
  196. package/.medusa/server/src/workflows/orders/index.js +19 -0
  197. package/.medusa/server/src/workflows/orders/workflows/link-gift-cards-to-order.d.ts +34 -0
  198. package/.medusa/server/src/workflows/orders/workflows/link-gift-cards-to-order.js +75 -0
  199. package/.medusa/server/src/workflows/orders/workflows/refund-credit-lines.d.ts +88 -0
  200. package/.medusa/server/src/workflows/orders/workflows/refund-credit-lines.js +131 -0
  201. package/.medusa/server/src/workflows/store-credit/index.d.ts +8 -0
  202. package/.medusa/server/src/workflows/store-credit/index.js +25 -0
  203. package/.medusa/server/src/workflows/store-credit/steps/create-store-credit-accounts.d.ts +19 -0
  204. package/.medusa/server/src/workflows/store-credit/steps/create-store-credit-accounts.js +37 -0
  205. package/.medusa/server/src/workflows/store-credit/steps/credit-account.d.ts +20 -0
  206. package/.medusa/server/src/workflows/store-credit/steps/credit-account.js +31 -0
  207. package/.medusa/server/src/workflows/store-credit/steps/debit-account.d.ts +20 -0
  208. package/.medusa/server/src/workflows/store-credit/steps/debit-account.js +31 -0
  209. package/.medusa/server/src/workflows/store-credit/workflows/claim-store-credit-account.d.ts +91 -0
  210. package/.medusa/server/src/workflows/store-credit/workflows/claim-store-credit-account.js +170 -0
  211. package/.medusa/server/src/workflows/store-credit/workflows/create-store-credit-accounts.d.ts +50 -0
  212. package/.medusa/server/src/workflows/store-credit/workflows/create-store-credit-accounts.js +50 -0
  213. package/.medusa/server/src/workflows/store-credit/workflows/credit-accounts.d.ts +29 -0
  214. package/.medusa/server/src/workflows/store-credit/workflows/credit-accounts.js +32 -0
  215. package/.medusa/server/src/workflows/store-credit/workflows/credit-store-credit-account.d.ts +29 -0
  216. package/.medusa/server/src/workflows/store-credit/workflows/credit-store-credit-account.js +67 -0
  217. package/.medusa/server/src/workflows/store-credit/workflows/debit-accounts.d.ts +29 -0
  218. package/.medusa/server/src/workflows/store-credit/workflows/debit-accounts.js +32 -0
  219. package/.medusa/server/tailwind.config.d.ts +3 -0
  220. package/.medusa/server/tailwind.config.js +12 -0
  221. package/README.md +62 -0
  222. package/package.json +107 -0
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.retrieveGiftCardsBalanceStep = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const workflows_sdk_2 = require("@medusajs/framework/workflows-sdk");
6
+ const types_1 = require("../../../types");
7
+ /**
8
+ * This step retrieves the balance of gift cards from their associated store credit accounts.
9
+ * Returns a map of gift card codes to their account stats.
10
+ *
11
+ * @example
12
+ * const data = retrieveGiftCardsBalanceStep({
13
+ * giftCards: [
14
+ * {
15
+ * id: "gc_123",
16
+ * code: "GC-XXXX",
17
+ * // other gift card properties...
18
+ * }
19
+ * ],
20
+ * giftCardStoreCreditAccountMap: { "gc_123": "sca_456" },
21
+ * })
22
+ */
23
+ exports.retrieveGiftCardsBalanceStep = (0, workflows_sdk_2.createStep)("retrieve-gift-cards-balance", async function ({ giftCardStoreCreditAccountMap, giftCards, }, { container }) {
24
+ const accountBalanceMap = {};
25
+ const module = container.resolve(types_1.PluginModule.STORE_CREDIT);
26
+ for (const giftCard of giftCards) {
27
+ const giftCardBalance = await module.retrieveAccountStats({
28
+ account_id: giftCardStoreCreditAccountMap[giftCard.id],
29
+ });
30
+ accountBalanceMap[giftCard.code] = giftCardBalance;
31
+ }
32
+ return new workflows_sdk_1.StepResponse(accountBalanceMap);
33
+ });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cmlldmUtZ2lmdC1jYXJkLWJhbGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2dpZnQtY2FyZHMvc3RlcHMvcmV0cmlldmUtZ2lmdC1jYXJkLWJhbGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQWlFO0FBRWpFLHFFQUErRDtBQUMvRCwwQ0FBOEM7QUFxQjlDOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNVLFFBQUEsNEJBQTRCLEdBQUcsSUFBQSwwQkFBVSxFQUNwRCw2QkFBNkIsRUFDN0IsS0FBSyxXQUNILEVBQ0UsNkJBQTZCLEVBQzdCLFNBQVMsR0FDeUIsRUFDcEMsRUFBRSxTQUFTLEVBQUU7SUFFYixNQUFNLGlCQUFpQixHQUF1QyxFQUFFLENBQUM7SUFDakUsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FDOUIsb0JBQVksQ0FBQyxZQUFZLENBQzFCLENBQUM7SUFFRixLQUFLLE1BQU0sUUFBUSxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sZUFBZSxHQUFHLE1BQU0sTUFBTSxDQUFDLG9CQUFvQixDQUFDO1lBQ3hELFVBQVUsRUFBRSw2QkFBNkIsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1NBQ3ZELENBQUMsQ0FBQztRQUVILGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxlQUFlLENBQUM7SUFDckQsQ0FBQztJQUVELE9BQU8sSUFBSSw0QkFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDN0MsQ0FBQyxDQUNGLENBQUMifQ==
@@ -0,0 +1,19 @@
1
+ import { ModuleUpdateGiftCard } from "../../../types";
2
+ /**
3
+ * Data for updating one or more gift cards in the Loyalty module.
4
+ */
5
+ export type UpdateGiftCardsStepInput = ModuleUpdateGiftCard[];
6
+ /**
7
+ * This step updates gift cards. It stores the previous state of the gift cards
8
+ * before the update to enable rollback.
9
+ *
10
+ * @example
11
+ * const data = updateGiftCardsStep([
12
+ * {
13
+ * id: "gc_123",
14
+ * status: GiftCardStatus.REDEEMED,
15
+ * // other updatable gift card properties...
16
+ * },
17
+ * ])
18
+ */
19
+ export declare const updateGiftCardsStep: import("@medusajs/framework/workflows-sdk").StepFunction<UpdateGiftCardsStepInput, import("../../../types").ModuleGiftCard[]>;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateGiftCardsStep = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
6
+ const types_1 = require("../../../types");
7
+ /**
8
+ * This step updates gift cards. It stores the previous state of the gift cards
9
+ * before the update to enable rollback.
10
+ *
11
+ * @example
12
+ * const data = updateGiftCardsStep([
13
+ * {
14
+ * id: "gc_123",
15
+ * status: GiftCardStatus.REDEEMED,
16
+ * // other updatable gift card properties...
17
+ * },
18
+ * ])
19
+ */
20
+ exports.updateGiftCardsStep = (0, workflows_sdk_1.createStep)("update-gift-cards", async (data, { container }) => {
21
+ const loyaltyModule = container.resolve(types_1.PluginModule.LOYALTY);
22
+ const { selects, relations } = (0, utils_1.getSelectsAndRelationsFromObjectArray)(data);
23
+ const dataBeforeUpdate = await loyaltyModule.listGiftCards({ id: data.map((d) => d.id) }, { relations, select: selects });
24
+ const updatedGiftCards = await loyaltyModule.updateGiftCards(data);
25
+ return new workflows_sdk_1.StepResponse(updatedGiftCards, {
26
+ dataBeforeUpdate,
27
+ selects,
28
+ relations,
29
+ });
30
+ }, async (revertInput, { container }) => {
31
+ if (!revertInput) {
32
+ return;
33
+ }
34
+ const { dataBeforeUpdate, selects, relations } = revertInput;
35
+ const loyaltyModule = container.resolve(types_1.PluginModule.LOYALTY);
36
+ const revertData = dataBeforeUpdate.map((data) => (0, utils_1.convertItemResponseToUpdateRequest)(data, selects, relations));
37
+ if (revertData.length) {
38
+ await loyaltyModule.updateGiftCards(revertData);
39
+ }
40
+ });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWdpZnQtY2FyZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2dpZnQtY2FyZHMvc3RlcHMvdXBkYXRlLWdpZnQtY2FyZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBR21DO0FBQ25DLHFFQUE2RTtBQUM3RSwwQ0FJd0I7QUFPeEI7Ozs7Ozs7Ozs7OztHQVlHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBRyxJQUFBLDBCQUFVLEVBQzNDLG1CQUFtQixFQUNuQixLQUFLLEVBQUUsSUFBOEIsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDdEQsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FDckMsb0JBQVksQ0FBQyxPQUFPLENBQ3JCLENBQUM7SUFDRixNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUEsNkNBQXFDLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFFM0UsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLGFBQWEsQ0FBQyxhQUFhLENBQ3hELEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUM3QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQy9CLENBQUM7SUFFRixNQUFNLGdCQUFnQixHQUFHLE1BQU0sYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVuRSxPQUFPLElBQUksNEJBQVksQ0FBQyxnQkFBZ0IsRUFBRTtRQUN4QyxnQkFBZ0I7UUFDaEIsT0FBTztRQUNQLFNBQVM7S0FDVixDQUFDLENBQUM7QUFDTCxDQUFDLEVBQ0QsS0FBSyxFQUFFLFdBQVcsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDbkMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pCLE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxXQUFXLENBQUM7SUFDN0QsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FDckMsb0JBQVksQ0FBQyxPQUFPLENBQ3JCLENBQUM7SUFFRixNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUMvQyxJQUFBLDBDQUFrQyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQzdELENBQUM7SUFFRixJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN0QixNQUFNLGFBQWEsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEQsQ0FBQztBQUNILENBQUMsQ0FDRixDQUFDIn0=
@@ -0,0 +1,65 @@
1
+ import { CustomerDTO } from "@medusajs/framework/types";
2
+ import { ModuleGiftCard } from "../../../types";
3
+ /**
4
+ * Input to claim a gift card for a customer.
5
+ */
6
+ export type ClaimGiftCardWorkflowInput = {
7
+ /**
8
+ * The code of the gift card to claim.
9
+ */
10
+ code: string;
11
+ /**
12
+ * The ID of the customer claiming the gift card.
13
+ */
14
+ customer_id: string;
15
+ };
16
+ /**
17
+ * This step validates that a gift card can be claimed. It throws an error if the
18
+ * gift card does not have a store credit account, the gift card's store credit account
19
+ * has no code, or the customer does not have a registered account.
20
+ *
21
+ * @example
22
+ * const data = validateClaimGiftCardInputStep({
23
+ * giftCard: {
24
+ * id: "gc_123",
25
+ * store_credit_account: { id: "sca_123", code: "SC-XXXX" },
26
+ * // other gift card properties...
27
+ * },
28
+ * customer: {
29
+ * has_account: true,
30
+ * // other customer properties...
31
+ * },
32
+ * })
33
+ */
34
+ export declare const validateClaimGiftCardInputStep: import("@medusajs/framework/workflows-sdk").StepFunction<{
35
+ giftCard: ModuleGiftCard & {
36
+ store_credit_account: {
37
+ id: string;
38
+ code: string;
39
+ };
40
+ };
41
+ customer: CustomerDTO;
42
+ }, unknown>;
43
+ /**
44
+ * This workflow claims a gift card for a customer. It validates the gift card
45
+ * and customer, then transfers the gift card's store credit account balance to
46
+ * the customer's store credit account. The customer must have a registered account
47
+ * to claim a gift card.
48
+ *
49
+ * You can use this workflow within your own customizations or custom workflows,
50
+ * allowing you to wrap custom logic around gift card claiming.
51
+ *
52
+ * @example
53
+ * await claimGiftCardWorkflow(container)
54
+ * .run({
55
+ * input: {
56
+ * code: "GC-XXXX-XXXX",
57
+ * customer_id: "cust_123",
58
+ * },
59
+ * })
60
+ *
61
+ * @summary
62
+ *
63
+ * Claim a gift card for a customer.
64
+ */
65
+ export declare const claimGiftCardWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<ClaimGiftCardWorkflowInput, undefined, []>;
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.claimGiftCardWorkflow = exports.validateClaimGiftCardInputStep = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const core_flows_1 = require("@medusajs/medusa/core-flows");
6
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
7
+ const claim_store_credit_account_1 = require("../../store-credit/workflows/claim-store-credit-account");
8
+ /**
9
+ * This step validates that a gift card can be claimed. It throws an error if the
10
+ * gift card does not have a store credit account, the gift card's store credit account
11
+ * has no code, or the customer does not have a registered account.
12
+ *
13
+ * @example
14
+ * const data = validateClaimGiftCardInputStep({
15
+ * giftCard: {
16
+ * id: "gc_123",
17
+ * store_credit_account: { id: "sca_123", code: "SC-XXXX" },
18
+ * // other gift card properties...
19
+ * },
20
+ * customer: {
21
+ * has_account: true,
22
+ * // other customer properties...
23
+ * },
24
+ * })
25
+ */
26
+ exports.validateClaimGiftCardInputStep = (0, workflows_sdk_1.createStep)("validate-claim-gift-card-input", async function (args) {
27
+ const { giftCard, customer } = args;
28
+ if (!giftCard.store_credit_account?.id) {
29
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Gift card does not have a store credit account");
30
+ }
31
+ if (!giftCard.store_credit_account.code) {
32
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Gift card does not have a store credit account code");
33
+ }
34
+ if (!customer.has_account) {
35
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Only customers with an account can claim a gift card");
36
+ }
37
+ });
38
+ /**
39
+ * This workflow claims a gift card for a customer. It validates the gift card
40
+ * and customer, then transfers the gift card's store credit account balance to
41
+ * the customer's store credit account. The customer must have a registered account
42
+ * to claim a gift card.
43
+ *
44
+ * You can use this workflow within your own customizations or custom workflows,
45
+ * allowing you to wrap custom logic around gift card claiming.
46
+ *
47
+ * @example
48
+ * await claimGiftCardWorkflow(container)
49
+ * .run({
50
+ * input: {
51
+ * code: "GC-XXXX-XXXX",
52
+ * customer_id: "cust_123",
53
+ * },
54
+ * })
55
+ *
56
+ * @summary
57
+ *
58
+ * Claim a gift card for a customer.
59
+ */
60
+ exports.claimGiftCardWorkflow = (0, workflows_sdk_1.createWorkflow)("claim-gift-card", function (input) {
61
+ const giftCardData = (0, core_flows_1.useQueryGraphStep)({
62
+ entity: "gift_card",
63
+ fields: [
64
+ "id",
65
+ "code",
66
+ "customer_id",
67
+ "currency_code",
68
+ "status",
69
+ "store_credit_account.id",
70
+ "store_credit_account.code",
71
+ ],
72
+ filters: { code: input.code },
73
+ }).config({
74
+ name: "gift-card-data",
75
+ });
76
+ const giftCard = (0, workflows_sdk_1.transform)({ giftCardData }, ({ giftCardData }) => {
77
+ return giftCardData.data[0];
78
+ });
79
+ const customerData = (0, core_flows_1.useQueryGraphStep)({
80
+ entity: "customer",
81
+ fields: ["id", "email", "has_account"],
82
+ filters: { id: input.customer_id },
83
+ }).config({
84
+ name: "customer-data",
85
+ });
86
+ const customer = (0, workflows_sdk_1.transform)({ customerData }, ({ customerData }) => {
87
+ return customerData.data[0];
88
+ });
89
+ (0, exports.validateClaimGiftCardInputStep)({ giftCard, customer });
90
+ const accountCode = (0, workflows_sdk_1.transform)({ giftCard }, ({ giftCard }) => {
91
+ return giftCard.store_credit_account.code;
92
+ });
93
+ claim_store_credit_account_1.claimStoreCreditAccountWorkflow.runAsStep({
94
+ input: {
95
+ code: accountCode,
96
+ customer_id: customer.id,
97
+ },
98
+ });
99
+ return new workflows_sdk_1.WorkflowResponse(void 0);
100
+ });
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhaW0tZ2lmdC1jYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9naWZ0LWNhcmRzL3dvcmtmbG93cy9jbGFpbS1naWZ0LWNhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQXVEO0FBQ3ZELDREQUErRDtBQUMvRCxxRUFLMEM7QUFJMUMsd0dBQXlHO0FBZ0J6Rzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDVSxRQUFBLDhCQUE4QixHQUFHLElBQUEsMEJBQVUsRUFDdEQsZ0NBQWdDLEVBQ2hDLEtBQUssV0FBVyxJQUtmO0lBQ0MsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUE7SUFFbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUN2QyxNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5QixnREFBZ0QsQ0FDakQsQ0FBQTtJQUNILENBQUM7SUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hDLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLHFEQUFxRCxDQUN0RCxDQUFBO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDMUIsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsc0RBQXNELENBQ3ZELENBQUE7SUFDSCxDQUFDO0FBQ0gsQ0FBQyxDQUNGLENBQUE7QUFDRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBQ1UsUUFBQSxxQkFBcUIsR0FBRyxJQUFBLDhCQUFjLEVBQ2pELGlCQUFpQixFQUNqQixVQUFVLEtBQWlDO0lBQ3pDLE1BQU0sWUFBWSxHQUFHLElBQUEsOEJBQWlCLEVBQUM7UUFDckMsTUFBTSxFQUFFLFdBQVc7UUFDbkIsTUFBTSxFQUFFO1lBQ04sSUFBSTtZQUNKLE1BQU07WUFDTixhQUFhO1lBQ2IsZUFBZTtZQUNmLFFBQVE7WUFDUix5QkFBeUI7WUFDekIsMkJBQTJCO1NBQzVCO1FBQ0QsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUU7S0FDOUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNSLElBQUksRUFBRSxnQkFBZ0I7S0FDdkIsQ0FBQyxDQUFBO0lBRUYsTUFBTSxRQUFRLEdBQUcsSUFBQSx5QkFBUyxFQUFDLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUU7UUFDaEUsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzdCLENBQUMsQ0FBQyxDQUFBO0lBRUYsTUFBTSxZQUFZLEdBQUcsSUFBQSw4QkFBaUIsRUFBQztRQUNyQyxNQUFNLEVBQUUsVUFBVTtRQUNsQixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLGFBQWEsQ0FBQztRQUN0QyxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRTtLQUNuQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ1IsSUFBSSxFQUFFLGVBQWU7S0FDdEIsQ0FBQyxDQUFBO0lBRUYsTUFBTSxRQUFRLEdBQUcsSUFBQSx5QkFBUyxFQUFDLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUU7UUFDaEUsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzdCLENBQUMsQ0FBQyxDQUFBO0lBRUYsSUFBQSxzQ0FBOEIsRUFBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFBO0lBRXRELE1BQU0sV0FBVyxHQUFHLElBQUEseUJBQVMsRUFBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO1FBQzNELE9BQU8sUUFBUSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQTtJQUMzQyxDQUFDLENBQUMsQ0FBQTtJQUVGLDREQUErQixDQUFDLFNBQVMsQ0FBQztRQUN4QyxLQUFLLEVBQUU7WUFDTCxJQUFJLEVBQUUsV0FBVztZQUNqQixXQUFXLEVBQUUsUUFBUSxDQUFDLEVBQUU7U0FDekI7S0FDRixDQUFDLENBQUE7SUFFRixPQUFPLElBQUksZ0NBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtBQUNyQyxDQUFDLENBQ0YsQ0FBQSJ9
@@ -0,0 +1,36 @@
1
+ import { ModuleCreateGiftCard } from "../../../types";
2
+ /**
3
+ * Data for creating one or more gift cards with backing store credit accounts.
4
+ */
5
+ export type CreateGiftCardsWorkflowInput = ModuleCreateGiftCard[];
6
+ /**
7
+ * This workflow creates gift cards and automatically sets up their backing store credit accounts.
8
+ * It creates the gift cards, generates anonymous store credit accounts linked to each gift card,
9
+ * credits the accounts with the gift card values, and marks the gift cards as redeemed.
10
+ *
11
+ * You can use this workflow within your own customizations or custom workflows,
12
+ * allowing you to wrap custom logic around gift card creation.
13
+ *
14
+ * @example
15
+ * const { result } = await createGiftCardsWorkflow(container)
16
+ * .run({
17
+ * input: [
18
+ * {
19
+ * code: "GC-XXXX-XXXX",
20
+ * value: 100,
21
+ * currency_code: "usd",
22
+ * expires_at: null,
23
+ * reference: "order",
24
+ * reference_id: "order_123",
25
+ * line_item_id: "li_123",
26
+ * customer_id: "cust_123",
27
+ * metadata: { custom_key: "custom_value" },
28
+ * },
29
+ * ],
30
+ * })
31
+ *
32
+ * @summary
33
+ *
34
+ * Create gift cards with backing store credit accounts.
35
+ */
36
+ export declare const createGiftCardsWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<CreateGiftCardsWorkflowInput, import("../../../types").ModuleGiftCard[], []>;
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createGiftCardsWorkflow = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const core_flows_1 = require("@medusajs/medusa/core-flows");
6
+ const create_gift_cards_1 = require("../steps/create-gift-cards");
7
+ const create_store_credit_accounts_1 = require("../../store-credit/steps/create-store-credit-accounts");
8
+ const types_1 = require("../../../types");
9
+ const credit_accounts_1 = require("../../store-credit/workflows/credit-accounts");
10
+ const update_gift_cards_1 = require("./update-gift-cards");
11
+ /**
12
+ * This workflow creates gift cards and automatically sets up their backing store credit accounts.
13
+ * It creates the gift cards, generates anonymous store credit accounts linked to each gift card,
14
+ * credits the accounts with the gift card values, and marks the gift cards as redeemed.
15
+ *
16
+ * You can use this workflow within your own customizations or custom workflows,
17
+ * allowing you to wrap custom logic around gift card creation.
18
+ *
19
+ * @example
20
+ * const { result } = await createGiftCardsWorkflow(container)
21
+ * .run({
22
+ * input: [
23
+ * {
24
+ * code: "GC-XXXX-XXXX",
25
+ * value: 100,
26
+ * currency_code: "usd",
27
+ * expires_at: null,
28
+ * reference: "order",
29
+ * reference_id: "order_123",
30
+ * line_item_id: "li_123",
31
+ * customer_id: "cust_123",
32
+ * metadata: { custom_key: "custom_value" },
33
+ * },
34
+ * ],
35
+ * })
36
+ *
37
+ * @summary
38
+ *
39
+ * Create gift cards with backing store credit accounts.
40
+ */
41
+ exports.createGiftCardsWorkflow = (0, workflows_sdk_1.createWorkflow)("create-gift-cards", function (input) {
42
+ const giftCards = (0, create_gift_cards_1.createGiftCardsStep)(input);
43
+ /**
44
+ * Create anonymous credit accounts for the gift cards and link them
45
+ */
46
+ const storeCreditAccontCurrencies = (0, workflows_sdk_1.transform)({ giftCards }, ({ giftCards }) => {
47
+ return giftCards.map((giftCard) => ({
48
+ currency_code: giftCard.currency_code,
49
+ }));
50
+ });
51
+ const createdStoreCreditAccounts = (0, create_store_credit_accounts_1.createStoreCreditAccountsStep)(storeCreditAccontCurrencies);
52
+ const linkToCreate = (0, workflows_sdk_1.transform)({ giftCards, createdStoreCreditAccounts }, ({ giftCards, createdStoreCreditAccounts }) => giftCards.map((giftCard, index) => ({
53
+ [types_1.PluginModule.LOYALTY]: { gift_card_id: giftCard.id },
54
+ [types_1.PluginModule.STORE_CREDIT]: {
55
+ store_credit_account_id: createdStoreCreditAccounts[index].id,
56
+ },
57
+ })));
58
+ core_flows_1.createLinksWorkflow.runAsStep({ input: linkToCreate });
59
+ /**
60
+ * Credit the accounts with the GC value
61
+ */
62
+ const creditAccountsInput = (0, workflows_sdk_1.transform)({ giftCards, createdStoreCreditAccounts }, ({ giftCards, createdStoreCreditAccounts }) => {
63
+ return giftCards.map((giftCard, index) => ({
64
+ account_id: createdStoreCreditAccounts[index].id,
65
+ amount: giftCard.value,
66
+ note: "Gift card redemption",
67
+ reference: "gift_card",
68
+ reference_id: giftCard.id,
69
+ }));
70
+ });
71
+ credit_accounts_1.creditAccountsWorkflow.runAsStep({
72
+ input: creditAccountsInput,
73
+ });
74
+ /**
75
+ * Mark the gift cards as redeemed
76
+ */
77
+ const updateGiftCardsInput = (0, workflows_sdk_1.transform)({ giftCards }, ({ giftCards }) => {
78
+ return giftCards.map((giftCard, index) => ({
79
+ id: giftCard.id,
80
+ status: types_1.GiftCardStatus.REDEEMED,
81
+ }));
82
+ });
83
+ update_gift_cards_1.updateGiftCardsWorkflow.runAsStep({
84
+ input: updateGiftCardsInput,
85
+ });
86
+ return new workflows_sdk_1.WorkflowResponse(giftCards);
87
+ });
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWdpZnQtY2FyZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2dpZnQtY2FyZHMvd29ya2Zsb3dzL2NyZWF0ZS1naWZ0LWNhcmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUkyQztBQUMzQyw0REFBa0U7QUFFbEUsa0VBQWlFO0FBQ2pFLHdHQUFzRztBQUN0RywwQ0FJd0I7QUFDeEIsa0ZBQXNGO0FBQ3RGLDJEQUE4RDtBQU85RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Qkc7QUFDVSxRQUFBLHVCQUF1QixHQUFHLElBQUEsOEJBQWMsRUFDbkQsbUJBQW1CLEVBQ25CLFVBQVUsS0FBbUM7SUFDM0MsTUFBTSxTQUFTLEdBQUcsSUFBQSx1Q0FBbUIsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUU3Qzs7T0FFRztJQUVILE1BQU0sMkJBQTJCLEdBQUcsSUFBQSx5QkFBUyxFQUMzQyxFQUFFLFNBQVMsRUFBRSxFQUNiLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO1FBQ2hCLE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNsQyxhQUFhLEVBQUUsUUFBUSxDQUFDLGFBQWE7U0FDdEMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDLENBQ0YsQ0FBQztJQUVGLE1BQU0sMEJBQTBCLEdBQUcsSUFBQSw0REFBNkIsRUFDOUQsMkJBQTJCLENBQzVCLENBQUM7SUFFRixNQUFNLFlBQVksR0FBRyxJQUFBLHlCQUFTLEVBQzVCLEVBQUUsU0FBUyxFQUFFLDBCQUEwQixFQUFFLEVBQ3pDLENBQUMsRUFBRSxTQUFTLEVBQUUsMEJBQTBCLEVBQUUsRUFBRSxFQUFFLENBQzVDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLENBQUMsb0JBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFO1FBQ3JELENBQUMsb0JBQVksQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUMzQix1QkFBdUIsRUFBRSwwQkFBMEIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1NBQzlEO0tBQ0YsQ0FBQyxDQUFDLENBQ04sQ0FBQztJQUVGLGdDQUFtQixDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBRXZEOztPQUVHO0lBRUgsTUFBTSxtQkFBbUIsR0FBRyxJQUFBLHlCQUFTLEVBQ25DLEVBQUUsU0FBUyxFQUFFLDBCQUEwQixFQUFFLEVBQ3pDLENBQUMsRUFBRSxTQUFTLEVBQUUsMEJBQTBCLEVBQUUsRUFBRSxFQUFFO1FBQzVDLE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDekMsVUFBVSxFQUFFLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDaEQsTUFBTSxFQUFFLFFBQVEsQ0FBQyxLQUFLO1lBQ3RCLElBQUksRUFBRSxzQkFBc0I7WUFDNUIsU0FBUyxFQUFFLFdBQVc7WUFDdEIsWUFBWSxFQUFFLFFBQVEsQ0FBQyxFQUFFO1NBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQyxDQUNGLENBQUM7SUFFRix3Q0FBc0IsQ0FBQyxTQUFTLENBQUM7UUFDL0IsS0FBSyxFQUFFLG1CQUFtQjtLQUMzQixDQUFDLENBQUM7SUFFSDs7T0FFRztJQUVILE1BQU0sb0JBQW9CLEdBQUcsSUFBQSx5QkFBUyxFQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7UUFDdEUsT0FBTyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN6QyxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUU7WUFDZixNQUFNLEVBQUUsc0JBQWMsQ0FBQyxRQUFRO1NBQ2hDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQyxDQUFDLENBQUM7SUFFSCwyQ0FBdUIsQ0FBQyxTQUFTLENBQUM7UUFDaEMsS0FBSyxFQUFFLG9CQUFvQjtLQUM1QixDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksZ0NBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDekMsQ0FBQyxDQUNGLENBQUMifQ==
@@ -0,0 +1,28 @@
1
+ /**
2
+ * The data to delete a gift card.
3
+ */
4
+ export interface DeleteGiftCardWorkflowInput {
5
+ /**
6
+ * The ID of the gift card to delete.
7
+ */
8
+ id: string;
9
+ }
10
+ /**
11
+ * This workflow deletes a gift card by its ID.
12
+ *
13
+ * You can use this workflow within your own customizations or custom workflows,
14
+ * allowing you to wrap custom logic around gift card deletion.
15
+ *
16
+ * @example
17
+ * await deleteGiftCardWorkflow(container)
18
+ * .run({
19
+ * input: {
20
+ * id: "gc_123",
21
+ * },
22
+ * })
23
+ *
24
+ * @summary
25
+ *
26
+ * Delete a gift card.
27
+ */
28
+ export declare const deleteGiftCardWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<DeleteGiftCardWorkflowInput, unknown, any[]>;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteGiftCardWorkflow = void 0;
4
+ const core_flows_1 = require("@medusajs/medusa/core-flows");
5
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
6
+ const delete_gift_cards_1 = require("../steps/delete-gift-cards");
7
+ /**
8
+ * This workflow deletes a gift card by its ID.
9
+ *
10
+ * You can use this workflow within your own customizations or custom workflows,
11
+ * allowing you to wrap custom logic around gift card deletion.
12
+ *
13
+ * @example
14
+ * await deleteGiftCardWorkflow(container)
15
+ * .run({
16
+ * input: {
17
+ * id: "gc_123",
18
+ * },
19
+ * })
20
+ *
21
+ * @summary
22
+ *
23
+ * Delete a gift card.
24
+ */
25
+ exports.deleteGiftCardWorkflow = (0, workflows_sdk_1.createWorkflow)("delete-gift-card", function (input) {
26
+ (0, core_flows_1.useQueryGraphStep)({
27
+ entity: "gift_card",
28
+ filters: { id: input.id },
29
+ fields: ["id", "status"],
30
+ options: { throwIfKeyNotFound: true },
31
+ }).config({ name: "get-gift-card-query" });
32
+ (0, delete_gift_cards_1.deleteGiftCardsStep)({ id: [input.id] });
33
+ });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLWdpZnQtY2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvZ2lmdC1jYXJkcy93b3JrZmxvd3MvZGVsZXRlLWdpZnQtY2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0REFBZ0U7QUFDaEUscUVBQW1FO0FBQ25FLGtFQUFpRTtBQVlqRTs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDVSxRQUFBLHNCQUFzQixHQUFHLElBQUEsOEJBQWMsRUFDbEQsa0JBQWtCLEVBQ2xCLFVBQVUsS0FBa0M7SUFDMUMsSUFBQSw4QkFBaUIsRUFBQztRQUNoQixNQUFNLEVBQUUsV0FBVztRQUNuQixPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtRQUN6QixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDO1FBQ3hCLE9BQU8sRUFBRSxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRTtLQUN0QyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixFQUFFLENBQUMsQ0FBQztJQUUzQyxJQUFBLHVDQUFtQixFQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUMxQyxDQUFDLENBQ0YsQ0FBQyJ9
@@ -0,0 +1,60 @@
1
+ import { ModuleGiftCard, ModuleStoreCreditAccount, RedeemGiftCardWorkflowInput } from "../../../types";
2
+ /**
3
+ * Input to validate that a gift card is eligible for redemption.
4
+ */
5
+ export interface ValidateGiftCardRedeemStepInput {
6
+ /**
7
+ * The gift card to validate.
8
+ */
9
+ giftCard: ModuleGiftCard;
10
+ /**
11
+ * The store credit account already linked to the gift card, if any.
12
+ */
13
+ giftCardStoreCreditAccount: ModuleStoreCreditAccount;
14
+ /**
15
+ * The original workflow input containing the gift card ID.
16
+ */
17
+ input: RedeemGiftCardWorkflowInput;
18
+ }
19
+ /**
20
+ * This step validates that a gift card can be redeemed. It throws an error if the
21
+ * gift card is already redeemed or already has an associated store credit account.
22
+ *
23
+ * @example
24
+ * const data = validateGiftCardRedeemStep({
25
+ * giftCard: {
26
+ * id: "gc_123",
27
+ * status: GiftCardStatus.ACTIVE,
28
+ * // other gift card properties...
29
+ * },
30
+ * giftCardStoreCreditAccount: {
31
+ * id: "sca_123",
32
+ * balance: 100,
33
+ * // other store credit account properties...
34
+ * },
35
+ * input: { gift_card_id: "gc_123" },
36
+ * })
37
+ */
38
+ export declare const validateGiftCardRedeemStep: import("@medusajs/framework/workflows-sdk").StepFunction<ValidateGiftCardRedeemStepInput, unknown>;
39
+ /**
40
+ * This workflow redeems a gift card by creating an anonymous store credit account,
41
+ * crediting it with the gift card's value, and marking the gift card as redeemed.
42
+ * It throws an error if the gift card is already redeemed or already has an
43
+ * associated store credit account.
44
+ *
45
+ * You can use this workflow within your own customizations or custom workflows,
46
+ * allowing you to wrap custom logic around gift card redemption.
47
+ *
48
+ * @example
49
+ * const { result } = await redeemGiftCardWorkflow(container)
50
+ * .run({
51
+ * input: {
52
+ * gift_card_id: "gc_123",
53
+ * },
54
+ * })
55
+ *
56
+ * @summary
57
+ *
58
+ * Redeem a gift card and create a backing store credit account.
59
+ */
60
+ export declare const redeemGiftCardWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<RedeemGiftCardWorkflowInput, any, []>;
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.redeemGiftCardWorkflow = exports.validateGiftCardRedeemStep = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const core_flows_1 = require("@medusajs/medusa/core-flows");
6
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
7
+ const types_1 = require("../../../types");
8
+ const create_store_credit_accounts_1 = require("../../store-credit/steps/create-store-credit-accounts");
9
+ const credit_accounts_1 = require("../../store-credit/workflows/credit-accounts");
10
+ const update_gift_cards_1 = require("./update-gift-cards");
11
+ /**
12
+ * This step validates that a gift card can be redeemed. It throws an error if the
13
+ * gift card is already redeemed or already has an associated store credit account.
14
+ *
15
+ * @example
16
+ * const data = validateGiftCardRedeemStep({
17
+ * giftCard: {
18
+ * id: "gc_123",
19
+ * status: GiftCardStatus.ACTIVE,
20
+ * // other gift card properties...
21
+ * },
22
+ * giftCardStoreCreditAccount: {
23
+ * id: "sca_123",
24
+ * balance: 100,
25
+ * // other store credit account properties...
26
+ * },
27
+ * input: { gift_card_id: "gc_123" },
28
+ * })
29
+ */
30
+ exports.validateGiftCardRedeemStep = (0, workflows_sdk_1.createStep)("validate-gift-card-redeem", async function ({ giftCardStoreCreditAccount, giftCard, }) {
31
+ if (giftCard.status === types_1.GiftCardStatus.REDEEMED) {
32
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Gift card is already redeemed");
33
+ }
34
+ if (giftCardStoreCreditAccount) {
35
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Gift card already has a store credit account");
36
+ }
37
+ });
38
+ /**
39
+ * This workflow redeems a gift card by creating an anonymous store credit account,
40
+ * crediting it with the gift card's value, and marking the gift card as redeemed.
41
+ * It throws an error if the gift card is already redeemed or already has an
42
+ * associated store credit account.
43
+ *
44
+ * You can use this workflow within your own customizations or custom workflows,
45
+ * allowing you to wrap custom logic around gift card redemption.
46
+ *
47
+ * @example
48
+ * const { result } = await redeemGiftCardWorkflow(container)
49
+ * .run({
50
+ * input: {
51
+ * gift_card_id: "gc_123",
52
+ * },
53
+ * })
54
+ *
55
+ * @summary
56
+ *
57
+ * Redeem a gift card and create a backing store credit account.
58
+ */
59
+ exports.redeemGiftCardWorkflow = (0, workflows_sdk_1.createWorkflow)("redeem-gift-card", function (input) {
60
+ const giftCardQuery = (0, core_flows_1.useQueryGraphStep)({
61
+ entity: "gift_card",
62
+ filters: { id: input.gift_card_id },
63
+ fields: ["id", "code", "status", "value", "currency_code"],
64
+ options: { throwIfKeyNotFound: true },
65
+ }).config({ name: "get-gift-card-query" });
66
+ const giftCard = (0, workflows_sdk_1.transform)({ giftCardQuery }, ({ giftCardQuery }) => {
67
+ return giftCardQuery.data[0];
68
+ });
69
+ const giftCardStoreCreditAccountQuery = (0, core_flows_1.useQueryGraphStep)({
70
+ entity: "gift_card_store_credit_account",
71
+ filters: {
72
+ gift_card_id: giftCard.id,
73
+ },
74
+ fields: ["id", "store_credit_account_id"],
75
+ }).config({ name: "get-gift-card-store-credit-account-query" });
76
+ const giftCardStoreCreditAccount = (0, workflows_sdk_1.transform)({ giftCardStoreCreditAccountQuery }, ({ giftCardStoreCreditAccountQuery }) => giftCardStoreCreditAccountQuery.data?.[0]);
77
+ (0, exports.validateGiftCardRedeemStep)({
78
+ giftCardStoreCreditAccount,
79
+ giftCard,
80
+ input,
81
+ });
82
+ const createdStoreCreditAccounts = (0, create_store_credit_accounts_1.createStoreCreditAccountsStep)([
83
+ {
84
+ currency_code: giftCard.currency_code,
85
+ },
86
+ ]);
87
+ const createdStoreCreditAccount = (0, workflows_sdk_1.transform)({ createdStoreCreditAccounts }, ({ createdStoreCreditAccounts }) => {
88
+ return createdStoreCreditAccounts[0];
89
+ });
90
+ const linkToCreate = (0, workflows_sdk_1.transform)({ giftCard, createdStoreCreditAccount }, ({ giftCard, createdStoreCreditAccount }) => {
91
+ return [
92
+ {
93
+ [types_1.PluginModule.LOYALTY]: { gift_card_id: giftCard.id },
94
+ [types_1.PluginModule.STORE_CREDIT]: {
95
+ store_credit_account_id: createdStoreCreditAccount.id,
96
+ },
97
+ },
98
+ ];
99
+ });
100
+ core_flows_1.createLinksWorkflow.runAsStep({ input: linkToCreate });
101
+ credit_accounts_1.creditAccountsWorkflow.runAsStep({
102
+ input: [
103
+ {
104
+ account_id: createdStoreCreditAccount.id,
105
+ amount: giftCard.value,
106
+ note: "Gift card redemption",
107
+ reference: "gift_card",
108
+ reference_id: giftCard.code,
109
+ },
110
+ ],
111
+ });
112
+ update_gift_cards_1.updateGiftCardsWorkflow.runAsStep({
113
+ input: [
114
+ {
115
+ id: giftCard.id,
116
+ status: types_1.GiftCardStatus.REDEEMED,
117
+ },
118
+ ],
119
+ });
120
+ const accountQuery = (0, core_flows_1.useQueryGraphStep)({
121
+ entity: "store_credit_account",
122
+ filters: { id: createdStoreCreditAccount.id },
123
+ fields: ["id", "debits", "credits", "code", "transactions.*"],
124
+ options: { throwIfKeyNotFound: true },
125
+ }).config({ name: "get-account-query" });
126
+ const account = (0, workflows_sdk_1.transform)({ accountQuery }, ({ accountQuery }) => accountQuery.data[0]);
127
+ return new workflows_sdk_1.WorkflowResponse(account);
128
+ });
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkZWVtLWdpZnQtY2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvZ2lmdC1jYXJkcy93b3JrZmxvd3MvcmVkZWVtLWdpZnQtY2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBd0Q7QUFDeEQsNERBR3FDO0FBQ3JDLHFFQUsyQztBQUMzQywwQ0FNd0I7QUFDeEIsd0dBQXNHO0FBQ3RHLGtGQUFzRjtBQUN0RiwyREFBOEQ7QUFvQjlEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDVSxRQUFBLDBCQUEwQixHQUFHLElBQUEsMEJBQVUsRUFDbEQsMkJBQTJCLEVBQzNCLEtBQUssV0FBVyxFQUNkLDBCQUEwQixFQUMxQixRQUFRLEdBQ3dCO0lBQ2hDLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxzQkFBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hELE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLCtCQUErQixDQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksMEJBQTBCLEVBQUUsQ0FBQztRQUMvQixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5Qiw4Q0FBOEMsQ0FDL0MsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDLENBQ0YsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRztBQUNVLFFBQUEsc0JBQXNCLEdBQUcsSUFBQSw4QkFBYyxFQUNsRCxrQkFBa0IsRUFDbEIsVUFBVSxLQUFrQztJQUMxQyxNQUFNLGFBQWEsR0FBRyxJQUFBLDhCQUFpQixFQUFDO1FBQ3RDLE1BQU0sRUFBRSxXQUFXO1FBQ25CLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsWUFBWSxFQUFFO1FBQ25DLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxNQUFN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