@hartl-services/medusa-base 0.4.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/.medusa/server/src/admin/index.js +1517 -87
  2. package/.medusa/server/src/admin/index.mjs +1518 -88
  3. package/.medusa/server/src/api/admin/email/messages/[id]/resends/route.js +24 -0
  4. package/.medusa/server/src/api/admin/email/messages/[id]/route.js +12 -0
  5. package/.medusa/server/src/api/admin/email/messages/route.js +12 -0
  6. package/.medusa/server/src/api/admin/email/terms-versions/[id]/download/route.js +16 -0
  7. package/.medusa/server/src/api/admin/email/terms-versions/route.js +47 -0
  8. package/.medusa/server/src/api/admin/orders/[id]/documents/[document_id]/download/route.js +21 -0
  9. package/.medusa/server/src/api/admin/orders/[id]/documents/[document_id]/regenerate/route.js +38 -0
  10. package/.medusa/server/src/api/admin/orders/[id]/documents/regenerate/route.js +32 -0
  11. package/.medusa/server/src/api/admin/orders/[id]/documents/route.js +36 -0
  12. package/.medusa/server/src/api/admin/orders/[id]/packing-lists/[fulfillment_id]/download/route.js +24 -0
  13. package/.medusa/server/src/api/admin/orders/[id]/packing-lists/[fulfillment_id]/retry/route.js +44 -0
  14. package/.medusa/server/src/api/admin/orders/[id]/packing-lists/route.js +82 -0
  15. package/.medusa/server/src/api/document-download-response.js +16 -0
  16. package/.medusa/server/src/api/document-response.js +23 -0
  17. package/.medusa/server/src/api/files/[asset]/route.js +24 -0
  18. package/.medusa/server/src/api/files/file-response.js +43 -0
  19. package/.medusa/server/src/api/files/gateway-options.js +31 -0
  20. package/.medusa/server/src/api/files/private/[token]/route.js +29 -0
  21. package/.medusa/server/src/api/files/upload/[token]/route.js +66 -0
  22. package/.medusa/server/src/api/middlewares.js +168 -1
  23. package/.medusa/server/src/api/packing-list-response.js +22 -0
  24. package/.medusa/server/src/api/route.js +27 -0
  25. package/.medusa/server/src/api/store/documents/[id]/download/route.js +21 -0
  26. package/.medusa/server/src/api/store/documents/[id]/route.js +15 -0
  27. package/.medusa/server/src/api/store/documents/route.js +11 -0
  28. package/.medusa/server/src/api/terms-download-response.js +12 -0
  29. package/.medusa/server/src/documents/config/index.js +18 -0
  30. package/.medusa/server/src/documents/paths/documents.js +6 -0
  31. package/.medusa/server/src/documents/paths/index.js +18 -0
  32. package/.medusa/server/src/documents/plugin-features.js +24 -0
  33. package/.medusa/server/src/documents/schemas/documents.js +18 -0
  34. package/.medusa/server/src/documents/schemas/index.js +18 -0
  35. package/.medusa/server/src/documents/scripts/verify-documents-file-storage.js +55 -0
  36. package/.medusa/server/src/documents/templates/financial-document.js +142 -0
  37. package/.medusa/server/src/documents/templates/format.js +31 -0
  38. package/.medusa/server/src/documents/templates/html-factory.js +40 -0
  39. package/.medusa/server/src/documents/templates/html-utils.js +13 -0
  40. package/.medusa/server/src/documents/templates/layout.js +97 -0
  41. package/.medusa/server/src/documents/templates/packing-list.js +50 -0
  42. package/.medusa/server/src/documents/types/admin-api.js +3 -0
  43. package/.medusa/server/src/documents/types/document-summary.js +3 -0
  44. package/.medusa/server/src/documents/types/documents.js +3 -0
  45. package/.medusa/server/src/documents/types/html-factory.js +6 -0
  46. package/.medusa/server/src/documents/types/index.js +22 -0
  47. package/.medusa/server/src/documents/types/store-api.js +3 -0
  48. package/.medusa/server/src/documents/utils/document-merchant.js +22 -0
  49. package/.medusa/server/src/documents/utils/html-to-pdf.js +61 -0
  50. package/.medusa/server/src/documents/utils/private-file-storage.js +64 -0
  51. package/.medusa/server/src/documents/utils/resolve-services.js +7 -0
  52. package/.medusa/server/src/email/application/handle-invite-event.js +312 -0
  53. package/.medusa/server/src/email/application/handle-password-reset-event.js +354 -0
  54. package/.medusa/server/src/email/config/index.js +84 -0
  55. package/.medusa/server/src/email/config/notification-module.js +20 -0
  56. package/.medusa/server/src/email/domain/business-keys.js +50 -0
  57. package/.medusa/server/src/email/domain/documents-fact-fingerprint.js +7 -0
  58. package/.medusa/server/src/email/domain/event-schemas.js +36 -0
  59. package/.medusa/server/src/email/domain/failure-classification.js +53 -0
  60. package/.medusa/server/src/email/plugin-features.js +31 -0
  61. package/.medusa/server/src/email/rendering/default-templates.js +91 -0
  62. package/.medusa/server/src/email/rendering/render-email.js +37 -0
  63. package/.medusa/server/src/email/rendering/resolve-shop-configuration.js +48 -0
  64. package/.medusa/server/src/email/types/email-kinds.js +18 -0
  65. package/.medusa/server/src/email/types/index.js +21 -0
  66. package/.medusa/server/src/email/types/shop-configuration.js +3 -0
  67. package/.medusa/server/src/email/types/smtp-configuration.js +3 -0
  68. package/.medusa/server/src/email/types/template-data.js +79 -0
  69. package/.medusa/server/src/files/config/index.js +256 -0
  70. package/.medusa/server/src/files/gateway/index.js +115 -0
  71. package/.medusa/server/src/files/types/index.js +6 -0
  72. package/.medusa/server/src/files/types/public.js +6 -0
  73. package/.medusa/server/src/jobs/document-fact-publication-reconciliation.js +18 -0
  74. package/.medusa/server/src/jobs/document-resolution-reconciliation.js +20 -0
  75. package/.medusa/server/src/jobs/packing-list-reconciliation.js +49 -0
  76. package/.medusa/server/src/jobs/reconcile-email-attempts.js +63 -0
  77. package/.medusa/server/src/jobs/reconcile-pending-email-messages.js +41 -0
  78. package/.medusa/server/src/jobs/retry-email-messages.js +27 -0
  79. package/.medusa/server/src/migration-scripts/dismiss-orphaned-cart-promotion-links.js +26 -0
  80. package/.medusa/server/src/modules/documents/domain/cancellation-snapshot.js +97 -0
  81. package/.medusa/server/src/modules/documents/domain/document-number.js +36 -0
  82. package/.medusa/server/src/modules/documents/domain/document-resolution.js +24 -0
  83. package/.medusa/server/src/modules/documents/domain/issuance-rules.js +37 -0
  84. package/.medusa/server/src/modules/documents/domain/merchant.js +86 -0
  85. package/.medusa/server/src/modules/documents/domain/options.js +40 -0
  86. package/.medusa/server/src/modules/documents/domain/packing-list.js +90 -0
  87. package/.medusa/server/src/modules/documents/domain/snapshot-normalization.js +17 -0
  88. package/.medusa/server/src/modules/documents/domain/tax-breakdown.js +66 -0
  89. package/.medusa/server/src/modules/documents/index.js +15 -0
  90. package/.medusa/server/src/modules/documents/loaders/assert-private-file-storage.js +20 -0
  91. package/.medusa/server/src/modules/documents/migrations/Migration20260827061749.js +75 -0
  92. package/.medusa/server/src/modules/documents/migrations/Migration20260830111207.js +28 -0
  93. package/.medusa/server/src/modules/documents/models/document-artifact.js +25 -0
  94. package/.medusa/server/src/modules/documents/models/document-number-sequence.js +29 -0
  95. package/.medusa/server/src/modules/documents/models/document.js +82 -0
  96. package/.medusa/server/src/modules/documents/models/order-cancellation-resolution.js +51 -0
  97. package/.medusa/server/src/modules/documents/models/packing-list-revision.js +36 -0
  98. package/.medusa/server/src/modules/documents/models/packing-list.js +27 -0
  99. package/.medusa/server/src/modules/documents/models/refund-document-resolution.js +66 -0
  100. package/.medusa/server/src/modules/documents/models/shipment-invoice-assignment.js +51 -0
  101. package/.medusa/server/src/modules/documents/models/shipment-invoice-coordinator.js +44 -0
  102. package/.medusa/server/src/modules/documents/service.js +1701 -0
  103. package/.medusa/server/src/modules/email/domain/attachment.js +25 -0
  104. package/.medusa/server/src/modules/email/domain/message-state.js +69 -0
  105. package/.medusa/server/src/modules/email/index.js +13 -0
  106. package/.medusa/server/src/modules/email/migrations/Migration20260826173422.js +32 -0
  107. package/.medusa/server/src/modules/email/migrations/Migration20260827172945.js +16 -0
  108. package/.medusa/server/src/modules/email/migrations/Migration20260827194804.js +22 -0
  109. package/.medusa/server/src/modules/email/migrations/Migration20260906195205.js +16 -0
  110. package/.medusa/server/src/modules/email/models/email-attempt.js +56 -0
  111. package/.medusa/server/src/modules/email/models/email-message.js +71 -0
  112. package/.medusa/server/src/modules/email/models/email-terms-version.js +37 -0
  113. package/.medusa/server/src/modules/email/service.js +1285 -0
  114. package/.medusa/server/src/providers/s3-cache/cache/atomic-write.js +25 -0
  115. package/.medusa/server/src/providers/s3-cache/cache/cache-manager.js +115 -0
  116. package/.medusa/server/src/providers/s3-cache/cache/keyed-lock.js +28 -0
  117. package/.medusa/server/src/providers/s3-cache/index.js +8 -0
  118. package/.medusa/server/src/providers/s3-cache/object-key.js +53 -0
  119. package/.medusa/server/src/providers/s3-cache/s3-cache-file.js +229 -0
  120. package/.medusa/server/src/providers/s3-cache/s3-object-store.js +86 -0
  121. package/.medusa/server/src/providers/smtp/index.js +8 -0
  122. package/.medusa/server/src/providers/smtp/service.js +236 -0
  123. package/.medusa/server/src/providers/smtp/types.js +11 -0
  124. package/.medusa/server/src/public/config.js +186 -0
  125. package/.medusa/server/src/public/gateway.js +19 -0
  126. package/.medusa/server/src/public/instrumentation.js +56 -0
  127. package/.medusa/server/src/public/shop-config.js +12 -0
  128. package/.medusa/server/src/public/shop-types.js +24 -0
  129. package/.medusa/server/src/shop-config/build-food-shop-config.js +248 -0
  130. package/.medusa/server/src/shop-config/options.js +71 -0
  131. package/.medusa/server/src/subscribers/affiliate-consignment-reminder-due.js +26 -0
  132. package/.medusa/server/src/subscribers/documents-order-canceled.js +24 -0
  133. package/.medusa/server/src/subscribers/documents-order-cancellation-ready.js +26 -0
  134. package/.medusa/server/src/subscribers/documents-refund-ready.js +24 -0
  135. package/.medusa/server/src/subscribers/documents-shipment-created.js +36 -0
  136. package/.medusa/server/src/subscribers/documents-shipment-invoice-assignment-decided.js +26 -0
  137. package/.medusa/server/src/subscribers/email-order-canceled.js +28 -0
  138. package/.medusa/server/src/subscribers/email-shipment-created.js +32 -0
  139. package/.medusa/server/src/subscribers/order-placed.js +27 -0
  140. package/.medusa/server/src/subscribers/packing-list-allocation-revised.js +32 -0
  141. package/.medusa/server/src/subscribers/packing-list-fulfillment-canceled.js +54 -0
  142. package/.medusa/server/src/subscribers/packing-list-fulfillment-created.js +31 -0
  143. package/.medusa/server/src/subscribers/password-reset.js +23 -0
  144. package/.medusa/server/src/subscribers/payment-refunded.js +38 -0
  145. package/.medusa/server/src/subscribers/return-received.js +27 -0
  146. package/.medusa/server/src/subscribers/return-requested.js +27 -0
  147. package/.medusa/server/src/subscribers/user-invite.js +23 -0
  148. package/.medusa/server/src/utils/cart-promotion-links.js +101 -0
  149. package/.medusa/server/src/workflows/documents/issue-cancellation-after-refund.js +246 -0
  150. package/.medusa/server/src/workflows/documents/issue-document.js +163 -0
  151. package/.medusa/server/src/workflows/documents/issue-invoice-after-shipment.js +521 -0
  152. package/.medusa/server/src/workflows/documents/issue-packing-list.js +384 -0
  153. package/.medusa/server/src/workflows/documents/publish-document-facts.js +53 -0
  154. package/.medusa/server/src/workflows/documents/reconcile-document-resolutions.js +48 -0
  155. package/.medusa/server/src/workflows/documents/reconcile-order-cancellation.js +92 -0
  156. package/.medusa/server/src/workflows/documents/regenerate-issued-document.js +61 -0
  157. package/.medusa/server/src/workflows/email/dispatch-email-message.js +299 -0
  158. package/.medusa/server/src/workflows/email/documents-required-facts.js +30 -0
  159. package/.medusa/server/src/workflows/email/prepare-affiliate-reminder-email.js +58 -0
  160. package/.medusa/server/src/workflows/email/prepare-order-canceled-email.js +64 -0
  161. package/.medusa/server/src/workflows/email/prepare-order-received-email.js +56 -0
  162. package/.medusa/server/src/workflows/email/prepare-refund-email.js +47 -0
  163. package/.medusa/server/src/workflows/email/prepare-return-email.js +75 -0
  164. package/.medusa/server/src/workflows/email/prepare-shipment-email.js +82 -0
  165. package/.medusa/server/src/workflows/email/retry-email-messages.js +31 -0
  166. package/.medusa/server/src/workflows/hooks/dismiss-deleted-promotion-cart-links.js +23 -0
  167. package/README.md +1619 -7
  168. package/dist/documents/config/index.d.ts +11 -0
  169. package/dist/documents/config/index.js +17 -0
  170. package/dist/documents/templates/financial-document.d.ts +3 -0
  171. package/dist/documents/templates/financial-document.js +141 -0
  172. package/dist/documents/templates/format.d.ts +16 -0
  173. package/dist/documents/templates/format.js +30 -0
  174. package/dist/documents/templates/html-factory.d.ts +11 -0
  175. package/dist/documents/templates/html-factory.js +39 -0
  176. package/dist/documents/templates/html-utils.d.ts +2 -0
  177. package/dist/documents/templates/html-utils.js +12 -0
  178. package/dist/documents/templates/layout.d.ts +17 -0
  179. package/dist/documents/templates/layout.js +96 -0
  180. package/dist/documents/templates/packing-list.d.ts +3 -0
  181. package/dist/documents/templates/packing-list.js +49 -0
  182. package/dist/documents/types/admin-api.d.ts +1 -0
  183. package/dist/documents/types/admin-api.js +2 -0
  184. package/dist/documents/types/document-summary.d.ts +1 -0
  185. package/dist/documents/types/document-summary.js +2 -0
  186. package/dist/documents/types/documents.d.ts +174 -0
  187. package/dist/documents/types/documents.js +2 -0
  188. package/dist/documents/types/html-factory.d.ts +7 -0
  189. package/dist/documents/types/html-factory.js +5 -0
  190. package/dist/documents/types/index.d.ts +5 -0
  191. package/dist/documents/types/index.js +21 -0
  192. package/dist/documents/types/store-api.d.ts +1 -0
  193. package/dist/documents/types/store-api.js +2 -0
  194. package/dist/email/config/index.d.ts +17 -0
  195. package/dist/email/config/index.js +83 -0
  196. package/dist/email/config/notification-module.d.ts +22 -0
  197. package/dist/email/config/notification-module.js +19 -0
  198. package/dist/email/types/email-kinds.d.ts +15 -0
  199. package/dist/email/types/email-kinds.js +17 -0
  200. package/dist/email/types/index.d.ts +4 -0
  201. package/dist/email/types/index.js +20 -0
  202. package/dist/email/types/shop-configuration.d.ts +43 -0
  203. package/dist/email/types/shop-configuration.js +2 -0
  204. package/dist/email/types/smtp-configuration.d.ts +9 -0
  205. package/dist/email/types/smtp-configuration.js +2 -0
  206. package/dist/email/types/template-data.d.ts +100 -0
  207. package/dist/email/types/template-data.js +78 -0
  208. package/dist/files/config/index.d.ts +32 -0
  209. package/dist/files/config/index.js +255 -0
  210. package/dist/files/gateway/index.d.ts +30 -0
  211. package/dist/files/gateway/index.js +114 -0
  212. package/dist/files/types/index.d.ts +2 -0
  213. package/dist/files/types/index.js +5 -0
  214. package/dist/files/types/public.d.ts +90 -0
  215. package/dist/files/types/public.js +5 -0
  216. package/dist/modules/documents/domain/merchant.d.ts +22 -0
  217. package/dist/modules/documents/domain/merchant.js +85 -0
  218. package/dist/modules/documents/domain/options.d.ts +34 -0
  219. package/dist/modules/documents/domain/options.js +39 -0
  220. package/dist/public/config.d.ts +59 -0
  221. package/dist/public/config.js +185 -0
  222. package/dist/public/gateway.d.ts +2 -0
  223. package/dist/public/gateway.js +18 -0
  224. package/dist/public/instrumentation.d.ts +12 -0
  225. package/dist/public/instrumentation.js +55 -0
  226. package/dist/public/shop-config.d.ts +8 -0
  227. package/dist/public/shop-config.js +11 -0
  228. package/dist/public/shop-types.d.ts +7 -0
  229. package/dist/public/shop-types.js +23 -0
  230. package/dist/public/types.d.ts +17 -1
  231. package/dist/shop-config/build-food-shop-config.d.ts +44 -0
  232. package/dist/shop-config/build-food-shop-config.js +247 -0
  233. package/dist/shop-config/options.d.ts +41 -0
  234. package/dist/shop-config/options.js +70 -0
  235. package/package.json +48 -5
