@hawkeyexl/manni 4.10.0 → 4.12.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.
Files changed (243) hide show
  1. package/README.md +1 -1
  2. package/dist/batch-EFSFG6GC.js +46 -0
  3. package/dist/build-NIO3UIWJ.js +36 -0
  4. package/dist/calibrate-6VO7URRV.js +41 -0
  5. package/dist/capture-NMBVJO3C.js +38 -0
  6. package/dist/check-SHOYX2B5.js +30 -0
  7. package/dist/check-XMJKH3KV.js +34 -0
  8. package/dist/{check-NLL4NRYA.js → check-Y62BJNC4.js} +35 -31
  9. package/dist/{check-NLL4NRYA.js.map → check-Y62BJNC4.js.map} +1 -1
  10. package/dist/{check-7B77ZD2N.js → check-ZMO3ZLMW.js} +19 -15
  11. package/dist/{chunk-PK7EKJ5T.js → chunk-24AJK2RG.js} +5 -10
  12. package/dist/chunk-24AJK2RG.js.map +1 -0
  13. package/dist/chunk-2OZF2VUB.js +164 -0
  14. package/dist/chunk-2OZF2VUB.js.map +1 -0
  15. package/dist/chunk-2UJZXVHR.js +1868 -0
  16. package/dist/chunk-2UJZXVHR.js.map +1 -0
  17. package/dist/{chunk-DNZUBCGZ.js → chunk-3BRJCQPY.js} +36 -7
  18. package/dist/chunk-3BRJCQPY.js.map +1 -0
  19. package/dist/{chunk-D2UW3ZCK.js → chunk-42VFJOAF.js} +13 -11
  20. package/dist/{chunk-D2UW3ZCK.js.map → chunk-42VFJOAF.js.map} +1 -1
  21. package/dist/{chunk-LQZQ5KGG.js → chunk-4Q24OYI3.js} +7 -7
  22. package/dist/{chunk-XU73V5XT.js → chunk-4WJTURRO.js} +15 -15
  23. package/dist/{chunk-WN47MNSK.js → chunk-5SID2SVL.js} +4 -4
  24. package/dist/{chunk-5REEVKGH.js → chunk-AANUY4BH.js} +2 -2
  25. package/dist/chunk-ANPIIYRH.js +2272 -0
  26. package/dist/chunk-ANPIIYRH.js.map +1 -0
  27. package/dist/{chunk-RZVCWX5R.js → chunk-AYVKN3PG.js} +4 -4
  28. package/dist/{chunk-2UCC26MO.js → chunk-CH6IOGXV.js} +9 -9
  29. package/dist/{chunk-RODZ7MB7.js → chunk-D5Z6B4M7.js} +6 -6
  30. package/dist/{chunk-IJ62BB2T.js → chunk-D6SELXQ2.js} +7 -7
  31. package/dist/{chunk-2JV7C4YV.js → chunk-DDILEF5F.js} +890 -1399
  32. package/dist/chunk-DDILEF5F.js.map +1 -0
  33. package/dist/{chunk-3E2X2RBU.js → chunk-DGRLHDM4.js} +9 -9
  34. package/dist/{chunk-2BV4FBC7.js → chunk-DHGB4JBG.js} +4 -3
  35. package/dist/chunk-DHGB4JBG.js.map +1 -0
  36. package/dist/{chunk-6LR73NMO.js → chunk-DLU5FCFT.js} +30 -28
  37. package/dist/chunk-DLU5FCFT.js.map +1 -0
  38. package/dist/chunk-DSWKBZWW.js +16 -0
  39. package/dist/chunk-DSWKBZWW.js.map +1 -0
  40. package/dist/{chunk-BD7IXBWE.js → chunk-F564FHMQ.js} +8 -8
  41. package/dist/{chunk-ABHG6I3G.js → chunk-FKAZUZQU.js} +469 -85
  42. package/dist/chunk-FKAZUZQU.js.map +1 -0
  43. package/dist/{chunk-DFCQ6BMI.js → chunk-G3MBUL5M.js} +4 -4
  44. package/dist/{chunk-SUTMSDQ2.js → chunk-GQ3KRY3B.js} +3 -3
  45. package/dist/chunk-HDPN46JP.js +393 -0
  46. package/dist/chunk-HDPN46JP.js.map +1 -0
  47. package/dist/{chunk-EAUIQADY.js → chunk-IQQAJROD.js} +6 -6
  48. package/dist/{chunk-ZHRPH52H.js → chunk-IZXN3WI6.js} +2 -2
  49. package/dist/{chunk-NCPWXHDO.js → chunk-JEUFYSFQ.js} +4 -4
  50. package/dist/{chunk-G6FNWRAI.js → chunk-JSSM7VVV.js} +4 -4
  51. package/dist/{chunk-CCWMACJL.js → chunk-KFGZPVFA.js} +229 -821
  52. package/dist/chunk-KFGZPVFA.js.map +1 -0
  53. package/dist/{chunk-H26VDFDS.js → chunk-KGFSPJLD.js} +2 -2
  54. package/dist/{chunk-AO5TSDKT.js → chunk-KMORGMCW.js} +7 -7
  55. package/dist/{chunk-WQWKYAAK.js → chunk-NUQF5F5J.js} +2 -2
  56. package/dist/{chunk-2YJ5H5E6.js → chunk-NZ6KSHFD.js} +23 -21
  57. package/dist/{chunk-2YJ5H5E6.js.map → chunk-NZ6KSHFD.js.map} +1 -1
  58. package/dist/{chunk-7Y3N4Y72.js → chunk-OHUDZRLK.js} +3 -3
  59. package/dist/{chunk-GCKHSBEN.js → chunk-OKMTUAWO.js} +4 -4
  60. package/dist/{chunk-6M5VJOC2.js → chunk-OTJOBZJ5.js} +167 -166
  61. package/dist/chunk-OTJOBZJ5.js.map +1 -0
  62. package/dist/{chunk-2W34HX2U.js → chunk-PS257NIU.js} +288 -373
  63. package/dist/chunk-PS257NIU.js.map +1 -0
  64. package/dist/chunk-QDC7JPFG.js +685 -0
  65. package/dist/chunk-QDC7JPFG.js.map +1 -0
  66. package/dist/chunk-QEAGL4V5.js +3185 -0
  67. package/dist/chunk-QEAGL4V5.js.map +1 -0
  68. package/dist/{chunk-GB2XPITA.js → chunk-QMY57PVW.js} +2 -2
  69. package/dist/{chunk-55GMOVKW.js → chunk-QNDDPXFR.js} +2 -2
  70. package/dist/{chunk-GXN7RRHR.js → chunk-QSIXNTRV.js} +4 -4
  71. package/dist/{chunk-G7XD4QH5.js → chunk-RGLFV4KO.js} +11372 -10218
  72. package/dist/chunk-RGLFV4KO.js.map +1 -0
  73. package/dist/{chunk-QBVP3SQP.js → chunk-SGR7ZAVE.js} +13 -7
  74. package/dist/chunk-SGR7ZAVE.js.map +1 -0
  75. package/dist/{chunk-KBG463UK.js → chunk-SMHAYK6I.js} +2409 -5243
  76. package/dist/chunk-SMHAYK6I.js.map +1 -0
  77. package/dist/{chunk-XG6PVB5S.js → chunk-SSQZB5SQ.js} +1 -11
  78. package/dist/chunk-SSQZB5SQ.js.map +1 -0
  79. package/dist/{chunk-GDLHTI5R.js → chunk-STPGIKPY.js} +8 -2
  80. package/dist/chunk-STPGIKPY.js.map +1 -0
  81. package/dist/{chunk-QJRQ4BRC.js → chunk-U22TOL5Y.js} +17 -17
  82. package/dist/{chunk-NGTVREIH.js → chunk-U6IHLEWT.js} +2 -2
  83. package/dist/{chunk-Z5YHMRLF.js → chunk-UUCCV3SI.js} +2 -2
  84. package/dist/{chunk-ZXXFP2LA.js → chunk-UXMCHBOJ.js} +2 -2
  85. package/dist/{chunk-VZVEP2OZ.js → chunk-VFAKGIDG.js} +2 -2
  86. package/dist/{chunk-QCHVR4ZM.js → chunk-VM7VAFJW.js} +33 -7
  87. package/dist/chunk-VM7VAFJW.js.map +1 -0
  88. package/dist/{chunk-VQK4VHLF.js → chunk-YQV75FIL.js} +2 -2
  89. package/dist/chunk-YUTVAMWW.js +2 -0
  90. package/dist/chunk-ZPLVANY2.js +15 -0
  91. package/dist/chunk-ZPLVANY2.js.map +1 -0
  92. package/dist/{cli-BIIUKPTE.js → cli-4CR7QIOK.js} +26 -22
  93. package/dist/{cli-BIIUKPTE.js.map → cli-4CR7QIOK.js.map} +1 -1
  94. package/dist/{cli-V2DI3K2R.js → cli-6R4W3HAH.js} +37 -33
  95. package/dist/{cli-V2DI3K2R.js.map → cli-6R4W3HAH.js.map} +1 -1
  96. package/dist/{cli-HO62TOM2.js → cli-BOMA2FMP.js} +14 -11
  97. package/dist/{cli-EH3I4IUX.js → cli-EDQPQOCE.js} +47 -41
  98. package/dist/cli-EDQPQOCE.js.map +1 -0
  99. package/dist/{cli-P2X7PNY6.js → cli-GBF76EXT.js} +25 -20
  100. package/dist/{cli-P2X7PNY6.js.map → cli-GBF76EXT.js.map} +1 -1
  101. package/dist/{cli-4YYC6LCY.js → cli-MQYCF3SR.js} +27 -23
  102. package/dist/{cli-4YYC6LCY.js.map → cli-MQYCF3SR.js.map} +1 -1
  103. package/dist/{cli-UETKXHJN.js → cli-OJKFXQOM.js} +9 -9
  104. package/dist/{cli-LWST5FQH.js → cli-PHZAO4LZ.js} +4 -4
  105. package/dist/{cli-TELPAMJO.js → cli-PTKFFNOW.js} +59 -35
  106. package/dist/cli-PTKFFNOW.js.map +1 -0
  107. package/dist/{cli-SGVFZOAW.js → cli-UW2K5Z5J.js} +34 -29
  108. package/dist/{cli-SGVFZOAW.js.map → cli-UW2K5Z5J.js.map} +1 -1
  109. package/dist/cli-XXTNPPKB.js +83 -0
  110. package/dist/cli-XXTNPPKB.js.map +1 -0
  111. package/dist/cli.js +24 -12
  112. package/dist/cli.js.map +1 -1
  113. package/dist/{config-TYXYQK3I.js → config-JJW75SBX.js} +5 -5
  114. package/dist/docmeta.js +13 -10
  115. package/dist/docmeta.js.map +1 -1
  116. package/dist/github-6VQKSB67.js +35 -0
  117. package/dist/github-RBSEM7ZK.js +30 -0
  118. package/dist/graph/runtime.d.ts +4 -1
  119. package/dist/graph/runtime.js +20 -9
  120. package/dist/graph/runtime.js.map +1 -1
  121. package/dist/{host-6GURH5HE.js → host-YSTYO5DX.js} +3 -3
  122. package/dist/index.d.ts +1214 -940
  123. package/dist/index.js +190 -160
  124. package/dist/index.js.map +1 -1
  125. package/dist/{json-QR4G35KA.js → json-PU2HLHDQ.js} +18 -14
  126. package/dist/labels-SJNSOPBI.js +73 -0
  127. package/dist/labels-SJNSOPBI.js.map +1 -0
  128. package/dist/lint-KIVTHLGU.js +34 -0
  129. package/dist/list-RDEJDDJF.js +32 -0
  130. package/dist/list-SUTDWL2J.js +35 -0
  131. package/dist/{page-FSXDXCDD.js → page-UMAA3NCM.js} +18 -13
  132. package/dist/{prepare-UPIBTFNS.js → prepare-3I3LOXXD.js} +24 -20
  133. package/dist/{prepare-UPIBTFNS.js.map → prepare-3I3LOXXD.js.map} +1 -1
  134. package/dist/{pretty-4IONWSEP.js → pretty-ANLRHU4O.js} +18 -14
  135. package/dist/{pretty-R4BQD2VH.js → pretty-Q3ZFKOR7.js} +18 -14
  136. package/dist/{provider-527CO4DM.js → provider-LBX4IXGX.js} +3 -3
  137. package/dist/{release-3D5PK6M7.js → release-VV3UTKE5.js} +3 -3
  138. package/dist/{reporters-M6LJ2IYU.js → reporters-26H3N2KW.js} +3 -3
  139. package/dist/{reporters-DHO2BXAD.js → reporters-ILT36CIH.js} +7 -7
  140. package/dist/{reporters-FPP6JNDP.js → reporters-PNDLWT6K.js} +16 -12
  141. package/dist/run-QXCK33Z4.js +37 -0
  142. package/dist/{term-ASM4LVYC.js → term-D2N7UN4P.js} +981 -138
  143. package/dist/term-D2N7UN4P.js.map +1 -0
  144. package/dist/validate-BRUCOT2O.js +19 -0
  145. package/dist/validate-BRUCOT2O.js.map +1 -0
  146. package/package.json +3 -2
  147. package/plugin/manni/.claude-plugin/plugin.json +1 -1
  148. package/shapes/graph/shapes-1.1.0.ttl +785 -0
  149. package/dist/batch-6NICDKRE.js +0 -41
  150. package/dist/build-3KP2K3XN.js +0 -32
  151. package/dist/calibrate-LUA3DWKD.js +0 -36
  152. package/dist/capture-NETOHCB4.js +0 -34
  153. package/dist/check-E4QCB7LS.js +0 -20
  154. package/dist/check-PTECPIIB.js +0 -26
  155. package/dist/chunk-2BV4FBC7.js.map +0 -1
  156. package/dist/chunk-2JV7C4YV.js.map +0 -1
  157. package/dist/chunk-2W34HX2U.js.map +0 -1
  158. package/dist/chunk-4DLF5SA4.js +0 -392
  159. package/dist/chunk-4DLF5SA4.js.map +0 -1
  160. package/dist/chunk-6AGESHHM.js +0 -387
  161. package/dist/chunk-6AGESHHM.js.map +0 -1
  162. package/dist/chunk-6LR73NMO.js.map +0 -1
  163. package/dist/chunk-6M5VJOC2.js.map +0 -1
  164. package/dist/chunk-ABHG6I3G.js.map +0 -1
  165. package/dist/chunk-CCWMACJL.js.map +0 -1
  166. package/dist/chunk-DNZUBCGZ.js.map +0 -1
  167. package/dist/chunk-G7XD4QH5.js.map +0 -1
  168. package/dist/chunk-GDLHTI5R.js.map +0 -1
  169. package/dist/chunk-KBG463UK.js.map +0 -1
  170. package/dist/chunk-PK7EKJ5T.js.map +0 -1
  171. package/dist/chunk-QBVP3SQP.js.map +0 -1
  172. package/dist/chunk-QCHVR4ZM.js.map +0 -1
  173. package/dist/chunk-VVVKBUBO.js +0 -818
  174. package/dist/chunk-VVVKBUBO.js.map +0 -1
  175. package/dist/chunk-XG6PVB5S.js.map +0 -1
  176. package/dist/cli-EH3I4IUX.js.map +0 -1
  177. package/dist/cli-TELPAMJO.js.map +0 -1
  178. package/dist/github-ESK45CEZ.js +0 -26
  179. package/dist/github-WER7JUTN.js +0 -31
  180. package/dist/lint-QTI7XK2A.js +0 -30
  181. package/dist/list-JO4G3TS3.js +0 -30
  182. package/dist/list-O2MJUP5V.js +0 -28
  183. package/dist/run-YH5Z7RJ7.js +0 -32
  184. package/dist/term-ASM4LVYC.js.map +0 -1
  185. package/dist/validate-7JI3H57P.js +0 -17
  186. /package/dist/{batch-6NICDKRE.js.map → batch-EFSFG6GC.js.map} +0 -0
  187. /package/dist/{build-3KP2K3XN.js.map → build-NIO3UIWJ.js.map} +0 -0
  188. /package/dist/{calibrate-LUA3DWKD.js.map → calibrate-6VO7URRV.js.map} +0 -0
  189. /package/dist/{capture-NETOHCB4.js.map → capture-NMBVJO3C.js.map} +0 -0
  190. /package/dist/{check-7B77ZD2N.js.map → check-SHOYX2B5.js.map} +0 -0
  191. /package/dist/{check-E4QCB7LS.js.map → check-XMJKH3KV.js.map} +0 -0
  192. /package/dist/{check-PTECPIIB.js.map → check-ZMO3ZLMW.js.map} +0 -0
  193. /package/dist/{chunk-LQZQ5KGG.js.map → chunk-4Q24OYI3.js.map} +0 -0
  194. /package/dist/{chunk-XU73V5XT.js.map → chunk-4WJTURRO.js.map} +0 -0
  195. /package/dist/{chunk-WN47MNSK.js.map → chunk-5SID2SVL.js.map} +0 -0
  196. /package/dist/{chunk-5REEVKGH.js.map → chunk-AANUY4BH.js.map} +0 -0
  197. /package/dist/{chunk-RZVCWX5R.js.map → chunk-AYVKN3PG.js.map} +0 -0
  198. /package/dist/{chunk-2UCC26MO.js.map → chunk-CH6IOGXV.js.map} +0 -0
  199. /package/dist/{chunk-RODZ7MB7.js.map → chunk-D5Z6B4M7.js.map} +0 -0
  200. /package/dist/{chunk-IJ62BB2T.js.map → chunk-D6SELXQ2.js.map} +0 -0
  201. /package/dist/{chunk-3E2X2RBU.js.map → chunk-DGRLHDM4.js.map} +0 -0
  202. /package/dist/{chunk-BD7IXBWE.js.map → chunk-F564FHMQ.js.map} +0 -0
  203. /package/dist/{chunk-DFCQ6BMI.js.map → chunk-G3MBUL5M.js.map} +0 -0
  204. /package/dist/{chunk-SUTMSDQ2.js.map → chunk-GQ3KRY3B.js.map} +0 -0
  205. /package/dist/{chunk-EAUIQADY.js.map → chunk-IQQAJROD.js.map} +0 -0
  206. /package/dist/{chunk-ZHRPH52H.js.map → chunk-IZXN3WI6.js.map} +0 -0
  207. /package/dist/{chunk-NCPWXHDO.js.map → chunk-JEUFYSFQ.js.map} +0 -0
  208. /package/dist/{chunk-G6FNWRAI.js.map → chunk-JSSM7VVV.js.map} +0 -0
  209. /package/dist/{chunk-H26VDFDS.js.map → chunk-KGFSPJLD.js.map} +0 -0
  210. /package/dist/{chunk-AO5TSDKT.js.map → chunk-KMORGMCW.js.map} +0 -0
  211. /package/dist/{chunk-WQWKYAAK.js.map → chunk-NUQF5F5J.js.map} +0 -0
  212. /package/dist/{chunk-7Y3N4Y72.js.map → chunk-OHUDZRLK.js.map} +0 -0
  213. /package/dist/{chunk-GCKHSBEN.js.map → chunk-OKMTUAWO.js.map} +0 -0
  214. /package/dist/{chunk-GB2XPITA.js.map → chunk-QMY57PVW.js.map} +0 -0
  215. /package/dist/{chunk-55GMOVKW.js.map → chunk-QNDDPXFR.js.map} +0 -0
  216. /package/dist/{chunk-GXN7RRHR.js.map → chunk-QSIXNTRV.js.map} +0 -0
  217. /package/dist/{chunk-QJRQ4BRC.js.map → chunk-U22TOL5Y.js.map} +0 -0
  218. /package/dist/{chunk-NGTVREIH.js.map → chunk-U6IHLEWT.js.map} +0 -0
  219. /package/dist/{chunk-Z5YHMRLF.js.map → chunk-UUCCV3SI.js.map} +0 -0
  220. /package/dist/{chunk-ZXXFP2LA.js.map → chunk-UXMCHBOJ.js.map} +0 -0
  221. /package/dist/{chunk-VZVEP2OZ.js.map → chunk-VFAKGIDG.js.map} +0 -0
  222. /package/dist/{chunk-VQK4VHLF.js.map → chunk-YQV75FIL.js.map} +0 -0
  223. /package/dist/{cli-HO62TOM2.js.map → chunk-YUTVAMWW.js.map} +0 -0
  224. /package/dist/{config-TYXYQK3I.js.map → cli-BOMA2FMP.js.map} +0 -0
  225. /package/dist/{cli-UETKXHJN.js.map → cli-OJKFXQOM.js.map} +0 -0
  226. /package/dist/{cli-LWST5FQH.js.map → cli-PHZAO4LZ.js.map} +0 -0
  227. /package/dist/{github-ESK45CEZ.js.map → config-JJW75SBX.js.map} +0 -0
  228. /package/dist/{github-WER7JUTN.js.map → github-6VQKSB67.js.map} +0 -0
  229. /package/dist/{host-6GURH5HE.js.map → github-RBSEM7ZK.js.map} +0 -0
  230. /package/dist/{json-QR4G35KA.js.map → host-YSTYO5DX.js.map} +0 -0
  231. /package/dist/{lint-QTI7XK2A.js.map → json-PU2HLHDQ.js.map} +0 -0
  232. /package/dist/{list-JO4G3TS3.js.map → lint-KIVTHLGU.js.map} +0 -0
  233. /package/dist/{list-O2MJUP5V.js.map → list-RDEJDDJF.js.map} +0 -0
  234. /package/dist/{page-FSXDXCDD.js.map → list-SUTDWL2J.js.map} +0 -0
  235. /package/dist/{pretty-4IONWSEP.js.map → page-UMAA3NCM.js.map} +0 -0
  236. /package/dist/{pretty-R4BQD2VH.js.map → pretty-ANLRHU4O.js.map} +0 -0
  237. /package/dist/{provider-527CO4DM.js.map → pretty-Q3ZFKOR7.js.map} +0 -0
  238. /package/dist/{reporters-DHO2BXAD.js.map → provider-LBX4IXGX.js.map} +0 -0
  239. /package/dist/{release-3D5PK6M7.js.map → release-VV3UTKE5.js.map} +0 -0
  240. /package/dist/{reporters-FPP6JNDP.js.map → reporters-26H3N2KW.js.map} +0 -0
  241. /package/dist/{reporters-M6LJ2IYU.js.map → reporters-ILT36CIH.js.map} +0 -0
  242. /package/dist/{run-YH5Z7RJ7.js.map → reporters-PNDLWT6K.js.map} +0 -0
  243. /package/dist/{validate-7JI3H57P.js.map → run-QXCK33Z4.js.map} +0 -0
