@eventcatalog/generator-asyncapi 5.4.2 → 5.5.1
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.d.mts +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +126 -20
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +126 -20
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -241,6 +241,7 @@ declare const optionsSchema: z.ZodObject<{
|
|
|
241
241
|
debug: z.ZodOptional<z.ZodBoolean>;
|
|
242
242
|
parseSchemas: z.ZodOptional<z.ZodBoolean>;
|
|
243
243
|
parseChannels: z.ZodOptional<z.ZodBoolean>;
|
|
244
|
+
attachHeadersToSchema: z.ZodOptional<z.ZodBoolean>;
|
|
244
245
|
saveParsedSpecFile: z.ZodOptional<z.ZodBoolean>;
|
|
245
246
|
}, "strip", z.ZodTypeAny, {
|
|
246
247
|
services: {
|
|
@@ -303,6 +304,7 @@ declare const optionsSchema: z.ZodObject<{
|
|
|
303
304
|
debug?: boolean | undefined;
|
|
304
305
|
parseSchemas?: boolean | undefined;
|
|
305
306
|
parseChannels?: boolean | undefined;
|
|
307
|
+
attachHeadersToSchema?: boolean | undefined;
|
|
306
308
|
saveParsedSpecFile?: boolean | undefined;
|
|
307
309
|
}, {
|
|
308
310
|
services: {
|
|
@@ -365,6 +367,7 @@ declare const optionsSchema: z.ZodObject<{
|
|
|
365
367
|
debug?: boolean | undefined;
|
|
366
368
|
parseSchemas?: boolean | undefined;
|
|
367
369
|
parseChannels?: boolean | undefined;
|
|
370
|
+
attachHeadersToSchema?: boolean | undefined;
|
|
368
371
|
saveParsedSpecFile?: boolean | undefined;
|
|
369
372
|
}>;
|
|
370
373
|
type Props = z.infer<typeof optionsSchema>;
|
package/dist/index.d.ts
CHANGED
|
@@ -241,6 +241,7 @@ declare const optionsSchema: z.ZodObject<{
|
|
|
241
241
|
debug: z.ZodOptional<z.ZodBoolean>;
|
|
242
242
|
parseSchemas: z.ZodOptional<z.ZodBoolean>;
|
|
243
243
|
parseChannels: z.ZodOptional<z.ZodBoolean>;
|
|
244
|
+
attachHeadersToSchema: z.ZodOptional<z.ZodBoolean>;
|
|
244
245
|
saveParsedSpecFile: z.ZodOptional<z.ZodBoolean>;
|
|
245
246
|
}, "strip", z.ZodTypeAny, {
|
|
246
247
|
services: {
|
|
@@ -303,6 +304,7 @@ declare const optionsSchema: z.ZodObject<{
|
|
|
303
304
|
debug?: boolean | undefined;
|
|
304
305
|
parseSchemas?: boolean | undefined;
|
|
305
306
|
parseChannels?: boolean | undefined;
|
|
307
|
+
attachHeadersToSchema?: boolean | undefined;
|
|
306
308
|
saveParsedSpecFile?: boolean | undefined;
|
|
307
309
|
}, {
|
|
308
310
|
services: {
|
|
@@ -365,6 +367,7 @@ declare const optionsSchema: z.ZodObject<{
|
|
|
365
367
|
debug?: boolean | undefined;
|
|
366
368
|
parseSchemas?: boolean | undefined;
|
|
367
369
|
parseChannels?: boolean | undefined;
|
|
370
|
+
attachHeadersToSchema?: boolean | undefined;
|
|
368
371
|
saveParsedSpecFile?: boolean | undefined;
|
|
369
372
|
}>;
|
|
370
373
|
type Props = z.infer<typeof optionsSchema>;
|
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: "5.
|
|
1546
|
+
version: "5.5.1",
|
|
1547
1547
|
description: "AsyncAPI generator for EventCatalog",
|
|
1548
1548
|
scripts: {
|
|
1549
1549
|
build: "tsup",
|
|
@@ -1612,27 +1612,95 @@ function ansiRegex({ onlyFirst = false } = {}) {
|
|
|
1612
1612
|
return new RegExp(pattern, onlyFirst ? void 0 : "g");
|
|
1613
1613
|
}
|
|
1614
1614
|
|
|
1615
|
-
// ../../node_modules/.pnpm/strip-ansi@7.
|
|
1615
|
+
// ../../node_modules/.pnpm/strip-ansi@7.2.0/node_modules/strip-ansi/index.js
|
|
1616
1616
|
var regex = ansiRegex();
|
|
1617
1617
|
function stripAnsi(string) {
|
|
1618
1618
|
if (typeof string !== "string") {
|
|
1619
1619
|
throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``);
|
|
1620
1620
|
}
|
|
1621
|
+
if (!string.includes("\x1B") && !string.includes("\x9B")) {
|
|
1622
|
+
return string;
|
|
1623
|
+
}
|
|
1621
1624
|
return string.replace(regex, "");
|
|
1622
1625
|
}
|
|
1623
1626
|
|
|
1624
|
-
// ../../node_modules/.pnpm/get-east-asian-width@1.
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1627
|
+
// ../../node_modules/.pnpm/get-east-asian-width@1.5.0/node_modules/get-east-asian-width/lookup-data.js
|
|
1628
|
+
var ambiguousRanges = [161, 161, 164, 164, 167, 168, 170, 170, 173, 174, 176, 180, 182, 186, 188, 191, 198, 198, 208, 208, 215, 216, 222, 225, 230, 230, 232, 234, 236, 237, 240, 240, 242, 243, 247, 250, 252, 252, 254, 254, 257, 257, 273, 273, 275, 275, 283, 283, 294, 295, 299, 299, 305, 307, 312, 312, 319, 322, 324, 324, 328, 331, 333, 333, 338, 339, 358, 359, 363, 363, 462, 462, 464, 464, 466, 466, 468, 468, 470, 470, 472, 472, 474, 474, 476, 476, 593, 593, 609, 609, 708, 708, 711, 711, 713, 715, 717, 717, 720, 720, 728, 731, 733, 733, 735, 735, 768, 879, 913, 929, 931, 937, 945, 961, 963, 969, 1025, 1025, 1040, 1103, 1105, 1105, 8208, 8208, 8211, 8214, 8216, 8217, 8220, 8221, 8224, 8226, 8228, 8231, 8240, 8240, 8242, 8243, 8245, 8245, 8251, 8251, 8254, 8254, 8308, 8308, 8319, 8319, 8321, 8324, 8364, 8364, 8451, 8451, 8453, 8453, 8457, 8457, 8467, 8467, 8470, 8470, 8481, 8482, 8486, 8486, 8491, 8491, 8531, 8532, 8539, 8542, 8544, 8555, 8560, 8569, 8585, 8585, 8592, 8601, 8632, 8633, 8658, 8658, 8660, 8660, 8679, 8679, 8704, 8704, 8706, 8707, 8711, 8712, 8715, 8715, 8719, 8719, 8721, 8721, 8725, 8725, 8730, 8730, 8733, 8736, 8739, 8739, 8741, 8741, 8743, 8748, 8750, 8750, 8756, 8759, 8764, 8765, 8776, 8776, 8780, 8780, 8786, 8786, 8800, 8801, 8804, 8807, 8810, 8811, 8814, 8815, 8834, 8835, 8838, 8839, 8853, 8853, 8857, 8857, 8869, 8869, 8895, 8895, 8978, 8978, 9312, 9449, 9451, 9547, 9552, 9587, 9600, 9615, 9618, 9621, 9632, 9633, 9635, 9641, 9650, 9651, 9654, 9655, 9660, 9661, 9664, 9665, 9670, 9672, 9675, 9675, 9678, 9681, 9698, 9701, 9711, 9711, 9733, 9734, 9737, 9737, 9742, 9743, 9756, 9756, 9758, 9758, 9792, 9792, 9794, 9794, 9824, 9825, 9827, 9829, 9831, 9834, 9836, 9837, 9839, 9839, 9886, 9887, 9919, 9919, 9926, 9933, 9935, 9939, 9941, 9953, 9955, 9955, 9960, 9961, 9963, 9969, 9972, 9972, 9974, 9977, 9979, 9980, 9982, 9983, 10045, 10045, 10102, 10111, 11094, 11097, 12872, 12879, 57344, 63743, 65024, 65039, 65533, 65533, 127232, 127242, 127248, 127277, 127280, 127337, 127344, 127373, 127375, 127376, 127387, 127404, 917760, 917999, 983040, 1048573, 1048576, 1114109];
|
|
1629
|
+
var fullwidthRanges = [12288, 12288, 65281, 65376, 65504, 65510];
|
|
1630
|
+
var halfwidthRanges = [8361, 8361, 65377, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65512, 65518];
|
|
1631
|
+
var narrowRanges = [32, 126, 162, 163, 165, 166, 172, 172, 175, 175, 10214, 10221, 10629, 10630];
|
|
1632
|
+
var wideRanges = [4352, 4447, 8986, 8987, 9001, 9002, 9193, 9196, 9200, 9200, 9203, 9203, 9725, 9726, 9748, 9749, 9776, 9783, 9800, 9811, 9855, 9855, 9866, 9871, 9875, 9875, 9889, 9889, 9898, 9899, 9917, 9918, 9924, 9925, 9934, 9934, 9940, 9940, 9962, 9962, 9970, 9971, 9973, 9973, 9978, 9978, 9981, 9981, 9989, 9989, 9994, 9995, 10024, 10024, 10060, 10060, 10062, 10062, 10067, 10069, 10071, 10071, 10133, 10135, 10160, 10160, 10175, 10175, 11035, 11036, 11088, 11088, 11093, 11093, 11904, 11929, 11931, 12019, 12032, 12245, 12272, 12287, 12289, 12350, 12353, 12438, 12441, 12543, 12549, 12591, 12593, 12686, 12688, 12773, 12783, 12830, 12832, 12871, 12880, 42124, 42128, 42182, 43360, 43388, 44032, 55203, 63744, 64255, 65040, 65049, 65072, 65106, 65108, 65126, 65128, 65131, 94176, 94180, 94192, 94198, 94208, 101589, 101631, 101662, 101760, 101874, 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, 110898, 110898, 110928, 110930, 110933, 110933, 110948, 110951, 110960, 111355, 119552, 119638, 119648, 119670, 126980, 126980, 127183, 127183, 127374, 127374, 127377, 127386, 127488, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127584, 127589, 127744, 127776, 127789, 127797, 127799, 127868, 127870, 127891, 127904, 127946, 127951, 127955, 127968, 127984, 127988, 127988, 127992, 128062, 128064, 128064, 128066, 128252, 128255, 128317, 128331, 128334, 128336, 128359, 128378, 128378, 128405, 128406, 128420, 128420, 128507, 128591, 128640, 128709, 128716, 128716, 128720, 128722, 128725, 128728, 128732, 128735, 128747, 128748, 128756, 128764, 128992, 129003, 129008, 129008, 129292, 129338, 129340, 129349, 129351, 129535, 129648, 129660, 129664, 129674, 129678, 129734, 129736, 129736, 129741, 129756, 129759, 129770, 129775, 129784, 131072, 196605, 196608, 262141];
|
|
1633
|
+
|
|
1634
|
+
// ../../node_modules/.pnpm/get-east-asian-width@1.5.0/node_modules/get-east-asian-width/utilities.js
|
|
1635
|
+
var isInRange = (ranges, codePoint) => {
|
|
1636
|
+
let low = 0;
|
|
1637
|
+
let high = Math.floor(ranges.length / 2) - 1;
|
|
1638
|
+
while (low <= high) {
|
|
1639
|
+
const mid = Math.floor((low + high) / 2);
|
|
1640
|
+
const i = mid * 2;
|
|
1641
|
+
if (codePoint < ranges[i]) {
|
|
1642
|
+
high = mid - 1;
|
|
1643
|
+
} else if (codePoint > ranges[i + 1]) {
|
|
1644
|
+
low = mid + 1;
|
|
1645
|
+
} else {
|
|
1646
|
+
return true;
|
|
1647
|
+
}
|
|
1648
|
+
}
|
|
1649
|
+
return false;
|
|
1650
|
+
};
|
|
1651
|
+
|
|
1652
|
+
// ../../node_modules/.pnpm/get-east-asian-width@1.5.0/node_modules/get-east-asian-width/lookup.js
|
|
1653
|
+
var minimumAmbiguousCodePoint = ambiguousRanges[0];
|
|
1654
|
+
var maximumAmbiguousCodePoint = ambiguousRanges.at(-1);
|
|
1655
|
+
var minimumFullWidthCodePoint = fullwidthRanges[0];
|
|
1656
|
+
var maximumFullWidthCodePoint = fullwidthRanges.at(-1);
|
|
1657
|
+
var minimumHalfWidthCodePoint = halfwidthRanges[0];
|
|
1658
|
+
var maximumHalfWidthCodePoint = halfwidthRanges.at(-1);
|
|
1659
|
+
var minimumNarrowCodePoint = narrowRanges[0];
|
|
1660
|
+
var maximumNarrowCodePoint = narrowRanges.at(-1);
|
|
1661
|
+
var minimumWideCodePoint = wideRanges[0];
|
|
1662
|
+
var maximumWideCodePoint = wideRanges.at(-1);
|
|
1663
|
+
var commonCjkCodePoint = 19968;
|
|
1664
|
+
var [wideFastPathStart, wideFastPathEnd] = findWideFastPathRange(wideRanges);
|
|
1665
|
+
function findWideFastPathRange(ranges) {
|
|
1666
|
+
let fastPathStart = ranges[0];
|
|
1667
|
+
let fastPathEnd = ranges[1];
|
|
1668
|
+
for (let index = 0; index < ranges.length; index += 2) {
|
|
1669
|
+
const start = ranges[index];
|
|
1670
|
+
const end = ranges[index + 1];
|
|
1671
|
+
if (commonCjkCodePoint >= start && commonCjkCodePoint <= end) {
|
|
1672
|
+
return [start, end];
|
|
1673
|
+
}
|
|
1674
|
+
if (end - start > fastPathEnd - fastPathStart) {
|
|
1675
|
+
fastPathStart = start;
|
|
1676
|
+
fastPathEnd = end;
|
|
1677
|
+
}
|
|
1678
|
+
}
|
|
1679
|
+
return [fastPathStart, fastPathEnd];
|
|
1633
1680
|
}
|
|
1681
|
+
var isAmbiguous = (codePoint) => {
|
|
1682
|
+
if (codePoint < minimumAmbiguousCodePoint || codePoint > maximumAmbiguousCodePoint) {
|
|
1683
|
+
return false;
|
|
1684
|
+
}
|
|
1685
|
+
return isInRange(ambiguousRanges, codePoint);
|
|
1686
|
+
};
|
|
1687
|
+
var isFullWidth = (codePoint) => {
|
|
1688
|
+
if (codePoint < minimumFullWidthCodePoint || codePoint > maximumFullWidthCodePoint) {
|
|
1689
|
+
return false;
|
|
1690
|
+
}
|
|
1691
|
+
return isInRange(fullwidthRanges, codePoint);
|
|
1692
|
+
};
|
|
1693
|
+
var isWide = (codePoint) => {
|
|
1694
|
+
if (codePoint >= wideFastPathStart && codePoint <= wideFastPathEnd) {
|
|
1695
|
+
return true;
|
|
1696
|
+
}
|
|
1697
|
+
if (codePoint < minimumWideCodePoint || codePoint > maximumWideCodePoint) {
|
|
1698
|
+
return false;
|
|
1699
|
+
}
|
|
1700
|
+
return isInRange(wideRanges, codePoint);
|
|
1701
|
+
};
|
|
1634
1702
|
|
|
1635
|
-
// ../../node_modules/.pnpm/get-east-asian-width@1.
|
|
1703
|
+
// ../../node_modules/.pnpm/get-east-asian-width@1.5.0/node_modules/get-east-asian-width/index.js
|
|
1636
1704
|
function validate(codePoint) {
|
|
1637
1705
|
if (!Number.isSafeInteger(codePoint)) {
|
|
1638
1706
|
throw new TypeError(`Expected a code point, got \`${typeof codePoint}\`.`);
|
|
@@ -2640,12 +2708,16 @@ var defaultMarkdown3 = (document2) => {
|
|
|
2640
2708
|
|
|
2641
2709
|
// src/utils/channels.ts
|
|
2642
2710
|
var getChannelProtocols = (channel) => {
|
|
2643
|
-
const protocols =
|
|
2711
|
+
const protocols = /* @__PURE__ */ new Set();
|
|
2644
2712
|
const bindings = channel.bindings();
|
|
2645
2713
|
for (const binding of bindings) {
|
|
2646
|
-
protocols.
|
|
2714
|
+
protocols.add(binding.protocol());
|
|
2715
|
+
}
|
|
2716
|
+
const servers = channel.servers();
|
|
2717
|
+
for (const server of servers) {
|
|
2718
|
+
protocols.add(server.protocol());
|
|
2647
2719
|
}
|
|
2648
|
-
return protocols;
|
|
2720
|
+
return Array.from(protocols);
|
|
2649
2721
|
};
|
|
2650
2722
|
var getChannelTags = (channel) => {
|
|
2651
2723
|
const tags = [];
|
|
@@ -4091,6 +4163,7 @@ var optionsSchema = import_zod.z.object({
|
|
|
4091
4163
|
debug: import_zod.z.boolean().optional(),
|
|
4092
4164
|
parseSchemas: import_zod.z.boolean().optional(),
|
|
4093
4165
|
parseChannels: import_zod.z.boolean().optional(),
|
|
4166
|
+
attachHeadersToSchema: import_zod.z.boolean().optional(),
|
|
4094
4167
|
saveParsedSpecFile: import_zod.z.boolean({ invalid_type_error: "The saveParsedSpecFile is not a boolean in options" }).optional()
|
|
4095
4168
|
});
|
|
4096
4169
|
var toUniqueArray = (array) => {
|
|
@@ -4169,7 +4242,13 @@ var index_default = async (config, options) => {
|
|
|
4169
4242
|
}
|
|
4170
4243
|
};
|
|
4171
4244
|
validateOptions(options);
|
|
4172
|
-
const {
|
|
4245
|
+
const {
|
|
4246
|
+
services,
|
|
4247
|
+
saveParsedSpecFile = false,
|
|
4248
|
+
parseSchemas = true,
|
|
4249
|
+
parseChannels = false,
|
|
4250
|
+
attachHeadersToSchema = false
|
|
4251
|
+
} = options;
|
|
4173
4252
|
console.log(import_chalk4.default.green(`Processing ${services.length} AsyncAPI files...`));
|
|
4174
4253
|
for (const service of services) {
|
|
4175
4254
|
console.log(import_chalk4.default.gray(`Processing ${service.path}`));
|
|
@@ -4372,10 +4451,7 @@ Processing domain: ${domainName} (v${domainVersion})`));
|
|
|
4372
4451
|
);
|
|
4373
4452
|
console.log(import_chalk4.default.cyan(` - Message (v${messageVersion}) created`));
|
|
4374
4453
|
if (messageHasSchema(message2)) {
|
|
4375
|
-
|
|
4376
|
-
if (schema?.schema) {
|
|
4377
|
-
schema = schema.schema;
|
|
4378
|
-
}
|
|
4454
|
+
const schema = getSchemaForMessage(message2, attachHeadersToSchema);
|
|
4379
4455
|
const cleanedMessagePath = messagePath.replace(/\\/g, "/").replace(/^(\.\.\/|\.\/)+/g, "");
|
|
4380
4456
|
await addSchemaToMessage(
|
|
4381
4457
|
messageId,
|
|
@@ -4496,6 +4572,36 @@ Failed to request AsyncAPI file from ${service.path}`));
|
|
|
4496
4572
|
return await (0, import_promises.readFile)(service.path, "utf8");
|
|
4497
4573
|
}
|
|
4498
4574
|
};
|
|
4575
|
+
var getSchemaForMessage = (message2, attachHeadersToSchema) => {
|
|
4576
|
+
const payloadSchema = getSchemaFromMessagePart(
|
|
4577
|
+
message2.payload()?.extensions()?.get("x-parser-original-payload")?.json() || message2.payload()?.json()
|
|
4578
|
+
);
|
|
4579
|
+
if (!attachHeadersToSchema || !message2.hasHeaders() || !isJSONSchemaMessage(message2)) {
|
|
4580
|
+
return payloadSchema;
|
|
4581
|
+
}
|
|
4582
|
+
const headersSchema = getSchemaFromMessagePart(
|
|
4583
|
+
message2.headers()?.extensions()?.get("x-parser-original-payload")?.json() || message2.headers()?.json()
|
|
4584
|
+
);
|
|
4585
|
+
if (!headersSchema) {
|
|
4586
|
+
return payloadSchema;
|
|
4587
|
+
}
|
|
4588
|
+
return {
|
|
4589
|
+
type: "object",
|
|
4590
|
+
properties: {
|
|
4591
|
+
headers: headersSchema,
|
|
4592
|
+
payload: payloadSchema
|
|
4593
|
+
}
|
|
4594
|
+
};
|
|
4595
|
+
};
|
|
4596
|
+
var getSchemaFromMessagePart = (schema) => {
|
|
4597
|
+
if (schema?.schema) {
|
|
4598
|
+
return schema.schema;
|
|
4599
|
+
}
|
|
4600
|
+
return schema;
|
|
4601
|
+
};
|
|
4602
|
+
var isJSONSchemaMessage = (message2) => {
|
|
4603
|
+
return getSchemaFileName(message2).endsWith(".json");
|
|
4604
|
+
};
|
|
4499
4605
|
var isServiceMessageOwner = (message2, operation) => {
|
|
4500
4606
|
const operationRole = operation?.extensions?.().get?.("x-eventcatalog-role")?.value?.();
|
|
4501
4607
|
const messageRole = message2.extensions().get("x-eventcatalog-role")?.value();
|