@nowline/cli 0.0.0-dev.20261016125632.gcdc768a → 0.0.0-dev.20261016135659.g7e263e2

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.
@@ -4,11 +4,13 @@ export declare function adaptLangiumDiagnostic(diag: LangiumLikeDiagnostic, file
4
4
  export declare function adaptParserError(err: ParserErrorLike, file: string): CliDiagnostic;
5
5
  export declare function adaptLexerError(err: LexerErrorLike, file: string): CliDiagnostic;
6
6
  /**
7
- * Adapt a routed (wave-rule) include-resolver diagnostic, which carries only
8
- * a 0-based line. `contents` is the text of the file it points into, when
9
- * known: the span covers the line's text, so the code frame underlines the
10
- * declaration like a validator diagnostic does. A coded diagnostic keeps
11
- * `{ code, args }` in `data` for re-localization.
7
+ * Adapt a routed include-resolver diagnostic (a wave rule or an included
8
+ * file's NL.E0302). With a `range`, the column and span are the validator's
9
+ * for the same finding. Without one, the diagnostic carries only a 0-based
10
+ * line: `contents` is the text of the file it points into, when known, and
11
+ * the span covers the line's text, so the code frame still underlines the
12
+ * declaration. A coded diagnostic keeps `{ code, args }` in `data` for
13
+ * re-localization.
12
14
  */
13
15
  export declare function adaptResolveDiagnostic(diag: ResolveDiagnostic, file: string, contents?: string): CliDiagnostic;
14
16
  //# sourceMappingURL=adapt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapt.d.ts","sourceRoot":"","sources":["../../src/diagnostics/adapt.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EAEzB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,aAAa,EAA4C,MAAM,YAAY,CAAC;AAE1F,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CA2B/F;AAgBD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAclF;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAgBhF;AAMD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAClC,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,GAClB,aAAa,CAmBf"}
1
+ {"version":3,"file":"adapt.d.ts","sourceRoot":"","sources":["../../src/diagnostics/adapt.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EAEzB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,aAAa,EAA4C,MAAM,YAAY,CAAC;AAE1F,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CA2B/F;AAgBD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAclF;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAgBhF;AAMD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAClC,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,GAClB,aAAa,CAWf"}
@@ -79,29 +79,48 @@ function mapSeverity(severity) {
79
79
  return severity === 2 ? 'warning' : 'error';
80
80
  }
81
81
  /**
82
- * Adapt a routed (wave-rule) include-resolver diagnostic, which carries only
83
- * a 0-based line. `contents` is the text of the file it points into, when
84
- * known: the span covers the line's text, so the code frame underlines the
85
- * declaration like a validator diagnostic does. A coded diagnostic keeps
86
- * `{ code, args }` in `data` for re-localization.
82
+ * Adapt a routed include-resolver diagnostic (a wave rule or an included
83
+ * file's NL.E0302). With a `range`, the column and span are the validator's
84
+ * for the same finding. Without one, the diagnostic carries only a 0-based
85
+ * line: `contents` is the text of the file it points into, when known, and
86
+ * the span covers the line's text, so the code frame still underlines the
87
+ * declaration. A coded diagnostic keeps `{ code, args }` in `data` for
88
+ * re-localization.
87
89
  */
88
90
  export function adaptResolveDiagnostic(diag, file, contents) {
91
+ return {
92
+ file,
93
+ ...resolveLocation(diag, contents),
94
+ severity: diag.severity,
95
+ // WV8 is uncoded; label it the way the validator's copy is labelled.
96
+ code: diag.code ?? inferCodeFromMessage(diag.message),
97
+ message: diag.message,
98
+ suggestion: extractSuggestion(diag.message),
99
+ data: diag.code === undefined ? undefined : { code: diag.code, args: diag.args ?? [] },
100
+ };
101
+ }
102
+ function resolveLocation(diag, contents) {
103
+ if (diag.range) {
104
+ const line = diag.range.start.line + 1;
105
+ const column = diag.range.start.character + 1;
106
+ return {
107
+ line,
108
+ column,
109
+ span: {
110
+ start: { line, column },
111
+ end: { line: diag.range.end.line + 1, column: diag.range.end.character + 1 },
112
+ },
113
+ };
114
+ }
89
115
  const line = (diag.line ?? 0) + 1;
90
116
  const text = contents?.split(/\r?\n/)[line - 1]?.trimEnd() ?? '';
91
117
  const column = text.length - text.trimStart().length + 1;
92
118
  return {
93
- file,
94
119
  line,
95
120
  column,
96
- severity: diag.severity,
97
121
  span: text.trim() === ''
98
122
  ? undefined
99
123
  : { start: { line, column }, end: { line, column: text.length + 1 } },
100
- // WV8 is uncoded; label it the way the validator's copy is labelled.
101
- code: diag.code ?? inferCodeFromMessage(diag.message),
102
- message: diag.message,
103
- suggestion: extractSuggestion(diag.message),
104
- data: diag.code === undefined ? undefined : { code: diag.code, args: diag.args ?? [] },
105
124
  };
106
125
  }
107
126
  //# sourceMappingURL=adapt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapt.js","sourceRoot":"","sources":["../../src/diagnostics/adapt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapt.js","sourceRoot":"","sources":["../../src/diagnostics/adapt.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export declare const CLI_VERSION = "0.0.0-dev.20261016125632.gcdc768a";
1
+ export declare const CLI_VERSION = "0.0.0-dev.20261016135659.g7e263e2";
2
2
  export interface CliBuild {
3
3
  /** Short git SHA at build time, or empty when not in a git checkout. */
4
4
  readonly sha: string;
@@ -1,7 +1,7 @@
1
1
  // Auto-generated by scripts/bundle-templates.mjs. Do not edit by hand.
2
- export const CLI_VERSION = "0.0.0-dev.20261016125632.gcdc768a";
2
+ export const CLI_VERSION = "0.0.0-dev.20261016135659.g7e263e2";
3
3
  export const CLI_BUILD = {
4
- "sha": "cdc768a",
4
+ "sha": "7e263e2",
5
5
  "isRelease": false,
6
6
  "isDirty": true
7
7
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nowline/cli",
3
- "version": "0.0.0-dev.20261016125632.gcdc768a",
3
+ "version": "0.0.0-dev.20261016135659.g7e263e2",
4
4
  "description": "Command-line tool to check, convert, and create Nowline roadmaps.",
5
5
  "license": "Apache-2.0",
6
6
  "engines": {
@@ -34,19 +34,19 @@
34
34
  "@clack/prompts": "^1.8.1",
35
35
  "@modelcontextprotocol/node": "^2.1.0",
36
36
  "@modelcontextprotocol/server": "^2.2.0",
37
- "@nowline/config": "0.0.0-dev.20261016125632.gcdc768a",
38
- "@nowline/core": "0.0.0-dev.20261016125632.gcdc768a",
39
- "@nowline/export": "0.0.0-dev.20261016125632.gcdc768a",
40
- "@nowline/export-core": "0.0.0-dev.20261016125632.gcdc768a",
41
- "@nowline/export-html": "0.0.0-dev.20261016125632.gcdc768a",
42
- "@nowline/export-mermaid": "0.0.0-dev.20261016125632.gcdc768a",
43
- "@nowline/export-msproj": "0.0.0-dev.20261016125632.gcdc768a",
44
- "@nowline/export-pdf": "0.0.0-dev.20261016125632.gcdc768a",
45
- "@nowline/export-png": "0.0.0-dev.20261016125632.gcdc768a",
46
- "@nowline/export-xlsx": "0.0.0-dev.20261016125632.gcdc768a",
47
- "@nowline/layout": "0.0.0-dev.20261016125632.gcdc768a",
48
- "@nowline/mcp": "0.0.0-dev.20261016125632.gcdc768a",
49
- "@nowline/renderer": "0.0.0-dev.20261016125632.gcdc768a",
37
+ "@nowline/config": "0.0.0-dev.20261016135659.g7e263e2",
38
+ "@nowline/core": "0.0.0-dev.20261016135659.g7e263e2",
39
+ "@nowline/export": "0.0.0-dev.20261016135659.g7e263e2",
40
+ "@nowline/export-core": "0.0.0-dev.20261016135659.g7e263e2",
41
+ "@nowline/export-html": "0.0.0-dev.20261016135659.g7e263e2",
42
+ "@nowline/export-mermaid": "0.0.0-dev.20261016135659.g7e263e2",
43
+ "@nowline/export-msproj": "0.0.0-dev.20261016135659.g7e263e2",
44
+ "@nowline/export-pdf": "0.0.0-dev.20261016135659.g7e263e2",
45
+ "@nowline/export-png": "0.0.0-dev.20261016135659.g7e263e2",
46
+ "@nowline/export-xlsx": "0.0.0-dev.20261016135659.g7e263e2",
47
+ "@nowline/layout": "0.0.0-dev.20261016135659.g7e263e2",
48
+ "@nowline/mcp": "0.0.0-dev.20261016135659.g7e263e2",
49
+ "@nowline/renderer": "0.0.0-dev.20261016135659.g7e263e2",
50
50
  "chalk": "^6.0.1",
51
51
  "citty": "^0.2.2",
52
52
  "consola": "^3.4.2",
@@ -91,33 +91,56 @@ function mapSeverity(severity: number | undefined): DiagnosticSeverity {
91
91
  }
92
92
 
93
93
  /**
94
- * Adapt a routed (wave-rule) include-resolver diagnostic, which carries only
95
- * a 0-based line. `contents` is the text of the file it points into, when
96
- * known: the span covers the line's text, so the code frame underlines the
97
- * declaration like a validator diagnostic does. A coded diagnostic keeps
98
- * `{ code, args }` in `data` for re-localization.
94
+ * Adapt a routed include-resolver diagnostic (a wave rule or an included
95
+ * file's NL.E0302). With a `range`, the column and span are the validator's
96
+ * for the same finding. Without one, the diagnostic carries only a 0-based
97
+ * line: `contents` is the text of the file it points into, when known, and
98
+ * the span covers the line's text, so the code frame still underlines the
99
+ * declaration. A coded diagnostic keeps `{ code, args }` in `data` for
100
+ * re-localization.
99
101
  */
100
102
  export function adaptResolveDiagnostic(
101
103
  diag: ResolveDiagnostic,
102
104
  file: string,
103
105
  contents?: string,
104
106
  ): CliDiagnostic {
107
+ return {
108
+ file,
109
+ ...resolveLocation(diag, contents),
110
+ severity: diag.severity,
111
+ // WV8 is uncoded; label it the way the validator's copy is labelled.
112
+ code: diag.code ?? inferCodeFromMessage(diag.message),
113
+ message: diag.message,
114
+ suggestion: extractSuggestion(diag.message),
115
+ data: diag.code === undefined ? undefined : { code: diag.code, args: diag.args ?? [] },
116
+ };
117
+ }
118
+
119
+ function resolveLocation(
120
+ diag: ResolveDiagnostic,
121
+ contents: string | undefined,
122
+ ): Pick<CliDiagnostic, 'line' | 'column' | 'span'> {
123
+ if (diag.range) {
124
+ const line = diag.range.start.line + 1;
125
+ const column = diag.range.start.character + 1;
126
+ return {
127
+ line,
128
+ column,
129
+ span: {
130
+ start: { line, column },
131
+ end: { line: diag.range.end.line + 1, column: diag.range.end.character + 1 },
132
+ },
133
+ };
134
+ }
105
135
  const line = (diag.line ?? 0) + 1;
106
136
  const text = contents?.split(/\r?\n/)[line - 1]?.trimEnd() ?? '';
107
137
  const column = text.length - text.trimStart().length + 1;
108
138
  return {
109
- file,
110
139
  line,
111
140
  column,
112
- severity: diag.severity,
113
141
  span:
114
142
  text.trim() === ''
115
143
  ? undefined
116
144
  : { start: { line, column }, end: { line, column: text.length + 1 } },
117
- // WV8 is uncoded; label it the way the validator's copy is labelled.
118
- code: diag.code ?? inferCodeFromMessage(diag.message),
119
- message: diag.message,
120
- suggestion: extractSuggestion(diag.message),
121
- data: diag.code === undefined ? undefined : { code: diag.code, args: diag.args ?? [] },
122
145
  };
123
146
  }
@@ -1,6 +1,6 @@
1
1
  // Auto-generated by scripts/bundle-templates.mjs. Do not edit by hand.
2
2
 
3
- export const CLI_VERSION = "0.0.0-dev.20261016125632.gcdc768a";
3
+ export const CLI_VERSION = "0.0.0-dev.20261016135659.g7e263e2";
4
4
 
5
5
  export interface CliBuild {
6
6
  /** Short git SHA at build time, or empty when not in a git checkout. */
@@ -12,7 +12,7 @@ export interface CliBuild {
12
12
  }
13
13
 
14
14
  export const CLI_BUILD: CliBuild = {
15
- "sha": "cdc768a",
15
+ "sha": "7e263e2",
16
16
  "isRelease": false,
17
17
  "isDirty": true
18
18
  };