package/dist/cli.js CHANGED
@@ -1,21 +1,27 @@
1
1
  #!/usr/bin/env node
2
+ import {
3
+ registerTermLabelSource
4
+ } from "./chunk-DSWKBZWW.js";
2
5
  import {
3
6
  runIfMain
4
7
  } from "./chunk-YEUYKR62.js";
5
8
  import {
6
9
  package_default
7
- } from "./chunk-2BV4FBC7.js";
10
+ } from "./chunk-DHGB4JBG.js";
8
11
  import "./chunk-OWBRDNRZ.js";
9
12
  import "./chunk-G3T47CFV.js";
10
13
  import "./chunk-2H7UOFLK.js";
11
14
 
12
15
  // src/cli.ts
13
16
  import { Command } from "commander";
17
+ registerTermLabelSource(
18
+ async (request) => (await import("./labels-SJNSOPBI.js")).termLabels(request)
19
+ );
14
20
  var DOMAINS = [
15
21
  {
16
22
  names: ["meta"],
17
23
  load: async () => [
18
- (await import("./cli-HO62TOM2.js")).buildProgram().name("meta").description(
24
+ (await import("./cli-BOMA2FMP.js")).buildProgram().name("meta").description(
19
25
  "Validate, read, query and fill document metadata against JSON Schema"
20
26
  )
21
27
  ]
@@ -23,7 +29,7 @@ var DOMAINS = [
23
29
  {
24
30
  names: ["a11y"],
25
31
  load: async () => [
26
- (await import("./cli-UETKXHJN.js")).buildProgram().name("a11y").description(
32
+ (await import("./cli-OJKFXQOM.js")).buildProgram().name("a11y").description(
27
33
  "Crawl a site and check every page for accessibility violations with axe-core"
28
34
  )
29
35
  ]
@@ -31,7 +37,7 @@ var DOMAINS = [
31
37
  {
32
38
  names: ["cite"],
33
39
  load: async () => [
34
- (await import("./cli-V2DI3K2R.js")).buildProgram().name("cite").description(
40
+ (await import("./cli-6R4W3HAH.js")).buildProgram().name("cite").description(
35
41
  "Track citations from doc claims to source lines and check them for drift"
36
42
  )
37
43
  ]
@@ -39,7 +45,7 @@ var DOMAINS = [
39
45
  {
40
46
  names: ["lint"],
41
47
  load: async () => [
42
- (await import("./cli-BIIUKPTE.js")).buildProgram().name("lint").description(
48
+ (await import("./cli-4CR7QIOK.js")).buildProgram().name("lint").description(
43
49
  "Validate document structure against doctype templates, routed by a page's type"
44
50
  )
45
51
  ]
@@ -47,7 +53,7 @@ var DOMAINS = [
47
53
  {
48
54
  names: ["docevals"],
49
55
  load: async () => [
50
- (await import("./cli-P2X7PNY6.js")).buildProgram().name("docevals").description(
56
+ (await import("./cli-GBF76EXT.js")).buildProgram().name("docevals").description(
51
57
  "Deterministic and LLM-as-judge evals for documentation pages, driven by frontmatter"
52
58
  )
53
59
  ]
@@ -55,13 +61,19 @@ var DOMAINS = [
55
61
  {
56
62
  names: ["term"],
57
63
  load: async () => [
58
- (await import("./term-ASM4LVYC.js")).buildProgram().name("term").description("Check, lint and render a docset's terms and the references into them")
64
+ (await import("./term-D2N7UN4P.js")).buildProgram().name("term").description("Check, lint and render a docset's terms and the references into them")
65
+ ]
66
+ },
67
+ {
68
+ names: ["test"],
69
+ load: async () => [
70
+ (await import("./cli-XXTNPPKB.js")).buildProgram().name("test").description("Run the docs' procedure tests with Doc Detective and report in the family contract")
59
71
  ]
60
72
  },
61
73
  {
62
74
  names: ["graph"],
63
75
  load: async () => [
64
- (await import("./cli-TELPAMJO.js")).buildProgram().name("graph").description(
76
+ (await import("./cli-PTKFFNOW.js")).buildProgram().name("graph").description(
65
77
  "Deterministic knowledge graphs derived from documentation frontmatter and formatting"
66
78
  )
67
79
  ]
@@ -69,7 +81,7 @@ var DOMAINS = [
69
81
  {
70
82
  names: ["tracevals"],
71
83
  load: async () => [
72
- (await import("./cli-SGVFZOAW.js")).buildProgram().name("tracevals").description(
84
+ (await import("./cli-UW2K5Z5J.js")).buildProgram().name("tracevals").description(
73
85
  "Deterministic and LLM-as-judge adherence evals for AI agent session traces"
74
86
  )
75
87
  ]
@@ -78,14 +90,14 @@ var DOMAINS = [
78
90
  {
79
91
  names: ["key"],
80
92
  load: async () => [
81
- (await import("./cli-4YYC6LCY.js")).buildProgram().name("key").description("Set and rotate the family key that encrypted values are encrypted with.")
93
+ (await import("./cli-MQYCF3SR.js")).buildProgram().name("key").description("Set and rotate the family key that encrypted values are encrypted with.")
82
94
  ]
83
95
  },
84
96
  // The docs site, a family resource with verbs like `key` (proposal 0082).
85
97
  {
86
98
  names: ["site"],
87
99
  load: async () => [
88
- (await import("./cli-LWST5FQH.js")).buildProgram().name("site").description("Start, build and preview the docs site")
100
+ (await import("./cli-PHZAO4LZ.js")).buildProgram().name("site").description("Start, build and preview the docs site")
89
101
  ]
90
102
  },
91
103
  // The two family verbs (proposal 0078), and the only verbs the umbrella
@@ -93,7 +105,7 @@ var DOMAINS = [
93
105
  {
94
106
  names: ["check", "status"],
95
107
  load: async () => {
96
- const { buildCheck, buildStatus } = await import("./cli-EH3I4IUX.js");
108
+ const { buildCheck, buildStatus } = await import("./cli-EDQPQOCE.js");
97
109
  return [buildCheck(), buildStatus()];
98
110
  }
99
111
  }
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli.ts"],"sourcesContent":["/**\n * The `manni` CLI: one bin, one subcommand per tool in the family.\n *\n * Each tool builds its own commander program and is mounted here under its\n * name, so `manni meta validate …` is the metadata tool's `validate` with\n * nothing in between. The umbrella owns only what is common to all of them:\n * the name, the version, and the exit-code contract in `runProgram`.\n *\n * Tools land here one at a time, on their own branches; until one merges its\n * subcommand does not exist.\n *\n * Every domain is imported on demand. A domain's module graph is its whole\n * dependency tree (Playwright, axe, Asciidoctor, the RDF stack, ajv), and a\n * hook runs `manni check` after every edit, so the bin mounts only the domain\n * argv names. `--version` mounts none. Anything else (`--help`, a bare\n * `manni`, a typo) mounts them all, so help and \"unknown command\" read as\n * they always did.\n */\nimport { Command } from \"commander\";\nimport pkg from \"../package.json\" with { type: \"json\" };\nimport { runIfMain } from \"./shared/run.js\";\n\ninterface Domain {\n /** The command names the loader mounts, known before it is loaded. */\n names: readonly string[];\n load: () => Promise<Command[]>;\n}\n\n// In the order `manni --help` lists them.\nconst DOMAINS: readonly Domain[] = [\n {\n names: [\"meta\"],\n load: async () => [\n (await import(\"./meta/cli.js\"))\n .buildProgram()\n .name(\"meta\")\n .description(\n \"Validate, read, query and fill document metadata against JSON Schema\",\n ),\n ],\n },\n {\n names: [\"a11y\"],\n load: async () => [\n (await import(\"./a11y/cli.js\"))\n .buildProgram()\n .name(\"a11y\")\n .description(\n \"Crawl a site and check every page for accessibility violations with axe-core\",\n ),\n ],\n },\n {\n names: [\"cite\"],\n load: async () => [\n (await import(\"./cite/cli.js\"))\n .buildProgram()\n .name(\"cite\")\n .description(\n \"Track citations from doc claims to source lines and check them for drift\",\n ),\n ],\n },\n {\n names: [\"lint\"],\n load: async () => [\n (await import(\"./lint/cli.js\"))\n .buildProgram()\n .name(\"lint\")\n .description(\n \"Validate document structure against doctype templates, routed by a page's type\",\n ),\n ],\n },\n {\n names: [\"docevals\"],\n load: async () => [\n (await import(\"./docevals/cli.js\"))\n .buildProgram()\n .name(\"docevals\")\n .description(\n \"Deterministic and LLM-as-judge evals for documentation pages, driven by frontmatter\",\n ),\n ],\n },\n {\n names: [\"term\"],\n load: async () => [\n (await import(\"./term/index.js\"))\n .buildProgram()\n .name(\"term\")\n .description(\"Check, lint and render a docset's terms and the references into them\"),\n ],\n },\n {\n names: [\"graph\"],\n load: async () => [\n (await import(\"./graph/cli.js\"))\n .buildProgram()\n .name(\"graph\")\n .description(\n \"Deterministic knowledge graphs derived from documentation frontmatter and formatting\",\n ),\n ],\n },\n {\n names: [\"tracevals\"],\n load: async () => [\n (await import(\"./tracevals/cli.js\"))\n .buildProgram()\n .name(\"tracevals\")\n .description(\n \"Deterministic and LLM-as-judge adherence evals for AI agent session traces\",\n ),\n ],\n },\n // Not a tool but a family resource with verbs (proposal 0045).\n {\n names: [\"key\"],\n load: async () => [\n (await import(\"./key/cli.js\"))\n .buildProgram()\n .name(\"key\")\n .description(\"Set and rotate the family key that encrypted values are encrypted with.\"),\n ],\n },\n // The docs site, a family resource with verbs like `key` (proposal 0082).\n {\n names: [\"site\"],\n load: async () => [\n (await import(\"./site/cli.js\"))\n .buildProgram()\n .name(\"site\")\n .description(\"Start, build and preview the docs site\"),\n ],\n },\n // The two family verbs (proposal 0078), and the only verbs the umbrella\n // carries: each runs other domains' command cores and owns no checks.\n {\n names: [\"check\", \"status\"],\n load: async () => {\n const { buildCheck, buildStatus } = await import(\"./family/cli.js\");\n return [buildCheck(), buildStatus()];\n },\n },\n];\n\nconst VERSION_FLAGS = new Set([\"-V\", \"--version\"]);\n\n/**\n * The domains a run with these arguments (argv after the script) dispatches\n * to. The umbrella's only options are `--version` and `--help`, so the first\n * argument is one of them or the command commander will look up.\n */\nfunction domainsFor(args: readonly string[]): readonly Domain[] {\n const first = args[0];\n if (first === undefined) return DOMAINS;\n if (VERSION_FLAGS.has(first)) return [];\n const named = DOMAINS.find((d) => d.names.includes(first));\n return named === undefined ? DOMAINS : [named];\n}\n\nasync function mount(domains: readonly Domain[]): Promise<Command> {\n const mounted = (await Promise.all(domains.map((d) => d.load()))).flat();\n const metaCommands = new Set(\n mounted.find((c) => c.name() === \"meta\")?.commands.map((c) => c.name()),\n );\n\n const program = new Command();\n program\n .name(\"manni\")\n .description(\"Tools for documentation that is meant to be checked.\")\n .version(pkg.version, \"-V, --version\")\n // A pointer, not the whole help screen. Commander appends this after every\n // usage error, and the message that precedes it already names the problem.\n .showHelpAfterError(\"(add --help for usage)\")\n // MUST come before `addCommand`, which copies the exit callback into the\n // mounted program by value. See the same note in ./meta/cli.ts.\n .exitOverride()\n .configureOutput({\n outputError: (str, write) => {\n write(str);\n // `manni validate …` is the most likely thing a docmeta user types\n // first. Commander's \"unknown command\" is correct and unhelpful; say\n // where the command went.\n const m = /unknown command '([^']+)'/.exec(str);\n const name = m?.[1];\n if (name !== undefined && metaCommands.has(name)) {\n write(\n `(\\`${name}\\` is a metadata command: try \\`manni meta ${name}\\`)\\n`,\n );\n }\n },\n });\n\n for (const command of mounted) program.addCommand(command);\n return program;\n}\n\n/** The whole command tree, every domain mounted. */\nexport function buildProgram(): Promise<Command> {\n return mount(DOMAINS);\n}\n\n/** The tree a run with these arguments needs: the one domain they name, or all of them. */\nexport function buildProgramFor(args: readonly string[]): Promise<Command> {\n return mount(domainsFor(args));\n}\n\nrunIfMain(import.meta.url, () => buildProgramFor(process.argv.slice(2)));\n"],"mappings":";;;;;;;;;;;;AAkBA,SAAS,eAAe;AAWxB,IAAM,UAA6B;AAAA,EACjC;AAAA,IACE,OAAO,CAAC,MAAM;AAAA,IACd,MAAM,YAAY;AAAA,OACf,MAAM,OAAO,mBAAe,GAC1B,aAAa,EACb,KAAK,MAAM,EACX;AAAA,QACC;AAAA,MACF;AAAA,IACJ;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO,CAAC,MAAM;AAAA,IACd,MAAM,YAAY;AAAA,OACf,MAAM,OAAO,mBAAe,GAC1B,aAAa,EACb,KAAK,MAAM,EACX;AAAA,QACC;AAAA,MACF;AAAA,IACJ;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO,CAAC,MAAM;AAAA,IACd,MAAM,YAAY;AAAA,OACf,MAAM,OAAO,mBAAe,GAC1B,aAAa,EACb,KAAK,MAAM,EACX;AAAA,QACC;AAAA,MACF;AAAA,IACJ;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO,CAAC,MAAM;AAAA,IACd,MAAM,YAAY;AAAA,OACf,MAAM,OAAO,mBAAe,GAC1B,aAAa,EACb,KAAK,MAAM,EACX;AAAA,QACC;AAAA,MACF;AAAA,IACJ;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO,CAAC,UAAU;AAAA,IAClB,MAAM,YAAY;AAAA,OACf,MAAM,OAAO,mBAAmB,GAC9B,aAAa,EACb,KAAK,UAAU,EACf;AAAA,QACC;AAAA,MACF;AAAA,IACJ;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO,CAAC,MAAM;AAAA,IACd,MAAM,YAAY;AAAA,OACf,MAAM,OAAO,oBAAiB,GAC5B,aAAa,EACb,KAAK,MAAM,EACX,YAAY,sEAAsE;AAAA,IACvF;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO,CAAC,OAAO;AAAA,IACf,MAAM,YAAY;AAAA,OACf,MAAM,OAAO,mBAAgB,GAC3B,aAAa,EACb,KAAK,OAAO,EACZ;AAAA,QACC;AAAA,MACF;AAAA,IACJ;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO,CAAC,WAAW;AAAA,IACnB,MAAM,YAAY;AAAA,OACf,MAAM,OAAO,mBAAoB,GAC/B,aAAa,EACb,KAAK,WAAW,EAChB;AAAA,QACC;AAAA,MACF;AAAA,IACJ;AAAA,EACF;AAAA;AAAA,EAEA;AAAA,IACE,OAAO,CAAC,KAAK;AAAA,IACb,MAAM,YAAY;AAAA,OACf,MAAM,OAAO,mBAAc,GACzB,aAAa,EACb,KAAK,KAAK,EACV,YAAY,yEAAyE;AAAA,IAC1F;AAAA,EACF;AAAA;AAAA,EAEA;AAAA,IACE,OAAO,CAAC,MAAM;AAAA,IACd,MAAM,YAAY;AAAA,OACf,MAAM,OAAO,mBAAe,GAC1B,aAAa,EACb,KAAK,MAAM,EACX,YAAY,wCAAwC;AAAA,IACzD;AAAA,EACF;AAAA;AAAA;AAAA,EAGA;AAAA,IACE,OAAO,CAAC,SAAS,QAAQ;AAAA,IACzB,MAAM,YAAY;AAChB,YAAM,EAAE,YAAY,YAAY,IAAI,MAAM,OAAO,mBAAiB;AAClE,aAAO,CAAC,WAAW,GAAG,YAAY,CAAC;AAAA,IACrC;AAAA,EACF;AACF;AAEA,IAAM,gBAAgB,oBAAI,IAAI,CAAC,MAAM,WAAW,CAAC;AAOjD,SAAS,WAAW,MAA4C;AAC9D,QAAM,QAAQ,KAAK,CAAC;AACpB,MAAI,UAAU,OAAW,QAAO;AAChC,MAAI,cAAc,IAAI,KAAK,EAAG,QAAO,CAAC;AACtC,QAAM,QAAQ,QAAQ,KAAK,CAAC,MAAM,EAAE,MAAM,SAAS,KAAK,CAAC;AACzD,SAAO,UAAU,SAAY,UAAU,CAAC,KAAK;AAC/C;AAEA,eAAe,MAAM,SAA8C;AACjE,QAAM,WAAW,MAAM,QAAQ,IAAI,QAAQ,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK;AACvE,QAAM,eAAe,IAAI;AAAA,IACvB,QAAQ,KAAK,CAAC,MAAM,EAAE,KAAK,MAAM,MAAM,GAAG,SAAS,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;AAAA,EACxE;AAEA,QAAM,UAAU,IAAI,QAAQ;AAC5B,UACG,KAAK,OAAO,EACZ,YAAY,sDAAsD,EAClE,QAAQ,gBAAI,SAAS,eAAe,EAGpC,mBAAmB,wBAAwB,EAG3C,aAAa,EACb,gBAAgB;AAAA,IACf,aAAa,CAAC,KAAK,UAAU;AAC3B,YAAM,GAAG;AAIT,YAAM,IAAI,4BAA4B,KAAK,GAAG;AAC9C,YAAM,OAAO,IAAI,CAAC;AAClB,UAAI,SAAS,UAAa,aAAa,IAAI,IAAI,GAAG;AAChD;AAAA,UACE,MAAM,IAAI,8CAA8C,IAAI;AAAA;AAAA,QAC9D;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AAEH,aAAW,WAAW,QAAS,SAAQ,WAAW,OAAO;AACzD,SAAO;AACT;AAGO,SAAS,eAAiC;AAC/C,SAAO,MAAM,OAAO;AACtB;AAGO,SAAS,gBAAgB,MAA2C;AACzE,SAAO,MAAM,WAAW,IAAI,CAAC;AAC/B;AAEA,UAAU,YAAY,KAAK,MAAM,gBAAgB,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC;","names":[]}
1
+ {"version":3,"sources":["../src/cli.ts"],"sourcesContent":["/**\n * The `manni` CLI: one bin, one subcommand per tool in the family.\n *\n * Each tool builds its own commander program and is mounted here under its\n * name, so `manni meta validate …` is the metadata tool's `validate` with\n * nothing in between. The umbrella owns only what is common to all of them:\n * the name, the version, and the exit-code contract in `runProgram`.\n *\n * Tools land here one at a time, on their own branches; until one merges its\n * subcommand does not exist.\n *\n * Every domain is imported on demand. A domain's module graph is its whole\n * dependency tree (Playwright, axe, Asciidoctor, the RDF stack, ajv), and a\n * hook runs `manni check` after every edit, so the bin mounts only the domain\n * argv names. `--version` mounts none. Anything else (`--help`, a bare\n * `manni`, a typo) mounts them all, so help and \"unknown command\" read as\n * they always did.\n */\nimport { Command } from \"commander\";\nimport pkg from \"../package.json\" with { type: \"json\" };\nimport { runIfMain } from \"./shared/run.js\";\nimport { registerTermLabelSource } from \"./shared/term-labels.js\";\n\n// `meta fill` offers the termbase's labels, but `manni meta fill` mounts only\n// the meta domain. So the umbrella registers the source, and the source loads\n// the term domain only when `fill` asks it for labels.\nregisterTermLabelSource(async (request) =>\n (await import(\"./term/commands/labels.js\")).termLabels(request),\n);\n\ninterface Domain {\n /** The command names the loader mounts, known before it is loaded. */\n names: readonly string[];\n load: () => Promise<Command[]>;\n}\n\n// In the order `manni --help` lists them.\nconst DOMAINS: readonly Domain[] = [\n {\n names: [\"meta\"],\n load: async () => [\n (await import(\"./meta/cli.js\"))\n .buildProgram()\n .name(\"meta\")\n .description(\n \"Validate, read, query and fill document metadata against JSON Schema\",\n ),\n ],\n },\n {\n names: [\"a11y\"],\n load: async () => [\n (await import(\"./a11y/cli.js\"))\n .buildProgram()\n .name(\"a11y\")\n .description(\n \"Crawl a site and check every page for accessibility violations with axe-core\",\n ),\n ],\n },\n {\n names: [\"cite\"],\n load: async () => [\n (await import(\"./cite/cli.js\"))\n .buildProgram()\n .name(\"cite\")\n .description(\n \"Track citations from doc claims to source lines and check them for drift\",\n ),\n ],\n },\n {\n names: [\"lint\"],\n load: async () => [\n (await import(\"./lint/cli.js\"))\n .buildProgram()\n .name(\"lint\")\n .description(\n \"Validate document structure against doctype templates, routed by a page's type\",\n ),\n ],\n },\n {\n names: [\"docevals\"],\n load: async () => [\n (await import(\"./docevals/cli.js\"))\n .buildProgram()\n .name(\"docevals\")\n .description(\n \"Deterministic and LLM-as-judge evals for documentation pages, driven by frontmatter\",\n ),\n ],\n },\n {\n names: [\"term\"],\n load: async () => [\n (await import(\"./term/index.js\"))\n .buildProgram()\n .name(\"term\")\n .description(\"Check, lint and render a docset's terms and the references into them\"),\n ],\n },\n {\n names: [\"test\"],\n load: async () => [\n (await import(\"./test/cli.js\"))\n .buildProgram()\n .name(\"test\")\n .description(\"Run the docs' procedure tests with Doc Detective and report in the family contract\"),\n ],\n },\n {\n names: [\"graph\"],\n load: async () => [\n (await import(\"./graph/cli.js\"))\n .buildProgram()\n .name(\"graph\")\n .description(\n \"Deterministic knowledge graphs derived from documentation frontmatter and formatting\",\n ),\n ],\n },\n {\n names: [\"tracevals\"],\n load: async () => [\n (await import(\"./tracevals/cli.js\"))\n .buildProgram()\n .name(\"tracevals\")\n .description(\n \"Deterministic and LLM-as-judge adherence evals for AI agent session traces\",\n ),\n ],\n },\n // Not a tool but a family resource with verbs (proposal 0045).\n {\n names: [\"key\"],\n load: async () => [\n (await import(\"./key/cli.js\"))\n .buildProgram()\n .name(\"key\")\n .description(\"Set and rotate the family key that encrypted values are encrypted with.\"),\n ],\n },\n // The docs site, a family resource with verbs like `key` (proposal 0082).\n {\n names: [\"site\"],\n load: async () => [\n (await import(\"./site/cli.js\"))\n .buildProgram()\n .name(\"site\")\n .description(\"Start, build and preview the docs site\"),\n ],\n },\n // The two family verbs (proposal 0078), and the only verbs the umbrella\n // carries: each runs other domains' command cores and owns no checks.\n {\n names: [\"check\", \"status\"],\n load: async () => {\n const { buildCheck, buildStatus } = await import(\"./family/cli.js\");\n return [buildCheck(), buildStatus()];\n },\n },\n];\n\nconst VERSION_FLAGS = new Set([\"-V\", \"--version\"]);\n\n/**\n * The domains a run with these arguments (argv after the script) dispatches\n * to. The umbrella's only options are `--version` and `--help`, so the first\n * argument is one of them or the command commander will look up.\n */\nfunction domainsFor(args: readonly string[]): readonly Domain[] {\n const first = args[0];\n if (first === undefined) return DOMAINS;\n if (VERSION_FLAGS.has(first)) return [];\n const named = DOMAINS.find((d) => d.names.includes(first));\n return named === undefined ? DOMAINS : [named];\n}\n\nasync function mount(domains: readonly Domain[]): Promise<Command> {\n const mounted = (await Promise.all(domains.map((d) => d.load()))).flat();\n const metaCommands = new Set(\n mounted.find((c) => c.name() === \"meta\")?.commands.map((c) => c.name()),\n );\n\n const program = new Command();\n program\n .name(\"manni\")\n .description(\"Tools for documentation that is meant to be checked.\")\n .version(pkg.version, \"-V, --version\")\n // A pointer, not the whole help screen. Commander appends this after every\n // usage error, and the message that precedes it already names the problem.\n .showHelpAfterError(\"(add --help for usage)\")\n // MUST come before `addCommand`, which copies the exit callback into the\n // mounted program by value. See the same note in ./meta/cli.ts.\n .exitOverride()\n .configureOutput({\n outputError: (str, write) => {\n write(str);\n // `manni validate …` is the most likely thing a docmeta user types\n // first. Commander's \"unknown command\" is correct and unhelpful; say\n // where the command went.\n const m = /unknown command '([^']+)'/.exec(str);\n const name = m?.[1];\n if (name !== undefined && metaCommands.has(name)) {\n write(\n `(\\`${name}\\` is a metadata command: try \\`manni meta ${name}\\`)\\n`,\n );\n }\n },\n });\n\n for (const command of mounted) program.addCommand(command);\n return program;\n}\n\n/** The whole command tree, every domain mounted. */\nexport function buildProgram(): Promise<Command> {\n return mount(DOMAINS);\n}\n\n/** The tree a run with these arguments needs: the one domain they name, or all of them. */\nexport function buildProgramFor(args: readonly string[]): Promise<Command> {\n return mount(domainsFor(args));\n}\n\nrunIfMain(import.meta.url, () => buildProgramFor(process.argv.slice(2)));\n"],"mappings":"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","names":[]}
@@ -5,14 +5,14 @@ import {
5
5
  discoverConfig,
6
6
  loadConfig,
7
7
  parseConfig
8
- } from "./chunk-GCKHSBEN.js";
8
+ } from "./chunk-OKMTUAWO.js";
9
9
  import "./chunk-CU57HT2E.js";
10
- import "./chunk-NGTVREIH.js";
10
+ import "./chunk-U6IHLEWT.js";
11
11
  import "./chunk-UKZNLVJW.js";
12
12
  import "./chunk-YNHZHSSM.js";
13
- import "./chunk-6M5VJOC2.js";
13
+ import "./chunk-OTJOBZJ5.js";
14
14
  import "./chunk-HX44GB4Z.js";
15
- import "./chunk-QCHVR4ZM.js";
15
+ import "./chunk-VM7VAFJW.js";
16
16
  import "./chunk-OWBRDNRZ.js";
17
17
  import "./chunk-G3T47CFV.js";
18
18
  import "./chunk-2H7UOFLK.js";
@@ -23,4 +23,4 @@ export {
23
23
  loadConfig,
24
24
  parseConfig
25
25
  };
26
- //# sourceMappingURL=config-TYXYQK3I.js.map
26
+ //# sourceMappingURL=config-JJW75SBX.js.map
package/dist/docmeta.js CHANGED
@@ -1,20 +1,23 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  buildProgram
4
- } from "./chunk-6LR73NMO.js";
5
- import "./chunk-2W34HX2U.js";
6
- import "./chunk-KBG463UK.js";
7
- import "./chunk-QBVP3SQP.js";
8
- import "./chunk-G7XD4QH5.js";
4
+ } from "./chunk-DLU5FCFT.js";
5
+ import "./chunk-PS257NIU.js";
6
+ import "./chunk-2OZF2VUB.js";
7
+ import "./chunk-SGR7ZAVE.js";
8
+ import "./chunk-QEAGL4V5.js";
9
+ import "./chunk-SMHAYK6I.js";
10
+ import "./chunk-DSWKBZWW.js";
11
+ import "./chunk-RGLFV4KO.js";
12
+ import "./chunk-MNH7QO4Z.js";
13
+ import "./chunk-RNVYGWIC.js";
9
14
  import {
10
15
  runIfMain
11
16
  } from "./chunk-YEUYKR62.js";
12
- import "./chunk-RNVYGWIC.js";
13
- import "./chunk-MNH7QO4Z.js";
14
- import "./chunk-6M5VJOC2.js";
17
+ import "./chunk-OTJOBZJ5.js";
15
18
  import "./chunk-HX44GB4Z.js";
16
- import "./chunk-QCHVR4ZM.js";
17
- import "./chunk-2BV4FBC7.js";
19
+ import "./chunk-VM7VAFJW.js";
20
+ import "./chunk-DHGB4JBG.js";
18
21
  import "./chunk-OWBRDNRZ.js";
19
22
  import "./chunk-G3T47CFV.js";
20
23
  import "./chunk-2H7UOFLK.js";
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/docmeta.ts"],"sourcesContent":["/**\n * The `docmeta` bin: the metadata tool under the name it had before it became\n * `manni meta`. Same program, same options, same exit codes, so a script or\n * workflow written against `docmeta …` keeps working. Only the usage line and\n * the stderr prefix say `docmeta`.\n */\nimport { buildProgram } from \"./meta/cli.js\";\nimport { runIfMain } from \"./shared/run.js\";\n\nrunIfMain(import.meta.url, () => buildProgram().name(\"docmeta\"));\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AASA,UAAU,YAAY,KAAK,MAAM,aAAa,EAAE,KAAK,SAAS,CAAC;","names":[]}
1
+ {"version":3,"sources":["../src/docmeta.ts"],"sourcesContent":["/**\n * The `docmeta` bin: the metadata tool under the name it had before it became\n * `manni meta`. Same program, same options, same exit codes, so a script or\n * workflow written against `docmeta …` keeps working. Only the usage line and\n * the stderr prefix say `docmeta`.\n */\nimport { buildProgram } from \"./meta/cli.js\";\nimport { runIfMain } from \"./shared/run.js\";\n\nrunIfMain(import.meta.url, () => buildProgram().name(\"docmeta\"));\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AASA,UAAU,YAAY,KAAK,MAAM,aAAa,EAAE,KAAK,SAAS,CAAC;","names":[]}
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ NAMES_ITS_SUBJECT,
4
+ findingMessage,
5
+ renderCheckGithub
6
+ } from "./chunk-GQ3KRY3B.js";
7
+ import "./chunk-OHUDZRLK.js";
8
+ import "./chunk-AYVKN3PG.js";
9
+ import "./chunk-24AJK2RG.js";
10
+ import "./chunk-IKEWBMCN.js";
11
+ import "./chunk-YUTVAMWW.js";
12
+ import "./chunk-JSSM7VVV.js";
13
+ import "./chunk-PS257NIU.js";
14
+ import "./chunk-2OZF2VUB.js";
15
+ import "./chunk-SGR7ZAVE.js";
16
+ import "./chunk-QEAGL4V5.js";
17
+ import "./chunk-SMHAYK6I.js";
18
+ import "./chunk-DSWKBZWW.js";
19
+ import "./chunk-RGLFV4KO.js";
20
+ import "./chunk-MNH7QO4Z.js";
21
+ import "./chunk-RNVYGWIC.js";
22
+ import "./chunk-YEUYKR62.js";
23
+ import "./chunk-OTJOBZJ5.js";
24
+ import "./chunk-HX44GB4Z.js";
25
+ import "./chunk-VM7VAFJW.js";
26
+ import "./chunk-DHGB4JBG.js";
27
+ import "./chunk-OWBRDNRZ.js";
28
+ import "./chunk-G3T47CFV.js";
29
+ import "./chunk-2H7UOFLK.js";
30
+ export {
31
+ NAMES_ITS_SUBJECT,
32
+ findingMessage,
33
+ renderCheckGithub
34
+ };
35
+ //# sourceMappingURL=github-6VQKSB67.js.map
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ renderFindingsGithub
4
+ } from "./chunk-QNDDPXFR.js";
5
+ import "./chunk-FKAZUZQU.js";
6
+ import "./chunk-IKEWBMCN.js";
7
+ import "./chunk-YUTVAMWW.js";
8
+ import "./chunk-JSSM7VVV.js";
9
+ import "./chunk-PS257NIU.js";
10
+ import "./chunk-2OZF2VUB.js";
11
+ import "./chunk-SGR7ZAVE.js";
12
+ import "./chunk-QEAGL4V5.js";
13
+ import "./chunk-SMHAYK6I.js";
14
+ import "./chunk-DSWKBZWW.js";
15
+ import "./chunk-RGLFV4KO.js";
16
+ import "./chunk-77AINBYM.js";
17
+ import "./chunk-MNH7QO4Z.js";
18
+ import "./chunk-RNVYGWIC.js";
19
+ import "./chunk-YEUYKR62.js";
20
+ import "./chunk-OTJOBZJ5.js";
21
+ import "./chunk-HX44GB4Z.js";
22
+ import "./chunk-VM7VAFJW.js";
23
+ import "./chunk-DHGB4JBG.js";
24
+ import "./chunk-OWBRDNRZ.js";
25
+ import "./chunk-G3T47CFV.js";
26
+ import "./chunk-2H7UOFLK.js";
27
+ export {
28
+ renderFindingsGithub
29
+ };
30
+ //# sourceMappingURL=github-RBSEM7ZK.js.map
@@ -11,6 +11,8 @@ type Term = {
11
11
  kind: "literal";
12
12
  value: string;
13
13
  datatype?: string;
14
+ /** A language tag, for a literal that carries one. Never set with `datatype`. */
15
+ language?: string;
14
16
  };
15
17
  interface Quad {
16
18
  s: string;
@@ -41,6 +43,7 @@ type Value = {
41
43
  kind: "literal";
42
44
  value: string;
43
45
  datatype?: string;
46
+ language?: string;
44
47
  };
45
48
  interface GraphNode {
46
49
  id: string;
@@ -448,7 +451,7 @@ interface RdfQuad {
448
451
  }
449
452
  declare function namedNode(value: string): RdfTerm;
450
453
  declare function defaultGraph(): RdfTerm;
451
- declare function literal(value: string, datatype?: string): RdfTerm;
454
+ declare function literal(value: string, datatype?: string, language?: string): RdfTerm;
452
455
  /**
453
456
  * The whole index as RDF/JS quads, in the index's deterministic order. Feed to
454
457
  * any RDF/JS store (`new Store(rdfjsQuads(graph))`) to run SPARQL.
@@ -32,7 +32,9 @@ function compareValues(a, b) {
32
32
  if (v !== 0) return v;
33
33
  const da = a.kind === "literal" ? a.datatype ?? "" : "";
34
34
  const db = b.kind === "literal" ? b.datatype ?? "" : "";
35
- return byCodeUnit(da, db);
35
+ const la = a.kind === "literal" ? a.language ?? "" : "";
36
+ const lb = b.kind === "literal" ? b.language ?? "" : "";
37
+ return byCodeUnit(da, db) || byCodeUnit(la, lb);
36
38
  }
37
39
  var GraphIndex = class _GraphIndex {
38
40
  nodes = /* @__PURE__ */ new Map();
@@ -67,7 +69,7 @@ var GraphIndex = class _GraphIndex {
67
69
  const index = new _GraphIndex({ ...context });
68
70
  for (const q of quads) {
69
71
  const o = q.o;
70
- const value = o.kind === "iri" ? { kind: "iri", value: o.value } : o.datatype && o.datatype !== XSD_STRING ? { kind: "literal", value: o.value, datatype: o.datatype } : { kind: "literal", value: o.value };
72
+ const value = o.kind === "iri" ? { kind: "iri", value: o.value } : o.language ? { kind: "literal", value: o.value, language: o.language } : o.datatype && o.datatype !== XSD_STRING ? { kind: "literal", value: o.value, datatype: o.datatype } : { kind: "literal", value: o.value };
71
73
  index.addTriple(q.s, q.p, value);
72
74
  }
73
75
  index.finalize();
@@ -124,6 +126,9 @@ var GraphIndex = class _GraphIndex {
124
126
  if (o["@value"] !== void 0) {
125
127
  const raw = o["@value"];
126
128
  const lexical = typeof raw === "string" ? raw : JSON.stringify(raw);
129
+ if (typeof o["@language"] === "string") {
130
+ return { kind: "literal", value: lexical, language: o["@language"] };
131
+ }
127
132
  const dt = typeof o["@type"] === "string" ? this.expand(o["@type"]) : void 0;
128
133
  return dt && dt !== XSD_STRING ? { kind: "literal", value: lexical, datatype: dt } : { kind: "literal", value: lexical };
129
134
  }
@@ -709,6 +714,11 @@ function sectionOwnText(markdown, title, level, occurrence = 0) {
709
714
  }
710
715
  function slice(markdown, title, level, occurrence, ownTextOnly) {
711
716
  const lines = markdown.split(/\r?\n/);
717
+ const span = locate(lines, title, level, occurrence, ownTextOnly);
718
+ if (span === void 0) return void 0;
719
+ return lines.slice(span.start, span.end).join("\n").trimEnd();
720
+ }
721
+ function locate(lines, title, level, occurrence, ownTextOnly) {
712
722
  const headings = sourceHeadings(lines);
713
723
  const wanted = headingKey(title);
714
724
  let remaining = occurrence;
@@ -726,8 +736,7 @@ function slice(markdown, title, level, occurrence, ownTextOnly) {
726
736
  const match = headings[found];
727
737
  if (match === void 0) return void 0;
728
738
  const next = headings.slice(found + 1).find((h) => ownTextOnly || h.level <= match.level);
729
- const end = next?.start ?? lines.length;
730
- return lines.slice(match.start, end).join("\n").trimEnd();
739
+ return { start: match.start, end: next?.start ?? lines.length };
731
740
  }
732
741
  function createFetchResolver(graph, options = {}) {
733
742
  const doFetch = options.fetch ?? ((url) => globalThis.fetch(url));
@@ -860,6 +869,7 @@ async function assemble(resolver, nodes, options = {}) {
860
869
 
861
870
  // src/graph/runtime/rdfjs.ts
862
871
  var XSD_STRING2 = "http://www.w3.org/2001/XMLSchema#string";
872
+ var RDF_LANG_STRING = "http://www.w3.org/1999/02/22-rdf-syntax-ns#langString";
863
873
  function namedNode(value) {
864
874
  return {
865
875
  termType: "NamedNode",
@@ -878,20 +888,21 @@ function defaultGraph() {
878
888
  }
879
889
  };
880
890
  }
881
- function literal(value, datatype) {
882
- const dt = namedNode(datatype ?? XSD_STRING2);
891
+ function literal(value, datatype, language) {
892
+ const lang = language ?? "";
893
+ const dt = namedNode(lang ? RDF_LANG_STRING : datatype ?? XSD_STRING2);
883
894
  return {
884
895
  termType: "Literal",
885
896
  value,
886
- language: "",
897
+ language: lang,
887
898
  datatype: dt,
888
899
  equals(other) {
889
- return !!other && other.termType === "Literal" && other.value === value && !!other.datatype && other.datatype.value === dt.value;
900
+ return !!other && other.termType === "Literal" && other.value === value && (other.language ?? "") === lang && !!other.datatype && other.datatype.value === dt.value;
890
901
  }
891
902
  };
892
903
  }
893
904
  function toTerm(v) {
894
- return v.kind === "iri" ? namedNode(v.value) : literal(v.value, v.datatype);
905
+ return v.kind === "iri" ? namedNode(v.value) : literal(v.value, v.datatype, v.language);
895
906
  }
896
907
  function makeQuad(s, p, o) {
897
908
  const subject = namedNode(s);