@hartl-services/medusa-base 2.7.0 → 2.9.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 (54) hide show
  1. package/.medusa/server/src/admin/admin-components/features/plugin-features/components/PluginSettingsForm.js +12 -9
  2. package/.medusa/server/src/admin/admin-components/features/plugin-features/hooks/usePluginFeatureEnabled.d.ts +5 -1
  3. package/.medusa/server/src/admin/admin-components/features/plugin-features/hooks/usePluginFeatures.d.ts +20 -4
  4. package/.medusa/server/src/admin/admin-components/features/plugin-features/hooks/usePluginSettingsForm.d.ts +5 -1
  5. package/.medusa/server/src/admin/admin-components/features/plugin-features/lib/plugin-features-admin-client.d.ts +20 -4
  6. package/.medusa/server/src/admin/admin-components/features/plugin-features/lib/plugin-view.d.ts +0 -5
  7. package/.medusa/server/src/admin/admin-components/features/plugin-features/lib/plugin-view.js +0 -5
  8. package/.medusa/server/src/admin/admin-components/features/plugin-features/lib/settings-layout.d.ts +4 -0
  9. package/.medusa/server/src/admin/admin-components/features/plugin-features/lib/settings-layout.js +4 -0
  10. package/.medusa/server/src/admin/admin-components/i18n/texts.d.ts +1 -2
  11. package/.medusa/server/src/admin/admin-components/i18n/texts.js +1 -2
  12. package/.medusa/server/src/admin/index.js +142 -87
  13. package/.medusa/server/src/admin/index.mjs +144 -89
  14. package/.medusa/server/src/api/admin/email/templates/[kind]/send-test/route.js +7 -1
  15. package/.medusa/server/src/customer-auth/plugin-features.js +10 -10
  16. package/.medusa/server/src/email/application/warn-credential-expiry.js +77 -0
  17. package/.medusa/server/src/email/config/index.js +8 -2
  18. package/.medusa/server/src/email/config/notification-module.js +28 -2
  19. package/.medusa/server/src/email/domain/business-keys.js +5 -2
  20. package/.medusa/server/src/email/domain/failure-classification.js +9 -1
  21. package/.medusa/server/src/email/plugin-features.js +123 -1
  22. package/.medusa/server/src/email/rendering/default-templates.js +16 -1
  23. package/.medusa/server/src/email/rendering/render-email.js +2 -1
  24. package/.medusa/server/src/email/types/email-kinds.js +2 -1
  25. package/.medusa/server/src/email/types/template-data.js +8 -1
  26. package/.medusa/server/src/jobs/email-credential-expiry.js +27 -0
  27. package/.medusa/server/src/modules/email/domain/message-state.js +3 -1
  28. package/.medusa/server/src/modules/email/migrations/Migration20261011120000.js +20 -0
  29. package/.medusa/server/src/modules/plugin-features/domain/plugin-settings.js +27 -6
  30. package/.medusa/server/src/modules/plugin-features/service.js +4 -3
  31. package/.medusa/server/src/providers/smtp/delivery-settings.js +75 -0
  32. package/.medusa/server/src/providers/smtp/graph-transport.js +150 -0
  33. package/.medusa/server/src/providers/smtp/service.js +105 -37
  34. package/.medusa/server/src/providers/smtp/types.js +7 -1
  35. package/.medusa/server/src/public/descriptor.js +24 -3
  36. package/.medusa/server/src/shared/lib/dates.js +8 -2
  37. package/.medusa/server/src/shop-config/build-food-shop-config.js +3 -5
  38. package/README.md +100 -65
  39. package/dist/customer-auth/plugin-features.js +9 -9
  40. package/dist/email/config/index.d.ts +6 -1
  41. package/dist/email/config/index.js +7 -1
  42. package/dist/email/config/notification-module.d.ts +25 -0
  43. package/dist/email/config/notification-module.js +27 -1
  44. package/dist/email/types/email-kinds.d.ts +2 -1
  45. package/dist/email/types/email-kinds.js +1 -0
  46. package/dist/email/types/template-data.d.ts +10 -0
  47. package/dist/email/types/template-data.js +7 -0
  48. package/dist/public/descriptor.js +23 -2
  49. package/dist/public/types.d.ts +14 -4
  50. package/dist/shared/lib/dates.d.ts +2 -0
  51. package/dist/shared/lib/dates.js +7 -1
  52. package/dist/shop-config/build-food-shop-config.d.ts +1 -1
  53. package/dist/shop-config/build-food-shop-config.js +2 -4
  54. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toStoredSettingValues = exports.missingSettingKeys = exports.isSealed = void 0;
3
+ exports.toStoredSettingValues = exports.missingSettingKeys = exports.hiddenSettingGroups = exports.isSealed = void 0;
4
4
  exports.normalizeSettingValue = normalizeSettingValue;
5
5
  exports.validateSettingsUpdate = validateSettingsUpdate;
6
6
  exports.mergeStoredSettings = mergeStoredSettings;
