@eventcatalog/core 5.0.0-beta.26 → 5.0.0-beta.28

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 (42) hide show
  1. package/dist/analytics/analytics.cjs +1 -1
  2. package/dist/analytics/analytics.js +2 -2
  3. package/dist/analytics/log-build.cjs +89 -44
  4. package/dist/analytics/log-build.d.cts +2 -2
  5. package/dist/analytics/log-build.d.ts +2 -2
  6. package/dist/analytics/log-build.js +5 -4
  7. package/dist/analytics/studio-usage.cjs +90 -0
  8. package/dist/analytics/studio-usage.d.cts +5 -0
  9. package/dist/analytics/studio-usage.d.ts +5 -0
  10. package/dist/analytics/studio-usage.js +10 -0
  11. package/dist/{chunk-RFIXKATC.js → chunk-4G7FSRPN.js} +35 -42
  12. package/dist/chunk-CA6WCQ2T.js +54 -0
  13. package/dist/{chunk-M4TIQ4Z6.js → chunk-EUMQAONX.js} +1 -1
  14. package/dist/{chunk-O2ZA26FX.js → chunk-G46KUC6G.js} +4 -2
  15. package/dist/{chunk-MDWB5HLO.js → chunk-NKNOXQ62.js} +1 -1
  16. package/dist/{chunk-KHACCTW2.js → chunk-OX6TSVHY.js} +2 -2
  17. package/dist/{chunk-36RYTYT5.js → chunk-PD7KTSYN.js} +1 -1
  18. package/dist/{chunk-TMCBFXNE.js → chunk-QWFP2PDM.js} +1 -1
  19. package/dist/{chunk-LBHPRPYB.js → chunk-TDUUHSGF.js} +1 -1
  20. package/dist/{chunk-W4RMG6EP.js → chunk-VAL22T5Y.js} +12 -4
  21. package/dist/constants.cjs +1 -1
  22. package/dist/constants.js +1 -1
  23. package/dist/eventcatalog-config-file-utils.cjs +34 -41
  24. package/dist/eventcatalog-config-file-utils.d.cts +56 -58
  25. package/dist/eventcatalog-config-file-utils.d.ts +56 -58
  26. package/dist/eventcatalog-config-file-utils.js +1 -1
  27. package/dist/eventcatalog.cjs +281 -233
  28. package/dist/eventcatalog.js +15 -13
  29. package/dist/features.cjs +34 -41
  30. package/dist/features.js +2 -2
  31. package/dist/federation/federate.cjs +37 -44
  32. package/dist/federation/federate.js +4 -4
  33. package/dist/federation/source-provider.js +2 -2
  34. package/dist/generate.cjs +37 -42
  35. package/dist/generate.js +4 -4
  36. package/dist/resolve-catalog-dependencies.cjs +34 -41
  37. package/dist/resolve-catalog-dependencies.js +2 -2
  38. package/dist/utils/cli-logger.cjs +1 -1
  39. package/dist/utils/cli-logger.js +2 -2
  40. package/eventcatalog/integrations/config-loader.mjs +56 -58
  41. package/package.json +3 -3
  42. package/dist/{chunk-A2RZR3U4.js → chunk-6K7XZAYI.js} +3 -3
@@ -7,42 +7,43 @@ import {
7
7
  } from "./chunk-S5GWAUG5.js";
8
8
  import {
9
9
  log_build_default
10
- } from "./chunk-W4RMG6EP.js";
10
+ } from "./chunk-VAL22T5Y.js";
11
11
  import {
12
12
  getLicenseStatus,
13
13
  printLicenseStatus
14
14
  } from "./chunk-AWOO63ME.js";
15
15
  import "./chunk-ZAZHAVKB.js";
16
+ import "./chunk-CA6WCQ2T.js";
16
17
  import {
17
18
  FederationConflictError,
18
19
  FederationDiagnosticError,
19
20
  federateCatalog
20
- } from "./chunk-KHACCTW2.js";
21
+ } from "./chunk-OX6TSVHY.js";
21
22
  import "./chunk-WRNH5C3U.js";
22
23
  import "./chunk-5EPNFDT5.js";
23
- import "./chunk-A2RZR3U4.js";
24
+ import "./chunk-6K7XZAYI.js";
25
+ import "./chunk-352FGP6W.js";
24
26
  import "./chunk-R7Z5ALYI.js";
25
27
  import {
26
28
  getFederationDiagnosticCounts,
27
29
  getVisibleFederationDiagnostics
28
30
  } from "./chunk-JJPB6EOZ.js";
29
31
  import "./chunk-SDZQJTJW.js";
