@nowline/cli 0.4.2 → 0.5.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.
package/dist/cli/help.js CHANGED
@@ -35,7 +35,7 @@ MODE FLAGS (mutually exclusive)
35
35
  'validate' verb. Exit 0 on success, 1 on errors.
36
36
 
37
37
  RENDER OPTIONS
38
- -t, --theme <name> light | dark
38
+ -t, --theme <name> light | dark | grayscale (greyscale alias)
39
39
  --now <YYYY-MM-DD> Date for the now-line. Default: today.
40
40
  Use --now - to suppress the now-line.
41
41
  --no-links Omit link icons from rendered items.
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/commands/render.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,aAAa,EAAa,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAwBjD,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,UAAU,CAAC;IACjB,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4FhF;AA4ZD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAWpE"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/commands/render.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,aAAa,EAAa,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAwBjD,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,UAAU,CAAC;IACjB,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4FhF;AA6ZD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAWpE"}
@@ -2,7 +2,7 @@ import { promises as fs } from 'node:fs';
2
2
  import * as path from 'node:path';
3
3
  import { resolveIncludes } from '@nowline/core';
4
4
  import { lengthToPoints, parseLength } from '@nowline/export-core';
5
- import { layoutRoadmap } from '@nowline/layout';
5
+ import { layoutRoadmap, normalizeThemeName } from '@nowline/layout';
6
6
  import { renderSvg } from '@nowline/renderer';
7
7
  import { FormatResolutionError, isInputFormat, resolveFormat, } from '../cli/formats.js';
8
8
  import { resolveRenderOutputPath } from '../cli/output-path.js';
