@eventcatalog/generator-asyncapi 6.4.4 → 7.0.0
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 +50 -10
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +51 -11
- package/dist/index.mjs.map +1 -1
- package/dist/types.d.mts +1 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1528,7 +1528,7 @@ var require_dist2 = __commonJS({
|
|
|
1528
1528
|
// src/index.ts
|
|
1529
1529
|
import { Parser, fromFile, fromURL } from "@asyncapi/parser";
|
|
1530
1530
|
import utils from "@eventcatalog/sdk";
|
|
1531
|
-
import { readFile } from "fs/promises";
|
|
1531
|
+
import { cp, mkdir, readFile, rm } from "fs/promises";
|
|
1532
1532
|
import argv from "minimist";
|
|
1533
1533
|
import yaml from "js-yaml";
|
|
1534
1534
|
import { z } from "zod";
|
|
@@ -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: "
|
|
1541
|
+
version: "7.0.0",
|
|
1542
1542
|
description: "AsyncAPI generator for EventCatalog",
|
|
1543
1543
|
scripts: {
|
|
1544
1544
|
build: "tsup",
|
|
@@ -4290,6 +4290,9 @@ var index_default = async (config, options) => {
|
|
|
4290
4290
|
versionCommand,
|
|
4291
4291
|
versionEvent,
|
|
4292
4292
|
versionQuery,
|
|
4293
|
+
rmCommandById,
|
|
4294
|
+
rmEventById,
|
|
4295
|
+
rmQueryById,
|
|
4293
4296
|
addSchemaToCommand,
|
|
4294
4297
|
addSchemaToEvent,
|
|
4295
4298
|
addSchemaToQuery,
|
|
@@ -4309,6 +4312,7 @@ var index_default = async (config, options) => {
|
|
|
4309
4312
|
write: writeEvent,
|
|
4310
4313
|
version: versionEvent,
|
|
4311
4314
|
get: getEvent,
|
|
4315
|
+
remove: rmEventById,
|
|
4312
4316
|
addSchema: addSchemaToEvent,
|
|
4313
4317
|
addExample: addExampleToEvent,
|
|
4314
4318
|
collection: "events"
|
|
@@ -4317,6 +4321,7 @@ var index_default = async (config, options) => {
|
|
|
4317
4321
|
write: writeCommand,
|
|
4318
4322
|
version: versionCommand,
|
|
4319
4323
|
get: getCommand,
|
|
4324
|
+
remove: rmCommandById,
|
|
4320
4325
|
addSchema: addSchemaToCommand,
|
|
4321
4326
|
addExample: addExampleToCommand,
|
|
4322
4327
|
collection: "commands"
|
|
@@ -4325,6 +4330,7 @@ var index_default = async (config, options) => {
|
|
|
4325
4330
|
write: writeQuery,
|
|
4326
4331
|
version: versionQuery,
|
|
4327
4332
|
get: getQuery,
|
|
4333
|
+
remove: rmQueryById,
|
|
4328
4334
|
addSchema: addSchemaToQuery,
|
|
4329
4335
|
addExample: addExampleToQuery,
|
|
4330
4336
|
collection: "queries"
|
|
@@ -4496,7 +4502,8 @@ Processing domain: ${domainName} (v${domainVersion})`));
|
|
|
4496
4502
|
const deprecatedDate = message2.extensions().get("x-eventcatalog-deprecated-date")?.value() || null;
|
|
4497
4503
|
const deprecatedMessage = message2.extensions().get("x-eventcatalog-deprecated-message")?.value() || null;
|
|
4498
4504
|
const isMessageMarkedAsDraft = isDomainMarkedAsDraft || isServiceMarkedAsDraft || message2.extensions().get("x-eventcatalog-draft")?.value() || null;
|
|
4499
|
-
const
|
|
4505
|
+
const messageOwnership = getMessageOwnership(message2, operation);
|
|
4506
|
+
const serviceOwnsMessageContract = messageOwnership === "owner";
|
|
4500
4507
|
const isReceived = operation.action() === "receive" || operation.action() === "subscribe";
|
|
4501
4508
|
const isSent = operation.action() === "send" || operation.action() === "publish";
|
|
4502
4509
|
let messageId = options.messages?.id?.lowerCase ? message2.id().toLowerCase() : message2.id();
|
|
@@ -4514,6 +4521,7 @@ Processing domain: ${domainName} (v${domainVersion})`));
|
|
|
4514
4521
|
write: writeMessage,
|
|
4515
4522
|
version: versionMessage,
|
|
4516
4523
|
get: getMessage,
|
|
4524
|
+
remove: removeMessage,
|
|
4517
4525
|
addSchema: addSchemaToMessage,
|
|
4518
4526
|
addExample: addExampleToMessage,
|
|
4519
4527
|
collection: folder
|
|
@@ -4528,15 +4536,24 @@ Processing domain: ${domainName} (v${domainVersion})`));
|
|
|
4528
4536
|
if (options.writeFilesToRoot) {
|
|
4529
4537
|
messagePath = messageId;
|
|
4530
4538
|
}
|
|
4531
|
-
if (
|
|
4539
|
+
if (messageOwnership === "external") {
|
|
4540
|
+
console.log(chalk4.yellow(` - Skipping external message: ${getMessageName(message2)}(v${messageVersion})`));
|
|
4541
|
+
} else {
|
|
4532
4542
|
const catalogedMessage = await getMessage(messageId, "latest");
|
|
4533
4543
|
let shouldWriteMessage = true;
|
|
4534
|
-
|
|
4544
|
+
let existingMessageDirectoryToRelocate = null;
|
|
4545
|
+
if (serviceOwnsMessageContract && catalogedMessage) {
|
|
4535
4546
|
messageMarkdown = catalogedMessage.markdown;
|
|
4536
4547
|
messageBadges = catalogedMessage.badges || null;
|
|
4537
4548
|
messageAttachments = catalogedMessage.attachments || null;
|
|
4538
4549
|
const catalogedVersion = catalogedMessage.version ?? "";
|
|
4539
4550
|
if (isSameVersion(catalogedVersion, messageVersion)) {
|
|
4551
|
+
const catalogedMessagePath = await getResourcePath(process.env.PROJECT_DIR, messageId, catalogedVersion);
|
|
4552
|
+
const targetMessageDirectory = path3.resolve(process.env.PROJECT_DIR, folder, messagePath);
|
|
4553
|
+
const catalogedMessageDirectory = catalogedMessagePath ? path3.dirname(catalogedMessagePath.fullPath) : null;
|
|
4554
|
+
if (catalogedMessageDirectory && path3.normalize(catalogedMessageDirectory) !== path3.normalize(targetMessageDirectory)) {
|
|
4555
|
+
existingMessageDirectoryToRelocate = catalogedMessageDirectory;
|
|
4556
|
+
}
|
|
4540
4557
|
} else if (isNewerVersion(messageVersion, catalogedVersion)) {
|
|
4541
4558
|
await versionMessage(messageId);
|
|
4542
4559
|
console.log(chalk4.cyan(` - Versioned previous message: (v${catalogedMessage.version})`));
|
|
@@ -4549,8 +4566,24 @@ Processing domain: ${domainName} (v${domainVersion})`));
|
|
|
4549
4566
|
messageVersion = catalogedVersion;
|
|
4550
4567
|
shouldWriteMessage = false;
|
|
4551
4568
|
}
|
|
4569
|
+
} else if (!serviceOwnsMessageContract && catalogedMessage) {
|
|
4570
|
+
console.log(
|
|
4571
|
+
chalk4.yellow(` - Referencing existing message ${messageId} (v${catalogedMessage.version}) without overwriting`)
|
|
4572
|
+
);
|
|
4573
|
+
messageVersion = catalogedMessage.version ?? messageVersion;
|
|
4574
|
+
shouldWriteMessage = false;
|
|
4552
4575
|
}
|
|
4553
4576
|
if (shouldWriteMessage) {
|
|
4577
|
+
if (existingMessageDirectoryToRelocate) {
|
|
4578
|
+
const targetMessageDirectory = path3.resolve(process.env.PROJECT_DIR, folder, messagePath);
|
|
4579
|
+
await removeMessage(messageId, messageVersion, true);
|
|
4580
|
+
await mkdir(path3.dirname(targetMessageDirectory), { recursive: true });
|
|
4581
|
+
await cp(existingMessageDirectoryToRelocate, targetMessageDirectory, {
|
|
4582
|
+
recursive: true,
|
|
4583
|
+
force: true
|
|
4584
|
+
});
|
|
4585
|
+
await rm(existingMessageDirectoryToRelocate, { recursive: true, force: true });
|
|
4586
|
+
}
|
|
4554
4587
|
await writeMessage(
|
|
4555
4588
|
{
|
|
4556
4589
|
id: messageId,
|
|
@@ -4568,7 +4601,9 @@ Processing domain: ${domainName} (v${domainVersion})`));
|
|
|
4568
4601
|
...isMessageMarkedAsDraft && { draft: true }
|
|
4569
4602
|
},
|
|
4570
4603
|
{
|
|
4571
|
-
|
|
4604
|
+
// References only reach this branch when the message is missing. They may
|
|
4605
|
+
// create a fallback, but only owners may replace an existing contract.
|
|
4606
|
+
override: serviceOwnsMessageContract,
|
|
4572
4607
|
path: messagePath
|
|
4573
4608
|
}
|
|
4574
4609
|
);
|
|
@@ -4602,8 +4637,6 @@ Processing domain: ${domainName} (v${domainVersion})`));
|
|
|
4602
4637
|
}
|
|
4603
4638
|
}
|
|
4604
4639
|
}
|
|
4605
|
-
} else {
|
|
4606
|
-
console.log(chalk4.yellow(` - Skipping external message: ${getMessageName(message2)}(v${messageVersion})`));
|
|
4607
4640
|
}
|
|
4608
4641
|
const group = options.groupMessagesBy === "x-extension" ? message2.extensions().get("x-eventcatalog-group")?.value() || void 0 : void 0;
|
|
4609
4642
|
if (parseChannels) {
|
|
@@ -4769,11 +4802,18 @@ var getSchemaFromMessagePart = (schema) => {
|
|
|
4769
4802
|
var isJSONSchemaMessage = (message2) => {
|
|
4770
4803
|
return getSchemaFileName(message2).endsWith(".json");
|
|
4771
4804
|
};
|
|
4772
|
-
var
|
|
4805
|
+
var getMessageOwnership = (message2, operation) => {
|
|
4773
4806
|
const operationRole = operation?.extensions?.().get?.("x-eventcatalog-role")?.value?.();
|
|
4774
4807
|
const messageRole = message2.extensions().get("x-eventcatalog-role")?.value();
|
|
4775
|
-
const
|
|
4776
|
-
|
|
4808
|
+
const explicitRole = operationRole || messageRole;
|
|
4809
|
+
if (explicitRole) {
|
|
4810
|
+
return explicitRole === "provider" ? "owner" : "external";
|
|
4811
|
+
}
|
|
4812
|
+
const action = operation?.action?.();
|
|
4813
|
+
if (action === "receive" || action === "subscribe") {
|
|
4814
|
+
return "reference";
|
|
4815
|
+
}
|
|
4816
|
+
return "owner";
|
|
4777
4817
|
};
|
|
4778
4818
|
export {
|
|
4779
4819
|
index_default as default
|