30
- import "./chunk-352FGP6W.js";
31
32
  import {
32
33
  getProjectOutDir,
33
34
  isAuthEnabled,
34
35
  isIndexedSearchEnabled,
35
36
  isOutputServer
36
- } from "./chunk-MDWB5HLO.js";
37
+ } from "./chunk-NKNOXQ62.js";
37
38
  import {
38
39
  generate
39
- } from "./chunk-O2ZA26FX.js";
40
+ } from "./chunk-G46KUC6G.js";
40
41
  import {
41
42
  logger
42
- } from "./chunk-LBHPRPYB.js";
43
+ } from "./chunk-TDUUHSGF.js";
43
44
  import {
44
45
  resolve_catalog_dependencies_default
45
- } from "./chunk-36RYTYT5.js";
46
+ } from "./chunk-PD7KTSYN.js";
46
47
  import {
47
48
  buildSearchIndex
48
49
  } from "./chunk-DJCOJ77J.js";
@@ -53,7 +54,7 @@ import {
53
54
  import {
54
55
  watch
55
56
  } from "./chunk-U63GDPPY.js";
56
- import "./chunk-TMCBFXNE.js";
57
+ import "./chunk-QWFP2PDM.js";
57
58
  import "./chunk-CPW6G62V.js";
58
59
  import {
59
60
  getAstroConfigPath
@@ -70,11 +71,11 @@ import {
70
71
  } from "./chunk-LFQJXLHG.js";
71
72
  import {
72
73
  VERSION
73
- } from "./chunk-M4TIQ4Z6.js";
74
+ } from "./chunk-EUMQAONX.js";
74
75
  import {
75
76
  getEventCatalogConfigFile,
76
77
  verifyRequiredFieldsAreInCatalogConfigFile
77
- } from "./chunk-RFIXKATC.js";
78
+ } from "./chunk-4G7FSRPN.js";
78
79
 
79
80
  // src/eventcatalog.ts
80
81
  import { Command } from "commander";
@@ -1093,7 +1094,8 @@ program.command("start").description("Serves the contents of your eventcatalog b
1093
1094
  }
1094
1095
  const isServerOutput = await isOutputServer();