@@ -35,6 +35,12 @@ function normalizeSettingValue(definition, value) {
35
35
  ? { ok: true, value: color }
36
36
  : { ok: false, message: "muss eine Hex-Farbe wie #1a2b3c sein" };
37
37
  }
38
+ case "date": {
39
+ const date = typeof value === "string" ? value.trim() : "";
40
+ return (0, lib_1.isCalendarDate)(date)
41
+ ? { ok: true, value: date }
42
+ : { ok: false, message: "muss ein Datum wie 2026-12-31 sein" };
43
+ }
38
44
  case "secret":
39
45
  return typeof value === "string" && value.trim()
40
46
  ? { ok: true, value }
@@ -190,10 +196,25 @@ function resolveSettingValues(descriptor, stored, fallback, open) {
190
196
  return { definition, source: "none" };
191
197
  });
192
198
  }
193
- /** Required settings without a value. */
194
- const missingSettingKeys = (resolved) => resolved
195
- .filter((setting) => setting.definition.required === true && setting.source === "none")
196
- .map((setting) => setting.definition.key);
199
+ /**
200
+ * Names of the groups whose `visible_when` does not hold for the resolved
201
+ * values; their settings do not apply.
202
+ */
203
+ const hiddenSettingGroups = (descriptor, resolved) => new Set((descriptor.setting_groups ?? [])
204
+ .filter(({ visible_when: condition }) => condition !== undefined &&
205
+ resolved.find((setting) => setting.definition.key === condition.setting)
206
+ ?.value !== condition.equals)
207
+ .map((group) => group.name));
208
+ exports.hiddenSettingGroups = hiddenSettingGroups;
209
+ /** Required settings without a value, outside hidden groups. */
210
+ const missingSettingKeys = (descriptor, resolved) => {
211
+ const hidden = (0, exports.hiddenSettingGroups)(descriptor, resolved);
212
+ return resolved
213
+ .filter((setting) => setting.definition.required === true &&
214
+ setting.source === "none" &&
215
+ !(setting.definition.group !== undefined && hidden.has(setting.definition.group)))
216
+ .map((setting) => setting.definition.key);
217
+ };
197
218
  exports.missingSettingKeys = missingSettingKeys;
198
219
  /** Reads a persisted `values` column defensively. */
199
220
  const toStoredSettingValues = (raw) => {
@@ -212,4 +233,4 @@ const toStoredSettingValues = (raw) => {
212
233
  return values;
213
234
  };
214
235
  exports.toStoredSettingValues = toStoredSettingValues;
215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXNldHRpbmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvcGx1Z2luLWZlYXR1cmVzL2RvbWFpbi9wbHVnaW4tc2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBb0NBLHNEQTZEQztBQVlELHdEQTRCQztBQWlCRCxrREFxREM7QUFRRCxvREF5Q0M7QUFoUUQscURBQXVEO0FBRXZELDZDQUErQztBQXlCeEMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFjLEVBQStCLEVBQUUsQ0FDdEUsT0FBTyxLQUFLLEtBQUssUUFBUTtJQUN6QixLQUFLLEtBQUssSUFBSTtJQUNkLE9BQVEsS0FBMkIsQ0FBQyxHQUFHLEtBQUssUUFBUSxDQUFBO0FBSHpDLFFBQUEsUUFBUSxZQUdpQztBQUV0RDs7O0dBR0c7QUFDSCxTQUFnQixxQkFBcUIsQ0FDbkMsVUFBbUMsRUFDbkMsS0FBYztJQUVkLFFBQVEsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hCLEtBQUssUUFBUSxDQUFDO1FBQ2QsS0FBSyxLQUFLLENBQUM7UUFDWCxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDYixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUMvQyxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsQ0FBQTtZQUNsRSxDQUFDO1lBQ0QsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFBO1lBQzVCLElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxJQUFBLGVBQVMsRUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUN4RCxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsQ0FBQTtZQUM3RCxD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
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXNldHRpbmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvcGx1Z2luLWZlYXR1cmVzL2RvbWFpbi9wbHVnaW4tc2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBb0NBLHNEQW1FQztBQVlELHdEQTRCQztBQWlCRCxrREFxREM7QUFRRCxvREF5Q0M7QUF0UUQscURBQXVEO0FBRXZELDZDQUErRDtBQXlCeEQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFjLEVBQStCLEVBQUUsQ0FDdEUsT0FBTyxLQUFLLEtBQUssUUFBUTtJQUN6QixLQUFLLEtBQUssSUFBSTtJQUNkLE9BQVEsS0FBMkIsQ0FBQyxHQUFHLEtBQUssUUFBUSxDQUFBO0FBSHpDLFFBQUEsUUFBUSxZQUdpQztBQUV0RDs7O0dBR0c7QUFDSCxTQUFnQixxQkFBcUIsQ0FDbkMsVUFBbUMsRUFDbkMsS0FBYztJQUVkLFFBQVEsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hCLEtBQUssUUFBUSxDQUFDO1FBQ2QsS0FBSyxLQUFLLENBQUM7UUFDWCxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDYixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUMvQyxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsQ0FBQTtZQUNsRSxDQUFDO1lBQ0QsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFBO1lBQzVCLElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxJQUFBLGVBQVMsRUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUN4RCxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsQ0FBQTtZQUM3RCxDQUFDO1lBQ0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFBO1FBQ3JDLENBQUM7UUFDRCxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDYixNQUFNLEtBQUssR0FBRyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1lBQ3pFLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDakMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO2dCQUM1QixDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxDQUFBO1FBQ3BFLENBQUM7UUFDRCxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDWixNQUFNLElBQUksR0FBRyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1lBQzFELE9BQU8sSUFBQSxvQkFBYyxFQUFDLElBQUksQ0FBQztnQkFDekIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO2dCQUMzQixDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxDQUFBO1FBQ2xFLENBQUM7UUFDRCxLQUFLLFFBQVE7WUFDWCxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFO2dCQUM5QyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRTtnQkFDckIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsQ0FBQTtRQUMvRCxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDZCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDekQsT0FBTyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLENBQUE7WUFDL0QsQ0FBQztZQUNELElBQUksVUFBVSxDQUFDLE9BQU8sS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQzVELE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxDQUFBO1lBQzVELENBQUM7WUFDRCxJQUFJLFVBQVUsQ0FBQyxHQUFHLEtBQUssU0FBUyxJQUFJLEtBQUssR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQzNELE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsVUFBVSxDQUFDLEdBQUcsT0FBTyxFQUFFLENBQUE7WUFDekUsQ0FBQztZQUNELElBQUksVUFBVSxDQUFDLEdBQUcsS0FBSyxTQUFTLElBQUksS0FBSyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDM0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixVQUFVLENBQUMsR0FBRyxPQUFPLEVBQUUsQ0FBQTtZQUN4RSxDQUFDO1lBQ0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUE7UUFDNUIsQ0FBQztRQUNELEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNkLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFBO1lBQ3hDLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUTtnQkFDOUIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUM7Z0JBQ2hELENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFO2dCQUNyQixDQUFDLENBQUM7b0JBQ0UsRUFBRSxFQUFFLEtBQUs7b0JBQ1QsT0FBTyxFQUFFLHdCQUF3QixPQUFPO3lCQUNyQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDO3lCQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87aUJBQ3JCLENBQUE7UUFDUCxDQUFDO1FBQ0QsS0FBSyxTQUFTO1lBQ1osT0FBTyxPQUFPLEtBQUssS0FBSyxTQUFTO2dCQUMvQixDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRTtnQkFDckIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsQ0FBQTtRQUN6RDtZQUNFLE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxDQUFBO0lBQzlELENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxTQUFpQixFQUFFLE9BQWUsRUFBZSxFQUFFLENBQ2xFLElBQUksbUJBQVcsQ0FDYixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLHVDQUF1QyxTQUFTLE1BQU0sT0FBTyxFQUFFLENBQ2hFLENBQUE7QUFFSDs7O0dBR0c7QUFDSCxTQUFnQixzQkFBc0IsQ0FDcEMsVUFBbUMsRUFDbkMsTUFBK0I7SUFFL0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQ3RCLENBQUMsVUFBVSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUNyRSxDQUFBO0lBQ0QsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQ3ZFLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ25CLE1BQU0sT0FBTyxDQUNYLFVBQVUsQ0FBQyxVQUFVLEVBQ3JCLDRCQUE0QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQzNFLENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQW1CLEVBQUUsQ0FBQTtJQUNqQyxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ2xELElBQUksS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ25CLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUE7WUFDbEIsU0FBUTtRQUNWLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBRSxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ2hFLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDaEIsTUFBTSxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxJQUFJLEdBQUcsS0FBSyxPQUFPLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQTtRQUN0RSxDQUFDO1FBQ0QsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUE7SUFDN0IsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQztBQUVELE1BQU0sVUFBVSxHQUFHLENBQ2pCLElBQW9DLEVBQ3BDLEtBQXFDLEVBQzVCLEVBQUUsQ0FDWCxJQUFBLGdCQUFRLEVBQUMsSUFBSSxDQUFDLElBQUksSUFBQSxnQkFBUSxFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUE7QUFFNUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFnQixtQkFBbUIsQ0FDakMsVUFBbUMsRUFDbkMsT0FBNEIsRUFDNUIsTUFBc0IsRUFDdEIsSUFBZ0Q7SUFFaEQsTUFBTSxNQUFNLEdBQXdCLEVBQUUsQ0FBQTtJQUN0QyxNQUFNLE9BQU8sR0FBYSxFQUFFLENBQUE7SUFFNUIsS0FBSyxNQUFNLFVBQVUsSUFBSSxVQUFVLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ25ELE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUE7UUFDMUIsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQzNCLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3JCLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUN6QixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFBO1lBQ3RCLENBQUM7WUFDRCxTQUFRO1FBQ1YsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUN4QixJQUFJLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUN6QixPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQ25CLENBQUM7WUFDRCxTQUFRO1FBQ1YsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUNWLFVBQVUsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtRQUN4RSxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFBO1FBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDaEMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUE7SUFDckMsS0FBSyxNQUFNLFVBQVUsSUFBSSxVQUFVLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ25ELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RDLFNBQVE7UUFDVixDQUFDO1FBQ0QsS0FBSyxNQUFNLE1BQU0sSUFBSSxVQUFVLENBQUMsV0FBVyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ2xELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLFNBQVMsQ0FBQTtZQUN0RSxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDNUMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7Z0JBQ3JCLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDekIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxXQUFXLEdBQUcsQ0FBQyxVQUFVLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztTQUM1QyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUM7U0FDckIsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUVqRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQTtBQUM5QyxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixvQkFBb0IsQ0FDbEMsVUFBbUMsRUFDbkMsTUFBMkIsRUFDM0IsUUFBNEMsRUFDNUMsSUFBeUQ7SUFFekQsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7UUFDcEQsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQTtRQUMxQixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDdkIsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdEIsTUFBTSxTQUFTLEdBQ2IsVUFBVSxDQUFDLElBQUksS0FBSyxRQUFRO2dCQUMxQixDQUFDLENBQUMsSUFBQSxnQkFBUSxFQUFDLEdBQUcsQ0FBQztvQkFDYixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDO29CQUNwQixDQUFDLENBQUMsU0FBUztnQkFDYixDQUFDLENBQUMsSUFBQSxnQkFBUSxFQUFDLEdBQUcsQ0FBQztvQkFDYixDQUFDLENBQUMsU0FBUztvQkFDWCxDQUFDLENBQUMsR0FBRyxDQUFBO1lBQ1gsTUFBTSxPQUFPLEdBQ1gsU0FBUyxLQUFLLFNBQVM7Z0JBQ3JCLENBQUMsQ0FBQyxTQUFTO2dCQUNYLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUE7WUFDbEQsSUFBSSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7Z0JBQ2hCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFBO1lBQy9ELENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDbEMsSUFBSSxVQUFVLEtBQUssU0FBUyxJQUFJLFVBQVUsS0FBSyxJQUFJLElBQUksVUFBVSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3pFLE1BQU0sT0FBTyxHQUFHLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQTtZQUM3RCxJQUFJLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDZixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtZQUMvRCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksVUFBVSxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUNyRSxDQUFDO1FBRUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUE7SUFDdkMsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDO0FBRUQ7OztHQUdHO0FBQ0ksTUFBTSxtQkFBbUIsR0FBRyxDQUNqQyxVQUFtQyxFQUNuQyxRQUEwQyxFQUM3QixFQUFFLENBQ2YsSUFBSSxHQUFHLENBQ0wsQ0FBQyxVQUFVLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQztLQUM5QixNQUFNLENBQ0wsQ0FBQyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQzlCLFNBQVMsS0FBSyxTQUFTO0lBQ3ZCLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxLQUFLLFNBQVMsQ0FBQyxPQUFPLENBQUM7UUFDdEUsRUFBRSxLQUFLLEtBQUssU0FBUyxDQUFDLE1BQU0sQ0FDakM7S0FDQSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FDOUIsQ0FBQTtBQWJVLFFBQUEsbUJBQW1CLHVCQWE3QjtBQUVILGdFQUFnRTtBQUN6RCxNQUFNLGtCQUFrQixHQUFHLENBQ2hDLFVBQW1DLEVBQ25DLFFBQTBDLEVBQ2hDLEVBQUU7SUFDWixNQUFNLE1BQU0sR0FBRyxJQUFBLDJCQUFtQixFQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUN4RCxPQUFPLFFBQVE7U0FDWixNQUFNLENBQ0wsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNWLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxLQUFLLElBQUk7UUFDcEMsT0FBTyxDQUFDLE1BQU0sS0FBSyxNQUFNO1FBQ3pCLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ3BGO1NBQ0EsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQzdDLENBQUMsQ0FBQTtBQWJZLFFBQUEsa0JBQWtCLHNCQWE5QjtBQUVELHFEQUFxRDtBQUM5QyxNQUFNLHFCQUFxQixHQUFHLENBQUMsR0FBWSxFQUF1QixFQUFFO0lBQ3pFLE1BQU0sTUFBTSxHQUF3QixFQUFFLENBQUE7SUFDdEMsSUFBSSxDQUFDLEdBQUcsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzFELE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQztJQUNELEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDL0MsSUFDRSxPQUFPLEtBQUssS0FBSyxRQUFRO1lBQ3pCLE9BQU8sS0FBSyxLQUFLLFNBQVM7WUFDMUIsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyRCxJQUFBLGdCQUFRLEVBQUMsS0FBSyxDQUFDLEVBQ2YsQ0FBQztZQUNELE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFBLGdCQUFRLEVBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO1FBQzVELENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDLENBQUE7QUFoQlksUUFBQSxxQkFBcUIseUJBZ0JqQyJ9
@@ -102,7 +102,7 @@ const describeSetting = (setting) => {
102
102
  }
103
103
  };
104
104
  const describeSettings = (descriptor, resolved, version) => {
105
- const missing = (0, plugin_settings_1.missingSettingKeys)(resolved);
105
+ const missing = (0, plugin_settings_1.missingSettingKeys)(descriptor, resolved);
106
106
  return {
107
107
  plugin_key: descriptor.plugin_key,
108
108
  version,
@@ -155,6 +155,7 @@ const describe = (descriptor, stored, settings) => {
155
155
  description: group.description ?? null,
156
156
  note: group.note ?? null,
157
157
  requires_feature: group.requires_feature ?? null,
158
+ visible_when: group.visible_when ?? null,
158
159
  })),
159
160
  };
160
161
  };
@@ -277,7 +278,7 @@ class PluginFeaturesModuleService extends (0, utils_1.MedusaService)({
277
278
  values[setting.definition.key] = setting.value;
278
279
  }
279
280
  }
280
- const missing = (0, plugin_settings_1.missingSettingKeys)(resolved);
281
+ const missing = (0, plugin_settings_1.missingSettingKeys)(descriptor, resolved);
281
282
  return { values, configured: missing.length === 0, missing };
282
283
  }
283
284
  /**
@@ -582,4 +583,4 @@ __decorate([
582
583
  __metadata("design:returntype", Promise)
583
584
  ], PluginFeaturesModuleService.prototype, "listRecentPluginActionRuns", null);
584
585
  exports.default = PluginFeaturesModuleService;
585
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3BsdWdpbi1mZWF0dXJlcy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUEscURBT2tDO0FBRWxDLHdFQUt3QztBQUN4QyxvRUFBd0U7QUFVeEUsOERBUWlDO0FBRWpDLG9FQU9vQztBQUNwQyxvREFBMkU7QUFDM0UsbUZBQXdEO0FBQ3hELHlGQUE4RDtBQUM5RCx5RkFBOEQ7QUFnRTlELDBFQUEwRTtBQUMxRSxNQUFNLGtCQUFrQixHQUFHLENBQ3pCLE9BQXNDLEVBQ2xCLEVBQUU7SUFDdEIsTUFBTSxLQUFLLEdBQVksT0FBTyxFQUFFLGNBQWMsQ0FBQTtJQUM5QyxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDMUQsT0FBTyxTQUFTLENBQUE7SUFDbEIsQ0FBQztJQUNELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUIsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsa0VBQWtFLENBQ25FLENBQUE7SUFDSCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDLENBQUE7QUFFRCx5RUFBeUU7QUFDekUsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFBO0FBRS9DLE1BQU0sUUFBUSxHQUFHLENBQ2YsR0FBMkIsRUFDaUIsRUFBRTtJQUM5QyxNQUFNLFFBQVEsR0FBNEIsRUFBRSxDQUFBO0lBQzVDLElBQUksR0FBRyxDQUFDLFFBQVEsSUFBSSxPQUFPLEdBQUcsQ0FBQyxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDckQsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FB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
586
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3BsdWdpbi1mZWF0dXJlcy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUEscURBT2tDO0FBRWxDLHdFQUt3QztBQUN4QyxvRUFBd0U7QUFVeEUsOERBUWlDO0FBRWpDLG9FQU9vQztBQUNwQyxvREFBMkU7QUFDM0UsbUZBQXdEO0FBQ3hELHlGQUE4RDtBQUM5RCx5RkFBOEQ7QUFnRTlELDBFQUEwRTtBQUMxRSxNQUFNLGtCQUFrQixHQUFHLENBQ3pCLE9BQXNDLEVBQ2xCLEVBQUU7SUFDdEIsTUFBTSxLQUFLLEdBQVksT0FBTyxFQUFFLGNBQWMsQ0FBQTtJQUM5QyxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDMUQsT0FBTyxTQUFTLENBQUE7SUFDbEIsQ0FBQztJQUNELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUIsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsa0VBQWtFLENBQ25FLENBQUE7SUFDSCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDLENBQUE7QUFFRCx5RUFBeUU7QUFDekUsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFBO0FBRS9DLE1BQU0sUUFBUSxHQUFHLENBQ2YsR0FBMkIsRUFDaUIsRUFBRTtJQUM5QyxNQUFNLFFBQVEsR0FBNEIsRUFBRSxDQUFBO0lBQzVDLElBQUksR0FBRyxDQUFDLFFBQVEsSUFBSSxPQUFPLEdBQUcsQ0FBQyxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDckQsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FB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
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.smtpSettingsFallback = exports.toDeliverySettings = void 0;
4
+ const sender_1 = require("../../email/domain/sender");
5
+ const text = (values, key) => {
6
+ const value = values[key];
7
+ return typeof value === "string" ? value.trim() : "";
8
+ };
9
+ const notConfigured = (reason) => ({
10
+ kind: "not_configured",
11
+ reason,
12
+ });
13
+ /**
14
+ * Turns the resolved settings into a transport configuration. `allowInsecure`
15
+ * (development and tests) permits SMTP without encryption.
16
+ */
17
+ const toDeliverySettings = ({ configured, missing, values }, allowInsecure) => {
18
+ if (!configured) {
19
+ return notConfigured(`missing ${missing.join(", ")}`);
20
+ }
21
+ if (values.provider === "microsoft365") {
22
+ const mailbox = (0, sender_1.parseEmailSender)(text(values, "microsoft_mailbox"));
23
+ if (!mailbox || mailbox.name) {
24
+ return notConfigured("microsoft_mailbox is no e-mail address");
25
+ }
26
+ return {
27
+ kind: "microsoft365",
28
+ graph: {
29
+ clientId: text(values, "microsoft_client_id"),
30
+ clientSecret: String(values.microsoft_client_secret),
31
+ mailbox: mailbox.address,
32
+ tenantId: text(values, "microsoft_tenant_id"),
33
+ },
34
+ };
35
+ }
36
+ const sender = (0, sender_1.parseEmailSender)(text(values, "smtp_from"));
37
+ if (!sender) {
38
+ return notConfigured("smtp_from is no sender address");
39
+ }
40
+ const security = values.smtp_security;
41
+ if (security === "none" && !allowInsecure) {
42
+ return notConfigured("unencrypted SMTP is only allowed locally");
43
+ }
44
+ const user = text(values, "smtp_user");
45
+ const password = typeof values.smtp_password === "string" ? values.smtp_password : "";
46
+ return {
47
+ kind: "smtp",
48
+ smtp: {
49
+ from: (0, sender_1.formatEmailSender)(sender),
50
+ host: text(values, "smtp_host"),
51
+ password,
52
+ port: Number(values.smtp_port),
53
+ requireTls: security === "starttls",
54
+ secure: security === "tls",
55
+ user,
56
+ },
57
+ };
58
+ };
59
+ exports.toDeliverySettings = toDeliverySettings;
60
+ /**
61
+ * Settings fallback from a deprecated `smtp` provider option (a shop that
62
+ * still resolves its SMTP values in medusa-config): used for keys not stored
63
+ * in the Admin.
64
+ */
65
+ const smtpSettingsFallback = (smtp) => smtp && {
66
+ provider: "smtp",
67
+ smtp_from: smtp.from,
68
+ smtp_host: smtp.host,
69
+ smtp_password: smtp.password,
70
+ smtp_port: smtp.port,
71
+ smtp_security: smtp.secure ? "tls" : smtp.requireTls ? "starttls" : "none",
72
+ smtp_user: smtp.user,
73
+ };
74
+ exports.smtpSettingsFallback = smtpSettingsFallback;
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsaXZlcnktc2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3NtdHAvZGVsaXZlcnktc2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0RBQWdGO0FBb0JoRixNQUFNLElBQUksR0FBRyxDQUFDLE1BQWMsRUFBRSxHQUFvQixFQUFVLEVBQUU7SUFDNUQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUN2RCxDQUFDLENBQUM7QUFFRixNQUFNLGFBQWEsR0FBRyxDQUFDLE1BQWMsRUFBb0IsRUFBRSxDQUFDLENBQUM7SUFDM0QsSUFBSSxFQUFFLGdCQUFnQjtJQUN0QixNQUFNO0NBQ1AsQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ0ksTUFBTSxrQkFBa0IsR0FBRyxDQUNoQyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUEyQyxFQUN4RSxhQUFzQixFQUNKLEVBQUU7SUFDcEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hCLE9BQU8sYUFBYSxDQUFDLFdBQVcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxjQUFjLEVBQUUsQ0FBQztRQUN2QyxNQUFNLE9BQU8sR0FBRyxJQUFBLHlCQUFnQixFQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzdCLE9BQU8sYUFBYSxDQUFDLHdDQUF3QyxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUNELE9BQU87WUFDTCxJQUFJLEVBQUUsY0FBYztZQUNwQixLQUFLLEVBQUU7Z0JBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUscUJBQXFCLENBQUM7Z0JBQzdDLFlBQVksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDO2dCQUNwRCxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87Z0JBQ3hCLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLHFCQUFxQixDQUFDO2FBQzlDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFBLHlCQUFnQixFQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUMzRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWixPQUFPLGFBQWEsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFDRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDO0lBQ3RDLElBQUksUUFBUSxLQUFLLE1BQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzFDLE9BQU8sYUFBYSxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDdkMsTUFBTSxRQUFRLEdBQ1osT0FBTyxNQUFNLENBQUMsYUFBYSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3ZFLE9BQU87UUFDTCxJQUFJLEVBQUUsTUFBTTtRQUNaLElBQUksRUFBRTtZQUNKLElBQUksRUFBRSxJQUFBLDBCQUFpQixFQUFDLE1BQU0sQ0FBQztZQUMvQixJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUM7WUFDL0IsUUFBUTtZQUNSLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUM5QixVQUFVLEVBQUUsUUFBUSxLQUFLLFVBQVU7WUFDbkMsTUFBTSxFQUFFLFFBQVEsS0FBSyxLQUFLO1lBQzFCLElBQUk7U0FDTDtLQUNGLENBQUM7QUFDSixDQUFDLENBQUM7QUEvQ1csUUFBQSxrQkFBa0Isc0JBK0M3QjtBQUVGOzs7O0dBSUc7QUFDSSxNQUFNLG9CQUFvQixHQUFHLENBQ2xDLElBQTJDLEVBQ1UsRUFBRSxDQUN2RCxJQUFJLElBQUk7SUFDTixRQUFRLEVBQUUsTUFBTTtJQUNoQixTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUk7SUFDcEIsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJO0lBQ3BCLGFBQWEsRUFBRSxJQUFJLENBQUMsUUFBUTtJQUM1QixTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUk7SUFDcEIsYUFBYSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNO0lBQzFFLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSTtDQUNyQixDQUFDO0FBWFMsUUFBQSxvQkFBb0Isd0JBVzdCIn0=
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GraphTransport = exports.graphSendMailBody = exports.GraphDeliveryError = exports.GRAPH_MAX_REQUEST_BYTES = exports.GRAPH_TIMEOUTS = void 0;
4
+ const node_crypto_1 = require("node:crypto");
5
+ const types_1 = require("./types");
6
+ exports.GRAPH_TIMEOUTS = {
7
+ send: 30_000,
8
+ token: 10_000,
9
+ };
10
+ /** Graph rejects a `sendMail` request body above 4 MB. */
11
+ exports.GRAPH_MAX_REQUEST_BYTES = 4 * 1024 * 1024;
12
+ /** A token is renewed this long before Microsoft's expiry. */
13
+ const TOKEN_RENEWAL_MARGIN_MS = 5 * 60_000;
14
+ /** A Graph failure reduced to the provider's safe sentinel. */
15
+ class GraphDeliveryError extends Error {
16
+ constructor(sentinel) {
17
+ super(sentinel);
18
+ this.sentinel = sentinel;
19
+ }
20
+ }
21
+ exports.GraphDeliveryError = GraphDeliveryError;
22
+ /** The request never left: the host could not be resolved or connected. */
23
+ const isConnectionFailure = (error) => {
24
+ const code = error?.cause?.code;
25
+ return (code === "ENOTFOUND" ||
26
+ code === "ECONNREFUSED" ||
27
+ code === "EAI_AGAIN" ||
28
+ code === "UND_ERR_CONNECT_TIMEOUT");
29
+ };
30
+ const sendFailure = (status) => {
31
+ if (status === 401 || status === 403) {
32
+ return types_1.SMTP_FAILURE_SENTINELS.authFailed;
33
+ }
34
+ if (status === 408 || status === 429 || status >= 500) {
35
+ return types_1.SMTP_FAILURE_SENTINELS.transientRejection;
36
+ }
37
+ return types_1.SMTP_FAILURE_SENTINELS.permanentRejection;
38
+ };
39
+ const recipient = (address) => ({ emailAddress: { address } });
40
+ /** The `sendMail` body: HTML only (Graph has one body), attachments base64. */
41
+ const graphSendMailBody = (message) => JSON.stringify({
42
+ message: {
43
+ attachments: (message.attachments ?? []).map((attachment) => ({
44
+ "@odata.type": "#microsoft.graph.fileAttachment",
45
+ contentBytes: attachment.content.toString("base64"),
46
+ contentType: attachment.contentType,
47
+ isInline: attachment.contentDisposition === "inline",
48
+ name: attachment.filename,
49
+ ...(attachment.cid ? { contentId: attachment.cid } : {}),
50
+ })),
51
+ body: { content: message.html, contentType: "HTML" },
52
+ subject: message.subject,
53
+ toRecipients: [recipient(message.to)],
54
+ },
55
+ saveToSentItems: true,
56
+ });
57
+ exports.graphSendMailBody = graphSendMailBody;
58
+ /**
59
+ * Sends through Microsoft Graph `POST /users/{mailbox}/sendMail` with an
60
+ * app-only token (client credentials). Tokens are cached per tenant, client
61
+ * and secret, so a changed secret never reuses an old token.
62
+ */
63
+ class GraphTransport {
64
+ constructor(fetch_, now = Date.now) {
65
+ this.fetch_ = fetch_;
66
+ this.now = now;
67
+ this.tokens = new Map();
68
+ }
69
+ async send(configuration, message) {
70
+ const body = (0, exports.graphSendMailBody)(message);
71
+ if (Buffer.byteLength(body) > exports.GRAPH_MAX_REQUEST_BYTES) {
72
+ throw new GraphDeliveryError(types_1.SMTP_FAILURE_SENTINELS.invalidContent);
73
+ }
74
+ const token = await this.token(configuration);
75
+ let response;
76
+ try {
77
+ response = await this.fetch_(`https://graph.microsoft.com/v1.0/users/${encodeURIComponent(configuration.mailbox)}/sendMail`, {
78
+ body,
79
+ headers: {
80
+ authorization: `Bearer ${token}`,
81
+ "content-type": "application/json",
82
+ },
83
+ method: "POST",
84
+ signal: AbortSignal.timeout(exports.GRAPH_TIMEOUTS.send),
85
+ });
86
+ }
87
+ catch (error) {
88
+ throw new GraphDeliveryError(isConnectionFailure(error)
89
+ ? types_1.SMTP_FAILURE_SENTINELS.connectionFailed
90
+ : types_1.SMTP_FAILURE_SENTINELS.outcomeUnknown);
91
+ }
92
+ if (response.status === 401) {
93
+ // A revoked or rotated secret: the next send fetches a new token.
94
+ this.tokens.delete(this.cacheKey(configuration));
95
+ }
96
+ if (!response.ok) {
97
+ throw new GraphDeliveryError(sendFailure(response.status));
98
+ }
99
+ }
100
+ async prepare(configuration) {
101
+ await this.token(configuration);
102
+ }
103
+ cacheKey({ clientId, clientSecret, tenantId }) {
104
+ return (0, node_crypto_1.createHash)("sha256")
105
+ .update(`${tenantId}\u0000${clientId}\u0000${clientSecret}`)
106
+ .digest("hex");
107
+ }
108
+ async token(configuration) {
109
+ const key = this.cacheKey(configuration);
110
+ const cached = this.tokens.get(key);
111
+ if (cached && cached.expiresAt > this.now()) {
112
+ return cached.value;
113
+ }
114
+ let response;
115
+ try {
116
+ response = await this.fetch_(`https://login.microsoftonline.com/${encodeURIComponent(configuration.tenantId)}/oauth2/v2.0/token`, {
117
+ body: new URLSearchParams({
118
+ client_id: configuration.clientId,
119
+ client_secret: configuration.clientSecret,
120
+ grant_type: "client_credentials",
121
+ scope: "https://graph.microsoft.com/.default",
122
+ }).toString(),
123
+ headers: { "content-type": "application/x-www-form-urlencoded" },
124
+ method: "POST",
125
+ signal: AbortSignal.timeout(exports.GRAPH_TIMEOUTS.token),
126
+ });
127
+ }
128
+ catch {
129
+ // Nothing was sent yet, so a failed token request is always safe to retry.
130
+ throw new GraphDeliveryError(types_1.SMTP_FAILURE_SENTINELS.connectionFailed);
131
+ }
132
+ if (!response.ok) {
133
+ throw new GraphDeliveryError(response.status === 429 || response.status >= 500
134
+ ? types_1.SMTP_FAILURE_SENTINELS.transientRejection
135
+ : types_1.SMTP_FAILURE_SENTINELS.authFailed);
136
+ }
137
+ const payload = (await response.json().catch(() => null));
138
+ const expiresIn = Number(payload?.expires_in);
139
+ if (typeof payload?.access_token !== "string" || !Number.isFinite(expiresIn)) {
140
+ throw new GraphDeliveryError(types_1.SMTP_FAILURE_SENTINELS.authFailed);
141
+ }
142
+ this.tokens.set(key, {
143
+ expiresAt: this.now() + expiresIn * 1000 - TOKEN_RENEWAL_MARGIN_MS,
144
+ value: payload.access_token,
145
+ });
146
+ return payload.access_token;
147
+ }
148
+ }
149
+ exports.GraphTransport = GraphTransport;
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGgtdHJhbnNwb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy9zbXRwL2dyYXBoLXRyYW5zcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBeUM7QUFHekMsbUNBSWlCO0FBRUosUUFBQSxjQUFjLEdBQUc7SUFDNUIsSUFBSSxFQUFFLE1BQU07SUFDWixLQUFLLEVBQUUsTUFBTTtDQUNMLENBQUM7QUFFWCwwREFBMEQ7QUFDN0MsUUFBQSx1QkFBdUIsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztBQUV2RCw4REFBOEQ7QUFDOUQsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDO0FBYzNDLCtEQUErRDtBQUMvRCxNQUFhLGtCQUFtQixTQUFRLEtBQUs7SUFDM0MsWUFBcUIsUUFBNkI7UUFDaEQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBREcsYUFBUSxHQUFSLFFBQVEsQ0FBcUI7SUFFbEQsQ0FBQztDQUNGO0FBSkQsZ0RBSUM7QUFJRCwyRUFBMkU7QUFDM0UsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQWMsRUFBVyxFQUFFO0lBQ3RELE1BQU0sSUFBSSxHQUFJLEtBQXdDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQztJQUNwRSxPQUFPLENBQ0wsSUFBSSxLQUFLLFdBQVc7UUFDcEIsSUFBSSxLQUFLLGNBQWM7UUFDdkIsSUFBSSxLQUFLLFdBQVc7UUFDcEIsSUFBSSxLQUFLLHlCQUF5QixDQUNuQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxXQUFXLEdBQUcsQ0FBQyxNQUFjLEVBQXVCLEVBQUU7SUFDMUQsSUFBSSxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNyQyxPQUFPLDhCQUFzQixDQUFDLFVBQVUsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsSUFBSSxNQUFNLEtBQUss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