@@ -318,11 +318,12 @@ async function loadConfigFor(inputArg, cwd) {
318
318
  function parseTheme(raw) {
319
319
  if (!raw)
320
320
  return 'light';
321
- const lower = raw.toLowerCase();
322
- if (lower !== 'light' && lower !== 'dark') {
323
- throw new CliError(ExitCode.InputError, `nowline: invalid --theme "${raw}". Expected light or dark.`);
321
+ // `greyscale` (UK) is accepted and canonicalized to `grayscale` (US).
322
+ const theme = normalizeThemeName(raw);
323
+ if (!theme) {
324
+ throw new CliError(ExitCode.InputError, `nowline: invalid --theme "${raw}". Expected light, dark, or grayscale.`);
324
325
  }
325
- return lower;
326
+ return theme;
326
327
  }
327
328
  // Resolve the now-line date from the CLI flag.
328
329
  //
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/commands/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/commands/render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAkB,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAsB,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,EACH,qBAAqB,EACrB,aAAa,EAEb,aAAa,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAyB,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,EACH,2BAA2B,EAC3B,cAAc,EACd,mBAAmB,EACnB,qBAAqB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAQ7C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA6B;IAC7D,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACzB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEzC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACnB,MAAM,IAAI,QAAQ,CACd,QAAQ,CAAC,UAAU,EACnB,mFAAmF,CACtF,CAAC;IACN,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAEzD,MAAM,MAAM,GAAG,oBAAoB,CAAC;QAChC,IAAI,EAAE,IAAI,CAAC,MAAM;QACjB,UAAU,EAAE,IAAI,CAAC,MAAM;QACvB,YAAY,EAAE,OAAO,MAAM,EAAE,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;QAC1F,QAAQ,EAAE,cAAc;KAC3B,CAAC,CAAC;IAEH,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,MAAM,eAAe,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,cAAc,GAAG,uBAAuB,CAAC;QAC3C,SAAS,EAAE,IAAI,CAAC,MAAM;QACtB,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE,IAAI,CAAC,UAAU;QACzB,OAAO,EAAE,IAAI,CAAC,UAAU,KAAK,GAAG;QAChC,MAAM;QACN,GAAG;KACN,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAE1E,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAExD,MAAM,QAAQ,GAAG,qBAAqB,CAAC;QACnC,IAAI,EAAE,IAAI,CAAC,MAAM;QACjB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,EAAE,EAAE,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC;KACzC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC;IAC5B,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE1C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,OAAO,CAAC;QACzC,MAAM;QACN,WAAW;QACX,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI;QAC7E,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7B,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC;QAC1B,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;QAChC,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,oEAAoE;QACpE,8CAA8C;QAC9C,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,gBAAgB,CAAC,MAAM,EAAE,aAAa,CAAC;QAClE,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC;QAC3E,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC;QAC5D,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC;QAC/D,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC;QAC/D,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC;QAClE,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM;QACN,cAAc,EAAE,QAAQ;QACxB,cAAc,EAAE,QAAQ;QACxB,OAAO,EAAE,IAAI,CAAC,QAAQ,KAAK,SAAS;KACvC,CAAC,CAAC;IAEH,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACjE,CAAC;QACD,OAAO;IACX,CAAC;IAED,MAAM,WAAW,CACb,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,EACnD,QAAQ,EACR,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAC5B,EAAE,GAAG,EAAE,CACV,CAAC;IAEF,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;QAC1D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,cAAc,CAAC,IAAI,IAAI,CAAC,CAAC;IACpE,CAAC;AACL,CAAC;AAED,SAAS,oBAAoB,CAAC,MAK7B;IACG,IAAI,CAAC;QACD,OAAO,aAAa,CAAC;YACjB,UAAU,EAAE,MAAM,CAAC,IAAI;YACvB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC5B,CAAC,CAAC,MAAM,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,IAAI,GAAG,YAAY,qBAAqB,EAAE,CAAC;YACvC,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,GAAG,CAAC;IACd,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB,EAAE,QAA4B;IACtE,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,QAAQ,CACd,QAAQ,CAAC,UAAU,EACnB,oCAAoC,QAAQ,8BAA8B,CAC7E,CAAC;QACN,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,QAAQ,KAAK,GAAG;QAAE,OAAO,SAAS,CAAC;IACvC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,IAAI,GAAG,KAAK,OAAO;QAAE,OAAO,MAAM,CAAC;IACnC,OAAO,SAAS,CAAC;AACrB,CAAC;AAuCD,KAAK,UAAU,OAAO,CAAC,IAAiB;IACpC,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClE,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC9E,CAAC;IAED,2EAA2E;IAC3E,wEAAwE;IACxE,uEAAuE;IACvE,sEAAsE;IACtE,sBAAsB;IACtB,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IAEvC,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QACxB,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACpD,CAAC;IACD,IAAI,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;YACjD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC/C,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;YACpD,MAAM,EAAE,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACjD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC7C,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;YACnD,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,EAAE;gBAChD,SAAS,EAAE,IAAI,CAAC,KAAK;aACxB,CAAC,CAAC;YACH,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC9C,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAChD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,EAAE;gBAC3D,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC7B,KAAK;aACR,CAAC,CAAC;YACH,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC7C,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAChD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,EAAE;gBAC3D,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,WAAW,EAAE,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC;gBAC/C,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;gBAClC,KAAK;aACR,CAAC,CAAC;YACH,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC7C,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;YACjD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,EAAE;gBAClD,SAAS,EAAE,IAAI,CAAC,KAAK;aACxB,CAAC,CAAC;YACH,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC9C,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,IAAI,GAAG,YAAY,QAAQ;YAAE,MAAM,GAAG,CAAC;QACvC,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,IAAI,QAAQ,CACd,QAAQ,CAAC,WAAW,EACpB,YAAY,IAAI,CAAC,MAAM,mBAAmB,OAAO,EAAE,CACtD,CAAC;IACN,CAAC;IAED,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,gCAAgC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;AAC7F,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,IAAiB;IACxC,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;QAC9B,oEAAoE;QACpE,MAAM,EAAE,GAAG,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,IAAiB;IACpD,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;QAC9B,MAAM,EAAE,GAAG,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAClE,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5D,OAAO,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC;AASD,KAAK,UAAU,YAAY,CAAC,IAAiB;IACzC,MAAM,MAAM,GAAG,MAAM,gBAAgB,CACjC,IAAI,CAAC,WAAW,KAAK,MAAM;QACvB,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC;QACpD,CAAC,CAAC,IAAI,CAAC,QAAQ,EACnB,IAAI,CACP,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE;QAClE,QAAQ,EAAE,WAAW,EAAE,CAAC,OAAO;KAClC,CAAC,CAAC;IACH,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;QAClE,CAAC;IACL,CAAC;IACD,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE;QAC9C,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;KACtB,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS;QAC5B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;QAC9B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAkB,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAE/D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE;QAC/B,aAAa,EAAE,QAAQ;QACvB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;KACpC,CAAC,CAAC;IAEH,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,WAAwE,CAAC;IAC7E,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QACxB,IAAI,WAAW;YAAE,OAAO,WAAW,CAAC;QACpC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC;YAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SAC1B,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;gBAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAChB,2EAA2E,CAC9E,CAAC;YACN,CAAC;YACD,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;gBAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAChB,2EAA2E,CAC9E,CAAC;YACN,CAAC;QACL,CAAC;QACD,WAAW,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QACvD,OAAO,WAAW,CAAC;IACvB,CAAC,CAAC;IAEF,OAAO;QACH,GAAG;QACH,YAAY,EAAE;YACV,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,QAAQ;YACR,KAAK;YACL,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,KAAK,EAAE,IAAI,CAAC,KAAK;SACpB;QACD,QAAQ;KACX,CAAC;AACN,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB,EAAE,WAAmB;IAC5D,MAAM,EAAE,GAAG,EAAE,GAAG,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACxD,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,QAAgB,EAAE,IAAiB;IAC/D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACjF,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,eAAe,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC1F,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,2BAA2B,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACpF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,GAAG,KAAK,MAAM,KAAK,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,aAAa,CACxB,QAAgB,EAChB,GAAW;IAEX,IAAI,CAAC;QACD,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;YACnB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;YACzC,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC;AAED,SAAS,UAAU,CAAC,GAAuB;IACvC,IAAI,CAAC,GAAG;QAAE,OAAO,OAAO,CAAC;IACzB,sEAAsE;IACtE,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,MAAM,IAAI,QAAQ,CACd,QAAQ,CAAC,UAAU,EACnB,6BAA6B,GAAG,wCAAwC,CAC3E,CAAC;IACN,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,+CAA+C;AAC/C,EAAE;AACF,cAAc;AACd,mEAAmE;AACnE,wCAAwC;AACxC,yDAAyD;AACzD,EAAE;AACF,0EAA0E;AAC1E,yEAAyE;AACzE,oEAAoE;AACpE,0DAA0D;AAC1D,SAAS,aAAa,CAAC,IAAsB;IACzC,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG;QAAE,OAAO,SAAS,CAAC;IACvC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,MAAM,CAAC,GAAG,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,CAAC,EAAE,CAAC;YACL,MAAM,IAAI,QAAQ,CACd,QAAQ,CAAC,UAAU,EACnB,2BAA2B,IAAI,CAAC,GAAG,gCAAgC,CACtE,CAAC;QACN,CAAC;QACD,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9F,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;IACzB,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;AAC/F,CAAC;AAED,SAAS,UAAU,CAAC,GAAuB;IACvC,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,QAAQ,CACd,QAAQ,CAAC,UAAU,EACnB,6BAA6B,GAAG,+BAA+B,CAClE,CAAC;IACN,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAuB;IAC7C,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAChC,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IACpF,MAAM,IAAI,QAAQ,CACd,QAAQ,CAAC,UAAU,EACnB,mCAAmC,GAAG,2CAA2C,CACpF,CAAC;AACN,CAAC;AAED,SAAS,WAAW,CAAC,GAAuB;IACxC,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,uBAAuB;IAC5E,IAAI,CAAC;QACD,OAAO,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,8BAA8B,GAAG,MAAM,OAAO,EAAE,CAAC,CAAC;IAC9F,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CACrB,MAAyC,EACzC,GAAW;IAEX,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACzD,CAAC;AAED,SAAS,cAAc,CAAC,MAAyC,EAAE,GAAW;IAC1E,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,OAAO,KAAK,KAAK,IAAI,CAAC;AAC1B,CAAC;AAED,SAAS,aAAa,CAAC,GAAuB;IAC1C,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;QACzC,MAAM,IAAI,QAAQ,CACd,QAAQ,CAAC,UAAU,EACnB,6BAA6B,GAAG,8BAA8B,CACjE,CAAC;IACN,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,eAAe,CACpB,WAAoD,EACpD,MAAwB,EACxB,WAAmB,EACnB,cAAsB;IAEtB,MAAM,OAAO,GAAG,IAAI,GAAG,CAA2B,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE;QAC7D,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI;QACpC,cAAc;KACjB,CAAC,CAAC;IACH,IAAI,QAAQ;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACrC,OAAO,KAAK,EAAE,GAAW,EAAE,EAAE;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,SAAS,GAAG,uBAAuB,SAAS,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,EAAE,KAAK,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC;IAC7F,CAAC,CAAC;AACN,CAAC;AAED,SAAS,SAAS,CAAC,CAAS;IACxB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1C,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,eAAe,CAAC;IAC3C,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,WAAW,CAAC;IACvC,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO;QAAE,OAAO,YAAY,CAAC;IAC3D,IAAI,GAAG,KAAK,OAAO;QAAE,OAAO,YAAY,CAAC;IACzC,OAAO,0BAA0B,CAAC;AACtC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/core/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,KAAK,eAAe,EAAO,MAAM,SAAS,CAAC;AAOpD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE/E,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IACxB,GAAG,EAAE,WAAW,CAAC;IACjB,QAAQ,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;IACvC,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,wFAAwF;IACxF,SAAS,EAAE,OAAO,CAAC;IACnB,gGAAgG;IAChG,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,gBAAgB,CAAC;CAC5B;AAED,KAAK,QAAQ,GAAG;IACZ,MAAM,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC3D,OAAO,EAAE,eAAe,CAAC;CAC5B,CAAC;AAKF,wBAAgB,WAAW,IAAI,QAAQ,CAGtC;AAED,wBAAsB,WAAW,CAC7B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,YAAiB,GAC3B,OAAO,CAAC,WAAW,CAAC,CAqCtB"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/core/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,qBAAqB,EACrB,KAAK,WAAW,EAChB,KAAK,eAAe,EACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,KAAK,eAAe,EAAO,MAAM,SAAS,CAAC;AAEpD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE/E,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IACxB,GAAG,EAAE,WAAW,CAAC;IACjB,QAAQ,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;IACvC,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,wFAAwF;IACxF,SAAS,EAAE,OAAO,CAAC;IACnB,gGAAgG;IAChG,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,gBAAgB,CAAC;CAC5B;AAED,KAAK,QAAQ,GAAG;IACZ,MAAM,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC3D,OAAO,EAAE,eAAe,CAAC;CAC5B,CAAC;AAKF,wBAAgB,WAAW,IAAI,QAAQ,CAGtC;AAED,wBAAsB,WAAW,CAC7B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,YAAiB,GAC3B,OAAO,CAAC,WAAW,CAAC,CAyCtB"}
@@ -1,6 +1,6 @@
1
- import { createNowlineServices } from '@nowline/core';
1
+ import { collectDocumentDiagnostics, createNowlineServices, } from '@nowline/core';
2
2
  import { URI } from 'langium';
3
- import { adaptLangiumDiagnostic, adaptLexerError, adaptParserError, } from '../diagnostics/adapt.js';
3
+ import { adaptLangiumDiagnostic, adaptLexerError, adaptParserError } from '../diagnostics/adapt.js';
4
4
  let cachedServices;
5
5
  let docCounter = 0;
6
6
  export function getServices() {
@@ -19,18 +19,24 @@ export async function parseSource(contents, filePath, options = {}) {
19
19
  const source = { file: filePath, contents };
20
20
  const diagnostics = [];
21
21
  const parseDiagnostics = [];
22
- for (const err of doc.parseResult.lexerErrors) {
23
- const adapted = adaptLexerError(err, filePath);
24
- parseDiagnostics.push(adapted);
25
- diagnostics.push(adapted);
26
- }
27
- for (const err of doc.parseResult.parserErrors) {
28
- const adapted = adaptParserError(err, filePath);
29
- parseDiagnostics.push(adapted);
30
- diagnostics.push(adapted);
31
- }
32
- for (const diag of doc.diagnostics ?? []) {
33
- diagnostics.push(adaptLangiumDiagnostic(diag, filePath));
22
+ // collectDocumentDiagnostics owns the de-dup: Langium re-folds lexer +
23
+ // parser errors into doc.diagnostics, so the shared collector skips those
24
+ // copies. Lexer/parser rows also feed `parseDiagnostics` (drives the
25
+ // hasParseErrors gate that suppresses downstream layout/render).
26
+ for (const raw of collectDocumentDiagnostics(doc)) {
27
+ if (raw.origin === 'lexer') {
28
+ const adapted = adaptLexerError(raw.error, filePath);
29
+ parseDiagnostics.push(adapted);
30
+ diagnostics.push(adapted);
31
+ }
32
+ else if (raw.origin === 'parser') {
33
+ const adapted = adaptParserError(raw.error, filePath);
34
+ parseDiagnostics.push(adapted);
35
+ diagnostics.push(adapted);
36
+ }
37
+ else {
38
+ diagnostics.push(adaptLangiumDiagnostic(raw.diagnostic, filePath));
39
+ }
34
40
  }
35
41
  const hasErrors = diagnostics.some((d) => d.severity === 'error');
36
42
  const hasParseErrors = parseDiagnostics.some((d) => d.severity === 'error');
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/core/parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/core/parse.ts"],"names":[],"mappings":"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"}
@@ -1,46 +1,6 @@
1
+ import { type LangiumLikeDiagnostic, type LexerErrorLike, type ParserErrorLike } from '@nowline/core';
1
2
  import type { CliDiagnostic } from './model.js';
2
- export interface LangiumLikeDiagnostic {
3
- message: string;
4
- severity?: number;
5
- code?: string | number;
6
- range?: {
7
- start: {
8
- line: number;
9
- character: number;
10
- };
11
- end: {
12
- line: number;
13
- character: number;
14
- };
15
- };
16
- /**
17
- * Validator's stash for re-formattable messages. The shape is
18
- * `{ code: MessageCode, args: MessageArgs<K> }`; we keep it
19
- * `unknown` here to avoid coupling the CLI's diagnostic adapter
20
- * to `@nowline/core`'s internal i18n types.
21
- */
22
- data?: unknown;
23
- }
24
- interface ChevrotainParserError {
25
- message: string;
26
- token?: {
27
- startLine?: number;
28
- startColumn?: number;
29
- startOffset?: number;
30
- endLine?: number;
31
- endColumn?: number;
32
- endOffset?: number;
33
- };
34
- }
35
- interface ChevrotainLexerError {
36
- message: string;
37
- line?: number;
38
- column?: number;
39
- offset?: number;
40
- length?: number;
41
- }
42
3
  export declare function adaptLangiumDiagnostic(diag: LangiumLikeDiagnostic, file: string): CliDiagnostic;
43
- export declare function adaptParserError(err: ChevrotainParserError, file: string): CliDiagnostic;
44
- export declare function adaptLexerError(err: ChevrotainLexerError, file: string): CliDiagnostic;
45
- export {};
4
+ export declare function adaptParserError(err: ParserErrorLike, file: string): CliDiagnostic;
5
+ export declare function adaptLexerError(err: LexerErrorLike, file: string): CliDiagnostic;
46
6
  //# sourceMappingURL=adapt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapt.d.ts","sourceRoot":"","sources":["../../src/diagnostics/adapt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAA4C,MAAM,YAAY,CAAC;AAK1F,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE;QACJ,KAAK,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC;QAC3C,GAAG,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC;KAC5C,CAAC;IACF;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB;AAGD,UAAU,qBAAqB;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QACJ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACL;AAED,UAAU,oBAAoB;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CA0B/F;AAgBD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAcxF;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAgBtF"}
1
+ {"version":3,"file":"adapt.d.ts","sourceRoot":"","sources":["../../src/diagnostics/adapt.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,eAAe,EAEvB,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"}
@@ -1,16 +1,16 @@
1
+ import { extractSuggestion, resolveDiagnosticCode, } from '@nowline/core';
1
2
  export function adaptLangiumDiagnostic(diag, file) {
2
3
  const severity = mapSeverity(diag.severity);
3
4
  const line = (diag.range?.start.line ?? 0) + 1;
4
5
  const column = (diag.range?.start.character ?? 0) + 1;
5
- const data = extractMessageData(diag.data);
6
6
  return {
7
7
  file,
8
8
  line,
9
9
  column,
10
10
  severity,
11
- // Localized validator data carries the stable message code; prefer it
12
- // over the heuristic message-substring inference below.
13
- code: data?.code ?? diagnosticCode(diag),
11
+ // resolveDiagnosticCode prefers the stable validator code carried in
12
+ // `data`, then Langium's `code`, then a message heuristic.
13
+ code: resolveDiagnosticCode(diag),
14
14
  message: diag.message,
15
15
  span: diag.range
16
16
  ? {
@@ -22,7 +22,9 @@ export function adaptLangiumDiagnostic(diag, file) {
22
22
  }
23
23
  : undefined,
24
24
  suggestion: extractSuggestion(diag.message),
25
- data,
25
+ // The CLI keeps the full { code, args } so formatDiagnostics can
26
+ // re-render the message in the operator's locale at print time.
27
+ data: extractMessageData(diag.data),
26
28
  };
27
29
  }
28
30
  /**
@@ -76,34 +78,4 @@ export function adaptLexerError(err, file) {
76
78
  function mapSeverity(severity) {
77
79
  return severity === 2 ? 'warning' : 'error';
78
80
  }
79
- function diagnosticCode(diag) {
80
- if (typeof diag.code === 'string' && diag.code !== '')
81
- return diag.code;
82
- if (typeof diag.code === 'number')
83
- return String(diag.code);
84
- return inferCodeFromMessage(diag.message);
85
- }
86
- function inferCodeFromMessage(message) {
87
- const lower = message.toLowerCase();
88
- if (lower.includes('duplicate identifier'))
89
- return 'duplicate-identifier';
90
- if (lower.includes('unknown reference') || lower.includes('did you mean'))
91
- return 'unknown-reference';
92
- if (lower.includes('circular'))
93
- return 'circular-dependency';
94
- if (lower.includes('requires') && lower.includes('date:'))
95
- return 'missing-date';
96
- if (lower.includes('duration'))
97
- return 'duration';
98
- if (lower.includes('include'))
99
- return 'include';
100
- if (lower.includes('indent'))
101
- return 'indentation';
102
- return 'validation';
103
- }
104
- const DID_YOU_MEAN_RE = /did you mean ['"]?([^'"?]+)['"]?\??/i;
105
- function extractSuggestion(message) {
106
- const match = message.match(DID_YOU_MEAN_RE);
107
- return match ? match[1].trim() : undefined;
108
- }
109
81
  //# 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.4.2";
1
+ export declare const CLI_VERSION = "0.5.1";
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.4.2";
2
+ export const CLI_VERSION = "0.5.1";
3
3
  export const CLI_BUILD = {
4
- "sha": "1625fac",
4
+ "sha": "fc40638",
5
5
  "isRelease": true,
6
6
  "isDirty": false
7
7
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nowline/cli",
3
- "version": "0.4.2",
3
+ "version": "0.5.1",
4
4
  "description": "Nowline command-line interface — validate, convert, init",
5
5
  "license": "Apache-2.0",
6
6
  "engines": {
@@ -37,17 +37,17 @@
37
37
  "consola": "^3.4.2",
38
38
  "js-yaml": "^4.1.1",
39
39
  "langium": "~4.2.4",
40
- "@nowline/config": "0.4.2",
41
- "@nowline/export-core": "0.4.2",
42
- "@nowline/export-html": "0.4.2",
43
- "@nowline/export-mermaid": "0.4.2",
44
- "@nowline/core": "0.4.2",
45
- "@nowline/export-msproj": "0.4.2",
46
- "@nowline/export-pdf": "0.4.2",
47
- "@nowline/export-png": "0.4.2",
48
- "@nowline/export-xlsx": "0.4.2",
49
- "@nowline/layout": "0.4.2",
50
- "@nowline/renderer": "0.4.2"
40
+ "@nowline/config": "0.5.1",
41
+ "@nowline/core": "0.5.1",
42
+ "@nowline/export-html": "0.5.1",
43
+ "@nowline/export-core": "0.5.1",
44
+ "@nowline/export-msproj": "0.5.1",
45
+ "@nowline/export-mermaid": "0.5.1",
46
+ "@nowline/export-pdf": "0.5.1",
47
+ "@nowline/export-xlsx": "0.5.1",
48
+ "@nowline/export-png": "0.5.1",
49
+ "@nowline/layout": "0.5.1",
50
+ "@nowline/renderer": "0.5.1"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@types/babel__code-frame": "^7.27.0",
package/src/cli/help.ts CHANGED
@@ -36,7 +36,7 @@ MODE FLAGS (mutually exclusive)
36
36
  'validate' verb. Exit 0 on success, 1 on errors.
37
37
 
38
38
  RENDER OPTIONS
39
- -t, --theme <name> light | dark
39
+ -t, --theme <name> light | dark | grayscale (greyscale alias)
40
40
  --now <YYYY-MM-DD> Date for the now-line. Default: today.
41
41
  Use --now - to suppress the now-line.
42
42
  --no-links Omit link icons from rendered items.
@@ -2,7 +2,7 @@ import { promises as fs } from 'node:fs';
2
2
  import * as path from 'node:path';
3
3
  import { resolveIncludes } from '@nowline/core';
4
4
  import { lengthToPoints, parseLength } from '@nowline/export-core';
5
- import { layoutRoadmap, type ThemeName } from '@nowline/layout';
5
+ import { layoutRoadmap, normalizeThemeName, type ThemeName } from '@nowline/layout';
6
6
  import { type AssetResolver, renderSvg } from '@nowline/renderer';
7
7
  import type { ParsedArgs } from '../cli/args.js';
8
8
  import {
@@ -432,14 +432,15 @@ async function loadConfigFor(
432
432
 
433
433
  function parseTheme(raw: string | undefined): ThemeName {
434
434
  if (!raw) return 'light';
435
- const lower = raw.toLowerCase();
436
- if (lower !== 'light' && lower !== 'dark') {
435
+ // `greyscale` (UK) is accepted and canonicalized to `grayscale` (US).
436
+ const theme = normalizeThemeName(raw);
437
+ if (!theme) {
437
438
  throw new CliError(
438
439
  ExitCode.InputError,
439
- `nowline: invalid --theme "${raw}". Expected light or dark.`,
440
+ `nowline: invalid --theme "${raw}". Expected light, dark, or grayscale.`,
440
441
  );
441
442
  }
442
- return lower;
443
+ return theme;
443
444
  }
444
445
 
445
446
  // Resolve the now-line date from the CLI flag.
package/src/core/parse.ts CHANGED
@@ -1,11 +1,11 @@
1
- import { createNowlineServices, type NowlineFile, type NowlineServices } from '@nowline/core';
2
- import { type LangiumDocument, URI } from 'langium';
3
1
  import {
4
- adaptLangiumDiagnostic,
5
- adaptLexerError,
6
- adaptParserError,
7
- type LangiumLikeDiagnostic,
8
- } from '../diagnostics/adapt.js';
2
+ collectDocumentDiagnostics,
3
+ createNowlineServices,
4
+ type NowlineFile,
5
+ type NowlineServices,
6
+ } from '@nowline/core';
7
+ import { type LangiumDocument, URI } from 'langium';
8
+ import { adaptLangiumDiagnostic, adaptLexerError, adaptParserError } from '../diagnostics/adapt.js';
9
9
  import type { CliDiagnostic, DiagnosticSource } from '../diagnostics/model.js';
10
10
 
11
11
  export interface ParseOptions {
@@ -53,18 +53,22 @@ export async function parseSource(
53
53
  const diagnostics: CliDiagnostic[] = [];
54
54
  const parseDiagnostics: CliDiagnostic[] = [];
55
55
 
56
- for (const err of doc.parseResult.lexerErrors) {
57
- const adapted = adaptLexerError(err, filePath);
58
- parseDiagnostics.push(adapted);
59
- diagnostics.push(adapted);
60
- }
61
- for (const err of doc.parseResult.parserErrors) {
62
- const adapted = adaptParserError(err, filePath);
63
- parseDiagnostics.push(adapted);
64
- diagnostics.push(adapted);
65
- }
66
- for (const diag of doc.diagnostics ?? []) {
67
- diagnostics.push(adaptLangiumDiagnostic(diag as LangiumLikeDiagnostic, filePath));
56
+ // collectDocumentDiagnostics owns the de-dup: Langium re-folds lexer +
57
+ // parser errors into doc.diagnostics, so the shared collector skips those
58
+ // copies. Lexer/parser rows also feed `parseDiagnostics` (drives the
59
+ // hasParseErrors gate that suppresses downstream layout/render).
60
+ for (const raw of collectDocumentDiagnostics(doc)) {
61
+ if (raw.origin === 'lexer') {
62
+ const adapted = adaptLexerError(raw.error, filePath);
63
+ parseDiagnostics.push(adapted);
64
+ diagnostics.push(adapted);
65
+ } else if (raw.origin === 'parser') {
66
+ const adapted = adaptParserError(raw.error, filePath);
67
+ parseDiagnostics.push(adapted);
68
+ diagnostics.push(adapted);
69
+ } else {
70
+ diagnostics.push(adaptLangiumDiagnostic(raw.diagnostic, filePath));
71
+ }
68
72
  }
69
73
 
70
74
  const hasErrors = diagnostics.some((d) => d.severity === 'error');
@@ -1,59 +1,24 @@
1
+ import {
2
+ extractSuggestion,
3
+ type LangiumLikeDiagnostic,
4
+ type LexerErrorLike,
5
+ type ParserErrorLike,
6
+ resolveDiagnosticCode,
7
+ } from '@nowline/core';
1
8
  import type { CliDiagnostic, DiagnosticSeverity, LocalizedMessageData } from './model.js';
2
9
 
3
- // Minimal LSP-style diagnostic shape. Langium re-exports vscode-languageserver-types'
4
- // Diagnostic internally; we keep a narrow local type to avoid a direct coupling and
5
- // to survive cross-version type relocations.
6
- export interface LangiumLikeDiagnostic {
7
- message: string;
8
- severity?: number;
9
- code?: string | number;
10
- range?: {
11
- start: { line: number; character: number };
12
- end: { line: number; character: number };
13
- };
14
- /**
15
- * Validator's stash for re-formattable messages. The shape is
16
- * `{ code: MessageCode, args: MessageArgs<K> }`; we keep it
17
- * `unknown` here to avoid coupling the CLI's diagnostic adapter
18
- * to `@nowline/core`'s internal i18n types.
19
- */
20
- data?: unknown;
21
- }
22
-
23
- // Minimal shapes for chevrotain parser/lexer errors to avoid pulling chevrotain types.
24
- interface ChevrotainParserError {
25
- message: string;
26
- token?: {
27
- startLine?: number;
28
- startColumn?: number;
29
- startOffset?: number;
30
- endLine?: number;
31
- endColumn?: number;
32
- endOffset?: number;
33
- };
34
- }
35
-
36
- interface ChevrotainLexerError {
37
- message: string;
38
- line?: number;
39
- column?: number;
40
- offset?: number;
41
- length?: number;
42
- }
43
-
44
10
  export function adaptLangiumDiagnostic(diag: LangiumLikeDiagnostic, file: string): CliDiagnostic {
45
11
  const severity = mapSeverity(diag.severity);
46
12
  const line = (diag.range?.start.line ?? 0) + 1;
47
13
  const column = (diag.range?.start.character ?? 0) + 1;
48
- const data = extractMessageData(diag.data);
49
14
  return {
50
15
  file,
51
16
  line,
52
17
  column,
53
18
  severity,
54
- // Localized validator data carries the stable message code; prefer it
55
- // over the heuristic message-substring inference below.
56
- code: data?.code ?? diagnosticCode(diag),
19
+ // resolveDiagnosticCode prefers the stable validator code carried in
20
+ // `data`, then Langium's `code`, then a message heuristic.
21
+ code: resolveDiagnosticCode(diag),
57
22
  message: diag.message,
58
23
  span: diag.range
59
24
  ? {
@@ -65,7 +30,9 @@ export function adaptLangiumDiagnostic(diag: LangiumLikeDiagnostic, file: string
65
30
  }
66
31
  : undefined,
67
32
  suggestion: extractSuggestion(diag.message),
68
- data,
33
+ // The CLI keeps the full { code, args } so formatDiagnostics can
34
+ // re-render the message in the operator's locale at print time.
35
+ data: extractMessageData(diag.data),
69
36
  };
70
37
  }
71
38
 
@@ -83,7 +50,7 @@ function extractMessageData(data: unknown): LocalizedMessageData | undefined {
83
50
  return { code: obj.code, args: obj.args };
84
51
  }
85
52
 
86
- export function adaptParserError(err: ChevrotainParserError, file: string): CliDiagnostic {
53
+ export function adaptParserError(err: ParserErrorLike, file: string): CliDiagnostic {
87
54
  const line = err.token?.startLine ?? 1;
88
55
  const column = err.token?.startColumn ?? 1;
89
56
  const endLine = err.token?.endLine ?? line;
@@ -99,7 +66,7 @@ export function adaptParserError(err: ChevrotainParserError, file: string): CliD
99
66
  };
100
67
  }
101
68
 
102
- export function adaptLexerError(err: ChevrotainLexerError, file: string): CliDiagnostic {
69
+ export function adaptLexerError(err: LexerErrorLike, file: string): CliDiagnostic {
103
70
  const line = err.line ?? 1;
104
71
  const column = err.column ?? 1;
105
72
  const length = err.length ?? 1;
@@ -120,29 +87,3 @@ export function adaptLexerError(err: ChevrotainLexerError, file: string): CliDia
120
87
  function mapSeverity(severity: number | undefined): DiagnosticSeverity {
121
88
  return severity === 2 ? 'warning' : 'error';
122
89
  }
123
-
124
- function diagnosticCode(diag: LangiumLikeDiagnostic): string {
125
- if (typeof diag.code === 'string' && diag.code !== '') return diag.code;
126
- if (typeof diag.code === 'number') return String(diag.code);
127
- return inferCodeFromMessage(diag.message);
128
- }
129
-
130
- function inferCodeFromMessage(message: string): string {
131
- const lower = message.toLowerCase();
132
- if (lower.includes('duplicate identifier')) return 'duplicate-identifier';
133
- if (lower.includes('unknown reference') || lower.includes('did you mean'))
134
- return 'unknown-reference';
135
- if (lower.includes('circular')) return 'circular-dependency';
136
- if (lower.includes('requires') && lower.includes('date:')) return 'missing-date';
137
- if (lower.includes('duration')) return 'duration';
138
- if (lower.includes('include')) return 'include';
139
- if (lower.includes('indent')) return 'indentation';
140
- return 'validation';
141
- }
142
-
143
- const DID_YOU_MEAN_RE = /did you mean ['"]?([^'"?]+)['"]?\??/i;
144
-
145
- function extractSuggestion(message: string): string | undefined {
146
- const match = message.match(DID_YOU_MEAN_RE);
147
- return match ? match[1].trim() : undefined;
148
- }
@@ -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.4.2";
3
+ export const CLI_VERSION = "0.5.1";
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": "1625fac",
15
+ "sha": "fc40638",
16
16
  "isRelease": true,
17
17
  "isDirty": false
18
18
  };