@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.mjs CHANGED
@@ -1538,7 +1538,7 @@ import path3 from "path";
1538
1538
  // package.json
1539
1539
  var package_default = {
1540
1540
  name: "@eventcatalog/generator-asyncapi",
1541
- version: "6.4.1",
1541
+ version: "6.4.3",
1542
1542
  description: "AsyncAPI generator for EventCatalog",
1543
1543
  scripts: {
1544
1544
  build: "tsup",
@@ -1561,6 +1561,7 @@ var package_default = {
1561
1561
  "@types/lodash": "^4.17.7",
1562
1562
  "@types/minimist": "^1.2.5",
1563
1563
  "@types/node": "^20.16.1",
1564
+ "@types/semver": "^7.7.0",
1564
1565
  prettier: "^3.3.3",
1565
1566
  tsup: "^8.1.0",
1566
1567
  typescript: "^5.5.3",
@@ -1584,6 +1585,7 @@ var package_default = {
1584
1585
  "js-yaml": "^4.1.0",
1585
1586
  lodash: "^4.17.23",
1586
1587
  minimist: "^1.2.8",
1588
+ semver: "^7.7.2",
1587
1589
  slugify: "^1.6.6",
1588
1590
  "update-notifier": "^7.3.1",
1589
1591
  zod: "^3.23.8"
@@ -1619,14 +1621,18 @@ function stripAnsi(string) {
1619
1621
  return string.replace(regex, "");
1620
1622
  }
1621
1623
 
1622
- // ../../node_modules/.pnpm/get-east-asian-width@1.5.0/node_modules/get-east-asian-width/lookup-data.js
1624
+ // ../../node_modules/.pnpm/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/lookup-data.js
1625
+ var ambiguousMinimalCodePoint = 161;
1626
+ var ambiguousMaximumCodePoint = 1114109;
1623
1627
  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];
1628
+ var fullwidthMinimalCodePoint = 12288;
1629
+ var fullwidthMaximumCodePoint = 65510;
1624
1630
  var fullwidthRanges = [12288, 12288, 65281, 65376, 65504, 65510];
1625
- var halfwidthRanges = [8361, 8361, 65377, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65512, 65518];
1626
- var narrowRanges = [32, 126, 162, 163, 165, 166, 172, 172, 175, 175, 10214, 10221, 10629, 10630];
1631
+ var wideMinimalCodePoint = 4352;
1632
+ var wideMaximumCodePoint = 262141;
1627
1633
  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];
1628
1634
 
1629
- // ../../node_modules/.pnpm/get-east-asian-width@1.5.0/node_modules/get-east-asian-width/utilities.js
1635
+ // ../../node_modules/.pnpm/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/utilities.js
1630
1636
  var isInRange = (ranges, codePoint) => {
1631
1637
  let low = 0;
1632
1638
  let high = Math.floor(ranges.length / 2) - 1;
@@ -1644,19 +1650,9 @@ var isInRange = (ranges, codePoint) => {
1644
1650
  return false;
1645
1651
  };
1646
1652
 
1647
- // ../../node_modules/.pnpm/get-east-asian-width@1.5.0/node_modules/get-east-asian-width/lookup.js
1648
- var minimumAmbiguousCodePoint = ambiguousRanges[0];
1649
- var maximumAmbiguousCodePoint = ambiguousRanges.at(-1);
1650
- var minimumFullWidthCodePoint = fullwidthRanges[0];
1651
- var maximumFullWidthCodePoint = fullwidthRanges.at(-1);
1652
- var minimumHalfWidthCodePoint = halfwidthRanges[0];
1653
- var maximumHalfWidthCodePoint = halfwidthRanges.at(-1);
1654
- var minimumNarrowCodePoint = narrowRanges[0];
1655
- var maximumNarrowCodePoint = narrowRanges.at(-1);
1656
- var minimumWideCodePoint = wideRanges[0];
1657
- var maximumWideCodePoint = wideRanges.at(-1);
1653
+ // ../../node_modules/.pnpm/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/lookup.js
1658
1654
  var commonCjkCodePoint = 19968;
1659
- var [wideFastPathStart, wideFastPathEnd] = findWideFastPathRange(wideRanges);
1655
+ var [wideFastPathStart, wideFastPathEnd] = /* @__PURE__ */ findWideFastPathRange(wideRanges);
1660
1656
  function findWideFastPathRange(ranges) {
1661
1657
  let fastPathStart = ranges[0];
1662
1658
  let fastPathEnd = ranges[1];
@@ -1674,13 +1670,13 @@ function findWideFastPathRange(ranges) {
1674
1670
  return [fastPathStart, fastPathEnd];
1675
1671
  }
1676
1672
  var isAmbiguous = (codePoint) => {
1677
- if (codePoint < minimumAmbiguousCodePoint || codePoint > maximumAmbiguousCodePoint) {
1673
+ if (codePoint < ambiguousMinimalCodePoint || codePoint > ambiguousMaximumCodePoint) {
1678
1674
  return false;
1679
1675
  }
1680
1676
  return isInRange(ambiguousRanges, codePoint);
1681
1677
  };
1682
1678
  var isFullWidth = (codePoint) => {
1683
- if (codePoint < minimumFullWidthCodePoint || codePoint > maximumFullWidthCodePoint) {
1679
+ if (codePoint < fullwidthMinimalCodePoint || codePoint > fullwidthMaximumCodePoint) {
1684
1680
  return false;
1685
1681
  }
1686
1682
  return isInRange(fullwidthRanges, codePoint);
@@ -1689,13 +1685,13 @@ var isWide = (codePoint) => {
1689
1685
  if (codePoint >= wideFastPathStart && codePoint <= wideFastPathEnd) {
1690
1686
  return true;
1691
1687
  }
1692
- if (codePoint < minimumWideCodePoint || codePoint > maximumWideCodePoint) {
1688
+ if (codePoint < wideMinimalCodePoint || codePoint > wideMaximumCodePoint) {
1693
1689
  return false;
1694
1690
  }
1695
1691
  return isInRange(wideRanges, codePoint);
1696
1692
  };
1697
1693
 
1698
- // ../../node_modules/.pnpm/get-east-asian-width@1.5.0/node_modules/get-east-asian-width/index.js
1694
+ // ../../node_modules/.pnpm/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/index.js
1699
1695
  function validate(codePoint) {
1700
1696
  if (!Number.isSafeInteger(codePoint)) {
1701
1697
  throw new TypeError(`Expected a code point, got \`${typeof codePoint}\`.`);
@@ -2719,6 +2715,30 @@ var defaultMarkdown4 = (_document, channel) => {
2719
2715
  `;
2720
2716
  };
2721
2717
 
2718
+ // src/utils/versions.ts
2719
+ import { valid as semverValid, gt as semverGt, eq as semverEq, coerce as semverCoerce } from "semver";
2720
+ var tryCoerceToSemver = (version) => {
2721
+ if (semverValid(version)) return version;
2722
+ const coerced = semverCoerce(version);
2723
+ return coerced ? coerced.version : null;
2724
+ };
2725
+ var isNewerVersion = (incoming, existing) => {
2726
+ if (!incoming || !existing) return false;
2727
+ if (incoming === existing) return false;
2728
+ const incomingSemver = tryCoerceToSemver(incoming);
2729
+ const existingSemver = tryCoerceToSemver(existing);
2730
+ if (!incomingSemver || !existingSemver) return false;
2731
+ return semverGt(incomingSemver, existingSemver);
2732
+ };
2733
+ var isSameVersion = (a, b) => {
2734
+ if (!a || !b) return false;
2735
+ if (a === b) return true;
2736
+ const aSemver = tryCoerceToSemver(a);
2737
+ const bSemver = tryCoerceToSemver(b);
2738
+ if (!aSemver || !bSemver) return false;
2739
+ return semverEq(aSemver, bSemver);
2740
+ };
2741
+
2722
2742
  // ../../shared/checkLicense.ts
2723
2743
  import chalk3 from "chalk";
2724
2744
 
@@ -4026,6 +4046,19 @@ function isValidLicenseKeyFormat(key) {
4026
4046
  }
4027
4047
 
4028
4048
  // ../../node_modules/.pnpm/@eventcatalog+license@0.0.7/node_modules/@eventcatalog/license/dist/plans.js
4049
+ var isEventCatalogScaleEnabled = async () => {
4050
+ const FEATURE = "@eventcatalog/eventcatalog-scale";
4051
+ const LICENSE_KEY = process.env.EVENTCATALOG_SCALE_LICENSE_KEY || null;
4052
+ if (hasOfflineLicenseKey()) {
4053
+ await verifyOfflineLicense();
4054
+ return isFeatureEnabled(FEATURE);
4055
+ }
4056
+ if (!LICENSE_KEY) {
4057
+ return false;
4058
+ }
4059
+ console.log("Checking online license for", FEATURE);
4060
+ return verifyOnlineLicense(LICENSE_KEY, FEATURE);
4061
+ };
4029
4062
  var isFeatureEnabled2 = async (feature, key) => {
4030
4063
  if (hasOfflineLicenseKey()) {
4031
4064
  await verifyOfflineLicense();
@@ -4038,29 +4071,61 @@ var isFeatureEnabled2 = async (feature, key) => {
4038
4071
  };
4039
4072
 
4040
4073
  // ../../shared/checkLicense.ts
4041
- var checkLicense_default = async (pkgName, licenseKey) => {
4042
- if (!hasOfflineLicenseKey() && !licenseKey) {
4043
- console.log(chalk3.bgRed(`
4044
- No license key provided for ${pkgName}`));
4045
- console.log(chalk3.redBright("You can get a free 14 day trial license at https://eventcatalog.cloud/"));
4046
- process.exit(1);
4047
- }
4048
- try {
4049
- const featureEnabled = await isFeatureEnabled2(pkgName, licenseKey);
4050
- if (!featureEnabled) {
4074
+ var hasLicenseKey = (licenseKey) => Boolean(licenseKey?.trim());
4075
+ var checkLicense_default = async (pkgName, licenseKey, options = {}) => {
4076
+ let licenseCheckFailed = false;
4077
+ if (hasOfflineLicenseKey()) {
4078
+ try {
4079
+ if (await isFeatureEnabled2(pkgName)) {
4080
+ return Promise.resolve();
4081
+ }
4082
+ if (options.allowEventCatalogScaleLicense && await isEventCatalogScaleEnabled()) {
4083
+ return Promise.resolve();
4084
+ }
4085
+ } catch (error) {
4086
+ licenseCheckFailed = true;
4087
+ console.log(error);
4088
+ }
4089
+ } else {
4090
+ const hasPluginLicenseKey = hasLicenseKey(licenseKey);
4091
+ const hasScaleLicenseKey = options.allowEventCatalogScaleLicense && hasLicenseKey(process.env.EVENTCATALOG_SCALE_LICENSE_KEY);
4092
+ if (!hasPluginLicenseKey && !hasScaleLicenseKey) {
4051
4093
  console.log(chalk3.bgRed(`
4052
- Invalid license key`));
4053
- console.log(chalk3.redBright("Please check your plugin license key or purchase a license at https://eventcatalog.cloud/"));
4094
+ No license key provided for ${pkgName}`));
4095
+ console.log(chalk3.redBright("You can get a free 14 day trial license at https://eventcatalog.cloud/"));
4054
4096
  process.exit(1);
4055
4097
  }
4056
- return Promise.resolve();
4057
- } catch (error) {
4058
- console.log(error);
4098
+ if (hasPluginLicenseKey) {
4099
+ try {
4100
+ if (await isFeatureEnabled2(pkgName, licenseKey)) {
4101
+ return Promise.resolve();
4102
+ }
4103
+ } catch (error) {
4104
+ licenseCheckFailed = true;
4105
+ console.log(error);
4106
+ }
4107
+ }
4108
+ if (hasScaleLicenseKey) {
4109
+ try {
4110
+ if (await isEventCatalogScaleEnabled()) {
4111
+ return Promise.resolve();
4112
+ }
4113
+ } catch (error) {
4114
+ licenseCheckFailed = true;
4115
+ console.log(error);
4116
+ }
4117
+ }
4118
+ }
4119
+ if (licenseCheckFailed) {
4059
4120
  console.log(chalk3.bgRed(`
4060
4121
  Failed to verify license key`));
4061
4122
  console.log(chalk3.redBright("Please check your plugin license key or purchase a license at https://eventcatalog.cloud/"));
4062
4123
  process.exit(1);
4063
4124
  }
4125
+ console.log(chalk3.bgRed(`
4126
+ Invalid license key`));
4127
+ console.log(chalk3.redBright("Please check your plugin license key or purchase a license at https://eventcatalog.cloud/"));
4128
+ process.exit(1);
4064
4129
  };
4065
4130
 
4066
4131
  // src/index.ts
@@ -4207,7 +4272,7 @@ var index_default = async (config, options) => {
4207
4272
  throw new Error("Please provide catalog url (env variable PROJECT_DIR)");
4208
4273
  }
4209
4274
  const LICENSE_KEY = process.env.EVENTCATALOG_LICENSE_KEY_ASYNCAPI || options.licenseKey || "";
4210
- await checkLicense_default(package_default.name, LICENSE_KEY);
4275
+ await checkLicense_default(package_default.name, LICENSE_KEY, { allowEventCatalogScaleLicense: true });
4211
4276
  await checkForPackageUpdate(package_default.name);
4212
4277
  const {
4213
4278
  writeService,
@@ -4427,7 +4492,7 @@ Processing domain: ${domainName} (v${domainVersion})`));
4427
4492
  for (const operation of operations) {
4428
4493
  for (const message2 of operation.messages()) {
4429
4494
  const eventType = message2.extensions().get("x-eventcatalog-message-type")?.value() || "event";
4430
- const messageVersion = message2.extensions().get("x-eventcatalog-message-version")?.value() || version;
4495
+ let messageVersion = message2.extensions().get("x-eventcatalog-message-version")?.value() || version;
4431
4496
  const deprecatedDate = message2.extensions().get("x-eventcatalog-deprecated-date")?.value() || null;
4432
4497
  const deprecatedMessage = message2.extensions().get("x-eventcatalog-deprecated-message")?.value() || null;
4433
4498
  const isMessageMarkedAsDraft = isDomainMarkedAsDraft || isServiceMarkedAsDraft || message2.extensions().get("x-eventcatalog-draft")?.value() || null;
@@ -4465,63 +4530,76 @@ Processing domain: ${domainName} (v${domainVersion})`));
4465
4530
  }
4466
4531
  if (serviceOwnsMessageContract) {
4467
4532
  const catalogedMessage = await getMessage(messageId, "latest");
4533
+ let shouldWriteMessage = true;
4468
4534
  if (catalogedMessage) {
4469
4535
  messageMarkdown = catalogedMessage.markdown;
4470
4536
  messageBadges = catalogedMessage.badges || null;
4471
4537
  messageAttachments = catalogedMessage.attachments || null;
4472
- if (catalogedMessage.version !== messageVersion) {
4538
+ const catalogedVersion = catalogedMessage.version ?? "";
4539
+ if (isSameVersion(catalogedVersion, messageVersion)) {
4540
+ } else if (isNewerVersion(messageVersion, catalogedVersion)) {
4473
4541
  await versionMessage(messageId);
4474
4542
  console.log(chalk4.cyan(` - Versioned previous message: (v${catalogedMessage.version})`));
4543
+ } else {
4544
+ console.log(
4545
+ chalk4.yellow(
4546
+ ` - Skipping ${messageId} (v${messageVersion}) - catalog already has a newer version (v${catalogedVersion})`
4547
+ )
4548
+ );
4549
+ messageVersion = catalogedVersion;
4550
+ shouldWriteMessage = false;
4475
4551
  }
4476
4552
  }
4477
- await writeMessage(
4478
- {
4479
- id: messageId,
4480
- version: messageVersion,
4481
- name: getMessageName(message2),
4482
- summary: getSummary(message2),
4483
- markdown: messageMarkdown,
4484
- badges: messageBadges || badges2.map((badge) => ({ content: badge.name(), textColor: "blue", backgroundColor: "blue" })),
4485
- ...messageHasSchema(message2) && { schemaPath: getSchemaFileName(message2) },
4486
- ...owners && { owners },
4487
- ...messageAttachments && { attachments: messageAttachments },
4488
- ...deprecatedDate && {
4489
- deprecated: { date: deprecatedDate, ...deprecatedMessage && { message: deprecatedMessage } }
4490
- },
4491
- ...isMessageMarkedAsDraft && { draft: true }
4492
- },
4493
- {
4494
- override: true,
4495
- path: messagePath
4496
- }
4497
- );
4498
- console.log(chalk4.cyan(` - Message (v${messageVersion}) created`));
4499
- if (messageHasSchema(message2)) {
4500
- const schema = getSchemaForMessage(message2, attachHeadersToSchema);
4501
- const cleanedMessagePath = messagePath.replace(/\\/g, "/").replace(/^(\.\.\/|\.\/)+/g, "");
4502
- await addSchemaToMessage(
4503
- messageId,
4553
+ if (shouldWriteMessage) {
4554
+ await writeMessage(
4504
4555
  {
4505
- fileName: getSchemaFileName(message2),
4506
- schema: safeStringify(schema, 4)
4556
+ id: messageId,
4557
+ version: messageVersion,
4558
+ name: getMessageName(message2),
4559
+ summary: getSummary(message2),
4560
+ markdown: messageMarkdown,
4561
+ badges: messageBadges || badges2.map((badge) => ({ content: badge.name(), textColor: "blue", backgroundColor: "blue" })),
4562
+ ...messageHasSchema(message2) && { schemaPath: getSchemaFileName(message2) },
4563
+ ...owners && { owners },
4564
+ ...messageAttachments && { attachments: messageAttachments },
4565
+ ...deprecatedDate && {
4566
+ deprecated: { date: deprecatedDate, ...deprecatedMessage && { message: deprecatedMessage } }
4567
+ },
4568
+ ...isMessageMarkedAsDraft && { draft: true }
4507
4569
  },
4508
- messageVersion,
4509
- { path: cleanedMessagePath }
4510
- );
4511
- console.log(chalk4.cyan(` - Schema added to message (v${messageVersion})`));
4512
- }
4513
- if (parseExamples) {
4514
- const messageExamples = message2.examples().all();
4515
- for (let i = 0; i < messageExamples.length; i++) {
4516
- const example = messageExamples[i];
4517
- const payload = example.payload();
4518
- if (payload) {
4519
- const fileName2 = example.hasName() ? `${example.name()}.json` : `example-${i}.json`;
4520
- await addExampleToMessage(messageId, { content: JSON.stringify(payload, null, 2), fileName: fileName2 }, messageVersion);
4570
+ {
4571
+ override: true,
4572
+ path: messagePath
4521
4573
  }
4574
+ );
4575
+ console.log(chalk4.cyan(` - Message (v${messageVersion}) created`));
4576
+ if (messageHasSchema(message2)) {
4577
+ const schema = getSchemaForMessage(message2, attachHeadersToSchema);
4578
+ const cleanedMessagePath = messagePath.replace(/\\/g, "/").replace(/^(\.\.\/|\.\/)+/g, "");
4579
+ await addSchemaToMessage(
4580
+ messageId,
4581
+ {
4582
+ fileName: getSchemaFileName(message2),
4583
+ schema: safeStringify(schema, 4)
4584
+ },
4585
+ messageVersion,
4586
+ { path: cleanedMessagePath }
4587
+ );
4588
+ console.log(chalk4.cyan(` - Schema added to message (v${messageVersion})`));
4522
4589
  }
4523
- if (messageExamples.length > 0) {
4524
- console.log(chalk4.cyan(` - ${messageExamples.length} example(s) added to message (v${messageVersion})`));
4590
+ if (parseExamples) {
4591
+ const messageExamples = message2.examples().all();
4592
+ for (let i = 0; i < messageExamples.length; i++) {
4593
+ const example = messageExamples[i];
4594
+ const payload = example.payload();
4595
+ if (payload) {
4596
+ const fileName2 = example.hasName() ? `${example.name()}.json` : `example-${i}.json`;
4597
+ await addExampleToMessage(messageId, { content: JSON.stringify(payload, null, 2), fileName: fileName2 }, messageVersion);
4598
+ }
4599
+ }
4600
+ if (messageExamples.length > 0) {
4601
+ console.log(chalk4.cyan(` - ${messageExamples.length} example(s) added to message (v${messageVersion})`));
4602
+ }
4525
4603
  }
4526
4604
  }
4527
4605
  } else {