@eventcatalog/generator-asyncapi 6.4.1 → 6.4.3

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.js CHANGED
@@ -1543,7 +1543,7 @@ var import_path3 = __toESM(require("path"));
1543
1543
  // package.json
1544
1544
  var package_default = {
1545
1545
  name: "@eventcatalog/generator-asyncapi",
1546
- version: "6.4.1",
1546
+ version: "6.4.3",
1547
1547
  description: "AsyncAPI generator for EventCatalog",
1548
1548
  scripts: {
1549
1549
  build: "tsup",
@@ -1566,6 +1566,7 @@ var package_default = {
1566
1566
  "@types/lodash": "^4.17.7",
1567
1567
  "@types/minimist": "^1.2.5",
1568
1568
  "@types/node": "^20.16.1",
1569
+ "@types/semver": "^7.7.0",
1569
1570
  prettier: "^3.3.3",
1570
1571
  tsup: "^8.1.0",
1571
1572
  typescript: "^5.5.3",
@@ -1589,6 +1590,7 @@ var package_default = {
1589
1590
  "js-yaml": "^4.1.0",
1590
1591
  lodash: "^4.17.23",
1591
1592
  minimist: "^1.2.8",
1593
+ semver: "^7.7.2",
1592
1594
  slugify: "^1.6.6",
1593
1595
  "update-notifier": "^7.3.1",
1594
1596
  zod: "^3.23.8"
@@ -1624,14 +1626,18 @@ function stripAnsi(string) {
1624
1626
  return string.replace(regex, "");
1625
1627
  }
1626
1628
 
1627
- // ../../node_modules/.pnpm/get-east-asian-width@1.5.0/node_modules/get-east-asian-width/lookup-data.js
1629
+ // ../../node_modules/.pnpm/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/lookup-data.js
1630
+ var ambiguousMinimalCodePoint = 161;
1631
+ var ambiguousMaximumCodePoint = 1114109;
1628
1632
  var ambiguousRanges = [161, 161, 164, 164, 167, 168, 170, 170, 173, 174, 176, 180, 182, 186, 188, 191, 198, 198, 208, 208, 215, 216, 222, 225, 230, 230, 232, 234, 236, 237, 240, 240, 242, 243, 247, 250, 252, 252, 254, 254, 257, 257, 273, 273, 275, 275, 283, 283, 294, 295, 299, 299, 305, 307, 312, 312, 319, 322, 324, 324, 328, 331, 333, 333, 338, 339, 358, 359, 363, 363, 462, 462, 464, 464, 466, 466, 468, 468, 470, 470, 472, 472, 474, 474, 476, 476, 593, 593, 609, 609, 708, 708, 711, 711, 713, 715, 717, 717, 720, 720, 728, 731, 733, 733, 735, 735, 768, 879, 913, 929, 931, 937, 945, 961, 963, 969, 1025, 1025, 1040, 1103, 1105, 1105, 8208, 8208, 8211, 8214, 8216, 8217, 8220, 8221, 8224, 8226, 8228, 8231, 8240, 8240, 8242, 8243, 8245, 8245, 8251, 8251, 8254, 8254, 8308, 8308, 8319, 8319, 8321, 8324, 8364, 8364, 8451, 8451, 8453, 8453, 8457, 8457, 8467, 8467, 8470, 8470, 8481, 8482, 8486, 8486, 8491, 8491, 8531, 8532, 8539, 8542, 8544, 8555, 8560, 8569, 8585, 8585, 8592, 8601, 8632, 8633, 8658, 8658, 8660, 8660, 8679, 8679, 8704, 8704, 8706, 8707, 8711, 8712, 8715, 8715, 8719, 8719, 8721, 8721, 8725, 8725, 8730, 8730, 8733, 8736, 8739, 8739, 8741, 8741, 8743, 8748, 8750, 8750, 8756, 8759, 8764, 8765, 8776, 8776, 8780, 8780, 8786, 8786, 8800, 8801, 8804, 8807, 8810, 8811, 8814, 8815, 8834, 8835, 8838, 8839, 8853, 8853, 8857, 8857, 8869, 8869, 8895, 8895, 8978, 8978, 9312, 9449, 9451, 9547, 9552, 9587, 9600, 9615, 9618, 9621, 9632, 9633, 9635, 9641, 9650, 9651, 9654, 9655, 9660, 9661, 9664, 9665, 9670, 9672, 9675, 9675, 9678, 9681, 9698, 9701, 9711, 9711, 9733, 9734, 9737, 9737, 9742, 9743, 9756, 9756, 9758, 9758, 9792, 9792, 9794, 9794, 9824, 9825, 9827, 9829, 9831, 9834, 9836, 9837, 9839, 9839, 9886, 9887, 9919, 9919, 9926, 9933, 9935, 9939, 9941, 9953, 9955, 9955, 9960, 9961, 9963, 9969, 9972, 9972, 9974, 9977, 9979, 9980, 9982, 9983, 10045, 10045, 10102, 10111, 11094, 11097, 12872, 12879, 57344, 63743, 65024, 65039, 65533, 65533, 127232, 127242, 127248, 127277, 127280, 127337, 127344, 127373, 127375, 127376, 127387, 127404, 917760, 917999, 983040, 1048573, 1048576, 1114109];
1633
+ var fullwidthMinimalCodePoint = 12288;
1634
+ var fullwidthMaximumCodePoint = 65510;
1629
1635
  var fullwidthRanges = [12288, 12288, 65281, 65376, 65504, 65510];
1630
- var halfwidthRanges = [8361, 8361, 65377, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65512, 65518];
1631
- var narrowRanges = [32, 126, 162, 163, 165, 166, 172, 172, 175, 175, 10214, 10221, 10629, 10630];
1636
+ var wideMinimalCodePoint = 4352;
1637
+ var wideMaximumCodePoint = 262141;
1632
1638
  var wideRanges = [4352, 4447, 8986, 8987, 9001, 9002, 9193, 9196, 9200, 9200, 9203, 9203, 9725, 9726, 9748, 9749, 9776, 9783, 9800, 9811, 9855, 9855, 9866, 9871, 9875, 9875, 9889, 9889, 9898, 9899, 9917, 9918, 9924, 9925, 9934, 9934, 9940, 9940, 9962, 9962, 9970, 9971, 9973, 9973, 9978, 9978, 9981, 9981, 9989, 9989, 9994, 9995, 10024, 10024, 10060, 10060, 10062, 10062, 10067, 10069, 10071, 10071, 10133, 10135, 10160, 10160, 10175, 10175, 11035, 11036, 11088, 11088, 11093, 11093, 11904, 11929, 11931, 12019, 12032, 12245, 12272, 12287, 12289, 12350, 12353, 12438, 12441, 12543, 12549, 12591, 12593, 12686, 12688, 12773, 12783, 12830, 12832, 12871, 12880, 42124, 42128, 42182, 43360, 43388, 44032, 55203, 63744, 64255, 65040, 65049, 65072, 65106, 65108, 65126, 65128, 65131, 94176, 94180, 94192, 94198, 94208, 101589, 101631, 101662, 101760, 101874, 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, 110898, 110898, 110928, 110930, 110933, 110933, 110948, 110951, 110960, 111355, 119552, 119638, 119648, 119670, 126980, 126980, 127183, 127183, 127374, 127374, 127377, 127386, 127488, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127584, 127589, 127744, 127776, 127789, 127797, 127799, 127868, 127870, 127891, 127904, 127946, 127951, 127955, 127968, 127984, 127988, 127988, 127992, 128062, 128064, 128064, 128066, 128252, 128255, 128317, 128331, 128334, 128336, 128359, 128378, 128378, 128405, 128406, 128420, 128420, 128507, 128591, 128640, 128709, 128716, 128716, 128720, 128722, 128725, 128728, 128732, 128735, 128747, 128748, 128756, 128764, 128992, 129003, 129008, 129008, 129292, 129338, 129340, 129349, 129351, 129535, 129648, 129660, 129664, 129674, 129678, 129734, 129736, 129736, 129741, 129756, 129759, 129770, 129775, 129784, 131072, 196605, 196608, 262141];
1633
1639
 
1634
- // ../../node_modules/.pnpm/get-east-asian-width@1.5.0/node_modules/get-east-asian-width/utilities.js
1640
+ // ../../node_modules/.pnpm/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/utilities.js
1635
1641
  var isInRange = (ranges, codePoint) => {
1636
1642
  let low = 0;
1637
1643
  let high = Math.floor(ranges.length / 2) - 1;
@@ -1649,19 +1655,9 @@ var isInRange = (ranges, codePoint) => {
1649
1655
  return false;
1650
1656
  };
1651
1657
 
1652
- // ../../node_modules/.pnpm/get-east-asian-width@1.5.0/node_modules/get-east-asian-width/lookup.js
1653
- var minimumAmbiguousCodePoint = ambiguousRanges[0];
1654
- var maximumAmbiguousCodePoint = ambiguousRanges.at(-1);
1655
- var minimumFullWidthCodePoint = fullwidthRanges[0];
1656
- var maximumFullWidthCodePoint = fullwidthRanges.at(-1);
1657
- var minimumHalfWidthCodePoint = halfwidthRanges[0];
1658
- var maximumHalfWidthCodePoint = halfwidthRanges.at(-1);
1659
- var minimumNarrowCodePoint = narrowRanges[0];
1660
- var maximumNarrowCodePoint = narrowRanges.at(-1);
1661
- var minimumWideCodePoint = wideRanges[0];
1662
- var maximumWideCodePoint = wideRanges.at(-1);
1658
+ // ../../node_modules/.pnpm/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/lookup.js
1663
1659
  var commonCjkCodePoint = 19968;
1664
- var [wideFastPathStart, wideFastPathEnd] = findWideFastPathRange(wideRanges);
1660
+ var [wideFastPathStart, wideFastPathEnd] = /* @__PURE__ */ findWideFastPathRange(wideRanges);
1665
1661
  function findWideFastPathRange(ranges) {
1666
1662
  let fastPathStart = ranges[0];
1667
1663
  let fastPathEnd = ranges[1];
@@ -1679,13 +1675,13 @@ function findWideFastPathRange(ranges) {
1679
1675
  return [fastPathStart, fastPathEnd];
1680
1676
  }
1681
1677
  var isAmbiguous = (codePoint) => {
1682
- if (codePoint < minimumAmbiguousCodePoint || codePoint > maximumAmbiguousCodePoint) {
1678
+ if (codePoint < ambiguousMinimalCodePoint || codePoint > ambiguousMaximumCodePoint) {
1683
1679
  return false;
1684
1680
  }
1685
1681
  return isInRange(ambiguousRanges, codePoint);
1686
1682
  };
1687
1683
  var isFullWidth = (codePoint) => {
1688
- if (codePoint < minimumFullWidthCodePoint || codePoint > maximumFullWidthCodePoint) {
1684
+ if (codePoint < fullwidthMinimalCodePoint || codePoint > fullwidthMaximumCodePoint) {
1689
1685
  return false;
1690
1686
  }
1691
1687
  return isInRange(fullwidthRanges, codePoint);
@@ -1694,13 +1690,13 @@ var isWide = (codePoint) => {
1694
1690
  if (codePoint >= wideFastPathStart && codePoint <= wideFastPathEnd) {
1695
1691
  return true;
1696
1692
  }
1697
- if (codePoint < minimumWideCodePoint || codePoint > maximumWideCodePoint) {
1693
+ if (codePoint < wideMinimalCodePoint || codePoint > wideMaximumCodePoint) {
1698
1694
  return false;
1699
1695
  }
1700
1696
  return isInRange(wideRanges, codePoint);
1701
1697
  };
1702
1698
 
1703
- // ../../node_modules/.pnpm/get-east-asian-width@1.5.0/node_modules/get-east-asian-width/index.js
1699
+ // ../../node_modules/.pnpm/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/index.js
1704
1700
  function validate(codePoint) {
1705
1701
  if (!Number.isSafeInteger(codePoint)) {
1706
1702
  throw new TypeError(`Expected a code point, got \`${typeof codePoint}\`.`);
@@ -2724,6 +2720,30 @@ var defaultMarkdown4 = (_document, channel) => {
2724
2720
  `;
2725
2721
  };
2726
2722
 
2723
+ // src/utils/versions.ts
2724
+ var import_semver = require("semver");
2725
+ var tryCoerceToSemver = (version) => {
2726
+ if ((0, import_semver.valid)(version)) return version;
2727
+ const coerced = (0, import_semver.coerce)(version);
2728
+ return coerced ? coerced.version : null;
2729
+ };
2730
+ var isNewerVersion = (incoming, existing) => {
2731
+ if (!incoming || !existing) return false;
2732
+ if (incoming === existing) return false;
2733
+ const incomingSemver = tryCoerceToSemver(incoming);
2734
+ const existingSemver = tryCoerceToSemver(existing);
2735
+ if (!incomingSemver || !existingSemver) return false;
2736
+ return (0, import_semver.gt)(incomingSemver, existingSemver);
2737
+ };
2738
+ var isSameVersion = (a, b) => {
2739
+ if (!a || !b) return false;
2740
+ if (a === b) return true;
2741
+ const aSemver = tryCoerceToSemver(a);
2742
+ const bSemver = tryCoerceToSemver(b);
2743
+ if (!aSemver || !bSemver) return false;
2744
+ return (0, import_semver.eq)(aSemver, bSemver);
2745
+ };
2746
+
2727
2747
  // ../../shared/checkLicense.ts
2728
2748
  var import_chalk3 = __toESM(require("chalk"));
2729
2749
 
@@ -4031,6 +4051,19 @@ function isValidLicenseKeyFormat(key) {
4031
4051
  }
4032
4052
 
4033
4053
  // ../../node_modules/.pnpm/@eventcatalog+license@0.0.7/node_modules/@eventcatalog/license/dist/plans.js
4054
+ var isEventCatalogScaleEnabled = async () => {
4055
+ const FEATURE = "@eventcatalog/eventcatalog-scale";
4056
+ const LICENSE_KEY = process.env.EVENTCATALOG_SCALE_LICENSE_KEY || null;
4057
+ if (hasOfflineLicenseKey()) {
4058
+ await verifyOfflineLicense();
4059
+ return isFeatureEnabled(FEATURE);
4060
+ }
4061
+ if (!LICENSE_KEY) {
4062
+ return false;
4063
+ }
4064
+ console.log("Checking online license for", FEATURE);
4065
+ return verifyOnlineLicense(LICENSE_KEY, FEATURE);
4066
+ };
4034
4067
  var isFeatureEnabled2 = async (feature, key) => {
4035
4068
  if (hasOfflineLicenseKey()) {
4036
4069
  await verifyOfflineLicense();
@@ -4043,29 +4076,61 @@ var isFeatureEnabled2 = async (feature, key) => {
4043
4076
  };
4044
4077
 
4045
4078
  // ../../shared/checkLicense.ts
4046
- var checkLicense_default = async (pkgName, licenseKey) => {
4047
- if (!hasOfflineLicenseKey() && !licenseKey) {
4048
- console.log(import_chalk3.default.bgRed(`
4049
- No license key provided for ${pkgName}`));
4050
- console.log(import_chalk3.default.redBright("You can get a free 14 day trial license at https://eventcatalog.cloud/"));
4051
- process.exit(1);
4052
- }
4053
- try {
4054
- const featureEnabled = await isFeatureEnabled2(pkgName, licenseKey);
4055
- if (!featureEnabled) {
4079
+ var hasLicenseKey = (licenseKey) => Boolean(licenseKey?.trim());
4080
+ var checkLicense_default = async (pkgName, licenseKey, options = {}) => {
4081
+ let licenseCheckFailed = false;
4082
+ if (hasOfflineLicenseKey()) {
4083
+ try {
4084
+ if (await isFeatureEnabled2(pkgName)) {
4085
+ return Promise.resolve();
4086
+ }
4087
+ if (options.allowEventCatalogScaleLicense && await isEventCatalogScaleEnabled()) {
4088
+ return Promise.resolve();
4089
+ }
4090
+ } catch (error) {
4091
+ licenseCheckFailed = true;
4092
+ console.log(error);
4093
+ }
4094
+ } else {
4095
+ const hasPluginLicenseKey = hasLicenseKey(licenseKey);
4096
+ const hasScaleLicenseKey = options.allowEventCatalogScaleLicense && hasLicenseKey(process.env.EVENTCATALOG_SCALE_LICENSE_KEY);
4097
+ if (!hasPluginLicenseKey && !hasScaleLicenseKey) {
4056
4098
  console.log(import_chalk3.default.bgRed(`
4057
- Invalid license key`));
4058
- console.log(import_chalk3.default.redBright("Please check your plugin license key or purchase a license at https://eventcatalog.cloud/"));
4099
+ No license key provided for ${pkgName}`));
4100
+ console.log(import_chalk3.default.redBright("You can get a free 14 day trial license at https://eventcatalog.cloud/"));
4059
4101
  process.exit(1);
4060
4102
  }
4061
- return Promise.resolve();
4062
- } catch (error) {
4063
- console.log(error);
4103
+ if (hasPluginLicenseKey) {
4104
+ try {
4105
+ if (await isFeatureEnabled2(pkgName, licenseKey)) {
4106
+ return Promise.resolve();
4107
+ }
4108
+ } catch (error) {
4109
+ licenseCheckFailed = true;
4110
+ console.log(error);
4111
+ }
4112
+ }
4113
+ if (hasScaleLicenseKey) {
4114
+ try {
4115
+ if (await isEventCatalogScaleEnabled()) {
4116
+ return Promise.resolve();
4117
+ }
4118
+ } catch (error) {
4119
+ licenseCheckFailed = true;
4120
+ console.log(error);
4121
+ }
4122
+ }
4123
+ }
4124
+ if (licenseCheckFailed) {
4064
4125
  console.log(import_chalk3.default.bgRed(`
4065
4126
  Failed to verify license key`));
4066
4127
  console.log(import_chalk3.default.redBright("Please check your plugin license key or purchase a license at https://eventcatalog.cloud/"));
4067
4128
  process.exit(1);
4068
4129
  }
4130
+ console.log(import_chalk3.default.bgRed(`
4131
+ Invalid license key`));
4132
+ console.log(import_chalk3.default.redBright("Please check your plugin license key or purchase a license at https://eventcatalog.cloud/"));
4133
+ process.exit(1);
4069
4134
  };
4070
4135
 
4071
4136
  // src/index.ts
@@ -4212,7 +4277,7 @@ var index_default = async (config, options) => {
4212
4277
  throw new Error("Please provide catalog url (env variable PROJECT_DIR)");
4213
4278
  }
4214
4279
  const LICENSE_KEY = process.env.EVENTCATALOG_LICENSE_KEY_ASYNCAPI || options.licenseKey || "";
4215
- await checkLicense_default(package_default.name, LICENSE_KEY);
4280
+ await checkLicense_default(package_default.name, LICENSE_KEY, { allowEventCatalogScaleLicense: true });
4216
4281
  await checkForPackageUpdate(package_default.name);
4217
4282
  const {
4218
4283
  writeService,
@@ -4432,7 +4497,7 @@ Processing domain: ${domainName} (v${domainVersion})`));
4432
4497
  for (const operation of operations) {
4433
4498
  for (const message2 of operation.messages()) {
4434
4499
  const eventType = message2.extensions().get("x-eventcatalog-message-type")?.value() || "event";
4435
- const messageVersion = message2.extensions().get("x-eventcatalog-message-version")?.value() || version;
4500
+ let messageVersion = message2.extensions().get("x-eventcatalog-message-version")?.value() || version;
4436
4501
  const deprecatedDate = message2.extensions().get("x-eventcatalog-deprecated-date")?.value() || null;
4437
4502
  const deprecatedMessage = message2.extensions().get("x-eventcatalog-deprecated-message")?.value() || null;
4438
4503
  const isMessageMarkedAsDraft = isDomainMarkedAsDraft || isServiceMarkedAsDraft || message2.extensions().get("x-eventcatalog-draft")?.value() || null;
@@ -4470,63 +4535,76 @@ Processing domain: ${domainName} (v${domainVersion})`));
4470
4535
  }
4471
4536
  if (serviceOwnsMessageContract) {
4472
4537
  const catalogedMessage = await getMessage(messageId, "latest");
4538
+ let shouldWriteMessage = true;
4473
4539
  if (catalogedMessage) {
4474
4540
  messageMarkdown = catalogedMessage.markdown;
4475
4541
  messageBadges = catalogedMessage.badges || null;
4476
4542
  messageAttachments = catalogedMessage.attachments || null;
4477
- if (catalogedMessage.version !== messageVersion) {
4543
+ const catalogedVersion = catalogedMessage.version ?? "";
4544
+ if (isSameVersion(catalogedVersion, messageVersion)) {
4545
+ } else if (isNewerVersion(messageVersion, catalogedVersion)) {
4478
4546
  await versionMessage(messageId);
4479
4547
  console.log(import_chalk4.default.cyan(` - Versioned previous message: (v${catalogedMessage.version})`));
4548
+ } else {
4549
+ console.log(
4550
+ import_chalk4.default.yellow(
4551
+ ` - Skipping ${messageId} (v${messageVersion}) - catalog already has a newer version (v${catalogedVersion})`
4552
+ )
4553
+ );
4554
+ messageVersion = catalogedVersion;
4555
+ shouldWriteMessage = false;
4480
4556
  }
4481
4557
  }
4482
- await writeMessage(
4483
- {
4484
- id: messageId,
4485
- version: messageVersion,
4486
- name: getMessageName(message2),
4487
- summary: getSummary(message2),
4488
- markdown: messageMarkdown,
4489
- badges: messageBadges || badges2.map((badge) => ({ content: badge.name(), textColor: "blue", backgroundColor: "blue" })),
4490
- ...messageHasSchema(message2) && { schemaPath: getSchemaFileName(message2) },
4491
- ...owners && { owners },
4492
- ...messageAttachments && { attachments: messageAttachments },
4493
- ...deprecatedDate && {
4494
- deprecated: { date: deprecatedDate, ...deprecatedMessage && { message: deprecatedMessage } }
4495
- },
4496
- ...isMessageMarkedAsDraft && { draft: true }
4497
- },
4498
- {
4499
- override: true,
4500
- path: messagePath
4501
- }
4502
- );
4503
- console.log(import_chalk4.default.cyan(` - Message (v${messageVersion}) created`));
4504
- if (messageHasSchema(message2)) {
4505
- const schema = getSchemaForMessage(message2, attachHeadersToSchema);
4506
- const cleanedMessagePath = messagePath.replace(/\\/g, "/").replace(/^(\.\.\/|\.\/)+/g, "");
4507
- await addSchemaToMessage(
4508
- messageId,
4558
+ if (shouldWriteMessage) {
4559
+ await writeMessage(
4509
4560
  {
4510
- fileName: getSchemaFileName(message2),
4511
- schema: safeStringify(schema, 4)
4561
+ id: messageId,
4562
+ version: messageVersion,
4563
+ name: getMessageName(message2),
4564
+ summary: getSummary(message2),
4565
+ markdown: messageMarkdown,
4566
+ badges: messageBadges || badges2.map((badge) => ({ content: badge.name(), textColor: "blue", backgroundColor: "blue" })),
4567
+ ...messageHasSchema(message2) && { schemaPath: getSchemaFileName(message2) },
4568
+ ...owners && { owners },
4569
+ ...messageAttachments && { attachments: messageAttachments },
4570
+ ...deprecatedDate && {
4571
+ deprecated: { date: deprecatedDate, ...deprecatedMessage && { message: deprecatedMessage } }
4572
+ },
4573
+ ...isMessageMarkedAsDraft && { draft: true }
4512
4574
  },
4513
- messageVersion,
4514
- { path: cleanedMessagePath }
4515
- );
4516
- console.log(import_chalk4.default.cyan(` - Schema added to message (v${messageVersion})`));
4517
- }
4518
- if (parseExamples) {
4519
- const messageExamples = message2.examples().all();
4520
- for (let i = 0; i < messageExamples.length; i++) {
4521
- const example = messageExamples[i];
4522
- const payload = example.payload();
4523
- if (payload) {
4524
- const fileName2 = example.hasName() ? `${example.name()}.json` : `example-${i}.json`;
4525
- await addExampleToMessage(messageId, { content: JSON.stringify(payload, null, 2), fileName: fileName2 }, messageVersion);
4575
+ {
4576
+ override: true,
4577
+ path: messagePath
4526
4578
  }
4579
+ );
4580
+ console.log(import_chalk4.default.cyan(` - Message (v${messageVersion}) created`));
4581
+ if (messageHasSchema(message2)) {
4582
+ const schema = getSchemaForMessage(message2, attachHeadersToSchema);
4583
+ const cleanedMessagePath = messagePath.replace(/\\/g, "/").replace(/^(\.\.\/|\.\/)+/g, "");
4584
+ await addSchemaToMessage(
4585
+ messageId,
4586
+ {
4587
+ fileName: getSchemaFileName(message2),
4588
+ schema: safeStringify(schema, 4)
4589
+ },
4590
+ messageVersion,
4591
+ { path: cleanedMessagePath }
4592
+ );
4593
+ console.log(import_chalk4.default.cyan(` - Schema added to message (v${messageVersion})`));
4527
4594
  }
4528
- if (messageExamples.length > 0) {
4529
- console.log(import_chalk4.default.cyan(` - ${messageExamples.length} example(s) added to message (v${messageVersion})`));
4595
+ if (parseExamples) {
4596
+ const messageExamples = message2.examples().all();
4597
+ for (let i = 0; i < messageExamples.length; i++) {
4598
+ const example = messageExamples[i];
4599
+ const payload = example.payload();
4600
+ if (payload) {
4601
+ const fileName2 = example.hasName() ? `${example.name()}.json` : `example-${i}.json`;
4602
+ await addExampleToMessage(messageId, { content: JSON.stringify(payload, null, 2), fileName: fileName2 }, messageVersion);
4603
+ }
4604
+ }
4605
+ if (messageExamples.length > 0) {
4606
+ console.log(import_chalk4.default.cyan(` - ${messageExamples.length} example(s) added to message (v${messageVersion})`));
4607
+ }
4530
4608
  }
4531
4609
  }
4532
4610
  } else {