@nielspeter/eess-mermaid 0.3.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/cli/commands/check.d.ts.map +1 -1
  2. package/dist/cli/commands/check.js +150 -15
  3. package/dist/cli/commands/check.js.map +1 -1
  4. package/dist/cli/commands/explain.d.ts.map +1 -1
  5. package/dist/cli/commands/explain.js +7 -1
  6. package/dist/cli/commands/explain.js.map +1 -1
  7. package/dist/cli/import-config.d.ts +25 -0
  8. package/dist/cli/import-config.d.ts.map +1 -0
  9. package/dist/cli/import-config.js +40 -0
  10. package/dist/cli/import-config.js.map +1 -0
  11. package/dist/cli/index.d.ts.map +1 -1
  12. package/dist/cli/index.js +3 -9
  13. package/dist/cli/index.js.map +1 -1
  14. package/dist/cli/load-rules.d.ts +24 -5
  15. package/dist/cli/load-rules.d.ts.map +1 -1
  16. package/dist/cli/load-rules.js +39 -9
  17. package/dist/cli/load-rules.js.map +1 -1
  18. package/dist/cli/resolve-config.d.ts.map +1 -1
  19. package/dist/cli/resolve-config.js +12 -38
  20. package/dist/cli/resolve-config.js.map +1 -1
  21. package/dist/cli/watch.d.ts +8 -0
  22. package/dist/cli/watch.d.ts.map +1 -1
  23. package/dist/cli/watch.js +3 -110
  24. package/dist/cli/watch.js.map +1 -1
  25. package/dist/conditions/class.d.ts.map +1 -1
  26. package/dist/conditions/class.js +26 -33
  27. package/dist/conditions/class.js.map +1 -1
  28. package/dist/core/index.d.ts +3 -1
  29. package/dist/core/index.d.ts.map +1 -1
  30. package/dist/core/index.js +7 -1
  31. package/dist/core/index.js.map +1 -1
  32. package/dist/index.d.ts +2 -2
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +10 -3
  35. package/dist/index.js.map +1 -1
  36. package/dist/parser/langium-services.d.ts +18 -0
  37. package/dist/parser/langium-services.d.ts.map +1 -0
  38. package/dist/parser/langium-services.js +14 -0
  39. package/dist/parser/langium-services.js.map +1 -0
  40. package/dist/parser/parse-class-diagram.d.ts +2 -4
  41. package/dist/parser/parse-class-diagram.d.ts.map +1 -1
  42. package/dist/parser/parse-class-diagram.js +8 -30
  43. package/dist/parser/parse-class-diagram.js.map +1 -1
  44. package/dist/parser/parse-er-diagram.d.ts.map +1 -1
  45. package/dist/parser/parse-er-diagram.js +3 -23
  46. package/dist/parser/parse-er-diagram.js.map +1 -1
  47. package/dist/parser/parse-with-grammar.d.ts +22 -0
  48. package/dist/parser/parse-with-grammar.d.ts.map +1 -0
  49. package/dist/parser/parse-with-grammar.js +37 -0
  50. package/dist/parser/parse-with-grammar.js.map +1 -0
  51. package/package.json +3 -2
package/dist/cli/watch.js CHANGED
@@ -1,114 +1,7 @@
1
- import { watch } from 'node:fs/promises';
2
- import path from 'node:path';
3
- import { ArchRuleError } from '@nielspeter/eess';
1
+ import { watchAndRerun as watchAndRerunShared } from '@nielspeter/eess/internal';
2
+ /** Diagrams and the rule files that read them. */
4
3
  const WATCHED_FILE_RE = /\.(mmd|[cm]?tsx?|[cm]?jsx?)$/;
5
- class RunScheduler {
6
- debounceTimer;
7
- running = false;
8
- _pendingRerun = false;
9
- debounceMs;
10
- onRun;
11
- #runCount = 0;
12
- constructor(onRun, debounceMs = 250) {
13
- this.onRun = onRun;
14
- this.debounceMs = debounceMs;
15
- }
16
- get runCount() {
17
- return this.#runCount;
18
- }
19
- get pendingRerun() {
20
- return this._pendingRerun;
21
- }
22
- get isRunning() {
23
- return this.running;
24
- }
25
- /** Debounce a change on `trigger`, coalescing bursts into a single re-run. */
26
- schedule(trigger) {
27
- if (this.debounceTimer)
28
- clearTimeout(this.debounceTimer);
29
- this.debounceTimer = setTimeout(() => {
30
- if (this.running) {
31
- this._pendingRerun = true;
32
- return;
33
- }
34
- this.executeRun(trigger);
35
- }, this.debounceMs);
36
- }
37
- executeRun(trigger) {
38
- this.running = true;
39
- this._pendingRerun = false;
40
- this.#runCount++;
41
- process.stdout.write('\x1B[2J\x1B[H');
42
- process.stdout.write(`Change detected: ${trigger}\n\n`);
43
- this.onRun(trigger)
44
- .catch((err) => {
45
- if (!(err instanceof ArchRuleError)) {
46
- if (err instanceof Error) {
47
- console.error(err.message);
48
- }
49
- }
50
- })
51
- .finally(() => {
52
- this.running = false;
53
- if (this._pendingRerun) {
54
- this.executeRun('(queued change)');
55
- }
56
- else {
57
- process.stdout.write('\nWatching for changes...\n');
58
- }
59
- });
60
- }
61
- }
62
4
  export function watchAndRerun(options) {
63
- const { watchDirs, watchFiles, onChangeDetected, debounceMs = 250 } = options;
64
- const scheduler = new RunScheduler(onChangeDetected, debounceMs);
65
- const watchers = [];
66
- for (const dir of watchDirs) {
67
- const resolved = path.resolve(dir);
68
- const watcher = watch(resolved, { recursive: true });
69
- watchers.push(watcher);
70
- void (async () => {
71
- try {
72
- for await (const event of watcher) {
73
- if (event.filename && WATCHED_FILE_RE.test(event.filename)) {
74
- scheduler.schedule(event.filename);
75
- }
76
- }
77
- }
78
- catch (err) {
79
- if (err instanceof Error && err.message !== 'The operation was aborted') {
80
- console.error(`Watcher error on ${dir}: ${err.message}`);
81
- }
82
- }
83
- })();
84
- }
85
- for (const file of watchFiles) {
86
- const resolved = path.resolve(file);
87
- const watcher = watch(resolved);
88
- watchers.push(watcher);
89
- void (async () => {
90
- try {
91
- // eslint-disable-next-line @typescript-eslint/no-unused-vars -- must consume async iterator
92
- for await (const _event of watcher) {
93
- scheduler.schedule(path.basename(file));
94
- }
95
- }
96
- catch (err) {
97
- if (err instanceof Error && err.message !== 'The operation was aborted') {
98
- console.error(`Watcher error on ${file}: ${err.message}`);
99
- }
100
- }
101
- })();
102
- }
103
- process.on('SIGINT', () => {
104
- for (const w of watchers) {
105
- if ('return' in w && typeof w.return === 'function') {
106
- // AsyncIterable's optional return() is untyped; invoke via Function.prototype.call
107
- // (yields `any`) and discard the settle-promise — best-effort watcher shutdown.
108
- void w.return.call(w);
109
- }
110
- }
111
- process.exit(0);
112
- });
5
+ watchAndRerunShared({ ...options, watchedFileRe: WATCHED_FILE_RE });
113
6
  }
