@kgdiff/cli 0.4.0 → 0.5.0
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/README.md +21 -4
- package/dist/args.d.ts +5 -0
- package/dist/args.d.ts.map +1 -1
- package/dist/args.js +6 -0
- package/dist/args.js.map +1 -1
- package/dist/diff-command.d.ts.map +1 -1
- package/dist/diff-command.js +7 -1
- package/dist/diff-command.js.map +1 -1
- package/dist/errors.d.ts +8 -2
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +21 -4
- package/dist/errors.js.map +1 -1
- package/dist/help.d.ts.map +1 -1
- package/dist/help.js +5 -0
- package/dist/help.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/io.d.ts +5 -0
- package/dist/io.d.ts.map +1 -1
- package/dist/locale.d.ts +34 -1
- package/dist/locale.d.ts.map +1 -1
- package/dist/locale.js +65 -0
- package/dist/locale.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +5 -2
- package/dist/main.js.map +1 -1
- package/dist/markdown.d.ts +12 -2
- package/dist/markdown.d.ts.map +1 -1
- package/dist/markdown.js +94 -11
- package/dist/markdown.js.map +1 -1
- package/dist/model.d.ts +42 -2
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +82 -0
- package/dist/model.js.map +1 -1
- package/dist/node-io.d.ts.map +1 -1
- package/dist/node-io.js +1 -0
- package/dist/node-io.js.map +1 -1
- package/dist/report.d.ts +1 -1
- package/dist/report.d.ts.map +1 -1
- package/dist/report.js +3 -3
- package/dist/report.js.map +1 -1
- package/dist/summary.d.ts +19 -4
- package/dist/summary.d.ts.map +1 -1
- package/dist/summary.js +105 -19
- package/dist/summary.js.map +1 -1
- package/package.json +6 -6
- package/src/args.ts +14 -0
- package/src/diff-command.ts +7 -1
- package/src/errors.ts +30 -4
- package/src/help.ts +5 -0
- package/src/index.ts +2 -0
- package/src/io.ts +5 -0
- package/src/locale.ts +123 -1
- package/src/main.ts +5 -2
- package/src/markdown.ts +128 -12
- package/src/model.ts +115 -2
- package/src/node-io.ts +1 -0
- package/src/report.ts +3 -3
- package/src/summary.ts +145 -22
package/dist/report.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,KAAK,UAAU,EAAc,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,KAAK,UAAU,EAAc,KAAK,MAAM,EAAgB,MAAM,cAAc,CAAC;AACtF,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG9F,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,2BAA2B;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,uDAAuD;IACvD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;QAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;QAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;QACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED,yFAAyF;AACzF,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,aAAa,CAAC,CAuBxB;AAED;;;GAGG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,UAAU,KAAK,UAAU,CAAC,CAO5E;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAE5D;AAED,MAAM,WAAW,aAAa;IAC5B,oCAAoC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACrD;AAED,qCAAqC;AACrC,wBAAsB,eAAe,CACnC,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,CAUjB"}
|
package/dist/report.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Build the `ReportPayload` embedded in HTML reports: diff (`
|
|
2
|
+
* Build the `ReportPayload` embedded in HTML reports: packed diff (`packDiffJSON`) + layout
|
|
3
3
|
* (`layoutToJSON`) + meta + initial view preferences. `@kgdiff/layout` and `node:zlib` are
|
|
4
4
|
* loaded on demand, so text outputs never pay for them.
|
|
5
5
|
*/
|
|
6
|
-
import { diffToJSON } from '@kgdiff/core';
|
|
6
|
+
import { diffToJSON, packDiffJSON } from '@kgdiff/core';
|
|
7
7
|
import { renderReportHtml } from './html.js';
|
|
8
8
|
/** Lay out the diff and assemble the payload. Deterministic apart from `generatedAt`. */
|
|
9
9
|
export async function buildReportPayload(diff, info) {
|
|
@@ -13,7 +13,7 @@ export async function buildReportPayload(diff, info) {
|
|
|
13
13
|
return {
|
|
14
14
|
format: 'kgdiff.report',
|
|
15
15
|
version: 1,
|
|
16
|
-
diff: diffToJSON(diff),
|
|
16
|
+
diff: packDiffJSON(diffToJSON(diff)),
|
|
17
17
|
layout,
|
|
18
18
|
meta: {
|
|
19
19
|
title: info.title,
|
package/dist/report.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.js","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAmB,UAAU,EAAe,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAmB,UAAU,EAAe,YAAY,EAAE,MAAM,cAAc,CAAC;AAEtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAkB7C,yFAAyF;AACzF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAgB,EAChB,IAAgB;IAEhB,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;IACjD,OAAO;QACL,MAAM,EAAE,eAAe;QACvB,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM;QACN,IAAI,EAAE;YACJ,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB;QACD,IAAI,EAAE;YACJ,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,MAAM;SACP;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IAC1D,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,kBAAkB,EAAE,CAAC,CAAC;QACpE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACd,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,OAAsB;IACjD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC;AAC5C,CAAC;AAYD,qCAAqC;AACrC,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAgB,EAChB,IAAgB,EAChB,OAAsB,EACtB,WAAmB;IAEnB,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5E,OAAO,gBAAgB,CAAC;QACtB,OAAO;QACP,MAAM,EAAE,OAAO,CAAC,IAAI;QACpB,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,WAAW;QACX,IAAI,EAAE,MAAM,UAAU,EAAE;KACzB,CAAC,CAAC;AACL,CAAC"}
|
package/dist/summary.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Terminal outputs: the default summary (header, counters, diffstat bar, hunk list
|
|
3
|
-
* and `--name-status` (docs/cli.md §Terminal summary).
|
|
2
|
+
* Terminal outputs: the default summary (header, counters, diffstat bar, hunk list, possible
|
|
3
|
+
* matches), `--stat` and `--name-status` (docs/cli.md §Terminal summary).
|
|
4
4
|
*
|
|
5
5
|
* Every line is laid out on plain text first (measured with `stringWidth`, truncated with an
|
|
6
6
|
* ellipsis) and painted last, so alignment holds with and without color and with CJK labels.
|
|
@@ -16,20 +16,35 @@ export interface TextContext {
|
|
|
16
16
|
readonly width: number;
|
|
17
17
|
/** Maximum hunks listed in the summary; 0 lists all. */
|
|
18
18
|
readonly limit: number;
|
|
19
|
+
/**
|
|
20
|
+
* Attribute keys whose changes are flagged ⚑ for review first (`--watch-attr`). Default
|
|
21
|
+
* `DEFAULT_WATCH_ATTRS` (definitions); `[]` flags nothing.
|
|
22
|
+
*/
|
|
23
|
+
readonly watch?: readonly string[];
|
|
19
24
|
}
|
|
20
25
|
/** `179 → 184 nodes · 351 → 353 edges` (single numbers when a count did not change). */
|
|
21
26
|
export declare function totalsText(diff: DiffResult, m: Messages): string;
|
|
22
27
|
/** Proportional diffstat bar: one segment per phase, sized by changed elements. */
|
|
23
28
|
export declare function diffstatBar(ov: Overview, width: number, paint: Painter): string;
|
|
29
|
+
/** Possible matches listed before "… and N more" (all with `--limit 0`). */
|
|
30
|
+
export declare const POSSIBLE_LIMIT = 10;
|
|
24
31
|
/**
|
|
25
32
|
* The default terminal output: header (title, node and edge totals), per-phase counters, a
|
|
26
33
|
* proportional diffstat bar, then the hunks grouped by phase with glyph, title and a family /
|
|
27
34
|
* summary column. At most `ctx.limit` hunks are listed (0 = all), then "… and N more".
|
|
35
|
+
* Hunks that change a watched attribute (`ctx.watch`, definitions by default) are marked
|
|
36
|
+
* `⚑ definition` before their summary, and a line under the bar counts them.
|
|
37
|
+
*
|
|
38
|
+
* Last come the possible matches: pairings kgdiff considered but did not apply, between a node
|
|
39
|
+
* listed as removed and one listed as added (`possibleMatches`), with their score, why they were
|
|
40
|
+
* not applied, the evidence, and how to pair one. At most `POSSIBLE_LIMIT` (all with
|
|
41
|
+
* `--limit 0`).
|
|
28
42
|
*/
|
|
29
43
|
export declare function renderSummary(diff: DiffResult, title: string, ctx: TextContext): string;
|
|
30
44
|
/**
|
|
31
|
-
* `--stat`: header, counters and bar
|
|
32
|
-
* table, and a git-style per-type
|
|
45
|
+
* `--stat`: header, counters and bar (with the review-first line, as in the summary), a
|
|
46
|
+
* nodes / edges × added / removed / modified / unchanged table, and a git-style per-type
|
|
47
|
+
* breakdown (`+` added, `−` removed, `~` modified nodes).
|
|
33
48
|
*/
|
|
34
49
|
export declare function renderStat(diff: DiffResult, title: string, ctx: TextContext): string;
|
|
35
50
|
/**
|
package/dist/summary.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,KAAK,UAAU,EAAyB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAa,KAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,KAAK,UAAU,EAAyB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAa,KAAK,QAAQ,EAAyB,MAAM,aAAa,CAAC;AAC9E,OAAO,EASL,KAAK,QAAQ,EAQd,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAG1C,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qCAAqC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAwCD,wFAAwF;AACxF,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAGhE;AAuED,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAY/E;AAkFD,4EAA4E;AAC5E,eAAO,MAAM,cAAc,KAAK,CAAC;AAoGjC;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM,CA+DvF;AAKD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM,CASpF;AAwFD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAuB7F"}
|
package/dist/summary.js
CHANGED
|
@@ -1,14 +1,34 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Terminal outputs: the default summary (header, counters, diffstat bar, hunk list
|
|
3
|
-
* and `--name-status` (docs/cli.md §Terminal summary).
|
|
2
|
+
* Terminal outputs: the default summary (header, counters, diffstat bar, hunk list, possible
|
|
3
|
+
* matches), `--stat` and `--name-status` (docs/cli.md §Terminal summary).
|
|
4
4
|
*
|
|
5
5
|
* Every line is laid out on plain text first (measured with `stringWidth`, truncated with an
|
|
6
6
|
* ellipsis) and painted last, so alignment holds with and without color and with CJK labels.
|
|
7
7
|
*/
|
|
8
8
|
import { formatHunk } from '@kgdiff/core';
|
|
9
|
-
import { formatInt, messages } from './locale.js';
|
|
10
|
-
import { apportion, COUNTER_PHASES, groupByPhase, hunkFamily, hunkGlyph, nameStatus, overview, PHASE_FAMILY, PHASE_GLYPH, } from './model.js';
|
|
9
|
+
import { formatInt, messages, watchLabels } from './locale.js';
|
|
10
|
+
import { apportion, COUNTER_PHASES, DEFAULT_WATCH_ATTRS, groupByPhase, hunkFamily, hunkGlyph, nameStatus, overview, PHASE_FAMILY, PHASE_GLYPH, percent, possibleMatches, watchedChanges, } from './model.js';
|
|
11
11
|
import { padEnd, padStart, sanitize, stringWidth, truncate, wrap } from './width.js';
|
|
12
|
+
/** Flag glyph of hunks that change a watched attribute. */
|
|
13
|
+
const FLAG = '⚑';
|
|
14
|
+
/** The watched attributes each hunk changes, for `ctx.watch` or the default definitions. */
|
|
15
|
+
function watchedOf(diff, ctx) {
|
|
16
|
+
return watchedChanges(diff, ctx.watch ?? DEFAULT_WATCH_ATTRS);
|
|
17
|
+
}
|
|
18
|
+
/** `⚑ Review first: definition changed in 10 hunks`, under the diffstat bar; none if no flags. */
|
|
19
|
+
function reviewFirstLines(watched, ctx, width) {
|
|
20
|
+
if (watched.size === 0)
|
|
21
|
+
return [];
|
|
22
|
+
const m = messages(ctx.locale);
|
|
23
|
+
const keys = new Set();
|
|
24
|
+
for (const list of watched.values())
|
|
25
|
+
for (const key of list)
|
|
26
|
+
keys.add(key);
|
|
27
|
+
const watchOrder = (ctx.watch ?? DEFAULT_WATCH_ATTRS).filter((k) => keys.has(k));
|
|
28
|
+
const text = m.watch.line(watchLabels(watchOrder, m), watched.size);
|
|
29
|
+
const room = width - INDENT.length - stringWidth(FLAG) - 1;
|
|
30
|
+
return [`${INDENT}${ctx.paint.tone('accent', FLAG)} ${truncate(sanitize(text), room)}`];
|
|
31
|
+
}
|
|
12
32
|
const INDENT = ' ';
|
|
13
33
|
const BRAND = 'kgdiff';
|
|
14
34
|
/** The layout never stretches beyond what it needs, nor below this width. */
|
|
@@ -99,7 +119,8 @@ export function diffstatBar(ov, width, paint) {
|
|
|
99
119
|
: paint.tone(PHASE_FAMILY[phase], '█'.repeat(n));
|
|
100
120
|
}).join('');
|
|
101
121
|
}
|
|
102
|
-
|
|
122
|
+
/** Counters, the diffstat bar, and the review-first line when a watched attribute changed. */
|
|
123
|
+
function statLines(ov, ctx, width, watched) {
|
|
103
124
|
const m = messages(ctx.locale);
|
|
104
125
|
const right = m.changes(ov.changes, ov.hunks);
|
|
105
126
|
const rows = counterLines(counterItems(ov, m, ctx.paint), width - INDENT.length);
|
|
@@ -107,6 +128,7 @@ function statLines(ov, ctx, width) {
|
|
|
107
128
|
const last = rows[rows.length - 1] ?? { plain: '', painted: '' };
|
|
108
129
|
lines.push(...spread({ plain: INDENT + last.plain, painted: INDENT + last.painted }, { plain: right, painted: ctx.paint.dim(right) }, width));
|
|
109
130
|
lines.push(INDENT + diffstatBar(ov, width, ctx.paint));
|
|
131
|
+
lines.push(...reviewFirstLines(watched, ctx, width));
|
|
110
132
|
return lines;
|
|
111
133
|
}
|
|
112
134
|
function identicalLines(diff, ctx, width) {
|
|
@@ -125,20 +147,43 @@ function identicalLines(diff, ctx, width) {
|
|
|
125
147
|
...wrap(detail, room).map((line) => INDENT + paint.dim(line)),
|
|
126
148
|
];
|
|
127
149
|
}
|
|
128
|
-
function rowsOf(diff, hunks, ctx) {
|
|
150
|
+
function rowsOf(diff, hunks, ctx, watched) {
|
|
129
151
|
const m = messages(ctx.locale);
|
|
130
152
|
return hunks.map((hunk) => {
|
|
131
153
|
const { title, subtitle } = formatHunk(hunk, diff, ctx.locale);
|
|
154
|
+
const keys = watched.get(hunk.id);
|
|
132
155
|
return {
|
|
133
|
-
hunk,
|
|
156
|
+
tone: hunkFamily(hunk),
|
|
134
157
|
glyph: hunkGlyph(hunk),
|
|
135
158
|
title: sanitize(title),
|
|
136
159
|
family: m.family[hunkFamily(hunk)],
|
|
160
|
+
...(keys ? { flag: sanitize(m.watch.marker(watchLabels(keys, m))) } : {}),
|
|
137
161
|
subtitle: sanitize(subtitle),
|
|
138
162
|
};
|
|
139
163
|
});
|
|
140
164
|
}
|
|
141
|
-
|
|
165
|
+
/** What follows the family label: ` · ⚑ definition · <subtitle>`, as plain text. */
|
|
166
|
+
const restText = (row) => (row.flag ? ` · ${FLAG} ${row.flag}` : '') + (row.subtitle ? ` · ${row.subtitle}` : '');
|
|
167
|
+
/** Glyph of a possible match: “maybe the same”. */
|
|
168
|
+
const POSSIBLE_GLYPH = '≈';
|
|
169
|
+
/** Possible matches listed before "… and N more" (all with `--limit 0`). */
|
|
170
|
+
export const POSSIBLE_LIMIT = 10;
|
|
171
|
+
/** Possible match rows: both names, then the score, why it was not applied and the evidence. */
|
|
172
|
+
function possibleRows(diff, list, ctx) {
|
|
173
|
+
const m = messages(ctx.locale);
|
|
174
|
+
const threshold = percent(diff.options.match.threshold);
|
|
175
|
+
return list.map((p) => ({
|
|
176
|
+
tone: 'identity',
|
|
177
|
+
glyph: POSSIBLE_GLYPH,
|
|
178
|
+
title: sanitize(m.possible.title(p.before, p.after)),
|
|
179
|
+
family: percent(p.score),
|
|
180
|
+
subtitle: sanitize([
|
|
181
|
+
p.reason === 'ambiguous' ? m.possible.ambiguous : m.possible.belowThreshold(threshold),
|
|
182
|
+
m.possible.evidence(percent(p.label), percent(p.neighbors)),
|
|
183
|
+
].join(' · ')),
|
|
184
|
+
}));
|
|
185
|
+
}
|
|
186
|
+
const rightText = (row) => row.family + restText(row);
|
|
142
187
|
/** Natural width of the hunk list (before any truncation). */
|
|
143
188
|
function listWidth(rows) {
|
|
144
189
|
let title = 0;
|
|
@@ -174,16 +219,24 @@ function listColumns(rows, width) {
|
|
|
174
219
|
}
|
|
175
220
|
function renderRow(row, cols, ctx) {
|
|
176
221
|
const { paint } = ctx;
|
|
177
|
-
const tone =
|
|
222
|
+
const tone = row.tone;
|
|
178
223
|
const glyph = paint.tone(tone, row.glyph);
|
|
179
224
|
if (cols.right === 0)
|
|
180
225
|
return `${INDENT}${glyph} ${truncate(row.title, cols.title)}`;
|
|
181
226
|
const title = padEnd(truncate(row.title, cols.title), cols.title);
|
|
182
227
|
const familyWidth = stringWidth(row.family);
|
|
183
228
|
const restRoom = cols.right - familyWidth;
|
|
184
|
-
const
|
|
229
|
+
const full = restText(row);
|
|
230
|
+
const rest = full && restRoom >= 6 ? truncate(full, restRoom) : '';
|
|
231
|
+
// The flag comes first, so it survives truncation, and keeps the accent colour; the summary
|
|
232
|
+
// after it is dimmed.
|
|
233
|
+
const flag = row.flag ? ` · ${FLAG} ${row.flag}` : '';
|
|
234
|
+
const flagShown = flag ? rest.slice(0, Math.min(rest.length, flag.length)) : '';
|
|
235
|
+
const painted = flagShown
|
|
236
|
+
? paint.dim(flagShown.slice(0, 3)) + paint.tone('accent', flagShown.slice(3))
|
|
237
|
+
: '';
|
|
185
238
|
return (`${INDENT}${glyph} ${title}${' '.repeat(COLUMN_GAP)}` +
|
|
186
|
-
`${paint.tone(tone, row.family)}${paint.dim(rest)}`);
|
|
239
|
+
`${paint.tone(tone, row.family)}${painted}${paint.dim(rest.slice(flagShown.length))}`);
|
|
187
240
|
}
|
|
188
241
|
/** Line width for a layout whose content naturally needs `natural` columns. */
|
|
189
242
|
function layoutWidth(natural, available) {
|
|
@@ -203,6 +256,13 @@ function headerNatural(diff, title, ctx, ov) {
|
|
|
203
256
|
* The default terminal output: header (title, node and edge totals), per-phase counters, a
|
|
204
257
|
* proportional diffstat bar, then the hunks grouped by phase with glyph, title and a family /
|
|
205
258
|
* summary column. At most `ctx.limit` hunks are listed (0 = all), then "… and N more".
|
|
259
|
+
* Hunks that change a watched attribute (`ctx.watch`, definitions by default) are marked
|
|
260
|
+
* `⚑ definition` before their summary, and a line under the bar counts them.
|
|
261
|
+
*
|
|
262
|
+
* Last come the possible matches: pairings kgdiff considered but did not apply, between a node
|
|
263
|
+
* listed as removed and one listed as added (`possibleMatches`), with their score, why they were
|
|
264
|
+
* not applied, the evidence, and how to pair one. At most `POSSIBLE_LIMIT` (all with
|
|
265
|
+
* `--limit 0`).
|
|
206
266
|
*/
|
|
207
267
|
export function renderSummary(diff, title, ctx) {
|
|
208
268
|
const ov = overview(diff);
|
|
@@ -210,38 +270,64 @@ export function renderSummary(diff, title, ctx) {
|
|
|
210
270
|
const width = layoutWidth(headerNatural(diff, title, ctx, ov), ctx.width);
|
|
211
271
|
return `${[...headerLines(diff, title, ctx, width), '', ...identicalLines(diff, ctx, width)].join('\n')}\n`;
|
|
212
272
|
}
|
|
273
|
+
const watched = watchedOf(diff, ctx);
|
|
213
274
|
const m = messages(ctx.locale);
|
|
275
|
+
const { paint } = ctx;
|
|
214
276
|
const groups = groupByPhase(diff.hunks);
|
|
215
277
|
let shown = 0;
|
|
216
278
|
const budget = ctx.limit > 0 ? ctx.limit : Number.POSITIVE_INFINITY;
|
|
217
279
|
const listed = groups.map((g) => {
|
|
218
280
|
const take = g.hunks.slice(0, Math.max(0, budget - shown));
|
|
219
281
|
shown += take.length;
|
|
220
|
-
return { phase: g.phase, total: g.hunks.length, rows: rowsOf(diff, take, ctx) };
|
|
282
|
+
return { phase: g.phase, total: g.hunks.length, rows: rowsOf(diff, take, ctx, watched) };
|
|
221
283
|
});
|
|
284
|
+
const possible = possibleMatches(diff);
|
|
285
|
+
const possibleShown = possible.slice(0, ctx.limit > 0 ? Math.min(ctx.limit, POSSIBLE_LIMIT) : possible.length);
|
|
286
|
+
const possibleList = possibleRows(diff, possibleShown, ctx);
|
|
222
287
|
const allRows = listed.flatMap((g) => g.rows);
|
|
223
|
-
const width = layoutWidth(Math.max(headerNatural(diff, title, ctx, ov), listWidth(allRows)), ctx.width);
|
|
288
|
+
const width = layoutWidth(Math.max(headerNatural(diff, title, ctx, ov), listWidth(allRows), listWidth(possibleList)), ctx.width);
|
|
224
289
|
const cols = listColumns(allRows, width);
|
|
225
|
-
|
|
290
|
+
// Columns of their own: hunk titles are often long, and the reason and evidence matter more
|
|
291
|
+
// here than lining up with the hunks above (the section has its own heading).
|
|
292
|
+
const possibleCols = listColumns(possibleList, width);
|
|
293
|
+
const lines = [
|
|
294
|
+
...headerLines(diff, title, ctx, width),
|
|
295
|
+
'',
|
|
296
|
+
...statLines(ov, ctx, width, watched),
|
|
297
|
+
'',
|
|
298
|
+
];
|
|
226
299
|
for (const group of listed) {
|
|
227
300
|
if (group.rows.length === 0)
|
|
228
301
|
continue;
|
|
229
|
-
lines.push(`${INDENT}${
|
|
302
|
+
lines.push(`${INDENT}${paint.bold(m.phase[group.phase])} ${paint.dim(formatInt(group.total))}`);
|
|
230
303
|
for (const row of group.rows)
|
|
231
304
|
lines.push(renderRow(row, cols, ctx));
|
|
232
305
|
}
|
|
233
306
|
const hidden = ov.hunks - shown;
|
|
234
307
|
if (hidden > 0) {
|
|
235
308
|
const more = `${m.more(hidden)} · ${m.moreHint}`;
|
|
236
|
-
lines.push(INDENT +
|
|
309
|
+
lines.push(INDENT + paint.dim(truncate(more, width - INDENT.length)));
|
|
310
|
+
}
|
|
311
|
+
if (possible.length > 0) {
|
|
312
|
+
lines.push('', `${INDENT}${paint.bold(m.possible.heading)} ${paint.dim(formatInt(possible.length))}`);
|
|
313
|
+
for (const row of possibleList)
|
|
314
|
+
lines.push(renderRow(row, possibleCols, ctx));
|
|
315
|
+
const notListed = possible.length - possibleShown.length;
|
|
316
|
+
if (notListed > 0) {
|
|
317
|
+
lines.push(INDENT + paint.dim(truncate(m.possible.more(notListed), width - INDENT.length)));
|
|
318
|
+
}
|
|
319
|
+
for (const line of wrap(m.possible.hint, width - INDENT.length)) {
|
|
320
|
+
lines.push(INDENT + paint.dim(line));
|
|
321
|
+
}
|
|
237
322
|
}
|
|
238
323
|
return `${lines.join('\n')}\n`;
|
|
239
324
|
}
|
|
240
325
|
const MAX_TYPE_ROWS = 12;
|
|
241
326
|
const MAX_TYPE_NAME = 28;
|
|
242
327
|
/**
|
|
243
|
-
* `--stat`: header, counters and bar
|
|
244
|
-
* table, and a git-style per-type
|
|
328
|
+
* `--stat`: header, counters and bar (with the review-first line, as in the summary), a
|
|
329
|
+
* nodes / edges × added / removed / modified / unchanged table, and a git-style per-type
|
|
330
|
+
* breakdown (`+` added, `−` removed, `~` modified nodes).
|
|
245
331
|
*/
|
|
246
332
|
export function renderStat(diff, title, ctx) {
|
|
247
333
|
const ov = overview(diff);
|
|
@@ -249,7 +335,7 @@ export function renderStat(diff, title, ctx) {
|
|
|
249
335
|
const lines = [...headerLines(diff, title, ctx, width), ''];
|
|
250
336
|
if (ov.hunks === 0)
|
|
251
337
|
return `${[...lines, ...identicalLines(diff, ctx, width)].join('\n')}\n`;
|
|
252
|
-
lines.push(...statLines(ov, ctx, width), '');
|
|
338
|
+
lines.push(...statLines(ov, ctx, width, watchedOf(diff, ctx)), '');
|
|
253
339
|
lines.push(...countsTable(diff, ctx, width), '');
|
|
254
340
|
lines.push(...typeLines(diff, ctx, width));
|
|
255
341
|
return `${lines.join('\n')}\n`;
|
package/dist/summary.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kgdiff/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "git diff for knowledge graphs. Compare two graph files from the terminal, CI, or as a shareable HTML report.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"kgdiff",
|
|
@@ -45,11 +45,11 @@
|
|
|
45
45
|
"registry": "https://registry.npmjs.org/"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@kgdiff/core": "0.
|
|
49
|
-
"@kgdiff/formats": "0.
|
|
50
|
-
"@kgdiff/layout": "0.
|
|
51
|
-
"@kgdiff/scene": "0.
|
|
52
|
-
"@kgdiff/viewer": "0.
|
|
48
|
+
"@kgdiff/core": "0.5.0",
|
|
49
|
+
"@kgdiff/formats": "0.5.0",
|
|
50
|
+
"@kgdiff/layout": "0.5.0",
|
|
51
|
+
"@kgdiff/scene": "0.5.0",
|
|
52
|
+
"@kgdiff/viewer": "0.5.0"
|
|
53
53
|
},
|
|
54
54
|
"scripts": {
|
|
55
55
|
"build": "tsc -p tsconfig.build.json",
|
package/src/args.ts
CHANGED
|
@@ -78,6 +78,11 @@ export interface DiffCommandOptions extends CommonOptions {
|
|
|
78
78
|
readonly exitCode: boolean;
|
|
79
79
|
/** Max hunks in the summary; 0 = all. */
|
|
80
80
|
readonly limit: number;
|
|
81
|
+
/**
|
|
82
|
+
* `--watch-attr`: attributes whose changes are flagged ⚑ for review first, replacing the
|
|
83
|
+
* default definitions. Absent when not given.
|
|
84
|
+
*/
|
|
85
|
+
readonly watchAttrs?: readonly string[];
|
|
81
86
|
}
|
|
82
87
|
|
|
83
88
|
export interface ApplyCommandOptions extends CommonOptions {
|
|
@@ -148,6 +153,7 @@ export const DIFF_OPTIONS: Readonly<Record<string, OptionSpec>> = {
|
|
|
148
153
|
'allow-empty': { type: 'boolean' },
|
|
149
154
|
'exit-code': { type: 'boolean' },
|
|
150
155
|
limit: { type: 'string' },
|
|
156
|
+
'watch-attr': { type: 'string', multiple: true },
|
|
151
157
|
};
|
|
152
158
|
|
|
153
159
|
/** Options of `kgdiff apply <graph> <delta>`. */
|
|
@@ -499,6 +505,13 @@ function parseDiff(argv: readonly string[]): Command {
|
|
|
499
505
|
const delta = v.target('delta');
|
|
500
506
|
const markdown = v.target('markdown');
|
|
501
507
|
const html = v.string('html');
|
|
508
|
+
const watchAttrs = v.strings('watch-attr');
|
|
509
|
+
if (watchAttrs.some((key) => key.trim() === '')) {
|
|
510
|
+
throw usageError(
|
|
511
|
+
'--watch-attr needs an attribute key.',
|
|
512
|
+
'e.g. --watch-attr rdfs:comment. Attribute keys are listed in the JSON output (--json).',
|
|
513
|
+
);
|
|
514
|
+
}
|
|
502
515
|
const options: DiffCommandOptions = {
|
|
503
516
|
...common,
|
|
504
517
|
before,
|
|
@@ -527,6 +540,7 @@ function parseDiff(argv: readonly string[]): Command {
|
|
|
527
540
|
limit === undefined
|
|
528
541
|
? DEFAULT_LIMIT
|
|
529
542
|
: parseNumber('limit', limit, 0, Number.MAX_SAFE_INTEGER, true),
|
|
543
|
+
...(watchAttrs.length > 0 ? { watchAttrs } : {}),
|
|
530
544
|
};
|
|
531
545
|
checkOutputs(options);
|
|
532
546
|
return { kind: 'diff', options };
|
package/src/diff-command.ts
CHANGED
|
@@ -235,7 +235,12 @@ export async function runDiff(o: DiffCommandOptions, io: CliIO): Promise<number>
|
|
|
235
235
|
}
|
|
236
236
|
if (o.markdown !== undefined) {
|
|
237
237
|
const { renderMarkdown } = await import('./markdown.js');
|
|
238
|
-
const md = renderMarkdown(result, {
|
|
238
|
+
const md = renderMarkdown(result, {
|
|
239
|
+
locale: ctx.locale,
|
|
240
|
+
title,
|
|
241
|
+
generator,
|
|
242
|
+
...(o.watchAttrs ? { watch: o.watchAttrs } : {}),
|
|
243
|
+
});
|
|
239
244
|
if (o.markdown !== STDIO)
|
|
240
245
|
files.push({ path: o.markdown, content: md, label: 'Markdown summary' });
|
|
241
246
|
else stdoutText = md;
|
|
@@ -284,6 +289,7 @@ export async function runDiff(o: DiffCommandOptions, io: CliIO): Promise<number>
|
|
|
284
289
|
locale: ctx.locale,
|
|
285
290
|
width: outputWidth(io),
|
|
286
291
|
limit: o.limit,
|
|
292
|
+
...(o.watchAttrs ? { watch: o.watchAttrs } : {}),
|
|
287
293
|
};
|
|
288
294
|
if (o.json === STDIO) stdoutText = json(diffToJSON(result), o.pretty);
|
|
289
295
|
else if (o.delta === STDIO) stdoutText = json(result.delta, o.pretty);
|
package/src/errors.ts
CHANGED
|
@@ -78,8 +78,27 @@ const KGDIFF_HINTS: Readonly<Record<string, string>> = {
|
|
|
78
78
|
'dangling-edge': 'An edge refers to a node the graph does not define.',
|
|
79
79
|
};
|
|
80
80
|
|
|
81
|
+
/** The bug report form an unexpected error links to. */
|
|
82
|
+
const BUG_REPORT_FORM = 'https://github.com/iiwish/kgdiff/issues/new';
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Link to the bug report form, prefilled through the form's field ids (`version`,
|
|
86
|
+
* `environment`). Only public metadata goes into it: error messages and input paths can contain
|
|
87
|
+
* private data, and the person reporting decides what to paste into the form.
|
|
88
|
+
*/
|
|
89
|
+
export function bugReportUrl(version: string, runtime?: string): string {
|
|
90
|
+
const url = new URL(BUG_REPORT_FORM);
|
|
91
|
+
url.searchParams.set('template', 'bug_report.yml');
|
|
92
|
+
url.searchParams.set('version', `kgdiff ${version}`);
|
|
93
|
+
if (runtime) url.searchParams.set('environment', runtime);
|
|
94
|
+
return url.href;
|
|
95
|
+
}
|
|
96
|
+
|
|
81
97
|
/** User-facing message and hint for any thrown value. */
|
|
82
|
-
export function describeError(
|
|
98
|
+
export function describeError(
|
|
99
|
+
error: unknown,
|
|
100
|
+
bugReportUrl?: string,
|
|
101
|
+
): { message: string; hint?: string } {
|
|
83
102
|
if (error instanceof CliError) {
|
|
84
103
|
return error.hint ? { message: error.message, hint: error.hint } : { message: error.message };
|
|
85
104
|
}
|
|
@@ -91,7 +110,9 @@ export function describeError(error: unknown): { message: string; hint?: string
|
|
|
91
110
|
if (code) return { message: systemReason(error) };
|
|
92
111
|
return {
|
|
93
112
|
message: `Unexpected error: ${error instanceof Error ? error.message : String(error)}`,
|
|
94
|
-
hint:
|
|
113
|
+
hint: bugReportUrl
|
|
114
|
+
? `This is a bug in kgdiff. Run again with DEBUG=kgdiff and report it: ${bugReportUrl}`
|
|
115
|
+
: 'This is a bug in kgdiff. Run again with DEBUG=kgdiff and report the output.',
|
|
95
116
|
};
|
|
96
117
|
}
|
|
97
118
|
|
|
@@ -103,10 +124,15 @@ export function debugEnabled(debug: string | undefined): boolean {
|
|
|
103
124
|
}
|
|
104
125
|
|
|
105
126
|
/** The text written to stderr for an error (ends with a newline). */
|
|
106
|
-
export function formatError(
|
|
127
|
+
export function formatError(
|
|
128
|
+
error: unknown,
|
|
129
|
+
paint: Painter,
|
|
130
|
+
debug: boolean,
|
|
131
|
+
bugReportUrl?: string,
|
|
132
|
+
): string {
|
|
107
133
|
// Messages quote user input (paths, parser snippets, JSON.parse excerpts): never let it
|
|
108
134
|
// carry escape sequences or bidi controls to the terminal.
|
|
109
|
-
const { message, hint } = describeError(error);
|
|
135
|
+
const { message, hint } = describeError(error, bugReportUrl);
|
|
110
136
|
const lines = [`${paint.bold(paint.tone('removed', 'error:'))} ${sanitize(message)}`];
|
|
111
137
|
if (hint) lines.push(`${paint.tone('accent', 'hint:')} ${sanitize(hint)}`);
|
|
112
138
|
if (debug) {
|
package/src/help.ts
CHANGED
|
@@ -138,6 +138,11 @@ const MAIN: readonly Section[] = [
|
|
|
138
138
|
default: 'auto',
|
|
139
139
|
},
|
|
140
140
|
{ flags: '--limit <n>', text: 'Hunks listed in the summary; 0 lists all', default: '50' },
|
|
141
|
+
{
|
|
142
|
+
flags: '--watch-attr <key>',
|
|
143
|
+
text: 'Flag changes to this attribute ⚑ for review first (repeatable); replaces the defaults',
|
|
144
|
+
default: 'definitions',
|
|
145
|
+
},
|
|
141
146
|
{ flags: '-h, --help', text: 'Show this help' },
|
|
142
147
|
{ flags: '-v, --version', text: 'Show the version' },
|
|
143
148
|
],
|
package/src/index.ts
CHANGED
|
@@ -40,6 +40,7 @@ export {
|
|
|
40
40
|
} from './markdown.js';
|
|
41
41
|
export {
|
|
42
42
|
type ChangeFamily,
|
|
43
|
+
DEFAULT_WATCH_ATTRS,
|
|
43
44
|
hunkFamily,
|
|
44
45
|
hunkGlyph,
|
|
45
46
|
KIND_FAMILY,
|
|
@@ -47,6 +48,7 @@ export {
|
|
|
47
48
|
nameStatus,
|
|
48
49
|
type Overview,
|
|
49
50
|
overview,
|
|
51
|
+
watchedChanges,
|
|
50
52
|
} from './model.js';
|
|
51
53
|
export { nodeIO, openCommand } from './node-io.js';
|
|
52
54
|
export { buildReportHtml, buildReportPayload, createGzip, type ReportInfo } from './report.js';
|
package/src/io.ts
CHANGED
|
@@ -52,6 +52,11 @@ export interface CliIO {
|
|
|
52
52
|
readonly stdinIsTTY: boolean;
|
|
53
53
|
/** Terminal width of stdout, when known. */
|
|
54
54
|
readonly columns: number | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* The platform and runtime, for bug reports: `darwin arm64, Node.js v24.11.0`. Optional:
|
|
57
|
+
* without it the bug report link of an unexpected error names only the CLI version.
|
|
58
|
+
*/
|
|
59
|
+
readonly runtime?: string;
|
|
55
60
|
/** Clock for `generatedAt` in HTML reports. */
|
|
56
61
|
now(): Date;
|
|
57
62
|
/** Create a fresh private directory (`mkdtemp`) for reports opened with `--open` and no `-o`. */
|