@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
@@ -6,10 +6,10 @@ import {
6
6
  shortPin,
7
7
  shortSrc,
8
8
  spellAt
9
- } from "./chunk-RZVCWX5R.js";
9
+ } from "./chunk-AYVKN3PG.js";
10
10
  import {
11
11
  parseSrc
12
- } from "./chunk-PK7EKJ5T.js";
12
+ } from "./chunk-24AJK2RG.js";
13
13
  import {
14
14
  palette
15
15
  } from "./chunk-RNVYGWIC.js";
@@ -452,4 +452,4 @@ export {
452
452
  removalLine,
453
453
  renderRemovePretty
454
454
  };
455
- //# sourceMappingURL=chunk-7Y3N4Y72.js.map
455
+ //# sourceMappingURL=chunk-OHUDZRLK.js.map
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  JEV,
8
8
  JEV_OUT_OF_LOOP
9
- } from "./chunk-NGTVREIH.js";
9
+ } from "./chunk-U6IHLEWT.js";
10
10
  import {
11
11
  TracevalsError
12
12
  } from "./chunk-UKZNLVJW.js";
@@ -20,10 +20,10 @@ import {
20
20
  FAMILY_CONFIG_NAMES,
21
21
  findConfigFileSync,
22
22
  readConfigFileSync
23
- } from "./chunk-6M5VJOC2.js";
23
+ } from "./chunk-OTJOBZJ5.js";
24
24
  import {
25
25
  assertKnownProvider
26
- } from "./chunk-QCHVR4ZM.js";
26
+ } from "./chunk-VM7VAFJW.js";
27
27
  import {
28
28
  errorMessage
29
29
  } from "./chunk-G3T47CFV.js";
@@ -532,4 +532,4 @@ export {
532
532
  discoverConfig,
533
533
  loadConfig
534
534
  };
535
- //# sourceMappingURL=chunk-GCKHSBEN.js.map
535
+ //# sourceMappingURL=chunk-OKMTUAWO.js.map
@@ -5,137 +5,11 @@ import {
5
5
  import {
6
6
  PROVIDERS_KEY,
7
7
  parseProviders
8
- } from "./chunk-QCHVR4ZM.js";
8
+ } from "./chunk-VM7VAFJW.js";
9
9
  import {
10
10
  errorMessage
11
11
  } from "./chunk-G3T47CFV.js";
12
12
 
