@eventcatalog/language-server 0.6.0 → 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.d.ts +22 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +20 -0
- package/dist/browser.js.map +1 -0
- package/dist/compiler.js +1 -1
- package/dist/compiler.js.map +1 -1
- package/dist/completion-data.d.ts +15 -0
- package/dist/completion-data.d.ts.map +1 -0
- package/dist/completion-data.js +453 -0
- package/dist/completion-data.js.map +1 -0
- package/dist/completion-utils.d.ts +29 -0
- package/dist/completion-utils.d.ts.map +1 -0
- package/dist/completion-utils.js +128 -0
- package/dist/completion-utils.js.map +1 -0
- package/dist/ec-completion-provider.d.ts +22 -1
- package/dist/ec-completion-provider.d.ts.map +1 -1
- package/dist/ec-completion-provider.js +461 -150
- package/dist/ec-completion-provider.js.map +1 -1
- package/dist/ec-definition-provider.d.ts +14 -0
- package/dist/ec-definition-provider.d.ts.map +1 -0
- package/dist/ec-definition-provider.js +123 -0
- package/dist/ec-definition-provider.js.map +1 -0
- package/dist/ec-formatter-provider.d.ts +10 -0
- package/dist/ec-formatter-provider.d.ts.map +1 -0
- package/dist/ec-formatter-provider.js +28 -0
- package/dist/ec-formatter-provider.js.map +1 -0
- package/dist/ec-hover-provider.d.ts +10 -0
- package/dist/ec-hover-provider.d.ts.map +1 -0
- package/dist/ec-hover-provider.js +41 -0
- package/dist/ec-hover-provider.js.map +1 -0
- package/dist/ec-module.d.ts +0 -6
- package/dist/ec-module.d.ts.map +1 -1
- package/dist/ec-module.js +0 -10
- package/dist/ec-module.js.map +1 -1
- package/dist/ec-resource-index.d.ts +64 -0
- package/dist/ec-resource-index.d.ts.map +1 -0
- package/dist/ec-resource-index.js +281 -0
- package/dist/ec-resource-index.js.map +1 -0
- package/dist/ec-validator.d.ts.map +1 -1
- package/dist/ec-validator.js +22 -87
- package/dist/ec-validator.js.map +1 -1
- package/dist/generated/ast.d.ts +2 -2
- package/dist/generated/ast.d.ts.map +1 -1
- package/dist/generated/ast.js +1 -1
- package/dist/generated/ast.js.map +1 -1
- package/dist/generated/grammar.d.ts.map +1 -1
- package/dist/generated/grammar.js +103 -53
- package/dist/generated/grammar.js.map +1 -1
- package/dist/graph.d.ts.map +1 -1
- package/dist/graph.js +83 -35
- package/dist/graph.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/main.js +16 -1
- package/dist/main.js.map +1 -1
- package/dist/resolvers/asyncapi.d.ts +5 -0
- package/dist/resolvers/asyncapi.d.ts.map +1 -1
- package/dist/resolvers/asyncapi.js +50 -14
- package/dist/resolvers/asyncapi.js.map +1 -1
- package/dist/resolvers/catalog.d.ts +34 -0
- package/dist/resolvers/catalog.d.ts.map +1 -0
- package/dist/resolvers/catalog.js +291 -0
- package/dist/resolvers/catalog.js.map +1 -0
- package/dist/resolvers/index.d.ts +4 -2
- package/dist/resolvers/index.d.ts.map +1 -1
- package/dist/resolvers/index.js +4 -2
- package/dist/resolvers/index.js.map +1 -1
- package/dist/resolvers/openapi.d.ts.map +1 -1
- package/dist/resolvers/openapi.js +30 -0
- package/dist/resolvers/openapi.js.map +1 -1
- package/dist/resolvers/resolve.d.ts +5 -2
- package/dist/resolvers/resolve.d.ts.map +1 -1
- package/dist/resolvers/resolve.js +161 -5
- package/dist/resolvers/resolve.js.map +1 -1
- package/dist/resolvers/types.d.ts +16 -1
- package/dist/resolvers/types.d.ts.map +1 -1
- package/dist/resolvers/types.js +11 -1
- package/dist/resolvers/types.js.map +1 -1
- package/package.json +7 -2
- package/specification/03-event.md +1 -0
- package/specification/04-command.md +4 -1
- package/specification/05-query.md +4 -1
- package/specification/06-channel.md +24 -4
- package/specification/16-annotations.md +52 -0
- package/syntaxes/ec.tmLanguage.json +1 -1
|
@@ -81,12 +81,21 @@ export function parseOpenApiSpec(content) {
|
|
|
81
81
|
: method === "get"
|
|
82
82
|
? "query"
|
|
83
83
|
: "command";
|
|
84
|
+
// Extract response status codes
|
|
85
|
+
const statusCodes = op.responses
|
|
86
|
+
? Object.keys(op.responses)
|
|
87
|
+
.map(Number)
|
|
88
|
+
.filter((c) => !isNaN(c))
|
|
89
|
+
: [];
|
|
84
90
|
messages.set(name, {
|
|
85
91
|
name,
|
|
86
92
|
summary: op.summary,
|
|
87
93
|
description: op.description,
|
|
88
94
|
version: specVersion,
|
|
89
95
|
messageType,
|
|
96
|
+
method: method.toUpperCase(),
|
|
97
|
+
path,
|
|
98
|
+
...(statusCodes.length > 0 ? { statusCodes } : {}),
|
|
90
99
|
});
|
|
91
100
|
}
|
|
92
101
|
}
|
|
@@ -136,6 +145,9 @@ export function extractOpenApiService(content, serviceName) {
|
|
|
136
145
|
summary: msg.summary,
|
|
137
146
|
description: msg.description,
|
|
138
147
|
version: msg.version,
|
|
148
|
+
method: msg.method,
|
|
149
|
+
path: msg.path,
|
|
150
|
+
statusCodes: msg.statusCodes,
|
|
139
151
|
});
|
|
140
152
|
}
|
|
141
153
|
return {
|
|
@@ -163,12 +175,29 @@ export function openApiServiceToEc(service) {
|
|
|
163
175
|
parts.push(ecBlock(msgType, msg.name, [
|
|
164
176
|
msg.version && `version ${msg.version}`,
|
|
165
177
|
msg.summary && `summary "${escapeEc(msg.summary)}"`,
|
|
178
|
+
apiAnnotation(msg),
|
|
166
179
|
]));
|
|
167
180
|
}
|
|
168
181
|
// Generate the service block
|
|
169
182
|
parts.push(serviceToEc(service));
|
|
170
183
|
return parts.join("\n\n");
|
|
171
184
|
}
|
|
185
|
+
/**
|
|
186
|
+
* Build an @api annotation string from method, path, and statusCodes.
|
|
187
|
+
*/
|
|
188
|
+
function apiAnnotation(msg) {
|
|
189
|
+
if (!msg.method && !msg.path)
|
|
190
|
+
return false;
|
|
191
|
+
const args = [];
|
|
192
|
+
if (msg.method)
|
|
193
|
+
args.push(`method: "${msg.method}"`);
|
|
194
|
+
if (msg.path)
|
|
195
|
+
args.push(`path: "${escapeEc(msg.path)}"`);
|
|
196
|
+
if (msg.statusCodes && msg.statusCodes.length > 0) {
|
|
197
|
+
args.push(`statusCodes: "${msg.statusCodes.join(",")}"`);
|
|
198
|
+
}
|
|
199
|
+
return `@api(${args.join(", ")})`;
|
|
200
|
+
}
|
|
172
201
|
/**
|
|
173
202
|
* Convert an OpenAPI message to an .ec definition string.
|
|
174
203
|
* Uses the message's messageType to determine whether it's a command or query.
|
|
@@ -177,6 +206,7 @@ export function openApiMessageToEc(msg) {
|
|
|
177
206
|
return ecBlock(msg.messageType, msg.name, [
|
|
178
207
|
msg.version && `version ${msg.version}`,
|
|
179
208
|
msg.summary && `summary "${escapeEc(msg.summary)}"`,
|
|
209
|
+
apiAnnotation(msg),
|
|
180
210
|
]);
|
|
181
211
|
}
|
|
182
212
|
//# sourceMappingURL=openapi.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../src/resolvers/openapi.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../src/resolvers/openapi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type SpecResolveResult, type FetchFn } from "./types.js";
|
|
2
2
|
type SpecType = "asyncapi" | "openapi" | "unknown";
|
|
3
3
|
/**
|
|
4
4
|
* Detect whether a spec document is AsyncAPI or OpenAPI based on its content.
|
|
5
5
|
*/
|
|
6
6
|
export declare function detectSpecType(content: string): SpecType;
|
|
7
|
+
export declare function isSpecFile(filename: string): boolean;
|
|
7
8
|
/**
|
|
8
9
|
* Resolve all spec imports in a set of files (sync, local files only).
|
|
9
10
|
* Scans .ec files for `import <type> { ... } from "*.yml"` and
|
|
@@ -19,7 +20,9 @@ export declare function resolveSpecImports(files: Record<string, string>): SpecR
|
|
|
19
20
|
* Fetches remote specs via the provided fetchFn, then resolves all imports.
|
|
20
21
|
* Auto-detects AsyncAPI vs OpenAPI from file content.
|
|
21
22
|
* For local file imports, looks them up in the files map.
|
|
23
|
+
* When basePath is provided, also resolves catalog directory imports
|
|
24
|
+
* (e.g., `import events { OrderCreated } from "./my-catalog"`).
|
|
22
25
|
*/
|
|
23
|
-
export declare function resolveSpecImportsAsync(files: Record<string, string>, fetchFn: FetchFn): Promise<SpecResolveResult>;
|
|
26
|
+
export declare function resolveSpecImportsAsync(files: Record<string, string>, fetchFn: FetchFn, basePath?: string): Promise<SpecResolveResult>;
|
|
24
27
|
export {};
|
|
25
28
|
//# sourceMappingURL=resolve.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/resolvers/resolve.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/resolvers/resolve.ts"],"names":[],"mappings":"AACA,OAAO,EAML,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACb,MAAM,YAAY,CAAC;AAoCpB,KAAK,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAEnD;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAexD;AA0SD,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAMpD;AAsGD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,iBAAiB,CAoBnB;AAED;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,OAAO,EAAE,OAAO,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,iBAAiB,CAAC,CAoH5B"}
|
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
import yaml from "js-yaml";
|
|
2
|
-
import {
|
|
2
|
+
import { isCatalogPath, } from "./types.js";
|
|
3
|
+
import { parseSpec, extractService, messageToEc, channelToEc, containerToEc, serviceToEc, } from "./asyncapi.js";
|
|
3
4
|
import { parseOpenApiSpec, extractOpenApiService, openApiServiceToEc, openApiMessageToEc, } from "./openapi.js";
|
|
4
5
|
// Matches: import events { OrderCreated } from "./spec.yml"
|
|
5
6
|
// Matches: import channels { orderEvents } from "./spec.yml"
|
|
6
7
|
// Matches: import events { OrderCreated } from "https://example.com/spec.yml"
|
|
7
8
|
// Also matches .json files for OpenAPI specs
|
|
8
|
-
const SPEC_IMPORT_RE =
|
|
9
|
+
const SPEC_IMPORT_RE = /^\s*import\s+(events|commands|queries|channels)\s*\{([^}]*)\}\s*from\s*"([^"]+\.(?:ya?ml|json))"\s*(?:\/\/.*)?$/gm;
|
|
9
10
|
// Matches: import OrderService from "./spec.yml"
|
|
10
11
|
// A bare identifier (no braces, no resource type keyword) imports a full service
|
|
11
12
|
// Also matches .json files for OpenAPI specs
|
|
12
|
-
const SERVICE_IMPORT_RE =
|
|
13
|
+
const SERVICE_IMPORT_RE = /^\s*import\s+([A-Z][a-zA-Z0-9_]*)\s+from\s*"([^"]+\.(?:ya?ml|json))"\s*(?:\/\/.*)?$/gm;
|
|
14
|
+
// Matches: import events { OrderCreated } from "./my-catalog"
|
|
15
|
+
// Matches: import services { OrderService } from "./my-catalog"
|
|
16
|
+
// Matches: import containers { PaymentsDB } from "./my-catalog"
|
|
17
|
+
// Catches any typed import whose path is NOT a spec file and NOT a URL (i.e., a directory path).
|
|
18
|
+
// Uses the same shape as SPEC_IMPORT_RE but with a generic path capture.
|
|
19
|
+
const CATALOG_IMPORT_RE = /^\s*import\s+(events|commands|queries|channels|services|containers)\s*\{([^}]*)\}\s*from\s*"([^"]+)"\s*(?:\/\/.*)?$/gm;
|
|
13
20
|
/**
|
|
14
21
|
* Detect whether a spec document is AsyncAPI or OpenAPI based on its content.
|
|
15
22
|
*/
|
|
@@ -64,6 +71,94 @@ function findServiceImports(source) {
|
|
|
64
71
|
}
|
|
65
72
|
return imports;
|
|
66
73
|
}
|
|
74
|
+
function findCatalogImports(source) {
|
|
75
|
+
const imports = [];
|
|
76
|
+
CATALOG_IMPORT_RE.lastIndex = 0;
|
|
77
|
+
let match;
|
|
78
|
+
while ((match = CATALOG_IMPORT_RE.exec(source)) !== null) {
|
|
79
|
+
const specPath = match[3];
|
|
80
|
+
// Only keep matches that are catalog paths (not spec files, not URLs)
|
|
81
|
+
if (!isCatalogPath(specPath))
|
|
82
|
+
continue;
|
|
83
|
+
imports.push({
|
|
84
|
+
full: match[0],
|
|
85
|
+
resourceType: match[1],
|
|
86
|
+
importNames: match[2]
|
|
87
|
+
.split(",")
|
|
88
|
+
.map((s) => s.trim())
|
|
89
|
+
.filter(Boolean),
|
|
90
|
+
specPath,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
return imports;
|
|
94
|
+
}
|
|
95
|
+
async function resolveCatalogImportToEc(imp, basePath, importingFile) {
|
|
96
|
+
// Dynamic imports to avoid pulling Node.js/SDK deps into browser builds
|
|
97
|
+
const { resolve, dirname, isAbsolute } = await import("node:path");
|
|
98
|
+
// Resolve relative paths against the importing file's directory when available,
|
|
99
|
+
// falling back to basePath for absolute paths or when the file is unknown.
|
|
100
|
+
let catalogDir;
|
|
101
|
+
if (importingFile && !isAbsolute(imp.specPath)) {
|
|
102
|
+
const fileDir = resolve(basePath, dirname(importingFile));
|
|
103
|
+
catalogDir = resolve(fileDir, imp.specPath);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
catalogDir = resolve(basePath, imp.specPath);
|
|
107
|
+
}
|
|
108
|
+
// Service imports use a different code path
|
|
109
|
+
if (imp.resourceType === "services") {
|
|
110
|
+
const { parseCatalogServices } = await import("./catalog.js");
|
|
111
|
+
const { services, errors } = await parseCatalogServices(catalogDir);
|
|
112
|
+
const ecDefs = imp.importNames.map((name) => {
|
|
113
|
+
const svc = services.get(name);
|
|
114
|
+
if (!svc) {
|
|
115
|
+
errors.push({
|
|
116
|
+
message: `Service "${name}" not found in catalog "${imp.specPath}". Available: ${[...services.keys()].join(", ") || "(none)"}`,
|
|
117
|
+
line: 1,
|
|
118
|
+
column: 1,
|
|
119
|
+
});
|
|
120
|
+
return `// ERROR: Service "${name}" not found in catalog ${imp.specPath}`;
|
|
121
|
+
}
|
|
122
|
+
return serviceToEc(svc);
|
|
123
|
+
});
|
|
124
|
+
return { ec: ecDefs.join("\n\n"), errors };
|
|
125
|
+
}
|
|
126
|
+
// Channel imports use a dedicated resolver to capture address/protocol
|
|
127
|
+
if (imp.resourceType === "channels") {
|
|
128
|
+
const { parseCatalogChannels } = await import("./catalog.js");
|
|
129
|
+
const { channels, errors } = await parseCatalogChannels(catalogDir);
|
|
130
|
+
const ecDefs = imp.importNames.map((name) => {
|
|
131
|
+
const ch = channels.get(name);
|
|
132
|
+
if (!ch) {
|
|
133
|
+
errors.push({
|
|
134
|
+
message: `Channel "${name}" not found in catalog "${imp.specPath}". Available: ${[...channels.keys()].join(", ") || "(none)"}`,
|
|
135
|
+
line: 1,
|
|
136
|
+
column: 1,
|
|
137
|
+
});
|
|
138
|
+
return `// ERROR: Channel "${name}" not found in catalog ${imp.specPath}`;
|
|
139
|
+
}
|
|
140
|
+
return channelToEc(ch);
|
|
141
|
+
});
|
|
142
|
+
return { ec: ecDefs.join("\n\n"), errors };
|
|
143
|
+
}
|
|
144
|
+
const { parseCatalogResources } = await import("./catalog.js");
|
|
145
|
+
const { messages, errors } = await parseCatalogResources(catalogDir, imp.resourceType);
|
|
146
|
+
const ecDefs = imp.importNames.map((name) => {
|
|
147
|
+
const msg = messages.get(name);
|
|
148
|
+
if (!msg) {
|
|
149
|
+
errors.push({
|
|
150
|
+
message: `"${name}" not found in catalog "${imp.specPath}". Available: ${[...messages.keys()].join(", ") || "(none)"}`,
|
|
151
|
+
line: 1,
|
|
152
|
+
column: 1,
|
|
153
|
+
});
|
|
154
|
+
return `// ERROR: "${name}" not found in catalog ${imp.specPath}`;
|
|
155
|
+
}
|
|
156
|
+
return imp.resourceType === "containers"
|
|
157
|
+
? containerToEc(msg)
|
|
158
|
+
: messageToEc(msg, imp.resourceType);
|
|
159
|
+
});
|
|
160
|
+
return { ec: ecDefs.join("\n\n"), errors };
|
|
161
|
+
}
|
|
67
162
|
function resolveAsyncApiImportToEc(imp, specContent, cachedParsedSpecs) {
|
|
68
163
|
const errors = [];
|
|
69
164
|
const cacheKey = normalizeSpecKey(imp.specPath);
|
|
@@ -168,7 +263,7 @@ function lookupLocalSpec(specPath, files) {
|
|
|
168
263
|
const normalizedPath = specPath.replace(/^\.\//, "");
|
|
169
264
|
return (files[specPath] ?? files[normalizedPath] ?? files[`./${normalizedPath}`]);
|
|
170
265
|
}
|
|
171
|
-
function isSpecFile(filename) {
|
|
266
|
+
export function isSpecFile(filename) {
|
|
172
267
|
return (filename.endsWith(".yml") ||
|
|
173
268
|
filename.endsWith(".yaml") ||
|
|
174
269
|
filename.endsWith(".json"));
|
|
@@ -276,8 +371,10 @@ export function resolveSpecImports(files) {
|
|
|
276
371
|
* Fetches remote specs via the provided fetchFn, then resolves all imports.
|
|
277
372
|
* Auto-detects AsyncAPI vs OpenAPI from file content.
|
|
278
373
|
* For local file imports, looks them up in the files map.
|
|
374
|
+
* When basePath is provided, also resolves catalog directory imports
|
|
375
|
+
* (e.g., `import events { OrderCreated } from "./my-catalog"`).
|
|
279
376
|
*/
|
|
280
|
-
export async function resolveSpecImportsAsync(files, fetchFn) {
|
|
377
|
+
export async function resolveSpecImportsAsync(files, fetchFn, basePath) {
|
|
281
378
|
// Collect all unique remote URLs that need fetching
|
|
282
379
|
const urlsToFetch = new Set();
|
|
283
380
|
for (const [filename, source] of Object.entries(files)) {
|
|
@@ -321,6 +418,65 @@ export async function resolveSpecImportsAsync(files, fetchFn) {
|
|
|
321
418
|
}
|
|
322
419
|
return content;
|
|
323
420
|
});
|
|
421
|
+
// Resolve catalog directory imports (import events { ... } from "./my-catalog")
|
|
422
|
+
// Only when basePath is provided (Node.js/VSCode context, not browser)
|
|
423
|
+
if (basePath) {
|
|
424
|
+
const catalogErrors = [];
|
|
425
|
+
// Collect files that have catalog imports so we can resolve them in parallel.
|
|
426
|
+
// The TTL cache in catalog.ts ensures that multiple imports pointing at
|
|
427
|
+
// the same catalog directory only trigger one SDK scan.
|
|
428
|
+
const filesToResolve = [];
|
|
429
|
+
for (const [filename, source] of Object.entries(result.files)) {
|
|
430
|
+
const catalogImports = findCatalogImports(source);
|
|
431
|
+
if (catalogImports.length > 0) {
|
|
432
|
+
filesToResolve.push({ filename, imports: catalogImports });
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
// Resolve all files and their imports in parallel.
|
|
436
|
+
// Imports within a file are also resolved concurrently since they may
|
|
437
|
+
// point at different catalog directories.
|
|
438
|
+
const catalogResolutions = new Map();
|
|
439
|
+
await Promise.all(filesToResolve.map(async ({ filename, imports }) => {
|
|
440
|
+
const resolutions = await Promise.all(imports.map(async (imp) => {
|
|
441
|
+
try {
|
|
442
|
+
return await resolveCatalogImportToEc(imp, basePath, filename);
|
|
443
|
+
}
|
|
444
|
+
catch (err) {
|
|
445
|
+
return {
|
|
446
|
+
ec: `// ERROR: Failed to resolve catalog "${imp.specPath}": ${String(err)}`,
|
|
447
|
+
errors: [
|
|
448
|
+
{
|
|
449
|
+
message: `Failed to resolve catalog "${imp.specPath}": ${String(err)}`,
|
|
450
|
+
line: 1,
|
|
451
|
+
column: 1,
|
|
452
|
+
},
|
|
453
|
+
],
|
|
454
|
+
};
|
|
455
|
+
}
|
|
456
|
+
}));
|
|
457
|
+
let resolved = result.files[filename];
|
|
458
|
+
for (let i = 0; i < imports.length; i++) {
|
|
459
|
+
catalogErrors.push(...resolutions[i].errors);
|
|
460
|
+
resolved = resolved.replace(imports[i].full, resolutions[i].ec);
|
|
461
|
+
}
|
|
462
|
+
catalogResolutions.set(filename, resolved);
|
|
463
|
+
}));
|
|
464
|
+
// Build output preserving the original file order from result.files
|
|
465
|
+
const resolvedFiles = {};
|
|
466
|
+
for (const filename of Object.keys(result.files)) {
|
|
467
|
+
resolvedFiles[filename] =
|
|
468
|
+
catalogResolutions.get(filename) ?? result.files[filename];
|
|
469
|
+
}
|
|
470
|
+
return {
|
|
471
|
+
files: resolvedFiles,
|
|
472
|
+
errors: [
|
|
473
|
+
...fetchErrors,
|
|
474
|
+
...notFoundErrors,
|
|
475
|
+
...result.errors,
|
|
476
|
+
...catalogErrors,
|
|
477
|
+
],
|
|
478
|
+
};
|
|
479
|
+
}
|
|
324
480
|
return {
|
|
325
481
|
files: result.files,
|
|
326
482
|
errors: [...fetchErrors, ...notFoundErrors, ...result.errors],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/resolvers/resolve.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/resolvers/resolve.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,22 @@
|
|
|
1
|
-
export type ResourceType = "events" | "commands" | "queries" | "channels";
|
|
1
|
+
export type ResourceType = "events" | "commands" | "queries" | "channels" | "services" | "containers";
|
|
2
2
|
export interface SpecMessage {
|
|
3
3
|
name: string;
|
|
4
|
+
/** Human-readable display name (from catalog `name` field) */
|
|
5
|
+
displayName?: string;
|
|
4
6
|
summary?: string;
|
|
5
7
|
description?: string;
|
|
6
8
|
version?: string;
|
|
9
|
+
/** HTTP method (from OpenAPI) */
|
|
10
|
+
method?: string;
|
|
11
|
+
/** API path (from OpenAPI) */
|
|
12
|
+
path?: string;
|
|
13
|
+
/** HTTP status codes (from OpenAPI) */
|
|
14
|
+
statusCodes?: number[];
|
|
7
15
|
}
|
|
8
16
|
export interface SpecChannel {
|
|
9
17
|
name: string;
|
|
18
|
+
/** Human-readable display name (from catalog `name` field) */
|
|
19
|
+
displayName?: string;
|
|
10
20
|
address?: string;
|
|
11
21
|
protocol?: string;
|
|
12
22
|
summary?: string;
|
|
@@ -41,4 +51,9 @@ export interface SpecResolveResult {
|
|
|
41
51
|
* Allows callers to provide their own fetch implementation (browser fetch, node-fetch, etc.)
|
|
42
52
|
*/
|
|
43
53
|
export type FetchFn = (url: string) => Promise<string>;
|
|
54
|
+
/**
|
|
55
|
+
* Check whether a path looks like a catalog directory (not a spec file, not a URL).
|
|
56
|
+
* Browser-safe — no Node.js dependencies.
|
|
57
|
+
*/
|
|
58
|
+
export declare function isCatalogPath(specPath: string): boolean;
|
|
44
59
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/resolvers/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/resolvers/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,UAAU,GACV,SAAS,GACT,UAAU,GACV,UAAU,GACV,YAAY,CAAC;AAEjB,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,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;AAEvD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAKvD"}
|
package/dist/resolvers/types.js
CHANGED
|
@@ -1,2 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Check whether a path looks like a catalog directory (not a spec file, not a URL).
|
|
3
|
+
* Browser-safe — no Node.js dependencies.
|
|
4
|
+
*/
|
|
5
|
+
export function isCatalogPath(specPath) {
|
|
6
|
+
if (specPath.startsWith("http://") || specPath.startsWith("https://"))
|
|
7
|
+
return false;
|
|
8
|
+
if (/\.(?:ya?ml|json)$/i.test(specPath))
|
|
9
|
+
return false;
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
2
12
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/resolvers/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/resolvers/types.ts"],"names":[],"mappings":"AAmEA;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,IAAI,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACtD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eventcatalog/language-server",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
"types": "./dist/index.d.ts",
|
|
10
10
|
"import": "./dist/index.js"
|
|
11
11
|
},
|
|
12
|
+
"./browser": {
|
|
13
|
+
"types": "./dist/browser.d.ts",
|
|
14
|
+
"import": "./dist/browser.js"
|
|
15
|
+
},
|
|
12
16
|
"./language-server": {
|
|
13
17
|
"import": "./dist/main.js"
|
|
14
18
|
}
|
|
@@ -34,7 +38,8 @@
|
|
|
34
38
|
"vscode-languageclient": "^9.0.1",
|
|
35
39
|
"vscode-languageserver": "^9.0.1",
|
|
36
40
|
"vscode-languageserver-textdocument": "^1.0.12",
|
|
37
|
-
"vscode-uri": "^3.0.8"
|
|
41
|
+
"vscode-uri": "^3.0.8",
|
|
42
|
+
"@eventcatalog/sdk": "2.15.1"
|
|
38
43
|
},
|
|
39
44
|
"devDependencies": {
|
|
40
45
|
"@astrojs/starlight": "^0.32.0",
|
|
@@ -11,6 +11,7 @@ channel <id> {
|
|
|
11
11
|
|
|
12
12
|
address "<address-string>"
|
|
13
13
|
protocol "<protocol>"
|
|
14
|
+
deliveryGuarantee at-most-once|at-least-once|exactly-once
|
|
14
15
|
|
|
15
16
|
// Channel parameters
|
|
16
17
|
parameter <name> {
|
|
@@ -29,6 +30,24 @@ channel <id> {
|
|
|
29
30
|
}
|
|
30
31
|
```
|
|
31
32
|
|
|
33
|
+
## Delivery guarantee
|
|
34
|
+
|
|
35
|
+
The `deliveryGuarantee` property declares the message delivery semantics of a channel. The visualiser renders a colored badge on the channel node to make the guarantee visible at a glance.
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
channel OrderEvents {
|
|
39
|
+
version 1.0.0
|
|
40
|
+
protocol "Kafka"
|
|
41
|
+
deliveryGuarantee exactly-once
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
| Value | Meaning |
|
|
46
|
+
| --------------- | ----------------------------------------------------------- |
|
|
47
|
+
| `at-most-once` | Messages may be lost; never delivered more than once |
|
|
48
|
+
| `at-least-once` | Messages are never lost but may be delivered more than once |
|
|
49
|
+
| `exactly-once` | Messages are delivered exactly once with no duplicates |
|
|
50
|
+
|
|
32
51
|
## Channel-to-Channel Routing
|
|
33
52
|
|
|
34
53
|
Channels can route to other channels using the `route` statement. This models message pipelines where data flows through multiple channels (e.g., Kafka topic → Kafka topic → MQTT broker):
|
|
@@ -112,10 +131,11 @@ service OrderService {
|
|
|
112
131
|
```ebnf
|
|
113
132
|
channel_decl = "channel" identifier "{" common_props
|
|
114
133
|
{ channel_body_item } "}" ;
|
|
115
|
-
channel_body_item= address_prop | protocol_prop |
|
|
116
|
-
| route_stmt | annotation ;
|
|
117
|
-
address_prop
|
|
118
|
-
protocol_prop
|
|
134
|
+
channel_body_item= address_prop | protocol_prop | delivery_guarantee_prop
|
|
135
|
+
| parameter_decl | route_stmt | annotation ;
|
|
136
|
+
address_prop = "address" string_lit ;
|
|
137
|
+
protocol_prop = "protocol" string_lit ;
|
|
138
|
+
delivery_guarantee_prop = "deliveryGuarantee" ( "at-most-once" | "at-least-once" | "exactly-once" ) ;
|
|
119
139
|
parameter_decl = "parameter" identifier "{" { param_prop } "}" ;
|
|
120
140
|
param_prop = "description" string_lit
|
|
121
141
|
| "default" string_lit
|
|
@@ -68,6 +68,58 @@ service PaymentService {
|
|
|
68
68
|
}
|
|
69
69
|
```
|
|
70
70
|
|
|
71
|
+
## @api
|
|
72
|
+
|
|
73
|
+
Attaches HTTP API metadata to a message (event, command, or query). Typically generated automatically when importing an OpenAPI spec, but can also be written manually. The visualiser displays the method badge, API path, and response status codes on the node.
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
// Basic usage with method and path
|
|
77
|
+
command CreateOrder {
|
|
78
|
+
version 1.0.0
|
|
79
|
+
summary "Create a new order"
|
|
80
|
+
@api(method: "POST", path: "/orders")
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// With status codes
|
|
84
|
+
query GetOrders {
|
|
85
|
+
version 1.0.0
|
|
86
|
+
summary "List all orders"
|
|
87
|
+
@api(method: "GET", path: "/orders", statusCodes: "200,401")
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// On inline message definitions
|
|
91
|
+
service PaymentService {
|
|
92
|
+
version 2.0.0
|
|
93
|
+
receives command CreatePayment {
|
|
94
|
+
version 2.0.0
|
|
95
|
+
summary "Process a new payment"
|
|
96
|
+
@api(method: "POST", path: "/payments", statusCodes: "201,400,422")
|
|
97
|
+
}
|
|
98
|
+
receives query GetPayment {
|
|
99
|
+
version 2.0.0
|
|
100
|
+
@api(method: "GET", path: "/payments/{paymentId}", statusCodes: "200,404")
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Parameters
|
|
106
|
+
|
|
107
|
+
| Parameter | Type | Description |
|
|
108
|
+
| ------------- | ------ | -------------------------------------------------------- |
|
|
109
|
+
| `method` | string | HTTP method (GET, POST, PUT, PATCH, DELETE) |
|
|
110
|
+
| `path` | string | API path (e.g. `/orders`, `/users/{id}`) |
|
|
111
|
+
| `statusCodes` | string | Comma-separated HTTP status codes (e.g. `"200,401,500"`) |
|
|
112
|
+
|
|
113
|
+
### Auto-generated from OpenAPI
|
|
114
|
+
|
|
115
|
+
When importing an OpenAPI spec, `@api` annotations are automatically added to the generated `.ec` definitions:
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
import PaymentService from "./payments-openapi.yml"
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
This generates commands and queries with `@api` annotations populated from the OpenAPI paths, methods, and response codes.
|
|
122
|
+
|
|
71
123
|
## @detailsPanel
|
|
72
124
|
|
|
73
125
|
Controls visibility of detail panel sections:
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
},
|
|
11
11
|
{
|
|
12
12
|
"name": "keyword.control.ec",
|
|
13
|
-
"match": "\\b(access-mode|actor|address|and|animated|appendOnly|authoritative|avatar|cache|channel|channels|classification|color|command|commands|confidential|container|container-type|contract|data-product|dataLake|dataWarehouse|database|default|delivery|deprecated|description|diagram|domain|draft|email|enum|event|events|examples|external-system|externalSaaS|false|flow|focus-mode|from|hidden|icon|import|input|internal|label|legend|member|message|ms-teams|name|objectStore|other|output|owner|parameter|path|post-it|protocol|public|pull|push|push-pull|queries|query|read|readWrite|reads-from|receives|regulated|residency|retention|role|route|schema|search|searchIndex|sends|service|slack|style|subdomain|summary|team|technology|title|to|toolbar|true|type|url|user|version|visible|visualizer|when|write|writes-to)\\b"
|
|
13
|
+
"match": "\\b(access-mode|actor|address|and|animated|appendOnly|authoritative|avatar|cache|channel|channels|classification|color|command|commands|confidential|container|container-type|containers|contract|data-product|dataLake|dataWarehouse|database|default|delivery|deprecated|description|diagram|domain|draft|email|enum|event|events|examples|external-system|externalSaaS|false|flow|focus-mode|from|hidden|icon|import|input|internal|label|legend|member|message|ms-teams|name|objectStore|other|output|owner|parameter|path|post-it|protocol|public|pull|push|push-pull|queries|query|read|readWrite|reads-from|receives|regulated|residency|retention|role|route|schema|search|searchIndex|sends|service|services|slack|style|subdomain|summary|team|technology|title|to|toolbar|true|type|url|user|version|visible|visualizer|when|write|writes-to)\\b"
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
16
|
"name": "string.quoted.double.ec",
|