1095
1096
  if (isServerOutput) {
1096
- await getLicenseStatus(dir);
1097
+ const license = await getLicenseStatus(dir);
1098
+ void log_build_default(dir, { command: "start", license });
1097
1099
  await startServerCatalog();
1098
1100
  } else {
1099
1101
  await previewCatalog({ command });
@@ -1240,7 +1242,7 @@ program.addHelpText(
1240
1242
  Example: npx eventcatalog dev --debug -- --env=production --port=3000
1241
1243
  `
1242
1244
  );
1243
- program.parseAsync().then(() => process.exit(0)).catch((err) => {
1245
+ program.parseAsync().then(() => process.exit()).catch((err) => {
1244
1246
  if (!(err instanceof FederationConflictError) && !(err instanceof FederationDiagnosticError)) console.error(err);
1245
1247
  process.exit(1);
1246
1248
  });
package/dist/features.cjs CHANGED
@@ -48,65 +48,58 @@ var import_promises = require("fs/promises");
48
48
  var import_node_fs = require("fs");
49
49
  var import_node_path = __toESM(require("path"), 1);
50
50
  var import_node_url = require("url");
51
- var import_node_os = require("os");
51
+ var import_node_module = require("module");
52
52
  async function cleanup(projectDirectory) {
53
53
  const filePath = import_node_path.default.join(projectDirectory, "eventcatalog.config.mjs");
54
54
  if ((0, import_node_fs.existsSync)(filePath)) {
55
55
  await (0, import_promises.rm)(filePath);
56
56
  }
57
57
  }
58
- var findNodeModulesDirectory = (directory) => {
59
- let currentDirectory = directory;
60
- while (true) {
61
- const nodeModulesDirectory = import_node_path.default.join(currentDirectory, "node_modules");
62
- if ((0, import_node_fs.existsSync)(nodeModulesDirectory)) {
63
- return nodeModulesDirectory;
64
- }
65
- const parentDirectory = import_node_path.default.dirname(currentDirectory);
66
- if (parentDirectory === currentDirectory) {
67
- return void 0;
68
- }
69
- currentDirectory = parentDirectory;
70
- }
58
+ var hidesConfigModuleTypeWarning = false;
59
+ var loads = 0;
60
+ var hideConfigModuleTypeWarning = () => {
61
+ if (hidesConfigModuleTypeWarning) return;
62
+ hidesConfigModuleTypeWarning = true;
63
+ const emitWarning = process.emitWarning;
64
+ process.emitWarning = function(warning, ...args) {
65
+ const code = typeof args[0] === "object" ? args[0]?.code : args[1];
66
+ const message = typeof warning === "string" ? warning : warning?.message;
67
+ if (code === "MODULE_TYPELESS_PACKAGE_JSON" && message?.includes("eventcatalog.config.js")) return;
68
+ return emitWarning.call(this, warning, ...args);
69
+ };
71
70
  };
72
- var linkNodeModulesIntoTempDirectory = async ({ projectDirectory, tempDir }) => {
73
- const nodeModulesDirectory = findNodeModulesDirectory(projectDirectory);
74
- if (!nodeModulesDirectory) {
75
- return;
76
- }
77
- await (0, import_promises.symlink)(nodeModulesDirectory, import_node_path.default.join(tempDir, "node_modules"), "dir");
71
+ var AS_MODULE_QUERY = "eventcatalog-config-as-module";
72
+ var loadsMarkedConfigsAsModules = false;
73
+ var loadMarkedConfigsAsModules = () => {
74
+ if (loadsMarkedConfigsAsModules) return;
75
+ loadsMarkedConfigsAsModules = true;
76
+ const hook = `export async function load(url, context, nextLoad) {
77
+ return nextLoad(url, url.includes('${AS_MODULE_QUERY}=') ? { ...context, format: 'module' } : context);
78
+ }`;
79
+ (0, import_node_module.register)(`data:text/javascript,${encodeURIComponent(hook)}`);
78
80
  };
79
- var createTemporaryConfigDirectory = async (projectDirectory) => {
80
- const nodeModulesDirectory = findNodeModulesDirectory(projectDirectory);
81
- if (nodeModulesDirectory) {
82
- return (0, import_promises.mkdtemp)(import_node_path.default.join(nodeModulesDirectory, ".eventcatalog-config-"));
81
+ var isCommonJSPackage = async (projectDirectory) => {
82
+ try {
83
+ const packageJson = JSON.parse(await (0, import_promises.readFile)(import_node_path.default.join(projectDirectory, "package.json"), "utf-8"));
84
+ return packageJson?.type === "commonjs";
85
+ } catch {
86
+ return false;
83
87
  }
84
- const tempDir = await (0, import_promises.mkdtemp)(import_node_path.default.join((0, import_node_os.tmpdir)(), "eventcatalog-config-"));
85
- await linkNodeModulesIntoTempDirectory({ projectDirectory, tempDir });
86
- return tempDir;
87
88
  };
88
89
  var getEventCatalogConfigFile = async (projectDirectory) => {
89
- let tempDir;
90
90
  try {
91
- let configFilePath = import_node_path.default.join(projectDirectory, "eventcatalog.config.js");
92
- const filePath = import_node_path.default.join(projectDirectory, "package.json");
93
- const packageJson = JSON.parse(await (0, import_promises.readFile)(filePath, "utf-8"));
94
- if (packageJson?.type !== "module") {
95
- tempDir = await createTemporaryConfigDirectory(projectDirectory);
96
- configFilePath = import_node_path.default.join(tempDir, "eventcatalog.config.mjs");
97
- await (0, import_promises.copyFile)(import_node_path.default.join(projectDirectory, "eventcatalog.config.js"), configFilePath);
98
- }
99
- const configFileURL = `${(0, import_node_url.pathToFileURL)(configFilePath).href}?t=${Date.now()}`;
91
+ hideConfigModuleTypeWarning();
92
+ const asModule = await isCommonJSPackage(projectDirectory);
93
+ if (asModule) loadMarkedConfigsAsModules();
94
+ const configFileURL = (0, import_node_url.pathToFileURL)(import_node_path.default.join(projectDirectory, "eventcatalog.config.js")).href;
95
+ const query = `${asModule ? AS_MODULE_QUERY : "loaded"}=${Date.now()}-${loads++}`;
100
96
  const config = await import(
101
97
  /* @vite-ignore */
102
- configFileURL
98
+ `${configFileURL}?${query}`
103
99
  );
104
100
  return config.default;
105
101
  } finally {
106
102
  await cleanup(projectDirectory);
107
- if (tempDir) {
108
- await (0, import_promises.rm)(tempDir, { recursive: true, force: true });
109
- }
110
103
  }
111
104
  };
112
105
 
package/dist/features.js CHANGED
@@ -3,8 +3,8 @@ import {
3
3
  isAuthEnabled,
4
4
  isIndexedSearchEnabled,
5
5
  isOutputServer
6
- } from "./chunk-MDWB5HLO.js";
7
- import "./chunk-RFIXKATC.js";
6
+ } from "./chunk-NKNOXQ62.js";
7
+ import "./chunk-4G7FSRPN.js";
8
8
  export {
9
9
  getProjectOutDir,
10
10
  isAuthEnabled,
@@ -51,65 +51,58 @@ var import_promises = require("fs/promises");
51
51
  var import_node_fs = require("fs");
52
52
  var import_node_path = __toESM(require("path"), 1);
53
53
  var import_node_url = require("url");
54
- var import_node_os = require("os");
54
+ var import_node_module = require("module");
55
55
  async function cleanup(projectDirectory) {
56
56
  const filePath = import_node_path.default.join(projectDirectory, "eventcatalog.config.mjs");
57
57
  if ((0, import_node_fs.existsSync)(filePath)) {
58
58
  await (0, import_promises.rm)(filePath);
59
59
  }
60
60
  }
61
- var findNodeModulesDirectory = (directory) => {
62
- let currentDirectory = directory;
63
- while (true) {
64
- const nodeModulesDirectory = import_node_path.default.join(currentDirectory, "node_modules");
65
- if ((0, import_node_fs.existsSync)(nodeModulesDirectory)) {
66
- return nodeModulesDirectory;
67
- }
68
- const parentDirectory = import_node_path.default.dirname(currentDirectory);
69
- if (parentDirectory === currentDirectory) {
70
- return void 0;
71
- }
72
- currentDirectory = parentDirectory;
73
- }
74
- };
75
- var linkNodeModulesIntoTempDirectory = async ({ projectDirectory, tempDir }) => {
76
- const nodeModulesDirectory = findNodeModulesDirectory(projectDirectory);
77
- if (!nodeModulesDirectory) {
78
- return;
79
- }
80
- await (0, import_promises.symlink)(nodeModulesDirectory, import_node_path.default.join(tempDir, "node_modules"), "dir");
61
+ var hidesConfigModuleTypeWarning = false;
62
+ var loads = 0;
63
+ var hideConfigModuleTypeWarning = () => {
64
+ if (hidesConfigModuleTypeWarning) return;
65
+ hidesConfigModuleTypeWarning = true;
66
+ const emitWarning = process.emitWarning;
67
+ process.emitWarning = function(warning, ...args) {
68
+ const code = typeof args[0] === "object" ? args[0]?.code : args[1];
69
+ const message = typeof warning === "string" ? warning : warning?.message;
70
+ if (code === "MODULE_TYPELESS_PACKAGE_JSON" && message?.includes("eventcatalog.config.js")) return;
71
+ return emitWarning.call(this, warning, ...args);
72
+ };
81
73
  };
82
- var createTemporaryConfigDirectory = async (projectDirectory) => {
83
- const nodeModulesDirectory = findNodeModulesDirectory(projectDirectory);
84
- if (nodeModulesDirectory) {
85
- return (0, import_promises.mkdtemp)(import_node_path.default.join(nodeModulesDirectory, ".eventcatalog-config-"));
74
+ var AS_MODULE_QUERY = "eventcatalog-config-as-module";
75
+ var loadsMarkedConfigsAsModules = false;
76
+ var loadMarkedConfigsAsModules = () => {
77
+ if (loadsMarkedConfigsAsModules) return;
78
+ loadsMarkedConfigsAsModules = true;
79
+ const hook = `export async function load(url, context, nextLoad) {
80
+ return nextLoad(url, url.includes('${AS_MODULE_QUERY}=') ? { ...context, format: 'module' } : context);
81
+ }`;
82
+ (0, import_node_module.register)(`data:text/javascript,${encodeURIComponent(hook)}`);
83
+ };
84
+ var isCommonJSPackage = async (projectDirectory) => {
85
+ try {
86
+ const packageJson = JSON.parse(await (0, import_promises.readFile)(import_node_path.default.join(projectDirectory, "package.json"), "utf-8"));
87
+ return packageJson?.type === "commonjs";
88
+ } catch {
89
+ return false;
86
90
  }
87
- const tempDir = await (0, import_promises.mkdtemp)(import_node_path.default.join((0, import_node_os.tmpdir)(), "eventcatalog-config-"));
88
- await linkNodeModulesIntoTempDirectory({ projectDirectory, tempDir });
89
- return tempDir;
90
91
  };
91
92
  var getEventCatalogConfigFile = async (projectDirectory) => {
92
- let tempDir;
93
93
  try {
94
- let configFilePath = import_node_path.default.join(projectDirectory, "eventcatalog.config.js");
95
- const filePath = import_node_path.default.join(projectDirectory, "package.json");
96
- const packageJson = JSON.parse(await (0, import_promises.readFile)(filePath, "utf-8"));
97
- if (packageJson?.type !== "module") {
98
- tempDir = await createTemporaryConfigDirectory(projectDirectory);
99
- configFilePath = import_node_path.default.join(tempDir, "eventcatalog.config.mjs");
100
- await (0, import_promises.copyFile)(import_node_path.default.join(projectDirectory, "eventcatalog.config.js"), configFilePath);
101
- }
102
- const configFileURL = `${(0, import_node_url.pathToFileURL)(configFilePath).href}?t=${Date.now()}`;
94
+ hideConfigModuleTypeWarning();
95
+ const asModule = await isCommonJSPackage(projectDirectory);
96
+ if (asModule) loadMarkedConfigsAsModules();
97
+ const configFileURL = (0, import_node_url.pathToFileURL)(import_node_path.default.join(projectDirectory, "eventcatalog.config.js")).href;
98
+ const query = `${asModule ? AS_MODULE_QUERY : "loaded"}=${Date.now()}-${loads++}`;
103
99
  const config = await import(
104
100
  /* @vite-ignore */
105
- configFileURL
101
+ `${configFileURL}?${query}`
106
102
  );
107
103
  return config.default;
108
104
  } finally {
109
105
  await cleanup(projectDirectory);
110
- if (tempDir) {
111
- await (0, import_promises.rm)(tempDir, { recursive: true, force: true });
112
- }
113
106
  }
114
107
  };
115
108
 
@@ -633,7 +626,7 @@ var createFileSystemSourceProvider = (projectDirectory) => ({
633
626
  // src/federation/github-source-provider.ts
634
627
  var import_node_child_process = require("child_process");
635
628
  var import_promises7 = __toESM(require("fs/promises"), 1);
636
- var import_node_os2 = __toESM(require("os"), 1);
629
+ var import_node_os = __toESM(require("os"), 1);
637
630
  var import_node_path7 = __toESM(require("path"), 1);
638
631
  var import_node_util = require("util");
639
632
  var import_sdk2 = __toESM(require("@eventcatalog/sdk"), 1);
@@ -690,7 +683,7 @@ var getGitEnvironment = (token) => {
690
683
  var createCheckout = (executeFile, token) => async (source, ref, callback) => {
691
684
  const { owner, repository } = parseGitHubSource(source);
692
685
  const catalogPath = import_node_path7.default.posix.normalize(source.path ?? ".");
693
- const directory = await import_promises7.default.mkdtemp(import_node_path7.default.join(import_node_os2.default.tmpdir(), "eventcatalog-federation-"));
686
+ const directory = await import_promises7.default.mkdtemp(import_node_path7.default.join(import_node_os.default.tmpdir(), "eventcatalog-federation-"));
694
687
  const env = getGitEnvironment(token);
695
688
  try {
696
689
  const git = (args) => executeFile("git", args, { cwd: directory, env, encoding: "utf8" });
@@ -2,15 +2,15 @@ import {
2
2
  FederationConflictError,
3
3
  FederationDiagnosticError,
4
4
  federateCatalog
5
- } from "../chunk-KHACCTW2.js";
5
+ } from "../chunk-OX6TSVHY.js";
6
6
  import "../chunk-WRNH5C3U.js";
7
7
  import "../chunk-5EPNFDT5.js";
8
- import "../chunk-A2RZR3U4.js";
8
+ import "../chunk-6K7XZAYI.js";
9
+ import "../chunk-352FGP6W.js";
9
10
  import "../chunk-R7Z5ALYI.js";
10
11
  import "../chunk-JJPB6EOZ.js";
11
12
  import "../chunk-SDZQJTJW.js";
12
- import "../chunk-352FGP6W.js";
13
- import "../chunk-RFIXKATC.js";
13
+ import "../chunk-4G7FSRPN.js";
14
14
  export {
15
15
  FederationConflictError,
16
16
  FederationDiagnosticError,
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  createFederationSourceProvider
3
- } from "../chunk-A2RZR3U4.js";
4
- import "../chunk-SDZQJTJW.js";
3
+ } from "../chunk-6K7XZAYI.js";
5
4
  import "../chunk-352FGP6W.js";
5
+ import "../chunk-SDZQJTJW.js";
6
6
  export {
7
7
  createFederationSourceProvider
8
8
  };
package/dist/generate.cjs CHANGED
@@ -46,65 +46,58 @@ var import_promises = require("fs/promises");
46
46
  var import_node_fs = require("fs");
47
47
  var import_node_path = __toESM(require("path"), 1);
48
48
  var import_node_url = require("url");
49
- var import_node_os = require("os");
49
+ var import_node_module = require("module");
50
50
  async function cleanup(projectDirectory) {
51
51
  const filePath = import_node_path.default.join(projectDirectory, "eventcatalog.config.mjs");
52
52
  if ((0, import_node_fs.existsSync)(filePath)) {
53
53
  await (0, import_promises.rm)(filePath);
54
54
  }
55
55
  }
56
- var findNodeModulesDirectory = (directory) => {
57
- let currentDirectory = directory;
58
- while (true) {
59
- const nodeModulesDirectory = import_node_path.default.join(currentDirectory, "node_modules");
60
- if ((0, import_node_fs.existsSync)(nodeModulesDirectory)) {
61
- return nodeModulesDirectory;
62
- }
63
- const parentDirectory = import_node_path.default.dirname(currentDirectory);
64
- if (parentDirectory === currentDirectory) {
65
- return void 0;
66
- }
67
- currentDirectory = parentDirectory;
68
- }
56
+ var hidesConfigModuleTypeWarning = false;
57
+ var loads = 0;
58
+ var hideConfigModuleTypeWarning = () => {
59
+ if (hidesConfigModuleTypeWarning) return;
60
+ hidesConfigModuleTypeWarning = true;
61
+ const emitWarning = process.emitWarning;
62
+ process.emitWarning = function(warning, ...args) {
63
+ const code = typeof args[0] === "object" ? args[0]?.code : args[1];
64
+ const message = typeof warning === "string" ? warning : warning?.message;
65
+ if (code === "MODULE_TYPELESS_PACKAGE_JSON" && message?.includes("eventcatalog.config.js")) return;
66
+ return emitWarning.call(this, warning, ...args);
67
+ };
69
68
  };
70
- var linkNodeModulesIntoTempDirectory = async ({ projectDirectory, tempDir }) => {
71
- const nodeModulesDirectory = findNodeModulesDirectory(projectDirectory);
72
- if (!nodeModulesDirectory) {
73
- return;
74
- }
75
- await (0, import_promises.symlink)(nodeModulesDirectory, import_node_path.default.join(tempDir, "node_modules"), "dir");
69
+ var AS_MODULE_QUERY = "eventcatalog-config-as-module";
70
+ var loadsMarkedConfigsAsModules = false;
71
+ var loadMarkedConfigsAsModules = () => {
72
+ if (loadsMarkedConfigsAsModules) return;
73
+ loadsMarkedConfigsAsModules = true;
74
+ const hook = `export async function load(url, context, nextLoad) {
75
+ return nextLoad(url, url.includes('${AS_MODULE_QUERY}=') ? { ...context, format: 'module' } : context);
76
+ }`;
77
+ (0, import_node_module.register)(`data:text/javascript,${encodeURIComponent(hook)}`);
76
78
  };
77
- var createTemporaryConfigDirectory = async (projectDirectory) => {
78
- const nodeModulesDirectory = findNodeModulesDirectory(projectDirectory);
79
- if (nodeModulesDirectory) {
80
- return (0, import_promises.mkdtemp)(import_node_path.default.join(nodeModulesDirectory, ".eventcatalog-config-"));
79
+ var isCommonJSPackage = async (projectDirectory) => {
80
+ try {
81
+ const packageJson = JSON.parse(await (0, import_promises.readFile)(import_node_path.default.join(projectDirectory, "package.json"), "utf-8"));
82
+ return packageJson?.type === "commonjs";
83
+ } catch {
84
+ return false;
81
85
  }
82
- const tempDir = await (0, import_promises.mkdtemp)(import_node_path.default.join((0, import_node_os.tmpdir)(), "eventcatalog-config-"));
83
- await linkNodeModulesIntoTempDirectory({ projectDirectory, tempDir });
84
- return tempDir;
85
86
  };
86
87
  var getEventCatalogConfigFile = async (projectDirectory) => {
87
- let tempDir;
88
88
  try {
89
- let configFilePath = import_node_path.default.join(projectDirectory, "eventcatalog.config.js");
90
- const filePath = import_node_path.default.join(projectDirectory, "package.json");
91
- const packageJson = JSON.parse(await (0, import_promises.readFile)(filePath, "utf-8"));
92
- if (packageJson?.type !== "module") {
93
- tempDir = await createTemporaryConfigDirectory(projectDirectory);
94
- configFilePath = import_node_path.default.join(tempDir, "eventcatalog.config.mjs");
95
- await (0, import_promises.copyFile)(import_node_path.default.join(projectDirectory, "eventcatalog.config.js"), configFilePath);
96
- }
97
- const configFileURL = `${(0, import_node_url.pathToFileURL)(configFilePath).href}?t=${Date.now()}`;
89
+ hideConfigModuleTypeWarning();
90
+ const asModule = await isCommonJSPackage(projectDirectory);
91
+ if (asModule) loadMarkedConfigsAsModules();
92
+ const configFileURL = (0, import_node_url.pathToFileURL)(import_node_path.default.join(projectDirectory, "eventcatalog.config.js")).href;
93
+ const query = `${asModule ? AS_MODULE_QUERY : "loaded"}=${Date.now()}-${loads++}`;
98
94
  const config = await import(
99
95
  /* @vite-ignore */
100
- configFileURL
96
+ `${configFileURL}?${query}`
101
97
  );
102
98
  return config.default;
103
99
  } finally {
104
100
  await cleanup(projectDirectory);
105
- if (tempDir) {
106
- await (0, import_promises.rm)(tempDir, { recursive: true, force: true });
107
- }
108
101
  }
109
102
  };
110
103
 
@@ -112,7 +105,7 @@ var getEventCatalogConfigFile = async (projectDirectory) => {
112
105
  var import_picocolors = __toESM(require("picocolors"), 1);
113
106
 
114
107
  // package.json
115
- var version = "5.0.0-beta.26";
108
+ var version = "5.0.0-beta.28";
116
109
 
117
110
  // src/constants.ts
118
111
  var VERSION = version;
@@ -226,10 +219,12 @@ var generate = async (PROJECT_DIRECTORY) => {
226
219
  for (const { plugin } of errors) {
227
220
  logger.error(` - ${plugin}`, "generator");
228
221
  }
222
+ process.exitCode = 1;
229
223
  }
230
224
  } catch (error) {
231
225
  console.error(error);
232
226
  await cleanup(PROJECT_DIRECTORY);
227
+ process.exitCode = 1;
233
228
  }
234
229
  };
235
230
  // Annotate the CommonJS export names for ESM import in node:
package/dist/generate.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  generate
3
- } from "./chunk-O2ZA26FX.js";
4
- import "./chunk-LBHPRPYB.js";
5
- import "./chunk-M4TIQ4Z6.js";
6
- import "./chunk-RFIXKATC.js";
3
+ } from "./chunk-G46KUC6G.js";
4
+ import "./chunk-TDUUHSGF.js";
5
+ import "./chunk-EUMQAONX.js";
6
+ import "./chunk-4G7FSRPN.js";
7
7
  export {
8
8
  generate
9
9
  };
@@ -45,65 +45,58 @@ var import_promises = require("fs/promises");
45
45
  var import_node_fs = require("fs");
46
46
  var import_node_path = __toESM(require("path"), 1);
47
47
  var import_node_url = require("url");
48
- var import_node_os = require("os");
48
+ var import_node_module = require("module");
49
49
  async function cleanup(projectDirectory) {
50
50
  const filePath = import_node_path.default.join(projectDirectory, "eventcatalog.config.mjs");
51
51
  if ((0, import_node_fs.existsSync)(filePath)) {
52
52
  await (0, import_promises.rm)(filePath);
53
53
  }
54
54
  }
55
- var findNodeModulesDirectory = (directory) => {
56
- let currentDirectory = directory;
57
- while (true) {
58
- const nodeModulesDirectory = import_node_path.default.join(currentDirectory, "node_modules");
59
- if ((0, import_node_fs.existsSync)(nodeModulesDirectory)) {
60
- return nodeModulesDirectory;
61
- }
62
- const parentDirectory = import_node_path.default.dirname(currentDirectory);
63
- if (parentDirectory === currentDirectory) {
64
- return void 0;
65
- }
66
- currentDirectory = parentDirectory;
67
- }
55
+ var hidesConfigModuleTypeWarning = false;
56
+ var loads = 0;
57
+ var hideConfigModuleTypeWarning = () => {
58
+ if (hidesConfigModuleTypeWarning) return;
59
+ hidesConfigModuleTypeWarning = true;
60
+ const emitWarning = process.emitWarning;
61
+ process.emitWarning = function(warning, ...args) {
62
+ const code = typeof args[0] === "object" ? args[0]?.code : args[1];
63
+ const message = typeof warning === "string" ? warning : warning?.message;
64
+ if (code === "MODULE_TYPELESS_PACKAGE_JSON" && message?.includes("eventcatalog.config.js")) return;
65
+ return emitWarning.call(this, warning, ...args);
66
+ };
68
67
  };
69
- var linkNodeModulesIntoTempDirectory = async ({ projectDirectory, tempDir }) => {
70
- const nodeModulesDirectory = findNodeModulesDirectory(projectDirectory);
71
- if (!nodeModulesDirectory) {
72
- return;
73
- }
74
- await (0, import_promises.symlink)(nodeModulesDirectory, import_node_path.default.join(tempDir, "node_modules"), "dir");
68
+ var AS_MODULE_QUERY = "eventcatalog-config-as-module";
69
+ var loadsMarkedConfigsAsModules = false;
70
+ var loadMarkedConfigsAsModules = () => {
71
+ if (loadsMarkedConfigsAsModules) return;
72
+ loadsMarkedConfigsAsModules = true;
73
+ const hook = `export async function load(url, context, nextLoad) {
74
+ return nextLoad(url, url.includes('${AS_MODULE_QUERY}=') ? { ...context, format: 'module' } : context);
75
+ }`;
76
+ (0, import_node_module.register)(`data:text/javascript,${encodeURIComponent(hook)}`);
75
77
  };
76
- var createTemporaryConfigDirectory = async (projectDirectory) => {
77
- const nodeModulesDirectory = findNodeModulesDirectory(projectDirectory);
78
- if (nodeModulesDirectory) {
79
- return (0, import_promises.mkdtemp)(import_node_path.default.join(nodeModulesDirectory, ".eventcatalog-config-"));
78
+ var isCommonJSPackage = async (projectDirectory) => {
79
+ try {
80
+ const packageJson = JSON.parse(await (0, import_promises.readFile)(import_node_path.default.join(projectDirectory, "package.json"), "utf-8"));
81
+ return packageJson?.type === "commonjs";
82
+ } catch {
83
+ return false;
80
84
  }
81
- const tempDir = await (0, import_promises.mkdtemp)(import_node_path.default.join((0, import_node_os.tmpdir)(), "eventcatalog-config-"));
82
- await linkNodeModulesIntoTempDirectory({ projectDirectory, tempDir });
83
- return tempDir;
84
85
  };
85
86
  var getEventCatalogConfigFile = async (projectDirectory) => {
86
- let tempDir;
87
87
  try {
88
- let configFilePath = import_node_path.default.join(projectDirectory, "eventcatalog.config.js");
89
- const filePath = import_node_path.default.join(projectDirectory, "package.json");
90
- const packageJson = JSON.parse(await (0, import_promises.readFile)(filePath, "utf-8"));
91
- if (packageJson?.type !== "module") {
92
- tempDir = await createTemporaryConfigDirectory(projectDirectory);
93
- configFilePath = import_node_path.default.join(tempDir, "eventcatalog.config.mjs");
94
- await (0, import_promises.copyFile)(import_node_path.default.join(projectDirectory, "eventcatalog.config.js"), configFilePath);
95
- }
96
- const configFileURL = `${(0, import_node_url.pathToFileURL)(configFilePath).href}?t=${Date.now()}`;
88
+ hideConfigModuleTypeWarning();
89
+ const asModule = await isCommonJSPackage(projectDirectory);
90
+ if (asModule) loadMarkedConfigsAsModules();
91
+ const configFileURL = (0, import_node_url.pathToFileURL)(import_node_path.default.join(projectDirectory, "eventcatalog.config.js")).href;
92
+ const query = `${asModule ? AS_MODULE_QUERY : "loaded"}=${Date.now()}-${loads++}`;
97
93
  const config = await import(
98
94
  /* @vite-ignore */
99
- configFileURL
95
+ `${configFileURL}?${query}`
100
96
  );
101
97
  return config.default;
102
98
  } finally {
103
99
  await cleanup(projectDirectory);
104
- if (tempDir) {
105
- await (0, import_promises.rm)(tempDir, { recursive: true, force: true });
106
- }
107
100
  }
108
101
  };
109
102
 
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  resolve_catalog_dependencies_default
3
- } from "./chunk-36RYTYT5.js";
4
- import "./chunk-RFIXKATC.js";
3
+ } from "./chunk-PD7KTSYN.js";
4
+ import "./chunk-4G7FSRPN.js";
5
5
  export {
6
6
  resolve_catalog_dependencies_default as default
7
7
  };
@@ -36,7 +36,7 @@ module.exports = __toCommonJS(cli_logger_exports);
36
36
  var import_picocolors = __toESM(require("picocolors"), 1);
37
37
 
38
38
  // package.json
39
- var version = "5.0.0-beta.26";
39
+ var version = "5.0.0-beta.28";
40
40
 
41
41
  // src/constants.ts
42
42
  var VERSION = version;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  logger
3
- } from "../chunk-LBHPRPYB.js";
4
- import "../chunk-M4TIQ4Z6.js";
3
+ } from "../chunk-TDUUHSGF.js";
4
+ import "../chunk-EUMQAONX.js";
5
5
  export {
6
6
  logger
7
7
  };