@eventcatalog/language-server 0.5.0 → 0.6.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.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/resolvers/asyncapi.d.ts +5 -16
- package/dist/resolvers/asyncapi.d.ts.map +1 -1
- package/dist/resolvers/asyncapi.js +10 -221
- package/dist/resolvers/asyncapi.js.map +1 -1
- package/dist/resolvers/index.d.ts +6 -1
- package/dist/resolvers/index.d.ts.map +1 -1
- package/dist/resolvers/index.js +5 -1
- package/dist/resolvers/index.js.map +1 -1
- package/dist/resolvers/openapi.d.ts +44 -0
- package/dist/resolvers/openapi.d.ts.map +1 -0
- package/dist/resolvers/openapi.js +182 -0
- package/dist/resolvers/openapi.js.map +1 -0
- package/dist/resolvers/resolve.d.ts +25 -0
- package/dist/resolvers/resolve.d.ts.map +1 -0
- package/dist/resolvers/resolve.js +329 -0
- package/dist/resolvers/resolve.js.map +1 -0
- package/dist/resolvers/types.d.ts +1 -0
- package/dist/resolvers/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export { compile } from "./compiler.js";
|
|
|
9
9
|
export type { CompiledOutput, CompileOptions } from "./compiler.js";
|
|
10
10
|
export * from "./ast-utils.js";
|
|
11
11
|
export { formatEc } from "./formatter.js";
|
|
12
|
-
export { parseSpec, extractMessages, extractChannels, extractService, messageToEc, channelToEc, serviceToEc, resolveAsyncApiImports, resolveAsyncApiImportsAsync, } from "./resolvers/index.js";
|
|
12
|
+
export { parseSpec, extractMessages, extractChannels, extractService, messageToEc, channelToEc, serviceToEc, parseOpenApiSpec, extractOpenApiService, openApiServiceToEc, openApiMessageToEc, resolveSpecImports, resolveSpecImportsAsync, detectSpecType, resolveAsyncApiImports, resolveAsyncApiImportsAsync, } from "./resolvers/index.js";
|
|
13
|
+
export type { ParsedOpenApiSpec } from "./resolvers/index.js";
|
|
13
14
|
export type { SpecMessage, SpecChannel, SpecOperation, SpecService, ResourceType, ResolveError, SpecResolveResult, FetchFn, } from "./resolvers/index.js";
|
|
14
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC/D,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpE,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,SAAS,EACT,eAAe,EACf,eAAe,EACf,cAAc,EACd,WAAW,EACX,WAAW,EACX,WAAW,EACX,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,OAAO,GACR,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC/D,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpE,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,SAAS,EACT,eAAe,EACf,eAAe,EACf,cAAc,EACd,WAAW,EACX,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,EACd,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,OAAO,GACR,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -7,5 +7,5 @@ export { astToGraph } from "./graph.js";
|
|
|
7
7
|
export { compile } from "./compiler.js";
|
|
8
8
|
export * from "./ast-utils.js";
|
|
9
9
|
export { formatEc } from "./formatter.js";
|
|
10
|
-
export { parseSpec, extractMessages, extractChannels, extractService, messageToEc, channelToEc, serviceToEc, resolveAsyncApiImports, resolveAsyncApiImportsAsync, } from "./resolvers/index.js";
|
|
10
|
+
export { parseSpec, extractMessages, extractChannels, extractService, messageToEc, channelToEc, serviceToEc, parseOpenApiSpec, extractOpenApiService, openApiServiceToEc, openApiMessageToEc, resolveSpecImports, resolveSpecImportsAsync, detectSpecType, resolveAsyncApiImports, resolveAsyncApiImportsAsync, } from "./resolvers/index.js";
|
|
11
11
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,SAAS,EACT,eAAe,EACf,eAAe,EACf,cAAc,EACd,WAAW,EACX,WAAW,EACX,WAAW,EACX,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,SAAS,EACT,eAAe,EACf,eAAe,EACf,cAAc,EACd,WAAW,EACX,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,EACd,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { SpecMessage, SpecChannel, SpecService, ResourceType, ResolveError
|
|
1
|
+
import type { SpecMessage, SpecChannel, SpecService, ResourceType, ResolveError } from "./types.js";
|
|
2
|
+
export declare const RESOURCE_TYPE_SINGULAR: Record<ResourceType, string>;
|
|
2
3
|
interface ParsedSpec {
|
|
3
4
|
messages: Map<string, SpecMessage>;
|
|
4
5
|
channels: Map<string, SpecChannel>;
|
|
@@ -16,6 +17,7 @@ export declare function extractService(content: string, serviceName?: string): {
|
|
|
16
17
|
service: SpecService;
|
|
17
18
|
errors: ResolveError[];
|
|
18
19
|
};
|
|
20
|
+
export declare function sanitizeServiceName(title: string | undefined): string | undefined;
|
|
19
21
|
/**
|
|
20
22
|
* Extract messages from an AsyncAPI document.
|
|
21
23
|
* Convenience wrapper around parseSpec for callers that only need messages.
|
|
@@ -46,20 +48,7 @@ export declare function channelToEc(ch: SpecChannel): string;
|
|
|
46
48
|
* with sends/receives routed through channels.
|
|
47
49
|
*/
|
|
48
50
|
export declare function serviceToEc(service: SpecService): string;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
* Scans .ec files for `import <type> { ... } from "*.yml"` and
|
|
52
|
-
* `import ServiceName from "*.yml"` statements, parses the referenced
|
|
53
|
-
* YAML files, and replaces the imports with synthesized .ec definitions.
|
|
54
|
-
* YAML files are excluded from the output.
|
|
55
|
-
* URL imports are left untouched - use resolveImportsAsync for those.
|
|
56
|
-
*/
|
|
57
|
-
export declare function resolveImports(files: Record<string, string>): SpecResolveResult;
|
|
58
|
-
/**
|
|
59
|
-
* Resolve all AsyncAPI imports including remote URLs (async).
|
|
60
|
-
* Fetches remote specs via the provided fetchFn, then resolves all imports.
|
|
61
|
-
* For local file imports, looks them up in the files map.
|
|
62
|
-
*/
|
|
63
|
-
export declare function resolveImportsAsync(files: Record<string, string>, fetchFn: FetchFn): Promise<SpecResolveResult>;
|
|
51
|
+
export declare function ecBlock(keyword: string, name: string, props: (string | false | undefined | null)[]): string;
|
|
52
|
+
export declare function escapeEc(value: string): string;
|
|
64
53
|
export {};
|
|
65
54
|
//# sourceMappingURL=asyncapi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asyncapi.d.ts","sourceRoot":"","sources":["../../src/resolvers/asyncapi.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EAEX,WAAW,EACX,YAAY,EACZ,YAAY,
|
|
1
|
+
{"version":3,"file":"asyncapi.d.ts","sourceRoot":"","sources":["../../src/resolvers/asyncapi.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EAEX,WAAW,EACX,YAAY,EACZ,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAK/D,CAAC;AAcF,UAAU,UAAU;IAClB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnC,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAgDrD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,GACnB;IAAE,OAAO,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,YAAY,EAAE,CAAA;CAAE,CAsDlD;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,GAAG,SAAS,CAUpB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG;IAChD,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnC,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB,CAGA;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG;IAChD,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnC,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB,CAGA;AA+TD;;GAEG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,WAAW,EAChB,YAAY,EAAE,YAAY,GACzB,MAAM,CAKR;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM,CAOnD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAkDxD;AAED,wBAAgB,OAAO,CACrB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,CAAC,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,GAC3C,MAAM,CAMR;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9C"}
|
|
@@ -1,12 +1,5 @@
|
|
|
1
1
|
import yaml from "js-yaml";
|
|
2
|
-
|
|
3
|
-
// Matches: import channels { orderEvents } from "./spec.yml"
|
|
4
|
-
// Matches: import events { OrderCreated } from "https://example.com/spec.yml"
|
|
5
|
-
const ASYNCAPI_IMPORT_RE = /import\s+(events|commands|queries|channels)\s*\{([^}]*)\}\s*from\s*"([^"]+\.ya?ml)"\s*\n?/g;
|
|
6
|
-
// Matches: import OrderService from "./spec.yml"
|
|
7
|
-
// A bare identifier (no braces, no resource type keyword) imports a full service
|
|
8
|
-
const SERVICE_IMPORT_RE = /import\s+([A-Z][a-zA-Z0-9_]*)\s+from\s*"([^"]+\.ya?ml)"\s*\n?/g;
|
|
9
|
-
const RESOURCE_TYPE_SINGULAR = {
|
|
2
|
+
export const RESOURCE_TYPE_SINGULAR = {
|
|
10
3
|
events: "event",
|
|
11
4
|
commands: "command",
|
|
12
5
|
queries: "query",
|
|
@@ -117,7 +110,7 @@ export function extractService(content, serviceName) {
|
|
|
117
110
|
errors: [],
|
|
118
111
|
};
|
|
119
112
|
}
|
|
120
|
-
function sanitizeServiceName(title) {
|
|
113
|
+
export function sanitizeServiceName(title) {
|
|
121
114
|
if (!title)
|
|
122
115
|
return undefined;
|
|
123
116
|
// Remove trailing words like "API", "Service", "Events" if they'd be redundant
|
|
@@ -465,230 +458,26 @@ export function serviceToEc(service) {
|
|
|
465
458
|
for (const op of sends) {
|
|
466
459
|
const version = messageVersions.get(op.messageName);
|
|
467
460
|
const versionSuffix = version ? `@${version}` : "";
|
|
468
|
-
|
|
461
|
+
const msgType = op.messageType || "event";
|
|
462
|
+
const channelClause = op.channelName ? ` to ${op.channelName}` : "";
|
|
463
|
+
serviceProps.push(`sends ${msgType} ${op.messageName}${versionSuffix}${channelClause}`);
|
|
469
464
|
}
|
|
470
465
|
for (const op of receives) {
|
|
471
466
|
const version = messageVersions.get(op.messageName);
|
|
472
467
|
const versionSuffix = version ? `@${version}` : "";
|
|
473
|
-
|
|
468
|
+
const msgType = op.messageType || "event";
|
|
469
|
+
const channelClause = op.channelName ? ` from ${op.channelName}` : "";
|
|
470
|
+
serviceProps.push(`receives ${msgType} ${op.messageName}${versionSuffix}${channelClause}`);
|
|
474
471
|
}
|
|
475
472
|
parts.push(ecBlock("service", service.name, serviceProps));
|
|
476
473
|
return parts.join("\n\n");
|
|
477
474
|
}
|
|
478
|
-
function ecBlock(keyword, name, props) {
|
|
475
|
+
export function ecBlock(keyword, name, props) {
|
|
479
476
|
const body = props.filter((p) => p !== false && p !== undefined && p !== null);
|
|
480
477
|
const indented = body.map((line) => (line === "" ? "" : ` ${line}`));
|
|
481
478
|
return [`${keyword} ${name} {`, ...indented, "}"].join("\n");
|
|
482
479
|
}
|
|
483
|
-
function escapeEc(value) {
|
|
480
|
+
export function escapeEc(value) {
|
|
484
481
|
return value.replace(/"/g, '\\"');
|
|
485
482
|
}
|
|
486
|
-
// ─── Import resolution ──────────────────────────────────
|
|
487
|
-
function isUrl(path) {
|
|
488
|
-
return path.startsWith("https://") || path.startsWith("http://");
|
|
489
|
-
}
|
|
490
|
-
function findImports(source) {
|
|
491
|
-
const imports = [];
|
|
492
|
-
ASYNCAPI_IMPORT_RE.lastIndex = 0;
|
|
493
|
-
let match;
|
|
494
|
-
while ((match = ASYNCAPI_IMPORT_RE.exec(source)) !== null) {
|
|
495
|
-
imports.push({
|
|
496
|
-
full: match[0],
|
|
497
|
-
resourceType: match[1],
|
|
498
|
-
importNames: match[2]
|
|
499
|
-
.split(",")
|
|
500
|
-
.map((s) => s.trim())
|
|
501
|
-
.filter(Boolean),
|
|
502
|
-
specPath: match[3],
|
|
503
|
-
});
|
|
504
|
-
}
|
|
505
|
-
return imports;
|
|
506
|
-
}
|
|
507
|
-
function findServiceImports(source) {
|
|
508
|
-
const imports = [];
|
|
509
|
-
SERVICE_IMPORT_RE.lastIndex = 0;
|
|
510
|
-
let match;
|
|
511
|
-
while ((match = SERVICE_IMPORT_RE.exec(source)) !== null) {
|
|
512
|
-
imports.push({
|
|
513
|
-
full: match[0],
|
|
514
|
-
serviceName: match[1],
|
|
515
|
-
specPath: match[2],
|
|
516
|
-
});
|
|
517
|
-
}
|
|
518
|
-
return imports;
|
|
519
|
-
}
|
|
520
|
-
function resolveImportToEc(imp, parsed) {
|
|
521
|
-
const errors = [];
|
|
522
|
-
const isChannelImport = imp.resourceType === "channels";
|
|
523
|
-
const catalog = isChannelImport ? parsed.channels : parsed.messages;
|
|
524
|
-
const typeName = isChannelImport ? "Channel" : "Message";
|
|
525
|
-
const ecDefs = imp.importNames.map((name) => {
|
|
526
|
-
const resource = catalog.get(name);
|
|
527
|
-
if (!resource) {
|
|
528
|
-
errors.push({
|
|
529
|
-
message: `${typeName} "${name}" not found in AsyncAPI spec "${imp.specPath}". Available: ${[...catalog.keys()].join(", ") || "(none)"}`,
|
|
530
|
-
line: 1,
|
|
531
|
-
column: 1,
|
|
532
|
-
});
|
|
533
|
-
return `// ERROR: "${name}" not found in ${imp.specPath}`;
|
|
534
|
-
}
|
|
535
|
-
return isChannelImport
|
|
536
|
-
? channelToEc(resource)
|
|
537
|
-
: messageToEc(resource, imp.resourceType);
|
|
538
|
-
});
|
|
539
|
-
return { ec: ecDefs.join("\n\n"), errors };
|
|
540
|
-
}
|
|
541
|
-
function resolveServiceImportToEc(imp, specContent) {
|
|
542
|
-
const { service, errors } = extractService(specContent, imp.serviceName);
|
|
543
|
-
return { ec: serviceToEc(service), errors };
|
|
544
|
-
}
|
|
545
|
-
function lookupLocalSpec(specPath, files) {
|
|
546
|
-
const normalizedPath = specPath.replace(/^\.\//, "");
|
|
547
|
-
return (files[specPath] ?? files[normalizedPath] ?? files[`./${normalizedPath}`]);
|
|
548
|
-
}
|
|
549
|
-
function isYamlFile(filename) {
|
|
550
|
-
return filename.endsWith(".yml") || filename.endsWith(".yaml");
|
|
551
|
-
}
|
|
552
|
-
const SKIP = Symbol("skip");
|
|
553
|
-
/**
|
|
554
|
-
* Core resolution logic shared by sync and async resolvers.
|
|
555
|
-
* Given a spec content lookup function, resolves all imports in .ec files.
|
|
556
|
-
* Return `SKIP` from the callback to leave an import untouched;
|
|
557
|
-
* return `undefined` to replace it with an error comment.
|
|
558
|
-
*/
|
|
559
|
-
function resolveFileImports(files, getSpecContent) {
|
|
560
|
-
const errors = [];
|
|
561
|
-
const newFiles = {};
|
|
562
|
-
const parsedSpecs = new Map();
|
|
563
|
-
for (const [filename, source] of Object.entries(files)) {
|
|
564
|
-
if (isYamlFile(filename))
|
|
565
|
-
continue;
|
|
566
|
-
const imports = findImports(source);
|
|
567
|
-
const serviceImports = findServiceImports(source);
|
|
568
|
-
if (imports.length === 0 && serviceImports.length === 0) {
|
|
569
|
-
newFiles[filename] = source;
|
|
570
|
-
continue;
|
|
571
|
-
}
|
|
572
|
-
let result = source;
|
|
573
|
-
// Resolve resource imports (import events { ... } from "spec.yml")
|
|
574
|
-
for (const imp of imports) {
|
|
575
|
-
const specContent = getSpecContent(imp.specPath);
|
|
576
|
-
if (specContent === SKIP)
|
|
577
|
-
continue;
|
|
578
|
-
if (!specContent) {
|
|
579
|
-
result = result.replace(imp.full, `// ERROR: AsyncAPI spec not available: ${imp.specPath}`);
|
|
580
|
-
continue;
|
|
581
|
-
}
|
|
582
|
-
const cacheKey = isUrl(imp.specPath)
|
|
583
|
-
? imp.specPath
|
|
584
|
-
: imp.specPath.replace(/^\.\//, "");
|
|
585
|
-
if (!parsedSpecs.has(cacheKey)) {
|
|
586
|
-
const parsed = parseSpec(specContent);
|
|
587
|
-
parsedSpecs.set(cacheKey, parsed);
|
|
588
|
-
errors.push(...parsed.errors);
|
|
589
|
-
}
|
|
590
|
-
const parsed = parsedSpecs.get(cacheKey);
|
|
591
|
-
const resolution = resolveImportToEc(imp, parsed);
|
|
592
|
-
errors.push(...resolution.errors);
|
|
593
|
-
result = result.replace(imp.full, resolution.ec);
|
|
594
|
-
}
|
|
595
|
-
// Resolve service imports (import ServiceName from "spec.yml")
|
|
596
|
-
for (const imp of serviceImports) {
|
|
597
|
-
const specContent = getSpecContent(imp.specPath);
|
|
598
|
-
if (specContent === SKIP)
|
|
599
|
-
continue;
|
|
600
|
-
if (!specContent) {
|
|
601
|
-
result = result.replace(imp.full, `// ERROR: AsyncAPI spec not available: ${imp.specPath}`);
|
|
602
|
-
continue;
|
|
603
|
-
}
|
|
604
|
-
const resolution = resolveServiceImportToEc(imp, specContent);
|
|
605
|
-
errors.push(...resolution.errors);
|
|
606
|
-
result = result.replace(imp.full, resolution.ec);
|
|
607
|
-
}
|
|
608
|
-
newFiles[filename] = result;
|
|
609
|
-
}
|
|
610
|
-
return { files: newFiles, errors };
|
|
611
|
-
}
|
|
612
|
-
/**
|
|
613
|
-
* Resolve all AsyncAPI imports in a set of files (sync, local files only).
|
|
614
|
-
* Scans .ec files for `import <type> { ... } from "*.yml"` and
|
|
615
|
-
* `import ServiceName from "*.yml"` statements, parses the referenced
|
|
616
|
-
* YAML files, and replaces the imports with synthesized .ec definitions.
|
|
617
|
-
* YAML files are excluded from the output.
|
|
618
|
-
* URL imports are left untouched - use resolveImportsAsync for those.
|
|
619
|
-
*/
|
|
620
|
-
export function resolveImports(files) {
|
|
621
|
-
const notFoundErrors = [];
|
|
622
|
-
const result = resolveFileImports(files, (specPath) => {
|
|
623
|
-
if (isUrl(specPath))
|
|
624
|
-
return SKIP;
|
|
625
|
-
const content = lookupLocalSpec(specPath, files);
|
|
626
|
-
if (!content) {
|
|
627
|
-
notFoundErrors.push({
|
|
628
|
-
message: `AsyncAPI file not found: "${specPath}"`,
|
|
629
|
-
line: 1,
|
|
630
|
-
column: 1,
|
|
631
|
-
});
|
|
632
|
-
}
|
|
633
|
-
return content;
|
|
634
|
-
});
|
|
635
|
-
return {
|
|
636
|
-
files: result.files,
|
|
637
|
-
errors: [...notFoundErrors, ...result.errors],
|
|
638
|
-
};
|
|
639
|
-
}
|
|
640
|
-
/**
|
|
641
|
-
* Resolve all AsyncAPI imports including remote URLs (async).
|
|
642
|
-
* Fetches remote specs via the provided fetchFn, then resolves all imports.
|
|
643
|
-
* For local file imports, looks them up in the files map.
|
|
644
|
-
*/
|
|
645
|
-
export async function resolveImportsAsync(files, fetchFn) {
|
|
646
|
-
// Collect all unique remote URLs that need fetching
|
|
647
|
-
const urlsToFetch = new Set();
|
|
648
|
-
for (const [filename, source] of Object.entries(files)) {
|
|
649
|
-
if (isYamlFile(filename))
|
|
650
|
-
continue;
|
|
651
|
-
for (const imp of findImports(source)) {
|
|
652
|
-
if (isUrl(imp.specPath))
|
|
653
|
-
urlsToFetch.add(imp.specPath);
|
|
654
|
-
}
|
|
655
|
-
for (const imp of findServiceImports(source)) {
|
|
656
|
-
if (isUrl(imp.specPath))
|
|
657
|
-
urlsToFetch.add(imp.specPath);
|
|
658
|
-
}
|
|
659
|
-
}
|
|
660
|
-
// Fetch all remote specs in parallel
|
|
661
|
-
const fetchErrors = [];
|
|
662
|
-
const fetchedSpecs = new Map();
|
|
663
|
-
await Promise.all([...urlsToFetch].map(async (url) => {
|
|
664
|
-
try {
|
|
665
|
-
fetchedSpecs.set(url, await fetchFn(url));
|
|
666
|
-
}
|
|
667
|
-
catch (err) {
|
|
668
|
-
fetchErrors.push({
|
|
669
|
-
message: `Failed to fetch AsyncAPI spec "${url}": ${String(err)}`,
|
|
670
|
-
line: 1,
|
|
671
|
-
column: 1,
|
|
672
|
-
});
|
|
673
|
-
}
|
|
674
|
-
}));
|
|
675
|
-
const notFoundErrors = [];
|
|
676
|
-
const result = resolveFileImports(files, (specPath) => {
|
|
677
|
-
if (isUrl(specPath))
|
|
678
|
-
return fetchedSpecs.get(specPath);
|
|
679
|
-
const content = lookupLocalSpec(specPath, files);
|
|
680
|
-
if (!content) {
|
|
681
|
-
notFoundErrors.push({
|
|
682
|
-
message: `AsyncAPI file not found: "${specPath}"`,
|
|
683
|
-
line: 1,
|
|
684
|
-
column: 1,
|
|
685
|
-
});
|
|
686
|
-
}
|
|
687
|
-
return content;
|
|
688
|
-
});
|
|
689
|
-
return {
|
|
690
|
-
files: result.files,
|
|
691
|
-
errors: [...fetchErrors, ...notFoundErrors, ...result.errors],
|
|
692
|
-
};
|
|
693
|
-
}
|
|
694
483
|
//# sourceMappingURL=asyncapi.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asyncapi.js","sourceRoot":"","sources":["../../src/resolvers/asyncapi.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"asyncapi.js","sourceRoot":"","sources":["../../src/resolvers/asyncapi.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,SAAS,CAAC;AAU3B,MAAM,CAAC,MAAM,sBAAsB,GAAiC;IAClE,MAAM,EAAE,OAAO;IACf,QAAQ,EAAE,SAAS;IACnB,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,SAAS;CACpB,CAAC;AAEF,SAAS,UAAU,CAAC,GAAQ,EAAE,GAAW;IACvC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,GAAG;SACP,KAAK,CAAC,CAAC,CAAC;SACR,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CACL,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAChB,OAAO,IAAI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EACvE,GAAU,CACX,CAAC;AACN,CAAC;AAQD;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO;YACL,QAAQ,EAAE,IAAI,GAAG,EAAE;YACnB,QAAQ,EAAE,IAAI,GAAG,EAAE;YACnB,MAAM,EAAE;gBACN;oBACE,OAAO,EAAE,kCAAkC,MAAM,CAAC,CAAC,CAAC,EAAE;oBACtD,IAAI,EAAE,CAAC;oBACP,MAAM,EAAE,CAAC;iBACV;aACF;SACF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO;YACL,QAAQ,EAAE,IAAI,GAAG,EAAE;YACnB,QAAQ,EAAE,IAAI,GAAG,EAAE;YACnB,MAAM,EAAE;gBACN,EAAE,OAAO,EAAE,mCAAmC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;aACrE;SACF,CAAC;IACJ,CAAC;IAED,MAAM,eAAe,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;IAE3C,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC;QAC3D,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC;YAChC,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC,IAAI,GAAG,EAAuB,EAAE,IAAI,GAAG,EAAuB,CAAC,CAAC;IAEvE,kEAAkE;IAClE,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;QACtB,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QACrC,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACpC,IAAI,CAAC,GAAG,CAAC,OAAO;gBAAE,GAAG,CAAC,OAAO,GAAG,WAAW,CAAC;QAC9C,CAAC;QACD,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACnC,IAAI,CAAC,EAAE,CAAC,OAAO;gBAAE,EAAE,CAAC,OAAO,GAAG,WAAW,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAe,EACf,WAAoB;IAEpB,MAAM,YAAY,GAAG,CAAC,IAAY,EAAe,EAAE,CAAC,CAAC;QACnD,IAAI;QACJ,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;KACb,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,OAAO,EAAE,YAAY,CAAC,WAAW,IAAI,gBAAgB,CAAC;YACtD,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAQ,CAAC;IACtC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO;YACL,OAAO,EAAE,YAAY,CAAC,WAAW,IAAI,gBAAgB,CAAC;YACtD,MAAM,EAAE;gBACN,EAAE,OAAO,EAAE,mCAAmC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;aACrE;SACF,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GACR,WAAW,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,gBAAgB,CAAC;IAC1E,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC;IAClC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,eAAe,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;IAE3C,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC;QACjD,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC;QAC1B,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC;YAChC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC;YAC1B,CAAC,CAAC,EAAE,CAAC;IAET,yDAAyD;IACzD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IACzE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAEzE,MAAM,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAC3D,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAC9B,CAAC;IACF,MAAM,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAC5D,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAC/B,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE;QACnE,MAAM,EAAE,EAAE;KACX,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,KAAyB;IAEzB,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,+EAA+E;IAC/E,6BAA6B;IAC7B,OAAO,KAAK;SACT,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;SAC9B,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAClD,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe;IAI7C,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe;IAI7C,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC;AAED,2DAA2D;AAE3D,SAAS,iBAAiB,CAAC,GAAQ;IACjC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEhD,IAAI,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAM,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvE,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE;gBACjB,IAAI;gBACJ,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,KAAK;gBACjC,WAAW,EAAE,GAAG,CAAC,WAAW;aAC7B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAM,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,OAAO,CAAC,QAAQ;gBAAE,SAAS;YAChC,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAM,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,SAAS;gBACjC,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC5D,IAAI,QAAQ,EAAE,CAAC;oBACb,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE;wBACjB,IAAI;wBACJ,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,KAAK;wBAC3C,WAAW,EAAE,QAAQ,CAAC,WAAW;qBAClC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAQ;IACjC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;IAChD,IAAI,CAAC,GAAG,CAAC,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAEnC,MAAM,eAAe,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAE3C,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAM,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3D,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE;YACjB,IAAI;YACJ,OAAO,EAAE,EAAE,CAAC,OAAO;YACnB,QAAQ,EAAE,kBAAkB,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,eAAe;YACxD,OAAO,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,KAAK;SAClD,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAQ;IACnC,IAAI,CAAC,GAAG,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAE/B,MAAM,UAAU,GAAoB,EAAE,CAAC;IAEvC,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAM,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,EAAE,CAAC,MAA4B,CAAC;QAC/C,IAAI,CAAC,MAAM;YAAE,SAAS;QAEtB,4BAA4B;QAC5B,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;QACpC,MAAM,WAAW,GAAG,UAAU;YAC5B,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;YACvC,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,CAAC,WAAW;YAAE,SAAS;QAE3B,8DAA8D;QAC9D,MAAM,UAAU,GAAG,0BAA0B,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACvD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,KAAK,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,UAAU,EAAE,CAAC;gBAC5C,UAAU,CAAC,IAAI,CAAC;oBACd,MAAM;oBACN,WAAW;oBACX,WAAW,EAAE,IAAI;oBACjB,OAAO,EAAE,QAAQ,EAAE,OAAO,IAAI,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO;iBAC5D,CAAC,CAAC;YACL,CAAC;YACD,SAAS;QACX,CAAC;QAED,sDAAsD;QACtD,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,EAAE,QAAQ;YAAE,SAAS;QAEjC,KAAK,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAM,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvE,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC5D,UAAU,CAAC,IAAI,CAAC;gBACd,MAAM;gBACN,WAAW;gBACX,WAAW;gBACX,OAAO,EAAE,QAAQ,EAAE,OAAO,IAAI,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO;aAC5D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,qBAAqB,CAAC,UAAU,CAAC,CAAC;AAC3C,CAAC;AAED;;;GAGG;AACH,SAAS,0BAA0B,CACjC,EAAO,EACP,GAAQ;IAER,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEvE,MAAM,OAAO,GAAsC,EAAE,CAAC;IACtD,KAAK,MAAM,QAAQ,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,GAAG;YAAE,SAAS;QAEnB,4DAA4D;QAC5D,MAAM,eAAe,GAAG,GAAG,CAAC,KAAK,CAC/B,yCAAyC,CAC1C,CAAC;QACF,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACtC,MAAM,aAAa,GAAG,QAAQ,EAAE,IAAI;gBAClC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC;gBAChC,CAAC,CAAC,QAAQ,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;YACpE,SAAS;QACX,CAAC;QAED,iDAAiD;QACjD,MAAM,iBAAiB,GAAG,GAAG,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAC1E,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,2DAA2D;AAE3D,SAAS,iBAAiB,CAAC,GAAQ;IACjC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEhD,IAAI,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAM,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvE,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE;gBACjB,IAAI;gBACJ,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,KAAK;gBACjC,WAAW,EAAE,GAAG,CAAC,WAAW;aAC7B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAM,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvD,KAAK,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtD,MAAM,GAAG,GAAG,EAAE,EAAE,OAAO,CAAC;gBACxB,IAAI,CAAC,GAAG;oBAAE,SAAS;gBACnB,KAAK,MAAM,QAAQ,IAAI,uBAAuB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;oBACzD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBACjC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;oBACxC,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAQ;IACjC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;IAChD,IAAI,CAAC,GAAG,CAAC,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAEnC,MAAM,eAAe,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAE3C,KAAK,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAM,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACzE,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE;YACjB,IAAI;YACJ,OAAO;YACP,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe;YACrE,OAAO,EAAE,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,OAAO;SACtC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAQ;IACnC,IAAI,CAAC,GAAG,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IAE7B,MAAM,UAAU,GAAoB,EAAE,CAAC;IAEvC,KAAK,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAM,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9D,MAAM,WAAW,GAAG,OAAO;aACxB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC;aAC/B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEvB,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;YACxB,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,gBAAgB,CAC9C,EAAE,CAAC,OAAO,CAAC,OAAO,EAClB,GAAG,CACJ,EAAE,CAAC;gBACF,UAAU,CAAC,IAAI,CAAC;oBACd,MAAM,EAAE,MAAM;oBACd,WAAW;oBACX,WAAW,EAAE,IAAI;oBACjB,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;YAC1B,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,gBAAgB,CAC9C,EAAE,CAAC,SAAS,CAAC,OAAO,EACpB,GAAG,CACJ,EAAE,CAAC;gBACF,UAAU,CAAC,IAAI,CAAC;oBACd,MAAM,EAAE,SAAS;oBACjB,WAAW;oBACX,WAAW,EAAE,IAAI;oBACjB,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CACvB,GAAQ,EACR,GAAQ;IAER,OAAO,uBAAuB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QACnE,IAAI;QACJ,OAAO;KACR,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,SAAS,uBAAuB,CAAC,GAAQ,EAAE,GAAQ;IACjD,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IAEpB,qBAAqB;IACrB,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC5D,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IAEzB,iDAAiD;IACjD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,EAAE,CAC3C,uBAAuB,CAAC,KAAK,EAAE,GAAG,CAAC,CACpC,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,SAAS,CAAC;IAC/C,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACtB,0EAA0E;QAC1E,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,QAAQ;YAAE,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,OAAO;QACL;YACE,IAAI;YACJ,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,KAAK;YAC3C,WAAW,EAAE,QAAQ,CAAC,WAAW;SAClC;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAAC,GAAoB;IACjD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE;QACvB,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC/D,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,2DAA2D;AAE3D,SAAS,aAAa,CAAC,GAAQ;IAC7B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;AAC9B,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAY,EAAE,GAAQ;IAChD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjE,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,IAAI,MAAM,EAAE,QAAQ;YAAE,OAAO,MAAM,CAAC,QAAQ,CAAC;IAC/C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,2DAA2D;AAE3D;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,GAAgB,EAChB,YAA0B;IAE1B,OAAO,OAAO,CAAC,sBAAsB,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE;QAC7D,GAAG,CAAC,OAAO,IAAI,WAAW,GAAG,CAAC,OAAO,EAAE;QACvC,GAAG,CAAC,OAAO,IAAI,YAAY,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG;KACpD,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,EAAe;IACzC,OAAO,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE;QACjC,EAAE,CAAC,OAAO,IAAI,WAAW,EAAE,CAAC,OAAO,EAAE;QACrC,EAAE,CAAC,OAAO,IAAI,YAAY,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG;QACjD,EAAE,CAAC,QAAQ,IAAI,aAAa,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG;QACpD,EAAE,CAAC,OAAO,IAAI,YAAY,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG;KAClD,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,OAAoB;IAC9C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,+BAA+B;IAC/B,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,0BAA0B;IAC1B,MAAM,YAAY,GAA0C;QAC1D,OAAO,CAAC,OAAO,IAAI,WAAW,OAAO,CAAC,OAAO,EAAE;QAC/C,OAAO,CAAC,OAAO,IAAI,YAAY,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG;KAC5D,CAAC;IAEF,6CAA6C;IAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IAE5E,kEAAkE;IAClE,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QAC5E,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,GAAG,CAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CACjD,CAAC;IAEF,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,IAAI,OAAO,CAAC;QAC1C,MAAM,aAAa,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,YAAY,CAAC,IAAI,CACf,SAAS,OAAO,IAAI,EAAE,CAAC,WAAW,GAAG,aAAa,GAAG,aAAa,EAAE,CACrE,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,IAAI,OAAO,CAAC;QAC1C,MAAM,aAAa,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,YAAY,CAAC,IAAI,CACf,YAAY,OAAO,IAAI,EAAE,CAAC,WAAW,GAAG,aAAa,GAAG,aAAa,EAAE,CACxE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IAE3D,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,OAAe,EACf,IAAY,EACZ,KAA4C;IAE5C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CACvB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CACxC,CAAC;IACd,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,OAAO,IAAI,IAAI,IAAI,EAAE,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
export type { SpecMessage, SpecChannel, SpecOperation, SpecService, ResourceType, ResolveError, SpecResolveResult, FetchFn, } from "./types.js";
|
|
2
|
-
export { parseSpec, extractMessages, extractChannels, extractService, messageToEc, channelToEc, serviceToEc,
|
|
2
|
+
export { parseSpec, extractMessages, extractChannels, extractService, messageToEc, channelToEc, serviceToEc, } from "./asyncapi.js";
|
|
3
|
+
export { parseOpenApiSpec, extractOpenApiService, openApiServiceToEc, openApiMessageToEc, } from "./openapi.js";
|
|
4
|
+
export type { ParsedOpenApiSpec } from "./openapi.js";
|
|
5
|
+
export { resolveSpecImports, resolveSpecImportsAsync, detectSpecType, } from "./resolve.js";
|
|
6
|
+
/** @deprecated Use `resolveSpecImports` / `resolveSpecImportsAsync` instead. These aliases now handle both AsyncAPI and OpenAPI specs. */
|
|
7
|
+
export { resolveSpecImports as resolveAsyncApiImports, resolveSpecImportsAsync as resolveAsyncApiImportsAsync, } from "./resolve.js";
|
|
3
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resolvers/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,OAAO,GACR,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,SAAS,EACT,eAAe,EACf,eAAe,EACf,cAAc,EACd,WAAW,EACX,WAAW,EACX,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resolvers/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,OAAO,GACR,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,SAAS,EACT,eAAe,EACf,eAAe,EACf,cAAc,EACd,WAAW,EACX,WAAW,EACX,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,0IAA0I;AAC1I,OAAO,EACL,kBAAkB,IAAI,sBAAsB,EAC5C,uBAAuB,IAAI,2BAA2B,GACvD,MAAM,cAAc,CAAC"}
|
package/dist/resolvers/index.js
CHANGED
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
export { parseSpec, extractMessages, extractChannels, extractService, messageToEc, channelToEc, serviceToEc,
|
|
1
|
+
export { parseSpec, extractMessages, extractChannels, extractService, messageToEc, channelToEc, serviceToEc, } from "./asyncapi.js";
|
|
2
|
+
export { parseOpenApiSpec, extractOpenApiService, openApiServiceToEc, openApiMessageToEc, } from "./openapi.js";
|
|
3
|
+
export { resolveSpecImports, resolveSpecImportsAsync, detectSpecType, } from "./resolve.js";
|
|
4
|
+
/** @deprecated Use `resolveSpecImports` / `resolveSpecImportsAsync` instead. These aliases now handle both AsyncAPI and OpenAPI specs. */
|
|
5
|
+
export { resolveSpecImports as resolveAsyncApiImports, resolveSpecImportsAsync as resolveAsyncApiImportsAsync, } from "./resolve.js";
|
|
2
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resolvers/index.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,SAAS,EACT,eAAe,EACf,eAAe,EACf,cAAc,EACd,WAAW,EACX,WAAW,EACX,WAAW,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resolvers/index.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,SAAS,EACT,eAAe,EACf,eAAe,EACf,cAAc,EACd,WAAW,EACX,WAAW,EACX,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,0IAA0I;AAC1I,OAAO,EACL,kBAAkB,IAAI,sBAAsB,EAC5C,uBAAuB,IAAI,2BAA2B,GACvD,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { SpecMessage, SpecService, ResolveError } from "./types.js";
|
|
2
|
+
export interface ParsedOpenApiSpec {
|
|
3
|
+
messages: Map<string, SpecMessage & {
|
|
4
|
+
messageType: "command" | "query";
|
|
5
|
+
}>;
|
|
6
|
+
info?: {
|
|
7
|
+
title?: string;
|
|
8
|
+
version?: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
};
|
|
11
|
+
errors: ResolveError[];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Derive a PascalCase operation name from an HTTP method and path.
|
|
15
|
+
* e.g. GET /orders/{id}/items -> GetOrdersIdItems
|
|
16
|
+
*/
|
|
17
|
+
export declare function operationNameFromPath(method: string, path: string): string;
|
|
18
|
+
/**
|
|
19
|
+
* Parse an OpenAPI v3.0 or v3.1 document and extract operations as messages.
|
|
20
|
+
*/
|
|
21
|
+
export declare function parseOpenApiSpec(content: string): ParsedOpenApiSpec;
|
|
22
|
+
/**
|
|
23
|
+
* Extract a full service definition from an OpenAPI spec.
|
|
24
|
+
* All operations are "receives" (the service receives HTTP requests).
|
|
25
|
+
* No channels are generated for OpenAPI specs.
|
|
26
|
+
*/
|
|
27
|
+
export declare function extractOpenApiService(content: string, serviceName?: string): {
|
|
28
|
+
service: SpecService;
|
|
29
|
+
errors: ResolveError[];
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Convert an OpenAPI SpecService to a full .ec definition string.
|
|
33
|
+
* Generates standalone command/query definitions with summaries,
|
|
34
|
+
* followed by the service block with receives statements.
|
|
35
|
+
*/
|
|
36
|
+
export declare function openApiServiceToEc(service: SpecService): string;
|
|
37
|
+
/**
|
|
38
|
+
* Convert an OpenAPI message to an .ec definition string.
|
|
39
|
+
* Uses the message's messageType to determine whether it's a command or query.
|
|
40
|
+
*/
|
|
41
|
+
export declare function openApiMessageToEc(msg: SpecMessage & {
|
|
42
|
+
messageType: "command" | "query";
|
|
43
|
+
}): string;
|
|
44
|
+
//# sourceMappingURL=openapi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../../src/resolvers/openapi.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EAEX,WAAW,EACX,YAAY,EACb,MAAM,YAAY,CAAC;AAQpB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG;QAAE,WAAW,EAAE,SAAS,GAAG,OAAO,CAAA;KAAE,CAAC,CAAC;IAC1E,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAc1E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAwFnE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,GACnB;IAAE,OAAO,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,YAAY,EAAE,CAAA;CAAE,CA4ClD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CA0B/D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,WAAW,GAAG;IAAE,WAAW,EAAE,SAAS,GAAG,OAAO,CAAA;CAAE,GACtD,MAAM,CAKR"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import yaml from "js-yaml";
|
|
2
|
+
import { ecBlock, escapeEc, sanitizeServiceName, serviceToEc, } from "./asyncapi.js";
|
|
3
|
+
/**
|
|
4
|
+
* Derive a PascalCase operation name from an HTTP method and path.
|
|
5
|
+
* e.g. GET /orders/{id}/items -> GetOrdersIdItems
|
|
6
|
+
*/
|
|
7
|
+
export function operationNameFromPath(method, path) {
|
|
8
|
+
const parts = path
|
|
9
|
+
.split("/")
|
|
10
|
+
.filter(Boolean)
|
|
11
|
+
.map((segment) => {
|
|
12
|
+
// Strip braces from path params
|
|
13
|
+
const clean = segment.replace(/[{}]/g, "");
|
|
14
|
+
// PascalCase each segment
|
|
15
|
+
return clean.charAt(0).toUpperCase() + clean.slice(1);
|
|
16
|
+
});
|
|
17
|
+
const methodPart = method.charAt(0).toUpperCase() + method.slice(1).toLowerCase();
|
|
18
|
+
return methodPart + parts.join("");
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Parse an OpenAPI v3.0 or v3.1 document and extract operations as messages.
|
|
22
|
+
*/
|
|
23
|
+
export function parseOpenApiSpec(content) {
|
|
24
|
+
let doc;
|
|
25
|
+
try {
|
|
26
|
+
// Try JSON first for .json files
|
|
27
|
+
try {
|
|
28
|
+
doc = JSON.parse(content);
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
doc = yaml.load(content);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
catch (e) {
|
|
35
|
+
return {
|
|
36
|
+
messages: new Map(),
|
|
37
|
+
errors: [
|
|
38
|
+
{
|
|
39
|
+
message: `Failed to parse OpenAPI spec: ${String(e)}`,
|
|
40
|
+
line: 1,
|
|
41
|
+
column: 1,
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
if (!doc || typeof doc !== "object") {
|
|
47
|
+
return {
|
|
48
|
+
messages: new Map(),
|
|
49
|
+
errors: [
|
|
50
|
+
{ message: "OpenAPI file is empty or invalid", line: 1, column: 1 },
|
|
51
|
+
],
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
const openApiVersion = String(doc.openapi || "");
|
|
55
|
+
if (!openApiVersion.startsWith("3.0") && !openApiVersion.startsWith("3.1")) {
|
|
56
|
+
return {
|
|
57
|
+
messages: new Map(),
|
|
58
|
+
errors: [
|
|
59
|
+
{
|
|
60
|
+
message: `Unsupported OpenAPI version: "${openApiVersion}". Only 3.0.x and 3.1.x are supported.`,
|
|
61
|
+
line: 1,
|
|
62
|
+
column: 1,
|
|
63
|
+
},
|
|
64
|
+
],
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
const messages = new Map();
|
|
68
|
+
const paths = doc.paths || {};
|
|
69
|
+
const specVersion = doc.info?.version;
|
|
70
|
+
for (const [path, pathItem] of Object.entries(paths)) {
|
|
71
|
+
if (!pathItem || typeof pathItem !== "object")
|
|
72
|
+
continue;
|
|
73
|
+
for (const method of ["get", "post", "put", "patch", "delete"]) {
|
|
74
|
+
const op = pathItem[method];
|
|
75
|
+
if (!op)
|
|
76
|
+
continue;
|
|
77
|
+
const name = op.operationId || operationNameFromPath(method, path);
|
|
78
|
+
const overrideType = op["x-eventcatalog-message-type"];
|
|
79
|
+
const messageType = overrideType === "command" || overrideType === "query"
|
|
80
|
+
? overrideType
|
|
81
|
+
: method === "get"
|
|
82
|
+
? "query"
|
|
83
|
+
: "command";
|
|
84
|
+
messages.set(name, {
|
|
85
|
+
name,
|
|
86
|
+
summary: op.summary,
|
|
87
|
+
description: op.description,
|
|
88
|
+
version: specVersion,
|
|
89
|
+
messageType,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
const info = doc.info
|
|
94
|
+
? {
|
|
95
|
+
title: doc.info.title,
|
|
96
|
+
version: doc.info.version,
|
|
97
|
+
description: doc.info.description,
|
|
98
|
+
}
|
|
99
|
+
: undefined;
|
|
100
|
+
return { messages, info, errors: [] };
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Extract a full service definition from an OpenAPI spec.
|
|
104
|
+
* All operations are "receives" (the service receives HTTP requests).
|
|
105
|
+
* No channels are generated for OpenAPI specs.
|
|
106
|
+
*/
|
|
107
|
+
export function extractOpenApiService(content, serviceName) {
|
|
108
|
+
const emptyService = (name) => ({
|
|
109
|
+
name,
|
|
110
|
+
operations: [],
|
|
111
|
+
channels: [],
|
|
112
|
+
messages: [],
|
|
113
|
+
});
|
|
114
|
+
const parsed = parseOpenApiSpec(content);
|
|
115
|
+
if (parsed.errors.length > 0) {
|
|
116
|
+
return {
|
|
117
|
+
service: emptyService(serviceName || "UnknownService"),
|
|
118
|
+
errors: parsed.errors,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
const name = serviceName || sanitizeServiceName(parsed.info?.title) || "UnknownService";
|
|
122
|
+
const version = parsed.info?.version;
|
|
123
|
+
const summary = parsed.info?.description?.trim().split("\n")[0];
|
|
124
|
+
const operations = [];
|
|
125
|
+
const messages = [];
|
|
126
|
+
for (const msg of parsed.messages.values()) {
|
|
127
|
+
operations.push({
|
|
128
|
+
action: "receive",
|
|
129
|
+
channelName: "",
|
|
130
|
+
messageName: msg.name,
|
|
131
|
+
messageType: msg.messageType,
|
|
132
|
+
summary: msg.summary,
|
|
133
|
+
});
|
|
134
|
+
messages.push({
|
|
135
|
+
name: msg.name,
|
|
136
|
+
summary: msg.summary,
|
|
137
|
+
description: msg.description,
|
|
138
|
+
version: msg.version,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
return {
|
|
142
|
+
service: { name, version, summary, operations, channels: [], messages },
|
|
143
|
+
errors: [],
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Convert an OpenAPI SpecService to a full .ec definition string.
|
|
148
|
+
* Generates standalone command/query definitions with summaries,
|
|
149
|
+
* followed by the service block with receives statements.
|
|
150
|
+
*/
|
|
151
|
+
export function openApiServiceToEc(service) {
|
|
152
|
+
const parts = [];
|
|
153
|
+
// Build a map of messageName -> messageType from operations
|
|
154
|
+
const messageTypeMap = new Map();
|
|
155
|
+
for (const op of service.operations) {
|
|
156
|
+
if (op.messageType === "command" || op.messageType === "query") {
|
|
157
|
+
messageTypeMap.set(op.messageName, op.messageType);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
// Generate standalone message definitions with summaries
|
|
161
|
+
for (const msg of service.messages) {
|
|
162
|
+
const msgType = messageTypeMap.get(msg.name) || "command";
|
|
163
|
+
parts.push(ecBlock(msgType, msg.name, [
|
|
164
|
+
msg.version && `version ${msg.version}`,
|
|
165
|
+
msg.summary && `summary "${escapeEc(msg.summary)}"`,
|
|
166
|
+
]));
|
|
167
|
+
}
|
|
168
|
+
// Generate the service block
|
|
169
|
+
parts.push(serviceToEc(service));
|
|
170
|
+
return parts.join("\n\n");
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Convert an OpenAPI message to an .ec definition string.
|
|
174
|
+
* Uses the message's messageType to determine whether it's a command or query.
|
|
175
|
+
*/
|
|
176
|
+
export function openApiMessageToEc(msg) {
|
|
177
|
+
return ecBlock(msg.messageType, msg.name, [
|
|
178
|
+
msg.version && `version ${msg.version}`,
|
|
179
|
+
msg.summary && `summary "${escapeEc(msg.summary)}"`,
|
|
180
|
+
]);
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=openapi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../src/resolvers/openapi.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { SpecResolveResult, FetchFn } from "./types.js";
|
|
2
|
+
type SpecType = "asyncapi" | "openapi" | "unknown";
|
|
3
|
+
/**
|
|
4
|
+
* Detect whether a spec document is AsyncAPI or OpenAPI based on its content.
|
|
5
|
+
*/
|
|
6
|
+
export declare function detectSpecType(content: string): SpecType;
|
|
7
|
+
/**
|
|
8
|
+
* Resolve all spec imports in a set of files (sync, local files only).
|
|
9
|
+
* Scans .ec files for `import <type> { ... } from "*.yml"` and
|
|
10
|
+
* `import ServiceName from "*.yml"` statements, auto-detects whether
|
|
11
|
+
* each spec is AsyncAPI or OpenAPI, and replaces the imports with
|
|
12
|
+
* synthesized .ec definitions.
|
|
13
|
+
* Spec files (YAML/JSON) are excluded from the output.
|
|
14
|
+
* URL imports are left untouched - use resolveSpecImportsAsync for those.
|
|
15
|
+
*/
|
|
16
|
+
export declare function resolveSpecImports(files: Record<string, string>): SpecResolveResult;
|
|
17
|
+
/**
|
|
18
|
+
* Resolve all spec imports including remote URLs (async).
|
|
19
|
+
* Fetches remote specs via the provided fetchFn, then resolves all imports.
|
|
20
|
+
* Auto-detects AsyncAPI vs OpenAPI from file content.
|
|
21
|
+
* For local file imports, looks them up in the files map.
|
|
22
|
+
*/
|
|
23
|
+
export declare function resolveSpecImportsAsync(files: Record<string, string>, fetchFn: FetchFn): Promise<SpecResolveResult>;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=resolve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/resolvers/resolve.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAKV,iBAAiB,EACjB,OAAO,EACR,MAAM,YAAY,CAAC;AA4BpB,KAAK,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAEnD;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAexD;AA8SD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,iBAAiB,CAoBnB;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,iBAAiB,CAAC,CAiD5B"}
|
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
import yaml from "js-yaml";
|
|
2
|
+
import { parseSpec, extractService, messageToEc, channelToEc, serviceToEc, } from "./asyncapi.js";
|
|
3
|
+
import { parseOpenApiSpec, extractOpenApiService, openApiServiceToEc, openApiMessageToEc, } from "./openapi.js";
|
|
4
|
+
// Matches: import events { OrderCreated } from "./spec.yml"
|
|
5
|
+
// Matches: import channels { orderEvents } from "./spec.yml"
|
|
6
|
+
// Matches: import events { OrderCreated } from "https://example.com/spec.yml"
|
|
7
|
+
// Also matches .json files for OpenAPI specs
|
|
8
|
+
const SPEC_IMPORT_RE = /import\s+(events|commands|queries|channels)\s*\{([^}]*)\}\s*from\s*"([^"]+\.(?:ya?ml|json))"\s*\n?/g;
|
|
9
|
+
// Matches: import OrderService from "./spec.yml"
|
|
10
|
+
// A bare identifier (no braces, no resource type keyword) imports a full service
|
|
11
|
+
// Also matches .json files for OpenAPI specs
|
|
12
|
+
const SERVICE_IMPORT_RE = /import\s+([A-Z][a-zA-Z0-9_]*)\s+from\s*"([^"]+\.(?:ya?ml|json))"\s*\n?/g;
|
|
13
|
+
/**
|
|
14
|
+
* Detect whether a spec document is AsyncAPI or OpenAPI based on its content.
|
|
15
|
+
*/
|
|
16
|
+
export function detectSpecType(content) {
|
|
17
|
+
try {
|
|
18
|
+
let doc;
|
|
19
|
+
try {
|
|
20
|
+
doc = JSON.parse(content);
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
doc = yaml.load(content);
|
|
24
|
+
}
|
|
25
|
+
if (!doc || typeof doc !== "object")
|
|
26
|
+
return "unknown";
|
|
27
|
+
if (doc.asyncapi)
|
|
28
|
+
return "asyncapi";
|
|
29
|
+
if (doc.openapi)
|
|
30
|
+
return "openapi";
|
|
31
|
+
return "unknown";
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return "unknown";
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function findImports(source) {
|
|
38
|
+
const imports = [];
|
|
39
|
+
SPEC_IMPORT_RE.lastIndex = 0;
|
|
40
|
+
let match;
|
|
41
|
+
while ((match = SPEC_IMPORT_RE.exec(source)) !== null) {
|
|
42
|
+
imports.push({
|
|
43
|
+
full: match[0],
|
|
44
|
+
resourceType: match[1],
|
|
45
|
+
importNames: match[2]
|
|
46
|
+
.split(",")
|
|
47
|
+
.map((s) => s.trim())
|
|
48
|
+
.filter(Boolean),
|
|
49
|
+
specPath: match[3],
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
return imports;
|
|
53
|
+
}
|
|
54
|
+
function findServiceImports(source) {
|
|
55
|
+
const imports = [];
|
|
56
|
+
SERVICE_IMPORT_RE.lastIndex = 0;
|
|
57
|
+
let match;
|
|
58
|
+
while ((match = SERVICE_IMPORT_RE.exec(source)) !== null) {
|
|
59
|
+
imports.push({
|
|
60
|
+
full: match[0],
|
|
61
|
+
serviceName: match[1],
|
|
62
|
+
specPath: match[2],
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
return imports;
|
|
66
|
+
}
|
|
67
|
+
function resolveAsyncApiImportToEc(imp, specContent, cachedParsedSpecs) {
|
|
68
|
+
const errors = [];
|
|
69
|
+
const cacheKey = normalizeSpecKey(imp.specPath);
|
|
70
|
+
if (!cachedParsedSpecs.has(cacheKey)) {
|
|
71
|
+
const parsed = parseSpec(specContent);
|
|
72
|
+
cachedParsedSpecs.set(cacheKey, parsed);
|
|
73
|
+
errors.push(...parsed.errors);
|
|
74
|
+
}
|
|
75
|
+
const parsed = cachedParsedSpecs.get(cacheKey);
|
|
76
|
+
const isChannelImport = imp.resourceType === "channels";
|
|
77
|
+
const catalog = isChannelImport ? parsed.channels : parsed.messages;
|
|
78
|
+
const typeName = isChannelImport ? "Channel" : "Message";
|
|
79
|
+
const ecDefs = imp.importNames.map((name) => {
|
|
80
|
+
const resource = catalog.get(name);
|
|
81
|
+
if (!resource) {
|
|
82
|
+
errors.push({
|
|
83
|
+
message: `${typeName} "${name}" not found in AsyncAPI spec "${imp.specPath}". Available: ${[...catalog.keys()].join(", ") || "(none)"}`,
|
|
84
|
+
line: 1,
|
|
85
|
+
column: 1,
|
|
86
|
+
});
|
|
87
|
+
return `// ERROR: "${name}" not found in ${imp.specPath}`;
|
|
88
|
+
}
|
|
89
|
+
return isChannelImport
|
|
90
|
+
? channelToEc(resource)
|
|
91
|
+
: messageToEc(resource, imp.resourceType);
|
|
92
|
+
});
|
|
93
|
+
return { ec: ecDefs.join("\n\n"), errors };
|
|
94
|
+
}
|
|
95
|
+
function resolveOpenApiImportToEc(imp, specContent, cachedParsedSpecs) {
|
|
96
|
+
const errors = [];
|
|
97
|
+
// OpenAPI does not support event or channel imports
|
|
98
|
+
if (imp.resourceType === "events") {
|
|
99
|
+
errors.push({
|
|
100
|
+
message: `OpenAPI specs contain commands and queries, not events. Use "import commands" or "import queries" instead for "${imp.specPath}".`,
|
|
101
|
+
line: 1,
|
|
102
|
+
column: 1,
|
|
103
|
+
});
|
|
104
|
+
return {
|
|
105
|
+
ec: `// ERROR: OpenAPI specs do not contain events`,
|
|
106
|
+
errors,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
if (imp.resourceType === "channels") {
|
|
110
|
+
errors.push({
|
|
111
|
+
message: `OpenAPI specs do not contain channels for "${imp.specPath}".`,
|
|
112
|
+
line: 1,
|
|
113
|
+
column: 1,
|
|
114
|
+
});
|
|
115
|
+
return {
|
|
116
|
+
ec: `// ERROR: OpenAPI specs do not contain channels`,
|
|
117
|
+
errors,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
const cacheKey = normalizeSpecKey(imp.specPath);
|
|
121
|
+
if (!cachedParsedSpecs.has(cacheKey)) {
|
|
122
|
+
const parsed = parseOpenApiSpec(specContent);
|
|
123
|
+
cachedParsedSpecs.set(cacheKey, parsed);
|
|
124
|
+
errors.push(...parsed.errors);
|
|
125
|
+
}
|
|
126
|
+
const parsed = cachedParsedSpecs.get(cacheKey);
|
|
127
|
+
// Map the import keyword to the expected message type
|
|
128
|
+
const expectedType = imp.resourceType === "commands" ? "command" : "query";
|
|
129
|
+
const ecDefs = imp.importNames.map((name) => {
|
|
130
|
+
const msg = parsed.messages.get(name);
|
|
131
|
+
if (!msg) {
|
|
132
|
+
errors.push({
|
|
133
|
+
message: `Message "${name}" not found in OpenAPI spec "${imp.specPath}". Available: ${[...parsed.messages.keys()].join(", ") || "(none)"}`,
|
|
134
|
+
line: 1,
|
|
135
|
+
column: 1,
|
|
136
|
+
});
|
|
137
|
+
return `// ERROR: "${name}" not found in ${imp.specPath}`;
|
|
138
|
+
}
|
|
139
|
+
// Enforce that the message type matches the import keyword
|
|
140
|
+
if (msg.messageType !== expectedType) {
|
|
141
|
+
errors.push({
|
|
142
|
+
message: `"${name}" is a ${msg.messageType} but was imported as "${imp.resourceType}" in "${imp.specPath}". Use "import ${msg.messageType === "command" ? "commands" : "queries"} { ${name} }" instead.`,
|
|
143
|
+
line: 1,
|
|
144
|
+
column: 1,
|
|
145
|
+
});
|
|
146
|
+
return `// ERROR: "${name}" is a ${msg.messageType}, not a ${expectedType}`;
|
|
147
|
+
}
|
|
148
|
+
return openApiMessageToEc(msg);
|
|
149
|
+
});
|
|
150
|
+
return { ec: ecDefs.join("\n\n"), errors };
|
|
151
|
+
}
|
|
152
|
+
function resolveServiceImportToEc(imp, specContent, specType) {
|
|
153
|
+
if (specType === "openapi") {
|
|
154
|
+
const { service, errors } = extractOpenApiService(specContent, imp.serviceName);
|
|
155
|
+
return { ec: openApiServiceToEc(service), errors };
|
|
156
|
+
}
|
|
157
|
+
// Default to AsyncAPI
|
|
158
|
+
const { service, errors } = extractService(specContent, imp.serviceName);
|
|
159
|
+
return { ec: serviceToEc(service), errors };
|
|
160
|
+
}
|
|
161
|
+
function isUrl(path) {
|
|
162
|
+
return path.startsWith("https://") || path.startsWith("http://");
|
|
163
|
+
}
|
|
164
|
+
function normalizeSpecKey(specPath) {
|
|
165
|
+
return isUrl(specPath) ? specPath : specPath.replace(/^\.\//, "");
|
|
166
|
+
}
|
|
167
|
+
function lookupLocalSpec(specPath, files) {
|
|
168
|
+
const normalizedPath = specPath.replace(/^\.\//, "");
|
|
169
|
+
return (files[specPath] ?? files[normalizedPath] ?? files[`./${normalizedPath}`]);
|
|
170
|
+
}
|
|
171
|
+
function isSpecFile(filename) {
|
|
172
|
+
return (filename.endsWith(".yml") ||
|
|
173
|
+
filename.endsWith(".yaml") ||
|
|
174
|
+
filename.endsWith(".json"));
|
|
175
|
+
}
|
|
176
|
+
const SKIP = Symbol("skip");
|
|
177
|
+
/**
|
|
178
|
+
* Core resolution logic shared by sync and async resolvers.
|
|
179
|
+
* Given a spec content lookup function, resolves all imports in .ec files.
|
|
180
|
+
* Auto-detects whether each spec is AsyncAPI or OpenAPI.
|
|
181
|
+
* Return `SKIP` from the callback to leave an import untouched;
|
|
182
|
+
* return `undefined` to replace it with an error comment.
|
|
183
|
+
*/
|
|
184
|
+
function resolveFileImports(files, getSpecContent) {
|
|
185
|
+
const errors = [];
|
|
186
|
+
const newFiles = {};
|
|
187
|
+
const cachedAsyncApiSpecs = new Map();
|
|
188
|
+
const cachedOpenApiSpecs = new Map();
|
|
189
|
+
const specTypeCache = new Map();
|
|
190
|
+
function getSpecType(specPath, content) {
|
|
191
|
+
const cacheKey = normalizeSpecKey(specPath);
|
|
192
|
+
if (!specTypeCache.has(cacheKey)) {
|
|
193
|
+
specTypeCache.set(cacheKey, detectSpecType(content));
|
|
194
|
+
}
|
|
195
|
+
return specTypeCache.get(cacheKey);
|
|
196
|
+
}
|
|
197
|
+
for (const [filename, source] of Object.entries(files)) {
|
|
198
|
+
if (isSpecFile(filename))
|
|
199
|
+
continue;
|
|
200
|
+
const imports = findImports(source);
|
|
201
|
+
const serviceImports = findServiceImports(source);
|
|
202
|
+
if (imports.length === 0 && serviceImports.length === 0) {
|
|
203
|
+
newFiles[filename] = source;
|
|
204
|
+
continue;
|
|
205
|
+
}
|
|
206
|
+
let result = source;
|
|
207
|
+
// Resolve resource imports (import events { ... } from "spec.yml")
|
|
208
|
+
for (const imp of imports) {
|
|
209
|
+
const specContent = getSpecContent(imp.specPath);
|
|
210
|
+
if (specContent === SKIP)
|
|
211
|
+
continue;
|
|
212
|
+
if (!specContent) {
|
|
213
|
+
result = result.replace(imp.full, `// ERROR: Spec file not available: ${imp.specPath}`);
|
|
214
|
+
continue;
|
|
215
|
+
}
|
|
216
|
+
const specType = getSpecType(imp.specPath, specContent);
|
|
217
|
+
let resolution;
|
|
218
|
+
if (specType === "openapi") {
|
|
219
|
+
resolution = resolveOpenApiImportToEc(imp, specContent, cachedOpenApiSpecs);
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
resolution = resolveAsyncApiImportToEc(imp, specContent, cachedAsyncApiSpecs);
|
|
223
|
+
}
|
|
224
|
+
errors.push(...resolution.errors);
|
|
225
|
+
result = result.replace(imp.full, resolution.ec);
|
|
226
|
+
}
|
|
227
|
+
// Resolve service imports (import ServiceName from "spec.yml")
|
|
228
|
+
for (const imp of serviceImports) {
|
|
229
|
+
const specContent = getSpecContent(imp.specPath);
|
|
230
|
+
if (specContent === SKIP)
|
|
231
|
+
continue;
|
|
232
|
+
if (!specContent) {
|
|
233
|
+
result = result.replace(imp.full, `// ERROR: Spec file not available: ${imp.specPath}`);
|
|
234
|
+
continue;
|
|
235
|
+
}
|
|
236
|
+
const specType = getSpecType(imp.specPath, specContent);
|
|
237
|
+
const resolution = resolveServiceImportToEc(imp, specContent, specType);
|
|
238
|
+
errors.push(...resolution.errors);
|
|
239
|
+
result = result.replace(imp.full, resolution.ec);
|
|
240
|
+
}
|
|
241
|
+
newFiles[filename] = result;
|
|
242
|
+
}
|
|
243
|
+
return { files: newFiles, errors };
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Resolve all spec imports in a set of files (sync, local files only).
|
|
247
|
+
* Scans .ec files for `import <type> { ... } from "*.yml"` and
|
|
248
|
+
* `import ServiceName from "*.yml"` statements, auto-detects whether
|
|
249
|
+
* each spec is AsyncAPI or OpenAPI, and replaces the imports with
|
|
250
|
+
* synthesized .ec definitions.
|
|
251
|
+
* Spec files (YAML/JSON) are excluded from the output.
|
|
252
|
+
* URL imports are left untouched - use resolveSpecImportsAsync for those.
|
|
253
|
+
*/
|
|
254
|
+
export function resolveSpecImports(files) {
|
|
255
|
+
const notFoundErrors = [];
|
|
256
|
+
const result = resolveFileImports(files, (specPath) => {
|
|
257
|
+
if (isUrl(specPath))
|
|
258
|
+
return SKIP;
|
|
259
|
+
const content = lookupLocalSpec(specPath, files);
|
|
260
|
+
if (!content) {
|
|
261
|
+
notFoundErrors.push({
|
|
262
|
+
message: `Spec file not found: "${specPath}"`,
|
|
263
|
+
line: 1,
|
|
264
|
+
column: 1,
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
return content;
|
|
268
|
+
});
|
|
269
|
+
return {
|
|
270
|
+
files: result.files,
|
|
271
|
+
errors: [...notFoundErrors, ...result.errors],
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Resolve all spec imports including remote URLs (async).
|
|
276
|
+
* Fetches remote specs via the provided fetchFn, then resolves all imports.
|
|
277
|
+
* Auto-detects AsyncAPI vs OpenAPI from file content.
|
|
278
|
+
* For local file imports, looks them up in the files map.
|
|
279
|
+
*/
|
|
280
|
+
export async function resolveSpecImportsAsync(files, fetchFn) {
|
|
281
|
+
// Collect all unique remote URLs that need fetching
|
|
282
|
+
const urlsToFetch = new Set();
|
|
283
|
+
for (const [filename, source] of Object.entries(files)) {
|
|
284
|
+
if (isSpecFile(filename))
|
|
285
|
+
continue;
|
|
286
|
+
for (const imp of findImports(source)) {
|
|
287
|
+
if (isUrl(imp.specPath))
|
|
288
|
+
urlsToFetch.add(imp.specPath);
|
|
289
|
+
}
|
|
290
|
+
for (const imp of findServiceImports(source)) {
|
|
291
|
+
if (isUrl(imp.specPath))
|
|
292
|
+
urlsToFetch.add(imp.specPath);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
// Fetch all remote specs in parallel
|
|
296
|
+
const fetchErrors = [];
|
|
297
|
+
const fetchedSpecs = new Map();
|
|
298
|
+
await Promise.all([...urlsToFetch].map(async (url) => {
|
|
299
|
+
try {
|
|
300
|
+
fetchedSpecs.set(url, await fetchFn(url));
|
|
301
|
+
}
|
|
302
|
+
catch (err) {
|
|
303
|
+
fetchErrors.push({
|
|
304
|
+
message: `Failed to fetch spec "${url}": ${String(err)}`,
|
|
305
|
+
line: 1,
|
|
306
|
+
column: 1,
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
}));
|
|
310
|
+
const notFoundErrors = [];
|
|
311
|
+
const result = resolveFileImports(files, (specPath) => {
|
|
312
|
+
if (isUrl(specPath))
|
|
313
|
+
return fetchedSpecs.get(specPath);
|
|
314
|
+
const content = lookupLocalSpec(specPath, files);
|
|
315
|
+
if (!content) {
|
|
316
|
+
notFoundErrors.push({
|
|
317
|
+
message: `Spec file not found: "${specPath}"`,
|
|
318
|
+
line: 1,
|
|
319
|
+
column: 1,
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
return content;
|
|
323
|
+
});
|
|
324
|
+
return {
|
|
325
|
+
files: result.files,
|
|
326
|
+
errors: [...fetchErrors, ...notFoundErrors, ...result.errors],
|
|
327
|
+
};
|
|
328
|
+
}
|
|
329
|
+
//# sourceMappingURL=resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/resolvers/resolve.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/resolvers/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;AAE1E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/resolvers/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;AAE1E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC"}
|