@eventcatalog/core 4.0.0-beta.2 → 4.0.0-beta.4

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.
@@ -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.0.0-beta.2";
39
+ var version = "4.0.0-beta.4";
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-24K6JJV5.js";
4
- import "../chunk-FLLYUYF2.js";
3
+ } from "../chunk-UEHTKW2J.js";
4
+ import "../chunk-MXQU7LIK.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.0.0-beta.2";
143
+ var version = "4.0.0-beta.4";
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-7NOXTLJP.js";
4
- import "../chunk-24K6JJV5.js";
3
+ } from "../chunk-XBTX7MAH.js";
4
+ import "../chunk-UEHTKW2J.js";
5
5
  import "../chunk-DAOXTQVS.js";
6
- import "../chunk-FLLYUYF2.js";
6
+ import "../chunk-MXQU7LIK.js";
7
7
  import "../chunk-6QENHZZP.js";
8
8
  export {
9
9
  log_build_default as default
@@ -1,5 +1,5 @@
1
1
  // package.json
2
- var version = "4.0.0-beta.2";
2
+ var version = "4.0.0-beta.4";
3
3
 
4
4
  // src/constants.ts
5
5
  var VERSION = version;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  logger
3
- } from "./chunk-JRCXVY3E.js";
3
+ } from "./chunk-VV55P2IC.js";
4
4
  import {
5
5
  cleanup,
6
6
  getEventCatalogConfigFile
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VERSION
3
- } from "./chunk-FLLYUYF2.js";
3
+ } from "./chunk-MXQU7LIK.js";
4
4
 
5
5
  // src/analytics/analytics.js
6
6
  import os from "os";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VERSION
3
- } from "./chunk-FLLYUYF2.js";
3
+ } from "./chunk-MXQU7LIK.js";
4
4
 
5
5
  // src/utils/cli-logger.ts
6
6
  import pc from "picocolors";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  raiseEvent
3
- } from "./chunk-24K6JJV5.js";
3
+ } from "./chunk-UEHTKW2J.js";
4
4
  import {
5
5
  countResources,
6
6
  serializeCounts
@@ -25,7 +25,7 @@ __export(constants_exports, {
25
25
  module.exports = __toCommonJS(constants_exports);
26
26
 
27
27
  // package.json
28
- var version = "4.0.0-beta.2";
28
+ var version = "4.0.0-beta.4";
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-FLLYUYF2.js";
3
+ } from "./chunk-MXQU7LIK.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.0.0-beta.2";
147
+ var version = "4.0.0-beta.4";
148
148
 
149
149
  // src/constants.ts
150
150
  var VERSION = version;
@@ -1,16 +1,14 @@
1
1
  import {
2
2
  log_build_default
3
- } from "./chunk-7NOXTLJP.js";
4
- import {
5
- runMigrations
6
- } from "./chunk-XUAF2H54.js";
7
- import "./chunk-CA4U2JP7.js";
3
+ } from "./chunk-XBTX7MAH.js";
4
+ import "./chunk-UEHTKW2J.js";
5
+ import "./chunk-DAOXTQVS.js";
8
6
  import {
9
7
  generate
10
- } from "./chunk-IK6AW6IC.js";
8
+ } from "./chunk-Q5VOFKXM.js";
11
9
  import {
12
10
  logger
13
- } from "./chunk-JRCXVY3E.js";
11
+ } from "./chunk-VV55P2IC.js";
14
12
  import {
15
13
  resolve_catalog_dependencies_default
16
14
  } from "./chunk-LHR4G2UO.js";
@@ -20,15 +18,17 @@ import {
20
18
  import {
21
19
  watch
22
20
  } from "./chunk-O3Y2G6CY.js";
23
- import "./chunk-24K6JJV5.js";
24
- import "./chunk-DAOXTQVS.js";
21
+ import {
22
+ runMigrations
23
+ } from "./chunk-XUAF2H54.js";
24
+ import "./chunk-CA4U2JP7.js";
25
25
  import {
26
26
  catalogToAstro
27
27
  } from "./chunk-WQNKHIDM.js";
28
28
  import "./chunk-VC6VUJIX.js";
29
29
  import {
30
30
  VERSION
31
- } from "./chunk-FLLYUYF2.js";
31
+ } from "./chunk-MXQU7LIK.js";
32
32
  import {
33
33
  linkCoreNodeModules,
34
34
  resolveInstalledCoreNodeModules
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.0.0-beta.2";
111
+ var version = "4.0.0-beta.4";
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-IK6AW6IC.js";
4
- import "./chunk-JRCXVY3E.js";
5
- import "./chunk-FLLYUYF2.js";
3
+ } from "./chunk-Q5VOFKXM.js";
4
+ import "./chunk-VV55P2IC.js";
5
+ import "./chunk-MXQU7LIK.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.0.0-beta.2";
39
+ var version = "4.0.0-beta.4";
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-JRCXVY3E.js";
4
- import "../chunk-FLLYUYF2.js";
3
+ } from "../chunk-VV55P2IC.js";
4
+ import "../chunk-MXQU7LIK.js";
5
5
  export {
6
6
  logger
7
7
  };
