@eventcatalog/core 4.7.5 → 4.7.7

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 (49) hide show
  1. package/LICENSE +95 -0
  2. package/README.md +3 -2
  3. package/dist/analytics/analytics.cjs +1 -1
  4. package/dist/analytics/analytics.js +2 -2
  5. package/dist/analytics/log-build.cjs +1 -1
  6. package/dist/analytics/log-build.js +3 -3
  7. package/dist/{chunk-QJRY6Q7S.js → chunk-5ASZ2V3F.js} +1 -1
  8. package/dist/{chunk-QQPH6RCB.js → chunk-AU344G4Q.js} +1 -1
  9. package/dist/chunk-DDALKGTF.js +7 -0
  10. package/dist/{chunk-ZBPMCEXS.js → chunk-JBNUHFT4.js} +1 -1
  11. package/dist/{chunk-GYYYAUJD.js → chunk-MLIR3NL4.js} +5 -2
  12. package/dist/{chunk-2BYTIH4L.js → chunk-MQEV3YUV.js} +1 -1
  13. package/dist/{chunk-EUZT4RKY.js → chunk-QYK2OJMS.js} +1 -1
  14. package/dist/constants.cjs +1 -1
  15. package/dist/constants.js +1 -1
  16. package/dist/eventcatalog.cjs +21 -18
  17. package/dist/eventcatalog.js +9 -9
  18. package/dist/federation/content-cache.d.cts +5 -0
  19. package/dist/federation/content-cache.d.ts +5 -0
  20. package/dist/federation/diagnostics.d.cts +5 -0
  21. package/dist/federation/diagnostics.d.ts +5 -0
  22. package/dist/federation/entitlement.cjs +31 -0
  23. package/dist/federation/entitlement.d.cts +12 -0
  24. package/dist/federation/entitlement.d.ts +12 -0
  25. package/dist/federation/entitlement.js +6 -0
  26. package/dist/federation/federate.cjs +5 -1
  27. package/dist/federation/federate.d.cts +5 -1
  28. package/dist/federation/federate.d.ts +5 -1
  29. package/dist/federation/federate.js +4 -3
  30. package/dist/federation/filesystem-source-provider.d.cts +5 -0
  31. package/dist/federation/filesystem-source-provider.d.ts +5 -0
  32. package/dist/federation/github-source-provider.d.cts +5 -0
  33. package/dist/federation/github-source-provider.d.ts +5 -0
  34. package/dist/federation/output-transaction.d.cts +4 -0
  35. package/dist/federation/output-transaction.d.ts +4 -0
  36. package/dist/federation/public-assets.d.cts +5 -0
  37. package/dist/federation/public-assets.d.ts +5 -0
  38. package/dist/federation/source-provider.d.cts +5 -0
  39. package/dist/federation/source-provider.d.ts +5 -0
  40. package/dist/federation/source-provider.js +2 -2
  41. package/dist/federation/types.d.cts +5 -0
  42. package/dist/federation/types.d.ts +5 -0
  43. package/dist/generate.cjs +1 -1
  44. package/dist/generate.js +3 -3
  45. package/dist/utils/cli-logger.cjs +1 -1
  46. package/dist/utils/cli-logger.js +2 -2
  47. package/eventcatalog/src/plugins/likec4.ts +24 -3
  48. package/package.json +3 -3
  49. package/dist/{chunk-A2RZR3U4.js → chunk-6K7XZAYI.js} +3 -3
package/LICENSE ADDED
@@ -0,0 +1,95 @@
1
+ EventCatalog Core is distributed under a mixed-license model.
2
+
3
+ The EventCatalog Commercial License below applies to these source paths:
4
+
5
+ - `eventcatalog/src/enterprise/**`
6
+ - `src/federation/**`
7
+
8
+ The EventCatalog Commercial License also applies to any portion of a compiled,
9
+ bundled, copied, minified, or otherwise generated artifact derived from those
10
+ paths, regardless of its output location, including artifacts under `dist/**`
11
+ and `bin/**`.
12
+
13
+ The MIT License below applies to all remaining portions of this package.
14
+
15
+ MIT License
16
+
17
+ Copyright (c) 2022-2026 boyney123
18
+
19
+ Permission is hereby granted, free of charge, to any person obtaining a copy
20
+ of this software and associated documentation files (the "Software"), to deal
21
+ in the Software without restriction, including without limitation the rights
22
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
23
+ copies of the Software, and to permit persons to whom the Software is
24
+ furnished to do so, subject to the following conditions:
25
+
26
+ The above copyright notice and this permission notice shall be included in all
27
+ copies or substantial portions of the Software.
28
+
29
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
30
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
31
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
32
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
33
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
34
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
35
+ SOFTWARE.
36
+
37
+ ---
38
+
39
+ The EventCatalog Commercial License (the "Commercial License")
40
+ Copyright (c) 2022-2026 EventCatalog Ltd
41
+
42
+ With regard to the EventCatalog Software:
43
+
44
+ This software and associated documentation files (the "Software") may only be
45
+ used in production, if you (and any entity that you represent) have agreed to,
46
+ and are in compliance with, the EventCatalog Terms of Service available
47
+ at https://www.eventcatalog.dev/terms, or other agreements governing the use of
48
+ the Software, as mutually agreed by you and EventCatalog Ltd ("EventCatalog"),
49
+ and otherwise have a valid EventCatalog Starter, Scale, or Enterprise
50
+ subscription ("Commercial Subscription").
51
+
52
+ Subject to the foregoing sentence, you are free to modify this Software and
53
+ publish patches to the Software. You agree that EventCatalog and/or its
54
+ licensors (as applicable) retain all right, title and interest in and to all
55
+ such modifications and/or patches, and all such modifications and/or patches
56
+ may only be used, copied, modified, displayed, distributed, or otherwise
57
+ exploited with a valid Commercial Subscription.
58
+
59
+ A 14-day free trial of premium features is available at
60
+ https://eventcatalog.cloud/ to help you evaluate the Software before purchasing
61
+ a Commercial Subscription.
62
+
63
+ Notwithstanding the foregoing, you may copy and modify the Software for
64
+ development and testing purposes, without requiring a subscription. You agree
65
+ that EventCatalog and/or its licensors (as applicable) retain all right, title
66
+ and interest in and to all such modifications. You are not granted any other
67
+ rights beyond what is expressly stated herein. Subject to the foregoing, it is
68
+ forbidden to copy, merge, publish, distribute, sublicense, and/or sell the
69
+ Software.
70
+
71
+ You may not move, change, disable, or circumvent the license key functionality
72
+ in the Software, and you may not remove or obscure any functionality in the
73
+ Software that is protected by the license key.
74
+
75
+ This Software is source-available for the purposes of transparency and
76
+ auditability. Source availability does not constitute a grant of rights to use
77
+ the Software in production without a valid Commercial Subscription.
78
+
79
+ This Commercial License applies only to the part of this Software that is not
80
+ distributed under the MIT license. Any part of this Software distributed under
81
+ the MIT license is copyrighted under the MIT license. The full text of this
82
+ Commercial License shall be included in all copies or substantial portions of
83
+ the Software.
84
+
85
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
86
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
87
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
88
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
89
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
90
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
91
+ SOFTWARE.
92
+
93
+ For all third party components incorporated into the EventCatalog Software,
94
+ those components are licensed under the original license provided by the owner
95
+ of the applicable component.
package/README.md CHANGED
@@ -35,7 +35,7 @@
35
35
  <div align="center">
