@hartl-services/medusa-base 2.5.0 → 2.6.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 (287) hide show
  1. package/.medusa/server/src/admin/admin-components/features/plugin-features/components/ImageSettingInput.js +48 -0
  2. package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginActionsSection.js +3 -2
  3. package/.medusa/server/src/admin/admin-components/features/plugin-features/components/PluginFeaturesSettingsPage.js +17 -0
  4. package/.medusa/server/src/admin/admin-components/features/plugin-features/components/PluginPageShell.js +20 -0
  5. package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginSettingsForm.js +16 -3
  6. package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/hooks/usePluginFeatureEnabled.d.ts +5 -1
  7. package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/hooks/usePluginFeatures.d.ts +20 -4
  8. package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/hooks/usePluginFeatures.js +1 -1
  9. package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/hooks/usePluginSettingsForm.d.ts +5 -1
  10. package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/lib/action-runs.d.ts +1 -1
  11. package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/lib/action-runs.js +3 -2
  12. package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/lib/plugin-features-admin-client.d.ts +20 -4
  13. package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/lib/plugin-features-admin-client.js +1 -1
  14. package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/lib/settings-draft.d.ts +17 -2
  15. package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/lib/settings-draft.js +33 -1
  16. package/{dist → .medusa/server/src/admin}/admin-components/i18n/texts.d.ts +3 -0
  17. package/{dist → .medusa/server/src/admin}/admin-components/i18n/texts.js +3 -0
  18. package/.medusa/server/src/admin/admin-components/index.d.ts +36 -0
  19. package/.medusa/server/src/admin/admin-components/index.js +37 -0
  20. package/.medusa/server/src/admin/admin-components/shared/lib/date-input.d.ts +8 -0
  21. package/.medusa/server/src/admin/admin-components/shared/lib/date-input.js +43 -0
  22. package/.medusa/server/src/admin/admin-components/shared/lib/errors.d.ts +9 -0
  23. package/{dist/admin-components → .medusa/server/src/admin/admin-components/shared}/lib/errors.js +4 -6
  24. package/.medusa/server/src/admin/admin-components/shared/lib/file-validation.d.ts +24 -0
  25. package/.medusa/server/src/admin/admin-components/shared/lib/file-validation.js +18 -0
  26. package/.medusa/server/src/admin/admin-components/shared/lib/format.d.ts +32 -0
  27. package/.medusa/server/src/admin/admin-components/shared/lib/format.js +77 -0
  28. package/.medusa/server/src/admin/admin-components/shared/lib/pdf-preview.d.ts +16 -0
  29. package/.medusa/server/src/admin/admin-components/shared/lib/pdf-preview.js +31 -0
  30. package/.medusa/server/src/admin/admin-components/shared/lib/pdf.d.ts +6 -0
  31. package/.medusa/server/src/admin/admin-components/shared/lib/pdf.js +13 -0
  32. package/.medusa/server/src/admin/admin-components/shared/lib/use-debounced-value.d.ts +2 -0
  33. package/.medusa/server/src/admin/admin-components/shared/lib/use-debounced-value.js +10 -0
  34. package/.medusa/server/src/admin/admin-components/shared/lib/use-pdf-preview.d.ts +24 -0
  35. package/.medusa/server/src/admin/admin-components/shared/lib/use-pdf-preview.js +47 -0
  36. package/.medusa/server/src/admin/admin-components/shared/ui/AdminDatePicker.d.ts +8 -0
  37. package/.medusa/server/src/admin/admin-components/shared/ui/AdminDatePicker.js +9 -0
  38. package/.medusa/server/src/admin/admin-components/shared/ui/BackLink.d.ts +8 -0
  39. package/.medusa/server/src/admin/admin-components/shared/ui/BackLink.js +5 -0
  40. package/.medusa/server/src/admin/admin-components/shared/ui/DateRangeFilter.d.ts +20 -0
  41. package/.medusa/server/src/admin/admin-components/shared/ui/DateRangeFilter.js +17 -0
  42. package/.medusa/server/src/admin/admin-components/shared/ui/FilePickerButton.d.ts +14 -0
  43. package/.medusa/server/src/admin/admin-components/shared/ui/FilePickerButton.js +14 -0
  44. package/.medusa/server/src/admin/admin-components/shared/ui/MappedStatusBadge.d.ts +17 -0
  45. package/.medusa/server/src/admin/admin-components/shared/ui/MappedStatusBadge.js +12 -0
  46. package/.medusa/server/src/admin/admin-components/shared/ui/OffsetTablePagination.d.ts +15 -0
  47. package/.medusa/server/src/admin/admin-components/shared/ui/OffsetTablePagination.js +19 -0
  48. package/.medusa/server/src/admin/admin-components/shared/ui/PdfPreviewModal.d.ts +20 -0
  49. package/.medusa/server/src/admin/admin-components/shared/ui/PdfPreviewModal.js +7 -0
  50. package/.medusa/server/src/admin/admin-components/shared/ui/PluginFeatureRoute.d.ts +19 -0
  51. package/.medusa/server/src/admin/admin-components/shared/ui/PluginFeatureRoute.js +16 -0
  52. package/.medusa/server/src/admin/admin-components/shared/ui/QueryState.d.ts +24 -0
  53. package/.medusa/server/src/admin/admin-components/shared/ui/QueryState.js +23 -0
  54. package/.medusa/server/src/admin/admin-components/shared/ui/SearchableReferenceField.d.ts +63 -0
  55. package/.medusa/server/src/admin/admin-components/shared/ui/SearchableReferenceField.js +84 -0
  56. package/.medusa/server/src/admin/admin-components/shared/ui/SectionHeader.d.ts +15 -0
  57. package/.medusa/server/src/admin/admin-components/shared/ui/SectionHeader.js +13 -0
  58. package/.medusa/server/src/admin/admin-components/shared/ui/mapped-status.d.ts +6 -0
  59. package/.medusa/server/src/admin/admin-components/shared/ui/mapped-status.js +10 -0
  60. package/.medusa/server/src/admin/admin-components/shared/ui/offset-pagination.d.ts +17 -0
  61. package/.medusa/server/src/admin/admin-components/shared/ui/offset-pagination.js +15 -0
  62. package/.medusa/server/src/admin/admin-components/shared/ui/reference-results-state.d.ts +16 -0
  63. package/.medusa/server/src/admin/admin-components/shared/ui/reference-results-state.js +13 -0
  64. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/InsertMenu.d.ts +8 -0
  65. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/InsertMenu.js +10 -0
  66. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/LinkPrompt.d.ts +14 -0
  67. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/LinkPrompt.js +26 -0
  68. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/RichTextEditor.d.ts +15 -0
  69. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/RichTextEditor.js +8 -0
  70. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/RichTextToolbar.d.ts +10 -0
  71. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/RichTextToolbar.js +49 -0
  72. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/SlashMenu.d.ts +11 -0
  73. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/SlashMenu.js +44 -0
  74. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/build-extensions.d.ts +8 -0
  75. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/build-extensions.js +43 -0
  76. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/drag-handle.d.ts +15 -0
  77. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/drag-handle.js +161 -0
  78. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/drag-target.d.ts +30 -0
  79. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/drag-target.js +47 -0
  80. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/editor-styles.d.ts +6 -0
  81. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/editor-styles.js +46 -0
  82. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/index.d.ts +9 -0
  83. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/index.js +6 -0
  84. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/link-href.d.ts +8 -0
  85. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/link-href.js +21 -0
  86. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/link-policy.d.ts +13 -0
  87. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/link-policy.js +20 -0
  88. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/slash-command.d.ts +13 -0
  89. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/slash-command.js +60 -0
  90. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/slash-items.d.ts +25 -0
  91. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/slash-items.js +10 -0
  92. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/tiptap.d.ts +7 -0
  93. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/tiptap.js +7 -0
  94. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/use-rich-text-editor.d.ts +44 -0
  95. package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/use-rich-text-editor.js +37 -0
  96. package/.medusa/server/src/admin/index.js +4513 -1447
  97. package/.medusa/server/src/admin/index.mjs +4515 -1452
  98. package/.medusa/server/src/api/admin/email/attachments/[id]/mail-kinds/route.js +16 -0
  99. package/.medusa/server/src/api/admin/email/attachments/[id]/route.js +15 -0
  100. package/.medusa/server/src/api/admin/email/attachments/[id]/versions/[version_id]/download/route.js +16 -0
  101. package/.medusa/server/src/api/admin/email/attachments/[id]/versions/route.js +41 -0
  102. package/.medusa/server/src/api/admin/email/attachments/route.js +21 -0
  103. package/.medusa/server/src/api/admin/email/templates/[kind]/preview/route.js +31 -0
  104. package/.medusa/server/src/api/admin/email/templates/[kind]/route.js +28 -0
  105. package/.medusa/server/src/api/admin/email/templates/[kind]/send-test/route.js +179 -0
  106. package/.medusa/server/src/api/admin/email/templates/[kind]/test-sources/route.js +19 -0
  107. package/.medusa/server/src/api/admin/email/templates/route.js +15 -0
  108. package/.medusa/server/src/api/admin/plugin-features/[plugin_key]/actions/[action_key]/route.js +2 -2
  109. package/.medusa/server/src/api/admin/plugin-features/[plugin_key]/actions/[action_key]/runs/route.js +2 -2
  110. package/.medusa/server/src/api/admin/plugin-features/[plugin_key]/route.js +2 -2
  111. package/.medusa/server/src/api/admin/plugin-features/[plugin_key]/settings/route.js +2 -2
  112. package/.medusa/server/src/api/admin/plugin-features/route.js +2 -2
  113. package/.medusa/server/src/api/attachment-download-response.js +12 -0
  114. package/.medusa/server/src/api/email-template-response.js +43 -0
  115. package/.medusa/server/src/api/middlewares.js +75 -17
  116. package/.medusa/server/src/api/plugin-actions.js +6 -5
  117. package/.medusa/server/src/api/plugin-features-http.js +4 -9
  118. package/.medusa/server/src/api/store/carts/[id]/completion-check/route.js +2 -2
  119. package/.medusa/server/src/api/store/plugin-features/[plugin_key]/route.js +2 -2
  120. package/.medusa/server/src/api/store/plugin-features/route.js +2 -2
  121. package/.medusa/server/src/documents/plugin-features.js +1 -7
  122. package/.medusa/server/src/documents/templates/financial-document.js +12 -11
  123. package/.medusa/server/src/documents/templates/html-factory.js +1 -1
  124. package/.medusa/server/src/documents/templates/html-utils.js +4 -10
  125. package/.medusa/server/src/documents/templates/layout.js +30 -11
  126. package/.medusa/server/src/documents/templates/packing-list.js +8 -7
  127. package/.medusa/server/src/documents/utils/document-render-settings.js +9 -6
  128. package/.medusa/server/src/email/application/handle-customer-verification-event.js +8 -3
  129. package/.medusa/server/src/email/application/handle-invite-event.js +8 -3
  130. package/.medusa/server/src/email/application/handle-password-reset-event.js +8 -3
  131. package/.medusa/server/src/email/application/notification-attachments.js +86 -0
  132. package/.medusa/server/src/email/application/template-data-from-order.js +339 -0
  133. package/.medusa/server/src/email/config/index.js +5 -29
  134. package/.medusa/server/src/email/domain/business-keys.js +5 -5
  135. package/.medusa/server/src/email/domain/documents-fact-fingerprint.js +3 -3
  136. package/.medusa/server/src/email/domain/order-summary.js +21 -27
  137. package/.medusa/server/src/email/domain/refund-summary.js +7 -12
  138. package/.medusa/server/src/email/domain/return-summary.js +32 -38
  139. package/.medusa/server/src/email/domain/shipment-summary.js +22 -28
  140. package/.medusa/server/src/email/plugin-features.js +2 -10
  141. package/.medusa/server/src/email/rendering/calendar-dates.js +19 -0
  142. package/.medusa/server/src/email/rendering/default-templates.js +99 -682
  143. package/.medusa/server/src/email/rendering/email-html.js +189 -0
  144. package/.medusa/server/src/email/rendering/load-email-shop-details.js +14 -12
  145. package/.medusa/server/src/email/rendering/render-email.js +46 -13
  146. package/.medusa/server/src/email/rendering/resolve-shop-configuration.js +3 -14
  147. package/.medusa/server/src/email/templates/blocks/dynamic-blocks.js +427 -0
  148. package/.medusa/server/src/email/templates/blocks/placeholders.js +71 -0
  149. package/.medusa/server/src/email/templates/blocks/render-document.js +137 -0
  150. package/.medusa/server/src/email/templates/code-override.js +18 -0
  151. package/.medusa/server/src/email/templates/defaults/documents.js +129 -0
  152. package/.medusa/server/src/email/templates/defaults/subjects.js +62 -0
  153. package/.medusa/server/src/email/templates/defaults/texts.js +42 -0
  154. package/.medusa/server/src/email/templates/index.js +22 -0
  155. package/.medusa/server/src/email/templates/load-template.js +39 -0
  156. package/.medusa/server/src/email/templates/preview.js +33 -0
  157. package/.medusa/server/src/email/templates/render.js +70 -0
  158. package/.medusa/server/src/email/templates/sample-data.js +165 -0
  159. package/.medusa/server/src/email/templates/types.js +3 -0
  160. package/.medusa/server/src/email/templates/validate.js +113 -0
  161. package/.medusa/server/src/files/config/index.js +6 -9
  162. package/.medusa/server/src/migration-scripts/move-logo-to-shop-appearance.js +53 -0
  163. package/.medusa/server/src/modules/documents/domain/cancellation-snapshot.js +4 -3
  164. package/.medusa/server/src/modules/documents/domain/merchant.js +4 -3
  165. package/.medusa/server/src/modules/documents/domain/options.js +3 -5
  166. package/.medusa/server/src/modules/documents/domain/tax-breakdown.js +4 -7
  167. package/.medusa/server/src/modules/documents/service.js +12 -33
  168. package/.medusa/server/src/modules/email/domain/attachment.js +22 -8
  169. package/.medusa/server/src/modules/email/migrations/Migration20261009083539.js +80 -0
  170. package/.medusa/server/src/modules/email/migrations/Migration20261009100654.js +17 -0
  171. package/.medusa/server/src/modules/email/models/email-attachment-document-version.js +39 -0
  172. package/.medusa/server/src/modules/email/models/email-attachment-document.js +27 -0
  173. package/.medusa/server/src/modules/email/models/email-template.js +25 -0
  174. package/.medusa/server/src/modules/email/service.js +370 -93
  175. package/.medusa/server/src/modules/plugin-features/domain/plugin-settings.js +9 -11
  176. package/.medusa/server/src/modules/plugin-features/service.js +2 -1
  177. package/.medusa/server/src/providers/s3-cache/cache/cache-manager.js +3 -3
  178. package/.medusa/server/src/providers/s3-cache/s3-object-store.js +3 -9
  179. package/.medusa/server/src/providers/smtp/service.js +13 -13
  180. package/.medusa/server/src/public/descriptor.js +16 -18
  181. package/.medusa/server/src/public/enforcement.js +29 -1
  182. package/.medusa/server/src/public/index.js +8 -2
  183. package/.medusa/server/src/public/module-access.js +9 -2
  184. package/.medusa/server/src/public/shop-master-data.js +109 -18
  185. package/.medusa/server/src/shared/lib/coerce.js +26 -0
  186. package/.medusa/server/src/shared/lib/collections.js +19 -0
  187. package/.medusa/server/src/shared/lib/dates.js +43 -0
  188. package/.medusa/server/src/shared/lib/errors.js +11 -0
  189. package/.medusa/server/src/shared/lib/hash.js +8 -0
  190. package/.medusa/server/src/shared/lib/index.js +29 -0
  191. package/.medusa/server/src/shared/lib/logging.js +61 -0
  192. package/.medusa/server/src/shared/lib/money.js +47 -0
  193. package/.medusa/server/src/shared/lib/text.js +53 -0
  194. package/.medusa/server/src/shared/lib/transaction.js +58 -0
  195. package/.medusa/server/src/{api → shared/lib}/wire-response.js +1 -1
  196. package/.medusa/server/src/shop-config/options.js +3 -5
  197. package/.medusa/server/src/subscribers/packing-list-fulfillment-canceled.js +4 -6
  198. package/.medusa/server/src/workflows/documents/issue-invoice-after-shipment.js +10 -12
  199. package/.medusa/server/src/workflows/documents/issue-packing-list.js +5 -6
  200. package/.medusa/server/src/workflows/documents/reconcile-order-cancellation.js +6 -8
  201. package/.medusa/server/src/workflows/email/dispatch-email-message.js +11 -41
  202. package/.medusa/server/src/workflows/email/prepare-order-received-email.js +2 -2
  203. package/.medusa/server/src/workflows/hooks/complete-cart-participants.js +4 -8
  204. package/README.md +427 -54
  205. package/dist/documents/templates/financial-document.js +11 -10
  206. package/dist/documents/templates/html-factory.d.ts +1 -1
  207. package/dist/documents/templates/html-factory.js +1 -1
  208. package/dist/documents/templates/html-utils.d.ts +0 -1
  209. package/dist/documents/templates/html-utils.js +3 -9
  210. package/dist/documents/templates/layout.js +29 -10
  211. package/dist/documents/templates/packing-list.js +7 -6
  212. package/dist/documents/types/documents.d.ts +7 -1
  213. package/dist/email/config/index.js +4 -28
  214. package/dist/email/types/shop-configuration.d.ts +6 -5
  215. package/dist/files/config/index.js +5 -8
  216. package/dist/modules/documents/domain/options.js +2 -4
  217. package/dist/public/descriptor.js +15 -17
  218. package/dist/public/enforcement.d.ts +21 -1
  219. package/dist/public/enforcement.js +28 -0
  220. package/dist/public/index.d.ts +3 -2
  221. package/dist/public/index.js +7 -1
  222. package/dist/public/module-access.d.ts +8 -0
  223. package/dist/public/module-access.js +8 -1
  224. package/dist/public/shop-master-data.d.ts +22 -5
  225. package/dist/public/shop-master-data.js +108 -17
  226. package/dist/public/types.d.ts +10 -2
  227. package/dist/shared/lib/coerce.d.ts +19 -0
  228. package/dist/shared/lib/coerce.js +25 -0
  229. package/dist/shared/lib/collections.d.ts +3 -0
  230. package/dist/shared/lib/collections.js +18 -0
  231. package/dist/shared/lib/dates.d.ts +12 -0
  232. package/dist/shared/lib/dates.js +42 -0
  233. package/dist/shared/lib/errors.d.ts +2 -0
  234. package/dist/shared/lib/errors.js +10 -0
  235. package/dist/shared/lib/hash.d.ts +2 -0
  236. package/dist/shared/lib/hash.js +7 -0
  237. package/dist/shared/lib/index.d.ts +10 -0
  238. package/dist/shared/lib/index.js +28 -0
  239. package/dist/shared/lib/logging.d.ts +26 -0
  240. package/dist/shared/lib/logging.js +60 -0
  241. package/dist/shared/lib/money.d.ts +13 -0
  242. package/dist/shared/lib/money.js +46 -0
  243. package/dist/shared/lib/text.d.ts +19 -0
  244. package/dist/shared/lib/text.js +52 -0
  245. package/dist/shared/lib/transaction.d.ts +26 -0
  246. package/dist/shared/lib/transaction.js +57 -0
  247. package/dist/shared/lib/wire-response.d.ts +6 -0
  248. package/dist/shared/lib/wire-response.js +9 -0
  249. package/dist/shop-config/options.js +2 -4
  250. package/package.json +19 -4
  251. package/.medusa/server/src/api/admin/email/terms-versions/[id]/download/route.js +0 -16
  252. package/.medusa/server/src/api/admin/email/terms-versions/route.js +0 -47
  253. package/.medusa/server/src/api/terms-download-response.js +0 -12
  254. package/.medusa/server/src/modules/email/models/email-terms-version.js +0 -37
  255. package/dist/admin-components/features/plugin-features/components/ImageSettingInput.js +0 -42
  256. package/dist/admin-components/features/plugin-features/components/PluginFeaturesSettingsPage.js +0 -16
  257. package/dist/admin-components/features/plugin-features/components/PluginPageShell.js +0 -20
  258. package/dist/admin-components/features/plugin-features/lib/image-upload.d.ts +0 -6
  259. package/dist/admin-components/features/plugin-features/lib/image-upload.js +0 -17
  260. package/dist/admin-components/index.d.ts +0 -14
  261. package/dist/admin-components/index.js +0 -14
  262. package/dist/admin-components/lib/errors.d.ts +0 -6
  263. /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/ImageSettingInput.d.ts +0 -0
  264. /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginActionsSection.d.ts +0 -0
  265. /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginDetailPage.d.ts +0 -0
  266. /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginDetailPage.js +0 -0
  267. /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginFeatureGate.d.ts +0 -0
  268. /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginFeatureGate.js +0 -0
  269. /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginFeatureSections.d.ts +0 -0
  270. /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginFeatureSections.js +0 -0
  271. /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginFeaturesCard.d.ts +0 -0
  272. /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginFeaturesCard.js +0 -0
  273. /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginFeaturesSettingsPage.d.ts +0 -0
  274. /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginHubCard.d.ts +0 -0
  275. /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginHubCard.js +0 -0
  276. /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginPageShell.d.ts +0 -0
  277. /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginSettingsForm.d.ts +0 -0
  278. /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginStatusChips.d.ts +0 -0
  279. /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginStatusChips.js +0 -0
  280. /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/hooks/usePluginFeatureEnabled.js +0 -0
  281. /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/hooks/usePluginSettingsForm.js +0 -0
  282. /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/lib/plugin-paths.d.ts +0 -0
  283. /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/lib/plugin-paths.js +0 -0
  284. /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/queries/pluginFeatureKeys.d.ts +0 -0
  285. /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/queries/pluginFeatureKeys.js +0 -0
  286. /package/{dist/admin-components → .medusa/server/src/admin/admin-components/shared}/lib/sdk.d.ts +0 -0
  287. /package/{dist/admin-components → .medusa/server/src/admin/admin-components/shared}/lib/sdk.js +0 -0