13
- // src/shared/encryption.ts
14
- import {
15
- createCipheriv,
16
- createDecipheriv,
17
- createHmac,
18
- hkdfSync,
19
- randomBytes,
20
- timingSafeEqual
21
- } from "node:crypto";
22
- import { TextDecoder } from "node:util";
23
- var ENCRYPTED_VALUE = /^~[A-Za-z0-9_-]{82,}$/;
24
- function isEncryptedValue(value) {
25
- return typeof value === "string" && ENCRYPTED_VALUE.test(value);
26
- }
27
- var ENCRYPTION_KEY_SHAPE = /^[A-Za-z0-9_-]{32,}$/;
28
- function isValidEncryptionKey(value) {
29
- return typeof value === "string" && ENCRYPTION_KEY_SHAPE.test(value);
30
- }
31
- function generateEncryptionKey() {
32
- return randomBytes(32).toString("hex");
33
- }
34
- var VERSION = 1;
35
- var NONCE_BYTES = 12;
36
- var TAG_BYTES = 16;
37
- var BLOCK = 32;
38
- var MIN_BYTES = 1 + NONCE_BYTES + BLOCK + TAG_BYTES;
39
- var subkeyCache = /* @__PURE__ */ new Map();
40
- function subkeys(key) {
41
- const cached = subkeyCache.get(key);
42
- if (cached !== void 0) return cached;
43
- const ikm = Buffer.from(key, "utf8");
44
- const derive = (info) => Buffer.from(hkdfSync("sha256", ikm, Buffer.alloc(0), info, 32));
45
- const made = {
46
- encrypt: derive("manni/v1/encrypt"),
47
- nonce: derive("manni/v1/nonce"),
48
- pin: derive("manni/v1/pin")
49
- };
50
- subkeyCache.set(key, made);
51
- return made;
52
- }
53
- function requireKey(key, caller) {
54
- if (!isValidEncryptionKey(key)) {
55
- throw new Error(
56
- `${caller}: the key must be at least 32 hex or base64url characters.`
57
- );
58
- }
59
- }
60
- function pad(data) {
61
- const out = Buffer.alloc((Math.floor(data.length / BLOCK) + 1) * BLOCK);
62
- data.copy(out);
63
- out[data.length] = 128;
64
- return out;
65
- }
66
- function unpad(padded) {
67
- let i = padded.length - 1;
68
- while (i >= 0 && padded[i] === 0) i--;
69
- if (i < 0 || padded[i] !== 128) return null;
70
- if (padded.length !== (Math.floor(i / BLOCK) + 1) * BLOCK) return null;
71
- return padded.subarray(0, i);
72
- }
73
- function nonceFor(keys, context, padded) {
74
- return createHmac("sha256", keys.nonce).update(context).update(Buffer.from([0])).update(padded).digest().subarray(0, NONCE_BYTES);
75
- }
76
- function aad(context) {
77
- return Buffer.concat([Buffer.from([VERSION]), context]);
78
- }
79
- function encryptValue(value, key, context) {
80
- requireKey(key, "encryptValue");
81
- const json = JSON.stringify(value);
82
- if (json === void 0) {
83
- throw new TypeError("encryptValue: the value is not JSON.");
84
- }
85
- const keys = subkeys(key);
86
- const ctx = Buffer.from(context, "utf8");
87
- const padded = pad(Buffer.from(json, "utf8"));
88
- const nonce = nonceFor(keys, ctx, padded);
89
- const cipher = createCipheriv("aes-256-gcm", keys.encrypt, nonce, {
90
- authTagLength: TAG_BYTES
91
- });
92
- cipher.setAAD(aad(ctx));
93
- const sealed = Buffer.concat([cipher.update(padded), cipher.final()]);
94
- const tag = cipher.getAuthTag();
95
- const bytes = Buffer.concat([Buffer.from([VERSION]), nonce, sealed, tag]);
96
- return `~${bytes.toString("base64url")}`;
97
- }
98
- var FAILED = { ok: false };
99
- function decryptValue(token, key, context) {
100
- try {
101
- return open(token, key, context);
102
- } catch {
103
- return FAILED;
104
- }
105
- }
106
- function open(token, key, context) {
107
- if (!isEncryptedValue(token) || !isValidEncryptionKey(key)) return FAILED;
108
- const body = token.slice(1);
109
- const bytes = Buffer.from(body, "base64url");
110
- if (bytes.toString("base64url") !== body) return FAILED;
111
- if (bytes.length < MIN_BYTES) return FAILED;
112
- if ((bytes.length - 1 - NONCE_BYTES - TAG_BYTES) % BLOCK !== 0) return FAILED;
113
- if (bytes[0] !== VERSION) return FAILED;
114
- const nonce = bytes.subarray(1, 1 + NONCE_BYTES);
115
- const sealed = bytes.subarray(1 + NONCE_BYTES, bytes.length - TAG_BYTES);
116
- const tag = bytes.subarray(bytes.length - TAG_BYTES);
117
- const keys = subkeys(key);
118
- const ctx = Buffer.from(context, "utf8");
119
- const decipher = createDecipheriv("aes-256-gcm", keys.encrypt, nonce, {
120
- authTagLength: TAG_BYTES
121
- });
122
- decipher.setAAD(aad(ctx));
123
- decipher.setAuthTag(tag);
124
- const padded = Buffer.concat([decipher.update(sealed), decipher.final()]);
125
- if (!timingSafeEqual(nonceFor(keys, ctx, padded), nonce)) return FAILED;
126
- const data = unpad(padded);
127
- if (data === null) return FAILED;
128
- const json = new TextDecoder("utf-8", { fatal: true }).decode(data);
129
- const value = JSON.parse(json);
130
- return { ok: true, value };
131
- }
132
- var KEYED_PIN_PREFIX = "hmac-sha256-";
133
- function keyedPin(text, key) {
134
- requireKey(key, "keyedPin");
135
- const mac = createHmac("sha256", subkeys(key).pin).update(text, "utf8").digest("hex");
136
- return `${KEYED_PIN_PREFIX}${mac}`;
137
- }
138
-
139
13
  // src/shared/collections.ts
