@medusajs/medusa 2.12.2-preview-20251203150144 → 2.12.2-snapshot-20251203150309

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 (64) hide show
  1. package/dist/commands/develop.d.ts.map +1 -1
  2. package/dist/commands/develop.js +82 -20
  3. package/dist/commands/develop.js.map +1 -1
  4. package/dist/commands/start.d.ts +5 -1
  5. package/dist/commands/start.d.ts.map +1 -1
  6. package/dist/commands/start.js +34 -3
  7. package/dist/commands/start.js.map +1 -1
  8. package/dist/commands/utils/dev-server/errors.d.ts +5 -0
  9. package/dist/commands/utils/dev-server/errors.d.ts.map +1 -0
  10. package/dist/commands/utils/dev-server/errors.js +14 -0
  11. package/dist/commands/utils/dev-server/errors.js.map +1 -0
  12. package/dist/commands/utils/dev-server/index.d.ts +7 -0
  13. package/dist/commands/utils/dev-server/index.d.ts.map +1 -0
  14. package/dist/commands/utils/dev-server/index.js +66 -0
  15. package/dist/commands/utils/dev-server/index.js.map +1 -0
  16. package/dist/commands/utils/dev-server/module-cache-manager.d.ts +50 -0
  17. package/dist/commands/utils/dev-server/module-cache-manager.d.ts.map +1 -0
  18. package/dist/commands/utils/dev-server/module-cache-manager.js +135 -0
  19. package/dist/commands/utils/dev-server/module-cache-manager.js.map +1 -0
  20. package/dist/commands/utils/dev-server/recovery-service.d.ts +27 -0
  21. package/dist/commands/utils/dev-server/recovery-service.d.ts.map +1 -0
  22. package/dist/commands/utils/dev-server/recovery-service.js +73 -0
  23. package/dist/commands/utils/dev-server/recovery-service.js.map +1 -0
  24. package/dist/commands/utils/dev-server/reloaders/base.d.ts +20 -0
  25. package/dist/commands/utils/dev-server/reloaders/base.d.ts.map +1 -0
  26. package/dist/commands/utils/dev-server/reloaders/base.js +33 -0
  27. package/dist/commands/utils/dev-server/reloaders/base.js.map +1 -0
  28. package/dist/commands/utils/dev-server/reloaders/jobs.d.ts +29 -0
  29. package/dist/commands/utils/dev-server/reloaders/jobs.d.ts.map +1 -0
  30. package/dist/commands/utils/dev-server/reloaders/jobs.js +77 -0
  31. package/dist/commands/utils/dev-server/reloaders/jobs.js.map +1 -0
  32. package/dist/commands/utils/dev-server/reloaders/modules.d.ts +41 -0
  33. package/dist/commands/utils/dev-server/reloaders/modules.d.ts.map +1 -0
  34. package/dist/commands/utils/dev-server/reloaders/modules.js +190 -0
  35. package/dist/commands/utils/dev-server/reloaders/modules.js.map +1 -0
  36. package/dist/commands/utils/dev-server/reloaders/routes.d.ts +23 -0
  37. package/dist/commands/utils/dev-server/reloaders/routes.d.ts.map +1 -0
  38. package/dist/commands/utils/dev-server/reloaders/routes.js +60 -0
  39. package/dist/commands/utils/dev-server/reloaders/routes.js.map +1 -0
  40. package/dist/commands/utils/dev-server/reloaders/subscribers.d.ts +31 -0
  41. package/dist/commands/utils/dev-server/reloaders/subscribers.d.ts.map +1 -0
  42. package/dist/commands/utils/dev-server/reloaders/subscribers.js +111 -0
  43. package/dist/commands/utils/dev-server/reloaders/subscribers.js.map +1 -0
  44. package/dist/commands/utils/dev-server/reloaders/workflows.d.ts +40 -0
  45. package/dist/commands/utils/dev-server/reloaders/workflows.d.ts.map +1 -0
  46. package/dist/commands/utils/dev-server/reloaders/workflows.js +129 -0
  47. package/dist/commands/utils/dev-server/reloaders/workflows.js.map +1 -0
  48. package/dist/commands/utils/dev-server/resource-registry.d.ts +12 -0
  49. package/dist/commands/utils/dev-server/resource-registry.d.ts.map +1 -0
  50. package/dist/commands/utils/dev-server/resource-registry.js +20 -0
  51. package/dist/commands/utils/dev-server/resource-registry.js.map +1 -0
  52. package/dist/commands/utils/dev-server/types.d.ts +52 -0
  53. package/dist/commands/utils/dev-server/types.d.ts.map +1 -0
  54. package/dist/commands/utils/dev-server/types.js +17 -0
  55. package/dist/commands/utils/dev-server/types.js.map +1 -0
  56. package/dist/feature-flags/backend-hmr.d.ts +4 -0
  57. package/dist/feature-flags/backend-hmr.d.ts.map +1 -0
  58. package/dist/feature-flags/backend-hmr.js +12 -0
  59. package/dist/feature-flags/backend-hmr.js.map +1 -0
  60. package/dist/loaders/api.d.ts.map +1 -1
  61. package/dist/loaders/api.js +6 -0
  62. package/dist/loaders/api.js.map +1 -1
  63. package/dist/tsconfig.tsbuildinfo +1 -1
  64. package/package.json +54 -54