@@ -0,0 +1,248 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildFoodShopConfig = buildFoodShopConfig;
4
+ exports.defineFoodShopConfig = defineFoodShopConfig;
5
+ const logger_1 = require("@medusajs/framework/logger");
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const config_1 = require("../public/config");
8
+ const sentry_logger_1 = require("../public/sentry-logger");
9
+ const options_1 = require("./options");
10
+ /**
11
+ * Builds the plain `medusa-config.ts` input of a food shop: Medusa core
12
+ * settings, the Redis event bus, SMTP notifications, S3 file storage, tax and
13
+ * Stripe payment providers, and the Hartl Services plugins (the base plugin
14
+ * with its E-Mail, Documents and file storage modules plus five feature
15
+ * plugins). Deployment
16
+ * values are read and validated from `environment`; a missing or invalid one
17
+ * fails with its name.
18
+ */
19
+ function buildFoodShopConfig(options, environment = process.env) {
20
+ (0, options_1.assertFoodShopConfigOptions)(options);
21
+ const { merchant } = options;
22
+ if (options.loadEnvFile !== false) {
23
+ (0, utils_1.loadEnv)(process.env.NODE_ENV || "development", process.cwd());
24
+ }
25
+ const phase = environment.MEDUSA_BUILD_PHASE === "true" ? "build" : "runtime";
26
+ const allowInsecure = (0, config_1.allowsInsecureLocalServices)(environment, phase);
27
+ const env = (0, config_1.requireEnvironment)(environment, [
28
+ "DATABASE_URL",
29
+ "STORE_CORS",
30
+ "ADMIN_CORS",
31
+ "AUTH_CORS",
32
+ "JWT_SECRET",
33
+ "COOKIE_SECRET",
34
+ "MEDUSA_BACKEND_URL",
35
+ "STOREFRONT_URL",
36
+ ...config_1.SMTP_ENVIRONMENT_VARIABLES,
37
+ "STRIPE_API_KEY",
38
+ "STRIPE_WEBHOOK_SECRET",
39
+ "S3_CACHE_STORAGE_BUCKET",
40
+ "S3_CACHE_STORAGE_REGION",
41
+ "DOCUMENT_PDF_EXECUTABLE",
42
+ ], phase, {
43
+ ...config_1.MEDUSA_BUILD_PLACEHOLDERS,
44
+ ...config_1.SMTP_BUILD_PLACEHOLDERS,
45
+ ...config_1.S3_BUILD_PLACEHOLDERS,
46
+ ...config_1.DOCUMENTS_BUILD_PLACEHOLDERS,
47
+ });
48
+ const storefrontOrigin = (0, config_1.resolvePublicOrigin)(env.STOREFRONT_URL, "STOREFRONT_URL", allowInsecure);
49
+ const backendOrigin = (0, config_1.resolvePublicOrigin)(env.MEDUSA_BACKEND_URL, "MEDUSA_BACKEND_URL", allowInsecure);
50
+ const redis = (0, config_1.resolveRedisEventBus)(environment, phase);
51
+ const stripe = (0, config_1.resolveStripe)(env);
52
+ const storefrontPath = `/${options.storefrontCountryCode}`;
53
+ // S3 file storage: the File Module provider plus the `files.gateway` option
54
+ // of the base plugin that serves its /files routes, both from one validated
55
+ // configuration.
56
+ const s3CacheStorage = (0, config_1.createS3CacheStorageConfig)({
57
+ cache: {
58
+ cleanupIntervalMs: (0, config_1.integerEnvironment)(environment, "S3_CACHE_STORAGE_CLEANUP_INTERVAL_MS", 1, 86_400_000) ?? 900_000,
59
+ dir: (0, config_1.optionalEnvironment)(environment, "S3_CACHE_STORAGE_CACHE_DIR") ??
60
+ "./.medusa-s3-cache",
61
+ expirationStrategy: (0, config_1.resolveExpirationStrategy)(environment, "absolute"),
62
+ ttlMs: (0, config_1.integerEnvironment)(environment, "S3_CACHE_STORAGE_TTL_MS", 0, 604_800_000) ?? 3_600_000,
63
+ },
64
+ gateway: {
65
+ baseUrl: `${backendOrigin}/files`,
66
+ privateDownloadDurationSeconds: (0, config_1.integerEnvironment)(environment, "FILE_GATEWAY_PRIVATE_DOWNLOAD_DURATION_SECONDS", 1, 604_800) ?? 3_600,
67
+ signingSecret: env.JWT_SECRET,
68
+ },
69
+ s3: {
70
+ bucket: env.S3_CACHE_STORAGE_BUCKET,
71
+ credentials: (0, config_1.resolveS3Credentials)(environment, phase),
72
+ endpoint: (0, config_1.optionalEnvironment)(environment, "S3_CACHE_STORAGE_ENDPOINT"),
73
+ forcePathStyle: (0, config_1.booleanEnvironment)(environment, "S3_CACHE_STORAGE_FORCE_PATH_STYLE", false),
74
+ region: env.S3_CACHE_STORAGE_REGION,
75
+ storagePrefix: (0, config_1.optionalEnvironment)(environment, "S3_CACHE_STORAGE_PREFIX"),
76
+ },
77
+ });
78
+ const modules = [
79
+ ...(redis
80
+ ? [
81
+ {
82
+ key: utils_1.Modules.EVENT_BUS,
83
+ resolve: "@medusajs/event-bus-redis",
84
+ options: {
85
+ redisUrl: redis.url,
86
+ jobOptions: {
87
+ attempts: 3,
88
+ backoff: {
89
+ delay: 1_000,
90
+ type: "exponential",
91
+ },
92
+ removeOnComplete: true,
93
+ removeOnFail: {
94
+ age: 3_600,
95
+ count: 1_000,
96
+ },
97
+ },
98
+ },
99
+ },
100
+ ]
101
+ : []),
102
+ (0, config_1.createSmtpNotificationModuleConfig)((0, config_1.resolveSmtp)(env, allowInsecure)),
103
+ s3CacheStorage.fileModule,
104
+ {
105
+ resolve: "@medusajs/medusa/tax",
106
+ options: {
107
+ providers: [
108
+ {
109
+ resolve: "@hartl-services/medusa-tax-compliance/providers/tax-compliance",
110
+ },
111
+ ],
112
+ },
113
+ },
114
+ {
115
+ resolve: "@medusajs/medusa/payment",
116
+ options: {
117
+ providers: [
118
+ {
119
+ resolve: "@medusajs/medusa/payment-stripe",
120
+ id: "stripe",
121
+ options: {
122
+ apiKey: stripe.apiKey,
123
+ webhookSecret: stripe.webhookSecret,
124
+ // Capture immediately at checkout. Several enabled payment
125
+ // methods (e.g. SEPA Direct Debit, iDEAL, Klarna) do not
126
+ // support a separate manual-capture step, so authorize-only is
127
+ // not an option while automaticPaymentMethods exposes them.
128
+ capture: true,
129
+ // Which methods appear (card, SEPA, wallets, ...) is controlled
130
+ // in the Stripe Dashboard under Settings -> Payment methods.
131
+ automaticPaymentMethods: true,
132
+ },
133
+ },
134
+ ],
135
+ },
136
+ },
137
+ ];
138
+ const plugins = [
139
+ {
140
+ // Always first: owns the plugin feature toggles the other plugins gate
141
+ // on, and carries E-Mail, Documents and the /files gateway.
142
+ resolve: "@hartl-services/medusa-base",
143
+ options: {
144
+ email: {
145
+ jwtSecret: env.JWT_SECRET,
146
+ shop: {
147
+ displayName: options.displayName,
148
+ affiliatePortalUrl: (0, config_1.shopUrl)(storefrontOrigin, `${storefrontPath}/partnerportal`),
149
+ // The Admin dashboard mounts "/invite" under admin.path ("/app").
150
+ inviteUrl: ({ token }) => {
151
+ const url = new URL("/app/invite", backendOrigin);
152
+ url.searchParams.set("token", token);
153
+ return url.toString();
154
+ },
155
+ orderNotificationEmail: options.orderNotificationEmail,
156
+ // The e-mail module appends "#token=<token>".
157
+ passwordResetUrl: () => (0, config_1.shopUrl)(storefrontOrigin, `${storefrontPath}/reset-password`),
158
+ },
159
+ },
160
+ documents: {
161
+ // Fallback only: the shop master data in the Admin ("Hartl Services
162
+ // Plugins" -> Shop-Stammdaten) wins per field.
163
+ merchant,
164
+ numbering: {
165
+ // Chooses the annual document-number period; matches the date the
166
+ // HTML factory prints.
167
+ timeZone: options.timeZone,
168
+ },
169
+ pdf: {
170
+ executablePath: env.DOCUMENT_PDF_EXECUTABLE,
171
+ },
172
+ },
173
+ files: { gateway: s3CacheStorage.gateway },
174
+ },
175
+ },
176
+ {
177
+ resolve: "@hartl-services/medusa-tax-compliance",
178
+ options: { merchant },
179
+ },
180
+ {
181
+ resolve: "@hartl-services/medusa-free-shipping",
182
+ options: {},
183
+ },
184
+ {
185
+ resolve: "@hartl-services/medusa-batch-management",
186
+ options: {},
187
+ },
188
+ {
189
+ resolve: "@hartl-services/medusa-affiliate",
190
+ options: {
191
+ consignment_reminders: {
192
+ due_day: 10,
193
+ timezone: options.timeZone,
194
+ },
195
+ portal: {
196
+ referral_base_url: (0, config_1.shopUrl)(storefrontOrigin, storefrontPath),
197
+ },
198
+ },
199
+ },
200
+ {
201
+ resolve: "@hartl-services/medusa-payload-sync",
202
+ // URL, API key and auth collection are Admin settings of the base
203
+ // plugin ("Hartl Services Plugins" -> Payload-CMS-Sync); until they are
204
+ // stored the plugin boots "nicht konfiguriert".
205
+ options: {},
206
+ },
207
+ ];
208
+ return {
209
+ admin: {
210
+ // Kept explicit: serving the Admin SPA at "/" instead breaks its own
211
+ // auth, since the SPA's client-side-routing fallback then catches real
212
+ // API routes like /auth/user/providers too. The invite URL depends on
213
+ // this path.
214
+ path: "/app",
215
+ },
216
+ // Medusa's own HTTP error-handler middleware fully "handles" every thrown
217
+ // route/workflow error via logger.error(...) before it can ever reach an
218
+ // uncaught-exception process hook, so Sentry's default Node integrations
219
+ // never see it. This bridges logger.error(...) itself so those errors
220
+ // still reach Sentry.
221
+ logger: (0, sentry_logger_1.withSentryErrorReporting)(logger_1.logger),
222
+ projectConfig: {
223
+ databaseUrl: env.DATABASE_URL,
224
+ http: {
225
+ storeCors: env.STORE_CORS,
226
+ adminCors: env.ADMIN_CORS,
227
+ authCors: env.AUTH_CORS,
228
+ jwtSecret: env.JWT_SECRET,
229
+ cookieSecret: env.COOKIE_SECRET,
230
+ },
231
+ // The storefront turns its customer JWT into a Medusa browser session
232
+ // at login, so its browser-side cart and payment calls carry the
233
+ // customer's identity. Kept at the JWT's own 24h lifetime (Medusa's
234
+ // default is 10h) so the two never disagree about whether the customer
235
+ // is logged in.
236
+ sessionOptions: {
237
+ ttl: 24 * 60 * 60 * 1000,
238
+ },
239
+ },
240
+ modules,
241
+ plugins,
242
+ };
243
+ }
244
+ /** `defineConfig(buildFoodShopConfig(options))` for `module.exports`. */
245
+ function defineFoodShopConfig(options, environment = process.env) {
246
+ return (0, utils_1.defineConfig)(buildFoodShopConfig(options, environment));
247
+ }
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtZm9vZC1zaG9wLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zaG9wLWNvbmZpZy9idWlsZC1mb29kLXNob3AtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBeUVBLGtEQXVSQztBQUdELG9EQUtDO0FBeFdELHVEQUFvRDtBQUNwRCxxREFBMkU7QUFFM0UsNkNBb0IwQjtBQUMxQiwyREFBbUU7QUFFbkUsdUNBR21CO0FBbUNuQjs7Ozs7Ozs7R0FRRztBQUNILFNBQWdCLG1CQUFtQixDQUNqQyxPQUE4QixFQUM5QixjQUFpQyxPQUFPLENBQUMsR0FBRztJQUU1QyxJQUFBLHFDQUEyQixFQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFFN0IsSUFBSSxPQUFPLENBQUMsV0FBVyxLQUFLLEtBQUssRUFBRSxDQUFDO1FBQ2xDLElBQUEsZUFBTyxFQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLGFBQWEsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLGtCQUFrQixLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDOUUsTUFBTSxhQUFhLEdBQUcsSUFBQSxvQ0FBMkIsRUFBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFdEUsTUFBTSxHQUFHLEdBQUcsSUFBQSwyQkFBa0IsRUFDNUIsV0FBVyxFQUNYO1FBQ0UsY0FBYztRQUNkLFlBQVk7UUFDWixZQUFZO1FBQ1osV0FBVztRQUNYLFlBQVk7UUFDWixlQUFlO1FBQ2Ysb0JBQW9CO1FBQ3BCLGdCQUFnQjtRQUNoQixHQUFHLG1DQUEwQjtRQUM3QixnQkFBZ0I7UUFDaEIsdUJBQXVCO1FBQ3ZCLHlCQUF5QjtRQUN6Qix5QkFBeUI7UUFDekIseUJBQXlCO0tBQzFCLEVBQ0QsS0FBSyxFQUNMO1FBQ0UsR0FBRyxrQ0FBeUI7UUFDNUIsR0FBRyxnQ0FBdUI7UUFDMUIsR0FBRyw4QkFBcUI7UUFDeEIsR0FBRyxxQ0FBNEI7S0FDaEMsQ0FDRixDQUFDO0lBRUYsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLDRCQUFtQixFQUMxQyxHQUFHLENBQUMsY0FBYyxFQUNsQixnQkFBZ0IsRUFDaEIsYUFBYSxDQUNkLENBQUM7SUFDRixNQUFNLGFBQWEsR0FBRyxJQUFBLDRCQUFtQixFQUN2QyxHQUFHLENBQUMsa0JBQWtCLEVBQ3RCLG9CQUFvQixFQUNwQixhQUFhLENBQ2QsQ0FBQztJQUNGLE1BQU0sS0FBSyxHQUFHLElBQUEsNkJBQW9CLEVBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sTUFBTSxHQUFHLElBQUEsc0JBQWEsRUFBQyxHQUFHLENBQUMsQ0FBQztJQUNsQyxNQUFNLGNBQWMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBRTNELDRFQUE0RTtJQUM1RSw0RUFBNEU7SUFDNUUsaUJBQWlCO0lBQ2pCLE1BQU0sY0FBYyxHQUFHLElBQUEsbUNBQTBCLEVBQUM7UUFDaEQsS0FBSyxFQUFFO1lBQ0wsaUJBQWlCLEVBQ2YsSUFBQSwyQkFBa0IsRUFDaEIsV0FBVyxFQUNYLHNDQUFzQyxFQUN0QyxDQUFDLEVBQ0QsVUFBVSxDQUNYLElBQUksT0FBTztZQUNkLEdBQUcsRUFDRCxJQUFBLDRCQUFtQixFQUFDLFdBQVcsRUFBRSw0QkFBNEIsQ0FBQztnQkFDOUQsb0JBQW9CO1lBQ3RCLGtCQUFrQixFQUFFLElBQUEsa0NBQXlCLEVBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQztZQUN0RSxLQUFLLEVBQ0gsSUFBQSwyQkFBa0IsRUFDaEIsV0FBVyxFQUNYLHlCQUF5QixFQUN6QixDQUFDLEVBQ0QsV0FBVyxDQUNaLElBQUksU0FBUztTQUNqQjtRQUNELE9BQU8sRUFBRTtZQUNQLE9BQU8sRUFBRSxHQUFHLGFBQWEsUUFBUTtZQUNqQyw4QkFBOEIsRUFDNUIsSUFBQSwyQkFBa0IsRUFDaEIsV0FBVyxFQUNYLGdEQUFnRCxFQUNoRCxDQUFDLEVBQ0QsT0FBTyxDQUNSLElBQUksS0FBSztZQUNaLGFBQWEsRUFBRSxHQUFHLENBQUMsVUFBVTtTQUM5QjtRQUNELEVBQUUsRUFBRTtZQUNGLE1BQU0sRUFBRSxHQUFHLENBQUMsdUJBQXVCO1lBQ25DLFdBQVcsRUFBRSxJQUFBLDZCQUFvQixFQUFDLFdBQVcsRUFBRSxLQUFLLENBQUM7WUFDckQsUUFBUSxFQUFFLElBQUEsNEJBQW1CLEVBQUMsV0FBVyxFQUFFLDJCQUEyQixDQUFDO1lBQ3ZFLGNBQWMsRUFBRSxJQUFBLDJCQUFrQixFQUNoQyxXQUFXLEVBQ1gsbUNBQW1DLEVBQ25DLEtBQUssQ0FDTjtZQUNELE1BQU0sRUFBRSxHQUFHLENBQUMsdUJBQXVCO1lBQ25DLGFBQWEsRUFBRSxJQUFBLDRCQUFtQixFQUNoQyxXQUFXLEVBQ1gseUJBQXlCLENBQzFCO1NBQ0Y7S0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLE9BQU8sR0FBcUI7UUFDaEMsR0FBRyxDQUFDLEtBQUs7WUFDUCxDQUFDLENBQUM7Z0JBQ0U7b0JBQ0UsR0FBRyxFQUFFLGVBQU8sQ0FBQyxTQUFTO29CQUN0QixPQUFPLEVBQUUsMkJBQTJCO29CQUNwQyxPQUFPLEVBQUU7d0JBQ1AsUUFBUSxFQUFFLEtBQUssQ0FBQyxHQUFHO3dCQUNuQixVQUFVLEVBQUU7NEJBQ1YsUUFBUSxFQUFFLENBQUM7NEJBQ1gsT0FBTyxFQUFFO2dDQUNQLEtBQUssRUFBRSxLQUFLO2dDQUNaLElBQUksRUFBRSxhQUFhOzZCQUNwQjs0QkFDRCxnQkFBZ0IsRUFBRSxJQUFJOzRCQUN0QixZQUFZLEVBQUU7Z0NBQ1osR0FBRyxFQUFFLEtBQUs7Z0NBQ1YsS0FBSyxFQUFFLEtBQUs7NkJBQ2I7eUJBQ0Y7cUJBQ0Y7aUJBQ0Y7YUFDRjtZQUNILENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDUCxJQUFBLDJDQUFrQyxFQUFDLElBQUEsb0JBQVcsRUFBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDbkUsY0FBYyxDQUFDLFVBQVU7UUFDekI7WUFDRSxPQUFPLEVBQUUsc0JBQXNCO1lBQy9CLE9BQU8sRUFBRTtnQkFDUCxTQUFTLEVBQUU7b0JBQ1Q7d0JBQ0UsT0FBTyxFQUNMLGdFQUFnRTtxQkFDbkU7aUJBQ0Y7YUFDRjtTQUNGO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsMEJBQTBCO1lBQ25DLE9BQU8sRUFBRTtnQkFDUCxTQUFTLEVBQUU7b0JBQ1Q7d0JBQ0UsT0FBTyxFQUFFLGlDQUFpQzt3QkFDMUMsRUFBRSxFQUFFLFFBQVE7d0JBQ1osT0FBTyxFQUFFOzRCQUNQLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTs0QkFDckIsYUFBYSxFQUFFLE1BQU0sQ0FBQyxhQUFhOzRCQUNuQywyREFBMkQ7NEJBQzNELHlEQUF5RDs0QkFDekQsK0RBQStEOzRCQUMvRCw0REFBNEQ7NEJBQzVELE9BQU8sRUFBRSxJQUFJOzRCQUNiLGdFQUFnRTs0QkFDaEUsNkRBQTZEOzRCQUM3RCx1QkFBdUIsRUFBRSxJQUFJO3lCQUM5QjtxQkFDRjtpQkFDRjthQUNGO1NBQ0Y7S0FDRixDQUFDO0lBRUYsTUFBTSxPQUFPLEdBQXFCO1FBQ2hDO1lBQ0UsdUVBQXVFO1lBQ3ZFLDREQUE0RDtZQUM1RCxPQUFPLEVBQUUsNkJBQTZCO1lBQ3RDLE9BQU8sRUFBRTtnQkFDUCxLQUFLLEVBQUU7b0JBQ0wsU0FBUyxFQUFFLEdBQUcsQ0FBQyxVQUFVO29CQUN6QixJQUFJLEVBQUU7d0JBQ0osV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO3dCQUNoQyxrQkFBa0IsRUFBRSxJQUFBLGdCQUFPLEVBQ3pCLGdCQUFnQixFQUNoQixHQUFHLGNBQWMsZ0JBQWdCLENBQ2xDO3dCQUNELGtFQUFrRTt3QkFDbEUsU0FBUyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQXFCLEVBQUUsRUFBRTs0QkFDMUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDOzRCQUNsRCxHQUFHLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7NEJBQ3JDLE9BQU8sR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO3dCQUN4QixDQUFDO3dCQUNELHNCQUFzQixFQUFFLE9BQU8sQ0FBQyxzQkFBc0I7d0JBQ3RELDhDQUE4Qzt3QkFDOUMsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFLENBQ3JCLElBQUEsZ0JBQU8sRUFBQyxnQkFBZ0IsRUFBRSxHQUFHLGNBQWMsaUJBQWlCLENBQUM7cUJBQ2hFO2lCQUNGO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxvRUFBb0U7b0JBQ3BFLCtDQUErQztvQkFDL0MsUUFBUTtvQkFDUixTQUFTLEVBQUU7d0JBQ1Qsa0VBQWtFO3dCQUNsRSx1QkFBdUI7d0JBQ3ZCLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTtxQkFDM0I7b0JBQ0QsR0FBRyxFQUFFO3dCQUNILGNBQWMsRUFBRSxHQUFHLENBQUMsdUJBQXVCO3FCQUM1QztpQkFDRjtnQkFDRCxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBYyxDQUFDLE9BQU8sRUFBRTthQUMzQztTQUNGO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsdUNBQXVDO1lBQ2hELE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRTtTQUN0QjtRQUNEO1lBQ0UsT0FBTyxFQUFFLHNDQUFzQztZQUMvQyxPQUFPLEVBQUUsRUFBRTtTQUNaO1FBQ0Q7WUFDRSxPQUFPLEVBQUUseUNBQXlDO1lBQ2xELE9BQU8sRUFBRSxFQUFFO1NBQ1o7UUFDRDtZQUNFLE9BQU8sRUFBRSxrQ0FBa0M7WUFDM0MsT0FBTyxFQUFFO2dCQUNQLHFCQUFxQixFQUFFO29CQUNyQixPQUFPLEVBQUUsRUFBRTtvQkFDWCxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7aUJBQzNCO2dCQUNELE1BQU0sRUFBRTtvQkFDTixpQkFBaUIsRUFBRSxJQUFBLGdCQUFPLEVBQUMsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDO2lCQUM3RDthQUNGO1NBQ0Y7UUFDRDtZQUNFLE9BQU8sRUFBRSxxQ0FBcUM7WUFDOUMsa0VBQWtFO1lBQ2xFLHdFQUF3RTtZQUN4RSxnREFBZ0Q7WUFDaEQsT0FBTyxFQUFFLEVBQUU7U0FDWjtLQUNGLENBQUM7SUFFRixPQUFPO1FBQ0wsS0FBSyxFQUFFO1lBQ0wscUVBQXFFO1lBQ3JFLHVFQUF1RTtZQUN2RSxzRUFBc0U7WUFDdEUsYUFBYTtZQUNiLElBQUksRUFBRSxNQUFNO1NBQ2I7UUFDRCwwRUFBMEU7UUFDMUUseUVBQXlFO1FBQ3pFLHlFQUF5RTtRQUN6RSxzRUFBc0U7UUFDdEUsc0JBQXNCO1FBQ3RCLE1BQU0sRUFBRSxJQUFBLHdDQUF3QixFQUFDLGVBQU0sQ0FBQztRQUN4QyxhQUFhLEVBQUU7WUFDYixXQUFXLEVBQUUsR0FBRyxDQUFDLFlBQVk7WUFDN0IsSUFBSSxFQUFFO2dCQUNKLFNBQVMsRUFBRSxHQUFHLENBQUMsVUFBVTtnQkFDekIsU0FBUyxFQUFFLEdBQUcsQ0FBQyxVQUFVO2dCQUN6QixRQUFRLEVBQUUsR0FBRyxDQUFDLFNBQVM7Z0JBQ3ZCLFNBQVMsRUFBRSxHQUFHLENBQUMsVUFBVTtnQkFDekIsWUFBWSxFQUFFLEdBQUcsQ0FBQyxhQUFhO2FBQ2hDO1lBQ0Qsc0VBQXNFO1lBQ3RFLGlFQUFpRTtZQUNqRSxvRUFBb0U7WUFDcEUsdUVBQXVFO1lBQ3ZFLGdCQUFnQjtZQUNoQixjQUFjLEVBQUU7Z0JBQ2QsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUk7YUFDekI7U0FDRjtRQUNELE9BQU87UUFDUCxPQUFPO0tBQ1IsQ0FBQztBQUNKLENBQUM7QUFFRCx5RUFBeUU7QUFDekUsU0FBZ0Isb0JBQW9CLENBQ2xDLE9BQThCLEVBQzlCLGNBQWlDLE9BQU8sQ0FBQyxHQUFHO0lBRTVDLE9BQU8sSUFBQSxvQkFBWSxFQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO0FBQ2pFLENBQUMifQ==
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertFoodShopConfigOptions = assertFoodShopConfigOptions;
4
+ const fail = (name, expectation) => {
5
+ throw new TypeError(`Food shop option "${name}" must be ${expectation}.`);
6
+ };
7
+ const requireText = (value, name) => {
8
+ if (typeof value !== "string" || value.trim() === "") {
9
+ return fail(name, "a non-empty string");
10
+ }
11
+ return value;
12
+ };
13
+ const requireCountryCode = (value, name) => {
14
+ if (typeof value !== "string" || !/^[a-z]{2}$/.test(value)) {
15
+ return fail(name, 'a 2-letter lowercase country code such as "de"');
16
+ }
17
+ return value;
18
+ };
19
+ const requireTimeZone = (value, name) => {
20
+ const timeZone = requireText(value, name);
21
+ try {
22
+ new Intl.DateTimeFormat("en-US", { timeZone });
23
+ }
24
+ catch {
25
+ return fail(name, 'a valid IANA time zone such as "Europe/Vienna"');
26
+ }
27
+ return timeZone;
28
+ };
29
+ const requireEmail = (value, name) => {
30
+ const email = requireText(value, name);
31
+ if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) {
32
+ return fail(name, "a valid e-mail address");
33
+ }
34
+ return email;
35
+ };
36
+ const requireObject = (value, name) => {
37
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
38
+ return fail(name, "an object");
39
+ }
40
+ return value;
41
+ };
42
+ /**
43
+ * Throws a `TypeError` naming the first invalid option, so a misconfigured
44
+ * shop fails at boot.
45
+ */
46
+ function assertFoodShopConfigOptions(options) {
47
+ const candidate = requireObject(options, "options");
48
+ const merchant = requireObject(candidate.merchant, "merchant");
49
+ requireText(merchant.legalName, "merchant.legalName");
50
+ requireCountryCode(merchant.countryCode, "merchant.countryCode");
51
+ if (merchant.vatNumber !== undefined) {
52
+ requireText(merchant.vatNumber, "merchant.vatNumber");
53
+ }
54
+ const address = requireObject(merchant.registeredAddress, "merchant.registeredAddress");
55
+ requireText(address.address1, "merchant.registeredAddress.address1");
56
+ if (address.address2 !== undefined) {
57
+ requireText(address.address2, "merchant.registeredAddress.address2");
58
+ }
59
+ requireText(address.city, "merchant.registeredAddress.city");
60
+ requireText(address.postalCode, "merchant.registeredAddress.postalCode");
61
+ requireCountryCode(address.countryCode, "merchant.registeredAddress.countryCode");
62
+ requireText(candidate.displayName, "displayName");
63
+ requireEmail(candidate.orderNotificationEmail, "orderNotificationEmail");
64
+ requireTimeZone(candidate.timeZone, "timeZone");
65
+ requireCountryCode(candidate.storefrontCountryCode, "storefrontCountryCode");
66
+ if (candidate.loadEnvFile !== undefined &&
67
+ typeof candidate.loadEnvFile !== "boolean") {
68
+ fail("loadEnvFile", "a boolean");
69
+ }
70
+ }
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zaG9wLWNvbmZpZy9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBd0ZBLGtFQW9DQztBQXRGRCxNQUFNLElBQUksR0FBRyxDQUFDLElBQVksRUFBRSxXQUFtQixFQUFTLEVBQUU7SUFDeEQsTUFBTSxJQUFJLFNBQVMsQ0FBQyxxQkFBcUIsSUFBSSxhQUFhLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFDNUUsQ0FBQyxDQUFDO0FBRUYsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFjLEVBQUUsSUFBWSxFQUFVLEVBQUU7SUFDM0QsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ3JELE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxLQUFjLEVBQUUsSUFBWSxFQUFVLEVBQUU7SUFDbEUsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDM0QsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLGdEQUFnRCxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxlQUFlLEdBQUcsQ0FBQyxLQUFjLEVBQUUsSUFBWSxFQUFVLEVBQUU7SUFDL0QsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxQyxJQUFJLENBQUM7UUFDSCxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMs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
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.config = void 0;
4
+ exports.default = affiliateConsignmentReminderDueSubscriber;
5
+ const public_1 = require("../public");
6
+ const affiliate_1 = require("@hartl-services/medusa-food-supplements-contracts/events/affiliate");
7
+ const plugin_features_1 = require("../email/plugin-features");
8
+ const prepare_affiliate_reminder_email_1 = require("../workflows/email/prepare-affiliate-reminder-email");
9
+ async function affiliateConsignmentReminderDueSubscriber({ event, container, }) {
10
+ try {
11
+ if (!(await (0, public_1.isPluginFeatureEnabled)(container, plugin_features_1.emailPluginFeatures, "affiliate_reminders"))) {
12
+ return;
13
+ }
14
+ const payload = affiliate_1.AffiliateConsignmentReportReminderDueEventSchema.parse(event.data);
15
+ await (0, prepare_affiliate_reminder_email_1.prepareAffiliateReminderEmailWorkflow)(container).run({
16
+ input: payload,
17
+ });
18
+ }
19
+ catch {
20
+ throw new Error("EMAIL_AFFILIATE_REMINDER_SUBSCRIBER_FAILED");
21
+ }
22
+ }
23
+ exports.config = {
24
+ event: affiliate_1.AFFILIATE_CONSIGNMENT_REPORT_REMINDER_DUE_EVENT,
25
+ };
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZmaWxpYXRlLWNvbnNpZ25tZW50LXJlbWluZGVyLWR1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdWJzY3JpYmVycy9hZmZpbGlhdGUtY29uc2lnbm1lbnQtcmVtaW5kZXItZHVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWFBLDREQXVCQztBQXBDRCxzQ0FBbUQ7QUFLbkQsa0dBRzRFO0FBRTVFLDhEQUErRDtBQUMvRCwwR0FBNEc7QUFFN0YsS0FBSyxVQUFVLHlDQUF5QyxDQUFDLEVBQ3RFLEtBQUssRUFDTCxTQUFTLEdBQ2U7SUFDeEIsSUFBSSxDQUFDO1FBQ0gsSUFDRSxDQUFDLENBQUMsTUFBTSxJQUFBLCtCQUFzQixFQUM1QixTQUFTLEVBQ1QscUNBQW1CLEVBQ25CLHFCQUFxQixDQUN0QixDQUFDLEVBQ0YsQ0FBQztZQUNELE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsNERBQWdELENBQUMsS0FBSyxDQUNwRSxLQUFLLENBQUMsSUFBSSxDQUNYLENBQUM7UUFDRixNQUFNLElBQUEsd0VBQXFDLEVBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ3pELEtBQUssRUFBRSxPQUFPO1NBQ2YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0FBQ0gsQ0FBQztBQUVZLFFBQUEsTUFBTSxHQUFxQjtJQUN0QyxLQUFLLEVBQUUsMkRBQStDO0NBQ3ZELENBQUMifQ==
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.config = void 0;
4
+ exports.default = orderCanceledSubscriber;
5
+ const public_1 = require("../public");
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const zod_1 = require("@medusajs/framework/zod");
8
+ const plugin_features_1 = require("../documents/plugin-features");
9
+ const reconcile_order_cancellation_1 = require("../workflows/documents/reconcile-order-cancellation");
10
+ const OrderCanceledEventSchema = zod_1.z.object({ id: zod_1.z.string().min(1) }).strict();
11
+ async function orderCanceledSubscriber({ event, container, }) {
12
+ if (!(await (0, public_1.isPluginFeatureEnabled)(container, plugin_features_1.documentsPluginFeatures, "invoices"))) {
13
+ return;
14
+ }
15
+ const { id } = OrderCanceledEventSchema.parse(event.data);
16
+ await (0, reconcile_order_cancellation_1.reconcileOrderCancellationWorkflow)(container).run({
17
+ input: { order_id: id },
18
+ });
19
+ }
20
+ exports.config = {
21
+ context: { subscriberId: "documents-order-canceled-subscriber" },
22
+ event: utils_1.OrderWorkflowEvents.CANCELED,
23
+ };
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLW9yZGVyLWNhbmNlbGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N1YnNjcmliZXJzL2RvY3VtZW50cy1vcmRlci1jYW5jZWxlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFhQSwwQ0FrQkM7QUEvQkQsc0NBQWtEO0FBS2xELHFEQUErRDtBQUMvRCxpREFBMkM7QUFFM0Msa0VBQXNFO0FBQ3RFLHNHQUF3RztBQUV4RyxNQUFNLHdCQUF3QixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUE7QUFFOUQsS0FBSyxVQUFVLHVCQUF1QixDQUFDLEVBQ3BELEtBQUssRUFDTCxTQUFTLEdBQ2U7SUFDeEIsSUFDRSxDQUFDLENBQUMsTUFBTSxJQUFBLCtCQUFzQixFQUM1QixTQUFTLEVBQ1QseUNBQXVCLEVBQ3ZCLFVBQVUsQ0FDWCxDQUFDLEVBQ0YsQ0FBQztRQUNELE9BQU07SUFDUixDQUFDO0lBRUQsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDekQsTUFBTSxJQUFBLGlFQUFrQyxFQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUN0RCxLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO0tBQ3hCLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFWSxRQUFBLE1BQU0sR0FBcUI7SUFDdEMsT0FBTyxFQUFFLEVBQUUsWUFBWSxFQUFFLHFDQUFxQyxFQUFFO0lBQ2hFLEtBQUssRUFBRSwyQkFBbUIsQ0FBQyxRQUFRO0NBQ3BDLENBQUEifQ==
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.config = void 0;
4
+ exports.default = documentsOrderCancellationReadySubscriber;
5
+ const public_1 = require("../public");
6
+ const documents_1 = require("@hartl-services/medusa-food-supplements-contracts/events/documents");
7
+ const plugin_features_1 = require("../email/plugin-features");
8
+ const prepare_order_canceled_email_1 = require("../workflows/email/prepare-order-canceled-email");
9
+ async function documentsOrderCancellationReadySubscriber({ event, container, }) {
10
+ try {
11
+ if (!(await (0, public_1.isPluginFeatureEnabled)(container, plugin_features_1.emailPluginFeatures, "order_mails"))) {
12
+ return;
13
+ }
14
+ const payload = documents_1.DocumentsOrderCancellationDocumentsReadyEventSchema.parse(event.data);
15
+ await (0, prepare_order_canceled_email_1.prepareOrderCanceledEmailWorkflow)(container).run({
16
+ input: { ...payload, source: "documents" },
17
+ });
18
+ }
19
+ catch {
20
+ throw new Error("EMAIL_DOCUMENTS_CANCELLATION_SUBSCRIBER_FAILED");
21
+ }
22
+ }
23
+ exports.config = {
24
+ event: documents_1.DOCUMENTS_ORDER_CANCELLATION_DOCUMENTS_READY_EVENT,
25
+ };
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLW9yZGVyLWNhbmNlbGxhdGlvbi1yZWFkeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdWJzY3JpYmVycy9kb2N1bWVudHMtb3JkZXItY2FuY2VsbGF0aW9uLXJlYWR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWFBLDREQXVCQztBQXBDRCxzQ0FBbUQ7QUFLbkQsa0dBRzRFO0FBRTVFLDhEQUErRDtBQUMvRCxrR0FBb0c7QUFFckYsS0FBSyxVQUFVLHlDQUF5QyxDQUFDLEVBQ3RFLEtBQUssRUFDTCxTQUFTLEdBQ2U7SUFDeEIsSUFBSSxDQUFDO1FBQ0gsSUFDRSxDQUFDLENBQUMsTUFBTSxJQUFBLCtCQUFzQixFQUM1QixTQUFTLEVBQ1QscUNBQW1CLEVBQ25CLGFBQWEsQ0FDZCxDQUFDLEVBQ0YsQ0FBQztZQUNELE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsK0RBQW1ELENBQUMsS0FBSyxDQUN2RSxLQUFLLENBQUMsSUFBSSxDQUNYLENBQUM7UUFDRixNQUFNLElBQUEsZ0VBQWlDLEVBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ3JELEtBQUssRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUU7U0FDM0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQztJQUNwRSxDQUFDO0FBQ0gsQ0FBQztBQUVZLFFBQUEsTUFBTSxHQUFxQjtJQUN0QyxLQUFLLEVBQUUsOERBQWtEO0NBQzFELENBQUMifQ==
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.config = void 0;
4
+ exports.default = documentsRefundReadySubscriber;
5
+ const public_1 = require("../public");
6
+ const documents_1 = require("@hartl-services/medusa-food-supplements-contracts/events/documents");
7
+ const plugin_features_1 = require("../email/plugin-features");
8
+ const prepare_refund_email_1 = require("../workflows/email/prepare-refund-email");
9
+ async function documentsRefundReadySubscriber({ event, container, }) {
10
+ try {
11
+ if (!(await (0, public_1.isPluginFeatureEnabled)(container, plugin_features_1.emailPluginFeatures, "order_mails"))) {
12
+ return;
13
+ }
14
+ const payload = documents_1.DocumentsRefundDocumentReadyEventSchema.parse(event.data);
15
+ await (0, prepare_refund_email_1.prepareRefundEmailWorkflow)(container).run({ input: payload });
16
+ }
17
+ catch {
18
+ throw new Error("EMAIL_DOCUMENTS_REFUND_SUBSCRIBER_FAILED");
19
+ }
20
+ }
21
+ exports.config = {
22
+ event: documents_1.DOCUMENTS_REFUND_DOCUMENT_READY_EVENT,
23
+ };
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLXJlZnVuZC1yZWFkeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdWJzY3JpYmVycy9kb2N1bWVudHMtcmVmdW5kLXJlYWR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWFBLGlEQW1CQztBQWhDRCxzQ0FBbUQ7QUFLbkQsa0dBRzRFO0FBRTVFLDhEQUErRDtBQUMvRCxrRkFBcUY7QUFFdEUsS0FBSyxVQUFVLDhCQUE4QixDQUFDLEVBQzNELEtBQUssRUFDTCxTQUFTLEdBQ2U7SUFDeEIsSUFBSSxDQUFDO1FBQ0gsSUFDRSxDQUFDLENBQUMsTUFBTSxJQUFBLCtCQUFzQixFQUM1QixTQUFTLEVBQ1QscUNBQW1CLEVBQ25CLGFBQWEsQ0FDZCxDQUFDLEVBQ0YsQ0FBQztZQUNELE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsbURBQXVDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRSxNQUFNLElBQUEsaURBQTBCLEVBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE1BQU0sSUFBSSxLQUFLLENBQUMsMENBQTBDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0FBQ0gsQ0FBQztBQUVZLFFBQUEsTUFBTSxHQUFxQjtJQUN0QyxLQUFLLEVBQUUsaURBQXFDO0NBQzdDLENBQUMifQ==
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.config = void 0;
4
+ exports.default = shipmentCreatedSubscriber;
5
+ const public_1 = require("../public");
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const zod_1 = require("@medusajs/framework/zod");
8
+ const plugin_features_1 = require("../documents/plugin-features");
9
+ const issue_invoice_after_shipment_1 = require("../workflows/documents/issue-invoice-after-shipment");
10
+ const ShipmentCreatedEventSchema = zod_1.z
11
+ .object({
12
+ id: zod_1.z.string().trim().min(1),
13
+ no_notification: zod_1.z.boolean().optional(),
14
+ })
15
+ .strict();
16
+ async function shipmentCreatedSubscriber({ event, container, }) {
17
+ if (!(await (0, public_1.isPluginFeatureEnabled)(container, plugin_features_1.documentsPluginFeatures, "invoices"))) {
18
+ return;
19
+ }
20
+ const { id: fulfillmentId } = ShipmentCreatedEventSchema.parse(event.data);
21
+ try {
22
+ await (0, issue_invoice_after_shipment_1.issueInvoiceAfterShipmentWorkflow)(container).run({
23
+ input: { fulfillment_id: fulfillmentId },
24
+ });
25
+ }
26
+ catch (error) {
27
+ const logger = container.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
28
+ logger.error(`documents: shipment invoice decision failed for fulfillment ${fulfillmentId} (workflow "documents-issue-invoice-after-shipment")`, error instanceof Error ? error : new Error(String(error)));
29
+ throw error;
30
+ }
31
+ }
32
+ exports.config = {
33
+ context: { subscriberId: "documents-shipment-created-subscriber" },
34
+ event: utils_1.FulfillmentWorkflowEvents.SHIPMENT_CREATED,
35
+ };
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLXNoaXBtZW50LWNyZWF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc3Vic2NyaWJlcnMvZG9jdW1lbnRzLXNoaXBtZW50LWNyZWF0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBc0JBLDRDQTRCQztBQWxERCxzQ0FBa0Q7QUFNbEQscURBR2tDO0FBQ2xDLGlEQUEyQztBQUUzQyxrRUFBc0U7QUFDdEUsc0dBQXVHO0FBRXZHLE1BQU0sMEJBQTBCLEdBQUcsT0FBQztLQUNqQyxNQUFNLENBQUM7SUFDTixFQUFFLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDNUIsZUFBZSxFQUFFLE9BQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDeEMsQ0FBQztLQUNELE1BQU0sRUFBRSxDQUFBO0FBRUksS0FBSyxVQUFVLHlCQUF5QixDQUFDLEVBQ3RELEtBQUssRUFDTCxTQUFTLEdBQ2U7SUFDeEIsSUFDRSxDQUFDLENBQUMsTUFBTSxJQUFBLCtCQUFzQixFQUM1QixTQUFTLEVBQ1QseUNBQXVCLEVBQ3ZCLFVBQVUsQ0FDWCxDQUFDLEVBQ0YsQ0FBQztRQUNELE9BQU07SUFDUixDQUFDO0lBRUQsTUFBTSxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsR0FBRywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRTFFLElBQUksQ0FBQztRQUNILE1BQU0sSUFBQSxnRUFBaUMsRUFBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDckQsS0FBSyxFQUFFLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRTtTQUN6QyxDQUFDLENBQUE7SUFDSixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQVMsaUNBQXlCLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDMUUsTUFBTSxDQUFDLEtBQUssQ0FDViwrREFBK0QsYUFBYSxzREFBc0QsRUFDbEksS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDMUQsQ0FBQTtRQUNELE1BQU0sS0FBSyxDQUFBO0lBQ2IsQ0FBQztBQUNILENBQUM7QUFFWSxRQUFBLE1BQU0sR0FBcUI7SUFDdEMsT0FBTyxFQUFFLEVBQUUsWUFBWSxFQUFFLHVDQUF1QyxFQUFFO0lBQ2xFLEtBQUssRUFBRSxpQ0FBeUIsQ0FBQyxnQkFBZ0I7Q0FDbEQsQ0FBQSJ9
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.config = void 0;
4
+ exports.default = documentsShipmentAssignmentSubscriber;
5
+ const public_1 = require("../public");
6
+ const documents_1 = require("@hartl-services/medusa-food-supplements-contracts/events/documents");
7
+ const plugin_features_1 = require("../email/plugin-features");
8
+ const prepare_shipment_email_1 = require("../workflows/email/prepare-shipment-email");
9
+ async function documentsShipmentAssignmentSubscriber({ event, container, }) {
10
+ try {
11
+ if (!(await (0, public_1.isPluginFeatureEnabled)(container, plugin_features_1.emailPluginFeatures, "order_mails"))) {
12
+ return;
13
+ }
14
+ const payload = documents_1.DocumentsShipmentInvoiceAssignmentDecidedEventSchema.parse(event.data);
15
+ await (0, prepare_shipment_email_1.prepareShipmentEmailWorkflow)(container).run({
16
+ input: { ...payload, source: "documents" },
17
+ });
18
+ }
19
+ catch {
20
+ throw new Error("EMAIL_DOCUMENTS_SHIPMENT_ASSIGNMENT_SUBSCRIBER_FAILED");
21
+ }
22
+ }
23
+ exports.config = {
24
+ event: documents_1.DOCUMENTS_SHIPMENT_INVOICE_ASSIGNMENT_DECIDED_EVENT,
25
+ };
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLXNoaXBtZW50LWludm9pY2UtYXNzaWdubWVudC1kZWNpZGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N1YnNjcmliZXJzL2RvY3VtZW50cy1zaGlwbWVudC1pbnZvaWNlLWFzc2lnbm1lbnQtZGVjaWRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFhQSx3REF1QkM7QUFwQ0Qsc0NBQW1EO0FBS25ELGtHQUc0RTtBQUU1RSw4REFBK0Q7QUFDL0Qsc0ZBQXlGO0FBRTFFLEtBQUssVUFBVSxxQ0FBcUMsQ0FBQyxFQUNsRSxLQUFLLEVBQ0wsU0FBUyxHQUNlO0lBQ3hCLElBQUksQ0FBQztRQUNILElBQ0UsQ0FBQyxDQUFDLE1BQU0sSUFBQSwrQkFBc0IsRUFDNUIsU0FBUyxFQUNULHFDQUFtQixFQUNuQixhQUFhLENBQ2QsQ0FBQyxFQUNGLENBQUM7WUFDRCxPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLGdFQUFvRCxDQUFDLEtBQUssQ0FDeEUsS0FBSyxDQUFDLElBQUksQ0FDWCxDQUFDO1FBQ0YsTUFBTSxJQUFBLHFEQUE0QixFQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUNoRCxLQUFLLEVBQUUsRUFBRSxHQUFHLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFO1NBQzNDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxNQUFNLElBQUksS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUM7SUFDM0UsQ0FBQztBQUNILENBQUM7QUFFWSxRQUFBLE1BQU0sR0FBcUI7SUFDdEMsS0FBSyxFQUFFLCtEQUFtRDtDQUMzRCxDQUFDIn0=
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.config = void 0;
4
+ exports.default = orderCanceledSubscriber;
5
+ const public_1 = require("../public");
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const plugin_features_1 = require("../email/plugin-features");
8
+ const event_schemas_1 = require("../email/domain/event-schemas");
9
+ const prepare_order_canceled_email_1 = require("../workflows/email/prepare-order-canceled-email");
10
+ async function orderCanceledSubscriber({ event, container, }) {
11
+ try {
12
+ if (!(await (0, public_1.isPluginFeatureEnabled)(container, plugin_features_1.emailPluginFeatures, "order_mails"))) {
13
+ return;
14
+ }
15
+ const payload = event_schemas_1.NativeOrderEventSchema.parse(event.data);
16
+ await (0, prepare_order_canceled_email_1.prepareOrderCanceledEmailWorkflow)(container).run({
17
+ input: { order_id: payload.id, source: "cancellation" },
18
+ });
19
+ }
20
+ catch {
21
+ throw new Error("EMAIL_ORDER_CANCELED_SUBSCRIBER_FAILED");
22
+ }
23
+ }
24
+ exports.config = {
25
+ context: { subscriberId: "email-order-canceled-subscriber" },
26
+ event: utils_1.OrderWorkflowEvents.CANCELED,
27
+ };
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtb3JkZXItY2FuY2VsZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc3Vic2NyaWJlcnMvZW1haWwtb3JkZXItY2FuY2VsZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBV0EsMENBcUJDO0FBaENELHNDQUFtRDtBQUtuRCxxREFBZ0U7QUFFaEUsOERBQStEO0FBQy9ELGlFQUF1RTtBQUN2RSxrR0FBb0c7QUFFckYsS0FBSyxVQUFVLHVCQUF1QixDQUFDLEVBQ3BELEtBQUssRUFDTCxTQUFTLEdBQ2U7SUFDeEIsSUFBSSxDQUFDO1FBQ0gsSUFDRSxDQUFDLENBQUMsTUFBTSxJQUFBLCtCQUFzQixFQUM1QixTQUFTLEVBQ1QscUNBQW1CLEVBQ25CLGFBQWEsQ0FDZCxDQUFDLEVBQ0YsQ0FBQztZQUNELE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsc0NBQXNCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6RCxNQUFNLElBQUEsZ0VBQWlDLEVBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ3JELEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUU7U0FDeEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0FBQ0gsQ0FBQztBQUVZLFFBQUEsTUFBTSxHQUFxQjtJQUN0QyxPQUFPLEVBQUUsRUFBRSxZQUFZLEVBQUUsaUNBQWlDLEVBQUU7SUFDNUQsS0FBSyxFQUFFLDJCQUFtQixDQUFDLFFBQVE7Q0FDcEMsQ0FBQyJ9
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.config = void 0;
4
+ exports.default = shipmentCreatedSubscriber;
5
+ const public_1 = require("../public");
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const plugin_features_1 = require("../email/plugin-features");
8
+ const event_schemas_1 = require("../email/domain/event-schemas");
9
+ const prepare_shipment_email_1 = require("../workflows/email/prepare-shipment-email");
10
+ async function shipmentCreatedSubscriber({ event, container, }) {
11
+ try {
12
+ if (!(await (0, public_1.isPluginFeatureEnabled)(container, plugin_features_1.emailPluginFeatures, "order_mails"))) {
13
+ return;
14
+ }
15
+ const payload = event_schemas_1.NativeShipmentCreatedEventSchema.parse(event.data);
16
+ await (0, prepare_shipment_email_1.prepareShipmentEmailWorkflow)(container).run({
17
+ input: {
18
+ fulfillment_id: payload.id,
19
+ no_notification: payload.no_notification === true,
20
+ source: "shipment",
21
+ },
22
+ });
23
+ }
24
+ catch {
25
+ throw new Error("EMAIL_SHIPMENT_CREATED_SUBSCRIBER_FAILED");
26
+ }
27
+ }
28
+ exports.config = {
29
+ context: { subscriberId: "email-shipment-created-subscriber" },
30
+ event: utils_1.FulfillmentWorkflowEvents.SHIPMENT_CREATED,
31
+ };
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtc2hpcG1lbnQtY3JlYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdWJzY3JpYmVycy9lbWFpbC1zaGlwbWVudC1jcmVhdGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVdBLDRDQXlCQztBQXBDRCxzQ0FBbUQ7QUFLbkQscURBQXNFO0FBRXRFLDhEQUErRDtBQUMvRCxpRUFBaUY7QUFDakYsc0ZBQXlGO0FBRTFFLEtBQUssVUFBVSx5QkFBeUIsQ0FBQyxFQUN0RCxLQUFLLEVBQ0wsU0FBUyxHQUNlO0lBQ3hCLElBQUksQ0FBQztRQUNILElBQ0UsQ0FBQyxDQUFDLE1BQU0sSUFBQSwrQkFBc0IsRUFDNUIsU0FBUyxFQUNULHFDQUFtQixFQUNuQixhQUFhLENBQ2QsQ0FBQyxFQUNGLENBQUM7WUFDRCxPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLGdEQUFnQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkUsTUFBTSxJQUFBLHFEQUE0QixFQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUNoRCxLQUFLLEVBQUU7Z0JBQ0wsY0FBYyxFQUFFLE9BQU8sQ0FBQyxFQUFFO2dCQUMxQixlQUFlLEVBQUUsT0FBTyxDQUFDLGVBQWUsS0FBSyxJQUFJO2dCQUNqRCxNQUFNLEVBQUUsVUFBVTthQUNuQjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztBQUNILENBQUM7QUFFWSxRQUFBLE1BQU0sR0FBcUI7SUFDdEMsT0FBTyxFQUFFLEVBQUUsWUFBWSxFQUFFLG1DQUFtQyxFQUFFO0lBQzlELEtBQUssRUFBRSxpQ0FBeUIsQ0FBQyxnQkFBZ0I7Q0FDbEQsQ0FBQyJ9
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.config = void 0;
4
+ exports.default = orderPlacedSubscriber;
5
+ const public_1 = require("../public");
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const plugin_features_1 = require("../email/plugin-features");
8
+ const event_schemas_1 = require("../email/domain/event-schemas");
9
+ const prepare_order_received_email_1 = require("../workflows/email/prepare-order-received-email");
10
+ async function orderPlacedSubscriber({ event, container, }) {
11
+ try {
12
+ if (!(await (0, public_1.isPluginFeatureEnabled)(container, plugin_features_1.emailPluginFeatures, "order_mails"))) {
13
+ return;
14
+ }
15
+ const payload = event_schemas_1.NativeOrderEventSchema.parse(event.data);
16
+ await (0, prepare_order_received_email_1.prepareOrderReceivedEmailWorkflow)(container).run({
17
+ input: { order_id: payload.id },
18
+ });
19
+ }
20
+ catch {
21
+ throw new Error("EMAIL_ORDER_PLACED_SUBSCRIBER_FAILED");
22
+ }
23
+ }
24
+ exports.config = {
25
+ event: utils_1.OrderWorkflowEvents.PLACED,
26
+ };
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItcGxhY2VkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N1YnNjcmliZXJzL29yZGVyLXBsYWNlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFXQSx3Q0FxQkM7QUFoQ0Qsc0NBQW1EO0FBS25ELHFEQUFnRTtBQUVoRSw4REFBK0Q7QUFDL0QsaUVBQXVFO0FBQ3ZFLGtHQUFvRztBQUVyRixLQUFLLFVBQVUscUJBQXFCLENBQUMsRUFDbEQsS0FBSyxFQUNMLFNBQVMsR0FDZTtJQUN4QixJQUFJLENBQUM7UUFDSCxJQUNFLENBQUMsQ0FBQyxNQUFNLElBQUEsK0JBQXNCLEVBQzVCLFNBQVMsRUFDVCxxQ0FBbUIsRUFDbkIsYUFBYSxDQUNkLENBQUMsRUFDRixDQUFDO1lBQ0QsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxzQ0FBc0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pELE1BQU0sSUFBQSxnRUFBaUMsRUFBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDckQsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUU7U0FDaEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0FBQ0gsQ0FBQztBQUVZLFFBQUEsTUFBTSxHQUFxQjtJQUN0QyxLQUFLLEVBQUUsMkJBQW1CLENBQUMsTUFBTTtDQUNsQyxDQUFDIn0=