140
14
  import picomatch2 from "picomatch";
141
15
 
@@ -593,11 +467,135 @@ function isGlob(entry) {
593
467
  return picomatch2.scan(entry).isGlob;
594
468
  }
595
469
 
470
+ // src/shared/encryption.ts
471
+ import {
472
+ createCipheriv,
473
+ createDecipheriv,
474
+ createHmac,
475
+ hkdfSync,
476
+ randomBytes,
477
+ timingSafeEqual
478
+ } from "node:crypto";
479
+ import { TextDecoder } from "node:util";
480
+ var ENCRYPTED_VALUE = /^~[A-Za-z0-9_-]{82,}$/;
481
+ function isEncryptedValue(value) {
482
+ return typeof value === "string" && ENCRYPTED_VALUE.test(value);
483
+ }
484
+ var ENCRYPTION_KEY_SHAPE = /^[A-Za-z0-9_-]{32,}$/;
485
+ function isValidEncryptionKey(value) {
486
+ return typeof value === "string" && ENCRYPTION_KEY_SHAPE.test(value);
487
+ }
488
+ function generateEncryptionKey() {
489
+ return randomBytes(32).toString("hex");
490
+ }
491
+ var VERSION = 1;
492
+ var NONCE_BYTES = 12;
493
+ var TAG_BYTES = 16;
494
+ var BLOCK = 32;
495
+ var MIN_BYTES = 1 + NONCE_BYTES + BLOCK + TAG_BYTES;
496
+ var subkeyCache = /* @__PURE__ */ new Map();
497
+ function subkeys(key) {
498
+ const cached = subkeyCache.get(key);
499
+ if (cached !== void 0) return cached;
500
+ const ikm = Buffer.from(key, "utf8");
501
+ const derive = (info) => Buffer.from(hkdfSync("sha256", ikm, Buffer.alloc(0), info, 32));
502
+ const made = {
503
+ encrypt: derive("manni/v1/encrypt"),
504
+ nonce: derive("manni/v1/nonce"),
505
+ pin: derive("manni/v1/pin")
506
+ };
507
+ subkeyCache.set(key, made);
508
+ return made;
509
+ }
510
+ function requireKey(key, caller) {
511
+ if (!isValidEncryptionKey(key)) {
512
+ throw new Error(
513
+ `${caller}: the key must be at least 32 hex or base64url characters.`
514
+ );
515
+ }
516
+ }
517
+ function pad(data) {
518
+ const out = Buffer.alloc((Math.floor(data.length / BLOCK) + 1) * BLOCK);
519
+ data.copy(out);
520
+ out[data.length] = 128;
521
+ return out;
522
+ }
523
+ function unpad(padded) {
524
+ let i = padded.length - 1;
525
+ while (i >= 0 && padded[i] === 0) i--;
526
+ if (i < 0 || padded[i] !== 128) return null;
527
+ if (padded.length !== (Math.floor(i / BLOCK) + 1) * BLOCK) return null;
528
+ return padded.subarray(0, i);
529
+ }
530
+ function nonceFor(keys, context, padded) {
531
+ return createHmac("sha256", keys.nonce).update(context).update(Buffer.from([0])).update(padded).digest().subarray(0, NONCE_BYTES);
532
+ }
533
+ function aad(context) {
534
+ return Buffer.concat([Buffer.from([VERSION]), context]);
535
+ }
536
+ function encryptValue(value, key, context) {
537
+ requireKey(key, "encryptValue");
538
+ const json = JSON.stringify(value);
539
+ if (json === void 0) {
540
+ throw new TypeError("encryptValue: the value is not JSON.");
541
+ }
542
+ const keys = subkeys(key);
543
+ const ctx = Buffer.from(context, "utf8");
544
+ const padded = pad(Buffer.from(json, "utf8"));
545
+ const nonce = nonceFor(keys, ctx, padded);
546
+ const cipher = createCipheriv("aes-256-gcm", keys.encrypt, nonce, {
547
+ authTagLength: TAG_BYTES
548
+ });
549
+ cipher.setAAD(aad(ctx));
550
+ const sealed = Buffer.concat([cipher.update(padded), cipher.final()]);
551
+ const tag = cipher.getAuthTag();
552
+ const bytes = Buffer.concat([Buffer.from([VERSION]), nonce, sealed, tag]);
553
+ return `~${bytes.toString("base64url")}`;
554
+ }
555
+ var FAILED = { ok: false };
556
+ function decryptValue(token, key, context) {
557
+ try {
558
+ return open(token, key, context);
559
+ } catch {
560
+ return FAILED;
561
+ }
562
+ }
563
+ function open(token, key, context) {
564
+ if (!isEncryptedValue(token) || !isValidEncryptionKey(key)) return FAILED;
565
+ const body = token.slice(1);
566
+ const bytes = Buffer.from(body, "base64url");
567
+ if (bytes.toString("base64url") !== body) return FAILED;
568
+ if (bytes.length < MIN_BYTES) return FAILED;
569
+ if ((bytes.length - 1 - NONCE_BYTES - TAG_BYTES) % BLOCK !== 0) return FAILED;
570
+ if (bytes[0] !== VERSION) return FAILED;
571
+ const nonce = bytes.subarray(1, 1 + NONCE_BYTES);
572
+ const sealed = bytes.subarray(1 + NONCE_BYTES, bytes.length - TAG_BYTES);
573
+ const tag = bytes.subarray(bytes.length - TAG_BYTES);
574
+ const keys = subkeys(key);
575
+ const ctx = Buffer.from(context, "utf8");
576
+ const decipher = createDecipheriv("aes-256-gcm", keys.encrypt, nonce, {
577
+ authTagLength: TAG_BYTES
578
+ });
579
+ decipher.setAAD(aad(ctx));
580
+ decipher.setAuthTag(tag);
581
+ const padded = Buffer.concat([decipher.update(sealed), decipher.final()]);
582
+ if (!timingSafeEqual(nonceFor(keys, ctx, padded), nonce)) return FAILED;
583
+ const data = unpad(padded);
584
+ if (data === null) return FAILED;
585
+ const json = new TextDecoder("utf-8", { fatal: true }).decode(data);
586
+ const value = JSON.parse(json);
587
+ return { ok: true, value };
588
+ }
589
+ var KEYED_PIN_PREFIX = "hmac-sha256-";
590
+ function keyedPin(text, key) {
591
+ requireKey(key, "keyedPin");
592
+ const mac = createHmac("sha256", subkeys(key).pin).update(text, "utf8").digest("hex");
593
+ return `${KEYED_PIN_PREFIX}${mac}`;
594
+ }
595
+
596
596
  // src/shared/tools.ts