114
7
  //# sourceMappingURL=watch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/cli/watch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/cli/watch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAiBhF,kDAAkD;AAClD,MAAM,eAAe,GAAG,8BAA8B,CAAA;AAEtD,MAAM,UAAU,aAAa,CAAC,OAAqB;IACjD,mBAAmB,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC,CAAA;AACrE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"class.d.ts","sourceRoot":"","sources":["../../src/conditions/class.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAoB,MAAM,kBAAkB,CAAA;AAInE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAkCxD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAsCtE;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAqBnE;AAED,wBAAgB,QAAQ,IAAI,SAAS,CAAC,SAAS,CAAC,CAO/C;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAWjE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CASpE;AAQD,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CASjE;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CASpE;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAiC9E"}
1
+ {"version":3,"file":"class.d.ts","sourceRoot":"","sources":["../../src/conditions/class.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAoB,MAAM,kBAAkB,CAAA;AAInE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAkCxD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAsCtE;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAqBnE;AA6BD,wBAAgB,QAAQ,IAAI,SAAS,CAAC,SAAS,CAAC,CAO/C;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAMjE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAMpE;AAQD,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAMjE;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAMpE;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAiC9E"}
@@ -1,4 +1,4 @@
1
- import { marksAssertsCardinality } from '@nielspeter/eess';
1
+ import { marksAssertsCardinality } from '@nielspeter/eess/internal';
2
2
  import { createViolation } from '../core/violation.js';
3
3
  import { collectRelationships, getClassLine } from '../models/arch-class.js';
4
4
  const INHERITANCE_ARROWS = new Set(['<|--', '<|..', '--|>', '..|>']);
@@ -78,6 +78,27 @@ export function extendClass(superName) {
78
78
  },
79
79
  };
80
80
  }
