@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.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
|
|
|
@@ -4358,6 +4384,18 @@ Processing domain: ${domainName} (v${domainVersion})`));
|
|
|
4358
4384
|
} else {
|
|
4359
4385
|
servicePath = path3.join("../", "domains", options.domain.id, "services", service.id);
|
|
4360
4386
|
}
|
|
4387
|
+
} else {
|
|
4388
|
+
const existingService = await getService(serviceId, "latest");
|
|
4389
|
+
if (existingService) {
|
|
4390
|
+
const existingServiceResource = await getResourcePath(
|
|
4391
|
+
process.env.PROJECT_DIR,
|
|
4392
|
+
serviceId,
|
|
4393
|
+
existingService.version
|
|
4394
|
+
);
|
|
4395
|
+
if (existingServiceResource) {
|
|
4396
|
+
servicePath = path3.join("../", existingServiceResource.directory);
|
|
4397
|
+
}
|
|
4398
|
+
}
|
|
4361
4399
|
}
|
|
4362
4400
|
if (options.writeFilesToRoot) {
|
|
4363
4401
|
servicePath = service.id;
|
|
@@ -4415,7 +4453,7 @@ Processing domain: ${domainName} (v${domainVersion})`));
|
|
|
4415
4453
|
for (const operation of operations) {
|
|
4416
4454
|
for (const message2 of operation.messages()) {
|
|
4417
4455
|
const eventType = message2.extensions().get("x-eventcatalog-message-type")?.value() || "event";
|
|
4418
|
-
|
|
4456
|
+
let messageVersion = message2.extensions().get("x-eventcatalog-message-version")?.value() || version;
|
|
4419
4457
|
const deprecatedDate = message2.extensions().get("x-eventcatalog-deprecated-date")?.value() || null;
|
|
4420
4458
|
const deprecatedMessage = message2.extensions().get("x-eventcatalog-deprecated-message")?.value() || null;
|
|
4421
4459
|
const isMessageMarkedAsDraft = isDomainMarkedAsDraft || isServiceMarkedAsDraft || message2.extensions().get("x-eventcatalog-draft")?.value() || null;
|
|
@@ -4453,63 +4491,76 @@ Processing domain: ${domainName} (v${domainVersion})`));
|
|
|
4453
4491
|
}
|
|
4454
4492
|
if (serviceOwnsMessageContract) {
|
|
4455
4493
|
const catalogedMessage = await getMessage(messageId, "latest");
|
|
4494
|
+
let shouldWriteMessage = true;
|
|
4456
4495
|
if (catalogedMessage) {
|
|
4457
4496
|
messageMarkdown = catalogedMessage.markdown;
|
|
4458
4497
|
messageBadges = catalogedMessage.badges || null;
|
|
4459
4498
|
messageAttachments = catalogedMessage.attachments || null;
|
|
4460
|
-
|
|
4499
|
+
const catalogedVersion = catalogedMessage.version ?? "";
|
|
4500
|
+
if (isSameVersion(catalogedVersion, messageVersion)) {
|
|
4501
|
+
} else if (isNewerVersion(messageVersion, catalogedVersion)) {
|
|
4461
4502
|
await versionMessage(messageId);
|
|
4462
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;
|
|
4463
4512
|
}
|
|
4464
4513
|
}
|
|
4465
|
-
|
|
4466
|
-
|
|
4467
|
-
id: messageId,
|
|
4468
|
-
version: messageVersion,
|
|
4469
|
-
name: getMessageName(message2),
|
|
4470
|
-
summary: getSummary(message2),
|
|
4471
|
-
markdown: messageMarkdown,
|
|
4472
|
-
badges: messageBadges || badges2.map((badge) => ({ content: badge.name(), textColor: "blue", backgroundColor: "blue" })),
|
|
4473
|
-
...messageHasSchema(message2) && { schemaPath: getSchemaFileName(message2) },
|
|
4474
|
-
...owners && { owners },
|
|
4475
|
-
...messageAttachments && { attachments: messageAttachments },
|
|
4476
|
-
...deprecatedDate && {
|
|
4477
|
-
deprecated: { date: deprecatedDate, ...deprecatedMessage && { message: deprecatedMessage } }
|
|
4478
|
-
},
|
|
4479
|
-
...isMessageMarkedAsDraft && { draft: true }
|
|
4480
|
-
},
|
|
4481
|
-
{
|
|
4482
|
-
override: true,
|
|
4483
|
-
path: messagePath
|
|
4484
|
-
}
|
|
4485
|
-
);
|
|
4486
|
-
console.log(chalk4.cyan(` - Message (v${messageVersion}) created`));
|
|
4487
|
-
if (messageHasSchema(message2)) {
|
|
4488
|
-
const schema = getSchemaForMessage(message2, attachHeadersToSchema);
|
|
4489
|
-
const cleanedMessagePath = messagePath.replace(/\\/g, "/").replace(/^(\.\.\/|\.\/)+/g, "");
|
|
4490
|
-
await addSchemaToMessage(
|
|
4491
|
-
messageId,
|
|
4514
|
+
if (shouldWriteMessage) {
|
|
4515
|
+
await writeMessage(
|
|
4492
4516
|
{
|
|
4493
|
-
|
|
4494
|
-
|
|
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 }
|
|
4495
4530
|
},
|
|
4496
|
-
|
|
4497
|
-
|
|
4498
|
-
|
|
4499
|
-
console.log(chalk4.cyan(` - Schema added to message (v${messageVersion})`));
|
|
4500
|
-
}
|
|
4501
|
-
if (parseExamples) {
|
|
4502
|
-
const messageExamples = message2.examples().all();
|
|
4503
|
-
for (let i = 0; i < messageExamples.length; i++) {
|
|
4504
|
-
const example = messageExamples[i];
|
|
4505
|
-
const payload = example.payload();
|
|
4506
|
-
if (payload) {
|
|
4507
|
-
const fileName2 = example.hasName() ? `${example.name()}.json` : `example-${i}.json`;
|
|
4508
|
-
await addExampleToMessage(messageId, { content: JSON.stringify(payload, null, 2), fileName: fileName2 }, messageVersion);
|
|
4531
|
+
{
|
|
4532
|
+
override: true,
|
|
4533
|
+
path: messagePath
|
|
4509
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})`));
|
|
4510
4550
|
}
|
|
4511
|
-
if (
|
|
4512
|
-
|
|
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
|
+
}
|
|
4513
4564
|
}
|
|
4514
4565
|
}
|
|
4515
4566
|
} else {
|