597
597
  import { isAbsolute as isAbsolute2, resolve as resolve2 } from "node:path";
598
- var TOOL_KEYS = ["vale", "dita-ot"];
599
- var VALE_KEYS = ["config"];
600
- var DITA_OT_KEYS = ["home"];
598
+ var TOOL_KEYS = ["vale", "dita-ot", "doc-detective"];
601
599
  function isMapping2(value) {
602
600
  return typeof value === "object" && value !== null && !Array.isArray(value);
603
601
  }
@@ -618,52 +616,54 @@ function parseTools(raw, source, toError) {
618
616
  rejectUnknownKeys2(raw, TOOL_KEYS, "tools", source, toError);
619
617
  const tools = {};
620
618
  if (Object.hasOwn(raw, "vale")) {
621
- tools.vale = parseVale(raw["vale"], source, toError);
619
+ tools.vale = parseStringKey(raw["vale"], "vale", "config", source, toError);
622
620
  }
623
621
  if (Object.hasOwn(raw, "dita-ot")) {
624
- tools["dita-ot"] = parseDitaOt(raw["dita-ot"], source, toError);
622
+ tools["dita-ot"] = parseStringKey(raw["dita-ot"], "dita-ot", "home", source, toError);
623
+ }
624
+ if (Object.hasOwn(raw, "doc-detective")) {
625
+ tools["doc-detective"] = parseStringKey(
626
+ raw["doc-detective"],
627
+ "doc-detective",
628
+ "config",
629
+ source,
630
+ toError
631
+ );
625
632
  }
626
633
  return tools;
627
634
  }