36
36
 
37
37
  [![main](https://github.com/event-catalog/eventcatalog/actions/workflows/verify-build.yml/badge.svg)](https://github.com/event-catalog/eventcatalog/actions/workflows/verify-build.yml)
38
- [![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/event-catalog/eventcatalog/blob/main/LICENSE)
38
+ [![License](https://img.shields.io/badge/License-MIT%20%2B%20Commercial-blue.svg)](./LICENSE)
39
39
  [![npm version](https://badge.fury.io/js/@eventcatalog%2Fcore.svg)](https://badge.fury.io/js/@eventcatalog/core)
40
40
 
41
41
  </div>
@@ -205,4 +205,5 @@ This project follows the [all-contributors](https://github.com/all-contributors/
205
205
 
206
206
  # License
207
207
 
208
- MIT.
208
+ EventCatalog Core uses a mixed-license model. Most files are licensed under MIT; the Enterprise and Federation paths
209
+ identified in [LICENSE](./LICENSE) use the EventCatalog Commercial License.
@@ -36,7 +36,7 @@ module.exports = __toCommonJS(analytics_exports);
36
36
  var import_os = __toESM(require("os"), 1);
37
37
 
38
38
  // package.json
39
- var version = "4.7.5";
39
+ var version = "4.7.7";
40
40
 
41
41
  // src/constants.ts
42
42
  var VERSION = version;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  raiseEvent
3
- } from "../chunk-2BYTIH4L.js";
4
- import "../chunk-ZBPMCEXS.js";
3
+ } from "../chunk-MQEV3YUV.js";
4
+ import "../chunk-JBNUHFT4.js";
5
5
  export {
6
6
  raiseEvent
7
7
  };
@@ -140,7 +140,7 @@ var verifyRequiredFieldsAreInCatalogConfigFile = async (projectDirectory) => {
140
140
  var import_os = __toESM(require("os"), 1);
141
141
 
142
142
  // package.json
143
- var version = "4.7.5";
143
+ var version = "4.7.7";
144
144
 
145
145
  // src/constants.ts
146
146
  var VERSION = version;
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  log_build_default
3
- } from "../chunk-QJRY6Q7S.js";
4
- import "../chunk-2BYTIH4L.js";
3
+ } from "../chunk-5ASZ2V3F.js";
4
+ import "../chunk-MQEV3YUV.js";
5
5
  import "../chunk-K2XIENVT.js";
6
- import "../chunk-ZBPMCEXS.js";
6
+ import "../chunk-JBNUHFT4.js";
7
7
  import "../chunk-6QENHZZP.js";
8
8
  export {
9
9
  log_build_default as default
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  raiseEvent
3
- } from "./chunk-2BYTIH4L.js";
3
+ } from "./chunk-MQEV3YUV.js";
4
4
  import {
5
5
  countResources,
6
6
  serializeCounts
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VERSION
3
- } from "./chunk-ZBPMCEXS.js";
3
+ } from "./chunk-JBNUHFT4.js";
4
4
 
5
5
  // src/utils/cli-logger.ts
6
6
  import pc from "picocolors";
@@ -0,0 +1,7 @@
1
+ // src/federation/entitlement.ts
2
+ import { isEventCatalogScaleEnabled } from "@eventcatalog/license";
3
+ var isFederationEnabled = () => isEventCatalogScaleEnabled();
4
+
5
+ export {
6
+ isFederationEnabled
7
+ };
@@ -1,5 +1,5 @@
1
1
  // package.json
2
- var version = "4.7.5";
2
+ var version = "4.7.7";
3
3
 
4
4
  // src/constants.ts
5
5
  var VERSION = version;
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-5EPNFDT5.js";
7
7
  import {
8
8
  createFederationSourceProvider
9
- } from "./chunk-A2RZR3U4.js";
9
+ } from "./chunk-6K7XZAYI.js";
10
10
  import {
11
11
  createFederationContentCache
12
12
  } from "./chunk-R7Z5ALYI.js";
@@ -14,6 +14,9 @@ import {
14
14
  getFederationDiagnostics,
15
15
  resolveFederationRules
16
16
  } from "./chunk-JJPB6EOZ.js";
17
+ import {
18
+ isFederationEnabled
19
+ } from "./chunk-DDALKGTF.js";
17
20
  import {
18
21
  getEventCatalogConfigFile
19
22
  } from "./chunk-6QENHZZP.js";
@@ -142,7 +145,7 @@ var federateCatalog = async (projectDirectory, options = {}) => {
142
145
  await cleanupPreviousFederation(projectDirectory, options.onProgress);
143
146
  return null;
144
147
  }
145
- if (options.isFederationEnabled && !await options.isFederationEnabled()) {
148
+ if (!await isFederationEnabled()) {
146
149
  throw new Error(
147
150
  "Cannot federate catalogs: EventCatalog federation is an Enterprise feature. Visit https://www.eventcatalog.dev/pricing to enable federation."
148
151
  );
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VERSION
3
- } from "./chunk-ZBPMCEXS.js";
3
+ } from "./chunk-JBNUHFT4.js";
4
4
 
5
5
  // src/analytics/analytics.js
6
6
  import os from "os";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  logger
3
- } from "./chunk-QQPH6RCB.js";
3
+ } from "./chunk-AU344G4Q.js";
4
4
  import {
5
5
  cleanup,
6
6
  getEventCatalogConfigFile
@@ -25,7 +25,7 @@ __export(constants_exports, {
25
25
  module.exports = __toCommonJS(constants_exports);
26
26
 
27
27
  // package.json
28
- var version = "4.7.5";
28
+ var version = "4.7.7";
29
29
 
30
30
  // src/constants.ts
31
31
  var VERSION = version;
package/dist/constants.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VERSION
3
- } from "./chunk-ZBPMCEXS.js";
3
+ } from "./chunk-JBNUHFT4.js";
4
4
  export {
5
5
  VERSION
6
6
  };
@@ -144,7 +144,7 @@ var verifyRequiredFieldsAreInCatalogConfigFile = async (projectDirectory) => {
144
144
  var import_picocolors = __toESM(require("picocolors"), 1);
145
145
 
146
146
  // package.json
147
- var version = "4.7.5";
147
+ var version = "4.7.7";
148
148
 
149
149
  // src/constants.ts
150
150
  var VERSION = version;
@@ -412,7 +412,7 @@ var reportCloudResourceInventory = async (configFile, resourceCounts) => {
412
412
  })
413
413
  });
