@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.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.
|
|
1541
|
+
version: "6.4.2",
|
|
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"
|
|
@@ -2719,6 +2721,30 @@ var defaultMarkdown4 = (_document, channel) => {
|
|
|
2719
2721
|
`;
|
|
2720
2722
|
};
|
|
2721
2723
|
|
|
2724
|
+
// src/utils/versions.ts
|
|
2725
|
+
import { valid as semverValid, gt as semverGt, eq as semverEq, coerce as semverCoerce } from "semver";
|
|
2726
|
+
var tryCoerceToSemver = (version) => {
|
|
2727
|
+
if (semverValid(version)) return version;
|
|
2728
|
+
const coerced = semverCoerce(version);
|
|
2729
|
+
return coerced ? coerced.version : null;
|
|
2730
|
+
};
|
|
2731
|
+
var isNewerVersion = (incoming, existing) => {
|
|
2732
|
+
if (!incoming || !existing) return false;
|
|
2733
|
+
if (incoming === existing) return false;
|
|
2734
|
+
const incomingSemver = tryCoerceToSemver(incoming);
|
|
2735
|
+
const existingSemver = tryCoerceToSemver(existing);
|
|
2736
|
+
if (!incomingSemver || !existingSemver) return false;
|
|
2737
|
+
return semverGt(incomingSemver, existingSemver);
|
|
2738
|
+
};
|
|
2739
|
+
var isSameVersion = (a, b) => {
|
|
2740
|
+
if (!a || !b) return false;
|
|
2741
|
+
if (a === b) return true;
|
|
2742
|
+
const aSemver = tryCoerceToSemver(a);
|
|
2743
|
+
const bSemver = tryCoerceToSemver(b);
|
|
2744
|
+
if (!aSemver || !bSemver) return false;
|
|
2745
|
+
return semverEq(aSemver, bSemver);
|
|
2746
|
+
};
|
|
2747
|
+
|
|
2722
2748
|
// ../../shared/checkLicense.ts
|
|
2723
2749
|
import chalk3 from "chalk";
|
|
2724
2750
|
|
|
@@ -4427,7 +4453,7 @@ Processing domain: ${domainName} (v${domainVersion})`));
|
|
|
4427
4453
|
for (const operation of operations) {
|
|
4428
4454
|
for (const message2 of operation.messages()) {
|
|
4429
4455
|
const eventType = message2.extensions().get("x-eventcatalog-message-type")?.value() || "event";
|
|
4430
|
-
|
|
4456
|
+
let messageVersion = message2.extensions().get("x-eventcatalog-message-version")?.value() || version;
|
|
4431
4457
|
const deprecatedDate = message2.extensions().get("x-eventcatalog-deprecated-date")?.value() || null;
|
|
4432
4458
|
const deprecatedMessage = message2.extensions().get("x-eventcatalog-deprecated-message")?.value() || null;
|
|
4433
4459
|
const isMessageMarkedAsDraft = isDomainMarkedAsDraft || isServiceMarkedAsDraft || message2.extensions().get("x-eventcatalog-draft")?.value() || null;
|
|
@@ -4465,63 +4491,76 @@ Processing domain: ${domainName} (v${domainVersion})`));
|
|
|
4465
4491
|
}
|
|
4466
4492
|
if (serviceOwnsMessageContract) {
|
|
4467
4493
|
const catalogedMessage = await getMessage(messageId, "latest");
|
|
4494
|
+
let shouldWriteMessage = true;
|
|
4468
4495
|
if (catalogedMessage) {
|
|
4469
4496
|
messageMarkdown = catalogedMessage.markdown;
|
|
4470
4497
|
messageBadges = catalogedMessage.badges || null;
|
|
4471
4498
|
messageAttachments = catalogedMessage.attachments || null;
|
|
4472
|
-
|
|
4499
|
+
const catalogedVersion = catalogedMessage.version ?? "";
|
|
4500
|
+
if (isSameVersion(catalogedVersion, messageVersion)) {
|
|
4501
|
+
} else if (isNewerVersion(messageVersion, catalogedVersion)) {
|
|
4473
4502
|
await versionMessage(messageId);
|
|
4474
4503
|
console.log(chalk4.cyan(` - Versioned previous message: (v${catalogedMessage.version})`));
|
|
4504
|
+
} else {
|
|
4505
|
+
console.log(
|
|
4506
|
+
chalk4.yellow(
|
|
4507
|
+
` - Skipping ${messageId} (v${messageVersion}) - catalog already has a newer version (v${catalogedVersion})`
|
|
4508
|
+
)
|
|
4509
|
+
);
|
|
4510
|
+
messageVersion = catalogedVersion;
|
|
4511
|
+
shouldWriteMessage = false;
|
|
4475
4512
|
}
|
|
4476
4513
|
}
|
|
4477
|
-
|
|
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,
|
|
4514
|
+
if (shouldWriteMessage) {
|
|
4515
|
+
await writeMessage(
|
|
4504
4516
|
{
|
|
4505
|
-
|
|
4506
|
-
|
|
4517
|
+
id: messageId,
|
|
4518
|
+
version: messageVersion,
|
|
4519
|
+
name: getMessageName(message2),
|
|
4520
|
+
summary: getSummary(message2),
|
|
4521
|
+
markdown: messageMarkdown,
|
|
4522
|
+
badges: messageBadges || badges2.map((badge) => ({ content: badge.name(), textColor: "blue", backgroundColor: "blue" })),
|
|
4523
|
+
...messageHasSchema(message2) && { schemaPath: getSchemaFileName(message2) },
|
|
4524
|
+
...owners && { owners },
|
|
4525
|
+
...messageAttachments && { attachments: messageAttachments },
|
|
4526
|
+
...deprecatedDate && {
|
|
4527
|
+
deprecated: { date: deprecatedDate, ...deprecatedMessage && { message: deprecatedMessage } }
|
|
4528
|
+
},
|
|
4529
|
+
...isMessageMarkedAsDraft && { draft: true }
|
|
4507
4530
|
},
|
|
4508
|
-
|
|
4509
|
-
|
|
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);
|
|
4531
|
+
{
|
|
4532
|
+
override: true,
|
|
4533
|
+
path: messagePath
|
|
4521
4534
|
}
|
|
4535
|
+
);
|
|
4536
|
+
console.log(chalk4.cyan(` - Message (v${messageVersion}) created`));
|
|
4537
|
+
if (messageHasSchema(message2)) {
|
|
4538
|
+
const schema = getSchemaForMessage(message2, attachHeadersToSchema);
|
|
4539
|
+
const cleanedMessagePath = messagePath.replace(/\\/g, "/").replace(/^(\.\.\/|\.\/)+/g, "");
|
|
4540
|
+
await addSchemaToMessage(
|
|
4541
|
+
messageId,
|
|
4542
|
+
{
|
|
4543
|
+
fileName: getSchemaFileName(message2),
|
|
4544
|
+
schema: safeStringify(schema, 4)
|
|
4545
|
+
},
|
|
4546
|
+
messageVersion,
|
|
4547
|
+
{ path: cleanedMessagePath }
|
|
4548
|
+
);
|
|
4549
|
+
console.log(chalk4.cyan(` - Schema added to message (v${messageVersion})`));
|
|
4522
4550
|
}
|
|
4523
|
-
if (
|
|
4524
|
-
|
|
4551
|
+
if (parseExamples) {
|
|
4552
|
+
const messageExamples = message2.examples().all();
|
|
4553
|
+
for (let i = 0; i < messageExamples.length; i++) {
|
|
4554
|
+
const example = messageExamples[i];
|
|
4555
|
+
const payload = example.payload();
|
|
4556
|
+
if (payload) {
|
|
4557
|
+
const fileName2 = example.hasName() ? `${example.name()}.json` : `example-${i}.json`;
|
|
4558
|
+
await addExampleToMessage(messageId, { content: JSON.stringify(payload, null, 2), fileName: fileName2 }, messageVersion);
|
|
4559
|
+
}
|
|
4560
|
+
}
|
|
4561
|
+
if (messageExamples.length > 0) {
|
|
4562
|
+
console.log(chalk4.cyan(` - ${messageExamples.length} example(s) added to message (v${messageVersion})`));
|
|
4563
|
+
}
|
|
4525
4564
|
}
|
|
4526
4565
|
}
|
|
4527
4566
|
} else {
|