@@ -1 +1 @@
1
- {"version":3,"file":"develop.d.ts","sourceRoot":"","sources":["../../src/commands/develop.ts"],"names":[],"mappings":"AAgBA,yBAA+B,EAAE,KAAK,EAAE,SAAS,EAAE;;;CAAA,iBA4IlD"}
1
+ {"version":3,"file":"develop.d.ts","sourceRoot":"","sources":["../../src/commands/develop.ts"],"names":[],"mappings":"AAoBA,yBAA+B,EAAE,KAAK,EAAE,SAAS,EAAE;;;CAAA,iBA0OlD"}
@@ -12,6 +12,7 @@ const child_process_1 = require("child_process");
12
12
  const chokidar_1 = __importDefault(require("chokidar"));
13
13
  const os_1 = require("os");
14
14
  const path_1 = __importDefault(require("path"));
15
+ const backend_hmr_1 = __importDefault(require("../feature-flags/backend-hmr"));
15
16
  const loaders_1 = require("../loaders");
16
17
  const defaultConfig = {
17
18
  padding: 5,
@@ -21,6 +22,15 @@ const defaultConfig = {
21
22
  async function default_1({ types, directory }) {
22
23
  const container = await (0, loaders_1.initializeContainer)(directory);
23
24
  const logger = container.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
25
+ const isBackendHmrEnabled = utils_1.FeatureFlag.isFeatureEnabled(backend_hmr_1.default.key);
26
+ const reloadActionVerb = isBackendHmrEnabled ? "reloading" : "restarting";
27
+ const logSource = isBackendHmrEnabled ? "[HMR]" : "[Watcher]";
28
+ if (isBackendHmrEnabled) {
29
+ logger.info(`${logSource} Using backend HMR dev server (reload on file change)`);
30
+ }
31
+ else {
32
+ logger.info(`${logSource} Using standard dev server (restart on file change)`);
33
+ }
24
34
  const args = process.argv;
25
35
  const argv = process.argv.indexOf("--") !== -1
26
36
  ? process.argv.slice(process.argv.indexOf("--") + 1)
@@ -48,26 +58,69 @@ async function default_1({ types, directory }) {
48
58
  * restart the dev server instead of asking the user to re-run
49
59
  * the command.
50
60
  */
51
- start() {
52
- this.childProcess = (0, child_process_1.fork)(cliPath, ["start", ...args], {
61
+ async start() {
62
+ const forkOptions = {
53
63
  cwd: directory,
54
64
  env: {
55
65
  ...process.env,
56
66
  NODE_ENV: "development",
67
+ ...(isBackendHmrEnabled && { MEDUSA_HMR_ENABLED: "true" }),
57
68
  },
58
69
  execArgv: argv,
59
- });
70
+ };
71
+ // Enable IPC for HMR mode to communicate reload requests
72
+ if (isBackendHmrEnabled) {
73
+ forkOptions.stdio = ["inherit", "inherit", "inherit", "ipc"];
74
+ }
75
+ this.childProcess = (0, child_process_1.fork)(cliPath, ["start", ...args], forkOptions);
60
76
  this.childProcess.on("error", (error) => {
61
77
  // @ts-ignore
62
- logger.error("Dev server failed to start", error);
63
- logger.info("The server will restart automatically after your changes");
78
+ logger.error(`${logSource} Dev server failed to start`, error);
79
+ logger.info(`${logSource} The server will restart automatically after your changes`);
80
+ });
81
+ },
82
+ /**
83
+ * Sends an HMR reload request to the child process and waits for result.
84
+ * Returns true if reload succeeded, false if it failed.
85
+ */
86
+ async sendHmrReload(action, file) {
87
+ return new Promise((resolve) => {
88
+ if (!this.childProcess) {
89
+ resolve(false);
90
+ return;
91
+ }
92
+ const timeout = setTimeout(() => {
93
+ resolve(false);
94
+ }, 30000); // 30s timeout
95
+ const messageHandler = (msg) => {
96
+ if (msg?.type === "hmr-result") {
97
+ clearTimeout(timeout);
98
+ this.childProcess?.off("message", messageHandler);
99
+ resolve(msg.success === true);
100
+ }
101
+ };
102
+ this.childProcess.on("message", messageHandler);
103
+ this.childProcess.send({
104
+ type: "hmr-reload",
105
+ action,
106
+ file: path_1.default.resolve(directory, file),
107
+ rootDirectory: directory,
108
+ });
64
109
  });
65
110
  },
66
111
  /**
67
112
  * Restarts the development server by cleaning up the existing
68
113
  * child process and forking a new one
69
114
  */
70
- restart() {
115
+ async restart(action, file) {
116
+ if (isBackendHmrEnabled && this.childProcess) {
117
+ const success = await this.sendHmrReload(action, file);
118
+ if (success) {
119
+ return;
120
+ }
121
+ // HMR reload failed, kill the process and restart
122
+ logger.info(`${logSource} HMR reload failed, restarting server...`);
123
+ }
71
124
  if (this.childProcess) {
72
125
  this.childProcess.removeAllListeners();
73
126
  if (process.platform === "win32") {
@@ -77,7 +130,7 @@ async function default_1({ types, directory }) {
77
130
  this.childProcess.kill("SIGINT");
78
131
  }
79
132
  }
80
- this.start();
133
+ await this.start();
81
134
  },
82
135
  /**
83
136
  * Watches the entire file system and ignores the following files
@@ -88,9 +141,9 @@ async function default_1({ types, directory }) {
88
141
  * - src/admin/**
89
142
  */
90
143
  watch() {
91
- this.watcher = chokidar_1.default.watch(["."], {
144
+ this.watcher = chokidar_1.default.watch(".", {
92
145
  ignoreInitial: true,
93
- cwd: process.cwd(),
146
+ cwd: directory,
94
147
  ignored: [
95
148
  /(^|[\\/\\])\../,
96
149
  "node_modules",
@@ -101,20 +154,29 @@ async function default_1({ types, directory }) {
101
154
  ".medusa/**/*",
102
155
  ],
103
156
  });
104
- this.watcher.on("add", (file) => {
105
- logger.info(`${path_1.default.relative(directory, file)} created: Restarting dev server`);
106
- this.restart();
157
+ async function handleFileChange(action, file) {
158
+ const actionVerb = action === "add"
159
+ ? "created"
160
+ : action === "change"
161
+ ? "modified"
162
+ : "removed";
163
+ const now = performance.now();
164
+ logger.info(`${logSource} ${actionVerb} ${path_1.default.relative(directory, file)} ${actionVerb}: ${reloadActionVerb} dev server`);
165
+ await this.restart(action, file);
166
+ const duration = performance.now() - now;
167
+ logger.info(`${logSource} Reloaded in ${duration.toFixed(2)}ms`);
168
+ }
169
+ this.watcher.on("add", async (file) => {
170
+ handleFileChange.call(this, "add", file);
107
171
  });
108
- this.watcher.on("change", (file) => {
109
- logger.info(`${path_1.default.relative(directory, file)} modified: Restarting dev server`);
110
- this.restart();
172
+ this.watcher.on("change", async (file) => {
173
+ handleFileChange.call(this, "change", file);
111
174
  });
112
- this.watcher.on("unlink", (file) => {
113
- logger.info(`${path_1.default.relative(directory, file)} removed: Restarting dev server`);
114
- this.restart();
175
+ this.watcher.on("unlink", async (file) => {
176
+ handleFileChange.call(this, "unlink", file);
115
177
  });
116
178
  this.watcher.on("ready", function () {
117
- logger.info(`Watching filesystem to reload dev server on file change`);
179
+ logger.info(`${logSource} Watching filesystem to reload dev server on file change`);
118
180
  });
119
181
  },
120
182
  };
@@ -133,7 +195,7 @@ async function default_1({ types, directory }) {
133
195
  }
134
196
  process.exit(0);
135
197
  });
136
- devServer.start();
198
+ await devServer.start();
137
199
  devServer.watch();
138
200
  }
139
201
  //# sourceMappingURL=develop.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"develop.js","sourceRoot":"","sources":["../../src/commands/develop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"develop.js","sourceRoot":"","sources":["../../src/commands/develop.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { GracefulShutdownServer } from "@medusajs/framework/utils";
1
2
  /**
2
3
  * Imports the "instrumentation.js" file from the root of the
3
4
  * directory and invokes the register function. The existence
@@ -18,6 +19,9 @@ declare function start(args: {
18
19
  cluster?: string;
19
20
  workers?: string;
20
21
  servers?: string;
21
- }): Promise<void>;
22
+ }): Promise<{
23
+ server: GracefulShutdownServer;
24
+ gracefulShutDown: () => void;
25
+ } | void>;
22
26
  export default start;
23
27
  //# sourceMappingURL=start.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAsDA;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,SAAS,EAAE,MAAM,iBA6B9D;AAED;;;GAGG;AAEH,eAAO,IAAI,mBAAmB,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAiB,CAAA;AAqEhF,iBAAe,KAAK,CAAC,IAAI,EAAE;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,iBAmMA;AAED,eAAe,KAAK,CAAA"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAQA,OAAO,EAML,sBAAsB,EAGvB,MAAM,2BAA2B,CAAA;AAuClC;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,SAAS,EAAE,MAAM,iBA6B9D;AAED;;;GAGG;AAEH,eAAO,IAAI,mBAAmB,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAiB,CAAA;AAoGhF,iBAAe,KAAK,CAAC,IAAI,EAAE;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,GAAG,OAAO,CAAC;IACV,MAAM,EAAE,sBAAsB,CAAA;IAC9B,gBAAgB,EAAE,MAAM,IAAI,CAAA;CAC7B,GAAG,IAAI,CAAC,CAqMR;AAED,eAAe,KAAK,CAAA"}
@@ -49,6 +49,8 @@ const utils_1 = require("@medusajs/framework/utils");
49
49
  const modules_sdk_1 = require("@medusajs/framework/modules-sdk");
50
50
  const url_1 = require("url");
51
51
  const loaders_1 = __importStar(require("../loaders"));
52
+ const dev_server_1 = require("./utils/dev-server");
53
+ const errors_1 = require("./utils/dev-server/errors");
52
54
  const EVERY_SIXTH_HOUR = "0 */6 * * *";
53
55
  const CRON_SCHEDULE = EVERY_SIXTH_HOUR;
54
56
  const INSTRUMENTATION_FILE = "instrumentation";
@@ -140,6 +142,34 @@ function findExpressRoutePath({ stack, url, }) {
140
142
  }
141
143
  return undefined;
142
144
  }
145
+ function handleHMRReload(logger) {
146
+ // Set up HMR reload handler if running in HMR mode
147
+ if (process.env.MEDUSA_HMR_ENABLED === "true" && process.send) {
148
+ ;
149
+ global.__MEDUSA_HMR_ROUTE_REGISTRY__ = true;
150
+ process.on("message", async (msg) => {
151
+ if (msg?.type === "hmr-reload") {
152
+ const { action, file, rootDirectory } = msg;
153
+ const success = await (0, dev_server_1.reloadResources)({
154
+ logSource: "[HMR]",
155
+ action,
156
+ absoluteFilePath: file,
157
+ logger,
158
+ rootDirectory,
159
+ })
160
+ .then(() => true)
161
+ .catch((error) => {
162
+ if (errors_1.HMRReloadError.isHMRReloadError(error)) {
163
+ return false;
164
+ }
165
+ logger.error("[HMR] Reload failed with unexpected error", error);
166
+ return false;
167
+ });
168
+ process.send({ type: "hmr-result", success });
169
+ }
170
+ });
171
+ }
172
+ }
143
173
  async function start(args) {
144
174
  const { port = 9000, host, directory, types, cluster: clusterSize, workers, servers, } = args;
145
175
  const maxCpus = os_1.default.cpus().length;
@@ -234,7 +264,8 @@ async function start(args) {
234
264
  (0, node_schedule_1.scheduleJob)(CRON_SCHEDULE, () => {
235
265
  (0, telemetry_1.track)("PING");
236
266
  });
237
- return { server };
267
+ handleHMRReload(logger);
268
+ return { server, gracefulShutDown };
238
269
  }
239
270
  catch (err) {
240
271
  logger.error("Error starting server", err);
@@ -289,7 +320,7 @@ async function start(args) {
289
320
  if (msg.index > 0) {
290
321
  process.env.PLUGIN_ADMIN_UI_SKIP_CACHE = "true";
291
322
  }
292
- await internalStart(!!types && msg.index === 0);
323
+ return await internalStart(!!types && msg.index === 0);
293
324
  });
294
325
  }
295
326
  }
@@ -297,7 +328,7 @@ async function start(args) {
297
328
  /**
298
329
  * Not in cluster mode
299
330
  */
300
- await internalStart(!!types);
331
+ return await internalStart(!!types);
301
332
  }
302
333
  }
303
334
  exports.default = start;
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DA,0DA6BC;AA3FD,mDAA2C;AAC3C,sDAA6B;AAC7B,sDAA6B;AAC7B,gDAAuB;AACvB,iDAA2C;AAC3C,4CAAmB;AACnB,gDAAuB;AAEvB,qDASkC;AAElC,iEAA8D;AAE9D,6BAA2B;AAC3B,sDAAyD;AACzD,mDAAoD;AACpD,sDAA0D;AAE1D,MAAM,gBAAgB,GAAG,aAAa,CAAA;AACtC,MAAM,aAAa,GAAG,gBAAgB,CAAA;AACtC,MAAM,oBAAoB,GAAG,iBAAiB,CAAA;AAE9C,SAAS,sBAAsB,CAAC,KAAa,EAAE,IAAY;IACzD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,qBAAqB,CAAC,CAAA;IAC/D,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAC5B,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAChD,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,EAAE,CAAC,CAAA;QACjD,CAAC;QACD,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,yCAAyC,KAAK,EAAE,CAAC,CAAA;QACnE,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;IAC3C,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;QACjC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,mBAAmB,KAAK,mCAAmC,CAC5D,CAAA;QACH,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,uBAAuB,CAAC,SAAiB;IAC7D,MAAM,SAAS,GAAG,MAAM,IAAA,6BAAmB,EAAC,SAAS,EAAE;QACrD,gBAAgB,EAAE,IAAI;KACvB,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,iCAAyB,CAAC,MAAM,CAAC,CAAA;IAElE,MAAM,UAAU,GAAG,IAAI,kBAAU,CAAC,SAAS,CAAC,CAAA;IAC5C,MAAM,MAAM,GACV,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,GAAG,oBAAoB,KAAK,CAAC,CAAC;QACvD,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,GAAG,oBAAoB,KAAK,CAAC,CAAC,CAAA;IACzD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAM;IACR,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,IAAA,qBAAa,EACzC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAC3C,CAAA;IAED,IACE,OAAO,eAAe,CAAC,QAAQ,KAAK,UAAU;QAC9C,CAAC,IAAA,qBAAa,EAAC,eAAe,CAAC,EAC/B,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QAC9B,eAAe,CAAC,QAAQ,EAAE,CAAA;IAC5B,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CACT,oEAAoE,CACrE,CAAA;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,kCAAkC;AACvB,QAAA,mBAAmB,GAAqC,KAAK,CAAQ,CAAA;AAEhF,SAAS,eAAe,CAAC,EACvB,IAAI,EACJ,IAAI,EACJ,SAAS,GAKV;IACC,MAAM,YAAY,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,QAAQ,CAClD,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAC3B,CAAA;IAED,IAAI,YAAY,EAAE,CAAC;QACjB,OAAM;IACR,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,iCAAyB,CAAC,MAAM,CAAC,CAAA;IAClE,MAAM,EACJ,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GACpC,GAAG,SAAS,CAAC,OAAO,CAAC,iCAAyB,CAAC,aAAa,CAAC,CAAA;IAE9D,IAAI,OAAO,EAAE,CAAC;QACZ,OAAM;IACR,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,sBAAsB,IAAI,IAAI,WAAW,IAAI,IAAI,GAAG,SAAS,EAAE,CAAC,CAAA;AAC9E,CAAC;AASD;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,EAC5B,KAAK,EACL,GAAG,GAIJ;IACC,MAAM,cAAc,GAAG,CAAC,GAAG,KAAK,CAAC,CAAA;IAEjC,OAAO,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,EAAG,CAAA;QAEnC,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACxD,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAA;QACzB,CAAC;QAED,uDAAuD;QACvD,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;YAChC,cAAc,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC5C,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,eAAe,CAAC,MAAc;IACrC,mDAAmD;IACnD,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAC9D,CAAC;QAAC,MAAc,CAAC,6BAA6B,GAAG,IAAI,CAAA;QAErD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,GAAQ,EAAE,EAAE;YACvC,IAAI,GAAG,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,GAAG,CAAA;gBAE3C,MAAM,OAAO,GAAG,MAAM,IAAA,4BAAe,EAAC;oBACpC,SAAS,EAAE,OAAO;oBAClB,MAAM;oBACN,gBAAgB,EAAE,IAAI;oBACtB,MAAM;oBACN,aAAa;iBACd,CAAC;qBACC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;qBAChB,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBACf,IAAI,uBAAc,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC3C,OAAO,KAAK,CAAA;oBACd,CAAC;oBACD,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAA;oBAChE,OAAO,KAAK,CAAA;gBACd,CAAC,CAAC,CAAA;gBAEJ,OAAO,CAAC,IAAK,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAA;YAChD,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,KAAK,CAAC,IAQpB;IAIC,MAAM,EACJ,IAAI,GAAG,IAAI,EACX,IAAI,EACJ,SAAS,EACT,KAAK,EACL,OAAO,EAAE,WAAW,EACpB,OAAO,EACP,OAAO,GACR,GAAG,IAAI,CAAA;IAER,MAAM,OAAO,GAAG,YAAE,CAAC,IAAI,EAAE,CAAC,MAAM,CAAA;IAChC,MAAM,cAAc,GAAG,WAAW;QAChC,CAAC,CAAC,sBAAsB,CAAC,WAAW,EAAE,OAAO,CAAC;QAC9C,CAAC,CAAC,OAAO,CAAA;IACX,MAAM,YAAY,GAAG,OAAO;QAC1B,CAAC,CAAC,sBAAsB,CAAC,OAAO,EAAE,cAAc,CAAC;QACjD,CAAC,CAAC,CAAC,CAAA;IACL,MAAM,YAAY,GAAG,OAAO;QAC1B,CAAC,CAAC,sBAAsB,CAAC,OAAO,EAAE,cAAc,CAAC;QACjD,CAAC,CAAC,CAAC,CAAA;IAEL,KAAK,UAAU,aAAa,CAAC,aAAsB;QACjD,IAAA,iBAAK,EAAC,WAAW,CAAC,CAAA;QAElB,MAAM,SAAS,GAAG,MAAM,IAAA,6BAAmB,EAAC,SAAS,EAAE;YACrD,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,iCAAyB,CAAC,MAAM,CAAC,CAAA;QAClE,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAA;QAEzD,MAAM,uBAAuB,CAAC,SAAS,CAAC,CAAA;QAExC,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAA;QAErB,MAAM,KAAK,GAAG,cAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACjD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAA;YAC/B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC5B,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;gBACzB,IAAI,2BAAmB,EAAE,CAAC;oBACxB,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;wBAC9C,KAAK;wBACL,GAAG,EAAE,IAAA,WAAK,EAAC,GAAG,CAAC,GAAI,EAAE,KAAK,CAAC,CAAC,QAAS;qBACtC,CAAC,CAAA;oBACF,KAAK,IAAA,2BAAmB,EACtB,KAAK,IAAI,EAAE;wBACT,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;oBACf,CAAC,EACD,GAAG,EACH,GAAG,EACH,kBAAkB,CACnB,CAAA;gBACH,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;gBACf,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,iBAAO,EAAC;gBAChE,SAAS;gBACT,UAAU,EAAE,GAAG;aAChB,CAAC,CAAA;YAEF,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,cAAc,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA;gBAE5D;;mBAEG;gBACH,MAAM,IAAI,kBAAU,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;gBAEjE,MAAM,IAAA,8BAAsB,EAAC,OAAO,EAAE;oBACpC,SAAS,EAAE,cAAc;oBACzB,aAAa,EAAE,uBAAuB;iBACvC,CAAC,CAAA;gBACF,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAA;gBAEzC,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,IAAA,wBAAgB,EAAC;wBACrB,SAAS,EAAE,cAAc;wBACzB,QAAQ,EAAE,oBAAoB;wBAC9B,aAAa,EAAE,wBAAwB;wBACvC,MAAM,EAAE,SAAS;wBACjB,aAAa,EAAE,0BAAY,CAAC,mBAAmB,EAAE;qBAClD,CAAC,CAAA;oBACF,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;gBACzC,CAAC;YACH,CAAC;YAED,yIAAyI;YACzI,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;gBAC5B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC5B,CAAC,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,8BAAsB,CAAC,MAAM,CAC1C,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;gBAC5C,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,4BAA4B,IAAI,EAAE,CAAC,CAAA;gBAClE,eAAe,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;gBAC1C,IAAA,iBAAK,EAAC,qBAAqB,CAAC,CAAA;YAC9B,CAAC,CAAC,CACH,CAAA;YAED,2BAA2B;YAC3B,MAAM,gBAAgB,GAAG,GAAG,EAAE;gBAC5B,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAA;gBAC9C,MAAM;qBACH,QAAQ,EAAE;qBACV,IAAI,CAAC,KAAK,IAAI,EAAE;oBACf,MAAM,QAAQ,EAAE,CAAA;oBAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACjB,CAAC,CAAC;qBACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;oBACX,MAAM,CAAC,KAAK,CAAC,+CAA+C,EAAE,CAAC,CAAC,CAAA;oBAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACjB,CAAC,CAAC,CAAA;YACN,CAAC,CAAA;YAED,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;YACvC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAA;YAEtC,IAAA,2BAAW,EAAC,aAAa,EAAE,GAAG,EAAE;gBAC9B,IAAA,iBAAK,EAAC,MAAM,CAAC,CAAA;YACf,CAAC,CAAC,CAAA;YAEF,eAAe,CAAC,MAAM,CAAC,CAAA;YAEvB,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAA;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAA;YAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,cAAc,CAAA;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAEvC,IAAI,YAAY,GAAG,YAAY,GAAG,OAAO,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CACb,mBAAmB,YAAY,kBAAkB,YAAY,iCAAiC,OAAO,GAAG,CACzG,CAAA;QACH,CAAC;QAED,IAAI,iBAAO,CAAC,SAAS,EAAE,CAAC;YACtB,IAAI,cAAc,GAAG,KAAK,CAAA;YAC1B,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAC9C,MAAM,gBAAgB,GAAG,GAAG,EAAE;gBAC5B,cAAc,GAAG,IAAI,CAAA;YACvB,CAAC,CAAA;YAED,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC7C,MAAM,MAAM,GAAG,iBAAO,CAAC,IAAI,EAAE,CAAA;gBAC7B,IAAI,UAAU,GAAmC,QAAQ,CAAA;gBACzD,IAAI,KAAK,GAAG,YAAY,EAAE,CAAC;oBACzB,UAAU,GAAG,QAAQ,CAAA;gBACvB,CAAC;qBAAM,IAAI,KAAK,GAAG,YAAY,GAAG,YAAY,EAAE,CAAC;oBAC/C,UAAU,GAAG,QAAQ,CAAA;gBACvB,CAAC;gBACD,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;oBACvB,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAA;gBACpC,CAAC,CAAC,CAAA;YACJ,CAAC;YAED,iBAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;gBACtB,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,iBAAO,CAAC,IAAI,EAAE,CAAA;gBAChB,CAAC;qBAAM,IAAI,CAAC,IAAA,iBAAS,EAAC,iBAAO,CAAC,OAAO,CAAC,EAAE,CAAC;oBACvC,UAAU,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAA;gBAC3C,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;YACvC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAA;QACxC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,GAAQ,EAAE,EAAE;gBACvC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;oBACnB,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,GAAG,CAAC,UAAU,CAAA;gBACjD,CAAC;gBAED,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;oBAClB,OAAO,CAAC,GAAG,CAAC,0BAA0B,GAAG,MAAM,CAAA;gBACjD,CAAC;gBAED,OAAO,MAAM,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAA;YACxD,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN;;WAEG;QACH,OAAO,MAAM,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IACrC,CAAC;AACH,CAAC;AAED,kBAAe,KAAK,CAAA"}
@@ -0,0 +1,5 @@
1
+ export declare class HMRReloadError extends Error {
2
+ static isHMRReloadError(error: Error): error is HMRReloadError;
3
+ constructor(message: string);
4
+ }
5
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/commands/utils/dev-server/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAe,SAAQ,KAAK;IACvC,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,cAAc;gBAIlD,OAAO,EAAE,MAAM;CAI5B"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HMRReloadError = void 0;
4
+ class HMRReloadError extends Error {
5
+ static isHMRReloadError(error) {
6
+ return error instanceof HMRReloadError || error.name === "HMRReloadError";
7
+ }
8
+ constructor(message) {
9
+ super(message);
10
+ this.name = "HMRReloadError";
11
+ }
12
+ }
13
+ exports.HMRReloadError = HMRReloadError;
14
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/commands/utils/dev-server/errors.ts"],"names":[],"mappings":";;;AAAA,MAAa,cAAe,SAAQ,KAAK;IACvC,MAAM,CAAC,gBAAgB,CAAC,KAAY;QAClC,OAAO,KAAK,YAAY,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAA;IAC3E,CAAC;IAED,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;IAC9B,CAAC;CACF;AATD,wCASC"}
@@ -0,0 +1,7 @@
1
+ import { ReloadParams } from "./types";
2
+ /**
3
+ * Main entry point for reloading resources (routes, subscribers, workflows, and modules)
4
+ * Orchestrates the reload process and handles recovery of broken modules
5
+ */
6
+ export declare function reloadResources({ logSource, action, absoluteFilePath, keepCache, logger, skipRecovery, rootDirectory, }: ReloadParams): Promise<void>;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/utils/dev-server/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAoB,YAAY,EAAE,MAAM,SAAS,CAAA;AAgFxD;;;GAGG;AACH,wBAAsB,eAAe,CAAC,EACpC,SAAS,EACT,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,MAAM,EACN,YAAoB,EACpB,aAAa,GACd,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAoC9B"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.reloadResources = reloadResources;
4
+ const framework_1 = require("@medusajs/framework");
5
+ const logger_1 = require("@medusajs/framework/logger");
6
+ const module_cache_manager_1 = require("./module-cache-manager");
7
+ const recovery_service_1 = require("./recovery-service");
8
+ const routes_1 = require("./reloaders/routes");
9
+ const subscribers_1 = require("./reloaders/subscribers");
10
+ const workflows_1 = require("./reloaders/workflows");
11
+ const resource_registry_1 = require("./resource-registry");
12
+ const jobs_1 = require("./reloaders/jobs");
13
+ const modules_1 = require("./reloaders/modules");
14
+ const errors_1 = require("./errors");
15
+ let sharedCacheManager;
16
+ const sharedRegistry = new resource_registry_1.ResourceRegistry();
17
+ const reloaders = {};
18
+ function initializeReloaders(logSource, rootDirectory) {
19
+ sharedCacheManager ??= new module_cache_manager_1.ModuleCacheManager(logSource);
20
+ const globals = global;
21
+ if (!reloaders.routesReloader) {
22
+ const routeReloader = new routes_1.RouteReloader(globals.__MEDUSA_HMR_API_LOADER__, sharedCacheManager, logSource, logger_1.logger);
23
+ reloaders.routesReloader = routeReloader;
24
+ }
25
+ if (!reloaders.subscribersReloader) {
26
+ const subscriberReloader = new subscribers_1.SubscriberReloader(framework_1.container, sharedCacheManager, sharedRegistry, logSource, logger_1.logger);
27
+ reloaders.subscribersReloader = subscriberReloader;
28
+ }
29
+ if (!reloaders.workflowsReloader) {
30
+ const workflowReloader = new workflows_1.WorkflowReloader(globals.WorkflowManager, sharedCacheManager, sharedRegistry, reloadResources, logSource, logger_1.logger, rootDirectory);
31
+ reloaders.workflowsReloader = workflowReloader;
32
+ }
33
+ if (!reloaders.jobsReloader) {
34
+ const jobReloader = new jobs_1.JobReloader(globals.WorkflowManager, sharedCacheManager, framework_1.container, sharedRegistry, logSource, logger_1.logger);
35
+ reloaders.jobsReloader = jobReloader;
36
+ }
37
+ if (!reloaders.modulesReloader) {
38
+ const moduleReloader = new modules_1.ModuleReloader(sharedCacheManager, rootDirectory, logSource, logger_1.logger);
39
+ reloaders.modulesReloader = moduleReloader;
40
+ }
41
+ }
42
+ const unmanagedFiles = ["medusa-config", ".env"];
43
+ /**
44
+ * Main entry point for reloading resources (routes, subscribers, workflows, and modules)
45
+ * Orchestrates the reload process and handles recovery of broken modules
46
+ */
47
+ async function reloadResources({ logSource, action, absoluteFilePath, keepCache, logger, skipRecovery = false, rootDirectory, }) {
48
+ if (unmanagedFiles.some((file) => absoluteFilePath.includes(file))) {
49
+ throw new errors_1.HMRReloadError(`File ${absoluteFilePath} is not managed by the dev server HMR. Server restart may be required.`);
50
+ }
51
+ initializeReloaders(logSource, rootDirectory);
52
+ // Reload modules first as other resources might depend on them
53
+ await reloaders.modulesReloader?.reload?.(action, absoluteFilePath);
54
+ // Reload in dependency order: workflows → routes → subscribers → jobs
55
+ // Jobs depend on workflows, so workflows must be reloaded first
56
+ await reloaders.workflowsReloader.reload(action, absoluteFilePath, keepCache, skipRecovery);
57
+ await reloaders.routesReloader.reload(action, absoluteFilePath);
58
+ await reloaders.subscribersReloader?.reload?.(action, absoluteFilePath);
59
+ await reloaders.jobsReloader?.reload?.(action, absoluteFilePath);
60
+ // Attempt recovery of broken modules (unless we're already in recovery mode)
61
+ if (!skipRecovery) {
62
+ const recoveryService = new recovery_service_1.RecoveryService(sharedCacheManager, reloadResources, logSource, logger, rootDirectory);
63
+ await recoveryService.recoverBrokenModules();
64
+ }
65
+ }
66
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/utils/dev-server/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { Logger } from "@medusajs/framework/types";
2
+ /**
3
+ * Manages Node.js require cache operations and tracks broken modules
4
+ */
5
+ export declare class ModuleCacheManager {
6
+ private readonly logSource;
7
+ constructor(logSource: string);
8
+ private brokenModules;
9
+ /**
10
+ * Check if a module path should be excluded from cache operations
11
+ */
12
+ private shouldExcludePath;
13
+ /**
14
+ * Clear cache for descendant modules recursively
15
+ */
16
+ private clearDescendantModules;
17
+ /**
18
+ * Clear cache for parent modules recursively
19
+ */
20
+ private clearParentModules;
21
+ /**
22
+ * Find all parent modules that depend on the target path
23
+ */
24
+ private findParentModules;
25
+ /**
26
+ * Log cache clearing operation
27
+ */
28
+ private logCacheClear;
29
+ /**
30
+ * Clear require cache for a file and all its parent/descendant modules
31
+ */
32
+ clear(filePath: string, logger?: Logger, onClear?: (modulePath: string) => Promise<void>, trackBroken?: boolean): Promise<number>;
33
+ /**
34
+ * Remove a module from the broken modules set
35
+ */
36
+ removeBrokenModule(modulePath: string): void;
37
+ /**
38
+ * Get all broken module paths
39
+ */
40
+ getBrokenModules(): string[];
41
+ /**
42
+ * Get the count of broken modules
43
+ */
44
+ getBrokenModuleCount(): number;
45
+ /**
46
+ * Clear a specific module from require cache
47
+ */
48
+ clearSingleModule(modulePath: string): void;
49
+ }
50
+ //# sourceMappingURL=module-cache-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-cache-manager.d.ts","sourceRoot":"","sources":["../../../../src/commands/utils/dev-server/module-cache-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAIlD;;GAEG;AACH,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM;IAE9C,OAAO,CAAC,aAAa,CAAyB;IAE9C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;YACW,sBAAsB;IAsCpC;;OAEG;YACW,kBAAkB;IAwChC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;OAEG;IACH,OAAO,CAAC,aAAa;IAWrB;;OAEG;IACG,KAAK,CACT,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,EAC/C,WAAW,GAAE,OAAc,GAC1B,OAAO,CAAC,MAAM,CAAC;IA8BlB;;OAEG;IACH,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI5C;;OAEG;IACH,gBAAgB,IAAI,MAAM,EAAE;IAI5B;;OAEG;IACH,oBAAoB,IAAI,MAAM;IAI9B;;OAEG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;CAG5C"}
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ModuleCacheManager = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const types_1 = require("./types");
9
+ /**
10
+ * Manages Node.js require cache operations and tracks broken modules
11
+ */
12
+ class ModuleCacheManager {
13
+ constructor(logSource) {
14
+ this.logSource = logSource;
15
+ this.brokenModules = new Set();
16
+ }
17
+ /**
18
+ * Check if a module path should be excluded from cache operations
19
+ */
20
+ shouldExcludePath(modulePath) {
21
+ return types_1.CONFIG.EXCLUDED_PATH_PATTERNS.some((pattern) => modulePath.includes(pattern));
22
+ }
23
+ /**
24
+ * Clear cache for descendant modules recursively
25
+ */
26
+ async clearDescendantModules(modulePath, visitedModules, logger, onClear) {
27
+ if (this.shouldExcludePath(modulePath) || visitedModules.has(modulePath)) {
28
+ return;
29
+ }
30
+ visitedModules.add(modulePath);
31
+ const moduleEntry = require.cache[modulePath];
32
+ if (!moduleEntry) {
33
+ return;
34
+ }
35
+ // Recursively clear children first
36
+ if (moduleEntry.children) {
37
+ for (const child of moduleEntry.children) {
38
+ await this.clearDescendantModules(child.id, visitedModules, logger, onClear);
39
+ }
40
+ }
41
+ delete require.cache[modulePath];
42
+ if (onClear) {
43
+ await onClear(modulePath);
44
+ }
45
+ this.logCacheClear(modulePath, logger, "Cleared cache");
46
+ }
47
+ /**
48
+ * Clear cache for parent modules recursively
49
+ */
50
+ async clearParentModules(targetPath, visitedModules, logger, onClear, trackBroken = true) {
51
+ const parentsToCheck = this.findParentModules(targetPath);
52
+ for (const modulePath of parentsToCheck) {
53
+ if (visitedModules.has(modulePath)) {
54
+ continue;
55
+ }
56
+ visitedModules.add(modulePath);
57
+ // Recursively clear parents first
58
+ await this.clearParentModules(modulePath, visitedModules, logger, onClear, trackBroken);
59
+ // Track as potentially broken before deletion
60
+ if (trackBroken) {
61
+ this.brokenModules.add(modulePath);
62
+ }
63
+ delete require.cache[modulePath];
64
+ if (onClear) {
65
+ await onClear(modulePath);
66
+ }
67
+ this.logCacheClear(modulePath, logger, "Cleared parent cache");
68
+ }
69
+ }
70
+ /**
71
+ * Find all parent modules that depend on the target path
72
+ */
73
+ findParentModules(targetPath) {
74
+ const parents = new Set();
75
+ for (const [modulePath, moduleEntry] of Object.entries(require.cache)) {
76
+ if (this.shouldExcludePath(modulePath)) {
77
+ continue;
78
+ }
79
+ if (moduleEntry?.children?.some((child) => child.id === targetPath)) {
80
+ parents.add(modulePath);
81
+ }
82
+ }
83
+ return parents;
84
+ }
85
+ /**
86
+ * Log cache clearing operation
87
+ */
88
+ logCacheClear(modulePath, logger, message) {
89
+ if (logger) {
90
+ const relativePath = path_1.default.relative(process.cwd(), modulePath);
91
+ logger.debug(`${this.logSource} ${message}: ${relativePath}`);
92
+ }
93
+ }
94
+ /**
95
+ * Clear require cache for a file and all its parent/descendant modules
96
+ */
97
+ async clear(filePath, logger, onClear, trackBroken = true) {
98
+ const absolutePath = path_1.default.resolve(filePath);
99
+ const visitedModules = new Set();
100
+ // Clear parents first, then descendants
101
+ await this.clearParentModules(absolutePath, visitedModules, logger, onClear, trackBroken);
102
+ await this.clearDescendantModules(absolutePath, visitedModules, logger, onClear);
103
+ if (logger) {
104
+ const relativePath = path_1.default.relative(process.cwd(), filePath);
105
+ logger.info(`${this.logSource} Cleared ${visitedModules.size} module(s) from cache for ${relativePath}`);
106
+ }
107
+ return visitedModules.size;
108
+ }
109
+ /**
110
+ * Remove a module from the broken modules set
111
+ */
112
+ removeBrokenModule(modulePath) {
113
+ this.brokenModules.delete(modulePath);
114
+ }
115
+ /**
116
+ * Get all broken module paths
117
+ */
118
+ getBrokenModules() {
119
+ return Array.from(this.brokenModules);
120
+ }
121
+ /**
122
+ * Get the count of broken modules
123
+ */
124
+ getBrokenModuleCount() {
125
+ return this.brokenModules.size;
126
+ }
127
+ /**
128
+ * Clear a specific module from require cache
129
+ */
130
+ clearSingleModule(modulePath) {
131
+ delete require.cache[modulePath];
132
+ }
133
+ }
134
+ exports.ModuleCacheManager = ModuleCacheManager;
135
+ //# sourceMappingURL=module-cache-manager.js.map