@hartl-services/medusa-base 2.5.0 → 2.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.medusa/server/src/admin/admin-components/features/plugin-features/components/ImageSettingInput.js +48 -0
- package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginActionsSection.js +3 -2
- package/.medusa/server/src/admin/admin-components/features/plugin-features/components/PluginFeaturesSettingsPage.js +17 -0
- package/.medusa/server/src/admin/admin-components/features/plugin-features/components/PluginPageShell.js +20 -0
- package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginSettingsForm.js +16 -3
- package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/hooks/usePluginFeatureEnabled.d.ts +5 -1
- package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/hooks/usePluginFeatures.d.ts +20 -4
- package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/hooks/usePluginFeatures.js +1 -1
- package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/hooks/usePluginSettingsForm.d.ts +5 -1
- package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/lib/action-runs.d.ts +1 -1
- package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/lib/action-runs.js +3 -2
- package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/lib/plugin-features-admin-client.d.ts +20 -4
- package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/lib/plugin-features-admin-client.js +1 -1
- package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/lib/settings-draft.d.ts +17 -2
- package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/lib/settings-draft.js +33 -1
- package/{dist → .medusa/server/src/admin}/admin-components/i18n/texts.d.ts +3 -0
- package/{dist → .medusa/server/src/admin}/admin-components/i18n/texts.js +3 -0
- package/.medusa/server/src/admin/admin-components/index.d.ts +36 -0
- package/.medusa/server/src/admin/admin-components/index.js +37 -0
- package/.medusa/server/src/admin/admin-components/shared/lib/date-input.d.ts +8 -0
- package/.medusa/server/src/admin/admin-components/shared/lib/date-input.js +43 -0
- package/.medusa/server/src/admin/admin-components/shared/lib/errors.d.ts +9 -0
- package/{dist/admin-components → .medusa/server/src/admin/admin-components/shared}/lib/errors.js +4 -6
- package/.medusa/server/src/admin/admin-components/shared/lib/file-validation.d.ts +24 -0
- package/.medusa/server/src/admin/admin-components/shared/lib/file-validation.js +18 -0
- package/.medusa/server/src/admin/admin-components/shared/lib/format.d.ts +32 -0
- package/.medusa/server/src/admin/admin-components/shared/lib/format.js +77 -0
- package/.medusa/server/src/admin/admin-components/shared/lib/pdf-preview.d.ts +16 -0
- package/.medusa/server/src/admin/admin-components/shared/lib/pdf-preview.js +31 -0
- package/.medusa/server/src/admin/admin-components/shared/lib/pdf.d.ts +6 -0
- package/.medusa/server/src/admin/admin-components/shared/lib/pdf.js +13 -0
- package/.medusa/server/src/admin/admin-components/shared/lib/use-debounced-value.d.ts +2 -0
- package/.medusa/server/src/admin/admin-components/shared/lib/use-debounced-value.js +10 -0
- package/.medusa/server/src/admin/admin-components/shared/lib/use-pdf-preview.d.ts +24 -0
- package/.medusa/server/src/admin/admin-components/shared/lib/use-pdf-preview.js +47 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/AdminDatePicker.d.ts +8 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/AdminDatePicker.js +9 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/BackLink.d.ts +8 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/BackLink.js +5 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/DateRangeFilter.d.ts +20 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/DateRangeFilter.js +17 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/FilePickerButton.d.ts +14 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/FilePickerButton.js +14 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/MappedStatusBadge.d.ts +17 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/MappedStatusBadge.js +12 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/OffsetTablePagination.d.ts +15 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/OffsetTablePagination.js +19 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/PdfPreviewModal.d.ts +20 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/PdfPreviewModal.js +7 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/PluginFeatureRoute.d.ts +19 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/PluginFeatureRoute.js +16 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/QueryState.d.ts +24 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/QueryState.js +23 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/SearchableReferenceField.d.ts +63 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/SearchableReferenceField.js +84 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/SectionHeader.d.ts +15 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/SectionHeader.js +13 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/mapped-status.d.ts +6 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/mapped-status.js +10 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/offset-pagination.d.ts +17 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/offset-pagination.js +15 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/reference-results-state.d.ts +16 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/reference-results-state.js +13 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/InsertMenu.d.ts +8 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/InsertMenu.js +10 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/LinkPrompt.d.ts +14 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/LinkPrompt.js +26 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/RichTextEditor.d.ts +15 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/RichTextEditor.js +8 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/RichTextToolbar.d.ts +10 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/RichTextToolbar.js +49 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/SlashMenu.d.ts +11 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/SlashMenu.js +44 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/build-extensions.d.ts +8 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/build-extensions.js +43 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/drag-handle.d.ts +15 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/drag-handle.js +161 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/drag-target.d.ts +30 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/drag-target.js +47 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/editor-styles.d.ts +6 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/editor-styles.js +46 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/index.d.ts +9 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/index.js +6 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/link-href.d.ts +8 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/link-href.js +21 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/link-policy.d.ts +13 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/link-policy.js +20 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/slash-command.d.ts +13 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/slash-command.js +60 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/slash-items.d.ts +25 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/slash-items.js +10 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/tiptap.d.ts +7 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/tiptap.js +7 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/use-rich-text-editor.d.ts +44 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/rich-text-editor/use-rich-text-editor.js +37 -0
- package/.medusa/server/src/admin/index.js +4519 -1447
- package/.medusa/server/src/admin/index.mjs +4521 -1452
- package/.medusa/server/src/api/admin/email/attachments/[id]/mail-kinds/route.js +16 -0
- package/.medusa/server/src/api/admin/email/attachments/[id]/route.js +15 -0
- package/.medusa/server/src/api/admin/email/attachments/[id]/versions/[version_id]/download/route.js +16 -0
- package/.medusa/server/src/api/admin/email/attachments/[id]/versions/route.js +41 -0
- package/.medusa/server/src/api/admin/email/attachments/route.js +21 -0
- package/.medusa/server/src/api/admin/email/templates/[kind]/preview/route.js +31 -0
- package/.medusa/server/src/api/admin/email/templates/[kind]/route.js +28 -0
- package/.medusa/server/src/api/admin/email/templates/[kind]/send-test/route.js +179 -0
- package/.medusa/server/src/api/admin/email/templates/[kind]/test-sources/route.js +19 -0
- package/.medusa/server/src/api/admin/email/templates/route.js +15 -0
- package/.medusa/server/src/api/admin/plugin-features/[plugin_key]/actions/[action_key]/route.js +2 -2
- package/.medusa/server/src/api/admin/plugin-features/[plugin_key]/actions/[action_key]/runs/route.js +2 -2
- package/.medusa/server/src/api/admin/plugin-features/[plugin_key]/route.js +2 -2
- package/.medusa/server/src/api/admin/plugin-features/[plugin_key]/settings/route.js +2 -2
- package/.medusa/server/src/api/admin/plugin-features/route.js +2 -2
- package/.medusa/server/src/api/attachment-download-response.js +12 -0
- package/.medusa/server/src/api/email-template-response.js +43 -0
- package/.medusa/server/src/api/middlewares.js +75 -17
- package/.medusa/server/src/api/plugin-actions.js +6 -5
- package/.medusa/server/src/api/plugin-features-http.js +4 -9
- package/.medusa/server/src/api/store/carts/[id]/completion-check/route.js +2 -2
- package/.medusa/server/src/api/store/plugin-features/[plugin_key]/route.js +2 -2
- package/.medusa/server/src/api/store/plugin-features/route.js +2 -2
- package/.medusa/server/src/documents/plugin-features.js +1 -7
- package/.medusa/server/src/documents/templates/financial-document.js +12 -11
- package/.medusa/server/src/documents/templates/html-factory.js +1 -1
- package/.medusa/server/src/documents/templates/html-utils.js +4 -10
- package/.medusa/server/src/documents/templates/layout.js +30 -11
- package/.medusa/server/src/documents/templates/packing-list.js +8 -7
- package/.medusa/server/src/documents/utils/document-render-settings.js +9 -6
- package/.medusa/server/src/email/application/handle-customer-verification-event.js +8 -3
- package/.medusa/server/src/email/application/handle-invite-event.js +8 -3
- package/.medusa/server/src/email/application/handle-password-reset-event.js +8 -3
- package/.medusa/server/src/email/application/notification-attachments.js +86 -0
- package/.medusa/server/src/email/application/template-data-from-order.js +339 -0
- package/.medusa/server/src/email/config/index.js +5 -29
- package/.medusa/server/src/email/domain/business-keys.js +5 -5
- package/.medusa/server/src/email/domain/documents-fact-fingerprint.js +3 -3
- package/.medusa/server/src/email/domain/order-summary.js +21 -27
- package/.medusa/server/src/email/domain/refund-summary.js +7 -12
- package/.medusa/server/src/email/domain/return-summary.js +32 -38
- package/.medusa/server/src/email/domain/shipment-summary.js +22 -28
- package/.medusa/server/src/email/plugin-features.js +2 -10
- package/.medusa/server/src/email/rendering/calendar-dates.js +19 -0
- package/.medusa/server/src/email/rendering/default-templates.js +99 -682
- package/.medusa/server/src/email/rendering/email-html.js +189 -0
- package/.medusa/server/src/email/rendering/load-email-shop-details.js +14 -12
- package/.medusa/server/src/email/rendering/render-email.js +46 -13
- package/.medusa/server/src/email/rendering/resolve-shop-configuration.js +3 -14
- package/.medusa/server/src/email/templates/blocks/dynamic-blocks.js +427 -0
- package/.medusa/server/src/email/templates/blocks/placeholders.js +71 -0
- package/.medusa/server/src/email/templates/blocks/render-document.js +137 -0
- package/.medusa/server/src/email/templates/code-override.js +18 -0
- package/.medusa/server/src/email/templates/defaults/documents.js +129 -0
- package/.medusa/server/src/email/templates/defaults/subjects.js +62 -0
- package/.medusa/server/src/email/templates/defaults/texts.js +42 -0
- package/.medusa/server/src/email/templates/index.js +22 -0
- package/.medusa/server/src/email/templates/load-template.js +39 -0
- package/.medusa/server/src/email/templates/preview.js +33 -0
- package/.medusa/server/src/email/templates/render.js +70 -0
- package/.medusa/server/src/email/templates/sample-data.js +165 -0
- package/.medusa/server/src/email/templates/types.js +3 -0
- package/.medusa/server/src/email/templates/validate.js +113 -0
- package/.medusa/server/src/files/config/index.js +6 -9
- package/.medusa/server/src/migration-scripts/move-logo-to-shop-appearance.js +53 -0
- package/.medusa/server/src/modules/documents/domain/cancellation-snapshot.js +4 -3
- package/.medusa/server/src/modules/documents/domain/merchant.js +4 -3
- package/.medusa/server/src/modules/documents/domain/options.js +3 -5
- package/.medusa/server/src/modules/documents/domain/tax-breakdown.js +4 -7
- package/.medusa/server/src/modules/documents/service.js +12 -33
- package/.medusa/server/src/modules/email/domain/attachment.js +22 -8
- package/.medusa/server/src/modules/email/migrations/Migration20261009083539.js +80 -0
- package/.medusa/server/src/modules/email/migrations/Migration20261009100654.js +17 -0
- package/.medusa/server/src/modules/email/models/email-attachment-document-version.js +39 -0
- package/.medusa/server/src/modules/email/models/email-attachment-document.js +27 -0
- package/.medusa/server/src/modules/email/models/email-template.js +25 -0
- package/.medusa/server/src/modules/email/service.js +370 -93
- package/.medusa/server/src/modules/plugin-features/domain/plugin-settings.js +9 -11
- package/.medusa/server/src/modules/plugin-features/service.js +2 -1
- package/.medusa/server/src/providers/s3-cache/cache/cache-manager.js +3 -3
- package/.medusa/server/src/providers/s3-cache/s3-object-store.js +3 -9
- package/.medusa/server/src/providers/smtp/service.js +13 -13
- package/.medusa/server/src/public/descriptor.js +16 -18
- package/.medusa/server/src/public/enforcement.js +29 -1
- package/.medusa/server/src/public/index.js +8 -2
- package/.medusa/server/src/public/module-access.js +9 -2
- package/.medusa/server/src/public/shop-master-data.js +109 -18
- package/.medusa/server/src/shared/lib/coerce.js +26 -0
- package/.medusa/server/src/shared/lib/collections.js +19 -0
- package/.medusa/server/src/shared/lib/dates.js +43 -0
- package/.medusa/server/src/shared/lib/errors.js +11 -0
- package/.medusa/server/src/shared/lib/hash.js +8 -0
- package/.medusa/server/src/shared/lib/index.js +29 -0
- package/.medusa/server/src/shared/lib/logging.js +61 -0
- package/.medusa/server/src/shared/lib/money.js +47 -0
- package/.medusa/server/src/shared/lib/text.js +53 -0
- package/.medusa/server/src/shared/lib/transaction.js +58 -0
- package/.medusa/server/src/{api → shared/lib}/wire-response.js +1 -1
- package/.medusa/server/src/shop-config/options.js +3 -5
- package/.medusa/server/src/subscribers/packing-list-fulfillment-canceled.js +4 -6
- package/.medusa/server/src/workflows/documents/issue-invoice-after-shipment.js +10 -12
- package/.medusa/server/src/workflows/documents/issue-packing-list.js +5 -6
- package/.medusa/server/src/workflows/documents/reconcile-order-cancellation.js +6 -8
- package/.medusa/server/src/workflows/email/dispatch-email-message.js +11 -41
- package/.medusa/server/src/workflows/email/prepare-order-received-email.js +2 -2
- package/.medusa/server/src/workflows/hooks/complete-cart-participants.js +4 -8
- package/README.md +427 -54
- package/dist/documents/templates/financial-document.js +11 -10
- package/dist/documents/templates/html-factory.d.ts +1 -1
- package/dist/documents/templates/html-factory.js +1 -1
- package/dist/documents/templates/html-utils.d.ts +0 -1
- package/dist/documents/templates/html-utils.js +3 -9
- package/dist/documents/templates/layout.js +29 -10
- package/dist/documents/templates/packing-list.js +7 -6
- package/dist/documents/types/documents.d.ts +7 -1
- package/dist/email/config/index.js +4 -28
- package/dist/email/types/shop-configuration.d.ts +6 -5
- package/dist/files/config/index.js +5 -8
- package/dist/modules/documents/domain/options.js +2 -4
- package/dist/public/descriptor.js +15 -17
- package/dist/public/enforcement.d.ts +21 -1
- package/dist/public/enforcement.js +28 -0
- package/dist/public/index.d.ts +3 -2
- package/dist/public/index.js +7 -1
- package/dist/public/module-access.d.ts +8 -0
- package/dist/public/module-access.js +8 -1
- package/dist/public/shop-master-data.d.ts +22 -5
- package/dist/public/shop-master-data.js +108 -17
- package/dist/public/types.d.ts +10 -2
- package/dist/shared/lib/coerce.d.ts +19 -0
- package/dist/shared/lib/coerce.js +25 -0
- package/dist/shared/lib/collections.d.ts +3 -0
- package/dist/shared/lib/collections.js +18 -0
- package/dist/shared/lib/dates.d.ts +12 -0
- package/dist/shared/lib/dates.js +42 -0
- package/dist/shared/lib/errors.d.ts +2 -0
- package/dist/shared/lib/errors.js +10 -0
- package/dist/shared/lib/hash.d.ts +2 -0
- package/dist/shared/lib/hash.js +7 -0
- package/dist/shared/lib/index.d.ts +10 -0
- package/dist/shared/lib/index.js +28 -0
- package/dist/shared/lib/logging.d.ts +26 -0
- package/dist/shared/lib/logging.js +60 -0
- package/dist/shared/lib/money.d.ts +13 -0
- package/dist/shared/lib/money.js +46 -0
- package/dist/shared/lib/text.d.ts +19 -0
- package/dist/shared/lib/text.js +52 -0
- package/dist/shared/lib/transaction.d.ts +26 -0
- package/dist/shared/lib/transaction.js +57 -0
- package/dist/shared/lib/wire-response.d.ts +6 -0
- package/dist/shared/lib/wire-response.js +9 -0
- package/dist/shop-config/options.js +2 -4
- package/package.json +19 -4
- package/.medusa/server/src/api/admin/email/terms-versions/[id]/download/route.js +0 -16
- package/.medusa/server/src/api/admin/email/terms-versions/route.js +0 -47
- package/.medusa/server/src/api/terms-download-response.js +0 -12
- package/.medusa/server/src/modules/email/models/email-terms-version.js +0 -37
- package/dist/admin-components/features/plugin-features/components/ImageSettingInput.js +0 -42
- package/dist/admin-components/features/plugin-features/components/PluginFeaturesSettingsPage.js +0 -16
- package/dist/admin-components/features/plugin-features/components/PluginPageShell.js +0 -20
- package/dist/admin-components/features/plugin-features/lib/image-upload.d.ts +0 -6
- package/dist/admin-components/features/plugin-features/lib/image-upload.js +0 -17
- package/dist/admin-components/index.d.ts +0 -14
- package/dist/admin-components/index.js +0 -14
- package/dist/admin-components/lib/errors.d.ts +0 -6
- /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/ImageSettingInput.d.ts +0 -0
- /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginActionsSection.d.ts +0 -0
- /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginDetailPage.d.ts +0 -0
- /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginDetailPage.js +0 -0
- /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginFeatureGate.d.ts +0 -0
- /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginFeatureGate.js +0 -0
- /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginFeatureSections.d.ts +0 -0
- /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginFeatureSections.js +0 -0
- /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginFeaturesCard.d.ts +0 -0
- /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginFeaturesCard.js +0 -0
- /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginFeaturesSettingsPage.d.ts +0 -0
- /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginHubCard.d.ts +0 -0
- /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginHubCard.js +0 -0
- /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginPageShell.d.ts +0 -0
- /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginSettingsForm.d.ts +0 -0
- /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginStatusChips.d.ts +0 -0
- /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/components/PluginStatusChips.js +0 -0
- /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/hooks/usePluginFeatureEnabled.js +0 -0
- /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/hooks/usePluginSettingsForm.js +0 -0
- /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/lib/plugin-paths.d.ts +0 -0
- /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/lib/plugin-paths.js +0 -0
- /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/queries/pluginFeatureKeys.d.ts +0 -0
- /package/{dist → .medusa/server/src/admin}/admin-components/features/plugin-features/queries/pluginFeatureKeys.js +0 -0
- /package/{dist/admin-components → .medusa/server/src/admin/admin-components/shared}/lib/sdk.d.ts +0 -0
- /package/{dist/admin-components → .medusa/server/src/admin/admin-components/shared}/lib/sdk.js +0 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderTemplateDocument = void 0;
|
|
4
|
+
const email_1 = require("@hartl-services/medusa-food-supplements-contracts/schemas/email");
|
|
5
|
+
const email_html_1 = require("../../rendering/email-html");
|
|
6
|
+
const lib_1 = require("../../../shared/lib");
|
|
7
|
+
const dynamic_blocks_1 = require("./dynamic-blocks");
|
|
8
|
+
const renderText = (p, node) => {
|
|
9
|
+
const marks = node.marks ?? [];
|
|
10
|
+
let html = (0, lib_1.escapeHtml)(node.text);
|
|
11
|
+
let text = node.text;
|
|
12
|
+
if (marks.some((mark) => mark.type === "bold")) {
|
|
13
|
+
html = `<strong>${html}</strong>`;
|
|
14
|
+
}
|
|
15
|
+
if (marks.some((mark) => mark.type === "italic")) {
|
|
16
|
+
html = `<em>${html}</em>`;
|
|
17
|
+
}
|
|
18
|
+
const link = marks.find((mark) => mark.type === "link");
|
|
19
|
+
// Stored documents are validated, but a link is re-checked where it is
|
|
20
|
+
// written into a mail: an invalid target loses its link, not the text.
|
|
21
|
+
const href = link && "attrs" in link && (0, email_1.isEmailTemplateLinkHref)(link.attrs.href)
|
|
22
|
+
? link.attrs.href
|
|
23
|
+
: null;
|
|
24
|
+
if (href) {
|
|
25
|
+
html = `<a href="${(0, lib_1.escapeHtml)(href)}" style="${(0, email_html_1.linkStyle)(p)}">${html}</a>`;
|
|
26
|
+
if (href !== node.text && href !== `mailto:${node.text}`) {
|
|
27
|
+
text = `${node.text} (${href})`;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return { html, text };
|
|
31
|
+
};
|
|
32
|
+
const renderInline = (context, nodes) => {
|
|
33
|
+
let html = "";
|
|
34
|
+
let text = "";
|
|
35
|
+
for (const node of nodes ?? []) {
|
|
36
|
+
if (node.type === "text") {
|
|
37
|
+
const rendered = renderText(context.palette, node);
|
|
38
|
+
html += rendered.html;
|
|
39
|
+
text += rendered.text;
|
|
40
|
+
}
|
|
41
|
+
else if (node.type === "hardBreak") {
|
|
42
|
+
html += "<br />";
|
|
43
|
+
text += "\n";
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
const value = context.values[node.attrs.key] ?? "";
|
|
47
|
+
html += (0, lib_1.escapeHtml)(value);
|
|
48
|
+
text += value;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return { html, text };
|
|
52
|
+
};
|
|
53
|
+
/** Paragraphs that show nothing (empty, or only empty placeholders) are left out. */
|
|
54
|
+
const visibleParagraphs = (context, paragraphs) => paragraphs
|
|
55
|
+
.map((node) => renderInline(context, node.content))
|
|
56
|
+
.filter(({ text }) => text.trim() !== "");
|
|
57
|
+
const renderNotice = (context, paragraphs) => {
|
|
58
|
+
const visible = visibleParagraphs(context, paragraphs);
|
|
59
|
+
if (!visible.length) {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
const p = context.palette;
|
|
63
|
+
const inner = visible
|
|
64
|
+
.map(({ html }, index) => `<p style="margin: ${index === visible.length - 1 ? "0" : "0 0 12px"}; font-family: ${email_html_1.FONT}; font-size: 15px; line-height: 24px; color: ${p.text};">${html}</p>`)
|
|
65
|
+
.join("");
|
|
66
|
+
return {
|
|
67
|
+
html: `<table role="presentation" width="100%" cellpadding="0" cellspacing="0" border="0" style="margin: 8px 0 24px; background: ${p.background}; border-left: 4px solid ${p.accent}; border-radius: 6px;"><tr><td style="padding: 14px 16px;">${inner}</td></tr></table>`,
|
|
68
|
+
text: visible.map(({ text }) => text).join("\n\n"),
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
const renderBulletList = (context, items) => {
|
|
72
|
+
const visible = items
|
|
73
|
+
.map((item) => visibleParagraphs(context, item.content))
|
|
74
|
+
.filter((paragraphs) => paragraphs.length > 0);
|
|
75
|
+
if (!visible.length) {
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
const p = context.palette;
|
|
79
|
+
return {
|
|
80
|
+
html: `<ul style="margin: 0 0 16px; padding: 0 0 0 22px; font-family: ${email_html_1.FONT}; font-size: 15px; line-height: 24px; color: ${p.text};">${visible
|
|
81
|
+
.map((paragraphs) => `<li style="margin: 0 0 6px;">${paragraphs.map(({ html }) => html).join("<br />")}</li>`)
|
|
82
|
+
.join("")}</ul>`,
|
|
83
|
+
text: visible
|
|
84
|
+
.map((paragraphs) => `- ${paragraphs.map(({ text }) => text).join("\n ")}`)
|
|
85
|
+
.join("\n"),
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
const renderBlock = (context, block) => {
|
|
89
|
+
switch (block.type) {
|
|
90
|
+
case "paragraph": {
|
|
91
|
+
const [visible] = visibleParagraphs(context, [block]);
|
|
92
|
+
return visible
|
|
93
|
+
? [
|
|
94
|
+
{
|
|
95
|
+
html: (0, email_html_1.paragraph)(context.palette, visible.html),
|
|
96
|
+
text: visible.text,
|
|
97
|
+
},
|
|
98
|
+
]
|
|
99
|
+
: [];
|
|
100
|
+
}
|
|
101
|
+
case "bulletList": {
|
|
102
|
+
const rendered = renderBulletList(context, block.content);
|
|
103
|
+
return rendered ? [rendered] : [];
|
|
104
|
+
}
|
|
105
|
+
case "notice": {
|
|
106
|
+
const rendered = renderNotice(context, block.content);
|
|
107
|
+
return rendered ? [rendered] : [];
|
|
108
|
+
}
|
|
109
|
+
case "dynamicBlock": {
|
|
110
|
+
const rendered = (0, dynamic_blocks_1.renderDynamicBlock)(context, block.attrs);
|
|
111
|
+
return rendered ? [rendered] : [];
|
|
112
|
+
}
|
|
113
|
+
case "conditional":
|
|
114
|
+
return (0, dynamic_blocks_1.conditionHolds)(context.input, block.attrs.condition)
|
|
115
|
+
? block.content.flatMap((child) => renderBlock(context, child))
|
|
116
|
+
: [];
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* A validated document as mail body: HTML blocks back to back, text blocks
|
|
121
|
+
* separated by a blank line (tracking links by a single line break). A
|
|
122
|
+
* block marked `noText` (the link fallback) adds nothing to the text, not
|
|
123
|
+
* even a separator.
|
|
124
|
+
*/
|
|
125
|
+
const renderTemplateDocument = (context, document) => {
|
|
126
|
+
const blocks = document.content.flatMap((block) => renderBlock(context, block));
|
|
127
|
+
return {
|
|
128
|
+
bodyHtml: blocks.map(({ html }) => html).join(""),
|
|
129
|
+
text: blocks
|
|
130
|
+
.filter((block) => !block.noText)
|
|
131
|
+
.reduce((text, block, index) => index === 0
|
|
132
|
+
? block.text
|
|
133
|
+
: `${text}${block.tight ? "\n" : "\n\n"}${block.text}`, ""),
|
|
134
|
+
};
|
|
135
|
+
};
|
|
136
|
+
exports.renderTemplateDocument = renderTemplateDocument;
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLWRvY3VtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2VtYWlsL3RlbXBsYXRlcy9ibG9ja3MvcmVuZGVyLWRvY3VtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJGQUEwRztBQU0xRywyREFLb0M7QUFDcEMsNkNBQWlEO0FBQ2pELHFEQUswQjtBQVcxQixNQUFNLFVBQVUsR0FBRyxDQUFDLENBQVUsRUFBRSxJQUFjLEVBQWtCLEVBQUU7SUFDaEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDL0IsSUFBSSxJQUFJLEdBQUcsSUFBQSxnQkFBVSxFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQy9DLElBQUksR0FBRyxXQUFXLElBQUksV0FBVyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUNqRCxJQUFJLEdBQUcsT0FBTyxJQUFJLE9BQU8sQ0FBQztJQUM1QixDQUFDO0lBQ0QsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQztJQUN4RCx1RUFBdUU7SUFDdkUsdUVBQXVFO0lBQ3ZFLE1BQU0sSUFBSSxHQUNSLElBQUksSUFBSSxPQUFPLElBQUksSUFBSSxJQUFJLElBQUEsK0JBQXVCLEVBQUMsSUFB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
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isCodeOverride = exports.markDefaultRenderer = void 0;
|
|
4
|
+
// The plugin's own renderers of the editable kinds. A renderer that is not
|
|
5
|
+
// in here comes from the shop's code configuration and wins over templates.
|
|
6
|
+
const defaultRenderers = new WeakSet();
|
|
7
|
+
const markDefaultRenderer = (renderer) => {
|
|
8
|
+
defaultRenderers.add(renderer);
|
|
9
|
+
return renderer;
|
|
10
|
+
};
|
|
11
|
+
exports.markDefaultRenderer = markDefaultRenderer;
|
|
12
|
+
/** The shop's code configuration replaces this mail; Admin templates do not apply. */
|
|
13
|
+
const isCodeOverride = (configuration, kind) => {
|
|
14
|
+
const renderer = configuration.renderers[kind];
|
|
15
|
+
return !(typeof renderer === "function" && defaultRenderers.has(renderer));
|
|
16
|
+
};
|
|
17
|
+
exports.isCodeOverride = isCodeOverride;
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1vdmVycmlkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbWFpbC90ZW1wbGF0ZXMvY29kZS1vdmVycmlkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSwyRUFBMkU7QUFDM0UsNEVBQTRFO0FBQzVFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztBQUV4QyxNQUFNLG1CQUFtQixHQUFHLENBQ2pDLFFBQWtCLEVBQ1IsRUFBRTtJQUNaLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQixPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDLENBQUM7QUFMVyxRQUFBLG1CQUFtQix1QkFLOUI7QUFFRixzRkFBc0Y7QUFDL0UsTUFBTSxjQUFjLEdBQUcsQ0FDNUIsYUFBZ0UsRUFDaEUsSUFBdUIsRUFDZCxFQUFFO0lBQ1gsTUFBTSxRQUFRLEdBQVksYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RCxPQUFPLENBQUMsQ0FBQyxPQUFPLFFBQVEsS0FBSyxVQUFVLElBQUksZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDN0UsQ0FBQyxDQUFDO0FBTlcsUUFBQSxjQUFjLGtCQU16QiJ9
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultTemplateDocument = void 0;
|
|
4
|
+
const texts_1 = require("./texts");
|
|
5
|
+
const text = (value) => ({
|
|
6
|
+
type: "paragraph",
|
|
7
|
+
content: [{ type: "text", text: value }],
|
|
8
|
+
});
|
|
9
|
+
/** "<before>{{key}}<after>" as one paragraph. */
|
|
10
|
+
const around = (before, key, after) => ({
|
|
11
|
+
type: "paragraph",
|
|
12
|
+
content: [
|
|
13
|
+
{ type: "text", text: before },
|
|
14
|
+
{ type: "placeholder", attrs: { key } },
|
|
15
|
+
{ type: "text", text: after },
|
|
16
|
+
],
|
|
17
|
+
});
|
|
18
|
+
const block = (name) => ({
|
|
19
|
+
type: "dynamicBlock",
|
|
20
|
+
attrs: { block: name, heading: null },
|
|
21
|
+
});
|
|
22
|
+
const only = (condition, value) => ({
|
|
23
|
+
type: "conditional",
|
|
24
|
+
attrs: { condition },
|
|
25
|
+
content: [{ type: "paragraph", content: [{ type: "text", text: value }] }],
|
|
26
|
+
});
|
|
27
|
+
const DEFAULT_DOCUMENTS = {
|
|
28
|
+
"order.received": [
|
|
29
|
+
text(texts_1.RECEIVED_INTRO),
|
|
30
|
+
block("details"),
|
|
31
|
+
block("order_summary"),
|
|
32
|
+
],
|
|
33
|
+
"order.received.admin": [
|
|
34
|
+
text(texts_1.ADMIN_ORDER_INTRO),
|
|
35
|
+
block("details"),
|
|
36
|
+
block("button"),
|
|
37
|
+
block("order_summary"),
|
|
38
|
+
],
|
|
39
|
+
"order.shipped": [
|
|
40
|
+
text(texts_1.SHIPMENT_INTRO),
|
|
41
|
+
block("details"),
|
|
42
|
+
block("tracking"),
|
|
43
|
+
block("item_list"),
|
|
44
|
+
only("more_to_follow", texts_1.MORE_TO_FOLLOW),
|
|
45
|
+
only("invoice_attached", texts_1.INVOICE_ATTACHED),
|
|
46
|
+
block("address"),
|
|
47
|
+
],
|
|
48
|
+
"order.canceled": [
|
|
49
|
+
text(texts_1.CANCELED_INTRO),
|
|
50
|
+
block("details"),
|
|
51
|
+
text(texts_1.CANCELED_PAYMENT),
|
|
52
|
+
only("cancellation_attached", texts_1.CANCELLATION_ATTACHED),
|
|
53
|
+
block("order_summary"),
|
|
54
|
+
],
|
|
55
|
+
"order.return_requested": [
|
|
56
|
+
text(`${texts_1.RETURN_CREATED} ${texts_1.RETURN_INSTRUCTIONS}`),
|
|
57
|
+
block("details"),
|
|
58
|
+
block("item_list"),
|
|
59
|
+
block("address"),
|
|
60
|
+
{
|
|
61
|
+
type: "conditional",
|
|
62
|
+
attrs: { condition: "return_number" },
|
|
63
|
+
content: [
|
|
64
|
+
{
|
|
65
|
+
type: "paragraph",
|
|
66
|
+
content: [
|
|
67
|
+
{ type: "text", text: texts_1.RETURN_LABEL_BEFORE },
|
|
68
|
+
{ type: "placeholder", attrs: { key: "return_number" } },
|
|
69
|
+
{ type: "text", text: texts_1.RETURN_LABEL_AFTER },
|
|
70
|
+
],
|
|
71
|
+
},
|
|
72
|
+
],
|
|
73
|
+
},
|
|
74
|
+
],
|
|
75
|
+
"order.return_received": [
|
|
76
|
+
text(texts_1.RETURN_RECEIVED),
|
|
77
|
+
block("details"),
|
|
78
|
+
block("item_list"),
|
|
79
|
+
text(texts_1.RETURN_REFUND),
|
|
80
|
+
],
|
|
81
|
+
"order.refunded": [
|
|
82
|
+
text(texts_1.REFUND_INTRO),
|
|
83
|
+
block("details"),
|
|
84
|
+
text(texts_1.REFUND_DURATION),
|
|
85
|
+
only("cancellation_attached", texts_1.CANCELLATION_ATTACHED),
|
|
86
|
+
],
|
|
87
|
+
"auth.password_reset": [
|
|
88
|
+
around(texts_1.PASSWORD_RESET_INTRO_BEFORE, "shop_name", texts_1.PASSWORD_RESET_INTRO_AFTER),
|
|
89
|
+
block("button"),
|
|
90
|
+
block("link_fallback"),
|
|
91
|
+
block("validity"),
|
|
92
|
+
text(texts_1.PASSWORD_RESET_IGNORE),
|
|
93
|
+
],
|
|
94
|
+
"auth.verification": [
|
|
95
|
+
around(texts_1.VERIFICATION_INTRO_BEFORE, "shop_name", texts_1.VERIFICATION_INTRO_AFTER),
|
|
96
|
+
block("button"),
|
|
97
|
+
block("link_fallback"),
|
|
98
|
+
text(texts_1.VERIFICATION_VALIDITY),
|
|
99
|
+
text(texts_1.VERIFICATION_IGNORE),
|
|
100
|
+
],
|
|
101
|
+
"user.invite": [
|
|
102
|
+
around(texts_1.INVITE_INTRO_BEFORE, "shop_name", texts_1.INVITE_INTRO_AFTER),
|
|
103
|
+
block("button"),
|
|
104
|
+
block("link_fallback"),
|
|
105
|
+
block("validity"),
|
|
106
|
+
text(texts_1.INVITE_IGNORE),
|
|
107
|
+
],
|
|
108
|
+
"affiliate.consignment_report_due": [
|
|
109
|
+
around(texts_1.CONSIGNMENT_GREETING_BEFORE, "affiliate_name", texts_1.CONSIGNMENT_GREETING_AFTER),
|
|
110
|
+
around(texts_1.CONSIGNMENT_INTRO_BEFORE, "report_month", texts_1.CONSIGNMENT_INTRO_AFTER),
|
|
111
|
+
block("details"),
|
|
112
|
+
text(texts_1.CONSIGNMENT_BILLING),
|
|
113
|
+
block("button"),
|
|
114
|
+
text(texts_1.CONSIGNMENT_IGNORE),
|
|
115
|
+
],
|
|
116
|
+
"affiliate.application_submitted.admin": [
|
|
117
|
+
text(texts_1.APPLICATION_INTRO),
|
|
118
|
+
block("details"),
|
|
119
|
+
block("message"),
|
|
120
|
+
block("button"),
|
|
121
|
+
],
|
|
122
|
+
};
|
|
123
|
+
/** Today's content of an editable mail as a block document (a fresh copy). */
|
|
124
|
+
const defaultTemplateDocument = (kind) => ({
|
|
125
|
+
type: "doc",
|
|
126
|
+
content: structuredClone([...DEFAULT_DOCUMENTS[kind]]),
|
|
127
|
+
});
|
|
128
|
+
exports.defaultTemplateDocument = defaultTemplateDocument;
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2VtYWlsL3RlbXBsYXRlcy9kZWZhdWx0cy9kb2N1bWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBU0EsbUNBa0NpQjtBQUVqQixNQUFNLElBQUksR0FBRyxDQUFDLEtBQWEsRUFBc0IsRUFBRSxDQUFDLENBQUM7SUFDbkQsSUFBSSxFQUFFLFdBQVc7SUFDakIsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztDQUN6QyxDQUFDLENBQUM7QUFFSCxpREFBaUQ7QUFDakQsTUFBTSxNQUFNLEdBQUcsQ0FDYixNQUFjLEVBQ2QsR0FBNkIsRUFDN0IsS0FBYSxFQUNPLEVBQUUsQ0FBQyxDQUFDO0lBQ3hCLElBQUksRUFBRSxXQUFXO0lBQ2pCLE9BQU8sRUFBRTtRQUNQLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO1FBQzlCLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUN2QyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRTtLQUM5QjtDQUNGLENBQUMsQ0FBQztBQUVILE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBK0IsRUFBc0IsRUFBRSxDQUFDLENBQUM7SUFDdEUsSUFBSSxFQUFFLGNBQWM7SUFDcEIsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO0NBQ3RDLENBQUMsQ0FBQztBQUVILE1BQU0sSUFBSSxHQUFHLENBQ1gsU0FBaUMsRUFDakMsS0FBYSxFQUNPLEVBQUUsQ0FBQyxDQUFDO0lBQ3hCLElBQUksRUFBRSxhQUFhO0lBQ25CLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRTtJQUNwQixP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
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultSubject = void 0;
|
|
4
|
+
const calendar_dates_1 = require("../../rendering/calendar-dates");
|
|
5
|
+
const email_html_1 = require("../../rendering/email-html");
|
|
6
|
+
const placeholders_1 = require("../blocks/placeholders");
|
|
7
|
+
/** The code subject of an editable mail, with its variants. */
|
|
8
|
+
const defaultSubject = ({ displayName }, input) => {
|
|
9
|
+
switch (input.kind) {
|
|
10
|
+
case "order.received":
|
|
11
|
+
return "Wir haben deine Bestellung erhalten";
|
|
12
|
+
case "order.received.admin": {
|
|
13
|
+
const { order_id, summary } = input.data;
|
|
14
|
+
if (!summary) {
|
|
15
|
+
return "Neue Bestellung eingegangen";
|
|
16
|
+
}
|
|
17
|
+
const name = (0, email_html_1.customerName)(summary);
|
|
18
|
+
return `Neue Bestellung ${(0, email_html_1.orderReference)(summary, order_id)}${name ? ` von ${name}` : ""}`;
|
|
19
|
+
}
|
|
20
|
+
case "order.shipped":
|
|
21
|
+
return `Deine Bestellung bei ${displayName} ist unterwegs`;
|
|
22
|
+
case "order.canceled": {
|
|
23
|
+
const { order_id, summary } = input.data;
|
|
24
|
+
const reference = summary ? (0, email_html_1.orderReference)(summary, order_id) : null;
|
|
25
|
+
return `Deine Bestellung${reference ? ` ${reference}` : ""} bei ${displayName} wurde storniert`;
|
|
26
|
+
}
|
|
27
|
+
case "order.return_requested": {
|
|
28
|
+
const id = input.data.summary?.order_display_id ?? null;
|
|
29
|
+
return id === null
|
|
30
|
+
? `Deine Rücksendung bei ${displayName}`
|
|
31
|
+
: `Deine Rücksendung zur Bestellung #${id} bei ${displayName}`;
|
|
32
|
+
}
|
|
33
|
+
case "order.return_received": {
|
|
34
|
+
const id = input.data.summary?.order_display_id ?? null;
|
|
35
|
+
return id === null
|
|
36
|
+
? `Deine Rücksendung bei ${displayName} ist eingetroffen`
|
|
37
|
+
: `Deine Rücksendung zur Bestellung #${id} bei ${displayName} ist eingetroffen`;
|
|
38
|
+
}
|
|
39
|
+
case "order.refunded": {
|
|
40
|
+
const id = input.data.summary?.order_display_id ?? null;
|
|
41
|
+
return id === null
|
|
42
|
+
? `Deine Erstattung bei ${displayName}`
|
|
43
|
+
: `Deine Erstattung zur Bestellung #${id} bei ${displayName}`;
|
|
44
|
+
}
|
|
45
|
+
case "auth.password_reset":
|
|
46
|
+
return `Neues Passwort für dein Kundenkonto bei ${displayName}`;
|
|
47
|
+
case "auth.verification":
|
|
48
|
+
return "Bestätige deine E-Mail-Adresse";
|
|
49
|
+
case "user.invite":
|
|
50
|
+
return `Einladung ins Admin-Team von ${displayName}`;
|
|
51
|
+
case "affiliate.consignment_report_due":
|
|
52
|
+
return `Erinnerung: Deine Monatsmeldung für ${(0, calendar_dates_1.calendarMonth)(input.data.period_start)}`;
|
|
53
|
+
case "affiliate.application_submitted.admin": {
|
|
54
|
+
const applicant = (0, placeholders_1.applicantName)(input.data);
|
|
55
|
+
return applicant
|
|
56
|
+
? `Neue Partner-Bewerbung von ${applicant}`
|
|
57
|
+
: "Neue Partner-Bewerbung";
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
exports.defaultSubject = defaultSubject;
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViamVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZW1haWwvdGVtcGxhdGVzL2RlZmF1bHRzL3N1YmplY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUErRDtBQUMvRCwyREFBMEU7QUFDMUUseURBQXVEO0FBR3ZELCtEQUErRDtBQUN4RCxNQUFNLGNBQWMsR0FBRyxDQUM1QixFQUFFLFdBQVcsRUFBK0IsRUFDNUMsS0FBeUIsRUFDakIsRUFBRTtJQUNWLFFBQVEsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25CLEtBQUssZ0JBQWdCO1lBQ25CLE9BQU8scUNBQXFDLENBQUM7UUFDL0MsS0FBSyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7WUFDNUIsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDYixPQUFPLDZCQUE2QixDQUFDO1lBQ3ZDLENBQUM7WUFDRCxNQUFNLElBQUksR0FBRyxJQUFBLHlCQUFZLEVBQUMsT0FBTyxDQUFDLENBQUM7WUFDbkMsT0FBTyxtQkFBbUIsSUFBQSwyQkFBYyxFQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzdGLENBQUM7UUFDRCxLQUFLLGVBQWU7WUFDbEIsT0FBTyx3QkFBd0IsV0FBVyxnQkFBZ0IsQ0FBQztRQUM3RCxLQUFLLGdCQUFnQixDQUFDLENBQUMsQ0FBQztZQUN0QixNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDekMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFBLDJCQUFjLEVBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDckUsT0FBTyxtQkFBbUIsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsV0FBVyxrQkFBa0IsQ0FBQztRQUNsRyxDQUFDO1FBQ0QsS0FBSyx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7WUFDOUIsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLElBQUksSUFBSSxDQUFDO1lBQ3hELE9BQU8sRUFBRSxLQUFLLElBQUk7Z0JBQ2hCLENBQUMsQ0FBQyx5QkFBeUIsV0FBVyxFQUFFO2dCQUN4QyxDQUFDLENBQUMscUNBQXFDLEVBQUUsUUFBUSxXQUFXLEVBQUUsQ0FBQztRQUNuRSxDQUFDO1FBQ0QsS0FBSyx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7WUFDN0IsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLElBQUksSUFBSSxDQUFDO1lBQ3hELE9BQU8sRUFBRSxLQUFLLElBQUk7Z0JBQ2hCLENBQUMsQ0FBQyx5QkFBeUIsV0FBVyxtQkFBbUI7Z0JBQ3pELENBQUMsQ0FBQyxxQ0FBcUMsRUFBRSxRQUFRLFdBQVcsbUJBQW1CLENBQUM7UUFDcEYsQ0FBQztRQUNELEtBQUssZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGdCQUFnQixJQUFJLElBQUksQ0FBQztZQUN4RCxPQUFPLEVBQUUsS0FBSyxJQUFJO2dCQUNoQixDQUFDLENBQUMsd0JBQXdCLFdBQVcsRUFBRTtnQkFDdkMsQ0FBQyxDQUFDLG9DQUFvQyxFQUFFLFFBQVEsV0FBVyxFQUFFLENBQUM7UUFDbEUsQ0FBQztRQUNELEtBQUsscUJBQXFCO1lBQ3hCLE9BQU8sMkNBQTJDLFdBQVcsRUFBRSxDQUFDO1FBQ2xFLEtBQUssbUJBQW1CO1lBQ3RCLE9BQU8sZ0NBQWdDLENBQUM7UUFDMUMsS0FBSyxhQUFhO1lBQ2hCLE9BQU8sZ0NBQWdDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZELEtBQUssa0NBQWtDO1lBQ3JDLE9BQU8sdUNBQXVDLElBQUEsOEJBQWEsRUFBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7UUFDekYsS0FBSyx1Q0FBdUMsQ0FBQyxDQUFDLENBQUM7WUFDN0MsTUFBTSxTQUFTLEdBQUcsSUFBQSw0QkFBYSxFQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QyxPQUFPLFNBQVM7Z0JBQ2QsQ0FBQyxDQUFDLDhCQUE4QixTQUFTLEVBQUU7Z0JBQzNDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMsQ0FBQztBQXZEVyxRQUFBLGNBQWMsa0JBdUR6QiJ9
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.APPLICATION_INTRO = exports.CONSIGNMENT_IGNORE = exports.CONSIGNMENT_BILLING = exports.CONSIGNMENT_INTRO_AFTER = exports.CONSIGNMENT_INTRO_BEFORE = exports.CONSIGNMENT_GREETING_AFTER = exports.CONSIGNMENT_GREETING_BEFORE = exports.INVITE_IGNORE = exports.INVITE_INTRO_AFTER = exports.INVITE_INTRO_BEFORE = exports.VERIFICATION_IGNORE = exports.VERIFICATION_VALIDITY = exports.VERIFICATION_INTRO_AFTER = exports.VERIFICATION_INTRO_BEFORE = exports.PASSWORD_RESET_IGNORE = exports.PASSWORD_RESET_INTRO_AFTER = exports.PASSWORD_RESET_INTRO_BEFORE = exports.ADMIN_ORDER_INTRO = exports.REFUND_DURATION = exports.REFUND_INTRO = exports.RETURN_REFUND = exports.RETURN_RECEIVED = exports.RETURN_LABEL_AFTER = exports.RETURN_LABEL_BEFORE = exports.RETURN_INSTRUCTIONS = exports.RETURN_CREATED = exports.CANCELLATION_ATTACHED = exports.CANCELED_PAYMENT = exports.CANCELED_INTRO = exports.INVOICE_ATTACHED = exports.MORE_TO_FOLLOW = exports.SHIPMENT_INTRO = exports.RECEIVED_INTRO = void 0;
|
|
4
|
+
/** Static texts of the default customer order mails. */
|
|
5
|
+
exports.RECEIVED_INTRO = "Vielen Dank für deine Bestellung, diese ist bei uns eingetroffen und wir werden sie umgehend bearbeiten.";
|
|
6
|
+
exports.SHIPMENT_INTRO = "Gute Nachrichten: Deine Bestellung hat unser Lager verlassen und ist auf dem Weg zu dir.";
|
|
7
|
+
exports.MORE_TO_FOLLOW = "Weitere Artikel deiner Bestellung folgen in einer separaten Sendung.";
|
|
8
|
+
exports.INVOICE_ATTACHED = "Die Rechnung findest du im Anhang.";
|
|
9
|
+
exports.CANCELED_INTRO = "Deine Bestellung wurde storniert. Du musst nichts weiter tun.";
|
|
10
|
+
exports.CANCELED_PAYMENT = "Falls du bereits bezahlt hast, erstatten wir dir den Betrag auf dem ursprünglichen Zahlungsweg.";
|
|
11
|
+
exports.CANCELLATION_ATTACHED = "Die Stornorechnung findest du im Anhang.";
|
|
12
|
+
exports.RETURN_CREATED = "Wir haben die Rücksendung zu deiner Bestellung angelegt.";
|
|
13
|
+
exports.RETURN_INSTRUCTIONS = "Bitte schick uns die unten aufgeführten Artikel an die angegebene Adresse zurück.";
|
|
14
|
+
/** "Bitte leg einen Zettel mit der Rücksendenummer #R… bei, …" around the number. */
|
|
15
|
+
exports.RETURN_LABEL_BEFORE = "Bitte leg einen Zettel mit der Rücksendenummer ";
|
|
16
|
+
exports.RETURN_LABEL_AFTER = " bei, damit wir dein Paket zuordnen können.";
|
|
17
|
+
exports.RETURN_RECEIVED = "Deine Rücksendung ist bei uns eingetroffen. Vielen Dank!";
|
|
18
|
+
exports.RETURN_REFUND = "Falls dir eine Erstattung zusteht, veranlassen wir sie in Kürze auf dem ursprünglichen Zahlungsweg.";
|
|
19
|
+
exports.REFUND_INTRO = "Wir haben dir eine Erstattung veranlasst.";
|
|
20
|
+
exports.REFUND_DURATION = "Je nach Zahlungsart kann es einige Tage dauern, bis der Betrag auf deinem Konto sichtbar ist.";
|
|
21
|
+
/** Static texts of the shop's order notification. */
|
|
22
|
+
exports.ADMIN_ORDER_INTRO = "Eine neue Bestellung ist eingegangen und kann jetzt bearbeitet werden.";
|
|
23
|
+
/** Static texts of the account mails; "…bei <shop>…" around the shop name. */
|
|
24
|
+
exports.PASSWORD_RESET_INTRO_BEFORE = "Du hast ein neues Passwort für dein Kundenkonto bei ";
|
|
25
|
+
exports.PASSWORD_RESET_INTRO_AFTER = " angefordert. Über den Button kannst du es jetzt festlegen.";
|
|
26
|
+
exports.PASSWORD_RESET_IGNORE = "Falls du kein neues Passwort angefordert hast, kannst du diese E-Mail ignorieren. Dein bisheriges Passwort bleibt dann unverändert.";
|
|
27
|
+
exports.VERIFICATION_INTRO_BEFORE = "Schön, dass du dich bei ";
|
|
28
|
+
exports.VERIFICATION_INTRO_AFTER = " registriert hast. Bitte bestätige deine E-Mail-Adresse, damit du dich anmelden kannst.";
|
|
29
|
+
exports.VERIFICATION_VALIDITY = "Der Link ist nur begrenzte Zeit gültig. Ist er abgelaufen, bekommst du beim nächsten Anmelden einen neuen Link oder kannst auf der Seite „Bestätigungsmail erneut senden“ wählen.";
|
|
30
|
+
exports.VERIFICATION_IGNORE = "Falls du dich nicht bei uns registriert hast, kannst du diese E-Mail ignorieren.";
|
|
31
|
+
exports.INVITE_INTRO_BEFORE = "Du wurdest eingeladen, im Admin-Bereich von ";
|
|
32
|
+
exports.INVITE_INTRO_AFTER = " mitzuarbeiten. Über den Button legst du dein Benutzerkonto an.";
|
|
33
|
+
exports.INVITE_IGNORE = "Falls du mit dieser Einladung nichts anfangen kannst, ignoriere diese E-Mail einfach.";
|
|
34
|
+
/** Static texts of the affiliate mails. */
|
|
35
|
+
exports.CONSIGNMENT_GREETING_BEFORE = "Hallo ";
|
|
36
|
+
exports.CONSIGNMENT_GREETING_AFTER = ",";
|
|
37
|
+
exports.CONSIGNMENT_INTRO_BEFORE = "deine Monatsmeldung für ";
|
|
38
|
+
exports.CONSIGNMENT_INTRO_AFTER = " liegt uns noch nicht vor. Bitte zähl deinen Kommissionsbestand und reich die Meldung im Partnerbereich ein.";
|
|
39
|
+
exports.CONSIGNMENT_BILLING = "Aus deinem gezählten Bestand ergeben sich die verkauften Artikel, die wir dir anschließend in Rechnung stellen.";
|
|
40
|
+
exports.CONSIGNMENT_IGNORE = "Falls du die Meldung inzwischen eingereicht hast, kannst du diese E-Mail ignorieren.";
|
|
41
|
+
exports.APPLICATION_INTRO = "Eine neue Partner-Bewerbung ist eingegangen und wartet auf deine Prüfung.";
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZW1haWwvdGVtcGxhdGVzL2RlZmF1bHRzL3RleHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHdEQUF3RDtBQUMzQyxRQUFBLGNBQWMsR0FDekIsMEdBQTBHLENBQUM7QUFFaEcsUUFBQSxjQUFjLEdBQ3pCLDBGQUEwRixDQUFDO0FBQ2hGLFFBQUEsY0FBYyxHQUN6QixzRUFBc0UsQ0FBQztBQUM1RCxRQUFBLGdCQUFnQixHQUFHLG9DQUFvQyxDQUFDO0FBRXhELFFBQUEsY0FBYyxHQUN6QiwrREFBK0QsQ0FBQztBQUNyRCxRQUFBLGdCQUFnQixHQUMzQixpR0FBaUcsQ0FBQztBQUN2RixRQUFBLHFCQUFxQixHQUNoQywwQ0FBMEMsQ0FBQztBQUVoQyxRQUFBLGNBQWMsR0FDekIsMERBQTBELENBQUM7QUFDaEQsUUFBQSxtQkFBbUIsR0FDOUIsbUZBQW1GLENBQUM7QUFDdEYscUZBQXFGO0FBQ3hFLFFBQUEsbUJBQW1CLEdBQzlCLGlEQUFpRCxDQUFDO0FBQ3ZDLFFBQUEsa0JBQWtCLEdBQzdCLDZDQUE2QyxDQUFDO0FBRW5DLFFBQUEsZUFBZSxHQUMxQiwwREFBMEQsQ0FBQztBQUNoRCxRQUFBLGFBQWEsR0FDeEIscUdBQXFHLENBQUM7QUFFM0YsUUFBQSxZQUFZLEdBQUcsMkNBQTJDLENBQUM7QUFDM0QsUUFBQSxlQUFlLEdBQzFCLCtGQUErRixDQUFDO0FBRWxHLHFEQUFxRDtBQUN4QyxRQUFBLGlCQUFpQixHQUM1Qix3RUFBd0UsQ0FBQztBQUUzRSw4RUFBOEU7QUFDakUsUUFBQSwyQkFBMkIsR0FDdEMsc0RBQXNELENBQUM7QUFDNUMsUUFBQSwwQkFBMEIsR0FDckMsNkRBQTZELENBQUM7QUFDbkQsUUFBQSxxQkFBcUIsR0FDaEMscUlBQXFJLENBQUM7QUFFM0gsUUFBQSx5QkFBeUIsR0FBRywwQkFBMEIsQ0FBQztBQUN2RCxRQUFBLHdCQUF3QixHQUNuQyx5RkFBeUYsQ0FBQztBQUMvRSxRQUFBLHFCQUFxQixHQUNoQyxtTEFBbUwsQ0FBQztBQUN6SyxRQUFBLG1CQUFtQixHQUM5QixrRkFBa0YsQ0FBQztBQUV4RSxRQUFBLG1CQUFtQixHQUM5Qiw4Q0FBOEMsQ0FBQztBQUNwQyxRQUFBLGtCQUFrQixHQUM3QixpRUFBaUUsQ0FBQztBQUN2RCxRQUFBLGFBQWEsR0FDeEIsdUZBQXVGLENBQUM7QUFFMUYsMkNBQTJDO0FBQzlCLFFBQUEsMkJBQTJCLEdBQUcsUUFBUSxDQUFDO0FBQ3ZDLFFBQUEsMEJBQTBCLEdBQUcsR0FBRyxDQUFDO0FBQ2pDLFFBQUEsd0JBQXdCLEdBQUcsMEJBQTBCLENBQUM7QUFDdEQsUUFBQSx1QkFBdUIsR0FDbEMsOEdBQThHLENBQUM7QUFDcEcsUUFBQSxtQkFBbUIsR0FDOUIsaUhBQWlILENBQUM7QUFDdkcsUUFBQSxrQkFBa0IsR0FDN0Isc0ZBQXNGLENBQUM7QUFFNUUsUUFBQSxpQkFBaUIsR0FDNUIsMkVBQTJFLENBQUMifQ==
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateTemplateDocument = exports.sampleTemplateInput = exports.renderTemplatedEmail = exports.renderTemplateSubject = exports.isEditableKind = exports.hasTemplateSnapshot = exports.renderTemplatePreview = exports.loadEmailTemplate = exports.defaultTemplateDocument = exports.markDefaultRenderer = exports.isCodeOverride = void 0;
|
|
4
|
+
var code_override_1 = require("./code-override");
|
|
5
|
+
Object.defineProperty(exports, "isCodeOverride", { enumerable: true, get: function () { return code_override_1.isCodeOverride; } });
|
|
6
|
+
Object.defineProperty(exports, "markDefaultRenderer", { enumerable: true, get: function () { return code_override_1.markDefaultRenderer; } });
|
|
7
|
+
var documents_1 = require("./defaults/documents");
|
|
8
|
+
Object.defineProperty(exports, "defaultTemplateDocument", { enumerable: true, get: function () { return documents_1.defaultTemplateDocument; } });
|
|
9
|
+
var load_template_1 = require("./load-template");
|
|
10
|
+
Object.defineProperty(exports, "loadEmailTemplate", { enumerable: true, get: function () { return load_template_1.loadEmailTemplate; } });
|
|
11
|
+
var preview_1 = require("./preview");
|
|
12
|
+
Object.defineProperty(exports, "renderTemplatePreview", { enumerable: true, get: function () { return preview_1.renderTemplatePreview; } });
|
|
13
|
+
var render_1 = require("./render");
|
|
14
|
+
Object.defineProperty(exports, "hasTemplateSnapshot", { enumerable: true, get: function () { return render_1.hasTemplateSnapshot; } });
|
|
15
|
+
Object.defineProperty(exports, "isEditableKind", { enumerable: true, get: function () { return render_1.isEditableKind; } });
|
|
16
|
+
Object.defineProperty(exports, "renderTemplateSubject", { enumerable: true, get: function () { return render_1.renderTemplateSubject; } });
|
|
17
|
+
Object.defineProperty(exports, "renderTemplatedEmail", { enumerable: true, get: function () { return render_1.renderTemplatedEmail; } });
|
|
18
|
+
var sample_data_1 = require("./sample-data");
|
|
19
|
+
Object.defineProperty(exports, "sampleTemplateInput", { enumerable: true, get: function () { return sample_data_1.sampleTemplateInput; } });
|
|
20
|
+
var validate_1 = require("./validate");
|
|
21
|
+
Object.defineProperty(exports, "validateTemplateDocument", { enumerable: true, get: function () { return validate_1.validateTemplateDocument; } });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZW1haWwvdGVtcGxhdGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUFzRTtBQUE3RCwrR0FBQSxjQUFjLE9BQUE7QUFBRSxvSEFBQSxtQkFBbUIsT0FBQTtBQUM1QyxrREFBK0Q7QUFBdEQsb0hBQUEsdUJBQXVCLE9BQUE7QUFDaEMsaURBQW9EO0FBQTNDLGtIQUFBLGlCQUFpQixPQUFBO0FBQzFCLHFDQUF3RTtBQUEvRCxnSEFBQSxxQkFBcUIsT0FBQTtBQUM5QixtQ0FLa0I7QUFKaEIsNkdBQUEsbUJBQW1CLE9BQUE7QUFDbkIsd0dBQUEsY0FBYyxPQUFBO0FBQ2QsK0dBQUEscUJBQXFCLE9BQUE7QUFDckIsOEdBQUEsb0JBQW9CLE9BQUE7QUFFdEIsNkNBQW9EO0FBQTNDLGtIQUFBLG1CQUFtQixPQUFBO0FBTTVCLHVDQUdvQjtBQUZsQixvSEFBQSx3QkFBd0IsT0FBQSJ9
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loadEmailTemplate = void 0;
|
|
4
|
+
const lib_1 = require("../../shared/lib");
|
|
5
|
+
const code_override_1 = require("./code-override");
|
|
6
|
+
const render_1 = require("./render");
|
|
7
|
+
const validate_1 = require("./validate");
|
|
8
|
+
/**
|
|
9
|
+
* The Admin template of an editable mail kind, re-validated. A template never
|
|
10
|
+
* blocks a mail: a failed read or an invalid template falls back to the
|
|
11
|
+
* default (`null`) with a warning. Kinds the shop's code overrides and kinds
|
|
12
|
+
* without a template give `null` without reading.
|
|
13
|
+
*/
|
|
14
|
+
const loadEmailTemplate = async (container, email, kind) => {
|
|
15
|
+
if (!(0, render_1.isEditableKind)(kind)) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
if ((0, code_override_1.isCodeOverride)(email.getDispatchConfiguration(), kind)) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
const stored = await email.getTemplate(kind);
|
|
23
|
+
if (!stored) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
const validated = (0, validate_1.validateTemplateDocument)(kind, stored.document);
|
|
27
|
+
if (!validated.ok) {
|
|
28
|
+
(0, lib_1.resolveOptionalLogger)(container)?.warn(`email: template kind=${kind} is invalid; rendering the default (${validated.message})`);
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
return { subject: stored.subject, document: validated.document };
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
(0, lib_1.resolveOptionalLogger)(container)?.warn(`email: template kind=${kind} unavailable; rendering the default.`);
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
exports.loadEmailTemplate = loadEmailTemplate;
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC10ZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbWFpbC90ZW1wbGF0ZXMvbG9hZC10ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSwwQ0FBeUQ7QUFHekQsbURBQWlEO0FBQ2pELHFDQUEwQztBQUUxQyx5Q0FBc0Q7QUFFdEQ7Ozs7O0dBS0c7QUFDSSxNQUFNLGlCQUFpQixHQUFHLEtBQUssRUFDcEMsU0FBMEIsRUFDMUIsS0FBMkUsRUFDM0UsSUFBZSxFQUNzQixFQUFFO0lBQ3ZDLElBQUksQ0FBQyxJQUFBLHVCQUFjLEVBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFJLENBQUM7UUFDSCxJQUFJLElBQUEsOEJBQWMsRUFBQyxLQUFLLENBQUMsd0JBQXdCLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLE1BQU0sS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxNQUFNLFNBQVMsR0FBRyxJQUFBLG1DQUF3QixFQUFDLElBQUksRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNsQixJQUFBLDJCQUFxQixFQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksQ0FDcEMsd0JBQXdCLElBQUksdUNBQXVDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsQ0FDeEYsQ0FBQztZQUNGLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25FLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxJQUFBLDJCQUFxQixFQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksQ0FDcEMsd0JBQXdCLElBQUksc0NBQXNDLENBQ25FLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7QUFDSCxDQUFDLENBQUM7QUE5QlcsUUFBQSxpQkFBaUIscUJBOEI1QiJ9
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderTemplatePreview = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const render_email_1 = require("../rendering/render-email");
|
|
6
|
+
const render_1 = require("./render");
|
|
7
|
+
const sample_data_1 = require("./sample-data");
|
|
8
|
+
const validate_1 = require("./validate");
|
|
9
|
+
/**
|
|
10
|
+
* A template rendered in the shop's layout, as the Admin editor shows it:
|
|
11
|
+
* with `input` (validated data of the same kind, e.g. from a real order) or
|
|
12
|
+
* else sample data. Throws `INVALID_DATA` for a document the kind does not
|
|
13
|
+
* accept.
|
|
14
|
+
*/
|
|
15
|
+
const renderTemplatePreview = ({ configuration, document, input, kind, shop, subject, }) => {
|
|
16
|
+
const validated = (0, validate_1.validateTemplateDocument)(kind, document);
|
|
17
|
+
if (!validated.ok) {
|
|
18
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, validated.message);
|
|
19
|
+
}
|
|
20
|
+
const content = (0, render_1.renderTemplatedEmail)({
|
|
21
|
+
configuration,
|
|
22
|
+
input: input ?? (0, sample_data_1.sampleTemplateInput)(kind),
|
|
23
|
+
shop,
|
|
24
|
+
template: { subject, document: validated.document },
|
|
25
|
+
});
|
|
26
|
+
return {
|
|
27
|
+
subject: content.subject,
|
|
28
|
+
html: (0, render_email_1.layoutEmail)(configuration, kind, content, shop),
|
|
29
|
+
text: content.text,
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
exports.renderTemplatePreview = renderTemplatePreview;
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbWFpbC90ZW1wbGF0ZXMvcHJldmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBd0Q7QUFHeEQsNERBQXdEO0FBS3hELHFDQUFnRDtBQUNoRCwrQ0FBb0Q7QUFFcEQseUNBQXNEO0FBUXREOzs7OztHQUtHO0FBQ0ksTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEVBQ3BDLGFBQWEsRUFDYixRQUFRLEVBQ1IsS0FBSyxFQUNMLElBQUksRUFDSixJQUFJLEVBQ0osT0FBTyxHQVFQLEVBQW1CLEVBQUU7SUFDckIsTUFBTSxTQUFTLEdBQUcsSUFBQSxtQ0FBd0IsRUFBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDM0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNsQixNQUFNLElBQUksbUJBQVcsQ0FBQyxtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFDRCxNQUFNLE9BQU8sR0FBRyxJQUFBLDZCQUFvQixFQUFDO1FBQ25DLGFBQWE7UUFDYixLQUFLLEVBQUUsS0FBSyxJQUFJLElBQUEsaUNBQW1CLEVBQUMsSUFBSSxDQUFDO1FBQ3pDLElBQUk7UUFDSixRQUFRLEVBQUUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQUU7S0FDcEQsQ0FBQyxDQUFDO0lBQ0gsT0FBTztRQUNMLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztRQUN4QixJQUFJLEVBQUUsSUFBQSwwQkFBVyxFQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQztRQUNyRCxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7S0FDbkIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQTlCVyxRQUFBLHFCQUFxQix5QkE4QmhDIn0=
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderTemplatedEmail = exports.renderTemplateSubject = exports.hasTemplateSnapshot = exports.isEditableKind = void 0;
|
|
4
|
+
const email_1 = require("@hartl-services/medusa-food-supplements-contracts/schemas/email");
|
|
5
|
+
const email_html_1 = require("../rendering/email-html");
|
|
6
|
+
const placeholders_1 = require("./blocks/placeholders");
|
|
7
|
+
const render_document_1 = require("./blocks/render-document");
|
|
8
|
+
const documents_1 = require("./defaults/documents");
|
|
9
|
+
const subjects_1 = require("./defaults/subjects");
|
|
10
|
+
const isEditableKind = (kind) => email_1.EMAIL_EDITABLE_KINDS.includes(kind);
|
|
11
|
+
exports.isEditableKind = isEditableKind;
|
|
12
|
+
/**
|
|
13
|
+
* Whether the mail carries the snapshot a template needs. Mails stored
|
|
14
|
+
* before their snapshot existed keep their short code text; a cancellation
|
|
15
|
+
* renders its blocks without data, and the account and affiliate mails
|
|
16
|
+
* always carry all their data.
|
|
17
|
+
*/
|
|
18
|
+
const hasTemplateSnapshot = (input) => {
|
|
19
|
+
switch (input.kind) {
|
|
20
|
+
case "order.shipped":
|
|
21
|
+
return input.data.shipment !== undefined;
|
|
22
|
+
case "order.canceled":
|
|
23
|
+
case "auth.password_reset":
|
|
24
|
+
case "auth.verification":
|
|
25
|
+
case "user.invite":
|
|
26
|
+
case "affiliate.consignment_report_due":
|
|
27
|
+
case "affiliate.application_submitted.admin":
|
|
28
|
+
return true;
|
|
29
|
+
case "order.received":
|
|
30
|
+
case "order.received.admin":
|
|
31
|
+
case "order.return_requested":
|
|
32
|
+
case "order.return_received":
|
|
33
|
+
case "order.refunded":
|
|
34
|
+
return input.data.summary !== undefined;
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
exports.hasTemplateSnapshot = hasTemplateSnapshot;
|
|
38
|
+
const SUBJECT_TOKEN = /\{\{([a-z_]+)\}\}/g;
|
|
39
|
+
/**
|
|
40
|
+
* A stored subject with its `{{key}}` tokens resolved (only the kind's
|
|
41
|
+
* placeholders; other text stays literal) and whitespace collapsed; `null`,
|
|
42
|
+
* blank or an empty result gives the default subject.
|
|
43
|
+
*/
|
|
44
|
+
const renderTemplateSubject = (kind, subject, values, fallback) => {
|
|
45
|
+
if (!subject?.trim()) {
|
|
46
|
+
return fallback;
|
|
47
|
+
}
|
|
48
|
+
const allowed = email_1.EMAIL_TEMPLATE_CATALOG[kind].placeholders;
|
|
49
|
+
const resolved = subject
|
|
50
|
+
.replace(SUBJECT_TOKEN, (token, key) => allowed.includes(key) ? values[key] : token)
|
|
51
|
+
.replace(/\s+/g, " ")
|
|
52
|
+
.trim();
|
|
53
|
+
return resolved || fallback;
|
|
54
|
+
};
|
|
55
|
+
exports.renderTemplateSubject = renderTemplateSubject;
|
|
56
|
+
/**
|
|
57
|
+
* Renders an editable mail from a template: the stored one, or the default
|
|
58
|
+
* document and subject when `template` is `null`.
|
|
59
|
+
*/
|
|
60
|
+
const renderTemplatedEmail = ({ configuration, input, shop, template, }) => {
|
|
61
|
+
const values = (0, placeholders_1.placeholderValues)(configuration, input);
|
|
62
|
+
const { bodyHtml, text } = (0, render_document_1.renderTemplateDocument)({ configuration, input, palette: (0, email_html_1.paletteFor)(shop), values }, template?.document ?? (0, documents_1.defaultTemplateDocument)(input.kind));
|
|
63
|
+
return {
|
|
64
|
+
bodyHtml,
|
|
65
|
+
subject: (0, exports.renderTemplateSubject)(input.kind, template?.subject ?? null, values, (0, subjects_1.defaultSubject)(configuration, input)),
|
|
66
|
+
text,
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
exports.renderTemplatedEmail = renderTemplatedEmail;
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VtYWlsL3RlbXBsYXRlcy9yZW5kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkZBR3lFO0FBR3pFLHdEQUFxRDtBQUVyRCx3REFBa0Y7QUFDbEYsOERBQWtFO0FBQ2xFLG9EQUErRDtBQUMvRCxrREFBcUQ7QUFPOUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxJQUFZLEVBQTZCLEVBQUUsQ0FDdkUsNEJBQThDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBRHBELFFBQUEsY0FBYyxrQkFDc0M7QUFFakU7Ozs7O0dBS0c7QUFDSSxNQUFNLG1CQUFtQixHQUFHLENBQUMsS0FBeUIsRUFBVyxFQUFFO0lBQ3hFLFFBQVEsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25CLEtBQUssZUFBZTtZQUNsQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQztRQUMzQyxLQUFLLGdCQUFnQixDQUFDO1FBQ3RCLEtBQUsscUJBQXFCLENBQUM7UUFDM0IsS0FBSyxtQkFBbUIsQ0FBQztRQUN6QixLQUFLLGFBQWEsQ0FBQztRQUNuQixLQUFLLGtDQUFrQyxDQUFDO1FBQ3hDLEtBQUssdUNBQXVDO1lBQzFDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsS0FBSyxnQkFBZ0IsQ0FBQztRQUN0QixLQUFLLHNCQUFzQixDQUFDO1FBQzVCLEtBQUssd0JBQXdCLENBQUM7UUFDOUIsS0FBSyx1QkFBdUIsQ0FBQztRQUM3QixLQUFLLGdCQUFnQjtZQUNuQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQztJQUM1QyxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBbEJXLFFBQUEsbUJBQW1CLHVCQWtCOUI7QUFFRixNQUFNLGFBQWEsR0FBRyxvQkFBb0IsQ0FBQztBQUUzQzs7OztHQUlHO0FBQ0ksTUFBTSxxQkFBcUIsR0FBRyxDQUNuQyxJQUF1QixFQUN2QixPQUFzQixFQUN0QixNQUF5QixFQUN6QixRQUFnQixFQUNSLEVBQUU7SUFDVixJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7UUFDckIsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUEwQiw4QkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUM7SUFDakYsTUFBTSxRQUFRLEdBQUcsT0FBTztTQUNyQixPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQVcsRUFBRSxFQUFFLENBQzdDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUE4QixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FDdkU7U0FDQSxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztTQUNwQixJQUFJLEVBQUUsQ0FBQztJQUNWLE9BQU8sUUFBUSxJQUFJLFFBQVEsQ0FBQztBQUM5QixDQUFDLENBQUM7QUFqQlcsUUFBQSxxQkFBcUIseUJBaUJoQztBQUVGOzs7R0FHRztBQUNJLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxFQUNuQyxhQUFhLEVBQ2IsS0FBSyxFQUNMLElBQUksRUFDSixRQUFRLEdBTVIsRUFBd0IsRUFBRTtJQUMxQixNQUFNLE1BQU0sR0FBRyxJQUFBLGdDQUFpQixFQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2RCxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUEsd0NBQXNCLEVBQy9DLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBQSx1QkFBVSxFQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUMzRCxRQUFRLEVBQUUsUUFBUSxJQUFJLElBQUEsbUNBQXVCLEVBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUMxRCxDQUFDO0lBQ0YsT0FBTztRQUNMLFFBQVE7UUFDUixPQUFPLEVBQUUsSUFBQSw2QkFBcUIsRUFDNUIsS0FBSyxDQUFDLElBQUksRUFDVixRQUFRLEVBQUUsT0FBTyxJQUFJLElBQUksRUFDekIsTUFBTSxFQUNOLElBQUEseUJBQWMsRUFBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQ3JDO1FBQ0QsSUFBSTtLQUNMLENBQUM7QUFDSixDQUFDLENBQUM7QUExQlcsUUFBQSxvQkFBb0Isd0JBMEIvQiJ9
|