@@ -1,6 +1,5 @@
1
1
  import { defineCollection, reference } from 'astro:content';
2
2
  import { z } from 'astro/zod';
3
- import { glob } from 'astro/loaders';
4
3
  import { glob as globPackage } from 'glob';
5
4
  import { v4 as uuidv4 } from 'uuid';
6
5
  import { badge, ownerReference } from './content.config-shared-collections';
@@ -10,6 +9,7 @@ import path from 'path';
10
9
  import { userTeamDirectoryLoader } from './enterprise/directory/user-team-directory';
11
10
  import config from '@config';
12
11
  import { schemaLoader } from './utils/collections/schema-loader';
12
+ import { globWithSafeWatcher, withIgnoredBuildArtifacts } from './utils/collections/glob-loader';
13
13
 
14
14
  // Enterprise Collections
15
15
  import { customPagesSchema, resourceDocsSchema, resourceDocCategoriesSchema } from './enterprise/collections';
@@ -34,16 +34,8 @@ export const projectDirBase = (() => {
34
34
  return projectDir;
35
35
  })();
36
36
 
37
- const withIgnoredBuildArtifacts = (patterns: string | string[]) => {
38
- if (process.env.IGNORE_BUILD_ARTIFACTS === 'true') {
39
- const ignoredArtifacts = ['!dist/**', '!**/dist/**'];
40
- return Array.isArray(patterns) ? [...patterns, ...ignoredArtifacts] : [patterns, ...ignoredArtifacts];
41
- }
42
- return patterns;
43
- };
44
-
45
37
  const pages = defineCollection({
46
- loader: glob({
38
+ loader: globWithSafeWatcher({
47
39
  pattern: withIgnoredBuildArtifacts(['**/pages/*.(md|mdx)']),
48
40
  base: projectDirBase,
49
41
  }),
@@ -123,7 +115,7 @@ const directoryEntrySource = z.object({
123
115
  });
124
116
 
125
117
  const changelogs = defineCollection({
126
- loader: glob({
118
+ loader: globWithSafeWatcher({
127
119
  pattern: withIgnoredBuildArtifacts(['**/changelog.(md|mdx)']),
128
120
  base: projectDirBase,
129
121
  }),
@@ -264,7 +256,7 @@ const flowStep = z
264
256
  .optional();
265
257
 
266
258
  const flows = defineCollection({
267
- loader: glob({
259
+ loader: globWithSafeWatcher({
268
260
  pattern: withIgnoredBuildArtifacts(['**/flows/**/index.(md|mdx)', '**/flows/**/versioned/*/index.(md|mdx)']),
269
261
  base: projectDirBase,
270
262
  generateId: ({ data }) => {
@@ -372,7 +364,7 @@ const messageDetailsPanelPropertySchema = z.object({
372
364
  });
373
365
 
374
366
  const events = defineCollection({
375
- loader: glob({
367
+ loader: globWithSafeWatcher({
376
368
  pattern: withIgnoredBuildArtifacts(['**/events/*/index.(md|mdx)', '**/events/*/versioned/*/index.(md|mdx)']),
377
369
  base: projectDirBase,
378
370
  generateId: ({ data, ...rest }) => {
@@ -395,7 +387,7 @@ const events = defineCollection({
395
387
  });
396
388
 
397
389
  const commands = defineCollection({
398
- loader: glob({
390
+ loader: globWithSafeWatcher({
399
391
  pattern: withIgnoredBuildArtifacts(['**/commands/*/index.(md|mdx)', '**/commands/*/versioned/*/index.(md|mdx)']),
400
392
  base: projectDirBase,
401
393
  generateId: ({ data }) => {
@@ -418,7 +410,7 @@ const commands = defineCollection({
418
410
  });
419
411
 
420
412
  const queries = defineCollection({
421
- loader: glob({
413
+ loader: globWithSafeWatcher({
422
414
  pattern: withIgnoredBuildArtifacts(['**/queries/*/index.(md|mdx)', '**/queries/*/versioned/*/index.(md|mdx)']),
423
415
  base: projectDirBase,
424
416
  generateId: ({ data }) => {
@@ -453,7 +445,7 @@ const dataProductOutputPointer = z.object({
453
445
  });
454
446
 
455
447
  const dataProducts = defineCollection({
456
- loader: glob({
448
+ loader: globWithSafeWatcher({
457
449
  pattern: withIgnoredBuildArtifacts(['**/data-products/*/index.(md|mdx)', '**/data-products/*/versioned/*/index.(md|mdx)']),
458
450
  base: projectDirBase,
459
451
  generateId: ({ data }) => {
@@ -481,7 +473,7 @@ const dataProducts = defineCollection({
481
473
  });
482
474
 
483
475
  const services = defineCollection({
484
- loader: glob({
476
+ loader: globWithSafeWatcher({
485
477
  pattern: withIgnoredBuildArtifacts([
486
478
  'domains/*/services/*/index.(md|mdx)',
487
479
  'domains/*/services/*/versioned/*/index.(md|mdx)',
@@ -546,7 +538,7 @@ const agentModel = z.object({
546
538
  });
547
539
 
548
540
  const agents = defineCollection({
549
- loader: glob({
541
+ loader: globWithSafeWatcher({
550
542
  pattern: withIgnoredBuildArtifacts(['**/agents/*/index.(md|mdx)', '**/agents/*/versioned/*/index.(md|mdx)']),
551
543
  base: projectDirBase,
552
544
  generateId: ({ data }) => {
@@ -608,7 +600,7 @@ const adrResourcePointer = adrPointer.extend({
608
600
  });
609
601
 
610
602
  const adrs = defineCollection({
611
- loader: glob({
603
+ loader: globWithSafeWatcher({
612
604
  pattern: withIgnoredBuildArtifacts(['**/adrs/*/index.(md|mdx)', '**/adrs/*/versioned/*/index.(md|mdx)']),
613
605
  base: projectDirBase,
614
606
  generateId: ({ data }) => `${data.id}-${data.version}`,
@@ -658,7 +650,7 @@ const accessModeEnum = z.enum(['read', 'write', 'readWrite', 'appendOnly']);
658
650
  const dataClassificationEnum = z.enum(['public', 'internal', 'confidential', 'regulated']);
659
651
 
660
652
  const containers = defineCollection({
661
- loader: glob({
653
+ loader: globWithSafeWatcher({
662
654
  pattern: withIgnoredBuildArtifacts(['**/containers/**/index.(md|mdx)', '**/containers/**/versioned/*/index.(md|mdx)']),
663
655
  base: projectDirBase,
664
656
  generateId: ({ data }) => {
@@ -697,7 +689,7 @@ const containers = defineCollection({
697
689
  });
698
690
 
699
691
  const customPages = defineCollection({
700
- loader: glob({
692
+ loader: globWithSafeWatcher({
701
693
  // any number of child folders
702
694
  pattern: withIgnoredBuildArtifacts(['docs/*.(md|mdx)', 'docs/**/*.@(md|mdx)']),
703
695
  base: projectDirBase,
@@ -706,7 +698,7 @@ const customPages = defineCollection({
706
698
  });
707
699
 
708
700
  const resourceDocs = defineCollection({
709
- loader: glob({
701
+ loader: globWithSafeWatcher({
710
702
  // Resource-level docs are restricted to known resource paths.
711
703
  // This avoids scanning external docs such as node_modules/**/docs.
712
704
  pattern: withIgnoredBuildArtifacts([
@@ -723,7 +715,7 @@ const resourceDocs = defineCollection({
723
715
  });
724
716
 
725
717
  const resourceDocCategories = defineCollection({
726
- loader: glob({
718
+ loader: globWithSafeWatcher({
727
719
  pattern: withIgnoredBuildArtifacts([
728
720
  '{agents,events,commands,queries,services,flows,containers,channels,entities,data-products,systems}/**/docs/**/category.json',
729
721
  '{agents,events,commands,queries,services,flows,containers,channels,entities,data-products,systems}/**/docs/**/_category_.json',
@@ -740,7 +732,7 @@ const resourceDocCategories = defineCollection({
740
732
  });
741
733
 
742
734
  const domains = defineCollection({
743
- loader: glob({
735
+ loader: globWithSafeWatcher({
744
736
  pattern: withIgnoredBuildArtifacts([
745
737
  // ✅ Strictly include only index.md at the expected levels
746
738
  'domains/*/index.(md|mdx)',
@@ -808,7 +800,7 @@ const systemActorRelationship = z.object({
808
800
  });
809
801
 
810
802
  const systems = defineCollection({
811
- loader: glob({
803
+ loader: globWithSafeWatcher({
812
804
  pattern: withIgnoredBuildArtifacts([
813
805
  '**/systems/**/index.(md|mdx)',
814
806
  '**/systems/**/versioned/*/index.(md|mdx)',
@@ -865,7 +857,7 @@ const systems = defineCollection({
865
857
  });
866
858
 
867
859
  const channels = defineCollection({
868
- loader: glob({
860
+ loader: globWithSafeWatcher({
869
861
  pattern: withIgnoredBuildArtifacts(['**/channels/**/index.(md|mdx)', '**/channels/**/versioned/*/index.(md|mdx)']),
870
862
  base: projectDirBase,
871
863
  generateId: ({ data }) => {
@@ -910,7 +902,7 @@ const channels = defineCollection({
910
902
  });
911
903
 
912
904
  const ubiquitousLanguages = defineCollection({
913
- loader: glob({
905
+ loader: globWithSafeWatcher({
914
906
  pattern: withIgnoredBuildArtifacts([
915
907
  'domains/*/ubiquitous-language.(md|mdx)',
916
908
  'domains/*/subdomains/*/ubiquitous-language.(md|mdx)',
@@ -937,7 +929,7 @@ const ubiquitousLanguages = defineCollection({
937
929
  });
938
930
 
939
931
  const entities = defineCollection({
940
- loader: glob({
932
+ loader: globWithSafeWatcher({
941
933
  pattern: withIgnoredBuildArtifacts(['**/entities/*/index.(md|mdx)', '**/entities/*/versioned/*/index.(md|mdx)']),
942
934
  base: projectDirBase,
943
935
  generateId: ({ data, ...rest }) => {
@@ -1078,7 +1070,7 @@ const designs = defineCollection({
1078
1070
  });
1079
1071
 
1080
1072
  const diagrams = defineCollection({
1081
- loader: glob({
1073
+ loader: globWithSafeWatcher({
1082
1074
  pattern: withIgnoredBuildArtifacts(['**/diagrams/**/index.(md|mdx)', '**/diagrams/**/versioned/*/index.(md|mdx)']),
1083
1075
  base: projectDirBase,
1084
1076
  generateId: ({ data }) => `${data.id}-${data.version}`,
@@ -1,12 +1,12 @@
1
- import { glob, type Loader } from 'astro/loaders';
1
+ import type { Loader } from 'astro/loaders';
2
2
  import pc from 'picocolors';
3
3
  import { isEventCatalogScaleEnabled } from '../feature';
4
4
  import { EventCatalogStore } from '../../stores/eventcatalog-store';
5
+ import { globWithSafeWatcher, type GlobOptions } from '../../utils/collections/glob-loader';
5
6
 
6
7
  const colors = pc.createColors(true);
7
8
 
8
9
  type UserTeamCollection = 'users' | 'teams';
9
- type GlobOptions = Parameters<typeof glob>[0];
10
10
 
11
11
  type DirectoryEntry = {
12
12
  id: string;
@@ -58,7 +58,7 @@ export const userTeamDirectoryLoader = ({
58
58
  conflictStrategy = 'local-wins',
59
59
  storePath,
60
60
  }: UserTeamDirectoryLoaderOptions): Loader => {
61
- const localLoader = glob(local);
61
+ const localLoader = globWithSafeWatcher(local);
62
62
  const directoryStore = createDirectoryStore({ base: local.base, storePath });
63
63
 
64
64
  return {
@@ -0,0 +1,70 @@
1
+ import { glob } from 'astro/loaders';
2
+ import picomatch from 'picomatch';
3
+ import path from 'path';
4
+ import { fileURLToPath } from 'url';
5
+
6
+ export type GlobOptions = Parameters<typeof glob>[0];
7
+
8
+ export const withIgnoredBuildArtifacts = (patterns: string | string[]) => {
9
+ if (process.env.IGNORE_BUILD_ARTIFACTS === 'true') {
10
+ const ignoredArtifacts = ['!dist/**', '!**/dist/**'];
11
+ return Array.isArray(patterns) ? [...patterns, ...ignoredArtifacts] : [patterns, ...ignoredArtifacts];
12
+ }
13
+ return patterns;
14
+ };
15
+
16
+ const toPatterns = (patterns: string | string[]) => (Array.isArray(patterns) ? patterns : [patterns]);
17
+
18
+ const matchesGlobPattern = (entry: string, patterns: string | string[]) => {
19
+ const patternList = toPatterns(patterns);
20
+ const positivePatterns = patternList.filter((pattern) => !pattern.startsWith('!'));
21
+ const negativePatterns = patternList.filter((pattern) => pattern.startsWith('!')).map((pattern) => pattern.slice(1));
22
+
23
+ return picomatch.isMatch(entry, positivePatterns) && !picomatch.isMatch(entry, negativePatterns);
24
+ };
25
+
26
+ export const globWithSafeWatcher = (options: GlobOptions) => {
27
+ const loader = glob(options);
28
+
29
+ return {
30
+ ...loader,
31
+ load: async (context: Parameters<typeof loader.load>[0]) => {
32
+ if (process.env.EVENTCATALOG_DEV_MODE !== 'true' || !context.watcher) {
33
+ return loader.load(context);
34
+ }
35
+
36
+ let baseDir = options.base ? new URL(options.base, context.config.root) : context.config.root;
37
+ if (!baseDir.pathname.endsWith('/')) {
38
+ baseDir = new URL(`${baseDir.pathname}/`, baseDir);
39
+ }
40
+
41
+ const basePath = fileURLToPath(baseDir);
42
+ const watcher = new Proxy(context.watcher, {
43
+ get(target, property, receiver) {
44
+ if (property !== 'on') {
45
+ const value = Reflect.get(target, property, receiver);
46
+ return typeof value === 'function' ? value.bind(target) : value;
47
+ }
48
+
49
+ return (event: string, callback: (changedPath: string) => void) => {
50
+ if (!['add', 'change', 'unlink'].includes(event)) {
51
+ return target.on(event, callback);
52
+ }
53
+
54
+ return target.on(event, (changedPath: string) => {
55
+ const entry = path.relative(basePath, changedPath).split(path.sep).join('/');
56
+ if (!entry.startsWith('../') && matchesGlobPattern(entry, options.pattern)) {
57
+ callback(changedPath);
58
+ }
59
+ });
60
+ };
61
+ },
62
+ });
63
+
64
+ return loader.load({
65
+ ...context,
66
+ watcher,
67
+ });
68
+ },
69
+ };
70
+ };
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  },
8
8
  "license": "SEE LICENSE IN LICENSE",
9
9
  "type": "module",
10
- "version": "4.0.0-beta.2",
10
+ "version": "4.0.0-beta.4",
11
11
  "publishConfig": {
12
12
  "access": "public"
13
13
  },
@@ -91,6 +91,7 @@
91
91
  "pagefind": "^1.5.2",
92
92
  "pako": "^2.1.0",
93
93
  "picocolors": "^1.1.1",
94
+ "picomatch": "^4.0.4",
94
95
  "react": "^18.3.1",
95
96
  "react-dom": "^18.3.1",
96
97
  "react-markdown": "^10.1.0",
@@ -114,9 +115,9 @@
114
115
  "update-notifier": "^7.3.1",
115
116
  "uuid": "^10.0.0",
116
117
  "zod": "^4.3.6",
117
- "@eventcatalog/linter": "1.1.2-beta.0",
118
+ "@eventcatalog/linter": "1.1.2-beta.1",
118
119
  "@eventcatalog/visualiser": "^4.0.0-beta.0",
119
- "@eventcatalog/sdk": "2.25.0-beta.0"
120
+ "@eventcatalog/sdk": "2.25.0-beta.1"
120
121
  },
121
122
  "devDependencies": {
122
123
  "@astrojs/check": "^0.9.9",