@eventcatalog/sdk 2.17.4 → 2.18.1

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.
package/dist/index.mjs CHANGED
@@ -828,6 +828,11 @@ var copyDir = async (catalogDir, source, target, filter) => {
828
828
  });
829
829
  fsSync.rmSync(tmpDirectory, { recursive: true });
830
830
  };
831
+ var buildMessagePointer = (message) => {
832
+ const pointer = { id: message.id, version: message.version };
833
+ if (message.fields) pointer.fields = message.fields;
834
+ return pointer;
835
+ };
831
836
  var uniqueVersions = (messages) => {
832
837
  const uniqueSet = /* @__PURE__ */ new Set();
833
838
  return messages.filter((message) => {
@@ -1330,7 +1335,7 @@ var addMessageToService = (directory) => async (id, direction, event, version) =
1330
1335
  return;
1331
1336
  }
1332
1337
  }
1333
- service.sends.push({ id: event.id, version: event.version });
1338
+ service.sends.push(buildMessagePointer(event));
1334
1339
  } else if (direction === "receives") {
1335
1340
  if (service.receives === void 0) {
1336
1341
  service.receives = [];
@@ -1340,7 +1345,7 @@ var addMessageToService = (directory) => async (id, direction, event, version) =
1340
1345
  return;
1341
1346
  }
1342
1347
  }
1343
- service.receives.push({ id: event.id, version: event.version });
1348
+ service.receives.push(buildMessagePointer(event));
1344
1349
  } else {
1345
1350
  throw new Error(`Direction ${direction} is invalid, only 'receives' and 'sends' are supported`);
1346
1351
  }
@@ -1428,6 +1433,14 @@ import fs6 from "fs/promises";
1428
1433
  import path2, { join as join7 } from "path";
1429
1434
  import fsSync3 from "fs";
1430
1435
  import matter3 from "gray-matter";
1436
+ var resolveDomainWriteDirectory = async (directory, id, version) => {
1437
+ const existingResource = await findFileById(directory, id, version);
1438
+ if (!existingResource) return directory;
1439
+ const normalizedPath = existingResource.replace(/\\/g, "/");
1440
+ const lastDomainsIndex = normalizedPath.lastIndexOf("/domains/");
1441
+ if (lastDomainsIndex === -1) return directory;
1442
+ return existingResource.substring(0, lastDomainsIndex + "/domains".length);
1443
+ };
1431
1444
  var getDomain = (directory) => async (id, version) => getResource(directory, id, version, { type: "domain" });
1432
1445
  var getDomains = (directory) => async (options) => getResources(directory, {
1433
1446
  type: "domains",
@@ -1497,8 +1510,9 @@ var addServiceToDomain = (directory) => async (id, service, version) => {
1497
1510
  return;
1498
1511
  }
1499
1512
  domain.services.push(service);
1513
+ const writeDir = await resolveDomainWriteDirectory(directory, id, version);
1500
1514
  await rmDomainById(directory)(id, version, true);
1501
- await writeDomain(directory)(domain, { format: extension === ".md" ? "md" : "mdx" });
1515
+ await writeDomain(writeDir)(domain, { format: extension === ".md" ? "md" : "mdx" });
1502
1516
  };
1503
1517
  var addSubDomainToDomain = (directory) => async (id, subDomain, version) => {
1504
1518
  let domain = await getDomain(directory)(id, version);
@@ -1512,8 +1526,9 @@ var addSubDomainToDomain = (directory) => async (id, subDomain, version) => {
1512
1526
  return;
1513
1527
  }
1514
1528
  domain.domains.push(subDomain);
1529
+ const writeDir = await resolveDomainWriteDirectory(directory, id, version);
1515
1530
  await rmDomainById(directory)(id, version, true);
1516
- await writeDomain(directory)(domain, { format: extension === ".md" ? "md" : "mdx" });
1531
+ await writeDomain(writeDir)(domain, { format: extension === ".md" ? "md" : "mdx" });
1517
1532
  };
1518
1533
  var addEntityToDomain = (directory) => async (id, entity, version) => {
1519
1534
  let domain = await getDomain(directory)(id, version);
@@ -1527,8 +1542,9 @@ var addEntityToDomain = (directory) => async (id, entity, version) => {
1527
1542
  return;
1528
1543
  }
1529
1544
  domain.entities.push(entity);
1545
+ const writeDir = await resolveDomainWriteDirectory(directory, id, version);
1530
1546
  await rmDomainById(directory)(id, version, true);
1531
- await writeDomain(directory)(domain, { format: extension === ".md" ? "md" : "mdx" });
1547
+ await writeDomain(writeDir)(domain, { format: extension === ".md" ? "md" : "mdx" });
1532
1548
  };
1533
1549
  var addDataProductToDomain = (directory) => async (id, dataProduct, version) => {
1534
1550
  let domain = await getDomain(directory)(id, version);
@@ -1544,8 +1560,9 @@ var addDataProductToDomain = (directory) => async (id, dataProduct, version) =>
1544
1560
  return;
1545
1561
  }
1546
1562
  domain.dataProducts.push(dataProduct);
1563
+ const writeDir = await resolveDomainWriteDirectory(directory, id, version);
1547
1564
  await rmDomainById(directory)(id, version, true);
1548
- await writeDomain(directory)(domain, { format: extension === ".md" ? "md" : "mdx" });
1565
+ await writeDomain(writeDir)(domain, { format: extension === ".md" ? "md" : "mdx" });
1549
1566
  };
1550
1567
  var addMessageToDomain = (directory) => async (id, direction, message, version) => {
1551
1568
  let domain = await getDomain(directory)(id, version);
@@ -1560,7 +1577,7 @@ var addMessageToDomain = (directory) => async (id, direction, message, version)
1560
1577
  return;
1561
1578
  }
1562
1579
  }
1563
- domain.sends.push({ id: message.id, version: message.version });
1580
+ domain.sends.push(buildMessagePointer(message));
1564
1581
  } else if (direction === "receives") {
1565
1582
  if (domain.receives === void 0) {
1566
1583
  domain.receives = [];
@@ -1570,19 +1587,13 @@ var addMessageToDomain = (directory) => async (id, direction, message, version)
1570
1587
  return;
1571
1588
  }
1572
1589
  }
1573
- domain.receives.push({ id: message.id, version: message.version });
1590
+ domain.receives.push(buildMessagePointer(message));
1574
1591
  } else {
1575
1592
  throw new Error(`Direction ${direction} is invalid, only 'receives' and 'sends' are supported`);
1576
1593
  }
1577
- const existingResource = await findFileById(directory, id, version);
1578
- if (!existingResource) {
1579
- throw new Error(`Cannot find domain ${id} in the catalog`);
1580
- }
1581
- const normalizedPath = existingResource.replace(/\\/g, "/");
1582
- const lastDomainsIndex = normalizedPath.lastIndexOf("/domains/");
1583
- const pathToResource = existingResource.substring(0, lastDomainsIndex + "/domains".length);
1594
+ const writeDir = await resolveDomainWriteDirectory(directory, id, version);
1584
1595
  await rmDomainById(directory)(id, version, true);
1585
- await writeDomain(pathToResource)(domain, { format: extension === ".md" ? "md" : "mdx" });
1596
+ await writeDomain(writeDir)(domain, { format: extension === ".md" ? "md" : "mdx" });
1586
1597
  };
1587
1598
 
1588
1599
  // src/channels.ts