414
414
  };
415
- var main = async (projectDir, { isEventCatalogStarterEnabled: isEventCatalogStarterEnabled2, isEventCatalogScaleEnabled: isEventCatalogScaleEnabled2, isBackstagePluginEnabled }) => {
415
+ var main = async (projectDir, { isEventCatalogStarterEnabled: isEventCatalogStarterEnabled2, isEventCatalogScaleEnabled: isEventCatalogScaleEnabled3, isBackstagePluginEnabled }) => {
416
416
  try {
417
417
  await verifyRequiredFieldsAreInCatalogConfigFile(projectDir);
418
418
  const configFile = await getEventCatalogConfigFile(projectDir);
@@ -421,7 +421,7 @@ var main = async (projectDir, { isEventCatalogStarterEnabled: isEventCatalogStar
421
421
  if (isEventCatalogStarterEnabled2) {
422
422
  generatorNames.push("@eventcatalog/eventcatalog-starter");
423
423
  }
424
- if (isEventCatalogScaleEnabled2) {
424
+ if (isEventCatalogScaleEnabled3) {
425
425
  generatorNames.push("@eventcatalog/eventcatalog-scale");
426
426
  }
427
427
  if (isBackstagePluginEnabled) {
@@ -2121,6 +2121,10 @@ var getFederationDiagnosticCounts = (diagnostics) => diagnostics.reduce(
2121
2121
  );
2122
2122
  var getVisibleFederationDiagnostics = (diagnostics, verbose) => diagnostics.filter((diagnostic) => verbose || diagnostic.severity === "error");
2123
2123
 
2124
+ // src/federation/entitlement.ts
2125
+ var import_license = require("@eventcatalog/license");
2126
+ var isFederationEnabled = () => (0, import_license.isEventCatalogScaleEnabled)();
2127
+
2124
2128
  // src/federation/output-transaction.ts
2125
2129
  var import_promises5 = __toESM(require("fs/promises"), 1);
2126
2130
  var import_node_path12 = __toESM(require("path"), 1);
@@ -2712,7 +2716,7 @@ var federateCatalog = async (projectDirectory, options = {}) => {
2712
2716
  await cleanupPreviousFederation(projectDirectory, options.onProgress);
2713
2717
  return null;
2714
2718
  }
2715
- if (options.isFederationEnabled && !await options.isFederationEnabled()) {
2719
+ if (!await isFederationEnabled()) {
2716
2720
  throw new Error(
2717
2721
  "Cannot federate catalogs: EventCatalog federation is an Enterprise feature. Visit https://www.eventcatalog.dev/pricing to enable federation."
2718
2722
  );
@@ -2840,7 +2844,7 @@ var federateCatalog = async (projectDirectory, options = {}) => {
2840
2844
  };
2841
2845
 
2842
2846
  // src/eventcatalog.ts
2843
- var import_license = require("@eventcatalog/license");
2847
+ var import_license2 = require("@eventcatalog/license");
2844
2848
  var currentDir = import_node_path18.default.dirname((0, import_node_url.fileURLToPath)(importMetaUrl));
2845
2849
  var program = new import_commander.Command().version(VERSION);
2846
2850
  var dir = import_node_path18.default.resolve(process.env.PROJECT_DIR || process.cwd());
@@ -3113,12 +3117,12 @@ program.command("dev").description("Run development server of EventCatalog").opt
3113
3117
  await runMigrations(dir);
3114
3118
  await catalogToAstro(dir, core);
3115
3119
  const config = await getEventCatalogConfigFile(dir);
3116
- const canEmbedPages = await (0, import_license.isFeatureEnabled)(
3120
+ const canEmbedPages = await (0, import_license2.isFeatureEnabled)(
3117
3121
  "@eventcatalog/backstage-plugin-eventcatalog",
3118
3122
  process.env.EVENTCATALOG_LICENSE_KEY_BACKSTAGE
3119
3123
  );
3120
- const isEventCatalogStarter = await (0, import_license.isEventCatalogStarterEnabled)();
3121
- const isEventCatalogScale = await (0, import_license.isEventCatalogScaleEnabled)();
3124
+ const isEventCatalogStarter = await (0, import_license2.isEventCatalogStarterEnabled)();
3125
+ const isEventCatalogScale = await (0, import_license2.isEventCatalogScaleEnabled)();
3122
3126
  if (isServer) {
3123
3127
  try {
3124
3128
  logger.info("Building fields index...", "fields");
@@ -3184,12 +3188,12 @@ program.command("build").description("Run build of EventCatalog").action(async (
3184
3188
  }
3185
3189
  await verifyRequiredFieldsAreInCatalogConfigFile(dir);
3186
3190
  copyCore();
3187
- const isBackstagePluginEnabled = await (0, import_license.isFeatureEnabled)(
3191
+ const isBackstagePluginEnabled = await (0, import_license2.isFeatureEnabled)(
3188
3192
  "@eventcatalog/backstage-plugin-eventcatalog",
3189
3193
  process.env.EVENTCATALOG_LICENSE_KEY_BACKSTAGE
3190
3194
  );
3191
- const isEventCatalogStarter = await (0, import_license.isEventCatalogStarterEnabled)();
3192
- const isEventCatalogScale = await (0, import_license.isEventCatalogScaleEnabled)();
3195
+ const isEventCatalogStarter = await (0, import_license2.isEventCatalogStarterEnabled)();
3196
+ const isEventCatalogScale = await (0, import_license2.isEventCatalogScaleEnabled)();
3193
3197
  const canEmbedPages = isBackstagePluginEnabled || isEventCatalogScale;
3194
3198
  await log_build_default(dir, {
3195
3199
  isEventCatalogStarterEnabled: isEventCatalogStarter,
@@ -3285,12 +3289,12 @@ program.command("preview").description("Serves the contents of your eventcatalog
3285
3289
  if (import_fs3.default.existsSync(import_node_path18.default.join(dir, ".env"))) {
3286
3290
  import_dotenv.default.config({ path: import_node_path18.default.join(dir, ".env") });
3287
3291
  }
3288
- const canEmbedPages = await (0, import_license.isFeatureEnabled)(
3292
+ const canEmbedPages = await (0, import_license2.isFeatureEnabled)(
3289
3293
  "@eventcatalog/backstage-plugin-eventcatalog",
3290
3294
  process.env.EVENTCATALOG_LICENSE_KEY_BACKSTAGE
3291
3295
  );
3292
- const isEventCatalogStarter = await (0, import_license.isEventCatalogStarterEnabled)();
3293
- const isEventCatalogScale = await (0, import_license.isEventCatalogScaleEnabled)();
3296
+ const isEventCatalogStarter = await (0, import_license2.isEventCatalogStarterEnabled)();
3297
+ const isEventCatalogScale = await (0, import_license2.isEventCatalogScaleEnabled)();
3294
3298
  await previewCatalog({
3295
3299
  command,
3296
3300
  canEmbedPages: canEmbedPages || isEventCatalogScale,
@@ -3304,12 +3308,12 @@ program.command("start").description("Serves the contents of your eventcatalog b
3304
3308
  if (import_fs3.default.existsSync(import_node_path18.default.join(dir, ".env"))) {
3305
3309
  import_dotenv.default.config({ path: import_node_path18.default.join(dir, ".env") });
3306
3310
  }
3307
- const canEmbedPages = await (0, import_license.isFeatureEnabled)(
3311
+ const canEmbedPages = await (0, import_license2.isFeatureEnabled)(
3308
3312
  "@eventcatalog/backstage-plugin-eventcatalog",
3309
3313
  process.env.EVENTCATALOG_LICENSE_KEY_BACKSTAGE
3310
3314
  );
3311
- const isEventCatalogStarter = await (0, import_license.isEventCatalogStarterEnabled)();
3312
- const isEventCatalogScale = await (0, import_license.isEventCatalogScaleEnabled)();
3315
+ const isEventCatalogStarter = await (0, import_license2.isEventCatalogStarterEnabled)();
3316
+ const isEventCatalogScale = await (0, import_license2.isEventCatalogScaleEnabled)();
3313
3317
  const isServerOutput = await isOutputServer();
3314
3318
  if (isServerOutput) {
3315
3319
  await startServerCatalog({
@@ -3452,7 +3456,6 @@ program.command("federate").description("Fetch, resolve, and hydrate the catalog
3452
3456
  let cleanedPreviousOutput = false;
3453
3457
  const result = await federateCatalog(dir, {
3454
3458
  useCache: commandOptions.cache,
3455
- isFederationEnabled: import_license.isEventCatalogScaleEnabled,
3456
3459
  onProgress: (event) => {
3457
3460
  if (event.type === "cleanup:complete") cleanedPreviousOutput = true;
3458
3461
  reportFederationProgress(event, commandOptions.verbose);
@@ -4,24 +4,25 @@ import {
4
4
  import "./chunk-CA4U2JP7.js";
5
5
  import {
6
6
  log_build_default
7
- } from "./chunk-QJRY6Q7S.js";
8
- import "./chunk-2BYTIH4L.js";
7
+ } from "./chunk-5ASZ2V3F.js";
8
+ import "./chunk-MQEV3YUV.js";
9
9
  import "./chunk-K2XIENVT.js";
10
10
  import {
11
11
  FederationConflictError,
12
12
  FederationDiagnosticError,
13
13
  federateCatalog
14
- } from "./chunk-GYYYAUJD.js";
14
+ } from "./chunk-MLIR3NL4.js";
15
15
  import "./chunk-WRNH5C3U.js";
16
16
  import "./chunk-5EPNFDT5.js";
17
- import "./chunk-A2RZR3U4.js";
17
+ import "./chunk-6K7XZAYI.js";
18
+ import "./chunk-352FGP6W.js";
18
19
  import "./chunk-R7Z5ALYI.js";
19
20
  import {
20
21
  getFederationDiagnosticCounts,
21
22
  getVisibleFederationDiagnostics
22
23
  } from "./chunk-JJPB6EOZ.js";
24
+ import "./chunk-DDALKGTF.js";
23
25
  import "./chunk-SDZQJTJW.js";
24
- import "./chunk-352FGP6W.js";
25
26
  import {
26
27
  getProjectOutDir,
27
28
  isAuthEnabled,
@@ -30,10 +31,10 @@ import {
30
31
  } from "./chunk-B7HCX5HM.js";
31
32
  import {
32
33
  generate
33
- } from "./chunk-EUZT4RKY.js";
34
+ } from "./chunk-QYK2OJMS.js";
34
35
  import {
35
36
  logger
36
- } from "./chunk-QQPH6RCB.js";
37
+ } from "./chunk-AU344G4Q.js";
37
38
  import {
38
39
  resolve_catalog_dependencies_default
39
40
  } from "./chunk-LHR4G2UO.js";
@@ -53,7 +54,7 @@ import {
53
54
  import "./chunk-W5JQON7Z.js";
54
55
  import {
55
56
  VERSION
56
- } from "./chunk-ZBPMCEXS.js";
57
+ } from "./chunk-JBNUHFT4.js";
57
58
  import {
58
59
  linkCoreNodeModules,
59
60
  resolveInstalledCoreNodeModules
@@ -1238,7 +1239,6 @@ program.command("federate").description("Fetch, resolve, and hydrate the catalog
1238
1239
  let cleanedPreviousOutput = false;
1239
1240
  const result = await federateCatalog(dir, {
1240
1241
  useCache: commandOptions.cache,
1241
- isFederationEnabled: isEventCatalogScaleEnabled,
1242
1242
  onProgress: (event) => {
1243
1243
  if (event.type === "cleanup:complete") cleanedPreviousOutput = true;
1244
1244
  reportFederationProgress(event, commandOptions.verbose);
@@ -1,5 +1,10 @@
1
1
  import { Cache } from '@eventcatalog/sdk';
2
2
 
3
+ /**
4
+ * Licensed under the EventCatalog Commercial License.
5
+ * See /packages/core/src/federation/LICENSE
6
+ */
7
+
3
8
  type FederationContentCacheOptions = {
4
9
  read?: boolean;
5
10
  onHit?: (key: string) => void;
@@ -1,5 +1,10 @@
1
1
  import { Cache } from '@eventcatalog/sdk';
2
2
 
3
+ /**
4
+ * Licensed under the EventCatalog Commercial License.
5
+ * See /packages/core/src/federation/LICENSE
6
+ */
7
+
3
8
  type FederationContentCacheOptions = {
4
9
  read?: boolean;
5
10
  onHit?: (key: string) => void;
@@ -1,6 +1,11 @@
1
1
  import { ResolvedGraph } from '@eventcatalog/sdk';
2
2
  import { FederationRuleId, FederationRuleLevel, FederationRulesConfig } from '../eventcatalog.config.cjs';
3
3
 
4
+ /**
5
+ * Licensed under the EventCatalog Commercial License.
6
+ * See /packages/core/src/federation/LICENSE
7
+ */
8
+
4
9
  type FederationDiagnostic = {
5
10
  severity: 'error' | 'warning';
6
11
  message: string;
@@ -1,6 +1,11 @@
1
1
  import { ResolvedGraph } from '@eventcatalog/sdk';
2
2
  import { FederationRuleId, FederationRuleLevel, FederationRulesConfig } from '../eventcatalog.config.js';
3
3
 
4
+ /**
5
+ * Licensed under the EventCatalog Commercial License.
6
+ * See /packages/core/src/federation/LICENSE
7
+ */
8
+
4
9
  type FederationDiagnostic = {
5
10
  severity: 'error' | 'warning';
6
11
  message: string;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/federation/entitlement.ts
21
+ var entitlement_exports = {};
22
+ __export(entitlement_exports, {
23
+ isFederationEnabled: () => isFederationEnabled
24
+ });
25
+ module.exports = __toCommonJS(entitlement_exports);
26
+ var import_license = require("@eventcatalog/license");
27
+ var isFederationEnabled = () => (0, import_license.isEventCatalogScaleEnabled)();
28
+ // Annotate the CommonJS export names for ESM import in node:
29
+ 0 && (module.exports = {
30
+ isFederationEnabled
31
+ });
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Licensed under the EventCatalog Commercial License.
3
+ * See /packages/core/src/federation/LICENSE
4
+ */
5
+ /**
6
+ * Federation is currently enabled through the Scale entitlement. Keep callers
7
+ * plan-agnostic so this can move to the Enterprise offline entitlement without
8
+ * changing the federation workflow.
9
+ */
10
+ declare const isFederationEnabled: () => Promise<boolean>;
11
+
12
+ export { isFederationEnabled };
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Licensed under the EventCatalog Commercial License.
3
+ * See /packages/core/src/federation/LICENSE
4
+ */
5
+ /**
6
+ * Federation is currently enabled through the Scale entitlement. Keep callers
7
+ * plan-agnostic so this can move to the Enterprise offline entitlement without
8
+ * changing the federation workflow.
9
+ */
10
+ declare const isFederationEnabled: () => Promise<boolean>;
11
+
12
+ export { isFederationEnabled };
@@ -0,0 +1,6 @@
1
+ import {
2
+ isFederationEnabled
3
+ } from "../chunk-DDALKGTF.js";
4
+ export {
5
+ isFederationEnabled
6
+ };
@@ -294,6 +294,10 @@ var getFederationDiagnostics = (graph, rules = {}) => {
294
294
  );
295
295
  };
296
296
 
297
+ // src/federation/entitlement.ts
298
+ var import_license = require("@eventcatalog/license");
299
+ var isFederationEnabled = () => (0, import_license.isEventCatalogScaleEnabled)();
300
+
297
301
  // src/federation/output-transaction.ts
298
302
  var import_promises3 = __toESM(require("fs/promises"), 1);
299
303
  var import_node_path3 = __toESM(require("path"), 1);
@@ -885,7 +889,7 @@ var federateCatalog = async (projectDirectory, options = {}) => {
885
889
  await cleanupPreviousFederation(projectDirectory, options.onProgress);
886
890
  return null;
887
891
  }
888
- if (options.isFederationEnabled && !await options.isFederationEnabled()) {
892
+ if (!await isFederationEnabled()) {
889
893
  throw new Error(
890
894
  "Cannot federate catalogs: EventCatalog federation is an Enterprise feature. Visit https://www.eventcatalog.dev/pricing to enable federation."
891
895
  );
@@ -4,6 +4,11 @@ import { FederationDiagnostic } from './diagnostics.cjs';
4
4
  import { PublicAssetCompositionResult } from './public-assets.cjs';
5
5
  import { FederationSourceProvider } from './types.cjs';
6
6
 
7
+ /**
8
+ * Licensed under the EventCatalog Commercial License.
9
+ * See /packages/core/src/federation/LICENSE
10
+ */
11
+
7
12
  type FederationProgressEvent = {
8
13
  type: 'configured';
9
14
  sources: number;
@@ -73,7 +78,6 @@ type FederateCatalogOptions = {
73
78
  onProgress?: (event: FederationProgressEvent) => void;
74
79
  now?: () => Date;
75
80
  useCache?: boolean;
76
- isFederationEnabled?: () => Promise<boolean>;
77
81
  };
78
82
  declare class FederationConflictError extends Error {
79
83
  conflicts: Conflict[];
@@ -4,6 +4,11 @@ import { FederationDiagnostic } from './diagnostics.js';
4
4
  import { PublicAssetCompositionResult } from './public-assets.js';
5
5
  import { FederationSourceProvider } from './types.js';
6
6
 
7
+ /**
8
+ * Licensed under the EventCatalog Commercial License.
9
+ * See /packages/core/src/federation/LICENSE
10
+ */
11
+
7
12
  type FederationProgressEvent = {
8
13
  type: 'configured';
9
14
  sources: number;
@@ -73,7 +78,6 @@ type FederateCatalogOptions = {
73
78
  onProgress?: (event: FederationProgressEvent) => void;
74
79
  now?: () => Date;
75
80
  useCache?: boolean;
76
- isFederationEnabled?: () => Promise<boolean>;
77
81
  };
78
82
  declare class FederationConflictError extends Error {
79
83
  conflicts: Conflict[];
@@ -2,14 +2,15 @@ import {
2
2
  FederationConflictError,
3
3
  FederationDiagnosticError,
4
4
  federateCatalog
5
- } from "../chunk-GYYYAUJD.js";
5
+ } from "../chunk-MLIR3NL4.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";
12
+ import "../chunk-DDALKGTF.js";
11
13
  import "../chunk-SDZQJTJW.js";
12
- import "../chunk-352FGP6W.js";
13
14
  import "../chunk-6QENHZZP.js";
14
15
  export {
15
16
  FederationConflictError,
@@ -2,6 +2,11 @@ import { FederationSourceProvider } from './types.cjs';
2
2
  import '@eventcatalog/sdk';
3
3
  import '../eventcatalog.config.cjs';
4
4
 
5
+ /**
6
+ * Licensed under the EventCatalog Commercial License.
7
+ * See /packages/core/src/federation/LICENSE
8
+ */
9
+
5
10
  declare const createFileSystemSourceProvider: (projectDirectory: string) => FederationSourceProvider;
6
11
 
7
12
  export { createFileSystemSourceProvider };
@@ -2,6 +2,11 @@ import { FederationSourceProvider } from './types.js';
2
2
  import '@eventcatalog/sdk';
3
3
  import '../eventcatalog.config.js';
4
4
 
5
+ /**
6
+ * Licensed under the EventCatalog Commercial License.
7
+ * See /packages/core/src/federation/LICENSE
8
+ */
9
+
5
10
  declare const createFileSystemSourceProvider: (projectDirectory: string) => FederationSourceProvider;
6
11
 
7
12
  export { createFileSystemSourceProvider };
@@ -2,6 +2,11 @@ import { FederationSourceConfig } from '../eventcatalog.config.cjs';
2
2
  import { FederationSourceProvider } from './types.cjs';
3
3
  import '@eventcatalog/sdk';
4
4
 
5
+ /**
6
+ * Licensed under the EventCatalog Commercial License.
7
+ * See /packages/core/src/federation/LICENSE
8
+ */
9
+
5
10
  type FetchResponse = Pick<Response, 'status' | 'statusText' | 'ok' | 'arrayBuffer'>;
6
11
  type FetchFunction = (url: string, init?: RequestInit) => Promise<FetchResponse>;
7
12
  type ExecFileFunction = (file: string, args: string[], options: {
@@ -2,6 +2,11 @@ import { FederationSourceConfig } from '../eventcatalog.config.js';
2
2
  import { FederationSourceProvider } from './types.js';
3
3
  import '@eventcatalog/sdk';
4
4
 
5
+ /**
6
+ * Licensed under the EventCatalog Commercial License.
7
+ * See /packages/core/src/federation/LICENSE
8
+ */
9
+
5
10
  type FetchResponse = Pick<Response, 'status' | 'statusText' | 'ok' | 'arrayBuffer'>;
6
11
  type FetchFunction = (url: string, init?: RequestInit) => Promise<FetchResponse>;
7
12
  type ExecFileFunction = (file: string, args: string[], options: {
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Licensed under the EventCatalog Commercial License.
3
+ * See /packages/core/src/federation/LICENSE
4
+ */
1
5
  declare const withFederationOutputTransaction: <Result>(projectDirectory: string, outDir: string, relativePublicPaths: Iterable<string>, update: () => Promise<Result>) => Promise<Result>;
2
6
 
3
7
  export { withFederationOutputTransaction };
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Licensed under the EventCatalog Commercial License.
3
+ * See /packages/core/src/federation/LICENSE
4
+ */
1
5
  declare const withFederationOutputTransaction: <Result>(projectDirectory: string, outDir: string, relativePublicPaths: Iterable<string>, update: () => Promise<Result>) => Promise<Result>;
2
6
 
3
7
  export { withFederationOutputTransaction };
@@ -1,5 +1,10 @@
1
1
  import { ResolvedAsset } from '@eventcatalog/sdk';
2
2
 
3
+ /**
4
+ * Licensed under the EventCatalog Commercial License.
5
+ * See /packages/core/src/federation/LICENSE
6
+ */
7
+
3
8
  type FederatedPublicFile = {
4
9
  source: string;
5
10
  hash: string;
@@ -1,5 +1,10 @@
1
1
  import { ResolvedAsset } from '@eventcatalog/sdk';
2
2
 
3
+ /**
4
+ * Licensed under the EventCatalog Commercial License.
5
+ * See /packages/core/src/federation/LICENSE
6
+ */
7
+
3
8
  type FederatedPublicFile = {
4
9
  source: string;
5
10
  hash: string;
@@ -2,6 +2,11 @@ import { FederationSourceProvider } from './types.cjs';
2
2
  import '@eventcatalog/sdk';
3
3
  import '../eventcatalog.config.cjs';
4
4
 
5
+ /**
6
+ * Licensed under the EventCatalog Commercial License.
7
+ * See /packages/core/src/federation/LICENSE
8
+ */
9
+
5
10
  type FederationSourceProviders = {
6
11
  github?: FederationSourceProvider;
7
12
  filesystem?: FederationSourceProvider;
@@ -2,6 +2,11 @@ import { FederationSourceProvider } from './types.js';
2
2
  import '@eventcatalog/sdk';
3
3
  import '../eventcatalog.config.js';
4
4
 
5
+ /**
6
+ * Licensed under the EventCatalog Commercial License.
7
+ * See /packages/core/src/federation/LICENSE
8
+ */
9
+
5
10
  type FederationSourceProviders = {
6
11
  github?: FederationSourceProvider;
7
12
  filesystem?: FederationSourceProvider;
@@ -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
  };
@@ -1,6 +1,11 @@
1
1
  import { Index } from '@eventcatalog/sdk';
2
2
  import { FederationSourceConfig } from '../eventcatalog.config.cjs';
3
3
 
4
+ /**
5
+ * Licensed under the EventCatalog Commercial License.
6
+ * See /packages/core/src/federation/LICENSE
7
+ */
8
+
4
9
  type ResolvedFederationSource = {
5
10
  bytes: Buffer;
6
11
  index: Index;
@@ -1,6 +1,11 @@
1
1
  import { Index } from '@eventcatalog/sdk';
2
2
  import { FederationSourceConfig } from '../eventcatalog.config.js';
3
3
 
4
+ /**
5
+ * Licensed under the EventCatalog Commercial License.
6
+ * See /packages/core/src/federation/LICENSE
7
+ */
8
+
4
9
  type ResolvedFederationSource = {
5
10
  bytes: Buffer;
6
11
  index: Index;
package/dist/generate.cjs CHANGED
@@ -108,7 +108,7 @@ var getEventCatalogConfigFile = async (projectDirectory) => {
108
108
  var import_picocolors = __toESM(require("picocolors"), 1);
109
109
 
110
110
  // package.json
111
- var version = "4.7.5";
111
+ var version = "4.7.7";
112
112
 
113
113
  // src/constants.ts
114
114
  var VERSION = version;
package/dist/generate.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  generate
3
- } from "./chunk-EUZT4RKY.js";
4
- import "./chunk-QQPH6RCB.js";
5
- import "./chunk-ZBPMCEXS.js";
3
+ } from "./chunk-QYK2OJMS.js";
4
+ import "./chunk-AU344G4Q.js";
5
+ import "./chunk-JBNUHFT4.js";
6
6
  import "./chunk-6QENHZZP.js";
7
7
  export {
8
8
  generate
@@ -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 = "4.7.5";
39
+ var version = "4.7.7";
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-QQPH6RCB.js";
4
- import "../chunk-ZBPMCEXS.js";
3
+ } from "../chunk-AU344G4Q.js";
4
+ import "../chunk-JBNUHFT4.js";
5
5
  export {
6
6
  logger
7
7
  };
@@ -28,9 +28,10 @@ export const eventCatalogLikeC4 = async (workspaceDir: string): Promise<Plugin[]
28
28
  return [registry];
29
29
  }
30
30
 
31
- const LikeC4VitePlugin = await loadLikeC4VitePlugin(workspaceDir);
31
+ const { LikeC4VitePlugin, resolveLikeC4Dependency } = await loadLikeC4(workspaceDir);
32
32
 
33
33
  return [
34
+ likeC4DependencyResolver(resolveLikeC4Dependency),
34
35
  LikeC4VitePlugin({
35
36
  workspace: workspaceDir,
36
37
  }),
@@ -47,7 +48,7 @@ const hasLikeC4Sources = (workspaceDir: string) => {
47
48
  );
48
49
  };
49
50
 
50
- const loadLikeC4VitePlugin = async (workspaceDir: string) => {
51
+ const loadLikeC4 = async (workspaceDir: string) => {
51
52
  try {
52
53
  const requireFromCatalog = createRequire(join(workspaceDir, 'package.json'));
53
54
  const likeC4VitePluginPath = requireFromCatalog.resolve('likec4/vite-plugin');
@@ -57,12 +58,32 @@ const loadLikeC4VitePlugin = async (workspaceDir: string) => {
57
58
  throw new Error('The installed likec4 package does not export LikeC4VitePlugin from likec4/vite-plugin.');
58
59
  }
59
60
 
60
- return likeC4.LikeC4VitePlugin;
61
+ return {
62
+ LikeC4VitePlugin: likeC4.LikeC4VitePlugin,
63
+ resolveLikeC4Dependency: (id: string) => requireFromCatalog.resolve(id),
64
+ };
61
65
  } catch (error) {
62
66
  throw new Error(`${likeC4InstallMessage}\n\n${error instanceof Error ? error.message : String(error)}`);
63
67
  }
64
68
  };
65
69
 
70
+ const likeC4DependencyResolver = (resolveLikeC4Dependency: (id: string) => string): Plugin => ({
71
+ name: 'eventcatalog-likec4-dependency-resolver',
72
+ enforce: 'pre',
73
+
74
+ resolveId(id) {
75
+ if (!id.startsWith('likec4/')) {
76
+ return;
77
+ }
78
+
79
+ try {
80
+ return resolveLikeC4Dependency(id);
81
+ } catch {
82
+ return;
83
+ }
84
+ },
85
+ });
86
+
66
87
  const likeC4ProjectRegistry = (workspaceDir: string, enabled: boolean): Plugin => {
67
88
  let discoveredProjects: string[] = [];
68
89
 
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  },
8
8
  "license": "SEE LICENSE IN LICENSE",
9
9
  "type": "module",
10
- "version": "4.7.5",
10
+ "version": "4.7.7",
11
11
  "publishConfig": {
12
12
  "access": "public"
13
13
  },
@@ -120,8 +120,8 @@
120
120
  "uuid": "^11.1.1",
121
121
  "zod": "^4.3.6",
122
122
  "@eventcatalog/linter": "1.1.14",
123
- "@eventcatalog/sdk": "2.27.4",
124
- "@eventcatalog/visualiser": "^4.1.3"
123
+ "@eventcatalog/visualiser": "^4.1.3",
124
+ "@eventcatalog/sdk": "2.27.4"
125
125
  },
126
126
  "devDependencies": {
127
127
  "@astrojs/check": "^0.9.10",
@@ -1,9 +1,9 @@
1
- import {
2
- createFileSystemSourceProvider
3
- } from "./chunk-SDZQJTJW.js";
4
1
  import {
5
2
  createGitHubSourceProvider
6
3
  } from "./chunk-352FGP6W.js";
4
+ import {
5
+ createFileSystemSourceProvider
6
+ } from "./chunk-SDZQJTJW.js";
7
7
 
8
8
  // src/federation/source-provider.ts
9
9
  var createFederationSourceProvider = (projectDirectory, providers = {}) => {