@eventcatalog/language-server 0.2.1 → 0.2.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.
@@ -3,5 +3,8 @@ export interface CompiledOutput {
3
3
  path: string;
4
4
  content: string;
5
5
  }
6
- export declare function compile(program: Program): CompiledOutput[];
6
+ export interface CompileOptions {
7
+ nested?: boolean;
8
+ }
9
+ export declare function compile(program: Program, options?: CompileOptions): CompiledOutput[];
7
10
  //# sourceMappingURL=compiler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,OAAO,EAuBR,MAAM,oBAAoB,CAAC;AA0E5B,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc,EAAE,CAM1D"}
1
+ {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,OAAO,EAuBR,MAAM,oBAAoB,CAAC;AA0E5B,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,OAAO,CACrB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,cAAc,GACvB,cAAc,EAAE,CAOlB"}
package/dist/compiler.js CHANGED
@@ -1,29 +1,30 @@
1
- import { isDomainDef, isServiceDef, isEventDef, isCommandDef, isQueryDef, isChannelDef, isContainerDef, isDataProductDef, isFlowDef, isDiagramDef, isUserDef, isTeamDef, isVisualizerDef, isNamedAnnotationArg, isPositionalAnnotationArg, isKeyValueAnnotationBlockItem, isParameterDescriptionProp, isParameterDefaultProp, isParameterEnumProp, isParameterExamplesProp, isStringAnnotationValue, isIdAnnotationValue, isNumberAnnotationValue, isBoolAnnotationValue, isVersionAnnotationValue, isKeywordAnnotationValue, } from "./generated/ast.js";
1
+ import { isDomainDef, isServiceDef, isEventDef, isCommandDef, isQueryDef, isChannelDef, isContainerDef, isDataProductDef, isFlowDef, isDiagramDef, isUserDef, isTeamDef, isVisualizerDef, isNamedAnnotationArg, isPositionalAnnotationArg, isKeyValueAnnotationBlockItem, isParameterDescriptionProp, isParameterDefaultProp, isParameterEnumProp, isParameterExamplesProp, isToClause, isFromClause, isStringAnnotationValue, isIdAnnotationValue, isNumberAnnotationValue, isBoolAnnotationValue, isVersionAnnotationValue, isKeywordAnnotationValue, } from "./generated/ast.js";
2
2
  import { stripQuotes, getVersion, getName, getSummary, getOwners, getDeprecated, getDraft, getSchema, getServices, getSubdomains, getSends, getReceives, getAnnotations, getAddress, getProtocols, getParameters, getContainerType, getTechnology, getAuthoritative, getAccessMode, getClassification, getResidency, getRetention, getInputs, getOutputs, getFlowEntryChains, getFlowWhenBlocks, } from "./ast-utils.js";
3
- export function compile(program) {
3
+ export function compile(program, options) {
4
+ const nested = options?.nested ?? false;
4
5
  const outputs = [];
5
6
  for (const def of program.definitions) {
6
- compileDefinition(def, outputs);
7
+ compileDefinition(def, outputs, nested, "");
7
8
  }
8
9
  return outputs;
9
10
  }
10
- function compileDefinition(def, outputs) {
11
+ function compileDefinition(def, outputs, nested, parentPath) {
11
12
  if (isDomainDef(def))
12
- compileDomain(def, outputs);
13
+ compileDomain(def, outputs, nested);
13
14
  else if (isServiceDef(def)) {
14
- compileService(def, outputs);
15
- compileInlineMessages(def, outputs);
15
+ compileService(def, outputs, nested, parentPath);
16
+ compileInlineMessages(def, outputs, nested, parentPath);
16
17
  }
17
18
  else if (isEventDef(def))
18
- compileMessage(def, "events", outputs);
19
+ compileMessage(def, "events", outputs, nested, parentPath);
19
20
  else if (isCommandDef(def))
20
- compileMessage(def, "commands", outputs);
21
+ compileMessage(def, "commands", outputs, nested, parentPath);
21
22
  else if (isQueryDef(def))
22
- compileMessage(def, "queries", outputs);
23
+ compileMessage(def, "queries", outputs, nested, parentPath);
23
24
  else if (isChannelDef(def))
24
- compileChannel(def, outputs);
25
+ compileChannel(def, outputs, nested, parentPath);
25
26
  else if (isContainerDef(def))
26
- compileContainer(def, outputs);
27
+ compileContainer(def, outputs, nested, parentPath);
27
28
  else if (isDataProductDef(def))
28
29
  compileDataProduct(def, outputs);
29
30
  else if (isFlowDef(def))
@@ -35,7 +36,7 @@ function compileDefinition(def, outputs) {
35
36
  else if (isTeamDef(def))
36
37
  compileTeam(def, outputs);
37
38
  else if (isVisualizerDef(def))
38
- compileVisualizer(def, outputs);
39
+ compileVisualizer(def, outputs, nested);
39
40
  // ActorDef and ExternalSystemDef are flow-only — no markdown output
40
41
  }
41
42
  // --- YAML helpers ---
@@ -280,10 +281,15 @@ function commonFrontmatter(id, body) {
280
281
  Object.assign(fm, annFields);
281
282
  return fm;
282
283
  }
283
- function makeOutput(path, fm, body) {
284
+ function withSummary(fm, body) {
285
+ const summary = getSummary(body);
286
+ if (summary)
287
+ fm.summary = summary;
288
+ return fm;
289
+ }
290
+ function makeOutput(path, fm) {
284
291
  const frontmatter = buildFrontmatter(fm);
285
- const content = body ? `${frontmatter}\n${body}\n` : `${frontmatter}\n`;
286
- return { path, content };
292
+ return { path, content: `${frontmatter}\n` };
287
293
  }
288
294
  // Build a versioned output path: "<folder>/<name>/versioned/<version>/index.md"
289
295
  // Falls back to "<folder>/<name>/index.md" when no version is present.
@@ -294,27 +300,71 @@ function versionedPath(folder, name, body) {
294
300
  return `${folder}/${name}/index.md`;
295
301
  }
296
302
  // --- Resource compilers ---
297
- function compileDomain(domain, outputs) {
303
+ function compileDomain(domain, outputs, nested) {
298
304
  const body = domain.body;
299
- const fm = commonFrontmatter(domain.name, body);
300
- const summary = getSummary(body);
301
- outputs.push(makeOutput(versionedPath("domains", domain.name, body), fm, summary));
302
- for (const svc of getServices(body)) {
303
- compileService(svc, outputs);
304
- compileInlineMessages(svc, outputs);
305
+ const fm = withSummary(commonFrontmatter(domain.name, body), body);
306
+ // Add services pointers
307
+ const services = getServices(body);
308
+ if (services.length > 0) {
309
+ fm.services = services.map((svc) => {
310
+ const ref = { id: svc.name };
311
+ const v = getVersion(svc.body);
312
+ if (v)
313
+ ref.version = v;
314
+ return ref;
315
+ });
316
+ }
317
+ // Add subdomain pointers (listed as "domains" in frontmatter)
318
+ const subdomains = getSubdomains(body);
319
+ if (subdomains.length > 0) {
320
+ fm.domains = subdomains.map((sub) => {
321
+ const ref = { id: sub.name };
322
+ const v = getVersion(sub.body);
323
+ if (v)
324
+ ref.version = v;
325
+ return ref;
326
+ });
327
+ }
328
+ outputs.push(makeOutput(versionedPath("domains", domain.name, body), fm));
329
+ const domainPath = nested ? `domains/${domain.name}` : "";
330
+ for (const svc of services) {
331
+ compileService(svc, outputs, nested, domainPath);
332
+ compileInlineMessages(svc, outputs, nested, domainPath);
333
+ }
334
+ for (const ch of body.filter((n) => isChannelDef(n))) {
335
+ compileChannel(ch, outputs, nested, domainPath);
305
336
  }
306
- for (const sub of getSubdomains(body)) {
337
+ for (const cont of body.filter((n) => isContainerDef(n))) {
338
+ compileContainer(cont, outputs, nested, domainPath);
339
+ }
340
+ for (const sub of subdomains) {
307
341
  const subBody = sub.body;
308
- const subFm = commonFrontmatter(sub.name, subBody);
309
- const subSummary = getSummary(subBody);
310
- outputs.push(makeOutput(versionedPath(`domains/${domain.name}/domains`, sub.name, subBody), subFm, subSummary));
311
- for (const svc of getServices(subBody)) {
312
- compileService(svc, outputs);
313
- compileInlineMessages(svc, outputs);
342
+ const subFm = withSummary(commonFrontmatter(sub.name, subBody), subBody);
343
+ // Add services pointers to subdomain
344
+ const subServices = getServices(subBody);
345
+ if (subServices.length > 0) {
346
+ subFm.services = subServices.map((svc) => {
347
+ const ref = { id: svc.name };
348
+ const v = getVersion(svc.body);
349
+ if (v)
350
+ ref.version = v;
351
+ return ref;
352
+ });
353
+ }
354
+ const subdomainFolder = nested
355
+ ? `domains/${domain.name}/subdomains`
356
+ : `domains/${domain.name}/domains`;
357
+ outputs.push(makeOutput(versionedPath(subdomainFolder, sub.name, subBody), subFm));
358
+ const subdomainPath = nested
359
+ ? `domains/${domain.name}/subdomains/${sub.name}`
360
+ : "";
361
+ for (const svc of subServices) {
362
+ compileService(svc, outputs, nested, subdomainPath);
363
+ compileInlineMessages(svc, outputs, nested, subdomainPath);
314
364
  }
315
365
  }
316
366
  }
317
- function compileService(svc, outputs) {
367
+ function compileService(svc, outputs, nested, parentPath) {
318
368
  const body = svc.body;
319
369
  const fm = commonFrontmatter(svc.name, body);
320
370
  const sends = getSends(body);
@@ -325,7 +375,9 @@ function compileService(svc, outputs) {
325
375
  if (receives.length > 0) {
326
376
  fm.receives = receives.map((r) => buildMessageRef(r));
327
377
  }
328
- outputs.push(makeOutput(versionedPath("services", svc.name, body), fm, getSummary(body)));
378
+ withSummary(fm, body);
379
+ const folder = nested && parentPath ? `${parentPath}/services` : "services";
380
+ outputs.push(makeOutput(versionedPath(folder, svc.name, body), fm));
329
381
  }
330
382
  function buildMessageRef(clause) {
331
383
  const ref = { id: clause.messageName };
@@ -337,31 +389,60 @@ function buildMessageRef(clause) {
337
389
  if (inlineVersion)
338
390
  ref.version = inlineVersion;
339
391
  }
392
+ // Add channel routing (to/from) when present
393
+ if (clause.channelClause) {
394
+ const cc = clause.channelClause;
395
+ const channelRefs = cc.channels.map((ch) => {
396
+ const entry = { id: ch.channelName };
397
+ if (ch.channelVersion)
398
+ entry.version = ch.channelVersion;
399
+ return entry;
400
+ });
401
+ if (cc.deliveryMode) {
402
+ for (const entry of channelRefs) {
403
+ entry.delivery_mode = cc.deliveryMode;
404
+ }
405
+ }
406
+ if (isToClause(cc)) {
407
+ ref.to = channelRefs;
408
+ }
409
+ else if (isFromClause(cc)) {
410
+ ref.from = channelRefs;
411
+ }
412
+ }
340
413
  return ref;
341
414
  }
342
- function compileInlineMessages(svc, outputs) {
415
+ function compileInlineMessages(svc, outputs, nested, parentPath) {
343
416
  const body = svc.body;
417
+ // Compute the service path to nest messages under
418
+ const servicePath = nested && parentPath
419
+ ? `${parentPath}/services/${svc.name}`
420
+ : nested
421
+ ? `services/${svc.name}`
422
+ : "";
344
423
  const allClauses = [...getSends(body), ...getReceives(body)];
345
424
  for (const clause of allClauses) {
346
425
  if (clause.body.length > 0) {
347
426
  const inlineBody = clause.body;
348
427
  const msgType = clause.messageType;
349
- const folder = msgType === "event"
428
+ const msgFolder = msgType === "event"
350
429
  ? "events"
351
430
  : msgType === "command"
352
431
  ? "commands"
353
432
  : "queries";
354
- const fm = commonFrontmatter(clause.messageName, inlineBody);
355
- outputs.push(makeOutput(versionedPath(folder, clause.messageName, inlineBody), fm, getSummary(inlineBody)));
433
+ const folder = nested && servicePath ? `${servicePath}/${msgFolder}` : msgFolder;
434
+ const fm = withSummary(commonFrontmatter(clause.messageName, inlineBody), inlineBody);
435
+ outputs.push(makeOutput(versionedPath(folder, clause.messageName, inlineBody), fm));
356
436
  }
357
437
  }
358
438
  }
359
- function compileMessage(msg, folder, outputs) {
439
+ function compileMessage(msg, folder, outputs, nested, parentPath) {
360
440
  const body = msg.body;
361
- const fm = commonFrontmatter(msg.name, body);
362
- outputs.push(makeOutput(versionedPath(folder, msg.name, body), fm, getSummary(body)));
441
+ const fm = withSummary(commonFrontmatter(msg.name, body), body);
442
+ const resolvedFolder = nested && parentPath ? `${parentPath}/${folder}` : folder;
443
+ outputs.push(makeOutput(versionedPath(resolvedFolder, msg.name, body), fm));
363
444
  }
364
- function compileChannel(ch, outputs) {
445
+ function compileChannel(ch, outputs, nested = false, parentPath = "") {
365
446
  const body = ch.body;
366
447
  const fm = commonFrontmatter(ch.name, body);
367
448
  const address = getAddress(body);
@@ -387,9 +468,11 @@ function compileChannel(ch, outputs) {
387
468
  return param;
388
469
  });
389
470
  }
390
- outputs.push(makeOutput(versionedPath("channels", ch.name, body), fm, getSummary(body)));
471
+ withSummary(fm, body);
472
+ const folder = nested && parentPath ? `${parentPath}/channels` : "channels";
473
+ outputs.push(makeOutput(versionedPath(folder, ch.name, body), fm));
391
474
  }
392
- function compileContainer(cont, outputs) {
475
+ function compileContainer(cont, outputs, nested = false, parentPath = "") {
393
476
  const body = cont.body;
394
477
  const fm = commonFrontmatter(cont.name, body);
395
478
  const ct = getContainerType(body);
@@ -413,7 +496,9 @@ function compileContainer(cont, outputs) {
413
496
  const ret = getRetention(body);
414
497
  if (ret)
415
498
  fm.retention = ret;
416
- outputs.push(makeOutput(versionedPath("containers", cont.name, body), fm, getSummary(body)));
499
+ withSummary(fm, body);
500
+ const folder = nested && parentPath ? `${parentPath}/containers` : "containers";
501
+ outputs.push(makeOutput(versionedPath(folder, cont.name, body), fm));
417
502
  }
418
503
  function compileDataProduct(dp, outputs) {
419
504
  const body = dp.body;
@@ -441,7 +526,8 @@ function compileDataProduct(dp, outputs) {
441
526
  return o;
442
527
  });
443
528
  }
444
- outputs.push(makeOutput(versionedPath("data-products", dp.name, body), fm, getSummary(body)));
529
+ withSummary(fm, body);
530
+ outputs.push(makeOutput(versionedPath("data-products", dp.name, body), fm));
445
531
  }
446
532
  function compileFlow(flow, outputs) {
447
533
  const body = flow.body;
@@ -454,7 +540,8 @@ function compileFlow(flow, outputs) {
454
540
  fm.steps = steps;
455
541
  }
456
542
  }
457
- outputs.push(makeOutput(versionedPath("flows", flow.name, body), fm, getSummary(body)));
543
+ withSummary(fm, body);
544
+ outputs.push(makeOutput(versionedPath("flows", flow.name, body), fm));
458
545
  }
459
546
  function flowRefToStep(ref) {
460
547
  return {
@@ -532,8 +619,8 @@ function compileFlowBody(entryChains, whenBlocks) {
532
619
  }
533
620
  function compileDiagram(diag, outputs) {
534
621
  const body = diag.body;
535
- const fm = commonFrontmatter(diag.name, body);
536
- outputs.push(makeOutput(versionedPath("diagrams", diag.name, body), fm, getSummary(body)));
622
+ const fm = withSummary(commonFrontmatter(diag.name, body), body);
623
+ outputs.push(makeOutput(versionedPath("diagrams", diag.name, body), fm));
537
624
  }
538
625
  function compileUser(user, outputs) {
539
626
  const fm = {
@@ -614,39 +701,39 @@ function compileTeam(team, outputs) {
614
701
  fm.members = members;
615
702
  const annFields = mapAnnotations(annotations);
616
703
  Object.assign(fm, annFields);
617
- outputs.push(makeOutput(`teams/${team.name}.md`, fm, summary));
704
+ outputs.push(makeOutput(`teams/${team.name}.md`, fm));
618
705
  }
619
- function compileVisualizer(viz, outputs) {
706
+ function compileVisualizer(viz, outputs, nested) {
620
707
  // Visualizer wrapper does NOT produce its own markdown.
621
708
  // Inline definitions inside it compile normally.
622
709
  for (const item of viz.body) {
623
710
  if (isDomainDef(item)) {
624
- compileDomain(item, outputs);
711
+ compileDomain(item, outputs, nested);
625
712
  continue;
626
713
  }
627
714
  if (isServiceDef(item)) {
628
- compileService(item, outputs);
629
- compileInlineMessages(item, outputs);
715
+ compileService(item, outputs, nested, "");
716
+ compileInlineMessages(item, outputs, nested, "");
630
717
  continue;
631
718
  }
632
719
  if (isEventDef(item) && item.body.length > 0) {
633
- compileMessage(item, "events", outputs);
720
+ compileMessage(item, "events", outputs, nested, "");
634
721
  continue;
635
722
  }
636
723
  if (isCommandDef(item) && item.body.length > 0) {
637
- compileMessage(item, "commands", outputs);
724
+ compileMessage(item, "commands", outputs, nested, "");
638
725
  continue;
639
726
  }
640
727
  if (isQueryDef(item) && item.body.length > 0) {
641
- compileMessage(item, "queries", outputs);
728
+ compileMessage(item, "queries", outputs, nested, "");
642
729
  continue;
643
730
  }
644
731
  if (isChannelDef(item)) {
645
- compileChannel(item, outputs);
732
+ compileChannel(item, outputs, nested, "");
646
733
  continue;
647
734
  }
648
735
  if (isContainerDef(item)) {
649
- compileContainer(item, outputs);
736
+ compileContainer(item, outputs, nested, "");
650
737
  continue;
651
738
  }
652
739
  if (isDataProductDef(item)) {
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@ export * from "./generated/ast.js";
6
6
  export { astToGraph } from "./graph.js";
7
7
  export type { GraphNode, GraphEdge, DslGraph } from "./graph-types.js";
8
8
  export { compile } from "./compiler.js";
9
- export type { CompiledOutput } from "./compiler.js";
9
+ export type { CompiledOutput, CompileOptions } from "./compiler.js";
10
10
  export * from "./ast-utils.js";
11
11
  export { formatEc } from "./formatter.js";
12
12
  //# sourceMappingURL=index.d.ts.map
@@ -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,MAAM,eAAe,CAAC;AACpD,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eventcatalog/language-server",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",