@eventcatalog/generator-asyncapi 6.4.1 → 6.4.2
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 +86 -47
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +86 -47
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -1
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.
|
|
1546
|
+
version: "6.4.2",
|
|
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"
|
|
@@ -2724,6 +2726,30 @@ var defaultMarkdown4 = (_document, channel) => {
|
|
|
2724
2726
|
`;
|
|
2725
2727
|
};
|
|
2726
2728
|
|
|
2729
|
+
// src/utils/versions.ts
|
|
2730
|
+
var import_semver = require("semver");
|
|
2731
|
+
var tryCoerceToSemver = (version) => {
|
|
2732
|
+
if ((0, import_semver.valid)(version)) return version;
|
|
2733
|
+
const coerced = (0, import_semver.coerce)(version);
|
|
2734
|
+
return coerced ? coerced.version : null;
|
|
2735
|
+
};
|
|
2736
|
+
var isNewerVersion = (incoming, existing) => {
|
|
2737
|
+
if (!incoming || !existing) return false;
|
|
2738
|
+
if (incoming === existing) return false;
|
|
2739
|
+
const incomingSemver = tryCoerceToSemver(incoming);
|
|
2740
|
+
const existingSemver = tryCoerceToSemver(existing);
|
|
2741
|
+
if (!incomingSemver || !existingSemver) return false;
|
|
2742
|
+
return (0, import_semver.gt)(incomingSemver, existingSemver);
|
|
2743
|
+
};
|
|
2744
|
+
var isSameVersion = (a, b) => {
|
|
2745
|
+
if (!a || !b) return false;
|
|
2746
|
+
if (a === b) return true;
|
|
2747
|
+
const aSemver = tryCoerceToSemver(a);
|
|
2748
|
+
const bSemver = tryCoerceToSemver(b);
|
|
2749
|
+
if (!aSemver || !bSemver) return false;
|
|
2750
|
+
return (0, import_semver.eq)(aSemver, bSemver);
|
|
2751
|
+
};
|
|
2752
|
+
|
|
2727
2753
|
// ../../shared/checkLicense.ts
|
|
2728
2754
|
var import_chalk3 = __toESM(require("chalk"));
|
|
2729
2755
|
|
|
@@ -4432,7 +4458,7 @@ Processing domain: ${domainName} (v${domainVersion})`));
|
|
|
4432
4458
|
for (const operation of operations) {
|
|
4433
4459
|
for (const message2 of operation.messages()) {
|
|
4434
4460
|
const eventType = message2.extensions().get("x-eventcatalog-message-type")?.value() || "event";
|
|
4435
|
-
|
|
4461
|
+
let messageVersion = message2.extensions().get("x-eventcatalog-message-version")?.value() || version;
|
|
4436
4462
|
const deprecatedDate = message2.extensions().get("x-eventcatalog-deprecated-date")?.value() || null;
|
|
4437
4463
|
const deprecatedMessage = message2.extensions().get("x-eventcatalog-deprecated-message")?.value() || null;
|
|
4438
4464
|
const isMessageMarkedAsDraft = isDomainMarkedAsDraft || isServiceMarkedAsDraft || message2.extensions().get("x-eventcatalog-draft")?.value() || null;
|
|
@@ -4470,63 +4496,76 @@ Processing domain: ${domainName} (v${domainVersion})`));
|
|
|
4470
4496
|
}
|
|
4471
4497
|
if (serviceOwnsMessageContract) {
|
|
4472
4498
|
const catalogedMessage = await getMessage(messageId, "latest");
|
|
4499
|
+
let shouldWriteMessage = true;
|
|
4473
4500
|
if (catalogedMessage) {
|
|
4474
4501
|
messageMarkdown = catalogedMessage.markdown;
|
|
4475
4502
|
messageBadges = catalogedMessage.badges || null;
|
|
4476
4503
|
messageAttachments = catalogedMessage.attachments || null;
|
|
4477
|
-
|
|
4504
|
+
const catalogedVersion = catalogedMessage.version ?? "";
|
|
4505
|
+
if (isSameVersion(catalogedVersion, messageVersion)) {
|
|
4506
|
+
} else if (isNewerVersion(messageVersion, catalogedVersion)) {
|
|
4478
4507
|
await versionMessage(messageId);
|
|
4479
4508
|
console.log(import_chalk4.default.cyan(` - Versioned previous message: (v${catalogedMessage.version})`));
|
|
4509
|
+
} else {
|
|
4510
|
+
console.log(
|
|
4511
|
+
import_chalk4.default.yellow(
|
|
4512
|
+
` - Skipping ${messageId} (v${messageVersion}) - catalog already has a newer version (v${catalogedVersion})`
|
|
4513
|
+
)
|
|
4514
|
+
);
|
|
4515
|
+
messageVersion = catalogedVersion;
|
|
4516
|
+
shouldWriteMessage = false;
|
|
4480
4517
|
}
|
|
4481
4518
|
}
|
|
4482
|
-
|
|
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,
|
|
4519
|
+
if (shouldWriteMessage) {
|
|
4520
|
+
await writeMessage(
|
|
4509
4521
|
{
|
|
4510
|
-
|
|
4511
|
-
|
|
4522
|
+
id: messageId,
|
|
4523
|
+
version: messageVersion,
|
|
4524
|
+
name: getMessageName(message2),
|
|
4525
|
+
summary: getSummary(message2),
|
|
4526
|
+
markdown: messageMarkdown,
|
|
4527
|
+
badges: messageBadges || badges2.map((badge) => ({ content: badge.name(), textColor: "blue", backgroundColor: "blue" })),
|
|
4528
|
+
...messageHasSchema(message2) && { schemaPath: getSchemaFileName(message2) },
|
|
4529
|
+
...owners && { owners },
|
|
4530
|
+
...messageAttachments && { attachments: messageAttachments },
|
|
4531
|
+
...deprecatedDate && {
|
|
4532
|
+
deprecated: { date: deprecatedDate, ...deprecatedMessage && { message: deprecatedMessage } }
|
|
4533
|
+
},
|
|
4534
|
+
...isMessageMarkedAsDraft && { draft: true }
|
|
4512
4535
|
},
|
|
4513
|
-
|
|
4514
|
-
|
|
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);
|
|
4536
|
+
{
|
|
4537
|
+
override: true,
|
|
4538
|
+
path: messagePath
|
|
4526
4539
|
}
|
|
4540
|
+
);
|
|
4541
|
+
console.log(import_chalk4.default.cyan(` - Message (v${messageVersion}) created`));
|
|
4542
|
+
if (messageHasSchema(message2)) {
|
|
4543
|
+
const schema = getSchemaForMessage(message2, attachHeadersToSchema);
|
|
4544
|
+
const cleanedMessagePath = messagePath.replace(/\\/g, "/").replace(/^(\.\.\/|\.\/)+/g, "");
|
|
4545
|
+
await addSchemaToMessage(
|
|
4546
|
+
messageId,
|
|
4547
|
+
{
|
|
4548
|
+
fileName: getSchemaFileName(message2),
|
|
4549
|
+
schema: safeStringify(schema, 4)
|
|
4550
|
+
},
|
|
4551
|
+
messageVersion,
|
|
4552
|
+
{ path: cleanedMessagePath }
|
|
4553
|
+
);
|
|
4554
|
+
console.log(import_chalk4.default.cyan(` - Schema added to message (v${messageVersion})`));
|
|
4527
4555
|
}
|
|
4528
|
-
if (
|
|
4529
|
-
|
|
4556
|
+
if (parseExamples) {
|
|
4557
|
+
const messageExamples = message2.examples().all();
|
|
4558
|
+
for (let i = 0; i < messageExamples.length; i++) {
|
|
4559
|
+
const example = messageExamples[i];
|
|
4560
|
+
const payload = example.payload();
|
|
4561
|
+
if (payload) {
|
|
4562
|
+
const fileName2 = example.hasName() ? `${example.name()}.json` : `example-${i}.json`;
|
|
4563
|
+
await addExampleToMessage(messageId, { content: JSON.stringify(payload, null, 2), fileName: fileName2 }, messageVersion);
|
|
4564
|
+
}
|
|
4565
|
+
}
|
|
4566
|
+
if (messageExamples.length > 0) {
|
|
4567
|
+
console.log(import_chalk4.default.cyan(` - ${messageExamples.length} example(s) added to message (v${messageVersion})`));
|
|
4568
|
+
}
|
|
4530
4569
|
}
|
|
4531
4570
|
}
|
|
4532
4571
|
} else {
|