628
- function parseVale(raw, source, toError) {
635
+ function parseStringKey(raw, tool, key, source, toError) {
629
636
  if (!isMapping2(raw)) {
630
- throw toError(`${source}: tools.vale must be a mapping.`);
637
+ throw toError(`${source}: tools.${tool} must be a mapping.`);
631
638
  }
632
- rejectUnknownKeys2(raw, VALE_KEYS, "tools.vale", source, toError);
633
- const vale = {};
634
- if (Object.hasOwn(raw, "config")) {
635
- const config = raw["config"];
636
- if (typeof config !== "string" || config.trim() === "") {
637
- throw toError(`${source}: tools.vale.config must be a non-empty string.`);
639
+ rejectUnknownKeys2(raw, [key], `tools.${tool}`, source, toError);
640
+ const out = {};
641
+ if (Object.hasOwn(raw, key)) {
642
+ const value = raw[key];
643
+ if (typeof value !== "string" || value.trim() === "") {
644
+ throw toError(`${source}: tools.${tool}.${key} must be a non-empty string.`);
638
645
  }
639
- vale.config = config;
646
+ out[key] = value;
640
647
  }
641
- return vale;
648
+ return out;
642
649
  }
643
- function parseDitaOt(raw, source, toError) {
644
- if (!isMapping2(raw)) {
645
- throw toError(`${source}: tools.dita-ot must be a mapping.`);
646
- }
647
- rejectUnknownKeys2(raw, DITA_OT_KEYS, "tools.dita-ot", source, toError);
648
- const ditaOt = {};
649
- if (Object.hasOwn(raw, "home")) {
650
- const home = raw["home"];
651
- if (typeof home !== "string" || home.trim() === "") {
652
- throw toError(`${source}: tools.dita-ot.home must be a non-empty string.`);
653
- }
654
- ditaOt.home = home;
655
- }
656
- return ditaOt;
650
+ function fromConfigDir(path, configDir) {
651
+ return isAbsolute2(path) ? path : resolve2(configDir, path);
657
652
  }
658
653
  function valeConfigPath(tools, configDir) {
659
654
  const config = tools.vale?.config;
660
655
  if (config === void 0) return void 0;
661
- return isAbsolute2(config) ? config : resolve2(configDir, config);
656
+ return fromConfigDir(config, configDir);
662
657
  }
663
658
  function ditaOtHome(tools, configDir) {
664
659
  const home = tools["dita-ot"]?.home;
665
660
  if (home === void 0) return void 0;
666
- return isAbsolute2(home) ? home : resolve2(configDir, home);
661
+ return fromConfigDir(home, configDir);
662
+ }
663
+ function docDetectiveConfigPath(tools, configDir) {
664
+ const config = tools["doc-detective"]?.config;
665
+ if (config === void 0) return void 0;
666
+ return fromConfigDir(config, configDir);
667
667
  }
668
668
 
669
669
  // src/shared/config-file.ts
@@ -930,13 +930,6 @@ function readFamilyConfigFileSync(explicitPath, cwd, toError) {
930
930
  }
931
931
 
932
932
  export {
933
- isEncryptedValue,
934
- isValidEncryptionKey,
935
- generateEncryptionKey,
936
- encryptValue,
937
- decryptValue,
938
- KEYED_PIN_PREFIX,
939
- keyedPin,
940
933
  matchesFileGlob,
941
934
  PAGE_PLACEHOLDER,
942
935
  hasPagePlaceholder,
@@ -951,10 +944,18 @@ export {
951
944
  selectCollections,
952
945
  isMember,
953
946
  matchesCollectionPaths,
947
+ isEncryptedValue,
948
+ isValidEncryptionKey,
949
+ generateEncryptionKey,
950
+ encryptValue,
951
+ decryptValue,
952
+ KEYED_PIN_PREFIX,
953
+ keyedPin,
954
954
  findGitRoot,
955
955
  searchPath,
956
956
  valeConfigPath,
957
957
  ditaOtHome,
958
+ docDetectiveConfigPath,
958
959
  FAMILY_CONFIG_NAMES,
959
960
  ENCRYPTION_KEY_FIELD,
960
961
  ENCRYPTION_KEY_PREVIOUS_FIELD,
@@ -965,4 +966,4 @@ export {
965
966
  findFamilyConfigFile,
966
967
  readFamilyConfigFile
967
968
  };
968
- //# sourceMappingURL=chunk-6M5VJOC2.js.map
969
+ //# sourceMappingURL=chunk-OTJOBZJ5.js.map