@hawkeyexl/manni 4.3.1 → 4.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.
- package/README.md +9 -1
- package/dist/batch-GFNLTGOH.js +36 -0
- package/dist/build-COYIQ25L.js +31 -0
- package/dist/calibrate-MDBLJKEE.js +31 -0
- package/dist/capture-LRML2PKV.js +32 -0
- package/dist/check-ASPIHA6B.js +40 -0
- package/dist/check-ASPIHA6B.js.map +1 -0
- package/dist/check-EDLBYL5N.js +27 -0
- package/dist/check-EDLBYL5N.js.map +1 -0
- package/dist/check-HYNGXYJV.js +18 -0
- package/dist/check-HYNGXYJV.js.map +1 -0
- package/dist/chunk-2B7ZNTPV.js +230 -0
- package/dist/chunk-2B7ZNTPV.js.map +1 -0
- package/dist/chunk-2H7UOFLK.js +11 -0
- package/dist/chunk-2H7UOFLK.js.map +1 -0
- package/dist/chunk-37LP5HMZ.js +1042 -0
- package/dist/chunk-37LP5HMZ.js.map +1 -0
- package/dist/chunk-3VK37OR2.js +2957 -0
- package/dist/chunk-3VK37OR2.js.map +1 -0
- package/dist/chunk-4IUC2MNL.js +2165 -0
- package/dist/chunk-4IUC2MNL.js.map +1 -0
- package/dist/{chunk-3R23C5DT.js → chunk-4TSWU2SU.js} +2 -14
- package/dist/chunk-4TSWU2SU.js.map +1 -0
- package/dist/chunk-57NEQRVO.js +10921 -0
- package/dist/chunk-57NEQRVO.js.map +1 -0
- package/dist/chunk-6JSSEWBG.js +6737 -0
- package/dist/chunk-6JSSEWBG.js.map +1 -0
- package/dist/chunk-6OYEI2VV.js +88 -0
- package/dist/chunk-6OYEI2VV.js.map +1 -0
- package/dist/chunk-77AINBYM.js +19 -0
- package/dist/chunk-77AINBYM.js.map +1 -0
- package/dist/chunk-7UKO3ASZ.js +54 -0
- package/dist/chunk-7UKO3ASZ.js.map +1 -0
- package/dist/chunk-A5ULMVHQ.js +164 -0
- package/dist/chunk-A5ULMVHQ.js.map +1 -0
- package/dist/chunk-C4SQM22E.js +299 -0
- package/dist/chunk-C4SQM22E.js.map +1 -0
- package/dist/chunk-CK7SKVHR.js +1042 -0
- package/dist/chunk-CK7SKVHR.js.map +1 -0
- package/dist/{chunk-G5CM2VGQ.js → chunk-DXNZS72W.js} +8 -94
- package/dist/chunk-DXNZS72W.js.map +1 -0
- package/dist/chunk-EPH54CAY.js +374 -0
- package/dist/chunk-EPH54CAY.js.map +1 -0
- package/dist/{chunk-KJR7OVDX.js → chunk-FBEQCK47.js} +56 -137
- package/dist/chunk-FBEQCK47.js.map +1 -0
- package/dist/{chunk-IOYXPBCL.js → chunk-G3T47CFV.js} +1 -7
- package/dist/{chunk-IOYXPBCL.js.map → chunk-G3T47CFV.js.map} +1 -1
- package/dist/chunk-GCQRPUSB.js +1287 -0
- package/dist/chunk-GCQRPUSB.js.map +1 -0
- package/dist/chunk-GLP5PSXB.js +72 -0
- package/dist/chunk-GLP5PSXB.js.map +1 -0
- package/dist/chunk-I2AH3CJJ.js +1192 -0
- package/dist/chunk-I2AH3CJJ.js.map +1 -0
- package/dist/chunk-IDV6HJCB.js +388 -0
- package/dist/chunk-IDV6HJCB.js.map +1 -0
- package/dist/chunk-IKEWBMCN.js +98 -0
- package/dist/chunk-IKEWBMCN.js.map +1 -0
- package/dist/chunk-JCDXE76J.js +52 -0
- package/dist/chunk-JCDXE76J.js.map +1 -0
- package/dist/chunk-JXLTXMJ7.js +455 -0
- package/dist/chunk-JXLTXMJ7.js.map +1 -0
- package/dist/chunk-LJ2RDH3F.js +49 -0
- package/dist/chunk-LJ2RDH3F.js.map +1 -0
- package/dist/chunk-M2JCK5F6.js +805 -0
- package/dist/chunk-M2JCK5F6.js.map +1 -0
- package/dist/chunk-M3W7J6MU.js +4398 -0
- package/dist/chunk-M3W7J6MU.js.map +1 -0
- package/dist/chunk-MMTSSTG7.js +23 -0
- package/dist/chunk-MMTSSTG7.js.map +1 -0
- package/dist/chunk-MNH7QO4Z.js +15 -0
- package/dist/chunk-MNH7QO4Z.js.map +1 -0
- package/dist/chunk-MWJLZMBL.js +934 -0
- package/dist/chunk-MWJLZMBL.js.map +1 -0
- package/dist/chunk-MYMBCTDE.js +387 -0
- package/dist/chunk-MYMBCTDE.js.map +1 -0
- package/dist/chunk-NCPWXHDO.js +683 -0
- package/dist/chunk-NCPWXHDO.js.map +1 -0
- package/dist/chunk-NLXTXE5Y.js +1661 -0
- package/dist/chunk-NLXTXE5Y.js.map +1 -0
- package/dist/{chunk-CFDUZRM2.js → chunk-NXV7WE2D.js} +32 -240
- package/dist/chunk-NXV7WE2D.js.map +1 -0
- package/dist/chunk-OWBRDNRZ.js +16 -0
- package/dist/chunk-OWBRDNRZ.js.map +1 -0
- package/dist/{chunk-KTSJ2ZHA.js → chunk-PAU352SV.js} +5 -3
- package/dist/{chunk-KTSJ2ZHA.js.map → chunk-PAU352SV.js.map} +1 -1
- package/dist/chunk-PCE7QHXJ.js +68 -0
- package/dist/chunk-PCE7QHXJ.js.map +1 -0
- package/dist/chunk-PIKOVN6W.js +1651 -0
- package/dist/chunk-PIKOVN6W.js.map +1 -0
- package/dist/chunk-PNPQTHBT.js +17 -0
- package/dist/chunk-PNPQTHBT.js.map +1 -0
- package/dist/chunk-PU6DFJMY.js +1975 -0
- package/dist/chunk-PU6DFJMY.js.map +1 -0
- package/dist/chunk-Q35YIDBV.js +1202 -0
- package/dist/chunk-Q35YIDBV.js.map +1 -0
- package/dist/{chunk-5HNHEUD5.js → chunk-QQUKGCAJ.js} +3 -3
- package/dist/chunk-QRWGPQKO.js +198 -0
- package/dist/chunk-QRWGPQKO.js.map +1 -0
- package/dist/{chunk-UBMMXS2Y.js → chunk-QZ6LRSNV.js} +69 -48
- package/dist/{chunk-UBMMXS2Y.js.map → chunk-QZ6LRSNV.js.map} +1 -1
- package/dist/chunk-RL5XWQOL.js +3872 -0
- package/dist/chunk-RL5XWQOL.js.map +1 -0
- package/dist/chunk-RNVYGWIC.js +30 -0
- package/dist/chunk-RNVYGWIC.js.map +1 -0
- package/dist/chunk-SE4JN5XN.js +19 -0
- package/dist/chunk-SE4JN5XN.js.map +1 -0
- package/dist/chunk-SKSDRUUK.js +622 -0
- package/dist/chunk-SKSDRUUK.js.map +1 -0
- package/dist/chunk-TIUTIOFB.js +25 -0
- package/dist/chunk-TIUTIOFB.js.map +1 -0
- package/dist/chunk-TK3FC4RF.js +3090 -0
- package/dist/chunk-TK3FC4RF.js.map +1 -0
- package/dist/chunk-TU2WUBVZ.js +2 -0
- package/dist/chunk-TU2WUBVZ.js.map +1 -0
- package/dist/chunk-TZOYZK2E.js +98 -0
- package/dist/chunk-TZOYZK2E.js.map +1 -0
- package/dist/chunk-UJCVAWP7.js +178 -0
- package/dist/chunk-UJCVAWP7.js.map +1 -0
- package/dist/chunk-UKZNLVJW.js +17 -0
- package/dist/chunk-UKZNLVJW.js.map +1 -0
- package/dist/{chunk-HAPTXWU2.js → chunk-UQISLDAV.js} +4 -4
- package/dist/chunk-WB3QM6PP.js +5440 -0
- package/dist/chunk-WB3QM6PP.js.map +1 -0
- package/dist/chunk-YB4IBW3M.js +96 -0
- package/dist/chunk-YB4IBW3M.js.map +1 -0
- package/dist/chunk-YEUYKR62.js +72 -0
- package/dist/chunk-YEUYKR62.js.map +1 -0
- package/dist/chunk-YJOGUXGP.js +634 -0
- package/dist/chunk-YJOGUXGP.js.map +1 -0
- package/dist/chunk-YNHZHSSM.js +41 -0
- package/dist/chunk-YNHZHSSM.js.map +1 -0
- package/dist/chunk-YTURO7SI.js +979 -0
- package/dist/chunk-YTURO7SI.js.map +1 -0
- package/dist/chunk-ZXRAE55H.js +31 -0
- package/dist/chunk-ZXRAE55H.js.map +1 -0
- package/dist/cli-3BIBYHFK.js +473 -0
- package/dist/cli-3BIBYHFK.js.map +1 -0
- package/dist/cli-673OTRGE.js +28 -0
- package/dist/cli-673OTRGE.js.map +1 -0
- package/dist/cli-6HIDIFVT.js +1203 -0
- package/dist/cli-6HIDIFVT.js.map +1 -0
- package/dist/cli-6UB5N6CU.js +232 -0
- package/dist/cli-6UB5N6CU.js.map +1 -0
- package/dist/cli-LFP5ZGYS.js +346 -0
- package/dist/cli-LFP5ZGYS.js.map +1 -0
- package/dist/cli-MN7PYMBI.js +552 -0
- package/dist/cli-MN7PYMBI.js.map +1 -0
- package/dist/cli-PYPX6O6E.js +739 -0
- package/dist/cli-PYPX6O6E.js.map +1 -0
- package/dist/cli-RPM5PELX.js +626 -0
- package/dist/cli-RPM5PELX.js.map +1 -0
- package/dist/cli-VI7VHWNZ.js +423 -0
- package/dist/cli-VI7VHWNZ.js.map +1 -0
- package/dist/cli.d.ts +12 -2
- package/dist/cli.js +109 -7661
- package/dist/cli.js.map +1 -1
- package/dist/docmeta.js +15 -3
- package/dist/docmeta.js.map +1 -1
- package/dist/github-6QMYOHC3.js +27 -0
- package/dist/github-6QMYOHC3.js.map +1 -0
- package/dist/github-SXPGP5DB.js +32 -0
- package/dist/github-SXPGP5DB.js.map +1 -0
- package/dist/index.d.ts +65 -3
- package/dist/index.js +407 -337
- package/dist/index.js.map +1 -1
- package/dist/json-7WV7KL6H.js +17 -0
- package/dist/json-7WV7KL6H.js.map +1 -0
- package/dist/json-SY7KLNC7.js +35 -0
- package/dist/json-SY7KLNC7.js.map +1 -0
- package/dist/lint-ASMJLLPA.js +28 -0
- package/dist/lint-ASMJLLPA.js.map +1 -0
- package/dist/list-KZNVTNVC.js +31 -0
- package/dist/list-KZNVTNVC.js.map +1 -0
- package/dist/list-Q57YTFUQ.js +29 -0
- package/dist/list-Q57YTFUQ.js.map +1 -0
- package/dist/page-KSGV5RD4.js +41 -0
- package/dist/page-KSGV5RD4.js.map +1 -0
- package/dist/picker-3XF36MJF.js +14 -0
- package/dist/picker-3XF36MJF.js.map +1 -0
- package/dist/pretty-A5EGTN35.js +37 -0
- package/dist/pretty-A5EGTN35.js.map +1 -0
- package/dist/pretty-CXSDXNAS.js +43 -0
- package/dist/pretty-CXSDXNAS.js.map +1 -0
- package/dist/reporters-HUY7UXFS.js +42 -0
- package/dist/reporters-HUY7UXFS.js.map +1 -0
- package/dist/reporters-K2VUKSAK.js +71 -0
- package/dist/reporters-K2VUKSAK.js.map +1 -0
- package/dist/reporters-M6LJ2IYU.js +21 -0
- package/dist/reporters-M6LJ2IYU.js.map +1 -0
- package/dist/run-3DYJNRIG.js +33 -0
- package/dist/run-3DYJNRIG.js.map +1 -0
- package/dist/term-BIQUPMOR.js +1592 -0
- package/dist/term-BIQUPMOR.js.map +1 -0
- package/dist/types-Y6TXHM7M.js +10 -0
- package/dist/types-Y6TXHM7M.js.map +1 -0
- package/dist/validate-53RKM2XG.js +16 -0
- package/dist/validate-53RKM2XG.js.map +1 -0
- package/package.json +1 -1
- package/plugin/manni/.claude-plugin/plugin.json +9 -0
- package/plugin/manni/hooks/hooks.json +69 -0
- package/plugin/manni/hooks/manni.mjs +157 -0
- package/plugin/manni/skills/check/SKILL.md +20 -0
- package/plugin/manni/skills/evals/SKILL.md +27 -0
- package/plugin/manni/skills/fix/SKILL.md +56 -0
- package/plugin/manni/skills/setup/SKILL.md +41 -0
- package/dist/batch-A5HZKYIW.js +0 -18
- package/dist/calibrate-S5K6QHUY.js +0 -13
- package/dist/capture-OZEZDABQ.js +0 -15
- package/dist/chunk-3R23C5DT.js.map +0 -1
- package/dist/chunk-CFDUZRM2.js.map +0 -1
- package/dist/chunk-G5CM2VGQ.js.map +0 -1
- package/dist/chunk-KJR7OVDX.js.map +0 -1
- package/dist/chunk-V4KUVE47.js +0 -27170
- package/dist/chunk-V4KUVE47.js.map +0 -1
- package/dist/chunk-ZQBTK3DO.js +0 -26518
- package/dist/chunk-ZQBTK3DO.js.map +0 -1
- package/dist/picker-6HRMETE7.js +0 -12
- package/plugin/tracevals/.claude-plugin/plugin.json +0 -9
- package/plugin/tracevals/hooks/hooks.json +0 -17
- /package/dist/{batch-A5HZKYIW.js.map → batch-GFNLTGOH.js.map} +0 -0
- /package/dist/{calibrate-S5K6QHUY.js.map → build-COYIQ25L.js.map} +0 -0
- /package/dist/{capture-OZEZDABQ.js.map → calibrate-MDBLJKEE.js.map} +0 -0
- /package/dist/{picker-6HRMETE7.js.map → capture-LRML2PKV.js.map} +0 -0
- /package/dist/{chunk-5HNHEUD5.js.map → chunk-QQUKGCAJ.js.map} +0 -0
- /package/dist/{chunk-HAPTXWU2.js.map → chunk-UQISLDAV.js.map} +0 -0
package/README.md
CHANGED
|
@@ -39,6 +39,14 @@ npx @hawkeyexl/manni meta validate "**/*.md"
|
|
|
39
39
|
|
|
40
40
|
Requires Node.js 24 or later.
|
|
41
41
|
|
|
42
|
+
Once a repository sets up a few of the tools, `manni status` says which are in
|
|
43
|
+
play and `manni check` runs all of them as one gate. In Claude Code, the
|
|
44
|
+
`manni` plugin runs the same check after each edit an agent makes. Install it
|
|
45
|
+
with `claude plugin marketplace add hawkeyexl/manni`, then
|
|
46
|
+
`claude plugin install manni@manni`. See
|
|
47
|
+
[Gate every check](https://hawkeyexl.github.io/manni/family/check/) and
|
|
48
|
+
[Keep an agent's docs green](https://hawkeyexl.github.io/manni/family/claude-code/).
|
|
49
|
+
|
|
42
50
|
## Coming from docmeta?
|
|
43
51
|
|
|
44
52
|
The metadata tool used to be the whole package. Three things changed:
|
|
@@ -102,7 +110,7 @@ actually reads rather than hand-written:
|
|
|
102
110
|
```yaml
|
|
103
111
|
repos:
|
|
104
112
|
- repo: https://github.com/hawkeyexl/manni
|
|
105
|
-
rev: v4.
|
|
113
|
+
rev: v4.4.1
|
|
106
114
|
hooks:
|
|
107
115
|
- id: manni-meta
|
|
108
116
|
```
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
keepNewerThan,
|
|
4
|
+
parseNewerThan,
|
|
5
|
+
resolveBatchTraces,
|
|
6
|
+
runBatch
|
|
7
|
+
} from "./chunk-FBEQCK47.js";
|
|
8
|
+
import "./chunk-NXV7WE2D.js";
|
|
9
|
+
import "./chunk-4TSWU2SU.js";
|
|
10
|
+
import "./chunk-UKZNLVJW.js";
|
|
11
|
+
import "./chunk-LJ2RDH3F.js";
|
|
12
|
+
import "./chunk-YNHZHSSM.js";
|
|
13
|
+
import "./chunk-GLP5PSXB.js";
|
|
14
|
+
import "./chunk-TU2WUBVZ.js";
|
|
15
|
+
import "./chunk-QRWGPQKO.js";
|
|
16
|
+
import "./chunk-6JSSEWBG.js";
|
|
17
|
+
import "./chunk-A5ULMVHQ.js";
|
|
18
|
+
import "./chunk-TK3FC4RF.js";
|
|
19
|
+
import "./chunk-M3W7J6MU.js";
|
|
20
|
+
import "./chunk-IDV6HJCB.js";
|
|
21
|
+
import "./chunk-57NEQRVO.js";
|
|
22
|
+
import "./chunk-YEUYKR62.js";
|
|
23
|
+
import "./chunk-RNVYGWIC.js";
|
|
24
|
+
import "./chunk-MNH7QO4Z.js";
|
|
25
|
+
import "./chunk-Q35YIDBV.js";
|
|
26
|
+
import "./chunk-UJCVAWP7.js";
|
|
27
|
+
import "./chunk-OWBRDNRZ.js";
|
|
28
|
+
import "./chunk-G3T47CFV.js";
|
|
29
|
+
import "./chunk-2H7UOFLK.js";
|
|
30
|
+
export {
|
|
31
|
+
keepNewerThan,
|
|
32
|
+
parseNewerThan,
|
|
33
|
+
resolveBatchTraces,
|
|
34
|
+
runBatch
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=batch-GFNLTGOH.js.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
GIT_ABSENT_WARNING,
|
|
4
|
+
buildGraph,
|
|
5
|
+
gitAbsentWarning,
|
|
6
|
+
runBuild
|
|
7
|
+
} from "./chunk-NLXTXE5Y.js";
|
|
8
|
+
import "./chunk-M2JCK5F6.js";
|
|
9
|
+
import "./chunk-TU2WUBVZ.js";
|
|
10
|
+
import "./chunk-QRWGPQKO.js";
|
|
11
|
+
import "./chunk-6JSSEWBG.js";
|
|
12
|
+
import "./chunk-A5ULMVHQ.js";
|
|
13
|
+
import "./chunk-TK3FC4RF.js";
|
|
14
|
+
import "./chunk-M3W7J6MU.js";
|
|
15
|
+
import "./chunk-IDV6HJCB.js";
|
|
16
|
+
import "./chunk-57NEQRVO.js";
|
|
17
|
+
import "./chunk-YEUYKR62.js";
|
|
18
|
+
import "./chunk-RNVYGWIC.js";
|
|
19
|
+
import "./chunk-MNH7QO4Z.js";
|
|
20
|
+
import "./chunk-Q35YIDBV.js";
|
|
21
|
+
import "./chunk-UJCVAWP7.js";
|
|
22
|
+
import "./chunk-OWBRDNRZ.js";
|
|
23
|
+
import "./chunk-G3T47CFV.js";
|
|
24
|
+
import "./chunk-2H7UOFLK.js";
|
|
25
|
+
export {
|
|
26
|
+
GIT_ABSENT_WARNING,
|
|
27
|
+
buildGraph,
|
|
28
|
+
gitAbsentWarning,
|
|
29
|
+
runBuild
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=build-COYIQ25L.js.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
runCalibrate
|
|
4
|
+
} from "./chunk-UQISLDAV.js";
|
|
5
|
+
import "./chunk-FBEQCK47.js";
|
|
6
|
+
import "./chunk-NXV7WE2D.js";
|
|
7
|
+
import "./chunk-4TSWU2SU.js";
|
|
8
|
+
import "./chunk-UKZNLVJW.js";
|
|
9
|
+
import "./chunk-LJ2RDH3F.js";
|
|
10
|
+
import "./chunk-YNHZHSSM.js";
|
|
11
|
+
import "./chunk-GLP5PSXB.js";
|
|
12
|
+
import "./chunk-TU2WUBVZ.js";
|
|
13
|
+
import "./chunk-QRWGPQKO.js";
|
|
14
|
+
import "./chunk-6JSSEWBG.js";
|
|
15
|
+
import "./chunk-A5ULMVHQ.js";
|
|
16
|
+
import "./chunk-TK3FC4RF.js";
|
|
17
|
+
import "./chunk-M3W7J6MU.js";
|
|
18
|
+
import "./chunk-IDV6HJCB.js";
|
|
19
|
+
import "./chunk-57NEQRVO.js";
|
|
20
|
+
import "./chunk-YEUYKR62.js";
|
|
21
|
+
import "./chunk-RNVYGWIC.js";
|
|
22
|
+
import "./chunk-MNH7QO4Z.js";
|
|
23
|
+
import "./chunk-Q35YIDBV.js";
|
|
24
|
+
import "./chunk-UJCVAWP7.js";
|
|
25
|
+
import "./chunk-OWBRDNRZ.js";
|
|
26
|
+
import "./chunk-G3T47CFV.js";
|
|
27
|
+
import "./chunk-2H7UOFLK.js";
|
|
28
|
+
export {
|
|
29
|
+
runCalibrate
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=calibrate-MDBLJKEE.js.map
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
renderCapture,
|
|
4
|
+
runCapture
|
|
5
|
+
} from "./chunk-DXNZS72W.js";
|
|
6
|
+
import "./chunk-QQUKGCAJ.js";
|
|
7
|
+
import "./chunk-TZOYZK2E.js";
|
|
8
|
+
import "./chunk-NXV7WE2D.js";
|
|
9
|
+
import "./chunk-4TSWU2SU.js";
|
|
10
|
+
import "./chunk-UKZNLVJW.js";
|
|
11
|
+
import "./chunk-YNHZHSSM.js";
|
|
12
|
+
import "./chunk-TU2WUBVZ.js";
|
|
13
|
+
import "./chunk-QRWGPQKO.js";
|
|
14
|
+
import "./chunk-6JSSEWBG.js";
|
|
15
|
+
import "./chunk-A5ULMVHQ.js";
|
|
16
|
+
import "./chunk-TK3FC4RF.js";
|
|
17
|
+
import "./chunk-M3W7J6MU.js";
|
|
18
|
+
import "./chunk-IDV6HJCB.js";
|
|
19
|
+
import "./chunk-57NEQRVO.js";
|
|
20
|
+
import "./chunk-YEUYKR62.js";
|
|
21
|
+
import "./chunk-RNVYGWIC.js";
|
|
22
|
+
import "./chunk-MNH7QO4Z.js";
|
|
23
|
+
import "./chunk-Q35YIDBV.js";
|
|
24
|
+
import "./chunk-UJCVAWP7.js";
|
|
25
|
+
import "./chunk-OWBRDNRZ.js";
|
|
26
|
+
import "./chunk-G3T47CFV.js";
|
|
27
|
+
import "./chunk-2H7UOFLK.js";
|
|
28
|
+
export {
|
|
29
|
+
renderCapture,
|
|
30
|
+
runCapture
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=capture-LRML2PKV.js.map
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
assertNoOrphanJoins,
|
|
4
|
+
assertNoOrphans,
|
|
5
|
+
joinHits,
|
|
6
|
+
prepareRun,
|
|
7
|
+
readTarget,
|
|
8
|
+
runCheck,
|
|
9
|
+
sayNotices
|
|
10
|
+
} from "./chunk-PIKOVN6W.js";
|
|
11
|
+
import "./chunk-SKSDRUUK.js";
|
|
12
|
+
import "./chunk-77AINBYM.js";
|
|
13
|
+
import "./chunk-YTURO7SI.js";
|
|
14
|
+
import "./chunk-IKEWBMCN.js";
|
|
15
|
+
import "./chunk-TU2WUBVZ.js";
|
|
16
|
+
import "./chunk-QRWGPQKO.js";
|
|
17
|
+
import "./chunk-6JSSEWBG.js";
|
|
18
|
+
import "./chunk-A5ULMVHQ.js";
|
|
19
|
+
import "./chunk-TK3FC4RF.js";
|
|
20
|
+
import "./chunk-M3W7J6MU.js";
|
|
21
|
+
import "./chunk-IDV6HJCB.js";
|
|
22
|
+
import "./chunk-57NEQRVO.js";
|
|
23
|
+
import "./chunk-YEUYKR62.js";
|
|
24
|
+
import "./chunk-RNVYGWIC.js";
|
|
25
|
+
import "./chunk-MNH7QO4Z.js";
|
|
26
|
+
import "./chunk-Q35YIDBV.js";
|
|
27
|
+
import "./chunk-UJCVAWP7.js";
|
|
28
|
+
import "./chunk-OWBRDNRZ.js";
|
|
29
|
+
import "./chunk-G3T47CFV.js";
|
|
30
|
+
import "./chunk-2H7UOFLK.js";
|
|
31
|
+
export {
|
|
32
|
+
assertNoOrphanJoins,
|
|
33
|
+
assertNoOrphans,
|
|
34
|
+
joinHits,
|
|
35
|
+
prepareRun,
|
|
36
|
+
readTarget,
|
|
37
|
+
runCheck,
|
|
38
|
+
sayNotices
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=check-ASPIHA6B.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
runCheck
|
|
4
|
+
} from "./chunk-EPH54CAY.js";
|
|
5
|
+
import "./chunk-PU6DFJMY.js";
|
|
6
|
+
import "./chunk-77AINBYM.js";
|
|
7
|
+
import "./chunk-IKEWBMCN.js";
|
|
8
|
+
import "./chunk-TU2WUBVZ.js";
|
|
9
|
+
import "./chunk-QRWGPQKO.js";
|
|
10
|
+
import "./chunk-6JSSEWBG.js";
|
|
11
|
+
import "./chunk-A5ULMVHQ.js";
|
|
12
|
+
import "./chunk-TK3FC4RF.js";
|
|
13
|
+
import "./chunk-M3W7J6MU.js";
|
|
14
|
+
import "./chunk-IDV6HJCB.js";
|
|
15
|
+
import "./chunk-57NEQRVO.js";
|
|
16
|
+
import "./chunk-YEUYKR62.js";
|
|
17
|
+
import "./chunk-RNVYGWIC.js";
|
|
18
|
+
import "./chunk-MNH7QO4Z.js";
|
|
19
|
+
import "./chunk-Q35YIDBV.js";
|
|
20
|
+
import "./chunk-UJCVAWP7.js";
|
|
21
|
+
import "./chunk-OWBRDNRZ.js";
|
|
22
|
+
import "./chunk-G3T47CFV.js";
|
|
23
|
+
import "./chunk-2H7UOFLK.js";
|
|
24
|
+
export {
|
|
25
|
+
runCheck
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=check-EDLBYL5N.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
renderCheck,
|
|
4
|
+
runCheck
|
|
5
|
+
} from "./chunk-6OYEI2VV.js";
|
|
6
|
+
import "./chunk-MYMBCTDE.js";
|
|
7
|
+
import "./chunk-M2JCK5F6.js";
|
|
8
|
+
import "./chunk-TIUTIOFB.js";
|
|
9
|
+
import "./chunk-MNH7QO4Z.js";
|
|
10
|
+
import "./chunk-Q35YIDBV.js";
|
|
11
|
+
import "./chunk-OWBRDNRZ.js";
|
|
12
|
+
import "./chunk-G3T47CFV.js";
|
|
13
|
+
import "./chunk-2H7UOFLK.js";
|
|
14
|
+
export {
|
|
15
|
+
renderCheck,
|
|
16
|
+
runCheck
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=check-HYNGXYJV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
TERM_FIELDS,
|
|
4
|
+
displayPath,
|
|
5
|
+
plural
|
|
6
|
+
} from "./chunk-PU6DFJMY.js";
|
|
7
|
+
import {
|
|
8
|
+
palette
|
|
9
|
+
} from "./chunk-RNVYGWIC.js";
|
|
10
|
+
|
|
11
|
+
// src/term/reporters/pretty.ts
|
|
12
|
+
var WIDTH = 80;
|
|
13
|
+
function wrapWords(text, width) {
|
|
14
|
+
const lines = [];
|
|
15
|
+
let line = "";
|
|
16
|
+
for (const word of text.split(/\s+/).filter((w) => w !== "")) {
|
|
17
|
+
if (line === "") line = word;
|
|
18
|
+
else if (line.length + 1 + word.length <= width) line = `${line} ${word}`;
|
|
19
|
+
else {
|
|
20
|
+
lines.push(line);
|
|
21
|
+
line = word;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
if (line !== "") lines.push(line);
|
|
25
|
+
return lines.length === 0 ? [""] : lines;
|
|
26
|
+
}
|
|
27
|
+
function wrapSentences(text, width) {
|
|
28
|
+
if (text.length <= width) return [text];
|
|
29
|
+
const lines = [];
|
|
30
|
+
let line = "";
|
|
31
|
+
for (const sentence of text.split(/(?<=\.)\s+(?=\S)/)) {
|
|
32
|
+
if (line === "") line = sentence;
|
|
33
|
+
else if (line.length + 1 + sentence.length <= width) line = `${line} ${sentence}`;
|
|
34
|
+
else {
|
|
35
|
+
lines.push(line);
|
|
36
|
+
line = sentence;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (line !== "") lines.push(line);
|
|
40
|
+
return lines;
|
|
41
|
+
}
|
|
42
|
+
function hanging(first, lines) {
|
|
43
|
+
const indent = " ".repeat(first.length);
|
|
44
|
+
return lines.map((line, i) => `${i === 0 ? first : indent}${line}`.trimEnd());
|
|
45
|
+
}
|
|
46
|
+
function renderListPretty(terms) {
|
|
47
|
+
const idWidth = Math.max(0, ...terms.map((t) => t.id.length)) + 3;
|
|
48
|
+
const labelWidth = Math.max(0, ...terms.map((t) => t.record.label.length)) + 3;
|
|
49
|
+
const rows = terms.map(
|
|
50
|
+
(t) => `${t.id.padEnd(idWidth)}${t.record.label.padEnd(labelWidth)}${(t.record["alt-labels"] ?? []).join(", ")}`.trimEnd()
|
|
51
|
+
);
|
|
52
|
+
return [...rows, plural(terms.length, "term")].join("\n");
|
|
53
|
+
}
|
|
54
|
+
var GET_FIELDS = [
|
|
55
|
+
"alt-labels",
|
|
56
|
+
"hidden-labels",
|
|
57
|
+
"broader",
|
|
58
|
+
"narrower",
|
|
59
|
+
"related-terms",
|
|
60
|
+
"see",
|
|
61
|
+
"abstract",
|
|
62
|
+
"scope-note",
|
|
63
|
+
"definition"
|
|
64
|
+
];
|
|
65
|
+
var KEY_WIDTH = Math.max("language".length, ...TERM_FIELDS.map((f) => f.length)) + 2;
|
|
66
|
+
function renderGetPretty(term, opts) {
|
|
67
|
+
const c = palette(opts.color);
|
|
68
|
+
const where = `${displayPath(term.location.file, opts.cwd ?? process.cwd())}:${String(term.location.line)}`;
|
|
69
|
+
const lines = [`${c.bold(term.record.label.padEnd(40))}${c.dim(where)}`];
|
|
70
|
+
const row = (key, value) => {
|
|
71
|
+
const prefix = ` ${key.padEnd(KEY_WIDTH)}`;
|
|
72
|
+
lines.push(...hanging(prefix, wrapWords(value, WIDTH - prefix.length)));
|
|
73
|
+
};
|
|
74
|
+
row("id", term.id);
|
|
75
|
+
if (term.language !== void 0) row("language", term.language);
|
|
76
|
+
for (const field of GET_FIELDS) {
|
|
77
|
+
const value = term.record[field];
|
|
78
|
+
if (value === void 0) continue;
|
|
79
|
+
row(field, typeof value === "string" ? value : value.join(", "));
|
|
80
|
+
}
|
|
81
|
+
return lines.join("\n");
|
|
82
|
+
}
|
|
83
|
+
var RULE_WIDTH = 32;
|
|
84
|
+
function severityText(c, severity) {
|
|
85
|
+
const padded = severity.padEnd(6);
|
|
86
|
+
if (severity === "error") return c.red(padded);
|
|
87
|
+
if (severity === "warning") return c.yellow(padded);
|
|
88
|
+
return c.cyan(padded);
|
|
89
|
+
}
|
|
90
|
+
function counts(findings) {
|
|
91
|
+
const parts = [];
|
|
92
|
+
const n = (severity) => findings.filter((f) => f.severity === severity).length;
|
|
93
|
+
if (n("error") > 0) parts.push(plural(n("error"), "error"));
|
|
94
|
+
if (n("warning") > 0) parts.push(plural(n("warning"), "warning"));
|
|
95
|
+
if (n("notice") > 0) parts.push(plural(n("notice"), "notice"));
|
|
96
|
+
return parts.join(", ");
|
|
97
|
+
}
|
|
98
|
+
function renderFindingsPretty(report, opts) {
|
|
99
|
+
const c = palette(opts.color);
|
|
100
|
+
const { baseline } = report;
|
|
101
|
+
if (baseline?.written === true) {
|
|
102
|
+
return `${c.green("\u2713")} ${plural(report.found, "finding")} recorded in ${baseline.path}`;
|
|
103
|
+
}
|
|
104
|
+
const baselined = baseline !== void 0 && baseline.suppressed > 0 ? `, ${String(baseline.suppressed)} baselined` : "";
|
|
105
|
+
const terms = plural(report.terms, "term");
|
|
106
|
+
if (report.findings.length === 0) {
|
|
107
|
+
const references = opts.references === false ? "" : `, ${plural(report.references, "reference")}`;
|
|
108
|
+
return `${c.green("\u2713")} ${terms}${references}, no findings${baselined}`;
|
|
109
|
+
}
|
|
110
|
+
const ruleWidth = Math.max(RULE_WIDTH, ...report.findings.map((f) => f.ruleId.length + 2));
|
|
111
|
+
const lines = [];
|
|
112
|
+
let group;
|
|
113
|
+
for (const finding of report.findings) {
|
|
114
|
+
const file = displayPath(finding.file, report.cwd);
|
|
115
|
+
const header = finding.line === void 0 ? file : `${file}:${String(finding.line)}`;
|
|
116
|
+
if (header !== group) {
|
|
117
|
+
lines.push(c.bold(header));
|
|
118
|
+
group = header;
|
|
119
|
+
}
|
|
120
|
+
const prefixWidth = 2 + 6 + 1 + ruleWidth;
|
|
121
|
+
const message = wrapSentences(finding.message, WIDTH - prefixWidth);
|
|
122
|
+
const indent = " ".repeat(prefixWidth);
|
|
123
|
+
message.forEach((text, i) => {
|
|
124
|
+
lines.push(
|
|
125
|
+
i === 0 ? ` ${severityText(c, finding.severity)} ${finding.ruleId.padEnd(ruleWidth)}${text}` : `${indent}${text}`
|
|
126
|
+
);
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
lines.push("", `${counts(report.findings)} in ${terms}${baselined}`);
|
|
130
|
+
return lines.join("\n");
|
|
131
|
+
}
|
|
132
|
+
function changeLine(change) {
|
|
133
|
+
switch (change.action) {
|
|
134
|
+
case "create":
|
|
135
|
+
return `${change.path} would be created`;
|
|
136
|
+
case "change":
|
|
137
|
+
return `${change.path} would change`;
|
|
138
|
+
case "remove":
|
|
139
|
+
return `${change.path} would be removed`;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
function swapCount(content) {
|
|
143
|
+
const lines = content.split(/\r?\n/);
|
|
144
|
+
const start = lines.indexOf("swap:");
|
|
145
|
+
if (start === -1) return 0;
|
|
146
|
+
return lines.slice(start + 1).filter((line) => line.startsWith(" ")).length;
|
|
147
|
+
}
|
|
148
|
+
function baseName(path) {
|
|
149
|
+
return path.split(/[\\/]/).pop() ?? path;
|
|
150
|
+
}
|
|
151
|
+
var CASING_RULES = /* @__PURE__ */ new Set(["Casing.yml", "Lowercase.yml", "SentenceStart.yml"]);
|
|
152
|
+
function valeLines(report) {
|
|
153
|
+
const rows = [];
|
|
154
|
+
const acronyms = [];
|
|
155
|
+
for (const file of report.files) {
|
|
156
|
+
const name = baseName(file.path);
|
|
157
|
+
if (CASING_RULES.has(name)) rows.push([name, plural(swapCount(file.content), "label")]);
|
|
158
|
+
else if (name === "Deprecated.yml") rows.push([name, plural(swapCount(file.content), "swap")]);
|
|
159
|
+
else acronyms.push(name);
|
|
160
|
+
}
|
|
161
|
+
if (acronyms.length > 0) rows.push([acronyms.join(", "), plural(acronyms.length, "acronym")]);
|
|
162
|
+
const width = Math.max(0, ...rows.map(([name]) => name.length)) + 2;
|
|
163
|
+
return rows.map(([name, what]) => ` ${name.padEnd(width)}${what}`);
|
|
164
|
+
}
|
|
165
|
+
function droppedLine(report) {
|
|
166
|
+
if (report.dropped.length === 0) return void 0;
|
|
167
|
+
const ids = /* @__PURE__ */ new Map();
|
|
168
|
+
for (const { id, field } of report.dropped) {
|
|
169
|
+
const set = ids.get(field) ?? /* @__PURE__ */ new Set();
|
|
170
|
+
set.add(id);
|
|
171
|
+
ids.set(field, set);
|
|
172
|
+
}
|
|
173
|
+
const fields = [...ids.entries()].map(([field, set]) => ({ field, n: set.size })).sort((a, b) => a.n - b.n || TERM_FIELDS.indexOf(a.field) - TERM_FIELDS.indexOf(b.field));
|
|
174
|
+
const parts = fields.map(({ field, n }, i) => `${field} on ${i === 0 ? plural(n, "term") : String(n)}`);
|
|
175
|
+
return ` dropped from ${report.droppedFrom ?? report.format ?? "the render"}: ${parts.join(", ")}`;
|
|
176
|
+
}
|
|
177
|
+
function skippedLine(report) {
|
|
178
|
+
if (report.skipped.length === 0) return void 0;
|
|
179
|
+
const construct = report.droppedFrom ?? report.format ?? "the render";
|
|
180
|
+
const count = plural(report.skipped.length, "term");
|
|
181
|
+
return ` skipped ${count} ${construct} cannot read without a definition: ${report.skipped.join(", ")}`;
|
|
182
|
+
}
|
|
183
|
+
function renderNotes(report) {
|
|
184
|
+
return [droppedLine(report), skippedLine(report)].filter((line) => line !== void 0);
|
|
185
|
+
}
|
|
186
|
+
function unchangedLine(report) {
|
|
187
|
+
return report.mode === "in-place" ? "Nothing to write" : `${report.target ?? ""} is up to date`;
|
|
188
|
+
}
|
|
189
|
+
function renderWritePretty(report) {
|
|
190
|
+
if (report.check) {
|
|
191
|
+
return report.changes.length > 0 ? report.changes.map(changeLine).join("\n") : unchangedLine(report);
|
|
192
|
+
}
|
|
193
|
+
if (report.dryRun) {
|
|
194
|
+
const changes = report.changes.length > 0 ? report.changes.map(changeLine) : [unchangedLine(report)];
|
|
195
|
+
return [...changes, ...renderNotes(report)].join("\n");
|
|
196
|
+
}
|
|
197
|
+
if (report.mode === "in-place") {
|
|
198
|
+
return report.changes.length === 0 ? "Nothing to write" : `Wrote ${plural(report.changes.length, "file")}`;
|
|
199
|
+
}
|
|
200
|
+
const each = report.shape === "directory" && report.format !== "vale" ? ", one file each" : "";
|
|
201
|
+
const written = report.terms - report.skipped.length;
|
|
202
|
+
const lines = [`Wrote ${plural(written, "term")} to ${report.target ?? ""}${each}`];
|
|
203
|
+
if (report.format === "vale") lines.push(...valeLines(report));
|
|
204
|
+
lines.push(...renderNotes(report));
|
|
205
|
+
return lines.join("\n");
|
|
206
|
+
}
|
|
207
|
+
function renderValeWiring(wiring) {
|
|
208
|
+
return [
|
|
209
|
+
wiring.addSection ? `notice: ${wiring.rootIni} has no section with BasedOnStyles. Add one that uses the Terms style:` : `notice: no section of ${wiring.rootIni} uses the Terms style. Add it to BasedOnStyles:`,
|
|
210
|
+
` [${wiring.section}]`,
|
|
211
|
+
` BasedOnStyles = ${wiring.styles.join(", ")}`
|
|
212
|
+
].join("\n");
|
|
213
|
+
}
|
|
214
|
+
function renderFormatsPretty(rows) {
|
|
215
|
+
const formatWidth = Math.max(0, ...rows.map((r) => r.format.length)) + 3;
|
|
216
|
+
const labelWidth = Math.max(0, ...rows.map((r) => r.label.length)) + 3;
|
|
217
|
+
return rows.map(
|
|
218
|
+
(r) => `${r.format.padEnd(formatWidth)}${r.label.padEnd(labelWidth)}${r.read ? "read " : " "}${r.write ? "write" : ""}`.trimEnd()
|
|
219
|
+
).join("\n");
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
export {
|
|
223
|
+
renderListPretty,
|
|
224
|
+
renderGetPretty,
|
|
225
|
+
renderFindingsPretty,
|
|
226
|
+
renderWritePretty,
|
|
227
|
+
renderValeWiring,
|
|
228
|
+
renderFormatsPretty
|
|
229
|
+
};
|
|
230
|
+
//# sourceMappingURL=chunk-2B7ZNTPV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/term/reporters/pretty.ts"],"sourcesContent":["/**\n * Human output for every `manni term` command, in the shapes the ladder of\n * proposal 0052 prints. Columns are padded to their widest value; prose wraps\n * to 80 columns under its own column, so a long definition or message never\n * runs back to the left edge.\n */\nimport { palette, type Colors } from \"../../shared/color.js\";\nimport type { TermReport } from \"../commands/findings.js\";\nimport type { FormatRow } from \"../commands/formats.js\";\nimport { displayPath, plural } from \"../commands/run.js\";\nimport type { ValeWiring, WriteReport } from \"../commands/write.js\";\nimport type { Severity } from \"../../shared/severity.js\";\nimport { TERM_FIELDS, type Term, type TermField, type TermFinding } from \"../types.js\";\n\nconst WIDTH = 80;\n\n/** Words packed into lines of at most `width` characters; a longer word stands alone. */\nfunction wrapWords(text: string, width: number): string[] {\n const lines: string[] = [];\n let line = \"\";\n for (const word of text.split(/\\s+/).filter((w) => w !== \"\")) {\n if (line === \"\") line = word;\n else if (line.length + 1 + word.length <= width) line = `${line} ${word}`;\n else {\n lines.push(line);\n line = word;\n }\n }\n if (line !== \"\") lines.push(line);\n return lines.length === 0 ? [\"\"] : lines;\n}\n\n/** Sentences packed into lines of at most `width`; a message that fits stays whole. */\nfunction wrapSentences(text: string, width: number): string[] {\n if (text.length <= width) return [text];\n const lines: string[] = [];\n let line = \"\";\n for (const sentence of text.split(/(?<=\\.)\\s+(?=\\S)/)) {\n if (line === \"\") line = sentence;\n else if (line.length + 1 + sentence.length <= width) line = `${line} ${sentence}`;\n else {\n lines.push(line);\n line = sentence;\n }\n }\n if (line !== \"\") lines.push(line);\n return lines;\n}\n\nfunction hanging(first: string, lines: readonly string[]): string[] {\n const indent = \" \".repeat(first.length);\n return lines.map((line, i) => `${i === 0 ? first : indent}${line}`.trimEnd());\n}\n\n// ---------------------------------------------------------------------------\n// list\n\nexport function renderListPretty(terms: readonly Term[]): string {\n const idWidth = Math.max(0, ...terms.map((t) => t.id.length)) + 3;\n const labelWidth = Math.max(0, ...terms.map((t) => t.record.label.length)) + 3;\n const rows = terms.map((t) =>\n `${t.id.padEnd(idWidth)}${t.record.label.padEnd(labelWidth)}${(t.record[\"alt-labels\"] ?? []).join(\", \")}`.trimEnd(),\n );\n return [...rows, plural(terms.length, \"term\")].join(\"\\n\");\n}\n\n// ---------------------------------------------------------------------------\n// get\n\n/** The order `get` shows fields in: names first, then what they mean, the definition last. */\nconst GET_FIELDS: readonly TermField[] = [\n \"alt-labels\",\n \"hidden-labels\",\n \"broader\",\n \"narrower\",\n \"related-terms\",\n \"see\",\n \"abstract\",\n \"scope-note\",\n \"definition\",\n];\n\nconst KEY_WIDTH = Math.max(\"language\".length, ...TERM_FIELDS.map((f) => f.length)) + 2;\n\nexport function renderGetPretty(term: Term, opts: { color: boolean; cwd?: string }): string {\n const c = palette(opts.color);\n const where = `${displayPath(term.location.file, opts.cwd ?? process.cwd())}:${String(term.location.line)}`;\n const lines = [`${c.bold(term.record.label.padEnd(40))}${c.dim(where)}`];\n const row = (key: string, value: string): void => {\n const prefix = ` ${key.padEnd(KEY_WIDTH)}`;\n lines.push(...hanging(prefix, wrapWords(value, WIDTH - prefix.length)));\n };\n row(\"id\", term.id);\n if (term.language !== undefined) row(\"language\", term.language);\n for (const field of GET_FIELDS) {\n const value = term.record[field];\n if (value === undefined) continue;\n row(field, typeof value === \"string\" ? value : value.join(\", \"));\n }\n return lines.join(\"\\n\");\n}\n\n// ---------------------------------------------------------------------------\n// check and lint\n\nconst RULE_WIDTH = 32;\n\nfunction severityText(c: Colors, severity: Severity): string {\n const padded = severity.padEnd(6);\n if (severity === \"error\") return c.red(padded);\n if (severity === \"warning\") return c.yellow(padded);\n return c.cyan(padded);\n}\n\nfunction counts(findings: readonly TermFinding[]): string {\n const parts: string[] = [];\n const n = (severity: Severity): number => findings.filter((f) => f.severity === severity).length;\n if (n(\"error\") > 0) parts.push(plural(n(\"error\"), \"error\"));\n if (n(\"warning\") > 0) parts.push(plural(n(\"warning\"), \"warning\"));\n if (n(\"notice\") > 0) parts.push(plural(n(\"notice\"), \"notice\"));\n return parts.join(\", \");\n}\n\nexport interface FindingsPrettyOptions {\n color: boolean;\n /** Whether the clean line counts references: `check` reads them, `lint` does not. */\n references?: boolean;\n}\n\nexport function renderFindingsPretty(report: TermReport, opts: FindingsPrettyOptions): string {\n const c = palette(opts.color);\n const { baseline } = report;\n if (baseline?.written === true) {\n return `${c.green(\"✓\")} ${plural(report.found, \"finding\")} recorded in ${baseline.path}`;\n }\n const baselined = baseline !== undefined && baseline.suppressed > 0 ? `, ${String(baseline.suppressed)} baselined` : \"\";\n const terms = plural(report.terms, \"term\");\n\n if (report.findings.length === 0) {\n const references = opts.references === false ? \"\" : `, ${plural(report.references, \"reference\")}`;\n return `${c.green(\"✓\")} ${terms}${references}, no findings${baselined}`;\n }\n\n const ruleWidth = Math.max(RULE_WIDTH, ...report.findings.map((f) => f.ruleId.length + 2));\n const lines: string[] = [];\n let group: string | undefined;\n for (const finding of report.findings) {\n const file = displayPath(finding.file, report.cwd);\n const header = finding.line === undefined ? file : `${file}:${String(finding.line)}`;\n if (header !== group) {\n lines.push(c.bold(header));\n group = header;\n }\n const prefixWidth = 2 + 6 + 1 + ruleWidth;\n const message = wrapSentences(finding.message, WIDTH - prefixWidth);\n const indent = \" \".repeat(prefixWidth);\n message.forEach((text, i) => {\n lines.push(\n i === 0 ? ` ${severityText(c, finding.severity)} ${finding.ruleId.padEnd(ruleWidth)}${text}` : `${indent}${text}`,\n );\n });\n }\n lines.push(\"\", `${counts(report.findings)} in ${terms}${baselined}`);\n return lines.join(\"\\n\");\n}\n\n// ---------------------------------------------------------------------------\n// write\n\nfunction changeLine(change: WriteReport[\"changes\"][number]): string {\n switch (change.action) {\n case \"create\":\n return `${change.path} would be created`;\n case \"change\":\n return `${change.path} would change`;\n case \"remove\":\n return `${change.path} would be removed`;\n }\n}\n\n/** A generated Vale rule file's `swap:` entries. */\nfunction swapCount(content: string): number {\n const lines = content.split(/\\r?\\n/);\n const start = lines.indexOf(\"swap:\");\n if (start === -1) return 0;\n return lines.slice(start + 1).filter((line) => line.startsWith(\" \")).length;\n}\n\nfunction baseName(path: string): string {\n return path.split(/[\\\\/]/).pop() ?? path;\n}\n\nconst CASING_RULES = new Set([\"Casing.yml\", \"Lowercase.yml\", \"SentenceStart.yml\"]);\n\n/** What each file of a Vale style holds: rule files by name, the acronym files together. */\nfunction valeLines(report: WriteReport): string[] {\n const rows: [string, string][] = [];\n const acronyms: string[] = [];\n for (const file of report.files) {\n const name = baseName(file.path);\n // A casing rule swaps each label and alt-label, so what it counts is labels.\n if (CASING_RULES.has(name)) rows.push([name, plural(swapCount(file.content), \"label\")]);\n else if (name === \"Deprecated.yml\") rows.push([name, plural(swapCount(file.content), \"swap\")]);\n else acronyms.push(name);\n }\n if (acronyms.length > 0) rows.push([acronyms.join(\", \"), plural(acronyms.length, \"acronym\")]);\n const width = Math.max(0, ...rows.map(([name]) => name.length)) + 2;\n return rows.map(([name, what]) => ` ${name.padEnd(width)}${what}`);\n}\n\n/** ` dropped from a definition list: scope-note on 3 terms, hidden-labels on 12`. */\nfunction droppedLine(report: WriteReport): string | undefined {\n if (report.dropped.length === 0) return undefined;\n const ids = new Map<TermField, Set<string>>();\n for (const { id, field } of report.dropped) {\n const set = ids.get(field) ?? new Set<string>();\n set.add(id);\n ids.set(field, set);\n }\n const fields = [...ids.entries()]\n .map(([field, set]) => ({ field, n: set.size }))\n .sort((a, b) => a.n - b.n || TERM_FIELDS.indexOf(a.field) - TERM_FIELDS.indexOf(b.field));\n const parts = fields.map(({ field, n }, i) => `${field} on ${i === 0 ? plural(n, \"term\") : String(n)}`);\n return ` dropped from ${report.droppedFrom ?? report.format ?? \"the render\"}: ${parts.join(\", \")}`;\n}\n\n/** ` skipped 2 terms a definition list cannot read without a definition: varifocal, bifocal`. */\nfunction skippedLine(report: WriteReport): string | undefined {\n if (report.skipped.length === 0) return undefined;\n const construct = report.droppedFrom ?? report.format ?? \"the render\";\n const count = plural(report.skipped.length, \"term\");\n return ` skipped ${count} ${construct} cannot read without a definition: ${report.skipped.join(\", \")}`;\n}\n\n/** The dropped and skipped lines, which a write and a dry run print alike. */\nfunction renderNotes(report: WriteReport): string[] {\n return [droppedLine(report), skippedLine(report)].filter((line) => line !== undefined);\n}\n\nfunction unchangedLine(report: WriteReport): string {\n return report.mode === \"in-place\" ? \"Nothing to write\" : `${report.target ?? \"\"} is up to date`;\n}\n\nexport function renderWritePretty(report: WriteReport): string {\n if (report.check) {\n return report.changes.length > 0 ? report.changes.map(changeLine).join(\"\\n\") : unchangedLine(report);\n }\n if (report.dryRun) {\n const changes = report.changes.length > 0 ? report.changes.map(changeLine) : [unchangedLine(report)];\n return [...changes, ...renderNotes(report)].join(\"\\n\");\n }\n if (report.mode === \"in-place\") {\n return report.changes.length === 0 ? \"Nothing to write\" : `Wrote ${plural(report.changes.length, \"file\")}`;\n }\n const each = report.shape === \"directory\" && report.format !== \"vale\" ? \", one file each\" : \"\";\n const written = report.terms - report.skipped.length;\n const lines = [`Wrote ${plural(written, \"term\")} to ${report.target ?? \"\"}${each}`];\n if (report.format === \"vale\") lines.push(...valeLines(report));\n lines.push(...renderNotes(report));\n return lines.join(\"\\n\");\n}\n\n/** The notice `write -f vale` prints when no section of Vale's config uses the style, or there is no section. */\nexport function renderValeWiring(wiring: ValeWiring): string {\n return [\n wiring.addSection\n ? `notice: ${wiring.rootIni} has no section with BasedOnStyles. Add one that uses the Terms style:`\n : `notice: no section of ${wiring.rootIni} uses the Terms style. Add it to BasedOnStyles:`,\n ` [${wiring.section}]`,\n ` BasedOnStyles = ${wiring.styles.join(\", \")}`,\n ].join(\"\\n\");\n}\n\n// ---------------------------------------------------------------------------\n// formats\n\nexport function renderFormatsPretty(rows: readonly FormatRow[]): string {\n const formatWidth = Math.max(0, ...rows.map((r) => r.format.length)) + 3;\n const labelWidth = Math.max(0, ...rows.map((r) => r.label.length)) + 3;\n return rows\n .map((r) =>\n `${r.format.padEnd(formatWidth)}${r.label.padEnd(labelWidth)}${r.read ? \"read \" : \" \"}${r.write ? \"write\" : \"\"}`.trimEnd(),\n )\n .join(\"\\n\");\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __export = (target, all) => {
|
|
4
|
+
for (var name in all)
|
|
5
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export {
|
|
9
|
+
__export
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=chunk-2H7UOFLK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|