@@ -22,6 +22,7 @@ const documents_1 = require("@hartl-services/medusa-food-supplements-contracts/e
22
22
  const document_resolution_1 = require("./domain/document-resolution");
23
23
  const document_number_1 = require("./domain/document-number");
24
24
  const options_1 = require("./domain/options");
25
+ const lib_1 = require("../../shared/lib");
25
26
  const snapshot_normalization_1 = require("./domain/snapshot-normalization");
26
27
  const plugin_features_1 = require("../../documents/plugin-features");
27
28
  const document_1 = __importDefault(require("./models/document"));
@@ -482,9 +483,7 @@ class DocumentsModuleService extends (0, utils_1.MedusaService)({
482
483
  throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "A non-empty fulfillment ID is required.");
483
484
  }
484
485
  const manager = this.requireManager(sharedContext);
485
- await manager.execute("select pg_advisory_xact_lock(hashtext(?))", [
486
- `documents:packing-list:${fulfillmentId.trim()}`,
487
- ]);
486
+ await (0, lib_1.acquireAdvisoryXactLock)(manager, `documents:packing-list:${fulfillmentId.trim()}`);
488
487
  }
489
488
  async tryClaimPackingListRevision(revision, attemptToken, startedAt, sharedContext) {
490
489
  const manager = this.requireManager(sharedContext);
@@ -506,11 +505,7 @@ class DocumentsModuleService extends (0, utils_1.MedusaService)({
506
505
  return updated[0] ?? null;
507
506
  }
508
507
  requireManager(sharedContext) {
509
- const manager = sharedContext.transactionManager;
510
- if (!manager) {
511
- throw new utils_1.MedusaError(utils_1.MedusaError.Types.UNEXPECTED_STATE, "Document operation requires a database transaction manager.");
512
- }
513
- return manager;
508
+ return (0, lib_1.requireTransactionManager)(sharedContext, "Document operation requires a database transaction manager.");
514
509
  }
515
510
  async lockCoreOrder(manager, orderId) {
516
511
  const rows = await manager.execute(`select "status", "canceled_at", "version" from "order"
@@ -553,9 +548,7 @@ class DocumentsModuleService extends (0, utils_1.MedusaService)({
553
548
  const orderId = asNonEmptyString(input.order_id, "order_id");
554
549
  const fulfillmentId = asNonEmptyString(input.fulfillment_id, "fulfillment_id");
555
550
  const manager = this.requireManager(sharedContext);
556
- await manager.execute("select pg_advisory_xact_lock(hashtext(?))", [
557
- `documents:shipment:${fulfillmentId}`,
558
- ]);
551
+ await (0, lib_1.acquireAdvisoryXactLock)(manager, `documents:shipment:${fulfillmentId}`);
559
552
  const rows = await manager.execute(`select * from "documents_shipment_invoice_assignment"
560
553
  where "fulfillment_id" = ? for update`, [fulfillmentId]);
561
554
  if (rows[0]) {
@@ -576,9 +569,7 @@ class DocumentsModuleService extends (0, utils_1.MedusaService)({
576
569
  const manager = this.requireManager(sharedContext);
577
570
  const orderId = asNonEmptyString(input.order_id, "order_id");
578
571
  const fulfillmentId = asNonEmptyString(input.fulfillment_id, "fulfillment_id");
579
- await manager.execute("select pg_advisory_xact_lock(hashtext(?))", [
580
- `documents:invoice-coordinator:${orderId}`,
581
- ]);
572
+ await (0, lib_1.acquireAdvisoryXactLock)(manager, `documents:invoice-coordinator:${orderId}`);
582
573
  const assignmentRows = await manager.execute(`select * from "documents_shipment_invoice_assignment"
583
574
  where "fulfillment_id" = ? and "order_id" = ? and "deleted_at" is null
584
575
  for update`, [fulfillmentId, orderId]);
@@ -720,9 +711,7 @@ class DocumentsModuleService extends (0, utils_1.MedusaService)({
720
711
  async startDocumentIssuance(input, sharedContext) {
721
712
  const manager = this.requireManager(sharedContext);
722
713
  const issuanceKey = asNonEmptyString(input.issuance_key, "issuance_key");
723
- await manager.execute("select pg_advisory_xact_lock(hashtext(?))", [
724
- `documents:issuance:${issuanceKey}`,
725
- ]);
714
+ await (0, lib_1.acquireAdvisoryXactLock)(manager, `documents:issuance:${issuanceKey}`);
726
715
  const rows = await manager.execute(`select * from "documents_document" where "issuance_key" = ? for update`, [issuanceKey]);
727
716
  if (rows[0]?.deleted_at) {
728
717
  throw new utils_1.MedusaError(utils_1.MedusaError.Types.CONFLICT, "The document issuance key was already consumed.");
@@ -981,9 +970,7 @@ class DocumentsModuleService extends (0, utils_1.MedusaService)({
981
970
  const orderId = asNonEmptyString(input.order_id, "order_id");
982
971
  const paymentId = asNonEmptyString(input.payment_id, "payment_id");
983
972
  const manager = this.requireManager(sharedContext);
984
- await manager.execute("select pg_advisory_xact_lock(hashtext(?))", [
985
- `documents:refund:${refundId}`,
986
- ]);
973
+ await (0, lib_1.acquireAdvisoryXactLock)(manager, `documents:refund:${refundId}`);
987
974
  const rows = await manager.execute(`select * from "documents_refund_document_resolution"
988
975
  where "refund_id" = ? for update`, [refundId]);
989
976
  if (rows[0]) {
@@ -1041,9 +1028,7 @@ class DocumentsModuleService extends (0, utils_1.MedusaService)({
1041
1028
  if (!identityRows[0]) {
1042
1029
  throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, "Refund document resolution not found.");
1043
1030
  }
1044
- await manager.execute("select pg_advisory_xact_lock(hashtext(?))", [
1045
- `documents:cancellation:${identityRows[0].order_id}`,
1046
- ]);
1031
+ await (0, lib_1.acquireAdvisoryXactLock)(manager, `documents:cancellation:${identityRows[0].order_id}`);
1047
1032
  const order = await this.lockCoreOrder(manager, identityRows[0].order_id);
1048
1033
  const rows = await manager.execute(`select * from "documents_refund_document_resolution"
1049
1034
  where "id" = ? and "state" = 'processing' and "attempt_token" = ?
@@ -1076,9 +1061,7 @@ class DocumentsModuleService extends (0, utils_1.MedusaService)({
1076
1061
  if (!identityRows[0]) {
1077
1062
  throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, "Refund document resolution not found.");
1078
1063
  }
1079
- await manager.execute("select pg_advisory_xact_lock(hashtext(?))", [
1080
- `documents:cancellation:${identityRows[0].order_id}`,
1081
- ]);
1064
+ await (0, lib_1.acquireAdvisoryXactLock)(manager, `documents:cancellation:${identityRows[0].order_id}`);
1082
1065
  const order = await this.lockCoreOrder(manager, identityRows[0].order_id);
1083
1066
  const rows = await manager.execute(`select r.*, d."id" as "claimed_document_id",
1084
1067
  d."document_number" as "claimed_document_number",
@@ -1158,9 +1141,7 @@ class DocumentsModuleService extends (0, utils_1.MedusaService)({
1158
1141
  const orderId = asNonEmptyString(input.order_id, "order_id");
1159
1142
  const expectedRefundIds = (0, document_resolution_1.canonicalizeRefundIds)(input.expected_refund_ids);
1160
1143
  const manager = this.requireManager(sharedContext);
1161
- await manager.execute("select pg_advisory_xact_lock(hashtext(?))", [
1162
- `documents:cancellation:${orderId}`,
1163
- ]);
1144
+ await (0, lib_1.acquireAdvisoryXactLock)(manager, `documents:cancellation:${orderId}`);
1164
1145
  const rows = await manager.execute(`select * from "documents_order_cancellation_resolution"
1165
1146
  where "order_id" = ? for update`, [orderId]);
1166
1147
  if (rows[0]) {
@@ -1219,9 +1200,7 @@ class DocumentsModuleService extends (0, utils_1.MedusaService)({
1219
1200
  if (!identityRows[0]) {
1220
1201
  throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, "Order cancellation resolution not found.");
1221
1202
  }
1222
- await manager.execute("select pg_advisory_xact_lock(hashtext(?))", [
1223
- `documents:cancellation:${identityRows[0].order_id}`,
1224
- ]);
1203
+ await (0, lib_1.acquireAdvisoryXactLock)(manager, `documents:cancellation:${identityRows[0].order_id}`);
1225
1204
  const rows = await manager.execute(`select * from "documents_order_cancellation_resolution"
1226
1205
  where "id" = ? and "state" = 'processing' and "attempt_token" = ?
1227
1206
  and "lease_expires_at" > now() and "deleted_at" is null for update`, [input.resolution_id, input.attempt_token]);
@@ -1698,4 +1677,4 @@ __decorate([
1698
1677
  __metadata("design:returntype", Promise)
1699
1678
  ], DocumentsModuleService.prototype, "listDocumentResolutionReconciliationCandidates", null);
1700
1679
  exports.default = DocumentsModuleService;
1701
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2RvY3VtZW50cy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUF3QztBQUd4QyxxREFLa0M7QUFjbEMsa0dBUTJFO0FBQzNFLHNFQUlxQztBQUNyQyw4REFHaUM7QUFDakMsOENBR3lCO0FBRXpCLDRFQUEyRTtBQUMzRSxxRUFBeUU7QUFDekUsaUVBQXdDO0FBQ3hDLG1GQUF5RDtBQUN6RCxpR0FBc0U7QUFDdEUsMkdBQWdGO0FBQ2hGLHlFQUErQztBQUMvQywyRkFBZ0U7QUFDaEUscUdBQTBFO0FBQzFFLHVHQUE0RTtBQUM1RSx5R0FBOEU7QUFROUUsTUFBTSwyQkFBMkIsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQTtBQUNyQyxRQUFBLDBCQUEwQixHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFBO0FBK0x4RCxNQUFNLGNBQWMsR0FBbUI7SUFDckMsU0FBUztJQUNULGNBQWM7SUFDZCxhQUFhO0NBQ2QsQ0FBQTtBQUVELE1BQU0saUJBQWlCLEdBQXFCLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQTtBQUU5RSxNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBYyxFQUFFLEtBQWEsRUFBVSxFQUFFO0lBQ2pFLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7UUFDL0MsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUNsQyxtQkFBbUIsS0FBSyxlQUFlLENBQ3hDLENBQUE7SUFDSCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDLENBQUE7QUFFRCxNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBYyxFQUFp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
1680
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2RvY3VtZW50cy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUF3QztBQUd4QyxxREFLa0M7QUFjbEMsa0dBUTJFO0FBQzNFLHNFQUlxQztBQUNyQyw4REFHaUM7QUFDakMsOENBR3lCO0FBRXpCLDBDQUl5QjtBQUN6Qiw0RUFBMkU7QUFDM0UscUVBQXlFO0FBQ3pFLGlFQUF3QztBQUN4QyxtRkFBeUQ7QUFDekQsaUdBQXNFO0FBQ3RFLDJHQUFnRjtBQUNoRix5RUFBK0M7QUFDL0MsMkZBQWdFO0FBQ2hFLHFHQUEwRTtBQUMxRSx1R0FBNEU7QUFDNUUseUdBQThFO0FBSTlFLE1BQU0sMkJBQTJCLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUE7QUFDckMsUUFBQSwwQkFBMEIsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQTtBQStMeEQsTUFBTSxjQUFjLEdBQW1CO0lBQ3JDLFNBQVM7SUFDVCxjQUFjO0lBQ2QsYUFBYTtDQUNkLENBQUE7QUFFRCxNQUFNLGlCQUFpQixHQUFxQixDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUE7QUFFOUUsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQWMsRUFBRSxLQUFhLEVBQVUsRUFBRTtJQUNqRSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQy9DLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFDbEMsbUJBQW1CLEtBQUssZUFBZSxDQUN4QyxDQUFBO0lBQ0gsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFBO0FBQ2QsQ0FBQyxDQUFBO0FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxD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
@@ -1,12 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.emailAttachmentId = exports.EmailAttachmentSchema = exports.EmailTermsAttachmentSchema = void 0;
3
+ exports.orderEmailAttachments = exports.emailAttachmentId = exports.isLibraryAttachment = exports.EmailAttachmentSchema = exports.EmailLibraryAttachmentSchema = void 0;
4
4
  const zod_1 = require("@medusajs/framework/zod");
5
5
  const documents_1 = require("@hartl-services/medusa-food-supplements-contracts/events/documents");
6
- exports.EmailTermsAttachmentSchema = zod_1.z
6
+ /** A frozen version of a library attachment document (terms, notices, flyers). */
7
+ exports.EmailLibraryAttachmentSchema = zod_1.z
7
8
  .object({
8
- source: zod_1.z.literal("terms"),
9
- terms_version_id: zod_1.z.string().min(1),
9
+ source: zod_1.z.literal("library"),
10
+ document_id: zod_1.z.string().min(1),
11
+ version_id: zod_1.z.string().min(1),
10
12
  file_id: zod_1.z.string().min(1),
11
13
  filename: zod_1.z.string().min(1),
12
14
  content_type: zod_1.z.literal("application/pdf"),
@@ -16,10 +18,22 @@ exports.EmailTermsAttachmentSchema = zod_1.z
16
18
  .strict();
17
19
  exports.EmailAttachmentSchema = zod_1.z.union([
18
20
  documents_1.DocumentsEmailArtifactSchema,
19
- exports.EmailTermsAttachmentSchema,
21
+ exports.EmailLibraryAttachmentSchema,
20
22
  ]);
21
- const emailAttachmentId = (attachment) => "source" in attachment
22
- ? `terms:${attachment.terms_version_id}`
23
+ const isLibraryAttachment = (attachment) => "source" in attachment;
24
+ exports.isLibraryAttachment = isLibraryAttachment;
25
+ const emailAttachmentId = (attachment) => (0, exports.isLibraryAttachment)(attachment)
26
+ ? `library:${attachment.version_id}`
23
27
  : attachment.artifact_id;
24
28
  exports.emailAttachmentId = emailAttachmentId;
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2VtYWlsL2RvbWFpbi9hdHRhY2htZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUE0QztBQUM1QyxrR0FHNEU7QUFFL0QsUUFBQSwwQkFBMEIsR0FBRyxPQUFDO0tBQ3hDLE1BQU0sQ0FBQztJQUNOLE1BQU0sRUFBRSxPQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUMxQixnQkFBZ0IsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNuQyxPQUFPLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDMUIsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzNCLFlBQVksRUFBRSxPQUFDLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0lBQzFDLFNBQVMsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3RDLE1BQU0sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO0NBQzNDLENBQUM7S0FDRCxNQUFNLEVBQUUsQ0FBQztBQUVDLFFBQUEscUJBQXFCLEdBQUcsT0FBQyxDQUFDLEtBQUssQ0FBQztJQUMzQyx3Q0FBNEI7SUFDNUIsa0NBQTBCO0NBQzNCLENBQUMsQ0FBQztBQUtJLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxVQUEyQixFQUFVLEVBQUUsQ0FDdkUsUUFBUSxJQUFJLFVBQVU7SUFDcEIsQ0FBQyxDQUFDLFNBQVMsVUFBVSxDQUFDLGdCQUFnQixFQUFFO0lBQ3hDLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO0FBSGhCLFFBQUEsaUJBQWlCLHFCQUdEIn0=
29
+ /**
30
+ * Documents artifacts (invoice, cancellation) first, then library
31
+ * attachments; each group keeps its order. A mail lists the same attachments
32
+ * in the same order whichever correlated fact created it.
33
+ */
34
+ const orderEmailAttachments = (attachments) => [
35
+ ...attachments.filter((attachment) => !(0, exports.isLibraryAttachment)(attachment)),
36
+ ...attachments.filter(exports.isLibraryAttachment),
37
+ ];
38
+ exports.orderEmailAttachments = orderEmailAttachments;
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2VtYWlsL2RvbWFpbi9hdHRhY2htZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUE0QztBQUM1QyxrR0FHNEU7QUFFNUUsa0ZBQWtGO0FBQ3JFLFFBQUEsNEJBQTRCLEdBQUcsT0FBQztLQUMxQyxNQUFNLENBQUM7SUFDTixNQUFNLEVBQUUsT0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDNUIsV0FBVyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlCLFVBQVUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3QixPQUFPLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDMUIsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzNCLFlBQVksRUFBRSxPQUFDLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0lBQzFDLFNBQVMsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3RDLE1BQU0sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO0NBQzNDLENBQUM7S0FDRCxNQUFNLEVBQUUsQ0FBQztBQUVDLFFBQUEscUJBQXFCLEdBQUcsT0FBQyxDQUFDLEtBQUssQ0FBQztJQUMzQyx3Q0FBNEI7SUFDNUIsb0NBQTRCO0NBQzdCLENBQUMsQ0FBQztBQU9JLE1BQU0sbUJBQW1CLEdBQUcsQ0FDakMsVUFBMkIsRUFDVyxFQUFFLENBQUMsUUFBUSxJQUFJLFVBQVUsQ0FBQztBQUZyRCxRQUFBLG1CQUFtQix1QkFFa0M7QUFFM0QsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFVBQTJCLEVBQVUsRUFBRSxDQUN2RSxJQUFBLDJCQUFtQixFQUFDLFVBQVUsQ0FBQztJQUM3QixDQUFDLENBQUMsV0FBVyxVQUFVLENBQUMsVUFBVSxFQUFFO0lBQ3BDLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO0FBSGhCLFFBQUEsaUJBQWlCLHFCQUdEO0FBRTdCOzs7O0dBSUc7QUFDSSxNQUFNLHFCQUFxQixHQUFHLENBQ25DLFdBQTJDLEVBQ3hCLEVBQUUsQ0FBQztJQUN0QixHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBQSwyQkFBbUIsRUFBQyxVQUFVLENBQUMsQ0FBQztJQUN2RSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsMkJBQW1CLENBQUM7Q0FDM0MsQ0FBQztBQUxXLFFBQUEscUJBQXFCLHlCQUtoQyJ9
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20261009083539 = void 0;
4
+ const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
5
+ // Library document that takes over the former global Terms PDFs. Not
6
+ // exported: Medusa's migrator takes a migration file's first export as the
7
+ // migration class.
8
+ const TERMS_DOCUMENT_ID = "eatd_terms";
9
+ class Migration20261009083539 extends migrations_1.Migration {
10
+ async up() {
11
+ this.addSql(`alter table if exists "email_attachment_document_version" drop constraint if exists "email_attachment_document_version_file_id_unique";`);
12
+ this.addSql(`alter table if exists "email_attachment_document_version" drop constraint if exists "email_attachment_document_version_request_id_unique";`);
13
+ this.addSql(`alter table if exists "email_attachment_document" drop constraint if exists "email_attachment_document_request_id_unique";`);
14
+ this.addSql(`create table if not exists "email_attachment_document" ("id" text not null, "request_id" text not null, "name" text not null, "mail_kinds" jsonb not null default '[]', "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "email_attachment_document_pkey" primary key ("id"));`);
15
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_email_attachment_document_deleted_at" ON "email_attachment_document" ("deleted_at") WHERE deleted_at IS NULL;`);
16
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_email_attachment_document_request_id_unique" ON "email_attachment_document" ("request_id");`);
17
+ this.addSql(`create table if not exists "email_attachment_document_version" ("id" text not null, "document_id" text not null, "request_id" text not null, "filename" text not null, "file_id" text not null, "effective_at" timestamptz not null, "byte_size" integer not null, "sha256" text not null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "email_attachment_document_version_pkey" primary key ("id"));`);
18
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_email_attachment_document_version_deleted_at" ON "email_attachment_document_version" ("deleted_at") WHERE deleted_at IS NULL;`);
19
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_email_attachment_document_version_request_id_unique" ON "email_attachment_document_version" ("request_id");`);
20
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_email_attachment_document_version_file_id_unique" ON "email_attachment_document_version" ("file_id");`);
21
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_email_attachment_document_version_document_effective_at" ON "email_attachment_document_version" ("document_id", "effective_at") WHERE deleted_at IS NULL;`);
22
+ this.addSql(`alter table if exists "email_attachment_document_version" drop constraint if exists "chk_email_attachment_document_version_byte_size";`);
23
+ this.addSql(`alter table if exists "email_attachment_document_version" add constraint "chk_email_attachment_document_version_byte_size" check ("byte_size" > 0 and "byte_size" <= 5242880);`);
24
+ this.addSql(`alter table if exists "email_attachment_document_version" drop constraint if exists "chk_email_attachment_document_version_sha256";`);
25
+ this.addSql(`alter table if exists "email_attachment_document_version" add constraint "chk_email_attachment_document_version_sha256" check ("sha256" ~ '^[0-9a-f]{64}$');`);
26
+ // The global Terms PDFs become the library document "AGB", attached to
27
+ // the customer order confirmation like before; their versions keep their
28
+ // ids. Every message snapshot (deleted ones included) that froze a Terms
29
+ // PDF is rewritten to the library descriptor in place, keeping the order.
30
+ this.addSql(`do $$
31
+ begin
32
+ if to_regclass('email_terms_version') is null then
33
+ return;
34
+ end if;
35
+ if exists (select 1 from "email_terms_version") then
36
+ insert into "email_attachment_document" ("id", "request_id", "name", "mail_kinds")
37
+ values ('${TERMS_DOCUMENT_ID}', gen_random_uuid()::text, 'AGB', '["order.received"]'::jsonb)
38
+ on conflict ("id") do nothing;
39
+ insert into "email_attachment_document_version"
40
+ ("id", "document_id", "request_id", "filename", "file_id", "effective_at", "byte_size", "sha256", "created_at", "updated_at", "deleted_at")
41
+ select "id", '${TERMS_DOCUMENT_ID}', "request_id", "filename", "file_id", "effective_at", "byte_size", "sha256", "created_at", "updated_at", "deleted_at"
42
+ from "email_terms_version"
43
+ on conflict ("id") do nothing;
44
+ end if;
45
+ update "email_message" as m
46
+ set "attachments" = (
47
+ select jsonb_agg(
48
+ case when e.value->>'source' = 'terms' then jsonb_build_object(
49
+ 'source', 'library',
50
+ 'document_id', '${TERMS_DOCUMENT_ID}',
51
+ 'version_id', e.value->'terms_version_id',
52
+ 'file_id', e.value->'file_id',
53
+ 'filename', e.value->'filename',
54
+ 'content_type', e.value->'content_type',
55
+ 'byte_size', e.value->'byte_size',
56
+ 'sha256', e.value->'sha256'
57
+ ) else e.value end
58
+ order by e.position
59
+ )
60
+ from jsonb_array_elements(m."attachments") with ordinality as e(value, position)
61
+ )
62
+ where exists (
63
+ select 1 from jsonb_array_elements(m."attachments") as t(value)
64
+ where t.value->>'source' = 'terms'
65
+ );
66
+ drop table "email_terms_version" cascade;
67
+ end
68
+ $$;`);
69
+ }
70
+ /** Not reversible: the Terms table and the old snapshots are gone. */
71
+ async down() {
72
+ this.addSql(`do $$
73
+ begin
74
+ raise exception 'Migration20261009083539 (email attachment library) cannot be reverted.';
75
+ end
76
+ $$;`);
77
+ }
78
+ }
79
+ exports.Migration20261009083539 = Migration20261009083539;
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNjEwMDkwODM1MzkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9lbWFpbC9taWdyYXRpb25zL01pZ3JhdGlvbjIwMjYxMDA5MDgzNTM5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlFQUFxRTtBQUVyRSxxRUFBcUU7QUFDckUsMkVBQTJFO0FBQzNFLG1CQUFtQjtBQUNuQixNQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FBQztBQUV2QyxNQUFhLHVCQUF3QixTQUFRLHNCQUFTO0lBRTNDLEtBQUssQ0FBQyxFQUFFO1FBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyx5SUFBeUksQ0FBQyxDQUFDO1FBQ3ZKLElBQUksQ0FBQyxNQUFNLENBQUMsNElBQTRJLENBQUMsQ0FBQztRQUMxSixJQUFJLENBQUMsTUFBTSxDQUFDLDRIQUE0SCxDQUFDLENBQUM7UUFDMUksSUFBSSxDQUFDLE1BQU0sQ0FBQywyV0FBMlcsQ0FBQyxDQUFDO1FBQ3pYLElBQUksQ0FBQyxNQUFNLENBQUMsK0lBQStJLENBQUMsQ0FBQztRQUM3SixJQUFJLENBQUMsTUFBTSxDQUFDLG9JQUFvSSxDQUFDLENBQUM7UUFFbEosSUFBSSxDQUFDLE1BQU0sQ0FBQyxzZUFBc2UsQ0FBQyxDQUFDO1FBQ3BmLElBQUksQ0FBQyxNQUFNLENBQUMsK0pBQStKLENBQUMsQ0FBQztRQUM3SyxJQUFJLENBQUMsTUFBTSxDQUFDLG9KQUFvSixDQUFDLENBQUM7UUFDbEssSUFBSSxDQUFDLE1BQU0sQ0FBQyw4SUFBOEksQ0FBQyxDQUFDO1FBQzVKLElBQUksQ0FBQyxNQUFNLENBQUMsMkxBQTJMLENBQUMsQ0FBQztRQUV6TSxJQUFJLENBQUMsTUFBTSxDQUFDLHdJQUF3SSxDQUFDLENBQUM7UUFDdEosSUFBSSxDQUFDLE1BQU0sQ0FBQyxnTEFBZ0wsQ0FBQyxDQUFDO1FBQzlMLElBQUksQ0FBQyxNQUFNLENBQUMscUlBQXFJLENBQUMsQ0FBQztRQUNuSixJQUFJLENBQUMsTUFBTSxDQUFDLDhKQUE4SixDQUFDLENBQUM7UUFFNUssdUVBQXVFO1FBQ3ZFLHlFQUF5RTtRQUN6RSx5RUFBeUU7UUFDekUsMEVBQTBFO1FBQzFFLElBQUksQ0FBQyxNQUFNLENBQUM7Ozs7Ozs7ZUFPRCxpQkFBaUI7Ozs7b0JBSVosaUJBQWlCOzs7Ozs7Ozs7MEJBU1gsaUJBQWlCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFrQnZDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxzRUFBc0U7SUFDN0QsS0FBSyxDQUFDLElBQUk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQzs7OztJQUlaLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTFFRCwwREEwRUMifQ==