@hartl-services/medusa-base 0.3.0 → 0.4.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 (94) hide show
  1. package/.medusa/server/src/admin/index.js +741 -36
  2. package/.medusa/server/src/admin/index.mjs +743 -38
  3. package/.medusa/server/src/api/admin/plugin-features/[plugin_key]/actions/[action_key]/route.js +31 -0
  4. package/.medusa/server/src/api/admin/plugin-features/[plugin_key]/actions/[action_key]/runs/route.js +16 -0
  5. package/.medusa/server/src/api/admin/plugin-features/[plugin_key]/route.js +14 -0
  6. package/.medusa/server/src/api/admin/plugin-features/[plugin_key]/settings/route.js +22 -0
  7. package/.medusa/server/src/api/admin/plugin-features/route.js +6 -4
  8. package/.medusa/server/src/api/middlewares.js +22 -8
  9. package/.medusa/server/src/api/plugin-actions.js +221 -0
  10. package/.medusa/server/src/api/plugin-features-http.js +67 -8
  11. package/.medusa/server/src/modules/plugin-features/domain/plugin-action-runs.js +92 -0
  12. package/.medusa/server/src/modules/plugin-features/domain/plugin-settings.js +213 -0
  13. package/.medusa/server/src/modules/plugin-features/domain/secret-box.js +56 -0
  14. package/.medusa/server/src/modules/plugin-features/migrations/Migration20260928205031.js +16 -0
  15. package/.medusa/server/src/modules/plugin-features/migrations/Migration20260928215428.js +17 -0
  16. package/.medusa/server/src/modules/plugin-features/models/plugin-action-run.js +43 -0
  17. package/.medusa/server/src/modules/plugin-features/models/plugin-setting-state.js +32 -0
  18. package/.medusa/server/src/modules/plugin-features/service.js +419 -17
  19. package/.medusa/server/src/public/action-progress.js +67 -0
  20. package/.medusa/server/src/public/descriptor.js +199 -2
  21. package/.medusa/server/src/public/effective-features.js +9 -5
  22. package/.medusa/server/src/public/enforcement.js +18 -8
  23. package/.medusa/server/src/public/index.js +10 -2
  24. package/.medusa/server/src/public/module-access.js +14 -0
  25. package/.medusa/server/src/public/settings.js +17 -0
  26. package/.medusa/server/src/public/shop-master-data.js +95 -0
  27. package/.medusa/server/src/utils/discover-complete-cart-participants.js +9 -2
  28. package/.medusa/server/src/utils/discover-plugin-features.js +47 -9
  29. package/.medusa/server/src/workflows/hooks/complete-cart-participants.js +28 -16
  30. package/README.md +393 -12
  31. package/dist/admin-components/features/plugin-features/components/PluginActionsSection.d.ts +6 -0
  32. package/dist/admin-components/features/plugin-features/components/PluginActionsSection.js +66 -0
  33. package/dist/admin-components/features/plugin-features/components/PluginDetailPage.d.ts +2 -0
  34. package/dist/admin-components/features/plugin-features/components/PluginDetailPage.js +9 -0
  35. package/dist/admin-components/features/plugin-features/components/PluginFeatureGate.d.ts +22 -0
  36. package/dist/admin-components/features/plugin-features/components/PluginFeatureGate.js +18 -0
  37. package/dist/admin-components/features/plugin-features/components/PluginFeatureSections.d.ts +11 -0
  38. package/dist/admin-components/features/plugin-features/components/PluginFeatureSections.js +19 -0
  39. package/dist/admin-components/features/plugin-features/components/PluginFeaturesCard.d.ts +12 -0
  40. package/dist/admin-components/features/plugin-features/components/PluginFeaturesCard.js +34 -0
  41. package/dist/admin-components/features/plugin-features/components/PluginFeaturesSettingsPage.d.ts +5 -0
  42. package/dist/admin-components/features/plugin-features/components/PluginFeaturesSettingsPage.js +16 -0
  43. package/dist/admin-components/features/plugin-features/components/PluginHubCard.d.ts +7 -0
  44. package/dist/admin-components/features/plugin-features/components/PluginHubCard.js +21 -0
  45. package/dist/admin-components/features/plugin-features/components/PluginPageShell.d.ts +13 -0
  46. package/dist/admin-components/features/plugin-features/components/PluginPageShell.js +20 -0
  47. package/dist/admin-components/features/plugin-features/components/PluginSettingsForm.d.ts +7 -0
  48. package/dist/admin-components/features/plugin-features/components/PluginSettingsForm.js +39 -0
  49. package/dist/admin-components/features/plugin-features/components/PluginStatusChips.d.ts +5 -0
  50. package/dist/admin-components/features/plugin-features/components/PluginStatusChips.js +8 -0
  51. package/dist/admin-components/features/plugin-features/hooks/usePluginFeatureEnabled.d.ts +114 -0
  52. package/dist/admin-components/features/plugin-features/hooks/usePluginFeatureEnabled.js +40 -0
  53. package/dist/admin-components/features/plugin-features/hooks/usePluginFeatures.d.ts +392 -0
  54. package/dist/admin-components/features/plugin-features/hooks/usePluginFeatures.js +128 -0
  55. package/dist/admin-components/features/plugin-features/hooks/usePluginSettingsForm.d.ts +93 -0
  56. package/dist/admin-components/features/plugin-features/hooks/usePluginSettingsForm.js +44 -0
  57. package/dist/admin-components/features/plugin-features/lib/action-runs.d.ts +19 -0
  58. package/dist/admin-components/features/plugin-features/lib/action-runs.js +74 -0
  59. package/dist/admin-components/features/plugin-features/lib/plugin-features-admin-client.d.ts +363 -0
  60. package/dist/admin-components/features/plugin-features/lib/plugin-features-admin-client.js +9 -0
  61. package/dist/admin-components/features/plugin-features/lib/plugin-paths.d.ts +4 -0
  62. package/dist/admin-components/features/plugin-features/lib/plugin-paths.js +4 -0
  63. package/dist/admin-components/features/plugin-features/lib/settings-draft.d.ts +28 -0
  64. package/dist/admin-components/features/plugin-features/lib/settings-draft.js +86 -0
  65. package/dist/admin-components/features/plugin-features/queries/pluginFeatureKeys.d.ts +7 -0
  66. package/dist/admin-components/features/plugin-features/queries/pluginFeatureKeys.js +7 -0
  67. package/dist/admin-components/i18n/texts.d.ts +90 -0
  68. package/dist/admin-components/i18n/texts.js +90 -0
  69. package/dist/admin-components/index.d.ts +14 -0
  70. package/dist/admin-components/index.js +14 -0
  71. package/dist/admin-components/lib/errors.d.ts +6 -0
  72. package/dist/admin-components/lib/errors.js +27 -0
  73. package/dist/admin-components/lib/sdk.d.ts +2 -0
  74. package/dist/admin-components/lib/sdk.js +13 -0
  75. package/dist/public/action-progress.d.ts +25 -0
  76. package/dist/public/action-progress.js +66 -0
  77. package/dist/public/descriptor.d.ts +3 -2
  78. package/dist/public/descriptor.js +198 -1
  79. package/dist/public/effective-features.d.ts +2 -1
  80. package/dist/public/effective-features.js +8 -4
  81. package/dist/public/enforcement.d.ts +7 -0
  82. package/dist/public/enforcement.js +17 -7
  83. package/dist/public/index.d.ts +5 -2
  84. package/dist/public/index.js +9 -1
  85. package/dist/public/module-access.d.ts +3 -0
  86. package/dist/public/module-access.js +13 -0
  87. package/dist/public/settings.d.ts +11 -0
  88. package/dist/public/settings.js +16 -0
  89. package/dist/public/shop-master-data.d.ts +25 -0
  90. package/dist/public/shop-master-data.js +94 -0
  91. package/dist/public/types.d.ts +97 -1
  92. package/dist/utils/discover-plugin-features.d.ts +28 -0
  93. package/dist/utils/discover-plugin-features.js +96 -0
  94. package/package.json +7 -3
@@ -2,7 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.listRegisteredModules = listRegisteredModules;
4
4
  exports.discoverPluginFeatureDescriptors = discoverPluginFeatureDescriptors;
5
+ exports.discoverPluginFeatureProviders = discoverPluginFeatureProviders;
5
6
  exports.findPluginFeatureDescriptor = findPluginFeatureDescriptor;
7
+ exports.findPluginFeatureProvider = findPluginFeatureProvider;
8
+ exports.readPluginSettingsFallback = readPluginSettingsFallback;
6
9
  const utils_1 = require("@medusajs/framework/utils");
7
10
  const descriptor_1 = require("../public/descriptor");
8
11
  // Keyed by the app's config object: stable for the process lifetime, unlike
@@ -21,11 +24,7 @@ function listRegisteredModules(container) {
21
24
  const readDescriptor = (service) => service !== null && typeof service === "object" && "pluginFeatures" in service
22
25
  ? service.pluginFeatures
23
26
  : undefined;
24
- /**
25
- * Finds every registered module whose service declares `pluginFeatures`.
26
- * Fails closed: an invalid or duplicate declaration is `UNEXPECTED_STATE`.
27
- */
28
- function discoverPluginFeatureDescriptors(container) {
27
+ const discover = (container) => {
29
28
  const configModule = container.resolve(utils_1.ContainerRegistrationKeys.CONFIG_MODULE);
30
29
  const memo = discovered.get(configModule);
31
30
  if (memo) {
@@ -47,13 +46,52 @@ function discoverPluginFeatureDescriptors(container) {
47
46
  if (byPluginKey.has(descriptor.plugin_key)) {
48
47
  throw new utils_1.MedusaError(utils_1.MedusaError.Types.UNEXPECTED_STATE, `Plugin-Key "${descriptor.plugin_key}" wird von mehreren Modulen deklariert.`);
49
48
  }
50
- byPluginKey.set(descriptor.plugin_key, descriptor);
49
+ byPluginKey.set(descriptor.plugin_key, {
50
+ module_key: moduleKey,
51
+ descriptor,
52
+ service,
53
+ });
51
54
  }
52
- const result = [...byPluginKey.values()].sort((left, right) => left.plugin_key.localeCompare(right.plugin_key));
55
+ const providers = [...byPluginKey.values()].sort((left, right) => left.descriptor.plugin_key.localeCompare(right.descriptor.plugin_key));
56
+ const result = {
57
+ providers,
58
+ descriptors: providers.map((provider) => provider.descriptor),
59
+ };
53
60
  discovered.set(configModule, result);
54
61
  return result;
62
+ };
63
+ /**
64
+ * Finds every registered module whose service declares `pluginFeatures`.
65
+ * Fails closed: an invalid or duplicate declaration is `UNEXPECTED_STATE`.
66
+ */
67
+ function discoverPluginFeatureDescriptors(container) {
68
+ return discover(container).descriptors;
69
+ }
70
+ /** Like `discoverPluginFeatureDescriptors`, with the declaring service. */
71
+ function discoverPluginFeatureProviders(container) {
72
+ return discover(container).providers;
55
73
  }
56
74
  function findPluginFeatureDescriptor(container, pluginKey) {
57
- return discoverPluginFeatureDescriptors(container).find((descriptor) => descriptor.plugin_key === pluginKey);
75
+ return findPluginFeatureProvider(container, pluginKey)?.descriptor;
76
+ }
77
+ function findPluginFeatureProvider(container, pluginKey) {
78
+ return discover(container).providers.find((provider) => provider.descriptor.plugin_key === pluginKey);
79
+ }
80
+ /**
81
+ * The medusa-config fallback a provider exposes as `pluginSettingsFallback`.
82
+ * Read on every call, since a service may compute it lazily.
83
+ */
84
+ function readPluginSettingsFallback(provider) {
85
+ const service = provider.service;
86
+ if (service === null ||
87
+ typeof service !== "object" ||
88
+ !("pluginSettingsFallback" in service)) {
89
+ return undefined;
90
+ }
91
+ const fallback = service
92
+ .pluginSettingsFallback;
93
+ return fallback !== null && typeof fallback === "object"
94
+ ? fallback
95
+ : undefined;
58
96
  }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzY292ZXItcGx1Z2luLWZlYXR1cmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL2Rpc2NvdmVyLXBsdWdpbi1mZWF0dXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQTRCQSxzREFPQztBQVdELDRFQStDQztBQUVELGtFQU9DO0FBckdELHFEQUFrRjtBQUVsRixxREFBc0U7QUFTdEUsNEVBQTRFO0FBQzVFLGlEQUFpRDtBQUNqRCxNQUFNLFVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBcUMsQ0FBQTtBQUVuRSxNQUFNLGlCQUFpQixHQUFHLENBQ3hCLFNBQTBCLEVBQzFCLFlBQThCLEVBQ1YsRUFBRSxDQUN0QixNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO0tBQ3BDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUMzRCxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbkIsR0FBRyxFQUFFLFNBQVM7SUFDZCxPQUFPLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBVSxTQUFTLENBQUM7Q0FDL0MsQ0FBQyxDQUFDLENBQUE7QUFFUCxnRkFBZ0Y7QUFDaEYsU0FBZ0IscUJBQXFCLENBQ25DLFNBQTBCO0lBRTFCLE9BQU8saUJBQWlCLENBQ3RCLFNBQVMsRUFDVCxTQUFTLENBQUMsT0FBTyxDQUFtQixpQ0FBeUIsQ0FBQyxhQUFhLENBQUMsQ0FDN0UsQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLGNBQWMsR0FBRyxDQUFDLE9BQWdCLEVBQVcsRUFBRSxDQUNuRCxPQUFPLEtBQUssSUFBSSxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxnQkFBZ0IsSUFBSSxPQUFPO0lBQzVFLENBQUMsQ0FBRSxPQUF1QyxDQUFDLGNBQWM7SUFDekQsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtBQUVmOzs7R0FHRztBQUNILFNBQWdCLGdDQUFnQyxDQUM5QyxTQUEwQjtJQUUxQixNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsT0FBTyxDQUNwQyxpQ0FBeUIsQ0FBQyxhQUFhLENBQ3hDLENBQUE7SUFDRCxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBQ3pDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDVCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBbUMsQ0FBQTtJQUM5RCxLQUFLLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLGlCQUFpQixDQUN6RCxTQUFTLEVBQ1QsWUFBWSxDQUNiLEVBQUUsQ0FBQztRQUNGLE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUN6QyxJQUFJLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM1QixTQUFRO1FBQ1YsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLFNBQW9DLENBQUE7UUFDdkQsSUFBSSxDQUFDO1lBQ0gsSUFBQSw0Q0FBK0IsRUFBQyxVQUFVLENBQUMsQ0FBQTtRQUM3QyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFDbEMsVUFBVSxTQUFTLDZDQUNqQixLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUN2RCxFQUFFLENBQ0gsQ0FBQTtRQUNILENBQUM7UUFFRCxJQUFJLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDM0MsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUNsQyxlQUFlLFVBQVUsQ0FBQyxVQUFVLHlDQUF5QyxDQUM5RSxDQUFBO1FBQ0gsQ0FBQztRQUNELFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQTtJQUNwRCxDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUM1RCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQ2hELENBQUE7SUFDRCxVQUFVLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUNwQyxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUM7QUFFRCxTQUFnQiwyQkFBMkIsQ0FDekMsU0FBMEIsRUFDMUIsU0FBaUI7SUFFakIsT0FBTyxnQ0FBZ0MsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQ3JELENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxLQUFLLFNBQVMsQ0FDcEQsQ0FBQTtBQUNILENBQUMifQ==
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzY292ZXItcGx1Z2luLWZlYXR1cmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL2Rpc2NvdmVyLXBsdWdpbi1mZWF0dXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQTJDQSxzREFPQztBQWtFRCw0RUFJQztBQUdELHdFQUlDO0FBRUQsa0VBS0M7QUFFRCw4REFPQztBQU1ELGdFQWdCQztBQXBLRCxxREFBa0Y7QUFFbEYscURBQXNFO0FBd0J0RSw0RUFBNEU7QUFDNUUsaURBQWlEO0FBQ2pELE1BQU0sVUFBVSxHQUFHLElBQUksT0FBTyxFQUFzQixDQUFBO0FBRXBELE1BQU0saUJBQWlCLEdBQUcsQ0FDeEIsU0FBMEIsRUFDMUIsWUFBOEIsRUFDVixFQUFFLENBQ3RCLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7S0FDcEMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBQzNELEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNuQixHQUFHLEVBQUUsU0FBUztJQUNkLE9BQU8sRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFVLFNBQVMsQ0FBQztDQUMvQyxDQUFDLENBQUMsQ0FBQTtBQUVQLGdGQUFnRjtBQUNoRixTQUFnQixxQkFBcUIsQ0FDbkMsU0FBMEI7SUFFMUIsT0FBTyxpQkFBaUIsQ0FDdEIsU0FBUyxFQUNULFNBQVMsQ0FBQyxPQUFPLENBQW1CLGlDQUF5QixDQUFDLGFBQWEsQ0FBQyxDQUM3RSxDQUFBO0FBQ0gsQ0FBQztBQUVELE1BQU0sY0FBYyxHQUFHLENBQUMsT0FBZ0IsRUFBVyxFQUFFLENBQ25ELE9BQU8sS0FBSyxJQUFJLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLGdCQUFnQixJQUFJLE9BQU87SUFDNUUsQ0FB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
@@ -25,7 +25,7 @@ const logError = (container, message) => {
25
25
  * cannot resolve its module. Built with the container like `runAsStep` does.
26
26
  * Throws the participant's own compensation error, not "Unknown error".
27
27
  */
28
- const cancelParticipant = async (workflowId, transactionId, container, sharedContext) => {
28
+ const cancelParticipant = async (workflowId, transactionId, container, context) => {
29
29
  const workflow = workflows_sdk_1.MedusaWorkflow.getWorkflow(workflowId);
30
30
  if (!workflow) {
31
31
  throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Workflow "${workflowId}" is not registered.`);
@@ -33,7 +33,7 @@ const cancelParticipant = async (workflowId, transactionId, container, sharedCon
33
33
  const { transaction } = await workflow(container).cancel({
34
34
  transactionId,
35
35
  container,
36
- context: { ...sharedContext },
36
+ context: { ...context },
37
37
  throwOnError: false,
38
38
  });
39
39
  if (transaction.getState() !== utils_1.TransactionState.REVERTED) {
@@ -42,6 +42,24 @@ const cancelParticipant = async (workflowId, transactionId, container, sharedCon
42
42
  new Error(`Workflow "${workflowId}" ended in state "${transaction.getState()}" instead of reverted.`));
43
43
  }
44
44
  };
45
+ /**
46
+ * The context a participant workflow runs or is cancelled with. Built
47
+ * explicitly like Medusa's `runAsStep` (workflows-sdk 2.19.0
48
+ * create-workflow.js): the parent's shared transaction context plus the
49
+ * event group, with release events suppressed. Never forwards the step
50
+ * context itself: a `parentStepIdempotencyKey` (set when complete-cart runs
51
+ * nested through `runAsStep`) would make the engine report the participant's
52
+ * finish to the parent step via setStepSuccess/setStepFailure, which throws
53
+ * after the participant already committed.
54
+ */
55
+ const participantContext = (context) => {
56
+ const { parentStepIdempotencyKey: _parentStepIdempotencyKey, cancelingFromParentStep: _cancelingFromParentStep, isCancelling: _isCancelling, idempotencyKey: _idempotencyKey, transactionId: _transactionId, runId: _runId, ...shared } = context.context ?? {};
57
+ return {
58
+ ...shared,
59
+ eventGroupId: context.eventGroupId,
60
+ preventReleaseEvents: true,
61
+ };
62
+ };
45
63
  const describeError = (error) => error instanceof Error
46
64
  ? error.message
47
65
  : typeof error?.message === "string"
@@ -53,7 +71,7 @@ const describeError = (error) => error instanceof Error
53
71
  * rethrown unchanged, keeping its MedusaError type for the HTTP status.
54
72
  */
55
73
  const runCompleteCartValidateParticipants = async (input, context, modules) => {
56
- const { container, ...sharedContext } = context;
74
+ const { container } = context;
57
75
  const participants = participantsFor("validate", container, modules);
58
76
  if (!participants.length) {
59
77
  return new workflows_sdk_1.StepResponse(undefined);
@@ -64,10 +82,7 @@ const runCompleteCartValidateParticipants = async (input, context, modules) => {
64
82
  // to run(); the engine uses the shared app container.
65
83
  await workflowEngine.run(participant.workflow_id, {
66
84
  input,
67
- context: {
68
- ...sharedContext,
69
- preventReleaseEvents: true,
70
- },
85
+ context: participantContext(context),
71
86
  throwOnError: true,
72
87
  });
73
88
  }
@@ -81,7 +96,7 @@ exports.runCompleteCartValidateParticipants = runCompleteCartValidateParticipant
81
96
  * rethrown either way.
82
97
  */
83
98
  const runCompleteCartOrderCreatedParticipants = async (input, context, modules) => {
84
- const { container, ...sharedContext } = context;
99
+ const { container } = context;
85
100
  const transactionId = context.transactionId;
86
101
  if (!transactionId) {
87
102
  throw new utils_1.MedusaError(utils_1.MedusaError.Types.UNEXPECTED_STATE, "Complete-cart orderCreated hook ran without a transaction id.");
@@ -101,17 +116,14 @@ const runCompleteCartOrderCreatedParticipants = async (input, context, modules)
101
116
  await workflowEngine.run(participant.workflow_id, {
102
117
  input,
103
118
  transactionId,
104
- context: {
105
- ...sharedContext,
106
- preventReleaseEvents: true,
107
- },
119
+ context: participantContext(context),
108
120
  throwOnError: true,
109
121
  });
110
122
  }
111
123
  catch (error) {
112
124
  for (const done of [...completed].reverse()) {
113
125
  try {
114
- await cancelParticipant(done.workflow_id, transactionId, container, sharedContext);
126
+ await cancelParticipant(done.workflow_id, transactionId, container, participantContext(context));
115
127
  }
116
128
  catch (rollbackError) {
117
129
  logError(container, `Complete-cart orderCreated rollback failed for module "${done.module_key}", workflow "${done.workflow_id}" (cart ${input.cart_id}, order ${input.order_id}, transaction ${transactionId}) after "${participant.workflow_id}" failed: ${describeError(rollbackError)}`);
@@ -136,7 +148,7 @@ const compensateCompleteCartOrderCreatedParticipants = async (compensation, cont
136
148
  if (!compensation) {
137
149
  return;
138
150
  }
139
- const { container, ...sharedContext } = context;
151
+ const { container } = context;
140
152
  const workflowIds = [...compensation.workflow_ids].reverse();
141
153
  if (!workflowIds.length) {
142
154
  return;
@@ -145,7 +157,7 @@ const compensateCompleteCartOrderCreatedParticipants = async (compensation, cont
145
157
  let firstFailure;
146
158
  for (const workflowId of workflowIds) {
147
159
  try {
148
- await cancelParticipant(workflowId, compensation.transaction_id, container, sharedContext);
160
+ await cancelParticipant(workflowId, compensation.transaction_id, container, participantContext(context));
149
161
  }
150
162
  catch (error) {
151
163
  logError(container, `Complete-cart orderCreated compensation failed for workflow "${workflowId}" (transaction ${compensation.transaction_id}): ${describeError(error)}`);
@@ -160,4 +172,4 @@ const compensateCompleteCartOrderCreatedParticipants = async (compensation, cont
160
172
  }
161
173
  };
162
174
  exports.compensateCompleteCartOrderCreatedParticipants = compensateCompleteCartOrderCreatedParticipants;
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGxldGUtY2FydC1wYXJ0aWNpcGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2hvb2tzL2NvbXBsZXRlLWNhcnQtcGFydGljaXBhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLHFEQUtrQztBQUNsQyxxRUFBZ0Y7QUFRaEYseUdBSXdEO0FBbUJ4RCxNQUFNLGVBQWUsR0FBRyxDQUN0QixJQUEwQixFQUMxQixTQUEwQixFQUMxQixPQUFnRCxFQUNoQixFQUFFLENBQ2xDLE9BQU87SUFDTCxDQUFDLENBQUMsSUFBQSxvRUFBOEIsRUFBQyxPQUFPLEVBQUUsSUFBSSxDQUFDO0lBQy9DLENBQUMsQ0FBQyxJQUFBLGtFQUE0QixFQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQTtBQUVuRCxNQUFNLFFBQVEsR0FBRyxDQUFDLFNBQTBCLEVBQUUsT0FBZSxFQUFRLEVBQUU7SUFDckUsSUFBSSxDQUFDO1FBQ0gsU0FBUzthQUNOLE9BQU8sQ0FDTixpQ0FBeUIsQ0FBQyxNQUFNLENBQ2pDO2FBQ0EsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ25CLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCwwREFBMEQ7SUFDNUQsQ0FBQztBQUNILENBQUMsQ0FBQTtBQWdCRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLEVBQzdCLFVBQWtCLEVBQ2xCLGFBQXFCLEVBQ3JCLFNBQTBCLEVBQzFCLGFBQXNDLEVBQ3ZCLEVBQUU7SUFDakIsTUFBTSxRQUFRLEdBQ1osOEJBR0QsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDekIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2QsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFDM0IsYUFBYSxVQUFVLHNCQUFzQixDQUM5QyxDQUFBO0lBQ0gsQ0FBQztJQUVELE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFNLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDdkQsYUFBYTtRQUNiLFNBQVM7UUFDVCxPQUFPLEVBQUUsRUFBRSxHQUFHLGFBQWEsRUFBRTtRQUM3QixZQUFZLEVBQUUsS0FBSztLQUNwQixDQUFDLENBQUE7SUFDRixJQUFJLFdBQVcsQ0FBQyxRQUFRLEVBQUUsS0FBSyx3QkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6RCxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBQ3ZDLE1BQU0sQ0FDSixLQUFLLEVBQUUsS0FBSztZQUNaLElBQUksS0FBSyxDQUNQLGFBQWEsVUFBVSxxQkFBcUIsV0FBVyxDQUFDLFFBQVEsRUFBRSx3QkFBd0IsQ0FDM0YsQ0FDRixDQUFBO0lBQ0gsQ0FBQztBQUNILENBQUMsQ0FBQTtBQUVELE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBYyxFQUFVLEVBQUUsQ0FDL0MsS0FBSyxZQUFZLEtBQUs7SUFDcEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPO0lBQ2YsQ0FBQyxDQUFDLE9BQVEsS0FBK0IsRUFBRSxPQUFPLEtBQUssUUFBUTtRQUM3RCxDQUFDLENBQUUsS0FBNkIsQ0FBQyxPQUFPO1FBQ3hDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7QUFFckI7Ozs7R0FJRztBQUNJLE1BQU0sbUNBQW1DLEdBQUcsS0FBSyxFQUN0RCxLQUFnQyxFQUNoQyxPQUFnQyxFQUNoQyxPQUFxQyxFQUNILEVBQUU7SUFDcEMsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLGFBQWEsRUFBRSxHQUFHLE9BQU8sQ0FBQTtJQUMvQyxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUNwRSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSw0QkFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3BDLENBQUM7SUFFRCxNQUFNLGNBQWMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUN0QyxlQUFPLENBQUMsZUFBZSxDQUN4QixDQUFBO0lBQ0QsS0FBSyxNQUFNLFdBQVcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN2Qyx1RUFBdUU7UUFDdkUsc0RBQXNEO1FBQ3RELE1BQU0sY0FBYyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFO1lBQ2hELEtBQUs7WUFDTCxPQUFPLEVBQUU7Z0JBQ1AsR0FBRyxhQUFhO2dCQUNoQixvQkFBb0IsRUFBRSxJQUFJO2FBQzNCO1lBQ0QsWUFBWSxFQUFFLElBQUk7U0FDbkIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUNELE9BQU8sSUFBSSw0QkFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0FBQ3BDLENBQUMsQ0FBQTtBQTNCWSxRQUFBLG1DQUFtQyx1Q0EyQi9DO0FBRUQ7Ozs7O0dBS0c7QUFDSSxNQUFNLHVDQUF1QyxHQUFHLEtBQUssRUFDMUQsS0FBb0MsRUFDcEMsT0FBZ0MsRUFDaEMsT0FBcUMsRUFHckMsRUFBRTtJQUNGLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxhQUFhLEVBQUUsR0FBRyxPQUFPLENBQUE7SUFDL0MsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQTtJQUMzQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDbkIsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUNsQywrREFBK0QsQ0FDaEUsQ0FBQTtJQUNILENBQUM7SUFDRCxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsY0FBYyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUN4RSxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDdEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN6QixPQUFPLElBQUksNEJBQVksQ0FBQyxTQUFTLEVBQUU7WUFDakMsY0FBYyxFQUFFLGFBQWE7WUFDN0IsWUFBWSxFQUFFLFdBQVc7U0FDMUIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELE1BQU0sY0FBYyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQ3RDLGVBQU8sQ0FBQyxlQUFlLENBQ3hCLENBQUE7SUFDRCxNQUFNLFNBQVMsR0FBbUMsRUFBRSxDQUFBO0lBQ3BELEtBQUssTUFBTSxXQUFXLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxjQUFjLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUU7Z0JBQ2hELEtBQUs7Z0JBQ0wsYUFBYTtnQkFDYixPQUFPLEVBQUU7b0JBQ1AsR0FBRyxhQUFhO29CQUNoQixvQkFBb0IsRUFBRSxJQUFJO2lCQUMzQjtnQkFDRCxZQUFZLEVBQUUsSUFBSTthQUNuQixDQUFDLENBQUE7UUFDSixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7Z0JBQzVDLElBQUksQ0FBQztvQkFDSCxNQUFNLGlCQUFpQixDQUNyQixJQUFJLENBQUMsV0FBVyxFQUNoQixhQUFhLEVBQ2IsU0FBUyxFQUNULGFBQWEsQ0FDZCxDQUFBO2dCQUNILENBQUM7Z0JBQUMsT0FBTyxhQUFhLEVBQUUsQ0FBQztvQkFDdkIsUUFBUSxDQUNOLFNBQVMsRUFDVCwwREFBMEQsSUFBSSxDQUFDLFVBQVUsZ0JBQWdCLElBQUksQ0FBQyxXQUFXLFdBQVcsS0FBSyxDQUFDLE9BQU8sV0FBVyxLQUFLLENBQUMsUUFBUSxpQkFBaUIsYUFBYSxZQUFZLFdBQVcsQ0FBQyxXQUFXLGFBQWEsYUFBYSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQ3ZRLENBQUE7Z0JBQ0gsQ0FBQztZQUNILENBQUM7WUFDRCxNQUFNLEtBQUssQ0FBQTtRQUNiLENBQUM7UUFDRCxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQzdCLENBQUM7SUFFRCxPQUFPLElBQUksNEJBQVksQ0FBQyxTQUFTLEVBQUU7UUFDakMsY0FBYyxFQUFFLGFBQWE7UUFDN0IsWUFBWSxFQUFFLFdBQVc7S0FDMUIsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBaEVZLFFBQUEsdUNBQXVDLDJDQWdFbkQ7QUFFRDs7OztHQUlHO0FBQ0ksTUFBTSw4Q0FBOEMsR0FBRyxLQUFLLEVBQ2pFLFlBQThELEVBQzlELE9BQWdDLEVBQ2pCLEVBQUU7SUFDakIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2xCLE9BQU07SUFDUixDQUFDO0lBRUQsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLGFBQWEsRUFBRSxHQUFHLE9BQU8sQ0FBQTtJQUMvQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQzVELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDeEIsT0FBTTtJQUNSLENBQUM7SUFDRCxJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUE7SUFDbEIsSUFBSSxZQUFxQixDQUFBO0lBQ3pCLEtBQUssTUFBTSxVQUFVLElBQUksV0FBVyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxpQkFBaUIsQ0FDckIsVUFBVSxFQUNWLFlBQVksQ0FBQyxjQUFjLEVBQzNCLFNBQVMsRUFDVCxhQUFhLENBQ2QsQ0FBQTtRQUNILENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsUUFBUSxDQUNOLFNBQVMsRUFDVCxnRUFBZ0UsVUFBVSxrQkFBa0IsWUFBWSxDQUFDLGNBQWMsTUFBTSxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FDcEosQ0FBQTtZQUNELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDWixNQUFNLEdBQUcsSUFBSSxDQUFBO2dCQUNiLFlBQVksR0FBRyxLQUFLLENBQUE7WUFDdEIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQ0QsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNYLE1BQU0sWUFBWSxDQUFBO0lBQ3BCLENBQUM7QUFDSCxDQUFDLENBQUE7QUFyQ1ksUUFBQSw4Q0FBOEMsa0RBcUMxRCJ9
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGxldGUtY2FydC1wYXJ0aWNpcGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2hvb2tzL2NvbXBsZXRlLWNhcnQtcGFydGljaXBhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLHFEQUtrQztBQUNsQyxxRUFBZ0Y7QUFRaEYseUdBSXdEO0FBbUJ4RCxNQUFNLGVBQWUsR0FBRyxDQUN0QixJQUEwQixFQUMxQixTQUEwQixFQUMxQixPQUFnRCxFQUNoQixFQUFFLENBQ2xDLE9BQU87SUFDTCxDQUFDLENBQUMsSUFBQSxvRUFBOEIsRUFBQyxPQUFPLEVBQUUsSUFBSSxDQUFDO0lBQy9DLENBQUMsQ0FBQyxJQUFBLGtFQUE0QixFQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQTtBQUVuRCxNQUFNLFFBQVEsR0FBRyxDQUFDLFNBQTBCLEVBQUUsT0FBZSxFQUFRLEVBQUU7SUFDckUsSUFBSSxDQUFDO1FBQ0gsU0FBUzthQUNOLE9BQU8sQ0FDTixpQ0FBeUIsQ0FBQyxNQUFNLENBQ2pDO2FBQ0EsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ25CLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCwwREFBMEQ7SUFDNUQsQ0FBQztBQUNILENBQUMsQ0FBQTtBQWdCRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLEVBQzdCLFVBQWtCLEVBQ2xCLGFBQXFCLEVBQ3JCLFNBQTBCLEVBQzFCLE9BQWdDLEVBQ2pCLEVBQUU7SUFDakIsTUFBTSxRQUFRLEdBQ1osOEJBR0QsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDekIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2QsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFDM0IsYUFBYSxVQUFVLHNCQUFzQixDQUM5QyxDQUFBO0lBQ0gsQ0FBQztJ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