@eventcatalog/generator-asyncapi 6.4.0 → 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 +98 -47
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +98 -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
|
|
|
@@ -4363,6 +4389,18 @@ Processing domain: ${domainName} (v${domainVersion})`));
|
|
|
4363
4389
|
} else {
|
|
4364
4390
|
servicePath = import_path3.default.join("../", "domains", options.domain.id, "services", service.id);
|
|
4365
4391
|
}
|
|
4392
|
+
} else {
|
|
4393
|
+
const existingService = await getService(serviceId, "latest");
|
|
4394
|
+
if (existingService) {
|
|
4395
|
+
const existingServiceResource = await getResourcePath(
|
|
4396
|
+
process.env.PROJECT_DIR,
|
|
4397
|
+
serviceId,
|
|
4398
|
+
existingService.version
|
|
4399
|
+
);
|
|
4400
|
+
if (existingServiceResource) {
|
|
4401
|
+
servicePath = import_path3.default.join("../", existingServiceResource.directory);
|
|
4402
|
+
}
|
|
4403
|
+
}
|
|
4366
4404
|
}
|
|
4367
4405
|
if (options.writeFilesToRoot) {
|
|
4368
4406
|
servicePath = service.id;
|
|
@@ -4420,7 +4458,7 @@ Processing domain: ${domainName} (v${domainVersion})`));
|
|
|
4420
4458
|
for (const operation of operations) {
|
|
4421
4459
|
for (const message2 of operation.messages()) {
|
|
4422
4460
|
const eventType = message2.extensions().get("x-eventcatalog-message-type")?.value() || "event";
|
|
4423
|
-
|
|
4461
|
+
let messageVersion = message2.extensions().get("x-eventcatalog-message-version")?.value() || version;
|
|
4424
4462
|
const deprecatedDate = message2.extensions().get("x-eventcatalog-deprecated-date")?.value() || null;
|
|
4425
4463
|
const deprecatedMessage = message2.extensions().get("x-eventcatalog-deprecated-message")?.value() || null;
|
|
4426
4464
|
const isMessageMarkedAsDraft = isDomainMarkedAsDraft || isServiceMarkedAsDraft || message2.extensions().get("x-eventcatalog-draft")?.value() || null;
|
|
@@ -4458,63 +4496,76 @@ Processing domain: ${domainName} (v${domainVersion})`));
|
|
|
4458
4496
|
}
|
|
4459
4497
|
if (serviceOwnsMessageContract) {
|
|
4460
4498
|
const catalogedMessage = await getMessage(messageId, "latest");
|
|
4499
|
+
let shouldWriteMessage = true;
|
|
4461
4500
|
if (catalogedMessage) {
|
|
4462
4501
|
messageMarkdown = catalogedMessage.markdown;
|
|
4463
4502
|
messageBadges = catalogedMessage.badges || null;
|
|
4464
4503
|
messageAttachments = catalogedMessage.attachments || null;
|
|
4465
|
-
|
|
4504
|
+
const catalogedVersion = catalogedMessage.version ?? "";
|
|
4505
|
+
if (isSameVersion(catalogedVersion, messageVersion)) {
|
|
4506
|
+
} else if (isNewerVersion(messageVersion, catalogedVersion)) {
|
|
4466
4507
|
await versionMessage(messageId);
|
|
4467
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;
|
|
4468
4517
|
}
|
|
4469
4518
|
}
|
|
4470
|
-
|
|
4471
|
-
|
|
4472
|
-
id: messageId,
|
|
4473
|
-
version: messageVersion,
|
|
4474
|
-
name: getMessageName(message2),
|
|
4475
|
-
summary: getSummary(message2),
|
|
4476
|
-
markdown: messageMarkdown,
|
|
4477
|
-
badges: messageBadges || badges2.map((badge) => ({ content: badge.name(), textColor: "blue", backgroundColor: "blue" })),
|
|
4478
|
-
...messageHasSchema(message2) && { schemaPath: getSchemaFileName(message2) },
|
|
4479
|
-
...owners && { owners },
|
|
4480
|
-
...messageAttachments && { attachments: messageAttachments },
|
|
4481
|
-
...deprecatedDate && {
|
|
4482
|
-
deprecated: { date: deprecatedDate, ...deprecatedMessage && { message: deprecatedMessage } }
|
|
4483
|
-
},
|
|
4484
|
-
...isMessageMarkedAsDraft && { draft: true }
|
|
4485
|
-
},
|
|
4486
|
-
{
|
|
4487
|
-
override: true,
|
|
4488
|
-
path: messagePath
|
|
4489
|
-
}
|
|
4490
|
-
);
|
|
4491
|
-
console.log(import_chalk4.default.cyan(` - Message (v${messageVersion}) created`));
|
|
4492
|
-
if (messageHasSchema(message2)) {
|
|
4493
|
-
const schema = getSchemaForMessage(message2, attachHeadersToSchema);
|
|
4494
|
-
const cleanedMessagePath = messagePath.replace(/\\/g, "/").replace(/^(\.\.\/|\.\/)+/g, "");
|
|
4495
|
-
await addSchemaToMessage(
|
|
4496
|
-
messageId,
|
|
4519
|
+
if (shouldWriteMessage) {
|
|
4520
|
+
await writeMessage(
|
|
4497
4521
|
{
|
|
4498
|
-
|
|
4499
|
-
|
|
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 }
|
|
4500
4535
|
},
|
|
4501
|
-
|
|
4502
|
-
|
|
4503
|
-
|
|
4504
|
-
console.log(import_chalk4.default.cyan(` - Schema added to message (v${messageVersion})`));
|
|
4505
|
-
}
|
|
4506
|
-
if (parseExamples) {
|
|
4507
|
-
const messageExamples = message2.examples().all();
|
|
4508
|
-
for (let i = 0; i < messageExamples.length; i++) {
|
|
4509
|
-
const example = messageExamples[i];
|
|
4510
|
-
const payload = example.payload();
|
|
4511
|
-
if (payload) {
|
|
4512
|
-
const fileName2 = example.hasName() ? `${example.name()}.json` : `example-${i}.json`;
|
|
4513
|
-
await addExampleToMessage(messageId, { content: JSON.stringify(payload, null, 2), fileName: fileName2 }, messageVersion);
|
|
4536
|
+
{
|
|
4537
|
+
override: true,
|
|
4538
|
+
path: messagePath
|
|
4514
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})`));
|
|
4515
4555
|
}
|
|
4516
|
-
if (
|
|
4517
|
-
|
|
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
|
+
}
|
|
4518
4569
|
}
|
|
4519
4570
|
}
|
|
4520
4571
|
} else {
|