@reorderjs/reorder 1.0.1

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 (231) hide show
  1. package/.medusa/server/scripts/reset-reorder-plugin-data.js +175 -0
  2. package/.medusa/server/src/admin/index.js +17889 -0
  3. package/.medusa/server/src/admin/index.mjs +17871 -0
  4. package/.medusa/server/src/admin/types/activity-log.js +10 -0
  5. package/.medusa/server/src/admin/types/analytics.js +17 -0
  6. package/.medusa/server/src/admin/types/cancellation.js +27 -0
  7. package/.medusa/server/src/admin/types/dunning.js +19 -0
  8. package/.medusa/server/src/admin/types/plan-offer.js +25 -0
  9. package/.medusa/server/src/admin/types/renewal.js +23 -0
  10. package/.medusa/server/src/admin/types/subscription.js +22 -0
  11. package/.medusa/server/src/api/admin/cancellations/[id]/apply-offer/route.js +30 -0
  12. package/.medusa/server/src/api/admin/cancellations/[id]/finalize/route.js +31 -0
  13. package/.medusa/server/src/api/admin/cancellations/[id]/reason/route.js +31 -0
  14. package/.medusa/server/src/api/admin/cancellations/[id]/route.js +20 -0
  15. package/.medusa/server/src/api/admin/cancellations/middlewares.js +55 -0
  16. package/.medusa/server/src/api/admin/cancellations/route.js +20 -0
  17. package/.medusa/server/src/api/admin/cancellations/utils.js +116 -0
  18. package/.medusa/server/src/api/admin/cancellations/validators.js +130 -0
  19. package/.medusa/server/src/api/admin/dunning/[id]/mark-recovered/route.js +27 -0
  20. package/.medusa/server/src/api/admin/dunning/[id]/mark-unrecovered/route.js +27 -0
  21. package/.medusa/server/src/api/admin/dunning/[id]/retry-now/route.js +28 -0
  22. package/.medusa/server/src/api/admin/dunning/[id]/retry-schedule/route.js +29 -0
  23. package/.medusa/server/src/api/admin/dunning/[id]/route.js +20 -0
  24. package/.medusa/server/src/api/admin/dunning/middlewares.js +60 -0
  25. package/.medusa/server/src/api/admin/dunning/route.js +20 -0
  26. package/.medusa/server/src/api/admin/dunning/utils.js +70 -0
  27. package/.medusa/server/src/api/admin/dunning/validators.js +81 -0
  28. package/.medusa/server/src/api/admin/orders/[id]/subscription-summary/route.js +10 -0
  29. package/.medusa/server/src/api/admin/orders/utils.js +8 -0
  30. package/.medusa/server/src/api/admin/plugin/route.js +7 -0
  31. package/.medusa/server/src/api/admin/renewals/[id]/approve-changes/route.js +27 -0
  32. package/.medusa/server/src/api/admin/renewals/[id]/force/route.js +30 -0
  33. package/.medusa/server/src/api/admin/renewals/[id]/reject-changes/route.js +27 -0
  34. package/.medusa/server/src/api/admin/renewals/[id]/route.js +10 -0
  35. package/.medusa/server/src/api/admin/renewals/middlewares.js +61 -0
  36. package/.medusa/server/src/api/admin/renewals/route.js +10 -0
  37. package/.medusa/server/src/api/admin/renewals/utils.js +60 -0
  38. package/.medusa/server/src/api/admin/renewals/validators.js +62 -0
  39. package/.medusa/server/src/api/admin/subscription-analytics/export/route.js +20 -0
  40. package/.medusa/server/src/api/admin/subscription-analytics/kpis/route.js +20 -0
  41. package/.medusa/server/src/api/admin/subscription-analytics/middlewares.js +45 -0
  42. package/.medusa/server/src/api/admin/subscription-analytics/rebuild/route.js +75 -0
  43. package/.medusa/server/src/api/admin/subscription-analytics/trends/route.js +20 -0
  44. package/.medusa/server/src/api/admin/subscription-analytics/utils.js +81 -0
  45. package/.medusa/server/src/api/admin/subscription-analytics/validators.js +76 -0
  46. package/.medusa/server/src/api/admin/subscription-logs/[id]/route.js +20 -0
  47. package/.medusa/server/src/api/admin/subscription-logs/middlewares.js +66 -0
  48. package/.medusa/server/src/api/admin/subscription-logs/route.js +20 -0
  49. package/.medusa/server/src/api/admin/subscription-logs/utils.js +84 -0
  50. package/.medusa/server/src/api/admin/subscription-logs/validators.js +32 -0
  51. package/.medusa/server/src/api/admin/subscription-offers/[id]/route.js +22 -0
  52. package/.medusa/server/src/api/admin/subscription-offers/[id]/toggle/route.js +17 -0
  53. package/.medusa/server/src/api/admin/subscription-offers/middlewares.js +58 -0
  54. package/.medusa/server/src/api/admin/subscription-offers/route.js +20 -0
  55. package/.medusa/server/src/api/admin/subscription-offers/utils.js +41 -0
  56. package/.medusa/server/src/api/admin/subscription-offers/validators.js +112 -0
  57. package/.medusa/server/src/api/admin/subscription-settings/middlewares.js +15 -0
  58. package/.medusa/server/src/api/admin/subscription-settings/route.js +33 -0
  59. package/.medusa/server/src/api/admin/subscription-settings/utils.js +109 -0
  60. package/.medusa/server/src/api/admin/subscription-settings/validators.js +74 -0
  61. package/.medusa/server/src/api/admin/subscriptions/[id]/cancel/route.js +18 -0
  62. package/.medusa/server/src/api/admin/subscriptions/[id]/logs/route.js +20 -0
  63. package/.medusa/server/src/api/admin/subscriptions/[id]/pause/route.js +18 -0
  64. package/.medusa/server/src/api/admin/subscriptions/[id]/resume/route.js +18 -0
  65. package/.medusa/server/src/api/admin/subscriptions/[id]/route.js +10 -0
  66. package/.medusa/server/src/api/admin/subscriptions/[id]/schedule-plan-change/route.js +26 -0
  67. package/.medusa/server/src/api/admin/subscriptions/[id]/update-shipping-address/route.js +27 -0
  68. package/.medusa/server/src/api/admin/subscriptions/middlewares.js +79 -0
  69. package/.medusa/server/src/api/admin/subscriptions/route.js +10 -0
  70. package/.medusa/server/src/api/admin/subscriptions/utils.js +42 -0
  71. package/.medusa/server/src/api/admin/subscriptions/validators.js +76 -0
  72. package/.medusa/server/src/api/middlewares.js +32 -0
  73. package/.medusa/server/src/api/store/carts/[id]/subscribe/route.js +18 -0
  74. package/.medusa/server/src/api/store/customers/me/subscriptions/[id]/cancellation/route.js +37 -0
  75. package/.medusa/server/src/api/store/customers/me/subscriptions/route.js +10 -0
  76. package/.medusa/server/src/api/store/customers/me/subscriptions/utils.js +104 -0
  77. package/.medusa/server/src/api/store/customers/me/subscriptions/validators.js +13 -0
  78. package/.medusa/server/src/api/store/plugin/route.js +7 -0
  79. package/.medusa/server/src/jobs/process-analytics-daily-snapshots.js +149 -0
  80. package/.medusa/server/src/jobs/process-cancellation-operational-metrics.js +102 -0
  81. package/.medusa/server/src/jobs/process-dunning-retries.js +249 -0
  82. package/.medusa/server/src/jobs/process-renewal-cycles.js +180 -0
  83. package/.medusa/server/src/links/cancellation-subscription.js +13 -0
  84. package/.medusa/server/src/links/renewal-order.js +12 -0
  85. package/.medusa/server/src/links/renewal-subscription.js +13 -0
  86. package/.medusa/server/src/links/subscription-cart.js +12 -0
  87. package/.medusa/server/src/links/subscription-customer.js +13 -0
  88. package/.medusa/server/src/links/subscription-order.js +13 -0
  89. package/.medusa/server/src/links/subscription-product.js +13 -0
  90. package/.medusa/server/src/links/subscription-variant.js +13 -0
  91. package/.medusa/server/src/modules/activity-log/index.js +13 -0
  92. package/.medusa/server/src/modules/activity-log/migrations/Migration20260401204521.js +24 -0
  93. package/.medusa/server/src/modules/activity-log/migrations/Migration20260405112500.js +16 -0
  94. package/.medusa/server/src/modules/activity-log/models/subscription-log.js +52 -0
  95. package/.medusa/server/src/modules/activity-log/service.js +13 -0
  96. package/.medusa/server/src/modules/activity-log/types/index.js +33 -0
  97. package/.medusa/server/src/modules/activity-log/utils/admin-query.js +261 -0
  98. package/.medusa/server/src/modules/activity-log/utils/normalize-log-event.js +169 -0
  99. package/.medusa/server/src/modules/analytics/constants.js +8 -0
  100. package/.medusa/server/src/modules/analytics/index.js +13 -0
  101. package/.medusa/server/src/modules/analytics/migrations/Migration20260402183116.js +27 -0
  102. package/.medusa/server/src/modules/analytics/models/subscription-metrics-daily.js +65 -0
  103. package/.medusa/server/src/modules/analytics/service.js +13 -0
  104. package/.medusa/server/src/modules/analytics/utils/admin-query.js +632 -0
  105. package/.medusa/server/src/modules/analytics/utils/data-quality.js +101 -0
  106. package/.medusa/server/src/modules/analytics/utils/observability.js +127 -0
  107. package/.medusa/server/src/modules/cancellation/index.js +13 -0
  108. package/.medusa/server/src/modules/cancellation/migrations/Migration20260401143914.js +34 -0
  109. package/.medusa/server/src/modules/cancellation/migrations/Migration20260405112000.js +14 -0
  110. package/.medusa/server/src/modules/cancellation/models/cancellation-case.js +52 -0
  111. package/.medusa/server/src/modules/cancellation/models/retention-offer-event.js +47 -0
  112. package/.medusa/server/src/modules/cancellation/service.js +15 -0
  113. package/.medusa/server/src/modules/cancellation/types/index.js +43 -0
  114. package/.medusa/server/src/modules/cancellation/utils/admin-query.js +530 -0
  115. package/.medusa/server/src/modules/cancellation/utils/audit.js +21 -0
  116. package/.medusa/server/src/modules/cancellation/utils/errors.js +31 -0
  117. package/.medusa/server/src/modules/cancellation/utils/observability.js +77 -0
  118. package/.medusa/server/src/modules/cancellation/utils/operational-metrics.js +131 -0
  119. package/.medusa/server/src/modules/cancellation/utils/retention-offer-policy.js +31 -0
  120. package/.medusa/server/src/modules/dunning/index.js +13 -0
  121. package/.medusa/server/src/modules/dunning/migrations/Migration20260330190157.js +36 -0
  122. package/.medusa/server/src/modules/dunning/models/dunning-attempt.js +48 -0
  123. package/.medusa/server/src/modules/dunning/models/dunning-case.js +61 -0
  124. package/.medusa/server/src/modules/dunning/service.js +15 -0
  125. package/.medusa/server/src/modules/dunning/types/index.js +19 -0
  126. package/.medusa/server/src/modules/dunning/utils/admin-query.js +548 -0
  127. package/.medusa/server/src/modules/dunning/utils/errors.js +40 -0
  128. package/.medusa/server/src/modules/dunning/utils/observability.js +109 -0
  129. package/.medusa/server/src/modules/dunning/utils/retry-schedule.js +47 -0
  130. package/.medusa/server/src/modules/dunning/utils/scheduler-query.js +42 -0
  131. package/.medusa/server/src/modules/plan-offer/index.js +13 -0
  132. package/.medusa/server/src/modules/plan-offer/migrations/Migration20260329104245.js +22 -0
  133. package/.medusa/server/src/modules/plan-offer/migrations/Migration20260329153000.js +25 -0
  134. package/.medusa/server/src/modules/plan-offer/models/plan-offer.js +35 -0
  135. package/.medusa/server/src/modules/plan-offer/service.js +13 -0
  136. package/.medusa/server/src/modules/plan-offer/types/index.js +26 -0
  137. package/.medusa/server/src/modules/plan-offer/utils/admin-query.js +429 -0
  138. package/.medusa/server/src/modules/plan-offer/utils/effective-config.js +84 -0
  139. package/.medusa/server/src/modules/plan-offer/utils/errors.js +55 -0
  140. package/.medusa/server/src/modules/renewal/index.js +13 -0
  141. package/.medusa/server/src/modules/renewal/migrations/Migration20260329185930.js +34 -0
  142. package/.medusa/server/src/modules/renewal/models/renewal-attempt.js +49 -0
  143. package/.medusa/server/src/modules/renewal/models/renewal-cycle.js +56 -0
  144. package/.medusa/server/src/modules/renewal/service.js +15 -0
  145. package/.medusa/server/src/modules/renewal/types/index.js +23 -0
  146. package/.medusa/server/src/modules/renewal/utils/admin-query.js +450 -0
  147. package/.medusa/server/src/modules/renewal/utils/errors.js +39 -0
  148. package/.medusa/server/src/modules/renewal/utils/observability.js +89 -0
  149. package/.medusa/server/src/modules/renewal/utils/scheduler-query.js +48 -0
  150. package/.medusa/server/src/modules/renewal/utils/upcoming-cycle.js +54 -0
  151. package/.medusa/server/src/modules/settings/index.js +13 -0
  152. package/.medusa/server/src/modules/settings/migrations/Migration20260403121004.js +17 -0
  153. package/.medusa/server/src/modules/settings/migrations/Migration20260403132519.js +17 -0
  154. package/.medusa/server/src/modules/settings/models/subscription-settings.js +32 -0
  155. package/.medusa/server/src/modules/settings/service.js +82 -0
  156. package/.medusa/server/src/modules/settings/types.js +15 -0
  157. package/.medusa/server/src/modules/settings/utils/audit.js +43 -0
  158. package/.medusa/server/src/modules/settings/utils/normalize-settings.js +99 -0
  159. package/.medusa/server/src/modules/subscription/index.js +13 -0
  160. package/.medusa/server/src/modules/subscription/migrations/Migration20260327143452.js +24 -0
  161. package/.medusa/server/src/modules/subscription/migrations/Migration20260329194835.js +16 -0
  162. package/.medusa/server/src/modules/subscription/models/subscription.js +64 -0
  163. package/.medusa/server/src/modules/subscription/service.js +13 -0
  164. package/.medusa/server/src/modules/subscription/types/index.js +17 -0
  165. package/.medusa/server/src/modules/subscription/utils/admin-query.js +465 -0
  166. package/.medusa/server/src/modules/subscription/utils/errors.js +28 -0
  167. package/.medusa/server/src/subscription-flows/create-subscription-from-cart.js +178 -0
  168. package/.medusa/server/src/workflows/apply-retention-offer.js +52 -0
  169. package/.medusa/server/src/workflows/approve-renewal-changes.js +61 -0
  170. package/.medusa/server/src/workflows/cancel-subscription.js +64 -0
  171. package/.medusa/server/src/workflows/create-or-upsert-plan-offer.js +11 -0
  172. package/.medusa/server/src/workflows/ensure-next-renewal-cycle.js +11 -0
  173. package/.medusa/server/src/workflows/finalize-cancellation.js +88 -0
  174. package/.medusa/server/src/workflows/force-renewal-cycle.js +11 -0
  175. package/.medusa/server/src/workflows/index.js +79 -0
  176. package/.medusa/server/src/workflows/mark-dunning-recovered.js +11 -0
  177. package/.medusa/server/src/workflows/mark-dunning-unrecovered.js +11 -0
  178. package/.medusa/server/src/workflows/pause-subscription.js +61 -0
  179. package/.medusa/server/src/workflows/process-renewal-cycle.js +43 -0
  180. package/.medusa/server/src/workflows/rebuild-analytics-daily-snapshots.js +13 -0
  181. package/.medusa/server/src/workflows/reject-renewal-changes.js +61 -0
  182. package/.medusa/server/src/workflows/resume-subscription.js +76 -0
  183. package/.medusa/server/src/workflows/run-dunning-retry.js +23 -0
  184. package/.medusa/server/src/workflows/schedule-subscription-plan-change.js +57 -0
  185. package/.medusa/server/src/workflows/start-cancellation-case.js +58 -0
  186. package/.medusa/server/src/workflows/start-dunning.js +11 -0
  187. package/.medusa/server/src/workflows/steps/apply-retention-offer.js +200 -0
  188. package/.medusa/server/src/workflows/steps/approve-renewal-changes.js +48 -0
  189. package/.medusa/server/src/workflows/steps/cancel-subscription.js +48 -0
  190. package/.medusa/server/src/workflows/steps/create-initial-renewal-cycle.js +6 -0
  191. package/.medusa/server/src/workflows/steps/create-subscription-log-event.js +61 -0
  192. package/.medusa/server/src/workflows/steps/create-subscription-record.js +56 -0
  193. package/.medusa/server/src/workflows/steps/ensure-next-renewal-cycle.js +151 -0
  194. package/.medusa/server/src/workflows/steps/finalize-cancellation.js +161 -0
  195. package/.medusa/server/src/workflows/steps/force-renewal-cycle.js +120 -0
  196. package/.medusa/server/src/workflows/steps/link-subscription-commerce-entities.js +44 -0
  197. package/.medusa/server/src/workflows/steps/mark-dunning-recovered.js +72 -0
  198. package/.medusa/server/src/workflows/steps/mark-dunning-unrecovered.js +53 -0
  199. package/.medusa/server/src/workflows/steps/normalize-analytics-rebuild-range.js +59 -0
  200. package/.medusa/server/src/workflows/steps/pause-subscription.js +50 -0
  201. package/.medusa/server/src/workflows/steps/process-renewal-cycle.js +641 -0
  202. package/.medusa/server/src/workflows/steps/rebuild-analytics-daily-snapshots.js +519 -0
  203. package/.medusa/server/src/workflows/steps/reject-renewal-changes.js +48 -0
  204. package/.medusa/server/src/workflows/steps/resume-subscription.js +45 -0
  205. package/.medusa/server/src/workflows/steps/run-dunning-retry.js +592 -0
  206. package/.medusa/server/src/workflows/steps/schedule-subscription-plan-change.js +81 -0
  207. package/.medusa/server/src/workflows/steps/shared-cancellation-log.js +3 -0
  208. package/.medusa/server/src/workflows/steps/shared-plan-offer.js +280 -0
  209. package/.medusa/server/src/workflows/steps/shared-renewal-approval.js +34 -0
  210. package/.medusa/server/src/workflows/steps/start-cancellation-case.js +147 -0
  211. package/.medusa/server/src/workflows/steps/start-dunning.js +237 -0
  212. package/.medusa/server/src/workflows/steps/toggle-plan-offer.js +33 -0
  213. package/.medusa/server/src/workflows/steps/update-cancellation-reason.js +95 -0
  214. package/.medusa/server/src/workflows/steps/update-dunning-retry-schedule.js +91 -0
  215. package/.medusa/server/src/workflows/steps/update-plan-offer.js +51 -0
  216. package/.medusa/server/src/workflows/steps/update-subscription-settings.js +91 -0
  217. package/.medusa/server/src/workflows/steps/update-subscription-shipping-address.js +54 -0
  218. package/.medusa/server/src/workflows/steps/upsert-plan-offer.js +48 -0
  219. package/.medusa/server/src/workflows/steps/validate-subscription-cart.js +280 -0
  220. package/.medusa/server/src/workflows/toggle-plan-offer.js +11 -0
  221. package/.medusa/server/src/workflows/update-cancellation-reason.js +53 -0
  222. package/.medusa/server/src/workflows/update-dunning-retry-schedule.js +11 -0
  223. package/.medusa/server/src/workflows/update-plan-offer.js +11 -0
  224. package/.medusa/server/src/workflows/update-subscription-settings.js +11 -0
  225. package/.medusa/server/src/workflows/update-subscription-shipping-address.js +99 -0
  226. package/.medusa/server/src/workflows/utils/analytics-incremental.js +24 -0
  227. package/.medusa/server/src/workflows/utils/date-output.js +13 -0
  228. package/.medusa/server/src/workflows/utils/subscription-settings.js +13 -0
  229. package/LICENSE +21 -0
  230. package/README.md +200 -0
  231. package/package.json +73 -0
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeAdminSubscriptionLogsListQuery = normalizeAdminSubscriptionLogsListQuery;
4
+ exports.getAdminSubscriptionLogsListResponse = getAdminSubscriptionLogsListResponse;
5
+ exports.getAdminSubscriptionLogDetailResponse = getAdminSubscriptionLogDetailResponse;
6
+ exports.getAdminSubscriptionTimelineResponse = getAdminSubscriptionTimelineResponse;
7
+ exports.mapActivityLogAdminRouteError = mapActivityLogAdminRouteError;
8
+ const utils_1 = require("@medusajs/framework/utils");
9
+ const admin_query_1 = require("../../../modules/activity-log/utils/admin-query");
10
+ function normalizeAdminSubscriptionLogsListQuery(query) {
11
+ const normalized = {
12
+ limit: query.limit,
13
+ offset: query.offset,
14
+ q: query.q,
15
+ subscription_id: query.subscription_id,
16
+ customer_id: query.customer_id,
17
+ event_type: query.event_type,
18
+ actor_type: query.actor_type,
19
+ date_from: query.date_from,
20
+ date_to: query.date_to,
21
+ };
22
+ if (query.order) {
23
+ if (query.order.startsWith("-")) {
24
+ normalized.order = query.order.slice(1);
25
+ normalized.direction = "desc";
26
+ }
27
+ else {
28
+ normalized.order = query.order;
29
+ normalized.direction = query.direction;
30
+ }
31
+ }
32
+ else {
33
+ normalized.direction = query.direction;
34
+ }
35
+ return normalized;
36
+ }
37
+ async function getAdminSubscriptionLogsListResponse(container, query) {
38
+ return await (0, admin_query_1.listAdminSubscriptionLogs)(container, normalizeAdminSubscriptionLogsListQuery(query));
39
+ }
40
+ async function getAdminSubscriptionLogDetailResponse(container, id, _query) {
41
+ return await (0, admin_query_1.getAdminSubscriptionLogDetail)(container, id);
42
+ }
43
+ async function getAdminSubscriptionTimelineResponse(container, subscriptionId, query) {
44
+ const { subscription_id: _subscriptionId, ...normalized } = normalizeAdminSubscriptionLogsListQuery(query);
45
+ return await (0, admin_query_1.getAdminSubscriptionTimeline)(container, subscriptionId, {
46
+ ...normalized,
47
+ });
48
+ }
49
+ function mapActivityLogAdminRouteError(error) {
50
+ if (error instanceof utils_1.MedusaError) {
51
+ const typeToStatus = {
52
+ [utils_1.MedusaError.Types.NOT_FOUND]: 404,
53
+ [utils_1.MedusaError.Types.INVALID_DATA]: 400,
54
+ [utils_1.MedusaError.Types.CONFLICT]: 409,
55
+ };
56
+ return {
57
+ status: typeToStatus[error.type] ?? 500,
58
+ type: error.type,
59
+ message: error.message,
60
+ };
61
+ }
62
+ const message = error instanceof Error ? error.message : "Unexpected activity log admin error";
63
+ const normalized = message.toLowerCase();
64
+ if (normalized.includes("not found")) {
65
+ return {
66
+ status: 404,
67
+ type: utils_1.MedusaError.Types.NOT_FOUND,
68
+ message,
69
+ };
70
+ }
71
+ if (normalized.includes("invalid") || normalized.includes("unsupported")) {
72
+ return {
73
+ status: 400,
74
+ type: utils_1.MedusaError.Types.INVALID_DATA,
75
+ message,
76
+ };
77
+ }
78
+ return {
79
+ status: 409,
80
+ type: utils_1.MedusaError.Types.CONFLICT,
81
+ message,
82
+ };
83
+ }
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N1YnNjcmlwdGlvbi1sb2dzL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBYUEsMEZBNEJDO0FBRUQsb0ZBUUM7QUFFRCxzRkFNQztBQUVELG9GQWFDO0FBRUQsc0VBd0NDO0FBcEhELHFEQUF1RDtBQU12RCxpRkFLd0Q7QUFFeEQsU0FBZ0IsdUNBQXVDLENBQ3JELEtBQXlDO0lBRXpDLE1BQU0sVUFBVSxHQUFtQztRQUNqRCxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7UUFDbEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1FBQ3BCLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNWLGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZTtRQUN0QyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7UUFDOUIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1FBQzVCLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtRQUM1QixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7UUFDMUIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO0tBQ3ZCLENBQUE7SUFFRCxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoQixJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDaEMsVUFBVSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUN2QyxVQUFVLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQTtRQUMvQixDQUFDO2FBQU0sQ0FBQztZQUNOLFVBQVUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQTtZQUM5QixVQUFVLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUE7UUFDeEMsQ0FBQztJQUNILENBQUM7U0FBTSxDQUFDO1FBQ04sVUFBVSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFBO0lBQ3hDLENBQUM7SUFFRCxPQUFPLFVBQVUsQ0FBQTtBQUNuQixDQUFDO0FBRU0sS0FBSyxVQUFVLG9DQUFvQyxDQUN4RCxTQUEwQixFQUMxQixLQUF5QztJQUV6QyxPQUFPLE1BQU0sSUFBQSx1Q0FBeUIsRUFDcEMsU0FBUyxFQUNULHVDQUF1QyxDQUFDLEtBQUssQ0FBQyxDQUMvQyxDQUFBO0FBQ0gsQ0FBQztBQUVNLEtBQUssVUFBVSxxQ0FBcUMsQ0FDekQsU0FBMEIsRUFDMUIsRUFBVSxFQUNWLE1BQTBDO0lBRTFDLE9BQU8sTUFBTSxJQUFBLDJDQUE2QixFQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQTtBQUMzRCxDQUFDO0FBRU0sS0FBSyxVQUFVLG9DQUFvQyxDQUN4RCxTQUEwQixFQUMxQixjQUFzQixFQUN0QixLQUF5QztJQUV6QyxNQUFNLEVBQ0osZUFBZSxFQUFFLGVBQWUsRUFDaEMsR0FBRyxVQUFVLEVBQ2QsR0FBRyx1Q0FBdUMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUVsRCxPQUFPLE1BQU0sSUFBQSwwQ0FBNEIsRUFBQyxTQUFTLEVBQUUsY0FBYyxFQUFFO1FBQ25FLEdBQUcsVUFBVTtLQUNkLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFRCxTQUFnQiw2QkFBNkIsQ0FBQyxLQUFjO0lBQzFELElBQUksS0FBSyxZQUFZLG1CQUFXLEVBQUUsQ0FBQztRQUNqQyxNQUFNLFlBQVksR0FBMkI7WUFDM0MsQ0FBQyxtQkFBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHO1lBQ2xDLENBQUMsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUUsR0FBRztZQUNyQyxDQUFDLG1CQUFXLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUc7U0FDbEMsQ0FBQTtRQUVELE9BQU87WUFDTCxNQUFNLEVBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHO1lBQ3ZDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87U0FDdkIsQ0FBQTtJQUNILENBQUM7SUFFRCxNQUFNLE9BQU8sR0FDWCxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxxQ0FBcUMsQ0FBQTtJQUNoRixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUE7SUFFeEMsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDckMsT0FBTztZQUNMLE1BQU0sRUFBRSxHQUFHO1lBQ1gsSUFBSSxFQUFFLG1CQUFXLENBQUMsS0FBSyxDQUFDLFNBQVM7WUFDakMsT0FBTztTQUNSLENBQUE7SUFDSCxDQUFDO0lBRUQsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztRQUN6RSxPQUFPO1lBQ0wsTUFBTSxFQUFFLEdBQUc7WUFDWCxJQUFJLEVBQUUsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWTtZQUNwQyxPQUFPO1NBQ1IsQ0FBQTtJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsTUFBTSxFQUFFLEdBQUc7UUFDWCxJQUFJLEVBQUUsbUJBQVcsQ0FBQyxLQUFLLENBQUMsUUFBUTtRQUNoQyxPQUFPO0tBQ1IsQ0FBQTtBQUNILENBQUMifQ==
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetAdminSubscriptionLogSchema = exports.GetAdminSubscriptionLogsSchema = void 0;
4
+ const validators_1 = require("@medusajs/medusa/api/utils/validators");
5
+ const zod_1 = require("zod");
6
+ const types_1 = require("../../../modules/activity-log/types");
7
+ const optionalIsoDateTime = zod_1.z.string().datetime().optional();
8
+ exports.GetAdminSubscriptionLogsSchema = (0, validators_1.createFindParams)({
9
+ offset: 0,
10
+ limit: 20,
11
+ }).extend({
12
+ q: zod_1.z.string().optional(),
13
+ direction: zod_1.z.enum(["asc", "desc"]).optional(),
14
+ subscription_id: zod_1.z.string().optional(),
15
+ customer_id: zod_1.z.string().optional(),
16
+ event_type: zod_1.z.preprocess((value) => {
17
+ if (typeof value === "string") {
18
+ return [value];
19
+ }
20
+ return value;
21
+ }, zod_1.z.array(zod_1.z.nativeEnum(types_1.ActivityLogEventType)).optional()),
22
+ actor_type: zod_1.z.preprocess((value) => {
23
+ if (typeof value === "string") {
24
+ return [value];
25
+ }
26
+ return value;
27
+ }, zod_1.z.array(zod_1.z.nativeEnum(types_1.ActivityLogActorType)).optional()),
28
+ date_from: optionalIsoDateTime,
29
+ date_to: optionalIsoDateTime,
30
+ });
31
+ exports.GetAdminSubscriptionLogSchema = (0, validators_1.createFindParams)().extend({});
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvYWRtaW4vc3Vic2NyaXB0aW9uLWxvZ3MvdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzRUFBd0U7QUFDeEUsNkJBQXVCO0FBQ3ZCLCtEQUc0QztBQUU1QyxNQUFNLG1CQUFtQixHQUFHLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtBQUUvQyxRQUFBLDhCQUE4QixHQUFHLElBQUEsNkJBQWdCLEVBQUM7SUFDN0QsTUFBTSxFQUFFLENBQUM7SUFDVCxLQUFLLEVBQUUsRUFBRTtDQUNWLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDUixDQUFDLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUN4QixTQUFTLEVBQUUsT0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUM3QyxlQUFlLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUN0QyxXQUFXLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNsQyxVQUFVLEVBQUUsT0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ2pDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDOUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2hCLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUMsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLE9BQUMsQ0FBQyxVQUFVLENBQUMsNEJBQW9CLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFELFVBQVUsRUFBRSxPQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDakMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDaEIsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQyxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsT0FBQyxDQUFDLFVBQVUsQ0FBQyw0QkFBb0IsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDMUQsU0FBUyxFQUFFLG1CQUFtQjtJQUM5QixPQUFPLEVBQUUsbUJBQW1CO0NBQzdCLENBQUMsQ0FBQTtBQU1XLFFBQUEsNkJBQTZCLEdBQUcsSUFBQSw2QkFBZ0IsR0FBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQSJ9
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = exports.GET = void 0;
4
+ const utils_1 = require("../utils");
5
+ const workflows_1 = require("../../../../workflows");
6
+ const GET = async (req, res) => {
7
+ const response = await (0, utils_1.getAdminSubscriptionOfferDetailResponse)(req.scope, req.params.id);
8
+ res.status(200).json(response);
9
+ };
10
+ exports.GET = GET;
11
+ const POST = async (req, res) => {
12
+ await (0, workflows_1.updatePlanOfferWorkflow)(req.scope).run({
13
+ input: {
14
+ id: req.params.id,
15
+ ...req.validatedBody,
16
+ },
17
+ });
18
+ const response = await (0, utils_1.getAdminSubscriptionOfferDetailResponse)(req.scope, req.params.id);
19
+ res.status(200).json(response);
20
+ };
21
+ exports.POST = POST;
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N1YnNjcmlwdGlvbi1vZmZlcnMvW2lkXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFLQSxvQ0FBa0U7QUFDbEUscURBQStEO0FBRXhELE1BQU0sR0FBRyxHQUFHLEtBQUssRUFDdEIsR0FBK0IsRUFDL0IsR0FBbUIsRUFDbkIsRUFBRTtJQUNGLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBQSwrQ0FBdUMsRUFDNUQsR0FBRyxDQUFDLEtBQUssRUFDVCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDZCxDQUFBO0lBRUQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7QUFDaEMsQ0FBQyxDQUFBO0FBVlksUUFBQSxHQUFHLE9BVWY7QUFFTSxNQUFNLElBQUksR0FBRyxLQUFLLEVBQ3ZCLEdBQTJFLEVBQzNFLEdBQW1CLEVBQ25CLEVBQUU7SUFDRixNQUFNLElBQUEsbUNBQXVCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUMzQyxLQUFLLEVBQUU7WUFDTCxFQUFFLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2pCLEdBQUcsR0FBRyxDQUFDLGFBQWE7U0FDckI7S0FDRixDQUFDLENBQUE7SUFFRixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsK0NBQXVDLEVBQzVELEdBQUcsQ0FBQyxLQUFLLEVBQ1QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQ2QsQ0FBQTtJQUVELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBQ2hDLENBQUMsQ0FBQTtBQWpCWSxRQUFBLElBQUksUUFpQmhCIn0=
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = void 0;
4
+ const utils_1 = require("../../utils");
5
+ const workflows_1 = require("../../../../../workflows");
6
+ const POST = async (req, res) => {
7
+ await (0, workflows_1.togglePlanOfferWorkflow)(req.scope).run({
8
+ input: {
9
+ id: req.params.id,
10
+ is_enabled: req.validatedBody.is_enabled,
11
+ },
12
+ });
13
+ const response = await (0, utils_1.getAdminSubscriptionOfferDetailResponse)(req.scope, req.params.id);
14
+ res.status(200).json(response);
15
+ };
16
+ exports.POST = POST;
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N1YnNjcmlwdGlvbi1vZmZlcnMvW2lkXS90b2dnbGUvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0EsdUNBQXFFO0FBQ3JFLHdEQUFrRTtBQUUzRCxNQUFNLElBQUksR0FBRyxLQUFLLEVBQ3ZCLEdBQTJFLEVBQzNFLEdBQW1CLEVBQ25CLEVBQUU7SUFDRixNQUFNLElBQUEsbUNBQXVCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUMzQyxLQUFLLEVBQUU7WUFDTCxFQUFFLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2pCLFVBQVUsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLFVBQVU7U0FDekM7S0FDRixDQUFDLENBQUE7SUFFRixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsK0NBQXVDLEVBQzVELEdBQUcsQ0FBQyxLQUFLLEVBQ1QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQ2QsQ0FBQTtJQUVELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBQ2hDLENBQUMsQ0FBQTtBQWpCWSxRQUFBLElBQUksUUFpQmhCIn0=
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.adminSubscriptionOffersMiddlewares = void 0;
4
+ const http_1 = require("@medusajs/framework/http");
5
+ const validators_1 = require("./validators");
6
+ exports.adminSubscriptionOffersMiddlewares = [
7
+ {
8
+ matcher: "/admin/subscription-offers",
9
+ method: "GET",
10
+ middlewares: [
11
+ (0, http_1.validateAndTransformQuery)(validators_1.GetAdminSubscriptionOffersSchema, {
12
+ defaults: [
13
+ "id",
14
+ "name",
15
+ "scope",
16
+ "product_id",
17
+ "variant_id",
18
+ "is_enabled",
19
+ "allowed_frequencies",
20
+ "frequency_intervals",
21
+ "discount_per_frequency",
22
+ "rules",
23
+ "updated_at",
24
+ "created_at",
25
+ ],
26
+ isList: true,
27
+ }),
28
+ ],
29
+ },
30
+ {
31
+ matcher: "/admin/subscription-offers/:id",
32
+ method: "GET",
33
+ middlewares: [
34
+ (0, http_1.validateAndTransformQuery)(validators_1.GetAdminSubscriptionOfferSchema, {
35
+ defaults: [
36
+ "*",
37
+ ],
38
+ isList: false,
39
+ }),
40
+ ],
41
+ },
42
+ {
43
+ matcher: "/admin/subscription-offers",
44
+ method: "POST",
45
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_1.PostAdminCreateSubscriptionOfferSchema)],
46
+ },
47
+ {
48
+ matcher: "/admin/subscription-offers/:id",
49
+ method: "POST",
50
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_1.PostAdminUpdateSubscriptionOfferSchema)],
51
+ },
52
+ {
53
+ matcher: "/admin/subscription-offers/:id/toggle",
54
+ method: "POST",
55
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_1.PostAdminToggleSubscriptionOfferSchema)],
56
+ },
57
+ ];
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N1YnNjcmlwdGlvbi1vZmZlcnMvbWlkZGxld2FyZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBSWlDO0FBQ2pDLDZDQU1xQjtBQUVSLFFBQUEsa0NBQWtDLEdBQXNCO0lBQ25FO1FBQ0UsT0FBTyxFQUFFLDRCQUE0QjtRQUNyQyxNQUFNLEVBQUUsS0FBSztRQUNiLFdBQVcsRUFBRTtZQUNYLElBQUEsZ0NBQXlCLEVBQUMsNkNBQWdDLEVBQUU7Z0JBQzFELFFBQVEsRUFBRTtvQkFDUixJQUFJO29CQUNKLE1BQU07b0JBQ04sT0FBTztvQkFDUCxZQUFZO29CQUNaLFlBQVk7b0JBQ1osWUFBWTtvQkFDWixxQkFBcUI7b0JBQ3JCLHFCQUFxQjtvQkFDckIsd0JBQXdCO29CQUN4QixPQUFPO29CQUNQLFlBQVk7b0JBQ1osWUFBWTtpQkFDYjtnQkFDRCxNQUFNLEVBQUUsSUFBSTthQUNiLENBQUM7U0FDSDtLQUNGO0lBQ0Q7UUFDRSxPQUFPLEVBQUUsZ0NBQWdDO1FBQ3pDLE1BQU0sRUFBRSxLQUFLO1FBQ2IsV0FBVyxFQUFFO1lBQ1gsSUFBQSxnQ0FBeUIsRUFBQyw0Q0FBK0IsRUFBRTtnQkFDekQsUUFBUSxFQUFFO29CQUNSLEdBQUc7aUJBQ0o7Z0JBQ0QsTUFBTSxFQUFFLEtBQUs7YUFDZCxDQUFDO1NBQ0g7S0FDRjtJQUNEO1FBQ0UsT0FBTyxFQUFFLDRCQUE0QjtRQUNyQyxNQUFNLEVBQUUsTUFBTTtRQUNkLFdBQVcsRUFBRSxDQUFDLElBQUEsK0JBQXdCLEVBQUMsbURBQXNDLENBQUMsQ0FBQztLQUNoRjtJQUNEO1FBQ0UsT0FBTyxFQUFFLGdDQUFnQztRQUN6QyxNQUFNLEVBQUUsTUFBTTtRQUNkLFdBQVcsRUFBRSxDQUFDLElBQUEsK0JBQXdCLEVBQUMsbURBQXNDLENBQUMsQ0FBQztLQUNoRjtJQUNEO1FBQ0UsT0FBTyxFQUFFLHVDQUF1QztRQUNoRCxNQUFNLEVBQUUsTUFBTTtRQUNkLFdBQVcsRUFBRSxDQUFDLElBQUEsK0JBQXdCLEVBQUMsbURBQXNDLENBQUMsQ0FBQztLQUNoRjtDQUNGLENBQUEifQ==
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = exports.GET = void 0;
4
+ const utils_1 = require("./utils");
5
+ const workflows_1 = require("../../../workflows");
6
+ const GET = async (req, res) => {
7
+ const response = await (0, utils_1.getAdminSubscriptionOffersListResponse)(req.scope, req.validatedQuery);
8
+ res.status(200).json(response);
9
+ };
10
+ exports.GET = GET;
11
+ const POST = async (req, res) => {
12
+ const { result } = await (0, workflows_1.createOrUpsertPlanOfferWorkflow)(req.scope).run({
13
+ input: req.validatedBody,
14
+ });
15
+ const planOfferId = result;
16
+ const response = await (0, utils_1.getAdminSubscriptionOfferDetailResponse)(req.scope, planOfferId);
17
+ res.status(200).json(response);
18
+ };
19
+ exports.POST = POST;
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N1YnNjcmlwdGlvbi1vZmZlcnMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBUUEsbUNBR2dCO0FBQ2hCLGtEQUFvRTtBQUU3RCxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3RCLEdBR0MsRUFDRCxHQUFtQixFQUNuQixFQUFFO0lBQ0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFBLDhDQUFzQyxFQUMzRCxHQUFHLENBQUMsS0FBSyxFQUNULEdBQUcsQ0FBQyxjQUFjLENBQ25CLENBQUE7SUFFRCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtBQUNoQyxDQUFDLENBQUE7QUFiWSxRQUFBLEdBQUcsT0FhZjtBQUVNLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDdkIsR0FBMkUsRUFDM0UsR0FBbUIsRUFDbkIsRUFBRTtJQUNGLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUEsMkNBQStCLEVBQ3RELEdBQUcsQ0FBQyxLQUFLLENBQ1YsQ0FBQyxHQUFHLENBQUM7UUFDSixLQUFLLEVBQUUsR0FBRyxDQUFDLGFBQWE7S0FDekIsQ0FBQyxDQUFBO0lBQ0YsTUFBTSxXQUFXLEdBQUcsTUFBZ0IsQ0FBQTtJQUVwQyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsK0NBQXVDLEVBQzVELEdBQUcsQ0FBQyxLQUFLLEVBQ1QsV0FBVyxDQUNaLENBQUE7SUFFRCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtBQUNoQyxDQUFDLENBQUE7QUFqQlksUUFBQSxJQUFJLFFBaUJoQiJ9
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeAdminSubscriptionOffersListQuery = normalizeAdminSubscriptionOffersListQuery;
4
+ exports.getAdminSubscriptionOfferDetailResponse = getAdminSubscriptionOfferDetailResponse;
5
+ exports.getAdminSubscriptionOffersListResponse = getAdminSubscriptionOffersListResponse;
6
+ const admin_query_1 = require("../../../modules/plan-offer/utils/admin-query");
7
+ function normalizeAdminSubscriptionOffersListQuery(query) {
8
+ const normalized = {
9
+ limit: query.limit,
10
+ offset: query.offset,
11
+ q: query.q,
12
+ is_enabled: query.is_enabled,
13
+ scope: query.scope,
14
+ product_id: query.product_id,
15
+ variant_id: query.variant_id,
16
+ frequency: query.frequency,
17
+ discount_min: query.discount_min,
18
+ discount_max: query.discount_max,
19
+ };
20
+ if (query.order) {
21
+ if (query.order.startsWith("-")) {
22
+ normalized.order = query.order.slice(1);
23
+ normalized.direction = "desc";
24
+ }
25
+ else {
26
+ normalized.order = query.order;
27
+ normalized.direction = query.direction;
28
+ }
29
+ }
30
+ else {
31
+ normalized.direction = query.direction;
32
+ }
33
+ return normalized;
34
+ }
35
+ async function getAdminSubscriptionOfferDetailResponse(container, id) {
36
+ return await (0, admin_query_1.getAdminPlanOfferDetail)(container, id);
37
+ }
38
+ async function getAdminSubscriptionOffersListResponse(container, query) {
39
+ return await (0, admin_query_1.listAdminPlanOffers)(container, normalizeAdminSubscriptionOffersListQuery(query));
40
+ }
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N1YnNjcmlwdGlvbi1vZmZlcnMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRQSw4RkE2QkM7QUFFRCwwRkFLQztBQUVELHdGQVFDO0FBcERELCtFQUlzRDtBQUV0RCxTQUFnQix5Q0FBeUMsQ0FDdkQsS0FBMkM7SUFFM0MsTUFBTSxVQUFVLEdBQTZCO1FBQzNDLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztRQUNsQixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07UUFDcEIsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ1YsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1FBQzVCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztRQUNsQixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7UUFDNUIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1FBQzVCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztRQUMxQixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7UUFDaEMsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO0tBQ2pDLENBQUE7SUFFRCxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoQixJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDaEMsVUFBVSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUN2QyxVQUFVLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQTtRQUMvQixDQUFDO2FBQU0sQ0FBQztZQUNOLFVBQVUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQTtZQUM5QixVQUFVLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUE7UUFDeEMsQ0FBQztJQUNILENBQUM7U0FBTSxDQUFDO1FBQ04sVUFBVSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFBO0lBQ3hDLENBQUM7SUFFRCxPQUFPLFVBQVUsQ0FBQTtBQUNuQixDQUFDO0FBRU0sS0FBSyxVQUFVLHVDQUF1QyxDQUMzRCxTQUEwQixFQUMxQixFQUFVO0lBRVYsT0FBTyxNQUFNLElBQUEscUNBQXVCLEVBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0FBQ3JELENBQUM7QUFFTSxLQUFLLFVBQVUsc0NBQXNDLENBQzFELFNBQTBCLEVBQzFCLEtBQTJDO0lBRTNDLE9BQU8sTUFBTSxJQUFBLGlDQUFtQixFQUM5QixTQUFTLEVBQ1QseUNBQXlDLENBQUMsS0FBSyxDQUFDLENBQ2pELENBQUE7QUFDSCxDQUFDIn0=
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PostAdminToggleSubscriptionOfferSchema = exports.PostAdminUpdateSubscriptionOfferSchema = exports.PostAdminCreateSubscriptionOfferSchema = exports.GetAdminSubscriptionOfferSchema = exports.GetAdminSubscriptionOffersSchema = void 0;
4
+ const validators_1 = require("@medusajs/medusa/api/utils/validators");
5
+ const zod_1 = require("zod");
6
+ const stringToBoolean = zod_1.z.preprocess((value) => {
7
+ if (typeof value === "string") {
8
+ if (value === "true") {
9
+ return true;
10
+ }
11
+ if (value === "false") {
12
+ return false;
13
+ }
14
+ }
15
+ return value;
16
+ }, zod_1.z.boolean());
17
+ const planOfferScopeSchema = zod_1.z.enum(["product", "variant"]);
18
+ const planOfferFrequencyIntervalSchema = zod_1.z.enum(["week", "month", "year"]);
19
+ const planOfferDiscountTypeSchema = zod_1.z.enum(["percentage", "fixed"]);
20
+ const planOfferStackingPolicySchema = zod_1.z.enum([
21
+ "allowed",
22
+ "disallow_all",
23
+ "disallow_subscription_discounts",
24
+ ]);
25
+ const planOfferFrequencyInputSchema = zod_1.z.object({
26
+ interval: planOfferFrequencyIntervalSchema,
27
+ value: zod_1.z.number().int().positive(),
28
+ });
29
+ const planOfferDiscountInputSchema = zod_1.z.object({
30
+ interval: planOfferFrequencyIntervalSchema,
31
+ frequency_value: zod_1.z.number().int().positive(),
32
+ type: planOfferDiscountTypeSchema,
33
+ value: zod_1.z.number().positive(),
34
+ });
35
+ const planOfferRulesSchema = zod_1.z.object({
36
+ minimum_cycles: zod_1.z.number().int().positive().nullable(),
37
+ trial_enabled: zod_1.z.boolean(),
38
+ trial_days: zod_1.z.number().int().positive().nullable(),
39
+ stacking_policy: planOfferStackingPolicySchema,
40
+ }).superRefine((rules, ctx) => {
41
+ if (!rules.trial_enabled && rules.trial_days !== null) {
42
+ ctx.addIssue({
43
+ code: zod_1.z.ZodIssueCode.custom,
44
+ message: "'rules.trial_days' must be null when trial is disabled",
45
+ path: ["trial_days"],
46
+ });
47
+ }
48
+ if (rules.trial_enabled && rules.trial_days === null) {
49
+ ctx.addIssue({
50
+ code: zod_1.z.ZodIssueCode.custom,
51
+ message: "'rules.trial_days' is required when trial is enabled",
52
+ path: ["trial_days"],
53
+ });
54
+ }
55
+ });
56
+ exports.GetAdminSubscriptionOffersSchema = (0, validators_1.createFindParams)({
57
+ offset: 0,
58
+ limit: 20,
59
+ }).extend({
60
+ q: zod_1.z.string().optional(),
61
+ direction: zod_1.z.enum(["asc", "desc"]).optional(),
62
+ is_enabled: stringToBoolean.optional(),
63
+ scope: planOfferScopeSchema.optional(),
64
+ product_id: zod_1.z.string().optional(),
65
+ variant_id: zod_1.z.string().optional(),
66
+ frequency: planOfferFrequencyIntervalSchema.optional(),
67
+ discount_min: zod_1.z.coerce.number().nonnegative().optional(),
68
+ discount_max: zod_1.z.coerce.number().nonnegative().optional(),
69
+ });
70
+ exports.GetAdminSubscriptionOfferSchema = (0, validators_1.createFindParams)().extend({});
71
+ exports.PostAdminCreateSubscriptionOfferSchema = zod_1.z
72
+ .object({
73
+ name: zod_1.z.string().trim().min(1).max(255),
74
+ scope: planOfferScopeSchema,
75
+ product_id: zod_1.z.string().trim().min(1),
76
+ variant_id: zod_1.z.string().trim().min(1).nullable().optional(),
77
+ is_enabled: zod_1.z.boolean(),
78
+ allowed_frequencies: zod_1.z.array(planOfferFrequencyInputSchema).min(1),
79
+ discounts: zod_1.z.array(planOfferDiscountInputSchema).optional().nullable(),
80
+ rules: planOfferRulesSchema.optional().nullable(),
81
+ metadata: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional().nullable(),
82
+ })
83
+ .superRefine((data, ctx) => {
84
+ if (data.scope === "product" && data.variant_id) {
85
+ ctx.addIssue({
86
+ code: zod_1.z.ZodIssueCode.custom,
87
+ message: "Product-scoped offers can't specify 'variant_id'",
88
+ path: ["variant_id"],
89
+ });
90
+ }
91
+ if (data.scope === "variant" && !data.variant_id) {
92
+ ctx.addIssue({
93
+ code: zod_1.z.ZodIssueCode.custom,
94
+ message: "Variant-scoped offers require 'variant_id'",
95
+ path: ["variant_id"],
96
+ });
97
+ }
98
+ });
99
+ exports.PostAdminUpdateSubscriptionOfferSchema = zod_1.z
100
+ .object({
101
+ name: zod_1.z.string().trim().min(1).max(255).optional(),
102
+ is_enabled: zod_1.z.boolean().optional(),
103
+ allowed_frequencies: zod_1.z.array(planOfferFrequencyInputSchema).min(1).optional(),
104
+ discounts: zod_1.z.array(planOfferDiscountInputSchema).optional().nullable(),
105
+ rules: planOfferRulesSchema.optional().nullable(),
106
+ metadata: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional().nullable(),
107
+ })
108
+ .refine((value) => Object.keys(value).length > 0, "At least one field must be provided");
109
+ exports.PostAdminToggleSubscriptionOfferSchema = zod_1.z.object({
110
+ is_enabled: zod_1.z.boolean(),
111
+ });
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvYWRtaW4vc3Vic2NyaXB0aW9uLW9mZmVycy92YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNFQUF3RTtBQUN4RSw2QkFBdUI7QUFFdkIsTUFBTSxlQUFlLEdBQUcsT0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO0lBQzdDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUIsSUFBSSxLQUFLLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDckIsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDO1FBRUQsSUFBSSxLQUFLLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDdEIsT0FBTyxLQUFLLENBQUE7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFBO0FBQ2QsQ0FBQyxFQUFFLE9BQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO0FBRWYsTUFBTSxvQkFBb0IsR0FBRyxPQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUE7QUFDM0QsTUFBTSxnQ0FBZ0MsR0FBRyxPQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFBO0FBQzFFLE1BQU0sMkJBQTJCLEdBQUcsT0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFBO0FBQ25FLE1BQU0sNkJBQTZCLEdBQUcsT0FBQyxDQUFDLElBQUksQ0FBQztJQUMzQyxTQUFTO0lBQ1QsY0FBYztJQUNkLGlDQUFpQztDQUNsQyxDQUFDLENBQUE7QUFFRixNQUFNLDZCQUE2QixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDN0MsUUFBUSxFQUFFLGdDQUFnQztJQUMxQyxL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
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.adminSubscriptionSettingsMiddlewares = void 0;
4
+ const http_1 = require("@medusajs/framework/http");
5
+ const validators_1 = require("./validators");
6
+ exports.adminSubscriptionSettingsMiddlewares = [
7
+ {
8
+ matcher: "/admin/subscription-settings",
9
+ method: "POST",
10
+ middlewares: [
11
+ (0, http_1.validateAndTransformBody)(validators_1.PostAdminSubscriptionSettingsSchema),
12
+ ],
13
+ },
14
+ ];
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N1YnNjcmlwdGlvbi1zZXR0aW5ncy9taWRkbGV3YXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFHaUM7QUFDakMsNkNBQWtFO0FBRXJELFFBQUEsb0NBQW9DLEdBQXNCO0lBQ3JFO1FBQ0UsT0FBTyxFQUFFLDhCQUE4QjtRQUN2QyxNQUFNLEVBQUUsTUFBTTtRQUNkLFdBQVcsRUFBRTtZQUNYLElBQUEsK0JBQXdCLEVBQUMsZ0RBQW1DLENBQUM7U0FDOUQ7S0FDRjtDQUNGLENBQUEifQ==
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = exports.GET = void 0;
4
+ const utils_1 = require("./utils");
5
+ const GET = async (req, res) => {
6
+ try {
7
+ const response = await (0, utils_1.getAdminSubscriptionSettingsResponse)(req.scope);
8
+ return res.status(200).json(response);
9
+ }
10
+ catch (error) {
11
+ const mapped = (0, utils_1.mapSubscriptionSettingsAdminRouteError)(error);
12
+ return res.status(mapped.status).json({
13
+ type: mapped.type,
14
+ message: mapped.message,
15
+ });
16
+ }
17
+ };
18
+ exports.GET = GET;
19
+ const POST = async (req, res) => {
20
+ try {
21
+ const response = await (0, utils_1.updateAdminSubscriptionSettingsResponse)(req.scope, req.validatedBody, req.auth_context.actor_id);
22
+ return res.status(200).json(response);
23
+ }
24
+ catch (error) {
25
+ const mapped = (0, utils_1.mapSubscriptionSettingsAdminRouteError)(error);
26
+ return res.status(mapped.status).json({
27
+ type: mapped.type,
28
+ message: mapped.message,
29
+ });
30
+ }
31
+ };
32
+ exports.POST = POST;
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N1YnNjcmlwdGlvbi1zZXR0aW5ncy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxtQ0FJZ0I7QUFHVCxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3RCLEdBQStCLEVBQy9CLEdBQW1CLEVBQ25CLEVBQUU7SUFDRixJQUFJLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsNENBQW9DLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBRXRFLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDdkMsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixNQUFNLE1BQU0sR0FBRyxJQUFBLDhDQUFzQyxFQUFDLEtBQUssQ0FBQyxDQUFBO1FBRTVELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ3BDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNqQixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87U0FDeEIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztBQUNILENBQUMsQ0FBQTtBQWhCWSxRQUFBLEdBQUcsT0FnQmY7QUFFTSxNQUFNLElBQUksR0FBRyxLQUFLLEVBQ3ZCLEdBQXdFLEVBQ3hFLEdBQW1CLEVBQ25CLEVBQUU7SUFDRixJQUFJLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsK0NBQXVDLEVBQzVELEdBQUcsQ0FBQyxLQUFLLEVBQ1QsR0FBRyxDQUFDLGFBQWEsRUFDakIsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQzFCLENBQUE7UUFFRCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ3ZDLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsTUFBTSxNQUFNLEdBQUcsSUFBQSw4Q0FBc0MsRUFBQyxLQUFLLENBQUMsQ0FBQTtRQUU1RCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNwQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7WUFDakIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1NBQ3hCLENBQUMsQ0FBQTtJQUNKLENBQUM7QUFDSCxDQUFDLENBQUE7QUFwQlksUUFBQSxJQUFJLFFBb0JoQiJ9
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeAdminSubscriptionSettingsUpdateBody = normalizeAdminSubscriptionSettingsUpdateBody;
4
+ exports.getAdminSubscriptionSettingsResponse = getAdminSubscriptionSettingsResponse;
5
+ exports.updateAdminSubscriptionSettingsResponse = updateAdminSubscriptionSettingsResponse;
6
+ exports.mapSubscriptionSettingsAdminRouteError = mapSubscriptionSettingsAdminRouteError;
7
+ const utils_1 = require("@medusajs/framework/utils");
8
+ const settings_1 = require("../../../modules/settings");
9
+ const workflows_1 = require("../../../workflows");
10
+ function getNestedSettingsErrorMessage(error) {
11
+ if (!error) {
12
+ return "Settings request failed";
13
+ }
14
+ if (typeof error === "string") {
15
+ return error;
16
+ }
17
+ if (error instanceof Error) {
18
+ return (error.message ||
19
+ getNestedSettingsErrorMessage(error.cause));
20
+ }
21
+ if (typeof error === "object") {
22
+ const record = error;
23
+ const candidates = [
24
+ record.message,
25
+ record.error,
26
+ record.details,
27
+ record.cause,
28
+ record.response?.data,
29
+ record.response?.message,
30
+ record.data?.message,
31
+ record.body?.message,
32
+ ];
33
+ for (const candidate of candidates) {
34
+ const nested = getNestedSettingsErrorMessage(candidate);
35
+ if (nested && nested !== "Settings request failed") {
36
+ return nested;
37
+ }
38
+ }
39
+ }
40
+ return "Settings request failed";
41
+ }
42
+ function getSettingsModule(container) {
43
+ return container.resolve(settings_1.SETTINGS_MODULE);
44
+ }
45
+ function normalizeAdminSubscriptionSettingsUpdateBody(body, updatedBy) {
46
+ return {
47
+ default_trial_days: body.default_trial_days ?? undefined,
48
+ dunning_retry_intervals: body.dunning_retry_intervals ?? undefined,
49
+ max_dunning_attempts: body.max_dunning_attempts ?? undefined,
50
+ default_renewal_behavior: body.default_renewal_behavior ?? undefined,
51
+ default_cancellation_behavior: body.default_cancellation_behavior ?? undefined,
52
+ expected_version: body.expected_version ?? 0,
53
+ reason: body.reason ?? null,
54
+ updated_by: updatedBy ?? null,
55
+ };
56
+ }
57
+ async function getAdminSubscriptionSettingsResponse(container) {
58
+ const settingsModule = getSettingsModule(container);
59
+ return {
60
+ subscription_settings: await settingsModule.getSettings(),
61
+ };
62
+ }
63
+ async function updateAdminSubscriptionSettingsResponse(container, body, updatedBy) {
64
+ const normalized = normalizeAdminSubscriptionSettingsUpdateBody(body, updatedBy);
65
+ const { result } = await (0, workflows_1.updateSubscriptionSettingsWorkflow)(container).run({
66
+ input: normalized,
67
+ });
68
+ return {
69
+ subscription_settings: result.settings,
70
+ };
71
+ }
72
+ function mapSubscriptionSettingsAdminRouteError(error) {
73
+ if (error instanceof utils_1.MedusaError) {
74
+ const typeToStatus = {
75
+ [utils_1.MedusaError.Types.NOT_FOUND]: 404,
76
+ [utils_1.MedusaError.Types.INVALID_DATA]: 400,
77
+ [utils_1.MedusaError.Types.CONFLICT]: 409,
78
+ };
79
+ return {
80
+ status: typeToStatus[error.type] ?? 500,
81
+ type: error.type,
82
+ message: error.message,
83
+ };
84
+ }
85
+ const message = getNestedSettingsErrorMessage(error);
86
+ const normalized = message.toLowerCase();
87
+ if (normalized.includes("invalid") ||
88
+ normalized.includes("must be") ||
89
+ normalized.includes("required")) {
90
+ return {
91
+ status: 400,
92
+ type: utils_1.MedusaError.Types.INVALID_DATA,
93
+ message,
94
+ };
95
+ }
96
+ if (normalized.includes("conflict") || normalized.includes("version")) {
97
+ return {
98
+ status: 409,
99
+ type: utils_1.MedusaError.Types.CONFLICT,
100
+ message,
101
+ };
102
+ }
103
+ return {
104
+ status: 500,
105
+ type: utils_1.MedusaError.Types.UNEXPECTED_STATE,
106
+ message,
107
+ };
108
+ }
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N1YnNjcmlwdGlvbi1zZXR0aW5ncy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlFQSxvR0FlQztBQUVELG9GQVFDO0FBRUQsMEZBYUM7QUFFRCx3RkEyQ0M7QUF0SkQscURBQXVEO0FBRXZELHdEQUEyRDtBQU0zRCxrREFBdUU7QUFZdkUsU0FBUyw2QkFBNkIsQ0FBQyxLQUFjO0lBQ25ELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU8seUJBQXlCLENBQUE7SUFDbEMsQ0FBQztJQUVELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUIsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRUQsSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFLENBQUM7UUFDM0IsT0FBTyxDQUNMLEtBQUssQ0FBQyxPQUFPO1lBQ2IsNkJBQTZCLENBQUUsS0FBcUMsQ0FBQyxLQUFLLENBQUMsQ0FDNUUsQ0FBQTtJQUNILENBQUM7SUFFRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE1BQU0sTUFBTSxHQUFHLEtBQWdDLENBQUE7UUFDL0MsTUFBTSxVQUFVLEdBQUc7WUFDakIsTUFBTSxDQUFDLE9BQU87WUFDZCxNQUFNLENBQUMsS0FBSztZQUNaLE1BQU0sQ0FBQyxPQUFPO1lBQ2QsTUFBTSxDQUFDLEtBQUs7WUFDWCxNQUFNLENBQUMsUUFBZ0QsRUFBRSxJQUFJO1lBQzdELE1BQU0sQ0FBQyxRQUFnRCxFQUFFLE9BQU87WUFDaEUsTUFBTSxDQUFDLElBQTRDLEVBQUUsT0FBTztZQUM1RCxNQUFNLENBQUMsSUFBNEMsRUFBRSxPQUFPO1NBQzlELENBQUE7UUFFRCxLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ25DLE1BQU0sTUFBTSxHQUFHLDZCQUE2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