81
+ /**
82
+ * A class-level condition: one violation per class that fails the test.
83
+ *
84
+ * `haveStereotype`, `notHaveStereotype`, `dependOn` and `notDependOn` were
85
+ * four literal copies of `filter().map(classViolation)` — `no-copy-paste`
86
+ * reported them as identical text.
87
+ *
88
+ * Each pair stays TWO exported conditions rather than one plus `not()`.
89
+ * `not()` composes predicates, which answer a boolean; a condition owns its
90
+ * violation MESSAGE, and "is missing required stereotype" does not invert into
91
+ * "has forbidden stereotype" mechanically — only the author can write the
92
+ * other sentence. A generic negation would emit a remedy pointing the reader
93
+ * at the wrong change, which is what ADR-009 rule 2 forbids. So the loop is
94
+ * shared and the sentence is not.
95
+ */
96
+ function classCondition(description, violatesWhen, message) {
97
+ return {
98
+ description,
99
+ evaluate: (elements, context) => elements.filter(violatesWhen).map((c) => classViolation(c, message(c), context)),
100
+ };
101
+ }
81
102
  export function notExist() {
82
103
  return marksAssertsCardinality({
83
104
  description: 'not exist',
@@ -87,24 +108,10 @@ export function notExist() {
87
108
  });
88
109
  }
89
110
  export function haveStereotype(name) {
90
- return {
91
- description: `have stereotype <<${name}>>`,
92
- evaluate(elements, context) {
93
- return elements
94
- .filter((c) => !c.stereotypes.includes(name))
95
- .map((c) => classViolation(c, `${c.name} is missing required stereotype <<${name}>>`, context));
96
- },
97
- };
111
+ return classCondition(`have stereotype <<${name}>>`, (c) => !c.stereotypes.includes(name), (c) => `${c.name} is missing required stereotype <<${name}>>`);
98
112
  }
99
113
  export function notHaveStereotype(name) {
100
- return {
101
- description: `not have stereotype <<${name}>>`,
102
- evaluate(elements, context) {
103
- return elements
104
- .filter((c) => c.stereotypes.includes(name))
105
- .map((c) => classViolation(c, `${c.name} has forbidden stereotype <<${name}>>`, context));
106
- },
107
- };
114
+ return classCondition(`not have stereotype <<${name}>>`, (c) => c.stereotypes.includes(name), (c) => `${c.name} has forbidden stereotype <<${name}>>`);
108
115
  }
109
116
  function dependenciesOf(c) {
110
117
  return collectRelationships(c.project)
@@ -112,24 +119,10 @@ function dependenciesOf(c) {
112
119
  .map((r) => r.target);
113
120
  }
114
121
  export function dependOn(targetName) {
115
- return {
116
- description: `depend on ${targetName}`,
117
- evaluate(elements, context) {
118
- return elements
119
- .filter((c) => !dependenciesOf(c).includes(targetName))
120
- .map((c) => classViolation(c, `${c.name} does not depend on ${targetName}`, context));
121
- },
122
- };
122
+ return classCondition(`depend on ${targetName}`, (c) => !dependenciesOf(c).includes(targetName), (c) => `${c.name} does not depend on ${targetName}`);
123
123
  }
124
124
  export function notDependOn(targetName) {
125
- return {
126
- description: `not depend on ${targetName}`,
127
- evaluate(elements, context) {
128
- return elements
129
- .filter((c) => dependenciesOf(c).includes(targetName))
130
- .map((c) => classViolation(c, `${c.name} depends on ${targetName}`, context));
131
- },
132
- };
125
+ return classCondition(`not depend on ${targetName}`, (c) => dependenciesOf(c).includes(targetName), (c) => `${c.name} depends on ${targetName}`);
133
126
  }
134
127
  export function notDependOnStereotype(stereotype) {
135
128
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"class.js","sourceRoot":"","sources":["../../src/conditions/class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"class.js","sourceRoot":"","sources":["../../src/conditions/class.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAE5E,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAEpE,SAAS,cAAc,CAAC,CAAY,EAAE,OAAe,EAAE,GAAqB;IAC1E,OAAO,eAAe,CACpB;QACE,OAAO,EAAE,CAAC,CAAC,IAAI;QACf,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,UAAU;QACtC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;QACzB,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM;KAC7B,EACD,OAAO,EACP,GAAG,CACJ,CAAA;AACH,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AACtC,CAAC;AAED,SAAS,eAAe,CACtB,KAAa,EACb,MAAc,EACd,MAAc;IAEd,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAC7C,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACzC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAA;IACrC,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO;QACL,WAAW,EAAE,wCAAwC,IAAI,IAAI;QAC7D,QAAQ,CAAC,QAAqB,EAAE,OAAyB;YACvD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;YACzB,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,EAAE,CAAA;YAClC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;YAC7B,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC5B,MAAM,WAAW,GAAa,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;gBAC9D,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;oBAClD,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI;wBAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;gBACzE,CAAC;gBACD,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAU,CAAA;YACvC,CAAC,CAAC,CACH,CAAA;YAED,MAAM,UAAU,GAAoB,EAAE,CAAA;YACtC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,KAAK,MAAM,CAAC,IAAI,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC9C,MAAM,GAAG,GAAG,eAAe,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;oBACxD,IAAI,CAAC,GAAG;wBAAE,SAAQ;oBAClB,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI;wBAAE,SAAQ;oBAChC,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;oBACpD,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBAClC,UAAU,CAAC,IAAI,CACb,cAAc,CACZ,CAAC,EACD,GAAG,CAAC,CAAC,IAAI,YAAY,GAAG,CAAC,GAAG,2BAA2B,IAAI,IAAI,EAC/D,OAAO,CACR,CACF,CAAA;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,UAAU,CAAA;QACnB,CAAC;KACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,SAAiB;IAC3C,OAAO;QACL,WAAW,EAAE,UAAU,SAAS,EAAE;QAClC,QAAQ,CAAC,QAAqB,EAAE,OAAyB;YACvD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;YACzB,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,EAAE,CAAA;YAClC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;YAC7B,MAAM,UAAU,GAAoB,EAAE,CAAA;YACtC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,MAAM,QAAQ,GAAG,oBAAoB,CAAC,OAAO,CAAC;qBAC3C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;qBACxD,MAAM,CAAC,CAAC,GAAG,EAAuC,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC;qBACvE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC;qBACnC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBACxB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBAClC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,oBAAoB,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;gBACvF,CAAC;YACH,CAAC;YACD,OAAO,UAAU,CAAA;QACnB,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,cAAc,CACrB,WAAmB,EACnB,YAAuC,EACvC,OAAiC;IAEjC,OAAO;QACL,WAAW;QACX,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAC9B,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;KACnF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,uBAAuB,CAAC;QAC7B,WAAW,EAAE,WAAW;QACxB,QAAQ,CAAC,QAAqB,EAAE,OAAyB;YACvD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,mBAAmB,EAAE,OAAO,CAAC,CAAC,CAAA;QAC5F,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,cAAc,CACnB,qBAAqB,IAAI,IAAI,EAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EACpC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,qCAAqC,IAAI,IAAI,CAC9D,CAAA;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,cAAc,CACnB,yBAAyB,IAAI,IAAI,EACjC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EACnC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,+BAA+B,IAAI,IAAI,CACxD,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CAAC,CAAY;IAClC,OAAO,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC;SACnC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SACtE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,UAAkB;IACzC,OAAO,cAAc,CACnB,aAAa,UAAU,EAAE,EACzB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAC9C,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,uBAAuB,UAAU,EAAE,CACpD,CAAA;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,UAAkB;IAC5C,OAAO,cAAc,CACnB,iBAAiB,UAAU,EAAE,EAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,eAAe,UAAU,EAAE,CAC5C,CAAA;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAAkB;IACtD,OAAO;QACL,WAAW,EAAE,2CAA2C,UAAU,IAAI;QACtE,QAAQ,CAAC,QAAqB,EAAE,OAAyB;YACvD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;YACzB,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,EAAE,CAAA;YAClC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;YAC7B,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAoB,CAAA;YACtD,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBACpC,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;gBAC7C,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;oBAClD,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI;wBAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;gBAClE,CAAC;gBACD,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACtC,CAAC;YACD,MAAM,UAAU,GAAoB,EAAE,CAAA;YACtC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvC,MAAM,EAAE,GAAG,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;oBAC/C,IAAI,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC5B,UAAU,CAAC,IAAI,CACb,cAAc,CACZ,CAAC,EACD,GAAG,CAAC,CAAC,IAAI,eAAe,MAAM,2BAA2B,UAAU,IAAI,EACvE,OAAO,CACR,CACF,CAAA;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,UAAU,CAAA;QACnB,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -1,5 +1,7 @@
1
1
  export type { Predicate, Condition, ConditionContext, CodeFrameOptions, FormatOptions, } from '@nielspeter/eess';
2
- export { ArchRuleError, RuleBuilder, generateCodeFrame, formatViolations, formatViolationsPlain, definePredicate, defineCondition, marksAssertsCardinality, } from '@nielspeter/eess';
2
+ export { ArchRuleError, RuleBuilder, generateCodeFrame, formatViolations, formatViolationsPlain, definePredicate, defineCondition, } from '@nielspeter/eess';
3
+ export { globNode, globAnyOf } from '@nielspeter/eess';
4
+ export type { DeclaredGlob, DeclaredGlobs, GlobKind, GlobBase } from '@nielspeter/eess';
3
5
  export type { ArchViolation } from './violation.js';
4
6
  export { createViolation } from './violation.js';
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,GACd,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,uBAAuB,GACxB,MAAM,kBAAkB,CAAA;AAGzB,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,GACd,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,eAAe,GAChB,MAAM,kBAAkB,CAAA;AAMzB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACtD,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAGvF,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA"}
@@ -1,3 +1,9 @@
1
- export { ArchRuleError, RuleBuilder, generateCodeFrame, formatViolations, formatViolationsPlain, definePredicate, defineCondition, marksAssertsCardinality, } from '@nielspeter/eess';
1
+ export { ArchRuleError, RuleBuilder, generateCodeFrame, formatViolations, formatViolationsPlain, definePredicate, defineCondition, } from '@nielspeter/eess';
2
+ // The constructors a custom predicate needs to DECLARE its globs. eess-mermaid
3
+ // re-exported `definePredicate` without them, so the documented path (declare
4
+ // your globs or be permanently opaque to vacuity diagnosis) was unfollowable
5
+ // from a standalone install. eess-ts got these back in review; mermaid is the
6
+ // same case and was missed.
7
+ export { globNode, globAnyOf } from '@nielspeter/eess';
2
8
  export { createViolation } from './violation.js';
3
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,uBAAuB,GACxB,MAAM,kBAAkB,CAAA;AAIzB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,eAAe,GAChB,MAAM,kBAAkB,CAAA;AACzB,+EAA+E;AAC/E,8EAA8E;AAC9E,6EAA6E;AAC7E,8EAA8E;AAC9E,4BAA4B;AAC5B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAKtD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA"}
package/dist/index.d.ts CHANGED
@@ -8,6 +8,8 @@ export type { ExclusionComment, ExclusionWarning, ParseResult } from '@nielspete
8
8
  export { silent } from '@nielspeter/eess';
9
9
  export type { SilentExclusion } from '@nielspeter/eess';
10
10
  export { TerminalBuilder } from '@nielspeter/eess';
11
+ export { ArchConfigError, collectResult, mergeCollectResults, hasEvidence, finishPreset, isArchConfigError, reportViolations, } from '@nielspeter/eess';
12
+ export type { CollectResult, RuleBuilderLike } from '@nielspeter/eess';
11
13
  export type { RuleMetadata } from '@nielspeter/eess';
12
14
  export type { RuleDescription } from '@nielspeter/eess';
13
15
  export { not, and, or } from '@nielspeter/eess';
@@ -17,8 +19,6 @@ export { parseClassDiagram, MermaidUnitParseError } from './parser/parse-class-d
17
19
  export { classes, ClassRuleBuilder } from './builders/class-rule-builder.js';
18
20
  export type { ArchClass, ArchRelationship } from './models/arch-class.js';
19
21
  export { collectClasses, collectRelationships } from './models/arch-class.js';
20
- export { haveStereotype as predicateHaveStereotype, haveNameMatching, haveNameStartingWith, haveNameEndingWith, haveMemberNamed, haveMethodNamed, areAbstract, haveAtLeastOneMethod, haveNoMembers, extendName, } from './predicates/class.js';
21
- export { notExtendStereotype, extendClass, notExist, haveStereotype as conditionHaveStereotype, notHaveStereotype, dependOn, notDependOn, notDependOnStereotype, } from './conditions/class.js';
22
22
  export { parseDirectives, findDirective } from './parser/parse-directives.js';
23
23
  export type { ParsedDirective, DirectiveSchema, DirectiveStereotype, DirectiveId, DirectiveUnknown, DirectiveDiagnostic, DirectiveParseResult, } from './parser/parse-directives.js';
24
24
  export { validateReferences } from './parser/validate-diagram.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,iBAAiB,CAAA;AAC/B,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAClG,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAC9E,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACvF,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AAG/C,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAG3C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAG1F,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAC5E,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAG7E,OAAO,EACL,cAAc,IAAI,uBAAuB,EACzC,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,UAAU,GACX,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,QAAQ,EACR,cAAc,IAAI,uBAAuB,EACzC,iBAAiB,EACjB,QAAQ,EACR,WAAW,EACX,qBAAqB,GACtB,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC7E,YAAY,EACV,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,8BAA8B,CAAA;AAGrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACjE,YAAY,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAGvE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,YAAY,EACV,aAAa,EACb,UAAU,EACV,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,YAAY,GACb,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC/E,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,iBAAiB,CAAA;AAC/B,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAClG,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAC9E,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACvF,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAKlD,OAAO,EACL,eAAe,EACf,aAAa,EAMb,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,kBAAkB,CAAA;AACzB,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACtE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AAG/C,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAG3C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAG1F,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAC5E,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAI7E,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC7E,YAAY,EACV,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,8BAA8B,CAAA;AAGrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACjE,YAAY,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAGvE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,YAAY,EACV,aAAa,EACb,UAAU,EACV,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,YAAY,GACb,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC/E,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA"}
package/dist/index.js CHANGED
@@ -6,6 +6,16 @@ export { detectFormat, isCI } from '@nielspeter/eess';
6
6
  export { parseExclusionComments, isExcludedByComment } from '@nielspeter/eess';
7
7
  export { silent } from '@nielspeter/eess';
8
8
  export { TerminalBuilder } from '@nielspeter/eess';
9
+ // The evidence seam this dialect's own CLI now uses (bug 0269), re-exported so a
10
+ // standalone `@nielspeter/eess-mermaid` consumer never needs a second, direct
11
+ // kernel install — plan 0089's rule, enforced by `check:family`.
12
+ export { ArchConfigError, collectResult,
13
+ // Bug 0276: `collectResult` was here and its partner was not, so a consumer
14
+ // could build a receipt and not combine two. `check:family` is import-driven
15
+ // and this package's source never imports the merge, so it owed nothing and
16
+ // the gate stayed green — the demand side ADR-014 asks for is what was
17
+ // missing.
18
+ mergeCollectResults, hasEvidence, finishPreset, isArchConfigError, reportViolations, } from '@nielspeter/eess';
9
19
  export { not, and, or } from '@nielspeter/eess';
10
20
  export { diagram } from './core/diagram.js';
11
21
  // Parser
@@ -14,9 +24,6 @@ export { parseClassDiagram, MermaidUnitParseError } from './parser/parse-class-d
14
24
  export { classes, ClassRuleBuilder } from './builders/class-rule-builder.js';
15
25
  export { collectClasses, collectRelationships } from './models/arch-class.js';
16
26
  // Predicates
17
- export { haveStereotype as predicateHaveStereotype, haveNameMatching, haveNameStartingWith, haveNameEndingWith, haveMemberNamed, haveMethodNamed, areAbstract, haveAtLeastOneMethod, haveNoMembers, extendName, } from './predicates/class.js';
18
- // Conditions
19
- export { notExtendStereotype, extendClass, notExist, haveStereotype as conditionHaveStereotype, notHaveStereotype, dependOn, notDependOn, notDependOnStereotype, } from './conditions/class.js';
20
27
  // Directive parsing
21
28
  export { parseDirectives, findDirective } from './parser/parse-directives.js';
22
29
  // Reference validation
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,cAAc,iBAAiB,CAAA;AAE/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAE9E,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAGlD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AAI/C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAE3C,SAAS;AACT,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAE1F,oBAAoB;AACpB,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAE5E,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7E,aAAa;AACb,OAAO,EACL,cAAc,IAAI,uBAAuB,EACzC,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,UAAU,GACX,MAAM,uBAAuB,CAAA;AAE9B,aAAa;AACb,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,QAAQ,EACR,cAAc,IAAI,uBAAuB,EACzC,iBAAiB,EACjB,QAAQ,EACR,WAAW,EACX,qBAAqB,GACtB,MAAM,uBAAuB,CAAA;AAE9B,oBAAoB;AACpB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAW7E,uBAAuB;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAGjE,oDAAoD;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,oBAAoB;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAUtD,kCAAkC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,cAAc,iBAAiB,CAAA;AAE/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAE9E,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD,iFAAiF;AACjF,8EAA8E;AAC9E,iEAAiE;AACjE,OAAO,EACL,eAAe,EACf,aAAa;AACb,4EAA4E;AAC5E,6EAA6E;AAC7E,4EAA4E;AAC5E,uEAAuE;AACvE,WAAW;AACX,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,kBAAkB,CAAA;AAIzB,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AAI/C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAE3C,SAAS;AACT,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAE1F,oBAAoB;AACpB,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAE5E,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7E,aAAa;AACb,oBAAoB;AACpB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAW7E,uBAAuB;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAGjE,oDAAoD;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,oBAAoB;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAUtD,kCAAkC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA"}
@@ -0,0 +1,18 @@
1
+ import { type LangiumCoreServices, type LangiumGeneratedCoreServices, type Module } from 'langium';
2
+ /**
3
+ * Langium services for one grammar, built once and cached.
4
+ *
5
+ * `parse-class-diagram.ts` and `parse-er-diagram.ts` each carried this, byte for
6
+ * byte apart from the generated module they injected — `no-copy-paste` reported
7
+ * it at 100%. The grammar is now the parameter, which is what it always was.
8
+ *
9
+ * The cache is per grammar module, not global: two grammars need two service
10
+ * containers, and a single `cachedServices` shared between them would hand the
11
+ * ER parser the class-diagram services (or the reverse) depending on which file
12
+ * was imported first. That is the bug this shape has to avoid, so the cache is
13
+ * keyed rather than a lone `let`.
14
+ */
15
+ type GeneratedGrammarModule = Module<LangiumCoreServices, LangiumGeneratedCoreServices>;
16
+ export declare function grammarServices(generatedModule: GeneratedGrammarModule): LangiumCoreServices;
17
+ export {};
18
+ //# sourceMappingURL=langium-services.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"langium-services.d.ts","sourceRoot":"","sources":["../../src/parser/langium-services.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,mBAAmB,EAExB,KAAK,4BAA4B,EACjC,KAAK,MAAM,EACZ,MAAM,SAAS,CAAA;AAGhB;;;;;;;;;;;;GAYG;AACH,KAAK,sBAAsB,GAAG,MAAM,CAAC,mBAAmB,EAAE,4BAA4B,CAAC,CAAA;AAIvF,wBAAgB,eAAe,CAAC,eAAe,EAAE,sBAAsB,GAAG,mBAAmB,CAY5F"}
@@ -0,0 +1,14 @@
1
+ import { EmptyFileSystem, createDefaultCoreModule, createDefaultSharedCoreModule, inject, } from 'langium';
2
+ import { MermaidUnitGeneratedSharedModule } from './generated/module.js';
3
+ const cache = new WeakMap();
4
+ export function grammarServices(generatedModule) {
5
+ const cached = cache.get(generatedModule);
6
+ if (cached)
7
+ return cached;
8
+ const shared = inject(createDefaultSharedCoreModule(EmptyFileSystem), MermaidUnitGeneratedSharedModule);
9
+ const services = inject(createDefaultCoreModule({ shared }), generatedModule);
10
+ shared.ServiceRegistry.register(services);
11
+ cache.set(generatedModule, services);
12
+ return services;
13
+ }
14
+ //# sourceMappingURL=langium-services.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"langium-services.js","sourceRoot":"","sources":["../../src/parser/langium-services.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,6BAA6B,EAC7B,MAAM,GAKP,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,gCAAgC,EAAE,MAAM,uBAAuB,CAAA;AAiBxE,MAAM,KAAK,GAAG,IAAI,OAAO,EAA+C,CAAA;AAExE,MAAM,UAAU,eAAe,CAAC,eAAuC;IACrE,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IACzC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAA;IAEzB,MAAM,MAAM,GAA8B,MAAM,CAC9C,6BAA6B,CAAC,eAAe,CAAC,EAC9C,gCAAgC,CACjC,CAAA;IACD,MAAM,QAAQ,GAAwB,MAAM,CAAC,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,CAAC,CAAA;IAClG,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACzC,KAAK,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAA;IACpC,OAAO,QAAQ,CAAA;AACjB,CAAC"}
@@ -1,7 +1,5 @@
1
1
  import type { Diagram } from './generated/ast.js';
2
- export declare class MermaidUnitParseError extends Error {
3
- readonly errors: readonly string[];
4
- constructor(errors: readonly string[]);
5
- }
2
+ export { MermaidUnitParseError } from './parse-with-grammar.js';
3
+ /** Parse a Mermaid `classDiagram` source into the generated AST. */
6
4
  export declare function parseClassDiagram(text: string): Diagram;
7
5
  //# sourceMappingURL=parse-class-diagram.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-class-diagram.d.ts","sourceRoot":"","sources":["../../src/parser/parse-class-diagram.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAmBjD,qBAAa,qBAAsB,SAAQ,KAAK;aAClB,MAAM,EAAE,SAAS,MAAM,EAAE;gBAAzB,MAAM,EAAE,SAAS,MAAM,EAAE;CAItD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAWvD"}
1
+ {"version":3,"file":"parse-class-diagram.d.ts","sourceRoot":"","sources":["../../src/parser/parse-class-diagram.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAMjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAE/D,oEAAoE;AACpE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD"}
@@ -1,33 +1,11 @@
1
- import { EmptyFileSystem, createDefaultCoreModule, createDefaultSharedCoreModule, inject, } from 'langium';
2
- import { ClassDiagramGrammarGeneratedModule, MermaidUnitGeneratedSharedModule, } from './generated/module.js';
3
- let cachedServices;
4
- function getServices() {
5
- if (cachedServices)
6
- return cachedServices;
7
- const shared = inject(createDefaultSharedCoreModule(EmptyFileSystem), MermaidUnitGeneratedSharedModule);
8
- const services = inject(createDefaultCoreModule({ shared }), ClassDiagramGrammarGeneratedModule);
9
- shared.ServiceRegistry.register(services);
10
- cachedServices = services;
11
- return services;
12
- }
13
- export class MermaidUnitParseError extends Error {
14
- errors;
15
- constructor(errors) {
16
- super(`MermaidUnit parse failed:\n${errors.join('\n')}`);
17
- this.errors = errors;
18
- this.name = 'MermaidUnitParseError';
19
- }
20
- }
1
+ import { ClassDiagramGrammarGeneratedModule } from './generated/module.js';
2
+ import { parseWithGrammar } from './parse-with-grammar.js';
3
+ // Re-exported from its original home: `MermaidUnitParseError` moved to
4
+ // `parse-with-grammar.js` when the two parsers were folded together, and this
5
+ // module is the path `src/index.ts` and the tests already import it from.
6
+ export { MermaidUnitParseError } from './parse-with-grammar.js';
7
+ /** Parse a Mermaid `classDiagram` source into the generated AST. */
21
8
  export function parseClassDiagram(text) {
22
- const services = getServices();
23
- const result = services.parser.LangiumParser.parse(text);
24
- const errors = [
25
- ...result.lexerErrors.map((e) => `lexer:${e.line}:${e.column} ${e.message}`),
26
- ...result.parserErrors.map((e) => `parser: ${e.message}`),
27
- ];
28
- if (errors.length > 0) {
29
- throw new MermaidUnitParseError(errors);
30
- }
31
- return result.value;
9
+ return parseWithGrammar(ClassDiagramGrammarGeneratedModule, text);
32
10
  }
33
11
  //# sourceMappingURL=parse-class-diagram.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-class-diagram.js","sourceRoot":"","sources":["../../src/parser/parse-class-diagram.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,6BAA6B,EAC7B,MAAM,GAGP,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,kCAAkC,EAClC,gCAAgC,GACjC,MAAM,uBAAuB,CAAA;AAG9B,IAAI,cAA+C,CAAA;AAEnD,SAAS,WAAW;IAClB,IAAI,cAAc;QAAE,OAAO,cAAc,CAAA;IACzC,MAAM,MAAM,GAA8B,MAAM,CAC9C,6BAA6B,CAAC,eAAe,CAAC,EAC9C,gCAAgC,CACjC,CAAA;IACD,MAAM,QAAQ,GAAwB,MAAM,CAC1C,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC,EACnC,kCAAkC,CACnC,CAAA;IACD,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACzC,cAAc,GAAG,QAAQ,CAAA;IACzB,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAClB;IAA5B,YAA4B,MAAyB;QACnD,KAAK,CAAC,8BAA8B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAD9B,WAAM,GAAN,MAAM,CAAmB;QAEnD,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAA;IACrC,CAAC;CACF;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAU,IAAI,CAAC,CAAA;IACjE,MAAM,MAAM,GAAG;QACb,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC5E,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;KAC1D,CAAA;IACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAA;IACzC,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAA;AACrB,CAAC"}
1
+ {"version":3,"file":"parse-class-diagram.js","sourceRoot":"","sources":["../../src/parser/parse-class-diagram.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,MAAM,uBAAuB,CAAA;AAE1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE1D,uEAAuE;AACvE,8EAA8E;AAC9E,0EAA0E;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAE/D,oEAAoE;AACpE,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,gBAAgB,CAAU,kCAAkC,EAAE,IAAI,CAAC,CAAA;AAC5E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-er-diagram.d.ts","sourceRoot":"","sources":["../../src/parser/parse-er-diagram.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAoBnD,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAWtD"}
1
+ {"version":3,"file":"parse-er-diagram.d.ts","sourceRoot":"","sources":["../../src/parser/parse-er-diagram.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAGnD,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAEtD"}
@@ -1,27 +1,7 @@
1
- import { EmptyFileSystem, createDefaultCoreModule, createDefaultSharedCoreModule, inject, } from 'langium';
2
- import { ErDiagramGrammarGeneratedModule, MermaidUnitGeneratedSharedModule, } from './generated/module.js';
3
- import { MermaidUnitParseError } from './parse-class-diagram.js';
4
- let cachedServices;
5
- function getServices() {
6
- if (cachedServices)
7
- return cachedServices;
8
- const shared = inject(createDefaultSharedCoreModule(EmptyFileSystem), MermaidUnitGeneratedSharedModule);
9
- const services = inject(createDefaultCoreModule({ shared }), ErDiagramGrammarGeneratedModule);
10
- shared.ServiceRegistry.register(services);
11
- cachedServices = services;
12
- return services;
13
- }
1
+ import { ErDiagramGrammarGeneratedModule } from './generated/module.js';
2
+ import { parseWithGrammar } from './parse-with-grammar.js';
14
3
  /** Parse a Mermaid `erDiagram` source into the generated AST (plan 0069 Phase 3). */
15
4
  export function parseErDiagram(text) {
16
- const services = getServices();
17
- const result = services.parser.LangiumParser.parse(text);
18
- const errors = [
19
- ...result.lexerErrors.map((e) => `lexer:${e.line}:${e.column} ${e.message}`),
20
- ...result.parserErrors.map((e) => `parser: ${e.message}`),
21
- ];
22
- if (errors.length > 0) {
23
- throw new MermaidUnitParseError(errors);
24
- }
25
- return result.value;
5
+ return parseWithGrammar(ErDiagramGrammarGeneratedModule, text);
26
6
  }
27
7
  //# sourceMappingURL=parse-er-diagram.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-er-diagram.js","sourceRoot":"","sources":["../../src/parser/parse-er-diagram.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,6BAA6B,EAC7B,MAAM,GAGP,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,+BAA+B,EAC/B,gCAAgC,GACjC,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAEhE,IAAI,cAA+C,CAAA;AAEnD,SAAS,WAAW;IAClB,IAAI,cAAc;QAAE,OAAO,cAAc,CAAA;IACzC,MAAM,MAAM,GAA8B,MAAM,CAC9C,6BAA6B,CAAC,eAAe,CAAC,EAC9C,gCAAgC,CACjC,CAAA;IACD,MAAM,QAAQ,GAAwB,MAAM,CAC1C,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC,EACnC,+BAA+B,CAChC,CAAA;IACD,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACzC,cAAc,GAAG,QAAQ,CAAA;IACzB,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAY,IAAI,CAAC,CAAA;IACnE,MAAM,MAAM,GAAG;QACb,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC5E,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;KAC1D,CAAA;IACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAA;IACzC,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAA;AACrB,CAAC"}
1
+ {"version":3,"file":"parse-er-diagram.js","sourceRoot":"","sources":["../../src/parser/parse-er-diagram.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAA;AAEvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE1D,qFAAqF;AACrF,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,gBAAgB,CAAY,+BAA+B,EAAE,IAAI,CAAC,CAAA;AAC3E,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { AstNode, LangiumCoreServices, LangiumGeneratedCoreServices, Module } from 'langium';
2
+ export declare class MermaidUnitParseError extends Error {
3
+ readonly errors: readonly string[];
4
+ constructor(errors: readonly string[]);
5
+ }
6
+ /**
7
+ * Parse one Mermaid source against one grammar, or throw with every diagnostic.
8
+ *
9
+ * `parseClassDiagram` and `parseErDiagram` were the same body but for the
10
+ * grammar module and the AST type — `no-copy-paste` reported them at 100%,
11
+ * one level above the service container `langium-services.ts` already unified.
12
+ *
13
+ * It throws rather than returning a result, and collects BOTH lexer and parser
14
+ * errors before doing so: Langium reports a malformed diagram as a lexer error
15
+ * on one line and a parser error on another, and a parser that surfaced only
16
+ * the first would send an author to fix the symptom. The line/column prefix on
17
+ * the lexer half is what makes the message locatable at all — the parser half
18
+ * carries no position, which is why the two are formatted differently rather
19
+ * than uniformly.
20
+ */
21
+ export declare function parseWithGrammar<T extends AstNode>(generatedModule: Module<LangiumCoreServices, LangiumGeneratedCoreServices>, text: string): T;
22
+ //# sourceMappingURL=parse-with-grammar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-with-grammar.d.ts","sourceRoot":"","sources":["../../src/parser/parse-with-grammar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,4BAA4B,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAGjG,qBAAa,qBAAsB,SAAQ,KAAK;aAClB,MAAM,EAAE,SAAS,MAAM,EAAE;gBAAzB,MAAM,EAAE,SAAS,MAAM,EAAE;CAItD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,OAAO,EAChD,eAAe,EAAE,MAAM,CAAC,mBAAmB,EAAE,4BAA4B,CAAC,EAC1E,IAAI,EAAE,MAAM,GACX,CAAC,CAWH"}
@@ -0,0 +1,37 @@
1
+ import { grammarServices } from './langium-services.js';
2
+ export class MermaidUnitParseError extends Error {
3
+ errors;
4
+ constructor(errors) {
5
+ super(`MermaidUnit parse failed:\n${errors.join('\n')}`);
6
+ this.errors = errors;
7
+ this.name = 'MermaidUnitParseError';
8
+ }
9
+ }
10
+ /**
11
+ * Parse one Mermaid source against one grammar, or throw with every diagnostic.
12
+ *
13
+ * `parseClassDiagram` and `parseErDiagram` were the same body but for the
14
+ * grammar module and the AST type — `no-copy-paste` reported them at 100%,
15
+ * one level above the service container `langium-services.ts` already unified.
16
+ *
17
+ * It throws rather than returning a result, and collects BOTH lexer and parser
18
+ * errors before doing so: Langium reports a malformed diagram as a lexer error
19
+ * on one line and a parser error on another, and a parser that surfaced only
20
+ * the first would send an author to fix the symptom. The line/column prefix on
21
+ * the lexer half is what makes the message locatable at all — the parser half
22
+ * carries no position, which is why the two are formatted differently rather
23
+ * than uniformly.
24
+ */
25
+ export function parseWithGrammar(generatedModule, text) {
26
+ const services = grammarServices(generatedModule);
27
+ const result = services.parser.LangiumParser.parse(text);
28
+ const errors = [
29
+ ...result.lexerErrors.map((e) => `lexer:${e.line}:${e.column} ${e.message}`),
30
+ ...result.parserErrors.map((e) => `parser: ${e.message}`),
31
+ ];
32
+ if (errors.length > 0) {
33
+ throw new MermaidUnitParseError(errors);
34
+ }
35
+ return result.value;
36
+ }
37
+ //# sourceMappingURL=parse-with-grammar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-with-grammar.js","sourceRoot":"","sources":["../../src/parser/parse-with-grammar.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAClB;IAA5B,YAA4B,MAAyB;QACnD,KAAK,CAAC,8BAA8B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAD9B,WAAM,GAAN,MAAM,CAAmB;QAEnD,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAA;IACrC,CAAC;CACF;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,gBAAgB,CAC9B,eAA0E,EAC1E,IAAY;IAEZ,MAAM,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC,CAAA;IACjD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAI,IAAI,CAAC,CAAA;IAC3D,MAAM,MAAM,GAAG;QACb,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC5E,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;KAC1D,CAAA;IACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAA;IACzC,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAA;AACrB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nielspeter/eess-mermaid",
3
- "version": "0.3.0",
3
+ "version": "0.4.1",
4
4
  "description": "Architecture testing for Mermaid class diagrams — the Mermaid dialect of the eess family (formerly mermaidunit)",
5
5
  "type": "module",
6
6
  "exports": {
@@ -30,6 +30,7 @@
30
30
  "scripts": {
31
31
  "prepublishOnly": "npm run build",
32
32
  "langium:gen": "langium generate --file langium-config.json",
33
+ "prebuild": "rm -rf dist",
33
34
  "build": "npm run langium:gen && tsc -p tsconfig.build.json && chmod +x dist/cli/bin.js",
34
35
  "test": "vitest run",
35
36
  "test:watch": "vitest",
@@ -43,7 +44,7 @@
43
44
  "eess"
44
45
  ],
45
46
  "dependencies": {
46
- "@nielspeter/eess": "^0.4.0",
47
+ "@nielspeter/eess": "^0.5.1",
47
48
  "jiti": "^2.7.0",
48
49
  "langium": "^4.2.3"
49
50
  }